タグ

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

  • 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) - はこべにっき ♨
  • 今季見るべきアニメを機械学習で推薦する - はこべにっき ♨

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

    今季見るべきアニメを機械学習で推薦する - はこべにっき ♨
  • Goによるプライベートネットワークへのアクセスを禁止するHTTPクライアントの実装 - はこべにっき ♨

    クローラのように、ユーザからの入力に応じて任意のURLにHTTPリクエストを発行するソフトウェアは、誤ってプライベートネットワークへのリクエストを処理しないようにする必要があります。悪意のあるユーザが故意にプライベートなネットワークに対してリクエストして、内部情報にアクセスするといった攻撃を行う可能性があるからです。 PerlではLWPx::ParanoidAgentやLWPx::ParanoidHandlerといったモジュールが便利です。これらのモジュールは、リクエスト先のURLをチェックしてプライベートネットワークへのリクエストを禁止してくれます。単にIPアドレスをチェックするだけでなく、ホスト名をDNSで解決して得られたIPアドレスをチェックしたり、リダイレクト先のURLをチェックしたりしてくれます。まさに偏執的です。 このLWPx::ParanoidAgentと同様の機能をもったG

    Goによるプライベートネットワークへのアクセスを禁止するHTTPクライアントの実装 - はこべにっき ♨
  • リアクティブプログラミングの技術を用いてマウスストーカーを実装する - はこべにっき ♨

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

    リアクティブプログラミングの技術を用いてマウスストーカーを実装する - はこべにっき ♨
  • 社内技術勉強会でScalaのおすすめポイント解説した - はこべにっき ♨

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

    社内技術勉強会でScalaのおすすめポイント解説した - はこべにっき ♨
  • シェルスクリプトから"foreman start"したときにCtrl-Cで終了できない現象の解説 - はこべにっき ♨

    シェルスクリプトから"foreman start"したときにCtrl-Cで終了できないという現象に遭遇しました。なぜこのようなことが起こったのかについて調べてみたので解説します。一見不可解におもえるプロセスの振舞いをUNIXプロセスの仕組みをひもとき説明してみたというおもむきの記事です。 概要 foremanはシェルスクリプトから、"foreman start"のように起動したときにCtrl-C終了できません。シェルスクリプトでなくてもssh経由で ssh -t host foreman start のようにした場合でも同様の問題が発生します。これは、foremanがsetpgrpシステムコールを呼び出してプロセスグループのリーダになるという動作をしていたのが原因でした。 現象 以下のように "foreman start"をシェルスクリプトから実行すると、Ctrl-Cによりforemanを

    シェルスクリプトから"foreman start"したときにCtrl-Cで終了できない現象の解説 - はこべにっき ♨
  • node.jsでtrayという画像アップローダを作った - はこべにっき ♨

    昨日のKyoto.js #2 で、trayというお手軽な画像アップローダについて発表してきました。ドラッグアンドドロップで画像がアップロードされます。画像は12枚のパネル上に表示され、誰かがアップロードするとリアルタイムで画面が切り替わったりします。 http://tray.douzemille.net:8080 http://imagetray.herokuapp.com/ でお試しできますので、お手元の適当な画像をドラッグアンドドロップして遊んでみてください! 何アップロードされているかはよくわからないので、ご注意ください。たまに勝手に適当な写真に切り替わるようにしてあります。*1 ドラッグアンドドロップでのアップロードが手軽で便利なだけではなく、12枚のパネルにきれいな画像をはめこむおもしろさもあります。 割と簡単に設置できておもしろいのでぜひおためしください。GIFアニメを投稿しま

    node.jsでtrayという画像アップローダを作った - はこべにっき ♨
  • zsh補完関数を自作すると便利 - はこべにっき ♨

    会社でコードを書いていると、いろんなプロジェクトのディレクトリ間を頻繁に移動します。毎回cdするのはだるいので、それを解消する便利なzsh用の関数と補完関数を書いたので紹介します。はてなエンジニアのひとと、zsh補完関数を書いてみたい人にはそこそこ役立つといった趣のエントリです。 会社のプロジェクトのリポジトリは、~/work/hatena というところに全部まとめています。だいたい以下のような感じです。 > ls ~/work/hatena Hatena-Antenna/ Hatena-Diary/ Hatena-Ugomemo/ git-hooks/ Hatena-Bookmark/ Hatena-Group/ Ridge/ iphone/ Hatena-Coco/ Hatena-Star/ android/ sketch/ 各プロジェクトのリポジトリには頻繁に移動するので、簡単なz

    zsh補完関数を自作すると便利 - はこべにっき ♨
  • YAPCに参加して gist cloneを作ってるという話をしてきた - はこべにっき ♨

    YAPC::Asia Tokyo 2012に参加してきました。今年もたくさん発表が聞けたり、ひさびさに会う方々といろいろお話できました。みなさまありがとうございました!発表のためにコード書いたり、YAPCでいろいろ話聞いたりするので、だいたい秋あたりが一番元気がでてくる感じがします。 Perl 今昔物語でnaoyaさんもおっしゃってましたが、京都からの参加組はどうしても同窓会っぽい感じになってしまうのですが、それはそれで楽しい! 僕はホームディレクトリに埋もれた便利なコードをさがせ!という発表をしてきました。 ホームディレクトリに埋もれた便利なコードをさがせ! from Yohei Fushii ホームディレクトリにうまっているようなちょっとしたコードは社内でどんどん共有すると捗るよ! という話です。はてな社内で最近使っていた、Guitaという gist clone の紹介もしました。 ス

    YAPCに参加して gist cloneを作ってるという話をしてきた - はこべにっき ♨
  • YAPC::Asia で 「ページャ実装マニアックス」という題目で発表してきました - はこべにっき#

    YAPC::Asia 2010に参加して LT で発表しました。ページャ実装マニアックスという題目で、はてなにおけるページャ実装について紹介しました。 スライド内で大量のページャ実装を紹介していますが、もちろんまったく別の実装ということはないです。いくつかの共通クラスを継承してカスタマイズしたものを使っています。 スライド内でもいってるようで、単にページャといってもさまざまな要素がからんでいます。これを踏まえてページャをうまく抽象化できる実装が考えられると良いですね。 ページャ実装マニアックスView more presentations from hakobe.

    YAPC::Asia で 「ページャ実装マニアックス」という題目で発表してきました - はこべにっき#
  • 1