[[PageOutline]] [[TitleIndex(Dev,format=group)]] * [http://semver.org/ Semantic Versioning] * [http://stackoverflow.com/ 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. * [http://esolangs.org/wiki/Language_list Language list - Esolang] * [http://www.mwsoft.jp/column/program_top10.html プログラミング言語人気TOP10の簡易解説] > 【参考URL】各言語の実行速度はこの辺を見るとわかりやすい http://shootout.alioth.debian.org/ * [http://wiki.liris.org/article/bittorrent BitTorrentのファイル配信メカニズム - Emerge Technology] * via twitter:suma90h/status/7399039460 * [http://anlyznews.blogspot.com/2011/02/objective-c.html 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でコンパイルをし、実行を行った。 * 代表的なスクリプト言語も比較に入っている * wikipetan:竹内関数 * [http://caca.zoy.org/wiki/PWNtcha PWNtcha - captcha decoder] * [http://msdn.microsoft.com/ja-jp/library/aa515822.aspx 3D 座標系とジオメトリ] * via twitter:santarh/status/132423516854296577 * [http://www.w3.org/TR/2008/WD-jlreq-20081015/ja/ 日本語組版処理の要件(日本語版)] * [http://www.nminoru.jp/~nminoru/programming/ プログラミングに関係すること] * [http://cboard.cprogramming.com/networking-device-communication/93683-checking-if-file-descriptor-valid.html#post678998 Checking if a file descriptor is valid] > {{{#!c > int is_valid_fd(int fd) > { > return fcntl(fd, F_GETFL) != -1 || errno != EBADF; > } > }}} * [http://www.linuxquestions.org/questions/programming-9/sockets-af_packet-versus-pf_packet-942143/ 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. * [http://d.hatena.ne.jp/enakai00/20120522/1337650181 PF_PACKETの仕組み - めもめも] > Socketをオープンする際のお作法(呪文?)は次のとおりで、通常は、第一引数に「PF_INET」(もしくはAF_INET)を指定します。 > {{{ > sock = socket(PF_INET, SOCK_STREAM, htons(ETH_P_IP)); > }}} > ここに「PF_PACKET」を指定することで、受信直後の生パケットをユーザ空間のアプリケーションで受け取ることができるようになります。これは、パケットのコピーを受け取っているだけなので、このパケットを受け取るべき本来のアプリケーションにもちゃんと同じパケットは届きます。 * [http://togetter.com/li/283316 TCP socketではwriteの後すぐにcloseしてはいけない - Togetter] > TCP socketではwriteの後すぐにcloseしてはいけない。 > 相手側に全てのデータが届いてからcloseする必要がある。 > shutdown で書き込み側だけハーフクローズするとよい。 > 相手側がcloseしてから、こちらをcloseする。相手側がcloseしたことは、readを呼んでブロックさせておくと、読み込みバイト数==0 つまりEOFになったことでわかる。 = C/C++ = * [http://d.hatena.ne.jp/yohei-a/20101110/1289410003 ファイルがページキャッシュに乗っているかどうかを調べる - ablog] * [http://www.pushaa.jp/~hizuki/soft/wiki.cgi?cygwin%A4%C7Windows%A5%A2%A5%D7%A5%EA%A4%F2%BA%EE%A4%EB%A4%BF%A4%E1%A4%CE%A5%E1%A5%E2 cygwinでWindowsアプリを作るためのメモ - cygwinを使って、] * [http://research.preferred.jp/2010/12/wat-array/ wat-array : wavelet木を利用した高速配列処理ライブラリ : Preferred Research Blog] * via twitter:iwiwi/status/15788763305222144 * [http://d.hatena.ne.jp/bsdhouse/20090720/1248085754 そろそろvolatileについて一言いっておくか - yamasaのネタ帳] * via twitter:Flast_RO/status/16853894420238336 * [http://funini.com/kei/mmap/ mmap (メモリマップトファイル) : kei@sodan] * via twitter:nooyosh/status/36771691048730624 * [http://ufcpp.net/study/csharp/sp2_microthread.html (サンプル) イテレータとマイクロスレッド (C# によるプログラミング入門)] * [http://yasu2.prosou.nu/blog/2010/01/mmap-howto.html mmap() HOWTO - Debuggin' Everyday] * [http://blog-ja.intransient.info/2011/05/c-13.html Success is a Journey, not a Destination: 全てのCプログラマが未定義な振る舞いについて知っておくべきこと #1/3] * [http://code.google.com/p/address-sanitizer/ address-sanitizer - AddressSanitizer: a fast memory error detector - Google Project Hosting] * [http://blog.bitmeister.jp/?p=365 TAPデバイスでIPv6パケットキャプチャ] * [http://stackoverflow.com/questions/15393838/how-do-i-unpack-and-extract-data-properly-using-msgpack-c serialization - How do I unpack and extract data properly using msgpack-c? - Stack Overflow] * [http://stackoverflow.com/questions/12431441/messagepack-c-api/12581029 msgpack - MessagePack C API - Stack Overflow] == build 32bit object on x64 == * [http://ankyo.blog.so-net.ne.jp/2010-06-19 【Ubuntu】 Ubuntu 64bit版 で 32bitのライブラリやアプリをコンパイルする環境設定(覚書):なんでもかんでもコンピュータ:So-netブログ] {{{ sudo apt-get install ia32-libs lib32gcc1 lib32stdc++6 libc6-dev-i386 gcc-multilib gcc -m32 -o hello32 hello.c }}} = Malbolge = * [http://ja.wikipedia.org/wiki/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ですらない。 * [http://d.hatena.ne.jp/Robe/20060824 最凶言語 Malbolge - ロベールの小部屋] = Grass = * [http://www.blue.sky.or.jp/grass/ Grass the grass-planting programming language] = Python = * [https://gist.github.com/737366 gist: 737366 - GitHub] * twitter:hktechno/status/13583915394531330 Twitpic の特定のユーザーの画像 ID を全部取得してくるスクリプト。 * [http://www.python.jp/doc/release/tutorial/ Python チュートリアル — Python v2.6.2 documentation] * [http://snipplr.com/view/56085/update-all-easyinstall-python-eggs/ Update All Easy_Install Python Eggs - Python - Snipplr Social Snippet Repository] = OCaml = * [http://caml.inria.fr/pub/docs/manual-ocaml/libref/Pervasives.html 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. * [http://www.i.kyushu-u.ac.jp/~bannai/ocaml-intro/install.html 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 = * [http://www.unix.com/shell-programming-scripting/96486-makefile-debug-target.html 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" > }}} * [http://stackoverflow.com/questions/1079832/how-can-i-configure-my-makefile-for-debug-and-release-builds make - How can I configure my makefile for debug and release builds? - Stack Overflow] > You can use [http://www.gnu.org/software/make/manual/make.html#Target%5F002dspecific Target-specific Variable Values]. Example: > {{{ > (snip) > debug: CXX += -DDEBUG -g > debug: CC += -DDEBUG -g > debug: executable > }}} = Fail Safe C = * [http://staff.aist.go.jp/y.oiwa/FailSafeC/ Fail-Safe C: Top Page] * Ubuntu 12.04 LTS x86_64 * mitty@precise:~$ sudo aptitude install ocaml-nox ocaml-native-compilers ocaml-findlib libextlib-ocaml-dev camlp4 libgc-dev libgdbm-dev {{{ The following NEW packages will be installed: camlp4 ledit{a} libextlib-ocaml{a} libextlib-ocaml-dev libfindlib-ocaml{a} libfindlib-ocaml-dev{a} libgc-dev libgc1c2{a} libgdbm-dev ocaml-base-nox{a} ocaml-findlib ocaml-interp{a} ocaml-native-compilers ocaml-nox 0 packages upgraded, 14 newly installed, 0 to remove and 0 not upgraded. Need to get 31.6 MB of archives. After unpacking 106 MB will be used. }}} * mitty@precise:~$ svn co https://svn.rcis.jp/FailSafeC/pub/trunk FailSafeC-trunk {{{ Checked out revision 2255. }}} == fix version getter script == * mitty@precise:~/FailSafeC-trunk$ vim tools/disthelpers/svn-get-revision.pl {{{#!diff Index: tools/disthelpers/svn-get-revision.pl =================================================================== --- tools/disthelpers/svn-get-revision.pl (revision 2255) +++ tools/disthelpers/svn-get-revision.pl (working copy) @@ -9,7 +9,7 @@ while () { # 123456 1234567890 12345678 123456789012 # A + - 1723 yutaka local-packaging/debian-dir - /(^[AMDR\+ \?]{6}) ([ \-\d]{10}) ([ \-\d\?]{8}) .{12} (..*)$/ or die "cannot parse svn output: \"$_\"\n "; + /(^[AMDR\+ \?]{7}) ([ \-\d]{10}) ([ \-\d\?]{8}) .{12} (..*)$/ or die "cannot parse svn output: \"$_\"\n "; $fname = $4; $frev = $3 + 0; # print $_; }}} * mitty@precise:~/FailSafeC-trunk$ ./tools/disthelpers/svn-get-revision.pl {{{ 2255+20120602T162127Z }}} * mitty@precise:~/FailSafeC-trunk$ ./configure * mitty@precise:~/FailSafeC-trunk$ make * mitty@precise:~/FailSafeC-trunk$ sudo make install