MacOS Xの最近のブログ記事
何となく最近プログラミングしたい。
とりあえず、MacOSで何か作ろうと思っていろいろ調査したりしている。
dlopen()で、Dynamic Libraryを使う方法。
モジュール用にこんなん書いてみる。hoi.cとして保存。
#includevoid hoi(void)
{
printf("hoi!\n");
}
呼び出し側としてこんなん書いてみる。main.cとして保存。
#include#include void (*hp)(void);
int main(int argc, char **argv)
{
void *p = dlopen("hoi.so", RTLD_NOW | RTLD_LOCAL);
if(p == NULL){
fprintf(stderr, "hoi.so: %s\n", dlerror());
exit(1);
}hp = (void (*)(void))dlsym(p, "hoi");
if(!hp){
fprintf(stderr, "hoi: %s\n", dlerror());
exit(1);
}hp();
dlclose(p);
return 0;
}
モジュールhoi.soのコンパイル (-archはユニバーサルバイナリを指定)
% gcc -arch i386 -arch ppc -arch x86_64 -fno-common hoi.c
% gcc -arch i386 -arch ppc -arch x86_64 -bundle -flat_namespace -undefined suppress -o hoi.so hoi.o
呼び出し側
% gcc -arch i386 -arch ppc -arch x86_64 main.c -o main -ldl
% ./mainhoi
いやー、単なる現実逃避。報告書めんどくせー。
FreeでMacOS上でVPN環境を構築するべく、いろいろ調べていたら、
売り物ばっかだね−。iVPNとか。
とりあえずトンネルでいいやと思っていたんだけど、tun/tap device両方ないや。
と思ったら、作っている人がいたいた。
http://sourceforge.net/projects/tuntaposx/
助かる。後はOpenVPNを使えばヨロシ。
なんとなくハイバネーションにしたい時のコマンドを良く忘れて苦しいのでメモ。
% pmset -a hibernatemode 5
この辺。
http://www.takagikun.org/olddiary/?date=20061124
pmset pmset pmset
MacbookProを320GBディスクに交換してLeopardに完全移行しました。
困った問題は、Tigerから移した自分のファイルに問題があるらしく、
X11があがらない。。。。別ユーザを作るとあがるので、
とにかく自分のフォルダの中の環境に問題があると延々と
調べて1日以上使ってしまいました。
原因は、LeopardからXFree86ではなく、Xorgになり、
そのせいでかなりのXアプリが動かなくなっているらしい。
http://trac.macosforge.org/projects/xquartz/
の最新のパッケージをインストールしたらなおりました。
launchd周辺にも問題があるようです。
とにかく問題の切り分けポイントを当初間違えたため、
本当にたくさんの時間を使ってしまった。
悲しい。。。
最近研究室では、google calendarにみんながスケジュールを突っ込んで、それぞれの状態を知る、という試みをやっています。
スケジュラーに突っ込むと自動的にgoogle calendarと同期してくれれば楽でいいのです。しかしMacOS Xのicalとgcalendarを同期するソフトウェアSpanning Syncという完成度の高いソフトウェアは売り物なので参っていました。
どっちにしてもical -> gcalの片方向でオッケーなのでこういった売り物を使う必要もないわけで、Spanning Syncのトライアル期間が終わってから色々と調べて実験をしてみたのですが、GCALDaemonはical -> gcalがうまくうごかない。うーん。。。設定もめんどくさくて印象が悪い。
昨日見つけたgsyncはical->gcalでは非常に楽に動きました。ユーザインターフェースも良いです。なんとか.confとかいじったりするのが億劫になってきて最近。歳かなー。
gsync
http://www.macness.com/blog/index.php/site/gsync_091/
そのうち売り物になってしまう予感。。。
