最新 追記

ema log


2008年10月02日 [長年日記] この日を編集

_ [最近]masayashiくんがAR/VR勉強会を企画しているようです

そそのかしました.場所の確保などで協力していきたいと思います.

僕自身は,ただの「電脳コイル」好きーな人ですが,なにかしら全力で協力します.

例えば,日程なのですが,yukkyさんに教えていただいた「IT 勉強会カレンダー」というのがあります.それで大きなイベントは回避できると思います.11/7, 8 は KOF'08 が,11/22 は Gauche/SICP があるので,避けてもらえると手伝いやすくなります.

ちょうど,M1の第一回目の発表がある時期なので,その辺との絡みもあるでしょうし,当面は日程を確定できないでしょうしね.

お名前 : コメント :


2008年10月05日 [長年日記] この日を編集

_ [最近]風邪

一昨日は頭痛メインで,昨日はgerryメインでした.

実家に帰ってきたら妹がのどの風邪で熱を出して寝込んでました.明日そうならないか心配しながら,お出かけしてきます.

明日の資料が・・・駄目駄目資料で申し訳ない.

それにしても背景が十分にかけない.原因が分かっているだけに成長が必要なところ.理解不足を解消してアイデア出していかないとなぁ.

お名前 : コメント :


2008年10月07日 [長年日記] この日を編集

_ [最近]私信>会場

大阪&大阪府下で勉強会に使える会場一覧 (会議室など) - snow-bellの日記」が参考になります。

「区民センター・区民ホール」は「区民センター・区民ホール・会館 空室検索」からまとめて検索できますが、IEでしか動かなかった記憶があります。

お名前 : コメント :

本日のツッコミ(全2件) [ツッコミを入れる]

_ めぐなさん [d.hatena.ne.jp/snow-bell/20080509/1210259842 上記のような情報源もある..]

_ ema [ありゃりゃ?エントリの最初でリンクを張っているのですが??]


2008年10月09日 [長年日記] この日を編集

_ [最近]11/30 TOEIC、くたばってました

風邪が引き金になって爆弾が爆発したのか、久しぶりに激しい頭痛とめまいにおそわれて、昨日まで横になり続けていました。といっても、大半寝ていて、小説1冊読んだりした程度。

その分たまったタスクを片付ける以前に、メールの処理に追われた気がします。生産性低い>emaが。

最近、がんばって英語を書こうとするのですが、語彙力のなさに嫌気がさしてきます。 でも、DUO 3.0は積まれていますorz。TOEIC公開テストも受けないとなぁ。

> NAIST 組

11/30(日) の TOEIC 公開テストを受けませんか?10人かそこらが集まると割引が効くみたいです。

お名前 : コメント :


2008年10月10日 [長年日記] この日を編集

_ [Ruby]ase2soc.rb: kuler で export できる ase 形式を、OpenOffice.org の色ファイル形式 soc へと変換するRubyスクリプト

kuler にサインインすると ASE という形式で、色情報をダウンロードできるのですが、OpenOfficeでそのまま読み込むことができず不便でした。そこで、ASE形式を解析して、OpenOfficeの色情報に変換するスクリプトをつくりました。

ASE形式全般には対応していませんが、kuler のはき出す形式ならたぶん大丈夫だと思います(RGBとCMYKにのみ対応)。

ase2soc.rb beachside\ shopping.ase

などとすると、beachside_shopping.soc という xml ファイルができますので、これを OpenOffice で読み込みます。

kuler の 5 色と、基本的な色をセットではき出します。

なお、手元のLinux上で、一つのASEファイルでしか動作確認していません。バグってたらごめんなさい。

References
Color and free software
Adobe Forums - Adobe Swatch Exchange (.ase) file format?
kuler
ISP imaging-developers - 色変換式集 - CMYK

_ [Ruby]ase2soc.rb の中身

メモ代わりに張っておきます。

とまぁ read で読んで unpack を繰り返しているだけですね。NKF と StringIO 便利だ。

#!/usr/bin/env ruby

require "nkf"

def error(msg)
  warn msg
  exit(1)
end

magic = ARGF.read(4)
error("invalid format") unless magic == "ASEF"

major = ARGF.read(2).unpack("n").first
minor = ARGF.read(2).unpack("n").first
error("invalid version") unless major == 1 && minor == 0

colors = []
name = ""

number_of_blocks = ARGF.read(4).unpack("N").first
number_of_blocks.times do |i|
  type   = ARGF.read(2).unpack("n").first
  length = ARGF.read(4).unpack("N").first
  case type
  # grounp start
  when 0xC001
    group_name_length = ARGF.read(2).unpack("n").first-1
    name = NKF.nkf( "-W16 -w", ARGF.read(group_name_length*2) )
    ARGF.read(2) # NULL を捨てる
    next

  # color entry
  when 0x0001
    name_length = ARGF.read(2).unpack("n").first
    name_utf16  = ARGF.read(name_length*2)
    color_space = ARGF.read(4)
    case color_space
    when "RGB\040"
      r = (ARGF.read(4).unpack("g").first * 255).round.to_s(16)
      g = (ARGF.read(4).unpack("g").first * 255).round.to_s(16)
      b = (ARGF.read(4).unpack("g").first * 255).round.to_s(16)
      color_type = ARGF.read(2).unpack("n").first
      colors << "##{r}#{g}#{b}"

    else
      error("unsupported format. this converter can understand rgb only.")

    end

  # grounp end
  when 0xC002
    ARGF.read(length) if length > 0
    next
  end
end


DEFAULT_COLORS = <<END
<draw:color draw:name="Black" draw:color="#000000"/>
<draw:color draw:name="Blue" draw:color="#000080"/>
<draw:color draw:name="Green" draw:color="#008000"/>
<draw:color draw:name="Blue緑" draw:color="#008080"/>
<draw:color draw:name="Red" draw:color="#800000"/>
<draw:color draw:name="Magenta" draw:color="#800080"/>
<draw:color draw:name="Brown" draw:color="#808000"/>
<draw:color draw:name="Gray 50%" draw:color="#808080"/>
<draw:color draw:name="Light gray" draw:color="#c0c0c0"/>
<draw:color draw:name="Light blue" draw:color="#0000ff"/>
<draw:color draw:name="Light green" draw:color="#00ff00"/>
<draw:color draw:name="Light blue緑" draw:color="#00ffff"/>
<draw:color draw:name="Light red" draw:color="#ff0000"/>
<draw:color draw:name="Light magenta" draw:color="#ff00ff"/>
<draw:color draw:name="Yellow" draw:color="#ffff00"/>
<draw:color draw:name="White" draw:color="#ffffff"/>
<draw:color draw:name="Gray 80%" draw:color="#333333"/>
<draw:color draw:name="Gray 70%" draw:color="#4c4c4c"/>
<draw:color draw:name="Gray 60%" draw:color="#666666"/>
<draw:color draw:name="Gray 40%" draw:color="#999999"/>
<draw:color draw:name="Gray 30%" draw:color="#b3b3b3"/>
<draw:color draw:name="Gray 20%" draw:color="#cccccc"/>
<draw:color draw:name="Gray 10%" draw:color="#e6e6e6"/>
<draw:color draw:name="Sun 1" draw:color="#333366"/>
<draw:color draw:name="Sun 2" draw:color="#666699"/>
<draw:color draw:name="Sun 3" draw:color="#9999cc"/>
<draw:color draw:name="Sun 4" draw:color="#ccccff"/>
<draw:color draw:name="Ubuntu orange" draw:color="#ff6309"/>
<draw:color draw:name="Ubuntu yellow" draw:color="#ffb515"/>
<draw:color draw:name="Ubuntu red" draw:color="#c90016"/>
<draw:color draw:name="Chart 1" draw:color="#004586"/>
<draw:color draw:name="Chart 2" draw:color="#ff420e"/>
<draw:color draw:name="Chart 3" draw:color="#ffd320"/>
<draw:color draw:name="Chart 4" draw:color="#579d1c"/>
<draw:color draw:name="Chart 5" draw:color="#7e0021"/>
<draw:color draw:name="Chart 6" draw:color="#83caff"/>
<draw:color draw:name="Chart 7" draw:color="#314004"/>
<draw:color draw:name="Chart 8" draw:color="#aecf00"/>
<draw:color draw:name="Chart 9" draw:color="#4b1f6f"/>
<draw:color draw:name="Chart 10" draw:color="#ff950e"/>
<draw:color draw:name="Chart 11" draw:color="#c5000b"/>
<draw:color draw:name="Chart 12" draw:color="#0084d1"/>
END


require "stringio"

StringIO.open( "", "w" ) do |xml|
  xml.puts %q[<?xml version="1.0" encoding="UTF-8"?>]
  xml.puts %q[<office:color-table xmlns:office="http://openoffice.org/2000/office"  xmlns:style="http://openoffice.org/2000/style" xmlns:text="http://openoffice.org/2000/text" xmlns:table="http://openoffice.org/2000/table" xmlns:draw="http://openoffice.org/2000/drawing" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="http://openoffice.org/2000/meta" xmlns:number="http://openoffice.org/2000/datastyle" xmlns:svg="http://www.w3.org/2000/svg" xmlns:chart="http://openoffice.org/2000/chart" xmlns:dr3d="http://openoffice.org/2000/dr3d" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="http://openoffice.org/2000/form" xmlns:script="http://openoffice.org/2000/script">]
  colors.each_with_index do |color,index|
    xml.puts %Q[<draw:color draw:name="#{name} #{index}" draw:color="#{color}" />]
  end
  xml.puts DEFAULT_COLORS
  xml.puts %q[</office:color-table>]

  File.open( "#{name.tr(" ","_")}.soc", "w" ) do |f|
    f.puts NKF.nkf( "-w", xml.string )
  end
end

_ [event]私信>masayashi:そろそろ場所を抑えておかないとやばげ

AR勉強会 開催予定日について[王様の箱庭]」の続きです。学内の発表の日程を考えたりで12/7に仮決定したのですが、勉強会は何時から何時ぐらいで考えてますか?肝心な情報を聞きそびれていました。日程は早めにfixしないと会場の確保が大変かもです。

Kansai.AR はベタですが悪くないですね。Google検索結果も少なくて identity 十分だと思います。

準備の過程を公開するのも面白いのではないかと一人で勝手に思って、このようなやりとり方法を使わせてもらっています。masayashiくんめんどくさかったら言ってください。

まずごめんなさい。今さっき12/7の産創館の空きをみたら埋まっていました。仮予約入れようと思って忘れてました。

ほかに、ネットワークの使える安い会場となると野田の「大阪NPOプラザ」ぐらいになります。ここは、ONP利用登録をすると会場を半額で利用できます(というかおそらく登録が前提です)。登録には団体規約や諸々の書類が必要です。登録できるかなぁ?空き状況も不明です。要調査。

後は、「リア・ライブ」さんの会議室ですが、9:00〜17:30までかりるなら有りかなぁというお値段です。空き状況は不明です。割引も期待できるでしょうし。割引なしだと一日20,000円(区民センターの3倍以上のお値段)は一人あたりの負担が大きめになる可能性がありますね。電話してきいてみます。

ネットワークなしなら、区民センターの会議室などが安いのですが、市内だとそれほど利便性の良くないところですらすでに空きが少なく、抑えておかないと厳しそう。年末だからでしょうか?。当日入金にしておけばキャンセルしても大丈夫だったはずです(逆に入金してしまうと一切返してもらえません)。「区民センター・区民ホール・会館 空室検索」はFirefoxだとカレンダーがきちんと出ないのですが、Firebug / Firebug Lite を利用して

document.frmlogon.year.value=2008;
document.frmlogon.month.value=12;
document.frmlogon.day.value=7;

のように、直接 hidden エレメントの値を指定してしまえばOKです。

どこか、大学か何かの場所をお借りできれば良いのですが、ツテがありません。NAISTは辺鄙すぎますしね。

うーん、普段、yukky さんに活躍していただいていることのありがたみを改めて感じておりますm(__)m

_ [game]東方地霊殿Normalクリアできた

一ヶ月近く前に委託開始と同時に買ったのですが、漸くクリア。後半は難しいというかいらいらするスペルカードも多かった感じ。なにより、道中がしんどい。

ラスト二つぐらいは初めてだったけど残機でごり押し。難しいけど激しく1upするので、やればクリアできるバランスという感じ。

それにしても、体調の良い日にやるに限りますね。安全重視で行って三億ぐらいでした。ちょっとExtraやってみます。

_ [event]私信>masayashi:会場の大きさについて

私信>ema:Kansai.AR(仮)会場と日時について」の続きです。

もうひとつ肝心なことが抜けていました。どれぐらいの人数を想定しましょうか?定員かつかつにすると狭いので何割か増しのスペースを確保することにはなります。ちょっと、「リア・ライブ」の営業時間内に電話し損ねました。

野田のONPプラザは一般利用だと倍額なんです。プロジェクターも安くないので、店員36人の部屋で「部屋代+プロジェクタ」で 5,600*2 + 3,000 = 14,200円〜 ぐらいかかりますね。リアライブさん同様、空きは調べないといけませんが。

ネットワークはありませんが、大阪の区民センターだと「東成会館」の定員45名の302号室が開いてます。地下鉄今里駅近くです。まぁ、きれいではないと思います。ここだと「部屋代+プロジェクタ」で 2,160 + 550 = 2,710円で借りれますね。

後、同様にネットワークはありませんが、豊中市の公民館もくそ安いのでありかもです。大阪市外ですが、「蛍池公民館」や「千里公民館」は梅田から阪急や地下鉄1本でいける場所にあるので、大阪からだと、市内と遜色ないです(奈良からだとすごく面倒ですけどね)。懇親会も梅田で開けますし。 今のところ、定員48人の「蛍池の第一講座室」と定員40名の「千里の第2講座室」に空きがあるようです。プロジェクタなどはちょっと不明です。部屋代は1000円強です。

お名前 : コメント :

本日のツッコミ(全2件) [ツッコミを入れる]

_ yukky [会場確保ならもし良かったらこれ読んで下さい d.hatena.ne.jp/snow-bell/20080509/12..]

_ ema [どうもです。http://emaame.com/20081007.html#p01 で参考にさせていただきました。 ..]


2008年10月12日 [長年日記] この日を編集

_ [最近]ウサビッチ

ウサビッチ」と「サンレッド」はニコニコ,GJだと思う今日この頃です.

体調崩して以来昼夜反転しているのを直すためにも,Kanasan.JS に行こうと思って実家に帰っていたのですが,いつの間にか寝てしまったらしく,起きたら終わっていた有様です.参加表明していたにもかかわらず,申し訳ないです.

寝違えたのか腰が痛い.

東成区民センター押さえに行ってみます.

_ [event] 私信>masayashi。東成会館押さえました

私信>ema:Re:会場の大きさについて [王様の箱庭]」への返信。


大きな地図で見る

メールでも送ったとおり、当初の予定とは異なり、205, 206 の二部屋となってしまいましたが、12/7 の 13:00〜17:00 を Kansai.AR 名義で利用申請してきました。まぁ、名前は適当に変えちゃても問題ないと思います。以前、城東区民センターの会議室を借りたときとは異なって、前払いだったのが予定外でしたが、設備等は当日で良いということなので、何も書いてきませんでした。マイクやプロジェクタは必要かな?

実地に行かないと予約できないのですが、予約しに行く前に部屋の状況とか確認しておくべきだったなぁと反省。後、中見せてもらえないか聞いてきたら良かった。結構年期入った建物でした。ネットワークはありません。

内容等は基本的にお任せします。

_ [最近] 凛として咲く花のごとく

気晴らしに解禁してみた。グレ21が限界でした。

相変わらず体調は低空飛行気味。それにしても寒くなった。

そろそろ、Gauche読書会の告知出さないとマジいなぁ。10/25 (土) 10:00〜13:30 です。

_ [Book] 「ドゥームズデイ・ブック

ドゥームズデイ・ブック(上) (ハヤカワ文庫 SF ウ 12-4) (ハヤカワ文庫SF)(コニー・ウィリス/松尾たいこ/大森 望) ドゥームズデイ・ブック(下) (ハヤカワ文庫 SF ウ 12-5)(コニー・ウィリス/松尾たいこ/大森 望)

ベッドにいる時間が長かったので大作消化。

予備知識なしに読んだのですが、ラスト150ページぐらい泣きっぱなしでした。小説ならではというか、上下併せて1000ページを超えるボリュームだからこそ許される、津波のような厚い悲しみに襲われて。

主人公の苦難を追体験するようで、読んでいてへとへとになりました。

もし、読まれる場合は、訳が刷新されているそうなので、文庫版で是非。「航路」も注文してしまいました。訳者があとがきでこちらを推していたので非常に楽しみ。(恐らく、世界観共有という意味での)続編的位置づけの「犬は勘定に入れません」も文庫化されないかなぁ。

2050年代と1300年代という舞台設定と、タイムトラベルという点から「SF」ということになっていますが、別にそれは異世界ファンタジーであってもそのまま通用する内容で、小難しい箇所は特に無く、誰にでも勧められる作品です。SFに抵抗がある人も是非。人間ドラマがメインの小説ですので。そもそも、20年も経っていない小説にもかかわらず、21世紀も未来と言うよりは、ところどころ過去にすら感じる設定です。事実は小説より奇なりか。

惜しまれるべきは、伏線をむやみに引っ張りすぎの嫌いがあること。コメディとしての繰り返しは良いのですが、回収方法の予想できた伏線がなかなか回収されないのは少々ストレスがたまります。冗長なきらいは否めません。

それにしても、今年読んだ中では一番面白かったかなぁ。同じく、ヒューゴー賞ネビュラ賞を受賞している「ニューロマンサー」や「エンダーのゲーム」も比較的最近読んだのですが、「ドゥームズデイ・ブック」が一番良かったように思います。「ハイペリオン」と「虎よ、虎よ!」は未読。

現代SFお奨め作品一覧。 - Something Orange」に感謝!中古で購入しているので、アフィリエイトに貢献できないのが申し訳ない感じではあります。

SFといえば、「グレッグ・イーガン [Wikipedia]」の本も Wikipedia によると今年出るはずなんだけどなー。原書を読むほどのパワーはないですし、ゆっくり待ってます。でれば、ただただしさんが購入されて気付くはずだし。

お名前 : コメント :


2008年10月14日 [長年日記] この日を編集

_ [Gauche][Event]「プログラミングGauche」読書会 #4 のお知らせ

10/26(土) 10:00-13:30 に「プログラミングGauche」読書会 #4 を開催します

受付ページ
http://cotocoto.jp/event/28780
チャット
http://www.lingr.com/room/Gauche_and_SICP_Kansai

申し込みの際、社会人か否かをお知らせ下さい。

また、午後には「SICP 勉強会 #4」が開催されます。こちらの勉強会は14:30 〜 18:00開催となります。Schemeな一日はいかがでしょうか?

;; yukky さん、前回に引き続き、会場の確保ありがとうございます。

前回の反省をふまえまして、進行を少し変更したいと考えております。

目的

プログラマに愛される処理系 Gauche と、優雅な朝を過ごしてみませんか。

日時

2008/10/26 (Sat) 10:00 〜 13:30

(9:30 〜 10:00 を会場設営時間とします)

続けて、「SICP 勉強会 #4」が 14:30 〜 18:00 に開催されます。

場所

大阪NPOプラザ 3F 会議室B(公式ページの詳細地図


大きな地図で見る

参加費(参加者によって変わります)

非社会人:300円〜  社会人:500円〜

対象となる参加者

Gauche について学ぶ意欲のある方。 ただし、なんらかのプログラミング経験がないと辛いかもしれません。

;; プログラミングGauche の前書きに「経験者向け」だと書かれています

内容

第9章「状態の管理」から開始します。第二部がそこで終了しますので、目標は第11章「評価モデル」までとします。ですが、無理にペースを速めることはいたしませんのでお気楽にご参加ください。

読書範囲を決め、皆で読むスタイルをとります。読書範囲を読破した人はその続きを読み進めてもらって結構です。進行のために、読書状態を「見える化」するシステムを用います。「読書中」→「演習中」→「完了」の状態遷移で、ポップを提示してください。

質問はいつでも可能ですが、内容はその時点の読書範囲に限定します。全員で共有できるように、全員に聞こえるように発言するか、チャットに書くようにしてください。

なお、演習問題を解くことができた方は、チャットにコードを貼り付けるようにお願いします。記録を残すとともに、復習・理解の手助けになるのではないでしょうか?また、今回からは、各章が終了した時間で休憩を挟み、演習について話ができればいいなと漠然と考えています。

指定範囲を全員が読破した段階で、次の読書範囲を決めこれを繰り返していきます。読むのが遅いけど、どうしても演習問題までこなしたい!という方には、予習をしていただくと良いかもしれません。

持ち物

プログラミングGauche

必須です。各自、入手してください。

パソコン

Gauche の処理系を動かせると便利だと思います。チャットによる情報交換なども可能です。

延長コード

お互いに助け合いでお願いします。

その他

飲み物など。

なお、無線LANルータでネット環境を準備予定です。LANケーブルなどが必要な方はお持ちください。

飲食について

飲食は可能ですので、好きなものを持ち込んでいただいても構いません。 少量のお菓子を用意できればと考えております。

ただし、ゴミは持ち帰りになりますので、ご協力お願いいたします。

ネットワーク環境について

SSID/WEPキーは当日告知します。

話題は積極的にチャットで共有しましょう。コードのコピペなどはもちろん、まとめになりますし、復習にとても役に立ちます。議事録のように書いてもらってもかまいません。

_ [最近]TOEIC

思い切りポスターを見間違っていたので、締め切りの関係で団体申し込みできるのは1月分〜でした。常識的に考えて早いだろう>俺。

というわけで、直前模試大会は開催する予定ですが、11月分は普通に個人で申し込みをお願いしますm(__)m。今週、16日木曜日 までの受付なのでお早めに。

_ [最近]SDカードRAID

SDカードでRAIDをつくって、持ち運びハードディスクにできないか?みたいな冗談を昨日言っていました。縦に4枚収納できてRAID6とかどうでしょう?。RAID6で4枚構成だと、実容量は半分になるみたいなので、8GB×4だと「2500円×4+ハード代」で16GBな高信頼ストレージの完成。持ち運びストレージに重要なのは、サイズと信頼性ですよね。SDカードの交換なら楽ちんですし。

まぁ、RAID6は冗談としても二重化できるものとか出ないですかねぇ。USBメモリでも良いのですが、消えちゃいそうで不安です。ハード部分が壊れちゃってもSDカードリーダさえあれば読めるわけだし、こっちの方が現実的かな。丸ごとコピーだけならハード的にも難しくはないんじゃないかと素人想像。SDカードのリーダライタってきっとそんなに複雑なハードウェアじゃないよね?難しいのかなー。少なくとも僕には作れそうにないですが。

PhotoFast SDHC RAID 2.5インチSATA【SDHC6枚挿し対応】 CR-9000 SDカードでRAID0をくんで、2.5inch HDD 代わりにするっていう商品「 PhotoFast SDHC RAID」は売っているんですね。

お名前 : コメント :


2008年10月17日 [長年日記] この日を編集

_ [最近]年末までの予定メモ

10/19-21
福岡で発表
10/25
Gauche #4, SICP #4
10/29
学内発表練習
11/7
KOF2008?
11/8
KOF2008Ruby会議関西 LT5分 → aoyama
11/12
学内発表
11/22
Gauche #5, SICP #5
11/30
TOEIC公開テスト
12/7
Kansai.AR(仮)
12/13
Gauche #6, SICP #6
12/19-22
研究室スキー旅行(信州).1泊4日,バス旅行w

11月頭が死亡フラグです.これに加えて,いつも通り+αで締め切りが増えるのでしょうけど. Ruby会議関西はお手柔らかにお願いします.こんなネタで良いのかなぁと思いつつ.

テトリス忘年会をどこにねじ込むかも問題. 12/6 と 12/14 の二択でメールを送ってみればいいかな.

年末に関東に遊びに行きたかったけど,その余裕がなさそうだ. スキー旅行に行かないという選択肢がなきにしもあらず.

お名前 : コメント :


2008年10月18日 [長年日記] この日を編集

_ [最近]ひたすらお絵かき

延々とプレゼン資料の手直し中です.今回は,3パターンほど,没にした一連の図解があります. ようやく,少しはわかりやすい図になったのではないかと思っているので,今晩,発表練習させてもらおう.

アニメーションを多用することになったので,ひたすら絵を直して,動きをつけての繰り返し.後,何回か発表練習しないとなぁ.

とりあえず,整骨院いって,服買いにいかないと.

お名前 : コメント :


2008年10月19日 [長年日記] この日を編集

_ [最近]日月火と、福岡に行ってきます

今から荷造りして、洗濯物保して、5時におき・・・ます!

お名前 : コメント :


2008年10月22日 [長年日記] この日を編集

_ [Event][Gauche]「プログラミングGauche」読書会#4は今週土曜日です

先日の告知の日付にミスがありました。正しくは10月25日の土曜日となります。

10/25(土)10:00-13:30に「プログラミングGauche」読書会 #4 を開催します。 皆様のご参加お待ちしております >_<。 (予習していただくことが望ましいのですが)途中からの参加も大歓迎です。

受付ページ
http://cotocoto.jp/event/28780
詳細案内
「プログラミングGauche」読書会 #4 のお知らせ
チャット
http://www.lingr.com/room/Gauche_and_SICP_Kansai

申し込みの際、社会人か否かをお知らせ下さい。

日時

2008/10/25 (Sat) 10:00 〜 13:30

場所

大阪NPOプラザ 3F 会議室B(詳細地図


大きな地図で見る

内容

第9章「状態の管理」から開始します。第二部がそこで終了しますので、目標は第11章「評価モデル」までとします。ですが、無理にペースを速めることはいたしませんのでお気楽にご参加ください。

_ [眼鏡][irodori]「眼鏡」第一話 2/5 をアップ!

【自主制作アニメ】 眼鏡 第1話(2/5)

2008-10-20
再生: 17,240
コメント: 122
マイリスト: 43

【自主制作アニメ】 眼鏡 第1話(2/5) (00:42)
アニメーションを自主制作しておりますirodoriです。 また短いですが第一話(2/5)出来ました。これからもコツコツ月イチで 出来たてを公開していければと思っております。ほそながーくよろしくお願いいたします。 (11/1:サイト復旧しました、コメントどうもありがとうございます) sm4687677(1/5)< >(3/5)sm5303430mylist/8447028 www.iro-dori.jp2話も毎月20日更新中!一覧>sm5899034

えぇ… メガネリオンかな wwww いますぐ通報しよう うぽつー 伝説の始り 毎月20にメガネ買い換 おまわりさーん!!!!! 気になる 変態www ガラス割らなかった?w うわぁ・・・ まさに継続は力なり かわいい おまわりさんこいつで

「眼鏡」の続き 30 秒がアップされました。短いのですが、良ければご覧下さい。

みんな本業と並行しているとはいえ、一ヶ月で30秒。ウサビッチの新エピソードまだー?なんて言えなくなりました。

なお、毎月20日に更新されていく予定です。

お名前 : コメント :


2008年10月25日 [長年日記] この日を編集

_ [最近]Gauche, SICP メモ

Gauche non copy delete-1

ほんとに効率いいのか?

(define (delete-1 elt lis . options)
  (let-optionals* options ((cmp-fn equal?))
    (define (loop lis)
      (cond [(null? lis) lis]
            [(cmp-fn elt (car lis)) (cdr lis)]
            [else (let ((memo (loop (cdr lis))))
              (if (eq? (cdr lis) memo) lis (cons (car lis) memo)))]))
  (loop lis)))

(use gauche.test)
(let ((data (list 1 2 3 4 5)))
  (test* "non-copy delete-1" data (delete-1 6 data) eq?))

SICP 1.29

素直に動かすと,途中計算が有理数のため n = 10 程度で (simpson cube 0 1 10) が 1/4 を返す.

(define (sum term a next b)
  (if (> a b)
      0
      (+ (term a)
         (sum term (next a) next b))))

(define (cube x) (* x x x))
(define (inc n) (+ n 1))
(define (inc2 n) (+ n 2))

(define (simpson term a b n)
  (let ((h (/ (- b a) n)))
    (define (y k) (term (+ a (* k h))))
    (* h 1/3 (+ (y 0)
                (* 4 (sum y 1 inc2 (- n 1)))
                (* 2 (sum y 2 inc2 (- n 1)))
                (y n)))))

1.30

(> a b) のときの値に嵌った

(define (sum term a next b)
  (define (iter a result)
    (if (> a b)
        result
        (iter (next a) (+ result (term a)))))
  (iter a 0))

1.31

Wikipedia で式の変形をカンニング.分母に 1 * を補っている式.有理数でやると 1000 でようやく 3.147 とか.

(define (square x) (* x x))

(define (pi/4 n)
  (define (f i)
    (let ((m (* 2 i)))
      (/ (square m) (square (- m 1)))))
  (/ (* 2
        (product f 2 inc (+ n 1)))
     (- (* 2 n) 1)))

(define (pi n)
  (* 4 (exact->inexact (pi/4 n))))

1.32

(define (sum     term a next b) (accumulate + 0 term a next b))
(define (product term a next b) (accumulate * 1 term a next b))

(define (accumulate combiner null-value term a next b)
  (define (iter a result)
    (if (> a b)
        result
        (iter (next a) (combiner result (term a)))))
  (iter a null-value))

1.33

素人くさいSICP読書会#12レポートから prime? をいただきました.

(define (filtered-accumulate combiner null-value filter term a next b)
  (define (iter a result)
    (if (> a b)
        result
        (if (filter a)
            (iter (next a) (combiner result (term a)))
            (iter (next a) result))))
  (iter a null-value))

(define (f-33-1 a b) (filtered-accumulate + 0 prime? square a inc b))

お名前 : コメント :


2008年10月26日 [長年日記] この日を編集

_ [最近]努力

努力したって,せめてこれぐらいはやってから言わないとなぁ.と思った. 無理だという前に一桁は多くやらないと論外だろうなぁ.それができないから,ついつい無理だと言いたくなるのだけれど.もちろん,一般論として.

http://coolier.sytes.net:8080/th_up3/file/th3_6322.jpg

とりあえず,スライドのストーリーがようやく形になりそうに.水曜日に練習あるんだが・・・

「プログラミングGauche」読書会#4 のまとめは明日以降に・・・

気力がnullです.いかんなぁ.

References
無限旋律

お名前 : コメント :


2008年10月28日 [長年日記] この日を編集

_ [Event][Kansai.AR]Kansai.AR #01募集開始

詳細は「Kansai.AR 参加者募集を開始しました」および「Kansai.AR #01」を参照ください.

お名前 : コメント :


2008年10月29日 [長年日記] この日を編集

_ [Gauche]SICP 1.29の説明

シンプソンの公式」によって,x^3 を 0〜1 の区間で数値積分するプログラムを作れというもの.一章の練習問題ってのが恐ろしい.実装は単純だし,行数は短いのだけど,Cだと大騒ぎか.「シンプソンの公式」がなにかはWikipediaを読んでもらうとして,

0 が 0 の時のエラー処理はどうなんだ?とかはさておき.

という数式をプログラム化すればいい.まずは,「Σ」に相当する関数 sum.

(define (sum term a next b)
  (if (> a b)
      0
      (+ (term a)
         (sum term (next a) next b))))

これは,本文中から得られる.term, next に関数を渡せるのが Scheme の良いところ.

(cube 0) + (cube 0.2) + (cube 0.4) + (cube 0.6) + (cube 0.8) + (cube 1.0) + 0

みたいに,演算される様を想像できればOK.というか,Σを思い出せればOK.

後は,Wikipedia の数式の定義通りに実装している.y, h の定義は,Wikipedia の本文にある(Wikipediaではy_kではなくx_i).なお let は,その関数スコープでのみ参照できる変数を作る(実は,この演習問題時点では let が使えないらしいのですがw)

なお,非Gaucheユーザは1/3 は 1÷3 ではなく,1/3 という有理数リテラルであることに注意.

() のネスト具合がわかりにくいのは,インデントで判断するしかない.正直,まともなエディタの補助がないとかけない.

(define (cube x) (* x x x))

(define (simpson term a b n)
  (let ((h (/ (- b a) n)))
    (define (y k) (term (+ a (* k h))))
    (define (inc2 n) (+ n 2))
    (* h 1/3 (+ (y 0)
                (* 4 (sum y 1 inc2 (- n 1)))
                (* 2 (sum y 2 inc2 (- n 1)))
                (y n)))))

一番下の部分が,数式ほぼそのまま.Schemeすげえ!と思う瞬間.Simpson 自体が再帰ではないあたりが面白いというか,スマートというか.ただ,()の数もすごいw

C はおろか,Ruby ではここまでスマートにかけない.結局関数がファーストクラスオブジェクトじゃないからなぁ.同じコンセプトを実装できはするんだけど.

Ruby でまねてみると(next は succ に置き換えている.というのも,識別子のため,使用できなかった).n=10ではなぜか精度が出ず,n=1000で,再帰が深すぎると怒られた.読み取りやすくはあるかな.proc の呼び出しが [] なのがきもいなー.Gaucheの有理数を尊重してRational使うと

def sum(term, a, succ, b)
  if (a > b)
    0
  else
    term[a] + sum(term, succ[a], succ, b)
  end
end

cube = proc { |x| x*x*x }

def simpson(term, a, b, n)
  h = Rational((b - a), n)
  y = proc { |k| a + k * h }
  inc2 = proc { |n| n + 2 }
  h/3 * (y[0] +
         4 * sum(y, 1, inc2, n-1) +
         2 * sum(y, 2, inc2, n-1) +
         y[n])
end

puts simpson(cube, 0, 1, 100)

JavaScriptで似せると,以下の通り.return を素で忘れます.有理数がないので,普通に小数点演算.ちなみに,JavaScriptでは,1/2 は 0.5 になる.

function sum(term, a, next, b) {
  if (a > b) {
    return 0;
  } else {
    return term(a) + sum(term, next(a), next, b);
  }
}

var cube = function (x) { return x*x*x; };

function simpson(term, a, b, n) {
  var h = (b - a) / n;
  var y = function(k) { return a + k * h; };
  var inc2 = function(n) { return n + 2; };

  return h / 3 * (y(0) +
                  4 * sum(y, 1, inc2, n-1) +
                  2 * sum(y, 2, inc2, n-1) +
                  y(n));
}

alert(simpson(cube, 0, 1, 100));

sum は,Ruby だと後置ifの例外処理と通常処理

def sum(term, a, next, b)
  return 0 if (a > b)
  return term[a] + sum(term, next[a], next, b)
end

JavaScriptだと 三項演算子使った方が,好きかなぁとか思ったり.

function sum(term, a, next, b) {
  return (a > b) ? 0
                 : term(a) + sum(term, next(a), next, b);
}

やっぱり,シンプルにかけるかどうかは考え方次第だなー.

以上,気分転換.現実逃避.

お名前 : コメント :


2008年10月30日 [長年日記] この日を編集

_ [最近]くしゃみ

こないだ,駅伝練習で全力で走って以来くしゃみが止まりません.

というわけで,駅伝で走ってきます.学内イベントなので1km強ですが.

お名前 : コメント :


2008年10月31日 [長年日記] この日を編集

_ [最近]週末が消えた

タスクが増えました.

週末はまったりLTの準備しつつスライド作ろうと思ってたんですけどw

普段入らないサーバで作業しようとしたら,vim が古くて UTF-8 解釈できなくて,vim 入れてます.慣れた環境じゃないと作業できないのもどうかと思うのですが.

ついでに,Rubyやらなんやらもホームに入れておくことにします.

お名前 : コメント :