2015
06/29
01:54

[斜め読み] ハッカーのためのユーザ獲得方法Latest!

[斜め読み][グロースハック]

The Hacker's Guide to User Acquisition http://austenallred.com/user-acquisition/book/ * 2015年の本 * マーケティングの本ではない * ハッカーやメイカーのための、全くのゼロから自分の製品やサービスを知ってもらうための方法を紹介する * メディアに取り上げてもらうように頼む * この方法で、Time Magazine BBC The Guardian TechCrunch PandoDaily Slate Gizmodoのほか、何百ものブログに取り上げてもらえた * 戦術とアプローチ * リポーターの習性を理解する * 興味のあることは何か * 権威のあるリポーターか、駆け出しのリポーターか * リポーターはまず他の人がどう言っているかを調べる癖がある * メディアのランクづけ * 他の人がどう言っているか、という鶏と卵の問題を解決するために、まず記事にする内容に植えている小さなブログから始め、じょじょに大手サイトへと働きかけていく * 小さなブログをどうやって見つけるか そのリスト作成方法

2015
06/24
22:56

[斜め読み] Goのパッケージ管理について

[Go言語][golang]

DEPENDENCY MANAGEMENT AND GO http://jbeckwith.com/2015/05/29/dependency-management-go/ * 2015年5月の記事 * パッケージ管理に欲しい機能 1. 再現可能なビルド 2. プロジェクト語の環境 3. 広く使われていること * 素のGoではこれらが実現されていない * ライブラリのAPIに後方互換性のない変更が加えられるととたんに動かなくなる * 解決方法 * ライブラリをソースツリーにコピーする * インポート文がコピーした場所を指すように書き換える * プロジェクトごとにGOPATHを書き換える * パッケージ管理のツールが大量にある、20個以上 * Godepがおすすめ https://github.com/tools/godep * Godepは欲しい機能をすべて満たしていて、コミュニティでも人気がある * Godepの使い方 * いつもどおり go get する * つづいて godep save すると、依存しているパッケージが ./Godeps にコピーされる

2015
06/24
08:30

nemoで複数ファイル選択時に名前の変更を行うとThunarのバルクリネームを起動するようにする

[Ubuntu]

nemo 2.6.6では複数ファイルを選択した時のリネーム操作で起動するプログラムを設定できるようになっています。 Thunarのバルクリネームは非常に便利なので、nemoから起動できるようにします。 nemoの[設定] - [挙動]タブ - [一括名前変更] に次のコマンドを入力します `` thunar --bulk-rename %F `` ![ファイル管理の設定_035.png](/userdata/blog/ファイル管理の設定_035.png) これでnemoからバルクリネームを起動できるようになりました。 ちょっと前に試した時はうまく行かなかったのですが、アップデートのせいかいつの間にか動くようになっていました。

2015
06/23
03:06

簡単に暗号化/匿名化メッセージが送れるBitMessageの使い方

[暗号化][メッセージアプリ][Bleep][BitMessage]

[GoogleがGmailの利用情報を米司法省に提供していたことが明らかになりました。](https://firstlook.org/theintercept/2015/06/20/wikileaks-jacob-appelbaum-google-investigation/) 対象になったのはTorの開発者で、WikiLeaksのボランティアをしている人物なので、一般人には関係ないと思うのですが、Googleがこの事実を隠していたということもあり、あまり気持ちの良いものではありませんね。 メールで暗号化/匿名化というとGnuPGなどがありますが、導入に手間がかかるためかあまり利用されていないようです。 その点BitMessageならインストールするだけで使えるのでより敷居が低いのではないかと思います。 BitMessageはBleepと同じように分散ネットワーク、公開鍵暗号での通信を行いますが、違う点もいくつかあります。 * オープンソース * 送れるのはテキストメッセージのみ * モバイル版がない * アドレスを複数持てる * 送受信者の特定が困難 * チャンネルというメーリングリストに似た機能がある

2015
06/21
22:15

[斜め読み] スレッドプールを使ってNGINXを9倍高速化する

[斜め読み][サーバ][nginx]

(注:画像やコードは元記事を参照のこと) Thread Pools in NGINX Boost Performance 9x! http://nginx.com/blog/thread-pools-boost-performance-9x/ * 2015年6月の記事 * nginx 1.7.11以降ではスレッドプールという機能が追加されている * nginx 1.9.0を使ったベンチマークでは9.5倍高速化できた * ただしスレッドプールはいつも役に立つわけではない、メモリにキャッシュが収まってしまうような場合には不要なオーバーヘッドになる * リクエストされたデータがメモリに収まりきらないような場合に有効、たとえばストリーミングデータサーバなど * スレッドプールを使うにはnginxを ``--with-thread`` オプション付きでコンパイルする必要がある * スレッドプールを有効にするには、locationコンテキストに ``aio threads`` という一行を追加するだけ * ``thread_pool`` ディレクティブを使ってより細かく設定することもできる

2015
06/17
22:54

[斜め読み] Goで便利なテクニック10個

[斜め読み][golang][Go言語]

(注:画像やコードは元記事を参照のこと) * The Original Article http://arslan.io/ten-useful-techniques-in-go Ten Useful Techniques in Go * 2014年7月の記事 * ここ何年かで学んだことのまとめ * アプリケーションがスケールするために必要なこと 1. GOPATHをひとつだけにする * 複数のGOPATHを使うとスケールしない、また複数のGOPATHが必要になったことは一度もない。 2. for-selectでbreakを使う代わりに関数にラップする * for-selectでbreakを使う代わりに、関数に入れてreturnを使う。こうするとエラーやその他の値を返すこともできる。 3. 構造体の初期化にタグ付きリテラルを使う * リテラルにタグをつけていないと構造体にフィールドを追加するとコンパイルできなくなる。 4. 構造体の初期化を複数行に分ける * 二つ以上のフィールドがある場合は複数行に分ける。コードがより読みやすくなる。 5. 整数の定数にString()メソッドを追加する

2015
06/15
04:32

SkypeやLINEのかわりにBleepを使おう

[Bleep][暗号化][メッセージアプリ]

[Bleep](http://www.bleep.pm/)はアメリカのBitTorrentという会社が開発したメッセージングアプリです。 今年の5月にiOS版がリリースされ、すでにリリースされていたAndroid、Windows、MacOS版と合わせて4つのプラットフォームで使えるようになりました。 ### なぜBleepか? Skypeは[政府機関がリアルタイムで監視可能](http://gigazine.net/news/20150113-agency-grab-all-skype-traffic/)みたいですし、LINEは[韓国政府が公式に監視している](http://facta.co.jp/article/201407039.html)ことを認めています。韓国には通信の秘密を守る法がないそうなので、同じ韓国産アプリであるカカオトークも同様でしょう。 Google Hangout、Facebook Messanger、Wiper、SnapChat、WhatsUPなどのアメリカ企業が提供するメッセージングアプリも、プライバシーが保護されているかどうか怪しいと思います。 もちろんこれらのサービスを提供している企業は、プライバシーを尊重すると言っていますが、エドワード・スノーデン氏がNSAの諜報活動をすっぱ抜いた時にはマイクロソフトだってそう言っていたわけで、彼らの言うことを鵜呑みにするわけにはいきません。

2015
06/11
02:09

[斜め読み] Goで美しいミドルウェアを書く方法

[斜め読み][golang][Go言語]

Writing Handsome Golang Middleware http://laicos.com/writing-handsome-golang-middleware/ (注:画像やコードは元記事を参照のこと) * 2015年5月の記事 * http.Handlerを入れ子にしてミドルウェアを書くのは見た目が良くない こんなやつ > http.Handle("/thing", acl.ValidToken(logger.RestApi(rate.Limiter(thing.Post)))) * 目的 * 見通しの良いルート定義 * 標準のルータや人気のあるライブラリと互換であること * Contextがミドルウェアに順次渡されていくこと * 可能な限り少ないコード * 直感的で複雑ではないこと * できれば共通のエラーハンドラも * 現状 * いくつか便利なパッケージはあるが、もっと簡単にできると思う * Aliceというパッケージは人気があって、私も選んだだろうと思わせる、jsのPromise風。でも直感的ではないので、目的に反する。InterposeやNegroniは一風変わった方法を取っていて目的に合わない。

2015
06/08
02:34

[斜め読み] golangでhttp.HandlerFuncをラップするテクニック

[斜め読み][golang][Go言語]

(注:画像やコードは元記事を参照のこと) The http.HandlerFunc wrapper technique in #golang https://medium.com/@matryer/the-http-handlerfunc-wrapper-technique-in-golang-c60bf76e6124 * 2015年4月の記事 * Go Programming Blueprintsの著者 * まとめ:http.HandlerFuncを引数に受け取って、新しいhttp.HanlderFuncを返す関数は、ハンドラの実行前と実行後に処理を行ったり、処理そのものを実行するかどうか決めたりできる。 * ログや認証、DBへの接続、ヘッダの書き込みなどに使える * 元のハンドラとラッパ関数の間でオブジェクトの受け渡しをするには Gorilla's Context Packageでやっているように*http.Requestをキーにしたmapにオブジェクトを格納する * リクエストに必須の値(APIキーなど)がない場合に処理を中断してエラーを返すこともできる

2015
06/04
05:13

[斜め読み] net/contextパッケージの紹介とhttp.Hanlder

[斜め読み][golang][Go言語]

Go's net/context and http.Handler https://joeshaw.org/net-context-and-http-handler/ (注:画像やコードは元記事を参照のこと) * 2015年5月の記事 * /x/net/context はまだ標準ライブラリの一部になっていないが便利 * Go並行処理パターン: Context で紹介されたcontextパッケージについての記事 * ウェブアプリのミドルウェア間で値の受け渡しをするのにも使える * Contextについて強調したいのは、Contextは他のContexから派生してツリー構造を作るということ * http.Handler.ServeHTTPの引数にcontext.Contextは渡せない、ではどうするか? 1. グローバル変数を使ってリクエストとコンテキストを対応させる 2. http.ResponseWriterをラップするカスタム型を作る 3. 独自のハンドラ型を作る * リクエストとコンテキストを対応付けるやり方 * Goriila Web Toolkitのcontextパッケージで使われている

2015
06/02
00:02

[斜め読み] Go並行処理パターン:パイプラインとキャンセル処理

[斜め読み][golang][Go言語]

Go Concurrency Patterns: Pipelines and cancellation https://blog.golang.org/pipelines (注:画像やコードは元記事を参照のこと) * 2014年3月の記事 * Goにはパイプラインの厳密な定義があるわけではない、パターンの一つ * パイプラインはステージをchannelでつないだもの、ステージは同じ関数を実行するgoroutineの集まり * 最初のステージをsourceもしくはproducer、最後のステージをsinkもしくはconsumerとよぶことがある * 3つのステージがあるパイプラインの例 * 最初のステージ リストから整数を一つづつ取り出してchannelに送る * 二番目のステージ 最初のステージから受け取った整数を二乗して次のchannelに送る * 最後のステージ main()で二番目のステージから受け取った値を表示する * 一つのchannelから複数の関数が値を読み出すことを fan-out といい、ジョブの分散に使える * 逆に複数のchannelからの出力を束ねて一つのchannelにすることを fan-in という