気になったことを調べた記録

博士号取得後、化学系企業で働いています。物理化学、プログラミング、読書、自転車などが好きです。


プログラミング

大昔のgccのプリプロセッサに関する、極めてどうでもよい話

先日、酒を飲みながらgccだかなんだかのコンパイラの話をしていたときに、ふと、「そういえば昔のgccはプリプロセッサが#pragmaディレクティブを見つけると、コンパイルを中止してゲームを起動するとかいうのがあったよな」と思い出した。 この元ネタは、も…

量子化学計算のプログラムを自作してみた

普段、量子化学の計算を行う際は、GaussianやGAMESS他のソフトが用いられることが殆どで、自分でコードを書くのは計算手法の研究をされている一部の方に限られるのではないかと思います。 近年では、B3LYP汎関数の使用を始めとする、密度汎関数理論(Density …

スターバックスのファンでした(続編)

スターバックスの店舗情報のスクレイピングを行うプログラムを更新した。 昨年の今頃、Pythonで書き直したのだが、その直後にスターバックスジャパンのウェブサイトがリニューアルされて形式が変わってしまっていたため。今回も、Pythonのlxmlライブラリを使…

C/C++からCythonを介してPythonの関数を呼び出す話

下で技術系以外のことも書いて行こうと主張した直後でまた技術系の話です。 Cythonについては、PythonからC/C++の関数を呼び出す為のツールで、これについては情報が至る所にあるのでそちらを参照して欲しい。 最近はオライリーから本も出たようだ。 http://…

スターバックスのファンでした

昔、スタバの店舗情報をスクレイピングするスクリプトを書いたのだけど、無線LANカラムを追加してほしいとかいう話があったり、前にRubyで書いてたスクリプトは全部正規表現でごり押ししててなんかそれだとコードの見通しが悪すぎたので、今回Pythonでスクレ…

Boostのremove_referenceについて調べた

アルバイトしてて最近はコードを読むたびに、使用されている(僕がこれまで見たことのない)Boostライブラリをつかった部分で引っかかることが多い。 これらをいちいち調べて簡単に自分で実験して・・・というのを繰り返しているので非常に時間がかかってい…

ブレークポイントの埋め込みについて

「デバッガの理論と実装」というすばらしい(らしい)本があって、絶版だし僕は持っていないから読んだことはないのだけど、デバッガの作りかたって結構興味がある。他のプロセスのメモリをいじったりすることは、普通にプログラミングしている分にはそうい…

マンデルブロ集合を描いてみた。

別にまた特に意味はない記事です。 暫くC言語を書いてなくて、きちんと書けるかどうか不安だったので、リハビリもかねてマンデルブロ集合なるものを描画させてみました。他にも多くの方が同じようなことされているし、検索すれば丁寧で詳しい説明がホイホイ…

自分のマシンのCPUに実装されている機能を調べる

最近のCPUは非常に多くの種類の命令があって、僕はそのなかでも最近、SIMD命令と言うものに少々興味があります。SIMD命令というのは、ざっくり説明すると同じような計算をたくさんのデータに対して行うときに、128ビットまたは256ビットの少々大きなレジスタ…

Macで固定アドレスにプログラムをロードする

最近のトレンド?でもあるみたいですが、Macもそれに漏れず、OS X 10.5以降はプログラムのロード時に、「アドレス空間のランダム化(Address Space Layout Randomizationといいます。頭文字をとって以下はASLRと表記)」処理が行われています。 バイナリがASLR…

CythonでCのモジュールにnumpyオブジェクトを渡す

CythonはPythonのコードをCのコードに変換して(このフェーズをCythoningというみたい)、Pythonから呼び出せるライブラリを構築するツール。 Cythonが素晴らしいのは、Pythonコードを高速に実行できるようにするだけではなく、C言語で書かれたコードやライ…

スターバックスのファンです。

いつも行くスタバでは店員さんに注文するものや、持ってるタンブラーとかを把握されているくらいにはスターバックスによく行き、ファン(笑)なのですが、スターバックスの店舗検索ってどうも使いづらくて、この前、githubでスターバックスの店舗を列挙する…

Githubに登録しました。

超いまさらだけど、Githubに登録しました。普段何かソフトウェアと呼べるほどのものを書くことは殆ど無いけれど、ある程度まとまることがあればUPします。普段はgistしか使わなさそう。 https://github.com/YukiSakamoto

そしてCommon Lispで書いてみた

一つ前のと全く同じアルゴリズム、データ構造で書いてみた。 引数に渡すネットワークも同じ。ただ、これってネットワークが循環してるとだめだよね。だから、経路を見たら、子ノードがそれまで通ってきたところでないことをチェックさせないといけない。また…

アセンブリ言語勉強中。。。

某大学生命科学科の僕ですが、今学期は初めて、他学科の授業をひとつだけ受けています。それは何かと言うと、アセンブリ言語。 「エキスパートCプログラミング」などの書籍は読んでいたので、C言語がアセンブリ言語に翻訳されるとき、どのように置き換えられ…