忍者ブログ
  • 2025.01
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 2025.03
[PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

【2025/02/21 04:08 】 |
Chromeのコード
Chromium projectsっていうらしい。

Google Chromeのブラウザを動かしているのがChromium.
OSを動かしているのがChromium OS.
それらを開発するオープンソースプロジェクトがChromium projects.
http://dev.chromium.org/


たまには他人の書いたコードも読まなくちゃね、ということでオープンソースを探してみた。
クロームで間違いなかろう、ということで。
開発者用ページ(http://dev.chromium.org/developers)に行って、Getting the Code の retrieve the source というところから、リポジトリに入れる。
http://src.chromium.org/viewvc/chrome/


これでChromeの中身は見放題。
ファイルがありすぎてどこから見ようかというところだが、
フォルダ名がそれっぽいものや、更新日時が新しいものほどホットなところだろうと当たりをつける。

拾い読みしてみたけど、変数や関数の名前はパッと見で分かりやすく、結構コメントも多くて読みやすい。
1ファイルもそんなに長くないし。
こんなにスラスラ読めるものだったのか、と。
PR
【2011/03/30 03:26 】 | Web系 | 有り難いご意見(0) | トラックバック()
AWTとSwing
久しぶりにJavaを使った。
初めてAWTなるものとSwingなるものを使った。

AWT
Abstract Windowing Toolkit
JavaでGUIを実装するために使うクラスライブラリの総称。
Java標準で付属。
OSのウィンドウシステムに準じたデザイン

Swing
AWTの拡張。
Javaプログラム上で描画される。柔軟。軽量コンポーネントと呼ばれる
複雑なことをやるにはこっちが楽?
swingコンポーネントの一覧

さらにSWTというものもあるそうで。

http://www.sophia-it.com/content/AWT
http://ja.wikipedia.org/wiki/Swing
http://ja.wikipedia.org/wiki/Standard_Widget_Toolkit


まずはAWTのコード例
【2011/03/30 02:43 】 | Java | 有り難いご意見(0) | トラックバック()
AWS
Amazon Web Service.
ここ

使ってみた。

アカウント作って、EC2にインスタンス作ったはいいけど、
SSHでログインするところがよくわかんなくて中断。
macは少数派でこういうとき困る。

鍵の種類が多くてどれを使うのか。

支払いだけ発生してもしょうがないので、インスタンスもterminateしちゃった。

支払いを確認するページ
https://aws-portal.amazon.com/gp/aws/developer/account/index.html

一番詳しい
http://www.incharge.jp/howtouse2

sshについて
http://network.station.ez-net.jp/client/remote/ssh/mac.asp
http://saifis.net/?p=116
【2011/03/30 01:31 】 | Web系 | 有り難いご意見(0) | トラックバック()
スクロールとスケーリング
意外と頭を悩ますのがスクロールとスケーリング。
個々は難しくないんだが、両方混ざると厄介。
しかも、瞬間でなく滑らかにスクロール&スケーリングしてほしい。やっぱりiPhoneだもんね。


今回のルール
・スケーリングは2段階
・縮小表示では、全体を映す。つまり、スクロールしない
・拡大表示では、一部分を映す。スクロールする
・滑らかにスケーリングする
・ダブルタップした点を中心にスケーリングする。スケーリング中に外側が見えてしまわないようにする
・スクロールは1マスずつ
・外側が見えてしまわないようスクロールする

【2011/03/29 01:58 】 | 開発日記 | 有り難いご意見(0) | トラックバック()
正方形は長方形か?
数学的には、正方形は長方形です。
では、プログラミング的にはどうでしょうか。
正方形クラスを長方形クラスの子クラスとして定義できるでしょうか。


まず、数学での話をおさらい。
長方形の定義は、「4つの角の大きさが等しい四角形」です。
正方形の定義は、「4つの角の大きさが等しく、4つの辺の長さが等しい四角形」です。
正方形は、長方形の定義を満たしているので、「正方形は長方形だ」と言えます。



では、プログラミングでの話。
【2011/03/29 01:11 】 | 考察 | 有り難いご意見(0) | トラックバック()
iデバイスのファイルをMacに出力
iPhone,iPadにはファイラが無い。
データやファイルはすべてアプリに紐づけられる。
そのアプリで作られたデータは、そのアプリからしか見えない。
そのデータを他のアプリや他の機器から参照することはできない。

それは良いところでもあり、悪いところでもある。
あのデータはどこに置いたっけ…? と無くしもの探しをする必要がない。
データは必ず何らかのアプリに使われることで意味を持つ。そうでなければただの1と0のカタマリでしかない。
だから、データがアプリに管理されるというやり方は理に適っている。

その代わり、別のアプリからデータを参照したいとき、複数のアプリで連携したりなどはとても苦手である。ここはAndroidと正反対だ。
iPhoneとiPadのどちらでも動くアプリがあっても、中のデータは同期できないから、例えばiPhoneで進めたゲームをiPadで遊ぼうとしても、また一からやり直しになってしまう。

これはアプリ開発者にとっても起こる問題だ。

ゲームを作っていて、iPadで実機でステージエディットなんかしていて、さてこのデータをMacで見たいなとか、iPhoneに移したいな、というときに困ってしまう。
iPad内のアプリのホームディレクトリ下にエディットデータを保存しているけど、ファイラは無いから見えないし、同期をとってもMacにはコピーされない。どうしよう。


で、方法はいくつかある。
【2011/03/29 00:57 】 | iPhone | 有り難いご意見(0) | トラックバック()
ファイルタイプ(言語)の変更
昨日友人に教えてもらった。


XCodeでファイルをコンパイルするとき、
ファイルごとに、そのファイルが何の言語で書かれているかを指定できます。

○方法
プロジェクト(ファイルビュー)のファイルを右クリックし、「情報を見る」を選択。→「ファイル***.**の情報」ウィザードが開く
「ファイルタイプ」のプルダウンリストからファイルタイプを選択。

○解説
多分、最初に***.mとして作られたファイルは、
sourcecode.c.objc
となっているはず。
これは、Objective-C固有表現と、C言語がコンパイルできます。

***.mmファイルなら、
sourcecode.cpp.objcpp
これは、Obejctive-C固有表現と、C++がコンパイルできます。
(Objective-C++という言い方をすることもあります)

この2つのファイルタイプは、ファイル名の拡張子を書き換える(.m←→.mm)と自動的に変化してくれます。
(自分は今までそうしていた。)

***.hファイルなら、
sourcecode.c.h
になっているようです。



この「ファイル***.**の情報」ウィザードでは、他に
・ファイルパス
・絶対パスか、相対パスか(その場合どこを基準にするか)
・エンコーディング(デフォルトはUnicode UTF8)
・タブ幅
・インデント幅
なども指定できます

Thanks to M君!
【2011/03/27 16:31 】 | iPhone | 有り難いご意見(0) | トラックバック()
数値のエスケープシーケンス
ヌル文字として

char c = '\0'

と書くことがよくある。

じゃあ、

c = '\1'

というのもあるのか。
もちろんある。
このときcの中身を16進数で表すと、0x01になっている。

'\1'があるのなら、'\2','\3','\4',,,,もずっとあるだろう。
否、そうではない。

'\8'

は無いのである。コンパイルエラーを起こす。
'\9'も無い。でも'\10'はある。
【2011/03/26 02:08 】 | C/C++ | 有り難いご意見(0) | トラックバック()
C文字列と@文字列
C言語の文字列から、Objective-CのNSStringへの変換

NSString *ns_str = [NSString stringWithCString:c_str encoding:NSUTF8StringEncoding];
NSLog(@"%@", ns_str); //ついでに表示してみる


逆に、NSStringからC文字列への変換

const char *c_str = [ns_str cStringUsingEncoding:NSUTF8StringEncoding];
printf("%s\n", c_str); //ついでに表示してみる



エンコーディング方式を指定する必要がある。
【2011/03/26 00:24 】 | iPhone | 有り難いご意見(0) | トラックバック()
NSAutoreleaseNoPool
以下の出力。


2011-03-26 00:03:52.479 pball[825:307] *** __NSAutoreleaseNoPool(): Object 0x10fd50 of class NSPathStore2 autoreleased with no pool in place - just leaking



普通、ほとんどの処理は、main.mmのmain()関数内で

NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
//....
[pool release];

の間で実行されることになる。
このコードは、XCodeでプロジェクトを作ると自動生成されるし、普通は問題ないだろう。

だが、もしこの外でObjective-Cの何らかのオブジェクトを生成すると、上記の出力が延々出続けることになる。
【2011/03/26 00:17 】 | よくある罠 | 有り難いご意見(0) | トラックバック()
<<前ページ | ホーム | 次ページ>>