プログラミング

理系のための恋愛論のRSSフィードを作った

Yahoo! Pipesはビジュアルプログラミングのいい練習になります。 今回、「理系のための恋愛論」 http://journal.mycom.co.jp/column/rikei/index.html のRSSフィードを、Pipesで勝手に作ってみました。 RSS http://pipes.yahoo.com/pipes/pipe.run?_id=MnzSk…

EclipseにほしいJavaリファクタリング機能

もう十分すぎるくらい高機能なEclipseのリファクタリング機能ですが。 親クラスをフィールドに変換 フィールドを親クラスに変換(親子でのフィールド名衝突は自動解決) コードを「メソッドを抽出」するとき、メソッドの作成先は他クラスも指定できるように …

平行移動だって変換行列で

以前、幾何計算はベクトルで考えるときれいにプログラミングできるというコツを書きました。 その続編として、図形のズームや回転、移動があるときには、ベクトルは必須ですよという話。 拡大縮小と回転には変換行列、これは習いましたね? これは高校の代数…

線分を扱うプログラムはベクトルで解く

最近、別々の人から同じ質問をされたのでエントリーにまとめることにします。 その質問というのが「線分ABと点Pが与えられたとき、AB上でもっともPに近い点を求めるには?」というもの。 垂線をおろして交点を求めるだけの簡単なプログラムのように思えて、…

閏年と戦おう

UNIX形式で日付を扱おうとすると、1970年〜2038年という範囲の狭さが問題になることがあります。早い話、今生きている人の生年月日を保持できない。生年月日を保持するのにUNIX形式を使うことないじゃないかと言えばそうなんだけど、システム内で時間なら時…

++の副作用タイミング

プログラミングの世界で「副作用」というと、関数や演算が状態を変化させることを言います。 例えば単純代入演算子の「=」は副作用のある演算子。「a=5;」という演算をすると変数aの値が変化します。この変化のことを「副作用」と呼ぶわけです。 でも副作用…

PHPでMIMEエンコーディング

PHPでメール送信をするには、そう、日本語を使うなら mb_send_mail() 関数です。subjectとか本文とか、適切にエンコーディングしてくれるので楽ですね。 ただ、mb_send_mail() の自動エンコーディングには漏れがあって、追加ヘッダに対してはまったく働いて…

西暦で表示してください

pLATEXで現在の日付を挿入するためのコマンド\todayを使うと和暦で表示されちゃうよ何とかしてくれ、という人。 \西暦\today と書けば西暦になります。なんつうコマンドだ・・・

マルチスレッドではメモリ容量に余裕を

Javaプログラムがメモリ(ヒープメモリ)を食い尽くしてインスタンスを生成できなくなると、OutOfMemoryErrorが投げられます。 そもそもこんなエラーを発生させている時点で負けだし、Javaのマニュアルにもはっきりと、OutOfMemoryErrorをキャッチしようとす…

&と&&

C言語なら、&演算子と&&演算子の違いは明確です。&はビット演算、&&は論理演算。 でもJavaになると区別が曖昧になる。だって、Javaでは論理は1ビットの値として表されるから、論理型に関してはビット演算=論理演算になってしまうんです。そしたら、なぜ論理…

数Iの範囲です

直線のパラメータ表示、二次関数の判別式。高校数学で出てきましたね〜、聞いただけで頭痛くなる人多そう。 レイトレーシングで3Dグラフィックスをやろうとすると、こういうのと無縁ではいられません。たとえば、物体としてある球が空間内においてあったら、…

JavaScript未対応対策

JavaScriptに未対応なブラウザを使っていたり、無効になっている場合に注意書きを表示したいときがあります。「JavaScriptが有効でないのでこのページは正常動作しませんよ」って。有効な場合にはその注意書きは表示させたくありません。 そう言うときの表示…

コピペプログラミングは怖い

やっぱプログラムはその場でキーボードから打ち込むもんです。例え自分の書いたコードでも、コピペで他の場所に貼り付けたりすると何かしらトラブルの元。自分で把握していないコードがプログラムの中に含まれているってのは何よりの不安定要因なのです。 今…

まず断るのか

医療関係のe-ラーニングサイトを立てようというプロジェクトに取りかかります。これまではDB組むとき、管理者画面なんか作らずにphp MyAdminで十分でしょうとしてきたんだけど、今回はまず管理画面から組み始め。そこで必要になるのが認証機構です。 PHPの認…

How many bits...

コンピュータで要素数がたかだか有限個の集合を扱うとき、定石とも言えるやり方が整数の各ビットを「集合に含まれているか」のフラグとして扱うやり方です。この方式だと、集合の「かつ」も「または」も、論理積と論理和で一発で計算できてしまう。もちろん…

大人気のKMP法&BM法

この日記へのアクセス元を見てみると「KMP法 BM法」でウェブ検索してここにたどり着いた人が何人かいるみたい。しかもここ数日だけ。なんでこうなるか。わかってます。筧先生の課題がわからなくてウェブで調べてる人々だ! 提出が昨日までだったし。 この課…