タグ

ブックマーク / blog.dodgson.org (13)

  • 炭坑の庭師 - steps to phantasien

    Chromium と WebKit は二つの独立したプロジェクトだ。 ソースツリーはそれぞれ別で、そこにはインテグレーションの苦労がある。 WebKit 以外にも V8 や Skia など Chromium が依存している外部のプロジェクトは山ほどあるけれど, WebKit とは特にぴったりくっついている。 そのぶん二つの足並みをあわせる手間も際立つ。 以前、書籍 ”アジャイル開発の質とスケールアップ” で リリーストレイン という大規模プロジェクトのインテグレーション手法を読んだ。 プロジェクトの内部で一段細かい時限リリースを設け、そのタイミングでインテグレーションする方法。 内部リリースにあわせてプロジェクト同士が依存している相手のバージョンを上げ、 壊れたところをなおすわけ。 Chromium と WebKit もこまめに相手のバージョンを新しくする。 主たる依存の向きは Chro

  • ホッピングの話 - steps to phantasien

    友人知人など、私のまわりには転職しようと考えている人がいつも少しずついる。 彼らに限らず、プログラマは割と頻繁に転職している気がする。よしよし、と思う。 世の中にとって良いことなのかはしらないけれど、 ジョブホッパーの身からすればそういう人が増えるほど私自身の角が立たなくてすむ。 類として呼ぶ友を求める心境。 私ほどのヘビーホッパー(ぜんぜん自慢になってない)ともなると、 たまにホッパー予備軍から「転職どうなんですかね」と水を向けられることがある。 そんなとき、酔った勢いなどで私はいつもでたらめを口走り後悔している。 そこでシラフのうちに自分用のテンプレを書いておくことにした。 正誤はともかくせめて主張を一貫させたい。 さいわい今の職場はもうしばらくいる気がするから、テンプレの陳腐化は心配しなくてよかろう。 私はおおむね行きがかりと衝動で職場をホップしており、そこに長期的な思惑はない。 た

  • ホッピングの話のつづき - steps to phantasien

    つづき。 Should の話は 前回 済ませた。 今日は was のはなし。私の時はこんな風だった、こんな会社があったという話をしてみたい。 読みやすさや角をたてないためなどの都合で一般化した書き方をするけれど、 ごく限られたインスタンスが相手である点はご了承ください。 グリッドと地層 最初のホッピングが終わって気づいたのは、新卒という立場の特別さだった。 新卒は給料が安く世間知らずとホッピング界ではバカにされがち。 けれど実際は良いこともある。 いまの私から見て一番うらやましい新卒特典は、 バッチ採用された同期入社の同僚たち。たくさん、しかも部門をまたいであちこちにいる。 中途採用で勤め始めると、知り合いは周りの人たちだけだ。 社交的で知り合いを増やすのが得意な人にしてみれば、 これは小さなことかもしれない。 でも人見知りな身からするとシステムとして顔見知りができる バッチ採用は大きな助

  • WebKit2 と愉快な仲間たち - steps to phantasien

    ある ニュース記事を同僚に教わった。 この記事によるとタッチデバイスの会社は WebKit2 に対応しているのに検索の会社は旧バージョンにとどまっており、HTML5 に課題は多いのだそうな。 そりゃ課題は常に山積みだよね…と思っていたら記事は誤解だと別の同僚が説明を書いている。 リンク先の記事はさておき、世間の関心をいまいち集められていない気がする WebKit2 についてざっと説明をしてみたいとおもう。 この記事を読み終われば WebKit2 と Chromium WebKit, Webkit1 の違いを知ったかぶれるようになる予定。 WebKit2 は 2010 年の 4 月にアナウンスされた WebKit の新しい API レイヤで、Mac 版 Safari などが使っている。 大きな特徴はレンダリングエンジンを別プロセスで動かせること。 Chromium でやっているのと同じような

  • Reactive Porn - steps to phantasien

    Rebuild.fm に出させてもらいました。ありがたいことです。 さっそく録音を聞き直す。自分の声を聞くのは辛い・・・のはさておき、 リアクティブプログラミングの話は我ながら主張がよくわからない。 反省のため何が言いたかったのかを考え直したい。 たぶん趣旨は二つあった: A. RxJava や RxAndroid はなかなかいいやつだ。 B. リアクティブプログラミングは一つのはっきりした概念ではない。 A については試してもらえばわかるはず。ReactiveX のサイトからぽつぽつ資料を読めば済む。ここでは B を補足してみる。 X 指向は Y みたいなもの リアクティブプログラミングとは何だろう。どうもつかみどころがない。私は腑に落ちるまでけっこう時間がかかった。 このわかりにくさには大きく二つ理由があると思う。一つはプログラミングの概念をコードなしに説明する一般的な難しさ。オブジェ

  • リアルな DOM はなぜ遅いのか - steps to phantasien

    これは VirtualDOM Advent Calendar 2014 に勝手に参加する記事です。 あたたかい春の昼下がりのこと、あるブラウザベンダの社内を不穏な噂が駆け巡った。 「React.js なるライブラリ、どうも仮想 DOM というやつのせいで速いらしいぞ」 もうリアルな DOM はお役御免、ブラウザも商売上がったりか・・・。雇用に不安を覚える人(私)がいる一方、 そのアイデアをとりこんでブラウザの DOM を速く出来ないかと考える人たちもいた。 仮想 DOM はなぜ速いのか。誰かのつてを辿って React.js チームにおいでいただき、速さの秘密をテックトークしてもらう。 イミュータブルなデータ構造による単純化、非同期適用による処理のバッチ化、差分アルゴリズムによる副作用の最小化… いくつかのアイデアはブラウザからはどうにもならないが、たとえば非同期化なんかは形は違えどブラウザ

  • 書類仕事を追いかけて - steps to phantasien

    大きなコードベースの真ん中あたりをさわっていると、仕事の大半はリファクタリングに費やされる。機能を足そうと書くコードも 8 割リファクタリングで新緑は 2 割。失敗して捨てるものも多いから、かける時間は 9 対 1 くらいかもしれない。 それどころかリファクタリング自体がプロジェクトにもなりうる。「今四半期はこの腐ったコードどもをなんとかするのが目標」というように。私もいま大きなリファクタリング、あるいはリアーキテクティング、の手伝いをしている。仕事時間のほぼすべてがリファクタリングに費やされる。今の勤務先で通用する唯一の特技がリファクタリングな私にとってこれはたぶん適職だ。 リファクタリングにコーディングの大半を捧げる人は他にもいる。 プログラマ相手の管理職をエンジニアリング・マネージャと呼ぶ。ほぼ全員プログラマ出身。現場に近いマネージャは多くがコードも書く。ただ血気盛んな人を除くと新機

  • 現場のフォーム - steps to phantasien

    このごろ仕事の進みが悪く、しかもまったくの自業自得で肩を落としている。 今日はそれをふりかえり明日への糧としたい。反省文。 仕事の進みは「遅い」だけ。動いてはいる。一歩一歩は正しい。 でも一歩を踏み出すまでが遅い。正しい一歩を踏み出せる、正しい姿勢をとるのが遅い。 背中を丸め足を引きずる。たとえばこんなふうに… Bisection ある昼下がりにバグ修正を頼まれた。リグレッション。ここ三ヶ月くらいで壊れたらしい。 リグレッションを直す「正しい」一歩目は、二分探索で原因のリビジョンを探す bisection 作業だ。 でもこのバグ、bisection が面倒そう。なんとなく原因の想像はつくからあたりをつけて直してしまおう・・・ ・・・半日たち、結局あたりはつかない。日が暮れてしょんぼり帰宅。 翌朝気を取り直し bisection をしたら 2 時間でリビジョンの特定がおわる。あらら。 しかも

  • 趣味はキーノート鑑賞 - steps to phantasien

    趣味は何かときかれたらインターネット企業ウォッチですと答えるかもしれない。そのへんの企業ゴシップに気を取られるよりコードでも書いてた方が百倍くらい有意義だとわかってはいる。でもついニュースを眺めて過ごしてしまう。職業上の便益を損ねるくらいだからこれは趣味と呼んで差し支えなかろう。中でも各種企業イベントのキーノート・スピーチ鑑賞はそんなおっかけ業のハイライトだ。 インサイダーからすると、キーノートは学芸会みたいなもの。隣のクラスの出来映えにやきもきすると同時に、自分のコードの晴れ舞台、たった一つの台詞を見守る。 インサイダーでないキーノート・・・つまり大半のキーノートは、言って見れば近所の高校の文化祭に行くようなものだろうか。あ、こういう学校なんだ、これが流行ってるんだ、なんてのが透けて見える気がして面白い。メディアが報じるキーノートは空気を伝えない。自分でビデオをみてこそ愛好家というものだ

  • 星を観にいく - steps to phantasien

    あるとき Dark Matter Programmer という言葉をみかけた。ウェブやコミュニティに存在感のない、当人もそれを気にかけていない、プログラマをさす言葉。言い出しっぺの主張は、そういう人々の存在を忘れたり、見下したりすべきでないというものだった。 ダークマターはうまい比喩だと思う。正体がよくわかっていないらしいから適当さの粗が目立たず、その割にイメージは鮮烈。 他の比喩との相性もいい。たとえばスター。スタープログラマはダークマタープログラマの対極にいる印象だけれど、意図に立ち戻ればそれほど大げさでもない。何らかの可視性があればスターといえる。僕もあなたもスターなのがオンラインのコミュニティなのだろう。 さまざまな星 なんてきれいごとはさておき、乱暴に言ってダークマター以外がスターならスターにも色々ある。細かい隕石やガスなんかをさておくとしても、まず明るさ、等級が違う。あるいは自

  • にわか TOEIC マニア - steps to phantasien

    社内で開かれたワークショップ形式の研修に参加したのは一年前、ちょうど今頃のこと。 それはたぶんチームワークのような何かを学ぶ会だったはずだけど、 私の感想は題と関係なく「いいかげん真面目に英語を勉強しないとあかん」だった。 話が通じないとチームワークどころじゃない。 米国資勤めの会社員からすると、英語はグローバル云々以前に仕事用 DSL みたいなもの。 英語ができないまま騙し騙し働くのはたぶん、 SQL が書けなからと ORM の上だけでコードを書こうとするのに似ている。できなくはないけど、いろいろしんどい。 幸い私は Web 開発者じゃないから SQL はわからなくていい。でも英語はやらないとダメっぽい。 入社二年半、ようやく現実を直視した。 最初はしゃべる練習をしようかと思ったけれど、そもそもしゃべる以外の英語すらできるといえるのか。怪しい。 むしろまず典型的日人として英語ができ

  • Polymer と Web Components - steps to phantasien

    先週はサンフランシスコで勤務先の年次博覧会が催され、中には自分と近いプロジェクトを紹介するセッションもあった。 いい機会なので便乗して宣伝してみたい。自主会社員活動につき勤務先の見解と違っても見逃してください。 さて件の年次博覧会、ウェブ開発者向けの講演の一つで Polymer という新しい JavaScript UI フレームワークが公開された。 Closure, GWT, Angular ときて また別のフレームワークかよ…とぼやく人の気持ちもわかる。でもそれほど被るものでもないから見逃してほしい。 なるべく多くのブラウザで動かそうとする既存のフレームワークと違い、 Polymer は新しいブラウザの機能を使い倒すことで強力なフレームワークを作ろうとしている。 別に特定ブラウザでしか動かないわけじゃない。ただ将来そうした新しい機能が各種ブラウザに備わる日を見越し、 そのときベストに動く

  • エデンの園でおきたこと - steps to phantasien

    有給を駆使し一足早くクリスマス休暇に突入、ヒャッホイ Ingress やるぜーと 意気込んでいた矢先ノロウイルスにやられダウンした。かなしい。鎮まれ俺の胃袋・・・ そんな腹痛日和の気晴らしとして今日は Garbage Collection Advent Calendar に参加してみることにしました。 Advent Calendar 初体験につきよくわかってないけど勝手に参加していいんですよね? GC というとジェネレーショナルだのパラレルコンカレントだのといった話が目立ちがちだけれど、 現実の問題というかブラウザを相手にするとそれ以外の細々とした面倒が目につく。 GC つき言語 (JavaScript) のコードと C++ で書かれたコードとの連携は最たる面倒の1つ。 たとえば WebKit の DOM は C++ で実装されており、 C++ のオブジェクトは JavaScript 処理

  • 1