2011年1月24日月曜日

GAE エンティティをキーによって特定する場合のメモ

チラ裏メモ

Google App Engine のデータストアで、こちら側からキーを指定して管理する場合について
まず、キーを指定してデータを格納する場合

サンプルコード

import db

class Student(db.Model):
  name = db.StringProperty()
  grade = db.IntegerProperty()

class Action():
  def Post(self):
    Post = Student(key_name)
    Post.name = "バーロー"
    Post.grade = "4"
    Post.put()

これで、key_nameをキーとするデータが格納出来ました。
更新する場合も、同じkey_nameでエンティティのインスタンスを作成し、データを変えてput()してやれば問題ありません

で、データを取得する場合

  def get(self):
    Get = Student(key_name) // 一意のキーでインスタンスを作成
    Person = Student.get(Student.key()) // これで入った
  
これで、Personにkey_nameで前回格納した値をもつインスタンスが入っています。
単純にkey_nameで指定しただけでは入っておらず、getしないと値を持ってこれません。

「エンティティオブジェクト」という言葉通りの実装ですが、SQLに慣れた人間からするとちょっと?となってしまう感じ。
key_name指定したんだから値持って来いや!と言いたくなります。

仕組みさえ分かってしまえば簡単なことですね。

2011年1月7日金曜日

Facebook Hacker CUP延期  現場の様子を追ってみた。

Facebookが主催するハッカーカップが、2011/01/07 16:00に開始しました。してません。
結局運営が間違えていたようで、今見たら修正されていました。明日スタートだそうです。

明日また記事を書きますので、よろしくお願いします。
はぁ。。。パネル画像を必死になってバイナリ解析していた俺の苦労は一体。

追記
丁度良いので現場の移り変わりを記事にしたいと思います。
開始時間になっても、問題が公開されず、若干の混乱が生じます。


  • 問題はどこだ?


  • http://~~~~/(自分のブログの宣伝)


  • 既にハッカーカップは始まっているということか


  • クソ問題はどこにあるんだ?


  • 問題はどこ?携帯からは見えないの?


  • この時間で合ってるよね?


  • まだ始まらないのか


  • 準備は出来てるぜ、さぁこい


  • 最初の課題は問題を見つけることか、なるほどな


  • 問題0:課題を見つけること


  • インドネシアハッカーの力を見せてやる



  • 「問題はどこだ?」というポストが殆どを占めています。
    この時点では、やはり問題を探すことこそが課題だと考えている人がかなり多かったです。

    開始30分後あたりから、Hacker Cupの詳細に、開始時間について、「January 8, 2011 at 0:00 UTC (January 7, 2011 at 4:00 PM PST)」という、タイムゾーンを示す言葉が出ていたので、これに目を付けた人が居ました。

    そのときの様子です。


  • バカなお前らに教えてやるよ、何で時計をPacific Timeにしてるんだ?


  • dwa8qwehfuwehnwasufihew8..g.dsgds.g,dsg.s


  • ?????


  • try{
    }catch(TimeZoneException ex)
    {}


  • PST?GMT?


  • lol


  • ああああああああああああああああああああああああああああああああああああああああああああ


  • include;
    void main(){
    printf('where the problems');
    }


  • 準備は出来てるぜ、さぁこい(上と同じ人物)


  • 誰か解けた人居る?




  • 一時間以上経つと、段々と人々もイライラし始めます。



  • waedwqeiqwntghdf/jhf.h..hs./hsd/h,.sd/\g,sd/.gfs


  • 解けたあああああああああああああやったぜえええええええええええええええ!!!!(当然嘘です)


  • お前ら初心者どもには分からんだろ。ハハハ。俺も初心者だけどな


  • 「問題はパネルに掲載される。」(Hacker CUPのFAQに書いてある文章)


  • 延期したのか?


  • 延期したってほんと?




  • 今もコメント欄は流れていますが、まだ延期の事実を知らない人も居るようです。
    今のコメントは


  • どうやって問題を見ればいいの?


  • :D :) ;)


  • http://www.timezoneconverter.com/cgi-bin/tzc.tzc(違うタイムゾーンでは何時なのか調べるサービスのようです)


  • なぁ...問題はどこにあるんだ...いつ現れるんだ...?もう随分待ってるぞ...




  • 今もまだ、Hacker CUPの画像にはJunuary 7thと書かれており、イベントのウォール(アナウンスするところ)にも、延期のアナウンスはありません。
    Facebookは早く公式にアナウンスしないと、待っている人がちょっと可哀相ですよ。

    2011年1月6日木曜日

    2011年におさえておくべき5つのWebテクノロジー

    昨日と同じく、Mashableから、2011年におさえておくべき5つのWebテクノロジーに関して紹介します。



    jQuery Mobile



    スマートフォンやタブレット機器でJqueryが使用出来るというもの。
    jquery Mobileの魅力とうたわれているのはクロスプラットフォーム&クロスデバイス。多くの携帯、及び多くのブラウザに対応しています。デフォルトブラウザに至っては、殆どのデバイスで使用可能です。
    対応状況はこちらから
    Cは全く使えない、Bはバグフィックス中。Aはほぼ使えるとのこと。
    しかし、手持ちのIS06でデモを試したところ、思わしくなく、実用レベルに至るにはまだまだこれからといったところです。

    HardWare-Accelerated Web Browsers

    IE9で搭載された、Webページのレンダリングにグラフィックチップスが利用出来る機能です。
    これまで、WebブラウザによるレンダリングにはCPUのみが用いられてきましたが、これによって、ハードウェアの性能がより影響するようになります。
    今のところこの機能が搭載されているのはIE9のみですが、Google chromeやFirefoxでも搭載されるようになるのでしょうか。
    ただ、こちらのサイトが行った検証によると、これだけ頑張ったのにも関わらず、未だレンダリングスピード、Javascripi実行速度、W3C準拠などあらゆる面においてGoogle chromeに敗北を喫しており、Google chromeの圧倒的とも言える強さが伺えます。

    Node.js and Server Side JavaScript

    Node.jsとは、サーバーサイドのJavascriptで、これまでの一般的なサーバーとは全く異なる振る舞いをします。
    正直なところnode.jsには色々な機能があってこのブログでは説明し切れないため、詳細はこちらの連載にお願いすることとします。「node.jsの衝撃」というところに、分かり易い説明があります。
    IT方面の知識が豊富な方は、こちらの連載も参考になるかもしれません。
    将来、Javaの重要度が更に高まるだろうことが指摘されています。
    今までJavascriptはクライアントサイドスクリプトとしての採用が主でしたが、このようにサーバーサイドでの採用も増えています。
    エンジニアの方はJavascript、Javaの勉強を重点的にされたほうがいいのかもしれませんね。


    Real-Time Clickstream Sharing

    色々なサイトで見かける、「イイネ!」や「Twitterでつぶやく」ボタン。
    これらが登場するまで、気に入った記事を紹介するのはブログや、ニュースサイトの記事などしかありませんでした。記事に対する評価も、備え付けられた投票ボタンくらいです。
    これらのボタンが増えたことによって、手軽に有用な記事を紹介、評価出来るようになり、インターネットは更にインターネット「らしく」なりました。
    2011年はこれらのボタンが多いに増えることでしょう。

    NoSQL Databases


    もうかなり有名になっていますが、NoSQLです。
    SQLを使わないKey-Valueストアですね。
    GoogleのBigTableや、オープンソースではHbase、Cassandoraなどが有名です。
    日本では、筑波大学の古橋貞之さんという方が「kumofs」というオープンソースのものを開発、公開しています。

    多くの大規模Webサービスで採用が進んでいるようですが、Web全体で見るとまだまだRDBMSの方がシェアは高く、その理由として、Key-Valueシステムのとっつきにくさがあります。
    RDBMSでは「SELECT * FROM tables where id>'1'」といったSQL文で簡単に条件を指定してデータを検索し、引っ張ってくることが可能だったのですが、NoSQLではそうはいかず、こういったデータの指定をアプリケーション側で作る必要があります。
    大規模なサービスではこれからどんどんNoSQLの採用が進んでいくことは間違い無さそうですが、個人のWebサービスとなると、まだまだRDBMSが強そうですね。

    2011年1月5日水曜日

    2011年におさえておくべきWebサービス10選

    2011年に話題となるであろうWebサービスをMashableが紹介していたので、こちらで紹介します。


    Open Leaks
    説明は不要でしょう。WikiLeaksを離脱した人々が作成しているサイトです。
    OpenLeaksはWikiLeaksとは違い、直接文書を公開することはせず、業界団体や報道機関向けにリークされた文書を公開するデータベースのような役割を果たすそうです。
    何にせよ、まだ「Coming soon..」の状態ですので、まさしく「2011年に注目すべきサイト」となるでしょう。


    Kick Starter
    ソーシャルな資金調達プラットフォーム。
    資金を調達したい人は欲しい金額や締切日を設定して自分のプロジェクトを登録、動画や文章でアピールして、投資者を募ります。
    ユーザーはAmazon Paymentを使って、1$から好きな金額を投資。投資した金額に応じて、プロジェクト投稿者が設定したお礼を受け取ることが出来ます。
    締切日までに希望した金額に達すれば、投資を受けることが出来、達しなければ、失敗とみなされ、一円も貰うことは出来ません。

    Klout


    Twitter上での影響力を測るサイトとして有名です。
    Twitter APIから得られる情報をもとに、0~100の数値で影響力を評価してくれます。
    良く出来ていて、かなりの精度が期待できるとのこと。
    現在はFacebookやLinkedInといったサービスとも連携して、ソーシャルメディアでの影響力を測るサイトになっていってるみたいですね。
    日本人のTwitterでいくと、ホリエモンは79、日本で一番フォロワーの多い(!)ガチャピンは82です。
    孫さんだと84。流石ですね。


    Hipmunk


    航空券の比較サイト。
    出発地と行き先、日程を入力するだけで、色々な飛行機をババッと表示してくれます。
    行程がグラフィカルに表示されるため、非常に分かりやすくなっています。

    Glit Group

    完全招待制の高級ブランド&サービス通販サイト。
    毎日決められた時間からセールが始まり(21時からが多い模様)、セール期間内のみ商品を購入出来ます。
    セール時間は確認したもので6時間~一週間と、かなり幅がある模様。
    最大で80%オフの商品もあるということなので、非常にお買い得。
    ブランドアイテム以外にも、エステサービスのチケットなど、色々なものがあります。


    Quora

    知っている人はかなり居るのではないでしょうか。
    Facebookの元CTOが始めたという、専門家が質問に答えてくれるというQ&Aサービスです。
    しかしながら、完全招待制であり、筆者にはQuoraを紹介してくれる友達が居ないので、未だユーザーではないので、詳細は謎に包まれています(筆者にとって)。
    誰か招待して。

    Diaspora

    Facebookに対抗して始められた、プライバシーを守るということをコンセプトに作られたSNS。
    上述したKickStarterで投資を募ったところ、3000人以上の人から1000万円を超える投資を集めたというから、驚きですね。
    なお、Diasporaはオープンソースであり、ソースコードがこちらで公開されています。

    GrooveShark

    様々な洋楽をオンラインで聞けるサイト、個人的に一番おススメ。
    プレイリストやお気に入りを保存するにはアカウントを作成する必要がありますが、作成しなくても音楽が聴けるので、一度試してみては?

    FourSquere
    現実との結びつきがかなり強いSNSサービス。
    GPSを利用し、自分が行ったところをiphoneやandroidなどのモバイル機器で投稿出来るようになっています。
    ある場所や店舗に多く行くとその場所の「常連」となることが出来るようです。
    詳しい説明はこちらのサイトの方が充実しているので、そちらを参照して下さい。


    Drupal

    オープンソースとして開発が行われているCMS。
    日本だと、Movable Typeだとか、Xoopsが有名ですね。
    これはWebサービスではないのですが、元サイトで紹介されているので、一応紹介しておきます。
    日本ではまだあまり普及が進んでいませんが、海外に目を向けると、Firefox、NASA等のサイトで採用が進んでいるようです。
    日本人のためのサイトもあるようなので、どうぞ。