愛と勇気と缶ビール

ふしぎとぼくらはなにをしたらよいか

golangのいいところ

っていうのは、恐らく、「おめーらはうだうだ言うかもしんないけど、俺らの経験から言えばこの言語機能はこれ位で実用上はそこまで問題ないし、その上で充分効率的に実装できるわー」という非常にレベルの高い割り切りなんだろうなー、と。 The Go Programmi…

2014年度版 ScalaでAndroidアプリを作るの術

前略、ScalaでAndroidアプリを作るのは超簡単ではないが、ロケット工学ほど難しくはない。Javaを除くJVM言語族で最も環境が整っているといっても過言ではないだろう。 android-pluginよ、さようなら ScalaでAndroidアプリを書くとなると、大体の場合は jberk…

Dockerでドッカーンとdeployする

ごめん、言ってみたかっただけ。

不便な生活をしていたことは、便利になってみるまで分からない

Panasonic 無接点充電パッド ChargePadチャージパッド ブラック QE-TM101-K出版社/メーカー: パナソニック発売日: 2011/06/24メディア: Wireless Phone Accessory購入: 5人 クリック: 93回この商品を含むブログ (18件) を見る これを買いました。結論から言…

Net::OpenID::Connect::IDToken作った、だいぶ前に

Naosuke Yokoe / Net-OpenID-Connect-IDToken-0.02 - search.cpan.org OpenID Connectのid tokenをencode / decode+verifyするやつです。JSON::WebTokenの上にのっかっています。a_hashとかc_hashとかもよしなにやってくれる君です。 ちなみにこの道のCPAN m…

そろそろcreateObjectURLについてひとこと言っておくか

と思ったんだけど、書こうとしていたことは下の記事におおむね書いてあったので俺が一言いう必要はなかった。 createObjectURLとは何か? - NullPointer's Blog 新しめのAPIでURLを期待されるような場面では、createObjectURLで得られるBlob URLが使えるかど…

DOM Level 0 (ドラゴンボール・オラ・もて男・レベル・ゼロ)

オッス!オラ孫悟空!最近流行りのHTML5を追いかけてモテを目指すのもいいけど、DOM Level 0も堅実な男性ってイメージで素敵だよな! ところで、iframeにnameを指定してDOM Treeに追加した上で、同じnameを第二引数に指定してwindow.openするとブラウザは新…

Perlでのmock(実はstub)とinline object

単体テストを単体テストたらしめんために(?)、stubとかmockを使ってテストの対象ならざるモジュールを脇によける、ということをよくやる。 僕は、PerlではTest::Mock::Guard、JSではSinon.JSのsinon.stubなどを使う。 mock対象の関数が本来オブジェクトを…

2013年 Android 2.3系 Advent Calendar一日目

Event.prototype.stopImmedidatePropagationがない => ない場合は使わないことで回避 Hoge.prototype.delete = function() {}; みたいな記述でエラー => deleteがキーワードだから引っかかっているのだろう。これは本当は俺の書き方が悪いのかもしれない。 H…

TODOリストとamazonのwish list

長大なTODOリストに意味はない、TODOリストはやらないことを決めるためにあるのだ、というようなことを以前に書いたけど、amazonのwish listについても同じようなことが言えそうな気がしてきた。 ありとあらゆる種類の技術書が揃った長大なwish listはあなた…

情報系学生向けの読書術・2013年度版

僕も数年前までは情報系の学生だった。情報系に限らず、学生というものは お金がない しかし、時間はある ものと相場が決まっている。以下のガイドは、上の条件に基づいて情報系学生にとってベストな読書術(というよりは書籍購買術)を提案するものである。…

JavaScript文字列の動的生成におけるエスケープ(については特に書いていない)

Content Security Policyの利用 ('unsafe-inline'なし) が前提の場合、 <script src="http://kyokashiteiru.org.in/external.js"></script> // external.js var s = "ここに動的生成される"; みたいな形式、もしくはDOM埋め込みでないといけない!知らんけど! めんどうくさいWebセキュリティ作者: Michal Zalewski,上野宣,新…

.gitconfigのincludeは設定値をoverrideしてくれるわけではない

ので、例えば家と会社で別々のuser.name, user.emailなどを使いたい場合は.gitconfigにはそれらの情報を書かずに、 .gitconfig [include] path = .gitconfig.local .gitconfig.local for home [user] name = your_handle_name email = nantoka@gmail.com .gi…

僕のなんとなく思う実践的コードリーディング

コードリーディング、というのは他人のコードを読むことだが、一般的にはよいこととされている。なんとすれば、他人のコードを読むことによって自分のそれとは異なる考え方を学ぶことが出来るからである。 が、純粋な勉強目的のコードリーディングというのは…

はてなブログに移行しました

はてな記法をよく忘れるので。 無数にあるwikiモドキの記法を一々覚えるには人生は短すぎる。 なぜ多くのwikiモドキ製品の開発者が新たなオレオレ記法を作りたがるのか謎である。お前の好み?知らん知らん。Markdownだって別にベストとは思わないが、wiki記…

Gruntfileの分割は大人しく.jsでやれ、.jsonでやるなという話

海外のblog等の内容を紹介して何事かを述べた気になるのは好きではないのだが、現状おおむね以下のような感じでいいのではないかと思っている。http://www.thomasboyt.com/2013/09/01/maintainable-grunt.htmlまあもっと他にいい方法はあるかもしれないが、…

初めから厳密すぎるテストを書くのは筋悪なのではないかという話

これは人それぞれのコードの書き方に依存するので必ずしも筋悪というわけではない。むしろそういう風に書いてしまえる人もいるだろう、くらいの話。何が言いたいかというと、自分の場合、ある程度は頭の中でまとめつつとりあえず手を動かして書いてみる→気に…

「主語がない」というツッコミの9割以上は間違っている件

これ自体どこかで見たような気がするツッコミだけど、ググって既出かどうか確かめるのすら面倒くさいので書いてしまう。 「主語がない」というツッコミはよく耳にするが、ほとんどの場合足りないのは主語以外の何かであったり、あるいは単に「文の要点が分か…

俺はアニメ好きでもなければ、ラノベ好きでもない

どうも、多くの人の頭の中で「アニメを見ない人」「アニメを見る人」という区別は濃淡のあるグラデーションではなく0 or 1の2値表現となっているようだ。なので、僕のように「自分の特に気に入った特定のアニメについてはフォローしているが、他には一切興味…

JSON Web Token (JWT) Profile for OAuth 2.0 Client Authentication and Authorization Grantsについて

長い!タイトル長い!昨日お酒を飲んでいる時に教えてもらったのでメモ。http://tools.ietf.org/html/draft-ietf-oauth-jwt-bearer-06端的に内容を書くと、その名の通り OAuth2の各種フローにおけるclient認証にJWT Bearerを使えるように OAuth2のauthorizat…

現時点でのJavaScriptのmodule管理やらtestやらの、個人的なベタープラクティス

現時点での僕にとってのベタープラクティスであり、全ての場合に通用するベストプラクティスではありません。開発規模が違えば当然別のベタープラクティスがあるでしょう。 module管理 100個を超える.jsがあるようなゲーム or ガッツリしたアプリケーション…

oreilly.comがより便利になっていた(主にKindle的な意味で)

もとより英語の技術書を買う上では高いコスパを誇っていたoreilly.comだが、最近(前からかもしれないが…)、以下の機能が追加されてより便利になった。 Dropboxアカウントと連携して、予め選択したフォーマットでワンクリックでDropboxに送る (Send to Drop…

apple-touch-iconはいつfetchされるか

iPhoneの場合、Mobile Safariのいわゆる「送る」ボタンを押した時に画像が必要になるためその時点でfetchされる。(※iOS 6.1.2での話。古いのは知らん)ホーム画面にショートカットを追加して以降は、apple-mobile-web-app-capableの値に関わらずショートカッ…

Google Chrome for iOSはイカれている

http://code.google.com/p/chromium/issues/detail?id=136610↑のissueにも挙がっている通り、iOS SafariではUIWebViewを使っている関係でJSにおけるwindow間の連携を要するAPIがぶっ壊れている。例えば、以下のように。 window.openで返ってくるのがWindow o…

僕のOS遍歴

まぁ誰も興味はないだろうが、なんとなく書き綴るもまたよし。 大学4年で研究室に入ったころは、Windowsしか触ったことがなかった。研究室のワークステーションはSolarisであった。当時の僕にとって、Solarisとは「使いにくいだけの何か」だった。就活で箔を…

CSSを学びたくなければBootstrapを使え、学びたければinuit.cssを使え

と、ソクラテスが言ったとか言わないとか。

More Transactional Redis (2) - Lua Scripting in Action

前回の記事: More Transactional Redis (1) - Redis is not a transactional storage - 愛と勇気と缶ビールLua Scriptingでatomicな処理を実現できるぜい!ってとこで前回の記事は終わっていました。今回は、Lua Scriptingを試す際に踏むとよいであろうstep…

More Transactional Redis (1) - Redis is not a transactional storage

オッス!オラ孫悟空!みんな元気にしてっか?突然だけど、オラ、Redisに保存してるデータに以下のような操作をしてみたくなっちまったんだ!これ擬似コードな! 1: score = ZSCORE {key} {member} 2: if ( ! score ) { 3: score = defaultScore 4: } 5: ZADD…

一体いつからRedisがSorted Setの実装にSkip Listしか使ってないと錯覚していた?

デフォルトの設定 (zset-max-ziplist-entries, zset-max-ziplist-value) では 該当するSorted Setのエントリ数が128個以下 該当するSorted Setに含まれるmember (not score) のデータ長が全て64byte以下 という2つの条件が成立している場合、Sorted Setの表…

High Performance Browser Networking

一部(?)に需要があったようなので、再掲。実はまだ全部読んでおらず、物理層やトランスポート層の話を脱してアプリケーション層というかHTTPに来た所。僕が主に興味を惹かれたのはTCP周りの話なので、その辺だけまとめる。読んだ本の要約?というのは、ヘ…