2007年12月31日月曜日

YouTubeが変えるアメリカ大統領選

YouTubeは以前では想像もつかなかった形で政治と大統領選に影響を及ぼしている。

たとえば、06年の中間選挙でジョージ・アレン元上院議員が落選したのは、対立候補のインド系運動員を「猿」呼ばわりする映像がネット上に流れたのが原因だった。07年には、大統領選の討論会をYouTubeとCNNが共催している。また、マイク・ハッカビー前アーカンソー知事とアクション俳優のチャック・ノリスの「ハックチャックファクツ」のように、候補者もYouTubeをうまく利用するようになっている。

YouTubeの政治ディレクターをつとめるグローブは、「YouTubeに動画が載っていない候補者は、討論に参加していないのと同じ」と言う。

--ニューズウィーク日本語版より

ラッツはGMを救えるか?

ゼネラ ル・モーターズ(GM)の副会長ボブ・ラッツが、電気自動車シボレー・ボルトの開発を推進している。

ラッ ツは、巨大なエンジンを積んだスポーツカー、ダッジ・バイパーや1000馬力の怪力キャデラックの生みの親。ガソリンを喰うスポーツカーに目がないこ とで知られている。かつて、トヨタ自動車のハイブリッド車プリウスを宣伝の道具と切り捨てたものの、今ではそれが間違いだったと認めている。今でも速い車 (それと週末に飛ばす戦闘機)が好きなことに変わりはないが、75歳にして環境保護派に転向しようとしている。

ラッツが開発を推進しているボルトは、家庭用電源でも充電できるプラグイン式の電気自動車で、1回の充電で64キロ走る。2010年の生産開始を目指し、 急ピッチで準備が進んでいる。

--ニューズウィーク日本語版より

iPhone/iPod touchのサスペンド/レジュームイベント

iPod touchにはサスペンド機能がある。アプリケーションが動いている時にサスペンドすると、動作中のアプリケーションはそのまま動き続ける。アプリケー ションによってはサスペンド中に動き続けるのは無駄なので、サスペンドしている間だけそのアプリケーションを止めるようにしてみた。


サスペンドする直前には、
-[UIApplication applicationWillSuspend]

が呼ばれる。サスペンドの直前に呼ばれるメソッドがあるならサスペンドから復帰した直後に呼ばれるメソッドもあるはず、と思ってUIApplication.hを見てみた。それっぽいのを探していると、
-[UIApplication applicationDidResume]

と いうイベントを発見。さっそく-[UIApplication applicationWillSuspend]でアプリを止めて、-[UIApplication applicationDidResume]で再開するコードを書いてみた。ところが、なぜか-[UIApplication applicationDidResume]が呼ばれない。

理由が分からないので、他に同じようなメソッドはないかとUIApplication.hを探してみると、すぐ近くに
-[UIApplication applicationDidResumeFromUnderLock]

というイベントがあった。
-[UIApplication applicationDidResume]の代わりにこちらを使うと、今度はちゃんと動作。sloginしてtopコマンドで見てみると、ちゃんとサスペンド中はアプリケーションのCPU使用率が0.0%になっていた。すばらしい。


まとめ:

-[UIApplication applicationWillSuspend]
-[UIApplication applicationDidResumeFromUnderLock]を使うことで、
サスペンド中のアプリケーションの挙動を制御できる。

-[UIApplication applicationDidResume]
-[UIApplication applicationDidResumeFromUnderLock]の違いは何?
設定でロックをかけているかどうかで呼ばれるメソッドが異なるのだろうか?
試してみよう。

NFS

UNIXシステムで利用されるファイル共有システム。Sun Microsystems社によって開発され、UNIX系OSにおける標準的な分散ファイルシステムとなっている。NFSを使うと離れた場所にあるコンピュータのファイルを、あたかも自分のコンピュータにあるファイルのように操作することができる。ファイルを他のコンピュータに提供するコンピュータをNFSサーバ、他のコンピュータにあるファイルを利用するコンピュータをNFSクライアントという。UNIX以外のプラットフォームからも利用することができる。

NIS

ネットワーク・インフォメーション・サービス(Network Information Service、NIS)

サン・マイクロシステムズにより開発された、ネットワーク上のコンピュータ間でユーザのアカウント情報やホスト名の情報などを共有し、配布するためのシステムである。

MySQLでの権限設定

MySQLでの権限設定。
GRANT ALL ON database.* TO 'user'@'xxx.xxx.xxx.xxx' IDENTIFIED BY 'password' WITH GRANT OPTION;

xxx.xxx.xxx.xxxuserが、databaseのすべてのテーブルに対して、すべての操作ができることを認める。そのときのパスワードをpasswordにする。

大阪はアジアっぽい

連休で大阪に帰った。
5月以来の大阪。
めっちゃ人が多い!
雰囲気がアジアっぽいと思った。
いや、アジアやねんけどね。大阪も東京も。
なんか違うのですよ。

Quartzで描画するときの基本的な手順

Quartzで描画するときの基本的な手順:
1.パスを開始する
2.パスを追加する
3.グラフィックステートを指定する
4.パスを描画する

グラフィックステートが異なる描画をしたいときは、別のパスとして扱わなければいけない。

たとえば、同じ色の四角を2つ描きたいときは1つのパスでよいが、異なる色の四角を2つ描きたいときは2つの別々のパスとして扱わなければいけない。

むぅ。

UIView

iPhone / iPod touchで図形を描画するにはどうしたらいいの?
調べてみると、NSViewと同じ感じでUIViewを使えばよいみたい。
CocoaDevにクラスインターフェイスが書かれていたので、翻訳。
http://www.cocoadev.com/index.pl?UIView

UIView
iPhone UIKit frameworkの一部。UIResponderのサブクラス。なので、NSViewにとてもよく似ている。

- (id)initWithFrame:(CGRect)rect;

 ⇒Designated initializer.

- (void)addSubview:(UIView*)view;

- (void)drawRect:(CGRect)rect;

 ⇒UIGraphicsContextクラスはないみたい?なので、CoreGraphicsを使おう。
  CG関数の呼び出しにはCGContextRefが必要のはず。
  以下でCGContextRefを取得できる。

    CGContextRef UICurrentContext();

- (void)setNeedsDisplay;

- (void)setNeedsDisplayInRect:(CGRect)rect;

- (CGRect)frame;

- (CGRect)bounds;

- (void)setTapDelegate:(id)delegate;

 ⇒tapデリゲートをセットする。下にデリゲートメソッドの詳細がある。

swiping!  

    typedef enum
    {
     kUIViewSwipeUp = 1,
     kUIViewSwipeDown = 2,
     kUIViewSwipeLeft = 4,
     kUIViewSwipeRight = 8
    } UIViewSwipeDirection;

- (BOOL)canHandleSwipes;

- (int)swipe:(UIViewSwipeDirection?)num withEvent:(GSEvent*)event;

Tap delegate methods

view:handleTapWithCount:event:

view:handleTapWithCount:event:fingerCount:

viewHandleTouchPause:isDown:

viewDoubleTapDelay:

viewRejectAsTapThrehold:

viewTouchPauseThreshold:

UIKit

iPhone/iPod touchには、「UIKit」というフレームワークが用意されているみたい。

UIKitは従来のOSXのAppKitに相当する。UIKitのクラスはAppKitにあるクラスとよく似ていて、AppKitではNS***という名称のクラスがUIKitではUI***という名称になっている。

面接

面接をした。面接を受けたのではなく、面接員の側。

「PHPでの作業とうかがっています」か・・・
そりゃそうか。経験ないことを「やります」というのは無責任か?

「***はやったことがないですが、ライブラリはリファレンスを見ながら、という形でよければ」みたいな発想が欲しい。


現状の把握から始めるべきやね。
話が行き違っているはずなので。


それにしても、1回言ったことを1回言うことができない。
頭の中で全体像ができあがっているから、どこから言えばいいかわからない。
逆に、1回目は全体像がないので、思ったことを順番に言っていける。

東海道新幹線、全列車が品川・新横浜に停車 ダイヤ改定

東海道新幹線、全列車が品川・新横浜に停車 ダイヤ改定
http://www.asahi.com/national/update/1220/TKY200712200316.html?ref=rss

JRグループは20日、08年3月15日付のダイヤ改定を発表した。東海道新幹線はすべての列車が品川、新横浜両駅に止まるようになる。


えー

さくさく動くオンラインスプレッドシートはない?

Google Spreadsheetはもっさりしててちょっと・・・
もっとさくさく動くオンラインスプレッドシートはない?

OnSheet・・・うーん
Zoho Sheet・・・キーリピートしない!

もすこし様子を見ます。

google site map作成ツール

google site map作成ツール
http://www.sitemapbuilder.net/default.aspx

ieではTBODYを省略できない

ieではTBODYを省略できない
firefox, safari では省略できる。

Mochikit, Safari, zipとrange

zip( range(2), [0,1])
Safariでは動かない
こうすると動く
zip( list( range( 2 ), [ 0, 1] )

Firefoxだと[ [0,0], [1,1] ]が返る

javascript 辞書の最後の要素の後の","

javascript 辞書の最後の要素の後の","について。

firefoxでは、pythonと同様にオプション扱い。付けても問題ない。

ie, safariでは、付けるとエラー。

例:
{ 'a': 1, 'b': 2, }

javascript parseIntの罠

  1. parseInt("08")       // => 0
  2. parseInt("09")       // => 9

parseIntは第二引数がないとき、何進数で解釈するかを自動で選ぶ。
なので、1.では8進数と解釈されて0が返る。

回避するには、以下のように、10進数と指定する。
parseInt("08", 10)         // => 8

Internet Explorerでの文字列のスライシング

str = "abcde"
の中の要素にアクセスするとき、
ieではstr[ 0 ]と書くことができない。
firefox, safariでは、str[0] is "a"でできるのに・・・

これはひどい。
回避するためには、str.substr(0,1)のように書く

MochiKitとjQueryを併用するために

以下がコンフリクトしてしまう。
  • MochiKit.DOM.$
  • jQuery.$

コンフリクト回避のためにjQuery.noConflict()という関数が用意されているが、なぜか上手くいかない。IEだけ?

コンフリクトを回避するために、自前で
$ = MochiKit.DOM.$
とした。

TextMateまめ知識その2

TextMateのまめ知識。

cmd+"["でインデント。
cmd+"]"でアンインデント。

xcodeと同じようにできます。

TextMateまめ知識その1

TextMateのまめ知識。

javascriptモードで、"/"と入力してcmd+enterで、"// "を補完してくれます。

ネタのストック

pythonでメールを読むには: poplib
pythonでORM: sqlobject
- 日本語
- ?charset=utf8&sqlobject_encoding=utf-8
- mysqldb

ez_install? ez_setup?
- install-dir
- prefix
- bin/easy_install --install-dir=/home/kamonama/lib/python --prefix=/home/kamonma -U xxx

さくらインターネットにpythonモジュールを入れる方法

javascriptの継承

javascript delete
appleのjavascript basicsを参照

Erlang インストール ガイド

プログラミング言語 Erlang のインストールの仕方をご説明します。

1.ダウンロード
2.インストール
3.動作確認

なお、以下はすべてPowerBookG4 (Mac OSX 10.4.9) で試しました。


1.ダウンロード



http://www.erlang.org/download.htmlにアクセスします。
Sourceのdownloadをクリックして、ファイルをダウンロードします。


ダウンロードしたファイルを展開します。
$ gunzip -c otp_src_R11B-0.tar.gz | tar xf -



2.インストール



カレントディレクトリを変更して、1.で展開したディレクトリにします。
$ cd opt_src_R11B-0



Makeの準備をします。
$ ./configure

"$ ./configure --prefix=<Dir>"とすることで、インストール先を<Dir>に変更できます。
デフォルトでは、以下にインストールされます:
/usr/local/bin
/usr/local/lib/erlang
/usr/local/man/man1


Makeしてインストールします。
$ make
$ make install



以上で、Erlangがインストールされます。
基本的には、これだけで大丈夫だと思います。
さらに詳しく知りたい方は、ErlangのREADMEをご覧下さい。


3.動作確認



きちんとインストールできていれば、"erl"で対話型のErlangを起動できるはずです。
$ erl
Erlang (BEAM) emulator version 5.5.4 [source] [async-threads:0] [hipe] [kernel-poll:false]
Eshell V5.5.4 (abort with ^G)
1>

HTTP 1.1 OPTIONSメソッド

HTTP 1.1には、OPTIONSというメソッドがあるみたい。

他に、
 GET
 HEAD
 POST
 PUT
 DELETE
 OPTIONS
 TRACE
 CONNECT
 PATCH
 LINK, UNLINK

GET, HEAD, POST, DELETEは知ってたけど、他にもこんなにあるんか。
なにに使うん?

ちなみに、OPTIONSはMicrosoft Officeから飛んできました。