先日の日記でひねり出した「識別子結合方式」のURIは、現実のWebサービスでは見かけないので、「またいつものように僕だけが突飛なことを考えているんだろう」とひとりごちていたら、ふと、Wikipediaで使われていることに気づきました。 Wikipediaの名前空間…
先日書いた「こんなURI 設計、どう?」の続きです。 例:商品ブックマークサービス URI設計の例として、商品ブックマークサービスを対象に考えてみます。提供するおもなリソースは、以下の5つです。 リソース名 パンくずリストのイメージ トップレベルリソー…
先日書いたように、作りたいWebサービスがあります。当然ながら、まずは設計から始めなければなりません。設計にあたっては『Webを支える技術』の第15章で紹介されているサービス設計手法を用いることに決めたのですが、URI設計のステップで、はたと考え込ん…
Amazonのカートって不便じゃないですか。僕はいつも、買うかどうか微妙な商品をAmazonのカートに放り込んでいて、そういう使い方をしていると、以下の点に不便を感じます。 複数の商品を選択してのボタン一発処理ができない。カート上の買わない商品をだーっ…
TwitterのつぶやきをAPIで取得すると、中途半端にエスケープされた文字列が返ってくる id:koseki2さんが「Twitterのエスケープ処理について。 - こせきの技術日記」で指摘されているように、TwitterのつぶやきをAPIで取得すると、中途半端にエスケープされた…
前回の日記の続きです。『Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)』の第3部と第4部を読みました。以下、特に勉強になった点などのメモです。 第3部 HTTP リソースの作成はPUTよりPOSTが望ましい。PUTはサーバとの結合が密になる…
昨日の日記の続きです。『Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)』の第1部と第2部を読みました。 第1部 Web概論 「第2章 Webの歴史」が知らないことばかりで面白かった。個人的に興味深かったのは、SOAP対RESTの論争に火を付け…
Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)作者: 山本陽平出版社/メーカー: 技術評論社発売日: 2010/04/08メディア: 単行本(ソフトカバー)購入: 143人 クリック: 4,320回この商品を含むブログ (183件) を見る我慢できない子なので…
拙作のグリモン「JP ISBN Linker」を更新しました。マウスだけでなく、Shift+MでもAmazonの書籍ページが開くようになっています。*1 役に立ちそうな方 Twitterで @junkudo_ike_pc や @shosen_bt_pc をフォローしている。かつ、LDRizeを使っている livedoor …
1. 「TDDはテスト手法ではない」と2004年には言われていた dannさん(2004-02-08) TDDはテスト手法ではないTDDは設計手法です。Jon Trisenさんは、TDD is about Testingだと言っていますが、自分はそうは思いません。TDD isn't about Testingです。極論すれ…
この記事の更新履歴 2010-03-04 この記事を随時アップデートしていくことに決めた。「Gmail Unread Message Count in Favicon」を追加。 本題 Firefox 3.6上で有効にしているGreasemokey一覧を晒してみます。珍しいものもあると思いますので、お役に立てば幸…
Wassrの各投稿者の表示をニックネームからユーザIDに変更するグリモンです。 http://userscripts.org/scripts/show/69481 id:kazuhookuさんがWassrで書かれていたブックマークレット*1をユーザスクリプト化したものです。使っているGreasemonkeyリストを晒そ…
「LDR - Emphasize Authors」を更新しました。livedoor Reader上で、指定authorによるエントリのauthor部分を強調表示するグリモンです。 http://userscripts.org/scripts/show/26571 OperaやFastladderでも動作するようコードを改善しています。インストー…
クックパッドのサイト上で、レシピへのリンクテキストに「つくれぽ」の件数を追加するグリモン「COOKPAD - Show Report Count」を公開しました。 http://userscripts.org/scripts/show/69403 id:samurai20000さんの「cookpad_tukurepo」がオリジナルです。今…
ISBN文字列をダブルクリックするとAmazon.co.jpの該当書籍ページが開くグリモン「JP ISBN Linker」を公開しました。 http://userscripts.org/scripts/show/69041 初めは、以前書いたグリモン「bk1 - Add Amazon Link」(bk1の書籍詳細ページにAmazonへのリン…
不定期に訪れるGreasemonkey期。まずは、livedoor Readerのピンの挙動をFIFO(先入れ先出し)に変えるグリモン「LDR - FIFO Pin」のコードを少し書き直しました。 http://userscripts.org/scripts/show/24235 汚い部分(onloadを置き換えるところとか)を整…
もういっちょ。超絶便利グリモン「LDR - Dedupe Entries」を拡張する、拙作のグリモン「LDR - Clear Deduped Style」を更新しました。 http://userscripts.org/scripts/show/23739 Shift+Rでエントリのスタイルが切り替わる挙動はそのままですが、Shift+Eで…
AutoPagerizeを使っていると、mixiの日記のコメントフォームで絵文字パレットが開かないことに気づきました。そこで、その問題を解消するGreasemonkeyスクリプトを作ってみました。 AutoPagerize filter for mixi diary Emoji お困りの方はどうぞ。日記ペー…
前回の日記で「RouterやDispatcherもプラガブルにしたい」「Rackのような抽象化をRouterレベルでトライしてみたい」と書きましたが、これ、ちょっとおかしいですね。 HTTPD <-> Rack <-> アプリケーション アプリケーション <-> ???? <-> Router抽象化である…
「RubyでオレオレWebアプリケーションフレームワークを作ろう」と思ってからどれほど経ったのか、過去記事をさかのぼれば分かりそうですが、きっと呆れるくらい経っているので、あえて調べないことにした岩本です、こんばんは。フレームワーク作りにこれだけ…
この日記が良い例ですが、URLなどでIDが公開されるWebアプリは、悪意のある第三者にパスワードが推測されてしまうと、不正ログインされる可能性があります。考えてみると、ログインに使うIDをわざわざ公開する必要はなさそうです。公開することに意味がある…
前回の記事にて、妥当なユーザIDとパスワードを決めました。そこで、さっそくバリデーション処理をBDDで実装しようとしたのですが、適切なシナリオがなかなか決まりません。たとえば、ユーザID。許可する文字種は英数字および「-」「.」「_」です。妥当な文…
趣味のWebアプリ製作において、ユーザ登録処理を現在実装中で、バリデーション仕様をどうするか考えてみました。その過程を晒します。何が妥当かなんて人それぞれだとは思いますが、一例ということで。 ユーザID 設計上、一部のURIにユーザIDが含まれる。URI…
なぜCucumberを選んだのか BDDでユーザ登録処理を実装し始めた。テスティングフレームワークにはCucumberを使っている。Cucumberを選んだのは、前提条件(Given)を明示的に書けるのが気に入ったからだ。以前使っていたRSpecでは書けなかった(RSpec::Story…
このところ、スケーラビリティについて私が考えても無駄ではないかと思い始めている。私が仕事で作っているのは小規模のWebアプリだし、転職する予定も今はない。趣味のほうはといえば、Webアプリ運営に使える予算などたかが知れていて、安いVPSが1台借りら…
id:samurai20000 さんの書かれた、クックパッドのレシピへのリンクに「つくれぽ」件数を追加するユーザースクリプト「cookpad_tukurepo」が、クックパッドのマークアップが変わって動かなくなっていたので、fork してみました。
「アーキテクチャ」という言葉を下記のように理解してかまわないのでしょうか。 たとえば Ruby on Rails が、Merb でも Sinatra でもない、現在の Ruby on Rails のような形になるにあたって下されたであろう設計判断の総体、および「現在の Ruby on Rails …
MVC とは「Model と View と Controller を分ける作法」のことである。そのような作法を総称して、一般に「アーキテクチャスタイル」や「アーキテクチャパターン」とよぶ(例:「REST は WWW のアーキテクチャスタイルだ」) Smalltalk というアーキテクチャ…
認証時にセッションIDを発行し、HTTPリクエストに含まれるセッションIDで認証済み状態を維持する手法を「セッション管理」とよぶ(すなわち、セッション管理は「認証」とは別物である) 認証やセッション管理の不備によるセッションID漏洩に備えることを「セ…
外出のため確認が遅くなってしまったのですが、「htmlspecialcharsに関する残念なお知らせ」という記事で触れたバグレポートが、reopenされ、fixされました。「改善される見込みは薄い」という私の予測は外れたわけで、申し訳ないと思うと同時に、htmlspecia…