朝起きて電源つけようとしたら逝ってました。
もともとメモリ不足を感じてきてたり、DVDドライブの調子が悪かったり、でかすぎて邪魔だったりなわけで小さい計算機が欲しかったわけですが、ちょうどいい機会な気もしなくもなく。
ただGW前に逝くとかどうなんですか。とりあえずROとパンヤはムリですね。
買うとしたら小型のワークステーションを狙いたいわけですが、ちょっと今はお金が苦しいところ。
IntelliStation M Pro 9237
CELSIUS J340
Express5800/51Lc
今買うとしたらこれっきゃないっしょ!みたいのがあるといいんですけどね。
NECのとか異常に安いというか、スペックをみてもワークステーションの定義がなにか分からなくなりますが。富士通のは意外と安いように思えたけど、メモリを足したりしたらけっこうなお値段になったり。IBMは一番無難感があるのはなぜだろう、いいですよね IntelliStation。
まだWS以外のは見てないですけど、別に普通のでもかまわないわけで、なんかトキメク計算機ないですかねー。
モバイルワークステーションのほうは、ノートなのにすごいグラボ積んでいたりして、省スペース省電力ハイスペックとかなりトキメキますが、こういうのもありなのかな。高すぎですが。
まあ何選ぶにしても最大の壁は価格なんですけどね orz
最近、超^10 くらいの初心者っぷりを露呈するプログラム日記が続きますが笑ってくださってけっこう(ぇ
早く目が覚めたので、30分ほど、初めて Ruby を見てみました。
最近は Ruby on Rails で盛り上がってるじゃないですか。いや「最近は」じゃないですか、もう盛り上がりきって乗り遅れてる感じがしますが。
で、先日某先生に「Rails どうですか」って聞いてみたところやっぱり相当いいみたいですね。実際にRailsで開発したシステムを見せてもらったわけですが、こんなのが楽に作れるんなら、そりゃ便利だわと。
というわけで、適当に検索かけて初心者サイトを眺めてみる。OK把握。
class クラス名
def メソッド名(引数)
...
end
end
クラスとメソッドはこう書くってのが分かればあとはだいたい読めました。
switch case じゃなくて case when とか、 p メソッドでオブジェクトの中身を見るとか、式展開とかは慣れかと。
文字列をシングルクォーテーションでくくってたり、メソッドを () なしで呼び出していたり、末尾に ; を書かなかったりしてるあたり、なんかすごく落ち着かないんですが…w
() とか ; は書いてもいいみたいなんですけど、一般的なRuby使いから見たらどうなんでしょう。
きっとC言語使いがJavaを書いたときに、Cっぽく書いてJava使いに突っ込まれるのと同じなんでしょうね(ぇ
開発環境は何がいいのかな。
とりあえず KDevelop で書いてみたけど、あとは Eclipse+プラグインとかしか選択肢がないような?
変数宣言の位置でエラーでてるんじゃないと某先生に教わったお話の続き。
krbせんせーがオーストリアから帰ってきたのでこの話をしてみる。
「バカじゃない?」って返ってくると思ったらそれ以上のが返ってきたw
一緒にいた神A氏も含めて、「他のとこでそんな話しないでよ恥ずかしいから」「それはリテラシレベルでしょ」「生暖かい話を聞けた」とかそこまでネタ伝説化しなくてもw
まあ最初に変数を宣言してメモリに展開して~ってのを考えたらそれが普通なのは納得しますが、そういうのはコンパイラ側にやってほしいなあというのが自分の感想でして。C++ や Java は実際できるわけですが。
当然の如くこのあたりの話はガーベッジコレクタとかの話に流れるわけですがそれは置いといて。
大抵の場合はブロックの最初で宣言するだろうからそうそう問題はないと思うけれど、for文の条件で宣言ができない以上、せめて直前で宣言してやりたいと思うわけですよ。
そんなわけでしつこく、某大学の先生にまで聞いてみたらこんな代替案。
double trapezoid(double (*g)(double), double a, double b, int n) {
double s = 0.0;
double h = (b-a)/n;
s += (g(a)+g(b))*h/2.0;
{
int i;
for(i=1; i<n; i++) {
s += g(a+i*h)*h;
}
}
return s;
}
ああ、その手がありましたかw
ちなみに gcc は C99 でコンパイルしてましたか。
gcc だとコンパイルできて cl だとコンパイルできない件、原因解明。
コンパイルエラーになるソース。
double trapezoid(double (*g)(double), double a, double b, int n) {
double s = 0.0;
double h = (b-a)/n;
s += (g(a)+g(b))*h/2.0;
int i;
for(i=1; i<n; i++) {
s += g(a+i*h)*h;
}
return s;
}
コンパイルできるソース。
double trapezoid(double (*g)(double), double a, double b, int n) {
int i;
double s = 0.0;
double h = (b-a)/n;
s += (g(a)+g(b))*h/2.0;
for(i=1; i<n; i++) {
s += g(a+i*h)*h;
}
return s;
}
C言語では int i のような宣言はすべて最初のほうに書いてあげないといけないんですって。
Java みたいにどこでも書いていいわけじゃない、つまり使う直前で宣言する、とかはやっちゃいけないんだとか。
あと調べてるついでに知ったおまけとしては、C言語でのコメントは /* */ のみで // はC++じゃないと許されないんだとか。最近のコンパイラは // でもコメントとして認識してくれたりしますが、ANSI C でダメって書いてありました。これはC言語のバイブルを手元に置いておいたほうがいいなあって思いました。
という名目で飲み。
まとめ。
・ストロベリーショコラとかカスタードミルクだとか、カクテルの中に発光体が入ってたりもしましたよ。
・いちごサワーとストロベリーサワーの違いがわかりません。
・とりあえず箸の使い方の矯正とか考えておきます(ぇ
・英会話、覚えるための投資と考えると高い気がするけど、週一の習い事ってくらいに考えればまあまあの値段だなあって思ったり。
・ていうか飲みっていうより食べ?
そんなかんじで、ごちそうさまでした(マテ

