teppeilog

ちょっとずつエンジンかかってきた

Archive for the ‘プログラミング’ Category

SinatraはPUTメソッドによるファイルアップロードは対応していない

leave a comment

タイトル通り。凄くハマりました。

PUTでおくるとqueryにreq.bodyで送ったデータがすべて展開されて突っ込まれます。そしてファイルサイズが大きいデータだと展開しきれず落ちます。

POSTメソッドだとparamsからデータを取得できます。

このエントリーをはてなブックマークに追加
はてなブックマーク - SinatraはPUTメソッドによるファイルアップロードは対応していない
Share on Facebook

Written by teppei

10月 24th, 2009 at 5:20 pm

Posted in プログラミング

Tagged with ,

forkしたプロセスをProcess.kill()するとdefunctが残る

leave a comment

とあるシステムで親プログラムからforkで子プログラムを起動させ、頃合いをみて親プロセスがその子プロセスをkillするという処理を実装した。しかしpsコマンドでプロセスの状態を確認すると、子プロセスで動作させたと思われるプログラムが

defunct ..
defunct ..
defunct ..

と残りまくり。これは何かと訪ねたら調べてたら、どうやら親プロセスでforkして子プロセスを起動すると、親にてProcess.waitを呼ばないとゾンビ(defunct)になってしまうとのこと。

これを回避するには子プロセスに対してProcess.detachを行ってから、Process.killを行う。

例えば

pid = fork do
  何か処理
end

Process.detach(pid)
Process.kill(:INT, pid)

な感じ。

このエントリーをはてなブックマークに追加
はてなブックマーク - forkしたプロセスをProcess.kill()するとdefunctが残る
Share on Facebook

Written by teppei

9月 30th, 2009 at 1:54 am

Posted in プログラミング

Tagged with

バッチファイルでまとめてregsvr32

leave a comment

DirectShowのフィルタ(*.ax)などをレジストリに登録するためのコマンド regsvr32。
同じディレクトリに含まれている対象ファイルを一気に登録しちゃおうっていうバッチファイルは以下の通り。

@echo off
for %%a in (*.ax) do set X=%%a&call :sub
goto :eof
:sub
regsvr32 %X%

バッチってあまりつかわないけど、奥が深い。

このエントリーをはてなブックマークに追加
はてなブックマーク - バッチファイルでまとめてregsvr32
Share on Facebook

Written by teppei

7月 10th, 2009 at 7:53 pm

Cocoaアプリケーションの自動アップデートフレームワーク

leave a comment

毎回vixyで使おうと思って忘れているからメモ。

SparkleというCocoaアプリケーションで自動アップデート機能を提供するためのフレームワーク。ライセンスはMIT。

このエントリーをはてなブックマークに追加
はてなブックマーク - Cocoaアプリケーションの自動アップデートフレームワーク
Share on Facebook

Written by teppei

3月 5th, 2009 at 3:47 pm

Posted in プログラミング

Tagged with , ,

Universal Binaryの作り方

leave a comment

lipoコマンドで作ることができる。i386のバイナリと、ppcのバイナリを用意しておいて。


% lipo -create -output universal_binary -arch ppc_binary -arch i386_binary

確認はfileコマンドでおk。

わすれないようにメモ。

このエントリーをはてなブックマークに追加
はてなブックマーク - Universal Binaryの作り方
Share on Facebook

Written by teppei

2月 19th, 2009 at 8:35 pm

Posted in プログラミング

Tagged with

Xcode新規ファイル作成時の__YourName__を変更する

leave a comment

twitterでテンプレートがどうのという話が流れてて、それで前から気になっていた __YourName__ について調べてみたところ、Terminalで以下のコマンドを打ち込めば良いということが分かったのでメモ。

defaults write com.apple.Xcode PBXCustomTemplateMacroDefinitions '{"ORGANIZATIONNAME" = "ほげほげ";}'

ほげほげは好きな文字列で。

追記
もちろん、com.apple.Xcode.plist開いて手入力でも大丈夫。

このエントリーをはてなブックマークに追加
はてなブックマーク - Xcode新規ファイル作成時の__YourName__を変更する
Share on Facebook

Written by teppei

1月 30th, 2009 at 1:11 am

Posted in プログラミング

Tagged with

FLARToolKit

leave a comment

FLARToolKitとは、ARToolKitをAS3に移植したもの。拡張現実を表現するためのライブラリです。

以下が面白かった。

このエントリーをはてなブックマークに追加
はてなブックマーク - FLARToolKit
Share on Facebook

Written by teppei

1月 8th, 2009 at 10:02 am

Posted in プログラミング

Tagged with

mingwでffmpeg

leave a comment

ひさびさにやってみた。mingwもffmpegもバージョンがかなり変わってて面倒。ffmpegなんていつの間にかr16000越え。

mingwでffmpegをmakeする方法はffmpeg Windows Helpさんが詳しい。

今回気をつけたことは静的リンクにしたことくらい。configureで、–extra-ldflagsに-staticをつければOK。そうすれば依存モジュールなしで実行可能。コマンドラインで使うぐらいであればこっちで。

このエントリーをはてなブックマークに追加
はてなブックマーク - mingwでffmpeg
Share on Facebook

Written by teppei

12月 26th, 2008 at 12:06 pm

Posted in プログラミング

Tagged with ,

コードテスト

leave a comment

コードはこうやって書けば良いのかな。

int a = 1;
a += 1;
このエントリーをはてなブックマークに追加
はてなブックマーク - コードテスト
Share on Facebook

Written by teppei

12月 22nd, 2008 at 12:18 pm