タグ

j5ik2oのブックマーク (3,843)

  • IFTTT対応と開発について - ChatWork Creator's Note

    こんにちは、サーバーサイド開発部の原田です。 前回はこちらの記事でIFTTTというサービスおよび使い方についてご紹介しました。 creators-note.chatwork.com 今回はIFTTT連携の開発において苦労、および工夫した点について書きたいと思います。 IFTTT開発と問題点 IFTTT連携の開発において、使用した言語およびライブラリは以下のようになっています。 Scala Akka Http Kamon Circe etc... 基的にはIFTTTが公開している公式ドキュメントに沿って開発を進めました。 platform.ifttt.com システム構成図 大まかな構成図は以下になります。 また各システムの説明こちらです。 チャットワークIFTTT IFTTTからのリクエストを受けたり、チャットワークにメッセージ投稿するための(proxy的な役割の)システム 今回開発した

    IFTTT対応と開発について - ChatWork Creator's Note
    j5ik2o
    j5ik2o 2018/10/29
    JWT(JWS)をIFTTTからのリクエストの検証に使う事例
  • akka-httpでの総当たり攻撃(brute-force-attack)対策について - ChatWork Creator's Note

    こんにちはかとじゅん(@j5ik2o)です。 akka-httpで特定の失敗条件を元に、特定のリクエストをブロックするための仕組みを、akka-guardとして実装したので、設計思想や使い方に関して簡単にお知らせします。今回、想定したシナリオは、認証の総当たり攻撃(brute-force-attack)の対策で、認証の失敗回数が閾値を超えた場合、一定期間認証リクエストをブロックする対策を想定しています。 設計は主に僕がやりましたので僕の方から紹介します。実装は主に藤井(@yoshiyoshifujii)さんにお願いしたので、後半は藤井さん対応で。 akka-guard github.com 設計(担当:かとう) akka-httpで認証・認可を伴うAPIを公開した際に、セキュリティ対策の一貫として、総当たり攻撃(brute-force-attack)対策は必須にする必要がありました。さまざ

    akka-httpでの総当たり攻撃(brute-force-attack)対策について - ChatWork Creator's Note
    j5ik2o
    j5ik2o 2018/10/29
    総当たり攻撃対策を簡単にできるライブラリをリリースしました
  • クラウド時代のサーバー監視における、良いメトリックの4要素 - Part1 - ログミーTech

    2018年9月22日、Japan Azure User Groupが主催するイベント「Japan Azure User Group 8周年イベント」が開催されました。JAZUG設立8周年を記念したイベント。Microsoft Azureを用いてサービス開発を行うエンジニアたちが一堂に会し、自身の経験と知見を元に新たな活用法などを語ります。プレゼンテーション「クラウド時代のモニタリング」に登場したのは、DatadogのMasahiro Hattori氏。講演資料はこちら クラウド時代のモニタリング Masahiro Hattori 氏:DatadogもAzureの連携機能とかにかなり力を入れてやっているんですが、その前に、とくに最近クラウドだけではなくて、コンテナという話が進んできて、アーキテクチャの大きな変化が進んでいる状況です。日々お客さまと接していて、みなさまに共有できるよう

    クラウド時代のサーバー監視における、良いメトリックの4要素 - Part1 - ログミーTech
  • リファクタリングして学ぶTypeScriptでクリーンアーキテクチャ - Qiita

    概要 最近,ASCII Dwangoさんから「クリーンアーキテクチャ」というが出版されました. そこに書いてある内容は素晴らしいものでした.しかし,実際に組んでみた場合,どういう風に作るのが良いのか?どういう問題があるのか?そういった疑問が湧いてきました.そこで, 実際に非クリーンアーキテクチャのコードをリファクタリングしていくことで,クリーンアーキテクチャの要点を感じる. という試みです. クリーンアーキテクチャとは ここでは簡単にしか説明しませんが,実際にを読んで勉強することをお勧めします. 「クリーンアーキテクチャ 達人に学ぶソフトウェアの構造と設計」のp200によると フレームワーク非依存:アーキテクチャは,機能満載のソフトウェアのライブラリに依存していない.これにより,システムをフレームワークの制約で縛るのではなく,フレームワークをツールとして使用できる. テスト可能:ビジネ

    リファクタリングして学ぶTypeScriptでクリーンアーキテクチャ - Qiita
    j5ik2o
    j5ik2o 2018/10/27
    例が難しいですね。ユースケースの要求が単純すぎてこれならかえってユースケースが冗長ではと思われてしまうので、ドメインオブジェクト単体で実現できないような例がよいですね
  • マイクロアドに新卒で入っていきなりScalaを書かされた話 - MicroAd Developers Blog

    はじめまして。マイクロアドでアプリケーションエンジニアをしている新卒1年目の石田です。 主に、MicroaAd BLADEという広告配信プラットフォームの開発をしています。 内定者アルバイト時代からマイクロアドでBLADEの開発に携わっていました。BLADEのソースコードはJava/Scalaを中心になっており、大半がJavaでした。現在は新規機能開発や、リファクタではScalaで実装を行なっています。 今回は、自身が担当した 「JavaコードのScala化を行う実案件」 に絡めて、「可変オブジェクトの問題」や「ScalaでのDDD」に関する話を書いていきたいと思います。 JavaコードのScala化 自分のScala力が多少まともになった要因となったのが、このScala化の案件です。 私が学生の時には、とあるインタプリタ方式の手続き型プログラミング言語を書いていました。加えて浅学だったの

    マイクロアドに新卒で入っていきなりScalaを書かされた話 - MicroAd Developers Blog
  • Kubernetesは銀の弾丸ではない――エンジニアが生き残るために必要な技術とは【デブサミ2018 関西】 (1/2):CodeZine(コードジン)

    今後、アプリケーションの開発企業および開発者は二極化していく。価値あるエンジニアとして生き残るためには、学び続ける姿勢が大切だ。技術者にとって最も重要なのは、「このシステムにはKubernetesが合う」「このシステムはKubernetesでなくてもいい」といった技術の見極め、つまり適材適所に技術を選択する力だ。ではどうやってそれらを選択していけばいいのか。また、マイクロサービス化に取り組む上で考えるべきことは何か。さらにKubernetes導入におけるつまずきがちなポイントについて、日マイクロソフト シニアクラウドデベロッパーアドボケイトの寺田佳央氏が解説した。 日マイクロソフト株式会社 シニアクラウドデベロッパーアドボケイト 寺田佳央氏 問われるのは技術力。だから学び続けることが重要 「Kubernetesについて紹介しようとすると1時間では話しきれない。そこで今日は当初のアジェン

    Kubernetesは銀の弾丸ではない――エンジニアが生き残るために必要な技術とは【デブサミ2018 関西】 (1/2):CodeZine(コードジン)
    j5ik2o
    j5ik2o 2018/10/25
  • AWS DevDay Tokyo 2018というイベントを開催します! - Sweet Escape

    タイトルの通りです。Amazon Web Services Japan主催で『AWS DevDay Tokyo 2018』というものが10月29日(月)〜11月2日(金)まで一週間に渡って開催されます。場所は目黒の駅前にあるAWSJオフィスが入っている目黒セントラルスクエアというビルです。 aws.amazon.com このイベントに自分は主に企画・コンテンツといった内容面で深く携わっているので今回はそのあたりを少しご紹介します。ちなみにどうでもいい情報ですが今回、僕は裏方に徹しているので自分のセッションはありません。 イベントの狙い 狙いというほどのものでもないですが、イベントは毎年6月くらいに開催しているAWS Summit Tokyoという年次イベントの併催という形で昨年は開催されたものです。ちなみに開発者向けのイベント自体は2015年のAWS Summit Tokyoの新しい試み

    AWS DevDay Tokyo 2018というイベントを開催します! - Sweet Escape
    j5ik2o
    j5ik2o 2018/10/24
    紹介されてた
  • ボトムアップドメイン駆動設計 後編

    ボトムアップドメイン駆動設計 後編 1. ボトムアップ ドメイン駆動設計 後編 成瀬 允宣2018/10/23 in GMO Yours 1 2. 自己紹介 • 成瀬 允宣 - Masanobu Naruse • プログラマ • C#, Scala, Typescript • DDD とかアーキテクチャの話が好きです • @nrslib • https://nrslib.com 2 3. もくじ • はじめに • 値オブジェクト • エンティティ • ドメインサービス • リポジトリ • アプリケーションサービス • ファクトリ • トランザクション • 集約 • アーキテクチャ • ドメイン駆動設計への誘い 3 4. 閑話休題 4 アプリケーションが 作れるようになりました ここから後半です 5. ファクトリ 5 後半最初のテーマは ファクトリ 6. ファクトリ | 採番 6 サンプルの

    ボトムアップドメイン駆動設計 後編
    j5ik2o
    j5ik2o 2018/10/24
    ページ数がぱない
  • ボトムアップドメイン駆動設計 前編

    怖さの原因は? 辛さの原因は? ドメイン駆動設計の用語は2パターン 挫折した方がもう一度手に取ってみたいと思ったら、私の勝ちです C# だと比較ってこんな感じに実装します 勿論こんなこと毎回やってられませんから どうなりますか? コードで表すと 識別子の値オブジェクトを作って(任意 その値オブジェクトを識別子にする 同じ属性でも 名字を変更しました 識別子を使います 例えば‘ MySql を使うと 注目すべきは このコンストラクタで受け取った userRepository これが InMemoryUserRepository か UserRepository かで動作が変わる アプリケーションサービスはユースケースを強く意識します ボトムアップドメイン駆動設計 前編 1. ボトムアップ ドメイン駆動設計 成瀬 允宣2018/10/23 in GMO Yours 1 2. 自己紹介 • 成瀬

    ボトムアップドメイン駆動設計 前編
    j5ik2o
    j5ik2o 2018/10/24
    ページ数がぱない
  • dockerでSonarQubeのインストールを楽にやる - Kengo's blog

    クラスメソッドさんのブログでSonarQubeの紹介がされています。そちらの記事では記事の半分ほどを割いてインストール方法を説明していますが、dockerを使えばより楽に行えますのでその方法を紹介します。 dev.classmethod.jp 検証用のSonarQubeを立ち上げる 以下のコマンドで、組み込みデータベースを使用したサーバが立ち上がります。ユーザ名admin、パスワードadminでログインできます。 このコマンドは英文公式ページからの引用です。 $ docker run -d --name sonarqube -p 9000:9000 -p 9092:9092 sonarqube なおalpineを使ったイメージもあるのですが、2018年8月1日現在でClassNotFoundErrorが出るなど不安定なようです。7.1-slpineなどのバージョンではなく、7.1などのバー

    dockerでSonarQubeのインストールを楽にやる - Kengo's blog
  • AirframeによるScalaプログラミング:「何ができるか」から「何を効果的に忘れられるか」を考える

    、MessagePackを使う利点は、以下の3つ: 様々なデータフォーマットに対応できるコンパクトなバイナリ表現Self-describing format (データ自身が型を持っている)ため、種々のフォーマットからオブジェクトへのマッピングをschema-on-readのテクニックで実装できるまた、オブジェクトデータをデータフォーマットを気にせずに手軽に保存できるというのは、計算の再利用、プログラムの再開などを可能にしてくれるので、複雑なデータ処理において強力な武器になります。 要点その2: AirframeにはDependency Injection (DI)のためのライブラリがありますが、DIを理解するには、「何ができるか」ではなく、プログラミング中に「何を忘れることができるか」が大切です。

    AirframeによるScalaプログラミング:「何ができるか」から「何を効果的に忘れられるか」を考える
  • 侍エンジニア塾のC言語のサンプルがヤバすぎる。

    C言語はもうかれこれ10年くらい書いていないけど、流石にこれはヤバい。 正直な感想として、ブランド毀損するくらいの危険性をはらんでいると思う。 当該記事からコピーしてきた。 #include <stdio.h> #include <stdlib.h> // 構造体の宣言 typedef struct { int num; char *str; } strct; int main(void) { // 実体を生成 strct *entity; // 動的メモリの確保。確保したメモリをstrct型ポインタにキャスト。 entity = (strct*)malloc(sizeof(strct)); // メンバの初期化 entity->num = 0; entity->str = (char*)malloc(sizeof(32)); // メモリに文字列を代入 sprintf(entity->s

    侍エンジニア塾のC言語のサンプルがヤバすぎる。
    j5ik2o
    j5ik2o 2018/10/17
    これはつらそう…
  • お前らのTouch Barはダサい

    タッチバーをカスタマイズしようというお話。 こんな感じに出来ます!! 2020/05/09 タッチバーにてマイクのミュートトグルを行うボタンの記事リンクを追加 2020/05/08 だいぶUIが変更されていたので記事を修正しました。 2019/01/24 better touch bar updateに伴いタッチバーボタンのfeedbackや 最下部のリンク集に公式のBTTコミュニティサイトを追記 まえがき これは釣りタイトルみたいなものなんで、すごい人は怒らずブラウザバックしてください。 どうもこんにちは。 アンドロイドを手に入れてから2,3年はホーム画面メチャクチャ凝って作ってたけど, 今は無操作にショートカットが転がっている@2357gi です。 ああいうの、最初は楽しいけどある時急に楽しさよりもカスタマイズする面倒くささが上回りますよね・・・。 話を戻しまして、 私は先日Macbo

    お前らのTouch Barはダサい
  • Go言語の基礎〜Go 1.11 開発環境構築とパッケージバージョン管理〜 | RE:ENGINES

    はじめに こんにちは、雨の日が最近多く、気温の変化が激しくて、体調管理に気をつけなければと思うこの頃です。 さて、今回はGo言語についてです。Go言語をご存知の方は、最近ですと、2018年8月末に1.11がリリースされことや、Go2でのgenericsやエラーハンドリングに関する議論など耳にされている方も多いのではないでしょうか。 改めて話題になってたことで、私たちもGo言語を改めて学びなおそうと、勉強会合宿を開催しました。そこで発表・共有した内容を簡単にまとめ、数回にわたり連載を予定しております。 今回の記事では、改めてGo言語を勉強してみたいという方向けに、Go言語概要と環境構築から、Go 1.11でexperimentalでリリースされた Modules について紹介したいと思います。 Go言語(Golang)とは Go言語の連載最初の1回目の記事なので、簡単にGo言語についても説明

    Go言語の基礎〜Go 1.11 開発環境構築とパッケージバージョン管理〜 | RE:ENGINES
    j5ik2o
    j5ik2o 2018/10/12
  • Developers.IO 2018 で「API 設計」の話をしてきた #cmdevio2018 | DevelopersIO

    緊張すると声がアムロ・レイになる都元です。 ここからしばらく、キャッチコピーの迷走期が始まりますのでよろしくお付き合いください。 さて、去る 10/5 (金) 秋葉原 UDX にて開催された Developers.IO 2018、その中で 「クラスメソッドにおける Web API エンジニアリリングの基的な考え方と標準定義」 という仰々しいタイトルで1講座持たせていただきました。 スライド 話したかったことと、話したこと セッションで話したかったことはだいぶ多岐にわたり、当然 40 分では話しきれないので、当初は次の 2 テーマに絞ってお話しようと考えてスライドを作っていました。 アプリケーション動作ログガイドライン RESTful / リソース指向 API 設計 しかし実際にスライドを作ってみると、それぞれで 40 分の規模となってしまい…。 ログの話は断腸の思いで見送りとさせていた

    Developers.IO 2018 で「API 設計」の話をしてきた #cmdevio2018 | DevelopersIO
  • 誰でもVTuberになって生放送可能「カスタムキャスト」が提供開始 - ライブドアニュース

    2018年10月4日 13時0分 by ライブドアニュース編集部 ざっくり言うと スマホアプリ「カスタムキャスト」のiOS版・Android版の提供が始まった アプリを利用すれば、誰でも簡単にVTuberになって生放送配信ができるという キャラクターカスタマイズ機能やフェイストラッキング機能などもある および S-court(社:東京都豊島区 代表取締役:川崎 大和、以下エスコート)は、両社が共同開発した無料「カスタムキャスト」のiOS版・Android 版を提供開始した。 「カスタムキャスト」は、スマートフォンで誰でも簡単にになって生放送配信ができるスマートフォンアプリ。従来、PCVR機器などの機材準備や複数人での運営体制など、VTuberとなって配信を行うためには大きな障壁があったが、このアプリを利用すれば誰でも簡単に生放送することができるとしている。 同アプリはキャラクターカスタ

    誰でもVTuberになって生放送可能「カスタムキャスト」が提供開始 - ライブドアニュース
  • Alphabet、DNSクエリを暗号化するアプリ「Intra」を公開--ネット検閲に対抗

    Googleが設立し、Alphabet傘下の子会社として運営されているテクノロジインキュベーターのJigsawが米国時間10月3日、ISPレベルのDNS操作への対抗策として、DNSクエリを暗号化できるAndroidアプリ「Intra」をリリースした。 DNS操作は、独裁的な政権や悪質なISPがネット検閲に用いる最も一般的な手法の1つで、ニュースサイト、情報ポータル、ソーシャルメディアプラットフォーム、望ましくないソフトウェアなどへのアクセスを遮断するのに利用されている。 Intraは、独裁政権が支配する国のISPなど、国家レベルの監視能力を備えた第3者からDNSのトラフィックを隠すことで、DNSが操作されるのを防ぐ。 技術的に見ると、Intraは「DNS over HTTPS」(DoH)というまだ新しいテクノロジを実装している。この技術はまもなく、Internet Engineering

    Alphabet、DNSクエリを暗号化するアプリ「Intra」を公開--ネット検閲に対抗
    j5ik2o
    j5ik2o 2018/10/05
  • Ctrl-[ が Esc になる理由 - Humanity

    理由 SHIFT キーはキーコードを -0x20、CTRL キーはキーコードを -0x40 する機能 全文 vim-jp.slack.com の #random から。 heavenshell [10:08 AM] TouchBar MBP にしたら強制的に C-[ になるので、オススメです!ようやく矯正できた。 mattn [10:09 AM] 人間の方が最適化されている yoshitia [10:12 AM] Escが物理的にない状況用にデフォルトでCtrl-[ 用意してるのすごい mattn [10:14 AM] いや、用意した訳ではないです。 SHIFT キーはキーコードを -0x20、CTRL キーはキーコードを -0x40 する機能なのです。 なので `[` つまり 0x5b は 0x1b になる。 0x1b = ESC 同様に CTRL-H は H が 0x48 なので 0x

    Ctrl-[ が Esc になる理由 - Humanity
    j5ik2o
    j5ik2o 2018/10/04
    ハハーン
  • 実践Scala入門(共著)が発売されます - kmizuの日記

    https://www.amazon.co.jp/dp/4297101416 企画自体は2015年くらいから始まっていたんですが、紆余曲折あって、約3年経ってしまいました。ともあれ、ようやく出版までこぎつけられてほっと一息です。 実際には多少遅れる可能性がありますが、10月27日から技術評論社さんから発売予定なので、この機会にScalaを勉強してみたい方は、是非予約していただければと思います。 さて、書いてる間の紆余曲折書いても意味がないので、このエントリでは、この書籍のウリを簡単に書きたいと思います。 現状の日語のScala書籍は、大半が新しいバージョンのScalaに追随できてなくて、新しくScalaに入門する人に勧められるいい書籍が ほとんどないという問題意識がありました。いわゆるコップScala書籍の中でもかなり売れていることもあってか、2.12対応の第三版まで出版されているも

    実践Scala入門(共著)が発売されます - kmizuの日記
  • APIセキュリティ入門(2):APIの認証と認可をスケールする手法 - ZDNet Japan

    印刷する メールで送る テキスト HTML 電子書籍 PDF ダウンロード テキスト 電子書籍 PDF クリップした記事をMyページから読むことができます 前回は、APIをエッジで処理する有効性について説明した。第2回の稿では、APIの認証と認可をエッジでどのようにスケールさせるかを説明したい。 APIのタイプには、パブリックとプライベートがある。パブリックなものは、誰でもAPIを呼び出すことができ、大概は一定期間キャッシュできるため、コンテンツ配信ネットワーク(CDN)のような仕組みは非常に有効だ。例えば、検索結果を返すAPIは、バックエンドのデータベース情報が変わらなければ常に同じ結果を返すので、エッジでキャッシュできればエンドユーザーの操作性はかなり良くなる。また、毎回オリジンサーバにリクエストが届かなくなるので、クラウド基盤のコンピュータリソースもコスト削減できる。 問題なのは、

    APIセキュリティ入門(2):APIの認証と認可をスケールする手法 - ZDNet Japan
    j5ik2o
    j5ik2o 2018/10/01
    JWT形式のアクセストークンに関する記事。つ https://creators-note.chatwork.com/entry/2018/09/25/132218