タグ

ブックマーク / kagigotonet.hatenablog.com (24)

  • 意外と便利なJSON RPC - TechTalkManiacs

    このエントリーはHTML5 Advent Calendar 2012の4日目のエントリーになります。 JSON RPCとは文字通りJSONでRPCするプロトコルで、現行バージョンは2.0です。 リモート環境にある関数をローカルの関数と同様に呼び出せるRPCは呼びだす機能が多かったり、複雑だったりする時に非常に便利です。またRESTと違い対象がHTTPを受け付けるサーバーである必要がないというメリットがあり、これがwebsocketやメッセージングAPI、webworkerといったHTML5 APIと非常に相性がいいのです。 またRPCというとXML RPCが有名ですが、JSON RPCはそれにくらべて以下のような特徴を持ちます プロトコルが軽量・シンプル 名前つきパラメーター(namedparameter) バッチリクエスト では順番に見ていきます プロトコルが軽量 RPCに限らずXMLと

    意外と便利なJSON RPC - TechTalkManiacs
  • Twitter Bootstrapを使う上で知っておいたほうがいいこと - TechTalkManiacs

    一昨日、HTML5とか勉強会に参加していた際にTwitter Bootstrapについてつぷやいたことをまとめておきます。 横並びのレイアウトを意識しよう webページの画面のレイアウトというと縦に列を並べた上で横方向の配置を行うマルチカラムレイアウトが思い浮かびますが、Twitter Bootstrapは横一列にきれいに並べることを意識して作られています。 下の画像は公式サンプルを切り出したものですが、横の列が積み重なっているのがわかると思います。 このように、デザインする時には横並びのレイアウトを意識することが重要です ヘッダーが命 Twitter Bootstrapを使ったテンプレートはどれも似たような印象になってしまうのですが、その印象のほとんどヘッダー部分が担っています。 これを外すか、あるいはいまはやりの大きなグラデーションの入ったヘッダーに変えましょう、下の画像は公式サンプル

    Twitter Bootstrapを使う上で知っておいたほうがいいこと - TechTalkManiacs
  • QunitによるWeb標準系UIのシナリオテスト - TechTalkManiacs

    このエントリーはHTML5 Advent Calendarに参加しています。当は18日目だったのですが、こんな時間になってしまいました。 Web標準系UI、というのは私が勝手に呼んでいる呼称なのですが、HTML+JavaScript+CSSを使ったUIのことです。なので、大まかにはWebサイトなども含まれます。 Web標準系UIは表現力の高さが魅力ですが、その分、画面が正常に動作するかのテストが大変です。もちろんSeleniumというツールもあるのですがこれは有名なので適当に検索してもらうとして、今回はあまりこういった文脈では紹介されることないQunitを紹介したいと思います。 QUnitとは? 元々はjQueryのテスティングフレームワークとして開発されたもので、その時はJQUnitという名前でした。現在はjQueryから独立して依存性をなくしています。 各言語にある同様のツールとひと

    QunitによるWeb標準系UIのシナリオテスト - TechTalkManiacs
    Layzie
    Layzie 2011/12/22
    クリスマス中止のお知らせ
  • Facebookのアプリを安全に利用するための二つのポイント - TechTalkManiacs

    先日のエントリーの反応で、少し気になったのでFacebookのアプリで安全を保つ方法についてまとめておきます。 Facebookやっている人はご存知でしょうけど、Facebookには結構スパムアプリや個人情報収集目的のアプリが多いです。わかりやすい例では、最近話題になったBadooがあります。 こういったアプリの被害に合わないためには、最初に要求されるアクセス許可に気をつけること、これに尽きます。 Facebookのアプリは何かしようとする場合必ず許可を要求してきます。ここで、二つあるポイントを覚えておくことで怪しげなものを見分けることが出来ます。 そのポイントとは 全てのデータは直接渡される 危険、あるいは微妙なアクセス許可がある 全てが直接渡される まず、なにより大事なのがこれです。 メールアドレス、電話番号、居住地等、全て許可したらそのまま渡されます。当然、アプリのデータを削除しても

    Facebookのアプリを安全に利用するための二つのポイント - TechTalkManiacs
  • JavaScriptでお手軽にFacebookのアプリを作る - TechTalkManiacs

    前々から書こう書こうと思っていた、FacebookのJavaScriptSDKの解説エントリーです。 APIや規格、HipHopやliftといったオープンソースなどの陰に隠れがちですが、このJavaScriptSDKもなかなか面白いです。 3行で解るJavaScript SDK 投稿・認証・署名を含めた全APIアクセスをサポート 公式なUIもついてくる Facebookアプリも、外部のマッシュアップサイトもこれ一つでOK つまり、これ一つで簡単なクライアント機能をもったサイトまたはFacebookアプリが作れちゃいます。 情報を取ってきてなにか書いてもらって投稿するのはもちろん、ちょっとしたクローリングをおまけにつけたアプリまでJavaScriptの範囲内で完結しますので、サーバー側で凝った処理を実装するのではなく、JavaScript側で可能な限り完結させるのがベストプラクティスといえま

    JavaScriptでお手軽にFacebookのアプリを作る - TechTalkManiacs
  • Googleの根本的なミッションとは? - TechTalkManiacs

    AppleMicrosoftと異なり、少なくとも開発者からはGoogleはあまり敵視されていません。それはなぜなのか? 開発者のような一定以上の知識を有している人間にとっては納得せざるをえないレベルの課題を提示し、着実に答えを積み重ねているというのが大きいのかもしれません。 課題と解決 いくつものGoogleのプレゼンを見ていると、一つのパターンがあることに気がつきます。それは「こういう課題があった。だから、我々はこうしたorこうしたい」と述べることです。 事実、Googleで「Google 課題」で検索すると2番目に出てくるのがGoogle Developer Day 2008の基調講演の記事だったりするくらいです。これは他の会社ならば批判的なトーンの記事で埋め尽くされるのですが。 そのくらい浸透しているということは、これはGoogle内部で共有されている開発のテーマを決定するための一

    Googleの根本的なミッションとは? - TechTalkManiacs
  • Google APP Engineでできることできないこと - TechTalkManiacs

    実際にエントリーを書いてみて解ったのですが、Google APP Engineはかなり巨大になっていて、すべてを網羅しつつ技術的に詳細を解説しようとすると相当な分量になります。逆に言うと、やりたいことができるかどうかを調べるだけで相当な手間がかかるでしょう。 なので、そのあたりを簡単に纏めてみました。 Google APP Engineのメリット メリットをざっと並べると次のようになります。 サーバーの設定・運用・構築の手間がかからないこと データベースの分割、レプリケーションに相当するオペレーションが不要。Google技術・ノウハウで運用できる メールの送受信が容易 全体的に安価であること 運用の手間がかからないというよりはほぼ手出しができないというのが正しいのですが、安定しており、一番大変なデータベースの分割、レプリケーションといったオペレーションが不要なサーバーを安価に借りられる、

    Google APP Engineでできることできないこと - TechTalkManiacs
  • JavaScriptだけでレコメンドシステムを作ってみた - TechTalkManiacs

    Follow NowというTwitterのリアルタイムフォロワー推薦ツールを公開しました。 このツール、サーバーサイド処理はこちらでは一切作っていません。HTML+JavaScript+CSSにWebAPIを組み合わせただけなのです。 Follow Nowの仕組み WebAPIJavaScriptだけでどうやってレコメンドシステムを作っているか、というと、鍵となるのはJSONPでの出力に対応したWebAPIです。 JSONを使ってクロスドメイン通信をするJSONPでの出力に対応したWebAPIは今質量共にものすごい数に上っていて、中にはTwitterや、Yahooのキーフレーズ解析なども含まれています。これらを使うことで、かなりのことがWebAPIJavaScriptだけでできます。 流れとしては次のようになります。 1.アカウント名をもとに、Twitterからユーザーの投稿を取得 2

    JavaScriptだけでレコメンドシステムを作ってみた - TechTalkManiacs
  • Google APP Engine Python入門(2010年2月版) - TechTalkManiacs

    Google APP Engineについては初期のころのまとめはあるのですが、Pythonですとリリースからそろそろ2年近くになり内容も大きく様変わりしています。最速マスターシリーズでもGoogle APP Engineについてのまとめが無く、そろそろアップデートの必要があると思いまとめてみました。 基的にwindows環境中心です。 最初に ドキュメントを見るときは必ず英語版を見ましょう。日語版があるのはありがたいのですが、バージョンとしてはかなり古く、特に歴史の長いPython版では現行の内容とはかなりの隔たりがあります。 Google APP EngineのドキュメントのURLは以下のようなパターンになっています。 http://code.google.com/intl/ja/appengine/docs/**** これのうちjaが言語を表すコードになっていますので、これをenに

    Google APP Engine Python入門(2010年2月版) - TechTalkManiacs
  • FirebugでのjQueryのデバッグを支援するプラグイン JQuery Lint - TechTalkManiacs

    定番開発ツールであるFirebugにおけるjQueryを使った開発において、JavaScriptいでは発見しづらい引数ミスなどの問題のある使い方のチェックやエラーの詳細を報告してくれるプラグインがjQuery Lintです。 レベルは3つまであり(jQuery.LINT.levelで設定)、3レベルではcss().css().css()のような使い方までエラーを出してくれるとのこと。 また、独自のエラー判定の設定も可能です。 jQuery.LINT.special[1].jQuery = jQuery.LINT.special[1].jQuery || []; // エラーレベル1で特定のセレクターに対してエラーを出す。 jQuery.LINT.special[1].jQuery.push(function(selector, context) { if (selector === '*'

    FirebugでのjQueryのデバッグを支援するプラグイン JQuery Lint - TechTalkManiacs
  • JavaScript基本概念最速マスター - TechTalkManiacs

    プログラミング言語の文法をまとめた最速基礎文法マスターが流行っていますが、それだけだと物足りないので少し視点を変えてJavaScriptという言語の基礎となっている概念について簡単にまとめてみようと思います。(基礎文法についてはこちらを参照してください) (20010/2/4 記述ミス Typoなどを修正しました) JavaScriptの基概念 JavaScriptの基となる概念は次の二つです。 連鎖指向 全てがオブジェクト 連鎖指向はプロトタイプチェーンやクロージャ、全てがオブジェクトであるという性質は連想配列やプリミティブ型などの性質に関わってきます。 連鎖指向 JavaScriptでは変数、オブジェクト、メソッドなどのリソースの利用において鎖のようにリソースを定義や宣言できるポイントが連なり、一番近くの宣言や定義に基づいてリソースの内容が決定される、という仕組みが採用されています

    JavaScript基本概念最速マスター - TechTalkManiacs
  • Ruby EventMachineでWeb Socketsサーバーを実装するチュートリアル - TechTalkManiacs

    HTML5 APIの一つであるWebSocketがGoogleChromeの開発版で初めて実装されました。 Javascriptのみでサーバープッシュ通信を可能にするWebSocketsのサーバーサイド側ライブラリとしてはPython製のpywebsocketが有名ですが(サンプル)、RubyのEventMachineというサーバーライブラリにも同様の機能があり、そのチュートリアルがigvita.comに掲載されています。 ブラウザの実装さえ固まれば、サーバーサイドはそれほど苦労せずにすみそうですね。

    Ruby EventMachineでWeb Socketsサーバーを実装するチュートリアル - TechTalkManiacs
  • jQueryベースのJavaScript用MVCフレームワークcorMVCのチュートリアル - TechTalkManiacs

    jQueryをベースとしたいわゆるMVCフレームワークであるcorMvcのチュートリアルが公開されています。 corMVCはまだリリースしたてでドキュメントなどがない状態なのでありがたいですね。 ルーティングなどはかなり見慣れた形式で、なかなか使いやすそうです。 // コントローラーの設定 window.application.addController((function( $, application ){ // クラス定義 function Controller(){ //ルーティング this.route( "/", this.index ); this.route( "/contacts/", this.index ); this.route( "/contacts/add/", this.addContact ); this.route( "/contacts/edit/:id

    jQueryベースのJavaScript用MVCフレームワークcorMVCのチュートリアル - TechTalkManiacs
  • イベント管理を手助けしてくれるjQueryプラグイン behavior - TechTalkManiacs

    以前、JavaScriptとクロージャとデザインパターンというエントリーを書きましたが、この中で行ったのとほぼ同じことをjQueryプラグインとしてまとめたものがありました。 jQuery.behaviorというエレメントに対してオブジェクトを結びつけてくれるプラグインで、イベントと処理が分離でき、管理しやすくなります。 使い方 1 エレメントを指定して、クラスで初期化 // 1.振る舞いを記述するクラス定義 : function BadBehavior(element, config) { this.misbehave = function () { alert('爆発しろ'); }; this.saybehave = function (word) { alert(word); } this.showbehave=function(word){ $(element).text(word

    イベント管理を手助けしてくれるjQueryプラグイン behavior - TechTalkManiacs
  • Gmailチームが明かすHTMLアプリケーション起動の高速化テクニック TechTalkManiacs

    などという煽り気味なタイトルをついつけてしまいたくなる記事がGoogleCodeBlogに掲載されていました。 最初のほうはごく普通にJavaScriptを使ったRIAアプリケーションはどうしても起動が遅くなるため、それをどう減らすか、というテーマにそって書かれています。 方法として挙げられているのは、最初にすべてを読み込まず、モジュール単位で分割して遅延ローディングすること。ただし、それだけだと回線速度が遅く不安定なモバイル環境では問題が生じるためHTML5のキャッシュ機能を利用するといいとのこと。 遅延ローディングのためのさまざまな手法の得失や、例えばユーザーデータを読み込むときには動的ロードしない、というようにユーザーの操作を妨害しないよう留意することなどについても述べられていてそれだけでもノウハウとして十分に有意義なのですが、決め手として最後に出てくる方法がすごいです。 その方法と

    Gmailチームが明かすHTMLアプリケーション起動の高速化テクニック TechTalkManiacs
  • プライバシー団体がFaceBookのプライバシー設定についてFTCに申し立て - TechTalkManiacs

    もう少ししたら日でも報道されるかもしれませんが、12月9日にFaceBookが行った新しいプライバシー公開設定をめぐる問題で、電子プライバシー情報センター(Electronic Privacy Information Center:EPIC)というプライバシー擁護団体がFTCに申し立てを行ったそうです。 問題となっている変更についての日語記事がCNETにあります。

    プライバシー団体がFaceBookのプライバシー設定についてFTCに申し立て - TechTalkManiacs
  • script.aculo.usのUIライブラリscripty2のβ版プレビュー - TechTalkManiacs

    Ruby on Railsに同梱されていることで知られるscript.aculo.usのUIライブラリ、scripty2のベータ版がgithubで公開されています。 作者のエントリーによると ノキア携帯のマルチタッチのサポート キーボードイベントのサポート jQueryUIのテーマ作成ツールへのスキン対応 がされているとのことです。

    script.aculo.usのUIライブラリscripty2のβ版プレビュー - TechTalkManiacs
    Layzie
    Layzie 2009/12/18
    巻き返しになるかな。jqueryに押されてる感がある。
  • JavaScript+HTML5でテキストの読み上げ(ただし非公式api使用) - TechTalkManiacs

    HTML5のAudio要素とJSの組み合わせで英語のテキストの読み上げを試している人がいました。 面白いのはいいのですが難点もありまして MP3Google Trancerateの動作をfirebugで覗いて、URLの法則性を解析して入手している Audio要素によるMP3に対応しているブラウザが少ない(どのフォーマットにするかまだ模索中) というわけで、今はちょっと面白いけど使用は自己責任でという段階のようです。 作者の人としては、わざわざオンラインのAPIを叩かなくてもたいていのハードウェアにネイティブの読み上げエンジンがあるのだから*1それを直接叩けるような仕様にしたらどうか、ということでWHATWGに提案しているそうです。 *1:ただし英語圏に限る

    JavaScript+HTML5でテキストの読み上げ(ただし非公式api使用) - TechTalkManiacs
  • CSS3関連の日本語記事のまとめ - TechTalkManiacs

    diggに33 Must Read CSS3 Tips, Tricks, Tutorial Sites and Articlesというエントリーが上がっています。これはCSS3に関するリソースのまとめですが、当然英語のみです。 そこで、いい機会なので日語リソースをまとめてみました。 変形・アニメーション関連 CSS3で多分最も注目されていると思われる、変形・アニメーション関連のエントリー。まとまったエントリーはほとんどこのあたりに集中しています。 CSSトランスフォーム 変形処理「transform」の基礎 CSS 3のアニメーション機能「Transitions」 CSS transforms の利用 safari4 betaで実装されたCSS Animationを使ってみました。 border-imageプロパティ 枠線に画像を設定できるプロパティについて 1枚の画像からサイズ可変な

    CSS3関連の日本語記事のまとめ - TechTalkManiacs
  • PHPでメタプログラミング 可変なお話 - TechTalkManiacs

    PHPはWeb特化言語という特性上他の言語では見られない強力な仕組みがあります。その特徴は他の言語では参照で取り回すところを文字列で取り回すところである、と言えるでしょう。 参照そのものを取り回す仕組みは便利なことも多いのですが、現在Webサイト周りのネットワークのプロトコルは処理系とは無関係な文字ベースのクエリーから成り立っており、特定の処理系に依存したバイナリではありません。なので参照前提の仕組みではどこかで文字から参照への変換をしないといけなくなり、たいていの言語でそのあたりがどうしても複雑になります。 ですが、PHPでは文字列が前提の仕組みが多くあり、無理なく取り回すことができます。 いい例が、関数を文字列として指定して呼び出せる可変関数と呼ばれている仕組みです。PHPは文字列が入った変数の後ろに()をつけると、その文字列に相当する名前を持つ関数を呼び出してくれる機能があるので、こ

    PHPでメタプログラミング 可変なお話 - TechTalkManiacs