怪異システムとは――世界そのものなのだから。 生き物と違って――世界と繋がっている。
uninstall macports, hello homebrew
参考 http://d.hatena.ne.jp/hidde/20090914/1252944208
chpass -s /bin/bash # exit / reopen shell sudo port unload apache2 mysql5 mysql5-server sudo port deactivate active sudo port -f uninstall installed sudo port clean all sudo rm -rf /opt/local sudo rm -rf /Library/Tcl/macports1.0
ruby -e "$(curl -fsSL https://gist.github.com/raw/323731/install_homebrew.rb)" brew install git brew upgrade
テスト駆動 JavaScript :Internet Explorerにおける、名前付き関数式の実装
「5.3.6 再び関数式について」において、Internet Explorerにおける、名前付き関数式のひどい実装のことが言及されている。
Internet Explorerは、名前付き関数式を前にすると、2つの別々の関数オブジェクトを作り、識別子を外側のスコープにリークし、そのうち1つをホイストしてしまう。
イメージとしては、名前付き関数式と同内容の関数宣言を外側のスコープで行ったようなものなのかな。
ひどさの詳細は、p.102〜p.103 のコードを読めばわかるとして。
これを回避する方法として
私は、必要に応じて分岐が異なれば名前も変わるようにして、クロージャー内の関数宣言を使い、名前付き関数式を避けるようにしている。
とかかれているが、その例となるコードまでは書かれていない。
おそらく次の様なコードだと思う。
名前付き関数式を使った実装
IE で予想しない振る舞いになる、と、この節に書かれているコード
if (!String.prototype.trim) { String.prototype.trim = function trim() { return this.replace(/^\s+|\s+$/g, ""); }; }
クロージャと関数宣言を使った実装 (Internet Explorerにおける名前付き関数式の予期しない振る舞いを避けるため)
if (!String.prototype.trim) { String.prototype.trim = (function () { function trim() { return this.replace(/^\s+|\s+$/g, ""); } return trim; }()); }
ちなみにこの実装は、p.119 リスト6-16 namespace 関数を読んでようやく思い当たったものだ。
テストケースとは何か
テスト駆動JavaScript を読んでいる。いままで、テストケース(testcase)の「ケース」って、事例とか場合という意味だと思っていたんだけど、容器とか入れ物のほうが正しい気がする。
テストの入れ物、だから、testほにゃららが複数入っている。
CakePHP 2.0のFixtureでテーブルを生成すると、通常オンメモリにテーブルが生成される
…つまり高速でテストを実行できることが期待でき、HDDやSSDにもやさしい
CakePHP2.0からFixtureでMySQLのMEMORYエンジンが使われる場合の回避方法 | tipshare.info
こちらとしてはテスト時にデータベースをオンメモリに生成する方法を探していたのでむしろ好都合だった。
検証してみたら、そんなことはなかった…まぁ、CakePHP2.0.3ですけど。どういうことか調べてみた。
lib/Cake/TestSuite/Fixture/CakeTestFixture.php 145行目〜
<?php if (empty($this->fields['tableParameters']['engine'])) { $canUseMemory = true; foreach($this->fields as $field => $args) { if (is_string($args)) { $type = $args; } elseif (!empty($args['type'])) { $type = $args['type']; } else { continue; } if (in_array($type, array('blob', 'text', 'binary'))) { $canUseMemory = false; break; } } if ($canUseMemory) { $this->fields['tableParameters']['engine'] = 'MEMORY'; } }
blob,text,binary型を使ってるとMEMORYエンジンは使われないと。
強制的につくってみよう。
CREATE TABLE text_contain_table ( id INT AUTO_INCREMENT not null, body text not null, primary key (id) ) ENGINE=MEMORY; ERROR 1163 (42000): The used table type doesn't support BLOB/TEXT columns
だめだ。ドキュメントにも書いてあった。
MySQL :: MySQL 5.5 Reference Manual :: 15.4 The MEMORY Storage Engine
MEMORY tables cannot contain BLOB or TEXT columns.
考えてみたら、たった100文字入れられれば十分なカラムだったのでVARCHAR(100)に変更しましたよ
僕が連休中に読みたい本
プログラマが知るべき97のこと
日本人寄稿者5名のサインが入った貴重な1冊を無くしてしまい、涙目で買った2冊目
現在1/3まで読んでます。連休中で読み終わりたい
- 作者: 和田卓人,Kevlin Henney,夏目大
- 出版社/メーカー: オライリージャパン
- 発売日: 2010/12/18
- メディア: 単行本(ソフトカバー)
- 購入: 58人 クリック: 2,107回
- この商品を含むブログ (348件) を見る
結果
読了。
JavaScriptパターン
現在半分まで読んでいる。
読み終わりたい本その2
JavaScriptパターン ―優れたアプリケーションのための作法
- 作者: Stoyan Stefanov,豊福剛
- 出版社/メーカー: オライリージャパン
- 発売日: 2011/02/16
- メディア: 大型本
- 購入: 22人 クリック: 907回
- この商品を含むブログ (77件) を見る
結果
6章までは読了。6章が濃すぎ。
エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践)
じっくりと読んでいきたい
エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践)
- 作者: エリック・エヴァンス,今関剛,和智右桂,牧野祐子
- 出版社/メーカー: 翔泳社
- 発売日: 2011/04/09
- メディア: 大型本
- 購入: 19人 クリック: 1,360回
- この商品を含むブログ (131件) を見る
facebookアプリケーション開発ガイド
Facebookアプリが作れるとモテると聞いてやってきました(ぇ
- 作者: 株式会社鳥人間郷田まり子
- 出版社/メーカー: アスキー・メディアワークス
- 発売日: 2011/04/27
- メディア: 大型本
- 購入: 5人 クリック: 438回
- この商品を含むブログ (8件) を見る
MacBook Pro に再インストールするソフトウェアメモ
- cd to
- Aptana Studio
- CleanArchiver
- Cyberduck
- DropLHa
- DropUnLHa
- Evernote
- Firefox3
- Firebug
- Firecookie
- FireMobileSimulator
- FireQuery
- Greasemonkey
- Hatena Bookmark
- User Agent Switcher
- Vimperator
- Vimperator-ja
- Web Developer
- 中止ボタンがバッテン髪飾りに見えて困る
- Firefox4
- Gimp
- Gitbox
- GitX
- Google Chrome
- iLife
- Keynote (iWork '08)
- Numbers
- Pages (iWork '08)
- ATOK 2009
- KeePassX
- Kindle for Mac
- MacPorts
- MacVim Kaoriya
- NetBeans
- Opera
- QuickSilver
- Reeder
- Skype
- VMware Fusion
- YoruFukurou
- Xcode 4
- KeyRemap4MacBook
- Growl
- StartupSound.prefPane
- Flip4Mac