perl

Riji + Daiku + Travis CI で GitHub Pages を運用する

まとめ Jekyll で GitHub Pages 作ったままほったらかしてたので久しぶりに触ろうと思った 「今更 Jekyll でやるのも何かなぁ」 Middleman なら Travis CI 使って更新作業できることを知る Middleman の config.rb 書いてたら面倒になった Gotanda.pm が開催…

会議室名がオシャレ過ぎて覚えられない君へ #vgadvent2013

この記事はVOYAGE GROUP エンジニアブログ : Advent Calendar 2013の14日目の記事になります。 ちょっとハマってて気が付いたら日付が変わってました。 さて、去年のAdvent Calendarは社内図書館のOASISの本の整理の話を書いたので、「今年も会社の話で何か…

正規表現のx修飾子を使い、かつ、"ム"を指定するとTest::MinimumVersionでrequires 5.017009になる

2014-01-03 追記 これ、PPIx::Regexpのせいだった。 「ム」を16進数表示すると\x{E3}\x{83}\x{A0}になり、この最後のA0がWhitespeceと見なされてx修飾子と一緒になると 'perl_version_introduced' => '5.017009'となる。 https://rt.cpan.org/Ticket/Display…

「Minillaをインストールしようと思ったらテストが通らない!><」と思ったら~/.gitignoreのせいでした

家でサクッとインストールできたはずなのに会社で以下のようなエラーが出て「あれー!」となりました。 ===( 49;1 0/? 0/? 1/? )=========================================Use of uninitialized value in string eq at /Users/no-kumagai/.cpanm/work/13868…

YAPC::Asia Tokyo 2013 コアスタッフとしての8ヶ月間を振り返って

今年のYAPC::Asia Tokyoにはコアスタッフとして参加しました。 開催期間中はメインホール担当だったのだけど、前夜祭の準備からバタバタしてしまったのと色んな不安やら心配やらで、YAPC全体把握する余裕が全くなかったです。これはスタッフ4回目で初めての…

Perlのリファレンス比較は==演算子

Perl徹底攻略 (WEB+DB PRESS plus)を買いました。 p.18にリファレンス同士の比較が書いてあり、 リファレンス同士の比較2つのリファレンスが同じものを指していれば値は等しくなります。ですから、リファレンスが入っている変数$xと$yがあったとき、==演算子…

Rubyはハッシュに数値と文字列のkeyが持てるんですね

Rubyで書かれたコードにbugがあって調べることになり、初めて知りました。 Ruby % ruby -e 'h = {1 => true, "1" => false}; p h' {1=>true, "1"=>false} Perl % perl -MData::Dumper -e '$h = {1 => true, "1" => false}; warn Dumper $h' $VAR1 = { '1' =>…

Perlとバーコードリーダーで本棚整理をするよ! #vgadvent2012

こんにちはこんにちは、VOYAGE GROUPエンジニアblog Advent Calendar 17日めを担当するmonmonといいます! どんなネタにしようか土曜日まで迷ったあげく、せっかくの会社のAdvent Calendarなので会社に関係する話にしました! どんな話をするの? 会社の1Fに…

いろんな会社のいろんな人の話を聞けるのはやっぱり楽しい!YAPC::Asia Tokyo 2012に参加して来た!

こんにちは!こんにちは!monmonといいます! 2009年に初めて参加して、一昨年、去年に引き続き今年もスタッフとして参加させてもらいました。 3年続けてスタッフ参加だったためメインホールのリーダー担当を任されたんですが、今回は初めての場所ということ…

Perl の内部表現の一つはたまたま UTF-8 です。内部表現は何か分からないエンコーディングで、常に明示的にエンコードと デコードが必要ということにしておいた方がよいです。

追記 ajiyoshiさんの昔の記事がとてもわかりやすかったので参考に。 VOYAGE GROUP エンジニアブログ : あなたにも今日こそPerlの文字化けが理解できるたった一つの原則 元記事 記事タイトルはperlunifaqの「UTF8 フラグ」って何?からそのまま引用したもの。 …

YAPC::Asia Tokyo 2011でtakeばかりだったのでgiveしていく

あっという間に終わってしまいましたYAPC::Asia Tokyo 2011。 (YAPC::Asia 2011だと思っていたんですが、下のつぶやきを見て「なるほどそうだったのか」とTokyoを入れ直しました。) とりあえず書いておく: YAPC::Asia Sapporo YAPC::Asia Fukuoka YAPC::A…

正規表現のデバッグ方法

re=debugってやると詳細出してくれるの知らなかったのでコピペ。Perlコーディング初心者質問スレ Part 62 502+1 :nobodyさん [] :2011/05/02(月) 02:42:13.10 ID: fV7VGj7j (1/2) 「文字列A 文字列B」 という 2 つの文字列の間に複数の空白がある行におい…

Web::Queryの使い方練習のためにApple Storeのnew製品を取得する

この種のライブラリとして Web::Scraper があるが、Web::Scraper の DSL をおもいだすまでにどうしても時間がかかりがちだったので、こういう風なのもいいかなとおもった。jQuery は日常的につかってるので、わすれないし。 わーぃ。いつもWeb::Scraper使う…

Coro::LWPで/etc/hostsを使う

本番環境と同じドメインでアクセスできるストレージ環境があって、 /etc/hostsのIPアドレスを書き換えて開発のチェックをしてたりします。 で、Coro::LWP使ったscriptでアクセスしてみたら本番の方に行ってしまいハマったのでメモ書き。 まずMacOSXだから/et…

JSTAPdのチュートリアル見ながらJavaScriptのテストをしてみるよ

最近JSTAPdに関するつぶやきを見て 「そうだ!触ろうと思ってインストールしたまま触ってないや!」 と思ったので実際に触ってみた流れとハマった所のメモ。 基本的には perldocjp JSTAPd::Tutorial::JA とかやってチュートリアルを見ればいい。 日本語だし…

perlでmp3タグをいじって歌詞を追加する

久しぶりに触ったら忘れていたのでメモ。 use MP3::Tag; my $mp3 = MP3::Tag->new($mp3_filename); $mp3->title_set('title'); # タイトル $mp3->select_id3v2_frame_by_descr("USLT(eng)", 'lyric'); # 歌詞 $mp3->update_tags(); # タグに保存 # get my($t…

YAPC::Asia2010にボランティアで参加して楽しんで、そして今からYAPC::Asia2011をワクワクして待ってる

超楽しかった!ホントに楽しかった! 去年はYAPC::Asiaに初参加して、わからないながらも色んなセッションをひたすら聞いて、特にTAKESAKOさんのInline::x86 JIT Assemblerは大学の部屋の雰囲気も手伝って 「ホント大学の授業思い出すくらいわからないやぁ」…

psgiファイルをCGIで実行するために勉強

Arkの勉強をしようとサンプルいじりながらちょこっとずつ進めていたら、 さっそくエラーが出てしまってどこがおかしいのかわからず挫折しかかってたところに、 さくらレンタルサーバーで動くWebアプリをArkを使って作ってみた - すぎゃーんメモなんていう素…

LaCoocanでSmart.fmのAPIを使って英単語翻訳

Smart.fmがまだiKnowだった頃に友だちに頼まれて作ったアプリがあり、 それをniftyのLaCoocanで動かしてたので手直ししながらそのまとめ。 流れ LaCoocanの機能の一つに「メール転送」というのがあって、 取得してあるドメイン(例えばmonm.on.coocan.jp)の…

第6回Yokohama.pm & Perl Casual見てきた

Gearman Workerを今まで「ジャーマン」と読んでいた僕にとってはとても価値あるカンファレンスでした。 (「ギアマン」って読むのね。ドイツに関係があるのかと思ってたよ。つづり調べ直したらジャーマンはGermanだったよ。) Perl Casualはカジュアルで楽し…

File::Whichで複数インストールされてるものをwhichするとき

本編に関係ないけどwhichはインストール済みの全てのpath返すのね。/usr/bin/memcachedと/usr/local/bin/memcachedがインストールされてたためにエラーになってしまいしばらくハマってた 自己レス。 Proc::Guard - サーバープロセスを起動するライブラリ - b…

初めてのGoogleChromeExtensions。notificationを使ってみる

ネットで買ってる日用品がそろそろ切れそうで、そろそろ買おうかなぁと見てみたら、 ちょうど2,3日前に買ったら1000円くらい安かったことがわかり、 何か悔しくなったので「価格.comの最安値をチェックして安い時に買ってやろう」という気になりました。 ま…

とりあえずXSに触れてみる。モダンPerl入門を読みながら

xsに触れたことがないのでモダンPerl入門の8.2を読みながらとりあえず作ってみた。 本に書いてあることをほぼ丸コピーして、 package MyApp::Double sub calc_double { my $x = shift; $x * 2; } と同じ動きをするモジュールを作り、 perl Makefile.PL make …

DateTimeを使って先月と先月の最終日を求める

仕事で月初にキャンペーン処理をやるのだけど、その時に「前の月」と「前の月の最終日」が 必要になることが良くある。JavaScriptだと、 var now = new Date(); new Date(now.getFullYear(), now.getMonth(), 0); // 日に0を与えると前の月の最終日みたいな…

YAPC::Asia2009の特別研修「Perl, Unicode, and AJAX」は自由な感じの研修でした

小飼弾(id:dankogai)さんのAjaxの基礎講義でした。 ただ、ダブルブッキングだったらしく、16時前にdanさんは抜けました。(一通りの説明したので研修を疎かにしてはないです) ということで、16時からはMaki(id:lestrrat)さんとEmerson Millsさんがいろ…

YAPC::Asia2009の特別研修「Moose入門、モダーンなオブジェクト指向システム」が超良かった!

Shawn Moore(Sartak)の講義でした。同時通訳。 感想。 超楽しかった!!sartakがとてもいい人だった!ちょっとした質問でもコード書きながら教えてくれた。 もっとみんな受けたらいいのに!もう終わっちゃったけど! 機能毎に、講義→実習→講義→実習、の繰り…

YAPC::Asia2009 09/11のメモ

2日目のメモ。だいぶ抜けてる感じがするけどせっかくなので。 全体通して面白かったなぁ。全然技術的な話題が抑えられてないんだなぁと感じてワクワクしてしまった。全部聞けないのがもったいなさすぎる。 以下ざっくり感想。 twitter見てたらJosé Castro (c…

YAPC::Asia2009 09/10のメモ

前夜祭に引き続き初YAPC参加。セッション間の移動大変だった。 記念にAcme大全2009とPythons&PerlMongersの2つとも買った Acmeの下に何があるか知りたかったからちょうどいいタイミングだった! P&Pはパラパラ見てたらダンザマッチョの心得編があってそこだ…

Yokohama.pm出張版 - YAPC::Asia2009前夜祭に行って来たのでメモ

初めてのYAPC参加、Yokohama.pm参加。 記念にTシャツと手ぬぐい買いました。 手ぬぐいの方が原価かかってるらしい。 あとは今日の目的のbtoさんとid:clouderさんとの名刺交換もできたのでよかった。 はじめの挨拶 - id:clouder YAPC::AsiaのTシャツと手ぬぐ…

Unicode文字列は「flagged utf8」UTF-8バイト列は「flaggedじゃないutf8?」

perlでutf8にひっかかっては、ブックマークした記事を読見なおしたり、昔買った「まるごとPerl」を読み直したり、改めて検索したりして、何かいつもわかったようなわからないような感じになってるので、今後また見るようにメモ書きを残すことにした。 知って…

Google talkでメールを送るスクリプト

会社の人とか、よくメッセンジャー使う人とかとのやり取りはメッセンジャー使えば良いんだけど、 僕の周りはPC立ち上げていない人の方が多く、たいてい携帯でメールが飛んできます。 で、僕はPC立ち上げてるので携帯にメール来たらそれをPCから返したいなっ…

CPAN良くわからない

d:id:tokuhirom:20080817:1218953905を見て、 【追記】CPANにリリースしました と書いてあったのでサンプルコードもあるし勉強してみようと思ったのだけど、 いつもどおりcpanでインストールしようとしたら上手くいかなかった。 cpan[11]> install Test::TCP…

映画生活のTV放映予定の映画リストをeventcastに登録する

本当は上映されてる映画のスケジュールをeventcastに登録したかったのだけど、 そこまでやろうとするとどうやれば良いのか考え付かなかったので、 とりあえず出来るところからやってみた。 流れは、 映画情報 - ぴあ映画生活にある「今週TV放映予定の映画」…

3引数のopenで標準出力とファイル出力を出し分け

以前に404 Blog Not Foundで「openは3引数で」というエントリを見たことがあって3引数を使うようにしていたんだけど、ログを吐くときに標準出力とファイル出力の出し分けをしようとしてどうやっていいのかわかんなかった。 どこで分岐させるのがいいの?open…

perlでコマンドラインオプションの処理方法

参考:Perl スクリプトでのコマンドラインオプション処理 Getopt::Longを使う ハッシュで指定するだけでOK use Getopt::Long; my $opt_all = 0; my $opt_debug = 0; GetOptions('all' => \$opt_all, 'debug' => \$opt_debug); print "\$opt_all: $opt_all\n";…

HTMLタグのエスケープは文字クラスとhashでやる

404 Blog Not Found:perl - 勝手に添削 - 40行で作るPerl用テンプレートエンジン2つ勉強になった。HTMLタグのエスケープとreturn 例えば、これを以下のように書いてしまった場合、どうなるだろうか。 sub convert { return unless defined(my $str = shift);…

スクリプトをutf-8で書く場合はuse strictの下

404 Blog Not Found:perl - use utf8; スクリプトがUTF-8で書かれている場合は、わざわざdecode_utf8('リテラル');とするより、最初にuse utf8;としておくのが吉。 わざわざdecode_utf8をしなくて良いと。euc-jpとかの場合なら # subject を MIME エンコード…