愛と勇気と缶ビール

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

2013-01-01から1年間の記事一覧

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 = [email protected] .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周りの話なので、その辺だけまとめる。読んだ本の要約?というのは、ヘ…

The Google Graveyard

訳するなら「Google墓地」?いや、これくらいだったら訳することに何の意味もないのだけど。http://www.wordstream.com/articles/retired-google-projectsこれをもって「Googleはいつサービスを終了するか分からんから、信用できない。やつらのサービスを使…

3-way handshakeから始まる恋もある

http://shop.oreilly.com/product/0636920028048.do例によってoreilly.comがsaleをやっていたのでホイホイ買ってしまいました。説明だけ見ると「HTTP 2.0とかWebSocketとかWebRTCとか超ナウいっすね!モテモテっすね先輩!」って感じなのですが、今のところT…

なんとなくDBD::mysqlにpull-req送ったらなんとなく取り込まれていた

ちゃんと自分で動作検証してからblogを書こう、書こうと思っていたのですが、めんどくさくなったのでやらずに書いてしまいました。すいません。よい子はマネをしてはいけません。 ちなみに、会社の同僚が検証してくれておりますので、使用自体に問題はないは…

最近のiOS, AndroidのNative AppにおけるJavaScript連携に関して

iOS iOSについては、何となくWWDCのスライドを眺めていたら、「iOSとMac向けの新機能として、JavaScriptCore.frameworkっていうのを作ってObjective-CレイヤからJavaScriptを実行したり、その逆をやったりできる機能を提供するよ」という内容のがあった。WWD…

Rails雑感

最近、いわゆるRailsの古めのバージョンで書かれたプチレガシーな感じのアプリケーションを触っていて思ったこと。ちなみに、この話題は多くの人にとって大分今更感のある内容なので、逆にこれを読んで「今更だなぁ、そんなのとっくに結論出てるでしょ」と思…

Ruby始めました(冷やし中華はじめました)

始めました、というのは厳密にはウソ。なぜなら、大学の時に1.8.7だか1.8.5だかを触っていたので。研究のためのシミュレータをJavaで書くのがダルくなって、Rubyでの実装に逃げた、あの夏。あの夏はどうでもいいのだが、さあプログラミング言語をやりましょ…