自宅はMacとWindowsの2台体制で、Windowsの方はHPのノートPCにVista Ultimateが入っている。そのVistaも使っていくうちに不評な理由がだんだん分かってきて(特にHibernationの遅さは致命的)、最近はWindowsでしかできないことが無い場合を除き、ほとんど起動しなくなってしまった。
それに対してWindows7の評判は良いようで、10月末に発売ということでEditionごとの機能をチェックしてみた。自分が最も重視するのはOSの表示言語で、英語でないともうダメな体になってしまった。Vistaの場合は言語の切り替えができるというだけの理由でUltimateにしているという状態で、Windows 7ではどうなったかを確認すると、予想通りWindows 7 Ultimateでなくてはならず、アップグレード版で\25,000以上の出費になるようだ。
Macの場合は、標準で表示言語を切り替えられるのに、Windowsはなんでダメなんだろう。まあ、自分のニーズが多数派でないのは理解するが、言語を切り替えるためだけにUltimateを買わざるを得ないというのは納得がいかない。
Windowsでしかできないことを一度列挙してみて、本格的にWindowsを使わないという方向を検討してみるか?
Sunday, September 27, 2009
Sunday, August 02, 2009
MacでPIL
妻がMacBook Proを買ったので、旧機種のMacBookが余った。これを機にこのMacBookを開発専用機にしよう、ということで、様々なツールをインストール。まずはEclipse+PyDevでPythonの開発を開始。
しかし、いざPIL(Python Imaging Library)をインストールして使おうとすると、JPEGがサポートされていないというエラーが。以下のURLからJPEGライブラリをインストールした後にPILを再インストールした。
http://www.ijg.org/
これまではWindowsやLinuxで開発をしていたので、ダブルクリックとかパッケージツールを使って簡単にインストールできていたが、Macではそうではなさそうだ。
しかし、いざPIL(Python Imaging Library)をインストールして使おうとすると、JPEGがサポートされていないというエラーが。以下のURLからJPEGライブラリをインストールした後にPILを再インストールした。
http://www.ijg.org/
これまではWindowsやLinuxで開発をしていたので、ダブルクリックとかパッケージツールを使って簡単にインストールできていたが、Macではそうではなさそうだ。
Saturday, July 18, 2009
Project Tuva
Bill GatesがCornell大学でのFeynmanレクチャーの権利を買い取り、Project Tuvaとしてネットに公開をした。
自分はさっき1番目のレクチャーを観終えたが、本当に面白い。
特に印象的だったのは、重力の法則が振り子の運動のような身近なものから、銀河の形成にまで適用されるという普遍性(Universality)を「simple is beautiful」と言った部分だ。
最近自分の周辺は、複雑なモノや事情に支配されており、それに圧倒されているように感じていたが、案外そうではないかもしれない。昔、大学でカオスの研究(Universality in chaos)をしている当時を思い出した。
自分はさっき1番目のレクチャーを観終えたが、本当に面白い。
特に印象的だったのは、重力の法則が振り子の運動のような身近なものから、銀河の形成にまで適用されるという普遍性(Universality)を「simple is beautiful」と言った部分だ。
最近自分の周辺は、複雑なモノや事情に支配されており、それに圧倒されているように感じていたが、案外そうではないかもしれない。昔、大学でカオスの研究(Universality in chaos)をしている当時を思い出した。
Friday, July 17, 2009
XULで遊んでみるか
Yahoo! Japanってダメだな
「友達がYahoo! Messengerを使っているから自分も使ってみたい」と妻に頼まれたのでいろいろ調べてみた。すると、Yahoo! Japanにまつわる以下の制限が分かった。
2.については、英語版のYahoo! Messenger(for Mac)はバージョン3.0で既に音声対応しているが、日本語版は2.6で音声通話に未対応、さらにYahoo! Japan限定版というありさま。
Yahoo! JapanはSoftBank傘下という特殊な事情があるのは知っているが、ここまであからさまに制限があるのはいかがなものか。結果、「チャットや音声通話をしたければSkypeを使え」という結論に至った。
Yahoo! Japanってダメだな
- 他の国のYahoo!アカウントと切り離されている
- Yahoo! Japan版のYahoo! Messenger(for Mac)は、バージョンが古くて音声通話に未対応
2.については、英語版のYahoo! Messenger(for Mac)はバージョン3.0で既に音声対応しているが、日本語版は2.6で音声通話に未対応、さらにYahoo! Japan限定版というありさま。
Yahoo! JapanはSoftBank傘下という特殊な事情があるのは知っているが、ここまであからさまに制限があるのはいかがなものか。結果、「チャットや音声通話をしたければSkypeを使え」という結論に至った。
Yahoo! Japanってダメだな
Friday, July 03, 2009
FirefoxのGeolocation(位置検出)をOFFに
Firefox3.5がリリースされて早速インストール。話題になっているGeolocationをまずOFFにした。
やり方は、URLにabout:configと入れて、geo.enabledをfalseにするだけ。
本当にこれがないと使えない便利なモノがあればONにするかもしれないが、今のところはOFFにしておこう。
やり方は、URLにabout:configと入れて、geo.enabledをfalseにするだけ。
本当にこれがないと使えない便利なモノがあればONにするかもしれないが、今のところはOFFにしておこう。
Saturday, May 23, 2009
[jQuery] live()が激しく便利な件について
最近jQueryを使って動的なページを作っており、頻繁にappend()やremove()を使ってページエレメントを追加・削除している。その時に面倒だったのが新たに追加したエレメントへのイベントのバインドだ。つまり、append()で追加したエレメントにイベントを毎度バインドするということをやっていた。
しかし、何かうまい方法があると思ってもう一度jQueryのドキュメントを見てみると、live()というチョー便利な関数が(version 1.3から追加されたみたいだ)。以下に簡単なサンプルを。
これまでは、要素が追加されるたびにbind()を使っていたのが、live()のおかげで楽チンになった。やっぱりjQueryはすばらしい。
しかし、何かうまい方法があると思ってもう一度jQueryのドキュメントを見てみると、live()というチョー便利な関数が(version 1.3から追加されたみたいだ)。以下に簡単なサンプルを。
- // class=messageをクリックすると自分自身が消えるようにする
- $('.message').live('click', function() {
- $(this).remove();
- });
- // id=addというボタンを押すと、class=messageというdivをページに追加
- $('#add').click(function() {
- $('body').append('<div class="message">hello</div>');
- });
// class=messageをクリックすると自分自身が消えるようにする
$('.message').live('click', function() {
$(this).remove();
});
// id=addというボタンを押すと、class=messageというdivをページに追加
$('#add').click(function() {
$('body').append('hello');
});
これまでは、要素が追加されるたびにbind()を使っていたのが、live()のおかげで楽チンになった。やっぱりjQueryはすばらしい。
Monday, May 04, 2009
[JavaScript] document.write("<scr" + "ipt>")って?
最近色々なJavaScriptのソースを読む機会があったのだが、その中で妙な記述があるのを見つけた。
これは、JavaScript中で別のファイルを読み込む時に使う。最初は、なんだこりゃ?と思ったが、よく考えてみると、もしdocument.writeの"</scr" + "ipt>"が"</script>"だったとすると、これが最初の<script>タグの対だと認識されてしまうからだというのが分かった。
しかし、こういったバッドノウハウで回避しないといけないような作りになっているこのスクリプトの方が問題だと思うのだが...
- <script type="text/javascript">
- ...
- document.write("<script type=\"text/javascript\" src=\"foo.js\">" + "</scr" + "ipt>");
- ...
- </script>
<script type="text/javascript">
...
document.write("<script type=\"text/javascript\" src=\"foo.js\">" + "</scr" + "ipt>");
...
</script>
これは、JavaScript中で別のファイルを読み込む時に使う。最初は、なんだこりゃ?と思ったが、よく考えてみると、もしdocument.writeの"</scr" + "ipt>"が"</script>"だったとすると、これが最初の<script>タグの対だと認識されてしまうからだというのが分かった。
しかし、こういったバッドノウハウで回避しないといけないような作りになっているこのスクリプトの方が問題だと思うのだが...
Thursday, April 30, 2009
[Camera] 25mmパンケーキ + LH-43 + 八仙堂キャップ
Saturday, April 25, 2009
.emacsのチョー基本設定
.emacsの設定は、OSを再セットアップした時にしか行わないので、毎回検索しては、だれかのサイトにお世話になっている。最低限の設定くらいは自分のブログにメモしておくか。
単にCtrl+hでバックスペースとバックアップファイルを作らない、という設定だけだけど。
(global-set-key "\C-h" 'delete-backward-char)
(setq make-backup-files nil)
単にCtrl+hでバックスペースとバックアップファイルを作らない、という設定だけだけど。
Sunday, April 19, 2009
簡単にHDRを合成 - Qtpfagui
ちょっとHDR(High Dynamic Range)で遊びたくなってフリーなソフトウエアを物色していたところ、Qtpfaguiを見つけた。
ちょこっと使ってみたが、入力としてブラケット撮影した写真をインポートし、あとはパラメータを調整するだけでとっても簡単。
HDRの技術的なテクニックについては分からないが、「とりあえずHDRを試してみたい」という場合には必要十分のような気がする。Qtを使っているのでWindows/Mac/Linuxどれても動作するのもうれしい。
ここでHDRについて簡単に説明すると、普通は白飛びや黒飛びしてしまう写真を合成して以下のような写真にする、というもの。
普通は、照明側に露出をあわせるとビルの下の部分が黒つぶれ、逆にビルの下側にあわせると照明が白つぶれしてしまう。
同じように、下の写真の場合、空か地面かどっちを優先しようか迷うことなく、露出のブラケット撮影さえしておけば以下のような写真を合成することが可能となる。
これから、ブラケット撮影をする機会が多くなりそうだ。
ちょこっと使ってみたが、入力としてブラケット撮影した写真をインポートし、あとはパラメータを調整するだけでとっても簡単。
HDRの技術的なテクニックについては分からないが、「とりあえずHDRを試してみたい」という場合には必要十分のような気がする。Qtを使っているのでWindows/Mac/Linuxどれても動作するのもうれしい。
ここでHDRについて簡単に説明すると、普通は白飛びや黒飛びしてしまう写真を合成して以下のような写真にする、というもの。

同じように、下の写真の場合、空か地面かどっちを優先しようか迷うことなく、露出のブラケット撮影さえしておけば以下のような写真を合成することが可能となる。

Saturday, April 18, 2009
「クルトガ」欲しいかも
Thursday, April 16, 2009
Googleのバグ?
Twitterのmasuiさんのつぶやきで知ったのだが、「完済→関西」「標語→兵庫」とそれぞれ認識してしまうみたいで、「完済」「標語」で検索すると「関西」「兵庫」のページばかり検索されてしまう。
まあ、誰も「完済」「標語」で検索することはないんだろうけど、これはあんまりだなあ。
まあ、誰も「完済」「標語」で検索することはないんだろうけど、これはあんまりだなあ。
Monday, April 13, 2009
[jQuery] 色のアニメーション
最近jQueryで遊んでいるが、jQueryだけでは色を変えるアニメーションはできないようで、jQuery/UIも必要なようだ。あと、CSSっぽくプロパティを指定するのではなく、Camel Styleで指定する必要がある。
- <script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
- <script type="text/javascript" src="js/jquery-ui-1.7.1.custom.min.js"></script> ← これが必要
- <script type="text/javascript">
- $(function() {
- // html中にあるid=fooというdivを500ピクセル四方で黒色にアニメーション
- $("#foo").animate({
- width: "500px",
- height: "500px",
- backgroundColor: "#000000"}, // ここがCamel Style
- 1000);
- });
- });
- </script>
← これが必要
Sunday, April 12, 2009
Saturday, April 11, 2009
プリンター物色の顛末
これまで使ってきたEPSON PM-890Aの調子が悪く、印刷がかすれてしまう。ヘッドクリーニングで直るのだが、再びかすれ始めるまでの間隔が最近はどんどん短くなり、ものすごいフラストレーションに。
というわけで今日は秋葉原でプリンターを物色。せっかく買い換えるのだから自分なりの条件を考えてみた。
しかし、EPSONは現行機でウンザリしていることや、今持っているスペアのインクについてはどうせ互換性がなく、さらに安いとはいえ(約3,000円)両面自動印刷がオプションなので却下。
あとはCanonとHPで迷っていたのだが、いざ決めようとしていた時に、日本で買ったプリンターと海外で買ったインクの組み合わせで動作しないという「プリンターインクのリージョンコード問題」について以前Twitterで読んだことがあるのを思い出した。つまり、上記3の条件で述べた事情から、将来は(近い将来かも)日本に住まない可能性があるため、4つ目の条件が加わったというわけだ。
結局どのメーカーにリージョンコード問題があるのかをその場で思い出すことができず、今日秋葉原で買うことを断念。
自宅に戻ってからネットで調べてみると、リージョンコード問題はHPにあるようだ。というわけで、Canonを買うことに決めたのだが、まだ現行機のインクを新調したばかりなのを思いだし、しばらく現行機をだましだまし使うことに。もー、なにやってんだか。
というわけで今日は秋葉原でプリンターを物色。せっかく買い換えるのだから自分なりの条件を考えてみた。
- 両面印刷が自動でできること: 自分はネットの記事やプログラムのコードを印刷することが多いのだが、紙の節約と扱いやすさで2UP(A4横に2ページ印刷すること)を使っている。最近は印刷する量が本当に多くなってきたので(最近では、これのPDFを全ページ印刷した)、さらなる紙の節約のために自動両面印刷ができる機種を希望。
- 前面に給紙トレイがあること: 今持っているのには後ろにしか給紙トレイがない。自分はA4以外にもL版の写真を多く印刷するので、そのたびに用紙を入れ直さないといけないのは面倒だ。また、後ろの給紙トレイに用紙を入れっぱなしにしておくとホコリがたまるのも気になる。よって、前面に専用の給紙トレイがある機種を希望(L版用のものもある2段前面トレイだとなお良い)。
- メニュー言語を英語へ変えられること: 妻が日本人ではないのでこれは重要な機能だ。さもないと、何かがあるごとに自分が呼ばれることになる。
しかし、EPSONは現行機でウンザリしていることや、今持っているスペアのインクについてはどうせ互換性がなく、さらに安いとはいえ(約3,000円)両面自動印刷がオプションなので却下。
あとはCanonとHPで迷っていたのだが、いざ決めようとしていた時に、日本で買ったプリンターと海外で買ったインクの組み合わせで動作しないという「プリンターインクのリージョンコード問題」について以前Twitterで読んだことがあるのを思い出した。つまり、上記3の条件で述べた事情から、将来は(近い将来かも)日本に住まない可能性があるため、4つ目の条件が加わったというわけだ。
結局どのメーカーにリージョンコード問題があるのかをその場で思い出すことができず、今日秋葉原で買うことを断念。
自宅に戻ってからネットで調べてみると、リージョンコード問題はHPにあるようだ。というわけで、Canonを買うことに決めたのだが、まだ現行機のインクを新調したばかりなのを思いだし、しばらく現行機をだましだまし使うことに。もー、なにやってんだか。
Wednesday, April 01, 2009
[Mac] Deep Sleep
MacでWindowsのHibernationと同等の機能が欲しくなって、探してみるとDeep SleepというDash Board用のツールがあった。
セットアップは単にダウンロードしたファイルを解凍してダブルクリックするだけ。そうするとDash BoardにDeep Sleepが追加され、管理者パスワードを設定してあとは中央のアイコンをクリックするだけでHibernationになってくれる。
これまでは、OSのSleep機能しか使ったおらず、通電しっぱなしだったので気持ち悪かったが、そのストレスが解消した。作者に感謝。
セットアップは単にダウンロードしたファイルを解凍してダブルクリックするだけ。そうするとDash BoardにDeep Sleepが追加され、管理者パスワードを設定してあとは中央のアイコンをクリックするだけでHibernationになってくれる。
これまでは、OSのSleep機能しか使ったおらず、通電しっぱなしだったので気持ち悪かったが、そのストレスが解消した。作者に感謝。
Monday, March 23, 2009
Wednesday, March 11, 2009
とうとうポメラを購入
去年さんざん迷った末に今まで購入を見合わせていたポメラ(白)を購入した。今いろいろイジって遊び中...

英語キーボードではないとか、ControlとCaps Lockを入れ替えられないとか、Emacsキーバインドじゃあないとか、いろいろ不満はあるものの、こういった製品は今これしかないことからすると仕方ないか。
とはいえ、前にも書いたとおり「良い割り切り」で本当に良い製品だと思う。

英語キーボードではないとか、ControlとCaps Lockを入れ替えられないとか、Emacsキーバインドじゃあないとか、いろいろ不満はあるものの、こういった製品は今これしかないことからすると仕方ないか。
とはいえ、前にも書いたとおり「良い割り切り」で本当に良い製品だと思う。
Python: zipサイコー
プログラムを書いていると、一つのループで複数のコンテナ型(配列やリスト)にアクセスしたいときがある。これまでは整数でループを回して、その整数を使って添え字アクセスをしていた。しかし、Pythonでzipを使えばもっとスマートになることが分かった。
こんな感じで簡単に使えるなんて、やっぱりPythonサイコー。
- a_list = ['a', 'b', 'c', 'd', 'e']
- b_list = ['A', 'B', 'C', 'D', 'E']
- zipped = zip(a_list, b_list)
- for x, y in zipped:
- print x, y # a, Aという組み合わせでe, Eまで表示される
a_list = ['a', 'b', 'c', 'd', 'e']
b_list = ['A', 'B', 'C', 'D', 'E']
zipped = zip(a_list, b_list)
for x, y in zipped:
print x, y # a, Aという組み合わせでe, Eまで表示される
こんな感じで簡単に使えるなんて、やっぱりPythonサイコー。
Saturday, March 07, 2009
Django: objects.get_or_create()
DjangoのModelを最近使っている。Modelでunique属性を有効にした場合、同じ属性を持つレコードをsave()するとIntegrityErrorが帰ってくるので、これまではこれをキャッチしてobjects.get()を実行し、最終的にインスタンスを取得していた。しかし、これだと一つのレコードで4,5行位は使ってしまう。
いろいろ調べてみると、objects.get_or_create()という関数があり、これはレコードが存在していれば取得し、無ければ作成する、というもの。これだと1行で簡単に上に書いた処理を実行することができる。
Django本のP.142のサンプルでは、この関数の戻り値が1つ(インスタンス)という記述になっているが、その後(インスタンス、レコード作成のTrue/False)という2つの戻り値に変更になっているようだ。
Djangoはすばらしいのだが、ネットや書籍の情報を見るときには、1.0対応かどうかを意識する必要がある。
いろいろ調べてみると、objects.get_or_create()という関数があり、これはレコードが存在していれば取得し、無ければ作成する、というもの。これだと1行で簡単に上に書いた処理を実行することができる。
Django本のP.142のサンプルでは、この関数の戻り値が1つ(インスタンス)という記述になっているが、その後(インスタンス、レコード作成のTrue/False)という2つの戻り値に変更になっているようだ。
Djangoはすばらしいのだが、ネットや書籍の情報を見るときには、1.0対応かどうかを意識する必要がある。
Saturday, February 28, 2009
昆布だし
妻が北海道旅行のお土産として知り合いから乾燥した利尻昆布をもらってきた。しかし、これまで顆粒の「だし」しか使ったことのない自分は、どうやってとればよいのかが分からない。そこでWebで調べてみると、おおむね以下のようなことらしい。
料理にそのまま入れっぱなしにして、長時間たてばたつほど「だし」が出るというものではないらしい。勉強になった。
- 鍋にだし昆布と水を入れて30分以上つけておく(可能ならば一晩)
- そのまま火にかけ、沸騰直前に昆布を取り出す
料理にそのまま入れっぱなしにして、長時間たてばたつほど「だし」が出るというものではないらしい。勉強になった。
Saturday, February 14, 2009
Ultimate Windows Tweaker
新しいPCを買って不満なのがOSだ。バンドルされてきたのはWindows Vistaなのだが、XPと比較して起動・終了がとても遅く、明らかにデグレードをしている。
色々レジストリをいじれば早くなるであろうということは分かっているのだが、そんな「環境設定」に時間を掛けられるほど自分はヒマではない。さらに言うと、何も新しいものを生み出さない環境設定やOSのセットアップに時間を掛けることは、バカバカしいとすら思っている。
そんなこんなでデフォルト状態でずっとVistaを使ってきたが、Life Hackerに「Ultimate Windows Tweaker」の記事が。

これは、レジストリの操作が必要なカスタマイズ項目をGUIで提供してくれるというもの。早速使ってみると、5分もしないで自分好みに設定ができ、スピードも速くなった。作者には本当に感謝。
色々レジストリをいじれば早くなるであろうということは分かっているのだが、そんな「環境設定」に時間を掛けられるほど自分はヒマではない。さらに言うと、何も新しいものを生み出さない環境設定やOSのセットアップに時間を掛けることは、バカバカしいとすら思っている。
そんなこんなでデフォルト状態でずっとVistaを使ってきたが、Life Hackerに「Ultimate Windows Tweaker」の記事が。

これは、レジストリの操作が必要なカスタマイズ項目をGUIで提供してくれるというもの。早速使ってみると、5分もしないで自分好みに設定ができ、スピードも速くなった。作者には本当に感謝。
Thursday, February 12, 2009
Firefox Plugin - Hide Menubar
これまで使っていたThinkPax X40に変えて、新しいHPのノートPCを買った。今、ワイド画面を満喫しているところだが、この横幅に慣れてしまうと、もっと縦幅が欲しくなる。
特にWebブラウザでは顕著だ。そこでFirefoxのPluginを調べてみたところ、Hide Menubarというプラグインが。
単にメニューバーが消えるだけなのだが、これだけでも相当縦幅が長くなった気がする。
メニューが欲しければAltキーを押すだけだし、ブックマークのロードなどのメニュー操作はいつもキーボードを使っているのでまったく問題ない。
また、新しく常用するプラグインが増えた。
特にWebブラウザでは顕著だ。そこでFirefoxのPluginを調べてみたところ、Hide Menubarというプラグインが。
単にメニューバーが消えるだけなのだが、これだけでも相当縦幅が長くなった気がする。
メニューが欲しければAltキーを押すだけだし、ブックマークのロードなどのメニュー操作はいつもキーボードを使っているのでまったく問題ない。
また、新しく常用するプラグインが増えた。
Wednesday, February 11, 2009
Django雑感
最近、Djangoを使いはじめた。自分なりに色々触ってみての雑感は以下だ。
これまでは、PHP + SMARTYやPythonでもmod_python + Cheetahという組み合わせを使っていたので、新たに作ったViewのためのファイルはそのまま使うことができたが、ちょっと勝手が違う。
つまり、ApacheのDocumentRootに置いたものはすべて閲覧/実行可能で適宜.htaccessで制限を掛ける、に対して、Djangoではデフォルトで何も閲覧できない状態で、公開するものをその都度設定する、という逆の発想なのだ。セキュリティを考えるとこちらの方が望ましいのだろう。
しかし、自分はアップロードした画像をファイルとして保存して扱うアプリケーションを書くことが多いので、ロジック中でMEDIA_ROOTを使い、Viewへ渡すときにMEDIA_URLベースに変更という作業が毎回発生して少しウザイ。
また、MEDIA_ROOT内の特定のフォルダを相対パスで指定してglobでトラバースした結果が空になるという動作には、本当にまいった(MEDIA_ROOTを使って絶対パスを使用すれば問題ない)。これで5時間ハマった。
まあ、これは画像もModel化してDBへ保存しろという神の思し召しかもしれない。
いろいろ書いたが、Django固有のAPIさえ頭に入れれば、快適快適。もう少し早く使い始めたかったと後悔しているくらいだ。
- 設定ファイルをいろいろいじらないといけない
これまでは、PHP + SMARTYやPythonでもmod_python + Cheetahという組み合わせを使っていたので、新たに作ったViewのためのファイルはそのまま使うことができたが、ちょっと勝手が違う。
つまり、ApacheのDocumentRootに置いたものはすべて閲覧/実行可能で適宜.htaccessで制限を掛ける、に対して、Djangoではデフォルトで何も閲覧できない状態で、公開するものをその都度設定する、という逆の発想なのだ。セキュリティを考えるとこちらの方が望ましいのだろう。
- O/Rマッパーやフォームの自動生成
- settings.pyのフルパス記述の強要
しかし、自分はアップロードした画像をファイルとして保存して扱うアプリケーションを書くことが多いので、ロジック中でMEDIA_ROOTを使い、Viewへ渡すときにMEDIA_URLベースに変更という作業が毎回発生して少しウザイ。
また、MEDIA_ROOT内の特定のフォルダを相対パスで指定してglobでトラバースした結果が空になるという動作には、本当にまいった(MEDIA_ROOTを使って絶対パスを使用すれば問題ない)。これで5時間ハマった。
まあ、これは画像もModel化してDBへ保存しろという神の思し召しかもしれない。
いろいろ書いたが、Django固有のAPIさえ頭に入れれば、快適快適。もう少し早く使い始めたかったと後悔しているくらいだ。
Saturday, January 31, 2009
SQLite管理ソフトウエア
最近でSQLiteをよく使うのだが、扱うデータやテーブルが増えてきたのでGUIの管理ソフトウエアを使いたくなった。ググッて見つけたのがPupSQLite。なかなか使いやすい。
とはいえ、最初の一つで決めてしまうと比較ができないので、sqlite-managerも試してみるか。FirefoxのAdd-onとして動くというのが面白い。
こういったソフトウエアにはお世話になりっぱなしで、作者たちには本当に感謝している。
とはいえ、最初の一つで決めてしまうと比較ができないので、sqlite-managerも試してみるか。FirefoxのAdd-onとして動くというのが面白い。
こういったソフトウエアにはお世話になりっぱなしで、作者たちには本当に感謝している。
Saturday, January 24, 2009
Firefoxのフォームのフォントが汚い件について
ブラウザとしてFirefoxを常用しているが、以前からオプションのフォントをいくら変更してもフォームのフォントが汚いのが気になっていた。色々調べたところ、StylishというAdd-onをインストールし、以下のエントリを追加すれば良いことがわかった。
input, select, optgroup {font-family:sans-serif;}
これでまた使い勝手が良くなった。
これでまた使い勝手が良くなった。
Subscribe to:
Posts (Atom)