サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
災害への備え
blog.dodgson.org
GitHub 謹製 Atom エディタが Shadow DOM を使い始めたという。 めでたい。せっかくだから私も Atom を使ってみよう。 起動してテキスト書きもそこそこにインスペクタで DOM を眺める。 するとあら素敵。Shadow DOM のみならず Custom Elements もばりばり使われているじゃありませんか。 ためしにステータスバーをつついてみるとわかる。 Atom は UI を React に書き直したものと思いこんでいたけれど、 React になったのはテキスト編集領域だけの様子。周辺の UI は Custom Elements ベースになりつつあるらしい。 もともと space-pen という jQuery ベースの内製フレームワークで書いていたものを、 徐々に Custom Elements 化していくという。 Atom, 意外と Web Component
これは VirtualDOM Advent Calendar 2014 に勝手に参加する記事です。 あたたかい春の昼下がりのこと、あるブラウザベンダの社内を不穏な噂が駆け巡った。 「React.js なるライブラリ、どうも仮想 DOM というやつのせいで速いらしいぞ」 もうリアルな DOM はお役御免、ブラウザも商売上がったりか・・・。雇用に不安を覚える人(私)がいる一方、 そのアイデアをとりこんでブラウザの DOM を速く出来ないかと考える人たちもいた。 仮想 DOM はなぜ速いのか。誰かのつてを辿って React.js チームにおいでいただき、速さの秘密をテックトークしてもらう。 イミュータブルなデータ構造による単純化、非同期適用による処理のバッチ化、差分アルゴリズムによる副作用の最小化… いくつかのアイデアはブラウザからはどうにもならないが、たとえば非同期化なんかは形は違えどブラウザ
Rebuild.fm に出させてもらいました。ありがたいことです。 さっそく録音を聞き直す。自分の声を聞くのは辛い・・・のはさておき、 リアクティブプログラミングの話は我ながら主張がよくわからない。 反省のため何が言いたかったのかを考え直したい。 たぶん趣旨は二つあった: A. RxJava や RxAndroid はなかなかいいやつだ。 B. リアクティブプログラミングは一つのはっきりした概念ではない。 A については試してもらえばわかるはず。ReactiveX のサイトからぽつぽつ資料を読めば済む。ここでは B を補足してみる。 X 指向は Y みたいなもの リアクティブプログラミングとは何だろう。どうもつかみどころがない。私は腑に落ちるまでけっこう時間がかかった。 このわかりにくさには大きく二つ理由があると思う。一つはプログラミングの概念をコードなしに説明する一般的な難しさ。オブジェ
たまには慣れない技術をさわろうと調べ物をはじめると、その技術の weekly や newsletter を名乗るメール配信サービスが目に付く。 たとえば Go には Golang Newsletter、Android には Android Weekly、 データサイエンスには Datascience Weekly がある。$要素技術名 {newsletter|weekly} で検索すると8割がた何か見つかる。 ずっと昔から続いているものもあるけれど、ここ数年で特に増えた様子。流行りの newsletter を紹介する記事も一年に一回くらい誰かが書いている。 よく知られた weekly のひとつ Ruby Weekly の発行者 Peter Cooper が ニュースレターの配信をはじめてみた感想を 2010 年に書いている。 2012 年にはメール配信サービス Mailchimp が彼をイ
大きなコードベースの真ん中あたりをさわっていると、仕事の大半はリファクタリングに費やされる。機能を足そうと書くコードも 8 割リファクタリングで新緑は 2 割。失敗して捨てるものも多いから、かける時間は 9 対 1 くらいかもしれない。 それどころかリファクタリング自体がプロジェクトにもなりうる。「今四半期はこの腐ったコードどもをなんとかするのが目標」というように。私もいま大きなリファクタリング、あるいはリアーキテクティング、の手伝いをしている。仕事時間のほぼすべてがリファクタリングに費やされる。今の勤務先で通用する唯一の特技がリファクタリングな私にとってこれはたぶん適職だ。 リファクタリングにコーディングの大半を捧げる人は他にもいる。 プログラマ相手の管理職をエンジニアリング・マネージャと呼ぶ。ほぼ全員プログラマ出身。現場に近いマネージャは多くがコードも書く。ただ血気盛んな人を除くと新機
Android 入門にあわせて Java も勉強しなおすかと Effective Java を読みはじめたらすっかり疲れてしまった。Java… 昔 Effective Java 初版を読んだ頃は結構好きだった気がするけれど、いま二版を読むとこれ Bureaucratic Java じゃないのという気がしてしまう。まあ Effective C++ を読んだ人も多くは Wicked C++ だと感じるだろし Effective JavaScript は Ridiculous JavaScript だろう。文句は言うまい。何事も慣れるには時間がかかる。Java 8 はだいぶマシと伝え聞くものの、Effective Java の三版がでるのはいつになることやら。 そんな日々の現実逃避に @Scale Conference のビデオを眺めていたところ、Netflix が RxJS でクライアントサイ
このごろ仕事の進みが悪く、しかもまったくの自業自得で肩を落としている。 今日はそれをふりかえり明日への糧としたい。反省文。 仕事の進みは「遅い」だけ。動いてはいる。一歩一歩は正しい。 でも一歩を踏み出すまでが遅い。正しい一歩を踏み出せる、正しい姿勢をとるのが遅い。 背中を丸め足を引きずる。たとえばこんなふうに… Bisection ある昼下がりにバグ修正を頼まれた。リグレッション。ここ三ヶ月くらいで壊れたらしい。 リグレッションを直す「正しい」一歩目は、二分探索で原因のリビジョンを探す bisection 作業だ。 でもこのバグ、bisection が面倒そう。なんとなく原因の想像はつくからあたりをつけて直してしまおう・・・ ・・・半日たち、結局あたりはつかない。日が暮れてしょんぼり帰宅。 翌朝気を取り直し bisection をしたら 2 時間でリビジョンの特定がおわる。あらら。 しかも
毎年サーバ代を払い忘れ止まってしまうさくらインターネットを撤収し、このサイトを EC2/S3 にうつしました。 懸念となっていた古い tDiary のデータは適当にひっこぬいて Middleman で整形済。 ブックマークサイトなどの古いリンクはリダイレクトされます。なにかしら移行にともなうバグがありそうなので、気づいた方はお知らせください。 さくらインターネットにも tDiary にも恨みはないというか恩しかないけれど経費削減ということでひとつ。 この機会に便乗し、Nginx とか Apache の設定をがんばってリダイレクトするかわりに Go でリバースプロキシ(?) を書いてみた。 適当キャッシュつき。設定ファイルとかはなしでぜんぶハードコード。まったくやるきない。 しかしこういうやる気ないコードが普通の速度でうごくのは Go の良いところかもしれない。デプロイもバイナリひとつ pu
いいかげんあんどろでも勉強するかと 6 年遅れくらいで重い腰を上げかけている。気が重い。スマホとか知らないっすよ・・・。 あんどろ、というかスマホ固有の話題は色々あれど、その一つがタッチベースの UI なのは間違いない。そういえばタッチというのはどうやって実装されているんだろうか。それを一通り眺めれば、少しは気の重さが晴れるかもしれない。ということで今日はタッチイベントの実装を眺めてみたい。実装といっても静電容量だの電磁誘導だのではなくユーザー空間の話です。そして老人の勉強記録であり目新しい話はありません。間違ってたら教えてください。 参照するコードは何も考えず repo sync で降ってくる AOSP master。たぶんだいたい 4.4.x 相当(だよね?) View#onTouchEvent() あんどろプログラマからみたタッチイベントはふつう View#onTouchEvent(
趣味は何かときかれたらインターネット企業ウォッチですと答えるかもしれない。そのへんの企業ゴシップに気を取られるよりコードでも書いてた方が百倍くらい有意義だとわかってはいる。でもついニュースを眺めて過ごしてしまう。職業上の便益を損ねるくらいだからこれは趣味と呼んで差し支えなかろう。中でも各種企業イベントのキーノート・スピーチ鑑賞はそんなおっかけ業のハイライトだ。 インサイダーからすると、キーノートは学芸会みたいなもの。隣のクラスの出来映えにやきもきすると同時に、自分のコードの晴れ舞台、たった一つの台詞を見守る。 インサイダーでないキーノート・・・つまり大半のキーノートは、言って見れば近所の高校の文化祭に行くようなものだろうか。あ、こういう学校なんだ、これが流行ってるんだ、なんてのが透けて見える気がして面白い。メディアが報じるキーノートは空気を伝えない。自分でビデオをみてこそ愛好家というものだ
あるとき Dark Matter Programmer という言葉をみかけた。ウェブやコミュニティに存在感のない、当人もそれを気にかけていない、プログラマをさす言葉。言い出しっぺの主張は、そういう人々の存在を忘れたり、見下したりすべきでないというものだった。 ダークマターはうまい比喩だと思う。正体がよくわかっていないらしいから適当さの粗が目立たず、その割にイメージは鮮烈。 他の比喩との相性もいい。たとえばスター。スタープログラマはダークマタープログラマの対極にいる印象だけれど、意図に立ち戻ればそれほど大げさでもない。何らかの可視性があればスターといえる。僕もあなたもスターなのがオンラインのコミュニティなのだろう。 さまざまな星 なんてきれいごとはさておき、乱暴に言ってダークマター以外がスターならスターにも色々ある。細かい隕石やガスなんかをさておくとしても、まず明るさ、等級が違う。あるいは自
ふと思い立ち転勤して Sunnyvale, CA にひっこしました。 会社がある Mountain View の隣町。写真はたぶんサンフランシスコです。つまり関係ない。 飽きるか挫けるかクビになるまでこのへんにいる予定です。 東京のみなさまお世話になりました。近所のみなさま適当にあそんでください。 ええとその、私がクルマを運転できるようになったあとで… 船便で送った荷物はあと一ヶ月くらい届かず、通販で買ったマットレスもあと十日は届かず、 やむなく借り物などで細々と暮らし中。ただし肉ばっかり食ってるせいで脇腹は太々してきた。やばい。 とりあえず自宅が IP reachable になった旨を記録しておきます。 写真: http://www.flickr.com/photos/thomashawk/531354977/
結婚の報告を兼ねた忘年会で、数年ぶりに何人かの顔を見る。 昔からの仲間たちに触発され、自分の青春はいつだったのか帰り道ふと考える。 青春というからには楽しい日々だったに違いない。 高校生の頃のことはよく覚えていない。もう連絡の取れる友達もいない。ただ過ぎていく毎日だった。 大学時代はもっぱらネットに入り浸っていた。私の大学生活は IRC でありブログ…当時はウェブ日記…だった。 濃密な体験だったけれど、楽しかったと素直に言えない青臭い屈折があった。 最初に勤めた会社は、楽しかったというには働きすぎていた。かわりに学びは多かった。 まあ有り余る体力に任せ仕事の後も遊んでいたから楽しいことも少しはあった気がする。 でも私にとって青春の日々と呼ぶにふさわしいのは、 最初に職場を変えやさぐれていた頃だったと思う。 週末の夕方遅く起きた私が部屋でぼんやりネットをみていると、同じ沿線に住む前職同期入社
社内で開かれたワークショップ形式の研修に参加したのは一年前、ちょうど今頃のこと。 それはたぶんチームワークのような何かを学ぶ会だったはずだけど、 私の感想は本題と関係なく「いいかげん真面目に英語を勉強しないとあかん」だった。 話が通じないとチームワークどころじゃない。 米国資本勤めの会社員からすると、英語はグローバル云々以前に仕事用 DSL みたいなもの。 英語ができないまま騙し騙し働くのはたぶん、 SQL が書けなからと ORM の上だけでコードを書こうとするのに似ている。できなくはないけど、いろいろしんどい。 幸い私は Web 開発者じゃないから SQL はわからなくていい。でも英語はやらないとダメっぽい。 入社二年半、ようやく現実を直視した。 最初はしゃべる練習をしようかと思ったけれど、そもそもしゃべる以外の英語すらできるといえるのか。怪しい。 むしろまず典型的日本人として英語ができ
出張中。時差ボケ修正のためキータイピングで眠気を払おうと試みているところ。 いつになくどうでもいい内容につき見逃してください。 最近はやりの Podcast 番組 Rebuild を聴きはじめた勢いで他の番組も聴くようになった。にわかポッドキャスト好き。 にわか欲があるうちに聞いている番組を紹介したい。といってもだいたい ”オススメ Tech Podcast 5選” の記事にあるやつなんだけど。ちなみに私の Podcast 歴がどれだけにわかかというと、rebuild.fm の序盤はブラウザから mp3 をダウンロードして聴いていたくらい。 Podcast はとっくに滅びたメディアだとおもっていた。でも Blog が生き残っている程度には元気だと知りました。 私の聞いている番組は基本的にアホらしい内容のものが多く、情報収集というより娯楽。 ニュースほど早口でも無味乾燥でもなく、講演ほど背筋
先週はサンフランシスコで勤務先の年次博覧会が催され、中には自分と近いプロジェクトを紹介するセッションもあった。 いい機会なので便乗して宣伝してみたい。自主会社員活動につき勤務先の見解と違っても見逃してください。 さて件の年次博覧会、ウェブ開発者向けの講演の一つで Polymer という新しい JavaScript UI フレームワークが公開された。 Closure, GWT, Angular ときて また別のフレームワークかよ…とぼやく人の気持ちもわかる。でもそれほど被るものでもないから見逃してほしい。 なるべく多くのブラウザで動かそうとする既存のフレームワークと違い、 Polymer は新しいブラウザの機能を使い倒すことで強力なフレームワークを作ろうとしている。 別に特定ブラウザでしか動かないわけじゃない。ただ将来そうした新しい機能が各種ブラウザに備わる日を見越し、 そのときベストに動く
Gisted のドッグフードをかねて InfoQ のインタビューやプレゼンを見るようになった。 いくつか面白かったのを紹介したい・・・とおもってるうちにバックログを溜めすぎた。一度に紹介するのは諦めて何度かにわけよう。 今日はおっさん、具体的には ThoughtWorks 周辺の面々を追いかけてみます。InfoQ 中心だけどそれ以外も若干あり。 When Geek Leaks “プロダクティブ・プログラマ ” の著者 Neal Ford が あるキーノートにつけたタイトルは ”When Geek Leaks“。 ここでの Leak は前向きだ。Geek の情熱がその主たる関心の外にも影響を与えていくといいですね、という話。 ファインマンが物理学という専門以外で発揮した数々のいたずら心、 ”Now Every Company Is A Software Company” という Forbes
最初のバグ修正 をレビューしてくれたのはたぶん、Apple の Darin Adler だったと思う。雑誌連載のねたづくりに書いたパッチだった。このあとも Darin Adler には度々レビューをしてもらった。私にとって、Bugzilla 界隈でのメンターはこのひとだ。あるとき ASSERT_NO_EXCEPTION という小粋なマクロを私が発明した際も、彼は私にかわりメーリングリストで宣伝をしてくれた。何かをわかりあえたと思った。 最初のリグレッションとその修正は 6 つ目と 7 つ目のパッチで…仕事にする前からエンバグしてたわけですが… KDE の Nicholas Zimmerman が見てくれた。彼はそのあと BlackBerry の会社に入ったと聞いたけど、最近は姿をみない。当時の SVG は無法地帯で、やんちゃなパッチもけっこう見逃してもらえた。Zimmerman, KSVG
WIRED に ”Return of the Borg: How Twitter Rebuilt Google’s Secret Weapon” という記事があった。Twitter が Mesos というクラスタ管理のソフトウェアを開発しており、 それは検索会社のなんとかいうシステムみたいなもんらしいよ、という話。 不勉強につきそのなんとかいうシステムのことはよく知らないけれど、 去年の今頃開かれた Twitter の Open House (ASCII のレポート) をのぞかせてもらった際、 Twitter 社のエライ人 Rob Benson が 「これからインフラは Mesos でいく!!」 と熱心に話していたのを覚えている。 WIRED の記事によれば、Mesos ベースに移行したマシンは二割。もう全部移行する勢いなのかとおもってたけど、インフラを変えるのは大変なのだろう。 そういえ
仕事用の inbox に “Happy Anniversary!” というメールが届いていた。 入社してから三年経ったらしい。我ながらよく頑張った。 今の仕事にはまあまあきついところもあり、きついといってもデスマ的なきつさとは違うんだけど、 たとえば自己主張の強い人々と議論するなんてのはきつい。 気の弱い私はなるべく成り行きに任せることでしんどさを小さくしようとしている。 けれど成り行きに任せすぎると意思決定の無力感が板についてしまう。バランスはあやうい。 今のところの私が完全な無力サイドにおちず踏みとどまれているのは、 チームの同僚やリードによるところが大きい。 苦手な仕事 私は日頃ブラウザのバグをとったり、 JavaScript から使える新機能の API を生やしたりといった仕事をしている。 嗜好に限った話をすると、API を生やすよりバグをとる方がすきだ。 バグをとると皆ハッピーに
TED の動画はまあまあ面白いのでときどき暇つぶしに見るのだけれど, 動画ではなく音だけ (mp3) で聴きたいことがある. 動画ばかりは疲れる. あとあんどろ機器や iPod に入れて持ち出すのも音声がいい. 動画だとサイズが大きい上にバッテリーの減りも速いからね. 幸い TED は多くの動画にダウンロード用の mp3 を用意してくれている. あとは transcript (原稿) があればいうことない. 実際, TED のサイトには transcript もある. ただサイトのつくりが持ち出し派につらい. 持ち出しビューがないし, サイトから手元に切り出そうもコピペがやりにくい. それに切り出したテキストを Instapaper なんかのテキスト表示機に取り込むのは, いずれにせよ面倒がある. 私は移動中に原稿つきでスピーチ聴きたいだけなんよ. 音声だけで足りるほど英語できない… とい
Chromium プロジェクトは crbug.com というドメインをもっている. このドメインは Chromium のバグトラッカー (BTS) 専用の URL shortener として使われている. たとえば crbug.com/125981 にアクセスすると https://code.google.com/p/chromium/issues/detail?id=125981 にリダイレクトされる. URL shortener といっても t.co や bit.ly みたいに大げさなものではない. Apache…じゃなくてなぜか IIS だった…の設定か何かでちょこっと URL を書き換え, そこにリダイレクトするだけ. データベースなし. オンラインでバグの話をするとき, 多くの Chromium 関係者は crbug.com の URL でバグを表記する. バグの URL が短い
WEB+DB の新しいやつがちょっと前にでてます. コードレビュー特集だそうな. 時が経つのは早い. まだ次の原稿書いてないのに… そういえば前にコードレビューの話を書いた気がして, 見なおしたところ かきかけ だった. せっかくなので続きを書いてみることにします. といっても何書くつもりだったか覚えてないのでだらだらと. WEB+DB PRESS の特集は, 主にこれからコードレビューを導入したい人に向けて書かれている. 幸か不幸か私はコードレビューを義務付けれたプロジェクトで働いているため, 導入には苦労していない. かわりにレビューをちょろまかせない面倒はある. ある意味でコードレビューを <やらされている>. もちろんこの言い分は大げさだ. 必要性に異議を唱える気はない. ただ異議はさておき自分の意向とは無関係にコードレビューに参加している気分を書いた話は あまり目にしないので,
有給を駆使し一足早くクリスマス休暇に突入、ヒャッホイ Ingress やるぜーと 意気込んでいた矢先ノロウイルスにやられダウンした。かなしい。鎮まれ俺の胃袋・・・ そんな腹痛日和の気晴らしとして今日は Garbage Collection Advent Calendar に参加してみることにしました。 Advent Calendar 初体験につきよくわかってないけど勝手に参加していいんですよね? GC というとジェネレーショナルだのパラレルコンカレントだのといった話が目立ちがちだけれど、 現実の問題というかブラウザを相手にするとそれ以外の細々とした面倒が目につく。 GC つき言語 (JavaScript) のコードと C++ で書かれたコードとの連携は最たる面倒の1つ。 たとえば WebKit の DOM は C++ で実装されており、 C++ のオブジェクトは JavaScript 処理
コードレビューの話をいくつか見かけた. (1, 2, 3) 私もはやりにのってなにか書いてみたい. といってもリンク先についてどうこう言う気はない. ふだんからぼんやり感じていることをテキストにしてみたい. コードレビューの様式 コードレビューのやりかたは色々ある. 話の背景をあきらかにすべく, まずは私が参加したり見聞きしたりしてきた方法を紹介したい. ただとりとめなく列挙しても見通しが悪いから, 方法を評価する軸を見立てておこう. コードの粒度: 一回のレビューでレビュアが目を通すコードの量はどのくらいだろう. プロジェクト全体? モジュール単位, 機能単位, それともクラス単位? 古典的なレビュー様式はこれら <論理的な単位> でレビューをすることが多い. 最近はブランチやコミットのような <ひとまとまりの変更> を単位とする方法に人気がある. Github の Pull Reque
WEB+DB Press が出てます(だいぶ前に). 前回はあまりに内容がおっさんすぎたと反省し, 今回は若者ぶって JavaScript のビューレイヤの話を書いてみました. MVC 用語の定義を気にするのもいいけどもうちょっと細かい所に目を向けても面白いですよ, という話のつもりです. しかし最近は JS もおっさん言語であるという指摘をうけ二週遅れな自分を痛感… おっさん的な話であるところの連載第一回 Hackability vs. Hackiness はオンラインで読めるようになっていました. お暇のある方はご覧ください. 以下あんまし関係ない話: Hackability 紛争 先の連載記事にも書いたとおり, WebKit はプロジェクト目標の一つとして hackability を挙げている. 私が hackability の有無を気にし始めたのもこれを見て以来のことだ. Hack
プログラマの生活と意見 2012: コードレビューの話 と つづき ホッピングの話 と つづき 殺伐荒野コーディング 2011: タダ飯よりも素敵なものは I told my code to sing 地雷力 心はさらわれるもの はじめての Chromium Land アジャイルとデザインパターン 2010: たばこの吸えるスタバより パッチのなやみ 2009: 考古学者にさよならを 明日の空模様 2008: 今年果たされなかった期待 ソフトウェアと皿洗い コードを憎んで人を憎まず, あるいは. 分散プロジェクトの誤謬 コードと Communication フレームワークと市場 2007: K のこと パラサイト・プログラミング 20 号棟のハッカーたち あるチュートリアルの思い出 2006: ハイテクの向こう側へ 市井のイノベータ テストで手を抜く レビューで手を抜く 会社で Socia
つづき。 Should の話は 前回 済ませた。 今日は was のはなし。私の時はこんな風だった、こんな会社があったという話をしてみたい。 読みやすさや角をたてないためなどの都合で一般化した書き方をするけれど、 ごく限られたインスタンスが相手である点はご了承ください。 グリッドと地層 最初のホッピングが終わって気づいたのは、新卒という立場の特別さだった。 新卒は給料が安く世間知らずとホッピング界ではバカにされがち。 けれど実際は良いこともある。 いまの私から見て一番うらやましい新卒特典は、 バッチ採用された同期入社の同僚たち。たくさん、しかも部門をまたいであちこちにいる。 中途採用で勤め始めると、知り合いは周りの人たちだけだ。 社交的で知り合いを増やすのが得意な人にしてみれば、 これは小さなことかもしれない。 でも人見知りな身からするとシステムとして顔見知りができる バッチ採用は大きな助
友人知人など、私のまわりには転職しようと考えている人がいつも少しずついる。 彼らに限らず、プログラマは割と頻繁に転職している気がする。よしよし、と思う。 世の中にとって良いことなのかはしらないけれど、 ジョブホッパーの身からすればそういう人が増えるほど私自身の角が立たなくてすむ。 類として呼ぶ友を求める心境。 私ほどのヘビーホッパー(ぜんぜん自慢になってない)ともなると、 たまにホッパー予備軍から「転職どうなんですかね」と水を向けられることがある。 そんなとき、酔った勢いなどで私はいつもでたらめを口走り後悔している。 そこでシラフのうちに自分用のテンプレを書いておくことにした。 正誤はともかくせめて主張を一貫させたい。 さいわい今の職場はもうしばらくいる気がするから、テンプレの陳腐化は心配しなくてよかろう。 私はおおむね行きがかりと衝動で職場をホップしており、そこに長期的な思惑はない。 た
次のページ
このページを最初にブックマークしてみませんか?
『blog.dodgson.org』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く