告知

2009年7月22日 (水)

8/1(土)第1回東北情報セキュリティ勉強会@仙台

8/1(土)に仙台で開催される「第1回東北情報セキュリティ勉強会」でメイン講師を務めさせていただくことになりました。まっちゃだいふくさんをはじめとする関係者の皆様に感謝いたします。

■ 第1回東北情報セキュリティ勉強会(仙台)

テーマ 開発者のためのセキュリティ勉強会
講師   サイボウズ・ラボ株式会社 竹迫 良範さん(調整中)
日時   2009年08月01日 (土曜日) 13時00分~17時30分(12時半受付開始)
場所    仙台市青葉区北目町4-7 HSG(本田精機グループ)ビル 会議室
参加費用 一般1000円、学生・未成年:無料

今回、東北地方での勉強会には初めて参加するのですが、東北Developers Community(TDC)のサイト仙台Ruby会議01(sendairubykaigi01)のレポートを見ながらコミュニティの雰囲気などを事前予習しています。いつもと比べて難しい話はしないつもりですので(時間の許す限り順を追ってやさしく丁寧にお話しします)、ぜひご都合の付く方はお気軽にご参加ください。

発表タイトル: 記号Polyglotとセキュリティ(TAKESAKO)

Polyglotとは複数の言語処理系で実行できる一つのプログラムのことです。
例えば「print "Hello ",0?"Ruby":"Perl","!\n"」のワンライナーは
Perl と Ruby でそれぞれ異なる出力結果を返します。
これは各言語における真偽値の扱い方の違いを利用しています。

これらのテクニックを利用すると以下のような
5言語混在のプログラムを作成することが出来ます。
----------------------------------------------
#include/*
q="""*/<stdio.h>
int main() {putchar('C'); if(sizeof('C')-1);
else {putchar('+'); putchar('+');}} /*=;
print'Perl'#";print'Ruby'#""";print'Python'#*/
----------------------------------------------
$ perl a.cpp
Perl
$ ruby a.cpp
Ruby
$ python a.cpp
Python
$ gcc -xc a.cpp && ./a.out
C
$ cl.exe a.cpp
$ a.exe
C++

さらに一般のファイル形式も対象とすると、GIFやJPEGなどの画像ファイルにも
JavaScriptやPHPとして実行可能なプログラムを埋め込むことが可能です。
Polyglotを読み解きながらセキュリティ・Web業界への応用を考察します。

※ 本日よりライトニングトークも募集しているそうです。

ちなみに同時期にOSC新潟2009が開催されるそうなのですが、新潟は東北地方に含まれる?のでしょうか。(幼い頃、東北6県は青森県、岩手県、宮城県、秋田県、山形県、福島県のみと学校で教わりました)

あと、今回初めて知ったのですが、JR東日本の「土・日きっぷ」を利用すると東京-仙台を越えるかなり広い範囲で新幹線も特急も自由席が2日間乗り降り自由、指定席も4回までなら利用OKなんですね。はやての指定席も発券拒否されないみたい。

2009年6月 5日 (金)

ブログのお引っ越し(MovableType3→TypePad)

先週から今週にかけてブログの移転作業を行いました。

■ 1. 経緯

今までのサイボウズ・ラボのブログは、自社サーバ上でMovableType3を長らく運用してきたのですが、 大量のトラックバック・コメントSPAMへの対応負荷も無視できなくなり、 MovableType4にバージョンアップするのも面倒なので(既にバージョンアップライセンスの販売は終了していて、MT4に移行するにしても新規にライセンスを購入しなおさないといけないため)、 この際、サイボウズ・ラボとサイボウズ本社の技術者のブログをまとめて TypePad に移行することにしました。

■ 2. RSS/Atomフィードのリダイレクト

livedoor Readerでは巡回対象のフィードを取得する際にHTTPリダイレクトの処理を行っています。
  • 代表的なものとして「301リダイレクト(恒久的な移転)」と「302リダイレクト(一時的な移転)」をサポートしています。
    • 301 Moved Permanentlyによるリダイレクトの場合、巡回対象のURLが置き換わります。
    • 302 Moved Temporarily(または302 Found)は巡回対象のURLはそのままで、リダイレクト先のURLを取得します。

    • 301以外の3xxレスポンスによるリダイレクトの場合は、巡回対象のURLの書き換えは起こりません。
.htaccess等を使ったリダイレクトの設定が可能な場合は、livedoor Readerの購読者を移転先のブログに引き継ぐことができます。
ということでしたので、旧サーバのApache上で 301 のリダイレクト設定を行いました。
RewriteEngine On
RewriteRule ^/blog/takesako/index.xml http://developer.cybozu.co.jp/takesako/rss.xml [R=301,L]
RewriteRule ^/blog/takesako/atom.xml http://developer.cybozu.co.jp/takesako/atom.xml [R=301,L]

とりあえず、LDRではそのまま購読者を引き継ぐことが出来ました。 その他のRSSリーダの動作は確認しきれていませんが、とりあえずこのような対処で移行してみました。 (もしもお使いのソフトウェアで不都合がある場合はご連絡いただけると有難いです)

■ 3. はてなブックマークの引継ぎ

過去記事についたはてなブックマークの関連付けを残しておきたい、という要望に応えるために MovableTypeからエクスポートするときに 以下のHTMLをBODYの先頭に追加して対応してみました。

BODY: 
<div align="right"><a href="http://b.hatena.ne.jp/entry/<$MTEntryPermalink$>"><img
src="http://b.hatena.ne.jp/entry/image/<$MTEntryPermalink$>" border="0" alt="[B!]"></a></div>
<$MTEntryBody$>

■ 4. permalinkの移行

Movable Type 4 では、インポート時の BASENAME に対応しているみたいなのですが、 困ったことに、TypePad では対応していないようでした。

TypePadでデータをインポートすると、「BASENAME」の項目が無視されるため(対応していないため)、 permalinkが日本語を含んだTITLEから自動で再生成されてしまいます。

(例)エントリーのタイトル:「TypePadでBASENAMEの項目がインポート時に無視される」

 旧URL:http://labs.cybozu.co.jp/blog/takesako/20xx/xx/old_filename.html
   ↓そのままインポートするとHTMLのファイル名が変わってしまう問題が・・・
 新URL:http://developer.cybozu.co.jp/takesako/20xx/xx/typepad_basename.html

これだと、

RewriteRule ^/blog/takesako/(.*)\.html$ http://developer.cybozu.co.jp/takesako/$1.html [R=301,L] 

のような単純なリダイレクト設定では記事の転送ができなくなってしまうので、 困ってしまうことになります。

■ 5. Movable Type 3 からのエクスポート

この BASENAME の件ですが、TITLE フィールドに <$MTEntryBasename$> を指定して MTからエクスポート → TypePad にインポートするとファイル名が保持されることがわかったので、 今まで使用していなかった KEYWORDS: フィールドに <$MTEntryTitle$> を退避して、 インポート後に手作業でブログのタイトルをカット&ペーストして元に戻して対応することにしました。

Movable Type 4 以前のバージョンからのブログ記事インポートからの変更点は以下の通りです。

<MTEntries lastn="99999">AUTHOR: <$MTEntryAuthor$>
TITLE: <$MTEntryTitle$> <$MTEntryBasename$>
BASENAME: <$MTEntryBasename$>
STATUS: <$MTEntryStatus$>
ALLOW COMMENTS: <$MTEntryFlag flag="allow_comments"$>
CONVERT BREAKS: <$MTEntryFlag flag="convert_breaks"$>
ALLOW PINGS: <$MTEntryFlag flag="allow_pings"$>
PRIMARY CATEGORY: <$MTEntryCategory$>
<MTEntryAdditionalCategories>CATEGORY: <$MTCategoryLabel$>
</MTEntryAdditionalCategories>
DATE: <$MTEntryDate format="%m/%d/%Y %I:%M:%S %p"$>
TAGS: <MTEntryTags glue=",">"<$MTTagName quote="1"$>"</MTEntryTags>
-----
BODY:
<$MTEntryBody$>
-----
EXTENDED BODY:
<$MTEntryMore$>
-----
EXCERPT:
<$MTEntryExcerpt$>
-----
KEYWORDS:
<$MTEntryKeywords$> <$MTEntryTitle$>
-----
<MTIfNonZero tag="MTEntryCommentCount"><MTComments>COMMENT:
AUTHOR: <$MTCommentAuthor default=""$>
EMAIL: <$MTCommenterEmail$>
URL: <$MTCommentURL$>
IP: <$MTCommentIP$>
DATE: <$MTCommentDate format="%m/%d/%Y %I:%M:%S %p"$>
<$MTCommentBody convert_breaks="0"$>
-----
</MTComments></MTIfNonZero><MTIfNonZero tag="MTEntryTrackbackCount"><MTPings>PING:
TITLE: <$MTPingTitle$>
URL: <$MTPingURL$>
IP: <$MTPingIP$>
BLOG NAME: <$MTPingBlogName$>
DATE: <$MTPingDate format="%m/%d/%Y %I:%M:%S %p"$>
<$MTPingExcerpt$>
-----
</MTPings></MTIfNonZero>
--------
</MTEntries>

こうして、昔の記事のファイル名を維持しながら TypePad に移行することができました。

私の場合はエントリー数が少なかったので手作業でも何とかなりましたが、 エントリー数が多いブログだとこの方法はお勧めできませんね。。。

■ 6. まとめ

ということで、無事TypePadに移行できましたので、引き続きこちらでもブログ記事を書いていこうと思います。よろしくお願いいたします。

■ 7. 追記(2009/06/10)

一部の旧URL http://labs.cybozu.co.jp/blog/takesako/2008/12/caravan_takamatsu.html からのリダイレクト、 正しいとび先は http://developer.cybozu.co.jp/takesako/2008/12/caravan_takamat.html に失敗していました。

これはTypePad上で扱えるブログ記事のファイル名の長さに制限があるのが原因みたいで、リダイレクトURL生成時に上限の15文字以内に切り詰めるようにリダイレクトルールを見直し設定変更しました。

RewriteRule ^/blog/takesako/(.*)\.html$ http://developer.cybozu.co.jp/takesako/$1.html [R=301,L] 
  ↓16byte以上のときは15byteに切り詰める
RewriteRule ^/blog/takesako/(..../../.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?).*\.html$ http://developer.cybozu.co.jp/takesako/$1.html [R=301,L]
RewriteRule ^/blog/takesako/(.*)\.html$ http://developer.cybozu.co.jp/takesako/$1.html [R=301,L]

hasegawaさん、ご指摘どうもありがとうございました。

2008年7月18日 (金)

今週末は京都+関西へ

連休のスケジュール

  • 土曜日は OSC 2008 Kansai in Kyoto
  • 日曜日は Kanasan.JS @大阪
  • 月曜日は PHPパネルディスカッション@東京

関西方面のみなさん、よろしくお願いします。

2007年9月14日 (金)

Linux Conference 2007ストリーミング中継

現在開催中の Linux Conference 2007 ですが、ストリーミング中継で発表の様子を見ることができるようになっています。

vlc_lc2007.jpg

[専用URL]   http://www.linux.or.jp:8000/lc2007.ogg(終了しました)

[実施期間]  Japan Linux Conference 2007開催期間
- 9月13日(木) 午前10時半から午後7時15分まで
- 9月14日(金) 午前10時半から午後4時まで

ストリーミングは「Ogg/Theora, Vorbis」形式です。自由なソフトウェアの立場としても非常に綺麗なフォーマットです。Linux環境ではmplayerなどで試聴可能だと思います。

自分のWindows環境では VideoLAN VLC media player 0.8.6c をインストールして中継を見ることができました。

2007/9/14 14:43頃より、中継機器の不具合によりストリーミング配信が停止していたようです。 Lightning Talksのセッションはとても面白い発表が多かったので、とても残念です。(><)

中継スタッフのknokさん、関係者の皆さん、ありがとうございます。