Simplism iPad用フリップレザーケース チョコレートブラック TR-LCFLIPAD-CB

iPadのケース買いました。

電子ブックリーダー用途メインで使いたいので普通の見た目にしたかった。

simplism_ipad_flip_leather_1.jpg

これが普通の状態。

iPadケース3

これが開いた状態。

iPadケース2

そしてこれが・・・「止める部分を切っちゃった状態。

だって、あの部分糞邪魔なんだもん・・・。

個人的に道具は役割さえ果たせばぞんざいに扱いたい派。

ちょっとこういう事言うとスゴい怒られるかもしれないけど、MacBookもiPadもコンピューターの中じゃ無駄が無いデザインだと思うけど、コンピューター以外の広い意味でデザイン業界全体で考えれば単に邪魔にならないデザインってだけで特に愛着は無い。

すいません、すいません、石を投げないで下さい・・・。

HTMLのインデントを綺麗にするサービス、「Ham Cutlet」を公開しました! | FJORD, LLC(合同会社フィヨルド)

Help me, hackers!に続くフィヨルドのサービス第二弾をリリース!今回はちょっとした便利ツールHTMLのインデントを美しくするサービス、その名も「Ham Cutlet(通称ハムカツ)」です。

HTMLのインデントを綺麗にするサービスHam Cutletを作りました。

中身はHaml::HTMLでHTMLをHamlにして、Haml::EngineでHamlをHTMLに戻すだけです。

で、Haml::Engineはメインなので問題無いんですが、Haml::HTMLはおまけ的な感じなのと、仕様的には問題のあるHTMLでもある程度許容しないと使えないのでちょっと弄る必要がありました。

http://gist.github.com/426798

class Hpricot::Comment
  def to_haml(tabs, options)
    content = self.content
    if content =~ /\A(\[[^\]]+\])>(.*)<!\[endif\]\z/m
      condition = $1
      content = $2
    end
    if content.include?("\n")
      "#{tabulate(tabs)}/#{condition}\n#{parse_text(content, tabs + 1)}"
    else
      "#{tabulate(tabs)}/#{condition} #{content.strip}\n"
    end
  end   
end     
        
class Hpricot::Elem       
  def to_haml_filter(filter, tabs, options)
    content =
      if children.first.is_a?(::Hpricot::CData)
        children.first.content
      elsif children.first.is_a?(::Hpricot::Comment)
        children.first.content.gsub(/\/\/$/, '')
      else
        CGI.unescapeHTML(self.innerText)
      end
        
    content = erb_to_interpolation(content, options)
    content.gsub!(/\A\s*\n(\s*)/, '\1')    original_indent = content[/\A(\s*)/, 1]
    if content.split("\n").all? {|l| l.strip.empty? || l =~ /^#{original_indent}/}     
      content.gsub!(/^#{original_indent}/, tabulate(tabs + 1))
    end
    
    "#{tabulate(tabs)}:#{filter}\n#{content}"
  end
end

一つは単一行のコメントに改行が付かないところ。これは単なるバグだと思います。

もう一つはHamlのせいというかHTMLの仕様的にOKかどうかわからないんですが、

<script type="text/javascript"><!--
function foo() {}
//--></script>

よくあるこういう書き方への対応部分です。HTML -> Hamlの変換時に、Javascriptの部分は:javascript haml_filterに、HTMLコメントはHpricot::Commentとして処理されます。

上記はscriptタグ -> HTMLコメント -> Javascript(+Javascriptのコメント)という構造になっています。

Haml::HTMLでは、scriptタグの中はjavascriptかCDataしかないと思って油断しているのでHTMLコメントが処理できません。さらにHTMLコメントの中のJavascriptは本来HTMLでは中がどうなってようが大した問題じゃないんですが、Javascript的には大問題。最後にあるJavascriptコメントも処理出来てないので修正。

CSSのtypeタグも似たような感じで修正。

お陰でこんな感じで綺麗になりました。

<script type="text/javascript">
//<![CDATA[
function foo() {}
//]]>
</script>

Yahoo JAPAN!のHTMLを食べさせたらInternal Server Errorになってしまう - Help me, hackers!

Yahoo! JAPANトップページのHTMLを貼り付けてみたところ、Internal Server Errorとなってしまいました。不味いものを食べさせてしまったみたいで申し訳ないですが、サーバー側でログを調べてもらえると解決も早そうです。

Yahoo! JAPANのHTMLを読めるように対応していたら他のページの対応率もグッと上がって良かったです。

はてなダイアリーの高速化の裏側 - とあるはてな社員の日記

先週、ダイアリーがリニューアルされました。今回のリニューアルはダイアリーの応答時間の改善が目玉の一つとなっており、そのために1週間リリースを延ばし、改善の時間を確保していました。今回は、この改善について記しておきます。

確かに体感で「何かサクッってる気がする」って感じがします。iPhoneで鬼見易くなったし、僕ははてダあまり使ってないんですが、はてダユーザー以外にとっても嬉しいリニューアルですね。

githubでソースを公開しつつHerokuで動かすアプリの場合、git push heroku masterでHerokuにビルド、git push origin masterでgithubに公開という風に分けられて良いんだけど、database.ymlみたいな設定ファイルが困る。

具体的にはtwitter_auth.ymlというファイルにTwitter APIのキーやbitly APIのキーを入れていて、githubにはtwitter_auth.example.ymlをアップしてるんだけど、Herokuにはホンモノをpushしないといけない。

「ブランチ作って、ホンモノの設定ファイルコミットしてpushしてブランチ削除」みたいなshellスクリプトでも書く必要があるのかな?

結構これみんな遭遇しがちなことだと思うので誰かがもっとスマートな方法知らないかと思ってググってるけど見つからない。

追記:教えて頂いた内容で解決しました。Heroku - ソース中のパスワードなどの処理 - komagata [p0t]

Mac(Snow Leopard)でpgのgemインストール。

% sudo port install postgresql84
% export PATH=/opt/local/lib/postgresql84/bin:${PATH}
% env ARCHFLAGS="-arch x86_64" sudo gem install pg

CentOS 5.3

$ sudo yum install postgresql84-devel
$ sudo gem install pg

Google App EngineやHerokuが好きな理由。

  • 無料レンタルサーバーであること
  • パフォーマンスが高いこと

元も子もない理由だけど、強烈な理由です。ってか使わない理由って覚えるのが面倒以外にあるのかな?(辛辣)

正規表現のオプション。よく忘れるので。

/…/i
大文字小文字を無視。
/…/s
Shift_JISとしてマッチ。
/…/e
EUC-JPとしてマッチ。
/…/u
UTF-8としてマッチ。
/…/n
1バイト文字としてマッチ。
/…/x
空白および#以降の文字を無視。
/…/m
.が改行にもマッチ。

はてなダイアリー - iPhone

はてなダイアリーが色々バージョンアップしましたね。特にiPhone用のViewはムチャクチャ見やすくて嬉しいです。

元々、WordPressとかのiPhone用テーマは無駄にiPhone UIを真似ていてただでさえ狭い表示領域がさらに狭まっていて嫌でした。

そもそも、2〜3カラムのブログはカラムをダブルタップ?すればその幅にフィットするので別にPC用の見た目で十分読みやすかったのでそのままで良いよって思ってました。

しかし、はてなダイアリーは本文中に無意味なリンクが貼られまくっているのでその状態でダブルタップすると高確率でキーワードのページに飛ばされて、SAN値が減少しまくってました。

文字サイズも見易いし、自分が作るときに参考にしたいと思います。

Heroku | Platform Stacks (Beta)

HerokuにはPlatform Stacksというのがあって、いつくかの環境を切り替えて使うことが出来るらしい。

% heroku stack
* aspen-mri-1.8.6
  bamboo-ree-1.8.7 (beta)
  bamboo-mri-1.9.1 (beta)

今のところはaspenとbambooの二つ(bambooはruby1.9版もあり)。よく考えると、自分のサーバーのソフトウェアがガンガン勝手に上がられても困るからこういう仕組みは嬉しい。

herokuローカルな.gemの仕組みが嫌でBundler使いたい場合は現状bamboo stackにするしかない。(Rails 2.3.8もbambooでないと動かないとの噂)(aspen stackでも動きます。)

$ heroku create test-sushi-app --stack bamboo-ree-1.8.7
$ heroku stack:migrate bamboo-ree-1.8.7

こんな感じで最初から指定してもいいし、あとでmigrateしても問題無かった。Rails3 + Ruby1.9.2対応したときが狙い目かも?

追記:bamboo-ree-1.8.7がデフォルトになりました。

iPadで遊んでみました。

まずは意外と普通の端末という印象。タッチに関しては元々MacBookのタッチパッドの優れ過ぎ具合に感動していたので驚きは薄い。SafariでYoutubeがインライン再生?出来るのは嬉しい人が多いかも。

しかし、ニコ厨の俺にとっては、

「ニコ動見れないとか、こいつ絶対忍者だろ。汚い、さすが忍者汚い」

画面も横で使うこと多いな〜動画とか普通PCは横長なのになんで縦なんだろう?とか考えてました。

これ、絶対秘密なんですが特別にみなさんにお教えしようと思います。

実は、iPadで本や漫画を読むとスゴく快適なんですよ・・・。

漫画は縦の状態だと丁度1ページにぴったりで超絶綺麗です。これはもしかして最強の電子ブックリーダーとしてもつかえるんじゃないか・・・?(ゴクリ

「・・・・・・・・・・・・・・・・・・。」



それはさておき、CloudReaderでzipのzipも1冊の本として見れるのはとても便利。(1巻.zip, 2巻.zipをまとめてFoo全2巻.zipとなってるものを1冊として扱える)

マジで裁断機欲しくなって来た・・・。