ラベル Geeks の投稿を表示しています。 すべての投稿を表示
ラベル Geeks の投稿を表示しています。 すべての投稿を表示

2011年3月26日土曜日

Herokuを使ってみた

ひさしぶり。

http://www.heroku.com/

Railsアプリを走らせることができるクラウドアプリケーションプラットフォーム (PaaS)。
Google AppEngineのRails版のイメージ。
AppEngineは将来的に自分のサーバでアプリを実行させようと思っても、
実行環境がGoogle様にしかないので、あんまり興味なかった。
でも、herokuなら普通のRailsなので、その気になったら自前サーバに移行できる。

パフォーマンスは、簡単なDBを参照して結果をjsonで返すAPIを作って実行してみたところ、
1 dyno、0 workerで、(つまり最小構成で)、20 qpsでした。
仮に 5 dynosと5 workers買ったら、月324ドル。
占有サーバ1台と同じくらいの値段。魅力的だ。

ログは月に100ドルを払っても 20k lineまでしか記録できないので、
ないものと思った方が良さそうだ。PaaSはこれが難点だよなぁ。
素敵な運用方法がないかしら。

Bundlesという仕組みがあって、アプリやDBをまとめて一つのファイルにバックアップとってくれる機能もある。
heroku内に無料で2つまでしか保持できないが、downloadができるので、
backup → download → destroy を繰り返すといった、運用になるのかな。

こちら
に上記のようなbackupのrakeタスクの例がありました。

ところでBundlesの中身って普通にみえるものなのかしら。少しググったけど分からなかった。
チャンスがあれば、今度のぞいてみます。

2009年1月26日月曜日

Error validating server certificate in svn over https with Redmine

サーバ証明書を受け入れるよう、手動で設定すると回避できます。

http://www.redmine.org/wiki/redmine/FAQ#I-cant-browse-my-svn-repository-through-redmine

RedmineをRoRで動かしているユーザ権限で(As the user who runs Redmine RoR):


$ mkdir -p ~/.subversion
$ svn --config-dir ~/.subversion co https://svn.mydomain.com/project/trunk delete-me
$ rm delete-me

2009年1月21日水曜日

FC4: yum: Cannot find a valid baseurl

古いFedora Coreで以下のようなエラーがでて、yumが利用できない。私の場合は、ひさしぶりにFC4のデスクトップでyum updateしようとしてみたら、発生しました。

# yum update
Setting up Update Process
Setting up repositories
Cannot find a valid baseurl for repo: updates-released
Error: Cannot find a valid baseurl for repo: updates-released

これは公式サイトがもう古いパッケージをメンテナンスしていないのが原因です。なので、/etc/yum.repos.d内にある.repoファイル内のURLを、今でもパッケージを置いておいてくれるサーバに設定すると、とりあえずエラーが直ります。

例えば:

baseurl=ftp://ftp.kddilabs.jp/Linux/packages/fedora.legacy/fedora/$releasever/os/$basearch/

パッケージが古くて更新されていないことには変わりないので、より新しいdistributionを使うようにしましょう

2008年11月22日土曜日

2008年11月11日火曜日

chumby cross compile

chumbyのcross compile環境を構築する。

x86 Linuxを使っているなら、バイナリパッケージが公開されているので、以下を参照しよう。

http://wiki.chumby.com/mediawiki/index.php/GNU_Toolchain

簡単過ぎです。


試しにopensslをコンパイルしてみる。

$ wget http://files.chumby.com/source/ironforge/build733/openssl-0.9.7l.tar.gz
$ tar xvzf openssl-0.9.7l.tar.gz
$ ./Configure --prefix=/usr/arm-linux linux-elf-arm
$ make CC=arm-linux-gcc RANLIB=arm-linux-ranlib AR="arm-linux-ar r"
$ sudo make install

これで、あれを、chumbyに載せることができる!

2008年7月30日水曜日

svnでキーワード置換

svnでも$Id$って使えたのね。勉強になった。

http://ukai.jp/Articles/2003/uu-svn/

2008年6月30日月曜日

How to change the Product ID in Microsoft Office 2008 for Mac

Microsoft Office 2008 for Macでプロダクトキーの再入力

プロダクトキーの情報が入っている設定ファイルを消して、オフィスを起動するとプロダクトキー入力ウィンドウがでてきます。

ターミナルにて:
% rm /Applications/Microsoft\ Office\ 2008/Office/OfficePID.plist

2008年6月19日木曜日

MacBookAir 足りない

80GBのディスクがもうあふれそう。せめて120GB欲しい...
1.8インチの5mm厚のHDDで大容量のものがでたらチェック。

http://ascii.jp/elem/000/000/114/114152/

2008年6月4日水曜日

rails openid 2.0

OpenID2.0な昨今、ruby-openidやopenid_login_generatorはそのままでは使えず、OpenID2.0ライブラリに合わせて修正してやる必要がある。

参考:OpenIDライブラリの導入とかrailsでopenid試してみる。 openid_login_generatorでやってみたとか。

2008年6月3日火曜日

古いバージョンのrailsを使う

古いバージョンのgem自体は、gem cleanupしない限りは残る。


$ gem list rails

*** LOCAL GEMS ***

rails (2.0.2, 1.2.6)


次のように、第一引数でバージョンを渡してあげると、使用するバージョンを特定できる。


$ rails _1.2.6_ --version
Rails 1.2.6



(追記 2008.11.6)
ちなみに、インストールは次のようにバージョンを指定する。


gem install rails --include-dependencies --version '= 1.2.6'

2008年5月18日日曜日

my MacBook Air often crashed

MacBook Airが、よく刺さるのは私だけでしょうか。。

一日3,4回ささるので、そろそろジーニアスバーに行こうかと
思います。


エラーメッセージはこんなの ↓

panic(cpu 1 caller 0x00192EE1): "pmap_flush_tlbs() timeout: " "cpu 0
failing to respond to interrupts, pmap=0x534500 cpus_to_signal=1"@/
SourceCache/xnu/xnu-1228.4.31/osfmk/i386/pmap.c:4570

追記:
CPUのコアがひとつ死んでいてみたいです。アクティビティモニタの下のほうにあるCPU活動率をみるとわかるよ。

2008年4月17日木曜日

Nokia N95がsoftbankから

実はiphoneより使えるN95がソフトバンクから!

http://mb.softbank.jp/mb/product/X/x02nk/index.html

出たら買おう (^^)

2008年3月8日土曜日

iphone sdk

これは、すごい!
iモードもニンテンドーDSも食われちゃうぞ。
Xcode使いでよかった。

http://developer.apple.com/iphone/program/

2007年7月6日金曜日

Bluetooth A2DP profile on MacOSX Tiger with Jack Audio

http://blog.david.connolly.name/2007/06/stereo-bluetooth-profile-a2dp-on-mac-os.html を参考にしました。

1. Bluetooth 設定アシスタント 等で、ヘッドセットをMacとペアリングする。このとき、ヘッドセットのMACアドレスを控えておく。ここでは、11-22-33-44-55-66とする。

2. Jack OSXを[1]からダウンロードし、インストールする。

3. システム環境設定 > ユニバーサルアクセス > 画面表示タブ の下にある 「補助装置を使用可能にする」を有効にする。

4. Audio Midi 設定ユーティリティを実行し、メニューバー > オーディオ > 機器セットエディアを開く。「コンピュータに対して機器セットを追加または削除する」で「+」をクリックする。すると、”機器セット”が追加されるが、名前を変更する。日本語を使わうと、Jack OSXが発狂するので。1byte文字しか扱えないみたい。ここでは、"Aggregate Device"と名前をつけ直したとする。「構成」で、内蔵入力および内出力、ヘッドセットの入力、ヘッドセットの出力の4つの「使用」チェックボックスをクリックし、有効にする。

5. Jack OSX Autostart versionを[1]からダウンロードし、"autostart jackosx"をアプリケーションフォルダ等にコピーする。

6. "autostart jackosx"をクリックし、JackPilotをスタートする。

7. システム環境設定 > サウンド > 出力および入力 タブで、Jack Routerを選ぶ。

8. a2dpcastを[2]からダウンロードする。展開して、a2pdcastを/usr/local/bin/にコピーする。

9. ターミナルで以下を実行
% /usr/local/bin/a2dpcast 11-22-33-44-55-66

10. iTunes (その他A2DPで利用したいアプリ) を実行する。

11. JackPilotに戻り、routingボタンをクリックする。"Send Ports"でiTunesのout1 or out2を選び、"Receive Ports"のa2dpcastのin1 or in2をダブルクリックしてバインドする。

12. iTunesに戻り、再生をする。

音はなるが、結構音飛びしてしまいます。。なんでだろう。

[1] http://www.jackosx.com/
[2] http://www.coolatoola.com/a2dpcast.zip

2007年6月28日木曜日

好きこそものの上手なれ の仕組み

扁桃体が「好き」と判断すると、脳が活性化されます。「好きこそものの上手なれ」といいますが、好きという情動で脳が活性化されるのですから、それだけ学習の効果も高まるというわけなのです。(子供の科学2007年7月号, 誠文堂新光社)


科学的に真なのですね。

2007年5月28日月曜日

flickrで遊ぼう

Flickrに載せている画像のサムネールを自分のホームページに載せたいと思い、そのやり方を探していたら、丁寧に解説してくれているページを発見。多謝。

http://itpro.nikkeibp.co.jp/article/COLUMN/20061101/252356/

2007年5月23日水曜日

blockingしちゃう関数の扱い方

delegateが用意されているものならそれを使えばいいけど、そうじゃないときは、threadで該当関数を走らせて、その終了を拾うまでsleepさせる方法をとる。


endRunLoop = NO;



[NSThread detachNewThreadSelector: @selector(aThreadRoutine:) toTarget:[MyClass class] withObject:nil];

double resolution = 1.0;
BOOL isRunning;
endRunLoop = NO;

do {
NSDate* next = [NSDate dateWithTimeIntervalSinceNow:resolution];
isRunning = [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:next];
} while (isRunning && !endRunLoop);



+ (void) aThreadRoutine:(id)anObject
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

// blocking operation here

endRunLoop = YES;

[pool release];
[NSThread exit];
}


別に正しい方法があったらごめん。

2007年5月11日金曜日

自前Modal Window

警告パネルを表示して、ユーザからなにかしらの入力を待ち、それによってプログラムの振る舞いを変えたいことがある。例えば、ファイヤウォールのようなアプリケーションを作成して、あるサイトからのアクセスがあった場合に、そのサイトからのアクセスを許可するかどうかをユーザに訪ねる場合だ。

このとき、NSAlertではなく、NSWindowやNSPanelを拡張して自前のクラスを用意した場合に、ユーザの入力を待ちつつ自前クラスの処理を平行して行いたいのだが、どうやってユーザの入力を待つかがむずかしい。なぜならば、単純にwhileとsleepでまわすと、そのRunLoop内のすべての処理をblockしてしまうから。

解決方法は、そのクラスをmodalSessionにして、必要な処理はタイマで回す。その際、タイマは、NSModalPanelRunModeにも追加しておく。

(NSWindowを継承したクラス内)
--- init method

timer = [NSTimer timerWithTimeInterval:0.05 target:self selector:@selector(alertWindowAppear) userInfo:nil repeats: NO];
[[NSRunLoop currentRunLoop] addTimer:timer forMode:NSDefaultRunLoopMode];
[[NSRunLoop currentRunLoop] addTimer:timer forMode:NSModalPanelRunLoopMode];

--- modal method
NSModalSession session = [NSApp beginModalSessionForWindow:self];
int modalResult;
do {
modalResult = [NSApp runModalSession:session];
if (modalResult == NSOKButton) {
[NSApp abortModal];
[NSApp endModalSession:session];

// related processing here

} else if (modalResult == NSCancelButton) {
[NSApp abortModal];
[NSApp endModalSession:session];

// related processing here

}
} while (modalResult == NSRunContinuesResponse);

2007年5月10日木曜日

performCloseで消したWindowの再表示

NSWindowのorderFrontを呼び出すと、performCloseで消したWindowを再表示できる。

例えば、 MainMenuのWindowに一度消したWindowの再表示メニューを作りたい場合は、Interface Builderで適当に項目を作り、そこからWindowのInstanceにコントロール&ドラッグして、orderFrontに Connectしてやればいい。

2007年4月25日水曜日

mouse eventの拾い方

mouseDown等のeventを拾うためには、TackingRectを追加する必要がある。
例えば、selfがNSWindowの場合は以下の通り。

[[self contentView] addTrackingRect:screen owner:self userData:nil assumeInside:NO];

NSWindow NSResponder