タグ

ブックマーク / d.hatena.ne.jp/nokuno (6)

  • テキストファイルを処理するときのUnixコマンドまとめ - nokunoの日記

    個人的にテキストファイルを処理することが多いのですが,簡単な処理ならUnixのコマンドをパイプとリダイレクトで組み合わせてできることが多くあります.今回はそんななかでもちょっとマニアックなTIPSをまとめてみました. sortコマンドでタブ区切りのファイルを指定する最近知って驚愕したのがこれ.sortコマンドでタブ区切りのファイルを指定したいときは,Ctrl+v Tabでタブ文字を入力していたのですが,$ sort -t $'\t' -k 2,2 のようにしてタブ区切りで2番目のキーでソートすることができます. 1000行おきにデータをサンプリングする1000行おきにファイルからデータをサンプリングしたいときとかは,perlでワンライナーを書くのが速いようです.$ perl -ne '$i++; print unless ($i % 1000)' 某所のコードゴルフによるとこれだけ短くでき

  • Evernoteのアーキテクチャ概要 - nokunoの日記

    みなさん、Evernoteは使っていますか? Evernoteは「全てを記憶する」が合言葉のメモアプリで、クラウド上にデータを保存してWin/Mac/iPhone/Webから共通のデータにアクセスしたり同期したりできるのが特徴の便利なサービスです。開発元はシリコンバレーの会社ですが、日人のユーザも非常に多いそうで、Evernoteの使い方についての記事は日語でも星の数ほどありますのでここでは触れません。 今回は、そのEvernoteの裏側のシステム概要を解説する記事が今月開設されたばかりの技術ブログに公開されていましたので、翻訳してみました。Architectural Digest | Evernote Tech Blog はじめにこのブログの手始めとして、Evernoteの構築について大雑把な概要を述べる。ここではそれぞれのコンポーネントの詳細に踏み込むことはしない。それらについての

  • C++を鍛え直す - nokunoの日記

    関数全体をtryで囲む int main() try { // 関数内のすべての例外をキャッチできる ... } catch () { ... } 無名名前空間C言語ではグローバル変数にstaticを付けるとファイル内変数になりましたが、C++では無名名前空間を使うことで同じ事を明示的に書くことができます。 namespace { // この中の変数は他のファイルから参照できない int i; } newのバリエーションデフォルトのnew演算子はメモリ確保に失敗するとstd::bad_alloc型の例外を投げるようになっていますが、std::nothrowを使うとNULLを返すようにできます。これは便利! int* p = new(std::nothrow) int; delete p; ※Effective C++によると、nothrow型のnewはメモリ確保に失敗しても例外を投げないも

    yoshi84
    yoshi84 2011/05/13
  • Googleのエンジニアに必要とされるスキルセットは何か? - nokunoの日記

    以下のQuoraの翻訳です。この質問に対して、秘密主義で知られるGooglerたちが答えているのがいいですね。What are the skill-sets needed to be a Google Engineer? - QuoraGoogleエンジニアに必要とされるスキルセットは何か? 回答1ほとんどのプログラマはブラックボックスを使用しています。データベースはブラックボックスです:SQLを与えると、答えが返ってきます。コンパイラもまたブラックボックスです:ソースコードを与えると、実行バイナリ(またはエラーメッセージ)が返ってきます。たくさんのプログラマがこれらのブラックボックスを所与のものとして扱うことでハッピーになります。よりよいプログラマは、そのなかで何が起こっているのかを不思議に思い、中身を開けてみてみるのです。私が言いたいのは、Googleエンジニアに必要とされているス

  • そろそろHadoopについてひとこと言っておくか - nokunoの日記

    もうこの手の話題は出尽くした感がありますが、最近Hadoopについて考えることが多いので、エントリにしてみます。なお、ここではベーシックなMapReduce+HDFSのことをHadoopと呼ぶことにします。 HadoopとはHadoopとは言わずと知れたGoogleMapReduce/GFSのオープンソースのクローンです。MapReduceではプログラマはMapとReduceという2つの関数を書くだけで、並列分散処理をすることができます。これは(1) データを実際に持つマシンにプログラムを配布する (2) MapとReduceをつなぐShuffleフェーズでキーをグループ化してソートする、(3) 障害時のフェールオーバーやレプリケーション、といった処理をフレームワーク側が受け持つことによって、プログラマ側の負担を減らすものです。GFSに対応するHDFSにはファイルをクラスタに分散して保存

  • エンジニアの英語勉強法 - nokunoの日記

    エンジニアの、というほど特化しているわけではありませんが、昨日のエントリに英語のことを少し書いたら英語勉強法について書きたくなったので、まとめてみました。Smart.fm - 世界最大級英語学習コミュニティーサイトPC上で単語の学習ができます。iTunesに無料のPodcastもあり、電車の中などで勉強するのにオススメです。英会話ならオンライン英会話のレアジョブSkypeで英会話のレッスンを受けることができるサイトです。講師はフィリピン大学の学生さんで、気楽に話ができます。Lang-8 - Multi-lingual language learning and language exchange | Lang-8外国語の文章を相互に添削しあうサイトです。ライティングの勉強になるので、英語のブログを書いたら試してみようと思います。 PodcatiTunesには英語系のPodcastがたくさ

  • 1