CAKE(6)                      FreeBSD Games Manual                      CAKE(6)



NAME

     ふりぽけ日記 - 2001年03月下旬



SYNOPSIS

     cake [-vd] [garbage-in garbage-out]



DESCRIPTION

     Cakeは駄文製造プログラムです。一般に、ゴミを入力するとゴミを出力す

     る、とされています。



OPTIONS

     なにも指定をせずに立ち上げると、標準入力(/dev/ear)から読んで標準出

     力(/dev/mouth) に書こうとします。(放っておくと、ずっとそのままで入力を

     待っています。)入力ファイルと出力ファイルを指定すると、それらを読み書き

     します。



     -v オプションを指定すると、何をやっているのか細かく報告します。

     -d オプションはデバッグモードです。





2001.03.20 Tue (PAGE:d200103c SECT:20)

   よく見る表現 



     Sorry, Japanese Only は、「私の落ち度のせいで、日本人以外お断り」と解釈さ

     れてしまうらしい。



     リンクフリーと双璧ですな。





   良い天気だったので 



     布団を干した。



     昼過ぎにとりこんだら、2割がた軽くなっていた。



     そのことを喜ぶべきか、それまでの状態を嘆くべきか…。





2001.03.21 Wed (PAGE:d200103c SECT:21)

   OutLookのメモ帳 



     ひょっとしてRuby邪道技で叩けばテキストを取得とかできるのかな〜。 256本

     買ってないからよく分からない。<買えよ。





   とりあえず 



     OutLookのメモ帳自体を Wiki のリポジトリとして使うことはできそうな塩梅。確

     かにこれは邪道だ。:D



     WikiName というタイトルを持つメモデータの内容を表示



           Set myOlApp = CreateObject("Outlook.Application")

           Set olMAPI = myOlApp.GetNameSpace("MAPI")

           Set memoFolder = olMAPI.GetDefaultFolder(12) 'CONSTANT: olFolderNotes

           Set memoItems = memoFolder.Items

           Set myItem = memoItems.Find("[Subject] = ""WikiName""")

           MsgBox myItem.body



     新規メモを作成して保存



           Set myOlApp = CreateObject("Outlook.Application")

           Set olMAPI = myOlApp.GetNameSpace("MAPI")

           Set memoFolder = olMAPI.GetDefaultFolder(12) 'CONSTANT: olFolderNotes

           Set myItem = memoFolder.Items.Add

           myItem.Body = "新しい本文"

           myItem.Close(0) 'CONSTANT: olSave



     これを Ruby に書き直すとどうなるんだろ。 256本買ってないから分かんない

     や。<だから買えって。



     Windowsでも動くServer機能搭載のワンボックスWikiを書くのが吉かな。(←画餅)





   PalmWiki 



     同期についても粛々と進んでいるものの、Palm内での連携もだいぶコツが掴めて

     きた。



     予定表やToDoの表示画面から、ワンタップでメモに飛ぶことができる。各アプリ

     にも標準でメモを添付する機能があるが、一つの用件にくくりつけされているの

     で案外有り難くない。



     それが、全部のリンクがひとつのメモに結びくとこんなに便利だとは。



     App/DALauncherも導入するとワンタッチで元のアプリに戻ることが出来て便利

     さ256倍って感じ。



     増井さんに感謝。





   長年の謎 



     「刺身入りのおにぎりとは?」ってなんのこと?



     誰もつっこまないところが非常に怖い。ひょっとしてみんな知ってる有名な話題

     なのか。





   しまった 



     そういえば nroff nikki に MANPATH 通すの忘れてた。





   さっき受けたボール 





            すると、彼は言った。「先生、それらの事はみな、小さい時から守ってお

           ります。」

            イエスは彼に目をとめ、いつくしんで言われた、「あなたに足りないこと

           が一つある。帰って、持っているものをみな売り払って、貧しい人々に施

           しなさい。そうすれば、天に宝を持つようになろう。そして、わたしに

           従ってきなさい。」

            すると、彼はこの言葉を聞いて、顔を曇らせ、悲しみながら立ち去った。

           たくさんの資産を持っていたからである。

           (口語訳 マルコ 10:20-22)



     いつのまにかたくさんのものに囲まれて、それに縛られていた。



     プライドとか、自尊心とか、人を見下す態度とか。



     知識を、技能を誇っていた。よいものに恵まれながら、それをよいことに活かし

     ていなかった。



     悲しみながら立ち去る者にはなりたくない。





2001.03.22 Thu (PAGE:d200103c SECT:22)



   Outlook 



     なるほど(http://www.denpa.org/~go/denpa/200103/from21.html#22_2)

     ほとんど変わらないんですね。



     でも WIN32OLE.const_load() にはびっくりしました。そんなものまでオブジェク

     トが教えてくれるんですね。> COM





   というわけで 



     Outlook のメモ帳をデータベースがわりに使うリポジトリクラスを書いてみた。



           require 'win32ole'



           module OUTLOOK_CONST

           end



           class OutlookRepository

             def initialize

               outlook = WIN32OLE.new("Outlook.Application")

               WIN32OLE.const_load(outlook, OUTLOOK_CONST)

               mapi = outlook.GetNameSpace("MAPI")

               $memoFolder = mapi.GetDefaultFolder(OUTLOOK_CONST::OlFolderNotes)

               $memos = $memoFolder.Items



               $memoFolder.Display  # for debug

             end



             def find(name)

               return $memos.Find("[Subject] = \"#{name}\"")

             end



             def isexist?(name)

               if find(name) != nil then

                 return true

               else

                 return false

               end

             end



             def load(name)

               memo = find(name)

               if memo != nil then

                 memo.Body =~ /^([^\r\n]+)\r\n(.*)$/p or return ""

                 return "" unless $1 == name

                 return $2

               else

                 return ""

               end

             end



             def store(name, content)

               if isexist?(name) then

                 item = find(name)

                 item.Body = name + "\r\n" + content

                 item.close(OUTLOOK_CONST::OlSave)

               else

                 newItem = $memos.Add

                 newItem.Body = name + "\r\n" + content

                 newItem.close(OUTLOOK_CONST::OlSave)

               end

             end



             def lastmodified(name)

               if isexist?(name) then

                 memo = find(name)

                 return memo.LastModificationTime

               else

                 return nil

               end

             end



             def recentlist

               memo = $memos.GetFirst

               memolist = [memo]

               ($memos.Count - 1).times {

                 memolist << $memos.GetNext

               }

               memolist.sort! {|a, b|

                 b.LastModificationTime <=> a.LastModificationTime

               }

               return memolist.filter {|item| [item.Subject, item.LastModificationTime]}

             end



           end



     Tiki の PageRepository を参考にはしたものの、バックアップや履歴管理はない

     し機能的にも不足している。がまあ個人用ということで割り切ろう。