Menu

Skip to content
AppleScriptの穴
  • Home
  • Products
  • Books
  • Docs
  • Events
  • Forum
  • About This Blog
  • License
  • 仕事依頼

AppleScriptの穴

Useful & Practical AppleScript archive. Click '★Click Here to Open This Script' Link to download each AppleScript

カテゴリー: news

Xcode 14.2でAppleScript App Templateを復活させる

Posted on 3月 21 by Takaaki Naganoya

AppleScript+Xcodeでアプリケーション開発を行う方法についてわかりやすくまとめた電子書籍「AppleScript+XcodeでつくるMacアプリ Xcode 14対応」を刊行しました(PDF 448ページ+付録、サンプルXcode Project Zipアーカイブ)。

この書籍の中では、テンプレートがXcode 14.2に存在していないので、書籍添付のプロジェクトをコピーして使ってください、という説明を行っています。

と、そんな本をまとめたところ、edama2さんから「なんか、前バージョンのXcodeからテンプレートをコピーして来れるみたいだよ」という話が!

早速、調べてみました。edama2さんから教えていただいた記事のとおりにはいかなかったので、Xcodeのバージョンによっては細部が変わっているようです。

自分は、Apple Developer Connectionに契約しているので、古いバージョンのXcodeもダウンロードできます。古いといっても古すぎるのはどうかと思いますので、ここではXcode 13.2をダウンロードしてきました。アーカイブ展開してさっそく、Xcode 13.2のバンドルパッケージ内にアクセスします。

Xcode 13.2.appをFinder上で選択して、マウスの右ボタンクリックでコンテクストメニューを表示させ、「パッケージの内容を表示」を実行。

/Contents/Developper/Library/Xcode/Templates/Project Templates/macOS/Other

の中に「AppleScript App.xctemplate」が存在していました。

この「AppleScript App.xctemplate」をXcode 14.2(記事執筆時最新)が認識するテンプレートのフォルダにコピーすれば使えるでしょう。

~/Library/Developer/Xcode/Templates

の中にコピーすると、Xcodeが14.2が認識してくれました。

Xcode 14.2を起動し、File>New Project

「AppleScript App」を選択すると、問題なく新規プロジェクトが作成できます。

テンプレートをZip圧縮して、ダウンロードできるようにしておきます。

Download Templates.zip

(Visited 29 times, 7 visits today)
Posted in How To news | Tagged 13.0savvy Xcode | Leave a comment

AppleScriptによるWebブラウザ自動操縦ガイドをmacOS 13対応アップデート

Posted on 2月 22 by Takaaki Naganoya

SafariやGoogle Chromeなど7つのmacOS用Webブラウザを操作するAppleScriptの書き方と有用な実例を紹介する電子書籍「AppleScriptによるWebブラウザ自動操縦ガイド」をアップデートしたv1.3を公開しました。ページ数も317から330ページに増加。macOS 12, Monterey & 13 Ventura, Apple Silicon Mac対応です。

→ 販売ページ

目次

1章 めんどうな操作を自動化しよう!
人間の手で操作して情報を集めたり、データ入力するのは非効率。スクリプトから操作して自動操作

2章 スクリプトエディタの使い方
AppleScript専用のスクリプトエディタの使い方など、基礎的な内容をご紹介。

3章 WebブラウザをAppleScriptから動かそう
macOS用Webブラウザの大半はAppleScriptから操作可能。AppleScript対応は必須の機能!

4章 Webブラウザの情報を取り出そう
Webブラウザ自体が大量の情報を管理しています。まずは、ブラウザの情報を調べてみましょう。

5章 指定URLをオープンしよう
誰にでも確実に行える操作です。かならず経験しておきましょう。URLをオープンした後が大事です。

6章 コンテンツをキャプチャして保存しよう
表示内容を変化しないデータや、再利用可能なデータとして残しておくことは、重要な処理です。

7章 Webコンテンツにアクセスしよう
HTML内の操作対象にアクセスするための、さまざまなアプローチをご紹介

8章 Webコンテンツを画面部品として操作しよう
画面上の部品と同様にWebコンテンツにアクセスして強引に操作する「奥の手」GUI Scripting

9章 ログイン、ログアウトしてみよう
ユーザー登録が必要なWebサイトの処理を行うために必須の作業です。意外とクリアしにくい箇所

10章 データをダウンロードして処理しよう
直接ダウンロードできないファイルのダウンロード完了を検出して、ファイル処理しよう! ダウンロード後にファイル整理したりファイル名を変更したり

11章 仮想ディスプレイでユーザーの誤操作を防ごう
ユーザーからの操作をガードするために、仮想ディスプレイを用意してWebブラウザを表示! 画面上から強引にScriptで動かすと、ユーザーの誤操作が一番の大敵

12章 さまざまな実行環境を知ろう
AppleScriptにはいろいろな実行環境があって、環境ごとにできる/できないことがあります。時間と気持ちに余裕のある時にでも読んでおくとよいでしょう。

13章 実例:Quoraの統計データを取得しよう
実際に、Quoraのアクセス情報ページにアクセスし、自分の投稿情報を取得してみよう!

14章 さまざまな技術資料。興味があったら読んでね
アプリケーション・オブジェクトの指定方法/AppleScript用語辞書の確認方法/Webブラウザの基礎的なScripting/Google Chrome系のWebブラウザのsdef/AppleScriptの歴史/AppleScriptのエラーコード表/各Webブラウザの用語辞書の変更履歴/AppleScript予約語一覧

(Visited 16 times, 1 visits today)
Posted in Books news | Tagged 12.0savvy 13.0savvy Brave Browser Google Chrome Google Chromium Microsoft Edge Opera Safari Vivaldi | Leave a comment

「AppleScriptによるWebブラウザ自動操縦ガイド」更新作業中!

Posted on 2月 16 by Takaaki Naganoya

「AppleScriptによるWebブラウザ自動操縦ガイド」をmacOS 13向けに内容更新中です。Ver.1.3になります。

本文の更新はできているので、添付のScriptの動作確認がひととおり終わればリリースします。すでにお買い上げの方は、Ver.1.3のリリースにともない、再ダウンロードすることで最新版をご覧いただけます。

Google Chromiumのみ、普通にインストールしても動かなかったのでv1.2と同様、Intel Binary版での検証となります。

(Visited 16 times, 1 visits today)
Posted in Books news | Tagged 13.0savvy | Leave a comment

新発売:ポケコンサークル「LL」会誌Vol.19復刻版

Posted on 1月 30 by Takaaki Naganoya

1987年に結成し、1994年まで会誌を発行し続けていたポケットコンピュータのユーザーズサークル「LL」の会報Vol.19の復刻・電子書籍版を刊行しました。

→ 販売ページ

Piyomaru Softwareによる電子書籍の71冊目です。例によって制作過程では大量のAppleScriptが使用されていますが、AppleScriptに関する本ではありません。

1987年に結成された、ポケコンサークル「LL」の会誌最終号(Vol.19)の復刻版です(当時のLL会員の方には無償配布)。1994年に発行された会誌Vol.19のバックアップCD-Rデータから再作成して蘇った電子書籍版。PDF 282ページ。

目次

■巻頭カラーグラビアページ

・欧州の森に謎のPC-1560を見た!
・幸福の青いPC-1500″D”
・月々240円で昔の彼女に会える
・SC61860をサポートするクロスアセンブラ
・2022年に新発売のMEPに驚愕!
・これがCE-140Fエミュレータだ!
・PC-1600用 大容量RAMモジュール
・露国在住のHWRなあんちくしょう
・多機種対応/合体式Bluetoothモジュール
・CE-126Pエミュレータで感熱紙不要の印刷を
・鉄人・堀川浩司氏のイベント参加魂!
・独仏のWebサイトは一味も二味も違う!
・東京都青梅市に古パソコン動態保存の「夢の図書館」
・ポケコン用のLCDをオリジナルで作成・販売
・ポケコン用周辺機器の製造・販売を行う高松製作所
・ポケコンなどの3Dモデルをフリー公開
・日本国内外のパソコンメーカー栄枯盛衰

まえがき

ポケコンを当時何に使っていたの?~当時のポケコンユーザーの活動内容を振り返る

会誌作成テクノロジーの進歩~LL会誌を作る道具がどのように進化していったか

できるかな? Vol.2 ポケコン用PC-9801マウスインタフェース「鼠小僧キューハチ」完成!

CE-140F徹底解析

X680x0によるポケコンのクロス開発 

酸化ナトリウムくらぶ Vol.16  Pocket Movie Project第2回 「コントロール・コード」

常駐型 多重再生PCM&サウンドドライバーSound TSR 16K

CHENGER mkII For PC-1600K, PC-1605K, PC-1600

常駐型割り込みハードコピープログラムFor PC-1600K, PC-1605K, PC-1600 Post It! ver1.2

白黒二値画面情報圧縮用副プログラム集 LIPS For PC-1600K, PC-1605K, PC-1600

 

割り込みリアルタイムクロック For PC-1600K, PC-1605K, PC-1600

 

カルチャーショック野球拳 For PC-1600K, PC-1605K

でぃじたる和時計 For PC-1600K, PC-1605K

■エッセイ

■ふりーとーく

■かつて運営していたパソコン通信ホスト「LLine」をふりかえる

■The LL Times

■TV LL

■編集後記2023

(Visited 8 times, 1 visits today)
Posted in Books news | Leave a comment

新発売:Mail.app Scripting Book with AppleScript

Posted on 1月 6 by Takaaki Naganoya

Piymaru Softwareによる電子書籍の70冊目は、AppleScript対応アプリケーション徹底解説シリーズの第6弾。

macOS上の主要アプリケーション、FileMaker Pro、ミュージック.app、Webブラウザ、iWork(Keynote、Pages、Numbers)、CotEditorときて、ご要望の多かった「メール」(Mail.app)についてのScripting本です。macOS 13.1+Mail.app v16対応。PDF 369ページ+サンプルScript Zipアーカイブで構成されています。

→ 販売ページ

本書は、Mail.appのAppleScriptによるScriptingについて基礎からハイ・テクニックまで、詳細にまとめた決定版です。

メールの詳細な情報取得や送信、ファイル添付送信、メールのスレッドをマインドマップ風に可視化して表示したり、REST API経由で高速メール配信サービスを用いた送信まで。幅広く実用的なメール関連のAppleScriptのノウハウをご紹介しています。

ずいぶん時間をかけて書いた本で、あとから企画が出た数冊の本が追い抜いていました。CotEditor本も、あとから企画したものの、あちらが先に完成しました。とにかくアプリケーションの規模が大きく、機能が多く、試しておくべき機能が多いので、とにかく時間がかかるんですね。実際、年末年始も書いていました。

以前から(2004年ぐらいから)受信メールのサブフォルダへの再仕分けScriptを運用しており、いまも利用していますが、これを添付しています。

また、選択したメールスレッドのマインドマップ形式の可視化Scriptも、別途アプリケーションをインストールしなくても利用できるものを添付しています。

SendGridのREST APIを呼び出して超高速にメール送信を行うScriptは、あんまり速いので腰が抜けるほどですが、これも一見の価値あるものでしょう。

Numbersの表に入れたデータをもとに、メールの文面にデータを差し込んで送信するScriptも添付しているので、年末年始のごあいさつなどに威力を発揮することでしょう。

■■目次

■初級

スクリプトエディタを起動しよう
 スクリプトエディタを起動しよう!
 スクリプトエディタのヘルプ
 色設定を変えてみよう!
 スクリプトを入力してみよう
 スクリプトを保存しよう
 スクリプトを実行しよう(1/2)
 スクリプトを実行しよう(2/2)
 セキュリティとプライバシー
 プライバシーとセキュリティ(13.x以降)
 セキュリティとプライバシー>プライバシー
 プライバシーとセキュリティ(macOS 13)

メール.appを起動しよう
 メール(Mail.app)を指定
 メール.appを起動
 メール.appを終了
 メール.appのAppleScript用語辞書の調べ方
 メニュー項目や画面強制操作の調べ方
 メール.appの詳細仕様について

メール.appの情報を取得しよう
 メール.appの名前を取得
 メール.appのバージョンを取得
 メール.appのプロパティ項目と内容(1/2)
 メール.appのプロパティ項目と内容(2/2)

選択中のメールボックス、メールを取得
 selected mainboxes=選択中のメールボックス
 selected messages=選択中のメール
 selection=選択中のメッセージを取得
 メールボックスのプロパティ項目と内容

メール情報の取得
 メッセージ(メール)の内容を取得
 メッセージ(メール)のソースを取得
 メッセージ(メール)の各種情報を取得
 メッセージのプロパティ項目と内容
 メッセージのプロパティ項目と内容
 メッセージのプロパティ項目と内容

条件に合ったメールの抽出
 条件に合うメッセージを取得

メールアカウント情報
 メールアカウントは複数存在可能
 accountオブジェクトの詳細情報を取得
 アカウントのプロパティ項目と内容①
 アカウントのプロパティ項目と内容②

メールアドレスを取り出す
 文字列からメールアドレスと氏名を抽出
 選択中のメッセージからメールアドレスと氏名を抽出

シグネチャ(署名)
 設定>署名で「署名」を管理
 署名から情報を取得
 アプリケーションの選択中署名情報
 署名の属性値の書き換え(名称、本文)

スクリプトメニューからの操作
 スクリプトメニューからの操作①
 スクリプトメニューからの操作②
 スクリプトメニューからの操作③

プリントアウト
 メール.appから印刷出力(GUI側)
 AppleScriptによる印刷
 AppleScript(GUI Scripting)による印刷

■中級

アカウントを指定しての新着メール確認
 メールアカウント種類ごとのメール確認
 新着メール確認スケジュールの設定/停止

SMTPサーバー
 SMTPサーバー情報の取得
 指定アカウントのSMTPサーバー設定を切り替え
 SMTPサーバーのプロパティ項目と内容

新規メール作成
 メッセージの新規作成

メール送信
 メッセージの新規作成+送信
 GUI側で作成していたメールの送信①
 GUI側で作成していたメールの送信②

添付ファイルつきメール送信
 メッセージの新規作成+ファイル添付+送信
 メッセージの新規作成+アーカイブファイル添付+送信①
 メッセージの新規作成+アーカイブファイル添付+送信②

メールの添付ファイルを処理
 選択中のメールの添付ファイルを保存
 選択中のメールの添付ファイルの種別を集計①
 選択中のメールの添付ファイルの種別を集計②
 選択中のメールに添付ファイルがあれば背景色を赤く変更

メール返信
 選択中のメールへの返信①
 選択中のメールへの返信②

メール転送(Forward)
 選択中のメールの転送(forward)①
 選択中のメールへの転送②

メールのリダイレクト
 選択中のメールの非破壊転送(redirect)①

メールボックスへのアクセス
 特別なメールボックスのオブジェクト
 特別なメールボックスへのアクセス
 アカウント毎の特別なメールボックスへのアクセス

メールフォルダのパス情報
 メールボックスのパス表記
 選択中のメールボックスのフルパスを取得
 フルパス文字列でメールボックスを指定

メールのフォルダ間の移動
 メールの指定①
 メールの指定②
 メールのコピー
 メールの移動

ビューアウィンドウの操作
 メール.appのウィンドウ種別
 ビューアウィンドウ操作
 message viewerのプロパティ項目と内容①
 message viewerのプロパティ項目と内容②

メールのルールを扱う
 受信メールから条件実行するアクション「ルール」
 「ルール」の「AppleScriptを実行」環境
 テンプレートのメール.app用プラグインScript
 ルールにAppleScript側からアクセス
 ルールの「条件」にアクセスするrule condition
 rule conditionとGUI上の内容との対比
 ルールの「操作」の内容にアクセス
 ルール「操作」の詳細にアクセス

■上級

URL Eventの発生/受信
 メール.appが対応しているURLイベント
 mailto: URLイベント(概要)
 mailto: URLイベントを発生してメール作成
 message: ローカルのメールのURLを求めて表示

メールヘッダー情報の取得
 メッセージヘッダーの内容を取得
 メッセージ(メール)のヘッダーを取得
 ヘッダーの構成例
 ヘッダーからフィールド名一覧を取得
 メーラー名(x-mailer)を集計

メールスレッドの可視化
 スレッドの可視化①
 スレッドの可視化②選択中のメール情報
 スレッドの可視化③各メールヘッダ情報
 スレッドの可視化④.dotデータの作成
 スレッドの可視化⑤.dotデータを表示

メーリングリストの振り分け先フォルダを抽出する
 メーリングリストを処理するルールを抽出
 メッセージ移動先がないルールを抽出

メールの再仕分け
 「メールの再仕分け」とは?
 「メールの再仕分け」Script変更履歴
 「メールの再仕分け」Script処理概要
 「メールの再仕分け」Script①
 「メールの再仕分け」Script②
 「メールの再仕分け」Script③
 「メールの再仕分け」Script④
 「メールの再仕分け」Script⑤
 「メールの再仕分け」Script⑥
 「メールの再仕分け」Script⑦
 「メールの再仕分け」Script⑧

スタイル付きテキストのメール作成+データ差し込み
 スタイル付きメールを作成するために
 書式スタイル付きメールを作成
 HTMLからスタイル付きメールを作成
 RTFからスタイル付きメールを作成①
 RTFからスタイル付きメールを作成②

Numbers上のデータをもとにさしこみメール作成
 データ差し込みメール送信【概要】
 データ差し込みメール送信①
 データ差し込みメール送信②
 データ差し込みメール送信③
 データ差し込みメール送信④

高速・大量メール送信
 高速メール配信サービスの利用
 高速メール配信サービス一覧
 SendGridのAPI Key取得までの道①
 SendGridのAPI Key取得までの道②
 SendGridのAPI Key取得までの道②
 SendGridによるメール配信テスト(メール.app)
 SendGridによるメール配信テスト(メール.app)
 メール.appによるメール配信プログラム(SendGrid使用)
 REST APIによるメール高速配信プログラム
 SendGridを用いたメール送信所要時間(500通)
 メール.appで大量送信後のメモリの状態

ランタイム環境の選択
 AppleScriptの実行環境はたくさんある
 実行中に止まる、落ちるという場合には

資料集

メール.appのAppleScript用語辞書解説
 メール.app用語辞書

メール.appのAppleScript用語の変遷
 メール.app用語辞書の変遷

メール.app&AppleScript Q&A
 AppleScriptに関するQ&A❶
 AppleScriptに関するQ&A❷

AppleScript mini Reference
macOS搭載 AppleScript関連ドキュメント
AppleScript関連の情報源
macOSバージョンとAppleScriptの動向
macOSとAppleScriptの要素技術史
各macOSごとのAppleScript解説(2/4)
各macOSごとのAppleScript解説(3/4)
各macOSごとのAppleScript解説(4/4)
macOS内AppleScript補助ツールの歴史
System EventsのAppleScript用語辞書変更点
AppleScript 各ランタイム環境情報
AppleScript 関連ツール
Cocoa Scripting 関連ツール

AppleScript予約語一覧

サードパーティ製FrameworkやAppleScript Librariesを呼ぶ
Script BundleにFramework / AppleScript Librariesを入れる
Shane StanleyのScript Toolの変遷
Shane StanleyのScript Libraries
Piyomaru SoftwareのScript Libraries (1/2)
Piyomaru SoftwareのScript Libraries (2/2)

エラーコード表
AppleScriptのエラーコード
AppleScript Errors
Mac OS Errors
AppleEvent Errors (1/2)
AppleEvent Errors (2/2)
OSA Errors
あとがき

(Visited 40 times, 3 visits today)
Posted in Books news | Tagged Mail | Leave a comment

2022年に書いた価値あるAppleScript

Posted on 12月 27, 2022 by Takaaki Naganoya

2022年に使用していたmacOS:macOS 12→13

毎年行なっている、Piyomaru Softwareが書いたAppleScriptの1年を振り返る記事の2022年版です。

→ 2018年に書いた価値あるAppleScript
→ 2019年に書いた価値あるAppleScript
→ 2020年に書いた価値あるAppleScript
→ 2021年に書いた価値あるAppleScript

2022年も大変な1年でした。macOSやApple純正アプリケーションのバグが発生したり治ったりのジェットコースター状態。macOS 13.0についても「冗談だよね?」という出来で、

 「もう、OSがアップデートされて半年ぐらい待たないとリリース状態にならないのかも?」

と感じるものです。

13.1でずいぶんまともになりましたが、13.1の出来になってからリリースすべきなのでは? というところ。

たいした追加機能がない割にバグがその数十倍もてんこもりについてくるのは、どうなんでしょう? Appleは機能を開発しているのではなく、もはや「いやがらせのための機能」や「新たなバグ」を開発しているメーカーであるように感じます。β版の段階で開発者/ユーザーが検証して「この新たな嫌がらせの機能は納得できない」とフィードバックしないと、延々と嫌がらせのための機能が増えてくるので、油断できません。

macOS 13のシステム設定も、警告音のフォルダにサウンド以外のAppleScript書類を入れても警告音一覧にそれが出てきてしまうので(さすがに再生はできない)初心者が作るへっぽこアプリケーション並みの作りになっていることが見て取れます。

本を書きまくった1年?

今年執筆した書籍はおよそ、41冊。いま書いている「Mail.app Scripting Book With AppleScript」が年内に書きあがれば(無理無理無理無理)42冊。

ピークの4月は1か月間に8冊。3日に1冊のペースで出していました。感想やら何やら事前に読んでいただいているEdama2さんのご協力に感謝しています。本当にありがとうございます。

「基礎テクニック集」は、今年あらたに立ち上げた書籍シリーズで、「こういうのがないとダメなんじゃないか?」という議論の中から生まれた、基礎を重点的に解説する本です。まだ、書いていない積み残したテーマがあるので、続く感じでしょう。

「実践テクニック集」は、前述の「基礎テクニック集」ではおさまりきらない大きなテーマを扱うシリーズとして立ち上げました。「GUI Scripting」はまとめておくべき大きなテーマであり、方向性やノウハウやツールの使い方など(UI Browserなど)を徹底的に紹介しています。

2022年に書いた価値あるAppleScript

そんなわけで、本ばかり書いていたので毎日KeynoteやPagesばかり使っており、これらのアプリケーションを操作するAppleScriptが必要になったら書いて作業を効率化するという繰り返し。本数はそれほど多くないものの、けっこう強力なものがそろっています。

一方で今年書いたAppleScriptで価値あるもの……といったときに、月ごとにリストアップする形式に無理を感じるようになってきたので、毎月1本といった固定形式にせず、適宜リストアップします。

・AS関連データの取り扱いを容易にする(はずの)privateDataTypeLib
オブジェクトからデータを取り出すのにデータアクセス文字列で指定するという試みです。この手の仕組みがないと、プログラムが冗長になりがちなので用意してみようかというお話しです。

・Bundle IDで指定したアプリケーションのSDEFからコマンドを抽出テスト(指定コマンドのコマンド属性取り出し)
・Bundle IDで指定したアプリケーションのSDEFからオブジェクトを抽出
・Bundle IDで指定したアプリケーションのSDEFからXPathで指定したClassにアクセス v2
アプリケーション内蔵のAppleScript用語辞書を解釈して、Scriptを自動生成するための試みです。割とできるようになるんじゃないかと思っていますが、まだ基礎実験を行なっているだけの状態です(そういうの多いな!)

・Keynoteの表で選択中のセルの文字列長さを一覧表で表示
自分の書いた本の既刊分の説明文をKeynoteの表に入れ、文字が多いとか少ないといった「ゆらぎ」を調べるためのものです。決められたスペースに入れなくてはならないので、この手の細かい作業は割と発生し、こうした確認用Scriptをいったん作っておけば次回からはきわめて短い時間で作業できます。

・Keynote上でテキストアイテムとn重のシェープの重なりを検出 v2
ある意味、Cocoaの機能とGUIアプリケーションの機能をブレンドした内容で、GUIアプリケーションの機能だけでは実現できなかった処理です。矩形オブジェクトが2重とか3重に重なっている場合に検出するというのは、半透明のオブジェクトを重ねて何かを表現している中で生まれたものです。

・Keynote書類中のスライドのトビラページを推測する
Keynoteのマスターページの名前の分布から扉ページを推測するというものです。自分の作る本の傾向を反映させたもので、どの人でも普遍的に使用できるわけではありませんが、、、。

・RectangleBinPackを用いて2D Bin Packを解く v2.3
2D BinPackは、指定の矩形エリア内に指定の複数のオブジェクトを最適化配置して詰め込むもので、KeynoteのようなGUIアプリケーションに対して実行できるのは、非常に効果的です。

・Safariで表示中のYouTubeムービーのサムネイル画像を取得
本当は指定の再生ポジションのサムネイル画像を取得したかったのですが、まだそこまで研究が進んでいません。

・Keynoteの最前面の書類の現在のスライド上の表オブジェクトの重なり合い(2つ以上対応)を検出 v3
これは、書籍に添付しているコマンド表が重なって配置されるという「事故」から、それを検出するScriptを作成したものです。Keynoteの表オブジェクトだけでなく、他のアプリケーションの他のオブジェクトの重なり合わせも検出できることでしょう。

・書籍フォルダの階層をさかのぼって、ツメに掲載する最大チャプターを推測 v2
Pages書類が入っているフォルダの親フォルダをたどって、そのフォルダに記入されている章の数字から最大のものを計算することで、ツメ(ページ端に記載するインデックス)の大きさを変更するものです。ツメをつけると可読性が上がる本がある一方で、ツメの作成や変更を手作業で行うなんて耐えられません。そういうものこそAppleScriptで自動処理させるべきです。

・リストに入れたテキストで、冒頭に入ったマルつき数字をリナンバーする
丸つき数字のリナンバーは、つまらない内容の割に手間がかかる作業であり、これも手作業を撲滅したい内容の上位に入ってくるものです。

・与えられた自然言語テキストから言語を推測して、指定の性別で、TTSキャラクタを自動選択して読み上げ
この手の処理は、AppleScriptのコマンドレベルで普通にできてほしい内容です。ないので自分で書きましたが、macOS 13でText To SpeechキャラクタのID周りに手が入って、これも書き直さないといけないかもしれません。

・Intel MacとApple Silicon Macの速度差〜画像処理
内容はもちろんタイトルどおりですが、これでM1を集積したM1 ProであるとかM1 Ultraの処理性能がメーカー側が言うほどリニアに向上しているわけではないことがわかりました。つまり、M1よりもそれらの上位CPUの方が「処理が遅くなるものもけっこうある」ということです。ここから、M1世代でM1を集積したMac Proが出たら、相当にM1よりも遅い処理が出てくるのでは? と噂していたものですが、作ってはみたもののキャンセルされたようなので、見立て通りといったところだったのでしょう。

2022年の出来事(macOSのバグ以外)

UI Browser 3の開発と販売が終了し、LateNight Softwareに移管された、というのが1つの大きな流れです。Swiftで書き直されたUI Browser 4についてはgithub上でオープンソースで開発が継続されています。

そして、Font Book.appがMac Catalystのアプリケーションに変更され、それにともなってAppleScript用語辞書が削除されました。これが復活するのかどうかは不明ですが、ここに新たに「Catalyst堕ち」という言葉が爆誕。Mac Catalyst化=機能低下バージョンという方針が明らかになってきました。

今年参加したコンテストはFileMaker Proの「バカスタム App選手権」。これに入賞しています。

(Visited 64 times, 1 visits today)
Posted in news | Tagged 12.0savvy 13.0savvy | Leave a comment

新発売:CotEditor Scripting Book with AppleScript

Posted on 12月 11, 2022 by Takaaki Naganoya

Piyomaru Software Booksの69冊目。「CotEditor Scripting Book with AppleScript」を発売しました。PDF 343ページ+サンプルScriptZipアーカイブ で構成されています。

→ 販売ページ

アプリケーションのすべてのScriptingをわかりやすく詳細にまとめた徹底解説シリーズの第5弾。

CotEditorは(起動、動作が)速い、うまい、フリー、と3拍子そろった、Macユーザー定番のテキストエディタです。

macOS専用に作られているため、その分、macOSならではの機能を活かす方向に全振りした作りになっています。

そんなCotEditorはもちろんAppleScriptに対応しており、さまざまな作業の部品としてCotEditorを利用したり、CotEditor自体の機能をAppleScriptで追加することもできます。macOS 12以降に対応。

■初級

・スクリプトエディタを起動しよう

スクリプトエディタを起動しよう!
スクリプトエディタのヘルプ
色設定を変えてみよう!
スクリプトを入力してみよう
スクリプトを保存しよう
スクリプトを実行しよう(1/3)
スクリプトを実行しよう(2/3)
セキュリティとプライバシー
プライバシーとセキュリティ(13.x以降)
セキュリティとプライバシー>プライバシー
プライバシーとセキュリティ(macOS 13)

・CotEditorを起動しよう

CotEditorを指定
CotEditor.appを起動
CotEditor.appを終了
CotEditorのAppleScript用語辞書の調べ方
メニュー項目や画面強制操作の調べ方
CotEditorの詳細仕様について

・CotEditor自体の情報を取得しよう

CotEditorの名前を取得
CotEditorのバージョンを取得
CotEditorのプロパティ項目と内容

・オープン中の書類へのアクセス

CotEditorでオープン中の書類へのアクセス
最前面の書類、ウインドウにアクセス
documentの属性情報にアクセス
windowの属性情報にアクセス
ウインドウ関連の操作で「できない」こと

・書類の選択部分へのアクセス

selection=選択中のテキスト
selection自体のプロパティ
selection内容のテキストの取得
selection内容の書き換え
selectionの作成

・書類のスクロールとジャンプ

書類のスクロール①
書類のスクロール②
書類の指定行にジャンプ
書類の乱数行にジャンプ

・ウインドウの操作

ウインドウの属性値へのアクセス
指定ウインドウを最前面に表示
指定ウインドウの表示状態を変更
指定ウインドウをズーム表示
参考:最前面のウインドウをフルスクリーン表示
指定ウインドウのサイズを変更

・CotEditor内蔵コンソールへの文字列出力

コンソールに文字列を出力

・内蔵/OS搭載スクリプトメニューからの操作

2つのScript Menu環境
CotEditor内蔵スクリプトメニュー
macOS搭載標準スクリプトメニュー
各スクリプトメニューの技術仕様

・AppleScriptからCotEditorを操作するパターン

■中級

・ファイルのオープン

ファイルを指定して書類をオープン
複数のファイルを指定して書類をオープン
コラム「CotEditorが使用するパス表現」

・ファイルの保存

書類を指定パスに保存
書類を新規作成して本文を設定して指定パスに保存
保存済み書類に変更が加わっていたら保存

・ファイルのクローズ

書類をクローズ(with saving)
書類をクローズ(without saving)
書類をクローズ(saving ask)
新規書類をクローズ

・各種文字操作(選択範囲の操作)

change case
change kana
change roman width
shift right
shift left
move line up
move line down
sort lines
delete duplicate line
comment out
uncomment
smarten quotes
straighten quotes
smarten dashes
normalize unicode

・各種文字操作(document全体の操作)

find(1/2)
find(2/2)
replace
string

・タブ、改行コードの取り扱い

改行コードの変更タブ幅の変更
文字コードの指定
convert
reinterpret

・書式つきテキスト対応機能

CotEditorの書式つきテキスト対応機能
書式つきテキスト機能にAppleScriptからアクセス

・AppleScript非対応機能を呼び出す

AppleScriptで操作可能な範囲
GUI Scripting:メニューなどを強制操作①
GUI Scripting:メニューなどを強制操作②
GUI Scripting:メニューへのアクセス
指定ウインドウを最前面に移動

・プリントアウト

CotEditorからの印刷出力(macOS 13)
AppleScriptによるプリントアウト
GUI Scriptingによるプリントアウト①
GUI Scriptingによるプリントアウト②
GUI Scriptingによるプリントアウト③
GUI Scriptingによるプリントアウト④
GUI Scriptingによるプリントアウト⑤

■上級

正規表現
正規表現が使えるAppleScriptコマンド
findコマンド+正規表現(GUI側との対応)
replaceコマンド+正規表現(GUI側との対応)
replace サンプル①
replace サンプル②
replace サンプル③
replace サンプル④

・オープン時に縦/横書きを強制できる書類仕様

xattrコマンドで強制的に縦書き表示

・文字数のカウント

CotEditorの文字数カウント機能
AppleScriptの文字カウント

・内蔵スクリプトメニューの独自仕様

フォルダ階層構造がそのまま反映される
内蔵スクリプトメニューの独自機能
メニュー上の並び順を指定
メニュー上の区切りセパレータ表示指定
キーボードショートカットの指定
Scriptをメニューに出さない(非表示設定)

・CotEditorのAppleScript関連機能のバグ(v4.4.2)
・高度なサンプル集

AppleScriptで操作可能な範囲
最前面のウィンドウをフルスクリーン表示(1/2)
最前面のウィンドウをフルスクリーン表示(2/2)
選択範囲のテキストをhexdump(1/2)
選択範囲のテキストをhexdump(2/2)
選択範囲のカンマ区切りテキストをNumbersへ(1/2)
選択範囲のカンマ区切りテキストをNumbersへ(2/2)
選択範囲のテキストの文字比率グラフを表示(1/8)
選択範囲のテキストの使用文字比率のグラフ表示(2/8)
選択範囲のテキストの使用文字比率のグラフ表示(3/8)
選択範囲のテキストの使用文字比率のグラフ表示(4/8)
選択範囲のテキストの使用文字比率のグラフ表示(5/8)
選択範囲のテキストの使用文字比率のグラフ表示(6/8)
選択範囲のテキストの使用文字比率のグラフ表示(7/8)
選択範囲のテキストの使用文字比率のグラフ表示(8/8)

・便利な他のプログラムや周辺機器

さまざまなAppleScript呼び出しプログラムから操作①(1/2)
さまざまなAppleScript呼び出しプログラムから操作①(2/2)
さまざまなAppleScript呼び出しプログラムから操作②
さまざまなAppleScript呼び出しプログラムから操作③
さまざまなAppleScript呼び出しプログラムから操作④

■資料集

・CotEditorのAppleScript用語辞書解説
・CotEditorのAppleScript用語の変遷
・CotEditor&AppleScript Q&A
・AppleScript mini Reference
・macOS搭載 AppleScript関連ドキュメント
・AppleScript関連の情報源
・macOSバージョンとAppleScriptの動向
・AppleScript予約語一覧
・サードパーティ製FrameworkやAppleScript Librariesを呼ぶ
・エラーコード表

(Visited 67 times, 1 visits today)
Posted in Books news | Tagged 12.0savvy 13.0savvy CotEditor | Leave a comment

クリップボードに入った書式つきテキストをプレーン化する「PlainerText」

Posted on 12月 10, 2022 by Takaaki Naganoya

macOS 11以降用の常駐ツール、クリップボードに入った書式つきテキストをプレーンテキスト化する「PlainerText」を開発、販売を開始しました(macOS 11以降)。

起動すると常駐し、メニューバー右側のステータスバー・エリアに「P」の絵文字を表示します。クリップボードを0.5秒ごとに監視し、スタイル付きテキストが入っていた(スタイル付きテキストをコピーした)場合にはプレーンテキストに変換して、beep音を鳴らします。

–> Play Demo1 Movie

–> Play Demo2 Movie

–> Download Trial Version (Work for 10 minutes)

PlainerTextはBOOTHで500円でダウンロード販売しています。

また、動作内容がわからないと安心できないという人向けに、ソースコードおよび詳細なソースコード解説書を別途販売中です。

(Visited 34 times, 1 visits today)
Posted in news PRODUCTS | Tagged 11.0savvy 12.0savvy 13.0savvy | Leave a comment

macOS 13.1アップデートでスクリプトエディタの挙動がようやくまともに

Posted on 12月 10, 2022 by Takaaki Naganoya

macOS 13のリリース版でスクリプトエディタを使うと、新規書類を作成しても「保存できない」とか、作成した書類を破棄できないとか、そもそもAppletとしてエクスポートする際にCode Signを指定するとハングアップするとかいう、macOS 13β版でも発生していなかった不具合のオンパレード。

もはや「この状態で何をバグレポートしろと?」「絶対に、リリース前にチェックとか一切してないだろ」という仕上がりに、開いた口がふさがりませんでした。

macOS 13.1の正式アップデートがリリースされ、これらの挙動は解消されたように見えます。見えるのですが、macOS 12でさんざんやらかしまくったように、β版で同じようなバグをノーチェックで出してくるので、油断ができないというべきなのか、信じた奴がバカなのかという状況。

とはいえ、β版でやらかしたトンでもないバグをApple側が認識していないこともままあるので、Appleの魔の手から環境を守るためにはβ版を試さないといけないんでしょう。Appleは、OSを開発しているんでしょうか? それとも、全世界に嫌がらせをしているんでしょうか?

(Visited 48 times, 1 visits today)
Posted in Bug news | Tagged 13.0savvy | Leave a comment

新発売:AppleScript基礎テクニック集(28)アプリケーションとの対話

Posted on 11月 23, 2022 by Takaaki Naganoya

Piyomaru Software Booksの66冊目。「AppleScript基礎テクニック集(28)アプリケーションとの対話」を発売しました。PDF 35ページ+サンプルScriptZipアーカイブ で構成されています。

→ 販売ページ

AppleScriptの文法をひととおり知っていて、実際に書くことができたとしても、それだけで何かをできるというものでもありません。各種GUIアプリケーションなりOSの機能を呼び出して、なにがしかの作業を自動化できなければ意味がありません。

ここで、いきなり「いつも行っている仕事をまるごと自動化しよう!」といった壮大な野望を目指しても失敗します。マウスやトラックパッドでGUIアプリケーションを操作するのと、AppleScriptで操作するのとでは「やりかた」や「方法」は若干異なります。そこには明確に「慣れ」が必要です。

その最初の第一歩が、アプリケーションとの間の「対話」です。対話してみて、様子を見て、それでアプリケーション操作の挙動を確認していきます。対話の仕方を知ることは、自動化を行うために必須の第一関門をクリアするためのノウハウなのです。

目次

■アプリケーションとの対話で書くAppleScript【初級編】

書く前にアプリケーションとの対話が欠かせない
対話の第一歩は、正確なアプリケーション名の指定から
参考資料:名前がローカライズされているアプリケーション
最初の会話「あなたの名前は?」
最初の会話「あなたの年齢は?」

■アプリケーションとの対話で書くAppleScript【日常会話編】

AppleScript用語辞書で会話できる言葉を調査
選択中のオブジェクトを示すselectionを調査
「selection」の意味を調べる
オブジェクト選択してselectionの動作を調査
「selection range」の意味を調べる
表を選択してselection rangeの動作を調査
選択中のオブジェクトが「何か」を尋ねる
選択中のオブジェクトが「どうか」を尋ねる

■アプリケーションとの対話で書くAppleScript【上級会話編】

書類上のオブジェクトを作成できないか?
audio clipを作成できないか?①
audio clipを作成できないか?②

■アプリケーションとの対話で書くAppleScript【未知との遭遇編】

対象オブジェクトに実行できるコマンドは?①
対象オブジェクトに実行できるコマンドは?②
対象オブジェクトに実行できるコマンドは?③
処理を組み立てるには「対話」が欠かせない

(Visited 30 times, 1 visits today)
Posted in Books news | Tagged 13.0savvy Keynote | Leave a comment

Finderの隠し命令openVirtualLocationが発見される

Posted on 11月 20, 2022 by Takaaki Naganoya

Twitter上で@usagimaruma氏がレポートしたところにより、FinderにSiri用の隠しAppleScriptコマンド「openVirtualLocation」が存在していることが明らかになりました。

ドキュメントに載っていないFinder AppleScriptの命令を見つけた。tell構文でFinderに対して 'openVirturalLocation "AirDrop"' みたいにすると、AirDropやiCloud Driveのウインドウを直接開ける。 pic.twitter.com/SZHb8c14T7

— usagimaru ⌘ (@usagimaruma) November 19, 2022

tell application "Finder"
	openVirtualLocation "AirDrop"
end tell

/System/Library/CoreServices/Finder.app/Contens/Applications の下にある、

といった小型アプリケーションが、上記のコマンドを利用して機能を呼び出しています。バイナリをダンプすると、”openVirtualLocation”コマンドの部分を生AppleEventsで記述してあり、少し不思議な雰囲気です。

早速、手元の環境でチェックしてみたところ、報告されたとおりに動きます。

hidden=”yes”に設定されているために、普通にFinderをsdefをスクリプトエディタで確認しただけでは表示されません。

過去にさかのぼって、どのバージョンのOSから使えるのかを確認してみたところ、

macOS 10.14:NG
macOS 10.15:NG
macOS 11.6:(Unchecked)
macOS 12.6:Exist
macOS 13.x:Exist

と、Siriの搭載とリンクしているというよりは、ショートカット.appの搭載とリンクしているように見えるので、macOS 11のFinderにこのコマンドは搭載されていないのではないか、と推測します。

(Visited 54 times, 1 visits today)
Posted in news | Tagged 12.0savvy 13.0savvy Finder Shortcuts Siri | Leave a comment

CotEditor v4.4.1+macOS 13の組み合わせで発生している問題

Posted on 11月 18, 2022 by Takaaki Naganoya

CotEditor v4.4.1+macOS 13.1 Betaの組みわせで発生しているAppleScriptの問題について書いておきます。

CotEditorの内蔵スクリプトメニューから呼び出すAppleScriptは、実行プログラムがosascriptで、macOS標準搭載のスクリプトメニューと部品は同じですが、挙動や制約条件が異なります。

macOS 13+CotEditorの内蔵スクリプトメニューから呼び出すAppleScriptで、「path to me」を実行したらエラーになる現象に直面しています。

AppleScript名:mepath_without_block.scpt
set mePath to POSIX path of (path to me)
display dialog mePath as string

★Click Here to Open This Script 

ただし、解決策はすぐに見つかって、tellブロックでpath to meを囲ってあげることです。tell current applicationで囲ってあげるのが一番手っ取り早いところ。using terms from scripting additionsも使えそうです。

AppleScript名:mepath.scpt
tell current application
  set mePath to POSIX path of (path to me)
end tell
display dialog mePath as string

★Click Here to Open This Script 

(Visited 42 times, 1 visits today)
Posted in news | Tagged 13.0savvy CotEditor | Leave a comment

macOS 13対応アップデート:AppleScript実践的テクニック集(1)GUI Scripting

Posted on 11月 16, 2022 by Takaaki Naganoya

「AppleScript実践的テクニック集(1)GUI Scripting」をmacOS 13環境に合わせた内容にアップデートしました。初版の283ページから315ページに増加。初版をお買い上げの方は、購入ページから再ダウンロードすることでアップデート版を入手していただけます。

→ 販売ページ

Update:macOS 13環境に合わせた記述変更、画面キャプチャ
macOS 13環境に合わせた記述変更(背景を黄色く塗ったページ)や、画面キャプチャを再度行い、macOS 13環境でも迷わないように内容を修正しました。


Update:UI Browserについての使い方を補足
PffiddlesoftからLate Night Software, ltdに移管された、GUI Scripting必携ツール「UI Browser」についての使い方を説明する章を追加しました。


Update:システム設定の各Paneの表示Scriptを掲載
macOS 12→13への変更で各ユーザーに影響の大きい「システム環境設定」から「システム設定」への移行にともない、各設定項目を呼び出す従来のやり方が通じなくなってしまいました。

本アップデートでは、システム設定の各Paneを表示するためのAppleScriptを多数収録。すべてのPaneを表示できるようにしているほか、第2階層のUIについても選択できるようにしています。


Update:macOSとの互換性の低いアプリケーションのGUI Scripting例をご紹介
他のOS上の互換開発環境で作られた、macOSと互換性の低いアプリケーションをGUI Scriptingで操作する実例について、ご紹介しています。

(Visited 52 times, 1 visits today)
Posted in Books news | Tagged 13.0savvy | Leave a comment

新発売:誰でも気軽に開発体験 プログラム・キット

Posted on 11月 12, 2022 by Takaaki Naganoya

Piyomaru Software Booksの65冊目。「誰でも気軽に開発体験 プログラム・キット①」を発売しました。PDF 90ページとなっています。

→ 販売ページ

プログラム・キットは、プラモデルのように誰もが挫折せずに、部品を組み立てて動かせるという「体験」を提供する本です。

組み上がったプログラムキットは、カスタマイズすることで、より新たな動きをするプログラムに進化させられます。

「プログラム・キット」シリーズの第1巻である本書では、人気のテキストエディタ「CotEditor」のウインドウを画面上でぐるぐる回転させるプログラムを扱っています。macOS 12以降用。

■目次

1章 プログラム・キットとは?

プラモデルのようにプログラム開発体験

2章 環境をととのえよう!

プログラム・キット作成のために環境設定

3章 部品を確認しよう!

プログラム・キット同梱の部品を確認

4章 作業上の注意点

プログラム・キット組み立て作業における注意点

5章 部品を組み立てよう

プログラム・キットの組み立て説明

6章 プログラムの構成要素

中身がわかると、カスタマイズしやすい

7章 カスタマイズしよう

完成したプログラム・キットをいろいろなツールから起動できることをご紹介

8章 さまざまなプログラムから実行しよう

完成したプログラム・キットをmacOS上のさまざまなプログラムから実行する方法についてご紹介

(Visited 24 times, 1 visits today)
Posted in Books news PRODUCTS | Leave a comment

UI Browserがgithub上でソース公開され、オープンソースに

Posted on 10月 31, 2022 by Takaaki Naganoya

ちょっと驚きの展開です。Bill Cheesemanの引退にともない、その後の展開が不安視されていたUI Browserの新たな話が上がってきました。

たしかに、Bill Cheeseman引退後のUI Browserの「あり得る」ストーリーの1つとして、(v3.x系の)Open Source化は考えないではなかったのですが、まさかBill Cheeseman本人によりすべてSwiftで書き直されたもの(v4)が、あらためてオープンソース版として公開されるとは思いませんでした。

→ UI Browser 4 on github

公開されているのは、現行のUI Browser v3.0.2よりも新しい「v4」であり、完成したものではないようです。一応、興味があったのでProjectをダウンロードしてXcodeでビルドしてみましたが、UI Browser 4を起動することはできませんでした(ビルドは通ったが、起動途中で止まる)。

PFAssistiveFrameworkなどの心臓部分もすべてSwiftで描き直されているものの、「AccessibleElement.swift」が空行を含めてわずか570行程度であったりと、その機能から推測される(巨大な)コード規模とかけ離れた内容になっていることから、「手を付けられる範囲で手をつけただけ。完成品というレベルのものではない」という印象を受けます。

ただ、作り方が「ゼロから作り直した」のではなく、「C++のプログラムを順次翻訳している最中」に見えるため、これからも順次C++からSwiftに翻訳していくのかもしれませんし、そうではないのかもしれません。

v4が動くところまで行くのに、年単位で時間がかかりそうに見えます。

このようにちゃんと引き継ぎが行われるというのは、珍しいことであり……自分だったら、ある日いきなりBlogが消えておしまいでしょう。

(Visited 82 times, 4 visits today)
Posted in news | Tagged 10.15savvy 11.0savvy 12.0savvy 13.0savvy UI Browser | Leave a comment

iWork 12.2がリリースされた

Posted on 10月 26, 2022 by Takaaki Naganoya

macOS 13がリリースされた翌日に、iWork(Keynote、Pages、Numbers) v12.2がリリースされました。
本バージョンで、AppleScriptから新規iWork書類を作成して保存させられないバグは修正されていません。

Keynote v12.2:
フォントサイズ指定が整数値(integer)から実数値(real)が指定できるように変更された

Pages v12.2:
フォントサイズ指定が整数値(integer)から実数値(real)が指定できるように変更された
AppleScript用語辞書掲載サンプルScriptで、Word書類への書き出しで「.doc」の指定が削除された(.docxのみ掲載)
→ Pages 12.2+macOS 13.1betaで連続してPages書類をオープンしてPDFを書き出していたら、どうもPDF書き出しできない場合があるようで(再起動で回復)。オープン後に少しウェイトを入れてからPDF書き出しするなど、様子を見ているところです。ファイルオープン後にASで後続のコマンドを受け付けるまでにアプリケーション内/書類内の初期化が間に合っていないのでは? と疑っています。

Numbers v12.2:
フォントサイズ指定が整数値(integer)から実数値(real)が指定できるように変更された
AppleScript用語辞書掲載サンプルScriptで、Excel書類への書き出しで「.xls」の指定が削除された(.xlsxのみ掲載)

(Visited 73 times, 1 visits today)
Posted in news | Tagged 13.0savvy Keynote Numbers Pages | Leave a comment

macOS 13, Ventura(継続更新)

Posted on 10月 25, 2022 by Takaaki Naganoya

13という数字は、キリスト教国では不吉な数字と言われており、これはイエス・キリストの13番目の弟子が師を裏切ったからだとかなんだとか。とにかく、日本で言う「黒い猫」や「北枕」、「夜に爪を切ってはいけない」、「霊柩車が通ったら親指を隠せ」並みに不吉とされております(ここ、Google翻訳で英語に訳したら意味わかんないだろーなー。日本に伝わる「不吉な迷信」のかずかずを列挙しています)。

かくいう自分も13という数字にはとても嫌な記憶があります。macOS 10.13です。Betaの最中はとてもいい感じだったのに、Release版は完膚なきまでに壊れた状態でリリースされ「macOS史上最悪の事故物件」「macOS Vista」「(クオリティが)Low Sierra」との呼び名をほしいままにしています。

さて、macOS 13、従来どおりのナンバリングでいえばmacOS 10.18が2022/10/24にリリースされたわけであります。10月中のリリースは読み通りだったので、そんなもんだろうかと思いますが、従来のmacOSのリリースと趣が異なる印象を受けています。

かつて「Mac OS X 10.5のバグを全力で修正したのが10.6だ」という、バグ修正を主眼にリリースされたMac OS X 10.6のような、そういうOSバージョンに見えます。「macOS 12.7」といった趣で、OSのアップデータの容量も5GB少々と、これまでの半分程度のサイズです(ARMバイナリだから?)。

macOS 10.13:Beta中はまぁまぁの出来だったのが、Release時に事故を起こしてバグだらけでリリースされた「事故物件」。「毒の沼」と言われる。

macOS 10.14:Beta中からバグが多くて、呆れて放置。最終リリースごろに仕方なくmacOS 10.12から乗り換えたが、その頃にはいろいろバグも取れていた。この状態でリリースしてほしい。

macOS 10.15:夏の終わりごろに「このバージョンはアップデートしちゃダメだよねー」と開発者仲間の間で話題になっていたバージョン。自分もはじめてOSのアップデート紹介をBlogで行うことを拒否。後から調べても山のようにバグが存在し、AppleScriptでもCocoaの呼び出しが大幅に遅くなるような巨大なバグが存在。macOS 10.13並みに「使ってはいけないバージョン」になった。スキップ推奨。

macOS 11:Intel Mac上ではこなれたいいOSだったものの、Apple Silicon Mac上では不具合のオンパレード。バグレポート用のmacOSと言われた。ただ、Intel Macではとくに問題なかったのでIntel MacユーザーにはいいOS。

macOS 12:巨大な不具合(Apple Silicon Mac上でAppleScriptが低消費電力コア上で実行されて速度低下、macOS 10.15から続くCocoa呼び出し速度低下)が修正される。Apple Silicon Macの本当の性能が発揮される。ただし、Release後のアップデート(Beta時)で巨大なバグを連発。とくに、AppleScript絡みのバグが多発したためマシンが使えなくなる時期が頻発。最後の最後(macOS 12.6.1)で帳尻を合わせたものの、深刻なトラブルが絶えなかった。個人的にはテクニカル・ハラスメント系OSと呼んでいる。

macOS 13の評価は?

で、macOS 13なんですが……いまのところ、そんなに時間を割いて本気で使い込んではいないものの(Beta段階では見た目からもうやる気を感じない作りで、色彩的にめまいを感じていました)、巨大なバグ(スクリプトメニューが表示されないとか)はBetaの段階で報告して修正されているし、AppleScriptの処理系もAppleScript version 2.8でとくにmacOS 12から変更はありません。

たとえば、Mail.appのバージョンもv16ととくに変わっていないですし、全体的にmacOS 12.7といって差し支えない内容だと感じます。そう考えると、いろいろバグも直っているようなので、そんなに悪くないOSに見えてきます。逆に、ここ数年のmacOSアップデートではAppleのエンジニアには呪詛の言葉しか出てこなかったことを考えれば、不具合を(いまのところ)それほど感じないというのは「すごい出来事」なのではないでしょうか。

「システム環境設定」が「設定」に名称変更され、画面構成が大幅に変わっている点については、Beta評価時にはアイコン色がグレーのものばかりで「何これ?」という状態でしたが、どうやらリリース版では差し変わったようでした。

とはいうものの、Frameworkまわりは変わっていそうなので、Cocoa系の機能を利用する上ではひととおりチェックが必要そうです。

本当の真価は、macOS 13に合わせてリリースされるiWork 12.2(多分)の仕上がり次第といったところでしょうか。AppleScriptから新規ファイル保存ができないという巨大なバグがv12からv12.1へと引き継がれたままで、この調子で行くと「PDFの書き出しができない」といったバグの再発が予測されます。

→ Pages v12.2.1の書類をPDF書き出しする際に問題が発生しています。PagesをAppleScriptからコントロールしてPDF書き出しさせた際に、数十程度の書類を連続してPDF書き出ししていると、何回も繰り返し実行すると途中からPDF書き出しを行わなくなります。このような症状に直面した場合にはOSの再起動かログアウトを行う必要があるようです。また、xattrの属性com.apple.quarantineの内容によってはファイルのオープンができないとか、オープンしてもPDFの書き出しを行えないといった不具合が発生しています。OS側のxattrの制御に変更を加えつつも、Apple純正アプリケーションが対処できていない可能性があります。

外付けSSDにインストールできない件

Beta段階では外付けのUSB接続のSSDにインストールして、本体SSD(macOS 12.x)との間で切り替えて起動して様子を見ていましたが、正式リリース後にこの切り替えができなくなっていました。

外付けSSDからの起動が行えず、仕方なくMac mini内蔵SSDから起動したmacOS 12.6.1の上でアップデートを実行し、インストール先を外付けSSDに指定してインストールを実行。これは完了して起動できたのですが、今度は内蔵SSDを指定してmacOS 12.6.1(多分)を起動できない状態。

選択肢がなかったので、仕方なく内蔵SSDにもmacOS 13をインストール。とくに変更点が大量にあるわけではないので、仕方なく使っていますが、前バージョンに切り替えて起動できない(?)点については「騙された」「説明がない」ととても嫌な気分になりました。

→ このあたりの「セキュリティ強化」(技術的な嫌がらせ)についてはWWDCでもあまり具体的には話をせず、どーでもいい内容のいつになったら実用段階になるのかわからないようなお花畑のような話に終始するので、WWDCがお花畑だらけの昨今。Appleが実際にやっている嫌がらせの数々をまとめた「アンチWWDC」みたいな実務的な話を聞きたいところです。

system info
--> {AppleScript version:"2.8", AppleScript Studio version:"1.5.3", system version:"13.0", short user name:"me", long user name:"Takaaki Naganoya", user ID:504, user locale:"ja_JP@calendar=iso8601", home directory:alias "Macintosh HD:Users:me:", boot volume:"Macintosh HD:", computer name:"M1 mini", host name:"m1mini.local", IPv4 address:"192.168.0.50", primary Ethernet address:"XX:XX:XX:XX:xx:XX", CPU type:"ARM64E", CPU speed:missing value, physical memory:16384}

macOS 13変更点まとめ

・「システム環境設定」(Syste, Preferences)が「システム設定」(System Settings)に名称および画面構成を変更。AppleScript用語辞書がついているものの、従来どおりのもので実際の機能とリンクしていない
→ 指定のPaneを表示するライブラリを書いて対応した(書籍のアップデート付録で対応予定)

・Font Bookが書き直され、AppleScript用語辞書がついていない
→ すでに、Font Bookを見捨ててNSFontによるフォント情報アクセスのためのAppleScriptを揃えているため、そちらに切り替え

・Music.app v1.3.2.16にAppleScriptコマンド「export」が追加された

・スクリプトエディタのアイコンにアプリケーションのアイコンをドラッグ&ドロップしてもAppleScript用語辞書が表示されない
不具合かと思っていたのですが、これまで使えてきたアプリケーションのAppleScript用語辞書確認方法が使えないようです。
スクリプトエディタのアイコンにアプリケーションのアイコンをドラッグ&ドロップする、という操作でAppleScript用語辞書が表示されなくなっています。1手間かけて、スクリプトエディタの「ライブラリ」ウインドウにアプリケーションをドラッグ&ドロップして登録しておいて、登録したアプリケーション名を一覧からダブルクリックするという方法のみ有効です。

macOS 13不具合まとめ

・GUI Scriptingの機能を呼び出すAppleScriptをAppleScriptアプレットに書き出した場合、最初の1個目は認証され、アクセシビリティの(GUI Scriptingの)認証を取得できる。しかし、1個目のAppleScriptアプレットを削除して、2個目のアプレットを認証しても、「補助アクセスは許可されません」というダイアログが出てGUI Scriptingの実行を許可されない

・Siriの仕様がBeta版から変更になったため、Siri呼び出しAppleScriptライブラリ「AgentCallerLib」v1.2が動作しない(→ 対応のため修正しました)

・スクリプトエディタのコンテクストメニューから呼び出すアシスタントScript、これらにフォルダやファイルに絵文字を使用していると同じ項目が複数重複して表示される(macOS 13Betaで直っていたのに、Release版で再発)

・PagesのPDF書き出しに問題あり。ファイルの拡張属性(xattr)のうちcom.apple.quarantineの値によってはPDF書き出しできないという問題がある。また、繰り返しPDF書き出しを行なっていると、途中からPDF書き出しがスキップされます。

・Mail.appでAppleScriptからメッセージ作成+送信を行なっても、メモリ上から関連する子プロセスが解放されない。

(Visited 390 times, 1 visits today)
Posted in news | Tagged 13.0savvy | 2 Comments

新発売:AppleScript基礎テクニック集(27)dateオブジェクト

Posted on 10月 21, 2022 by Takaaki Naganoya

Piyomaru Software Booksの64冊目。「AppleScript基礎テクニック集(27)dateオブジェクト」を発売しました。PDF 37ページとなっています。

→ 販売ページ

dateオブジェクトは、数字や文字列ではなく「オブジェクト」であるために、かなり独特な挙動を行います。多くは「仕様」なのですが、これを知らないと怪奇現象のオンパレードという話になってしまいます。

一見すると「ナニコレ?」という挙動のかずかずも、実際にその理由を確認してみると納得できることばかり。dateオブジェクトに関して、知らないと遭遇するトラブルの数々を、華麗にかわしていきましょう。

目次

■date objectとは?

dateは、日付時刻を保持するオブジェクト
date objectを手軽に取得して属性値を取得
システム環境設定の影響を受けるdateオブジェクト
システム環境設定の影響を受けるdateオブジェクト

■テキストからdateオブジェクトを作る

スクリプトエディタ上だと自動修正される
日付文字列の記述形式は「優先する言語」で変化
Data Detectorでテキストから日付情報をピックアップ
言語環境を問わずに動くdate object作成処理

■dateオブジェクトでハマるポイント

dateオブジェクトに対するパラメータ指定
1881年1月1日よりも過去の日付を扱うには注意が必要

■date objectの各種計算

dateの相対計算
指定月の日数を求める
指定日付の和暦の元号を求める
グリニッジ標準時(GMT)との時差を求める
秒以下の時間待ち計測
自然言語テキストからdate objectを抽出
dateオブジェクトを指定の日付文字形式で返す
dateオブジェクトをISO8601形式テキストに
ISO8601を考慮した週カウント
dateオブジェクトをRFC822形式文字列に変換
UTC時刻文字列をdateオブジェクトに変換
epoch timeの処理

(Visited 23 times, 1 visits today)
Posted in Books news PRODUCTS | Leave a comment

新発売:AppleScript 7つの宝珠(2)〜第2の宝珠 if文〜条件分岐

Posted on 10月 19, 2022 by Takaaki Naganoya

Piyomaru Software Booksの63冊目。「AppleScript 7つの宝珠 神より授かりしプログラミングの魔法」第2の宝珠 if文〜条件分岐を発売しました。PDF 37ページとなっています。

→ 販売ページ

ものすごい変化球で作ってみた本の続刊で、他に書いていた巨大なテーマの本で挫折して中断したので、その気分転換に書いてみました。魔導書になぞらえたプログラミング入門書です。

入門書とひとことにいってもいろいろあります。決められたカリキュラムを淡々とこなしていくタイプ、根本からテーマを掘り下げるタイプ。そして本書は後者に該当し、「その技術が存在しなかった時代」というものを想像し、その技術を獲得したことにより魔法(プログラミング)はどう進化したのか、どのようなメリットがあったのかという「進化史」をなぞるような構成です。

誰もが、最初はif文の存在なんて知らなかったわけで、それを覚えて徐々に書けるものが進歩していったわけです。人間でいえば、赤ん坊の頃にハイハイして這って歩いていたのが、つかまり立ちするようになり、そして立って歩けるようになった、と。そうした過程をなぞってみたもので、割と真剣に作っているものです。

目次

■魔導書「7つの宝珠」

神(Computer)との対話を行う人の子の書
失われし魔法の7つの宝珠を求めて
変数と代入文という最初の宝珠
if文〜条件分岐という宝珠
繰り返しループ 体力を削らせない宝珠
配列変数 詠唱呪文の機能を高める宝珠
コメント文 失われた知恵の宝珠
ログ表示 簡単に変数の中身を確認する宝珠
終了 そこで呪文実行を止める宝珠

■第2の宝珠if文〜条件分岐

神の言葉から人の子の言葉への移行
例外事項の指定が効率化を生む
牛飼いを羊飼いに変える変数
魔法が自分で判断を行う条件分岐魔法
大きい、小さいといった関係性を表現
「含まれる」ことを調べられる魔法演算

■条件分岐魔法呪文入門

魔法入門〜条件分岐呪文
条件式
条件文
条件文(魔法言語AppleScriptで記述)
文字列の大小判定&並べ替え=ソート①
文字列の大小判定&並べ替え=ソート②
複数の値をまとめて判定
文字をコード(番号)で指定
ゆうしゃ(=あなた)のステータス

(Visited 24 times, 1 visits today)
Posted in Books news PRODUCTS | Leave a comment

UI BrowserがLate Night Software, ltdによって継続サポートされることが発表される

Posted on 10月 18, 2022 by Takaaki Naganoya

AppleScriptからGUIアプリケーションのメニューやボタンなどにアクセスして強引に動かす、「GUI Scripting」のために、Scripter必携ツールとして愛されてきた「UI Browser」が、作者のBill Cheesemanの引退にともなって2022年10月17日をもって販売終了する、との発表が2022年4月17日に行われました。

この発表があった後に、カナダLate Night SoftwareのCEO Mark Alldrittが、Bill Cheesemanに「UI Browser」の引き継ぎについて打診していたとの話で、前向きな返答がありつつも合意に到達していなかったとのことから、具体的な方向性が見えていない状況でした。

本日、Late Night Softwareから発表があり、同社がUI Browserの配布およびサポートを行うことでBill Cheesemanとの間で合意したとのこと。現行の最新バージョンであるUI BrowserをLate Night Softwareが配布を行える体制を構築したとのこと。

UI Browserをすでに購入した人は使い続けられますし、未購入の人もUI Browser 3.0.2を試用モードで使い続けられるとのことです。

ただし、ソースコードがBill CheesemanからLate Night Softwareに受け渡されているわけではないので、内容の改変は行えない状況です。

あくまで憶測になりますが、Webの販売システムとプログラムが緊密にリンクしており、そのあたりを分離して受け渡すだけでも作業が発生してしまうという状況なのでしょう。一応、ソースコードはXcodeのプロジェクトで管理されている雰囲気ですが、C++使いまくりのプログラムで相当に癖が強そうです。

(Visited 28 times, 1 visits today)
Posted in news | Tagged UI Browser | Leave a comment

Post navigation

  • Older posts

電子書籍(PDF)をオンラインストアで販売中!

Google Search

Popular posts

  • AppleScriptによるWebブラウザ自動操縦ガイド
  • macOS 13, Ventura(継続更新)
  • ドラッグ&ドロップ機能の未来?
  • macOS 12.x上のAppleScriptのトラブルまとめ
  • PFiddlesoft UI Browserが製品終了に
  • macOS 12.3 beta 5、ASの障害が解消される(?)
  • SF Symbolsを名称で指定してPNG画像化
  • 新刊発売:AppleScriptによるWebブラウザ自動操縦ガイド
  • macOS 12.3 beta4、まだ直らないASまわりの障害
  • macOS 12.3上でFinder上で選択中のファイルをそのままオープンできない件
  • Safariで表示中のYouTubeムービーのサムネイル画像を取得
  • macOS 12のスクリプトエディタで、Context Menu機能にバグ
  • Pixelmator Pro v2.4.1で新機能追加+AppleScriptコマンド追加
  • 人類史上初、魔導書の観点から書かれたAppleScript入門書「7つの宝珠」シリーズ開始?!
  • CotEditor v4.1.2でAppleScript系の機能を追加
  • macOS 12.5(21G72)がリリースされた!
  • UI Browserがgithub上でソース公開され、オープンソースに
  • Pages v12に謎のバグ。書類上に11枚しか画像を配置できない→解決
  • 新発売:AppleScriptからSiriを呼び出そう!
  • iWork 12.2がリリースされた

Tags

10.11savvy (1102) 10.12savvy (1243) 10.13savvy (1391) 10.14savvy (586) 10.15savvy (434) 11.0savvy (274) 12.0savvy (174) 13.0savvy (34) CotEditor (60) Finder (47) iTunes (19) Keynote (97) NSAlert (60) NSArray (51) NSBezierPath (18) NSBitmapImageRep (21) NSBundle (20) NSButton (34) NSColor (51) NSDictionary (27) NSFileManager (23) NSFont (18) NSImage (42) NSJSONSerialization (21) NSMutableArray (62) NSMutableDictionary (21) NSPredicate (36) NSRunningApplication (56) NSScreen (30) NSScrollView (22) NSString (118) NSURL (97) NSURLRequest (23) NSUTF8StringEncoding (30) NSUUID (18) NSView (33) NSWorkspace (20) Numbers (55) Pages (36) Safari (41) Script Editor (20) WKUserContentController (21) WKUserScript (20) WKWebView (23) WKWebViewConfiguration (22)

カテゴリー

  • 2D Bin Packing
  • 3D
  • AirDrop
  • AirPlay
  • Animation
  • AppleScript Application on Xcode
  • beta
  • Bluetooth
  • Books
  • boolean
  • bounds
  • Bug
  • Calendar
  • call by reference
  • Clipboard
  • Code Sign
  • Color
  • Custom Class
  • dialog
  • drive
  • exif
  • file
  • File path
  • filter
  • folder
  • Font
  • Font
  • GAME
  • geolocation
  • GUI
  • GUI Scripting
  • Hex
  • History
  • How To
  • iCloud
  • Icon
  • Image
  • Input Method
  • Internet
  • iOS App
  • JavaScript
  • JSON
  • JXA
  • Keychain
  • Keychain
  • Language
  • Library
  • list
  • Locale
  • Machine Learning
  • Map
  • Markdown
  • Menu
  • Metadata
  • MIDI
  • MIME
  • Natural Language Processing
  • Network
  • news
  • Noification
  • Notarization
  • Number
  • Object control
  • OCR
  • OSA
  • PDF
  • Peripheral
  • PRODUCTS
  • QR Code
  • Raw AppleEvent Code
  • Record
  • recursive call
  • regexp
  • Release
  • Remote Control
  • Require Control-Command-R to run
  • REST API
  • Review
  • RTF
  • Sandbox
  • Screen Saver
  • Script Libraries
  • sdef
  • search
  • Security
  • selection
  • shell script
  • Shortcuts Workflow
  • Sort
  • Sound
  • Spellchecker
  • Spotlight
  • SVG
  • System
  • Tag
  • Telephony
  • Text
  • Text to Speech
  • timezone
  • Tools
  • Update
  • URL
  • UTI
  • Web Contents Control
  • WiFi
  • XML
  • XML-RPC
  • イベント(Event)
  • 未分類

アーカイブ

  • 2023年3月
  • 2023年2月
  • 2023年1月
  • 2022年12月
  • 2022年11月
  • 2022年10月
  • 2022年9月
  • 2022年8月
  • 2022年7月
  • 2022年6月
  • 2022年5月
  • 2022年4月
  • 2022年3月
  • 2022年2月
  • 2022年1月
  • 2021年12月
  • 2021年11月
  • 2021年10月
  • 2021年9月
  • 2021年8月
  • 2021年7月
  • 2021年6月
  • 2021年5月
  • 2021年4月
  • 2021年3月
  • 2021年2月
  • 2021年1月
  • 2020年12月
  • 2020年11月
  • 2020年10月
  • 2020年9月
  • 2020年8月
  • 2020年7月
  • 2020年6月
  • 2020年5月
  • 2020年4月
  • 2020年3月
  • 2020年2月
  • 2020年1月
  • 2019年12月
  • 2019年11月
  • 2019年10月
  • 2019年9月
  • 2019年8月
  • 2019年7月
  • 2019年6月
  • 2019年5月
  • 2019年4月
  • 2019年3月
  • 2019年2月
  • 2019年1月
  • 2018年12月
  • 2018年11月
  • 2018年10月
  • 2018年9月
  • 2018年8月
  • 2018年7月
  • 2018年6月
  • 2018年5月
  • 2018年4月
  • 2018年3月
  • 2018年2月

https://piyomarusoft.booth.pm/items/301502

メタ情報

  • 登録
  • ログイン
  • 投稿フィード
  • コメントフィード
  • WordPress.org

Forum Posts

  • 人気のトピック
  • 返信がないトピック

メタ情報

  • 登録
  • ログイン
  • 投稿フィード
  • コメントフィード
  • WordPress.org
Proudly powered by WordPress
Theme: Flint by Star Verte LLC