2023 年 4月
黄砂が舞い、気温が乱高下した 2023 年 4 月、皆様、いかがお過ごしでしょうか?
仕事がひと段落ついたので、日記調雑談。
cocoa
仕事がひと段落といっても、即、お金になるようなことをやっていたわけではない。
今回は、マックのココアアプリを作成する上での必須技能みたいなものを身につけようとしていた。
今までにも Objective-C の話題は出していたじゃないか?と言われそうだが、それはちょっと違う。
言語の仕様を覚えるのとアプリ作成に必要な知識を習得するのは、別の話だ。
配列や変数の使い方は何をするにしても必要な基本スキルだが、アプリを作成するとなるとウインドウやその他 UI パーツの使い方などを身につけていく必要がある。
最近では、ORM やグラフィックも各 OS 毎に独自化が進んでいるので、これもある程度使えるレベルにしておく必要がある。
そういう意味での「ひと仕事」だ。
小旅行
ひと仕事終わった後の達成感はいいものだが、気分転換もしたくなる。
ワイは、日帰り〜一泊レベルの小旅行に出たりする。
どこに行こうか?
(続く)
Metal 関係リソース物色中
あまり勉強したことがない Metal 関係のリソースを物色中。
公式サンプル
おお!と思ったのは公式のサンプル紹介記事にあったこのプロジェクト(群)。
C++ と書いてあるが、「どーせ、これ Objective-C++ でしょ?」と思っていたが、れっきとした C++ だった。
例えば、Xcode で GUI アプリを作成した際、自動で生成される main.m に相当する部分は
int main( int argc, char* argv[] )
{
NS::AutoreleasePool* pAutoreleasePool = NS::AutoreleasePool::alloc()->init();
MyAppDelegate del;
NS::Application* pSharedApplication = NS::Application::sharedApplication();
pSharedApplication->setDelegate( &del );
pSharedApplication->run();
pAutoreleasePool->release();
return 0;
}
となっている。
言われてみれば Objective-C++ と C++ との対応はこうですね、って感じ。
三角形ばかり書いていてもつまらん
そんな方はこちらなんかも。
ただし、これは Swift の iOS プロジェクトなので、MacOS に移植する際にはいくらか(↓)修正が必要。
cocoa アプリでの Metal Viewer の取り扱い
手動で追加する。
NSObect のサブクラスとして適当な名前のクラスを作成した後に、MTKViewDelegate を書き加える。
また、以下の二つのメソッドは MTKViewDelegate を継承するには必須のようなので、付け加える。
参考(追記)
『MacでObjective-cを使ってMetalを初期化』
のシリーズを使って勉強しよう・・・と思っていたのだが、これは Objective-C で Metal を扱う際にはイマイチのやり方のようだ。
もともとアップル公式のサンプルは Objective-C で書かれており、これを Swift に移植したものが、上記シリーズ(というかネットに落ちている情報全般)っぽい。
この記事にならって丹念にアップル公式のサンプル眺めていくしかないかな。
2023 年 1 月のこと
ただの忘備録的な日記です。
WiFi ルーター
数年愛用していた I/O データのルーターが逝ったため、とりあえず最寄りの家電量販店で同メーカーのミッドゾーン?くらいのルーターを購入。
しかし、これが。。。
業務的な案件は別にして、LAN 内の特定のマシンの IP を固定して使いたい場合、DHCP 固定割当という機能を使うのが一番楽だと思う。
私は(少なくとも自宅では)ずっとこのやり方で通してきたのだが、購入した I/Oデータの WiFi ルータに搭載されていなかった。
いや、でも、これだとネットワークプリンタの類にデータ送れなくないか?
解せぬ。
逆にエレコムのものは全ての機種に搭載されていた。
結局、交換してもらった。
値段は少々落ちたので、通信の安定性などに影響出るかと思ったが、エレコムの方がめちゃくちゃ安定している。
I/O データ、バッファロー、エレコムあたりの企業がどういう基準で競争しているのかわからんが、これだけ品質に差があるともう今後しばらくは I/O データの製品は買えない。
カプリコーン杯 2023
今年のカプ杯は、中京芝1200m 。
高松宮記念モチーフの久々の短距離チャンミとなった。
結果を先に書いておくと、サークルの主要なメンバーは全員グレード A の決勝進出。
サークルのメンバーのほとんどが社会人で構成され、育成もそんなに頑張ったわけではないのに(なにしろ時間がない)、これは凄いんでないかい?
特に、ゲーム関係のチャット部屋で盛り上がっていたのは、某氏の育成した差バンブーメモリー。
今回のチャンミは、迫る影(直線一気)が加速スキルとしてかなり有効とみられていたため、脚質的には
先行>追い込み>逃げ>>>>差し
とされていた。
だから、後方脚質勢は、追い込み運用が多かったと思う。
バンブー自体もたまに遭遇したが、ほとんどが追い込みだったと記憶している。
なんで、差で、しかもさほど強キャラとはされていないバンブーで勝率いいのかみんな不思議に思い、かつ驚愕していたわけだ。
では、なぜ差バンブーで勝てていたのか?
この観点からトレーナーさんの発言をまとめる。
バンブー自体は、正月ガチャでお迎えできた時から、コミカルな感じに好感を持っていた。
試しに育成すると意外に固有が出やすい。
エースはドロワーフジキセキに決めていたが、その直前にたまたま賢さネイチャを完凸にできたので、これを活かして差を1個体は育成しようと考えていた。
バンブーは魔改造しなくても短距離走れるので、キャラ選択はさほど迷わなかった。
ただし、初期に育成した個体は弱かった。
強行策積んだ追い込みに中盤では追い越されていた。
固有スキルはそこそこは強いが、スピードがノッた追い込みを差し返せるほどではない。
そこで、中盤位置あげスキルを意識して取るようにした。
位置取り押し上げは有効だが、これだけだと弱いので、正月サトノダイヤモンド固有を必ず継承させた。
あとは試行回数。
他の2個体はほとんど育成も考えず、開催期間中もほぼバンブーだけ育成した。
この育成方針は参考になるところがいくつもある。
短距離だったとはいえ、ようつべやツィあたりで言われている常識的な育成方法が絶対ではないことをよく表している。
決勝でもこのトレーナー、あっといわせるレース展開に持ち込んだんだが、動画あげてくれないかな?
coreData
Mac での ORM といったら coreData だが、obj-c のコマンドラインアプリプロジェクトで coreData を使おうとするとなぜか swift のファイルが生成されてしまう。
ここは勘違い。codegen するとき、以下の箇所で objective-C を指定する。