5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 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 は違うのか。

152 :名称未設定:2007/01/15(月) 22:07:13 ID:DTpFS3v90
当方Cocoaしか触ったことないのに、Carbonダイアログを
書かないといけない状況に置かれますた

テキストフィールドを置こうと思ったもののさっぱり手がかりがつかめず。
仕方ないので楽そうなスライダーから勉強を始めました。

サンプルコード「AppearanceSample」の「LiveFeedbackDialog.cp」
をみて、文化が違いすぎるのに呆然としています。
ぱすかるすとりんぐ とか 普通に使われていて、10.4では警告出る状態。

めいっぱいシンプルな、モダンな実装のサンプルは一体どのあたりに
あるのでしょうか・・・


153 :名称未設定:2007/01/15(月) 23:19:54 ID:YlDRnpte0
モダーンなサンプルの場所は知らんけど、CarbonでもNib使えるべ?
Carbon用NibファイルでWindow/Panelにコントロール貼付けてってのはどうよ。

知ってたらスマン。

154 :153:2007/01/16(火) 00:02:44 ID:YlDRnpte0
つか、かなり的外れな事書いてんな。俺。

英語で、しかも古いけどCarbon入門編つーことで
http://www.mactech.com/macintosh-c/

小池さん。
http://www.ottimo.co.jp/koike/

後はADCか・・・。
http://developer.apple.com/samplecode/Carbon/index.html

155 :名称未設定:2007/01/16(火) 10:27:41 ID:jPCM4LbO0
お金出してもいいなら、「Carbon入門」という本を買っておくといいかも。
内容は10.2向けだけど、基本はちゃんと押さえてある。

Carbonの場合、バインディングやKVCをすべて自前で書かないといけない。
基本はコントロールにイベントハンドラを仕込んで、
イベントハンドラ内で構造体またはクラスを更新。
コレクションはCoreFoundationを使う、といった感じだろうか。

対象OSが10.3以降なら、HIViewというキーワードで探すといいかも。
HIViewベースなら、Cocoaに近い感覚で組める…かもしれない。
(ただし自作アプリ限定。プラグインだと動作がめちゃくちゃ不安定)
それでもイベントハンドラとかは手動で仕込まないといけないけど。

逆に対象OSに10.2も含むなら、HIViewベースだと制限多すぎてきつい。

10.4だけでいいなら、モダンなCarbonアプリのスケルトンというのがADCで公開されてる。
http://developer.apple.com/samplecode/DTSCarbonShell/index.html

156 :名称未設定:2007/01/16(火) 13:16:28 ID:u1KK+gup0
ResEditでダイアログ作ってテキストフィールド作る。

157 :名称未設定:2007/01/16(火) 14:50:17 ID:ibOBhF280
何で今時Carbon?

CarbonはCocoaに比べると低レベルなんでいろいろ冗長なコードを書かねば
ならないのがつらいところ。そのサンプルは見てないけど、Pascal文字列
使ってるってことはDialog Managerを使ってるんだろうか?

Carbonだけで完結出来るんならCodeWarrior+PowerPlantが手っ取り早い
んだけど、もうないしな。Carbonを使う理由がOS9との共用ならモダーンな
Carbonなんて時間の無駄だよ。泥臭いコードで十分。

158 :名称未設定:2007/01/16(火) 21:17:50 ID:/fH45kXv0
皆さんコメントさんくすです。
ターゲットがQuickTime Pluginなので・・・Cocoaと相性悪くて。

xcode付属のサンプルを元に、なんとかSliderのliveFeedBackを実装
しました。なんでこんなに行数が必要なんでしょ・・・Bindingが使えれ
ばすごく楽なのに。
それに、CocoaのControlに比べてCarbonのControlってかなり機能が
少ないですね。全部書かないといけないってのがよくわかりました。

ほんとは数値入力専用のテキストフィールドにしたかったんですが、
入力キーコードの制限とか、さっぱり理解できず、断念しました。


159 :名称未設定:2007/01/16(火) 22:58:52 ID:gON21zZX0
>>158
そういうことならコレが参考になるかもね。
ttp://developer.apple.com/documentation/Cocoa/Conceptual/CarbonCocoaDoc/index.html

160 :名称未設定:2007/01/17(水) 11:53:38 ID:NyzMRNwY0
carbonでしかもquickdrawで恐縮なんですが、デスクトップのポートの取得方を
ご存知の方がいたら御教示してはいただけないでしょうか。

今は、 WindowRef _window;  Rect_rect;
CreateNewWindow( kDocumentWindowClass, kWindowStandardHandlerAttribute,&_rect, &_window );
SetPort(GetWindowPort(_window)); 
DisposeWindow(_window);
と書いた上で、PaintRect()などを使ってデスクトップ上に直接描画しているので...

161 :名称未設定:2007/01/17(水) 19:10:55 ID:qWZnkS/x0
perlで書いたスクリプトを、Finderから起動する方法ってありますか?

ファイルをD&Dすると、それを引数として渡せるような方法があると便利なのだけど。。。

162 :名称未設定:2007/01/17(水) 19:38:52 ID:h13GEcKp0
>>161
AppleScriptでこんな感じにラップしてやってる。アプリとして保存しといて。

on open itemList
repeat with anItem in itemList
do shell script "~/bin/mycmd.pl " & quoted form of POSIX path of anItem
end repeat
end open

163 :名称未設定:2007/01/17(水) 19:48:08 ID:5Rhemwv60
>>160
デスクトップに直書きはやらない方がいいのでは

164 :名称未設定:2007/01/17(水) 20:39:19 ID:CMlfdpjw0
>>161
スクリプトの拡張子を.commandにする。
引き数については分かりません。

165 :名称未設定:2007/01/17(水) 22:26:53 ID:qWZnkS/x0
>>162
出来ました!ありがとうございます。
Apple Scriptもこれから勉強したいです

>>164
そんな方法もあるのですね。
引数を渡せない?みたいですがその必要が無いバッチ処理なんかには便利そうですね

166 :160:2007/01/17(水) 23:17:11 ID:NyzMRNwY0
>>163

直書きしない方がいいということは、重々承知なのですが...
それでも、したいので御教示願えませんか?
osXではGetCWMgrPort()がないみたいなので。
どなたかよろしくお願いします。

167 :名称未設定:2007/01/18(木) 00:37:08 ID:X4O8u6uM0
メインデバイス、グローバル座標、・・・ムニャムニャ・・・

168 :名称未設定:2007/01/18(木) 01:59:35 ID:oz59uNpC0
つ DropPerler
http://www.apple.com/jp/downloads/macosx/tools/dropperler.html

169 :名称未設定:2007/01/18(木) 10:21:21 ID:2ZhOx3mw0
>>166
最初にターゲット環境を書いて下さいな。
OSXの方がデスクトップへの描画は簡単かつ安全、OverlayWindowを作って
好きに描けば良い。
http://developer.apple.com/samplecode/WindowFun/index.html
http://developer.apple.com/samplecode/GrabBag/index.html

170 :160:2007/01/18(木) 12:31:56 ID:CwoUdZ3X0
>>169さん、ありがとうございます。しかし、私の求めているものではありませんでした。

つまり、デスクトップへの描画をしたいのではなくて、デスクトップへの直書きがしたい
のです。CopyBits()なんかを使って直接画像をデスクトップへ転送したいので、デスクト
ップのポートの取得方を知りたいのですが...。

それでターゲット環境を詳しく書くと、os X ( PPC 10.2.8 or later)でcarbon (CFMで
もMach-Oでも、開発環境もcwでもxcodeでも)です。

どうかお力をお貸しください。

171 :160:2007/01/18(木) 14:14:56 ID:CwoUdZ3X0
自己解決できました。>>167さん、ヒントありがとうございました。
とりあえずこんな感じでできました。

GDHandle hGD, hTargetDevice = NULL;
hGD = DMGetFirstScreenDevice (true);
hTargetDevice = hGD;
_desktop=(**hTargetDevice).gdPMap;
CopyBits( 描画するもの , (BitMap *)*_desktop, &x->_rect,&x->_rect,srcCopy,NULL);

172 :名称未設定:2007/01/18(木) 14:56:42 ID:KXuK9hgc0
http://developer.apple.com/jp/technotes/tn2003.html
ダブルバッファ化されたウインドウを無効にする 属性って、廃止されちゃったんですか?

UniversalInterfaces3.3.2にはしっかりあるのに、UniversalInterfaces3.4.2では見つからないんですが。

173 :158:2007/01/23(火) 20:22:03 ID:FaRbpiJF0
158です。
Carbonのタブコントロールって、もしかして自動では動かないので
しょうか?重なって表示されてしまいます。
タブ切り替えイベントを拾って、一個ずつ消したり出したりしなきゃ
いけないんでしょうか?


174 :名称未設定:2007/01/24(水) 10:39:29 ID:14r0HxN40
>>173
どうもそんな感じっぽい。
俺もControlAction仕込んで、手動で同じことした。
Carbonは何もかも手作業でやると思ってた方がいい。
他にも理不尽なとこはたくさんあるので、まあ、がんばれ。

同じような処理を何回も書かにゃいけないので、
C++使えるなら、クラスとかオーバーロードとか使って
できるだけ手間を省いた方がいい。
じゃないと後で大変なことになる。

イベントハンドラ/コールバックだらけのソースとか。
Create/RetainとReleaseの対応とか。
ごちゃごちゃしてくるので、後々のことを考えてコーディングすべし。

175 :名称未設定:2007/01/24(水) 11:24:12 ID:h/NRdt7o0
CarbonはFlavorとか香ばしいからな。OS Xではあまり関係ないけど、コールの
順番とかもあったしな。

176 :名称未設定:2007/01/24(水) 15:20:00 ID:nqf96Svl0
>>173
まず基盤となるボタンとタブのあるDITLを用意する
 OKボタン、キャンセルボタン、タブコントロール

次にタブの中身を、タブの数だけ別々のDITLで用意する
 タブ1中身(129)、タブ2中身(130)、タブ3…みたいに。

ソースはダイアログ開く時にアクティブなタブの中身を表示するために
 AppendDialogItemList( dialogRef, 129, overlayDITL );

あとは itemHit でタブ叩かれた時に
 ShortenDITL(…);
で、くっつけた DITL 消してから
叩かれたタブの番号に応じた DITL を
 AppendDialogItemList(…);

中身の itemHit 番号は基盤となるDITLのアイテム数の分だけ加算

switch(itemHit)まみれにはなるけどアイテムの追加や管理は楽になる気がした

177 :名称未設定:2007/01/24(水) 15:35:05 ID:nqf96Svl0
>>176はリソースフォークでの話ですがnibでも似たようなやり方ができたよ多分
Carbonならこのページとかが参考になるかも
ttp://www.mactech.com/articles/mactech/Vol.13/13.05/AppearanceExtension/index.html
あとこのサイトのMACINTOSH C CARBON


178 :名称未設定:2007/01/24(水) 15:36:34 ID:nqf96Svl0
めちゃくちゃ古い記事だけど。
て書き忘れたスマン

179 :158:2007/01/24(水) 19:03:00 ID:0f0a8k+b0
皆さんさんくすです
Developer ConnectionにControl Implementation Examplesって
いうのがありました。Carbonアプリってまさに手動でやってるんですね。

Cocoaから始めた自分には目からうろこです。はは・・・

180 :名称未設定:2007/01/24(水) 21:35:32 ID:dBgImoNl0
大昔 Mac は「使うのは天国、プログラム書くのは地獄」とか言われてたが、
今思うと API(および OS)がショボかったとも言えるのかねえ。
今 Cocoa でできることはほぼ NeXTSTEP で出来てたからなあ。
その分 Cocoa の場合は逆に中の人がすごく頑張っているのかもしれないけど...
中の人に感謝。

ところで今、PowerPlant で作られたアプリがあって、それを Universal にしないと
いけないんだが、まず PowerPlant を Universal にしないと orz
激しく Cocoa で UI 作り直したい... もしかしてそうした方が楽かな?
そもそも人が書いたコードだし orz

181 :名称未設定:2007/01/24(水) 21:45:46 ID:y+5rvC5E0
ClassicからCarbonへ---Porting to Mac OS X---
ttp://homepage2.nifty.com/ayaki/index.html
このサイトってもう完全閉鎖? どっかに移転してないのかなぁ

182 :名称未設定:2007/01/25(木) 00:18:55 ID:Mr5nf/0f0
>>180
PowerPlantのUniversal化ならAppleからいくつかドキュメントが出てる。
LStreamクラスが一番変更が多いけど、どう変更したらいいかも書いてる。
メンテモードのソフトならPowerPlant、将来も拡張するつもりならCocoaで
行くのが無難だろう。

ちなみに面倒くささから言えば

PowerPlantのUniveral化>>Carbon化>>>PowerPC対応>>>>32bit Clean化

てとこかな。思ってたよりは簡単に行った。

183 :名称未設定:2007/01/25(木) 01:04:23 ID:tEUEiyXu0
ADCからメール来てたね
まず簡単に恩恵がありそうなのは、新APIのNSOperationかなぁ?

184 :名称未設定:2007/01/25(木) 18:30:53 ID:y+gDRawD0
ADC登録してない俺にNSOperationについて詳しく

185 :158:2007/01/25(木) 23:34:41 ID:ZXJcN4tV0
altivecの勉強を始めたところです。
日本語の解説記事がほんと少なくて・・・

定数をコードに直接書くと、都度メモリアクセスが発生する、という
記述をみつけました。
だとすると、メモリ操作に使うポインタや、ポインタ演算に使う定数も、
altivecのレジスタに置く方がよいのでしょうか?
(vec_ldlやvec_stlの引数を考えています)


186 :名称未設定:2007/01/26(金) 00:05:06 ID:Mr5nf/0f0
何で今さらaltivec?

187 :名称未設定:2007/01/26(金) 10:41:53 ID:otuKoRur0
>>185
わかっていると思うが、AltivecはPowerPC限定だぞ?
Intel CPU向けの10.4や10.5だと全く意味を為さない。
というか、そもそもビルドできない気がする。

たぶん何かのプラグイン作ってると思うけど、高速化を考えてるなら
Altivec使う前に最適化だけで事足りるか検討した方がいい。


188 :158:2007/01/26(金) 17:36:58 ID:0532MsUe0
>>187
画像のフォーマット変換が、すごく重たいのでなんとかしたいのです。
バイト単位で並び替えするだけなんですが。(PlanerYUV->ChunkyYUV)

>最適化だけで事足りるか
 どういうコードが早いのか、キャッシュ効率はどうかとか、
 16byte alignedさせるさせないの違いはどの程度とか、
 gccの__builtin_prefetchとかどの程度効果あるのかとか、
そこらへんの知識が無いので、ものは試しということで。
お勧めのサイトがあったら教えてください。

189 :名称未設定:2007/01/26(金) 19:03:08 ID:EkofD2Iq0
ハイレベルなframeworkやlibrary側から調べるのが賢明な方向だと思うけど
例えばvImage.frameworkは使えないの?

190 :158:2007/01/26(金) 23:37:55 ID:0532MsUe0
残念ながら使えません。
サポートされているフォーマットが少なすぎます。
それに、vImageは、16 byte alignedされていることが必要かと。


191 :名称未設定:2007/01/27(土) 22:50:32 ID:IEDqz7jO0
>ttp://www.freescale.co.jp/pdf/74xxG4programing_ver1-3.pdf
日本語!しかも詳しい!

192 :名称未設定:2007/01/28(日) 00:16:01 ID:Y93uhT8w0
自分の非力な PBG4 だと、H.264 の再生はコマ落ちが激しくて悲しい思いを
していたのだが、まだまだデコーダーの最適化の余地はあるのかな?
だったら俺も挑戦してみようかな...
しむどはだいがくせーの頃すぱこんを使って以来だけどもw

193 :名称未設定:2007/01/31(水) 06:56:06 ID:C30iTYn10
Mac OS X の計算機のアプリケーションをプログラマモードで使うと「バイトスワップ」
ってのがあるけど、あれは数が大きくなる方向にはスワップできないのかな。
もちろんその場合はバイト数をどうにか指定しないといけないわけだが。

例えば 0x4000 をバイトスワップして 0x40 を表示する事はできるけど、
その逆(この場合バイト長を2として)の 0x40 -> 0x4000 もできてほしいのだが。

って書いてる間にバイトスワップの簡単なプログラムを自作した方がよかったりしてw

194 :名称未設定:2007/01/31(水) 09:26:04 ID:zBStrNDf0
バイトスワップなんてApple製のがあるじゃないか

195 :180:2007/02/02(金) 00:35:49 ID:qQOd1z1e0
ふーとりあえず Universal 化完了したかな。

PowerPlant は基本的に Apple のドキュメントのコードをコピペして完了。
というわけで UI 部分に関しては思ったより簡単だった。 ま、シンプルな UI なのだが。

リソースフリッパーを用意せずにコンストラクタのロードルーチンを変える方針すか。
ま、ストリーム演算子をいろいろ定義してるし、その方がきれいなのかな。
LDataBrowser も使ってて、こちらは 'DBC#' 用のリソースフリッパーを使ったが、
日本語のサイトの方はプログラムがバグってるね。

196 :名称未設定:2007/02/05(月) 00:11:26 ID:88l1sHKd0
そういえば Coela とかをリリースされていた I さんって、しばらく前からネット上での
活動を見かけませんが、どうなさってるんですかね?
おそらくの中の人も驚いていた深い洞察... 非常に残念。

197 :名称未設定:2007/02/05(月) 00:33:25 ID:88l1sHKd0
おっと Coela スレがまだ残っていて驚き。

しかし Coela って Tiger でもちゃんと動くのね。
SPI を使う、明示されていない API の挙動を使う、とかいったことは
してないんだろうなあ、と。

198 :名称未設定:2007/02/05(月) 04:27:31 ID:lZChh0sc0
USB機器やBluetooth機器のドライバ作成に関して、日本語の解説はないでしょうか?

199 :名称未設定:2007/02/05(月) 09:54:10 ID:fa4DUQ2h0
>>196
4年以上も放置されてるね。

200 :名称未設定:2007/02/05(月) 13:28:41 ID:2RZ2mSDL0
>>198
ドライバ周りの資料は多くない。
ここ、ttp://homepage.mac.com/inada/ にメールして聞く。
ここ、ttp://www.cocoa-study.com/active/ に出てUSBの人に聞くとか
するのが一番早いと思う。


201 :名称未設定:2007/02/05(月) 15:20:44 ID:1uiEOuKU0
>>198
Mac OS X Dev-jp あたりで流してみたら?
あそこって、結構企業の人とか見てるみたいだし。
過去ログにも何かあるかもね。

一番情報が多いのは本家のMLだと思うけど。

202 :名称未設定:2007/02/05(月) 16:27:18 ID:CTtpqGyE0
>>200>>201
情報ありがとうございます!
ttp://homepage.mac.com/inada/ は知らなかったです…。
Cocoaアプリはともかくドライバは一切作ったことがないで、
こういうとっかかるための情報は非常にありがたいです。
まずはここから攻めてみたいと思います。

質問はある程度試行錯誤して問題が具体的になったらしてみます。

203 :名称未設定:2007/02/12(月) 16:48:47 ID:FfENWjmv0
久しぶりに Carbon モノを再コンパイルしたら... getIndString() とかも deprecated とか
言われるようになってるんですねえ。もうダメっすか。

で、CFBundleCopyLocalizedString() を使えって書いてあるのだが.... これって STR# の
データを .strings ファイルに書き出して使えってことですかね?
リソースデータはもうダメっすかw

204 :名称未設定:2007/02/12(月) 21:22:37 ID:IdJ2WBEL0
古いコードでいつまでも粘ってる会社の仕事受けてるモンとしては
さっさとヘッダからも無くして欲しい。

そういえばSTR#リソースをstringsに書き出すアプリどっかで見たような。
まあ自分で書いてもそんな手間じゃないか。

205 :名称未設定:2007/02/12(月) 22:42:57 ID:+oZLqX1D0
DeRezでできるんでない?

206 :203:2007/02/13(火) 18:45:00 ID:EgIpXlB50
あ、STR# は .r をビルド時に Rez してるんで、 .strings に移す事自体は
そう手間じゃないんですが... STR# (rsrc) を使っていること自体を否定されてる
のかな、と。.nib + .strings なアプリにした方がいいんでしょうねえ。

ちなみに元のコードは項目数が一応不定で、それを全部読み込んで使う、という
ことになっていたので、CFBundleCopyLocalizedString() じゃなかったりします。
確か CFPropertyList で .strings ファイルを読み込めるんだっけ?

207 :名称未設定:2007/02/13(火) 22:25:13 ID:8u9BREpQ0
OSXでperl書いて保存出来るエディター、なんか良いのフリーで無いですか?
miじゃ保存したら動かなくなる(´・ω・`)

208 :名称未設定:2007/02/13(火) 22:32:13 ID:mJpCr8iv0
miでPerl書いてますが何の問題もありません。

209 :名称未設定:2007/02/13(火) 22:35:42 ID:Y/ylFVAW0
テキストエディット
vi

210 :名称未設定:2007/02/13(火) 22:46:22 ID:6edQT77i0
TextWrangler
Emacs
EclipseのEPIC添え

211 :名称未設定:2007/02/14(水) 01:20:02 ID:Byqr1UsV0
コードウォーリアのアカデミック版って、通常版と値段以外に違いはあるのですか?
配布用アプリが作れないバージョンもあったと思ったのですが、記憶違いでしょうか?

212 :名称未設定:2007/02/14(水) 01:38:15 ID:y8pQSGCa0
商用利用禁止じゃなかったっけ?

213 :名称未設定:2007/02/14(水) 10:37:02 ID:FNtjdzD30
>>207
改行コードをLFにしないと動かない罠?

214 :名称未設定:2007/02/14(水) 12:23:53 ID:+wzsPsMw0
SubEthaEdit
http://www.codingmonkeys.de/subethaedit/

215 :名称未設定:2007/02/14(水) 12:25:27 ID:+wzsPsMw0
>>206
>CFPropertyList で .strings ファイルを読み込めるんだっけ?
確かDictionaryで取れたと思ふ

216 :名称未設定:2007/02/14(水) 12:41:41 ID:JDB1KZqT0
>>213
LF・UTF-8にしたけどね。
動いている.pmをmiで開いて何も弄らないで保存しても動かなくなる。
500エラーってw

217 :名称未設定:2007/02/14(水) 12:45:06 ID:FNtjdzD30
>>216
動かないで500エラーって、CGIの話なの?
まず perlだけで実行して文法チェックとかしたの?

218 :211:2007/02/14(水) 13:04:30 ID:Byqr1UsV0
>>212
サンクス。
で、僕が記憶してたあんまり使えないバージョンは、ディスカバー版でした。

219 :名称未設定:2007/02/14(水) 15:20:02 ID:FNtjdzD30
>>216
「動いてる」ってあるから文法や設置の問題はないんだね。
とすると、これか?
ttp://pc9.2ch.net/test/read.cgi/mac/1105121251/737
miでファイルを開いたままだとCGIエラーになるらしい

220 :名称未設定:2007/02/14(水) 16:13:46 ID:20e2qiKW0
>>219
違うっぽい。そもそも動いている状態でのファイルはCR+LFで保存されているんだが…
他にmiで開いているときの症状としてはが\になっている。
んでしょうがないからテキストエディットで開くと今度は日本語フォントが文字化けしている。
テキストエディットで開いて保存すれば動く事は動くんだが…

221 :名称未設定:2007/02/14(水) 16:36:21 ID:6NTUEocI0
結局、フリーなエディタのレスは全部無視かよw いっぺん死んで来いボケ

222 :名称未設定:2007/02/15(木) 00:19:32 ID:NGdLEabY0
>>220
日本語フォント表示の時にバックスラッシュに見える文字は
欧文フォントではAウムラウト(Aに点々)になる。
欧文表示にしてチェックしてみては。
日本語は文字化けになるが。

>>221
>>208 以降は全部無視かよw

223 :名称未設定:2007/02/15(木) 00:36:55 ID:55nZ4Ir70
Resource Manager、QuickDraw、ATSUI、。。。

224 :名称未設定:2007/02/15(木) 03:49:24 ID:a7GNb/Rv0
もしかしてあれかね?GUIエディタでスクリプト書いていきなし実行!>エラー
単にパーミッションがあれだったとか(w

225 :222:2007/02/15(木) 22:46:24 ID:NGdLEabY0
忘れてた。

ttp://vivian.reverb.jp/mac_backslash.html

mi だと「モードの設定」の「文字コード」のところにバックスラッシュ
を変換するオプションがある。これを On にしてみたら。

226 :名称未設定:2007/02/17(土) 12:17:31 ID:SFQfGf7K0
自分はpantherなのだが、
・良い点
現在出回っているプログラミンングの書籍がPanther版が多い
・悪い点
セミナーに出席するとTiger、Lepoard特有の話をされ、対応できない
Tigerインストールすると、書籍の内容全滅だしな。。。

227 :名称未設定:2007/02/17(土) 13:57:49 ID:y2cagbDS0
ユーザーがPantherを想定してもいいけど、デベロッパがPantherは駄目だと思うぞ
Xcodeだって最新版入らねえじゃん

228 :名称未設定:2007/02/17(土) 13:59:22 ID:sCm89ebR0
俺Pantherだけど、ウニバーサル作れないからそろそろ買い替えようかと思ってる。
MacBookの一番安いやつで快適にXcode使える?

229 :名称未設定:2007/02/17(土) 14:56:34 ID:OpvvBP7P0
MacBookで十分。前はiMac G5使ってたんだが、コンパイル早くて涙出た。

230 :名称未設定:2007/02/17(土) 15:01:00 ID:OWYohwrW0
で、ウニバーサルだと二倍かかってやっぱり涙出る

231 :名称未設定:2007/02/17(土) 15:02:37 ID:SkOK14GM0
つーかTigerでもSDKをPantherのに指定すればいい話なんだから
全滅なんてことはない

232 :名称未設定:2007/02/18(日) 22:53:24 ID:R362fn6r0
すみません、perlで作ったcgiってミミカキで書いて保存してもコンパイル?しないとダメなんですか?

233 :名称未設定:2007/02/18(日) 23:06:46 ID:anrxDM/J0
>>232
OS9時代のMacPerlの事ですか?

234 :名称未設定:2007/02/19(月) 09:27:14 ID:JKnrG99E0
>>232
普通は、perl、php、ruby、python等で書いたスクリプトはコンパイルしなくていいよ



235 :名称未設定:2007/02/20(火) 23:28:54 ID:rceXk+Z10
lipoについて質問です。
ライブラリhoo.aとそれを使うbar.aがあったとして、これをUniversal化
したいのですが・・・
単純にhoo.aをlipoでUniversalしてから、bar.aに食わせると、
bar.a(ppc)にhoo.a(universal)が組み込まれた状態になります。

で、bar.a(ppc)とbar.a(i386)をlipoでくっつけると、
bar.a(universal)にはhoo.a(ppc)x2+hoo.a(i386)x2が埋め込まれた状態に
なってしまうようなのですが・・・

これって重複した部分をケズることって後からできるんでしょうか?
それとも、lipoのオプションで対処できるんでしょうか?

236 :名称未設定:2007/02/21(水) 05:51:43 ID:Ntbzjxpl0
-remove arch_type
-extract arch_type
なんでもあるよ。man lipo

Cocoa Seminar 3月分
http://developer.apple.com/jp/briefing/cocoa.html

237 :名称未設定:2007/02/22(木) 13:08:33 ID:RjoEGLAB0
>>236
サンクスです。なるほど・・・後からどうにでもできるんですね。

238 :名称未設定:2007/02/23(金) 19:47:52 ID:aHGlPpbN0
OS-X 10.2.8で言語はperlです。

プログラム上で外部ファイルを読込や(require 'cgi-lib.pl';とか)
画像ファイルを読込んで表示させようとしても
403のエラーが出てしまいます。

試しに画像に直接アクセスしてみたところ、ローカル上で表示出来るものが、
直接アクセスでは403のエラーがでます。

○ file:///Library/WebServer/CGI-Executables/study/sampleimage/2.gif
× http://localhost/cgi-bin/study/sampleimage/2.gif

こんな感じで。

アクセス権を疑って、画像ファイルのアクセス権を644ではなく他のもので試してみても表示できず。


表示できない原因が色々検索かけてみても発見できないんですが、
すいませんが何方か知恵を貸していただけませんか?
(http.confとかも影響あるのかなあと思ったのですが、それらしい記事が検索で出てこない・・・)

よろしくお願いしますm(_ _)m

239 :名称未設定:2007/02/23(金) 19:53:38 ID:RK/NDXls0
>>238
http://www.google.com/webhp?q=Mac+OS+X+CGI

240 :名称未設定:2007/02/23(金) 20:02:37 ID:8bnw6Kjv0
>>238
Webブラウザから、ttp://localhost・・・ だと読めるの?
あと、そのスクリプトで、外部のアドレス(ttp://img.2ch.net/img/mac_b.gif)とかは読めるの?

241 :238:2007/02/23(金) 21:07:38 ID:aHGlPpbN0
>>239>>240
ありがとうです。

>>240
それは可能なんですよね。
スクリプトは実行可能、なんです。

画像を読込んだり、外部ファイルが読込んだり、
が、出来ないんですよね・・・。

今ためしてみたら、新しいファイルはスクリプトから作成することが出来たので、上位フォルダによるアクセス権ではなさそう、で。

う〜ん。httpd.confのUser wwwをUser (name)、っていう風にも疑ってみたんだけれども、近いところまでいって、違った、っていう感じで。httpd.confとname.confをいじるときにまちがって、アクセス制限してしまったかな、ともおもったんですが・・・。




242 :名称未設定:2007/02/23(金) 22:45:30 ID:zBZD6K2c0
Carbonとツールチップ?ヘルプについて質問です。

nibなWindowにおいたコントロールのプロパティに、1行ヘルプを
書き込んだんですが、実際に動かしてみると、ヘルプが出るタイミン
グが挙動不審で、待っていても出なかったりするのです。
(modalで動かしているダイアログです)
なにかこつがあるのでしょうか?

243 :名称未設定:2007/02/24(土) 00:33:59 ID:MLfFfufa0
>>241
ふつうのブラウザから見られるんだったら、Apacheの設定の問題じゃない気がする。
あとは、スクリプトのソース見せろ、としか言えないな。

244 :名称未設定:2007/02/24(土) 01:09:59 ID:VabyNnF10
ちゅうか10.2.8って...なんで古いままなの?

245 :238:2007/02/24(土) 20:46:22 ID:twlpw7Ij0
>>243

ソースはこんな感じですね。
(ちなみにスクリプトはかなり古いホームページサンプルスクリプト大全集/技術表論社のものです)

#!/usr/local/bin/perl
#
#日付け、時刻の表示(グラフィック版)
#

#カスタマイズ可能な変数
$title ="Today status(image)";

#ヘッダー出力

print "Content-type: text/html\n\n<html><head><title>$title</title></head>\n";

##イメージファイルの置かれている場所
$data = "./sampleimage";

#時刻、日付けの情報を得る。

($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
$mon++; #月に一足す



246 :238:2007/02/24(土) 20:47:45 ID:twlpw7Ij0
#イメージを出力するHTMLを用意
$imon = &putimg($mon);
$imday = &putimg($mday);
$ihour = &putimg($hour);
$imin = &putimg($min);
$isec = &putimg($sec);

#HTMLタグ出力

print <<END_OF_HTML;
<body>
<center>
<h2><b>今日は$imon月$imday日です。</b></h2><br>
<b><h2>今日の時刻は$ihour時$imin分$isec秒です。</b></h2><br>
</center>
</body>
</html>
END_OF_HTML



247 :238:2007/02/24(土) 20:48:28 ID:twlpw7Ij0
#与えられた数字を表示するHTMLタグを出力
sub putimg{
local($dec) = @_;
local($str) = "";

foreach $n (split(//,$dec)){
$str .= "<img src=\"$data/$n.gif\">";
}
return $str;
}


# _____


248 :238:2007/02/24(土) 20:51:34 ID:twlpw7Ij0
で、こっちがブラウザでの出力結果です。

<html><head><title>Today status(image)</title></head>
<body>
<center>
<h2><b>今日は<img src="sampleimage/2.gif">月<img src="sampleimage/2.gif"><img src="sampleimage/4.gif">日です。</b></h2><br>
<b><h2>今日の時刻は<img src="sampleimage/2.gif"><img src="sampleimage/0.gif">時
<img src="sampleimage/3.gif"><img src="sampleimage/7.gif">分
<img src="sampleimage/4.gif"><img src="sampleimage/8.gif">秒です。</b></h2><br>
</center>
</body>
</html>

249 :238:2007/02/24(土) 20:53:19 ID:twlpw7Ij0
あ、まちがえました。↓こっち

<html><head><title>Today status(image)</title></head>
<body>
<center>
<h2><b>今日は<img src="./sampleimage/2.gif">月<img src="./sampleimage/2.gif"><img src="./sampleimage/4.gif">日です。</b></h2><br>
<b><h2>今日の時刻は<img src="./sampleimage/2.gif"><img src="./sampleimage/0.gif">時
<img src="./sampleimage/5.gif"><img src="./sampleimage/2.gif">分
<img src="./sampleimage/1.gif"><img src="./sampleimage/3.gif">秒です。</b></h2><br>
</center>
</body>
</html>

250 :238:2007/02/24(土) 20:56:34 ID:twlpw7Ij0
>>243
↑ソースはこんな感じです。

>>244
ん〜ん〜 貧乏だから><;

251 :名称未設定:2007/02/24(土) 21:42:27 ID:73VYToaC0
>>238
Apacheの設定。

ScriptAliasで探せば、原因が分かるよ。

252 :名称未設定:2007/02/26(月) 19:30:34 ID:auAPZX1m0
>> 242
あんまり調べてないから嘘言ってるかも知れないけど、
タイミングが微妙なのはおそらく仕様。

HMDisplayTag
HMSetTagDelay
HMSetHelpTagsDisplayed

この辺使って何とかならないかな?


253 :名称未設定:2007/02/28(水) 00:19:02 ID:H7pMfgvW0
OS X でMACアドレスを取得したいのですがどうすればいいんでしょうか?
FreeBSDならgetifaddrsで取得できるのですが、マックで開発するの初めてなんで訳わからないです。
すみません

254 :名称未設定:2007/02/28(水) 00:42:14 ID:RR2LMicJ0
>>253
ttp://developer.apple.com/samplecode/GetPrimaryMACAddress/

255 :名称未設定:2007/02/28(水) 01:22:26 ID:H7pMfgvW0
>>254
ありがとう!
Cocoaがどうしたとかでよくわかんなくなってたから、
生Cのコードが見れて嬉しいです。
感謝感謝。stdio.h大好き。

256 :238:2007/02/28(水) 18:49:45 ID:6PQ/XP3W0
>>251
ありがとうございます。
これで調べてみます!

257 :名称未設定:2007/03/03(土) 08:48:13 ID:6NRC6nsz0
ウインドウのデザインを、今の iTunes 風にするのって
簡単にできますか?

258 :名称未設定:2007/03/03(土) 14:35:23 ID:k7IbO+2o0
>>257
http://indiehig.com/wiki/Polished_Metal

259 :名称未設定:2007/03/03(土) 20:16:31 ID:Hh/XNTk50
>>255
Mac OS X にも Unix userland あるんだけど... ま、>>254 のような
やり方も面白いかも。

>stdio.h大好き。
えー。もっとまともはヘッダーはいくらでも...

260 :名称未設定:2007/03/05(月) 15:35:07 ID:iQFb5kI/0
最近無いからいいかもね。
----
『たのしいCocoaプログラミング(仮)』。Cocoaプログラミングの入門書だ。
完全な初心者向けの本を目指した。一切のプログラミングの知識は不要。C言語
だって知らなくてもオーケーだぜ。ちゃんと、C言語の解説も含めているからね。
Macのことが好きで、アプリを作ってみたいけど、どうしたらいいか分からな
い、という人に向けて書いてみた。
http://hmdt.jp/

261 :名称未設定:2007/03/05(月) 15:41:14 ID:rwvKaClj0
ただ、HMDTのだぜだよ調で書かれるのはちょっとな…

262 :名称未設定:2007/03/05(月) 15:49:55 ID:Vtjxp+U80
HMDTは他の本を散々批判してるけど、自分の本はどうなんだと・・・
HMDT第1版、第2版は初心者に不親切な本だったことは確かだ。

263 :名称未設定:2007/03/05(月) 18:58:06 ID:a5yRHSxc0
あの、Create-Get Ruleについて質問です。

Componentを書いていると、CFDictionaryを呼び出し元に返す、なんて
処理を書くのですが、当然、自前でCreateして出来た物を渡すわけです。

ところが、返す直前にCFReleaseしてしまうと、返すまえにCFオブジェク
トが破棄されてしまいますよね?じゃあReleaseせずに渡す、ということを
やると、呼び出し元がきちんとReleaseしていることを前提にしていいのか、
それとも自前でGlobal変数に持っておいて、終了時に破棄、なんてことも
しないといけないのか・・・

CocoaなオブジェクトではAutoreleaseして渡すという基本ルールがある
けど、CFなオブジェクトではどうすればいいんでしょう?

264 :名称未設定:2007/03/05(月) 21:45:00 ID:0CHxrfnt0
>260-262
だぜだよ調でもかまわないから、とにかく理解しやすいちゃんとした内容であることを望む。
HMDT第2版を買ったけど、ものすごくわかりにくいひどい本だったからなあ・・・

265 :名称未設定:2007/03/06(火) 09:34:44 ID:9XJLcZNJ0
ある程度慣れてればリファレンス代わりに出来たけど、初心者向けを謳ったのが
失敗だったな。オマケに第三版なんか内容が別なのに同じタイトルにして紛らわ
しいし。

初心者向けよりは大昔の「インサイドマック徹底ガイド」(上下)のような
リファレンス代わりに出来る本が欲しいな。ボロボロになるまで一番良く使った
本だった。初心者向けはヒレガス本だけでいいよ。あれ超えるものないし。

266 :名称未設定:2007/03/06(火) 11:13:20 ID:F0ejME5v0
初心者にもいろいろ。
1.全くプログラムの経験がない
2.オブジェクト指向プログラミングの経験が無い
3.Cocoa+Objective-Cの開発経験が無い

>今までアプリケーション開発を行ったことのない初心者のために、一つずつ丁寧に、
>かつ正面から解説し、具体的な例を挙げながら説明した OSX プログラミングガイドの決定版。
この記述だと1用だけど実際には3用だな。
オブジェクト指向プログラミングについてもこの本だけで理解するのは厳しい。
Cの説明もいっさい無いし……

267 :名称未設定:2007/03/06(火) 11:28:52 ID:30YLZmjq0
俺はヒレガス本よりHMDT 2nd開くことの方が多いな...

プログラミングの解説書で「初心者向け」って一番書くのが難しいかもね。

268 :名称未設定:2007/03/06(火) 12:44:17 ID:EnFK8fNz0
Cくらいしかやったことがないんだけど
正直、オブジェクト指向の説明が抽象的すぎてさっぱしわからん。

結局、どう構築していけばいいのやら
関数みたいにほいほい呼び出すのと変わらんの?

269 :名称未設定:2007/03/06(火) 13:32:10 ID:am03tJak0
オブジェクト指向の入門用としてObjective-Cと言うのもいかがなものか。
いったん目先を変えてRubyでもやると良いんじゃないの?

270 :名称未設定:2007/03/06(火) 14:08:43 ID:XZpylKyt0
オブジェクト指向の入門としてObjective-Cを学ぶのは別にいいと思うけど。
問題はそれを実用に活かせないこと。

271 :名称未設定:2007/03/06(火) 14:48:39 ID:9XJLcZNJ0
>>270
どんな言語使っても使わなければ実用にはならない。実用になるかどうかは
本人次第でしょ。適材適所ってのもあるけど、C++とObjective-Cで実用性に
差はないよ。

>>268
習うより慣れろ、だよ。

272 :名称未設定:2007/03/06(火) 14:56:19 ID:EnFK8fNz0
>271
そうですか〜



273 :名称未設定:2007/03/06(火) 19:44:28 ID:hfvhpiKv0
>>269
たしかにRubyとかでオブジェクト指向を勉強するのは
JavaとかC++より分かりやすいかもしれん。
そのあとでObjective-Cに来られるかどうかはワカランが。

274 :名称未設定:2007/03/06(火) 21:51:02 ID:A9ZfRGJt0
Obj-Cとrubyは結構似てると思うけどね。
カテゴリの辺りとか同じ考え方でいけるし。

Obj-C 2.0ではプロパティやイテレータも導入されて
より一層rubyに近づいてる気がする。
RubyCocoaも正式採用されるし。

・・・って、ここまで書くわざわざObj-Cに来る理由が無くなりそうだw



275 :名称未設定:2007/03/06(火) 22:13:43 ID:hPIFGWzJ0
rubyの文法がcocoaのそれより読みにくいような気はするんだけど。
英文に近い記述の出来る点こそは、cocoaの利点だと思うよ。

276 :名称未設定:2007/03/07(水) 00:01:16 ID:UCaBfVZB0
Mac OS XでPascalのプログラミングをしたいんですが、
Pascalにもいろいろ種類があるようですが、無料で入手できるものでオススメがあれば教えて下さい。

ちなみに、『やさしいコンピュータ科学』で勉強を始めたところです。

277 :名称未設定:2007/03/07(水) 00:04:56 ID:J7TZ5eJy0
>>276
http://www.google.com/search?hl=ja&q=Pascal+OSX&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=

278 :名称未設定:2007/03/07(水) 01:33:44 ID:5k1QHs550
「インサイドマック徹底ガイド」(上下)ってOS9でも役立つかな。
アプリケーションプログラミングも持ってるけど。
今度狙ってみたいが、本だらけになってきてやばい。

279 :名称未設定:2007/03/07(水) 06:35:13 ID:4aoisZ3p0
>>278
使えるよ。ただ、古いAPIしか使えないけどな。

280 :名称未設定:2007/03/07(水) 10:10:18 ID:LPEo8avT0
メモリマネージャは24bitアドレスに注意する点とSoundDriverが使えない点は
注意だな。あとシステムグローバルに関連するLow Levelコールは全滅なので
(代替するものがあるけど今となっては調べようもないかな?)その点も注意かな。
今から始めるなら使うこともないと思うけど。

Carbon化するつもりでなければ。

281 :名称未設定:2007/03/07(水) 12:03:34 ID:r/oOFnF60
イベントループを自分で書くのはいい経験だと思う

282 :名称未設定:2007/03/07(水) 18:05:36 ID:PgM3s2rN0
マシン起動時に自動的に起動するバックグラウンドアプリを
作ろうとおもっています。

方法としては、システム環境設定の「ログイン項目」に
アプリを追加する方法がありますが、その方法は使わないように
したいのです。

たとえば、FinderやloginWindowのようなアプリは
どこにマシン起動時に立ち上がる設定が記録されているのでしょう…?



283 :名称未設定:2007/03/07(水) 18:22:49 ID:0L+BpkSp0
とりあえず、
ライブラリ/StartupItems

284 :名称未設定:2007/03/07(水) 18:50:45 ID:77hwwnBs0
ttp://developer.apple.com/documentation/MacOSX/Conceptual/BPSystemStartup/index.html
ttp://developer.apple.com/technotes/tn2005/tn2083.html

285 :名称未設定:2007/03/08(木) 17:50:42 ID:s6i1dJXp0
>>263
autorelease がないから、誰かがきっちり release を呼んでくれないと
いけないわけで。

>やると、呼び出し元がきちんとReleaseしていることを前提にしていいのか、

いいです。だからそれが Create Rule ではないかと。

>それとも自前でGlobal変数に持っておいて、終了時に破棄、なんてことも

Global変数にするかはともかく、こっちが Get の方では。

ただ「終了時」というのをどうするかが多少問題で、
結局プログラム自体がが終了するまで破棄はできないかも。
そうすると、場合によっては結構メモリを消費してしまうかもしれない。
そういう場合なんかは Create のパターンにしたくなる。

286 :名称未設定:2007/03/08(木) 20:20:20 ID:jU+oKtwQ0
>>285
ありがとうございます。すっきりしました。
CoreFoundationの世界では、そういうものなのですね。

287 :名称未設定:2007/03/09(金) 22:43:15 ID:xW+6te3m0
こんばんわ
やっぱ初心者にも入りやすく書いて欲しいな
carbonはよくわかんないし
でもcocoaはわかりやすかったけど
いまSDLを導入してゲームを作りたいんですが
インストールがよくわかりません
SDL-devel-1.2.11-extras.dmgをSDLの本サイトからDLし
開いたんですがTemplatesForXcode、SDLMain、Documentation、TemplatesForProjectBuilder
の4つが入っていてよくわからなくお手上げ状態です
readmeが入ってるんですが読んでも英語なので もし万が一変な場所にインストールして
システムが壊れたら 怖いので
どなたかSDLのインストールを教えて下さい御願いします

288 :名称未設定:2007/03/10(土) 00:04:35 ID:CacqmWIE0
根性なしめ

289 :名称未設定:2007/03/10(土) 00:21:16 ID:NUp/lvm80
ちょっと古いが
http://homepage.mac.com/kijibato/macreatefan/letssdl01.html

290 :名称未設定:2007/03/10(土) 09:15:46 ID:v1FKgWl60
287です
そこも参考にしてみましたが
SDL-1.2.11.dmgの方はなんとかインストールでき
それとSDL-devel-1.2.7.pkgがもう無くSDL-devel-1.2.11-extras.dmgに変わってしまってるようです
pkgではないので手動インストールに変わってしまいどうすれば良いかと思うんですが
どこも資料が古いようなのでちょっと再度検索してみます

やっぱMacで2Dゲームを作るならSDLが向いてますよね?
他にみなさんがゲーム作成などで使用するライブラリなどありますか?
openGLって聞くと3D使うので敷居が高そうな感じがします
ゲームだとwinなんですがMacでも作ってみたいと思うんです

291 :名称未設定:2007/03/10(土) 09:56:27 ID:lNpLSLlx0
>>290
dmg ってディスクイメージだけど中身を見てみた?

292 :名称未設定:2007/03/10(土) 17:49:03 ID:v1FKgWl60
レス遅れました
はい見ました
SDL-devel-1.2.11-extras.dmgには
TemplatesForXcode、SDLMain、Documentation、TemplatesForProjectBuilder
Readme SDL Developer.txtが入っていました

とりあえずエキサイト翻訳で略してみたんですが
さすが完璧な日本語にはならなくしょうがなく
英語で見てみてパスが書いてあって入れようとしたんですが
ちょっと間違えて違う場所にインストしてシステムを壊したら不安なので
ここの板の方の意見を参考にしてみます

293 :名称未設定:2007/03/10(土) 18:18:40 ID:snGMuZaJ0
SDLなら
Macでゲームを作るスレ(2)
http://pc11.2ch.net/test/read.cgi/gamedev/1103361042/
なんてスレがあるけど。

294 :名称未設定:2007/03/12(月) 21:54:25 ID:hThcBlC90
>>292
Templateなんちゃら ってフォルダの中身は、適切な場所にコピーすると
ProjectBuilder/Xcode で新規ターゲットに SDL 開発用のメニューが追加される。
SDLMain はとりあえず無視。

SDL-1.2.11.dmg の方に入ってる SDL.framework が SDL の本体なわけだが、
そっちはもうコピーしたわけね。

>ちょっと間違えて違う場所にインストしてシステムを壊したら不安なので
ファイル/フォルダを変なところにコピーしたぐらいじゃ、壊れないけどね。

しかし SDL 以前の知識が不足してるっぽいので、入れてから先が大変そうな予感も。
幸運を祈る。

295 :名称未設定:2007/03/14(水) 17:41:25 ID:XjaaKP2N0
もし>>292がここで騒いでた人だとしたら前途多難
ttp://pc9.2ch.net/test/read.cgi/mac/1166999269/l50

悪い事言わないから、ゲーム作る以前に自分のスキルを磨くべし。
中途半端な知識でゲーム作っても、絶対途中で越えられない壁にぶちあたるぞ。

C言語初心者ならまずちゃんとした本読め。
最低限、構造体とポインタと分割コンパイルはまともに使えるようにならないとダメだ。
初心者を卒業したつもりになったら、プログラム板の宿題スレでも覗いとけ。
んで1年くらい死ぬほどソースコード書け。話はそれからだ。

296 :名称未設定:2007/03/18(日) 14:07:35 ID:NSJZfCBb0
購入相談スレから誘導されてきました。
プログラミングの勉強などで使用したいのですが、
macはそういう用途に対して適したパソコンといえるのでしょうか?
いまとりあえず勉強しようと思っているのはJAVA PHPなどなのですが・・・

297 :名称未設定:2007/03/18(日) 14:49:40 ID:x0LGC6y30
>>296
適しているよ。全く問題ない。

298 :名称未設定:2007/03/18(日) 21:20:37 ID:qV5IrrG00
違うよ。全然違う。

299 :名称未設定:2007/03/18(日) 21:27:17 ID:iBuOYDPe0
もちろん合法だよ。

300 :名称未設定:2007/03/18(日) 22:40:30 ID:AXbYfiSk0
全く違うよ。信仰の自由はあると思うよ。でもこれは宗教じゃないよ。

301 :名称未設定:2007/03/18(日) 23:56:15 ID:pLuoop9W0
なんでパンサー湧いてんだよw

302 :名称未設定:2007/03/19(月) 00:08:21 ID:lGlq+btb0
>>301
全然違うよ。全く関係ないよ。

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

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

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)