ura87 no omote
メインのブログ(d:id:kiwofusi)は日本語の読めるひとみんなに読んでもらいたいので、作業メモやソースコードなどはこちらに書きます。
アンディー・メンテ作のゲームその炭鉱の名は。のバージョンアップ作業を数秒だけ節約します。
このスクリプトは「その炭鉱の名は。」のver103へのバージョンアップに対応するよう2010年06月01日に更新しました(ver096→ver103で動作確認)。データファイルmy.datを引き継ぐ処理をおこないます。verup方法が変更されたときにこのスクリプトを実行するとデータが失われるおそれがありますのでご注意ください。
最新版green.zipをDL&解凍してから使います。
green-verup.vbs(右クリック→保存)
↑をダウンロードして↓のように設定してダブルクリックして実行します。
vbsファイルをメモ帳などで開き、環境に応じてmain_folder(いつも使っている「green.exe」のフォルダ)とnew_folder(最新版green.zipから解凍した「green.exe」の親フォルダ)を書き換えてご利用ください。
初期設定
main_folder = "." new_folder = "..\green\green"
は、

のようなフォルダ構成に対応しています。「.」はスクリプトのあるフォルダのことです。解凍ソフトによっては new_folder = ".\green" かもしれません。
絶対パスでも指定可能です。たとえば以下のように書きます。
main_folder = "C:\Program Files\アンディー・メンテ\その炭鉱の名は。" new_folder = "C:\Documents and Settings\Administrator\デスクトップ\green"
ファイルやフォルダの削除に関わる記述はコメントアウトしてあります。パスを正しく設定したうえで、必要であれば行頭の「'」を削除してご利用ください。
アンディー・メンテ「電子海のはなし」をverupするスクリプト - omote87 - ハチロク世代
'フォルダの設定
main_folder = "." 'いつも使っている「green.exe」のフォルダ
new_folder = "..\green\green" '最新版green.zipを解凍した「sea.exe」の親フォルダ
'ファイルシステム
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
'設定ファイルをmainフォルダ直下に移す
fso.CopyFile main_folder + "\dat\my.dat", main_folder + "\my.dat", True
'最新版のファイルをmainフォルダにコピーする
fso.CopyFolder new_folder, main_folder, True
'設定ファイルをdatフォルダに戻す
fso.CopyFile main_folder + "\my.dat", main_folder + "\dat\my.dat", True
fso.DeleteFile main_folder + "\my.dat"
'verup用フォルダおよびファイルを削除する
'fso.DeleteFolder "..\green"
'fso.DeleteFile "..\green.zip"
'完了報告
msgbox "完了"
遅刻するので行かなかった。ばかばか。
「パターン・ランゲージ」における「質」を検証することに、この授業で扱う手法が使えるのではないかと思った。いけそうならやってみたい。
システムとネットワークについていくつかの観点から学ぶ。
前半は「分散的・水平的ネットワークによる情報社会デザイン方法としてのガバナンスについて、講義とグループワークを通じて理解を深める」。小渕内閣でガバナンス的な考え方、つまりユーザ・市民によって社会・システムをつくっていこうというアイデアが出た。不明確ではあるが鳩山内閣でも「新しい公共」がテーマになっている。
参考文献として Mark Bevir "What is Governance?" 、『インターネット・ガバナンス』、『公共セクターの新しいかたち』、『公私領域のガバナンス』などが紹介された。
グループワークはテーマを議論してレジュメを作成し発表するというもの。今回は「IT化と社会変化」というテーマで練習し、2グループが発表した。1グループは小学校におけるコミュニケーションを想定して情報源の多様化を論じた。もう1グループは家族のコミュニケーションの変化を論じた。家族が多様な情報を共有することができるためコミュニケーションが深まるという主張だった。
自分のグループでも家族をテーマにした。ケータイなどの普及によって家族の絆(だんらんの時間)は弱まっているのが一般論だと思うが、親とメールする学生などの話を聞くと、そうでもないのではないか、と思ってこのテーマにした。自分の親は情報機器に疎いためそういうことはないが。結論として、離れて暮らす血縁者同士(これを「家族」とイメージするのは間違いか?)の場合、ITは絆を深めるツールとして有効だと思う。発表グループとは対比的な点もあり、また場所の離れた血縁者同士の絆という異なった観点でも議論した。
授業時間中に作業できるので集中できる。有意義な議論をしたい。
質問を考えながら発表を聞くのは難しい。すぐにおもしろい質問をできる能力も身につけたい。
議題を設定するということの難しさは、やるたびに実感する。なぜそれを議論するのか、何がおもしろいのか、どのように複雑なのか、どういう方向にもっていきたいのか、考えて、班員みんなが興味をもてる議題設定をこころがけたい。直観に頼りすぎず、おもしろい議題設定および質問をする方法を自分なりに身につけたい。
自分のグループは「IT化によって家族の絆が深まったか」を議論した。これを考えたきっかけは、親とメールするという若者の存在だ。自分にとってはなじみがないので、家族における情報機器の活用について、いろんな若者の意見を知りたい。実家暮らしと一人暮らしで傾向が異なったりもするのだろうか。
まずはガバナンスということだが、いくつかの観点で構成される興味深い授業だと思う。
この授業の目標は、自然言語処理・理解の基礎理論(言語モデル)と基本技術(形態素・構文・意味の解析)の習得である。コーパス・統計ベースの最新の技術、機械翻訳や音声言語処理などの応用にも触れる。
自然言語処理の歴史は以下のようになっている。
1940年代末期から1960年代は、自然言語処理の黎明期である。このとき機械翻訳 Machine Translation のアイデア(Weaver 1947)や雑誌(1954)・国際会議(1958)が設立された。ALPAC報告(1966)で、コスト的に人間に変わりうる翻訳システムを実現することの困難さ(構文的・意味的あいまい性)が指摘され、基礎研究が重視されるようになった。
1960年代末期から1970年代は、人工知能的アプローチが流行した。フレーム、意味ネットワーク、概念依存理論 Conceptual dependency (Schank)、サブランゲージなどの考え方を用いて実用的な機械翻訳システムの可能性が示された。
1970年代末期から1980年代は、多くの機械翻訳システムが製品化された。また言語学の理論や辞書の役割が注目された。WordNetはいまでも標準的な意味辞書として用いられる。
1990年代からは、コーパス、機械学習、統計などのアプローチを用いた経験主義に移行した。従来の言語学専門家の知識に基づく純理論主義はコストが大きく、またコンピュータの性能向上や電子データの普及が背景にあった。現在では純理論主義と経験主義の考え方を組み合わせて研究されることが多い。
自然言語処理のひとたちもいろいろ苦労しているんだなあと思った。個人的にはAIアプローチのほうが哲学的な感じで好きなので、最先端の研究が二つの考え方で成り立っているとわかって興味が出た。受講目的としては、教養として自然言語処理の基礎を理解しておきたい。
この授業では、心理学、脳科学、コンピュータ科学の三つの立場から認知科学を扱う。認知科学とは人間の「知」の仕組みを解明する学問である。認知科学は、この伝統的なテーマに自然科学の方法論でアプローチする。
認知心理学、脳科学、コンピュータ科学は共通点も多く、互いに刺激し合って発展してきた。コンピュータ科学ではノイマン型コンピュータによってハードとソフトが分離した(Neumann 1946)(従来の電算機は計算内容が配線に依存しており汎用性がなかった)。脳科学では「心」を脳や神経というハードを動かす「ソフト」であると理解された。心理学では短期記憶研究(1959)を端に、人間の知に関する研究が進んだ。
以下、認知心理学について。
認知とは「知るというこころの働き」および「獲得された知識」である。哲学は知の体系化を目指すが、認知心理学では知をどうやって手に入れるかが問題である。
心理学とは「心」を対象とする「科学」である。心の調べ方には、本人に聞く方法と、外から見る方法(実験)の二つしかない。本人の自覚や言語化には限界があることから、現在では実験、つまり環境条件を変化させて行動がどのように変化するかを観察する方法が主流である。
計算内容が配線に依存する古いコンピュータと対比することで、ハードとソフトが分離すること、つまりコンピュータが汎用的になることの価値をはじめて理解した気がする。
脳科学が心をソフトとしていることは、よくわからなかった。ということは、ニューロコンピュータみたいに人間のハードを模したコンピュータは意味がないということか。もちろん人間に相当するソフトも含めて実装できればかまわないけれど。逆にいえば、ノイマン型コンピュータのソフトを工夫することで人間の知能に匹敵できる、のか。ぼんやりと、人間は「脳がすごい」、「神経がすごい」というイメージだったけれど、それだけではないことが示唆されて興味が出た。ソフトとしての心、については今後の授業で考えたい。
情報学における認知科学の位置づけについても考えたい。
以下は筆者の受けた授業内容に基づく概要と感想です。理解や表現の誤りはご了承ください。
この授業はソフトウェア開発のなかでとくに「検証」を扱う。検証に関する諸概念、諸技術を理解し、説明できるようになることが主な目的である。
検証とはソフトウェアの「正しさ」を確認することである。ひとつは verification 正当性の確認、つまりソフトウェアを正しくつくっているか、プログラムが仕様に合っているか、の確認である。もうひとつは validation 妥当性の確認、つまり正しいソフトウェアであるか、仕様やプログラムが顧客の要求を満たすか、の確認である。したがって検証はソフトウェア開発のあらゆるプロセスにおいてプログラムだけでなく文書に対してもおこなう必要がある。
検証の理想は欠陥ゼロのソフトウェアをつくることだが、現実には要求を仕様化する難しさやコスト・規模の問題があり、顧客の要求を満たすことを第一に考えるべきである。
プログラムの検証には、実際に動作させる動的検証、ソースコードに対しておこなう静的検証がある。また仕様に対してはレビュー(インスペクション、ウォークスルー)をおこなう。
仕様を形式言語で記述することによって仕様が明確になり検証を自動化できるが学習コストが大きい。数学的な検証方法としてほかにモデル検査検証がある。
検証というのは趣味でプログラミングしているときはてきとうになりがちなので、授業でやってみるのもよいかなあと思う。
以下、授業課題の感想文。
検証にverificationとvalidationのふたつの概念があり、仕様だけでなく要求に基づく検証も必要であることを理解した。要求が「正しいソフトウェア」の基準になることから、上流工程における要求の議論や要件定義の重要性がわかった。このような観点をもったことがあまりなかったのでこの授業を機に身につけたい。またアサーションや形式手法については聞き慣れないこともありよくわからなかった。これらも今後の授業で理解したい。
現実には、要求やコストに応じて品質を妥協させることが必要なのだろう。しかしあるベンチャー企業のエンジニアは、顧客の要求とは異なるサービスを内密に平行して開発し、顧客をおどろかせた(実際によろこんでもらえた)というエピソードを語っていた。これは極端な事例ではあるが、顧客の要求を上回るものをつくろうというやる気もエンジニアにとっては大事だと思う。しかし根性論でデスマーチを肯定されても困るので、なかなか微妙な問題だ。「顧客の期待が低ければ低品質でもかまわない」というのは冷静には理解できるが、なんだか釈然としない気もした。
以下は筆者の受けた授業内容に基づく概要と感想です。理解や表現の誤りはご了承ください。
この授業は情報システムの評価についてICTリテラシーの観点からアプローチする。システムの評価の仕方ではなく、システム利用者のソフト面におけるリテラシーを問題とする。
ICTリテラシーの定義には Cisco, Intel, Microsoft による 21st Century Skills http://www.atc21s.org/home/ を用いる。liberalな定義である。内容を分析したみたが、従来の考え方とは劇的に違う。将来、知性の基準が大きく変わるだろう。OECDも問題解決能力の一部としてこのICTリテラシーを取り入れた。日本では注目されていない。
授業は 21st Century Skills のペーパーの読解・発表とディスカッションを受講人数に合わせたかたちでおこなう。
情報システムの評価とは直結しない内容におどろいたが、内容は興味深い。ペーパーは、日本でいうところの「新しい学力観」を本気で議論して文書化したようなものだと思う。こういう考え方が日本になじむのは何十年後かわからないが、これからどういうふうに成長を志していけばよいかを考えるうえで参考になると思う。教育や教育学は「いかにひとに教えるか」の分野だと思っていたのだけれど、人間の知性はいかにあるべきか、という本質的な議論が背景にあることに気づき、興味が出た。
受講目的としては、
というところ。あとは英語リテラシーとディスカッション能力の向上。情報システムの評価との関係についてはのちのち考えたい。
英語もディスカッションも嫌いだけれど、内容に興味のある授業を受けないなんて学生である意味がない、と思い、受講を決めた。
アンディー・メンテ作のゲーム電子海のはなしのバージョンアップ作業を数秒だけ節約します。
このスクリプトは「電子海のはなし」ver095へのバージョンアップに対応するよう2010年03月05日に更新しました。データファイルmy_kaizu.datとmy.datを引き継ぐ処理をおこないます。verup方法が変更されたときにこのスクリプトを実行するとデータが失われるおそれがありますのでご注意ください。
最新版sea.zipを解凍してから使います。
elecsea-verup.vbs(右クリック→保存)
↑をダウンロードして↓のように設定してダブルクリックして実行します。
vbsファイルをメモ帳などで開き、環境に応じてmain_folder(いつも使っている「sea.exe」の親フォルダ)とnew_folder(最新版sea.zipから解凍した「sea.exe」の親フォルダ)を書き換えてご利用ください。
初期設定
main_folder = ".\電子海のはなし" new_folder = ".\sea\sea"
は

のようなフォルダ構成に対応しています。「.\」はスクリプトのあるフォルダのことです。
絶対パスでも指定可能です。たとえば以下のように書きます。
main_folder = "C:\Program Files\アンディー・メンテ\電子海のはなし" new_folder = "C:\Documents and Settings\Administrator\デスクトップ\sea"
ファイルやフォルダの削除に関わる記述はコメントアウトしてあります。パスを正しく設定したうえで、必要であれば行頭の「'」を削除してご利用ください。
Windows Script Host Laboratory Lesson13
のぶさんのIT界で生きる道(ブログ) 【VBScript】 ファイル操作
'フォルダの設定
main_folder = ".\電子海のはなし" 'いつも使っている「sea.exe」の親フォルダ
new_folder = ".\sea\sea" '最新版sea.zipから解凍した「sea.exe」の親フォルダ
'ファイルシステム
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
'設定ファイルをmainフォルダ直下に移す
fso.CopyFile main_folder + "\dat\my_kaizu.dat", main_folder + "\my_kaizu.dat", True
fso.CopyFile main_folder + "\dat\my.dat", main_folder + "\my.dat", True
'最新版のファイルをmainフォルダにコピーする
fso.CopyFolder new_folder, main_folder, True
'設定ファイルをdatフォルダに戻す
fso.CopyFile main_folder + "\my_kaizu.dat", main_folder + "\dat\my_kaizu.dat", True
fso.CopyFile main_folder + "\my.dat", main_folder + "\dat\my.dat", True
'fso.DeleteFile main_folder + "\my_kaizu.dat"
'fso.DeleteFile main_folder + "\my.dat"
'verup用フォルダおよびファイルを削除する
'fso.DeleteFolder ".\sea"
'fso.DeleteFile ".\sea.zip"
'完了報告
msgbox "完了"
Roxie2011/05/07 11:17That's raelly thinking out of the box. Thanks!
そういえばログをまとめていなかったので、いまさら。
ソフトウェアエンジニアリングシンポジウム2009 、2009年9月7~9日、東京女子大学にて。
パターンとアーキテクチャのワークショップに参加しました。パターンやアレグザンダーに関する知識が当たり前に飛び交うのが刺激的でした。そして慶應大の学習パターンがすごすぎる。成果物も立派なのだけれど、学生たちが協力してこんなプロジェクトを実現できるのがすごい。お話を聞いて、パターンをつくるプロセスが大切であることに気づきました。
パネルディスカッションをテキスト中継しました→9月8日 Twitter log
アスペクト指向に関する講義、およびパネルディスカッションをテキスト中継しました→9月9日 Twitter log
ソフトウェア工学が社会やプロジェクトという領域に踏み込みつつあること、またその必要性がうかがえる議論ですね。
@kyoheifさんのログも参考になります。
だいたい全ログ→#ses2009 ログ出力 - ハッシュタグクラウド
きをふしさんは受寄りのリバ です!
● 受寄りのリバの貴方は
★性格★
楽天家のロマンチストです。
見かけが温和でおっとりした感じなのでのんびり屋に見られがちですが実はかなりの合理主義者。
何事も手際よくテキパキこなす、しっかり者です。
正義感も強いので間違ったことや理不尽なことは黙って見過ごせません。
何事にも真剣に取り組む情熱や熱意も兼ね備えてマス。
直感力にも優れてるので、芸術分野などで才能を遺憾なく発揮します。
★夜の性格★
攻も受もできる器用な人です。
ただ、面倒くさがりな部分があるので普段は受け側に回ってます。相手が望めば攻めるコトもしますが自分が楽な体位ばかりを選びます。
基本的にはそれほど性的欲求がないタイプです。
ときにはヤる気をだしてみましょう。
★相性★
無邪気攻・攻寄リバ
リバ=リバーシブル。攻・受どちらもできるという意味。
● きをふしさんの開運温泉は、伊香保温泉です(入浴剤も可)。
WindowsではRubyバインディングがうまくインストールできないみたいです。そこでmecab.rbを使わせていただきました。
参考:Windows + MeCab + Ruby: 猫背ミジンコ、MeCabのRubyバインディング (マルッと!)
require 'mecab.rb' require 'kconv' str = "庭には二羽鶏がいる貴社の記者が汽車で帰社した。" str = ARGV[1] if ARGV[1] != nil $mecab = Mecab.new("")# surfaceのみ => "-O wakati" puts "version: " + $mecab.version() def sparse_tostr(str) begin $mecab.sparse_tostr(str.tosjis).split(/\n/).each {|word| puts word } rescue Exception => e $stderr.puts e, e.backtrace end end def sparse_tonode(str) begin node_set = [] node = $mecab.sparse_tonode(str.tosjis).next # 一個目のノード while node node_set << [node.surface, node.pos.split(/,/)[0]] # 単語&品詞 node = node.next end return node_set rescue Exception => e $stderr.puts e, e.backtrace end end def extract_noum(str) # 名詞を抜き出す begin node_set = [] node = $mecab.sparse_tonode(str.tosjis).next # 一個目のノード while node pos = node.pos.split(/,/)[0] node_set << node.surface if /名詞/.match(pos.toutf8) node = node.next end return node_set rescue Exception => e $stderr.puts e, e.backtrace end end # メイン if ARGV[0] == "node" sparse_tonode(str).each {|node| # ノードで puts node[0] + "\t" + node[1] } elsif ARGV[0] == "noum" extract_noum(str).each {|word| # 名詞を出す print word + ", " } else sparse_tostr(str) # ふつうに結果を出す end
D:\ruby\src\mecab-sample>ruby mecab-sample2.rb
version: 0.98pre1
庭 名詞,一般,*,*,*,*,庭,ニワ,ニワ
に 助詞,格助詞,一般,*,*,*,に,ニ,ニ
は 助詞,係助詞,*,*,*,*,は,ハ,ワ
二 名詞,数,*,*,*,*,二,ニ,ニ
羽 名詞,接尾,助数詞,*,*,*,羽,ワ,ワ
鶏 名詞,一般,*,*,*,*,鶏,ニワトリ,ニワトリ
が 助詞,格助詞,一般,*,*,*,が,ガ,ガ
いる 動詞,自立,*,*,一段,基本形,いる,イル,イル
貴社 名詞,一般,*,*,*,*,貴社,キシャ,キシャ
の 助詞,連体化,*,*,*,*,の,ノ,ノ
記者 名詞,一般,*,*,*,*,記者,キシャ,キシャ
が 助詞,格助詞,一般,*,*,*,が,ガ,ガ
汽車 名詞,一般,*,*,*,*,汽車,キシャ,キシャ
で 助詞,格助詞,一般,*,*,*,で,デ,デ
帰社 名詞,サ変接続,*,*,*,*,帰社,キシャ,キシャ
し 動詞,自立,*,*,サ変・スル,連用形,する,シ,シ
た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
。 記号,句点,*,*,*,*,。,。,。
D:\ruby\src\mecab-sample>ruby mecab-sample2.rb node
version: 0.98pre1
庭 名詞
に 助詞
は 助詞
二 名詞
羽 名詞
鶏 名詞
が 助詞
いる 動詞
貴社 名詞
の 助詞
記者 名詞
が 助詞
汽車 名詞
で 助詞
帰社 名詞
し 動詞
た 助動詞
。 記号
D:\ruby\src\mecab-sample>ruby mecab-sample2.rb noum
version: 0.98pre1
庭, 二, 羽, 鶏, 貴社, 記者, 汽車, 帰社,
nice!をワンクリックでつけたいだけなら携帯百景においてワンクリックでnice!をつけよう - 青春スイーツでおk。ブックマークレットで展開までしてみる。大量アクセス注意。IEでは動かない。
eval()なるものを知る。
javascript:(function(){try{var code_set = document.getElementsByClassName('star');for(i=0; i<code_set.length; i++){var code = code_set[i].getElementsByTagName('a')[0].getAttribute('onclick')+'').replace(/;return false;/,'');eval(code)}}catch(_e_r_r_){alert(_e_r_r_.description)}})();</ppp>
(function(){ try{ var code_set = document.getElementsByClassName('star'); for(i=0; i<code_set.length; i++){ var code = (code_set[i].getElementsByTagName('a')[0].getAttribute('onclick')+'').replace(/;return false;/,''); eval(code) } }catch(_e_r_r_){ alert(_e_r_r_.description) } })();
グリモンなどでもよく見る (function(){})(); の意味はJavascriptのブックマークレットに見る無名関数の使われ方 | 村式開墾日記で知った。
IEとFxでgetAttributeのエラーとかhasAttributeの有無とかが違った。参考:JavaScript DOM リファレンス
自分自身を削除するメソッドがないので、削除するのは面倒そう。参考:DOM要素(<div>タグ)をJavaScriptで削除する|JavaScriptプログラムメモ|プログラムメモ
JimboGlad I've finally found soemhting I agree with!
mvnzjltygm49roso <a href="http://qgqlmjmnoowc.com/">qgqlmjmnoowc</a>