岩本隆史の日記帳(アーカイブ)

はてなダイアリーのサービス終了をうけて移行したものです。更新はしません。

livedoor Blogに移動します

今後の記事は http://iwamot.ldblog.jp/ に書きます。はてなダイアリー以外のブログサービスをまともに使ったことがなく、これを機会に使ってみたくなったというのが本音です。出戻る可能性は大いにありますが、物は試しということで。 追記(2012-04-12) …

はてなブックマークからDeliciousに移動します

ブックマークを http://b.hatena.ne.jp/IwamotoTakashi/ から http://www.delicious.com/iwamot に移動します。もちろん今般のトラッキング問題が大きなきっかけではありますが、それより前に「新ユーザーページの使いづらさ問題」という小さなきっかけもあ…

Product Advertising APIの旧バージョンサポートが終了

メールが届いた。2月22日をもって、2011-08-01バージョンを除くすべての旧バージョンのサポートが終了するとのこと。リリースチェッカーでは2010-06-01バージョンを使っていたので上げた。コードの変更は特になし。旧バージョンでのリクエストはすべて2011-0…

JP ISBN Linkerを更新した

JP ISBN Linker がFirefox 10で動かなくなったので更新した。node.isSameNode メソッドを使っていたため。 DOM4 仕様書で非推奨とされたため、node.isSameNode メソッドが削除されました。node1.isSameNode(node2) に代わり、=== 演算子を使用できます。例: …

Ruby Association Certified Ruby Programmer Silverに合格した

Ruby Association Certified Ruby Programmer Silverを本日受験し、無事合格した。満点だった。受験した理由は色々あるのだが、今の会社に依存していたくなかったというのが大きい。転職時や独立時に有利になるよう、今年は取れそうな資格を手当たりしだい取…

文字種チェック用の読みやすくて速い正規表現

前回の日記で「クライアントに的確なエラーメッセージを返すため、文字種のチェックと文字数のチェックは分けて行うべきかもしれない」と書いた。このうち、文字数のチェックは簡単である。文字数をカウントし、許容文字数を超えていないかどうか調べるだけ…

Ruby製Webアプリでの書式チェック用正規表現

制御文字は不許可にすべき 前回の日記で「単なる書式チェック(文字種や長さなどのチェック)なので、アプリの要件にしたがって粛々と行えばよい」と書いた「(c)パラメータ文字列の妥当性検証」であるが、実は考えるべきことがそれなりにある。アプリの要件…

Ruby製Webアプリでの入力チェック手順

今回はRuby製Webアプリでの入力チェック手順について考えてみる。Ruby1.9を使い、Railsなどのフレームワークは使わない前提だ。 文字エンコーディングの妥当性検証こそが重要 徳丸浩さんの『体系的に学ぶ 安全なWebアプリケーションの作り方』には「入力処理…

Rack::Request#[]でUTF-8文字列が返ってくる件

$ ruby -v ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-linux] $ gem list | grep rack rack (1.3.0)という環境で: require 'rack' class MyApp def call(env) [200, {"Content-Type" => "text/plain"}, [Rack::Request.new(env)['hoge'].encoding…

Re: RESTとCSRF

ご無沙汰しております。artonさんの「RESTとCSRF」を読んで僕なりに考えたことを書きます。お題: 所定の遷移に従っていないクライアントには破壊的な操作をさせたくない 破壊許可識別子をリクエストボディに含めたくない artonさんの解は下記の通り「破壊許…

Twitter botのプログラムを晒してみる

どんなbotか カラオケって、歌いたい曲が配信されてなかったりしますよね。そのモヤモヤを救済するために、JOYSOUNDという超最高なカラオケ配信サービスが、配信リクエストを受け付けてくれています。リアルタイムリクエストです。投票で毎月200位までに入っ…

『プログラマが知るべき97のこと』を献本いただいた

プログラマが知るべき97のこと作者: 和田卓人,Kevlin Henney,夏目大出版社/メーカー: オライリージャパン発売日: 2010/12/18メディア: 単行本(ソフトカバー)購入: 58人 クリック: 2,107回この商品を含むブログ (350件) を見る普通に買おうと思っていたんで…

PHP-users.jpのコンテンツを更新した

これですこれ。 http://php-users.jp/ 覚えてますか。「PHP-users.jpのコンテンツを更新する方法」という記事に書いたとおり、PHP-users.jpのコンテンツはGitHubで管理されています。そのリポジトリに対し、hidenorigotoさんから先日pullリクエストがあった…

第14回 xUnit Test Patterns 読書会に参加した

9月25日に開かれた「第14回 xUnit Test Patterns 読書会」に参加してきました。参加してよかったです。テストがうまく書けなくてモヤモヤしていたのがすっきりしました。とくに印象に残った一言が、id:t-wada さんによる「インフラを疑わないというルールで…

Amazon Product Advertising APIの容赦ない変更点

Amazon Product Advertising APIの最新バージョン以降では、カスタマーレビューの内容が取得できなくなるかもしれません。レビューを表示しているアプリの製作者は、ドキュメントをチェックしたほうがよいと思います。 変更点 Product Advertising APIの2010…

リリースチェッカーをさくらのVPSで試験運用中

リリースチェッカーをさくらのVPSで試験運用中です。もともとWebKeepersのVDSで運用していたのですが、このまま乗り換えることになりそうです。最近、国内のVPSサービスが充実してきています(参考:VPS比較 SaaSes, さくら, ServersMan@VPS)。拙作のリリー…

RubyからHaskellを呼び出したくてHubrisをインストールした

Hubrisという、RubyからHaskellのコードを呼ぶためのブリッジがあります。HaskellパッケージとRubyライブラリで構成されており、現在のバージョンは0.0.3です。とある理由から、このHubrisで遊んでみようと思ったのですが、Haskellパッケージのインストール…

Haskell Platformを入れた

以前の日記(「Haskell初心者の僕が試したことをまとめてみた」)を書いたときには知らなかったのですが、Haskell Platformという開発プラットフォームがあるんですね。http://www.sampou.org/cgi-bin/w3ml.cgi/haskell-jp/msg/480で知りました。今のところ…

HUnitで日本語を出力してみる→成功

こんなテストケース(test.hs)があるとします。 module Main where import Test.HUnit test1 = TestCase (assertEqual "アサーションのラベル" "期待値" "実際の値") tests = TestList [TestLabel "テストのラベル" test1] これを走らせると: Prelude> :lo…

HUnitを使ってみた(ついでにHLintも)

HaskellのユニットテストフレームワークであるHUnitを使ってみました。テスト対象のコードは、先日書いたsign関数です。 HUnitのインストール なにはともあれ、まずはHUnitをインストールしました。Cabalのおかげで簡単に入れられました。 $ cabal install H…

削除できなくなったTwitterの検索メモが削除できるグリモン書いた

書きました。 Twitter - Better saved searches for Greasemonkey リアルタイム検索結果が0件になると検索メモが削除(解除)できなくなるんですが、なんでこんな仕様なんでしょうね。ともあれ、不必要な検索メモが削除できて、僕はすっきりしました。 追記…

Product Advertising APIの利用ガイドライン変更に対応した

ガイドラインの変更点 AmazonのProduct Advertising APIの利用ガイドラインが変わりました。利用者にはお知らせメールが来ていると思います。僕には来ました。変更点は下記の通りです。正確な内容はガイドラインをご参照ください。 1時間に2000リクエストを…

HTTPの仕様書に「副作用」の定義がないのは不親切じゃね?

『Webを支える技術』の101ページに、こう書かれています。 リソースの状態に変化を与えることを副作用(Side Effect)と言います 僕の読み落としでなければ、この定義の出典は同書には明記されていません。ただ、HTTPメソッドの冪等性や安全性を解説する文脈…

Haskell初心者の僕が試したことをまとめてみた

なぜHaskellに興味をもったのか 僕がHaskellに興味をもったきっかけは、『まつもとゆきひろ コードの世界?スーパー・プログラマになる14の思考法』(通称「ホスト本」)でした。ホスト本の第14章「関数型プログラミングについてなど」では、関数型プログラミ…

『横井軍平ゲーム館 RETURNS』は技術者にも響くはず

ごぶさたしております。思うところあって、最近、Haskell の勉強を始めました。勉強といっても、まだ本を読んでいるだけで、「関数脳」にはほど遠い状況です。そのうち、勉強の成果をこの日記に書きたいと思っています。さて、今回の日記では『横井軍平ゲー…

『UNIXという考え方』を読んだ

id:t-wada さんが: 『UNIX という考え方』は、私のバイブルです。UNIX の背後に流れる価値観、設計思想、シンプルな設計とは何かを学べる、多くの技術者におすすめの本です。 QUnit-TAP : JavaScript のテスティングフレームワークQUnitからTAP出力する - t…

商品検索結果リソースのJSON表現を考えた

商品リソースに引き続き、商品検索結果リソースのJSON表現についても考えてみました。まず、linkプロパティで「自分自身のURI」「前後ページのURI」「最初と最後のページのURI」を示すことにします。続いて、totalResults、startIndex、itemsPerPage、Query…

商品情報のJSON表現について考えた

キープリストで提供するリソースのURI キープリストというWebアプリを作ろうとしています。気になる商品(Amazonで扱っているもの)を放り込んでおけるサービスです。以前の日記では、URIの設計について考えました。それからも断続的に考えていて、現在は以…

URIの覚えやすさは自明か

URI

石井勲式漢字教育法という幼児教育メソッドがあります。石井勲氏が、自身の発見に基づき確立したものです。その発見とは、以下の2点でした*1。 幼児にとって漢字はかなよりずっと覚えやすい 鳩は鳥よりも覚えやすく、鳥は九よりも覚えやすい 簡単な字形の「…

RVM上のRubyでOpenSSLを使うときは

RVM上のRuby1.9.1にThinをインストール後、ためしに「thin -v」したら、「thin.rb:6:in `require': no such file to load -- openssl (LoadError)」となった。どうしようかといろいろ調べたら、「All about Ruby on Rails & Data recovery software」に答え…