2006-10-18 秋晴れの日が続く
_ 今日の気づき
長十郎と豊水を、皮向くときの包丁から伝わる感触で見分けられる自分に気づきました。
梨の季節ももうそろそろおしまいですね。
若い頃は幸水派でしたが、最近は豊水の豊かな味に虜になっています。
2007-10-18
_ 初音ミク - ハジメテノオト -
ITオタク界と一般人をつなぐのがこのBlogの役割の1つ、
だと勝手に使命感に燃えているのでこれを取り上げないわけにはいかない。
初音ミクはVOCALOID、ソフトウェアヴォーカルソフト、
ようするにコンピュータに音声合成させて唄わせるものだ。
私は最初は「んー、それなりだけどやっぱり人工的だなー」と思ってたのだけど、
「奇跡の海」を聴いて驚愕。
さすが日本全国の超一流が集まるニコニコ動画。
初音ミクの唄の1つの特徴はバージョンがあがっていくことだ。
エンジニアがチューニングすると、明らかに唄がうまくなる。
唄に心がこめられていく、
その時間をみんなで共有する、
それをニコニココミュニティのみんなで楽しんでいるのかもしれない。
そして昨日からは「ハジメテノオト」をハードループで聴いている。
「 初めての音になれましたか?
あなたの初めての音に
世界のどこでもワタシは歌う
それぞれのハジメテノオトを 」 初音ミク - ハジメテノオト -
2008-10-18
_ ObjectiveC2.0読書会第5回
参加してきたので私的メモをこちらにもメモメモ。
あとで読みかえそう。
考えながら読みながらメモったので品質はイマイチです。
今回はChapter8-10,AppendixB。
コーディング規約に慣れるのは時間かかりそう。
---
■Chapter8
NSData:バイナリなデータを扱う時に使う。Cのunsigned char[] とかに相当。なにものかわからなくても大きなデータを格納するのに使う。最適化がうまくできてるらしい。
不変なクラス:マルチスレッドのときにリエントラントに扱えるというメリットもある。不変なクラスを扱っているときはロックをかけなくてよいらしい。
■Chapter9
カテゴリ:あるクラスの一部分を実現するモジュール。クラスの実装を複数の場所に書くときなどに使う。カテゴリにはインスタンス変数は宣言できない。カテゴリのメソッド実装には「クラス名+カテゴリ名.m/h」を使うのが普通。
プライベートメソッド:誤って上書きしないようにするために、Appleの推奨は接頭語をつけること。(付録B)
クラスエクステンション:メソッド実装忘れを防ぐための仕組み
既存クラスへカテゴリを追加できる。新しいインスタンス変数は追加できないが、メソッドは追加できる。
継承とカテゴリの使い分け
継承:インスタンス変数を追加できる。superのメソッドも呼べる。
カテゴリ:新規メソッドだけ追加すればいいので楽。既存メソッドを上書きできる。が、注意して使うべき。
■Chapter10
抽象クラス:インスタンスを生成せず、サブクラスのインターフェースを宣言するするもの。ただし、普通のクラスと区別する言語上の特別な仕組みは無い。
クラスクラスタ:パブリッククラス(看板となる名前を持ってるクラス。NSStringとかNSSetとか。)を使っていると、実は内部では違うクラスのインスタンスが作って使われていて、よきにはからっていてくれる仕組み。NSStringとか、Foundationフレームワークでもよく使われている。
NSStringとかのサブクラスをダイレクトに作るとこの仕組みがあるのではまることがある。カテゴリの方が楽だなーと。
■AppendixB コーディングの指針
"Coding Guidelines for Cocoa"
綴りのルール:
- 2つめの単語から先頭文字を大文字にする(ラクダ)
接頭語:
- NS:Foundation, Applicationフレームワーク
- CF: CoreFoudation
- IB: Interface Builder
- CI :Core Image
- Web:WebKit
- _:Apple予約接頭語
名前に使う単語:
- 省略は避けよう
- 迷ったらCocoaAPIをまねる
- 複数オブジェクト返すときは複数形にしてあげると親切
プロトコル名にはingを付ける
カテゴリ名
「クラス名+カテゴリ名.m」
メソッド名:
値をとる場合はgetつけない
get始まりの場合、メモリをコピーしてそこに書き込んだ結果を得るメソッド
真偽値はis始まり
同じ機能の場合は親クラスと同じメソッド名にしておくとポリモフィズムが使えて便利
- 例外名:末尾にExceptionを付ける
- エラー名:末尾にErrorを付ける
- これから起きる:Will+動詞原型
- 起きた:Did+動詞原型
- 〜してもよいか?:Shoud+動詞原型
- グローバルユニーク名:URLの逆順
-- 例) com.apple.iPhoto
■Chapter11 プロトコル
プロトコル:メソッド宣言の集合、ダックタイピングに便利そう。
プロトコルに適合している:あるプロトコルを採用し、メソッドを全て実装している
@interface クラス名 : スーパークラス名 <プロトコル名>
プロトコルに適合している
id <S> obj;
conformsToProtocolメソッドでオブジェクトがプロトコルに適合しているか分かる。
非形式プロトコル:カテゴリの宣言だけで実装無し→実装がなくてもコンパイル可能、メッセージ送信時に実行時エラー。デリゲートでよく使われるらしい。
オプション付きのプロトコル(@required, @optional)が ObjC2.0 から使えるようになったので、そっちを使ってもいい。
2015-10-18
_ El Capitan
時間ができたので El Capitan にupgradeした。前もってbrew update & upgradeだけしておいた。あとは容量が足りなかったので一時的にiPhoneのバックアップを削除して開始。
バージョンアップ後のやったことやトラブルは以下。
XCode からコマンドラインツールインストール
Xcodeのメニューから Open Developer Tool > More Developer Tools でDevCenter へ行って OSX 10.11 用のコマンドラインツールをダウンロード、実行。
homebrew
/usr/local の管理が変わったので対応。
$ sudo chown -R $(whoami):admin /usr/local
Virtual Box アンインストール
iTerm2が起動してもすぐ終了してしまう。調べたらtmux起動時にVirtualBox絡みで何かエラーが出てた。最近VirtualBox使ってなかったのでこの機会にuninastll.
The system extension "VBoxDrv.kext" is not compatible with this version of OS X and can’t be used.
.zshenv ?
iTerm2が起動してもすぐ終了してしまう問題がまだ直らなくてちょっとはまった。El Capitan と関係なく、以前に .zshenv っていう設定ファイルができていて、それがtmux起動時のzsh起動の際には読まれないのが原因ぽい。 .zshenv にはrbenv のeval コマンドしかなかったから削除して.zshrc だけに寄せた。
これで手で /usr/local/bin/tmux を起動することはできるようになったのだけど、iTerm2の起動時のデフォルトコマンドに指定してもダメなので、Send Text at Start 欄で /usr/local/bin/tmux を実行させるようにして回避。
command not found: complete
これもEl Capitan 関係ないんだけど、
/usr/local/Cellar/rbenv/0.4.0/libexec/../completions/rbenv.bash:16:
ってのが標準のターミナルで出る。ぐぐったら rbenvのeval 文を以下にすればいいようだ。これで良化。
- eval "$(rbenv init -)"
+ eval "$(rbenv init - zsh)"
デフォルト起動アプリ
細かいところだけど、OS再起動する際に起動するアプリが前回の状態を見るのではなくてシステム環境設定に指定してある起動するアプリだけになったぽい?(この方が好き)使うアプリを追加した。
感想
GPUの使用効率が良くなってパフォーマンスが上がってるという話を聞いていたが、確かに動画のサイズ変更や、たくさん写真を開くケースで速くなってるかも。ただまだ気のせいかもレベルなので今後どうなるか楽しみ。
Oh Capitan, El Capitan.
_ タカノ [こんにちは〜!お元気ですか? UAEではミクシー出来ないのでご無沙汰していま〜す。 私は長十郎派かなぁ・・・皮のむい..]
_ kaorin [私も豊水好きです♪新高も捨てがたい!]
_ いが [>タカノさん 長旅おつかれさまでした! UAEは今どんな気候なんでしょうか? 洋梨は皮をむきづらくて私は敬遠しがちで..]