エンジニアと非エンジニアの境界

約2年前 | 3 points

この先、ソフトウェアの力でビジネスの競争力に格段の差がついてくる産業がどんどん増えてくることに備えて、プログラミング教育の必須化の議論も盛んですが、その必須化の是非はさておき、将来的には社会人になるうえで、ある程度コードを理解できる素養があることがもっと当然のことになってくるのではないかと期待してます。

そうなると、今の世の中の人が漠然と持っている、「エンジニア」と「非エンジニア」という言葉から連想してしまう偏見、両極端なイメージは、いずれの側に属する人々にとっても将来はもっと不利益になるかと。相互理解が必要です。境界を薄めることができるかどうかが重要です。

この点について、RelateIQのFounder & CTOのAdam EvansがTech Crunchに寄稿したエッセーが秀逸(私がこのブログを書いている時点では日本語版には掲載されてませんが、そうなると期待しています。...

立て直しのケーススタディ

約2年前 | 1 point

日次のアクセスが1万人以下なのにサイトパフォーマンスが悪いシステムの立て直しを頼まれたJacques Mattheijjが、5週間で行った対応を紹介してくれているケーススタディです。

システム構成

  • Rails + PostgreSQL + Redis + AnguarJS + Symfony2
  • CentOS / HPブレード8台 (128G RAMと複数のVMware)、大型HPストレージアレー、Windowsマシン、Javaアプリ専用マシン

全体所見

  • アプリは概ね問題なし。システムレベルで非効率が散見され、開発の期限が近づいた時点で、雑な仕事がされたとみられる。
  • なぜか高額なハードウェアが先に選定されていて、それに合わせた調整手間が発生してしまっていた。

個別の対策

  • VMが130個。これを取除くことでシステムの複雑さが大幅に改善できた。
    • 取るに足らないシステム機能にもVMとバックアップVMが複数。...

iOSのデバッグを極める

約2年前 | 1 point

objc.ioはベルリンのメンバを中心に、月替りでiOS関連技術の特定のテーマに絞って発信しているブログ。もう既に知名度はかなり高いかと思いますが、毎月ものすごく力の入った特集ゆえに、その分ボリュームも相当で、読むのも大変というか、時間がないから読めてない人もいるかと。今月は#19としてデバッグの話題です。

  • Peter Steinbergerの「デバッグ : ケーススタディ」では、UIKit上のバグをLLDBで対処した話を紹介。
  • デバッガーでのダンス - LLDBのワルツ」において、Ari GrantはLLDBの使い方を詳説してくれています。
  • DTrace」はiOSシミュレータでしかまだ利用できないようですが、アプリに関して任意の調べたいことを本番のバージョンで、かつアプリを再起動せずに確認できるということで、Daniel Eggertは重宝しているようです。
  • Florian...

Yehuda Katzという生き方とインディーWeb

約2年前 | 1 point

昨日のエントリーでも名前のでてきたYehuda Katzですが、Rails / Ember.js / jQuery / W3C Technical Architecture Group (TAG) / TC39-ECMAScriptなどで活躍し、今回はRustのコアチームに参加することが発表されてます。Tom Dale曰く「インターネットの半分くらい書いてる感じだから。[1] 」という勢いがあります。Yehudaの仕事振りやプロジェクト運営における考えは、オープンソースという視点での発言ですが、企業におけるプロジェクトの進め方や今後の働き方のスタイルがどう変わるか、変わるべきかという観点からも、示唆に富むものだと思います。

まず。彼がメジャーなプロジェクトを渡り歩いてきた経緯について、

最初に掲げたコミットメントの成果をだし、舞台から時間をかけてゆっくりと引いていくスタイル。...

Ember.jsのサーバサイドレンダリングと強運の話

約2年前 | 2 points

Ember.jsを率いて、積極的な発言もあり、今やJavaScriptフレームワークの世界では主要人物となったTom Daleですが、成功する人は、それを掴める強運の持ち主でもあります。

自分は本当にラッキーだった。だから人にアドバイス頼まれても再現が難しい話なんだけど。大学ではコンピュータサイエンスの学位は取ろうとしたんだけど、純粋数学は難しすぎて単位が取れなくて。その後はApple Storeのジーニアスバーで働いていたんだ。友人がAppleのリテールチームにいて、彼は自分がシェルスクリプトをちょっと書けることを知っていて、「プログラマーを必要とするプロジェクトがあって、公式には会社からサポートされてないんだけど、やってみる?Apple Storeで働いてることにしてバイト代払うよ。」と言ってくれたのがSprouteCoreアプリの開発案件。...

Bufferのフィードバックの考え方

約2年前

Bufferは各人の給与も公開しているオープンさが話題になってますが、それ以外の点についても、定めたコアバリューに沿った会社運営を追求しています。

今回はフィードバックの話。

アドバイスであれ、ほめることであれ、ネガティブな指摘であれ、チームで仕事をすることにおいて、お互いの立場に関わらずフィードバックは大切。一番大変なのは頑張ってネガティブな指摘をうまく伝えようとするときだと思いますが、同社の "How to Give and Receive Feedback at Work: The Psychology of Criticism" と題したブログのエントリーにおける解説では、

  • (心理学的にも)批判は人の生存に対する実際の脅威という認識になりうる。よって批判を聞くのも、伝えるのも、人にとっては相当タフなこと。

  • "Mangement Rewired: Why...

気づかぬうちに増える仕事を減らす取組み

約2年前

「このタスク、思ったより時間がかかったな。」となるのはよくあることですが、仲間と仕事をするということは皆で大きなことを成し遂げているということなのだというそもそものメリットは空気のように忘れがちで、ある程度の非効率は避け難く生じるし、それが目につくのでストレスの元。どう解消するか?

元Quoraのリードエンジニアで、現在Quipに勤務するEdmond Lauは、"Hidden costs that engineers ignore”"と題したブログのエントリーにおいて、

  • コードの修正だけでなく、別のメンバへの説明の時間はかかる。
  • 単純に分量でなくコンビネーションの肥大化によってコードは複雑になっていく。把握が難しいレベルになると、ロジカルに修正するのが正しい箇所でも迂回しがちになる。
  • 新しいテクノロジーに挑戦すると、再利用可能な共通のライブラリづくり、...

Javaのせいではなく使い方の問題だという意見

約2年前

Salesforce.comのJames Wardが、エンタープライズ向けのJava webアプリに長く携わってきた経験からまとめた、「Javaが悪いんじゃなくて、使い方が間違ってる。」というブログのエントリー。

開発環境のセットアップのWikiが10ページもある

JDKインストール、SCMレポをクローン/チェックアウト、ビルドを実行/アプリ起動のステップであるべき。

一貫してないデプロイ環境

ビルドを、開発 - ステージング - 本番と進めるにあたりリスクを最小化するために、各環境で変わるのは設定だけであるべき。デプロイするビルド自体を環境によって変えるべきではない。

起動に30秒以上かかるサーバ

アプリを分割するか、マイクロサービスアーキテクチャを検討すべき。コンテナレスにしたり、「コンテナごとに一つのアプリ」というルールを適用すると起動時間の短縮に効果がある。

依存関係を手動でやりくり

...

理由駆動型の働き方

約2年前 | 1 point

会社のビジョンやカルチャーは、長期に続く活力あるチームであるために本当にすごく大切だなと感じることがこの数年の間に何度かありました。

では、その「本当に」「すごく」というのは具体的にどれくらい重要なのでしょうか?

PandoMonthlyの時間に及ぶ長いインタビューの最後に、WorkdayのCEOであるAneel Bhusriが、「ほとんどの人がそう思ってないけど、自分だけは強く信じていることは何?」という質問に答えて、

「うちの会社にとって、カルチャーはプロダクトよりも大切だ。」

と言い切っています。よいカルチャーが、よいプロダクトづくりに必ずつながるという彼の長年の経験から得た確信がそう言わせているのかと。

また、Ernie Millerは "Human-Driven Development" と題したブログで、

幼い頃から人は「なぜ?」と質問する。...

CSS観点でのセキュリティ対策

約2年前

OperaのMathias BynensによるCSSconf EU 2014での講演です。

CSSのXSS(クロスサイトスクリプティング)の脆弱性について、例えば、CSSでJavaScriptを実行できてしまうCSS ExpressionsがIE7以前の問題であっても、IE8〜IE10においてメタタグで、<meta http-equiv="X-UA-Compatible" content="IE=7">と指定されてしまう危険性があると指摘し、

  1. ユーザのインプットは、CSSコンテキストに挿入する前にサニタイズすること。
  2. HTTPヘッダーを使ってフレーミングを許容しないこと。X-Frame-Options: DENY
  3. HTML5のDOCTYPEの短いバージョン、<!DOCTYPE html>を使うこと。

を勧めています。

その他の話題は...

Androidの開発現場での学び

約2年前 | 1 point

日本に12月の頭から2ヶ月間滞在してますが、いくらなんでも寒すぎます。とはいえ、その合間に深刻な水不足に陥ってるカリフォルニアに唐突に嵐がやってきたりして、世界中異常気象ですね。。

さて、NewCircle / SF Android / AnDevConが主催したAndroid開発のメジャープレーヤー8名による座談会です。2時間近くの長丁場ですが、興味深いコメントだけをピックアップしてみると、ほぼSquareのJake Whartonの独演会のような構成になってしまいました。

Square

皆もよく知ってるように、初期のAndroidの基本設計は、Javaで書かれたものはどうテストすればよいかという従来の共通認識に反するものだった。Squareでは三種類のテストを実施している。最も大きな位置付けを占めるのは、ユニットテスト。例えば、Square Registerだと数千件ある。...