2011年12月25日日曜日

2011年を振り返って

2011年も残りあとわずか。このブログに投稿した内容を振り返ってみて、今年気になったキーワードのベスト5と、それに関連する投稿を挙げてみる。


5. Android

今年は予想されていたとおり、スマホ元年になった。そしてアメリカの状況を追うように、日本でもAndroidがiPhoneを上回りシェアを伸ばしている。
”Yahoo!”や”IE”を使っていた人たちがスマホを使うようになってきた、これは個人向けのサービスだけでなく企業向けのシステムをも飲み込んでいくのだろう。
タブレットも含めたスマホ以外へのAndroidの展開については、まだなんとも言えないけれど。(むしろこちらが来たら革命的に状況が変わるかも。)



4. Amazon EC2

今年は満を持してAWSのデータセンターが日本に上陸した。もともとシンガポールでもそんなに問題はなかった(アメリカは体感できるくらい遅かった)けど、やはり東京にあるに越したことはない。
その他にもAWSは立て続けに機能が追加されている。個人的にはAmazon Linux AMIの登場が良かった。CentOSよりyumでインストールできるパッケージのバージョンが新しいし。
以前は「突然落ちる!」という話が蔓延して大丈夫かなと思ってたけど、実際に使ってみて大丈夫な部分もそうでない部分も分かってきた。
来年は色んな環境をEC2へ移行していこうかなと夢想中。



3. jQuery UI

これは今年登場したわけではないけど、個人的に今年から本格的に使い始めたのでランクイン。
いわゆる”デザイン”ができない自分にとって、jQuery UIはまさに福音だった。classを指定するだけで簡単にそれらしいサイトができあがるし、その上バラエティに富んだテーマを選ぶことができる。企業向けのWebアプリならこれで充分でしょう。
はやくGridがリリースされないかな。



2. jQuery Mobile

そしてjQuery UIの弟分ながら既に兄貴とは比べものにならないくらいメジャーになり、(自分の中では)デファクトスタンダードにまでなっているjQeury Mobile。
jQuery UIのCSS Frameworkで実装されたclassさえ指定しておけばよいというやり方をさらに進化させ、data-*属性により動きまで指定するというやり方は黒魔術的だが、覚えてしまえば手軽に使うには便利。Ajax(実際にはHijax)による遷移も含めて、もうMobileだけじゃなくてPC向けにも取り入れればいいんじゃないかと思う。
とここまで書いて気づいたが、このブログではまともにjQuery Mobileについて書いたことがなかった。マニュアルを見れば他に調べる必要もないからか。



1. Titanium Mobile

1位に輝いたのはTitanium。チタニウムではなくタイタニウム。日本ではチタンに引っ張られてチタニウムと読みたくなるが、それでもどうしてもタイタニウム。
まだ発展途上の感は強いが、JavaScriptで、AndroidとiPhoneの両方のアプリが作れるというのは便利。
フォーラム等で回答をしたり見やすいAPI Documentも作ってくれたmasuidriveさんの活躍に負うところも大きいと思う。参考情報(日本語ならなお良し)の探しやすさは往々にしてソフトウェアがブレイクするかどうかにおいて、ソフトウェアの出来よりも影響が大きかったりする。来年も期待してます。



こうして見ると、やっぱりスマホの年だったと実感する。あとはJavaScriptか。
でも、ここでは出てこなかったけど、なんだかんだで個人的には今年もPHPが中心だったなあ。でもPHPは身近過ぎて、「今年」気になったキーワードという感覚にはならないんだよなあ。

2011年11月29日火曜日

Google Calendar Header and Navigation Switcherを 最新のGoogleカレンダーに対応

FirefoxのGreasemonkeyで、Googleカレンダーのサイドバーと上部コントロールを非表示にしてカレンダー部分を広くできる便利な「Google Calendar Header and Navigation Switcher」というのがあるが、これがGoogle+風の新しいGoogleカレンダーのデザインだと機能しない。

Userscripts.orgにこれの解決策が書いてあった。

Broken with new look - Userscripts.org

Fixed it.    Change line 88 to: var head = new DisplaySwitcher("head", "#vr-proto-header,#topBar,#cornerBookmarks,#gbar,#gbarl,#guser,#ft+.s,.gbh", (#vr-proto-header is the new header) and add after line 45 (or pretty much anywhere inside DisplaySwitcher.prototype.toggle declaration) the following line: if (this.id=="navi") { document.getElementById("mainbody").style.marginLeft = hide ? "0px" : "210px"; } (to fix the white space that the hidden sidebar leaves)

要約すると、
  • 88行目で指定する隠す対象の指定(後述)を変更する
  • 45行目あたりに、下記のif文を追加する(サイドバーを非表示にした時に空白のスペースが残るのを防ぐため)
    if (this.id=="navi") { document.getElementById("mainbody").style.marginLeft = hide ? "0px" : "210px"; }

88行目で指定する、隠す要素の指定についてはいろんな意見が出てる。
  • #vr-proto-header,#topBar,#cornerBookmarks,#gbar,#gbarl,#guser,#ft+.s,.gbh
  • #onegoogbar,#vr-proto-header,#vr-proto-nav,#topBar,#cornerBookmarks,#gbar,#gbarl,#guser,#ft+.s,.gbh
  • #onegoogbar,#vr-proto-header,#vr-nav,#vr-header,#vr-proto-nav,#topBar,#cornerBookmarks,#gbar,#gbarl,#guser,#ft+.s,.gbh

3番目のahbiさんのやつが一番指定要素が多いので一番シンプルになる。

ただ、自分の場合はアカウントの切り替えができるOne Google Barは残したいので、88行目を下記のようにした。
  var head = new DisplaySwitcher("head", "#vr-proto-header,#vr-header,#vr-proto-nav,#topBar,#cornerBookmarks,#gbar,#gbarl,#guser,#ft+.s,.gbh",
refleshCal);

うん、快適。

2011年11月17日木曜日

Google App Engineでデータを一括で削除する方法

Google App EngineがPreview版を卒業して正式版になったのに伴ない、2011/11/7から価格体系が変わり無料で使えるQuotaが減った。
特に、データ書き込み(Datastore Write Operations)がすぐに制限に達してしまう

そんなにデータ登録してないけどな?と思って調べてみると、Datastore Write Operationsには登録・更新だけでなく削除も含まれるようだ。
過去データの削除をcronで動かしていたのが全てカウントされている。
そこで、過去データ削除のcronをコメントアウトすると、Datastore Write Operationsが大幅に減った。

残る問題は過去データの削除をどうするか?
調べてみると、Google App Engineの管理画面からDatastore Adminという機能を使えば削除できるらしい。

さっそくDatastore Adminを使ってみる。デフォルトでは無効になっているので、Enabledする。
すると...真っ白な画面が表示された。
調べてみても有効な情報がない。



1日経って気付いた。Googleのマルチアカウントが(例によって)悪さをしている?
いったんSign Outして再ログインしたら無事に表示された。

さっそく削除してみる。Entity Kind(テーブル)ごとの削除になる。(条件を指定して削除できれば完璧なのだが。)
実行すると、Datastore Write Operationsが制限に達して真っ赤になってしまった。Datastore Adminから削除しても、Quotaに含まれるらしい。
仕方ないのでQuotaがリセットされるのを待つ。



リセットされてからしばらく後で見てみると、無事にEntity Kindの削除が終わっていた。Datastore Write OperationsのQuotaの大部分を使ってしまっていたが、明日またリセットされればそれ以降は問題ない。
しばらくこの手でやりくりしてみるか。

2011年11月16日水曜日

Windows 7で Poderosaの接続履歴が保存されない問題

Windows7でPoderosaを使い始めたが、なぜか接続の履歴が保存されないので、毎回ユーザー名や鍵ファイルを指定しなければならないのが面倒。
そして試してみたら接続の履歴だけでなく、あらゆる設定が保存されていないことが判明。

対策は、Poderosaを起動する時に管理者として実行すること。

管理者として実行したら、接続の履歴も設定も保存される。
毎回管理者として実行するのは面倒なので、新しい接続設定を残したい場合や、その他の設定を変えたい場合のみやれば良いと思う。

あるいは、インストールする時にProgram Filesじゃないとこに入れればよかったのかもね。

ブログ アーカイブ

tags