2011-01-01から1年間の記事一覧

忙しい人のための「新卒準備カレンダー 2011春」

新卒準備カレンダー 2011春のまとめです。 メッセージや哲学、熱い想いなどのまとめにくいものはのぞき、具体的な行動に絞ってまとめてみました*1。これは、未来を変えるための具体的な行動をとれるようにするためです。いまのところ16日目(@kuenishiさん)ま…

lib::xi - installs missing libraries on demand

gistなどで公開されているPerlスクリプトを実行する際、モジュールが足りないことがよくあります。そういう場合はCan't locate Foo.pm ...というエラーメッセージを見ながらモジュールをインストールするわけですが、決まりきった作業にうんざりしたので自動…

Xslate 1.1000 released!

リリースしました。中間コードのバージョンが上がっているため、このバージョンを実行すると今まで使用していたテンプレートのキャッシュが破棄されます。 http://xslate.org/ 主な変更点は以下の2つです。 ループ制御文(lastとnext)が追加された for-else構…

IT業界を目指す大学生へ

新卒準備カレンダー 2011春という企画のエントリです。本来であれば3/11日の投稿でしたが、東日本大震災があったため本日の投稿となりました。 東日本大震災を目の当たりにして衝撃を受けつつも、身の回りでは困難があるわけでもないので何もしないのがもど…

Parallel module testing in Perl

Twitterにて: window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.…

自己紹介と過去の話

新卒準備カレンダー 2011春に何か書くにあたって、まずは軽く自己紹介的な挨拶を書こう…と思ったら予想外に長い自分語りになってしまったので別途書き出しておきます。エンジニアとしてのスキルや活動については本編に書くので、ここではそれ以外のことを書…

「優れたPerlプログラマを見分ける27の質問」の日本語訳

(追記あり) How to Identify a Good Perl Programmer (by chromatic) が面白かった*1ので、27の質問を訳してみました。chromatic氏によれば、いずれも単純明快な質問でPerlの哲学や特徴をよく現しており、優れたPerlプログラマであれば少なくとも80%は答えら…

JavaScriptにおけるオブジェクトの定義

JavaScriptで一番簡単にオブジェクト指向プログラミングを行う方法 (id:perlcodesample) 私は特にJavaScriptに詳しいわけではなく、オライリーの『JavaScript』、通称サイ本を読んだ程度なのですが、私の知るかぎりJavaScriptでオブジェクト*1を定義する方法…

"Constant subroutine foo::bar redefined" を抑制する

普通のサブルーチンの再定義は "no warnings 'redefined'" "no warnings 'redefine'" で警告を抑制できるわけですが、定数サブルーチンは警告のでる条件がちょっと違います。具体的には、再定義警告は以下のいずれかの条件を満たすときです*1。 use warnings…

Tips on IEC (implicit encoding conversion)

Perlにおいて日本語のテキスト文字列とバイナリ文字列*1を結合すると激しく文字化けするのは誰もがつまづくトラップですが、これはPerlのデフォルトのIECが Latin-1 に基づいて行われるからです。UTF-8ではなくLatin-1なのは後方互換のために必要な決定なの…

livecoderを動かしてみるテスト

id:sugyanの作ったlivecoderがすごく面白そうなのでまずは手元で動かしてみた。 node.js+socket.ioを使ったライブコーディングwebアプリを作ってる - すぎゃーんメモ 上記エントリにしたがっていくつかnode.js用のライブラリをインストールしたところ、特に…

Growl::Anyが新しくなりました

Growl::Any コンストラクタでregister()相当のことができるようになってます。 各バックエンドごとに別モジュールにして、AnyEventのように事前にロードすることで使うバックエンドを選べるようになりました。どのバックエンドも入っていない場合はGrowl::An…

Linux::Inotify2+Growl::Anyでファイルの変更を監視する

Linux::Inotify2ではなくFilesys::Notify::Simpleを使った方がポータブルですが、とりあえずは習作ということで。監視しているディレクトリで何かがあるとピコピコ通知されるので、ああ今PCが頑張っているのだなあという気持ちになれます。 #!perl -w use st…

Re: Chromeのスタートページで自分のはてブをインクリメンタル検索する拡張(ただしPerlで書いた)

http://d.hatena.ne.jp/Cside/20110214/p1 こんなに簡単にChrome拡張が作れるとは!と感動する一方で、Xslateの使い方がいまいちだったので直してみました。pull-reqだけでいいかとも思ったのですが、これらの修正はすべて何度か見たことのあるFAQ的なものな…

Perlの正規表現の限界を突破する

Perlerなら誰しも一度はお世話になったことのあるであろう、大崎氏のPerlメモというサイトがあります。 Perlメモ ここで紹介されているHTMLタグの正規表現は正規表現の叡智が詰め込まれたすばらしいものですが、Perlではこれである特定の文字列系に対してマ…

Xslate 1.0006 released!

リリースしました。 1.0001から1.0006の間には後方互換性を破壊する変更はなく、バグフィクスと小さな機能追加のみです。SEGVを起こすバグや非常に分かりにくいエラーメッセージを吐くバグも修正されているのでアップデートをお勧めします。また、1.0006から…

What does call_sv() return?

call_sv()の戻り値を正確に把握していないがために、Xslate で厄介なバグを引き起こしてしまった*1。具体的には、call_sv()でG_VOIDを指定すると常に1を返すと思い込んでいた。しかし、それは間違いだった。 検証: https://github.com/gfx/p5-XS-CallSV #!p…

mustache.js on JE

(追記あり) Perl製のJavaScript EngineにJEというモジュールがあります。このモジュール、そこそこよくできていて、ブラウザに依存しないようなJavaScriptライブラリならだいたい動くようです。そこで、JEでmustache.jsを動かしてみました。スクリプトは本来…

Xslate meets Scalar::Defer

Template-Toolkitだと関数呼び出しの引数がない場合、括弧を省略できます。しかし、Xslateではかならず括弧が必要であり、この点が非互換となっています。これは、テンプレート内のシンボルの型を意識したほうがテンプレートコードの読みやすいからだと考え…

Logic-less templateに関する覚書

(This entry is a summary of the conversation to @confound and @miyagawa and the paper of ESMVSTE)@confound氏に「Xslateでpush-style template syntaxをサポートしてはどうか」といわれたので、彼やmiyagawaさんからアドバイスをもらいつつ考えたこと…

Why Xslate is so Fast

(There is the Japanese version bellow)There are reasons why Xslate so fast, so this article explains them, which will be added to the Xslate document. Taking precompiling style Template engines which precompile templates are always faster …

Should we avoid C implementation?

先日のPycon mini JPでは、Tenjinのトークが好評だったようでした*1。 How to Create a Highspeed Template Engine in Python このスライドの中で述べられているのは以下のような事です。 Web Appの実行時間の中でViewコンポーネントが占める割合は意外と大…

Is the IBM's code so bad?

(P.S. chromatic fixed the code the article mentioned. Thanks, chromatic.)CGI is okay Bad Code is Irresponsible Basically I agree with his article.However, I don't think that code is "bad": (from Very simple login using Perl, jQuery, Ajax, …

MacBook Air 11インチ欲しい!

MacBook Air 11インチ欲しい!!!11

Xslate 1.0 released!

I have shipped Xslate 1.0, which is very stable! This version includes no radical changes. Instead, only one bug fix and an entry to the cookbook are added. In fact, no critical bugs are reported in months. Thus, I decided the version as 1…