- Dev
- Dev
- Dev/Book
- Dev/C
- Dev/Contest
- Dev/GDB
- Hard
- Dev/JavaScript
- KernelHack
- Perl
- Dev/Ruby
- Dev/Standards
- Dev/Trac/css
- assembly
- build
- Dev/lambda
- nicovideo
- Dev/scheme
- Semantic Versioning
- Stack Overflow
- Stack Overflow is a collaboratively edited question and answer site for programmers – regardless of platform or language. It's 100% free, no registration required.
- Language list - Esolang
- プログラミング言語人気TOP10の簡易解説
【参考URL】各言語の実行速度はこの辺を見るとわかりやすい http://shootout.alioth.debian.org/
- BitTorrentのファイル配信メカニズム - Emerge Technology
- Objective-Cの『遅さ』を計測したら、JavaやC++の5倍も遅かった: ニュースの社会科学的な裏側
- via twitter:Flast_RO/status/40657392437829632
ベンチマーク方法は簡単に、1変数、1メソッドのオブジェクトを作成し、ループして2,147,483,647回、同一のメソッドを呼び出した。メソッドはint引数が一つあり、int値を戻す。AMD機でUbuntu LinuxのGCC 4.4.3でコンパイルをし、実行を行った。
- 代表的なスクリプト言語も比較に入っている
- via twitter:Flast_RO/status/40657392437829632
- wikipetan:竹内関数
- PWNtcha - captcha decoder
- 3D 座標系とジオメトリ
- 日本語組版処理の要件(日本語版)
- プログラミングに関係すること
- addr2line
addr2line はプログラム内のアドレスをファイル名と行番号に変換する。アドレスと実行 ファイルが与えられると、 addr2line は実行ファイルのデバッグ情報を用いて、アドレスに関連付けられているファ イル名と行番号を求める。
- patch - How do I create binary patches? - Stack Overflow
- windows - Binary diff tool for very large files? - Stack Overflow
Malbolge
- Malbolge - Wikipedia
- 次のMalbolgeプログラムは"Hello, world"を出力する。
(=<`:9876Z4321UT.-Q+*)M'&%$H"!~}|Bzy?=|{z]KwZY44Eq0/{mlk** hKs_dG5[m_BA{?-Y;;Vb'rR5431M}/.zHGwEDCBA@98\6543W10/.R,+O<
- human readableどころかwritableですらない。
- 次のMalbolgeプログラムは"Hello, world"を出力する。
- 最凶言語 Malbolge - ロベールの小部屋
Grass
Python
- gist: 737366 - GitHub
- twitter:hktechno/status/13583915394531330 Twitpic の特定のユーザーの画像 ID を全部取得してくるスクリプト。
- Python チュートリアル — Python v2.6.2 documentation
- コマンドで単語カウント - moguranosenshi
- python2.7 - テキストファイルの中で、出現回数の多い単語を、「指定した品詞」に絞って、多い順番に 「指定件数」分だけ、画面に一括出力する対話式 コンソール・アプリケーションをつくってみた - Qiita
OCaml
- Module Pervasives OCaml
The initially opened module.
This module provides the basic operations over the built-in types (numbers, booleans, strings, exceptions, references, lists, arrays, input-output channels, ...).
This module is automatically opened at the beginning of each compilation. All components of this module can therefore be referred by their short name, without prefixing them by Pervasives.
- OCaml プログラミング入門 (インストール)
ledit
OCaml の対話的環境を提供するコマンド: ocaml は ライセンス上の問題から、 C-a で行頭に戻ったりする事や、ヒストリ機能、 などと言った GNU の readline ライブラリを使った便利な機能がありません。 emacs から対話的環境を使うのが一つには考えられます が、どうしてもターミナルから実行したい人は、 ledit と言うコマンドを使えば大丈夫です。 ledit ocaml と起動するだけです。
- リンクが死んでいるので、 http://pauillac.inria.fr/~ddr/ledit/ へ
- http://pauillac.inria.fr/~ddr/camlp5/ も必要
Makefile
- Makefile debug target - The UNIX and Linux Forums
Call the same makefile recursively in the debug target including the required flags. Don't set $(DEBUG) as a macro, but pass it in on the recursive call. Something like...
(snip) debug: $(MAKE) $(MAKEFILE) DEBUG="-g -D DEBUG"
- make - How can I configure my makefile for debug and release builds? - Stack Overflow
You can use Target-specific Variable Values. Example:
(snip) debug: CXX += -DDEBUG -g debug: CC += -DDEBUG -g debug: executable
System Programming
- Checking if a file descriptor is valid
int is_valid_fd(int fd) { return fcntl(fd, F_GETFL) != -1 || errno != EBADF; }
- sockets: AF_PACKET versus PF_PACKET
Yes. AF_foo means address family foo, and PF_foo means protocol family foo. In Linux, they are always been the same values, I believe. Traditionally, the PF_foo constants were used for socket(), but AF_foo in the struct sockaddr structure.
Thus, today, there really should be no difference between AF_foo and PF_foo.
- PF_PACKETの仕組み - めもめも
Socketをオープンする際のお作法(呪文?)は次のとおりで、通常は、第一引数に「PF_INET」(もしくはAF_INET)を指定します。
sock = socket(PF_INET, SOCK_STREAM, htons(ETH_P_IP));
ここに「PF_PACKET」を指定することで、受信直後の生パケットをユーザ空間のアプリケーションで受け取ることができるようになります。これは、パケットのコピーを受け取っているだけなので、このパケットを受け取るべき本来のアプリケーションにもちゃんと同じパケットは届きます。
- TCP socketではwriteの後すぐにcloseしてはいけない - Togetter
TCP socketではwriteの後すぐにcloseしてはいけない。 相手側に全てのデータが届いてからcloseする必要がある。 shutdown で書き込み側だけハーフクローズするとよい。 相手側がcloseしてから、こちらをcloseする。相手側がcloseしたことは、readを呼んでブロックさせておくと、読み込みバイト数==0 つまりEOFになったことでわかる。
- how to use epoll with data->ptr, instead of data.fd? - Stack Overflow
You can put whatever you want in data. It's not used by epoll itself, it just returns it when the event occurs on the fd specified in the argument list.
- epoll_event構造体は以下のように定義されていた
typedef union epoll_data { void *ptr; int fd; uint32_t u32; uint64_t u64; } epoll_data_t; struct epoll_event { uint32_t events; /* epoll イベント */ epoll_data_t data; /* ユーザデータ変数 */ };
- epoll_event構造体は以下のように定義されていた
- UNIX上でのC++ソフトウェア設計の定石 (3) - memologue
鉄則3: マルチスレッドのプログラムでのforkはやめよう
- 回避方法2: fork直後に子プロセスがexecを呼ぶようにする
... 子プロセスはfork直後に、どんな関数(printfなどを含む)も呼ばずにすぐにexeclなど、execファミリーの関数を呼ぶようにします。もし、"execしないfork"を一切使わないプログラムであれば、現実的な回避方法でしょう。
- ただし、fork()からexec*()までの間に「非同期シグナルセーフな関数を呼ぶのは規格準拠」
- 革命の日々! マルチスレッドプログラムはforkしたらexecするまでの間はasync-signal-safe な関数しか呼んではいけない