タグ

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

  • 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アプリケーション作る練習をした - はこべにっき ♨
  • 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) - はこべにっき ♨
  • Goによるプライベートネットワークへのアクセスを禁止するHTTPクライアントの実装 - はこべにっき ♨

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

    Goによるプライベートネットワークへのアクセスを禁止するHTTPクライアントの実装 - はこべにっき ♨
  • オブジェクト指向入門読み終わった - はこべにっき ♨

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

    オブジェクト指向入門読み終わった - はこべにっき ♨
  • golangで書かれたSlack bot でエンジニアに話題提供しよう - はこべにっき ♨

    こんにちは、id:hakobe932 です。はてなエンジニアアドベントカレンダーの18日目として、はてな社内で導入をためしている話題提供Slack botの機能と実装について紹介します。昨日はid:astj による Herokuとwerckerによる継続的インテグレーション・自動デプロイでperlのwebアプリケーションを開発するでした。 #enginnerで技術交換 はてなではメインのチャットツールとしてSlackを活用しています。チームや職種などの単位のたくさんのチャンネルがあり、それぞれのチャンネルでコミュニケーションが行われているのですが、もっぱら技術的な議論を行っているのが #enginner というチャンネルです。#engineer では、チームをまたいだ技術的な相談のほか、新技術や勉強会の紹介など、技術に関わるさまざまな話題で情報交換しています。 もっと技術の話題でわいわいし

    golangで書かれたSlack bot でエンジニアに話題提供しよう - はこべにっき ♨
  • 社内技術勉強会でScalaのおすすめポイント解説した - はこべにっき ♨

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

    社内技術勉強会でScalaのおすすめポイント解説した - はこべにっき ♨
  • Scala in Perl Company という内容で発表しました #yapcasia【YAPC::Asia Tokyo 2014】 - はこべにっき ♨

    Scala In Perl Company : Hatena - YAPC::Asia Tokyo 2014 Scala in Perl Company という内容で発表しました。はてなではPerlを10年近く利用していますが、最近作っているMackerelというサービスの開発ではScalaを利用しています。この発表では、Perlによるソフトウェア進化の困難さと、Scalaでその課題がどのように解決できるかについて解説しました。 発表時間がたりず、ScalaでのWebアプリケーション開発についてはくわしく紹介できなかったのですが、資料にはその部分も含めています。雰囲気でもつたわればうれしいです。話しきれないところがいろいろあったので、まだ会場にいる方はぜひ声をかけてください!

    Scala in Perl Company という内容で発表しました #yapcasia【YAPC::Asia Tokyo 2014】 - はこべにっき ♨
  • プログラミング言語の基礎概念を学んでる - はこべにっき ♨

    プログラミング言語の基礎概念 (ライブラリ情報学コア・テキスト) 作者: 五十嵐淳出版社/メーカー: サイエンス社発売日: 2011/07メディア: 単行購入: 6人 クリック: 60回この商品を含むブログ (12件) を見る このを読んで学んでる。まだ半分くらいで関数の定義とかについて勉強してる。 プログラミング言語の動作を数学的に厳密に記述する方法を順番に教えてくれるという内容で、記述には導出システムが用いられてる。基的な算術式からはじまって、変数の定義や関数の定義、パターンマッチや型システムなど、様々な言語の機能を推論規則によって定義する方法を教えてくれる。与えられた規則が意味的に意図したものを表しているかの証明だけでなく、証明のやり方もくわしく説明されていて丁寧でたすかる。 おもしろいのはこののためのオンラインの演習システムというのがあって、の中で与えられた導出システムに

    プログラミング言語の基礎概念を学んでる - はこべにっき ♨
  • ドメイン駆動設計読んだ - はこべにっき ♨

    エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践) 作者: エリック・エヴァンス,今関剛,和智右桂,牧野祐子出版社/メーカー: 翔泳社発売日: 2011/04/09メディア: 大型購入: 19人 クリック: 1,360回この商品を含むブログ (130件) を見る ドメイン駆動設計読み終った。ドメインを中心に据えてソフトウェアを設計するための方法を教えてくれるだった。設計の話なので、抽象度が高く、なかなか読み辛いけど、良い話がたくさんでてくる。こので例にでてくるソフトウェアが経理システムだとか貨物の配送システムなどのエンタープライズよりだったので、はじめは自分のようなWebエンジニアとっては参考にしにくいかと思っていたのだけど、まったくそういうことはなく、たいへん参考になった。 ドメイン駆動設計でいうドメインとはソフトウェアが

    ドメイン駆動設計読んだ - はこべにっき ♨
  • Team Geek読んだ - はこべにっき ♨

    Team Geek ―Googleのギークたちはいかにしてチームを作るのか 作者: Brian W. Fitzpatrick,Ben Collins-Sussman,及川卓也,角征典出版社/メーカー: オライリージャパン発売日: 2013/07/20メディア: 単行(ソフトカバー)この商品を含むブログ (20件) を見る Team Geekを読んだ。チームの生産性を上げるために、どうやって人間関係やコミュニケーションの問題に取り組めばよいかという、実践的なテクニックがいろいろ詰まっていておもしろい。謙虚・尊敬・信頼という信条を中心に、個人、チーム、組織そしてユーザ、それぞれとどのように付き合えばいいか、いろいろな例を使って教えてくれる。おもしろい感想エントリもたくさんあるので、内容が気になる人は読むと良さそう。 L'eclat des jours(2013-07-21) Jun Muka

    Team Geek読んだ - はこべにっき ♨
    m_shige1979
    m_shige1979 2014/01/04
    参考になる
  • 作ってみたものの飽きそうなWebアプリはherokuで動かしておく - はこべにっき ♨

    合宿で heroku 使ってたチームがあって、とても便利そうだった。昔、Node.jsで画像アップローダをつくったんだけど(node.jsでtrayという画像アップローダを作った - はこべブログ ♨) 自分のVPSで雑に動かしていて、飽きてしまうとあんまり気にしなくなって、止まっても放置したりしてた。それくらいであれば、herokuで一旦動かすようにしておけば、可用性は担保されるだろうと思い立ち、herokuで動作させることにした。 動いている様子はこちら: http://imagetray.herokuapp.com/ 左上のマスに画像をドラッグ・アンド・ドロップすると画像がアップロードされる。誰かがアップロードするとリアルタイムに更新される。コードを更新したり、しばらくだれも使ってなかったりして、herokuホストがrestartされると、アップロードされた画像は消えてしまう、刹那

    作ってみたものの飽きそうなWebアプリはherokuで動かしておく - はこべにっき ♨
  • 階層を増やしすぎるとテストが多くなりがちという問題 - はこべにっき ♨

    テスト書きすぎ問題 - hitode909の日記 いい話。だいたい同意見で、テストはなるべく書こうとしたい。後からコードに変更を加える人が安心できるように、テストには書いてるコードがどう有るべきかという情報が全部網羅されていてほしい。コードがあるべき状態ではなくなって動かなくなったときは、必ずテストが落ちて欲しい。 とはいえ、テスト書きすぎてしまって良くなかったなあと思うことはある。アプリケーションの設計の階層が無駄に深くなっていて、各階層ごとに似たようなテストをなんども書く事態に陥ったりするような場合だ。 例えば、何かブログみたいなWebアプリを作っていて、エントリー投稿する機能を実現する機能が以下のクラスに含まれていたとする。 Blog::Controller::Entry ディスパッチャから呼ばれるエントリーポイント Blog::Handler::Entry HTTPリクエストからE

    階層を増やしすぎるとテストが多くなりがちという問題 - はこべにっき ♨
  • 1