「PyCon Taiwan 2012」参加レポート

PyCon Taiwan 2012, Day 2

PyCon Taiwan 2012のレポートは今回が最終回です。2日目(最終日)のこの日は、前日に宿泊したCenter of Academic Activities(中央研究院學術活動中心)から一日がはじまりました。

朝食は宿泊施設に併設しているCafe Sinicaで食べました。緑に囲まれた素敵なカフェで、普通にホテルの朝食という感じでした。

Cafe Sinica外観
Cafe Sinica外観
ホテルっぽい朝食
ホテルっぽい朝食

PayCon Taiwanの運営者へのインタビュー

鈴木たかのりです。朝食後にCafeの外でPyCon Taiwanのchairperson(座長)であるYung-Yu Chen@yungyuc氏に時間をとってもらい、私ともりもとさんでインタビューを行いました。インタビューにはPyCon TaiwanスタッフのTimtan氏にも同席していただきました。

インタビューに答える Yung-Yu Chen氏(奥)と Timtan氏(右)
インタビューに答える Yung-Yu Chen氏(奥)と Timtan氏(右)
今回、初めてのPyCon Taiwanを開催しようと思った理由を教えてください。

大きく2つの理由があります。

1つ目は台湾でPythonコミュニティを広く認知してもらいたいと思っているからです。台湾では多くの人がOSSコミュニティに関わっていますが、そのうち1/10くらいの人がPythonを使っていると思います。Javaに比べると少ないのが現状です。

2つ目の理由はThinker[1]が2011に開催したアンカンファレンス[2]です。アンカンファレンスでPythonについてのセッションを開催したところ100人程度が参加してくれました。2008年にもPythonについて呼びかけましたが、そのときは50人強が集まったと記憶しています。

Pythonについて話したい開発者がいると感じたため、数人でミーティングを行いPyCon Taiwanの開催を決意しました。USで行われているPyConのようにPythonに関わるいろいろな人達の出会いの場となることを期待しています。

PyCon Taiwanの今後の目標を教えてください。

まずは継続すること、そしてより大きくなっていくことです。また、会を継続するためには主催者が燃え尽きないことが大事であると考えています。主催者は頑張り過ぎない必要があると思います。メンバーがお互い協力しあって会を運営する必要があると考えています。

Pythonには“There’s Only One Way To Do It.”[3]というスローガンがありますが、これはプログラミングだけではなくPyConイベントの進め方についても共通していると思います。⁠確かに、PyCon JPスタッフも同様のことを考えていると思いました⁠⁠。

今後、PyCon TaiwanがPythonic way[4]となることを期待してます。

参加者とその内訳はどのようになっていますか。

全体で260名程度が参加登録してくれました。チケットの制限は250の予定でしたが最終的にこのようになりました。海外からの参加者は(日本も含めて)10~15人程度だと思われます。また台湾在住のオーストラリア、アメリカの方も参加してくれているようです。2つのスポンサーが今回つきましたが、各スポンサーの社長も台湾人ではありません。

スタッフは当日スタッフも含めて30名程度です。メインスタッフは5~10人くらいのチームリーダーがいました。チームリーダーではなくても活発に活動してくれているスタッフもいます。スポンサー企業の社長でもあるPeterはスタッフも努めてくれています。彼は、もともと予定していたKeynoteスピーカーが2週間前に病気にかかり急遽参加できなくなったときに、代役を探してくれました。

台湾のPythonコミュニティについて教えてください。

台湾はPythonを使用しているユーザは多いのですが、コミュニティはありません。Pythonを使って仕事はしているが、メインの仕事はOSSやコンピュータサイエンスであるという人が多いようです。今回のPyCon TaiwanをきっかけにPythonユーザの横のつながりができ、台湾のPython事情が変わることを期待しています。

最後の日本のPythonistaにメッセージをお願いします。

“We love YOU and Python.”

どうもありがとうございました。

インタビューを終えた後も日本と台湾のPyCon事情などについて歓談などをし、楽しい時間を過ごしました。早起きしてインタビューをした甲斐がありました。

台湾と日本のPyCon座長の握手
台湾と日本のPyCon座長の握手

Keynote:Python and the Web

もりもとです。2日目の基調講演はJames Tauber氏による、PythonとWebが歩んできた歴史について振り返るものでした。彼はDjangoのコア開発者でありPinaxのリード開発者です。1993年からオープンソース開発やWebの技術に携わり、1998年からPythonを使っているそうです。

James Tauber氏
James Tauber氏

以下に彼の経歴や発表スライドが公開されています。

PythonとWeb

1990年代からのWebとPythonの発展、そのときに誕生した技術を順を追って紹介しました。どこかで聞いたことがあるような、Knuth博士の言葉も引用されていました。

“Programs are meant to be read by humans and only incidentally for computers to execute” by Don Knuth

“プログラムは人間が読めるように書かかれるものであり、たまたまコンピューターが実行できるに過ぎない”

Pythonに関しては、以下の技術動向の流れから最近のWebアプリケーションフレームワークに言及していました。

  • Zope/Plone
  • WSGI
  • MVC
  • TurboGears

レイヤーの役割

上位レイヤーの移植性と下位レイヤーの再利用性について説明しながらTim Peter氏の言葉を引用しました。

“We read Knuth so you don’t have to” by Tim Peters[5]

“Knuthは我々が読んだ、あなたは読まなくて良い”

Knuth博士がThe Art of Computer Programmingで、ソートと検索について、そのアルゴリズムや博士の技術的見解について800ページ近くのページを割いていますが、Pythonユーザーは、そういったことを気にしなくて良いという意図を表しています。

Pythonにおけるソートのプラクティスは、ソート HOW TOでDecorate-Sort-Undecorateパターンとして紹介されています。

アイディアから具体化する

Pinaxは、Django上に構築されたさらに上位のフレームワークで、Djangoアプリをより再利用しやすくしたり、どのサイトでも使うような共通処理を提供することを目的としています。発表の中では、自分たちのサイトの特徴部分により注力して開発できると説明されていました。

“What you do for a living is not be creative, what you do is ship” by Seth Godin[6]

“生活のためにやってることはクリエイティブではないから、そうなりたいならプロダクトをリリースしなさい”

PyCon JapanではWeb系の発表が多いですが、PyCon Taiwanでは科学系や研究系の発表が多かったです。私自身にとって初日の基調講演の配列指向(array-oriented)という概念が興味深かったように、非Web開発系の参加者にとってはWebの要素技術の変遷が新鮮だったのかもしれません。

Welcome To PyCon JP

鈴木たかのりです。ここからClosingまでのセッションレポートは私のほうで担当します。

さて、2日目のランチの前にはいよいよPyCon JPスタッフの保坂翔馬氏による発表です。タイトルの通り「PyCon JPへようこそ」と題して、2012年の9月に開催されるPyCon JP 2012の紹介を行いました。

PyCon JPを代表して発表を行う保坂翔馬さん
PyCon JPを代表して発表を行う保坂翔馬さん

以下に発表スライドと清水川さんが撮影したビデオが公開されています。

実は、Day 1のランチの時に保坂さんは「中国語でどんな挨拶したらいいですかね」とTaiwanスタッフに聞いて教えてもらい録音もしていました。しかし、初めての中国語で長文は難しかったようで、つかみの挨拶は「英語+謝謝(ありがとう⁠⁠」だけになってしまいました。それでも参加者のみなさんからのたくさんの拍手をもらい、非常に暖かい雰囲気で発表が始まりました。

発表の内容としてはPyCon JP 2011の実績とPyCon JP 2012の概要説明について紹介しました。資料やビデオを見てもらうとわかりますが、いくつか笑ってもらうポイントを入れていました。だいたい想定通りにウケていて、リハーサルでいろいろな人に発表にツッコミを入れてもらった甲斐があったと思います。また、日本からの参加メンバーを紹介する場面では一人ひとり立って挨拶しました。拍手をもらい、多少気恥ずかしかったですが、うれしくもありました。

この発表を行った成果だと思いますが、先日終了した演題募集(Call for Proposals)には台湾からも数名の申し込みがあったとのことです。PyCon JP 2012当日にも台湾をはじめ、世界中からPythonistaが集まって相互に交流できることを楽しみにしています。

More pople joins from Taiwan
More pople joins from Taiwan

そして、来年のPyCon Taiwanをはじめ海外のPyCon等のイベントに、どんどん日本からも発表をしに行ってほしいと感じました(と偉そうに言及していますが、私も海外で発表をやったことはないのですが⁠⁠。

What Can Meta Class Do For You?

ここでは大トリのWhat Can Meta Class Do For You?というメタクラスに関するセッションについて紹介します。発表者のhychen氏はPyCon JP 2011での発表や、前日のLightning Talksでも発表を行うなど、TaiwanのPython界を引っ張っている存在のように感じました。

hychen氏
hychen氏

以下にhychen氏の発表スライドが公開されています。

発表内容はいくつかの例題をメタクラスで実装したサンプルを示して、メタクラス入門といった感じのセッションとなりました。最初に概念としてClassがTypeのインスタンスであることを説明し、Typeの代わりに__metaclass__に任意のクラスを指定することで、クラスのふるまいを変えられることを解説しました。次に応用例として、メタクラスを使用してどんなプログラミングができるかを示していました。

最初の例ではSingletonパターンをメタクラスで実装しました。以下のようなデータベース接続するためのClassがあります。

class MySQL(object):
    session_max = 1000
    __metaclass__ = Singleton
    def __init__(self):
        print 'connecting to {0}.format(self.session_max)

このMySQL Classはいくつインスタンスを作成しても、すべて同じインスタンスとなります。

>>> db1 = MySQL()
>>> print id(db1)
>>> db2 = MySQL()
>>> print id(db1)
>>> db3 = MySQL()
>>> print id(db1)

Singletonメタクラスは以下のようなコードで定義されています。これにより、あるクラスにSingletonパターンを適用したい場合には__metaclass__ = Singletonと記述するだけで実現できるようになります。

class Singleton(type):
    def __init__(cls, name, bases, dic):
        super(Singleton, cls).__init__(name, bases, dic)
        cls.instance = None
    def __call__(cls, *args, **kwargs):
        print "please use get_instance fanctuin to get the instance"
        return cls.get_instance(*args, **kwargs)
    def get_instance(cls, *args, **kw):
        if cls.instance == None:
            cls.instance = super(Singleton, cls).__call__(*args, **kw)
        return cls.instance

他にもいくつかのメタプログラミングの例が示されているのでスライドを参照してみてください。まとめとして、メタプログラミングでできることはたくさんある(無量大数という表現を使っていました)と説明していました。また、メタプログラミングはコードが簡潔になるという反面、なにが行われているかわかりにくく、理解するのが簡単ではないと述べていました。

可能性は無量大数
可能性は無量大数

最後にPython開発者のShalabh Chaturvedi氏の以下の言葉を引用して終わりました。なかなか深い言葉です。

Q:いつメタクラスを使用するべきですか?
A:その時は決して来ません(この質問をしている間は)

私にもなんとなくメタクラスのポイントがわかる、とてもよい発表でした。

Closing

2日間に渡るPyCon Taiwanが閉会の時を迎えました。Closingではまず最初にPyCon Taiwanスタッフが壇上に上がり、拍手で讃えられました。

次はお待ちかねのプレゼントタイムです。PyLotteryというPyGameを使用したプログラムで、PyCon Taiwanロゴの蛇がボールを食べると番号が表示されるという抽選を行いました。なお、PyLotteryのソースコードはyungyuc / pylottery / overview ― Bitbucketで公開されています。

PyLottery
PyLottery

抽選で当たった人はPyCon Taiwan Tシャツなどをもらっていました。また、日本からおみやげとして持参した手ぬぐいやTシャツなどもプレゼントになっていました。受け取った人が喜んでくれるといいのですが。

武士道Tシャツをプレゼント
武士道Tシャツをプレゼント

最後に、会期中に撮影した写真で作成されたスライドショーを表示して、2日間に渡ったPyCon Taiwan 2012は成功のうちに終了しました。

スライドショー
スライドショー

Dinner

鈴木たかのりです。他のメンバーは飛行機の関係で午後には会場をあとにしていました。Closingまで残っていた私と西本さんはTaiwanスタッフの誘いを受けてDinner Partyにご一緒させてもらいました。場所は宿泊施設と同じ建物にあるレストラン金華樓です。

テーブルはいわゆる「ぐるぐるまわる」中華料理のテーブルですが、台湾人の彼らが言うには「伝統的なスタイルの中華料理」らしく、どちらかと言うと珍しいものだそうです。言われてみれば、街なかで見た中華料理屋は四角いテーブルの店が多かったように感じました。

中華料理
中華料理

料理はなかなかレベルが高く、おいしくいただきました。台湾の方はあまりお酒は飲まないようで、日本人2人と日本に住んでいたことのある女性スタッフと3人だけがビールを飲んでいました。彼女は「また日本に行くことがあれば、ビールと焼き鳥を食べたい」と言っていました。PyCon JPに来たら是非おいしい焼き鳥に誘いたいと思います。

英語、中国語、日本語で楽しく会話をしながらおいしい食事を食べ、私のPyCon Taiwan 2012参加は幕を閉じました。

PyCon Taiwanスタッフとの会食
PyCon Taiwanスタッフとの会食

台北電脳街

もりもとです。私は飛行機の時間の関係でランチ後にはPyCon Taiwanの会場を後にしました。そして、飛行場に行く前に少し寄り道(観光)をしました。

MRTという台北の地下鉄に乗り、忠孝新生駅を降りるとすぐに電気街があります。日本の秋葉原に相当する場所のようですが、規模はあまり大きくありません。小さなPCパーツショップや量販店が並んでいました。

電脳街の一角
電脳街の一角

保坂さんは、HTCショップでスマートフォン端末を購入しました。せっかく台湾へ来たので現地で購入するのも楽しいですね。

HTCショップ
HTCショップ
購入したHTC端末
購入したHTC端末

台湾の旅終了

再び、鈴木たかのりです。私はDinnerを終えてからホテルに戻り、次の日におみやげなどの買い物をして帰国しました。台湾をぶらついていくつか面白かったところを紹介します。

ホテル近くのスーパーで買い物する時に漢字のコカ・コーラを見つけました。雑誌とかで見たことはありましたが、実物を見るのは初めてでした。

コカ・コーラは可口可楽
コカ・コーラは可口可楽
ペプシ・コーラは百事可楽
ペプシ・コーラは百事可楽

台北駅(台北車站)は日本で言うと東京駅にあたるような駅で、駅舎は非常に立派でした。中は吹き抜けになっており、乗車券の発売窓口が並んでいます。また、一階、二階には多数のショップが並んでいますが、見たことのある店たくさん入っていて「ここは本当に台湾なんだろうか?」という錯覚を覚えました。

台北駅の吹き抜け
台北駅の吹き抜け
台北駅の中のショップ(一部)
台北駅の中のショップ(一部)
ごはん処 大戸屋
ごはん処 大戸屋

ここまでは結構食べていたため、お昼ごはんは質素にデパートの地下フードコートで食べました。50台湾ドル(約140円)ですが軽めの食事としては十分な量でした。

ミーフン
ミーフン

次の写真はMRTの駅にあった化粧品の広告です。日本のメーカーでモデルが菅野美穂さんなのはいいんですが、コピーに「一見傾心の輕齢美肌」と書いてあり日本語としては意味不明です。中国語だとしたら「の」はみんな読めるのか?と不思議に思いました。

化粧品の広告
化粧品の広告

Dinnerのときに台湾スタッフに「おすすめのお土産ありますか」と聞いたところ、SunnyHills(微熱山丘)を紹介されたので行って来ました。場所は松山空港から徒歩15分くらいで、他にはあまり何もないようなところです。ネットで調べたところ、通常のパイナップルケーキは餡に冬瓜などが混ざっているそうですが、このお店はパイナップル100%でできているのがおいしさのポイントだそうです。

空港で荷物をコインロッカーに入れて、歩いてお店に向かいました。席に案内されるとパイナップルケーキが1つ試食で提供されます。少し値段が高いのですが、噂通りにおいしいのでおみやげに購入しました。地元っぽい人が沢山買っていましたし、空港でチェックインするときにも職員の人が「これおいしいんですよね」と言っていたので、ずいぶん人気なんだなぁと思いました。台湾に行かれる方にはおすすめのお土産です。

Sunny Hillsの看板
Sunny Hillsの看板
パイナップルケーキ
パイナップルケーキ

パイナップルケーキを買って空港に戻って来ました。空港内のセブン・イレブンには大きな人形が飾ってあります。このキャラクターはOPEN小將(OPENちゃん)といって台湾セブン・イレブンのキャラクターのようです。個人的にはなかなかかわいいキャラクターで気に入りました。携帯ストラップなど各種グッズが作られているようですが、写真の台湾の名所ストラップは「どこも行ってないなぁ...」と思い購入を断念しました。

空港内のセブン・イレブン
空港内のセブン・イレブン
OPENちゃんストラップ
OPENちゃんストラップ

2日目に使った現金はAcademia Sinicaのホテル代だけでした。3日目はおもにおみやげに使い、空港内で無駄に頑張って台湾ドルを全部使い切ることができました(EasyCardのチャージが残ってますが...⁠⁠。こうして、私のPyCon Taiwanの旅が終わりました。

項目金額(TWD)日本円
前日の残金1,5394,195.75
ホテル代8502,317.34
おかし79215.38
おかし170463.47
ミーフン50136.31
コインロッカー150408.94
キウイジュース150408.94
おやつ90245.37
残金00

PyCon JP 2012のお知らせ

最後に宣伝です。筆者の鈴木たかのりもスタッフとして参加しているPyCon JP 2012が9月中旬に開催されます。今年は期間、参加人数共に昨年より規模を拡大して開催します。開催概要は以下の通りです。

カンファレンス2012年9月15日(土⁠⁠、16日(日)
Sprint2012年9月17日(月・祝)
テーマつながるPython / Python Connect
会場産業技術大学院大学
参加者数(予定)400

現在、演題の募集(Call for Proposals)を締め切り選定作業を行なっているところです。また、キーノートスピーカーにはマイクロフレームワークFlaskの開発で知られるArmin Ronacher氏を迎えます。

PyCon JP 2012の参加チケットは7月下旬にconnpassで発売予定です。スケジュールを空けて待っていてください。15日(土)夜のPartyチケットも同時に販売を開始する予定です。日本のみならず、台湾や他の国から多数のPython開発者が一同に介する会になると思います。参加者・発表者のみなさんが楽しく有意義な時間を過ごせるように、スタッフ全員で準備を進めています。

では、PyCon JP 2012でお会いしましょう!!

画像

おすすめ記事

記事・ニュース一覧