1/31/2015

コンピュータ・ネットワークのフリーの教科書

ロヨヤ大学シカゴ校のピーター・ラース・ドーダル准教授によるコンピュータネットワークのフリーの教科書「An Introduction to Computer Networks」。LAN、IPv4/IPv6、ルーティング、トランスポート層(TCP/UDP)、キューイングとスケジューリング、QoS、SNMP、セキュリティ、nsシミュレータと幅広く網羅している。

Hacker News

1/30/2015

一度は観ておくべき10の映画

Quoraに出ていた。Upvoteを1k以上得たScott Danzig氏のリスト。

  1. ロッキー
  2. エレファント・マン
  3. シンドラーのリスト
  4. 世界にひとつのプレイブック
  5. レクイエム・フォー・ドリーム
  6. ショーシャンクの空に
  7. マトリックス
  8. 裁かるるジャンヌ
  9. & 10. スター・ウォーズとゴッドファーザー

Googleのマネージャーの1日

Googleの「Tech Lead Manager (技術先導マネージャ)」と呼ばれる職位にある人の典型的な一日とのこと。彼は、Chromeデータ圧縮プロキシサービスのプロジェクトを率いている。TLMというのはテクニカルリーダーシップと人的管理の両方に責任がある立場にあるそうだ。

6:45am - 起床、子供達を起こし、朝食を準備、シャワーを浴びる

8:30am - 自転車に飛び乗り、仕事に向かう(約10分掛かる)、朝食を食べ、デスクに向かう

8:45am - サービスの動作状況を示すダッシュボード(トラフィック、遅延や圧縮、データセンター)をチェック

9:00am - メールを確認。苦行だが、最近はInboxを使ってなんとか助かっている(辛うじて)

9:30am - Chrome向けに開発中の新しい機能を説明するスライド作成(PMの一人からのコメントを含む)。今後は他のPMと共有、エンジニアが引き継ぎ、四半期後半に構築開始

10:00am - チームメートの一人とバグ報告の件でチャット、根本原因について考える。私の疑念を確認するためログへのクエリを走らせ30分ほど使う。分かったことを追加し、バグ報告を更新

10:30am - 今朝はミーティングの予定がなく、コーディングをする貴重な時間ができた。新しい機能を追加しやすくなるように、GoでMapReduceパイプラインの一部を書き直すことにした。終わりは近いが、テストまだ失敗...wip

11:30am - 新しいプロジェクトに関してハングアウトでマウンテンビューの同僚と打ち合わせ。私はこのプロジェクトを進めるのにとてもワクワクしている

12:00pm - 昼食を食べるためにカフェに立ち寄る。Hacker Newsのようなサイトを読みながら、デスクで昼食を食べるのは嫌いだ。とはいっても、習慣はなかなか無くならない。それにもかかわらず、Bitcoinがどのように動いているのか知らないんだけどね

12:30pm - 我々が議題を立て、準備している内部サミットについてVCのチームと意識合わせ

1:00pm - 雇用委員会のミーティング。インタビューループが終わった候補者を審査し、仕事をオファーするかどうかを決める。楽な場合もあるが、時には議論を引き起こす。インタビューループの結果が複雑な候補者は特に(ほとんどの人)。...wip

2:00pm - 週に一度のチームミーティング。これは普通一人以上がプレゼンをして、残りがそれを聞く形式で、フィードバックあるいは結果の共有を目的にしている。普段は、私もミーティングに参加して、四半期の目的を設定したり、我々がすべきことをたどったりする。ないしは、飛ばす。

3:00pm - 部下との1対1のミーティング。チームの各メンバーがどんなことをしているかを確認、最新の状態を理解し、仕事の問題点を議論すり。キャリア開発、優先順位の設定や業務評定についても話しをする

4:00pm - 1週間に3日、私は早めに退社し、1時間程度自転車に乗る。4時までにくたくたになった体を回復させる。汗をかく時間が気分転換のいい方法で、シアトルの美しい景色を楽しむ

5:00pm - 帰宅、シャワー、夕飯を作る。私の5歳になる子供と塗り絵やゲームをする。これが一番楽しい時間

7:00pm - 子供を寝かせ、絵本を読む

8:00pm - 自由! 普通はメールを確認するのに過ごす(特に早く仕事が終わったあとは)が、自宅で仕事をしないようにしている。その後、気分によって、妻とドラマ「トップ・シェフ」を見たり、読書を少し(今は村上春樹の1Q84を読んでいる)

Hacker News

1/28/2015

「肩をすくめるアトラス」が文庫化されていた

アイン・ランドの「肩をすくめるアトラス」は邦訳されているのだが、A5版で厚さもあるため手が出しにくい。つい最近、文庫版が出ていることを知った。三部に分けられ、第二部まで出版されている。第三部の値段は分からないが、全巻揃えるとビジネス社のA5版と同じ値段(6000円)になってしまうようで残念。どうせなら、ついでに電子本にしてくれれば、重さは気にならないのだが。

GHOST: Glibcのgethostbynameに脆弱性

GNU Cライブラリ(Glibc)に深刻な脆弱性(CVE-2015-0235)が見つかったとのこと(Slashdot)。gethostbyname()gethostbyname2()関数で使われている __nss_hostname_digits_dots()にヒープオーバーフローがあるとのこと。リモートの攻撃者が細工をしたホスト名を引かせることでオーバーフローを引き起こさせ、プログラムによっては任意のコードを実行できるとのことだ。この脆弱性を発見した人が「Ghost」と呼んでいる。このメーリングリストに詳細な分析があり、この中に書かれているコード(GHOST.c)を使ってシステムに脆弱性があるかないかの判断が可能。

脆弱性のあるシステムは、Glibc 2.2 (Nov 2000) - Glibc 2.17 (May 2013)、Debian 7、RHEL 6&7、CentOS 6&7、Ubuntu 12.04 (12.14はglibc 2.19)、ほとんどのBSD系OS(FreeBSD、OpenBSD、OS X)は影響なし。

Hacker News

更新1

このバグは、glibc-2.17とglibc-2.18の間の2013年5月21日に修正されているのだが、セキュリティ上の問題と考えられていなかったため、現行のLinuxディストリビューションには適用されていない。

更新2

Trend Micro、エクスプロイトコードの埋め込みに使えるのは4あるいは8バイト(32/64bit)でハードルが高く、それほど怖がる必要はない。Errata SecurityのRobert Graham氏はgethostbyname()は時代遅れで、IPv6フレンドリーなgetaddrinfo()を使うべきだ。

Internet Storm Centerのビデオ解説

Hacker News

更新3

Junosはglibcを使っていないので影響なし(JSA10671)。Ciscoは調査中(cisco-sa-20150128-ghost)。

1/26/2015

2014年ハッカーツールのトップ10

Concise Coursesのハッキングツール/ペネトレーションツールのトップ10リスト

ツール名 用途
Burp Suite ウェブ脆弱性スキャナー
Metasploit 多目的ハッカーツール
Angry IP Scanner ポートスキャナー
Kali Linux Linuxハッキングディストリビューション
Snort 侵入検知システム
Cain & Abel パスワードクラッカー
THC Hydra パスワードクラッカー
Ettercap 多目的ハッカーツール
John The Ripper パスワードクラッカー
Wapiti ウェブ脆弱性スキャナー

1/23/2015

アンドリーセン・ホロヴィッツが注目している技術トレンド

アンドリーセン・ホロヴィッツが関心の高い16の技術トレンドを説明している。

我々は、話題には投資しない、画期的なアイデアを持つ特別なファウンダに投資するのだ。カテゴリについて事前のテーマに基づいて投資をしないという意味だ。とは言うものの、我々が注視あるいは考えているものを列挙する...
  1. バーチャル・リアリティ
  2. 企業のセンサーリフィケーション
  3. マシン・ラーニングとビッグ・データ
  4. フル・スタック・スタートアップ
  5. コンテナー
  6. デジタル・ヘルス
  7. オンライン・マーケットプレイス
  8. セキュリティ
  9. ビットコイン (ブロックチェーン)
  10. クラウド-クライアント・コンピューティング
  11. クラウドファンディング
  12. モノのインターネット (IoT)
  13. オンライン・ビデオ
  14. 保険
  15. DevOps (デブオプス)
  16. '失敗'

Hacker News

HTTPSサイトの評価

HTTPSサイトの評価を考える(Hacker News)。

  1. None: httpsで接続できない
  2. Bad: 無効な証明書と不完全な暗号スイート
  3. OK: 有効な証明書と正しい暗号スイートだが、httpsにリダイレクトされない
  4. Good: httpがhttpsにリダイレクトされる
  5. Great: httpsにリダイレクトされ、HSTS(HTTP Strict Transport Security)が設定されている
  6. Amazing: サイトがブラウザのHSTSプリロードリストにある

メモ: iOSデバイスの操作を録画する方法

iOSデバイスの操作を録画は、QickTime Playerを使うと簡単にできる(github)。

  1. iOSデバイスをMacに接続する
  2. QuickTime Playerを起動し、ファイルメニューから新規ムービー収録
  3. 録画ボタンの横をクリックし、カメラからiPhoneを選択する
  4. 録画ボタンをクリックし、録画開始、そして操作、録画停止
Iphone qmov

1/17/2015

コードレビューのチェックリスト

ここに書かれたコードレビューのチェックリストは参考になる。

総合
  • コードは動くか? 意図された機能は働くか、ロジックは正しいか、など
  • 一連のコードは簡単に理解できるか?
  • あなたたちの同意したプログラミングの慣習が守られているか? これらは一般的に括弧の位置、変数や関数名、行長、インデント、フォーマットやコメントなどをカバーする
  • 冗長だったり重複したコードがあるか?
  • できる限りモジュール化したコードか?
  • グローバル変数は置き換えることができるか?
  • コメントアウトされたコードがあるか?
  • ループは回数をセットされ、終了条件が正しいか?
  • コードがライブラリ関数に置き換えることができるか?
  • ロギングやデバッグコードが削除されているか?
セキュリティ
  • 全てのデータ入力がチェックされ(型、長さ、フォーマット、範囲が正しいか)、エンコードされているか?
  • どこにサードパーティ製のユーティリティーが使われていて、エラーの戻りが得られているか?
  • 出力値がチェックされ、エンコードされているか?
  • 無効なパラメータ値が処理されているか?
ドキュメント
  • 解説にはコードの目的が書かれているか?
  • 全ての機能が解説されているか?
  • 異常な挙動あるいはエッジケース処理が書かれているか?
  • サードパーティ製ライブラリの利用や機能が書かれているか?
  • データ構造や測定単位が説明されているか?
  • 未完成のコードがあるか? もしあれば、削除するか"TODO"のような適切な目印で書いてあるか?
テスト
  • コードはテストできているか? 例えば、余分なあるいは隠れた依存性を加えていないか、オブジェクトを初期化できていない、テストフレームワークがメソッド利用できるかなど
  • テストが総合的に行われているか? 例えば、少なくとも同意したコードの範囲で行われているか
  • ユニットテストが実際に、コードが意図された機能性を実行できるかのテストとなっているか?
  • 配列は「境界線を越えた」エラーのチェックをされているか?
  • テストコードが既存のAPIの利用で置き換えられているか

Hacker News

1/15/2015

Androidデバイスの監視検知ツール「SnoopSnitch」

シュナイアー氏のブログによれば、無線トラフィックを解析して、誰かが電話の盗聴や場所の追跡を行っている場合に知らせてくれる「SnoopSnitch」というAndroidデバイス向けのツールがあるそうだ。偽の移動体基地局やSS7のエクスプロイトを捕まえることもできる。ドイツのSRLabsが開発し、Play Storeから無料で入手可能だが、Qualcommのチップセットが載ったAndroidデバイスで、root化が必要。

1/10/2015

OpenNTPDのポータブル版がリリース

OpenBSDプロジェクトが、OpenNTPDのポータブル版をリリースした。Linux (Ubuntu)、FreeBSD、Solaris、Mac OS Xで動作するとのこと。CentOS 6では、"configure; make" で問題なくビルド完了。

groupadd _ntp
useradd -g _ntp -s /sbin/nologin -d /var/empty/ntp -c 'OpenNTP daemon' _ntp
mkdir -p /var/empty/ntp
chown 0 /var/empty/ntp
chgrp 0 /var/empty/ntp
chmod 0755 /var/empty/ntp

./configure
make
make install

移植容易なポータブル版の登場で、ntpdを採用しているコンピュータはOpenNTPDに置き換えていくかな。他の実装に、Ntimedもある。

Slashdot

1/06/2015

SSHのポートを22以外にすることに賛成

SANS Diaryに面白い話が出ていた。ポート番号を標準と違うものに変えることで、スクリプトキディによるノイズを減らせるので、まったく無駄というわけではない。

redditに、セキュリティ侵害の可能性を減少させるため、Secure Shell (SSH)は22以外のポートで利用すべきかどうかという興味深い議論が存在している。興味深いコメントに、オブスキュリティ(obscurity)によるセキュリティはセキュリティ対策ではないということがあった。しかし、攻撃を遅らせる方法、わずかだが有用性がある。確かに標的が決まった意思の強い攻撃者を止めることは難しいのだが、SSHを突く雑多なスクリプト・キディやスキャナーを止める対策として、まったく無駄というわけではない。

現実、私が管理するインターネットフェイシングサーバでは15年以上にわたり非標準のポートでSSHを利用している(主として52222)。もちろん、私が採用するセキュリティ対策はこれだけではない。毎日パッチを実施し、差し支えがなければhosts.allowを、パスワードではなく鍵やパスフレーズを利用し、DenyHostsを活用している。私はオブスキュリティによるセキュリティを使うというセキュリティ上の利点のため、非標準ポートを活用しているか?とんでもない! 私はポート22にある全てのノイズを除去するために非標準ポートでSSHを利用している。以前からインターネットでは、SSHへの頻繁なスキャニングやブルートフォースがあり、年々悪くなっているように思うログには大量のノイズが生成され、妨害とは言い難いが、最悪の場合にサーバにサービス影響を与える。必要ないのに、なぜ我慢するのか?

ボリュームが大きく減少するため、防御が確実に働いているかを時々テストする必要がある。たまに、悪い輩が何かを企んでいないか調べるためにポート22にハニーポットを置いている。

意見は?

Appleはマーケティングを優先する余り、ソフトウェア品質を悪化させている

Tumblrの共同創立者でInstapaperの作者として知られるマルコ・アーメント氏が、Appleのソフトウェアの品質悪化への憂慮を自身のブログに書いている。その要点は以下。マルコ氏のTwitterへのコメントは大部分は同調のようだ(9to5Mac)。

ハードウェアは今も素晴らしいが、将来を心配したくなるほどソフトウェア品質が悪化している。ソフトウェア品質の悪化はマーケティングを優先しているせいであり、毎年メジャーリリースを繰り返すことが品質の維持を難しくしているのではないか。問題は単純で、エンジニアが非現実な締め切りを課せられているからだ。メジャーリリースを毎年繰り返す必要なんてない。リリースの度に長々と新機能をリストアップする必要もない。Appleの幹部はソフトウェアの不具合がどのくらい評判を落としているのかを理解していないのではないか。

ジョン・グルーバー氏のコメントは

鋭い意見で、注意を向ける価値がある。ただ、タイトルに関して、もしAppleが機能的優位性を失っているなら、誰を失ったのだろう。私に言わせれば、誰もいない。マルコ氏はジェフ・ウォズニアック氏がデスクトップLinuxに切り替えた例を引用しているが、大きな影響を与える動きではなく、例外だ。

上記で私が引用した2番目のパラグラフはもっと重要だ。Appleは(まだ)マーケットで支持を失っていないが、ユーザたちの多くの信頼を無駄にしているので、そうなるような状況を作ってしまっている。Appleがライバルに対して「ちゃんと動いている」という栄誉を失っているということではないが、それよりAppleの仕事がうまく回っていないという認識を広めてしまっている。

Slashdot

更新 (2015.01.08)

マルコ氏、公表したことを後悔しているそうだが...。

1/04/2015

サイドプロジェクを終え、公開するための開発者手引き Part 1 (iOSアプリ)

日曜プログラマがソフトウェアを作成して公開する時にも参考になるかも。

我々の多くが、決してリリースされることの無いサイドプロジェクトをいくつか持っている。そのうちいくつかは、まだやらなくてはいけないことがまだあるという意味で純粋に未完成である。しかし、多くが、ウェブサイトや他のプラットフォームでリリースする際に要求されるデモビデオ、スクリーンショット、アイコンの作成のような小さな問題が理由でリリースされないのだ。

私はこれらを小さな問題と呼んでいるのは、それが未経験さ故に大きな作業に見えるだけで、最低限の作業をすれば十分だからだ。これらの問題は実際の製品にとって重要とはいえないが、アプリのリリースには障壁として受け止められている。

1. アプリケーション名の選択

キャッチーな単語を探す。迅速でいい方法はアプリの目的についての類義語を探すことから始めることだ。例えば、もし、速読用(speed reading)アプリを作ったなら、「Speed」、「Rush reader」、「rush」、「velocity」などのいろいろな類義語を選ぶことができる。このステップは2.1と並行して行うことが多い。

2. ウェブページ

2.1 ドメイン

「.com」ドメインあるいはクールなドメイン(例えば、「.co」、「.to」など)を付けて、有望なアプリ名(単語)全てを利用可能かチェックする。私は、「.com」や「.co」を利用する。ドメインにはアプリ名に「app」のような添え字を追加してもよい。

2.2 ホスティング

すでにホスティングアカウントを持っているなら、準備ができている。そうでなければ、ウェブページをホストする必要があるので、たくさんの安価ソリューションから選ぼう。無制限のドメインホスティングを提案しているホストを探すのがいいだろう。私は無制限のドメインホスティングが付属するiPageの基本プランを使っている。

2.3 ウェブサイトのテーマと設計

最小限必要なものは:

  • 明確にアプリの目的を強調する
  • レスポンシブウェブデザイン (全てのデバイスで見栄えが良い)

多くのオプションを調べた後、私はテーマにふさわしい「blacktie.co」を選ぶことを決めた。これは、全てのデバイスサイズに対処する美しいテーマに基づく無料のブートストラップをゲットするのにもっとも適した場所である。ここで、過剰なエネルギを浪費するのは無駄である。単に一つのテーマを選択して、必要なテキストや画像を更新しよう。

スクリーンショット(4、5項参照)でモバイル画像を更新する必要がある。スクリーンショットの場所にデモビデオを見せる選択もできる。YoutubeあるいはVimeoにビデオをホストして、それを使うこともいいだろう。

Googleアナリスティックを加えることがボーナスポイント(5分以上掛からない)。

3. アプリのアイコン

おそらくあなたがPhotoshopを使う必要があるのはここだけだろう。トライアルバージョンを利用することができるので、プロ版は必要ない。アプリアイコンテンプレートガイドを読む。Photoshopのテンプレートを開いた後、

  1. アイコンの無地の背景色を選ぶ。アプリの色テーマに一致させる
  2. フラットアイコンのウェブサイトからアイコンを手に入れ、テンプレートに加える

Photoshopテンプレートが、アプリストアの要求に合う色々なサイズのアイコンを生成してくれる。

4. デモビデオ [オプション]

簡単な方法はシミュレータの中でアプリを実行し、ビデオを録画するためにQuickTimeを利用する。より詳しくは、http://www.loopinsight.com/2014/01/08/your-macs-built-in-screen-recorder/にある。要求される流れをキャプチャーするのを数回試みる。

必要となる編集は、キャプチャーされたビデオをトリムするだけだ。最後の仕上げにQuickTimeのオプションから「トリム」を利用する。私は個人的にデモビデオ時間を30秒以内となるようにしている。

5. スクリーンショット

アプリストアやウェブページにもスクリーンショットも必要である。同じコピーが双方に役立つ。意味あるデータをアプリに入れて、スクリーンショットをキャプチャする。

Hacker News

なぜ、あらゆることにSSHを使わないのか?

SSHをいろいろなところで使っていいかも知れない。

SSHは今までで最も利用し易いセキュアプロトコルである(次いで2番目がHTTPSだ)。特徴を見ていくと: バイナリプロトコル、暗号化必須、公開鍵ピンニング、多重化、圧縮。なぜHTTP/2の開発で、これらの重要な特徴が無いだろうか? 確かに、SSHにはいくつかの要素が欠けている。仮想ホストの考えや、一つのIPアドレスから異なるホスト名の異なるエンドポイントを扱う機能が不足している。他方、SSHにはパスワードの登録や覚える必要性を取り除く内蔵クライアント認証のようなHTTP/2には無いクールな機能を持っている。

Hacker NewsSlashdot

1/03/2015

フレッド・ウィルソン氏が2015年を予想

投資家のフレッド・ウィルソン氏が恒例の今年1年の予想をしている。要約するとこんな感じだろうか。

  1. 2008年以降スタートした企業、ウーバー、エアビーアンドビー、Dropboxなどが株式上場
  2. Xiaomi(シャオミ)がアメリカで得た11億ドルの一部を使い、非Googleアンドロイド部門の強力なプレーヤーになるだろう
  3. LINE、WeChatのアジア系メッセンジャーがアメリカのメッセンジャー市場のシェアを侵食
  4. 2014年のFacebookによるOculus Riftの買収後、VRは向かい風。Oculusはコンシューマ向け製品のリリースに奮闘、競合製品もがっかりさせられる。VRは結局バーチャルハイプに追い付くが、2015年ではない
  5. ウェアラブルはまだハイプの域を出ていない。Apple Watchはヒット商品にはならない。すべての人が腕にコンピュータに身に付けたいわけではない。結局、この市場はパーソナルメッシュ/パーソナルクラウドとして物になるだろうが、まだウェアラブルの中心はみせかけだろうし、多くの時間、エネルギー、お金が注ぎ込まれるが、結果はそれほど得られない
  6. 2015年の資本市場は上がったり下がったり。ビッグネームは資本を得やすいが、原油市場が低調なので、グローバルな資本市場には圧力となり、安全な投資に向かう。安全なものといえば、金、国債、優良企業の株だった。今は、Google、Apple、Amazon、そしてFacebookだ。
  7. 民主党と共和党は次期大統領選に向けて、シリコンバレーでの地位確保で有利な立場を得ようと競い合い、テクノロジー系の争点が立ちはだかる。共和党は移民問題やネット中立性の解決策を出し、ホワイハウスは譲歩することになる。両者とも勝利を主張するが、真の勝者は民衆だ
  8. 2014年はビットコインにとって最悪の年だったが、ステークホルダーにとって注意喚起となった。開発者は次のビットコイン探しからビットコイン・ブロックチェーンの上にスタックを作ることに向かう。本物の分散アプリケーションがプラットフォームとして登場し、成熟し起業家精神にあふれたエネルギーが正しい方向に向かわせる
  9. エンタープライズ/SAAS部門は明るく、クラウドやモバイルを利用し、働き方を再定義するような新しい企業が出現する
  10. サイバーセキュリティの予算は全ての企業、研究所、政府機関で大きくなる。オープンなインターネットでは、難攻不落なシステムは存在しないので、ハッキングは続く
  11. 健康管理の中心は、患者が患者を手当てするP2P治療やEMRになるスマートフォンのトライフェクタによってもたらされ、実物市場経済が入り(人々が自身の健康管理にお金を払う)、ヘルスケア部門は患者のプレッシャーを感じるようになる。ヘルスケアが大きな流れになるには10年程度かかると思うが、2015年にはそれが始まる

Hacker NewsTechCrunchDaring Fireball

更新 (2016.01.02)

半分当たったとのこと。

1/01/2015

DPI用途にも使える100GigE NIC

Accolade Technologyという会社が、オフロードとDPI用途に低コストの100ギガイーサネットのNIC、「ANIC-100K」を発表したそうだ。ANIC-100Kは、シングルポートタイプで、100Gbpsフルレートでパケットキャプチャーが可能。仕様は、インタフェースは16レーンGen3 PCIE、トランシーバはCFP2、パケットメモリは6GBで、Linux/FreeBSD/Windows用のドライバが用意されている。100GigEが2ポートの「ANIC-200K」が先行で発表になっている。

低コストといってもいくらするんだろう...

Broadband Traffic Management