MacBook AIr」カテゴリーアーカイブ

macOS Monterey

macOS を Monterey に遅ればせながらアップグレード。
Fedora とは違ってスッゲェ時間が掛かると解っているので休日まで待った。
12.13GB か、前の 14GB より減ったとはいえ酷い。

そろそろ全部終わったかな?
って画面を表示させると「インストールします」ダイアログ。
ガックリ。。。。。

[続ける]-[同意] って感じでボタンを押さないとインストールが始まらない。
今度こそ終わったかな?って見ると「再起動」ダイアログ。
ションボリ。。。。。

その再起動が又時間が掛かる。
終わった!と思ったらフェイントだった。
ゲンナリ。。。。。

M1 でコレだぞ、Intel Air だったらドンダケだったんだ?
アップグレードくらいボタン一発でスパッとやってくださいよ。
あーやっとこさ終わった。

それはいいとして。

Apple、macOS 12 MontereyにPython 2.7.18などを同梱してリリース。Big Surまで同梱されていたphpは削除されるので注意を。

マジで PHP は削除されるのね。
httpd.conf が初期化されるのはいつものこと。

php

WordPress の時代にコレって macOS を Web 開発に使うなってメッセージ?
Fedora のように dnf コマンドで即座に導入できるってわけでもないのにさ。
いったいどんな政治的なやりとりがあったのか、みたいな。
これだから Fedora も併用しなきゃなんだよ、macOS で開発は自由が無い。

自力で Python3 を入れている人は残る。
3.10 になっているのか、アップグレードしとこ。
macOS 64-bit unibersal2 installer で M1 ネイティブだよ。

Python Release Python 3.10.0 | Python.org

Lightroom は問題なく動く、コレのために Mac を使っているのだし。

それと Fedora から SSH てか SFTP で簡単アクセスする用の
~/.ssh/id_rsa.pub
とか設置していたものも普通に残っているしアクセスもできる。

そんなことより何より。

#!/usr/bin/osascript

ObjC.import('Cocoa');
let r = $.NSMakeRect(0, 0, 10, 10);

console.log(`width = ${r.size.width}`);

jxa

JXA での NSRect バグがやっと、ついに修正されたぞ!
Big Sur アップデート毎にコレ動かしてションボリしてたのよね。
待ちわびた、待ちすぎて PyObjC 万歳になっちゃった。

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 が削除されるのでまた入れる。

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 って本当に簡単だなって。

Command Line Tools reinstall

M1 Mac で Clang なんてページを追加する。
って以前書いたけど全然進んでいない、だって。

/Library/Developer/CommandLineTools/usr/bin

が無くなっているって何だよ、clang コマンドはココにあったはず。

usr

記憶が違っているかと色々探したけど見つからない。
同一症状は無いかと検索しまくっても見つからない。

てゆーか macOS Big Sur って本当にバグ多いな。
って、GNOME3 を最初期から使っていた筆者が言うことじゃないな。
よくあることだと開き直って再インストールすりゃいいんだよ。

xcode-select --install

コマンドで最インストールするダイアログが出るけど。。。。。
又消えても困るのでパッケージでダウンロードしておきたい。

Mac OS mojaveに更新したら、xcode-selectが動かなくなったので解決した。 – Qiita

上記を試したら dmg が見つかった。
Command Line Tools for Xcode というのでいいのかな。
12.5 はベータなので今回は 12.4 をダウンロードする。

dl

落とした dmg で command+O すると中身に pkg がある。
pkg を W クリックするとインストーラが立ち上がる。

dialog

m1 Mac なら一分くらいでインストール完了。
親切に dmg をゴミ箱に捨てるか聞いてくるので残す。
dmg をアンマウントして、最初に書いたパスの確認。

bin

やはり筆者の勘違いじゃなくてココに clang があったのね。
又消えてしまっても dmg が残っているからすぐ元通りにできる。

さて問題は Python 3.8 もココに入っていることだ。
以前は Python を公式から最新にしていても巻き戻しされていたのよ。
でも 3.9 のインストーラだと ~/.zprofile で以下のように。

# Setting PATH for Python 3.9
# The original version is saved in .zprofile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.9/bin:${PATH}"
export PATH

/usr/bin の前に Python 3.9 のパスを指定という方法にしたようだ。
UNIX 系では $PATH の順番どおりにコマンドを探すんです。
このおかげで python3 コマンドは Python 3.9 のままになります。

AuthPass

そういえば M1 Mac にパスワードマネージャを入れていなかった。
細かいことは Fedora でやるし、ではいつか困るよな。
前の Mac までは Keepass XC を入れていた。

Old mac to New mac | Paepoi Blog

ぶっちゃけ、ほとんど出番は無かった。
command+V でコピペに拘る必要もないなって感じ。
おまけに結構サイズがデカい、もっと単純でいいし。
てか、Mac の Qt アプリは Mac の動作に合わせていなくて嫌。

Windows で Keepass V1。
V2 はドットネットのウンコなので無視。
Linux に移って Qt アプリな KeepassX へ。
KeepassX が V2 になったので kdbx へ変更。
開発が止まったのでフォークした KeepassXC へ。
その時に Mac にも導入。
GNOME で Ctrl+V が使えなくなった、もう何でもいいや。

で、今 Fedora では Password Safe という GTK3 アプリを使用中。
環境と同じが一番、Mac では Cocoa にしたい。

KeePass互換のオープンソースのパスワードマネージャ・「AuthPass」 | かちびと.net

こんなの見つけた、AppStore にあるジャン。
たったの 17 MB で素敵、これでいいや。

起動して [Yes,open my passwords] を選択。
[Open Local File] から kbdx を選択。
あれ?これっていわゆるブラウザアプリですか?

authpass/authpass at master ? authpass/authpass ? GitHub

ソースを見ると Linux や Windows 版もあるのね。
macos は Swift で Cocoa だ。
linux は GtkApplication なのか。
拡張子が cc なのに思いっきり C 言語で笑える。
windows は WindowsSDK だ。
wWinMain で UNICODE 直呼びして COM 使ってる、懐かしい。

それはいいとして。
これ 2 回目の起動から指紋認証が使えるぞ!
コピーはハンバーガーメニューから選択なのがチト面倒かな。
主に確認用なんだからそれでいいか、しばらく様子見。