Programming

文字列の繰り返しと計算量

ref:http://blog.livedoor.jp/dankogai/archives/51172176.html なんか、計算量が絡むとひどいなー。 問題1 C で Dan さんが挙げられた 2 つのアルゴリズムと同様のものを実装せよ。 問題2 n を変化させながら、計算時間がどのように変化するか観察せよ。 問…

設計の問題とか

ref:http://neta.ywcafe.net/000838.html まぁ、なんというか、言語を交換しただけで安全になるわけないのはその通りなのだけど。 言語とかライブラリの設計をみたときに、それはまずいだろーと思うことはあったりするのではないかな。 例えば、以下の PHP …

最近のテンプレートエンジン

PHP のテンプレートエンジンは完全に Smarty がデファクトスタンダードになったと思っていたら、Rails が ERB で成功したせいか Symfony や CakePHP は PHP をそのまま使うのが標準なんだなぁ。ERB もそうだけど、なんとなく時代に逆行感が。 まぁ、 とか面…

ソート

この間、Java の Comparator に関する話でちょと盛り上った。でまぁ、そのねたを書こうかと思ったのだけど、どうせ書くなら Java 以外の言語の話もからめたほうが有用な気がしたので、とりあえず どう書く.org にお題として投稿してみた。

Benchmark の取り方

ref:404 Blog Not Found:アルゴリズム百選 - 迷ったらbenchmark なんか頼まれたし書いておくか。結論から言えば、迷って benchmark をとって、騙されていたら世話無いという。 とりあえず、Dan さんのコードをちょいと改造。 --- pow.c.orig 2007-12-14 17:5…

オーバーヘッド

ref: Re: Ruby 1.9 で eval が遅いという話 - usagidropの日記 結論だけ書かれても分からないとのことなんだが、対象が小さいとそこに発生するちょっとしたオーバーヘッドが相対的に大きくなるということは想像だにできないものなのか。うーむ。 C/C++ の話…

error

ref:2007-11-25 - プログラミング日記 はずかしながら一瞬分からなかった。

名前空間

別に布教活動とかしていないのに、研究室内に Python が広がり始めている。といっても自分以外ではまだ 2 人だけど。 len = len(obj) # ... a = len(x) みたら、なんか上のようなコードを書いてはまっていた。当然、'int' object is not callable とかいわれ…

コンパイラの出力

まぁ実際に日常的に書く必要はないけど、コンパイラの出力を想像できるぐらいにはなっとかないとプロとしてはまずいと思う。コンパイラの出力を想像するという意味では、gdbとかでアセンブラレベルデバグを嫌っちゅーほどして慣れるのが一番近道かな。そのう…

今さら丸めの話

ref:http://d.hatena.ne.jp/hnw/20070728 via:http://www.kt.rim.or.jp/~kbk/zakkicho/07/zakkicho0707.html#D20070731-2 265=36893488147419103232の次に大きいIEEE64bit浮動小数点数は265+213=36893488147419111424です。仮に、265+212+1=3689348814741910…

初心者とセキュアプログラミング

ref:Matzにっき(2007-06-04) - RubyよりPHPを好む初心者 Web アプリってやつは入力値を処理して、SQL や HTML などのほかのコンピュータ言語の出力を生成する必要があるわけで、ただしく処理するには当然その段階でエスケープ処理が必要になる。だけども、初…

漢数字/英数字

ref: [ネタ][プログラミング] 漢数字カウンタ その弐 - 航海日誌 (2007-06-01) ああ,これややこしいわ. これは大学のプログラミング実習ネタとしても十分使えると思う. 確かに。200000001 なんかをきちんと変換できるか試してみたりとか。分かってしまえ…

コードがドキュメント

FizzBuzz 問題に関連して。 コードがドキュメント、な一派としてはやっぱり if i % 15 == 0: print 'FizzBuzz' よりは if i % 3 == 0 and i % 5 == 0: print 'FizzBuzz' かなぁと思う。同様に xrange(1, 101) と書くぐらいなら xrange(1, 100 + 1) のほうが…

FizzBuzz

なんかはやりすぎだと思った。 じゃ、ま、こんなのでも。 from itertools import izip, repeat def chain(iterable): for it in iter(iterable): for i in iter(it): yield i def take(n, iterable): it = iter(iterable) for i in xrange(n): yield it.next…

剰余

ref:鍋あり谷あり どうでもいいが…,個人的にはFizzBuzz問題に剰余を使うような人は願い下げだ もし、効率の話をしているなら、この程度の問題で剰余のコストを気にするような人間が一番願い下げだと思った。

エスケープよりexec

ref:更新履歴兼雑記 - wgrep, wlocate, wfind ref:更新履歴兼雑記 - ラッパと正しいエスケープ HTML の実体参照化もしたほうがいいんじゃないかとそういう話もあるけれど。 そもそも、単純に IO.popen に渡すコマンドをエスケープしないといけないというのが…

new

これからでてくる言語では、hoge = new Hoge; とか、hoge = Hoge.new ではなく、 hoge = Hoge でも、許されるんじゃないかなぁ、とかそういう系の至極どうでも良い妄想です。 至極、現実的な問題として、クラスオブジェクト(クラスリテラル)との区別はどうす…

pipeline?

最近の CPU で Bubble Sort をする場合、ランダムな配列より逆順に並んだ配列のソートの方が早いという話を聞いたので試したみた。 #include <iostream> #include <limits> #include <utility> #include <vector> #include <algorithm> #include <boost/random/mersenne_twister.hpp> #include <boost/random/uniform_int.hpp> #include <ctime> template<typename T> void bubbl…</typename></ctime></boost/random/uniform_int.hpp></boost/random/mersenne_twister.hpp></algorithm></vector></utility></limits></iostream>

プログラミングの生産性

ref:分裂勘違い君劇場グループ - 劇場管理人のコメント - 有能なプログラマと無能なプログラマでは、ライブラリや処理系の理解がどのように違うのか via:ホワット・ア・ワンダフル・ワールド 好きこそものの上手なれ なんだこれ。 有能なプログラマは、「自…

Self-Compile

ref:lethevert is a programmer - C言語 via:黎明日記(仮通常運営) - やっぱり言語処理系の構成って一緒なんやね gcc は gcc でコンパイルされるし、SBCL を動かすには Common Lisp の native compiler がいるらしいですよ? いや、UNIX 系の Platform だと …

デザインパターンは成熟してない?

間接的に、デザインパターンはまだ成熟していないという趣旨の意見を聞いた。はて? デザインパターンっていうのはオブジェクト指向でプログラミングをやっている人間からの知見で構成されている、より高レベルのイディオムとでもいうもので、成熟してないと…

機械に難しいのは人間にも難しい?

ref:ホワット・ア・ワンダフル・ワールド 括弧の無い Lisp あと,正直,機械に解析が困難な文法が,あまり人間にやさしいとも思えないのですが.結局のところ,Ruby だって,思いもよらない意味に解析されちゃって,書いた本人がびっくり ! というケースだ…

Lisp/Javaは遅い?

Lispと言えば遅いという印象があるかもしれませんが、Computer Language Shootoutの結果ではトータルでJavaよりもパフォーマンスが高くなるなど、かなり高性能な処理系です。 えー、Lispが遅いとか言う人いるか?いたとしてもそりゃ単にLisp知らないだけでは…

何事も使い方次第

ref:おいっちょの日記 - [オープンソース]GNU Trove: High performance collections for Java. これを使うことのメリットってあまりないような気がする。Collection APIを使っているコードって全体の何分の1だろう?システムを稼動しているときに、全体の何…

Cの老害

UNIX と C ってのは,やっぱり最悪のコンピュータウィルスだな.この 2 老害のせいで,計算機科学の発達は 20 年遅れた.こいつらのバッドノウハウにそそぎこまれた, 確かに autotools とかバッドノウハウ以外の何者でもないよなぁ。ないともっとアレなんだ…

type declaration とか cast とか

ref:404 Blog Not Found:電脳言語における祖先の呪い--演算子篇 最近の弾さんのエントリってなんか無茶苦茶じゃね? 例えば、ポインターの参照、そして変数の型宣言を後置にするとか。たとえば以下のような感じ。 i is int; p is unsigned char*;こうすると…

shell script の自動生成

ref:あさっての方向 - ときどきの雑記帖 リターンズ 2006年11月 ref:odz buffer - 活用されない shell script あ、なんか言及されてる。 ずらずら列挙したシェルスクリプトを手書きするよりはスクリプトで生成させた方が まだまし…ではない? そりゃ手書きよ…

バイナリアン度チェック

ref:Binary Hacks - バイナリアン度チェック 46点でした。まだまだだな。 ていうか、各ISA*1でのスタックの成長方向*2とか、g++ でのマングルの結果とか知らないよ! あんまり関係ない話。GCC は GNU Compiler Collection で gcc だと GNU C Compiler って話…

活用されない shell script

cat data/001 | jperl foo.pl -n 10 > data/001.processed cat data/002 | jperl foo.pl -n 10 > data/002.processed cat data/003 | jperl foo.pl -n 10 > data/003.processed cat data/004 | jperl foo.pl -n 10 > data/004.processed cat data/005 | jper…

全部教えるというソリューション

ref:404 Blog Not Found:Computer Science 向きの言語 Dan さんから Trackback キタコレ。 JavaをComputer Scienceで教えるというのは、誤った「ゆとり教育」にしか見えないのだが。 Java しかやらないのは普通に損かもしれない。自分は普通に機械語、C をや…