7月 28

最近、Google Apps Scriptを始めたので、Googleドキュメントも、よく使うようになったのですが
いちいちブラウザを操作してアップロードするのが面倒臭い、dropboxみたいにD&Dで登録とまでは
いかなくても、せめてファイル選択して、右クリックメニューの送るでアップロードできないものかと・・

いろいろ調べてみると、コマンドラインツールwindowsアプリなツールはあったのですが
どれもイマイチ、仕方が無いので自分でスクリプトを組む事にしたのですが

問題はパスワード情報、生パスワードをスクリプトに埋め込むのは流石に嫌だし
どうしようかと考えてたら、スクリプトを難読化するツールが有ったのを思い出した。

これで問題事項は全て解決したので作れるなと思ってたのが先週末だったんだけど
いろいろ忙しくてなかなか着手できず、やっと一段落着いたので、まずは実装してみました。

しばらく使ってみたけど、簡単便利でなかなか良い感じです。

gdu.zip

7月 24

saga_no_meigetsuki

<嵯峨本>は、開版者角倉素庵の創意により、琳派の能書家本阿弥光悦と
名高い絵師俵屋宗達の工夫が凝らされた、わが国の書巻史上燦然と輝く豪華本である。
17世紀、豊臣氏の壊滅から徳川幕府が政権をかためる慶長・元和の時代。
変転きわまりない戦国の世の対極として、永遠の美を求めて<嵯峨本>作成にかけた
光悦・宗達・素庵の献身と情熱と執念。芸術の永遠性を描く、壮大な歴史長篇。

という内容ですが、とにかく構成が面白いです。光悦、宗達、素庵をそれぞれ
「一の声」、「二の声」、「三の声」として、幼少期の体験や、どのようにして道を
立てるに至ったか、そして3人が出会い<嵯峨本>を作り上げるに至った経緯を
回想する心の声という形式を取って、順に明らかにされてゆく、そんな内容です。

光悦と宗達はわりとメジャーで、ご存知の方もおられるかと思いますが
今回はただお金を出しただけと思われてるかもしれない 角倉素庵について
言及してみようかと思います。

角倉素庵(すみのくら そあん、元亀2年6月5日(1571/06/27/) – 寛永9年6月22日(1632/08/07))は
江戸時代初期の土木事業家、書家、貿易商。能書家で洛下の三筆の一人。角倉了以の長男。
名は与一、諱は玄之、貞順、光昌。儒学を藤原惺窩に、書を本阿弥光悦に学び、書道の角倉流を創設。
父親の跡を継いで貿易業や土木事業にも携わる。家業を子供に譲って隠居した後は
古活字の嵯峨本(角倉本)を刊行した。

これだけではいまいち分かりにくいかと思いますが、要はビジネスパーソンでありながら
芸術の世界にも携わっていた人って扱いでいいかと思います。作中では芸術の世界に
没頭したいと思いつつも、日々の仕事に追われて、なかなか思うようにいかない苦悩が
語られたりして、なかなか興味深いです。

で、お父さんが角倉了以(すみのくら りょうい)っていう、海運業で財を成した豪商で
素庵も家業を手伝って、世界各地を飛び回ったり (船ですけど)してた、かなりの国際派で
出身が近江の国なので、まあ三方笑顔とか、商人の心得なんかも普通に身に付けてたと

そんな素庵がある時、儒学の師である藤原惺窩から、父を助けて貿易の仕事をするにあたっての
心得えを渡されるのですが、それが「舟中規約(しゅうちゅうきやく)」っていう名前の書物で
当時としては、今でもなかなかの画期的な考えがまとめられていたそうです。

私が一番好きな一節をあげるとするなら 「信は豚魚に及び、機は海鴎に見る」 というので
豚魚ってのはイルカとかまあ動物全般を指していて、信頼は本来意思の通じないはずの
動物にも伝わるもので、機ってのは企みとか、相手を嘲った心の事で、そういう思いは
隠していても、海鴎(カモメ)にさえ、簡単に見破られてしまう、というような内容です。

コンピュータ業界に長くいると、素人さんには話しても、どうせ分からないしな~とか
思ってしまいがちですが、この言葉を思い出すと、たとえ内容は分かってなくても
こっちがそういう風に思ってる事は伝わるし、伝わってしまえば、それ相応の態度を
取られるんだ、という事を忘れてはいけないなと、人生の節目節目で気付かされます。

他にも為になる内容満載なので、興味がある方は研究してみてはいかがでしょうか?

あとタイトルは、幼い頃の俵屋宗達に老職人の与三次郎が言って聞かせた言葉です。
内容とはあんまり関係ありませんが、なんか響いたので、これにしてみました(^^;

7月 12

まあ場所がここだったのでちょっとした里帰り気分で参加

会社の人でも、行くつもりだったけど、諸般の事情で行けなかったり
年休取って金、土2日とも参加してる気合の入った人がいたり

行く前に去年、一昨年参加した人に関東のメジャーなイベントとかに
比べるとやっぱり規模が小さいよといわれたりしてたのですが

人だかりの中を歩き回るのとかやだし、どちらかというとマイナーな方が
逆に望むところなので迷わず参加、でも実際行ってみると、それなりに
人も入ってて、わりと盛況だったような気がします。

さすがにブース展示はちょっと少ないかなと思いましたが

それでまあ、セッションはこれこれこれくらいを聴講してきて
一緒にいった人とは最後まで興味有るのが一かすりもしなかったので
結局一緒にいたのは、昼飯と最後のLTだけでした。

HTML5の話は実際に展開されてるサービスのどの部分で
使われてるとか参考になったし、2つ目のはよく分からずに
取りあえずなんか面白そうだと思って参加したら
実はこんな人でかなり良かったです。

ECオープンソースは、会社の隣の席の人が今EC-CUBEを研究中で
個人的にも興味があって受けてみた。いろいろ面白そうだなと思ったのは
Magentoっていう新興のヤツだけど、 仕事で使うなら無難にEC-CUBE?
まあ比較資料を机の上に置いといたので見といて下さい。

あと会社に持って帰って、一部の人にやたら好評だったのがコレ
こんなのとかもあって、製品自体はサーバーがダウンした時に
別で待機してるサーバーに振り替えるとか真面目なハズ何ですが・・・
でも、内容まったく関係無く、喰い付く人がいるってのは凄いって事で
何か萌えマスコットキャラを作ったほうがいいのではという話が浮上中

そんなこんなでかなり楽しめたのですが、一番の収穫だったのは
GTUGってのが、Google Technology User Groupってのだと
知った事だったという・・・GTAGで何か位置情報系の技術だとばかり

実は行くちょっと前から Google Apps Scriptってのに凝り初めてて
(サーバサイトJavaScriptでOffice VBAみたいな事が出来ます)
そういう系のユーザーコミュニティって無いんかなあと思ってた矢先
ぴったりの所が見つかったなと

正確には今時点でされてるのは Google App Engineとか
Waveとか Goとかなので、微妙に違いますが、同じ会社のモノですし
そこで発表していって布教するしか無い、と思うています。

手始めに全体会議で、簡単な使い方の解説でもしようかと画策中

7月 07

MSオフィスをインストールすると *.CSVが Excelに関連付けされて
ダブルクリックで開くのはいいんだが、”001″ とかが “1″ になったり
日付っぽい文字列や大きな数字なんかも勝手に変換してくれて
大きなお世話です。

そこでCSVファイルをドロップするだけでテキストファイルとして
読み込んでくれるVBSスクリプトを作ってみました。

多分、同じような不満をお持ちの方はいると思いますので
よろしければ、ご活用下さい。

CsvTxted.zip

6月 26

anata_no_jinsei_no_monogatari

そういえば、先月分のエントリを書いてなかったので
知り合いに薦めようと思ってたSF小説について書く事にします。

著者はテッド・チャンっていう中国系アメリカ人でSFっぽくないSFを書く人
超寡作な作家というか、本業はフリーのテクニカルライターらしいので
日本ではこの1冊しか出版されてないみたいです。

場面設定や心理描写が緻密で、題材は宗教や科学、数学、美学なんかを
取り扱ったものが多くて、全体的に引いた視点というか、客観的な文体が
なんか気に入っていて、たまに読み返したくなります。

まあ、こういうのが好きかと思ったら、グレッグ・イーガンとかJ・P・ホーガンとか
ごりごりのハードSFも好きだったりするんですが、そちらはまた次回という事で・・

6月 24

今まであまり興味が無い振りをしてましたが
実は隠れRubyフリークだったりします。

といってもRuby自体に興味があるわけでは無く
その昔Ruby界隈でやってた構文解析や言語仕様、
DSL(ドメイン固有言語)なんかに興味があって
自然とそっち方面に流れてただけなんですが

RHGとかはネットで全文公開されてるのでかなり読み込みましたし
るびまはパーサー系の記事とかが偶にあってなかなか良かった
あとRuby会議とかRubyConfの発表は毎回面白いのが多かったような

しばらく更新が無かったので、チェックしなくなっていた
Matz日記を久しぶりに見てみたら Ruby2.0の話が出てた・・

あとMatz繋がりで興味を持ってる人はNaCl関係者だった
ogochanとかYARVko1さんとか

まあ今回の講演は技術系の話じゃないので行きませんけどね。

5月 15

前の全体会議の改善提案で、外に出ている方が
社内のファイルサーバにアクセスできる仕組みが欲しい
という事になったので作ってみました。

fileshare

仕掛け的にはわりと単純でログイン画面で入力した情報で
ファイル共有に接続し、フォルダ、ファイルの内容を
Webインターフェースで表示するというものです。

当初はASPスクリプトで作り始めたのですが
同一セッションから複数のユーザーアカウントの共有に
接続できないという問題で断念し、PHP化しました。

これは最初は何でと思ってたのですが、よくよく考えると
ファイル共有に接続すると \\サーバ名\共有名 という
UNCパスで参照できるようになるのですが、これが複数の
アカウントで同時に接続できてしまうと、同じUNCパスで
参照できる内容が2つある事になるので、まあ無理だと

PHP版は Linuxサーバ前提でマウントポイントを明示的に
指定してマウントするので、上記の問題は無くなりました。

またASP版の時はアプリケーション変数で接続している
セッションの管理、セッションタイムアウトイベントで
ファイル共有の解放を行っていたのですが
PHPではこの辺りの機能が無い、または実装が難しいので
ファイルを作成して管理、cronで一定時間アクセスが無い
セッションが有れば、ファイル共有の解放で代替。

あとCACHATTO経由の IEでファイルのダウンロード時に
エラーになる問題が何でか分からなかったのですが
どうも httpsかつ text/html以外の Content-Type時に
Pragma: no-cacheをセットすると発生するという・・
取り合えずダウンロード時はキャッシュコントールの
ヘッダを送信しないようにして対処しました。

他はフォルダ作成やファイル削除の機能も追加して
やっと普通に使えるようにはなってきたかと思います。

まだ日本語ファイル名のダウンロードでファイル名が
たまに上手くつかないとか、細かいのは有りますけど

fileshare.zip

追記 サイボウズ等で採用しているURLにエンコードした
    ファイル名を含める方法で上手く対処できました。

4月 09

hokuto-no-hito.jpg

最近、時代小説ネタを書いていなかったので
大分前に書きかけて放置してあったエントリを取りあえず出しときます。

司馬遼太郎の作品はいちいち登場人物のアクが強いのであまり好きじゃ無いのですが
この作品だけはちょっとテイストが違っていて気に入ってたりします。
あと装丁はこの角川のじゃなくて、講談の昔のヤツが良いのですがいい画像が無い・・

さて、北斗の人が誰かと云いますと、江戸切っての理論派剣術家
北辰一刀流の千葉周作、その人です。

エントリのタイトルは、千葉周作が門人に剣の要諦とは何でございましょうか?
と尋ねられた時の答えで、江戸時代の剣術といえば、太平楽の世の中の
出世の道具で、剣の極意は無になる事だとか、奥義にやたら勿体を付けた
名前を付けてみたり、今でいう接待ゴルフ的なものだったのかなあ・・・

そんな時代の中、周作は剣とは瞬息、つまりは太刀行きの迅さ、相手より先に
相手に刀を当てる、ただそれだけの事だと喝破し、その為には心・気・力を
一致させなければならない、という合理的な剣術を提唱したそうです。

他にもエピソード満載で面白いので、興味のある方はぜひ

3月 20

Salaseeが一段落した合間に以前、改善提案で出してた
特定のアドレスにメールを送ると、wikiにページを作成する
perlスクリプトを作成してみました。

このwikiってのはうちの会社の技術ポータルなんですが
非公開なので詳細は割愛、要は開発プロジェクトなんかで
マニュアル、手順等を関係者にメールを送った際に ccに
wiki更新用のアドレスを入れておくと、後でメールの山から
探さなくてよいという事がしたかったのです。

メールが送信されたらスクリプトを自動で実行する設定は
サーバ側の .forwardファイルを以下のように編集します。

.forward
"|$HOME/mail2fswiki.pl || exit 75"

スクリプトは標準入力から読み込んだメール内容を解析する前半部分と
解析した内容を Mechanizeで wikiに更新する後半部分になってて
前半部分はこんな感じ

use utf8;
use Encode;
use MIME::Parser;

#メールメッセージ解析用のパーサ生成
my $mp = new MIME::Parser;

#メッセージをディスクに保存せずに処理
$mp->output_to_core(1);

#標準入力からメッセージを読み込み、解析
my $me = $mp->parse(*STDIN);

#fromヘッダを取得
my $from = $me->head->get('from');

#subjectヘッダをBase64デーコードしてから取得
my $subject = decode($enci,$me->head->decode->get('subject'));
$subject =~ s/\r//;
$subject =~ s/\n//;

#メッセージbody部を取得
my $body;
foreach (@{$me->body}) {
  $line = decode($enci,$_);
  if ($line =~ /^-- /) {
    last;
  }
  $body = $body . $line;
}

メールのSubjectは「=?ISO-2022-JP?B?GyRCJUYlOSVIGyhC?=」 とか
MIMEエンコードされてるので MIME::Head::decode() でデコードしてます。

後半部分はこんな感じ

use WWW::Mechanize;

my $url  = 'http://foo.bar.jp/cgi-bin/wiki/wiki.cgi';

#Webブラウザ生成
my $mech = WWW::Mechanize->new(autocheck => 1);

#ログインページに移動
$mech->get($url . '?action=LOGIN');

#ユーザ名、パスワードを入力してsubmit
$mech->submit_form(
    form_number => 1,
    fields => {
        id   => $user,
        pass => $pass,
    }
);

#新規作成ページに移動
$mech->get($url . '?action=NEW');

#フォームの文字コードを指定
$mech->form_number(1)->accept_charset($enco);

#ページタイトルを入力してsubmit
$mech->submit_form(
    form_number => 1,
    fields => {
        page => $prefix . $subject,
    }
);

#フォームの文字コードを指定
$mech->form_number(1)->accept_charset($enco);

#ページ内容を入力して保存
$mech->submit_form(
    form_number => 1,
    fields => {
        content => $category . $body,
        #何故かメールサーバの環境だと
        #hidden項目をエンコードしないので・・
        page => $prefix . $subject,
    },
    button => 'save'
);

perlのMechanizeというライブラリを使うと、ブラウザを操作して
登録するタイプのアプリケーションと簡単に連携させる事ができます。

mail2fswiki.zip

2月 13

TLSL - Twinkle Little Star Library - aNobii

といっても aNobii というオンラインの書籍管理サービスを
利用しているだけなのですが、このサービスかなり使えます。

そもそもの発端は自宅に死蔵している技術系の書籍を
どうにかして会社において置けないか、もとい持ち込んで
有効活用できないか、という所から始まったのですが

会社に私物を持ち込むとなると、それなりの管理は必要
でも管理簿とか誰が作るのメンテするの・・・面倒そう
それにWebから見れないと、社内の人間だけしか
使わなさそうだし・・・

そんな状態だったので、しばらくは放置してたのですが
年明けに買った Android携帯のバーコードスキャンの
アプリで書籍に付いてるISBNのバーコードから
書籍情報を検索できる機能があって、これがあるなら
管理するアプリもありそうだと思って調べてみたら
上記のサービスに辿り着きました。

ログインしなくても公開モードにしている書籍は
普通に閲覧可能ですし、コメントを付けることも出来ます。
ログインすると、さらにいろいろな機能が使えたりするので
興味のある方は自分でアカウントを作ってみるのが良いかと

あと iPhone、Androidでバーコードスキャンして
書籍情報を追加するアプリは、これとかこれとか

社員の方はCACHATTOのポータルメニューからも
利用できるようにしましたので、読みたい本を探したり、
読んだ本の感想を入れたり、欲しい本をウィッシュリストに
追加しておくなど、いろいろ活用してみて下さい。

preload preload preload