タグ

perlに関するswimbird55のブックマーク (108)

  • YappoLogs: xlsx ファイルを git diff しやすくする為の天才的な wrapper script を書いた

    皆さんはプロジェクトのリソースとしてエクセルの xlsx ファイルを使う事があると思います。 何てったって事務職の人ですら楽々使えるスーパー優れた UI なので、 web の管理画面とかを作り込むよりもエクセルでシート作ってもらってしまった方が早いケースも多いんです。現実の世界では。 で、普通の人は TSV にするだの CSV にしてもらうだのすると思うんですが、一方的にデータ貰うだけなら良いんだけど、相手とやり取りする時にはどうしても xlsx ファイル経由とかにしないと相手がこまる!やっぱりエンジニアのエは優しさのエだから相手に優しくしないとだめです。 で、 xslx ファイルでエンジニア以外の人とデータやり取りするとやっぱり、バージョン管理したくなるのが人情です。 でも xslx ファイルはバイナリファイルなので git diff とかが残念です。。。 って事で作っちゃいました。 h

  • centos に gitolite 導入, あとロケール問題

    このとおりにやる gitolite 導入 - Please Sleep まず gitolite の gl-system-install が通らない. File::Path の make_path が無いと言われる. 調べると perl のバージョンがすごく古い cou929:kosei% perl -v This is perl, v5.8.8 built for x86_64-linux-thread-multi cou929:kosei% perl -MFile::Path -le 'print $File::Path::VERSION' 1.08 少なくともこのバージョンの File::Path には make_path は無いようだ ちょっとぐぐってみたけど手軽にシステム perl のバージョンをあげる方法はなさそう. yum のリポジトリ追加していけないかなと思ったけど, 少なく

    centos に gitolite 導入, あとロケール問題
  • chef-soloがcookbookから実行するscriptの無限ループで大量にメモリを食って死んだ件 - 酒日記 はてな支店

    とあるホストで初期設定をしようと思って chef-solo を実行していたところ、メモリを全部い尽くして chef-solo (11.4.4) が死亡するという事案が発生。 追ってみたところ、どうやら原因はこんなかんじ。 cookbook から shell script を実行していて、その中で perl Makefile.PL && make && make install していた CPAN.pm が初期設定を終えていない場合、対話モードに入る 対話モードで標準入力が閉じられていると途中まではデフォルトの入力で進むが、地域を選択するところはデフォルトがないためここでメッセージを表示しながら無限ループする 無限ループで大量に出力されたメッセージを、(詳細は確認していないですが) chef がメモリに乗せ続けて太る ということで、cookbook 内で実行する script には注意しま

    chef-soloがcookbookから実行するscriptの無限ループで大量にメモリを食って死んだ件 - 酒日記 はてな支店
  • AppStoreのレビューを取得するperlスクリプト - そばプリッツの雑記

    とある理由でAppStore上のユーザレビューを 大量に取得する必要があり、調べてたら、 Scraping AppStore Reviews で詳しい方法とPerlスクリプトが公開されてました。 でも、最近になってiTunes Storeの構造が変わったため、 そのままではうまく行かない。 現状に対応したやり方がなかなか見当たらなかったけど、 ちょっといじったら取得できるようになったのでメモっておきます。 (基的には上記のページを参考に) 問題の原因は、今までレビューは圧縮された状態で提供されていたけど、 最近になってそれが無くなったこと。ただそれだけです。 だから、参考ページのスクリプトで、 gunzipしてる部分を消すだけです。 ついでに、参考ページのスクリプトだとレビュー文の1行目しか取得できないので、HTML::TagParserを使って文全体を取得できるように修正してみまし

    AppStoreのレビューを取得するperlスクリプト - そばプリッツの雑記
  • Perlゼミ(サンプルコードPerl入門)

    Perl入学式 全6回のPerl入門講座。東京、大阪、沖縄、札幌で開催。(東京は4月と10月スタート、それ以外は5月スタート) YAPC::Japan Perlを軸としたITに関わる全ての人のためのカンファレンス。 東京 吉祥寺.pm 五反田.pm 大阪 なにわPerl 沖縄 沖縄.pm

  • 難読化されたJavaScriptコードを展開するスクリプトを書いた - ひゅんひゅんメモ

    難読化されたJavaScriptコードをコマンドラインで展開してくれるツールを 探したけどパッと見つからなかったのでOnline JavaScript beautifierで使われている js_beautify.jsというのをPerlに翻訳してみた。 https://github.com/hironorism/p5-js-beautify 使い方は至って簡単に以下のようにすると展開したJavaScriptコードが出力されまする。 $ perl js_beautify.pl jquery-1.5.min.js 今は単純にJavaScriptコードをPerlに直訳しただけなので(コメントとかもほぼそのまま・・・) 今後パッケージ化と、後入力にURLを指定出来るようにしたいと思っています。

    難読化されたJavaScriptコードを展開するスクリプトを書いた - ひゅんひゅんメモ
  • にひりずむ::しんぷる - 死んでほしくない人のための Sub::Retry

    Sub::Retry はクールでクレバーなモジュールなのですが、retry の条件が exception のみでちょっと悲しかったので、retry 条件をカスタマイズ出来るようにしてみました。すでに取り込まれて、0.03 としてリリースされています。 Sub-Retry-0.03 - FrePAN ユースケース としては、Cache::Memcached::Fast とかで set とか get に失敗したときに retry するとかが挙げられます。 第4引数に coderef を指定することで、retry 条件を変えられます。 retry したいときは、true を返し、そうでない場合は(つまり、成功した場合は)false を返すようにします。default は 以前の挙動と同じです。 coderef の引数は return value と同じなので、その結果如何で処理を切り替えることが

  • ゆーすけべー日記

    サキとは彼女の自宅近く、湘南台駅前のスーパーマーケットで待ち合わせをした。彼女は自転車で後から追いつくと言い、僕は大きなコインパーキングへ車を停めた。煙草を一吸ってからスーパーマーケットへ向かうと、ひっきりなしに主婦的な女性かおばあちゃんが入り口を出たり入ったりしていた。時刻は午後5時になる。時計から目を上げると、待たせちゃったわねと大して悪びれてない様子でサキが手ぶらでやってきた。 お礼に料理を作るとはいえ、サキの家には材が十分足りていないらしく、こうしてスーパーマーケットに寄ることになった。サキは野菜コーナーから精肉コーナーまで、まるで優秀なカーナビに導かれるように無駄なく点検していった。欲しい材があると、2秒間程度それらを凝視し、一度手に取ったじゃがいもやら豚肉やらを迷うことなく僕が持っているカゴに放り込んだ。最後にアルコール飲料が冷やされている棚の前へ行くと、私が飲むからとチ

    ゆーすけべー日記
  • ゆーすけべー日記

    サキとは彼女の自宅近く、湘南台駅前のスーパーマーケットで待ち合わせをした。彼女は自転車で後から追いつくと言い、僕は大きなコインパーキングへ車を停めた。煙草を一吸ってからスーパーマーケットへ向かうと、ひっきりなしに主婦的な女性かおばあちゃんが入り口を出たり入ったりしていた。時刻は午後5時になる。時計から目を上げると、待たせちゃったわねと大して悪びれてない様子でサキが手ぶらでやってきた。 お礼に料理を作るとはいえ、サキの家には材が十分足りていないらしく、こうしてスーパーマーケットに寄ることになった。サキは野菜コーナーから精肉コーナーまで、まるで優秀なカーナビに導かれるように無駄なく点検していった。欲しい材があると、2秒間程度それらを凝視し、一度手に取ったじゃがいもやら豚肉やらを迷うことなく僕が持っているカゴに放り込んだ。最後にアルコール飲料が冷やされている棚の前へ行くと、私が飲むからとチ

    ゆーすけべー日記
  • 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
  • PHP/CGI検索 夢幻

    CGI登録件数3412件 CGI検索なら夢幻 フリーCGIからPHP,シェアまで検索できるPHP/CGI登録件数 3412件!PHP/CGI検索なら夢幻 フリーCGI,PHP,シェアウェアまで 検索できる

  • http://dl.dropbox.com/u/224433/qpstudy-3/index.html

  • Perlゼミ(サンプルコードPerl入門)

    Perl入学式 全6回のPerl入門講座。東京、大阪、沖縄、札幌で開催。(東京は4月と10月スタート、それ以外は5月スタート) YAPC::Japan Perlを軸としたITに関わる全ての人のためのカンファレンス。 東京 吉祥寺.pm 五反田.pm 大阪 なにわPerl 沖縄 沖縄.pm

  • Big Sky :: VimmerなPerl開発環境

    えーっと、IDE使ってません。ごめんなさい。 PerlをIDEで書いてる人、どれくらいいるんだろう。何使ってるんだろ。 私はLinuxでもWindowsでもVimを使ってます。Perlってサーバで使われる事が多いし、サーバだとsshで入る事が多いだろうし、まぁXの転送やVNCやそれっぽいのでグラフィカルに操作しても良いけど、正直PerlのドキュメントもテキストベースだしPerlで入力補完出来るグラフィカルエディタもまず無いと思ってる。 で、私がVim上で使ってるPerlの開発を「200倍便利にするスクリプト」を紹介。 perldoc.vim perldocはPerlのオンラインマニュアルなんだけど、これを一々ターミナルに戻ったりして引いてると時間のロス。screenで分割して開いてもいいんだけどscreenの画面間移動よりもVim内でのウィンドウ間移動の方が操作感が統一出来てて良い。 そこ

    Big Sky :: VimmerなPerl開発環境
  • インデックスを使った指定行取り出しプログラム(Pure Perl)

    インデックスを使った指定行取り出しプログラム(Pure Perl) 2010-08-10-1 [Programming][Algorithm] テキストファイルから指定した行を取り出すタスクについて。 頭から走査する方法 まずはファイルの頭から走査していくナイーブな方法。 ■コード(getline-naive.pl): #!/usr/bin/perl use strict; use warnings; my $qidx = shift @ARGV; # start from 0 my $tgtfn = shift @ARGV; open(my $fh, "<", $tgtfn) or die; while (<$fh>) { next if $. != $qidx + 1; print; last; } close $fh; 先頭行は0行目になる仕様。 ■実行例: % cat test.d

    インデックスを使った指定行取り出しプログラム(Pure Perl)
  • ハッシュの初期化の注意点 - すぎゃーんメモ

    #!/usr/bin/perl use strict; use warnings; use Data::Dumper; my $hashref = { hoge => 100, fuga => 200, piyo => 300, }; print Dumper $hashref; と、ハッシュ初期化時にkeyとvalueの組み合わせをまとめて指定することがあると思います。 $ perl hoge.pl $VAR1 = { 'piyo' => 300, 'fuga' => 200, 'hoge' => 100 }; ここで、valueの部分にサブルーチンやメソッドからの返り値を入れるようにするときに注意。 #!/usr/bin/perl use strict; use warnings; use Data::Dumper; my $hashref = { hoge => 100, fuga

    ハッシュの初期化の注意点 - すぎゃーんメモ
  • Re: 知ってそうで意外と知られていないperlの小技 10選 - Pixel Pedals of Tomakomai

    意外と知られていないperlテクってのが、意外とあるもんですね。 最近身の回りでいくつか話題に上がったものがあったので、ちょっと書いてみます。 知ってそうで意外と知られていないperlの小技 10選 こういうトリビア的なのはなかなか面白いなあと思ったので便乗させて頂きました。 Re: ランダムシャッフル 続いてこれもソートねた。 これは List::Util::shuffle の方がベターでしょう。*1 % perl use List::Util; print join ' ', List::Util::shuffle qw( 0 1 2 3 4 5 6 7 8 9 ); print "\n"; 1 8 6 3 0 2 7 5 9 4 Re: perlとだけ叩いたら そんなあなたは、まずコンソールに向かって「perl」とだけ打ってリターンしてみてください。 ちなみに、perlrunを読めば

    Re: 知ってそうで意外と知られていないperlの小技 10選 - Pixel Pedals of Tomakomai
  • perlモジュールのinstallにcpanmを使う - Perl - @OMAKASE

    当サイトのblogのエントリーで検索ワードが多いのはCPANなんですがこの古い記事はperl5.6時代に書いた記事(多分10年近く前だと思う)で今時のperl使いにお勧めできるものではありません。 2010年2月にあの miyagawa さんが書いた cpanminus が非常に素晴らしいので CPAN::shell を捨てて App-cpanminus を積極的に利用しましょう。 と言うことでcpanに関連して新しい記事を書いてみました。 CPAN::shell の欠点 設定が面倒 動作が遅い(cpanmと比較して) 多くのメモリが必要(制約のきついレンタルサーバで使うのは無理) 依存するモジュールが多い 基root権限が必要 cpanm の利点 一枚岩のプログラムで可搬性に優れる 高速で小メモリでも動作可能 pluginで拡張できる local::lib と組み合わせるとユーザーラン

  • おさかなラボ - vimにPerlとPHPの辞書を登録するぞ

    vimはCtrl+pで直近の単語を補完してくれるが、関数なんかも補完してくれると便利だ。しかしなんかしらんけど辞書は自分で用意しなきゃならんらしい。そのノウハウを公開する。なおvim7持ってる人はomni completeというもっと便利な機能があるらしい(ただしPerlは未対応か。詳細は末尾に記載)。 下準備 ~/.vim/以下にdictを掘っておく。~/.vim/dict/でいい。ほんとはどこでもいいんだけど分かりやすいからそこにしちゃおうよ。 PHPの場合 まずphpの辞書を作ってみよう。phpは全関数を出力する機能があるらしいのでそれを使う。この方法、ネタ元があったのだが分からなくなった。ごめん。 まず辞書ファイルを作る。場所はどうでもいいんだが、~/.vim/dictに辞書ファイルを集めることにしてしまおう。 php -r '$f=get_defined_functi

  • Twitterの新しいStreaming API「ChirpUserStreams」がすごすぎる件 - すぎゃーんメモ

    最近発表されて、一部で話題を呼んでいるTwitterの新しいStreaming API「ChirpUserStreams」。 まだdeveloperへのpreviewリリースということでプロダクトに使うようなことはできないけど。 http://apiwiki.twitter.com/ChirpUserStreams 今までのStreaming APIでは基的に public timelineから、指定したキーワードを含む発言を拾う 指定したユーザーの発言を拾う というものだった(はず)。検索系としては便利だけど、home_timelineのように自分がフォローしているユーザーの発言をStreamingで得ようとすると全idを繋げたものをリクエストパラメータとして送らないといけなかったりで、あまりカッコよくない形になってしまっていた。 ところが今回使えるようになった「ChirpUserSt

    Twitterの新しいStreaming API「ChirpUserStreams」がすごすぎる件 - すぎゃーんメモ