サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
買ってよかったもの
kdaiba.hatenadiary.org
はじめに Rを使えば震源地がどう移り変わって行くか可視化できることを知ったので作ってみました.Rでスクリプトを書いてみたのは初めてなのでわからないことだらけだったので,調べたことを自分のメモがわりにまとめてみます.ソースと使い方はgithubに載せています. 準備 Rは対話モードで使うことが多いと思うのですが,今回はスクリプトとしてまとめました.スクリプトとして動かすさいにはrscriptを使います.さらに,今回はグラフ作成にggplot2,地図データとしてmaps,時系列データの取扱にxtsを使います.zooも読み込んでいますが,xtsを読み込むと自動で読み込むので,必要ないです.後で修正しないと.ライブラリは 対話モードで"install.packages()"メソッドを使って読み込むのが楽でしょう.例えば > install.packages("ggplot2")と実行します.そうす
はじめに javascriptでlinuxが動くjslinuxが公開されて1ヶ月が経ちました.人の噂も75日とはよく言ったもので,すでに話題にもあがらなくなってきましたね.多少新鮮度は落ちたとはいえ,面白い物は面白いってことで,ちょっと遊んでみることにしました. でっかくしてみる 小飼さんのブログでjslinuxと戯れる方法がでています.ここにも書いてあるんですが,デフォルトのkernelではroot.binのサイズを4096KBより大きくすることができません.そこで,倍のサイズのroot.binを動かすことを目標に試してみることにしました.まずは必要なリソースを集めます.小飼さんがブログを書いた時期からjslinuxはバージョンアップしているので,以下のファイルをローカルに落とします.例として~/jslinux/htdocs/配下に置くものとします. index.html cpux86-
はじめに 今iPhone 3Gを使っているんですが,docomoのMEDIASを使うことになりました.元々別の機種に変えようとは思っていたんですが,訳あって2台持ちとなっています.そのうちiPhoneは解約しますけど.んで,せっかくAndroid機を手に入れたのでsl4aを入れてperlでプログラミングしようと思い立ちました.この記事はサンプルスクリプトを動かすまでについて書いています. Macからのadb sl4aを使うだけなのでAndroid SDKをすべてインストールする必要はありません.adbがあればいいだけなのですが,ここではまりました.Macからusbを使ってadbでMEDIASを制御するにはMEDIASのベンダIDが必要で,これを~/.android/adb_usb.iniに記載しておく必要があったのです.ちなみに,adb_usb.iniファイルは $ android upd
perlも作れたし,前回のメモでforkを禁止するモジュールも作ったし,後やらないといけないのは/chroot環境を作ればllevalを移植できるはず.ということでchroot環境を作ってperlが動くところまで試してみました. $ sudo mkdir /chroot $ sudo mkdir /chroot/bin $ sudo mkdir /chroot/lib64 $ sudo mkdir /chroot/usr $ sudo mkdir /chroot/tmp $ sudo mkdir /chroot/dev $ sudo mkdir /chroot/etc $ sudo mkdir /chroot/home $ sudo mknod -m 666 /chroot/dev/null c 1 3 $ sudo mknod -m 666 /chroot/dev/zero c 1 5
発端 最近Salesforceに買われたのでちまたでも有名になったHeroku,RubyOnRailsをオンデマンドで使う事ができるサービスです.このサービスではgitで管理しているソースをHeroku環境にデプロイしてmakeするとwebアプリケーションを実行できます.似たようなことをPerlでもやってみたいなと思っていました. 一方で子飼さんが作ったlleval - run codes from your browserというサービスと,これを元にした宮川さんのhttp://sunaba.plackperl.org/app/jrl_h69c3xgmlha_byudvgというサービス(というかproof-of-conceptかな)が動いています.これらの巨人(子飼さんはともかく宮川さんはでかくないけど)の偉業を足がかりにすればできるんじゃないかと思いつきました. そして,最近iTunes
はじめに YAPC::Asia 2010 Tokyoで子飼さんのInside LLEvalを聞いて,同じような環境を普段使ってるlinux上で作ってみたいなと思いました.FreeBSD::i386::Ptrace - Ptrace for FreeBSD-i386 - metacpan.orgをみてptraceを使えばできそうだと考えましたが,FreeBSDとLinuxでは使い方が違うし,Linuxでもi386とx86_64でも違うことに気づいたので,まずは調べたところまでをまとめることにしました. ptraceでsyscallをリストアップ いろいろ探した結果,Playing with ptrace, Part I | Linux Journalが参考になることがわかりました.でもこの記事はi386について書いてあってx86_64用のレジスタの情報がよくわかりませんでした.さらに探してt
はじめに 世の中にはEURO 2016 NewsとかArcher - yet another deployment tool - metacpan.orgなんていうデプロイツールがあって,普段はこれらを使っています.でも,新規サーバにインストールしないといけないことがたびたび起きて,それが面倒だなと思っていました.ファイルを一個だけ入れれば,ライブラリを追加しなくてもさくっと使えるデプロイツールがないものか,探すのに飽きたので作ってみました. 使い方 使い方は $ ./pawn.pl -h Usage: pawn.pl [options] File Optons: -h,--help this message -s,--shell simple shell で,引数として渡すファイルにDSLでターゲットホストと実行するコマンドを記述します. hosts 'idc1-web-0001 idc
geolocationでdebug ロケタッチ、サービス終了のお知らせ : ロケタッチおしらせブログとか位置情報を使ったwebサービスが色々でてきました.自分でも何か作ってみようかと思って,ふと気づいたのが, 位置をデバッグするのはどうやるんだろう ということでした.firefox3だと位置情報を拾えるので探してみた所,http://pugio.net/2009/07/fake-your-geolocation-in-firef.htmlというページを見つけました. やること まずデータファイルを作ります.例えば/Users/daiba/.mynewlocation.txtというファイルを開いて, {"location":{"latitude":35.685675,"longitude":139.753475, "accuracy":20.0}} と書きます.上記は皇居の場合の例です.この
はじめに 色々なシステム間でバイナリデータのやり取りをする方法に興味を持っています.調べている中でUniversal Binary Format(UBF)という規格を知ったので,その元になっている資料をまとめてみました.これは,Getting Erlang to talk to the outside worldという名前で,プログラミングErlangの著者でもあるJoe Armstrong氏が書いています.この資料を章ごとにまとめてみました. ここから ABSTRACT Erlangを使ってErlang以外の世界とデータをやりとりするにはどうすればいいでしょう.これは,Erlangを構成要素として使う分散アプリケーションを構築する際には重要な課題です.一般的な解決策は,XML,XML-schemas,SOAP,WSDLと言ったXML標準を使うことですが,非効率,かつ,複雑すぎます.そこで
はじめに Googleのように,どのドキュメントが適切なのかを選ぶのではなく,質問を誰にするのが適切かを選ぶ検索エンジンをAardvarkという会社が作り,その構造を論文で公開しました.この会社はもともとGoogleの社員だった人達が作った物で,最近Googleが買い上げました.今日はその論文の要旨をまとめてみました. タイトルと著者 タイトルはGoogle創始者のLarry PageさんとSergey Brinさんが1988年に発表した"Anatomy of a Large-Scale Hypertextual Search Engine"と韻を踏んでいます.論文を発表したのは,Aardvark社のDamon HorowitzさんとStanford Univ.のSepandar D. Kamvarさんです.以下小見出しが章,少々見出しが節という形式で進めます. ABSTRACT Aard
bash-completionがないー bash-completionが入ってない環境でBig Sky :: perldocのbash-completionが激しく便利でうれしょん出た。のようなことができたらいいなと思って試してみました.bashは':'をファイルセパレータに使っているのでHackが必要です.bash-completionのcontribにperl用のコマンドがあって,それを見ながら作ったのがこれ. コード function _myperldoc () { local mod cur word prev local cur=${COMP_WORDS[COMP_CWORD]} local prev=${COMP_WORDS[COMP_CWORD-1]} export mod=${COMP_LINE/perldoc/} case $prev in -f) COMPREPLY=(
LiveCDやLiveUSBを作ってみたい http://www.perlfoundation.org/perl5/index.cgi?perllivecdという記事を見つけて,自分なりのLiveCDかLiveUSBを作ってみたいと思いました.簡単にできるのかと思ったら,以外にはまったので,現時点までにできたことをまとめてみます. 最小構成のLiveCD / LiveUSBを作る 準備 ベースにしたのはCentOSです.最近よく使っているので選んでみました.CentOSでのLiveCDの作り方が載っているので,これに沿って進めました.注意が必要なのは以下の2点です. CentOS5.3ならこの手順でLiveCDが作れます CentOS5.4だと,livecd-tools-014-4.i386.rpmにバージョンダウンしないとLiveCDが作れません.以下のエラーが発生します. Error
demo Tatsumakiはmiyagawaさんが作ったPlackベースのフレームワークです.eg/chat配下のサンプルがwebベースでチャットシステムを作る時の参考になるので解析してみました. 使い方 まずapp.psgiを調べてみます. $ plackup -s AnyEvent で実行すると5000番ポートでTatsumakiサーバが起動します.まず,アクセスするパスですが,mainパッケージをみてみると, package main; use File::Basename; my $chat_re = '[\w\.\-]+'; my $app = Tatsumaki::Application->new([ "/chat/($chat_re)/poll" => 'ChatPollHandler', "/chat/($chat_re)/mxhrpoll" => 'ChatMultip
モダンなメールの送信法 モダンと言ってもたいした事はありません.仕事で使っているnagios用のスクリプトを見たらjcode.plを使っていて,いつから同じものを使ってるんだろうとぐったりしたのでなんとなく書いてみました.最近の日本語処理はEncode.pmですよ.subjectのMIMEエンコードもこれだけでいいんです. 簡単な送信方法 mailコマンドを使ってメールを送信します.送信できる環境になっているのが前提ですね.気にしないといけないのは,スクリプトにテキストを読込む時にdecodeして,書き出す時にencodeすることです.メールの本体はJISコードで件名(Subject)はMIMEエンコードしましょう. #!/usr/bin/perl use utf8; use Encode; use strict; use warnings; my ( $body, $header, $m
さくっとグラフを描く Cactiでグラフを作成しようと思っていたデータがあったのですが,色々なしがらみが面倒になったので,ローカルにデータを取得してグラフ化することにしました.どうやってグラフ化するかちょっと考えて,思い出したのがGoogle::Chartでした.まず作ろうと思ったのが棒グラフ.これはこんな感じで動きます.ワンライナーなので,本来は1行です. perl -MGoogle::Chart -le ' $c = Google::Chart->new( type => "Bar", color => ["4d89f9","c6d9fd"], data => [[1,2,3,4,5,6],[7,8,9,10,11,12]] ); print $c->as_uri' こんなグラフができあがります.ところがこのスクリプトに必要なデータを突っ込もうとしたら動きませんでした. perl -M
AnyEventでタイマー YAPC::Asiaでの宮川さんの発表を聞いて perl -MAnyEvent -le ' map{ $i = $_; my $c = AnyEvent->condvar; my $w; $w = AnyEvent->timer( after => $i, cb => sub {$w; print "OK"; $c->send}); $c->recv }(0.1,0.5,1,2,0.1)' なんてワンライナーで簡単なタイマーを作れる事を知りました.それで思いついたのがモールス信号,テキストを入力すると何かちかちかと点滅するものを作ってみようと思いました.まず,CPANでMorseをキーワードにして検索してみたところ,モジュールはいくつかでてきましたが,テキストを短点('-')と長点('ー')に変換するものばかりで,長点が短点の何倍の時間なのかなんてことはわかりま
Jabber Channel Bot Google waveでJabberを拡張したプロトコルを使うという話もあって,またJabberが盛り上がってきそうな今日このごろ,Channel(というかチャットルームと言った方がわかりやすい気もします)に投稿するBotを作ってみました.以前IRC用に作ったスクリプトのJabber版です.最近の流行に乗ってMooseを使ってみることにしました.使い方はこんな感じです. #!/usr/local/bin/perl use strict; use warnings; use MyBot; main() unless caller(); sub main { my $bot = MyBot->new( jid => 'bot0@jabber.foo.co.jp', passwd => 'password', chatRoom => 'lanman@conf
インストールするまで サーバを沢山管理することになりました.それらのサーバではrubyを使っていたので,rubyベースのdeployツールCapistranoを使ってみる事にしました.Capistranoは2009/2に作者がもうメンテナンスしないぜと宣言したプロダクトです.とはいっても,コミュニティがメンテすることになるだろうから今後も問題ないだろうなと思ってます.それはそれとして,CapistranoをインストールするにはRubyGemsが必要なのでまずはそこからインストールします.RubyGems の使い方 - WebOS Goodiesを見ながらwgetでファイルをダウンロードして, # ruby setup.rb でインストールします.Capistranoは $ sudo gem install capistrano でインストールできます. 秘密鍵の管理 普段色々鍵を使っていて
古いマシンを活用してみる 引越に向けて整理整頓をしていると,これはもういらない,といいだす人がでてきます.今回mac miniをもう使わないと言っている人がいたのでもらってきました.状態は悪くないんだけど,動かしてみたらpowerpcだったので,ubuntuを載せてみました.そのメモです. ダウンロード powerpc用のubuntuはすべてのミラーサーバーに載っているわけではありません.PowerPCDownloads - Ubuntu Wikiを見ると,メインミラーのポートセクションにのみあるようなので,それをダウンロードします.今回はhttp://cdimage.ubuntu.com/ports/releases/intrepid/release/#にある"Mac (PowerPC) and IBM-PPC (POWER5) server install CD"をダウンロードしました
モジュールのバージョン Catalystをベースにしたアプリケーションのインストール方法を書いていて,資料内で説明したモジュールのバージョンを書いてみようと思いました.ircでcharsbarとlestrratに相談しながらできたのがこれ.CatalystとCatalystが呼び出しているモジュール一覧とそのバージョンを取得するには, $ perl -MCatalyst pmver.pl のように使います.中身はこんな感じ #!/bin/perl use strict; use warnings; my ( %i, @m, %m, $d, $p ); %i = %INC; require LWP::Simple; require Parse::CPAN::Packages; $d = LWP::Simple::get("http://www.cpan.org/modules/02packa
世の中しらないことだらけ perl weekだった今週を振り返っていて気がついたこと.http://d.hatena.ne.jp/tokuhirom/20081128/1227862781に載っているように, perl -le 'BEGIN {unshift @INC, sub { print join "\t => \t", scalar(caller), $_[1] } }; use Catalyst' というワンライナーは,PerlがCatalystをコンパイルする際に読込むモジュールを,それを読み出したモジュールと一緒に出力してくれます.つまりこんな感じ. main => Catalyst.pm Catalyst => strict.pm Catalyst => base.pm base => vars.pm vars => warnings/register.pm warning
うまく説明できるかな Amazon Elastic Compute Cloud (Amazon EC2)がどんなものか説明してくれと頼まれたので,ざっと説明する資料を作ってみました.いつものようにgoogle document使ってページ貼りまくりです.これでうまく説明できるんだろうか.それにしても,相手がどんな(ジャンルとか年齢層とかの)人達なのかさっぱりわからないというのは困りますね.おいらに頼んだってことは,きっと技術に偏った説明を求めてるんだ,ということで思い切り初心者を無視した説明になってます. Amazon Ec2View SlideShare presentation or Upload your own. (tags: amazon ec2)さあどうなることやら. 追記(2008.11.27) たけまるさんからidコールされました. たぶんですが,SimpleDB は Dy
参加してみました たけまる / 第2回 Erlang 分散システム勉強会に参加しました.プログラム見ればわかりますが,分散システムがメインの勉強会なのでとっても難しかったです.LTネタを用意してましたが,eeepcがプロジェクタに接続できないとかのミスをやらかしてしまってすみません.時間も短かったのでここで資料を公開して,ついで解説もしておきます. 資料 Erlang with Regexp Perl And PortView SlideShare presentation or Upload your own. (tags: erlang) 最初,こんなコードをmac上で書きました. 2> io:format("~p~n",[[229,175,191]]). "寿" ok 寿という字を選んだのは偶然だったのですが,Eshellで表示されたので,utf-8を表示できると思ってしまいました.
メモメモ 宮川さんにremedieって"Pluggable media center application"のproject memberに加えてもらったので,自分ならどんな作りになるのか考えてるところ シナリオ こんな感じのことができればいいのかな 設定ファイルでどこを巡回するのか記載しておくと 定期的に巡回してそのサイトの最新情報を取得する 取得した最新情報が既知であれば廃棄し,新規であれば登録する 登録した情報をユーザに一覧表示し,ユーザが: 既読フラグを付けた場合は,もう表示しない 未読フラグを付けた場合は,次回も表示する ブックマークフラグを付けた場合は,指定の(ソーシャル)ブックマークに登録し 保存フラグを付けた場合は,DLNAサーバにコンテンツごと保存 再生フラグを付けた場合は,ユーザが利用するツールに併せた形式で情報提供 DLNAサーバも巡回対象になっている こう考えると
開くつもりで用意はしたんだけど、なんかすごく疲れたのでここで紹介して終了。中身は、朝倉さんがgihyo.jpで連載した特集のまとめ | View | Upload your own
6/27に第一回Yokohama.pm tech talkが開催されました.会場の用意とustreamを流していました.録画に失敗して申し訳ありません.しゃべったネタは「Yapc::Asiaの開き方」です. | View | Upload your own と,こういうのを書いてると,宮川さんも色々思い出して書いてくれるわけですね.w
環境であれこれ 昨晩ちょっと試していたら,ppc mac, osx 10.4 + perl 5.10の環境だとAnyEventモジュールがインストールできませんでした.POE::Component::JabberもTestはすべてOKなんだけど,プロセスが終了時に255を返してると文句を言って来るのでforce insatallしないとインストールできません.オフィスのintel mac, osx 10.4 + perl 5.8.8 だと両方ともインストールできたので,perl5.10に起因する問題かもしれません. 昔作ったirc-notify 以前notify_irc.plというスクリプトを作りました.これは,IRCに常駐するサーバスクリプトと,コマンドラインからサーバ経由でIRCにメッセージを投げるクライアントスクリプトからなるシステムです.普段便利に使っているので,これのXMPP版を
XMPPを使ってみたくなったので仕様を調べて仲間内で発表してみました.その資料を公開します. | View | Upload your own話の中に出て来るOpenFireというのはjavaで動くOpenSourceなXMPPサーバで,PsiというのはXMPPクライアントです.
申し込んでみた Google App Engineが公開されたので,さっそく申し込んでみました.でも現段階ではアプリを3個しか登録出来ないし,一旦登録したアプリは削除できないらしいので,何をやったら面白いのかを考えてみる事にしました. いろんな制約 Google App Engineは,ファイルシステムへの書き込み,ソケット利用,子プロセスやスレッド作成,シグナルのようなシステムコール利用ができません.ユーザによるライブラリの追加はできますが,Cで書いたpythonモジュールは動きません.さらに,ファイルシステムへの書き込みなどが禁止されたりしてることから標準ライブラリ中のいくつかのモジュールに変更が加えられています.Google App Engineで動くpythonライブラリ一覧を一読しておくことをお勧めします. 何ができるか? Google App EngineアプリケーションはGo
次のページ
このページを最初にブックマークしてみませんか?
『file-glob こと k.daibaの日記』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く