YAPC::Asia 2006 Tokyo Sessions

icalendars

Subscribe with iCal
Timetable (PHP iCalendar)

Introduction to Pugs

Started in February 2005, Pugs is an implementation of the Perl 6 language that contains an interpreter based on Haskell and a compiler that targets multiple backends, including Parrot and Haskell. In this talk, Pugs author Audrey Tang presents the design of Pugs and the current state of the project. This talk also covers ways to put Pugs to immediate practical use and the roadmap for future development of Pugs and Perl 6.

Perl 6 の言語実装として 2005 年 2月にはじまった Pugs プロジェクトでは、Haskell ベースのインタプリタや、Parrot と Haskell をふくむ複数のバックエンドへのコンパイラが実装されています。このトークでは、Pugs の作者である Audrey Tang が Pugs のデザインやプロジェクトの現在のステータスについてプレゼンします。Pugs をいますぐ実際に使ってみる方法や、Pugs と Perl 6 の開発ロードマップについても紹介します。

Module::Compile - A Shrew(e)d Axe

Source filtering is possibly Perl's most powerful feature. Unfortunately it is raw, untamed power... as Larry calls it: A crude axe. Module::Compile is a brave new attempt to fix the problems of source filtering using a well kept secret feature of Perl. A shrewd axe?

ソースフィルタリングは、おそらく Perl のもっとも強力な機能です。残念ながら、それは生々しく、野生のままほったらかしで、Larry いわく 「未完成のオノ」みたいなものです。Module::Compile はこうしたソースフィルタリングの問題を、とある Perl の秘密機能をつかって解決しようとする勇敢な試みです。ちょいと利口なオノぐらいかな?

mightyv

See how Perl, Catalyst and CPAN made it easy for two people to build an award-winning website in four weeks.

Perl, Catalyst と CPAN を利用して、賞を受賞したサイトを2人で4週間でつくった裏側を紹介します。

(TBA)

(TBA)

Plagger - RSS/Atom remixing platform

Plagger is a pluggable RSS/Atom aggregation and syndication software written in Perl. In Plagger, everything is implemented as a set of small plugins. This talk will cover what Plagger can do, how powerful it is and how to create your own plugins.

mixi.jp: ChangeLog

日本最大のソーシャルネットワーキングサービス mixi。2004年のサービス開始から今日まで、増え続けるトラフィックに対してこのシステムがどのように成長して来たのか。その過程を開発者自身が語ります。

JSAN and AJAX

A brief overview of AJAX, the JSAN project, and some tips on server-side programming for AJAX-y web applications.

AJAX や JSAN プロジェクト、AJAX な Web アプリにおけるサーバサイドプログラミングの Tips を簡単に紹介します。

♨ Jifty

Jifty is a new way to build web applications in Perl. With Jifty, you write less code, experience less pain and have a lot more fun, all while building great-looking applications. Jifty comes with a pony.

Jifty は Perl による Web アプリケーション開発の新しい方法です。Jifty があれば、より少ないコードで、メンドウなことなしに、むちゃくちゃ楽しく、イカしたアプリケーションを作ることができます。Jifty にはポニーもついてます。

the first postmodern computer language vs the first Babel-17 computer Language: Ruby

We know TMTOWTDI as Perl's motto. But there is another language which have the same motto: Ruby. However, two language have crucial difference. While Perl is the first postmodern language, Ruby is the first Babel-17 language. What's Babel-17 computer Language? Why is Ruby Babel-17? I'll talk about Perl from a point of Rubyist's view, and difference between Perl and Ruby.

Perl Best Practices

Best practices are programming habits that help you write cleaner, safer, more efficient, and more maintainable code. In this talk, Damian will explain his philosophy of "best practice", and then demonstrate seven simple coding habits that can immediately improve your Perl code.

ベストプラクティスとは、よりキレイで、安全で、効率が良くてメンテナンス性も高いコードを書くための、プログラミングの習慣です。このトークでは、Damian が彼の「ベストプラクティス」哲学を解説し、自分の Perl コードをいますぐに改善できる 7つのカンタンなコーディング習慣を紹介します。

Marrying perl with other languages

Chia-liang Kao has been mixing different languages together for fun, writing perl5 in perl6, using CPAN modules in JavaScript. Come to learn the secret recipes and XS-fu, so whenever you are in love with a programming language, they can get the power of CPAN as well!

Chia-liang Kao は異なるプログラミング言語をまぜこぜにするのが大好きです。perl5 を perl6 で書いたり、JavaScript の中から CPAN モジュールを利用したり。このトークでその秘密のレシピと、ちょっとした XS の魔術を学んで、自分の好きなプログラミング言語に CPAN のパワーを融合させてみましょう!

Glue: Separate Application Logic from Code

通常のアプリケーションは、コードの中にアプリケーションの大きなロジックが入っていますが、入っているからこそ、それとそれ以外というのが絡んで、中途半端に再利用できないしろものが作られるということがあると思います。Glueでは、アプリケーションのロジックをコードから引きはがし、ルールという別のものにすることで、ルールの中で使われるコードをプラグインとして再利用可能なものにし、ルール自体も再利用可能なものにしています。

Perl 5.8 and Unicode: Myths, Facts and Changes

Perl 5.8 has introduced one of the best Unicode support in the industry. But even three years after its release, this is one of the most misunderstood and misused features. This session is an attempt to alleviate that situation. Based upon the OSCON 2005 Presention but with recent updates, including Jcode.

Perl 5.8 により導入された Unicode サポートは、フリーソフトウェアにおいて、もっとも優れたレベルにあります。しかしリリースから 3年たった今も、この機能はもっとも誤解され、間違った使い方をされているものの1つでもあります。このセッションは、この状況をいくらかでも解決しようという試みです。OSCON 2005 のプレゼンをベースにしますが、Jcode を含む最近のアップデートも紹介します。

Template Toolkit for non-web applications

www.template-toolkit.org says "The Template Toolkit is a fast, powerful and extensible template processing system. It is ideally suited to the production and maintenance of web content and other dynamic document systems."

Template Toolkit is an excellent system for web content, but it is also really useful for many other tasks. If you've thought about using the m4 macro language to help manage your system configuration files, but you didn't like it, you should try Template Toolkit. If you need to run a mail merge but you hate Windoze and/or Word, you should try Template Toolkit. If you're being forced to use Java and your IDE won't write at least half your code, you should try Template Toolkit. Or in Perl, if h2xs and ModuleMaker don't do it for you, you should try Template Toolkit.

This talk will explain how.

www.template-tookit.org によれば、「Tepmlate Toolkit は高速で、パワフルで、かつ拡張可能なテンプレートシステムです。Web コンテンツやその他の動的なドキュメントシステムの開発やメンテナンスに最適です」。

Template Toolkit は Web コンテンツに最適な、すばらしいシステムですが、他のタスクにも有用です。m4 マクロ言語をつかってシステム設定ファイルを管理しようと思ったことがある(でもそれが好きじゃない)なら、Template Tookit を試してみるべきです。mailmerge を走らせる必要があるけど Windows や Word が嫌いなら、Template Toolkit を試してみるべき。Java を書かなきゃならないのに IDE は半分のコードも生成してくれないなら、Template Toolkit を使ってみよう。Perl で h2xs や ModuleMaker がうまく動かないなら、Template Toolkit の出番。

このトークではそれをどうやるか、解説します。

Perl 6 Update

Damian presents a fast-paced tour of the exciting new features of Perl 6.

Damian が、Perl6 のエキサイティングな新機能をチョッパヤで紹介します。

Kwiki-Kwiki

Kwiki-Kwiki reinvents the way distributing wikis. It is based on Kwiki, the framework for Wiki, to be the framework of Wiki distribution. With Kwiki-Kwiki, Kwiki hackers are now easily bundle any plugin they want and make a Kwiki package easily.

Kwiki-Kwiki は Wiki の配布方法の再発明です。Kwiki をベースに、Wiki ディストリビューションのフレームワークを目指しています。Kwiki-Kwiki を使えば、Kwiki ハッカーがプラグインを簡単にバンドルしたり、新しい Kwiki パッケージを簡単につくることができます。

Inside Net::AJP13

Apache 2.2.0から正式サポートされたAJP13のプロトコルとその特性を探る。Webサーバとアプリケーションサーバ間の通信プロトコルの解説や、CGI/mod_perl/FastCGIとの差異、Pure Perl実装のNet::AJP13の現状など。

Perl DateTime project

The Perl DateTime Project was started at the beginning of 2003 to create a set of interoperable modules covering all aspects of date/time programming. Since the beginning of the project, several dozen modules have been created including a core date/time object, time zone modules, modules for numerous non-Gregorian calendars, formatting and parsing, and much more.

This presentation will show you how to solve date/time programming problems using modules from DateTime Project. Some of the areas covered will include how to handle data in for date/times in multiple time zones, date/time math, localization, formatting and parsing, set math with date/times, and more.

Perl DateTime プロジェクトは 2003 年頭に始まり、日付や時間関連のプログラミングすべてをカバーし、API のバランスがとれたモジュールを作ってきました。プロジェクトの開始以来、コアの date/time オブジェクト、タイムゾーンのモジュール、いくつものグレゴリアン以外の暦、フォーマットやパース、それ以外にもたくさんのモジュールが作られてきました。

このプレゼンテーションでは、DateTime プロジェクトによって生まれたモジュールで、日付や時間関連のタスクをどう解決するか紹介します。複数のタイムゾーンにおける日付・時間処理や、日付・時間の計算、ローカライズ、フォーマットやパース、日付・時間の集合計算などをカバーする予定です。

オープンソースソフトウェアにおける統一したレガシーエンコーディングの変換機能の開発について

Perl 5.8.0 から標準サポートされた Encode モジュールでは、Windows 機種依存文字対応のシフトJIS符号化方式の文字コードとして cp932 がサポートされている。しかし、cp932 を日本語EUC符号化方式 や 7ビットJISコード符号化方式に変換する事が出来ないため適切な文字コード変換できないケースが生じている。今回、cp932 を他の符号化方式に変換できるようにするための文字コードの追加を行う。また、他のソフトとのデータ交換が出来るようにする為、libiconv, glibc, Ruby, Python, PHP, PostgreSQL, MySQL, nkf などにも同様の追加・修正を行う予定である。

Learning Haskell

What's faster than C++, more concise than Perl, more regular than Python, more flexible than Ruby, more typeful than C#, more robust than Java, and has absolutely nothing in common with PHP?

It's Haskell!

Tired of writing unit tests to cover corner cases? Let the computer write it for you with QuickCheck. Find regex-based parsing unmaintainable? Learn how to write a complete parser for Perl 6's grammar in 15 minutes with Parsec. Stuck in deadlocks and race conditions? STM solves all your concurrency woes. XS and SWIG gives you headaches? FFI lets you embed C code quickly and safely.

Haskell is an emerging general-purpose functional language, with unique features that enable extremely rapid development of bug-free, concise, and maintainable code. This talk shows how to apply Haskell to day-to-day tasks, tips for integrating it with other languages, and secrets for boosting your productivity by an order of magnitude.

C++ より速くて、Perl より簡潔で、Python よりきちんとしていて、Ruby より柔軟で、C# より型が充実していて、Java より頑強で、PHP とは何の共通点もないものって?

Haskell ですよ!

コーナーケースを探すのにユニットテストを書くのに疲れた? QuickCheck を使ってコンピュータに書かせちゃいましょう。正規表現ベースのパーサはメンテナンスしにくいのに気づいた? Parsec を使って 15分で Perl6 の完全なパーサを書く方法を勉強しましょう。デッドロックやレースコンディションはもううんざり? STM が concurrency 問題は全部解決してくれます。 XS や SWIG が頭痛の種になってる? FFI なら C コードを簡単に、かつ安全に埋め込めますよ。

Haskell は最先端の一般向け関数型言語で、バグフリーで、簡潔で、メンテナンスしやすいコードを、めちゃくちゃ短期間で書くことができちゃうんです。このトークでは、Haskell を日常のタスクに使う方法や、他の言語と連携させる Tips、それから生産性をものすごい勢いで向上させる秘密も教えちゃいます。

Fighting with Blog spams

日々増え続けるコメント・トラックバックスパムや Splog (Spam Blog)。Bulkfeeds の提供する DNS ブラックリスティングや Movable Type プラグインの紹介など、Blog spam への傾向と対策を解説します。

On debug screens

Recently Japanese Shibuya.pm members released a string of DebugScreen modules. I'll show you what they are, why we wrote them, what should be done in the future. Though their implementation has their own difficulties, they'll make debugging far easier. Modern frameworks should provide a decent one.

SVK: Version Control without the Headaches

svk is quickly becoming the version control system of choice for many people who need to work without a constant connection to a master repository, to track and painlessly merge between multiple lines of development, and to transparently branch others' projects.

svk は、多くの人にとってベストなバージョン管理システムとして受け入れられています。マスターレポジトリに常につながってる必要がなく、複数の開発ラインをトラックしたりうまいことマージしたり、他人のプロジェクトレポジトリを透過的にブランチしたりといったメリットがあります。

Getting Your Feet Wet With XS

「XSでなんかちょこまか書いてみたいけど、XSってなんじゃこれ!」な人のための初めてのXS講座。

混合語 (Kongougo)

It is well known that Larry Wall stole lots of good bits from other programming languages to create and then extend Perl. But Perl's position as the most eclectic Programming language has been threatened by Ruby, created by Matsumoto Yukihiro by stealing all the best bits from Perl. Larry responded by stealing all the good bits from Ruby to use in Perl6, but he soon realised that this would not be enough. To defeat Ruby, Larry will use his impressive linguistic skills to steal from Matz's native language:Japanese.

This talk starts by examining the existing similarities between Perl5 and Japanese, then looks at some of the new Perl6 features that Larry stole from Japanese.

Larry Wall は、他のプログラミング言語から多くのものを盗み、Perl を拡張してきたことはよく知られています。ですが、もっとも折衷的なプログラミング言語としての地位は、 Ruby の作者であるまつもとゆきひろ氏が Perl から多くのものを盗んだことにより、脅かされてきています。

それに対して Larry は、Ruby のいいところを盗んで Perl6 にとりこんでいますが、それでは足りないということに気づきました。Ruby を打ち負かすには、Larry は自身のすばらしい言語学の才能をもって、Matz の母国語である「日本語」から盗む必要があったのです。

このトークでは、Perl5 と日本語の類似性から始まり、Perl6 の新機能のうち日本語から盗んだと思われるものを、いくつか解説します。

Sufficiently Advanced Technologies

In module design, interface is everything. Going one step beyond this dictum, Damian demonstrates and explains several practical applications of Clarke's Law ("Any sufficiently advanced technology is indistinguishable from magic") by presenting a series of useful modules whose interface is ... nothing.

モジュールの設計においては、インタフェースこそがすべてです。この格言から一歩先に踏み出して、クラークの法則(「十分に進んだテクノロジーは、魔法と見分けがつかない」)を実用化したいくつかの例を紹介します。これらのモジュールはとても便利で、インタフェースは ... もはや何もないのです。

Inside Hatena::Bookmark's Backend

はてなブックマークの裏側見せます。mod_perl / MySQL の負荷分散や mod_perl 2.0.2 へのマイグレーション方法などなど運用にまつわるあれこれ。

Wikiwyg

Wikiwyg is the simple way to add Wysiwyg editing to your existing social software project.

Wikiwyg を利用すると、 WYSIWYG エディタを既存のソフトウェアにカンタンに導入することができます。

Catalyst Everything!

Catalystの少し変わった使い方を紹介。Webアプリ以外でも使えるんです。

What is a Data Model? The Relational Model; SQL is not Relational

A talk about what a data model is, what the relational model describes, and where SQL falls short of the mark. The goal here is to explain some of theory behind the relational model, and the pitfalls that SQL introduces.

データモデルとは何か、リレーショナルモデルにより記述されるものとは、また SQL がうまく腑に落ちないケースは何かについて語ります。リレーショナルモデルについての理論や SQL による落とし穴をいくつか解説できればと思います。

DebugScreen meets PadWalker

今 Perl Framework 界で騒然のブームとなっている DebugScreen ハック。日本発の Web Application Framework Sledge では PadWalker を用いて、更なる高みを目指します。

続my変数マニアックス(仮)

my変数とサブルーチンの使い方あれこれ。

できる Perl debugger

Perl debugger の使い方の初歩の初歩。今まで遣ったことが無い人向けに簡単な例を交えて紹介。

CPAN Recent Changes

CPANの更新情報をChangelog付きで購読できるCatalystアプリケーション、CPAN Recent Changesの紹介。

曜日判定における言語の壁問題

日本人は日本語を使うべきである!日本万歳!日本万歳!

rapide - Remote Apache IDE

Perl CGI の統合開発環境「rapide」の公開。rapide は、IPA未踏ソフトウェアプロジェクトの支援を受けて開発された、ウェブブラウザ上で動作する統合開発環境であり、 サービス運用中のサーバ上で、CGI の GUI デバッグやバージョン管理等が可能となっている。http://www.ipa.go.jp/jinzai/esp/2004mito1/mdata/9-5.html

Let's play Sudoku

Do you know Sudoku or Numberplace, a kind of cross-'number' puzzle. The name 'Sudoku' is born in Japan around 1988 (in fact, it's a trademark), but it seems to have far long history. Anyway, I'll try to implement Sudoku player (solver and generator) with Perl/Tk -- yes, needlessly :-). Let's play!

ppencode for Perl6

Lightweight Language Day and Night のラストを飾った伝説のセッション復活。Perlの予約語だけで ""just another perl hacker"" を出力するPerlプログラム。それを拡張して、任意の文字列を出力できるようにした ppencode の紹介です。さらに
パワーアップした Perl6 バージョンを(まだ作ってないけど…)頑張って英語で紹介したいと思います。

Template Toolkit + Javascript = Jemplate

Jemplate is a template framework for Javascript based on Perl's Template Toolkit.

Jemplate は Perl の Template Toolkit をベースにした、JavaScript 用テンプレートフレームワークです。

Keynote

(TBD)