Entries from 2009-07-01 to 1 month

全裸で形態素解析をするスクリプト

ゲレンデがとけるほどくだらないスクリプト - すぎゃーんメモに引き続き、くだらないスクリプトを。 今度は動詞の前に「全裸で」を挿入する。 #!/opt/local/bin/perl use strict; use warnings; use JSON 'decode_json'; use LWP::Simple 'get'; use Text::M…

ゲレンデがとけるほどくだらないスクリプト

再びMeCabを使ってみた。 MacにてText::MeCabを使う - すぎゃーんメモ 形態素解析を使って適当なnickを作ってWassrに送信するまで - すぎゃーんメモ 今回は形容詞や動詞の前に「ゲレンデがとけるほど」を挿入する。 kohmingサブルーチンに日本語の文章を渡せ…

1行自己紹介ふたたび

マジカルインクリメントによる文字列操作 - すぎゃーんメモ なんか変なの思いついたのでメモ。 perl -le'($_||=ref\0)++while$-++<~0/515+65;print+lc'64bit環境だとダメか?

GoogleWaveを楽しくしてくれるRobot

誰かが書き込むたびにRobotが末尾に「www」を勝手に書き足していく。 #/usr/bin/env python # -*- coding: utf-8 -*- from waveapi import events from waveapi import robot def blipSubmitted(properties, context): blip = context.GetBlipById(proper…

「ぬるぽ」に反応して「ガッ」してくれるRobot

日本語を使った場合、unicodeでマッチし、unicodeでSetTextすれば普通に書き込んでくれるらしい。 #/usr/bin/env python # -*- coding: utf-8 -*- from waveapi import events from waveapi import robot def blipSubmitted(properties, context): blip = co…

RobotでBlipを消す

テストで色々発言したりさせたりするとどんどんゴチャゴチャしてくるので。 #/usr/bin/env python from waveapi import events from waveapi import robot def deleteAll(context): for blip in context.GetBlips(): if not blip.IsRoot(): blip.Delete() de…

オウム返しRobot

誰かの発言を返信として繰り返すだけならこう書くだけ。 #/usr/bin/env python from waveapi import events from waveapi import robot def blipSubmitted(properties, context): blip = context.GetBlipById(properties['blipId']) text = blip.GetDocument…

BBQに参加してきた

id:bose999さんの主催するBBQに参加してきますた。 Google グループ 二宮。遠いけど海が近くて良い所 暑いくらいに晴れていた。夕方から曇ったりしたけどそれほど降られることはなかった VBの経験について語る自己紹介 BBQ用品の品揃えがマジパネぇ 子どもた…

Google Wave Robotを作ってみる

以下を参考にしつつ、何かやってみる。 第2回 ロボットAPI:最速!Google Wave API解説|gihyo.jp … 技術評論社 誰も知らない夜のwaveのrobot - When it’s ready. ライブラリの入手 Python版はこちら。 Google Code Archive - Long-term storage for Google …

Decompose integer into sum of squaresの件

anarchy golf - Decompose integer into sum of squares anarchy golf の出題ミス? - TAKESAKOのはてな出張所 どうやら間違っていたらしく。全然気付かずにゴチャゴチャと書いたヤツが通っていたのでまったく気付きませんでした orz たぶんこんなのを書きま…

七色のワンライナー

perl -e'printf"\e[%dm%s\e[m%c",30+rand 8,chr 32+rand 95while 1'実は8色つかってるけど。 こんだけ。 追記 4年半の時を経て、改良のアドバイスいただきました。 すぎゃーんのやつ、xterm-256 に対応させたほうが色鮮かだしモテるとおもいます perl -e'pr…

Perlスクリプトをワンライナー化するモジュールAcme::OneLinerを作ってみた

GitHubにおいてます。 GitHub - sugyan/Acme-OneLiner: ワンライナー生成モジュール たとえばhello.plというスクリプトを用意して #!/usr/bin/perl use strict; use warnings; print 'Hello world!', "\n"; Acme::OneLinerをuseして実行すると、ワンライナー…

記号プログラムを改変してみる

記号解読にチャレンジ - すぎゃーんメモの続き。 解読できたのなら、ある程度自分で改変することもできるわけで。作ってみた。 #!/usr/bin/perl $^='-^\\\\%+"<&]\\$=/**:.](%_,//;<#)\\^_%$<]&!($;\',}(!?.{[$).^-<@$>]|"~$;\'\\=">{!%$<]$*~$;\'-@]`<#:?',…

記号解読にチャレンジ

Perlで記号プログラミング - TAKESAKOのはてな出張所 に対しての挑戦が。 id:TAKESAKO に挑戦してみる - yujiorama の日記 面白そうなので自分もやってみる。 #!/usr/bin/perl $^='-^\\\\%+"<&]\\$=/**:.](%_,//;<#)\\^_%$=]."\\&=\'?/:$?({/!_})(([=##!-^/\…

Golfにチャレンジ

golfの世界にも触れてみようと思って、チャレンジしてみた。 とりあえずこの問題を。 anarchy golf - paper sizes 一晩考えてみたけど、この程度しか思いつかない >< $c=$a,printf"A%-2d%5dmm x%5dmm ",$_,$a=$b/2||841,$b=$c||1189for 0..10 69B orz 現時…

tieを利用してSTDOUTの出力を弄る

print文でのSTDOUTの出力先を変更する方法 - すぎゃーんメモの続き。 id:mattnさんから「tieを使うのが一般的かと思いますよ」とコメントをいただきました。ありがとうございます。 tieって名前は聞いたことがあったけど、まったく使ったことがなかった。。 …

print文でのSTDOUTの出力先を変更する方法

こういう方法でいいのかな…? #!/opt/local/bin/perl use strict; use warnings; my $out; close STDOUT; open STDOUT, '>', \$out; print "hoge\n"; print "fuga\n"; print "piyo\n"; $out = scalar reverse $out; warn $out, "\n"; $ ./handle.pl oyip agu…

PerlスクリプトのSyntax check

#!/opt/local/bin/perl use strict; use warnings; print "hoge\n"; これをperlコマンドに渡すと普通に実行される。 $ perl hoge.pl hoge perlコマンドで"-c"オプションを使うと、実行されずに文法チェックが行われる。 $ perl -c hoge.pl hoge.pl syntax OK…

SmileyHackathon#5に参加してきた

SmileyHackathon#5 - Smiley Hackathon(仮) id:acotieさんがtwitterで募集していたので脊髄反射的に参加申し込みをして、初参加してきた。 約5時間かけて、結局Emacsのちょっとしたキーバインド設定と、他はGAE/PyでDatastoreのデータを全削除するためのbul…

Subversionで変更されているファイルのみのdiffを表示させる

ちょっと色々気になったので書いてみた。 やりたいこと 「ローカルで修正されたもの」つまり"svn status"で行頭に"M"が表示されるファイルだけを選び、そのdiffを表示させる。"A"や"D"のものは無視する。 簡単に考えると さすがに"svn diff"だけだと"A"や"D"…

GAE/PyでDatastoreのデータを全削除するためのbulkdeleter.pyを書いた

GAE/Pyでbulkloaderを使ってデータをアップロードする - すぎゃーんメモ GAE/Pyでbulkloaderを使ってデータをダウンロード/削除する - すぎゃーんメモ の続き。 そもそもDatastoreからfetchしてきた時点で(この処理はマルチスレッドで行われているっぽい)削…

関数の呼び出し時の処理を入れ替える

関数は、func_codeというattributeにcode objectなるものが入っているそうな。 これが実際に行う処理を持っているようなので、呼び出したときの処理をここで変更することができる。 >>> def hoge(): ... print 'hoge' ... >>> def fuga(): ... print 'fuga' …

GAE/Pyでbulkloaderを使ってデータをダウンロード/削除する

前回は、bulkloaderによるアップロードについて色々調べて試した。 GAE/Pyでbulkloaderを使ってデータをアップロードする - すぎゃーんメモ 今度は、データのダウンロードと削除について調べる。 データをダウンロードする アップロードとほぼ同様に行うこと…

円周率の近似値となる分数を算出するワンライナー

ちょっと思うところあって"355/113"のような円周率に非常に近い値を表せる分数はないかと思って、それらを求めるワンライナーを考えてみた。 perl -MMath::Trig -le '($a=$_*pi)=~/\.(0{4}|9{4})/ && print int$a+$a=~/\.9/," / $_" for 1..100000'for文で探…

形態素解析を使って適当なnickを作ってWassrに送信するまで

MacにてText::MeCabを使う - すぎゃーんメモで下準備を終えた。 何がしたかったかというとこれ。 まずはこんなスクリプトを書いてみた。 #!/opt/local/bin/perl use strict; use warnings; use Text::MeCab; my $mecab = Text::MeCab->new(); my $n = $mecab…

MacにてText::MeCabを使う

インストールは色々方法がありそうだけどMacPortsでできるみたいなのでそれを使う。 $ port search mecab mecab @0.96 (textproc, japanese) MeCab is a yet another part-of-speech and morphological analyzer. mecab-ipadic-eucjp @2.7.0-20070610 (textp…

PerlでReadLineを使う

普通にで標準入力を得ようとすると、 $ perl -e 'print while $_ = <STDIN>' hoge # 入力すると hoge # そのまま出力される あいうえお # 日本語入力も あいうえお # 日本語で出力される hoge^H^H # Ctrl+Hで戻ろうとしても戻れない hoge # "^H"は出力はされない あ</stdin>…

GAE/Pyでbulkloaderを使ってデータをアップロードする

bulkloaderとは remote_apiを使ってコンソールからDatastoreにデータをアップロードするためのツール。 初期データとして大量のデータをDatastoreに突っ込んでおきたいときなどに便利。 逆にDatastoreにある内容をダウンロードすることもできる。削除をする…

第2回 197X パーティー に行ってきた

198Xだけど、自重せずに参加してきた。 197Xs's Wiki - Create 会場を提供してくださったグリー株式会社 (GREE, Inc.)様に大感謝! とりまとめ、司会などしてくださったござ先輩、やましろさんに大感謝! 面白いLTの数々を披露して下さったトーカーの皆様に…

colordiffをSubversionでつかってみた

svn diff をカラフルに表示させるワンライナー - すぎゃーんメモの続き。 コメントで色々おしえていただいた。 colordiff で diff や svn diff を見やすくする方法 - Craftworks Tech Blog - Branch ので、早速試してみた。 $ sudo port install colordiff $…