Mac」タグアーカイブ

Mac

12GB もある Big Sur アップグレードなんてやってられん。
もう Macbook Air 2018 なんか売ってしまえ!

ではなく、M1 の Air を注文したのでとっとと処分。
人柱をやったブロガーの皆様ありがとう。

M1搭載Macの第一印象と、迷っている人に贈る買い時かどうかの基準|楠 正憲(Japan Digital Design CTO)

一番気になる Python は普通に動くようだ。
ARM 向けビルドの拡張モジュールがどうのと書いている、ん?
ソースからビルドなのか公式から落としたものなのか、それとも、、、、、

Apple、macOS 11 Big SurにmacOS 10.15 Catalinaと同じPython 2.7.16やRuby 2.6.3p62などを同梱してリリース。 | AAPL Ch.

実は Command Line Tools に Python3 が同梱されているんだよね。
というか 3 をデフォルトで入れてくれよと。
多分コイツは M1 ネイティブだと思うんだけど、まだ手元に無いからなんとも。
ネイティブじゃないと PyObjC は動くはずがないな、まあ届いたら。

Homebrew はインストールしかしない人用なので関係ない。
Docker は使い道が思いつかない、等々も別にどうでもいい。

ASCII.jp:アップル「M1版Mac mini」意外なほど使えるマシン (1/3)

Atom は Rosetta 2 で問題なく動くのね。
Lightroom は M1 対応になってから使う予定。

というか Lightroom のために M1 Air を注文したようなものだし。
写真が趣味になったら Fedora というか Linux では色々とキツすぎる。
今後は Fedora のサブ機ではなく Mac らしい使い方をしようということで。

売ったお金で換算 50mm の単焦点と三脚を買った。
沼に片足を突っ込んでいる気がするけど。

onagagamo

三連休は休日出勤もしたしなんやかんやで写真が無い。
ということで中断していた名古屋城堀の続きでオナガガモ。
オスがカッコよすぎ、人を恐れないらしくワイド端で撮れた。

macOS…

macOS 11 Big Surのインストーラアプリのサイズは12GBを超えMac OS X 10.7 Lion以降で最大に。 | AAPL Ch.

まさかの 12.6GB かよ。
次のアップデートは 15GB 越えになるかも。
もう mac はヤメにして Fedora 一本にしようか迷うレベル。

そもそも今回は M1 チップの mac で使う前提な OS なんでしょ。
ん?いやまてよ。
我が Macbook Air 2018 を M1 チップ Air に買い替える手も。

ファンレスがちと気になるけど。
実際に何度かスクリプトを暴走させて回しているんだよね。
でもよく考えたら iPhone や iPad もファンレスだ。
CPU 監視するウイジェットでも置けばなんとかなるかも。

以前 iPad Air を買うとか書いたけど。
実物を見たら画面が小さいことが気になって迷っている最中。
iPad ヤメにしてファンレス mac にするってのもアリかも。
ペチペチキーボードとおさらばもできるし。

よし、我が Macbook Air 2018 の下取り額を調べてみよう。

nomac

何でだよ!
ペチペチキーボードはいらないってか?
US 配列なのがいけないのか?
もう少し調べる、最悪 Sofmap だな。

Swift…

筆者は macOS に Command Line Tools を入れているんだし。
せっかくなので Swift もちょっぴりやっておこうかなって。

調べてみると CLang ではなく swiftc コマンドを使うようだ。
ソースの拡張子は swift とそのまんまにする。
gcc や CLang 同様に -o オプションで名前を付けられる。
Foundation の println を使わず print で stdout に出力可能。

// swiftc -o hoge src.swift
print("TEST")

うん、Xcode が無くてもビルドできるね。
さて Foundation を使ってみよう。

import Foundation
println("TEST")
exit(0)

というネットで見つけた最小限コードに書き換えてみたけど。
ビルドできない、いくら探してもオプション無しでビルドできると出るのに。
Objective-c と同じ -framework オプションを指定しても結果は同じ。

swiftc

手段はあると思うけど見つからない、別のビルドを試そう。
公式をよく見るとパッケージの作り方が書いてあった。

Swift.org – Getting Started

swift package init
swift build

xctest

xctest が無いんだって、xc*** ってつまり Xcode のツールだよね。
もしかして Xcode を入れたら上の swiftc コマンドも上手くいくのかも。
Swift って完全に Xcode とセットなのか???

もう嫌だ、言語を試す前になんでこんなに苦労しなきゃいけないんだよ!
Xcode を入れたって今度は Xcode の使い方に苦労するだけジャン。
Swift ヤメ、やっぱり Swift はスズキだけでいいよ。

Objective-c は言語もビルド方法も簡単だったのにな。
それより昔書いた C や JXA のコードがサンドボックスに引っかかるのをなんとかしてくれよ、SELinux みたくできないのか?
プログラミングするなら mac、という時代はもう終わっている。

macOS Command Line Tools

今回は Mac ネタ。
macOS にコンパイラを入れたいけど Catarina の Xcode は 8.1GB もある。
ちょっと C を使うだけにこんな巨大なモンを入れるなんてイヤだ!
と思っていたけどコマンドラインツールというものがあるらしい。

日本語ブログにはロクな情報が無いので下記を見て。
How to Install Command Line Tools in Mac OS X (Without Xcode)

個別には選択できないのね、てかヘッダやライブラリ類の情報が無いけど。
筆者はぶっちゃけ CLang と標準ヘッダと Cocoa SDK だけでいいんだけど。
C 等の標準ヘッダは当然入ると思うけど何故かどこにも情報が無い。

インストールサイズも Xcode からいくつ減ったみたいなのしか出てこない。
よし疑問点は自分で導入して調べてみよう、まず現状 SSD 状況の確認。

i001

異様に少ないかも、ほぼスクリプトというかテキストファイルばかりだもん。
筆者は大量なデジイチ画像や動画は全部 Fedora メインマシンに入れているので。
とっととリンク先コマンドでインストールしたら。

i002

19.22 – 18.28 = 0.94
約 1 GB ってことね、Linux を知っているとコレでもデカい。

open /Library/Developer/CommandLineTools/

とコマンドを打って何がインストールされたか調べる。

i003

Cocoa どころか Metal, WebKit 等のヘッダは上記に普通にあったわ。
てか SDK 丸ごとかよ、そりゃこんなサイズになるってばさ。
標準ヘッダは usr/includes 以下にある、Linux の /usr/includes と同じ。
C/C++ ヘッダは共通位置に、拡張子の無いものが C++ 用なので共存している。

ところで解っていると思うけど、新たにパスを通す必要は無い。
最初から /usr/bin にあるゾンビコマンドが該当コマンドを実行する。
Linux の pkg-config 相当は clang のオプションだけでまかなえる。

#include <stdio.h>

// clang -o c_out test.c

int main(void) {
    // C99 対応チェックをついでに
    for (int i=0; i<3; i++) {
        printf("%d\n", i);
    }
    return 0;
}

#import <Foundation/NSString.h>

// clang -o m_out test.m -framework Foundation

int main(void) {
    const char *cstr = "スズキ";
    NSString *nstr = @(cstr);
    NSLog(@"%@", nstr);
    return 0;
}

をやってみると普通にビルドできた。
clang は gcc と -o オプションが共通なのね。

xcode-select -h で見るとアンインストールオプションが無い。

sudo rm -r /Library/Developer/CommandLineTools

だけでいいと思う、削除しないけど。

open -a URI

macOS の open -a に渡すのは URI でも良かった。

Finder Script を以下に書き換えしても普通に動くね。
Tips ページを又しても書き換えしなきゃ。

#!/usr/bin/osascript

let app = Application.currentApplication();
app.includeStandardAdditions = true;

let uri = Application('Finder').finderWindows()[0].target().url();
//let path = decodeURI(uri).slice(7);
//app.doShellScript(`open -a Terminal "${path}"`);
app.doShellScript(`open -a Terminal "${uri}"`);

ところで筆者はメインマシンが Fedora なので URI と主に書く。
macOS メインの人は URL と同じ意味だと思えばいい。
URLとURIの違いとは? パーツの構造・名称・意味も大解説! | 初代編集長ブログ―安田英久 | Web担当者Forum

ただし macOS 標準アプリは全部対応しているけどアプリによるみたい。
筆者自作の comipoli も対応しなきゃいけないんだけど。