Entries from 2009-01-01 to 1 month

素因数分解ワンライナーの作り方 その3

素因数分解ワンライナーの作り方 その1 - すぎゃーんメモ 素因数分解ワンライナーの作り方 その2 - すぎゃーんメモ の続き。最後の方法はCPANモジュールを使うもの。 探してみたけど素因数分解ができそうなのは Math::Big::Factors というモジュールくらい…

素因数分解ワンライナーの作り方 その2

素因数分解ワンライナーの作り方 その1 - すぎゃーんメモの、続き。 前回はワンライナーの中でサブルーチンを定義し、それを再帰的に呼び出すことによって素因数分解を行っていた。 これを、サブルーチンの再帰呼び出しを使わずに表現することはできないか…

素因数分解ワンライナーの作り方 その1

以前に自分が書いたワンライナーについて聞かれたのに答えられなかったので反省して、どうやって考えたのかを整理しつつもう一度作り直してみる。 まず素因数分解のプログラムの流れ。 対象の数の素因数を探す 具体的には、2から初めて小さい順に割り切れる…

GenesisLightningTalksで喋ってきた!

11月に引き続き、LightningTalksで喋ってきた。 テーマは「変」が入ったタイトル、ということで「臨機応変ヒッチハイク一人旅」という題名で喋ってみた。 他の皆様の発表については後でまたYouTubeを見ながら思い返して書くとして、とりあえず自分のことと今…

連想配列の中身をワンライナーで読みやすくdumpしたい

連想配列(ハッシュ)の中身を表示させるとき。普通はData::Dumperモジュールを使って表示すると思う。 $ perl -MData::Dumper -e 'print Dumper { key1 => "value1", key2 => "value2" }' $VAR1 = { 'key2' => 'value2', 'key1' => 'value1' }; でも、コレっ…

編集中のファイルを一気にバッファに開く

$ for i in $(svn st | grep ^[MA] | perl -alne 'print $F[1]'); do open -a /Applications/Emacs.app/ $i; doneelispとか使いこなせればこんなことしなくてもいいのかな…?

httpでデータを受信して処理するワンライナー

今までずっと $ perl -MLWP::Simple -MJSON -e 'print decode_json(get "http://***.com/***.json")'みたいなカンジで書いてたけど、わざわざモジュールでhttpのgetをしなくても他のコマンドを使う方法があることを知った。 たとえば、Macなら"curl"というコ…

素因数分解ワンライナー

1行素因数分解 - すぎゃーんメモで挑戦した、ワンライナーで素因数分解。 今日ふと、サブルーチンを定義して再帰的に処理することなくやる方法が思い浮かんだ。 より短くエレガントに(?)なった気がする。 $ perl -e '$n = pop; print "$a[0] * " and $n /=…

TerminalでTwitterとWassr 機能追加

Net::Twissrを使ってターミナルでTwitter&Wassr - すぎゃーんメモ から機能追加。 リスト表示詳細表示を切り替えられるように。 投稿もできるようになった。…はず。 自分の環境でしか試してないけど。 #!/usr/bin/perl use strict; use warnings; use Config…

焼肉ワンライナー

YAKINIQUEST - ヤキニクエスト 焼肉 焼き肉 様から取得 $ perl -MLWP::Simple -le '/東京/ and push @a,$_ for split($/,get "http://www.yakiniquest.com/-/all"); print $a[rand @a]' 最新焼肉番付 --東京焼肉ものがたり-- 様から取得 $ perl -MLWP::Simpl…

Net::Twissrを使ってターミナルでTwitter&Wassr

せっかくNet::Twissrというモジュールを作ったので、それを使ってスクリプトを書いてみた。 Term::Screenを使ってTerminal.app上でfriends_timelineを一覧表示する。 ボタン一つで更新ができて、過去に取得したtimelineと並べて表示。 #!/usr/bin/perl use s…

Net::Twissrを更新

TwitterとWassrのタイムラインを合成するだけの簡単なモジュールを作ってみた - すぎゃーんメモで作成したPerlモジュール Net::Twissr をアップデートしました。 Changeset 28670 for lang/perl/Net-Twissr – CodeRepos::Share – Trac 大幅に依存関係を取り…

26歳の旅を考える

18きっぷが余ってしまっていたので、土・日とフラリと西の方に出かけてきた。

TwitterとWassrのタイムラインを合成するだけの簡単なモジュールを作ってみた

初めてPerlモジュールというものを作ってみました。 名前は「Net::Twissr」。 下記リンクにソースなどを置いてあります。CodeReposに初コミット!!。 /lang/perl/Net-Twissr – CodeRepos::Share – Trac Sabotterっぽく、TwitterとWassrのタイムラインを合わ…

半角カタカナと全角ひらがなの文字コード

今日お会いした方から、W45TからiPhoneへの電話帳データ移行 - すぎゃーんメモに対してのツッコミをいただいた。 モジュールを使った変換を使いまくっていたのが印象的だったそうで。 半角カタカナから全角ひらがなの変換くらいなら、わざわざモジュールを使…

1行friends_timeline取得

Twitter perl -MHTTP::Request -MLWP::UserAgent -MJSON -MEncode -le '($r=HTTP::Request->new(GET=>"http://twitter.com/statuses/friends_timeline.json"))->authorization_basic("username", "password"); print $_->{user}->{screen_name}." : ".encode…

名前にスペースを含むファイル群をまとめて処理する

例えば $ touch "1 hoge" "2 fuga" "3 piyo" $ ls -1 1 hoge 2 fuga 3 piyoのようにスペースを含むファイル名のものが多数ある場合に、「すべてのファイルに対してスペースをアンダースコアに置換したファイル名に変更したい!」というとき。 一気にやるため…

print関数の引数

$ perl -e 'print (2 + 3) * 4'と $ perl -e 'print STDOUT (2 + 3) * 4'では挙動が異なる。 というか、こういう書き方をしてはいけないようだ。 ここで「20」という答えが欲しければ、 $ perl -e 'print((2 + 3) * 4)'$ perl -e 'print + (2 + 3) * 4'とい…

1行素因数分解

ふと気になって調べてみたけどワンライナーがあまり見つからなかったので自分で考えてみた perl -e 'sub f{return $a if ($a=$_[0]) < 3; $a%$_ or print f($a/$_),"*$_" and return for (2..$a-1); $a} f(shift)' 20092時間近く相当悩みながら短くしていっ…

W45TからiPhoneへの電話帳データ移行

AU携帯からiPhoneへ変更 - すぎゃーんメモの続き。 自分が今まで使っていたAUケータイW45Tは、電話帳データの入力項目は 名前 フリガナ(半角カタカナ) という形式だった。この半角カタカナのフリガナをもとに五十音順に並べ替えたり検索したりしていた。 と…

AU携帯からiPhoneへ変更

AU携帯からアドレス帳をmicroSDカードにバックアップし、そのVCFデータをMacのAddress Book.appで読み込んでiPhoneと同期させてみたら、見事に全部移行できた! …が、名前のふりがなが反映されていない…!! 今までの携帯では名前に対してフリガナを半角カタ…