× [PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。 |
![]() |
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 |
![]() |
久しぶりに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のコード例 |
![]() |
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 |
![]() |
意外と頭を悩ますのがスクロールとスケーリング。
個々は難しくないんだが、両方混ざると厄介。 しかも、瞬間でなく滑らかにスクロール&スケーリングしてほしい。やっぱりiPhoneだもんね。 今回のルール ・スケーリングは2段階 ・縮小表示では、全体を映す。つまり、スクロールしない ・拡大表示では、一部分を映す。スクロールする ・滑らかにスケーリングする ・ダブルタップした点を中心にスケーリングする。スケーリング中に外側が見えてしまわないようにする ・スクロールは1マスずつ ・外側が見えてしまわないようスクロールする |
![]() |
数学的には、正方形は長方形です。
では、プログラミング的にはどうでしょうか。 正方形クラスを長方形クラスの子クラスとして定義できるでしょうか。 まず、数学での話をおさらい。 長方形の定義は、「4つの角の大きさが等しい四角形」です。 正方形の定義は、「4つの角の大きさが等しく、4つの辺の長さが等しい四角形」です。 正方形は、長方形の定義を満たしているので、「正方形は長方形だ」と言えます。 では、プログラミングでの話。 |
![]() |
iPhone,iPadにはファイラが無い。
データやファイルはすべてアプリに紐づけられる。 そのアプリで作られたデータは、そのアプリからしか見えない。 そのデータを他のアプリや他の機器から参照することはできない。 それは良いところでもあり、悪いところでもある。 あのデータはどこに置いたっけ…? と無くしもの探しをする必要がない。 データは必ず何らかのアプリに使われることで意味を持つ。そうでなければただの1と0のカタマリでしかない。 だから、データがアプリに管理されるというやり方は理に適っている。 その代わり、別のアプリからデータを参照したいとき、複数のアプリで連携したりなどはとても苦手である。ここはAndroidと正反対だ。 iPhoneとiPadのどちらでも動くアプリがあっても、中のデータは同期できないから、例えばiPhoneで進めたゲームをiPadで遊ぼうとしても、また一からやり直しになってしまう。 これはアプリ開発者にとっても起こる問題だ。 ゲームを作っていて、iPadで実機でステージエディットなんかしていて、さてこのデータをMacで見たいなとか、iPhoneに移したいな、というときに困ってしまう。 iPad内のアプリのホームディレクトリ下にエディットデータを保存しているけど、ファイラは無いから見えないし、同期をとってもMacにはコピーされない。どうしよう。 で、方法はいくつかある。 |
![]() |
昨日友人に教えてもらった。
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君! |
![]() |
ヌル文字として
と書くことがよくある。 じゃあ、
というのもあるのか。 もちろんある。 このときcの中身を16進数で表すと、0x01になっている。 '\1'があるのなら、'\2','\3','\4',,,,もずっとあるだろう。 否、そうではない。
は無いのである。コンパイルエラーを起こす。 '\9'も無い。でも'\10'はある。 |
![]() |
C言語の文字列から、Objective-CのNSStringへの変換
逆に、NSStringからC文字列への変換
エンコーディング方式を指定する必要がある。 |
![]() |
以下の出力。
普通、ほとんどの処理は、main.mmのmain()関数内で
の間で実行されることになる。 このコードは、XCodeでプロジェクトを作ると自動生成されるし、普通は問題ないだろう。 だが、もしこの外でObjective-Cの何らかのオブジェクトを生成すると、上記の出力が延々出続けることになる。 |
![]() |