タグ

ブックマーク / webos-goodies.jp (39)

  • JsUnit を使った JavaScript のユニットテスト - WebOS Goodies

    アプリケーションを開発する上で、避けて通れないもの、それがテストです。とくにブラウザごとの非互換性が大きい Web アプリケーションでは、念入りなテストが必要です。でも、テストはあまり創造的な作業ではないし、やったからといってなにか機能が増えるわけでもない。できるだけ手間をかけずに済ませたいところですね。 そんなわけで、日は JavaScript 用のテストフレームワークである JsUnit を利用したユニットテストの方法をご紹介しようと思います。 Ruby のユニットテストの記事でも書きましたが、ユニットテストによるテスト・ファースト開発は開発効率の面でも良い影響があります。まだ導入していない方は、ぜひこの機会に使ってみてください。 JsUnit について 今回利用する JsUnitJava 用の JUnit を参考にして作られた JavaScript 用のユニットテストフレーム

  • 高機能な JavaScript 圧縮ツール「jsjuicer」 - WebOS Goodies

    JavaScript を使った Web アプリケーションを公開する際にほぼ必須となるツールが JavaScript Obfuscator 、いわゆる JavaScript 圧縮(難読化)ツールです。とくに Ajax を活用したサイトでは JavScript ファイルも大きくなりがちなので、できるだけコンパクトにまとめてページのロード時間を短縮したいところです。そんなわけで、私も Infosketch を公開する際にいろいろ試しまして、日ご紹介する jsjuicer を使うことにしました。 この jsjuicer は Web 関連のツールでは珍しく C++ で組まれたコマンドラインプログラムとなっています。そのため使い始めは少々面倒ですが、 make などによる自動化がやりやすいというのは大きな利点です。他のツールにはない便利な機能もいくつか実装されていますので、実用的な JavaScri

  • Ext JS で HTML 要素をアニメーションさせる - WebOS Goodies

    WebOS Goodies へようこそ! WebOS はインターネットの未来形。あらゆる Web サイトが繋がり、共有し、協力して創り上げる、ひとつの巨大な情報システムです。そこでは、あらゆる情報がネットワーク上に蓄積され、我々はいつでも、どこからでも、多彩なデバイスを使ってそれらにアクセスできます。 WebOS Goodies は、さまざまな情報提供やツール開発を通して、そんな世界の実現に少しでも貢献するべく活動していきます。 ほとんど気付かれていないかもしれませんが、先日トップページの最新記事を表示する部分のスクリプトを改良して、記事内容がアニメーションして出てくるようにしました。これまでの意味不明な挙動に比べれば(^^;)、いくぶん使いやすくなったかと思います。 で、このアニメーションを実装するのに Ext JS というライブラリを使ってみました。 Ext JS は多彩な機能を実装し

  • Google Gears ベースの Web アプリ「Infosketch」を公開しました! - WebOS Goodies

    WebOS Goodies へようこそ! WebOS はインターネットの未来形。あらゆる Web サイトが繋がり、共有し、協力して創り上げる、ひとつの巨大な情報システムです。そこでは、あらゆる情報がネットワーク上に蓄積され、我々はいつでも、どこからでも、多彩なデバイスを使ってそれらにアクセスできます。 WebOS Goodies は、さまざまな情報提供やツール開発を通して、そんな世界の実現に少しでも貢献するべく活動していきます。 ここ 2 週間ほど記事の投稿をお休みして開発していた Google Gears ベースのアプリケーションがとりあえず動くようになりました。まだいろいろと問題が残っていて、正直言って実用に耐える状態ではないのですが、これ以上非公開でいるとやる気が萎えそうなので公開です。そんなわけで、開発段階としてはテクノロジープレプレプレプレビューくらいの認識でお願いします(笑)。

  • IFRAME の内容を動的生成する正しい方法 - WebOS Goodies

    先日 Firebug Lite ブックマークレットを公開しましたが、動的生成した IFRAME に HTML を流し込むとブラウザが読み込み状態のままになってしまう(ロード中アニメーションなどが再生されっぱなしになる)という問題がありました。 IFRAME の動的生成はいろいろと応用範囲が広いので、なんとかこの問題は解決しておきたいところです。そこでいろいろと試行錯誤して、なんとか回避方法を見つけることができました。日はそれをご紹介しようと思います。 さっそく種明かししてしまいましょう。実は答えはいとも簡単でした。 document.write で HTML を流し込む前後で document.open と document.close をきちんと呼ぶ必要があるようです。こんな感じですね。 var iframe = document.createElement('IFRAME'); do

  • 個人事業開業の手続き - WebOS Goodies

    WebOS Goodies へようこそ! WebOS はインターネットの未来形。あらゆる Web サイトが繋がり、共有し、協力して創り上げる、ひとつの巨大な情報システムです。そこでは、あらゆる情報がネットワーク上に蓄積され、我々はいつでも、どこからでも、多彩なデバイスを使ってそれらにアクセスできます。 WebOS Goodies は、さまざまな情報提供やツール開発を通して、そんな世界の実現に少しでも貢献するべく活動していきます。 先日、ついに個人事業の開業手続きをしてきました。といっても、単に税務署などに書類を提出してきただけですけどね。私の場合は従業員を雇う予定などはまったくないので、とても簡単に手続きができました。あっさり受理されて拍子抜けなくらいです。まあ、収入が一定額を超えなければ申請の必要すらないはずなので、こんなものなのかもしれませんね。 そんなわけで、日は私の個人事業開業手

  • 個人事業にかかる税金あれこれ - WebOS Goodies

    WebOS Goodies へようこそ! WebOS はインターネットの未来形。あらゆる Web サイトが繋がり、共有し、協力して創り上げる、ひとつの巨大な情報システムです。そこでは、あらゆる情報がネットワーク上に蓄積され、我々はいつでも、どこからでも、多彩なデバイスを使ってそれらにアクセスできます。 WebOS Goodies は、さまざまな情報提供やツール開発を通して、そんな世界の実現に少しでも貢献するべく活動していきます。 個人事業をはじめると、どうしても意識しなければならないのが税金です。サラリーマンなら、ほとんどの税金が天引きされるのであまり考える必要はないのですが、個人事業主ともなれば、すべて自分で処理しなければなりません。私も個人契約で仕事をすることになってから頑張って調べましたが、いやー大変ですね。源泉徴収精度のない米国などでは、すべての納税者がこんなことやっているわけです

  • Ruby on Rails : ページの外見をカスタマイズ(後編) - WebOS Goodies

    日は前回の補足として、 Ruby on Rails でサイト全体に共通のレイアウトを適用する方法と、トップページの内容をカスタマイズする方法をご紹介しようと思います。これまで同様、プロジェクトディレクトリは "~/blognavi"、サイト URL は "http://localhost:3000/" を前提にしますので、適宜読み替えてください。 さて、それではすべてのページに適用するレイアウトの作成に入りましょう。現在のページデザインの大きな問題点は、 article, category のそれぞれのコントローラ間を行き来するリンクが存在しないことです。そのため、 article のページにいるときにカテゴリーを編集したくなったら、アドレスバーに URL を手打ちしなければなりません。これはあまりに不便ですね。そこで、すべてのページに共通のサイドバーを設け、そこに "article",

  • iGoogle ガジェットの作り方 : Google Analytics ライブラリ - WebOS Goodies

    ほとんどの方はご存知かと思いますが、念のため Google Analytics について軽くご紹介しておきます。 Google Analytics は、 Google が提供するアクセス解析サービスです。他の Google サービス同様、無料ですべての機能が利用できます(AdWords アカウントがない場合は月 500 万ページビューまでという制限があるにはありますが・・・^^;)。 このスクリーンショットにあるとおり、さまざまなデータをビジュアルに表示してくれるので、 Web ページへのトラフィックを感覚的に把握することができます。また、 Google AdSence, Google AdWards などの効果を上げるのに有用な機能を多数搭載しており、それらのサービス利用者には必須のツールです。ただ、趣味程度の Web サイトの解析には多機能すぎて逆に使いづらい面もあるので、私自身はあま

  • Google の検索結果に iGoogle ガジェットを表示する - WebOS Goodies

    先日ひそかに Google Co-op が更新され、興味深い機能が追加されました(情報源はおなじみ Google Operating System さんです)。なんと、 Google 検索の検索結果ページに iGoogle ガジェット が表示できるようになったのです。こんな感じに。 検索文字列をガジェットに引き渡すこともできるので、検索文字列によってさまざまな関連情報が表示できます。これはかなり画期的な機能ではないでしょうか。来なら大ニュースのはずなのですが、なぜかあまり話題になっていません。これではとてももったいないので、日はこの機能の使い方をご紹介したいと思います。定型的な XML ファイルを書くだけで実現できますので、ぜひ試してみてください。 Google Co-op は Google の提供するサービスの中でもマイナーな部類なので、初めて聞く方もおられるかもしれません。最も知ら

  • Ruby on Rails : ページの外見をカスタマイズ(前編) - WebOS Goodies

    WebOS Goodies へようこそ! WebOS はインターネットの未来形。あらゆる Web サイトが繋がり、共有し、協力して創り上げる、ひとつの巨大な情報システムです。そこでは、あらゆる情報がネットワーク上に蓄積され、我々はいつでも、どこからでも、多彩なデバイスを使ってそれらにアクセスできます。 WebOS Goodies は、さまざまな情報提供やツール開発を通して、そんな世界の実現に少しでも貢献するべく活動していきます。

  • UTF-8 エンコーディングの危険性の補足 - WebOS Goodies

    えー、昨日投稿した「UTF-8 エンコーディングの危険性」の記事ですが、なにを間違ったのか過去最高のアクセスを記録しています。その前の Ruby 用 JSON クラスの反響がさほどでもなく、今回も大したことないだろうと思っていたので、かなりびびってます(((゜Д゜;)))ガクガク。はてぶコメントでも多くのご指摘をいただきまして、私自身反省している点もあるので、少し補足しておこうかと思います。 昨日の記事の意図は、まず単純に不正な UTF-8 シーケンスの存在を知ってもらい、そして具体的な対策として、入力の水際で不正な UTF-8 シーケンスを潰してしまおうというものです。ここが説明の足りなかった部分ですが、入力段で HTML などのエスケープをしようということではありません。 UTF-8 の正規化は HTML などのそれと違って二重にかけても結果が変わりません。また、目的はクライアントの保

  • UTF-8 エンコーディングの危険性 - WebOS Goodies

    的に、まともな国際化ライブラリを使っていれば、上記のような不正な文字コードはきちんと処理してくれるはずです。実際、 Opera, Firefox, IE ともに適切にエスケープしてくれました。また、 UCS に変換した後にエスケープ処理を行うことでも対処できるかもしれません。しかし、複数のモジュールで構成されるような規模の大きいアプリケーションでは、そのすべてが適切な処理を行っていると保証するのも、なかなか難しいかと思います。ここはやはり、すべての外部入力に含まれる不正なシーケンスを、水際で正規化するという処理を徹底するのが一番かと思います。 例えば Ruby の場合、不正な UTF-8 コードを検出する最も簡単な方法は、 String#unpack を使って UCS へ変換してみることです(昨日の記事への kazutanaka さんからのはてぶコメントにて、 iconv でも同様なこ

  • 軽くて使いやすいオンラインストレージ「Box.net」を試す - WebOS Goodies

    WebOS Goodies へようこそ! WebOS はインターネットの未来形。あらゆる Web サイトが繋がり、共有し、協力して創り上げる、ひとつの巨大な情報システムです。そこでは、あらゆる情報がネットワーク上に蓄積され、我々はいつでも、どこからでも、多彩なデバイスを使ってそれらにアクセスできます。 WebOS Goodies は、さまざまな情報提供やツール開発を通して、そんな世界の実現に少しでも貢献するべく活動していきます。 Google が開発しているという GDrive をはじめとして、大手が大容量のオンラインストレージを計画中という噂は絶えませんが、いずれもいっこうに提供される気配がありません。そうこうしているうちに、さまざまなスタートアップ企業がこの分野に参入してきています。ごく最近も、そうした企業にひとつである Omnidrive がオンラインオフィススィート Zoho との

  • Yahoo! Pipes 開通、そしてすぐに詰まる - WebOS Goodies

    WebOS Goodies へようこそ! WebOS はインターネットの未来形。あらゆる Web サイトが繋がり、共有し、協力して創り上げる、ひとつの巨大な情報システムです。そこでは、あらゆる情報がネットワーク上に蓄積され、我々はいつでも、どこからでも、多彩なデバイスを使ってそれらにアクセスできます。 WebOS Goodies は、さまざまな情報提供やツール開発を通して、そんな世界の実現に少しでも貢献するべく活動していきます。 昨日、米国の Yahoo!Yahoo! Pipes という新しいサービスをリリースしました。複数のデータソースから RSS フィード形式でデータをフェッチし、それを加工するモジュールを繋いでいくことで簡単にマッシュアップが作れるというものです。 しかし、 digg に掲載されたとたんにエラーが頻発するようになり、最後にはトップページの表示すらできない状態に。

  • iGoogle を使い倒そう! - WebOS Goodies

    WebOS Goodies へようこそ! WebOS はインターネットの未来形。あらゆる Web サイトが繋がり、共有し、協力して創り上げる、ひとつの巨大な情報システムです。そこでは、あらゆる情報がネットワーク上に蓄積され、我々はいつでも、どこからでも、多彩なデバイスを使ってそれらにアクセスできます。 WebOS Goodies は、さまざまな情報提供やツール開発を通して、そんな世界の実現に少しでも貢献するべく活動していきます。

  • Google Personalized Homepage ガジェットの作り方 : MiniMessages ライブラリ - WebOS Goodies

    WebOS Goodies へようこそ! WebOS はインターネットの未来形。あらゆる Web サイトが繋がり、共有し、協力して創り上げる、ひとつの巨大な情報システムです。そこでは、あらゆる情報がネットワーク上に蓄積され、我々はいつでも、どこからでも、多彩なデバイスを使ってそれらにアクセスできます。 WebOS Goodies は、さまざまな情報提供やツール開発を通して、そんな世界の実現に少しでも貢献するべく活動していきます。

  • Web ブラウザが FTP クライアントに! net2ftp のインストール - WebOS Goodies

    WebOS Goodies へようこそ! WebOS はインターネットの未来形。あらゆる Web サイトが繋がり、共有し、協力して創り上げる、ひとつの巨大な情報システムです。そこでは、あらゆる情報がネットワーク上に蓄積され、我々はいつでも、どこからでも、多彩なデバイスを使ってそれらにアクセスできます。 WebOS Goodies は、さまざまな情報提供やツール開発を通して、そんな世界の実現に少しでも貢献するべく活動していきます。 日は、久々にオープンソース Web アプリケーションのご紹介です。唐突ですが、皆さん FTP クライアントはなにをお使いでしょうか? SFTP などの暗号化プロトコルが普及してきたとはいえ、無料レンタルサーバーではいまだに FTP が主流です。これまで私は FireFTP という Firefox 上で動作する FTP クライアントを利用してきたのですが、これだと

  • Google Personalized Homepage ガジェットの作り方 : SetPrefs, Dynamic Height ライブラリ - WebOS Goodies

    Google Personalized Homepage ガジェットの作り方 : SetPrefs, Dynamic Height ライブラリ 日は、 iGoogle ガジェット(Google Universal ガジェット)で利用できる JavaScript 拡張機能の後編として、機能別ライブラリの使用方法をご紹介・・・するつもりだったのですが、すべてのライブラリを網羅していたら例のごとく livedoor blog の文字数制限にひっかかるような気がしてきたので、ライブラリごとに別記事にすることにしました。こうしたほうが、後からライブラリが追加された場合も記事にしやすいですしね(w。それに伴い、前回の記事のタイトル・内容も少々変更しました。ご了承ください。 ということで、日は機能別ライブラリの基的な利用方法と、 SetPrefs, Dynamic Height の 2 つのライブ