Probable cause: too many IN/!= filters in query

GAE/Pythonで。

too many subqueries (max: 30, got 81)

ってことなので、INフィルターには最大30要素までしか入れられない。

リストを30づつに分割して3回クエリを投げて集めるようにしたけど、自動でやってくんないかな。

ProductName プログラミング Google App Engine
Dan Sanderson
オライリージャパン / 3570円 ( 2011-01-24 )


GAE / PythonでURL fetchしたりJSON parseする

JSONのほうはPythonのバージョンを2.6にあげればいいらしいんだけど2.5を使っているのでsimplejsonをGAEプロジェクトの下に配置して

import simplejson as json

ってやる。

URL fetchのほうはGAEで用意されているのでそれを使う

from google.appengine.api import urlfetch

これでjsonを返すweb apiにアクセスしてparseできるので、xooqで同じイベントに登録しているユーザーを探せるようにしておいた。

GAE楽しい。

ProductName プログラミング Google App Engine
Dan Sanderson
オライリージャパン / 3570円 ( 2011-01-24 )


学校のためではなく、人生のために学ぶ

ネクスト・ソサエティによると

継続的に学習、教育の必要な社会になるのは間違いなく、知識労働者の資本とは知識そのものであり、知識社会と知識経済においては知識が主たる生産手段だと。

資本主義社会においては、質の高い労働力を確保するための必要最低限の教育という意味合いで、(画一的な詰め込み型)学校教育というものが必要だったのだろうが、こういう考えは既に時代遅れなんだろう。

もっと子供と一緒に楽しみながら学ぶ機会を如何に設けてやるかが必要なのかなぁと思うことがある。僕自身が学校教育というものを重要視していないせいもあるのだけど、こういった学びのデザインというものを考えてあげられればいいなぁと思っている。

フィンランドの美術館、図書館、自然学校、建築学校、動物園など、義務教育ではない オープンな学びの場から、成人教育、シチズンシップ教育、若者支援、メディア教育、 そして、性的マイノリティや障がい者の支援の現場を訪ねるフィールドワーク。 「楽しさ」と多様な「学びの体験」を重視するフィンランドの実践を、カラフルな写真 とわかりやすいレポートで1冊にまとめました。

というわけで、ところどころ参考になった。

Node.jsとWebSocketでchatサーバーをつくる

週末にみんなNode.jsいじっていて楽しそうだったので、写経してみたら

TypeError: Cannot call method 'set' of undefined

って言われてうごかなかったので、調べたらdeprecatedらしい。

なので、コメントアウトして動かしてみた。

var http = require('http'),
    fs = require('fs'),
    ws = require('websocket-server');

var httpServer = http.createServer(function (req, res) {
  var docroot = "public";
  var response = function(data) {
      res.writeHead(200, {'Content-Type': 'text/html'});
      res.end(data);
  };

  fs.readFile(docroot+req.url, function(err, data) {
     if(err)
     response(err.message);
     else
     response(data);
  });
});

var wsServer = ws.createServer({
  server: httpServer,
  origin: "http://localhost:8124"
});

wsServer.addListener("connection", function(conn) {
             var username = "user_"+conn.id;
//           conn.storage.set("username", username);
             conn.send("WebSocketサーバーに接続しました");
             conn.send("あなたの名前は " + username + " です");
             conn.broadcast(username+" が接続しました");

             conn.addListener("message", function(data) {
                          if(data == "ping")
                          conn.send("pong");
                          else
                          wsServer.broadcast(username+": "+data);
                      });
             });

wsServer.addListener("close", function(conn) {
            conn.broadcast(username+" が切断しました"); 
             });
wsServer.listen(8124);
console.log('Server runnning at http://127.0.0.1:8124/');

ProductName 徹底解説 HTML5 APIガイドブック コミュニケーション系API編
小松 健作
秀和システム / 2730円 ( 2010-12 )


Web Fontを使ってみた

google web fontsだったらimportするだけで使えるので便利ですね。早速xooqで使ってみた。

そういえばHTML5の本では見かけなかったなぁと思ったら、これってCSS3の技術だったのか。

ProductName Google API Expertが解説するHTML5ガイドブック
羽田野 太巳
インプレスジャパン / 2940円 ( 2010-09-16 )


本譲ります的なサイトをGAE+Flaskで作ってみた

昨日作ったものだけど、成果発表をしていないのでこのエントリでしてみたいと思う。

こんな感じのサイトで、認証はTwitterのOAuth、本の管理はbooklogの本棚APIを使ってます。

譲れる本の一覧を表示して、欲しい本があったらreplyしてもらって、手渡しで渡すと。

そんだけ。

まぁ、譲るぜオーラを漂わせるわけではなくて、あくまでイベントのついでに、物々交換的な機能があれば便利なんじゃないかと常々考えてたのでShizuDevつくる会で作ってみたと。

それからGAEも触りたかったしね。

xooqってどっからつけたかというと、はじめに本の交換だからbooxって名づけようと思っていたのだけど、やはりいありがちすぎて既に存在していたので、ひっくり返したらまぁOKだったという(一意性を担保するにはひっくり返せという教えが役に立った)。

前回ちょっと書いて放置してたら半年ほど経過してしまったが、今回みんなで集まったおかげで集中して作業できてよかった。

以下、自分で考えたオススメポイント。

住所バレしない

郵送だと住所書かないといけないのでちょっと嫌ですよね。なので会って渡す、コレ基本。イベントに行くついでにちょっと渡してくるというお手軽感。

Androidのbooklogアプリ便利

読み終わったらAndroidのアプリでスキャンして既読管理しているので、ついでにもう読まないであろう本は「交換してもいい本」カテゴリに入れてしまう、そんだけでOK。パソコン開いて作業しなくてよいので楽ちんですね。

ATNDでどのイベントに参加するかわかるようになってる

とりあえず表示するようにしただけ。やっつけ仕事っぽいがそのうちどうにかする。

ニューノーマル

ニューノーマルを化学反応のコンテクストで考えれば遷移状態を経て、より安定な生成物に移行することかなと。まぁそもそも反応系には戻らんだろうと思うので、環境の変化に即した形で生活様式が変わるのはまぁ普通かなと。

変化が激しいってことがこういう認識になるのかな。

あと、これはそうだと思うなぁ。強く感じる

ニューノーマルでは、企業に雇われることと自営の境目は急速に消えつつある

オールドノーマルでは、「タコつぼ」で身をかがめていれば、温情主義の上司があなたを引っ張り上げ、現在の仕事を一生のキャリアへと転換する軌道に乗せてもらえた。

後半は投資色が強くなっていたので斜め読みしただけ。前半が面白い。

ProductName ニューノーマル―リスク社会の勝者の法則
ロジャー マクナミー
東洋経済新報社 / 1995円 ( 2008-09 )


  • 最も重要なメディア製作者は自分自身である
  • メディアはいたるところにある
  • 北京語の重要性が今後高まる
  • グローバル化は海に生きるメリットを魚に議論させるようなもの
  • 大企業が雇用を保証していない現在、起業は選択可能な代案

ShizuDevつくる会でつくってきた

(仮称)ShizuDevつくる会を開催しました。

参加者は5名でしたが楽しかったですね。ハッシュタグを#shizuruに決定してワイワイと楽しく過ごしましたとさ。

各々Node.js触ったり、さくらのVPSを申し込んでjava環境整えてたり、jsviのソース読んだりしてた。

ちなみに私は予定通りxooqの認証まわりを作ってました。思ったよりは進まなかったんだけど、ログインできるようになったから良しとしよう。

@ando_ando_andoはNode.jsでブログシステム作ればって言われてたけど、サーバーの構成どうすんだろ?と悩んでた。僕も知りたいので、ベストプラクティスを探し出してください。@ringtaroがデモしてたライフゲームがNode.jsでリアルタイムに動くやつは面白かったですね。ユーザーが動いている最中に任意の位置にドットを打てるのも面白い。陣取りとかの要素を取り入れてゲーム性を持たせられないかなあと思いながら遊んでた。

というわけでまたやります。

グラフィックスのためのRプログ​ラミング―ggplot2入門

待ちに待った日本語版

ProductName グラフィックスのためのRプログラミング―ggplot2入門
H.ウィッカム
シュプリンガー・ジャパン株式会社 / 4200円 ( 2011-07-18 )


楽しみだ。

図書館をうまく利用するためのtips

図書館はよく使うほうだと思います。

が、利用していて感じるのは、図書館のサイトはどうしても図書館目線で利用者目線とのギャップがあるなぁと(実際、ありますねというよりは、、、)。

特にネットの対応がお粗末でユーザーインターフェースとかどうしょうもないですね。現実的な対応部署とかないんだろうなぁと思いつつも、それは顧客としての利用者にはどうでもいいことだからなぁと、自分のやり方を文書化してみました。

最近は以下のサイトを利用していますが、他にヨサゲなサイトがあれば教えてください。