Subscribed unsubscribe Subscribe Subscribe

Perl

#perlcasual に参加してLTしてきた

PerlCasual #06に、参加してきました。なにげに5年前の第1回のときから参加しているし縁のあるイベント。@yusukebe氏に感謝! 8月のYAPC::Asiaでは何も話せなかったけど、自分の開発環境についてアウトプットすることが全然なかったなーと思って、せっかくLT…

はてなブログAtomPub APIをOAuth認証経由で叩く

はてなブログAtomPub - Hatena Developer Center を使ってはてなブログの情報を取得したり投稿したりしてみる。 OAuth認証 はてなブログAtomPub を利用するために、クライアントは OAuth 認証、WSSE認証、Basic認証のいずれかを行う必要があります。 http://…

64通りのkamipoを出力する

発端 @Kamipo2014-04-22 21:06:52 via Twitter for Mac to @kamipo @sugyan2014-04-22 21:06:57 via YoruFukurou to @sugyan @KAMIPO2014-04-22 21:10:34 via Twitter for Mac to @kamipo @kamipO2014-04-22 21:10:59 via Twitter for Mac to @kamipo @kamIp…

helm-perldoc 0.04 での設定

helm-perldocを使ってインストール済みモジュールのドキュメントを参照する(carton対応も) - すぎゃーんメモ の続き。 id:syohexさんに諸々と取り入れていただき、carton環境への対応も簡単になりました。 (add-hook 'cperl-mode-hook 'helm-perldoc:carton-…

helm-perldocを使ってインストール済みモジュールのドキュメントを参照する(carton対応も)

インストール済みのモジュールたちから、perldocを引くためのリストを作る - すぎゃーんメモ を書いた後 id:syohexさんと相談させていただいた結果、きれいにモジュール一覧を取得する方法を確立していただき。 インストール済みのモジュール一覧を得る方法 …

インストール済みのモジュールたちから、perldocを引くためのリストを作る

helm-perldoc を使ってみたりしていて気付いたのだけど、Perlでインストールされているモジュールたちからperldocでドキュメント引くためのリストを作るのってけっこう難しい。。 シェルコマンドで @INC以下にある*.pmファイル、もしくは*.podファイルから生…

Time::Pieceでadd_monthsするときは月末の扱いに気をつける

現在のTime::Pieceの最新版は、1.27。 翌月は何月か、というのを得るのに #!/usr/bin/env perl use strict; use warnings; use Time::Piece; my $t = localtime; print $t->add_months(1)->mon, "\n"; というコードを書いていて、1月31日に実行したら3が返っ…

YAPC::Asia 2013 を終えて

YAPC::Asia Tokyo 2013 2009年の初参加以来の、5回目の参加となるYAPC::Asia。昨年は2日目で別の場所に迷いこんでしまったりしたけど、今年は全日程参加することができました。 特に発表することもなく、ただただトークを聴きにいってTwitterで実況したり感…

#perlcasual で再びライブコーディングさせていただいた

PerlCasual #05 : ATNDにて、@yusukebeさんに声をかけていただき、再びライブコーディングをさせていただいた。 前回やらせていただいたのは2年半以上前なのか… 第6回 yokohama.pm & Perl Casual でライブコーディングに挑戦してみた - すぎゃーんメモ 前回…

Carton環境でのflymakeとperl-completion

cartonを使って<PROJECT ROOT>/local以下にモジュールを入れて、それを使う前提で書いているファイルを編集していると、普通にperl -wcしても依存モジュールを見つけられなくてerrorになってしまうので、flymakeが思うように動いてくれない。 ので、Project::Libsを使ってf</project>…

SQL::Translator::DiffでDBスキーマに追従させる方法

#5「GitDDLまじイノベーティブ」 tech.kayac.com Advent Calendar 2012 | tech.kayac.com - KAYAC engineers' blog が便利そうだなーと思って。 でもGitと絡めなくても、Webアプリにおいて「現在の環境で使用するデータベース」と「有るべきスキーマの状態を…

perlbrewを利用したプロジェクトごとのPerl環境管理

整理するためのメモ。 よくある問題: プロジェクトごとの依存モジュールの管理 全環境共通でインストールするとモジュールのバージョンが分けられない local::libやcartonを使ってプロジェクト専用のインストール領域を作るのが良い しかし実行するPerlのバ…

#isucon2 のお手伝いをしました

昨年は参加者として出場して楽しませていただいた、ISUCON。 #isucon で優勝したチームのメンバーとして参加してた - すぎゃーんメモ 今年は奇しくも開催側の会社に転職したということで、参加者としてではなく運営側としてお題作りなど裏側に関わっての参加…

Perlしか分からなくてもNode.jsでHTTPサーバが書ける!

なんてこった…CPANモジュールをnode.jsで動かしてしまうライブラリ「node-perl」 - tokuhirom's blog GitHub - tokuhirom/node-perl: Node perl wrapper というすごいモジュールが出ているので、npmでコレをインストールします。 「Perl使いだからPlack/PSGI…

数十行の簡単なスクリプトでWebコンテンツの更新を検知し通知する

以前にも似たようなのは書いたのだけど。 某アイドルグループに、ついに待望のファンクラブが作られた。もちろんすぐに入会しました。 そこではその子たちのマネージャーさんが不定期に日記を更新してくれるのだけど、残念なことにRSSとかも無いし、自分でロ…

Test::Flattenでsubtestの初っ端で死ぬときのエラーが出力されない (追記あり)

@xaicronさんのTest::Flattenを使ってみている。 use Test::More; use Test::Flatten; subtest 'hoge' => sub { ok 1, 'fuga'; piyo(); }; done_testing; という、subtest内で死んでしまうようなテストの場合、proveを実行すると $ prove -v t/01_hoge.t .. …

AES復号化ベンチマーク

AES暗号を復号化する必要があってググってみたところ、以下の記事を発見。 狐の王国 perlによるAESベンチ さすがに6年も前の記事だし、自分でもちゃんとベンチマークは取ってみよう、と思って調べてみた。 Crypt::Rijndael - Crypt::CBC compliant Rijndael …

特殊なエスケープシーケンスを含む場合のJSONエンコード

JSON::Syckを使ったDumpでちょっとハマったのだけど、コレを使ってJSONエンコードを行うと、エスケープシーケンスがそのまま(?)出てしまって、微妙なかんじになる。 $ perl -MJSON::Syck=Dump -E 'say Dump({ hoge => "fu\x{1b}ga" })' {"hoge":"fu\ega"}多…

CP932など特殊な文字を含むHTMLをスクレイピングする

Shift_JISで書かれたHTML、例えば下記のような文書をスクレイピングする場合。 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>title</title> </head> <body> <div id="contents"> <div>1.ほげ</div> <div>2.ふが</div> <div>3.ぴよ</div> </div> </body> </html> Content-Typeは下記のように返されるとする。…

Template Toolkitでwantarrayなものを使おうとしてハマった件

wantarrayで返り値を切り替えるようなものをTemplate Toolkitで使おうとしてハマった件。 ハマった例 #!/usr/bin/env perl package Hoge; sub new { my ($class, $arg) = @_; bless +{ data => +[] }, $class; } sub fuga { my ($self) = @_; return wantarr…

DayOne.appのファイルを整理する

DayOne.appを使いこなすために作ったもの、やっていること - すぎゃーんメモ以降もコレの通りにDayOne.appを使い続けているのだけど、投稿するたびに$HOME/Dropbox/Journal.dayone/entries/ディレクトリ下に新しくファイルが作られていき、ファイル数がかな…

Text::Xslate::Syntax::Kolonのテンプレート編集用モード

templateファイルの編集に適したモード設定とは。xslate-mode.elみたいなのってないんでしたっけ2012-03-29 10:45:26 via Twitter for Mac @sugyan Kolonシンタックスであれば,kolon-mode がありますね. URL2012-03-29 10:49:11 via YoruFukurou to @sugya…

WebService::Simple::Parser::JSONがUTF-8エンコードされたJSONで文字化けてハマった

簡単な例として {"name":"ほげ"} とUTF-8エンコードされている日本語を含むJSONを返すAPIがあったとして、WebService::Simpleからそれを取得して値を表示しようとしたとき。 #!/usr/bin/env perl use strict; use warnings; use Amon2::Lite; use WebService…

DayOne.appを使いこなすために作ったもの、やっていること

ゆーすけべー日記の記事あたりから周りでDayOneを使うヒトが増えて、自分も気になって使ってみた。 Day One | A simple and elegant journal for iPhone, iPad, and Mac. 基本的には「独りTwitter」なので、適当に短文を放りこんで蓄積していくもの。自分が…

Crypt::SSLeayがLANGの関係でインストールできないとき

あるLinux環境でCrypt::SSLeayをインストールしようとするとテストが通らない。 $ cpanm -v Crypt::SSLeay ... t/00-basic.t .... ok t/01-connect.t .. 1/8 # Failed test 'Net::SSL->new' # at t/01-connect.t line 28. # Connect failed: connect: 接続を…

特定のキーワードをim.kayac.comに通知するZNCモジュール書いた

IRCで自分の名前が呼ばれたときとかにiPhoneに通知してくれるようなやつ、いわゆるhilight2im的なもの。を、ZNCのモジュールとして作った。IRC Bouncer上で動かしておけば、weechatなどのクライアントからの接続が無い状態でも通知してくれるので便利。 リポ…

IRCの通知をirssiプラグインでGrowlかim.kayac.comに送る

自分はIRCクライアントとしてirssiを使っていて、これをさくらVPSで動かしてるサーバ上でTerminal multiprexer(screenとかtmuxとか)を使って繋ぎっぱなしにしておいて、この上でIRCを使うようにしている。 Irssi で、このirssiはPerlスクリプトでプラグイン…

Flymake時にPERL5LIBを通すシンプルな方法

2012-02-28: 少し追記しました今どきの(?)flymakeは賢くてflymake-perl-initとか自分で書かなくてもflymake-modeを有効にするだけでほとんどの設定を勝手にやってくれて便利。 flymake話まだひっぱりますよ - taiyoh独言 なので、Perlのflymakeの設定は (de…

Kamakura Perl Mongers テクニカルトーク #2 に行ってきた

少し日が経ってしまいましたが。 Kamakura Perl Mongers テクニカルトーク #2 - Kamakura Perl Mongers Kamakura Perl Mongers テクニカルトーク#2 : ATND 会場はこちらの記事で紹介された村式株式会社さんの古民家オフィス"ふくすけ"。和風で本当に素敵な古…

GNTPとRemoteForwardを使ってGrowl 1.3にリモートマシンから通知する

今更ながらMac OS X Lionを使い始めていて(マウススクロールが逆になったのはあまり問題なく慣れた)、そういえば10.7向けのGrowl 1.3以降ではGNTPがサポートされているから以前にチャレンジしようとして失敗したリモートマシンからの通知も簡単にできるよう…

Twitterのfollowingを迷わず減らす

Twitterは情報源として非常に愛用しているのだけどfollowしている数が多くなりすぎると流量が多すぎて追えなくなるので適度に減らしたい。でも元々は自分が自分の意志でfollowしたヒトたちなワケだからそう簡単にunfollowするヒトを選べない。 ので半強制的…

anything-grepでackを使うとマッチした部分のカラーリングが反映出来ない

anything-grep.elを使うと、シェルコマンドとしてgrepなどの検索をかけて、その結果をanythingで絞り込むことができる。ディレクトリ以下のファイルすべてを一発で検索、などできるのが魅力。 EmacsWiki: anything-grep.el 現在の最新版は1.27。 例えば、any…

perl-completion.elが提供するauto-complete.el用の情報源

設定を見直し中 - すぎゃーんメモから引き続き。 perl-completion.elとauto-complete.elを併用してPerlファイルを編集する際、 (add-hook 'cperl-mode-hook (lambda () (require 'perl-completion) (add-to-list 'ac-sources 'ac-source-perl-completion))) …

Hokkaido.pm #6 に参加してきた

詳しいレポートはコチラで -> 今日は Hokkaido.pm#6 の日です - 北海道苫小牧市出身のPGが書くブログ 自分はLTでYokohama.pm #8のときのネタを少し拡げて話してみました。 発表資料はコチラ -> Hokkaido.pm #6 LT Hokkaido.pm #6 LT View more presentations…

Alien::RRDtoolをhomebrew使わずに入れてみる

Alien::RRDtool - RRDtoolをCPANから入れる - Perl Advent Calendar Japan 2011 Hacker Trackを見て、実際に自分のMac(OS X 10.6.8)でRRDtoolを入れてみた。 素直にhomebrewで依存ライブラリ入れてしまえば問題無くインストール出来るのだけど、「homebrewと…

cpanmでgithubからモジュールをインストールするときはLWP::Protocol::httpsが要る

perlbrewで5.12.4の新しい環境作ってgithubからcpanmしようとしたらFetching FAILで失敗するなんでや2011-11-28 23:05:38 via Twitter for Mac @sugyan 多分、LWPのhttps関連モジュールが入ってない。2011-11-28 23:07:51 via Twitter for iPhone to @sugyan…

rbenvの切り替えの仕組み…と、他言語での実験

rbenvを使ってみる - すぎゃーんメモの続き。 現時点でのrbenvのバージョンは0.2.1。 rbenvを使っていると.rbenv-versionファイルの有無でrubyコマンド打ったときに実行されるrubyが違うものになる、というのがちょっと新鮮で、これはどういう仕組みで動いて…

Yokohama.pm #8 に参加してきた

Yokohama.pm #8 を開催します - Yokohama Perl Mongers Yokohama.pm #8 に参加してきました。 YAPC::Asiaのときに何も話せることがなくモニョモニョしていたので、せめてココで何か…ということで昨年のadvent calendarで書いたネタをまとめてLTで喋ってみる…

ももクロライブのチケットを手に入れたい

最近の人気急上昇により抽選の倍率も高くなり、すっかりチケットが手に入らなくなってしまった。 が、なかには複数枚入手して余った、急遽行けなくなった、などの事情により手放さざるを得なくなり某SNSで譲渡先を探しているヒトも僅かながら居る。 しかし供…

Acme::ZooKeeper作った

元ネタは Terminalで「ZOO KEEPER」を楽しむ - すぎゃーんメモ という記事。 2年以上前に書いたのがid:sotarokさんにブクマされたことにより掘り返されて、自分でも見返してみたらちょっと読みにくいしなんだかアレだったので、Acmeモジュールとして新しく作…

YAPC::Asia 2011 を終えて

YAPC::Asia Tokyo 2011に、参加してきました。 2009, 2010年に続き3回目の参加です。 YAPC::Asia 2009 を終えて - すぎゃーんメモ YAPC::Asia 2010 を終えて - すぎゃーんメモ 2009年は前夜祭でLT, 2010年は前夜祭LT+トーク1本だったのですが、今年は何も喋…

Google Code Jam Japan 2011 予選

Google Code Jam Japan 2011 C問題だけなんとか通った。 与えられた整数を2つの整数の和で表した場合にそれぞれの整数値で立っているビット数の総和の最大値を求める、というもの。 #!/usr/bin/perl use strict; use warnings; use Math::BigInt; my $T = <>…

Acme::MomoiroCloverがインストール出来なかったのでForkしてみた

Acme::MomoiroCloverをインストールしてみようと思ったら、Date::Simpleというモジュールがテストでコケてしまい、インストールできませんでした…。 何がイケないのかしっかり追っていないのですが、どうも古くからメンテされていないモジュールのようですし…

#isucon で優勝したチームのメンバーとして参加してた

既に多くの参加者の方々がブログに書いておりますが。 #ISUCON に参加しました。 livedoor Techブログ : なんでもありのWebアプリケーション高速化バトル、#isucon 開催のお知らせ livedoor Techブログ : ISUCONやりましたーっ! 最終結果発表 #isucon 以前…

Furlで躓いたのが解決

Furlで躓いたその後 - すぎゃーんメモの件、修正版の0.37がリリースされました。 https://github.com/tokuhirom/p5-Furl/commit/2689f5199ce4430d4fb1eaeca7f0394e75e4477e 自分の名前が載った >< 皆様、ありがとうございました!

Furlで躓いたその後

Furlで躓いてる途中 - すぎゃーんメモの続き。Twitter経由で色々助けていただいています。 tgtr.ExtendWidget({id:'178212',url:'http://togetter.com/'});

Furlで躓いてる途中

http { include mime.types; default_type application/octet-stream; upstream hoge_app { server 127.0.0.1:5000; } server { listen 443; server_name localhost; ssl on; ssl_certificate server.crt; ssl_certificate_key server.key; location / { pro…

画像アップロードAPIを使って投稿してみる

新しく、Twitterで正式に画像アップロードのAPIが提供されたそうで。 POST statuses/update_with_media (deprecated) | Twitter Developers 早速使ってみた。 てすと URL2011-08-16 13:39:21 via sugyan APIから画像あげてみるテスト URL2011-08-16 13:42:39…

Tatsumakiアプリケーションを作ってみる

Tatsumakiを使ったアプリの例は幾つか見たことはあったのだけど、 TwitterStreamをTatsumakiを使ってブラウザ表示 - メメメモモ TatsumakiとTwiggy使ってみた - punitan (a.k.a. punytan) のメモ Big Sky :: TatsumakiとDUI Streamを使って画像ストリーミン…

ローカルのmarkdownファイルを変更監視しつつSocket.IOでリアルタイムプレビュー

Amon2::Liteでmarkdownその他のリアルタイムプレビュー - すぎゃーんメモで、markdownとかのリアルタイムプレビューできるものを作って試してみたもの、やっぱりテキストエリアでmarkdownを書くってことはあまりしないなー、と思い。 大抵は使い慣れたエディ…