Version 44 (modified by mitty, 12 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 座標系とジオメトリ
- 日本語組版処理の要件(日本語版)
- プログラミングに関係すること
- 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になったことでわかる。
C/C++
- ファイルがページキャッシュに乗っているかどうかを調べる - ablog
- cygwinでWindowsアプリを作るためのメモ - cygwinを使って、
- wat-array : wavelet木を利用した高速配列処理ライブラリ : Preferred Research Blog
- そろそろvolatileについて一言いっておくか - yamasaのネタ帳
- mmap (メモリマップトファイル) : kei@sodan
- (サンプル) イテレータとマイクロスレッド (C# によるプログラミング入門)
- mmap() HOWTO - Debuggin' Everyday
- Success is a Journey, not a Destination: 全てのCプログラマが未定義な振る舞いについて知っておくべきこと #1/3
- address-sanitizer - AddressSanitizer: a fast memory error detector - Google Project Hosting
- TAPデバイスでIPv6パケットキャプチャ
build 32bit object on x64
- 【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
GeSHi
- GeSHi - Generic Syntax Highlighter :: Home
- aptitude show php-geshi
- lucid => http://packages.ubuntu.com/lucid/php-geshi
Version: 1.0.8.4-1 Depends: php5 | php5-cli
- lucid => http://packages.ubuntu.com/lucid/php-geshi
- source:/trunk/Dev/geshi/
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
Fail Safe C
- 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
-
tools/disthelpers/svn-get-revision.pl
9 9 while (<F>) { 10 10 # 123456 1234567890 12345678 123456789012 11 11 # A + - 1723 yutaka local-packaging/debian-dir 12 /(^[AMDR\+ \?]{ 6}) ([ \-\d]{10}) ([ \-\d\?]{8}) .{12} (..*)$/ or die "cannot parse svn output: \"$_\"\n ";12 /(^[AMDR\+ \?]{7}) ([ \-\d]{10}) ([ \-\d\?]{8}) .{12} (..*)$/ or die "cannot parse svn output: \"$_\"\n "; 13 13 $fname = $4; 14 14 $frev = $3 + 0; 15 15 # 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