スキップしてメイン コンテンツに移動

YAPC::Asia Tokyo 2012 で LT してきた話とか感想など

去る9月、27日からの3日間に渡って東京大学伊藤国際学術研究センターで開催された YAPC::Asia Tokyo 2012 に参加してきましたので感想など。

YAPC に参加したのは昨年以来2回目。前夜祭から最後まで参加したのは始めて。中国地方在住ということもあってこれまでコミュニティとは無縁で一人勝手にやってきたのだけれど、昨年はインターンシップで東京にいたので2日目午後のみ当日券で参加しました。

その時は知り合いもいないし、トークと LT を眺めて O’reilly 本を買ってそそくさと帰ったのだけれど、過去最大の YAPC (当時) ということで一プログラミング言語をテーマにした催事で東工大のホールが埋まる光景はすごかった。あとどうでも良いけど LT の間中吹奏楽部らしき音が外から響いていたのも妙に覚えています。

そんなわけで今年は人といくらかでも繋がりたいなァと思いつつ、学生チケットが無料だということを知って去年は惜しいことをしたなァと卑しい後悔をしつつ参加しました。

LT してきた

去年までカンファレンスに行ったことがなかったので LT なるものをリアルで観たことがありませんでした。

手を挙げたのは私一人だったはず。みんな意識高い。

などと激励も頂いたし、今年は LT 見たことある人として参加するつもりでしたが、遠方からの参加者支援制度に申し込んだところ株式会社スカイアーク様から旅費支援を頂くことができたので、遠方からの参加者枠で LT する人にクラスチェンジ。

おかげでボーイング787で快適に東京へ行くことができましたが、スライドもトークもギリギリまで直してイメトレのみのぶっつけ本番。 1人5分だわ時間は押してるわ目の前に小飼弾氏がいるわで緊張して早口で尻切れトンボでショボーン。反省の多い発表になったけれどそれもまあ経験。

Perl の将来

Perl 5 の運用ノウハウやモジュール紹介以外に、Perl 6 やその他の言語のトークも数多くあったことが興味深かったです。

などなど。

Perl 5 は唯一の処理系 perl と CPAN のモジュール群で特徴づけられてきましたが、XS の難しさはよく批判されるところだし、モジュール数で言えば既に RubyGems に抜かれ、 PyPI にも追い上げられているとのこと。

Perl 6 は Perl 5 とは (VM レベルでの相互運用性はあるかも知れないけど) 独立した道を進んでいるし、Tora の node.js 向けコンパイラ kuma や node.js から Perl モジュールを呼び出し可能にする node-perl は JS との間の相互運用性に焦点が当てられています。

他の LL が発展してきた昨今、「島言語」がないのと同様に「島言語環境」も互いに繋がっていくのかなァと思っています。

その他

LTthon

Hachioji.pm 主催。メイン会場の伊藤謝恩ホール前のスペースでひたすら LT をやり続けるコーナー。 トークの方ばかり見ていたのであまり見られなかったのだけれど、飛び入りも多かったようだしホールの後ろの方の席でトークを聞いてると後ろから笑い声が聴こえてきて盛り上っていたようです。LTthon の動画って公開されてるんでしょうか。

飲食関係

本郷キャンパス周辺は飲食店が豊富すぎて実にうらやましい立地。

1日目はランチ交流企画 のくじに当たったのでぼっち飯回避。2日目はくじに外れた人同士で連れ立ってラーメン喰ってきました。 このランチ交流企画は全然接点がない人と知り合いになれてとても良かった。ランチ代の補助はなくても良いから人数増やして来年もやって欲しいです。

ノベルティ

豪華。学生チケットには T シャツがつかないのですが、YAPC 日程終了後に余っていたものが放出されて争奪戦になっていました。T シャツは手に入りませんでしたがどさくさでマグカップを確保。

(中身は @maka2_donzoko さんに頂いた Acme 大全シール。エロい)

DSIRNLP

YAPC とは全然関係ありませんが、第3回データ構造と情報検索と言語処理勉強会 (DSIRNLP) が YAPC 翌日の9月30日に渋谷の mixi オフィスで開かれていたので、当日の昼に参加登録して聴講してきました。

台風17号の接近で残念ながら中断されましたが、データ圧縮や簡潔データ構造について脳内にポインタを貼ることができました。 ゲームの景品で Amazon Web Servicesプログラミング ―APIの基礎からElastic Beanstalkの利用まで を入手したので、これから読んで Amazon にレビューを投稿する義務が発生してちょっとあせってます。

おわりに

まったくのぼっちスタートでしたが、ランチ交流企画や前夜祭・後夜祭で多くの人と面識が持てて、Perl 仲間を増やす良い機会になりました。

特に日程を通して色々と話をさせてもらった @VienosNotes さんや @risou さんをはじめお話させて頂いた皆様、大変お世話になりました。楽しかったです。また来年お会いしましょう。

コメント

このブログの人気の投稿

Perl 5 to 6 - コンテキスト

2011-02-27: コメント欄で既に改訂された仕様の指摘がありました ので一部補足しました。 id:uasi に感謝します。 これはMoritz Lenz氏のWebサイト Perlgeek.de で公開されているブログ記事 "Perl 5 to 6" Lesson 06 - Contexts の日本語訳です。 原文は Creative Commons Attribution 3.0 Germany に基づいて公開されています。 本エントリには Creative Commons Attribution 3.0 Unported を適用します。 Original text: Copyright© 2008-2010 Moritz Lenz Japanese translation: Copyright© 2011 SATOH Koichi NAME "Perl 5 to 6" Lesson 06 - コンテキスト SYNOPSIS my @a = <a b c> my $x = @a; say $x[2]; # c say (~2).WHAT # Str() say +@a; # 3 if @a < 10 { say "short array"; } DESCRIPTION 次のように書いたとき、 $x = @a Perl5では $x は @a より少ない情報—— @a の要素数だけ——しか持ちません。 すべての情報を保存しておくためには明示的にリファレンスを取る必要があります: $x = \@a Perl6ではこれらは反対になります: デフォルトでは何も失うことなく、スカラ変数は配列を単に格納します。 これは一般要素コンテキスト(Perl5で scalar と呼ばれていたもの)及びより特化された数値、整数、文字列コンテキストの導入によって可能となりました。無効コンテキストとリストコンテキストは変更されていません。 特別な構文でコンテキストを強制できます。 構文 コンテキスト ~stuff 文字列 ?stuff 真理値 +stuff ...

多分週刊チラシの裏 (Sep 28 - Oct 04, 2020)

Chrome Web Store が有料 Chrome 拡張の取扱を終了 Chrome Web Store で提供されている有料 Chrome 拡張及びアプリ内課金 API の両方が 2021 年 1 月いっぱいで廃止される。 開発者はそれまでに代替となるサードパーティの課金 API に移行し、購入済ライセンスの移行手段も用意する必要がある。 この決定の発表時点で新規の有料ないしアプリ内課金のある Chrome 拡張の新規登録は終了している。実際のところ 2020 年 3 月時点で既に「一時的に」停止されており、その措置が恒久化されただけとの由。 シェルスクリプティングには長いオプションを使え 「短いオプション (e.g., -x ) はコマンドライン上での略記である。スクリプトにおいては自分や将来の同僚のためにも長いオプション (e.g., ---do-something ) を与える方が理解が容易だろう」という主張。 異論の余地なく正論である。 CobWeb - COBOL to WebAssembly Compiler COBOL から WebAssembly へのコンパイラ。いやマジで。 Cloudflare が何を思ったか同社のサーバレス環境である Workers に COBOL 対応を追加した際 の成果物である。 COBOL から C へのトランスレータである GNU COBOL と C コードをコンパイルして WebAssembly を出力する Emscripten から成っており、他の言語に比べて軽量なバイナリを生成するとのこと。 「ウチではそんな風にはやらないんだ (“We don’t do that here”)」 昨今ソフトウェア開発のコミュニティでも Code of Conduct を用意するところが増えてきたが、コミュニティの文化を明文化するのは難しい。 長大な「べからず集」は息苦しいし、肯定的なガイドラインは時に抽象的で実効的に使えない。問題となるようなふるまいの動機が善意であった場合は特にそうだ。 仮に優れたガイドラインがあっても、それに基いて人を実際に咎めるのは骨が折れることである。初中やればコミュニティ内でも疎まれる。 話の分かる相手ならそれでもまだ説得する意義もあるが、Web 上の対話で当事者双方が納得し合っ...

多分週刊チラシの裏 (Oct 19, 2020 - Feb 26, 2021)

週刊とは言ったが毎週刊とは言ってないという言い訳。 C++ のコンパイルを高速化する小技 ビルドシステムやツールを変更せずともコーディングだけで改善できるコンパイル時間短縮テクニック。 #include を減らす インライン化を明示的に避ける 関数オーバーロードの可視性を制限する 公開シンボルを減らす の 4 本。 歯医者で歯を治したら記憶能力を失った話 歯医者で簡単な治療を受けた日から後、記憶が 90 分しか保持できなくなった英国の軍人の話。まるで「博士の愛した数式」だが実話である。 DRPK で売られていた Sim City っぽいゲームのリバースエンジニアリング 平壌市内のアプリストア (物理) で売られていた Sim City 風ゲームがインストールに失敗してライセンス認証で止まってしまったのでなんとか動かせないものかとリバースエンジニアリングしてみた話。 日本にあっては DPRK のデジタル事情というと 3G セルラーが現役とか国内 Web サイトのリストがポスター一枚に収まるとか何故かコンピュータ将棋の古豪とかの断片的な情報が伝え聞かれる程度だが、近頃は Android タブレットでゲームなどもできるらしい。 国内のインフラ及びエコシステム事情に合わせて元々フリーミアム + アプリ内課金モデルだったものが買い切り 5,000 KPW (< 1 USD) になっているなど、我々が失った自由が我々よりも不自由な (はずだと我々が信じている) 国に残存しているのは皮肉だろうか。 typosquatting は単なる typo じゃ済まない typo を狙って人気のあるドメインやソフトウェアに類似した名前をつける手法 (typosquatting) は人を辟易させるのみならずセキュリティの脅威である。 IQT が 2017 年から 2020 年にかけて Python ライブラリの中央リポジトリである PyPI において行った調査で、メジャーなライブラリに名前を似せたマルウェアが 40 個確認されたとのこと。 その内 16 個が単純なスペルミス狙い (e.g., “urlib3” vs. “urllib3”) で、26 個は正当なパッケージと混同するような名前 (e.g., “nmap-python” vs. “pytho...

Mac から iPhone のカメラを起動して写真を直接取り込める

Via: The Verge ID セルフィーや (物理) 書籍のページスキャンなど携帯電話のカメラを使って写真を取り込むことは日常的な所作になっているが、写真の使い途が何かの申し込み用 Web フォームなどで iPhone より Mac の方が操作し易いときなどは億劫だ。Mac 組込の FaceTime カメラは 720p とか 1080p しかなくて非力すぎ、かといって iPhone で一旦撮影したものを Photos から探して AirDrop するのも面倒である。 実は macOS Mojave / iOS 12 以降には Continuity Camera という機能がある。これを使うと Apple 製の Mac アプリケーションから iPhone / iPad のカメラを起動して、余計な中間コピーを残すことなく写真を Mac に転送できる。 使い方は簡単で、対応している Mac アプリケーションのコンテキストメニューに “Import (or Insert) from iPhone (or iPad)” という項目がある。“Take Photo” だと一枚、“Scan Documents” だと複数の写真を (歪み補正しつつ) 連続で撮影して転送できる。 対応 Mac アプリケーションは Finder のほか iWork (Keynote, Numbers, Pages), Mail, Messages, Notes, TextEdit となっている、のだが実は Preview でも使える。同様にコンテキストメニューあるいは “File” メニューから起動できる。

Perl 5 to 6 - コンテナと値

これはMoritz Lenz氏のWebサイト Perlgeek.de で公開されているブログ記事 "Perl 5 to 6" Lesson 10 - Containers and Values の日本語訳です。 原文は Creative Commons Attribution 3.0 Germany に基づいて公開されています。 本エントリには Creative Commons Attribution 3.0 Unported を適用します。 Original text: Copyright© 2008-2010 Moritz Lenz Japanese translation: Copyright© 2011 SATOH Koichi NAME "Perl 5 to 6" Lesson 10 - コンテナと値 SYNOPSIS my ($x, $y); $x := $y; $y = 4; say $x; # 4 if $x =:= $y { say '$x and $y are different names for the same thing' } DESCRIPTION Perl6はコンテナと、コンテナに格納できる値を区別して取り扱います。 通常のスカラ変数は一種のコンテナで、型制約やアクセス制約(読み取り専用とか)などの属性を持ち、他のコンテナの別名として使えます。 値をコンテナに格納することを代入と呼び、コンテナに別名をつけることをバインディングと呼びます。 my @a = 1, 2, 3; my Int $x = 4; @a[0] := $x; # @a[0]と$xは同じ変数 @a[0] = 'Foo'; # エラー 「型チェック失敗」 Int や Str のような型は不変、つまりこれらの型のオブジェクトは変更できません。しかしこれらの値を保持する変数(コンテナ)は変更できます: my $a = 1; $a = 2; # 驚くにはあたりません バインディングは ::= 演算子を使ってコンパイル時に行うこともできます。 2つの変数がバインディングされているか調べるに...