自分のiモードIDを知るためのスクリプト
iモードIDというのが利用可能になったらしい。
「iモードID」が提供開始、一般サイトでもユーザー情報を取得可能に:モバイルチャンネル - CNET Japan
NTTドコモが3月31日、一般サイトでもユーザ情報を活用したサイトを制作できる「iモードID」の提供を開始した。NTTドコモのサイトで、iモードIDを利用するための方法が公開されている。
ということで、自分のiモードIDを調べるスクリプトを書いてみた。
iモードIDというのが利用可能になったらしい。
「iモードID」が提供開始、一般サイトでもユーザー情報を取得可能に:モバイルチャンネル - CNET Japan
NTTドコモが3月31日、一般サイトでもユーザ情報を活用したサイトを制作できる「iモードID」の提供を開始した。NTTドコモのサイトで、iモードIDを利用するための方法が公開されている。
ということで、自分のiモードIDを調べるスクリプトを書いてみた。
Emacsは忘れた方がいい(Gosling):2008年の名言 - builder by ZDNet Japan
あー、Emacsね。あれは1978年頃のアイデアとしてはとても素晴らしいものだったよ。何年前になるかな?30年前?みんな、もういい加減使うのをやめたらどうだ。30年前と言えば、ムーアの法則が少なくとも15回は適用できることになる。2の15乗倍ものCPU性能があれば、もっと違うやり方ができるはずだ。NetBeansを試してみることを強く勧めるね。セマンティックスをリアルタイムで解釈してくれるプラットフォームを使い、キーストロークを逐次分析させることで、素晴らしい魔法のようなことができるようになるんだよ。だから、Emacsのことなど忘れてしまった方がいい。もうテレタイプなんて使っていないんだろう--それってあまり頭の良いことじゃない。とにかくEmacsを使うのはやめた方がいい。
もちろん、われわれはGosling氏がSunのNetBeansを推していることは知っている。とは言うものの同氏のこの発言は、EmacsをEclipseに置き換えても通用する。
気になるのは、EmacsをEclipseに置き換えても通用する
の部分。どう考えても通用しないだろ…
と、いうことで原文を当たってみると、
Quote of the year (so far) - Blogs - Code Monkey Business - Builder AU
Alright, we know he's pushing Sun's Netbeans, but you could substitute the quote with Eclipse and it would still hold true.
「Eclipseに置き換えても…」とは言ってるけど、「Emacsを…」とは言ってない。文脈的には、NetBeansをEclipseに置き換えるということだろう。
どう考えても誤訳としか思えない。
日本語の記事の方が、NetBeansをEclipseに置き換えても通用する
に訂正されていますね。これだとなんか僕がいちゃもんをつけただけに見えてしまうから、魚拓でも取って置けばよかったのかな。
例えば、数値を分数のまま四則演算する有理数クラスが↓のようになっていたとします。
public class Rational {
private int numerator = 0;
private int denominator = 1;
public Rational(int numerator, int denominator) { ... }
public Rational add(Rational x) { ... }
public Rational subtract(Rational x) { ... }
public Rational multiply(Rational x) { ... }
public Rational divide(Rational x) { ... }
}
当然、このクラスを使う側では↓のようなコードを書くわけですね。
Rational add(Rational x, Rational y) {
return x.add(y);
}コンパイラ関係の本を読んで勉強したくて、大学の図書館で探してみた。
とはいうものの、文系単科大学の図書館だからコンパイラ関係の本など探してもほとんどない。
やっとの思いで見つけたのが↓。
1981年刊行とのことだったが、とりあえず借りてみた。
↓貸出期限票を見たところ、俺は20年の眠りを醒ましてしまったらしい。

しかし、目次を見てみると、用語や内容は現在と大きくは変わらないっぽい。言語処理系の本は古い本ほど良いという話は本当だったんだな。
FizzBuzz が数分で書けないのなら、プログラマにはなれないでしょうね。
ということだったので、少し焦ってFizzBuzzを書いてみた。JavaScriptで。
for(i=0;i++<100;print(i%5?s||i:s+'Buzz'))s=i%3?'':'Fizz'
本気で最短を目指してみた。
その甲斐あって、anarchy golfというサイトのFizzBuzz - JavaScriptでは一位タイの短さにできた。

わーい
動作サンプルは続きで。
IE Developer Toolbarなんてあったんだね!今日はじめて知った!
Firebugの方が便利だから、FirefoxからIEに乗り換えるつもりは全くないけど、IEでのデバッグが少し楽になるかも。
ってか、コミュニティベースのFirefoxはFirebugみたいなツールを有志が作ってくれるけど、プロプライエタリなIEは自前で作らなきゃいけないから、Microsoftも大変だね!
前回の記事で書いた電卓を発展させて、簡単な一元一次方程式を解くことのできる電卓にしてみた。xを1つだけ含む一次方程式を解くことができる。
alert(calc('-x+1=2-3')); // 2 / 1
alert(calc('3*3/(2-x)=4+(2/3*4)+1.2')); // 101 / 118
alert(calc('(8-5)/3=1/(x+2)-1.3*0.4')); // -51 / 38
括弧と単項演算子を使うことができます。今のところ、xは数式中に1つだけしか含めることができません。
実動サンプルとソースコードは続きで。
前回の記事と前々回の記事で書いていた数式パーサと分数クラスを改良して、中置記法の数式を分数のまま計算する電卓を書いた。
最終的な目標は、移項のアルゴリズムを実装して、一元一次方程式を解く電卓を作ることだけど、とりあえずは一段落。
数式パーサを書いた前々回の記事では、数式を解釈して配列を使った構文木を返していたが、今回は配列ではなく、operatorとoperand1とoperand2の3つのフィールドを持つBinaryOperationオブジェクトを使った二分木として返すようにした。
BinaryOperationオブジェクトのoperate()メソッドを呼ぶと、子要素のoperate()メソッドを呼びつつ、適切な演算を行って値を返す仕組み。最末端ノードは、operate()メソッドを実装したFractionクラスを使った。
var operation = parse('1 + 2 * (3 - 4) / 5');
var answer = operation.operate();
alert(answer); // 3 / 5
alert(answer.valueOf()); // 0.6前回の記事と同じ目的で、値を分数のまま計算するクラスを作った。
細かいエラー処理などはしていないのでどうなるかはわからないが、何らかの計算を伴う処理の後には必ず約分関数を呼ぶようにし、約分関数でエラーをチェックするような設計にした。
var f = new Fraction(6, 4); console.log(f); // 3 / 2 num=3 den=2 f.add(new Fraction(2, 3.2)); console.log(f); // 17 / 8 num=17 den=8 f['*'](new Fraction(5, 2)); console.log(f); // 85 / 16 num=85 den=16
一元一次方程式を解釈して、未知数の値を求めるプログラムが書きたくなったので、まずは数式パーサを書いてみることにした。
id:amachangのコードを参考に、JavaScriptを使って数式を構文木に変換する数式パーサを書いてみた。
仕様などはほとんどamachangのものと同じだけど、↓の点が異なる。
CGIの先頭のperlへのパスを、ローカル環境用(#!perl)とアップロード先環境用(#!/usr/bin/perl)とで切り替えるPerlスクリプトを書いたのでメモ。Movable Type Open Sourceとかで遊んでるときに便利。
use strict;
foreach (glob '*.cgi') {
open FH, $_;
my @lines = <FH>;
close FH;
my $line = shift @lines;
$line =~ s|!perl|!/usr/bin/perl| unless ($line =~ s|!/usr/bin/perl|!perl|);
unshift @lines, $line;
open FH, '>' . $_;
flock FH, 2;
print FH @lines;
close FH;
}
こういう雑多な処理を自動化するときはPerlが便利すぎる。んで、foreach (glob '*.*') { ... }が便利すぎて困る。
ファイルを2回オープンしてるのが無駄な気がするんだけど、なんかいい案あるかな?
kaeru_san(=id:gomi-box)がこんなことを言ってた。
「女だからと言う理由で注目されているのだ」と言われると、心がずきずき痛む
俺はkaeru_sanが優遇されてるとかされてないとかっていう話をするつもりはさらさらないけど、プログラマコミュニティでの女性たちは、見ていて滑稽に思えてくるくらい優遇されているように感じるのも事実。滑稽に思えてくるのは、日頃男女比率がさほど歪んでいないコミュニティに属しているからだろうか。
確保できる電圧次第では欲しい。
持ち歩ける太陽光発電 米製バッグ 日本で人気上昇 :ニュース - CNET Japan
バッグの背面部分にシート状のソーラーパネルが備え付けられており、携帯電話や携帯音楽プレーヤーと接続することで、野外でも電源を確保できる仕組みだ。
見た目はすごくダサいが、新品の携帯電話でも一日で電池を使い切るほどのケータイヘビーユーザーな俺としてはぜひ欲しい商品。ノートパソコンレベルの電圧が確保できたりするといいなぁ。
先ほどの記事で、拙いJavaソースを晒していたが、Google codeのSubversionレポジトリを使ってさらに大々的に晒してみた。
レポジトリのURLはhttp://kerria.googlecode.com/svn/trunk/なので是非。
Subversionは仕事でしか使ったことないけどやっぱ便利だ。
ってか、初めてのJava、初めてのswing、初めてのGUI、初めてのGoogle codeって感じだからどうすればいいのかわからん。とりあえず、晒してみるのも勉強になりそうだから晒しておくか。
![[13:59:24] LiosKの発言: XMLエディタ作りたい><](http://gyazo.com/8c26d559d19e5329c56417be117f5593.png)
ということで、swing使ってJavaでがんばってます。Javaは初めてだから全然わからないけど。
とりあえずソースを晒してみる。kerriaというパッケージ名は意味のない開発コード。