読み書きプログラミング

日常のプログラミングで気づいたことを綴っています

Ruby

新浪微博の各ポストへのURL生成

新浪微博の各ポストに当たるURLを生成する必要があったので、調べました。URLはhttp://weibo.com/<user id>/<post mid>という構造になっていて、post midはpost idから計算できます。 post midを計算するAPI(Querymid)が用意されていたようですが、今の提供されていないようです</post></user>…

RMagickでTwitterに投稿するGIFアニメーションを作成する時に注意すること

6月19日にTwitterがGIFアニメーションをサポート開始しました。直接GIFアニメーションを見えるようにするのではなく、投稿時にGIFアニメーションをMP4に変換してそのリンクをツイート配信する枠組みです。RMagickでGIFアニメーションを作成して投稿してみた…

ダックタイピングの手引き? - Rubyでの静的型付けの心理学

「Dropboxは全部Pythonで信頼性の高いソフトウェアを作った」の中で「人生を変えた記事」として"Subject: How to duck type? - the psychology of static typing in Ruby"というメーリングリストへの投稿記事が紹介されていましたので、訳してみようかと思い…

Wolfram|AlphaのTwitter bot多言語化しました。

Twitterから問いかけると、Wolfram|Alphaが答えてくれるTwitter bot @wb_botを多言語化しました。40カ国語以上です! (Microsoft Translator APIを利用させていただきました。)@wb_botにメンションする形で探索式を入力すると、答えがリプライされます。 @wb…

Tweets in the World

世界中のツイートを地図上で表示するサイト"Tweets in the World"を作りました。 http://tweets-in-the-world.herokuapp.com 具体的には、位置情報を含むツイートをマーカーでプロットし、2秒に一度、適当にツイートの中身を表示しています。Photo Filterを…

ツイートを読み上げるスクリプト

Twitterのフォロー数が多くなって、遡って読むことが多くなりました。それも一興ですが、本来、つぶやきのように流れていくのがTwitter。遡って読まなければいいじゃんと言われたらそれまでですが、それでいい情報を逃すのももったいないので、読み上げスク…

herokuでRubyとphantomjsを使う

ウェブサイトのサムネイル画像を作るのに、phantomjsを使いました。サーバーサイドのJavaScriptに不慣れなため、他の処理はRubyで作りました。これをherokuにデプロイする時に少し苦労しましたので、以下、備忘録です。1. 最小限のGemfileを用意して、`bundl…

先頭行を取り出す

(たまたまRubyでコーディングしていたのでRubyタグを付けました。)複数行を含む文字列から先頭行を取り出す必要がありました。 最初浮かんだのは、行に分割して先頭を参照。 head = string.split(/\r?\n/)[0] これだと先頭以外も分割するという不要な演算を…

Wolfram|AlphaのTwitter bot作りました。

Twitterから問いかけると、Wolfram|Alphaが答えてくれるTwitter bot @wb_botを作りました。 @wb_botにメンションする形で探索式を入力すると、答えがリプライされます。Steve Jobsさんの誕生日は? @wb_bot Steve Jobs' birthday2012-09-07 12:25:35 via Ech…

青空文庫の作品を定期的に分割配信するTwitter bot @novels_botを作りました。

【人身御供募集】青空文庫の好きな作品を毎日少しずつ配信するtwitter bot @novels_botを作りました。まだまだ使いにくくまたデバッグの最中ですが試していただけたらうれしいです。@novels_botに話しかけると使い方が返信されます。よろしくお願いします。2…

Maxima on Web for iPadのソースコード公開

一年以上前のプロジェクトですが、要望があったのでMaxima on Web for iPadのソースを公開します。 https://github.com/y-ich/maxima-on-web 個別にサーバーを立ち上げていただく必要があります。

Google Earthコンテンツの作り方 (4) ーフォルダからツアを作るー

パソコン版では、(凝ったことを考えなければ)フォルダからツアを見ることは簡単です。スイスの有名な山々の目印を作りましたので、例にご利用ください。http://y-ich.github.io/kml/example_swiss.kmlインポートしたフォルダをアクティブにして、「場所」ペ…

ステータスコードのテスト

Rails+RSpec+Capybaraにて。 it { page.status_code.should == 200 # success } 検索すると、response, response_code, response.code, be_ok, be_success、respond_with, ...色んなパターンが引っかかりますが、どれも通りませんでした。(CapybaraがRSpecの…

reCAPTCHA/railsを使ったときのテスト

reCAPTCHAを利用するため、railsプラグインrecaptchaを使いました。 test環境、cucumber環境ではverify_recaptchaは常にtrueを返すので、モックは不要でした。 test環境でのreCAPTCHAのinvalidの確認をするには、test環境でPRIVATE_KEYとPUBLIC_KEYを設定し…

フォームのvalidationエラー表示の整形

入力フォームでvalidationのエラーがあった時、フィールドを<div class="field_with_errors">タグで囲って強調してくれますが、レイアウトが壊れることがあります。その対応で<div>を<span>に置き換えるという記事をネット上で見ましたが、やはりレイアウトが乱れることがあるようです。(jQuery Mobile</span></div></div>…

Sinatra with Delayed Job on PostgreSQL 動きました!

Sinatra with Delayed Job on PostgreSQLがローカル(OS X Lion)で動きました。以下、備忘録です。 概要 Sinatra上のウェブアプリケーションにバックグラウンドジョブを実装しました。 バックグランドプロセスにはRailsプラグインとして有名なDelayed Job、バ…

Heroku上で遅延タスクを実行するには

辞書Twitter連携をちゃんと動かすべく、調査を行いました。 一般論 ウェブアプリケーションは通常、ウェブプロセス、バックグラウンドプロセス、cronプロセスを使って実装する。時間のかかる処理、時間が不定な処理(他のウェブサイトへのアクセス)などはバッ…

文法対比

JavaScriptとRubyの文法対比表を作りました。 類義語 JavaScript Ruby オブジェクト ハッシュ 文字列 シンボル プロパティ 属性 対比表 項目 JavaScript Ruby ソース文字コード Unicode(UCS-2/UTF-16) ソースコードの先頭もしくはshebang行の次に以下のよう…

スマートフォンやタブレットで便利な辞書ブックマークレット(リメイク版)

iPadやiPhone、Androidケータイで英語のウェブサイトを見るとき、辞書が連携してくれなくて辛くありませんか? 辞書用ブックマークレットがたくさんありますが、みんな、辞書サイトを別のページで開くか、辞書アプリを開きます。戻るのが大変で不便です。 別…

Maximaサーバーがセッションを維持しながら動作するようになりました。

復習: 以前のバージョン(Maxima on Web グラフ出力)では、CGIを呼び出すたびにMaximaを起動していてセッションを維持することができませんでした。 バックグラウンドでMaximaのプロセスを維持しようとすると、CGIスクリプトでは難しいので、ウェブアプリケー…

Maxima on Web グラフ出力

maxima.html <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <title>Maxima on Web</title> <script type="text/javascript" src="prototype.js"></script> <script type="text/javascript"> 0) { var xmlHttp = new Ajax.R…</meta></head></html>

Maxima on Web

iPadでMaxima使いたいなと思っています。数式を扱う時って、ディスプレイ見ているよりノート見る感じのほうがいいんですよね。 てっとり早いのはブラウザでAjaxかと思い、誰かやってくれているはずと思ったのですが、なかなかMaximaを生で見せてくれるものは…