サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
掃除・片付け
ymmt.hatenablog.com
このエントリーは社内勉強会用の解説記事です。 普通の人は便利な libev や libuv を使っておきましょう。 epoll はいわゆる C10K 問題に対応するための Linux カーネルが提供する仕組みです。といってもこの問題、32bit 時代のメモリが潤沢ではなかった時代のものなので、いまどき並大抵のプログラムであれば、普通に1コネクション1スレッドで問題ないでしょう。@kazuho 先生がそうおっしゃっていました。 まあ御託はさておいて、epoll のマニュアル読んでもちょいわからないところを補足しておきます。 レベルトリガーとエッジトリガー マニュアルに書いてありますが、簡単に言うとレベルトリガーは指定した状態が満たされるかチェックする方式です。つまりソケットの受信バッファにデータがあれば、epoll_wait を何度呼び出しても必ず read ready が返ってきます。 エ
毎日暑いですね。私はようやく明日から夏休みです。 さて。今日は Jekyll で Web サイトやブログを作る話です。 俺もう知っているって人は、特に得られる情報ないと思います。ずぼら入門なんで。 Jekyll は Ruby でできたツールで、CSS や HTML のテンプレートから静的にページを生成してくれます。 GitHub Pages のエンジンとして使われており、以下のようなサイトが Jekyll で動作しています。 Cybozu Open Source Onion Inc.'s Tech Blob @banyan's blog いまどきブログサイト作るだけなら、たとえばこのはてなブログでもいいし、Blogger でもいいし選択肢はたくさんあります。 なぜ手間をかけて Jekyll というツールを使いたいかと言えば、以下の利点があるからです。 任意のコンテンツを置ける スタティック
はじめに言っておきますと、テストは重要ですよ。テストしないなんてありえない。 でも、テストコードを書いて当たり前という昨今の論調には、同意できないのです。テスト熱中症になんて到底なれません。そう思うのは私だけではないようで、Rails の作者も書きまくればいいってものではないと言っています。 なぜ同意できないのか、理由を書き連ねて鬱憤を晴らすことにします。 コスト対効果が悪いから もうこれに尽きる。尽きすぎる。テスト書いてもほとんど不具合なんて見つからないです。 なぜって? なぜでしょうね。知りませんが、ほとんど不具合ないんですもの。 typo の類はコンパイル時に修正されてますし。 コンパイル型言語じゃない? コンパイル型言語使えばいいんじゃないですか :-p 難しいバグは見つけられないから テストコードでさらっとみつかる不具合はそもそも簡単・単純なものが多いです。 再現しやすければ、改
@ymmt2005 こと山本泰宇です。 公式発表とは別に、こちらでは yrmcds のもう一つの使い方を紹介します。それと、私の気持ちなどを。 yrmcds は実際のところ、作ることをかなりためらいました。工数という観点でみれば Apache が Redis を扱えるようにするとか、レプリケーションの仕組みを頑張るといったほうが小さい気がしたからです。C++11 の実践課題という動機は個人に寄っているので、会社に十分なメリットがないことには・・・と。 そこで会社へのメリットとして、以下の価値を加えることにしました。 後進の開発者が設計やプログラミング技法を学ぶ教材として使える 英語圏では無名のサイボウズの知名度の足しになるようにオープンソース化して宣伝を頑張る 教材として yrmcds が提供しているものは以下です。 簡潔なコード 以下の cloc レポートが示すように、ほとんどのファイル
ソフトウェアエンジニアとして働き始めて 20 年以上になります。 元々ソフトウェアでいろいろ作りたくて就いた職業なので、結構な数のプロダクトを開発してきました。 私がメインで開発したもので OSS として出ているものでは、 [yrmcds]: memcached クローンで、レプリケーション機能などを持つ [usocksd]: SOCKS4/5 サーバー & ライブラリ [transocks]: アプリのネットワーク通信を透過的に SOCKS サーバーにプロキシする透過プロキシ [coil v2][coil]: Kubernetes の CNI ネットワークドライバ [moco]: MySQL を自動運用する Kubernetes オペレーター [accurate][]: Kubernetes 上で namespace ベースのソフトマルチテナンシーを実現するためのソフトウェア などがあり
子供のころからできるだけ手抜きして成果を挙げることだけは長けている山本です。 今回は、C/C++ で作ったプログラムが運用中にクラッシュするときのデバッグ方法のお話しです。 開発中のデバッグは gdb などでソース追いながらデバッグできますが、運用中ですと strip していたり最適化していたりしてデバッグが難しくなります。 そもそも、いきなりクラッシュすると情報が残らずに困ってしまいます。そんなときどうするか。 Step1. スタックトレースを出力する こんな関数を用意しましょう。Linux 以外の人はそれなりに実装してください。 #include <execinfo.h> #include <unistd.h> void dump_stack() { void* bt[100]; int n = backtrace(bt, 100); backtrace_symbols_fd(bt,
最近 120 年ぶりに C++ を書くことにしたので、もだーんとは何かという禅問答を繰り返した記録を公開。 C++ のススメ なぜ C ではなく C++ を使うのか。その理由の 99.999% は std::string にある。 char* は忘れるんだ! std::string を使うだけで↓のように幸せになれる! void f(const std::string& s) { g("hoge "+s); } C ならこんな感じになるところだ。 void f(const char* s) { char buf[256]; sprintf(buf, "hoge %s", s); g(buf); } ライブラリ STL は機能リッチとはとても言えないので、ちょっとなにかやりたいことがあるとライブラリをまず探すという面倒なことになる。まあ主要なところをいくつかまとめておく。 用途名称URLコメ
昔、サイボウズ社内のブログで公開して人気があったのをいくつか公開します。 まずは、英語が書けない人のための 書き方講座。 ---- 「英語なんて読むのも大変だし、書くのはもっと大変」という方、たくさんいるんじゃないでしょうか。 私もなかなか英語は苦手で、苦労してきました。今でも苦手は苦手ですが、読まなきゃいけなければ読めるし、書かなきゃいけなければ書ける、くらいにはなりました。 というわけで、英文をなんとか書けるメソッドをご紹介します。自己流ですし、これで「ばりばり」書けるメソッドというわけではないですが、やんなきゃいけない時には役に立つかなと。 ■読めなくても書ける 正確に言うと、「(難しい英文を)読めなくても(簡単な英文なら)書ける」。英語を読むのが苦手でも、書けます。大丈夫。書ける文章を書けばいいのです。 と、当たり前のようですが、実は書ける文章を書くというのが最初の難関だったりしま
このページを最初にブックマークしてみませんか?
『誰かの役に立てばいいブログ』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く