Mackey's Lab

博士を取るまでの備忘録

博士取得

このブログは博士を取るまでの備忘録だった。 まぁ、3日坊主の自分が始めたブログなので案の定1カ月も持たなかったが、久しぶりにログインをしたら結構なPVをいっててびっくりした。 しかしながら、本ブログの「博士を取るまで」という所に関して、実は201…

Gtk-WARNING ** が出たときの対処

コマンドラインから git を操作していて、git pull をしたときに、 $ git pull origin master (process:6781): Gtk-WARNING **: Locale not supported by C library. Using the fallback 'C' locale. (gnome-ssh-askpass:6781): Gtk-WARNING **: cannot open…

O_DIRECT フラグを利用した Direct IO

C++ を利用しての Direct IO で詰まった。 Direct IO とはキャッシュを介さずにファイルシステムに直でアクセスしてしまおうという、まぁ通常ではあまり使いそうにないが、アプリ側で別途キャッシュをしていたり、そもそも RAM FS などでメモリをファイルシ…

GCC のバージョンを 4.9 に上げる

C++ プログラミングをしていて,C++11 の STL を利用したいときがある。 しかしながら、CentOS 6 とか Ubuntu 12 系列ではあらかじめ入っている(若しくは yum なり apt-get なりでパッケージとして簡単に導入できる)GCCのバージョンは 4.4 系である。残念…

プロキシを利用した wget にハマる

トラブル プライベートネットワーク環境にあるマシンの gcc バージョンを 4.4 から 4.9 へあげる際にプロキシ経由で wget する必要があった。http の wget は正しく動作するのだが、ftp になるとうまく動作しない。 http プロキシの設定時に /etc/profile に…

10Gbps Ready のための覚え書き(ベンダーロックイン)

10Gbps のスイッチや NIC を購入する上で絶対に考えなくてはならないのは「ベンダーロックイン」である。 これはいわゆるベンダーによるユーザの囲い込み戦略の一つであり、A社のスイッチにはA社の SFP+ トランシーバしか利用できない、といった具合だ。安い…

10Gbps Ready のための覚え書き(はじめに)

この記事は 10Gbps を日常的に利用する中で得られた知識をまとめる記事である。そのため、どんどん追記して行く予定である。 ・はじめに・光ファイバー編・スイッチ&NIC編・ベンダーロックイン 【はじめに】 大量のデータを送信するためには現在一般的に利…

高並列性サーバプログラムの実装(サーベイ編)

より多くのクライアントからの同時アクセスを捌くためにサーバプログラムのパフォーマンス改善が必要になってきた。世に言う C10K 問題とかその話に近い。C10K 問題については下記の Web サイトを参考にすると良いが、簡単に言うと「ハードウェアの性能上は…

epoll におけるレベルトリガーとエッジトリガー

epoll を利用したプログラミングをやっていて「レベルトリガー」と「エッジトリガー」という聞き慣れない単語を目にした。 これらの言葉はどうやら電子工学や制御工学などでよく利用される言葉のようである。調べるとマイコン制御などの記事が多く出てくる。…

tail -f は古い・・・らしい・・・

FUSE デバッグの中で /var/log/system.log を # tail -f /var/log/system.log で開きっぱなしにすると便利だと言及したが、つい最近 Facebook である記事が回ってきた。 <a href="http://www.brianstorti.com/stop-using-tail/" data-mce-hre…

FUSE におけるデバッグ手法 (OSX FUSE編)

OSX FUSE を利用していてデバッグに困った。今回の実装では FUSE をダウンロードした example というディレクトリに入っている hello.c というプログラムを変更しながら実装をしているのだが、デバッグが難しい。 というのも、main 関数で呼ばれている fuse_…

FUSE を利用したインターフェース作成

クラウドベースのストレージシステムを作成していると Client インタフェースをどのように実現するのかが重要となる。 これまでは C++ の Client API を提供し、ユーザ側で自由に実装してもらう(というのは建前で実際はユーザインタフェースを作成するのが…

AL-FEC の利用

FEC

FEC (Forward Error Correction): 前方誤り訂正は非常に多くの分野で利用されている。FEC は伝送データにあらかじめ冗長データを付加することで、各種ノイズによりビット誤りが発生した場合、受信側でその誤り検出と訂正を可能とする技術である。 この FEC …

waf の導入

大学の研究室で Espresso というシステムを開発している。これは基本的に C++ で書かれているので最初(プログラム全体が小さいうち)は手作業で Makefile を書いていたのだが、さすがにそろそろ限界が近づいてきたのでビルドシステムを導入することを決意。…

備忘録ブログ開始

これまで Evernote にプログラミングやネットワークに関する情報をまとめてきたが、博士課程進学を記念してブログとしてまとめて行きたいと思う。備忘録も兼ねて。