読者です 読者をやめる 読者になる 読者になる

初代Masteries

きっとモヒカンにもなれないお前たちに告げる!!!

社内のCPAN Authorになろうハッカソンに大阪から参加した

これから入社までの間, 自分のメンターを務めて頂く弊社(GaiaX)の先輩2人が「CPAN Authorになろうハッカソン」というステキなハッカソンを社内で開催する, という噂を聞きつけたので大阪から参加してきました.

ハッカソンの様子については, @さんの「社内でCPAN Authorになろうハッカソンを開催しました!!」に詳しくまとめてあるので, こちらをご覧頂ければと思います.

今回やったこと

LLVM::Buildの開発

LLVMやClangをいい感じにビルドする為のモジュール, LLVM::Buildを書きました.

https://github.com/papix/LLVM-Build

元々, 泥酔ハッカソンでClang::BuildというClangのビルドツールを開発していたのですが, 「これ, ClangというよりはLLVMのビルドツールにした方が汎用性あるよな...」という事でイチから書きなおしてみました.

まだテストが不十分かなあ... と思っているのでCPANにアップしていませんが, 研究室で検証して問題がなさそうであれば, 近いうちにCPANで公開したいと思っています.

Acme::SuddenlyDeathの改良

いくつかの会社の社内IRCで使われたり, 使われなかったり... という噂を時折耳にするようになった拙作モジュール, Acme::SuddenlyDeathに, 'sudden-death'コマンドを実装しました.

https://metacpan.org/module/Acme::SuddenlyDeath

このコマンドを使うことで, CLIから直接「突然の死」のAAを生成することができます.

$ sudden-death 'Acme大全に載るぞ!'
_人人人人人人人人人_
> Acme大全に載るぞ! <
 ̄^Y^Y^Y^Y^Y^Y^Y^Y^ ̄

Sudden Death APIの開発

Yancha辺りから「API化しよう!」という声が挙がったので, 勢いでSudden Death APIをNephiaを使って実装しました.

http://sudden-death.papix.net/

例えば, 「CPAN Authorになろうハッカソン!」を「突然の死」AAにしたい場合は,

http://sudden-death.papix.net/CPAN Authorになろうハッカソン!

にブラウザでアクセスすればOK.

_人人人人人人人人人人人人人人人人_
> CPAN Authorになろうハッカソン! <
 ̄^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^ ̄

こんな感じのテキストが表示されます.

また, curlを使ってこんなこともできます.

$ curl -L http://sudden-death.papix.net/夜行バスつらい
_人人人人人人人人_
> 夜行バスつらい <
 ̄^Y^Y^Y^Y^Y^Y^Y^ ̄ 

...ちなみにこのAPIを使って, @さんがChrome Extentionを開発したりしていて, なんかよくわからないことになっています.

@さんのAcme::EvaTitlenizeにpull requestを送った

CPAN Authroになろうハッカソンの懇親会(と言う名の飲み会)の後, 弊社の部室でsaisa6153さんと泥酔ハッカソン(?)を開催しました.

先ほど紹介したSudden Death APIの調整の他, saisa6153さんが開発していたAcme::EvaTitlenizeにpull requestを送ったりしました.

https://metacpan.org/module/Acme::EvaTitlenize

お酒の勢いでガンガン実装していたら, saisa6153さんの実装したコードがかなりリファクタされていたので, これからガンガン投げるISSUEを受けて, 新しい機能をどんどん実装して頂ければと思っております.

...というか, その, すいませんでした(土下座).

まとめ

社内で開催されたCPAN Authorになろうハッカソンに参加して, LLVM::Buildの開発とAcme::SuddenlyDeathの改良, そしてSudden Death APIの整備を行いました.

社内で開催したからか, はたまた先輩方が見守る環境だからだったのか, いつも以上に集中してコーディングができた... ような気がします.
その代わり, 帰阪の夜行バスでの疲れもあって, 今日1日ほとんど使い物にならない状態になっていましたが...

で, 今日1日ぐだぐだしながら考えていたのですが, Acme::SuddenlyDeatやSudden Death APIで生成できる「突然の死」AAというのは, フォントのサイズや太字・斜体などを変更することなく, 任意の文字列を強調出来るいい手段*1なんですよね.

ブーム(?)は既に終わっていますが, markdown2impressなどのテキストベースでプレゼン資料を作る時に, 「文字列を強調したい...!」となった際, 「突然の死」AAが活躍するという場面が今後も時々ありそうな気がするので, Acme::SuddenlyDeathもSudden Death APIも, しっかり保守して行きたいと思います.

*1:文字を強調する, という意味ならFIGletとかも該当しますが, 日本語は扱えませんし...