あけおめ、ことよろ。

めでたく新年ダッシュに失敗してしまいました。今年は、1/2から一人で東京に戻って、1/3,4と自由な時間があったにも関わらず、1/3はボォーと自堕落生活を送ってしまい、1/4は大掃除で時間を奪われ、そんなこんなで仕事始め、となってしまいました。 流行に乗…

実体を返してハマった話

C++

最近、ブログに書くネタが特にないほど枯れた生活を送ってましたが、久しぶりにつまらないところでハマったので、書いてみることに。ソースのイメージは下記の通り。class Bの中でclass Aのオブジェクトを複数保持するため、std::vectorで保持している。 #in…

ノロウィルスにかかった

めでたく一家全滅したので、その些末を。 はじまり 明確にいつ始まったかはわからないけど、一番最初は奥さんだったと思う。 11/10(水)の夜のメールで、奥さんの都合が悪いことを知った。残念ながら、ボクはまだ会社。しかし、数分後に嘔吐は止まったよ、と…

CUDA3.2RCを入れてみた

mac

動機 仕事で、GPUを使ったシミュレータのアクセラレートを計画しているが、CUDAを使ってプログラミングできる人が1人だと、何かがあったときに仕事が滞るので、自分も技術を身につけようと一念発起(というほどのことでもないけど)。 インストール NVidiaのホ…

SphinxでTex

Sphinxのバージョンを1.0にアップデートしてから、Sphinxで数式が使えなくなっていたので、それのFix。エラーメッセージは以下のとおり。 WARNING: inline latex u'\\frac{\\partial}{\\partial t} \\int\\!\\!\\!\\!\\int_{A} \\mu\\vec{H} \\cdot d\\vec{A…

家族4人+犬一匹の生活が始まりました

長男の出産のため、3月後半から実家に戻っていた家族達が昨日戻ってきました。 案の定、今まで一人だったのが、いきなり4倍に膨れ上がるわけなので、ごみの量からしてボリュームが違いすぎる。そして、何よりも時間配分が思いっきり変わった。日中、子どもが…

そう言えば。。。

http://d.hatena.ne.jp/yukichanko/20100406/1270520600 この続きを書いてなかったなぁ、と。名前は、 輝希(てるき) になりました*1。最初は別の名前を考えていたんですが、 「あまりにも娘の名前とかぶるだろう。アホかJK」 と奥さんに言われてしまったので…

Erlangで数値解析(並列版)

昨日の続き。 http://d.hatena.ne.jp/yukichanko/20100624/1277377040少し時間が余ったので、並列版を考えてみた。 しかし、これでイイのかわからない_| ̄|○並列化したのは、電界/磁界の更新式の部分。 逐次版 並列化対称の関数。 calc_ey({Eps, Dt, Dx}, E…

Erlangで数値解析(ただし、1次元)

数値解析のプログラムを書いてて、Erlangで書けるもんなんだろうか、と思ってやってみた。題材は、電磁波の伝搬問題を解くFDTD(Finite Difference Time Domain)法。めんどくさいので、1次元で。 FDTD法とは Maxwellの方程式を差分法で解く手法。 (上記は真空…

文字列が化ける2

C++

この続きです。 http://d.hatena.ne.jp/yukichanko/20100608/1275971551 std::stringからchar*にしたら、とりあえず変な挙動は示さなくなったのだけど、やっぱり気持ち悪くてしょうがないので、もう少しだけ調べてみた。 gitからソースを取り出して、コンパ…

共有ライブラリが読み込めない

http://d.hatena.ne.jp/yukichanko/20100608/1275971551 この続き。 日を変えて、再度実行したら、やはり文字列が化けてしまったので、Macから別環境(会社のLinuxサーバー)に移して再現実験をしてみることにした。 Linuxで実行すると、Segmentation Faultで…

文字列が化ける

C++

この辺り、ちゃんとC/C++の文字列を理解していないのが問題だが、下記のような文字列をログファイルに出力する関数を作った場合、 void Common::out_log(FILE* log, const std::string& mes) { fprintf(log, "%s", mes.c_str()); } コレとは関係ない文字列が…

各種データ構造のMessagePackのよるシリアライズ/デシリアライズ化

C++

本来の使い方とは違う気がしてるけど、C++オブジェクトのシリアライズ化にMessagePackを検討中。 その際に、ポインタ型、参照型、enum型のシリアライズ/デシリアライズの方法をテストコードで検証したので、備忘録がてら、さらしておく。 ポインタ型 http://…

Sphinx備忘録

最近、Macで仕事していることもあって、ドキュメントのほとんどをSphinxで書いているのだけど、正直、reSTを知らないこともあって、色々つまづいてる。Sphinxといえば、渋川さんが訳されたドキュメント(http://sphinx.shibu.jp/)があるわけだけど、そこには…

Mac de お気楽数学ライフ

別に数学をしたいわけでは全くないので、タイトルに偽りがあるのですが、エンジニアならばどうしても資料に数式を書いたりしなくてはいけないもの*1。 今までは、Officeの数式エディタで作っていたのですが、最近、Macでプレゼン資料やドキュメントを作るよ…

ペットの病気

今日、久しぶりに動物病院に行ってきました。嫁さんが里帰り出産で大阪帰ってきたのが、3月の中旬だったので、約2ヶ月ぶり。 うちのペットはヨークシャーテリアのメス11歳です。名前は「蘭」といいます。人間で言うと60オーバーなので、もう初老に入るころ。…

3.3.1 可変リスト構造

久々にSICP Lite#13 http://atnd.org/events/3505 に行ってきたので、復習を兼ねて、3.3.1からやってみま〜す。 方針は、例によって「難しい問題は飛ばすwww 」と言うもの。まぁ、Liteクラスタですから。ここでは、リストを変更する、と言うことで、純粋関数…

新しいMacBookProを買いましたよー

mac

と言うことで、自慢ネタwww 動機 先週辺りから、今メインで使っているMacBook Air君の調子が悪く、一時、起動できなくなっただけでなく、OS再インストール後もEvernote, Chromeが立ち上がらなくなる、と言う現象に見舞われました。Chromeは、Safari, Firefox…

第2子が生まれそう

今朝、妻から破水したとの連絡がきました。今日、もしくは明日にでも顔を拝むことができそうです。 しかし、予定日が21日だったので、2週間もフライング。まだ、名前すら決めていないけど、とりあえず仕事を放って、大阪に行ってきます。 (若干、炊飯器が心…

Gitのバージョン番号をプログラムに埋め込む

C Git

気がつくと、1ヶ月近くBlog更新してない。簡単なTips。Gitの管理番号をソースコードに埋め込みたくなった。用意するのは、MakefileとCのソースコード Makefile Makefileの中には、Shellコマンドを書いたりすることができる。 GIT_VER = $(shell git log -1 …

超絶オレオレメモ

Git

前回は、すでにあるsvnレポジトリから、git-svnを使って、ローカルにgitレポジトリを作る方法だったので、今回は既存のプロジェクトから、バックアップレポジトリを作る方法。 ローカルプロジェクトに対して、gitリポジトリの作成 & コミット ひょっとすると…

超絶オレオレメモ

Git

前回は、すでにあるsvnレポジトリから、git-svnを使って、ローカルにgitレポジトリを作る方法だったので、今回は既存のプロジェクトから、バックアップレポジトリを作る方法。 ローカルプロジェクトに対して、gitリポジトリの作成 & コミット ひょっとすると…

コンストラクタから間接的に純粋仮想関数を呼べない

C++

C++を使っていると、結構頭にクエスチョンがわくことが多い。おそらく、私がC++を深く理解出来ていないからだろうけど。今回は、コンストラクタから間接的に純粋仮想関数を呼んだ場合の話。 #include <iostream> class Base { public: Base(){ caller(); } void caller</iostream>…

virtualキーワード

C++

今までvirtualキーワードの意味を勘違いしていたらしい。たとえば、このようなコードがある場合、 #include <iostream> #include <string> class Base { public: Base() {} const char* name() { return "Base"; } }; class Child : public Base { public: Child() : Base() {}</string></iostream>…

Polymorphism

C++

実は理解しているつもりが、してないような気もしてるので少し練習。 #include <iostream> #include <string> class Base { public: virtual void say_name() { std::cout << "オレを呼ぶな" << std::endl; } }; class Circle : public Base { public: void say_name() { std::</string></iostream>…

git-svnオレオレメモ

インストール Mac Portsでgitをインストールした場合、git-svnはインストールされていない。 と言うことで、追加インストールする必要がある。 % sudo port install git-core +svn [参考]MacPortsでgit-svnをインストールする上記のサイトをみると、すでにgi…

朝活3週間目

生活時間を3時間ほど前にずらして、家族との時間を持とう、と言うマイプロジェクト。 今週で3週間が終わりました。最初の2週間は、娘の風邪や自分自身の風邪の問題があったので、木曜日で断念。今週初めて、月から金を通して朝活が出きました。 朝活概要 2:3…

テンプレート使用時の分割コンパイルの方法

C++

汎用的な関数を定義したいときに、複数の型で使えるようにコードを大量にコピペするのは、愚の骨頂なので、C++にはテンプレート関数と言う機能が備わっています。 そのテンプレート関数(おそらくクラスでも同じ問題が出るであろう)を分割コンパイルするとき…

いち上司の発言

他愛のない話。今日、久しぶりに課長が我々の職場に来ていたのですが、そのときに、 「Aは、昨日誕生日なのに、3時まで働いてたらしいぜ」 といいました。聞けば、Aさんは翌日の会議の資料を作るために、実験を行ったり、資料の精度を高めていた、とのこと。…

R勉強会でLTしてきた

あまり統計に明るくないワタクシですが、これを機に勉強しようと思い立ち、Rの勉強会に行ってきました。 http://atnd.org/events/3054 当日は、id:yokkunsが検定の説明をしてくれました。 ちなみに、ボク自身は統計が苦手。なぜ苦手なのかを考えると、非常に…

朝型生活にする

世の中ワークライフバランスだとか言われてますが、そんなものはお上から言われてやるもんじゃない。下々のものが自発的にやらなきゃ、ということで、ボク自身も生活習慣を変えることにしました。生活時間を変える前後のワークライフを図にしてみました。 昼…

丸3日間寝込んでました。

R勉強会の後、懇親会に行く予定だったのですが、体調が悪くなりキャンセル。 帰りの中央線各停で近くに日本語じゃなく西洋語でもない言葉で唄う気味の悪いオバちゃんがいたところまでは、ちゃんと記憶があるのですが、そっから(吉祥寺)から立川までが結構辛…

NArrayに多次元配列でアクセスする方法

仕事でRuby NArrayライブラリを使って、配列のアクセスを高速化していたのですが、 どうしてもLoopを回す必要があったので、そこをC化しています。 http://d.hatena.ne.jp/yukichanko/20091026/1256573572 NArrayは多次元配列を定義しても、実際には全て1次…

XMLファイルの処理

お仕事でXMLファイルをいじくる必要があったので、すこしRubyでやってみた。 Rubyでは、REXMLと言うライブラリを使うらしい。ぼくの用途としては、既存のXMLファイルをパースして、要素を書き換えて、ファイルにダンプできればよいので、その例を備忘録代わ…

今年の目標

1年の計は元旦にあり、といいますが、元旦ダッシュはあえなく失敗したので、今さらながら、目標みたないものを考えてみる。 とは言っても、仕事ではないので、すごく定性的なもので(どうせ、いつも途中で変わるので)。 勉強の目標 去年は、SICPから始まって…

リニア → 河口湖散策

最近、天気が異常に良くて、ここ東京立川市からでも富士山が平気で見えるので、どうせなら大きな富士山が見たくなって、山梨方面から富士山を目指してみた。途中、リニア見学センターと言うところにトラップされたので、立ち寄ってみた。 実は、2006年ボクは…

新幹線大井車両基地

うちの娘に『どの電車が一番好き?』って聞いたら、『黄色い新幹線』と言ったので、ドクターイエローを見に、大井車両基地まで見に行った。 本当は、走っているところが見たかったのだが、ぼくはダイアの筋を見切れるほど鉄男でもないし、10日に1回ぐらいし…

新幹線270km/hを体感する

と言うことで、またまた(暇になったら行ってるのだが)、神奈川県平塚市にある相模川橋梁に行ってきました。大きな地図で見るボクは、特別新幹線が好き、と言うことではないのですが、たま〜にフルスピードの新幹線の速度を体感してみたくなります。 それも、…

アンパンマンショー

だいぶん、昔になるのだが、ダイアモンドシティー武蔵村山ミューにアンパンマンショーを見に行ってきました。 と言っても、近所なので、いつも行っているわけですが。 ストーリは。。。ほとんど覚えていない。確か、コキンちゃんと一緒に遊ぼう、みたないも…

1年を振り返って

さて、恒例の1年を振り返る日記(今年が初めてだが)。個人的には、例年にない密度の濃い年だったように思える。とりあえず、Quaterごとに振り返ってみよう。 1~3月: プロジェクト最後の2年 前職場での最後の仕事。2年間にわたるプロジェクトの最後の期間。作…

Erlang Super Lite #2 (逐次プログラミング)

昨日は、月イチ開催のErlang Super Liteの第2回目でした。Super Liteと銘を打っているにも関わらず、Heavy級の皆様にご参加していただいて本当に助かります。 いつか、ボクもHeavy級と呼ばれるようになりたいものです。 今回は、Erlangの逐次プログラミング…

Chapter3

Exercise3.1: Evaluating Expression ここいらはお茶の子さいさいですな〜。 sum(N, N) -> N; sum(N, M) when N < M -> M + sum(N, M-1); sum(_N, _M) -> throw({error, {range_error}}). Exercise3.2: Creating Lists 正順と逆順のリストを作る方法 いくら…

2.5 Systems with Generic Operations

http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-18.html#%_sec_2.5この辺からだんだんとひよってくるのを感じる。わからないやつは、SICP Liteのときに取り組もう。 2.5.1 Generic Arithmetic Operations http://mitpress.mit.edu/sicp/full-text/bo…

2.4 Multiple Representations for Abstract Data

http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-17.html#%_sec_2.4複素数の表現を題材に、 明確な振り分け データ主導 メッセージパッシング の3つのAdditiveな手法を学ぶ、と言うのが本節の主題。 問題自体は少ないのだけど、この節は実際のプログ…

2.3.4 Example: Huffman Encoding Trees

http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-16.html#%_sec_2.3.4重要な応用って気がするけど、あんまり理解できていないような気がするなぁ。 今のところ、先に進む方を優先しているのだけど、いつかちゃんと振り返らないと。 問題2.67 ここは打…

500系カウントダウン開始!!

新幹線というと、ぼくの世代だったら、0系だったり100系だったり、というイメージが強い。 それよりも1993年に登場した300系のぞみ、という人も多いだろう。 ぼくの場合はというと、最初に見た時に度肝を抜かれた500系のイメージが強い。 500系。言わずとし…

2.3.3 Example: Representing Sets

http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-16.html#%_sec_2.3.3 集合の操作として、 順序づけられていない集合の場合 順序づけた集合の場合 Binary Treeとして現した場合 の三種類がでてくるとこ。 問題自体も大して難しくなく、全体的にスルー…

GnuplotからアニメーションGIF

なんか無駄に苦労した気がしないでもないが、これでメールでアニメーションが送れるんだから、悪くもないだろう。 備忘録がてらです。 Gnuplotでpngファイル or gifファイルを作る。 gnuplotの端末で gnuplot> set terminal とうち、gif or pngがサポートさ…

Macでユニバーサルバイナリを作る。

CFLAGS="-arch i386 -arch x86_64" CXXFLAGS="-arch i386 -arch x86_64" LDFLAGS="-arch i386 -arch x86_64" ./configure --disable-dependency-tracking --prefix=/opt/local

2.3.2 Example: Symbolic Differentiation

http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-16.html#%_sec_2.3.2記号微分。この辺、個人的には嫌いじゃない。 問題 2.56 指数関数の導入。 ; 構成子 (define (make-exponentiation base exponent) (cond ((=number? exponent 0) 1) ((=number? e…