2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

Macでプログラミング{6}

1 :名称未設定:2006/10/24(火) 11:15:42 ID:JezOArUs0
Macでのプログラミング全般についてのスレです。

前スレ
Macでプログラミング{6}
http://pc7.2ch.net/test/read.cgi/mac/
過去
 [新・mac] Macでプログラミング{5}
  http://pc7.2ch.net/test/read.cgi/mac/1130776036/l50
 [新・mac] Macでプログラミング{4}
  http://pc7.2ch.net/test/read.cgi/mac/1080051583/l50
 [新・mac] Macでプログラミング{3}
  http://pc7.2ch.net/test/read.cgi/mac/1049070432/l50
 [新・mac] Macでプログラミング{2}
  http://pc7.2ch.net/test/read.cgi/mac/1025998843/l50
 [新・mac] ■■ M a c で プ ロ グ ラ ミ ン グ ■■
  http://pc7.2ch.net/test/read.cgi/mac/1001404151/l50

関連リンクは>>2-10あたりで適当に

2 :名称未設定:2006/10/24(火) 11:17:38 ID:JezOArUs0
ごめんスレタイ変えるの忘れたorz

● Xcode Tools
  Xcode part4
  http://pc7.2ch.net/test/read.cgi/mac/1149300142/l50
● Cocoa
  Cocoaはさっぱり!!! version.6
  http://pc7.2ch.net/test/read.cgi/mac/1146391229/l50
● Java
  Mac de Java
  http://pc7.2ch.net/test/read.cgi/mac/1138543708/l50
● シェル/Unix
  Terminal初心者質問スレ Part 6
  http://pc7.2ch.net/test/read.cgi/mac/1159930072/l50
  OS XでUnix
  http://pc7.2ch.net/test/read.cgi/mac/1152884104/l50
● AppleScript
  おもろい、めずらしいアップルスクリプト発表会 6
  http://pc7.2ch.net/test/read.cgi/mac/1117979906/l50
  【標準装備】スクリプトエディタ
  http://pc7.2ch.net/test/read.cgi/mac/1111760449/l50
● その他
  REALbasic.Thread 4
  http://pc7.2ch.net/test/read.cgi/mac/1160011768/l50

3 :名称未設定:2006/10/24(火) 11:23:59 ID:JezOArUs0
って、>>1も間違ってるし。もうgdgd

前スレ
Macでプログラミング{6}
http://pc7.2ch.net/test/read.cgi/mac/1130776036/l50

4 :名称未設定:2006/10/24(火) 14:45:31 ID:IcP6yn7k0
バグばっかw

5 :名称未設定:2006/10/25(水) 14:03:58 ID:niv4AAWO0
前スレの完全な過去ログ .dat 持っている人いませんか。
持っていたらアップしていただけると助かります

6 :名称未設定:2006/10/25(水) 23:02:02 ID:Mr8kvLQB0 ?2BP(51)
>>5
http://cirno9.googlepages.com/pc7_mac_1130776036.dat.gz

7 :名称未設定:2006/10/26(木) 01:19:11 ID:4S2d2iaC0
>>6
ありがとういただきました

8 :名称未設定:2006/10/26(木) 11:29:39 ID:2oSDM9nn0
if( money > 50000 ) {
  sex();
} else if( money > 30000 ) {
  tea();
} else if( money > 10000 ) {
  email();
} else {
  error();
}

これもC言語?

9 :名称未設定:2006/10/26(木) 13:57:36 ID:cyp98bZ80
PHPでも通るな、それ。

10 :名称未設定:2006/10/27(金) 02:31:21 ID:F4IhG+bd0
質問です。
関数へのポインタを引数でとる関数に、オブジェクトの
インスタンスメソッド(セレクタ?)を渡したいのですが、
どうすればいいのでしょうか。

11 :名称未設定:2006/10/27(金) 03:51:42 ID:F4IhG+bd0
自己レスです。萩原本に載っていました。失礼しました。

12 :名称未設定:2006/10/27(金) 16:47:22 ID:GjcN9DG70
Sharkとかサンプルとかで、関数の呼び出しツリーを追いかけています。

PowerPCマシン上では、期待したように表示されるのですが、
intelマシン上では、なぜか自分のコードの部分がツリーに入らず、
ことごとくunknown libraryと表示されてしまいまともに解析できません。

一つのビルドターゲットで作ったUniversal Binaryなのですが、どこを
いじればきちんとSamplingできるようになるのでしょうか?

13 :12:2006/10/28(土) 19:27:47 ID:O3lfvnci0
おなじ現象をffmpegXに入っているffmpegのバイナリで確認しました。

やっぱりintelMac上では、sampleやSharkやSamplerで追いかけると、
関数の名前がきちんと判別できなかったり、呼び出しツリーが崩れて
しまったりします。

一体どのようにすればDebug Symbolやツリーがきちんと扱えるように
なるのでしょうか。

14 :名称未設定:2006/10/30(月) 09:02:41 ID:Hhf2NJmU0
知らんけど、まずはAppleに報告することだ。

15 :名称未設定:2006/11/02(木) 11:15:06 ID:qNLaod6m0
>>12
>一つのビルドターゲットで作ったUniversal Binaryなのですが

とりあえずここらあたりから疑うべきかなあ。
file <実行ファイル> したとき、ちゃんと i386 のコードも入ってるって表示される?

16 :名称未設定:2006/11/02(木) 23:10:45 ID:ey8+mizT0
10.3.9+gcc3.3でx86向けバイナリ作れますか?

17 :12:2006/11/02(木) 23:19:59 ID:PZVFe9ji0
>>15
解決しました。ffmpegのconfigureで「-fomit-frame-pointer」が使用される
ようになっていたのが原因でした。

>ttp://www.linux.or.jp/JM/html/GNU_gcc/man1/gcc.1.html

intel向けで-O2や-O3をかけても、このオプションは通常無効なのですが、
明示的に指定してレジスタの本数をかせいでいるようです。

Intelの世界ってややこしいっす・・・

18 :名称未設定:2006/11/04(土) 09:12:54 ID:hiveUZFV0
>>17
>解決しました。ffmpegのconfigureで「-fomit-frame-pointer」が使用される
>ようになっていたのが原因でした。

へー興味深い。
あれ、-fomit-frame-pointer があっても gdb ではデバッグできる... よね?
Shark とかはまだ対応してない、ってことなのかな?

>>ttp://www.linux.or.jp/JM/html/GNU_gcc/man1/gcc.1.html
>
>intel向けで-O2や-O3をかけても、このオプションは通常無効なのですが、

あれ、上のマニュアルだと -O で有効になると書いてあるけど。
Mac OS X 上だと違うのかな。今回の問題と関係あったりして。

>明示的に指定してレジスタの本数をかせいでいるようです。

アセンブラ出力を見た感じでは、むしろ無駄なスタック演算を省く効果が大きい
ように見えるが...

>Intelの世界ってややこしいっす・・・

自分も Intel に極力触らないようにしてきたのだが、もはや仕方がないw

そういえば簡単な浮動小数演算でも、デフォで XMM 使うのねえ。知らんかった。
ppc の方はいきなり Altivec を使ったりはしないと思ったが。

19 :18:2006/11/04(土) 09:18:38 ID:hiveUZFV0
あ、最後の2行はもちろん「Mac OS X の gcc が吐くコードだと」っていう意味です

20 :12:2006/11/04(土) 22:41:38 ID:Gj73o1cn0
>>18
> フレームポインタを使わないデバッグをサポートしている
> マシンでは、`-fomit-frame-pointer' も指定されます。
ってあるので、Intel CPUでは通常O3でも無効のままのはずです。
弊害がなければ暗黙に指定され、弊害があれば指定されません。

最適化のやり過ぎかと。いちいちconfigureに書かないで欲しいっす。

21 :12:2006/11/05(日) 10:05:26 ID:D+lrSDOw0
なにを間違えているのでしょうか...

int64_t psnr = 780734;
float aaa = 640*480*255.0*255.0;
fprintf(stderr, "%lld, %f, %f, %f ¥n", psnr, aaa, psnr/aaa, log(psnr/aaa));

780734, 19975680000.000000, 0.000039, -10.149792

手元で計算すると、log(psnr/aaa)は-4.80877718385になるのに。
型変換の問題??

22 :12:2006/11/05(日) 10:19:58 ID:D+lrSDOw0
解決しますた。
c言語ではlog(x)はlnなのか。あぅ。

23 :18:2006/11/06(月) 19:11:13 ID:SGuf8F950
>>20
>> フレームポインタを使わないデバッグをサポートしている
>> マシンでは、`-fomit-frame-pointer' も指定されます。
>ってあるので、Intel CPUでは通常O3でも無効のままのはずです。

-fomit-... な ffmpeg だと、Shark 以外に gdb も動かない? Shark だと怪しいので。
あと、「Intel CPUでは」 って、単に Mac OS X のサポートが遅れているだけか、
Intel CPU もの全般で駄目か、どっちなのかな。
俺はそこら辺よく知らないので、「どうなのかな?」と書いたのだが。

>最適化のやり過ぎかと。

デバッグをしたい人はオプションの意味を知っていると期待しているのでは。
あるいはデバッグできないのは Mac OS X 上のみとかw

-fomit-frame-pointer すると少なくともコードサイズがだいぶ小さくなる。
実行速度も結構変わってくるんじゃないだろうか。
気が向いたら ffmpeg で差をベンチマークしてみたらいいかも。
奇特にも Shark 等でこれのチューンをしてるみたいだし。

24 :名称未設定:2006/11/06(月) 22:56:25 ID:M28FWvRQ0
>>23
こりゃ煽られてるんかな?(o. o;)
 もしや例の御大の逆鱗に触れたか?こりゃ退散に限るなw。

実のところ、「どうなのかな」はどうでもいいっす。
別にチューニングにも大して興味ないし、コードサイズも気にしない。
それってコーディングを仕事でやってる人の感覚だなって思った。

gdbでガリガリデバッグなんてめんどいのはイヤ。動きゃえーやん。

ちゅうわけで撤収、撤収。

25 :名称未設定:2006/11/07(火) 00:30:13 ID:qk/IDMdX0
>>24は先天性R型脳梁変成症。

26 :18:2006/11/07(火) 01:56:40 ID:HpGz4G8p0
>>24
ん? これ12と同じ人なの?

24はサメの絵にでもつられて Shark を使ってみたくなっちゃのかなー?
残念だけどそれは子供のオモチャじゃないんだよねー。
一回だけ釣られとく。

27 :名称未設定:2006/11/08(水) 20:34:49 ID:aDswnOAU0
Objective-Cに挑戦しようか迷ってるんですが、
C言語とJavaの経験があればC++の経験が無くても
大体理解できますか?
洋書の厚い専門書をいくつも読める程、
時間的に余裕はないのですが、
日本語に手に入る情報だけでも結構使えますか?

28 :名称未設定:2006/11/08(水) 20:52:19 ID:/sLdBnJA0
>>27
CとJavaを理解していれば、Obj-Cはすでに理解したも同然。

29 :名称未設定:2006/11/08(水) 21:07:08 ID:YPNa7UXU0
C++の経験はむしろない方がいい。

30 :名称未設定:2006/11/09(木) 03:31:14 ID:frb0aDTV0
>>18
SSEにはスカラーモードがあるから。

Altivecにはない。無理矢理やろうと思えばできるんだろうが
倍精度が使えないやら丸めモードのサポートが完全じゃないやらalignmentの問題やらあるので
実用的ではないだろう。

31 :名称未設定:2006/11/09(木) 10:09:24 ID:Paec+/G10
いろいろ極めようとすると萩原本が必要だが、Objective-C自体はシンプルだから
すぐに憶えられる。C++とは全然違う。Javaよりも簡単だし、エレガントだ。

32 :名称未設定:2006/11/09(木) 15:54:25 ID:A4lO/RFv0
Cでグローバル変数のシンボルテーブルをnmで見た時に
D(初期化されたデータセクション)にいると思ったんですが、S(初期化されてないデータセクション)に配置されてます
なんで?0に初期化されてるんじゃないの?

33 :名称未設定:2006/11/09(木) 17:19:55 ID:eI6mt01Y0
0に初期化される(C言語の仕様)と、どのデータセクションに配置する(コンパイラの仕様)は別物

34 :名称未設定:2006/11/09(木) 21:19:46 ID:sxJz76DQ0
vector signed char v = (vector signed char)('A');
はエラーにならないのに、
char c = 'A';
vector signed char v = (vector signed char)(c);
は見事にエラーになってくれるんですがなぜでしょうか

35 :名称未設定:2006/11/09(木) 22:34:45 ID:cOwIK1lY0
vectorはよく分かんないけど、'A'がint型(C FAQ 8.9参照)だからかな?
上の行の右辺は (vector signed char)(<int型の定数>)
下の行の右辺は(vector signed char)( <char型の変数>)
だから、コンパイラにとってはかなり違うように見えると思う。

36 :名称未設定:2006/11/09(木) 22:45:48 ID:TyZY/ZR10
C++の知識は必要ないんですね
参考になりました。ありがとうございます。

37 :名称未設定:2006/11/09(木) 23:08:16 ID:sxJz76DQ0
>>35
うーん、どうもそういう問題じゃないっぽいです。
'A'を(char)'A'にしてもエラーは出ませんけど、
cを(int)cにしてもやっぱりエラーです。

38 :名称未設定:2006/11/09(木) 23:25:38 ID:cOwIK1lY0
>37
定数と変数の違いはどうよ

39 :名称未設定:2006/11/09(木) 23:33:25 ID:qdyIJfNp0 ?2BP(11)
よく覚えてないけど
vector signed char v = (vector signed char)('A');
の様にリテラルを使うと
vector signed char v = (vector signed char)('A','A','A','A','A','A','A','A','A','A','A','A','A','A','A','A');
にコンパイル時に展開されるんじゃなかったけ?

で、
char c = 'A';
vector signed char v = (vector signed char)(c);
こっちは展開されない。
だから、
signed char *p = (signed char*)&v;
for(int i = 0; i < 16; i++) p[i] = c;
とかしなくちゃならない。

40 :名称未設定:2006/11/09(木) 23:45:26 ID:AEp+akBj0
イベントハンドラにつけるpascalという修飾子は何?
C言語の本には載ってないし、中でPascal言語が使えるわけでもない。
つけなくても問題なく動いてるように見えるんだけど…

41 :名称未設定:2006/11/10(金) 00:06:55 ID:q3dmfWkV0
つーか、AltiVecを使うならスカラ変数からベクタ変数への代入は
明示的にvec_ldを使う癖をつけないと駄目だよ
ポインタを介してやるのは良くない

16-byte alignedが保証されてるならvec_ldとvec_splatで4〜6サイクル。
定数ロードなら値が小さい場合vec_splat_u/s系を組み合わせる事も検討する。

42 :名称未設定:2006/11/10(金) 00:08:19 ID:hcYUY9Bf0 ?2BP(11)
>>40
CとPascalでは、スタックの積み方が違うとかあって、
CでPascal方式を使うためのものだったんだけど、
なくても問題なく動くってことは、今はただの飾り?

そのむかし、toolboxがpascalで書かれてた名残かと。

43 :名称未設定:2006/11/10(金) 00:27:04 ID:q3dmfWkV0
8bitのベクタ定数ロード表
ttp://www.informatik.uni-bremen.de/~hobold/av/AltiVecConstants.asc

44 :名称未設定:2006/11/10(金) 09:40:29 ID:gP+ZCRnv0
>>42
そう。Cは引数を後からスタックに積んでいくが、Pascalは前からスタックに
積んでいく。アセンブラのコードを見ると良くわかるよ・・・と言っても
今のコンパイラでは意味ないからわからないか。

ToolboxもPascalベースからC++ベースになって、pascalという修飾子は
意味がないものになっている。ただの飾り。PowerPCになってから無効に
なったんだったかな。

45 :40:2006/11/10(金) 23:54:15 ID:flkZk76w0
OS X向けプログラムでは単なる「おまじない」ということですね。
情報ありがとうございました。

46 :名称未設定:2006/11/11(土) 14:34:07 ID:mwwXoL8r0
defaults read com.xxx.xxx yyy で出力される値をphpスクリプトで扱いたいんだけど、
マルチバイト文字が\uxxxxで出力されちゃう(コマンドラインでも)。
エンコーディングはUTF-8でいいんだけど、なんとかこれを回避する方法はないだろうか?


47 :46:2006/11/11(土) 15:31:22 ID:mwwXoL8r0
何か簡単な方法があるかと思ったけど、自前で変換した方が早そうですな(´・ω・`) 。
スレ汚しスマソ。


48 :名称未設定:2006/11/11(土) 22:27:54 ID:q68Zesz80
>>46
phpからシェルを実行してphp側でエンコードをいじるmbなんたらって関数群でゴニョゴニョってことになるかなぁ?
アクセス権の問題とか面倒くさそうな・・

49 :46:2006/11/12(日) 01:29:16 ID:qIdSpFu10
>>48
値の読み出し自体はアクセス権とか関係なく$value = exec('defaults read〜');で問題なかった
んだけど、読み込んだ値がエスケープされてて困るという話ですた(´・ω・`) 。
エスケープは2パターンあって、\uxxxx(16進4桁・UTF-16BE)と\xxx(8進3桁)、それと「\」
自身もエスケープされて「\\」になってるので、合計3回正規表現置換で対応できたよ。
参考までにこんな関数。

function GetPreferenceForKey($plist, $key)
{
 $ret = @exec("defaults read $plist $key");
 $ret = preg_replace(
  '/\\\\u([0-9a-fA-F]{4})/e',
  'mb_convert_encoding(pack("H*","$1"),"utf-8","utf-16be")',
  $ret
 );
 $ret = preg_replace(
  '/\\\\([0-7]{3})/e',
  'mb_convert_encoding(pack("n*",octdec($1)),"utf-8","utf-16be")',
  $ret
 );
 $ret = preg_replace('/\\\\\\\\/', '\\', $ret);
 return $ret;
}


50 :名称未設定:2006/11/12(日) 01:51:13 ID:uBrVHz7i0
>>49
うわぁ、漏れpackなんて使った事ないや・・・
ところで、phpでdefaults readして何をやりたいのかのほうが気になります

51 :名称未設定:2006/11/12(日) 03:06:19 ID:yby78Mh80
ターミナルで plutil -convert xml1 com.xxx.xxx.plist すると、ごく普通の
UTF-8なXMLに変換できるよ。こうすりゃ悩まずに済むのでは?

52 :名称未設定:2006/11/12(日) 10:19:06 ID:ogh35N3o0
みんな、doxygenとHeaderDocどっち使ってる?

53 :46:2006/11/12(日) 16:55:34 ID:qIdSpFu10
>>50
いきさつを話すと長いんだけどw。
Dashboard WidgetからAppleScriptを実行してその中で文字列置換をして出力するのがそもそもの
目的で、その置換元の文字列がplistに書かれているのでした。
AppleScriptでdelimiterを使った置換方法でもよかったんだけど、なぜかWidgetから実行したときに
限って複数回置換できなかったので、do shell scriptを使って外部phpで行うことにした。
ここで、Widgetでplistの値を読んでからAppleScriptに渡すと文字化けを起こすので、その外部php
内でplistの値を読めないかというところに至ったわけです。

>>51
情報サンクス!
なるほど、こんな便利なコマンドがあったのね。
ただ、XMLに変換しても、Widgetからplistに値を保存し直すとまたバイナリに戻っちゃいます(´・ω・`) 。


54 :名称未設定:2006/11/12(日) 19:36:01 ID:ZHZWEMz60
>>52
HeaderDocの利点って、Xcodeに標準付属ってことぐらいかね?
最近Doxygenしか使ってないので、機能比較できないけど。

55 :名称未設定:2006/11/16(木) 22:07:10 ID:iETIIDGs0
・Cの基本は一通り押さえた(コンソールプログラムは作ったことがある)
・Pascalもわかる
・今はmiあるいはemacsで書いてgccしている
・WindowsのVisual Basicをちょこっと触ったことがある
・XcodeのInterface Builderの使い方がよくわからない
・MacのGUIを用いたCアプリ/AppleScript/Pascalアプリが作りたい

俺が参考にすべきページ/本等ありましたらご教示願います。

56 :名称未設定:2006/11/16(木) 22:38:56 ID:JIryf5eS0
>>55
Cocoaはやっぱり

57 :名称未設定:2006/11/17(金) 00:38:57 ID:WUxKAdE70
>>55
それ、オレも知りたい。
この前本屋でちらっと探してみたけど、Macのアプリ開発の本が見当たらなかったんだよね。


58 :名称未設定:2006/11/17(金) 01:46:04 ID:zXRFGlb90
「Happy Macintosh Developing Time」本でいいんじゃね?
あとはヒガレス本「Objective-C Mac OS Xプログラミング」と。

まあCじゃなくてObjective-Cだけどね。

あと、なんでXcodeを使わないのかよく分からない。

C言語+Carbonフレームワークは地獄を見るからやめとけ。

59 :名称未設定:2006/11/17(金) 07:50:03 ID:JNrfrQvJ0
>>55
本じゃないけどアップルが主催しているCocoaプログラミングのセミナーがお勧め。ADCに登録する必要があるけどね

60 :名称未設定:2006/11/17(金) 10:32:54 ID:G4MHhMNc0
>>55
OS X用のPascalはないと思う。大昔のシステムで良ければTHINK Pascalが
フリーウェアになってたと思うけど。

入門書は俗に言うヒレガス本がベスト。内容は古いがOS Xのプログラミング
スタイルがわかる。あとはObjective-Cで萩原本。Happy Macintosh
Developing Timeはサイトの方は参考になるけど、本の方は良くない。

61 :55:2006/11/17(金) 23:47:33 ID:fNtAuctv0
>>56-60
みなさんありがとう。挙げられたのを見てみます。

>>56
それはWebのほうですか?本の方ですか?それとも両方?

>>58
Xcodeは、コンソールアプリを作る時に使ってます。
GUIアプリを作る時に、「コネクト」するということはわかりましたが、VBやDelphiとは勝手が違って戸惑ってます。

>>59
確認してみましたが、そのセミナーは東京のみですよね?

>>60
GNU PascalをXcodeに統合してます。

62 :名称未設定:2006/11/17(金) 23:52:48 ID:+6HdDeBA0
PascalからCore Foundationの関数呼べるのかな? スタックへの積み込み順序がCの逆だと思ったんだが。

63 :名称未設定:2006/11/18(土) 00:32:24 ID:R6htxaJs0
プログムはwebの方から入って自分で「書ける」って言えるのはphp(&MySql)くらいなもんです。
こんな漏れが次のステップに進むには何をやったらいいでしょうか?
夢は小さくてもいいからなにかフリーウエアを出すことです。


64 :名称未設定:2006/11/18(土) 00:35:06 ID:qQ/Q1qde0
p2の開発に参加するとか

65 :名称未設定:2006/11/18(土) 02:35:56 ID:D4NrFhsx0
>>63
とりあえずCを勉強して、それからC++なりObj-CなりJavaなりをやってみれば?

Web系スクリプト言語から入るとCなんて不便不親切極まりない言語かも知れんが、
結局のところ高級な言語を使うときに基礎知識として必要な要素が詰まってるし。

66 :名称未設定:2006/11/18(土) 02:49:06 ID:R6htxaJs0
>>64
そういうのじゃなくてMac OS上で動く奴を作ってみたいです。

>>65
やっぱりCですか・・・
phpは変数の型とか結構適当で動いちゃうもんなぁ。
次のステップにいくにはこの辺をちゃんとしとかないといかんですね。

67 :名称未設定:2006/11/18(土) 04:15:25 ID:Zoy5cd1F0
何でもいいから興味があるのを触る
プログラミングに近道なんてない
遠回りも何かの役に立つ 柔軟性も上がるし
型なんて触ってるうちに慣れる

68 :名称未設定:2006/11/18(土) 10:53:49 ID:PJ7HQWdh0
>>63
Widget作ってみるとか。
基本的なところはJavaScriptだけでできるけど、高度なことしようとするとObjective-Cで
Widget Plugin作ることになるし。


69 :名称未設定:2006/11/18(土) 14:15:25 ID:rMvwCs490
Cを避けたいならWidget(要JavaScript)か、もしくはRubyCocoa(要Ruby)だな。

RubyCocoaは次期OSから「標準搭載」というのがどれくらいの
レベルでなされるのかちょっと不安だけど。

70 :名称未設定:2006/11/18(土) 14:23:37 ID:dghLSH6X0
>>69
>RubyCocoaは次期OSから「標準搭載」というのがどれくらいの
>レベルでなされるのかちょっと不安だけど。

Apple全面バックアップっぽい感じになってる。
Appleの開発者ががしがしコミットしてるみたいだし。

71 :名称未設定:2006/11/18(土) 16:23:39 ID:Ta2tBPgC0
RubyOSAもAppleによるものだよ。


72 :名称未設定:2006/11/19(日) 02:08:28 ID:PyHfz5Mt0
visual basic みたいな位置づけになりそう


73 :名称未設定:2006/11/19(日) 21:15:46 ID:FYqJBVgy0
Carbonからplistを書いたり呼んだりするのって、
なんかすごくめんどくさくない?

Obj-CならNSDictionaryのメソッド一発なのに・・・


74 :名称未設定:2006/11/20(月) 00:21:34 ID:SlvcwzGR0
CFPropertyListってな便利そうなやつがありますが・・・。

75 :名称未設定:2006/11/20(月) 06:49:37 ID:9viSTj3c0
>>74
>CFPropertyList
確かにあるんだけど・・・これももうすこし
高レベルAPI一発っていうのも欲しいなぁ、と。

CFPropertyListとCFDictionaryを取って書いたり呼んだり、
みたいな。
ファイル上書きじゃなくて、Dictionary項目個別にSyncの
処理を考えるとコーディングが面倒かなぁと。


76 :名称未設定:2006/11/20(月) 08:02:59 ID:SlvcwzGR0
NSDictionaryに別個でSyncさせるメソッドってありましたっけ?

77 :名称未設定:2006/11/21(火) 00:31:57 ID:oHP24Dbq0
>>71
RubyOSAってどうなんですか?

78 :名称未設定:2006/11/21(火) 08:19:42 ID:Zw7bvvVd0
>>61
アップルのセミナーなら丸々ビデオが公開されてる。無料。IBの操作もキャプチャで見やすい。
http://developer.apple.com/jp/documentation/japanese.html#CocoaSeminar1
Cocoa初心者でInterface Builderよくわからん、なら一番に見るべき。上級編まだ?


79 :名称未設定:2006/11/21(火) 14:24:58 ID:Fa3udorT0
>>75
Carbon から Obj-C 呼べば? CFM じゃないよね?

ところで plist から作った NSDictionary の中身いじると自動的に plist に sync
したりできるの? Preferences の話ではないよね?

80 :名称未設定:2006/11/22(水) 13:25:55 ID:Z/hsLPR10
Windows板でQuickSilverみたいなウィンドウインタフェース作れるのはマックの利点じゃないかと
書いたら、普通に作れるとか煽り返されたが、中途半端なプログラミングの知識しかないので、
それ以上返せなかった。もっと修行して、ついでに.NETでもやってみようかな。

81 :名称未設定:2006/11/22(水) 15:07:51 ID:MRSsmgz80
>>71 代替AppleScriptになる可能性は十分あるな、という感じ。AppleScript
はMac OS Xになってから何でもdo shell scriptでやっつけるようになって存
在意義が問われていたし、この方向性は正しいと思います。
ただ、自分の環境では、インスタンス生成しようとするとエラーが出るアプリ
があります。何らか手があるなり、改善するなりで大丈夫になるでしょうが。

10月25日にVer.0.1.0がリリース。このVer.0.1.0からrdoc-osaというrdocのフ
ロントエンドが付属に。アプリケーションコントロールのためのRuby APIをリ
ファレンスドキュメントにしてくれるもの。AppleScriptでいうAppleScript
Dictionaryを生成してくれるツール。これで書きやすくなりました。

生成例) http://rubyosa.rubyforge.org/itunes-doc/

#SafariでGoogle表示
require 'rbosa'
safari = OSA.app('Safari')
safari.make(OSA::Safari::Document).url = 'http://www.google.co.jp/'

#iTunesでいろいろ
itunes = OSA.app('iTunes')
itunes.play()
itunes.stop()
itunes.sound_volume = 0
#AppleScriptでのevery trackなどの参照は複数形を使う
itunes.sources.each do |s|
s.playlists.each do |p|
p.tracks.each do |t|
p t.name
end
end
end

82 :名称未設定:2006/11/22(水) 16:29:18 ID:rHsslNdE0
> もっと修行して、ついでに.NETでもやってみようかな。

時々こういうの見るけど、ホントにやる気あんのか。さっさと始めりゃ良いだろ。

83 :名称未設定:2006/11/22(水) 17:39:31 ID:Z/hsLPR10
>>82
キーー!

84 :名称未設定:2006/11/22(水) 23:05:09 ID:papRuzNX0
>>81
お前、何か勘違いしてないか?
AppleScript使おうがRubyOSAでやろうが出来ることは同じでっせ。
使う言語が違うだけで、結局はOSAなわけだから。

85 :81:2006/11/23(木) 00:14:20 ID:pZbb965T0
そこまでお分かりでなぜ結論が勘違いになるのかが分かりません。

同じ土俵なら、言語的魅力に薄いAppleScriptがRubyに取って代わられることは
ありうるって話です。

86 :名称未設定:2006/11/23(木) 04:29:11 ID:yXvh1EOv0
正規表現とか使いまくりだしねー>Ruby
Unixとしての力をフルに引き出せるようになる。

Automatorがやっと使い物になるようになるかも。

87 :名称未設定:2006/11/23(木) 04:33:34 ID:hPC5g/xs0
ごく初歩的な質問なんだけどバックスラッシュの記号はどこにあるんですか?
おかげで改行に苦労してます


88 :名称未設定:2006/11/23(木) 05:01:31 ID:Uzlu2Bfg0
>>86
正規表現使えると何か良いことでもあんの?

89 :名称未設定:2006/11/23(木) 05:16:56 ID:wfhwoCcO0
>>87
バックスラッシュは円マークと同じコードが割り当てられている。
英語だとバックスラッシュが表示され日本語だと円マークが表示される。

90 :名称未設定:2006/11/23(木) 10:27:43 ID:f+ljwPl70
正規表現使えるとユーザからの入力を
許容される値か確かめる処理が書きやすくなるよ

91 :名称未設定:2006/11/23(木) 10:29:23 ID:RvoiLSg50
OS10.3でターミナル起動すると、
環境設定ではデフォルトのログインシェルを
実行するようにしているんですが、

/System/Library/Frameworks/JavaVM.framework/Versions/1.4.2/Commands/javac; exit

というのが勝手に入力され、勝手にコマンド完了してしまいます。
一通りネットで調べましたが、解消法が分かりかねます。

ご存知の方どうぞ教えてください。
ターミナル使っている人少ないんでしょうか・・・。

92 :名称未設定:2006/11/23(木) 12:04:51 ID:Q+zj6rK30
>>91
少なくはないだろうけど、スレが適当じゃないと思う。

com.apple.Terminal.plist 捨ててターミナルを起動すれば戻るでしょう。それか、
iTermとか入れてれば、そっちから↓してからターミナルを起動かな。

defaults delete com.apple.Terminal ExecutionString

93 :名称未設定:2006/11/23(木) 13:23:50 ID:hvLupxZD0
>>87
Option 押しながら ¥ だよ


94 :名称未設定:2006/11/23(木) 20:00:52 ID:otIA5YJJ0
正規表現だけは理解できない。
正式に決められた表現? 日本語の訳し方に問題があるように思うのだが。
「正規」の割には、ソフトによって動作が違うみたいだしw

95 :名称未設定:2006/11/23(木) 20:09:11 ID:d7CWnv1O0
normalizationも正規化と訳したりしちゃうからなぁ。

96 :名称未設定:2006/11/23(木) 20:30:13 ID:buQIm9WB0
>>94
イレギュラーがあるってことでインジャネ?

97 :名称未設定:2006/11/23(木) 22:13:43 ID:CmDWISuR0
>>94
正規表現はxNix系のひとに取っては空気みたいなもんだしねぇ。

Classic OSからのMac使いのひとには結構理解しがたい世界
だとはおもう。

98 :名称未設定:2006/11/24(金) 00:08:45 ID:Y8DA8GmW0
>>97
でも、正規表現みたいな考え方を身につけることで大きく世界が開ける。
漏れも数年前まで「正規表現?ややこしいな。パス」って感じだった。
ある日思い立って勉強した。勉強したとはいってもエディタで使ってみただけだけど。
で、いまは一応プログラマの端くれだ。
難しそうだからと尻込みする気持ちはわかるけど、そういう人こそ一度触れてみてほしいです。


99 :91:2006/11/24(金) 00:12:08 ID:IdGGavn20
>>92
ありがとうございます、直りました。
よくご存知で・・・。

スレが適当でなかったようで、失礼しました。
OSXでjavaを動かしてみようと思ったので、
プログラム関連かと。

100 :名称未設定:2006/11/24(金) 02:18:44 ID:2APySBRB0
94みたいな人は絶対身につかないだろうね


101 :87:2006/11/24(金) 06:36:42 ID:CUVBSgla0
>>89
¥マークで試したんですが、文字としか認識されずに、出力時
¥n
という実に見苦しい結果に

サンプルを見るとバックスラッシュを使ってるので
それをコピーして間に合わせてるんですが
こんなことを続けるわけにも行かないし

皆さんは普通に¥で大丈夫なんですか?

102 :名称未設定:2006/11/24(金) 06:40:34 ID:9TNfYTWp0
>>97
Classic OS知らないでしょ?
元々エディタ起源の機能だから昔からエディタは正規表現を備えた物が多いし、
Nisusなんて名物ソフトもある。
プログラミングで言えばMPW Shellを使ってれば普通に使う。

103 :名称未設定:2006/11/24(金) 11:03:36 ID:OX5QIlVG0
>>101

>>93をよく見れ。

mi以外のエディタを使ってるなら、
Option+¥で \n という表記になるはず。


104 :名称未設定:2006/11/24(金) 11:48:45 ID:6+HyaAlI0
正規表現って便利なライブラリでもあるの?
スクラッチから実装してたら挙動が異なったりしてこない?

105 :名称未設定:2006/11/24(金) 12:35:07 ID:/gz+3cYC0
>>104
ttp://www8.ocn.ne.jp/~sonoisa/OgreKit/

106 :名称未設定:2006/11/24(金) 13:06:02 ID:ev2Zgtph0
質問。サードパーティ製のdylibはどうやって管理するべき?
たとえば、libpngを導入したとして、デフォでは/usr/local/libにインストールされる。
これをコンパイル・リンクすることはできるが、dylibでリンクされた場合実行時に参照する必要があるけど、
どうやって実行体が見えるようにしてあげればいいの?今は一々実行するフォルダにdylibをコピーしてきているんだけど、
何かスマートな方法ない?


107 :名称未設定:2006/11/24(金) 15:30:28 ID:36I7awjo0
>>104, 105
OgreKitの元になってる鬼車。俺は鬼車の方を使ってる。

108 :名称未設定:2006/11/24(金) 15:46:23 ID:KweL2o450

そういえばJavaでCocoaって誰か使ってる人いる?


109 :名称未設定:2006/11/24(金) 17:43:57 ID:R4AZ4ujs0

Leopard(9A303)で動かなくてorz

110 :名称未設定:2006/11/24(金) 17:57:16 ID:As2nGSbP0
>>102
>昔からエディタは正規表現を備えた物

まともな実装のやつはないに等しかったけどな。
perl、sed、jgawkに渡せる機能をもったやつは
数えるほどだったし。memory制限のせいで使い物
にならんかった。

111 :名称未設定:2006/11/24(金) 19:07:13 ID:bJvF4N3/O
sedはエディタなわけだが

112 :81:2006/11/25(土) 00:35:42 ID:aHsrlBsz0
AppleScriptには(OSAXには)mgrepぐらいしか無いし、
do shell script経由で何とかしようと思うと標準入出力のオーバーヘッドで遅いので、
正規表現はRuby対AppleScriptにおけるRubyのアドバンテージであるものの、
そのごく一部に過ぎませんけどね。

AppleScriptも最小公倍数的なものでいいから、オブジェクト、メソッド、
プロパティの充実に動いてくれればいいんですが。しかし、現実は変わらな過ぎる……。

Leopardが出たら、Rubyの256本出ないかな。「外道編」とかで。

113 :名称未設定:2006/11/25(土) 00:54:01 ID:stx53RZc0
>112
後の「Ruby256本 摩苦道編」著者である

114 :名称未設定:2006/11/25(土) 01:23:23 ID:64IPSoQ00
>>104
Objective-CならOgreKit。これってたしかRubyの正規表現エンジンなんだよね?

Java, Ruby, Perlなどなどにはもともと正規表現を解釈する機能があるね。

115 :名称未設定:2006/11/25(土) 13:49:03 ID:UH4dkmNh0
よくわからんけど、OSAXってAppleScript以外のOSA対応言語でも使えるんじゃないの?

116 :名称未設定:2006/11/26(日) 22:05:23 ID:KqnyMFVh0
>>115
実はOSA経由しなくてもAppleEvent ManagerだけでOSAXは呼べる。
Cで直接OSAX呼んだりも出来る。

117 :名称未設定:2006/11/30(木) 14:40:35 ID:i/St55sm0
IOMessageについて質問です。
青歯マウスをクレードルに置くと「接続が切れました」
となりますが、そのときのメッセージを補足しようと
しています。IOServiceAddInterestNotificationで
kIOGeneralInterestを指定して、コールバック内で
messageTypeをチェックしているのですが、IOMessage.h
で定義されているkIOMessageServiceIsTerminatedなど
に引っかかりません。(コールバックは呼ばれています)
資料には
messageType
A messageType enum, defined by IOKit/IOMessage.h
or by the IOService's family.
とあるので、USBやHIDのヘッダもみてみたのですが、それらしい
定義が見当たりません。詳しい方がいたら是非ご教示願います。




118 :名称未設定:2006/12/05(火) 06:12:38 ID:Co6SlzAJ0
>>117
全然詳しい方じゃないんだけど、
http://www.opensource.apple.com/darwinsource/10.3.2/IOUSBFamily-206.4.1/Examples/Another%20USB%20Notification%20Example/USBNotificationExample.c
のソースを拾って、ID を自分のマウスの値にしてコンパイルして走らせて、
マウスを抜くと、kIOMessageServiceIsTerminated に引っかかるけど。
BlueTooth なりの特別な事情があるのかねえ。

「コールバックは呼ばれています」というのは、接続が切れた以外のイベントはちゃんと
拾えてるということ? 切れたときもコールバックが呼ばれるけど messageType が
おかしいということ?
ま、これを答えてもらっても基本的に俺には回答できんがw、もし後者なら、その
message が、その場合は 正しい message なのかもしれぬ。

119 :名称未設定:2006/12/06(水) 22:47:00 ID:c0IFswGC0
>>118  おー、レスがついた。
いま仕事が忙しくてMacと遊べる時間がないけど、
時間ができたらそのサンプルを改変してもうちょっと
いじってみるよ。USBではまくいく、というのは
参考になったよ。ありがとう。

120 :名称未設定:2006/12/06(水) 23:46:50 ID:AqDXnzjl0
タメ口かよ

121 :名称未設定:2006/12/07(木) 00:17:29 ID:c/WCK+0O0
質問は丁寧に、お礼は横柄に

122 :名称未設定:2006/12/07(木) 21:38:29 ID:VEABk9pv0
解決したら用済みなんだろw

123 :名称未設定:2006/12/07(木) 22:09:47 ID:TR3s3YRU0
べつに>>119は、横柄な口の聞き方とは思わんけど。

124 :名称未設定:2006/12/10(日) 13:55:43 ID:i7BOUCpj0
>106
自分用環境ならLD_LIBRARY_PATHを設定すればいいだろ

125 :名称未設定:2006/12/17(日) 20:48:43 ID:n0IN9JlW0
メトロワークスのサイトが消えてやがった。

126 :名称未設定:2006/12/18(月) 08:36:05 ID:VB7W7yxT0
>>125
ん? フリースケールのサイトにコードウォーリアーのページはあるけども。

だいぶ前にメトロワークスはモトローラの半導体部門に買収されてて、
で、モトローラの半導体部門はフリースケールになった、という流れだと思うが。
メトロワークスという名前はもうないのかな?

個人的にはモトローラにもメトロワークスにも長い間世話になったが... 時代の流れやね。

127 :名称未設定:2006/12/18(月) 13:17:31 ID:aK26SCAz0
CWはDP1からずっと使ってたけど、PowerPlantの進化が止まり、MWが他の
プラットホームに注力するようになってから嫌気がさしていた。サポートが
良かったのも最初の頃だけで、その後はサポートの質が年々低下・・・
世話になったという気持ちは全然ない。

遅いけどXcodeでApple純正になり、開発環境の心配しなくていいのは精神的に
いい。かつてはSymantec C++でも煮え湯を飲まされたからな。

128 :名称未設定:2006/12/20(水) 18:05:30 ID:fJ0VJ1Zr0
/System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/ にある
AlertNoteIcon.icns AlertCautionIcon.icns AlertStopIcon.icns あたりを、パスを直接読み取らず
NSImageかCGImageRefなどで得るAPIは用意されてないのでしょうか?

129 :名称未設定:2006/12/20(水) 18:29:14 ID:xNH+DSUE0
Icon Services

130 :名称未設定:2006/12/20(水) 18:30:17 ID:I5M45OCR0
>>128
GetIconRef で kAlertNoteIcon,kAlertCautionIcon ,kAlertStopIcon を持ってきて、
NSQuickDrawView に PlotIconRef して
NSImage 取り出す。

131 :名称未設定:2006/12/20(水) 18:48:07 ID:xNH+DSUE0
PlotIconRefInContextがあるから敢えてimage化する必要は無いよ。
Image化必須ならkCGImageAlphaPremultipliedFirstで作ったARGB BitmapContextに
PlotIconRefInContextを使って描きCGImage化する。
PlotIconRefはalphaの扱いや縮小アルゴリズムが奇麗じゃない。

132 :名称未設定:2006/12/22(金) 15:24:48 ID:OVFS2iWl0
実行モジュールの大きさってやっぱりアプリケーションの起動時間に影響する
でしょうか?例えば1つのアプリの中に滅多に実行しないような機能がある場合、
それらをまとめて別アプリケーションにして、元のアプリのサイズを小さくした
ら、このアプリの起動は速くなるもんでしょうか?

環境はユニバーサルバイナリをXcodeでビルドする事を考えてます。

133 :名称未設定:2006/12/22(金) 16:08:56 ID:Px0gvLqG0
メモリ上に構築した機械語を実行する方法はありませんか。

134 :名称未設定:2006/12/22(金) 17:28:17 ID:n/v7cRvj0
ウイルスでも作る気か?

135 :名称未設定:2006/12/22(金) 21:32:29 ID:Px0gvLqG0
>>134
JITコンパイラとかです。専用ツールでもつくって__PAGEZEROを使っちゃおうか・・・

136 :128:2006/12/23(土) 00:11:37 ID:oe2rGVoT0
>>129-131
遅くなりましたが、ありがとうございました。
教えて頂いた方法で描画&CGImageRef作成できました

NSImageはdrawSelectorに指定したメソッド内でPlotIconRefInContextで描画する
NSCustomImageRepを作成してaddRepresentationすればOKでした。


137 :名称未設定:2006/12/23(土) 06:04:07 ID:XBHmFIMQ0
>>132
>実行モジュールの大きさってやっぱりアプリケーションの起動時間に影響する
>でしょうか?

デマンドページングのお陰で大きさ自体はあまり関係ないような。

138 :名称未設定:2006/12/23(土) 08:01:31 ID:XBHmFIMQ0
>>133
ptrace(2)で出来るっぽいんだが...

139 :名称未設定:2006/12/23(土) 11:59:24 ID:zGwkd41K0
>>138
色々試してみたら普通にmallocしてもいけた

140 :名称未設定:2006/12/23(土) 17:37:46 ID:NAvmzYRY0
>>139
ん?
無理矢理やるならスタックを意図的に書き換えるとかその手のことをやるんだと
思うのだが... 「malloc して」とは?

141 :名称未設定:2006/12/23(土) 19:21:03 ID:zGwkd41K0
>>140
mallocで確保したメモリに適当に機械語をコピーしてそこにジャンプしたら普通に実行できた。

142 :名称未設定:2006/12/23(土) 19:24:41 ID:LNTqrXzn0
mallocで確保したメモリブロック上のコードが将来的にも実行可能かどうかは分からんがな。

143 :名称未設定:2006/12/23(土) 20:34:20 ID:zGwkd41K0
そうだね。安全な方法を探すよ。

144 :名称未設定:2006/12/23(土) 23:19:32 ID:U3W727t10
ブラウザで動いているJavascriptのインタプリタや表計算ソフトの数式入力のようなものを実装するのって難しいんでしょうか
スクリプトを書いていく形式で設定するアプリケーションを作りたいのですが、
一々正規表現で構文を解析して、相当する関数を呼び出すのはあまりにも不格好な気がしますしCPUにも負担がかかりそうです。

145 :名称未設定:2006/12/24(日) 05:26:35 ID:nwO4UBuT0
darwinのフォントが見づらいのですが
linuxとかwindowsみたいなフツーのっていうか
プログラミングしやすい等幅のフォントは無いのでしょうか。



146 :名称未設定:2006/12/24(日) 10:41:33 ID:cwohoB1s0
darwinのフォントって何?

147 :名称未設定:2006/12/24(日) 10:43:10 ID:HRZCpNlQ0
フツーのフォントって何?

148 :名称未設定:2006/12/24(日) 14:22:26 ID:0fL2q3qG0
>>145
Terminal初心者質問スレ Part 6
http://pc7.2ch.net/test/read.cgi/mac/1159930072/


149 :名称未設定:2006/12/24(日) 14:27:42 ID:qLRcmekg0
Terminalは VT100 Roman 9pt
TextMateは Bitstream Vera Sans Mono 12pt
が最近のお気に入りです。つかスレ違い。

150 :名称未設定:2006/12/24(日) 16:58:08 ID:EyeyLU9K0
>144
重いつったってテキストで書かれたものを実行するんだから
基本的にはそうするしかないだろ。普通は正規表現で構文解析とかしないし、
解析が終わってから実行したほうが速いけどな。

本格的にやりたいならオーソドックスにはYaccとか使うんだろうが、
単にスクリプト機能付けたいなら、JavascriptとかSchemeとか
既存のスクリプト言語のエンジン突っこんだほうが楽かも。

151 :名称未設定:2006/12/24(日) 18:26:29 ID:LX+/x0kF0
>>141
へー。
最近はセキュリティー等を考慮して、OSによってはヒープ上は実行不可にして
あったりするはずだが... Mac OS X は違うのか。

44 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)