2007年9月7日金曜日

年度を計算するには?

年度を計算するのが卒研で必要になったので,プログラムできない学生になり考えてみました.
以下のプログラムは一応日本の年度の定義に対応するものです.
言語はSqueakです.

check1 :=DateAndTime now.
check2 :=(check1 asYear) + (Year year:1).
check3 :=DateAndTime year:(check2 year) month:4 day:1.
check4 := check2 daysInYear.
(check3 - check1)days asInteger <= check4
ifTrue:[^check1 year]
ifFalse:[^ ((check1 asYear) - (Duration days:365))year. ].

こうやって自分が書いたプログラムをみると自分ってプログラムできない人だな・・・って思い寂しい気持ちになります.

もっとすっきり書けないものなのか.
アメリカだと年度の定義はどうなんだろう・・・.
アメリカの学校は9月はじまりだけど,それが年度と直結していない様子.

年度って謎ですね.

追記:匿名さんからのコメントでワンライナーなcodeを教えていただきました.
がんばって勉強しなくては.

2007年9月4日火曜日

オープンソースカンファレンスとは?

オープンソースカンファレンスというイベントを昨年の秋に知って,その当時は「そんなのがあるんだ〜」という感じで過ぎていたのですが,今年はそれにいってみたい.

でもよくわからない.
何がわからないかというと,参加の仕方.

学生でも参加できるものなのか?
セミナーはどうやったら受けられるのか?
何か参加資格はあるのだろうか?

Webサイトを見てもよくわからない.

わかっているのは開催日と場所だけ.
困ったものです・・・.

とりあえず,もし参加できるならSqueak,Ruby,Xoopsのセミナーを受けてみたい.
まずは東京へ行く資金をためねば・・・.

というかいまいちまだカンファレンス自体もつかめていないかもしれない・・・.
身近にそういうことに詳しい人がいないので困りました.

http://www.ospn.jp/osc2007-fall/

2007年8月29日水曜日

Smalltalkを死なせない2

Smalltalkを死なせないためにはSmalltalkについてもっと知らないといけないことを今気がついた自分・・・.

そもそもSmalltalk自体は僕が生まれる前に誕生した言語であり,最終形態?のSmalltalk-80も僕はまったく知らない・・・.

知らないことばかりだ.
そもそもSqueakに出会ったのは大学3年生の春.(現在4年)

Smalltalkについて知らないことばかり・・・.
Smalltalkの資料は大学にもほとんどないし,ほぼ英語ばかり.
英語がわからない僕にはちょっとつらい.

まぁ多少の苦労は仕方ないとして,妙にいろいろ調べたくなりました.

そういえば,ここはプログラミングメモなのに普通に記事を書いている・・・.
まぁいいか.

Smalltalkは死なせない

最近sumimさんのBlogを読んで,Smalltalkを死なせるような人がいることを知った.

これは僕の意見ですが,言語(プログラミング言語だけではなく人間の言語)はそれを使う人(話す人)がいなくなったら死んだといえると思う.
ただ僕は死んだという表現は好きではない.
死んだという表現使うより「古き言葉」として扱えばいいと思う.

とにかく悲しいものです.

というかSqueakがあるのでSmalltakは死んでいないのでは?と思える.(SqueakはSmalltalkであってSmalltalkではないと思っている方がいましたら失礼.未熟な学生の意見として聞き流してください)

ちなみにSqueakは大学院生になっても使いますし,今後も使う予定.
まぁ僕が60歳までいきるとして,僕の意見によるとあと39年は「死んだ言語」といえないですね.

人は自分の経験とか意見と異なるものを嫌う性質があるようなので,そういう性質が死んだとかいう発言になるんでしょうね.プログラミング言語も宗教に近いものなのかな?

最後は無視していただいて,Smalltalkはまだ死んでいないという結論に僕はしたいです.


[Smalltalk] この教授には Smalltalk を本当に理解することなど永久に不可能かも…(追記あり)
[Smalltalk] なぜかくも人は Smalltalk を殺したがるのか?
[Smalltalk] Smalltalk は死につつある…とかってバカじゃね?CommentsAdd Star

Potential - りんごの種 by blogger: Apple と Squeak

Potential - りんごの種 by blogger: Apple と Squeak

2007年8月21日火曜日

英語がわからないので・・・

プログラミング言語を勉強をしていると本当に英語がわからない自分にいらだちを感じます.

英語を勉強しないと思ってはいるができていない.
たぶんそれは自分の意思が弱いこともあるのだろうと思う.

どうにかしないと・・・.

2007年8月11日土曜日

OrderedCollectionのvalueからkeyを調べる

Squeakを使っていたら,OrderedCollectionのvalueからkeyを調べることがちょっと必要と思いました.

必要なんですか?とか言われそうですが,ちょっと欲しいと思ったので考えてみました.

y :=OrderedCollection new.
y add:#v;add:#a;yourself.

y keysAndValuesDo:[:key :value | (value = #v) ifTrue:[^key]].

結果
-->1

一応それっぽいですが,本当にいいのか心配.

Collectionのような入れ物からvalueが何番目に入っているのか調べたいだけなので,もっと他に言い方法がありそう・・・.



こんなのも考えてみましたが,こちらは無駄そう・・・.

y :=OrderedCollection new.
y add:#v;add:#a;yourself.

((y readStream) upTo:#v;yourself)position

つくづくプログラミング言語の活用方法について書いている方がすごく思えます.

追記:sumimさんよりもっと言い方法を教えていただきました.(コメント参照)