MacVim KaoriYaを使い始めたところ文字が見えなくて困った

MacVim KaoriYaを始めました。
今まではitermの上でvimを使ってました。

MacVimを立ち上げたところ、グレー背景に文字が見えない!

なにか色系の設定がおかしなことになってるんだろうなーといろいろ試したところ、.vimrcにcolorschemeの設定を書いていて、.gvimrcに書いてないときにこうなってしまうことが分かりました。

こういうの書いた~/.gvimrcをつくりました。

colorscheme railscasts
set showtabline=2  " タブを常に表示
set imdisable " IMを無効化
set transparency=5 " 透明度を指定
set antialias
set guifont=Monaco:h14
set columns=120
set lines=50

Amazon SimpleDBのConsistentReadを指定してみる

SimpleRecordというSimpleDB専用のActiveRecordクローンを試しているときに登録したはずのデータが取得できない現象が頻発しました。

POSTでデータ登録 -> Redirect GETで登録したデータを取得して表示しようとしたら、データが取得できてない!という流れです。

これはEventually Consistentが働いている現象なんだなーと思いました。(取得するデータが最新の状態である保証がない)

SimpleDBは今年の2月に取得するデータが最新の状態であることを保証するオプション「ConsistentRead」が追加されていました。

が、SimpleRecordもその中で使われているawsもConsistentReadは未対応のようです。
なので無理矢理ConsistentReadを使うように変えてみました。
aws-2.3.9/lib/awsbase/right_awsbase.rb

        def self.sign_request_v2(aws_secret_access_key, service_hash, http_verb, host, uri)
            fix_service_params(service_hash, '2')
            # select a signing method (make an old openssl working with sha1)
            # make 'HmacSHA256' to be a default one
            service_hash['SignatureMethod'] = 'HmacSHA256' unless ['HmacSHA256', 'HmacSHA1'].include?(service_hash['SignatureMethod'])
            service_hash['SignatureMethod'] = 'HmacSHA1' unless @@digest256

            #FORCE ConsistentRead
            service_hash['ConsistentRead'] = 'true'

            # select a digest
            digest = (service_hash['SignatureMethod'] == 'HmacSHA256' ? @@digest256 : @@digest1)
            # form string to sign
            canonical_string = service_hash.keys.sort.map do |key|
                "#{amz_escape(key)}=#{amz_escape(service_hash[key])}"
            end.join('&')

            string_to_sign = "#{http_verb.to_s.upcase}\n#{host.downcase}\n#{uri}\n#{canonical_string}"
            # sign the string
            signature = escape_sig(Base64.encode64(OpenSSL::HMAC.digest(digest, aws_secret_access_key, string_to_sign)).strip)
            ret = "#{canonical_string}&Signature=#{signature}"
#            puts 'full=' + ret.inspect
            ret
        end


この

service_hash['ConsistentRead'] = 'true'

一行を追加です。


これでConsistentReadできているようです(たぶん)
クエリーごとに指定できるようなのがほんとはええわな。

Eventually Consistentなデータストアを使う開発では気をつけよう。

AWS Toolkitをためしてみた

AWS Toolkitを使うと、Eclipse上でインスタンスの管理をしたり、Putty経由でサーバーに接続したり、Tomcatクラスタ環境を自動で作ってWebアプリをデプロイしたりできます。
Google AppEngineの開発っぽくEclipseから直接EC2へデプロイできる!これはかなりよさそうです。

設定は簡単なはずですが、ローカルにインストールが必要なTomcatはサーバーを追加するときにダウンロードしてインストールした方がよさそうです。たぶん。自分のローカルにインストール済だったTomcat(現在の最新の6.0.26)を指定していたら、AWSTomcatが立ち上がらなかったです。
Eclipseからダウンロードすると6.0.14が入りました。

使い方はこのあたりが参考です

ATNDのイベントをメール通知するアプリをGoogle AppEngine(Python)でつくった

できること

キーワードを登録しておくと、そのキーワードに引っかかるイベントがあったらGmailで通知し続けます。あとからイベントをGoogle Calendarに登録することができます

いまのところ動いているところ

http://atndnotifier.appspot.com/

経緯

  • ATNDの人気イベントは数時間で定員が埋まってしまうことが多いので、登録されたらプッシュで教えてくれるものが欲しかった
  • JRubySinatra)で最初作ろうとしたけどspin-upの遅さに断念した
  • なぜか未経験のPythonDjango)を選択

これからやりたいこと

OAuthを使ってtwitterにイベントがあったことをつぶやかせる

目下困ったこと

テストがまったくない。テストの書き方がピンときていない。

新しいヘッドフォンを頼んだ

クレジットカードのポイントが失効し始めてきてたので、なんか選ぼうとしたらヘッドフォンがあって、Amazonで評価が高かったから選びました。期待してます。

マランツmarantz 高音質インイヤー・ヘッドフォン イヤホンHP101マランツmarantz 高音質インイヤー・ヘッドフォン イヤホンHP101

marantz(マランツ
売り上げランキング : 10974
おすすめ平均

Amazonで詳しく見る
by G-Tools

NODAMEは終わっていなかった

のだめ終わってなかったんですね・・
番外編となってますが、23巻の続きだし、主人公は千秋先輩だし、ふつうに続いてますね。
日本編が好きだったので、この続き方はうれしい。

のだめカンタービレ(24) (KC KISS)のだめカンタービレ(24) (KC KISS)

講談社 2010-04-26
売り上げランキング :
おすすめ平均

Amazonで詳しく見る
by G-Tools

Chromium OSをビルドしてみた



Chrome OSオープンソース版のChromium OSです。
この本に書いてあるビルド手順を参考にしました。
けど、変更が激しいらしく、本の内容と若干違ってます。Web上のドキュメント見た方がいいです

Google Chrome OS ~最新技術と戦略を完全ガイド~
Google Chrome OS ~最新技術と戦略を完全ガイド~
インプレスジャパン 2010-03-24
売り上げランキング : 7966


Amazonで詳しく見る
by G-Tools

  • ビルドはUbuntu 64bit版で最適化されてます。最初うっかり32bit版でやってました。設定ファイルなどに手を入れれば32bitでもビルドできるみたいですが面倒くさくてUbuntu入れ直しました
  • aptitude install git-coreで入るgitのバージョンでは古くてソースコード取るときにエラーになるので最新のgitをビルドした
  • Chromeの左上のホームボタンをクリックしたら、各サービスが表示されましたが、これの閉じ方がわからず、、