2014-01-01から1年間の記事一覧
第4回 中国地方DB勉強会 in 岡山 #ChugokuDB 今週の日曜日に初めて参加しました. 第四回 中国地方DB勉強会 テーマはパフォーマンスチューニング. ハンズオンのネタとして用いられたのはSQL逆引き大全363の極意.講師の喜田 紘介さんは著者の一人. SQL逆引…
パーフェクトPythonを写経中に0.1 + 0.1 + 0.1について書いてあったのでメモ. Pythonのfloat(浮動小数点数型)は、大抵の場合はCのdouble型を使って実装されており、近代的なコンピュータの場合53ビットの精度らしい. Python $ python Python 2.7.3 (defaul…
シェルスクリプトを書いていて、ふと0~1の乱数をお手軽に生成したくなったので、実験結果をメモ. awkには組み込みでrand()という関数が用意されていて、例えば以下のような形で呼び出すたびに0~1の範囲の乱数を生成してくれる. awk 'BEGIN{ srand('"$RANDO…
前回、「次回もシグナルのことを書く」と書いたのでシグナルのことを書く*1. ソケットプログラミングの落とし穴は色々あるけど、ここでは個人的に嵌ったシグナル関連の落とし穴に関して書き殴る. 結論から書くと、コネクションが切れたソケットに書き込み(s…
過去に何回かシグナルに関する話をしたが、今回と次回もシグナルの話にしようと思う. シグナルそのものについてはsignal(7)のmanページを参照する. ここでは、シグナルを捕捉する側の話をする. 主に移植性の問題で、signal(2)ではなくsigaction(2)を使う…
場当たり的なMakefileで管理しているC/C++のコードの規模(数千行程度)がそれなりに大きくなってきた. テストがないので大きな変更がしんどい. テストがないのでバグを踏んでも何が原因かは勘とprintfデバッグ、辛い. もういろんなところでテストがまったくな…
発声練習:Intel C/C++ を用いた Google Test環境を準備するを参考にしてgoogletestのセットアップを行うシェルスクリプトを書いた. ホームディレクトリにソースを落としてきて、コンパイルした後に/usr/local/に必要なヘッダとライブラリをcpしているだけ.…
前回(g++)と前々回(gcc)のサンプルコードを使ったC++のマングリングや"C"リンケージに関するメモ. nmコマンドでサンプルコードのシンボルテーブルを覗いた後に、C++からCの関数を呼び出す場合のサンプルコードを示す. 特にリンケージ周りの説明は正確性を欠…
前回の記事で公開したMakefileでは、gccのコンパイルオプションに-Wallを付けていなかった. 極めて非人道的である. 現在はMakefileを修正してコンパイル時に-Wallを付けるようにしたが、そのままmakeを叩くとコンパイラにしっかり警告を食らった. run.c: …
CでもC++でも良いんだけど、コードが大きくなってくるとファイルの分割を考え始める. 追記(204/1/30):このままコンパイラをg++にするとコンパイルが通らなかった.また、-Wallオプションを付けないというとんでもないことをしている.その辺のことをこちら…
Gistにコードを投稿するのにいちいちブラウザを介するのは煩わしいので、ターミナルからコマンド一発で投稿したい. と思ったらあった. https://github.com/defunkt/gist インストール $ sudo apt-get install ruby $ sudo apt-get install gem $ sudo gem …
二十五日半狂乱、6日目(の分...orz)の記事 Cのエラーハンドリングを毎回やるのは面倒だ! 前回も言ったが、Cではエラーハンドリングに戻り値とerrnoを用いる. それはそうと例外設計において"無視"は大罪である. だから、関数を呼び出したら戻り値は漏らさ…