プログラミングその他

それは理想と現実なんて話ではない。

プログラミングの常識vs日本の現実 - カレーなる辛口Javaな転職日記いくらなんでも今回の話を 上位・下位とか、理想と現実とか言われると、「いあいあ、そういう問題じゃないでしょう」と思ってしまいます。 「一行一行を大切に書く心がけ」を「そんなのはプ…

ifの評価式の中

定数との比較 #2 - odz buffer さんより、 ふーむ、PMD 的には "hoge".equals(stringValue) が推奨らしい。そういえば、C では単純ミスで比較が代入にならないように if (a == 10) ではなく if (10 == a) とするやり方があるけど、こういうのは普通に lint …

ツンデレC#2.0 の yield 入門

Matzにっき さん経由 第3回 新しい繰り返しのスタイル − yield return文とForEachメソッド(1/4) - @IT記事は普通に良い内容だとおもうのですが、ところどころに無用の引っかかりを感じます。 ここでRubyを説明の例に出したのは、Rubyが優秀な言語であり、…

どう書く?org に Smalltalker は 一人

プログラムのお題に対していろんな人がいろんな言語で投稿するサイト エロと風俗情報満載 どう抜く? を LL魂 で初めて知りました。LL魂での発表の時点で 全ての設問に答えている言語はたったの4つ。そのなかにSmalltalk が入っているという快挙に 「これはs…

LL速報

行ってきました、LL魂。とても楽しかったです。いろいろ書きたいこと言いたいことはあるのだけれど、病み上がりに10:30-20:30 のイベントは辛かったので、今日は これからバタンキューな予定。明日になると、いっぱい忘れちゃうんでしょうけど(^^;以下 メモ…

気づけばSmalltalkを使っていない私

今年の初めあたりに騒いでいた Python で Logo を作るですが、タートルは動くけれど二項演算子はサポートしてないという微妙な状態で放置してあります。このままHDDの肥やしにしようかと思っていたのだけれど、同僚の「もったいないから公開しろ」の声に、プ…

ブーツのストラップ

今日、コードレビューで不思議なコードを目撃しました。 Boot boot; boot.boot();これは Boot クラスの インスタンスを 変数boot に束縛し、Boot::boot() をコールするという処理・・・・・・なのですが、なんだか原始宗教のお祭り囃子のようで。少なくとも …

FizzBuzzテストの有効性

査定のシーズンです。猫は査定をする側なので、この時期は忙しくって大変なのですが、正しい評価をしてこそ組織は真っ当に動き出します。組織が腐るのは評価(テスト)が正しい評価値を出せないところからスタートすると思います。なので、頑張らなくっちゃ…

FizzBuzz問題

どうしてプログラマに・・・プログラムが書けないのか? を読んで、書かずには居られない衝動にかられて書きました。 def FizzBuzz(): for i in range(1, 100 +1): buf = "" if not i % 3 : buf += "Fizz" if not i % 5 : buf += "Buzz" if buf == "" : buf =…

C: 内部リンケージを指定するキーワードが `static' なのは何故?

C 言語の static - 言語ゲーム さんより。 static キーワードの2面性は Cの暗黒面の一つとして有名ですが、なぜ `static' という語をなのかというのを意識したことはありませんでした。言われてみれば不思議です。ちょっと考えてみました*1。 まずはおさらい…

自由

http://grigori.jp/report/stallman.html を読みました。 ● 個人的な利益と共同体の利益のうち、共同体の利益に貢献するように作られているということですよね?ストールマン氏: 違う。守っているのは、個人の自由だ。GPLは全ての、1人1人の自由を保護し…

めめんとめんめと

デザインパターンに Memento というのがあります。「めめんと」と読むのですが、これを私、ついつい「めんめと」と言ってしまう癖がついてしまっているのです。こんなの間違えるなんて情けないにも程があります。なので一生懸命「『めんめと』じゃないほう」…

Python リスト内包表現

Python で ASCII文字列のコードの和の下位8bit を作る、というプログラムがありました。 sum = 0 for chr in "hogehogehoge": sum += ord(chr) sum = sum & 0xFF つまりチェックサムです。 for 文を回しながら作ってあって、そこに「もうちょっといい方法は…

Logo実装中

実は、ここんとこ Python で Logo 実装しています。カッコの無い世界 - みねこあ の流れで取りあえず 「正規Logo」から作り始めて 「カジュアルなLogo」に拡張していけば楽勝かなぁ、と思ったのですがどうしてどうして。そう単純にはいっていません。 鬼っ子…

お手軽プログラミング言語処理本とLogo

プログラミング言語を作りたいっ!そう思うプログラマはとても多いと思います。多分 OS、ゲームに並ぶ 3大作りたいプログラム の一つでしょう(←ホントかしら?)いろいろ参考になる本は多いのですが、ちょっと難し面倒な感じの本ばかりで、本気で作るのなら…

カッコの無い世界

何となくLogo を使ってみたくなりました。(C4 の影響かもしれない) Logo は 乱暴に言ってしまえば Lisp のプリプロセッサのようなもので、 カジュアルなLogo → 正規Logo → Lisp と順番にほぼ1対1で変換可能になっています。「カジュアルなLogo」とか「正規L…

舞台袖で待ち続ける言語に萌ゆる私

Matzにっき 経由 バベル案内。こんなに毒を吐いても良いの?ってくらい言いたい放題なのですが、Pythonについて、 彼らはSmalltalkの人たちと同じだ。SmalltalkはC++に取って代わるのを長い間待ち続け、そしてJavaが現れて彼らを完全かつ恒久的に閉め出し て…

C++ が楽しい

以前は C++ を余り好きでは無くって、Python や Smalltalk ばかり「楽しい」「楽しい」言っていたあたしですが、テンプレート・メタ・プログラミング を知ってから、俄然 C++ が楽しく感じるようになりました。 あたしの OOP 初体験は C++ だったのですが、…

コードにデータを埋め込み

www.textfile.orgさん経由、コードとデータの融合(昼間のメモさん)プログラムで使うデータ(例えば 設定等)を自身のソースファイルに保存するというお話なのですが、そういえば FAQ で配布している Change IP Config.hta が、そういうふうに設定を自分の…

良い言語は普及しないの法則

Script Languages(KORODA さんの記事) Script Languages(Matzにっき) あたしは Common Lisp を使えない愚民なので(xyzzy lisp か elisp 以外を書いた事なんてほとんど無い)、そのもの自体へのコメントはもちろんできないのだけれど。"Lisp" を "Smalltalk…

goto 文有害論の舞台裏

radiumsoftware.comより、ダイクストラ先生の有名な論文「goto 文は有害である」はホントはこんなセンセーショナルなタイトルじゃなかったという話。http://www.radiumsoftware.com/0612.html#061208 当初は "A case against goto statement" ――「goto 文の…

プログラマのヒエラルキ

Slashdot.jpより、プログラミング言語ヒエラルキー:Geekなぺーじある言語のプログラマは、別の言語のプログラマのことをどう思っているか(見下しているか)という階層図です。面白いのですが・・・・・、Smalltalk が無い! ....orz

さいころの目

XBOX360版のカルドセプトで、さいころの目が「偶数→奇数→偶数→奇数」と繰り返す不具合がありました。http://blog.livedoor.jp/dqnplus/archives/870664.html二人で交互にプレイする場合、片方は {1, 3, 5}の目のみ、もう片方は {2, 4, 6} の目のみ出ることに…

軽量言語とネイティブスレッド

ある通信ライブラリをを使ったシミュレータを作成する、というお題がありました。最初は Ruby で作っていたみたいなのだけれど、Ruby のスレッドは ネイティブスレッドではないので、実現が大変と言うことになってしまいました。と言うのも、独自の通信プロ…

どうでもいい べき乗 の話

xyzzy を愛用しているので、電卓代わりに lisp をよく使います。例えば今回の Time Base Register (下位32bit) の 一巡する時間は (float (/ (expt 2 32) (* 200 1000000)))になります。とっても便利♪(そしてますます暗算が苦手になってゆく・・・)ですが、…

Time Base Registers

お仕事で、あるデバイスの駆動時間計測処理にて、時折なぜか計測時間が 0 になる、という不具合報告がありました。コードを読んでみると、この処理、インラインアセンブラで どこぞの時間値を取得し、計測終了時間から開始時間を引き算している、というもの…

名前重要を忘れる

さて、話は戻して「static」「静的」の語感からすると、Java の クラスフィールド・クラスメソッドを「静的フィールド」「静的メソッド」と呼ぶのはかなり違和感がある、というのは正常な感覚だなぁと思います。ただ、(絶対いいことじゃないけど)Cなプログ…

テンプレートメタプログラミングが良く解らない

最近は再び C++ を仕事で使い始めています。猫が以前使っていた頃は、たしかまだ namespace もまともに扱えない処理系ばかりだった(いや、これはあたしがモノを知らなかっただけか)し、STLなんて、名前だけしかしらなかったのです。だから、もー、殆ど初め…

たばこと缶コーヒー

CamelCase というのは、複数の語からなる名称の綴り方の規則で、 VictoryGundam や NipponKougaku のように、単語の間に隙間を空けずに次ぎの語の頭を大文字にして単語の区切りを表す方法です。WikiName なんかがこの方式ですね。PlayStation とか TurboBall…

ひまわり/なでしこにひとつだけ欲しい機能

ひまわりやなでしこの割り切りは「なるほどっ」と思うのだけれど、一つだけ「あるといいな」があります。それは、コレクション クロージャ メソッド (内部イテレータ)の導入です。というのも、ある集合に対して操作するとき、「ループを回す」のではなく「…