読者です 読者をやめる 読者になる 読者になる

愛と勇気と缶ビール

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

gitのbranch ruleを決める際の個人的チェック事項

git

プロダクションリリースの前は適当でいい。適当にfeature branch切ってガンガンmasterにmergeしてdeployすればいい。変更の種類によっては直接masterにぶち込んでしまえばいい。スピード感が大切な時期なので、いちいちbranch ruleを定めてそれを遵守するこ…

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

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での実装に逃げた、あの夏。あの夏はどうでもいいのだが、さあプログラミング言語をやりましょ…

人力classリゾルバーの怪

静的型付けの言語がいいか動的型付けの言語がいいか、みたいな議論は聞き飽きたし今更その変種を蒸し返す気はないのだけれど。例えば、合計して数百個以上のclassがあって、いわゆる継承とかも必要十分なレベルで使われているobject-orientedな設計がなされ…

homebrewで古いversionの何かを入れたくなったときの話

アプリケーションやらコマンドラインツールやらをマシンにぶっ込む時って、当たり前ですが一個一個手で入れるよりパッケージマネージャ的なもので一元管理されてると便利ですよね。僕は手元の環境としてはMacを使っているのですが、最近は いわゆるデスクト…

まあBlocksKitは黙って使っとけや、という話

iOS

Objective-Cにはdelegateという面妖な仕組みがあって、いや実は面妖でも何でもなくそれなりに由緒も由縁もある機能なのだが、結局「コールバック関数を必ず何らかのオブジェクトのメソッドとして実装しなければならない」というのは面倒なので、それをいわゆ…

アンサイクロペディア・ブラウザ2というアプリをScalaで作ってGoogle Playに出した

https://play.google.com/store/apps/details?id=com.nilsoft.Unreader2以前にも作っていた、アンサイクロペディア専用ブラウザ的なものです。しばらく前に家のマシンをArch Linux/半自作PC からOS X/Mac miniに移行した際にそれまで作っていたAndroidアプリ…

no title

未知の領域で開発を始める時には、環境を整えすぎてはいけない - 愛と勇気と缶ビール とかなんとか書いたけども、実際は「新しいことは(可能なら)一回に一つまで」の方が適切かもしれない、と思っている今日この頃。要は「新しい言語/環境を使って、今まで…

メールのURLをクリックしたくないです

なんかこう、メールアドレスを入力させて、メールに書いてあるリンクをクリックしてユーザ登録してね!みたいなサービスがあるじゃないですか。ああいうのを自動化したい時って、もちろんPOP3とかでメールを取りに行ってもいいんだけど、GmailならGoogle App…

拝啓 プログラマー35年定年説について

プログラマー35歳定年説なんてゲーム脳並みに信用できない言説なのは火を見るより明らかなので今更それを否定する気も起こらないのですが、一応。日本のITゼネコン構造とかエンジニアの待遇とか移り変わりの激しい業界だからとか諸説ございますが、僕が思う…

僕が◯◯言語でiOS/Android/Othersアプリが全部書けますよ系のソリューションを真面目にやる気になれないのは

結局そういうやつを使っても、元々のObjC/Javaで提供されているAPIとラッパーAPIの間のマッピングを頭の中に持たなくちゃいけないんじゃないの?って思うからですね。だったら初めから元々のAPIを使って書いた方が楽だろうと。これは、iOS/Android周りの勉強…

僕が最近短いブログエントリを量産しているのは

自分の考えたこととか、思いついたアイデアってうんこみたいなもんだと思うんですよね。これ「僕の思いつくことなんてうんこみたいなもんです、ハハ」という謙遜ではなくて、まじもんのうんこに近い意味です。うんこを出さないと体に悪いので、今年は考えた…

なんとかScriptがあと何個出てこようとあなたがブラウザ上でまともに動くコードを書けるようにならないワケ

JavaScriptよく分からないです><と言っている人はだいたい以下の要素のうち自分が何を理解していないのか分かっていないしそれら個別の要素についてちゃんと勉強する気もないのでJavaScriptにtranslateされる言語が今後いかに増えようともブラウザ上でまと…

「いつまで開発のやり方ばっかり語ってるの?」っていうスライドのタイトルがセンセーショナルな響きをもつこと自体が異常だという話

(省略されました)

XcodeのiOS appでprojectの直下にresourcesっていう名前のreference folderを作ると"The application does not have a valid signature"と言われて爆死する

iOS

http://www.two-tails.com/2010/01/12/the-application-does-not-have-a-valid-signature/どういうことだってばよ!

未知の領域で開発を始める時には、環境を整えすぎてはいけないとはいいつつも

iOS

iOSアプリでthird partyなライブラリを利用する際は、CocoaPods使わないと超絶めんどくさいので可能な限り早く使った方がいい。まる。まだ枯れてないのかなーと思ってたけど今のところ全然問題ない感じ。