Gojo River

五条川の千本桜です。

pic
フルサイズ(5184x3888px)

ヒヨドリ、相変わらずウジャウジャいます。
しかし何を基準に千本の中から蜜を吸う花を決めているんだろう?

pic
フルサイズ(5184x3888px)

メジロ、やっぱり来ますね。
ピントがズレたけど桜がメイン、って桜からもズレてるヤン!

午前九時を過ぎてから人多過ぎ、ヒヨドリすら警戒して寄ってこない。
おまけに曇ってきた、鳥はあきらめて苦手な花撮影の練習。
よし、上手そうな人がしばらく撮っていた場所とアングルを猿真似する。

pic
フルサイズ(5184x3888px)

なるほど、真似してみるもんだ。
全体では五分咲きにもなっていないのに満開に見える、スゲェ。
菜の花を含めていい感じだけど曇り気味なのがチト残念。
今後はこの手でいこう。

いや Twitter で検索すれば大量に写真が上がっているので鳥にした。
桜祭り中止なのが意味ないほど人が来るからそりゃそうなるってばさ。
来週が満開だろうからその時にサクラの花とカワセミコラボを撮りたい。

Photoshop

筆者は Lightroom を使うために Adobe CC サブスク会員になった。
フォトプランなので憧れの Photoshop も使える。
M1 Mac ネイティブに、だいぶ前になったのを今頃になってインストール。

Photoshopチュートリアル | Photoshopの使い方

Adobe CC の魅力はこの膨大な数のチュートリアルだよね。
どんだけ高機能や多機能なアプリでも使い方が解らないと意味が無い。

psd

サンプルの PSD も用意されているのですぐ自分で試すことができる。
経験は大事、ショートカットのキーを一つ覚えるだけでも経験値だよ。
ゲームをやって無意味な経験値を積むより遥かに有意義。

てか、お絵描きアプリっていうイメージを勝手に持っていたんだけど。
主に写真をガッツリと加工するアプリなのね、名前から解りそうなもんだけど。
もちろんお絵描きにも使えます。

そんなことより command+M が最小化ではないのは何故なんだ!
ちなみに Lightroom は普通に最小化できます。

使ってみて、筆者は Lightroom だけでいいなと思ったことは内緒。
いや Lightroom では線を引いたり文字を入れたりはできないけど。

そういえば Windows が 98 だった頃 PaintShop Pro を買ったなぁ。
結局スクリーンショットの文字入れ加工にしか使わなかったなぁ。。。

自分はその程度だと思って以後フリーソフトしか使わなくなった。
いや、ロクなチュートリアルが無かったから何がどうできるかさえ知らなかった。
Adobe が当時からこんな感じでやっていたかどうかは知らないけどさ。

アプリだけ配布でもコミュが活発ならユーザーがチュートリアルを作るんだけど。
Delphi が 7 までそんな感じだったよね、今は完全に落ちぶれているけど。
てか昨今のコミュはプラグインをインストールの話ばかり、どうしてこうなった。
Adobe CC もユーザーまかせだと絶対にそうなる、やはり公式がやるべき。

そりゃ加工したい人は Adobe になるってばさ、高価なのは伊達じゃない。
文字入れくらいにしか使わないなら gimp でいい。
いや Mac なら Preview.app でいい、eog もできればいいのに。

そんなところで macOS が 11.2.3 にアップデート。
今回も当然 Command Line Tools が削除されるのでまた入れる。

ume

梅の花が綺麗な季節です、LUMIX DC-G99 よ出番だ。
我が地域で梅の花といえば大縣神社が有名、ただ渋滞がね。
ということで小牧山に行ってきました。

ume1

綺麗だったけど筆者の腕が、逆光だし。
やっぱり花は苦手、と色々撮っていたら「梅にうぐいす」キター!!!
ではなくメジロです。

mejiro

いや野鳥好きな人なら解るよね、ウグイスは藪で虫食ってる。
そもそもホーホケキョは五月くらいから本場だし時期はずれ。
花札の梅にうぐいすとか童謡うぐいすの歌詞はいったい何?

梅に鶯本当は梅に目白というウソ

キツ目に書いているけどココまで書かれるとスゲェ面白い。
正直筆者も見間違いか?ってちょっと思ってた、ごめんなチャイ。

てか今みたいな娯楽の無かった時代の人のほうが自然に詳しかっただろうし。
テレビすら無いので視力は抜群だったはず、そりゃそうだよね。
とにかく、この辺で「#ウメジロ」を狙うなら小牧山です。

ume2

久々に 42.5mm も使ったけど、まだまだ練習が必要だ。
次は五条川の桜、今年も桜祭りは中止だけど桜は咲く。

macOS Big Sur 11.2.1

M1 Mac の Big Sur を 11.2.1 にアップデート。
やっぱりか、また Command Line Tools が削除されてしまった。

Command Line Tools reinstall | Paepoi Blog

dmg を残しておいて良かった。
多分 Xcode のほうに入っている奴しか見ていないんだろうな。
JXA の NSMakeRect バグについてはもうあきらめているよ。

Clang を再びインストールした所で、前回の続き。

起動すると林檎メニューにもアクセスできないじゃん。
多分 activateIgnoringOtherApps がずっと働いているっぽい。
PyObjC はインタプリタのおかげでメソッドを抜けているのかな。
main 関数内じゃだめだ、デリゲートのハンドラ内に移動する。

#import <Cocoa/Cocoa.h>

// clang app.m -framework Cocoa

@interface AppMenu : NSMenu
@end

@interface AppDelegate : NSObject<NSApplicationDelegate>
@end

@implementation AppDelegate
- (id) init {
    [super init];
    return self;
}
- (void) applicationDidFinishLaunching:(NSNotification *)aNotification{
    NSLog(@"applicationDidFinishLaunching");
    id window = [[[NSWindow alloc] initWithContentRect:NSMakeRect(0, 0, 200, 200)
        styleMask:NSWindowStyleMaskTitled
        backing:NSBackingStoreBuffered
        defer:NO] autorelease];
    [window cascadeTopLeftFromPoint:NSMakePoint(20,20)];
    [window setTitle:@"日本語"];
    [window makeKeyAndOrderFront:nil];
    //
    // App Active
    //
    [NSApp activateIgnoringOtherApps:YES];
}
@end

@implementation AppMenu
- (id) init {
    [super init];
    id item_app = [[NSMenuItem new] autorelease];
    [self addItem:item_app];
    id menu_app = [[NSMenu new] autorelease];
    [item_app setSubmenu:menu_app];
    id item_quit = [[NSMenuItem new] autorelease];
    [item_quit initWithTitle:@"Quit App" action:@selector(terminate:) keyEquivalent:@"q"];
    [menu_app addItem:item_quit];
    return self;
}
@end

int main(int argc, char *argv[]) {
    // ガベージコレクションではないのでコレを利用
    [NSAutoreleasePool new];
    // NSApp を作る
    [NSApplication sharedApplication];
    // C ではコレが必須だった
    [NSApp setActivationPolicy:NSApplicationActivationPolicyRegular];
    // command+Q で終了するメニューを入れる
    id main_menu = [[AppMenu new] autorelease];
    [NSApp setMainMenu:main_menu];
    // Delegate に activateIgnoringOtherApps を移動
    id delegate = [[AppDelegate new] autorelease];
    [NSApp setDelegate:delegate];
    // No!!!
    //[NSApp activateIgnoringOtherApps:YES];
    // メインループを回す
    [NSApp run];
    //
    return 0;
}

app

上手くいったのでウインドウも追加。
前回みたいなコードは世界中で見つかるけど誰もこのこと書いていない。

それにしても。
PyObjC や PyGObject って本当に簡単だなって。

NSApp

Objective-c のコードだけで NSApp を作るソースを作成。
って以前 PyObjC で作ったんだから Objective-c に書き戻すだけだ。

NSApplication – Paepoi

と思ったんだけど動かない、何故だ?
検索しまくって以下のページを見つけた。

Minimalist Cocoa programming

setActivationPolicy を追加したらなんとか動くようになった。
逆に PyObjC は何故いらないんだ?
それとガベージコレクションではないので破棄が必要なんだなこれが。
NSAutoreleasePool という便利なものはこう使うみたい。

#import <Cocoa/Cocoa.h>

// clang app.m -framework Cocoa

@interface AppMenu : NSMenu
//- (id) init; // いらない
@end

@implementation AppMenu
- (id) init {
    [super init];
    id item_app = [[NSMenuItem new] autorelease];
    [self addItem:item_app];
    id menu_app = [[NSMenu new] autorelease];
    [item_app setSubmenu:menu_app];
    id item_quit = [[NSMenuItem new] autorelease];
    [item_quit initWithTitle:@"Quit App" action:@selector(terminate:) keyEquivalent:@"q"];
    [menu_app addItem:item_quit];
    return self;
}
@end

int main(int argc, char *argv[]) {
    // ガベージコレクションではないのでコレを利用
    [NSAutoreleasePool new];
    // NSApp を作る
    [NSApplication sharedApplication];
    // C ではコレが必須だった
    [NSApp setActivationPolicy:NSApplicationActivationPolicyRegular];
    // command+Q で終了するメニューを入れる
    id main_menu = [[AppMenu new] autorelease];
    [NSApp setMainMenu:main_menu];
    // コレをしないと最前面に出てこない
    [NSApp activateIgnoringOtherApps:YES];
    // メインループを回す
    [NSApp run];
    //
    return 0;
}

a.out

動いたんだけど。。。。。

command+Q は使えるんだけどメニューが選択できない。
一度非アクティブにして再度アクティブ化すればイケるんだけど。
てかリンク元のコードも同じジャン。
PyObjC 版はそんな必要なんて無いのに何故だろう?

どうでもいかもしれないけれど、M1 Mac でビルドしたんだけど。
Silicon Info で確認したらこの a.out は arm64 で動いていた。

ついでに。
SyntaxHighlighter は objective-c ハイライトが無いのね。

BloggerのSyntaxHighlighterでObjective-Cを表示する方法 – menXpon

作っている人がいるってのが有名アプリのいいところ。
筆者の WordPress は自前設置なので scripts に放り込むだけ。
後は Add Code to Head プラグインの設定で以下を追加。

<script type="text/javascript" src="/sh2/scripts/shBrushObjectiveC.js"></script>

プレビュー、よしハイライトできた。
ただ Objective-c なんて今後そんなに使うか疑問なんだけど。