Version 48 (modified by mitty, 11 years ago) (diff) |
---|
- 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 座標系とジオメトリ
- 日本語組版処理の要件(日本語版)
- プログラミングに関係すること
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
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になったことでわかる。