タグ

ブックマーク / hakobe932.hatenablog.com (42)

  • gRPCのロードバランシング - はこべにっき ♨

    先日の記事から引き続きgRPCについて勉強してる。 gRPCのサーバをプロダクトで利用する場合に気になるのが、ロードバランシングをどういう風にやったら良いのかということで、その部分について調べてみた。 TL;DR: gRPC Load Balancing を読めばだいたいわかる gRPCのロードバランシングのポイントとしては、gRPCが基的にはHTTP2上に構築された仕組みである*1ことに注意して考えると良さそうだった。 プロキシ によるロードバランシング まず考えられるのは、gRPCのサーバとクライアントの間にプロキシを設置してロードバランシングを行う方法だ。 よくあるHTTP/1.1の世界で考えると、複数のWebアプリケーションサーバの前段にnginxのようなリバースプロキシを設置してロードバランシングする方法になる。 gRPCはHTTP/2を利用するので、この方法の場合リバースプロ

    gRPCのロードバランシング - はこべにっき ♨
    hakobe932
    hakobe932 2018/04/11
    今週のgrpc情報です
  • やっていく技術テーマを探す - はこべにっき ♨

    Webエンジニアを8年くらいやっていて、なんとなく、一通りのことはできるようになってきた。ただ、ちょっと得意な分野もあるとはいえ、基的になんでも屋さんとしてやっているので、技術者としてのアピールがいまいちだなーというのが気になっている。そこで、技術者としての自分をアピールできそうな技術テーマを一つ選んで、それにじっくり取り組んで見ようと考えた。 しかし、取り組む技術テーマをうまく選ぶ自信がない。そこで、ちょっと作戦を考えて取り組む技術テーマを見つけようと試行錯誤してみたので紹介してみる。 ステップ1: 指標を考える やっていく技術テーマを見つけるにあたって、テーマの候補をスコアリングしてみることにした。漠然とスコアをつけるのは難しいので、自分が普段技術テーマに取り組むかどうかを考えるときに気にしていることを思い出して、5つの指標に分解してみた。 指標1: 自分の興味 自分がおもしろい、や

    やっていく技術テーマを探す - はこべにっき ♨
    hakobe932
    hakobe932 2018/03/18
    ポケモンエンジニアリングはこういうやつです https://hakobe932.hatenablog.com/entry/2018/01/08/180503
  • Java SE 8 実践プログラミングを読んだ - はこべにっき ♨

    Java9がリリースされた昨今、今更だけど、Kindleで安くなってたので読んだ。 Javaプログラマーなら習得しておきたい Java SE 8 実践プログラミング 作者: Cay S. Horstmann出版社/メーカー: インプレス発売日: 2015/04/03メディア: Kindle版この商品を含むブログ (7件) を見る Java SE8 for the Really Impatientの翻訳で、Java 8からの新機能であるラムダ式をはじめ、ストリームAPIや新しい日付クラスなどについて詳しく紹介されている。 新機能の紹介おいては、単に記法やライブラリの紹介をしてくれるだけでなく、言語の設計の方針や過去のバージョンのJavaとの互換性などを踏まえた説明がなされていて読み応えがある。例えば、ラムダ式をJavaという言語で表現するために、汎用的な関数型はほとんど使われておらず、用途

    Java SE 8 実践プログラミングを読んだ - はこべにっき ♨
  • Visual Studio Code で編集中のテストコードを実行する - はこべにっき ♨

    TL;DR Visual Studio Codeではエディタからのコマンド実行がTasksという仕組みでできてとても便利。 背景 最近エディタをVisual Studio Codeに変えた。エディタのこだわりはそんなになくて、VimEmacs → Atom といった順番で2年に一度くらい乗り換えている。だいたいどのエディタにもVimキーバーインドエクステンションがあるのでなんとかなる。 Visual Studio CodeはAtomと同じElectronベースだけど、なぜかAtomよりサクサク動くので気に入っている。Microsoftのリソースパワーに感謝するしかない。 テストの話に移ると、テストを書くのはもちろんソフトウェア品質の担保やリグレッションの防止が目的だけれども、TDD的な文脈では開発のリズムを作るのも目的の一つだ。リズムよくテスト実行しつつ開発するには、エディタで開いて

    Visual Studio Code で編集中のテストコードを実行する - はこべにっき ♨
  • 次に何を勉強するかを決めるための作戦 - はこべにっき ♨

    Webエンジニアが学ぶべき技術範囲はとても広く、いったい何をどこから勉強していくかは難しい問題です。僕も試行錯誤を繰り返しています。 そんな試行錯誤の中で、新しく何を勉強するか決めるときに使ってる作戦がいくつかありそうだなと思うようになりました。そこでこの記事では、僕が次に勉強すべきテーマに困ったときに使っている作戦を紹介してみようと思います。 各作戦の例のコーナーでは実際に僕がその作戦を使って勉強したトピックなどを紹介しています。 このエントリは、はてなエンジニアアドベントカレンダー2016の20日目の記事で、担当はid:hakobe932です。昨日の担当は id:masayoshi さんでLinuxのARPとL2スイッチのお話という記事でした。 作戦1: 新しいプログラミング言語を学ぶ 新しいプログラミング言語を学ぶのは、比較的手を出しやすい作戦です。プログラミング言語を学ぶことで自分

    次に何を勉強するかを決めるための作戦 - はこべにっき ♨
    hakobe932
    hakobe932 2016/12/20
    普段うんうん唸りながら考えていることを紹介しました
  • AtomからPerlのテストを直接実行するくん - はこべにっき ♨

    チームで流行ってるので最近はAtomを使ってる。普段仕事ではPerl書くのでAtom上からテストをサクッと実行できるくんを作った。 atom.io 既存のscriptの拡張として動作する。家のscriptでもPerlのファイルの実行はできるけど、以下のような点で便利に使えるようになっている。 carton exec -- proveしてくれる カーソルがある位置が含まれている Test::Class 形式のテストケースを個別に実行できる 手元だけで使ってたんだけど、最近 hitode くんにも使ってもらって、ちゃんと動いてそうということが判明したので、apmにあげた。どうぞご利用ください。そこそこ雑。 このときにscriptの不具合発見してdiff 1byteのPullRequestに成功して笑顔です。

    AtomからPerlのテストを直接実行するくん - はこべにっき ♨
  • GoでWebアプリケーション作る練習をした - はこべにっき ♨

    GoでWebアプリケーションを書いてみる練習として RequestBin ぽいものを試しに作ってみた。gomibakoという名前であまりひねりはない。以下のURLで試せます。 https://gomibako.douzemille.net/ ソースコードもGitHubに公開してある。 github.com 何ができるか HTTPリクエストを受け付ける用のURLを作ることができて、そのURLに対するHTTPリクエストのログをWeb上で確認することができる。ちょっとしたWebHookの動きのチェックとかリバースプロキシの設定確認とかに使えて便利。 具体的には以下の様にして使える https://gomibako.douzemille.net/ にアクセスして "New Gomibako" ボタンを押す https://gomibako.douzemille.net/g/deadbeaf123/

    GoでWebアプリケーション作る練習をした - はこべにっき ♨
    hakobe932
    hakobe932 2016/11/25
    golangの練習した日記です。GoでWebアプリ作ってるひといたら知見教えて欲しい
  • HTTPSのWebサーバを設定した (h2o + Let's Encrypt) - はこべにっき ♨

    最近、ハイパフォーマンスブラウザネットワーキングを読んでいて、HTTPSについてちょっと勉強しています。勉強にあたっては、実際に試せる場所があったら便利そうなので、自分のさくらVPSにHTTPSのWebサーバを設置してみることにしました。この次はHTTP2の実験もしたいので、先進的なHTTP2の機能が実装されていそうなh2oを使ってみることにしました。 環境 今回の作業は以下のような環境でやりました。 $ uname -a Linux douzemille 4.4.0-36-generic #55-Ubuntu SMP Thu Aug 11 18:01:55 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux $ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=16.04 DISTRIB_CODENA

    HTTPSのWebサーバを設定した (h2o + Let's Encrypt) - はこべにっき ♨
    hakobe932
    hakobe932 2016/09/23
    昨日の日記書いた
  • 1アマ合格してた - はこべにっき ♨

    先日、1アマを受験してきた記事を書きましたが無事合格できておりました。自己採点ではだいたい大丈夫そうということがわかってものの、ちゃんと合格って書いてある紙がやってくるとうれしい。 このあと実際に免許されるには、さらに申請が必要で、免許証が届くのは一ヶ月先とからしい。先は長い。

    1アマ合格してた - はこべにっき ♨
    hakobe932
    hakobe932 2016/09/01
    最近の活動の成果です
  • 第一級アマチュア無線技士(1アマ)の資格試験を受験した - はこべにっき ♨

    ちょっと前に電子工学の入門をしたのだけど、理論についてもう少しまとまった知識を身に付けたいと思い、いっちょやってみるかと第一級アマチュア無線技士の資格(いわゆる1アマ)の取得に取り組むことにした。 1アマは、昔は通信術の試験があって、高速なモールス通信を身に付ける必要があり難しかったのが、今は筆記試験だけになりハードルが下がっている。もともと、他の級のアマチュア無線技士の資格はもってなくて前提知識は大してなかったのだけど、きっちり勉強すればなんとかなるやろうと思って一気に一級にチャレンジした。 勉強の仕方 試験は工学と法規の二科目あるので、それぞれ勉強する必要がある。 法規は基的に暗記なので、比較的ハードルは低い。工学については、基礎的な電気物理やアナログの電子回路、無線機のしくみや電波の性質について理解する必要があって、ある程度体系的に学んでいく必要がある。 勉強の期間はだいたい3ヶ月

    第一級アマチュア無線技士(1アマ)の資格試験を受験した - はこべにっき ♨
    hakobe932
    hakobe932 2016/08/17
    1アマにチャレンジした様子です
  • 今季見るべきアニメを機械学習で推薦する - はこべにっき ♨

    Coursera で機械学習に入門成功できたので応用に挑戦してみました。ちょうど季節の変わり目ということで、過去に見て気にいったアニメの特徴を学習して、未知のアニメを、気にいりそうなアニメと気にいらなそうなアニメに分類するツールを作って、ソフトウェアに今季見るべきアニメを推薦してもらいたいと思います。 アニメの特徴量 あるアニメを気にいるかどうかは、話のおもしろさや、絵柄の感じ、キャラクターの魅力などによって決まりそうです。ただ、話のおもしろさや、絵の美しさ、キャラクターの魅力を特徴量として数値化するのはむずかしいので、アニメの映像を制作しているスタッフや会社、声を当てているキャストにフォーカスすることにしました。 Courseraの機械学習のコースでは、特徴として妥当かどうかを判断するのに、人間が同じ特徴を与えられて分類といったタスクが可能かを考えてみよとアドバイスしていました。アニメ作

    今季見るべきアニメを機械学習で推薦する - はこべにっき ♨
    hakobe932
    hakobe932 2016/04/15
    今季はけいおんをみます(けいおん教師データに入ってないはずなので、直接評価されたわけではないはず..)
  • 手を動かして電子工学を学ぶ - はこべにっき ♨

    このエントリは、はてなデベロッパーアドベントカレンダーの20日目のエントリです。昨日の記事は id:aereal さんの連打を支える技術でした。明日の記事は id:astj さんです。 最近はWeb技術以外にもできることを増やそうと考えて、電子工学に入門しています。ほとんど何もしらないところからの入門ですから、理論を学びつつ手を動かして何か作ってみる作戦でいきたいところです。 しかし、自分の場合、手を動かすために丁度良い課題に取り組みたいものの、何をやればまったくわかりませんでした。 こんな風に困ってしまうことは、0から電子工学に学びはじめたい人にとっては、よくあるのではないでしょうか。そこで、このエントリでは、電子工学をはじめる人がとりあえず何か手を動かして学ぶための方法をご紹介したいと思います。 TL;DR Make: Electronics ―作ってわかる電気と電子回路の基礎を読み、

    手を動かして電子工学を学ぶ - はこべにっき ♨
    hakobe932
    hakobe932 2015/12/20
    Make: Electronics めっちゃ良い本だったけど、実験のための部品や道具買うのたいへんだったので知見共有です。
  • YAPC::Asia Tokyo 2015 に参加した #yapcasia - はこべにっき ♨

    今年はトーク応募もしなかったのだけど、最後のYAPCということではりきって参加してきた。 トークで印象に残ってるのは、kazuhoさんのHTTP/2時代のウェブサイト設計と、Brad FitzpatrickさんのProfiling & Optimizing in Go。 kazuhoさんのトークはだいたい毎年聞かせていただいてる気がする。今年の発表もとても丁寧で、HTTP2で何が良くなるのか、といった点をわかりやすく説明していただいて合点がいった。ダウンロードすべきリソースの数をなるべく減らすようなテクニックがHTTP2時代にはむしろ避けるべきであるというような知見は、アプリケーションエンジニアとっても必要だと感じた。 Brad Fitzpatrickさんの発表は、ライブコーディング形式で、有名ハッカーのコーディングの様子がみれて有益だった。Goのデバッギング/プロファイリングはちょっとや

    YAPC::Asia Tokyo 2015 に参加した #yapcasia - はこべにっき ♨
  • 関西2015年夏アニメ 放送時間まとめ - はこべにっき ♨

    今期も関西における今期のアニメの放送状況を表にまとめました。いつもどおりしょぼいカレンダーのデータを利用させていただいています。ありがとうございます。予約設定時の確認などにお役立てください。 今期の関西最速は前季よりも2作品増え4作品となりました。アニメイズム枠の移動にも負けず、作品数を維持できていてほっとしました。今季は特にABCテレビの2作品が最速になっており、活躍が目立ちますね。関西最速の作品は以下のようになります。 GANGSTA. 戦姫絶唱シンフォギアGX 六花の勇者 干物妹!うまるちゃん 特に期待したいのは 干物妹!うまるちゃんですね。原作は未読なのですが、PVを見るにかわいらしい雰囲気ですし、なんか悪人がでてこなさそうなので気楽にみれそうです。 六花の勇者は王道ファンタジーものですね。7人の勇者の中に裏切り者が一人という謎解き要素もありおもしろそうです。ちょっと中二っぽい感じ

    関西2015年夏アニメ 放送時間まとめ - はこべにっき ♨
    hakobe932
    hakobe932 2015/07/01
    関西最速4作品! 希望はまだある!
  • 関西2015年春アニメ 放送時間まとめ - はこべにっき ♨

    今期も関西における今期のアニメの放送状況を表にまとめました。いつもどおりしょぼいカレンダーのデータを利用させていただいています。ありがとうございます。予約設定時の確認などにお役立てください。 今期の関西最速は前季と同じく2作品となりました。今季はアニメイズムの枠移動により、関西最速の存亡が絶望視されていましたが、なんとか平年どおりの数字となりました。 血界戦線 放課後のプレアデス(TVシリーズ) 血界戦線は原作はジャンプスクエア/ジャンプSQ.19で連載されていたコミックのアニメ化です。トライガンを書かれた内藤泰弘さんが書かれているんですね。僕は原作をよく知らないのですが、PVで見られる少しダークな雰囲気が気にいっていて楽しみです。殴る前に技名を言うので有名とのことで、どんな感じになるんでしょうね。 放課後のプレアデス(TVシリーズ)はもともとWebアニメで展開されていた放課後のプレアデス

    関西2015年春アニメ 放送時間まとめ - はこべにっき ♨
    hakobe932
    hakobe932 2015/04/03
    アニメイズムの枠が移動したとしても、関西最速の光はまだ残っているのだ
  • オブジェクト指向入門読み終わった - はこべにっき ♨

    ちまちま読んでたオブジェクト指向入門を読み終わった。だいたい入門と言っているが、原題は"Object-Oriented Software Construction"で入門感はないし、上下巻あわせて2000ページくらいあって読みきるのが大変だった。 原著は18年前に発売されただが、内容のほとんどは今でも有益で、全体を通してためになる。オブジェクト指向が解決しようとしている課題や、背景にある理論や考え方について解説してくれるだけではなく、実際にソフトウェアを設計する際にどのようにクラスを見つけ、どんな場面で継承を使い、ソフトウェア全体をどのように形作っていくのかという実践的な議論も充実している。 の序盤では、ソフトウェアの品質の様々な側面についての解説や、オブジェクト指向以前から使われていたモジュールや型の概念のがもつ諸課題について詳しく解説してくれる。それらの問題をふまえ、次に、ソフトウ

    オブジェクト指向入門読み終わった - はこべにっき ♨
    hakobe932
    hakobe932 2015/03/27
    みなさん入門しましょう
  • リアクティブプログラミングの技術を用いてマウスストーカーを実装する - はこべにっき ♨

    古き良きインターネットアプリケーションであるマウスストーカー*1をリアクティブプログラミングの技術を活用して実装してみるという取り組みをしましたのでご紹介します。リアクティブプログラミングというと主語が大きめですが、ここではbacon.jsを使ってるくらいの意味です。 できたもの まずは完成したマウスストーカーを紹介します。チェーンのように連なった星がマウスカーソルの軌跡を辿ってついてきます。工夫してうごかすとなかなか綺麗です。下のボタンを押すと実際にこの画面でマウスストーカーを有効にすることができます(requestAnimationFrameに対応したPCブラウザのみ)。いろいろ動かして遊んでみてください。 このページでマウスストーカーを有効にする 実装 このマウスストーカーがどのように実装されているか紹介します。ソースコードはGitHubに公開していますので、適宜ご参照ください。手元

    リアクティブプログラミングの技術を用いてマウスストーカーを実装する - はこべにっき ♨
    hakobe932
    hakobe932 2015/03/09
    昼休み活動の成果です
  • go言語によるhtmlcat実装 htmlcatgo の紹介 - はこべにっき ♨

    go言語の勉強に、motemenさんが作ったhtmlcat(標準入力をブラウザで tail -f できる htmlcat というのを書いた - NaN days - subtech)をgoで実装してみました。この記事ではhtmlcatgoの紹介と実装の見どころについて解説します。 htmlcatgoの紹介 htmlcatgo は、標準入力をブラウザ上でtail -fできるソフトウェアです。元祖htmlcatの使い方とほぼ一緒です。 $ tail -f /var/log/messages | htmlcatgo のように実行すると、 2013/12/16 08:15:02 htmlcatgo: http://localhost:45273のようにURLが表示されます。これをブラウザで表示すると、画面にtail -fの結果がリアルタイムで流れてきます。元祖htmlcatにある --execオプ

    go言語によるhtmlcat実装 htmlcatgo の紹介 - はこべにっき ♨
    hakobe932
    hakobe932 2014/11/15
    (test)
  • 社内技術勉強会でScalaのおすすめポイント解説した - はこべにっき ♨

    はてなでは週に一回、社内技術勉強会というのをしています。今週は僕の当番だったのでScalaの入門的な話をしました。 普段使いの言語として、Scalaの便利なところをまとめたというつもりです。とはいえ、他の言語にもある特徴もわりと紹介してるので、もうちょっとScala独自の内容にフォーカスしてもよかった... むずかしい。時間の都合で全部話きれなくて、会が終わった後でimplicitまわりの話とか数人にご紹介したら一番おもしろかったと言う話になったので無念。 あの機能を紹介してないとはけしからんみたいなのがあったら教えて下さい。そうはいってもとりあえず Scalaスケーラブルプログラミング第2版を読むといいです。 ↓ 資料はgist形式でembedしてあります ↓ https://gist.github.com/hakobe/e1aa2501a64e7f801b55 こちらもおすすめ Sca

    社内技術勉強会でScalaのおすすめポイント解説した - はこべにっき ♨
    hakobe932
    hakobe932 2014/09/20
    素朴にまとめたやつです。ご利用ください。
  • ScalaでWebアプリケーションのエラー処理を綺麗に書く - はこべにっき ♨

    Play Frameworkにおいて、POSTリクエストから得られたbody中のパラメータをもとに何か処理をするというよくあるコードを、ちょっと整理して見やすくする方法を学んだのでメモがてら御シェアさせていただきます。Playのリクエストハンドラを書くときに頻繁に現れたので、例がPlayのコードになっているけど、内容的にはScala全般的な話だと思う。Scalaプロみたいな人にはまったく新しいことはないと思う。 題と関係ないけど、YAPCScalaの話をするかもしれません。言語自体の話よりかは採用理由とか開発フローの話を、これまでのPerlでのWeb開発を踏まえて話す感じになりそう。Scala In Perl Company : Hatena - YAPC::Asia Tokyo 2014 さて、題ですが、話題の対象になるのは以下の様なPlayFrameworkのコードです。 def

    ScalaでWebアプリケーションのエラー処理を綺麗に書く - はこべにっき ♨
    hakobe932
    hakobe932 2014/07/12
    本来ライブラリのEitherはあと一歩で、Scalazかわいいという結論になった