サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
アメリカ大統領選
akihito.hatenablog.com
APIドキュメント(API Blueprint)からモックサーバを立ち上げるWeb::API::Mockを書きました https://github.com/takihito/Web-API-Mock 使い方: https://github.com/takihito/Web-API-Mock/wiki/Usage Plackで作った事もあり以前紹介したapi-mockよりも、ちょっと便利になっています APIドキュメントからモックサーバを立ち上げたい - akihitoのログ置き場 モックサーバ立ち上げ時にplackupのオプションが使える 複数個のAPIドキュメントに対応 未実装のAPIリストを渡す事でステータス:501を返す モックサーバからアプリケーションサーバへURL毎にスイッチする 3番目の仕組みを利用することで、nginxを使ってモックサーバからサーバアプリケーションに差し替える
APIドキュメント(API Blueprint)を記述するとモックサーバを立ち上げてくれるサービスがあります。 GitHubでAPIドキュメントを管理したり、モックサーバのアクセスログが見えたりの中々の優れ物です。 Apiary — Home 提供されるモックサーバがRESTful APIで少々融通が効かないこと、外部のWebサービスなので場合によっては採用しづらいのが難点。 ただ、API BlueprintのテストツールやモックサーバはOSSで提供されているので、サービスを使わずに利用することも可能のようです API Blueprint - API Documentation with powerful tooling api-mockで手軽にモックサーバを立ち上げる 公開されているモックサーバがJavaだったりして、ちょっと入れづらいなぁと思っていたら、api-mockなるモジュールが
daemontoolsを使っていますが、設定や導入の分かりやすさやからSupervisorを使いはじめています http://supervisord.org インストールや細かい設定は省きますが、/etc/supervisord.confに外部設定ファイルを参照するようにしてデーモンを管理するのがいいようです。 [include] files = /etc/supervisord.d/*.conf nginxを追加してみる /etc/supervisord.d/nginx.confを新たに作成してSupervisor配下にいれます。 [program:nginx] command=//usr/sbin/nginx -c /etc/nginx/conf/nginx.conf process_name=%(program_name)s numprocs=1 stopsignal=QUIT 起動
はてな界隈では、さほど話題にならなかった心霊写真変換ですが、実はGIGAZINEに載った経緯でmixiの注目ニュース入りし、かなりのアクセス数になりました。 経緯としてはこんな感じです↓ GIGAZINEに載る→mixiニュースに載る→mixiユーザが日記を書く→注目のニュース入り→アクセス殺到 Yahoo!砲ほどではないのですが、ユーザが写真を変換しまくるものだからエラい事に... mix自体あまりやらないのですが、こんなに凄まじいとは思いませんでした;; さて、このジェネレータですが、はてぶの数は今日現在で35程度。 何が言いたいのかとゆーと、はてぶのブックマーク数だけが全てじゃないんだなぁと思った訳です。 あとエントリー書いて知り合いに教えたくなるネタってのもありますね。 まぁ画像を重ねてるだけなので、ネタ的にはブクマされるようなものではないのですが、、、あちこちのブログに書かれた為
世間では空前の幕末ブームが到来しているようですが、社内のデザイナーさんの力をお借りして心霊写真ジェネレータを作成しました。 心霊写真変換 やっていることは、 富士フィルムさんの顔ラボAPIで目の位置を検出し、目線を入れる 霊の画像を合成 ノイズを入れる こんな感じです。 変換後は除霊を行うことで霊を削除して、目線だけの画像にすることもできます。 除霊後↓ほっとしますね(w 変換後の画像は手元で保存してください。数日で消されてしまいます。 霊によっては人のいないエリアに出現するようです、かなり気まぐれなので色々試してください。 分かりにくいですが、こんなところにも、、、 追記 APIの利用制限回数(200回?)を超えたらしく目線が入らなくなりました;; ずいぶん少ないなぁ。
socks経由でLWP::UserAgentを使いたいときのメモ。 LWP::Protocol::https::SocksChainを使って指定してあげると良いようです。 use LWP::UserAgent; use LWP::Protocol::https::SocksChain; LWP::Protocol::implementor( https => 'LWP::Protocol::https::SocksChain' ); @LWP::Protocol::https::SocksChain::EXTRA_SOCK_OPTS = ( Chain_Len => 1, Debug => 0, Chain_File_Data => ['socks:1080:::4:383 b/s Argentina'], Random_Chain => 1, Auto_Save => 1, Restor
REST本を読んだりニコニコの動画配信を見て、ようやく分かってきた感じです。 動画で配信!「現場で使えるREST」鼎談 RESTful Webサービス 作者: Leonard Richardson,Sam Ruby,山本陽平,株式会社クイープ出版社/メーカー: オライリー・ジャパン発売日: 2007/12/21メディア: 単行本購入: 25人 クリック: 842回この商品を含むブログ (168件) を見るREST自体に新しい技術はありません。 ソフトウェアにOOPのような設計手法があるように、Webサービスの設計にもREST(ROA)があるよと言う事のようです。 いままで何となく接してきた技術に名前をつけて再認識することで、Webサービスを構造的に考えられるようになりました。 URI(URL) リソース(コンテンツ) 表現(フォーマット) 接続性(リンク) 統一インタフェース(GET、PO
久々にPlaってみました。アクセスログを集計して結果(上位10件)をRSSで出力するようにしてみました。 処理の流れ(変に遠回りしてる気もしますが) ログファイルをもとにアクセス数をカウント アクセス数が多い順にソート ページにアクセス Web::Scraperでスクレイピングしてtitleとメタタグのdescriptionを取得 エントリーオブジェクトを生成 エントリーオブジェクトをPlagger(Publish::Feed)に渡して出力 そこまでスクリプト書いたんならPlaggerに渡さなくても(XML::Feed使え)...とか言われるかなぁ。 まぁ一応やってみたんで。 以下レシピとスクリプトです。 rank.yaml global: timezone: Asia/Tokyo plugins: - module: CustomFeed::Script - module: Subscr
perlのPOEを使ってmemcachedを再現してみました。 esecached.pl memcachedの偽物なので、こんな名前です。 できるのはset,get,delete,flush_allだけ。flagもexptimeも無視します(笑)。 Cache::Memcachedを騙せる事を確認しました。 POEをはじめて使ったので割とテキトーです。 動けば良いかな程度に作ってます。 use warnings; use strict; use POE; use POE::Component::Server::TCP; my $ESECACHE_DATA = {}; my $port = 11211; POE::Component::Server::TCP->new( Port => $port, ClientConnected => \&handle_client_connect, Cl
MOONGIFTで紹介されていたJNEXTを使うとブラウザからソケット通信をする事ができます。これを使ってmemcachedにソケット通信するモジュールを作ってみました。 10/9 ソースをcodereposに移しました add,replaceが使えるようになりました(使ってる人なんかいるのかね?)。 cache_memcached.js サンプルコード 使い方 サーバ側 memcachedを起動させるだけです。CGIやスクリプトを置く必要はありません。 memcached -d -m -l 192.168.0.10 -p 11211 -u root クライアント側 JNEXTをインストールします。 インストールが完了したら、auth.txtを編集してJNEXTが実行できるURLとライブラリを追記します。 MSIE → C:\Program Files\Optimistec\JNEXT\A
miyagawaさんのエントリーやはてなダイアリーTagCloud の影響で、第2次タグクラウドブームがおきています(脳内調査)。 そこで流行にオイラも乗ってみましたよ。巷で話題の著作権切れ作品をタグクラウド化してみました。 桜の樹の下には(梶井基次郎) →タグクラウド化 作り方はmiyagawaさんとほぼ同じです(おそらく)。 青空文庫からHTML::TreeBuilder::XPath + HTML::Selector::XPathでタイトル、作者、本文を切り出した後、本文をText::MeCabで形態素解析して"名詞,一般"のみ集計しHTML::TagCloudでタグクラウド化しました。 ゴミっぽい仮名文字も入っていますが("つて"が多いのは"乗つて"等の旧表現の所為か?)、結構いい感じにできたので他の著作権切れも試してみました 山椒大夫(森鴎外) →タグクラウド化 瓶詰地獄(夢野久
GoogleMapsの衛星写真を使ってあの国を監視の続きです。 id:otsuneさんに教えていただいたwebkit2pngをつかって改良してみました。webkit2pngは、pythonのバージョンを2.4にupdateしてPyObjCを入れるとインストールできましたよ。 http://www.paulhammond.org/webkit2png/ http://pyobjc.sourceforge.net/doc/install.php 改良版ではNotify::OpenBrowserを使わずPublish::Pipeだけでキャプチャしました。 衛星写真 Official Homepage レシピ plugins: - module: CustomFeed::Debug config: title: OpenBrowser entry: - title: map link: http:
GoogleMapsの衛星写真を使ってあの国を監視するレシピを考えました。間にシェルを挟んでいるのでちょっと反則ですが >< 平壌の衛星写真 監視方法 以下の手順で危険をメールで通知します。 plagger -c browser.yaml→capture.sh→plagger -c warning.yaml GoogleMapsで画像をキャプチャ(browser.yaml) 前回のキャプチャ画像と比較(capture.sh) 変化なし→安全→何もなし 変化あり!→ミサイル準備?車両集結?→危険をメールで通知(warning.yaml) 画像をキャプチャ(browser.yaml) 前のエントリースクリーンショット(MacOSXの場合)を参照。 画像の比較(capture.sh) ImageMagickのidentifyで画像情報を取得し比較します。画像サイズに変化があれば衛星写真に何らかの
http://d.hatena.ne.jp/spiritloose/20061014/1160820957 画面全体のスクリーンショットになってしまいますが、MacOSXならばscreencaptureコマンドがあります。Publish::PipeとNotify::OpenBrowserを使って作ってみました。 plugins: - module: CustomFeed::Debug config: title: BrowserCapture entry: - title: nhk link: http://www.nhk.or.jp/special/onair/planet.html - module: Publish::Pipe config: command: /Users/akihito/plagger/capture.sh & - module: Notify::OpenBrow
実際にPlggerって便利だなぁと思うのはPublish::SWFじゃなくてPublish::CHTMLだったりします(w。 移動中や待ち時間に、はてブの注目とかをFilter::EntryFullText+Publish::CHTMLで変換して携帯(WILLCOM)で読むわけです。時間的にも数エントリー読むだけなので丁度いい感じです。 しかし、エントリ内からリンクされているページが見たい場合、携帯で読むように最適化されていないので、Operaブラウザで読むにしてもかなりつらいものがあります。 そこでGoogle Mobile Proxy(?)を使います。あらゆるページを携帯用に最適化してくれるGoogeleのWebサービスです。Publish::CHTMLのテンプレート(chtml_entry.tt)に以下のように記述しておくと、リンク先で携帯用にページが変換され以降のページすべてが携帯
Software Design 2006年10月号の「3章:俺流Plagger3分Hacking」で記事を書かせていただきました。 「しょこたん☆ぶろぐ」を青柳衡山フォントで読む Plaggerで漢字に読み仮名をつける インストールから各レシピの設定まで非常にわかりやすく丁寧に解説されています、ぜひ一読を。 shibuya.plのみなさん、関係者の方々ありがとうございました! 訂正 間違いがありましたので訂正させていただきます。 p93 使用するワザ ×Subscription::Config-> Publish::Feed ○Subscription::Config -> Publish::SWF p95 タイトル ×MeCabで形態解析 ○MeCabで形態素解析
Imagerで新書ジェネレータを作ってみました。ローカルで実行するタイプです。 講談社現代新書専用です。以下ソースとテンプレート画像になります。 新書を出す前にこれでイメージをつかむと良いかもしれません。 use Imager; use utf8; my $image = Imager->new; $image->read( file => 'shinsyo_tmpl.jpg' ); my $ttfont = Imager::Font->new(file => 'HONYA-JI.ttf'); $ttfont->align(string => 'シナモンを見下す若者たち', size => 20, color => 'black', x => 10, y => 30, halign => 'start', image => $image); $ttfont->align(string =>
よみがな(平仮名)を付けるFilter::YomiHiraGana。id:lestrratさんのText::MeCabを使っています。 まだ漢字を読めないお子様もこれで大丈夫。インターネットで漢字を楽しく勉強できます。幼稚園や小学校にPlaggerをぜひ導入しましょう。 人生に必要な知恵はすべて幼稚園の砂場で学んだ (河出文庫) 作者: ロバートフルガム,Robert Fulghum,池央耿出版社/メーカー: 河出書房新社発売日: 1996/03メディア: 文庫購入: 6人 クリック: 89回この商品を含むブログ (30件) を見る package Plagger::Plugin::Filter::YomiHiraGana; use strict; use base qw( Plagger::Plugin ); use Text::MeCab; use Unicode::Japanese;
Plagger::Plugin::Publish::SWFでいろんなフォントを使ってみました。 フォントを変えると文の印象がずいぶん変わります。 jkondoの日記をふい字で しょこたん☆ぶろぐを青柳衡山で Bulknews::Subtechをほにゃ字で livedoor 天気情報を怨霊フォントで x51を懐映体で どうでしょう?フォントにもよりますが、ブラウザよりも見やすく感じます。 難解な文章にも挑戦できそうです。
PlaggerでSWFファイルを出力するプラグイン(Plagger::Plugin::Publish::SWF)を作成してみました。SWF::Builderを使い指定したフォントでFeedを表示しています。 しなもん日記をほにゃ字で。 サンプルSWF しなもん日記を青柳衡山で。 しなもん日記を怨霊フォント で。 プラグインはPlagger::Plugin::Publish::PDFを参考にしました。初めてでしたが、結構簡単に作れました。Plaggerバンザイです。以下注意点。 SWF::Builderに渡す日本語にはUnicodeフラグをつける(文字化けします) 文字の表示はActionScriptで操作(Perlと混ざるとややこしい) 改行の処理 3番目の改行の処理ではJcodeのjfold()を使って指定した最大文字数で改行しています。自動改行するためにダイナミックテキストを使用すると
このページを最初にブックマークしてみませんか?
『akihitoのログ置き場』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く