タグ

adventcalendarに関するdameninngenn_owataのブックマーク (30)

  • YappoLogs: Perl-users.jp創設者 大沢Yappo和宏 からの緊急のお願いをお読み下さい

    Perl-users.jp創設者 大沢Yappo和宏 からの緊急のお願いをお読み下さい http://perl-users.jp/articles/advent-calendar/2011/ http://atnd.org/events/22657 今年もやってきました。アドベントカレンダーの季節が! アドベントカレンダーは特別なものです。たとえるなら図書館、公園、あるいは知の神殿のようなものです。私たちが考えたり、学んだり、知識を交換しあったりできる場所です。 既に5トラックの応募が始まってます!まだまだ席に余裕がありますので Perl に関わってる方は是非参加しましょう。 アドベントカレンダーを開始したとき、そこに広告バナーを設置し営利企業にすることもできたでしょう。しかし、私は別の道を選びました。私たちは、書き込みシステムのスリム化に努め、小さな組織であり続けています。私たちは使命を

  • PerlIO::via で遊ぶ - JPerl advent calendar 2010 acme Track

    こんにちは、こんなにトミールを名乗っているのにいつまでたってもトミールの検索結果が抗ウイルス製剤のトミールです。今年も1位奪還は失敗しました。 さて、今日は Acme じゃないんだけど限りなく Acme ぽい PerlIO::via をご紹介しましょう。 役に立つ PerlIO 基礎知識(Acme に入る前に) perl の IO レイヤーは、実はいろいろできて便利です。一番便利なのは、:encoding() でしょう。 こういう、 use autodie; use Encode; open(my $fh, '<', 'file.txt'); while (my $line = Encode::decode('cp932', <$fh>)) { print Encode::encode('utf-8', $line); } 入力を cp932 エンコーディングで decode()、出力は

    PerlIO::via で遊ぶ - JPerl advent calendar 2010 acme Track
  • EBCDIC文字コードで記号プログラムを難読化する - Articles Advent Calendar 2010 Sym

    3回連続で執筆を担当しているid:TAKESAKOです。 ASCIIと非互換な文字コードとして古くからEBCDICが知られています。 今日は記号プログラミングでわかりにくくしたJavaScriptプログラムをASCII非互換の文字コードEBCDICでさらに難読化してみようと思います。 EBCDICとは 1964年にIBMによって作られた汎用大型コンピュータ用の文字コードがEBCDICです。 EBCDICは「Extended Binary Coded Decimal Interchange Code」の略で「エビシディック」と発音します。COBOLなどの古代言語で使用された二進化十進数(BCD)を拡張する形で文字コードが定義されています。メインフレームやホストコンピュータなどで現在も使用されている現役バリバリの文字コードです。

    EBCDIC文字コードで記号プログラムを難読化する - Articles Advent Calendar 2010 Sym
  • 使っちゃいけない標準モジュール - Articles Advent Calendar 2010 Casual

    gfxと申します。 Perlは後方互換性を重視しているので、標準モジュールはめったに取り除かれる事がありません。しかしそれでも、いくつかのモジュールが将来的に取り除かれる見込みです。そのようなモジュールは使用しないほうがいいでしょう。また、取り除かれはしないものの、様々な理由から使用すべきでないモジュールもいくつかあります。今日は、そういった使うべきでないモジュールを紹介します。なお、このエントリの対象バージョンは5.8から5.14を想定しています。 さて、まずは取り除かれるモジュールです。現在のところ、以下の三つのモジュールが5.14でコアから削除される予定です。 Class::ISA Pod::Plainer Switch Class::ISAはクラス階層を直列化するモジュールですが、5.10以降はmroに取って代わられました。5.10未満のバージョン用にはMRO::Compatが用意

    使っちゃいけない標準モジュール - Articles Advent Calendar 2010 Casual
  • モジュールのバージョンを確認するときどうやってますか? - Articles Advent Calendar 2010 Casual

    もう恋なんてしないなんて、言わないよ絶対kamipoです。 ときに皆さん、Perlのモジュールのバージョンを確認するときどうしてますか? 僕はPerlをはじめた最初のころ、ずっとこうやっていました。 $ perl -MAcme::Hidek -le 'print $Acme::Hidek::VERSION' 40.0 こうやってたの、僕だけじゃないですよね!? いまでは以下のワンライナーにaliasを張っているので毎回がんばってワンライナーを打たなくてよくなりました。 $ alias pmversion='perl -le '"'"'for $module (@ARGV) { eval "use $module"; print "$module ", ${"$module\::VERSION"} || "not found" }'"'" $ pmversion Acme::Hidek Ac

    モジュールのバージョンを確認するときどうやってますか? - Articles Advent Calendar 2010 Casual
  • Python SyntaxError Programming を解析してみた - Articles Advent Calendar 2010 Sym

    こんにちはこんにちは!! id:Yoshioriです. sym - JPerl Advent Calendar 2010 ……濃すぎですよね>< 「記号プログラミングを考え出したりする人達は凄すぎ>< ついていけない><」 みたいに考えちゃってる人はいませんか? 僕は考えちゃってました>< でも,それはもったいないです!!! そんな僕みたいな一般人でも,書かれた記号プログラミングを解析するという楽しみがある事に気が付きました. なので今日はそんな「記号プログラミングを解析する」のを実際にどうやるのかを書いてみたいと思います. 題材は id:TAKESAKO の 「Python SyntaxError Programming」です. 良かったら読みながら手元で iPython などで実際に同じように実行していただくとさらに楽しめるかと思います. 早速読んでみる #!/usr/bin/pyth

    Python SyntaxError Programming を解析してみた - Articles Advent Calendar 2010 Sym
  • Acme::HeptaSymbolizeで7記号プログラミング - JPerl advent calendar 2010 acme Track

    こんにちは、@sugyanです。 先日、[/articles/advent-calendar/2010/sym/:title=sym track]にて"[/articles/advent-calendar/2010/sym/12:title=7種類の記号だけでPerlプログラムを書く]"という記事を書きまして、せっかくノウハウが出来たので一応モジュール化しておこうと思い"Acme::HeptaSymbolize"というものを作りました。 リポジトリはこちらです。 https://github.com/sugyan/Acme-HeptaSymbolize 特に依存は無いはずなのでサクっとインストールできると思います。 ■使い方 まぁ先に書いておきますと、ぶっちゃけAcme::Bleach系の自己書き換えモジュールです。 Acme::EyeDropsのようなものではありません。 例えば、こんな

    Acme::HeptaSymbolizeで7記号プログラミング - JPerl advent calendar 2010 acme Track
  • Acme::BrainfucktoryでBrainf*ckをもっと簡単に - Articles Advent Calendar 2010 Acme

    (firstly written in Japanese, later in English) こんにちは。もうだいたい持っているネタは尽きかけてるmakamakaです。 今日は以前作ったAcme::Brainfucktoryについて記事を書きます。このモジュールはAcme::Brainfuck系のモジュールをお手軽につくるためのモジュールです。なお、Brainf*ckについては素晴らしいことにsym track 1日目でも取り上げられていますので、そちらをご参照ください。 さて、CPANにはAcme::Brainfuck、Acme::Ookなどのbrainfuck系Acmeモジュールがいくつかあります。またAcmeではなくLanguage系モジュールとしてLanguage::BF(brainfuckを扱う)さえあります。 で、これらは基的に8種類のコードとオペレーションが対応しているだ

    Acme::BrainfucktoryでBrainf*ckをもっと簡単に - Articles Advent Calendar 2010 Acme
  • Perl から Growl をちゃんと使おう - Articles Advent Calendar 2010 Hacker

    こんにちわ。Growl 大好きっ子 typester です。 重たいバッチジョブを走らせている間、別の作業をする。ジョブが終わったらデスクトップに Growl を表示させて処理の完了を知る。 その合間にもRSSから配信されたニュースや自分への Mention を Growl 表示し、あっという間に情報を操作する。 誰もが憧れる Hackish な作業風景ですね。Mac ユーザであればその他の活用方法を知ってる人も数多くいるでしょう。 でもperlbrewで64bit perlいれてるからMac::Growlがうまくインストールできないし... そんな風に思っていた頃が僕にもありました。 Cocoa::Growl http://search.cpan.org/dist/Cocoa-Growl/ そんな不満を打破するべく僕は Cocoa::Growl を書いた。 XS で Objective-

    Perl から Growl をちゃんと使おう - Articles Advent Calendar 2010 Hacker
  • 時にはお伽の話を - Acme::Rumpelstiltskin - Articles Advent Calendar 2010 Acme

    (firstly written in Japanese, later in English) こんにちは、前回2回の記事が受けなく軽く凹み気味のmakamakaです。今日はまず最初にお伽話をしましょう。ご存じの方も多いと思いますが、ルンペルシュティルツヒェン(ランペルシュティルツキンなど日語表記は色々)というドイツの童話です。日Wikipediaのルンペルシュティルツヒェン(英:Rumpelstiltskin)に細かい説明がありますが、かいつまんでいうと: 粉挽屋が「うちの娘は藁を紡いで黄金に変えれるよ」とテキトーなこと言ってたら、王様が「じゃ、明日の朝までにやってみせて。お后にしてあげるから。出来なきゃ首チョンパね」と娘を塔に幽閉。 娘さん困り果てて泣いていると、小人が出てきてコンニチハ。娘の身につけてるものと交換で藁を金に変えてくれましたとさ。 ところが、できあがった金を見た王

    時にはお伽の話を - Acme::Rumpelstiltskin - Articles Advent Calendar 2010 Acme
  • Acme::Seclusion::JP - Articles Advent Calendar 2010 Acme

    こんにちは。Acme Track 2回目のhide_o_55です。 今回紹介させて頂くのは、Acme::Seclusion::JPです。 このモジュールを使用すると江戸時代のような鎖国状態を実現できます。 具体的には日中国韓国、オランダ*1以外のモジュールは使用できなくなります。 use Acme::Seclusion::JP; use Moose; 上記のようにMooseを使うと標準エラー出力にエラーメッセージを出力しexitします。作者が日人のMouseなら通常動作をします。 この動作をどのようにして実現しているかというと、http://perldoc.perl.org/functions/require.html にも書かれている、@INCに[コードリファレンス|オブジェクト]を入れるテクニックを使用しています。@INCにコードリファレンスが含まれている時にモジュールをロード

    Acme::Seclusion::JP - Articles Advent Calendar 2010 Acme
  • 記号プログラミングで学ぶRuby1.9の仕様変更?? - Articles Advent Calendar 2010 Sym

    またまた再登場のid:TAKESAKOです。 今日はRuby1.8で学ぶ、簡単?!記号プログラミングから発展した話題「記号プログラミングで学ぶRuby1.9の仕様変更??」についてお話ししたいと思います。 Ruby 1.8 と 1.9 の非互換 Ruby1.8以前では ?a は'a'のASCIIコードの数値97が返されていましたが、 Ruby1.9からは長さ1の文字列"a"を返すように仕様変更されました。 これはRuby1.9からの多言語対応のためで、文字列をバイト列ではなく文字単位で扱うようになったためです。 ruby1.9> p ?a "a" ruby1.8> p ?a 97 したがって、?? は Ruby1.9では文字列"?"のことですが、Ruby1.8以前では'?'のアスキーコードである63の数値を返すことになります。 ruby1.9> p ?? "?" ruby1.8> p ??

    記号プログラミングで学ぶRuby1.9の仕様変更?? - Articles Advent Calendar 2010 Sym
  • Acme::W - Articles Advent Calendar 2010 Acme

    こんにちは、冬なのに脇からの発汗が凄まじいdameninngennです。 脇周りが白くなってるインナーを確認してはニッコリする毎日です。 さて、先日Acme::Wなるモジュールを書いてみましたので今回はその紹介をさせて頂きます。 このAcme::Wというモジュールもacme Track 8日目を担当されたhide_o_55さんのAcme::Tsuと同様にソース書き換え系のモジュールです。 使い方は簡単。cpanからAcme::Wをインストールし、先頭に「use Acme::W;」と書くだけです。 use Acme::W; use strict; use warnings; print "Hello Acme World!!\n"; 上記のスクリプトを実行すると % perl w.pl Hello Acme World!! と表示され、ファイルが下記のように書き換わります。 use Acme

    Acme::W - Articles Advent Calendar 2010 Acme
    dameninngenn_owata
    dameninngenn_owata 2010/12/13
    acme Track書きました><
  • 7種類の記号だけでPerlプログラムを書く - Articles Advent Calendar 2010 Sym

    ■前回のおさらい 前回は、"Hello world!"を出力するPerl記号プログラムとして以下のものを作成しました。 '' =~ ('(?{'.( ('['^'.').('['^'(').('`'|'%').' '.('['^'(').('['^'/').('['^')').('`'|')').('`'|'#').('['^'/').';'. ('['^'.').('['^'(').('`'|'%').' '.('['^',').('`'|'!').('['^')').('`'|'.').('`'|')').('`'|'.').('`'|"'").('['^'(').';'. ('['^'+').('['^')').('`'|')').('`'|'.').('['^'/'). (' +"'.('`'^'(').('`'|'%').('`'|',').('`'|',').('`'|'/')

    7種類の記号だけでPerlプログラムを書く - Articles Advent Calendar 2010 Sym
  • Acme::Ikamusumeで侵略しなイカ? - Articles Advent Calendar 2010 Acme

    人間どもよ! 我こそは海からの使者の手先、トミールでゲソ!! 今日はAcme::Ikamusumeを紹介するでゲソ 使い方 geso() にテキストを渡すと変換されるでゲソ。簡単じゃなイカ? use utf8; use open qw/:utf8 :std/; use Acme::Ikamusume; print Acme::Ikamusume->geso(<<'IKA'); 私は海からの使者、イカ娘です。 みんなもいっしょに侵略しませんか? IKA 「私は海からの使者、イカ娘でゲソ。みんなもいっしょに侵略しなイカ?」 と、なるでゲソ。 おろかなる人間どものために、簡単に試せるサイトを作ったのでさっそくてきとうな文章を侵略してみようじゃなイカ!? 侵略!イカ娘変換 開発こばなし ちょっと作れろうとおもってすぐわかったのでゲソが、意外にイカ文法がむずかしくこれはサクっとイカない、と放置してい

    Acme::Ikamusumeで侵略しなイカ? - Articles Advent Calendar 2010 Acme
  • Acme::Yomeru - Articles Advent Calendar 2010 Acme

    こんちには 、 みさなん 、bayashi です。 さくむて かなぜど ひいて いですないか 。 おかだらは くれれぐも お だいじに 。 げきんが あれば こーども かける ! げきんが あれば AKB48も うたえる ! さて 、 あれ 、 なだんか へんすでね 。 あれれ 、 よく わせかまりんが 、 この ぶょんしう 、 よめて いすまか ? よめますね 。 なぜか よすまめね 。 かなり びみかょうも しせんまれが 、 よめすまね 。 よなめい ひとは 、 がばっんて よんで くさだい 。 はい 、 そでうす 。 いちじ わいだに なった 「 なぜか よめる ぶょしんう 」です 。 きうょは 、 この ような なぜか よめ る ぶうしょんを せせいい する もじゅーるを しかょうい します 。 もう 、 かんの よい かたは きづいて いかると おいすもまが 、 いっ ぱつ ねた

    Acme::Yomeru - Articles Advent Calendar 2010 Acme
  • サルでもわかるPython顔文字プログラミング - Articles Advent Calendar 2010 Sym

    こんにちは。id:TAKESAKOです。 サルでもわかるシリーズ第一弾として、Python顔文字プログラミングの基礎を解説してみましょう。 1. Python顔文字プログラミング 以下のプログラムをPythonインタプリタ上で動かすと、'saru' という文字列が表示されます。 `(''<>'')`[-~-~(''=='')]+`(''<>'')`[''=='']+`(''=='')`[''=='':-~-~(''=='')] 'saru' 実際に Python 2.7.1 のインタプリタで実行してみると確かにそうなります。 Python 2.7.1 (r271:86832, Nov 27 2010, 17:19:03) [MSC v.1500 32 bit] on win32 Type "help", "copyright", "credits" or "license" for mor

    サルでもわかるPython顔文字プログラミング - Articles Advent Calendar 2010 Sym
  • Acme::Tsu - JPerl advent calendar 2010 acme Track

    こんにちは、hide_o_55です。 みなさんアクメで思い浮かべるものは何でしょうか? そうです、アクメツですね。 ということで名前だけ思いついて、勢いで作ったAcme::Tsuを紹介させて頂きます。 あ、ちなみにこれが僕の初Acmeです。 まず、インストール。 git clone git://github.com/hideo55/p5-Acme-Tsu.git cd p5-Acme-Tsu perl Makefile.PL make && make install 次に使い方 use Acme::Tsu; print "Hello world\n"; これだけです。 これでどうなるかというと、Acme::Tsuをuseしたスクリプトがアクメツになります。 こんな感じです↓ $ perl helloworld.pl $ cat helloworld.pl use Acme::Tsu; (

    Acme::Tsu - JPerl advent calendar 2010 acme Track
  • HTTPサーバフレームワークとしてのPlack活用法と、Plack::Middleware::Pictogram::MobileJpを使ったその事例紹介 - Articles Advent Calendar 2010 Hacker

    HTTPサーバフレームワークとしてのPlack活用法と、Plack::Middleware::Pictogram::MobileJpを使ったその事例紹介 実はお腹回りが入らなくなってスーツを新調したhirose31です。 みなさん、Plack使ってますか? 弊社でもStarletをNginxのバックエンドに置いてプロダクション環境でモリモリ使っているのですが、ちょっとした検証にもPlackは大変重宝しています。 具体的には、キャッシュに関連するレスポンスヘッダ(Last-Modified、Expiresなど)の組み合わせと、条件付きGETやブラウザキャッシュの挙動をブラウザごとに調べたときに使いました。あくまで検証用と割りきって特にファイル分割などはせず、psgiファイルにゴリゴリっとベロっとコードを書いてパパパっと検証用のHTTPサーバを作りました。 このように、限定された目的のHTTP

    HTTPサーバフレームワークとしてのPlack活用法と、Plack::Middleware::Pictogram::MobileJpを使ったその事例紹介 - Articles Advent Calendar 2010 Hacker
  • Haskell(GHC)で記号プログラミング - Articles Advent Calendar 2010 Sym

    oskimuraです。 HaskellというかGHC固有なのですが、実はGHCってcppオプションを使う事によってプリプロセッサを展開してくれます。(発見者はid:ranhaさんです) なので、これを利用して記号プログラミングで"HELLO WORD!"を出力してみます。 #define _ 1 #define __ main=print 1の定義とプリプロセッサを通す上でmain関数を呼ばなきゃいけないのでこうしました。 数値を文字列に変換するためにData.Charモジュールのchr関数を使いたいので、次の様にしました。 import Data.Char(chr) (%%) = chr これで(%%)を使ってASCIIコードを文字に変換できます。 ここまでくるともう簡単ですねHelloWorldの文を書いてみたいと思います (&&&) = (_+_+_+_) ^ (_+_+_) --

    Haskell(GHC)で記号プログラミング - Articles Advent Calendar 2010 Sym