#git #git #zsh

前回の記事:gitの^記号はHEAD^を書いたのですが、zshでやるとこんなエラーに。。

zsh: no matches found: HEAD^

何かzshで^記号は特別の意味があるらしいです。 参考:http://stackoverflow.com/questions/6091827/git-show-head-doesnt-seem-to-be-working-is-this-normal

回避方法

2つあります。一つは同じ効果のHEAD~1を使う、もう一つはエスケープする方法です。

  • HEAD~1
  • HEAD/^

Situation

iPhone Safariを使うときにあるInput boxで何か入力後”return”キーのkeydownイベントをキャッチして、何かしらのアクションを行いたい、のが目的です。よくあるのがreturnキーでformをsubmitしたり、ボタンクリックのアクションを行ったり、キーボードを隠したりするところですかね。

Keydown event

*13</em>という数字がreturnキーのkeydown時のコードです。実はJavascript経験がある方ならすぐ分かると思いますが、13Enterキー*のコードでもあります。

もう一つのTipはキーボードを隠したいときはjQueryのblur()を使えばOKです。

参考:http://stackoverflow.com/questions/5932317/how-to-capture-the-keyboard-return-event-on-iphone-browser

メリット

マルチプロファイルを有効することでそれぞれブックマーク、エクステンション、Themeとアプリを設定できるようになります。

実際はChromeではなく、Chromeが恩恵を受けているオープンソースプロジェクトのChromiumを使います。Chromeでもできるっちゃできるんですが、手順が面倒くさいし使い勝手が悪いです。

http://blog.av-jyo.com/2011-09/usefully-chromium-setting-for-web-development.htmlを参考にしました。

手順

  • http://mrgeckosmedia.com/applications/info/ChromaticでStableなChromiumをインストール
  • *about:flags</em>でMultiple Profiles*をEnable
  • 再起動して右上に人の画像をクリックしてプロファイルを管理
  • メインプロファイルに切り替え、ブックマーク、エクステンションなどの同期を行う
#ruby #sinatra

目的

Sinatraで静的なhtmlファイルをrenderする方法です。

現状

Sinatraでは色々なビューテンプレートをレンダリングできます。Haml、Erb、Sass、Markdown、CoffeeScript…が対応されていますが、HTMLは対応してないようです。html :indexで書いてもダメですね。

Sinatraのビューテンプレート

解決方法

*File.read</em>でファイルとして読み込むことですね。Sinatraはデフォルトの設定だとpublic*フォルダ内のものをassetsとするそうです。

でちょっとリファクタリングしてhtml :indexのシンタックスでいけるようにしました。

参考

http://stackoverflow.com/questions/2437390/serving-static-files-with-sinatra

#chrome #extension

すごく簡単なGoogle Chrome Extensionを作りました。

実装自体は結構前にできたんですが、公開するまでもないかと思って自分で使いました。でもせっかく作ったしひょっとしたら使いたいユーザもあるんじゃない?の気持ちで公開しました。詳細はまた時間があったら整理してソースコードと一緒に公開します。

My First Chrome Extension Youku Opener

My First Google Chrome Extension: Youku Opener

公開3日で14weekly usersの数字でした。意外と使おうとするユーザがいますね、unexpected、予想外でした。

#ruby

よくつかうメソッドの nil? empty? blank? のまとめ。

nil? すべてのオブジェクトにある。nilのときにTrueを返す。 empty? 文字の長さが0のとき、配列が空のときにTrueを返す。

blank? railsの拡張。nil, “”, “ “, **, {} のいずれかでTrueを返す。

素晴らしいまとめですね!ootokageさんに感謝。

PHP使うときはempty(0)でtrueになりますが、上記のメソッドどれも0をチェックしないですね。。.zero?というのメソッドは一応あるようですが。

迷ったらここにいっぱいサンプルがあります。

0.nil? #=> false
0.zero? #= true
0.empty? #=> NoMethodError
0.blank? #=> false
0 == false #=> false

"".nil? #=> false
"".zero? #=> NoMethodError
"".empty? #=> true
"".blank? #=> true
"" == false #=> false

{}.nil? #=> false
{}.zero? #=> NoMethodError
{}.empty? #=> true
{}.blank? #=> true
{} == false #=> false

**.nil? #=> false
**.zero? #=> NoMethodError
**.empty? #=> true
**.blank? #=> true
** == false #=> false

nil.nil? #=> true
nil.zero? #=> NoMethodError
nil.empty? #=> NoMethodError
nil.blank? #=> true
nil == false #=> false

false.nil? #=> false
false.zero? #=> NoMethodError
false.empty? #=> NoMethodError
false.blank? #=> true
false == false #=> true
#google calendar #ipad #ipad #iphone

この記事で紹介するのはGoogle Appsのアカウント(多くの場合は会社で使うGoogleアカウント:[email protected]のような)のカレンダーをiPhoneに同期する方法です。

手順

(英語の環境設定です)

  • Settingsアプリの”Mail, Contacts, Calendars”を開く
  • Add Account…でOther、Add CalDAV Account
  • アカウント情報を入力 -Server: google.com -Username: [email protected] (ここでフルのメアドを入力してください) -Password: 上記アカウントのパスワード -Description: 適当に

もし接続にSSLが必要であればダイアログが出るので、そのまま「OK」を押せばOKです。 成功すれば”Mail, Contacts, Calendars”にDescriptionで入力したアイテムが表示され、灰色で「Calendars」と表記されるはずです。

普通のGoogleアカウント

普通のGoogleアカウントならカレンダーをiPhone、iPadに同期するのは比較的に簡単だと思います。iOSの”Mail, Contacts, Calendar”設定でGoogleのアカウントを追加し、CalendarsをONに設定すればできるんですね。

参考

http://www.google.com/support/mobile/bin/answer.py?answer=151674