今日買い物でつい買ってしまったFerrero Rocherを食べた。美味ひー。
日曜日, 11月 30, 2008
土曜日, 11月 29, 2008
きょうのごはん&お酒
今日の夕食は誘われて早めにラーメン屋に行ってチャーハン定食大盛りを食べたのですが、会社に戻ったら、来年から兼務が決まってる職場の人達に誘われて向こうのボスの家でお酒を飲むことに。噂通りに料理が上手くて飲めや食えやで…先に食べたチャーハン定食大盛りが効いて死にそうです orz 美味しいのでつい食べてしまうのがいけないのですが。
お邪魔する前におつまみになるものを買っていったのですが、フザケ半分にハバネロのサルサを買っていったら…あまりの辛さにお酒をガブ飲みして一遍に酔いが回りこれまた大変なことに。ふざけて辛い物を食べるのは止した方が良さそうです orz
そうそう今年はじめてBeaujolais Nouveauを飲みました。これはこれで美味しいですねー。
それにしても全員が信じられない位濃ゆい人達ばかりで、そのハイブロウな話題には付いていくのも必死です。来年のねこさんは大丈夫でしょうか。
金曜日, 11月 28, 2008
Homogeneous
数学用語のHomogeneousを最近では日本語では「同次」と訳されていますが、昔は「斉次」と訳されていました。
それはいいのですが、今の今までねこさんは「斉次」を「さいじ」と読んでました orz
正しくは「せいじ」と読みます…そういわれてみれば学部一年のときにそういわれた記憶もあるような、ないような orz
たぶん、ねこさんは首相の事を笑えません orz
StickySorter
こちら様経由で。
お酒飲みながらふらふらしてて発見。実は今日(昨日?)ちょうどこんなテイストのソフトがあるといいな、と思って探していたのです。なんというグッドタイミング!
触ってみて、「Noteの大きさを自由に変えられるといいな」とか思うところはあるけど、 (1) そう多くの機能はいらない、(2) 単一のウィンドウに貼り付いているだけ、(3) グループ分けできそう、(4) 書き込んだ内容を全体俯瞰で眺めることができる、(5) データの再利用が容易そう、な付箋ソフトが欲しい!という欲求をそれなりに満たしてくれそうです。
て事でしばらく使ってみることにしますです。
木曜日, 11月 27, 2008
夜早く寝るために
少なくともねこさんが物心が付いた頃から母親はかなりの夜更かしさんで、昔から父親に良く怒られていたその影響か、ねこさんも昔から(少なくとも小学生位から)相当の夜更かしさんです。一応サラリーマンの癖して比較的最近まで4~5時まで起きてる事もざらだったりしました。起き続けることには結構の自信があったのですが、木~金曜日までには壊滅的に体力を消耗していて、週末はもう半病人状態だったりしてました。
そういった意味では今もあまり変わりませんが、最近歳の所為かもしくは老い先の短さを意識して残り人生でなしうる何かを生み出す効率を強く意識するようになりつつある所為か「若干早く寝るべきである」と思うようになりました。といったところで長年の習慣ですので沿う簡単には参らないわけで、なるべくそれまでやってる作業の手離れを良くする為の方法を模索してたりするわけですが、その一つとして、「これ以上は何やっても無駄だと思えるように『とっととお酒を飲んでしまう』メソッド」というのを考案したのですが、残念ながらねこさんはお酒を飲む欲求がかなり低いので、結局とっとと飲んだりはしなかったりしてるのです。それでも繰り返していると、どうも飲んで寝た方が目覚めが若干よろしい(かなり浅めだった睡眠が若干深くなる?)ようなので、飲むこと自体は習慣化できるようになってきました。
ということで、これからはなるべく遅くとも0時あたりになったらお酒を飲むことにしようかなと思います…とお酒を飲みながら考えました、まる。
そうそう、今週はグリューワインを飲んでいるのですが、なかなか良いです。クリスマスが近づくと割合入手が容易なのですが、シーズン後も継続的に飲める方法を考えておくと若干幸せになれそうな気がしています。
水曜日, 11月 26, 2008
火曜日, 11月 25, 2008
月曜日, 11月 24, 2008
日曜日, 11月 23, 2008
きょうのごはん
古いホールトマトの缶詰が気になっていたので、消費してしまおうと今日もパスタを。
久しぶりのトマトのパスタなので、やっぱりうまく行かない。っていうかトマトの缶詰が思いの外古いのが激しく気になる… orz ニンニクも切れていて、ジェノベーゼペーストを代わりに入れたらおいしくない。そもそもの具で入れたシーチキンの缶詰と小松菜が悪かったのか?
おなかを壊していなければ明日また作ってみる。
お買い物
気がついたら穿けるパンツが一着しかなくなっててどう考えてもピンチ。昨日お出かけした時に買おうかと思ってたけど、裾直しをしないか直ぐにしてくれるところ以外では買うべきではない、ということで今日自宅の近所で買った。
後は野菜ジュースと小松菜。
土曜日, 11月 22, 2008
読書会
夕べ寝る段になって、Note PCのACアダプタを忘れたことに気がついた。朝起きてどうしようか悩み、Linux Zaurus+Gaucheでどうにかすることも考えたけど、そんなマネが徹せる程の能力があるわけではない。結局重たいポートリプリケータを箱にまとめ2輪台車に縛り付けて出発、既に遅刻気味 orz 重たい荷物を引き摺っているので歩みも遅い。電車に乗っても座席取り競争に参加できるわけもなく、眠くてもずっと立ってるしかない orz
若干遅れたけど、まだ始まってなかったので助かった orz
少々イライラした精神状態で参加したためか、成果はそれなりな感じ。人の話もちゃんと頭に入らなくてごめんなさい orz
もっとちゃんとしなければ orz
金曜日, 11月 21, 2008
木曜日, 11月 20, 2008
水曜日, 11月 19, 2008
火曜日, 11月 18, 2008
Haskellを使ってみる (6)
今日少しHaskellを触っていて、「ファイル名のbasenameを取得する」コードを書こうとしばし悩んでました。んで書いたコードがこれ。
basename ext inname =
join "." \$ reverse \$
(\name ->
if (head name)==ext then tail name
else name) \$ reverse \$ split '.' \$ inname
"."をデリミタにしてリストに分割して逆順にして、先頭に拡張子が入っているかを確認したうえで先頭を削除して、正順に戻して"."を挟んで文字列に戻してます。んでこれを書くのに使っている補助関数が
split :: Char -> String -> [String]
split _ "" = [""]
split delim (c:cs)
| c == delim = "" : remains
| otherwise = (c: head remains) : tail remains
where
remains = split delim cs
join :: String -> [String] -> String
join _ [] = ""
join delim (c:cs) = c ++ delim ++ (join delim cs)
でもこんなの既に用意されているような気がしてなりません。
きょうのごはんとお買い物
野外活動の後、皆で暖かいものを食べに行こうという話になって、リンガーハットでちゃんぽんを食べることに。ねこさんはどんだけ食べてるんだか orz
帰りにヨーグルトと靴下を買った。歯磨きと歯ブラシを買いそびれたけど。
Haskellを使ってみる (5)
以前に作った実数値を読むパーサですが、これを使ってcairoで絵を描かせてみたら、小数点の直ぐ下に"0"が並んでいると無視される酷いバグが! orz
realNum :: Parser Double
realNum = do sign <- option 1 (do s <- oneOf "+-"
return \$ if s=='-' then -1 else 1)
int <- option 0 cntNum
option '.' (char '.')
zeros <- many (char '0')
frac <- option 0 cntNum
exp <- option 0 (do oneOf "eEdD"
e <- intNum
return \$ e)
return \$ (fromIntegral sign) *
(fromIntegral int +
(toFrac (fromIntegral frac) (length zeros))) *
(10**(fromIntegral exp))
where
toFrac n m = if n<1 then
if m<=0 then n
else toFrac (n/10) (m-1)
else toFrac (n/10) m
cntNum :: Parser Int
cntNum = do n <- many1 digit
return \$ (read n :: Int)
intNum :: Parser Int
intNum = do sign <- option 1 (do s <- oneOf "+-"
return \$ if s=='-' then -1 else 1)
num <- many digit
return \$ sign * (read num)
小数点直下の"0"の数を数えて、その分だけ小数点以下の数を10で割るように修正。これでいいはず。やっぱりデータを視覚化すると一発だな orz
月曜日, 11月 17, 2008
日曜日, 11月 16, 2008
きょうのごはん
今日はねこさんとしては結構冒険をしてみました!
パスタを作るときにオリーブオイルの代わりにごま油を使ってみたらどうだろう?…という思い付きを解決すべく、今日はごま油を使ってペペロンチーノを作ってみました!材料は昨日とほぼ一緒(万願寺唐辛子と三度豆)です。
結論を言うと、ごま油を使うこと自体は全然悪くなさそうです!ただ、使用したごま油はハッキリ言って不味過ぎでした。それは判っていたので、大量に消費できそうなパスタ料理を作ることを思いついたのですが。美味しいごま油を買いたいですが、この不味いごま油を使わないと新しいのを買えない貧乏性なねこさん。あと、昨日がしょっぱ過ぎたので塩を減らしたのですが、それでもまだしょっぱかった…昨日はどんだけしょっぱかったのか orz
土曜日, 11月 15, 2008
金曜日, 11月 14, 2008
今日と明日のねこさん
今日もへとへとなねこさんです。今晩はゆっくり寝ます。明日は会社のソフトボール大会で気合の入っている人もいるのですが、ねこさんはへとへとなので家でゆっくりしてます。
それより明日は雨ではないのかなー?
木曜日, 11月 13, 2008
水曜日, 11月 12, 2008
Haskellを使ってみる (4)
久しぶりにちょっとだけHaskellをいじってみてました…といっても本当に久しぶりだったのでどうしていいのかも思い出すのに時間がかかってしまっていて、ほとんど何もできなかったりする訳なのですが orz
そうそう、ちょっと前にHaskell触っててこんなことぼやいたりしていたのですが、ほとんど独り言な質問にお答えを頂いてしまいましたー ヽ(´ー`)ノ 独り言でも何でも言ってみるもんですねー。
printf は
http://www.haskell.org/ghc/dist/current/docs/libraries/base/Text-Printf.html
ってのがありますが、
http://www.haskell.org/ghc/dist/current/docs/libraries/base/Numeric.html
のほうがよいかも。
ありがとうございます m( _ _ )m ねこさんもText.Printfは存じてはいたのですが、(IO a)しか返せないのかとばかり思っていました。リンク先のドキュメント読んでもどうやったらString型で返せるのか判らない orz … それ以前にHaskell関連の仕様書の表現に全然慣れなくて、意味を読み解けずにえらく難儀してます orz よくわからないので、力任せにprintfの返り値がStringだと思いこんだコードを書いてみたら、ちゃんと意図通りに動いていて驚きました↓。
(\\str->(read str :: Double)*2) (printf "%f" 2.0)
ねこさん的にはこれで十分な感じではありますが、確かにprintfはExceptionエラーを引き起こす可能性があるので気持ち悪いかもしれません。なのでshowFFloat, showEFloat, showGFloatを使う方がいいようですね。ねこさんはこれらの関数を知らなかったので、そのうち似たようなものを作ろうかと思っていました orz よけいな車輪の再発明しなくて済んでよかったよかった。あと、floatToDigitsも細かい事を自分でやろうと思った時には何気に便利そうですね。便利な情報をありがとうございました。
そしてなにより、
Show については、
data Point = Point {x :: Double, y :: Double} deriving (Eq,Show)
とかやるとよいです。
たしかにどっかでこういうのを見た記憶が。試してみましたら…すごい! 確かにこれくらいだいたい自明なんだからどうにかして!とか思ったりしてましたが、どうにかしてくれるんですねー。これは便利ですね。
匿名さん、大変勉強になりました!どうもありがとうございました!
火曜日, 11月 11, 2008
月曜日, 11月 10, 2008
日曜日, 11月 09, 2008
PDFCreator
今日中に2つのプレゼン資料を作成しなければならないのですが、必要に迫られてPDFCreatorを使ってみました。
正直微妙な使い心地ですが、任意のアプリケーションの印刷機能からイメージファイルの作成ができるのはそれなりに便利です。一旦PDFに変換してからイメージファイルに変換する方法はいろいろありますが、ごちゃごちゃならなくてもできるのがいいところですね。出力されるフォーマットの指定が処理の一番最後である辺りから、省力化になっているのかと問われれば微妙な使い心地ですが。
rep2-expack アップデート
ねこさんが某掲示板とかを見るのに使っているrep2のバージョンがかなり古いせいか、最近書き込みができなくなっているので、忙しいのにもかかわらずついアップデートしてしまおうと思った次第。
rep2はTigerが入っているCubeで動かしているので、ここのdmgなインストーラでインストールして…動きません orz
よく見るとPHP 5.2.3以降でないと動かないらしい…ということでPHPもアップデート。もはや激しくめんどうな気分になっているのですがこのままにしても掲示板が見れるようになるわけではないので、一番楽そうな手段を…ということでMarc Liyanageさんのentropy-php-5.2.4をインストール。apacheを再起動…しません orz 単に元々のPHP4の設定をそのままにしていただけなのでhttpd.confの該当箇所をコメントアウトして再起動…apacheもrep2も動きました。
「PHP 5.2.6以降がお勧めですよー」と怒られている気がしますが、また気が向くまで無視してやり過ごすことに致しますー orz
土曜日, 11月 08, 2008
金曜日, 11月 07, 2008
木曜日, 11月 06, 2008
きょうのお仕事
会社では今日から3日間、年に一度のお祭りです。人がいっぱい来ます(今年は何故かちょっと少ないみたいですが)。おかげで社食でごはんが食べられません。ま、それはいいのですが。
例年はお祭りの準備を担当して本番は勘弁してもらっていた(あんまり客前に出していい行儀の良いねこではないので)ので今年もそのつもりでいたのですが、人手が足らないからと明日はねこの手を差し出さなければならなくなりました。サラリーマンの癖に背広持ってないねこさんはピンチですw
て言いますか、明日までに準備しなければならない資料がまだできてない方がもっとピンチなのですが orz
ていうことで今日のHaskellは中止 orz
Michael Crichton死去
世間的には"Jurassic Park"や"ER"の人だと思うのですが、ねこさんにとっては"The Andromeda Strain"の人な訳でして。ほかにも"Westworld"とか"Runaway(未来警察)"などのB級SF映画の監督(褒め言葉)だったことは、少なくとねこさんの周りではあまり知られていないようです。
特にコンピュータでの生体認証の話題を目にするたびに、若いころにTVで見た未来警察の1シーンがトラウマの様に思い出されてしまいます。20年以上も前に作られた映画であることにある意味驚きを禁じえません。
安らかにお休み下さい。
水曜日, 11月 05, 2008
Haskellを使ってみる (3)
ねこさんは数値データをテキストファイルでやり取りすることが多いのですが、Haskellでの実数データの読み込みは互換性の観点からすると都合がよろしくありません。read関数だけでなくParsecにもfloatというパーサが用意されているらしいのですが、これでは使い勝手が良くないのです。こちらにfloatパーサを使いつつ改善したパーサが紹介されていますが、Fortranの出力形式にも対応して欲しいねこさんには不満が残ります。
仕方が無いのでParsecの練習を兼ねて自前でパーサを組んでみることにしました。
realNum :: Parser Double
realNum = do sign <- option 1 (do s <- oneOf "+-"
return \$ if s=='-' then -1 else 1)
int <- option 0 cntNum
option '.' (char '.')
frac <- option 0 cntNum
exp <- option 0 (do oneOf "eEdD"
e <- intNum
return \$ e)
return \$ (fromIntegral sign) *
(fromIntegral int + toFrac (fromIntegral frac)) *
(10**(fromIntegral exp))
where
toFrac n = if n<1 then n
else toFrac \$ n/10
cntNum :: Parser Int
cntNum = do n <- many1 digit
return \$ (read n :: Int)
intNum :: Parser Int
intNum = do sign <- option 1 (do s <- oneOf "+-"
return \$ if s=='-' then -1 else 1)
num <- many digit
return \$ sign * (read num)
初めて書いた割には結構それなりに動いているようです。よかった。
話は変わりますが、代数的データ型を使ってコードを書いているとデバッグ時に「(Show ~)のインスタンスがないよー?」と怒られてちょっと悲しいのですが、これを解決するには当然(Show ~)のインスタンスを定義すればいいと。
data PointType = Point { x :: Double, y :: Double }
instance Show PointType where
show (Point x y) = "Point " ++ (show x) ++ " " ++ (show y)
これでデバッグしやすくなりました。
ところで、Haskellにはsprintfに相当する関数はないのでしょうか?とりあえずは実数の出力形式を細かく指定できればねこさんには十分なのですが。
火曜日, 11月 04, 2008
Haskellを使ってみる (2)
扱いたいデータを表現するために新しいデータ型を定義して、これのリストにデータを入れていけばいいのだな…とか考えて触っていたのですが、リストの要素を順番に印字する処理で考え込んでしまった orz
なるほど入出力は難しいのかー…などと思ったのですが、考えれば大したことはなくて、>>を使って
printList [] = putStr ""
printList (x:xs) = print x >> printList xs
でいいのだった。こんなので難しいなんていっていたら叱られる orz
月曜日, 11月 03, 2008
Haskellを使ってみる (1)
さっそくParsecを使ってみようかと…思いましたが、流石に無理でした orz たぶん使うだけなら本当にすぐだとは思うのですが「何をするのか?」の準備をしないことには始まりません。
「仕事で使っているデータファイルを視覚化するプログラム」を作ることを目指します。このデータフォーマットは秘密の形式をしているので公開できませんw そのうち何か考えます。
- まずは標準出力の方法(ていうかIOモナドと言うんですか)ですが、putStr, putStrLn, print などはなんとなく覚えていたのですがprintfもありましたか。任意の値を文字列に変換するshowや文字列を任意の値に変換するreadもありましたです。これでテキスト入出力をどうにかするです。
- GHCiの終了の仕方は:quitでした。たぶんまた忘れる orz
- haskell-modeでコードを書いて、C-c C-l と押すとGHCiにバッファ内のコードが反映されます。
あとはここを見ながらgtk2hsのcairoでPDFを出力するコードを書いてみるです。
module Main where
import Graphics.Rendering.Cairo
main :: IO ()
main =
let
w = 720
h = 720
in
withPDFSurface "text.pdf" w h \$ \surf -> renderWith surf \$ do
setSourceRGB 1 1 1
paint
setSourceRGB 0 0 0
moveTo 0 0
lineTo w h
moveTo w 0
lineTo 0 h
setLineWidth (0.1 * (h + w))
stroke
rectangle 0 0 (0.5 * w) (0.5 * h)
setSourceRGBA 1 0 0 0.8
fill
rectangle 0 (0.5 * h) (0.5 * w) (0.5 * h)
setSourceRGBA 0 1 0 0.6
fill
rectangle (0.5 * w) 0 (0.5 * w) (0.5 * h)
setSourceRGBA 0 0 1 0.4
fill
今日はここまでー。
きょうのごはん
昨日のリベンジ…のつもりだったのですが、結果からいうと失敗 orz
- 今日はちゃんとペペロンチーノを作ることにしました。
- ちゃんとにんにくを買いに行きました。今回は無臭ニンニクを買ってみました。匂いが無いわけではないのですね。
- 生バジルはないので乾燥バジルで。買い置きが尽きかけていた気がしたので買い足しておきました。確かに後1回分ちょっと位しかなかったのですが、それより鷹の爪がきっかり一回分しかありませんでしたので、こっちも買い足すべきでした。
- SpaghettiniよりもFedeliniの買い置きが尋常でなかったのでこっちで作ることに…細いので茹でるタイミングが難しい。
- 茹で方に最大限神経を尖らせていたし下拵えも含めて問題なかったはずなのですが…最後の味付けにもたついたのとフライパンの火がちょっと強すぎた所為か汁があっという間に蒸発して麺が鍋に張り付いてしまう事に orz
なんていうか喫茶店メニューでよく見る仕上がり、出来損ないの焼きそば一歩手前…こんなのはパスタじゃない。こんな失敗は初めてです orz
唯一の救いは、さほどにはまずくはなかったというところでしょうか? 次回こそは必ずまともなパスタを作ってやる!
スーパーのエコポイント
普段買い物をするときには、ゴミが増えるのを嫌がってレジ袋を貰わないねこさんなのですが、近所の某スーパーでは代わりにエコポイントというスタンプが貰えていたのです。
おかげでエコポイントが結構溜まっていたのですが、今日買い物に行ってよく見ると「10月末でエコポイントの商品との引き換えは終了致しました」との張り紙が…今まで気付かなかった orz
日曜日, 11月 02, 2008
きょうのごはん
台所の棚の特売で買ったパスタが全然消費されていないのを見て危機感を覚えたねこさんは、一念発起してひさしぶりに自分で茹でて食べることしました…当たり前だろが orz
何もないのも淋しいので、パスタの具を求めて近くのスーパーへ。地場物野菜のコーナーでからし菜を見つけたのでこれに決定。お腹が空いているのでさっさと帰ります。
帰ってからペペロンチーノを作ろうと…その前に、最近全然台所仕事してないので恐ろしい状態に。最低限片付けてから食材を探すと…ペペチ作るのにニンニク無くてどうする? orz しばし悩んだ末に買い置きのジェノベーゼソースだけでどうにかすることに。
家財道具を持っていかれた後に購入した、パスタ茹でるための少々大きめな寸胴鍋に水と塩適量を入れて沸騰…鍋がデカイと沸かすのに時間が orz しかも塩も結構使う orz 沸騰してからSpaghettiniを適量(ねこさんはいっぱい食べるので結構多い)を入れ…たらすごい勢いで吹き零れた orz 久しぶり&今の調理道具に使い慣れていない所為かどうもどんくさいねこさん orz 8分位茹でたところで麺の茹で具合を見ながらからし菜の茎の部分を数cm程度に切った物を鍋に投入、1分後位に葉の部分を投入、30秒位で麺がアルデンテ手前くらいになるようにして鍋から麺と具を一気に引き上げる。あらかじめオリーブ油を馴染ませたフライパンで軽く炒め茹で汁を馴染ませておいた所に麺と具を一気に投入して、麺とソースを絡めて出来上がり。すぐに皿に盛って、好みでエキストラバージンオイルを振り掛けて食べるです。
からし菜の香りが香ばしくて美味しいのですが、何かパンチが足りない orz
明日またリベンジかなー?
Fortranの予約語?
最近中ボスに言われて研修に来ている学生さんにFortranと数値計算を教えているんですが、学生さんが書いたコードに
integer :: end = 0
みたいなのがあったのです。
「endはFortranでは予約語だから変数名に使ってはいけないよ」と言ったのですが、gfortranではエラーになってる様子はなかったんですね。
ここを読んでいたら今またそれを思い出しまして、ちょっと調べてみましたところ驚くべき結果が!(物を知らないねこさん限定で)
試しに
program if
print*,'code 2'
end program if
program code3
integer :: if
if = 3
print*,if
end program code3
とかいうコードを書いてもちゃんとコンパイルできるし、ちゃんと動く…今まで使ってきて「Fortranには予約語がない」という、どう考えても基本的な事実すらねこさんは全然知らなんだー orz もっと勉強せねばなー。
来週、学生さんに謝っておかねば。