Now, we have e-mail attack by somebody. We don’t have an intention to attack. I think the attacker use mail address spoofing.
Webmail UI might be cracked.
Now, we have e-mail attack by somebody. We don’t have an intention to attack. I think the attacker use mail address spoofing.
Webmail UI might be cracked.
WWDC20にて、MacのARM(Apple Silicon)移行と、次期macOS 11「Big Sur」が発表されました。
Apple Silicon(A12z Bionic)搭載の開発者向けマシン「Developer Transition Kit」(Mac mini筐体、A12Z Bionic 2.6GHz 8Core, RAM 16GB, SSD 512GB)も500ドルで提供されることが発表されました。
Big Surの出来については「iOSっぽいデザイン」としか言いようがありませんし、中身についてはBeta版を見て判断するほかありません。
→ AppleがMacでも独自開発のプロセッサに移行する「Apple Silicon」を発表、iPhone&iPadのアプリがMacでも利用可能に
▲Xcode 12betaでAppleScriptObjCアプリケーションを作ってビルド(初期β版のものです)
▲スクリプトエディタ上でAppleScript v2.7が動作。見た目はちょっと……随分変わります(初期β版のものです)
Pixelmator Proがv1.8でAppleScriptに対応するとPixelmator Blogで発表しました。
Pixelmatorの登場当初からAppleScript対応の意見を出していましたが、そこから……何年たったのでしょうか。
サンプルScriptをながめたかぎりでは、オブジェクトを作って属性情報を書き換える操作はできるようです。
selectionが扱えるかどうか(選択中のオブジェクトを取れるかどうか)が1つの判断基準になりそうです。
いくらCocoaの機能が使える、NSBezierPathが使えるといっても、こういうローレベルなAPIを相手に高度なグラフィックを描かせるのはつらいので、GUIアプリケーション側の機能が使えるとたすかります。
→ Beta Programに登録して、Betaを落としてきたものの、これMac App Store版のPixelmator Proが入っていないとBetaが起動しないんですね(うまい! このやり方は知っておきたい)。とりあえず、AppleScript用語辞書だけ見られればよかったので、sdef取り出して眺めてみたところ、けっこう気合いが入っていてビビりました。
近年、こんなに気合いの入ったAppleScript用語辞書を装備したアプリケーションは見ていません。「あー、この機能たしかに入れたいよねー、実用性はさておきとして」「なるほどーこういう単位でselectionできるのかー」などなど、詳細は書けませんが、これが全部まともに動くのならすごいです。
ただ、サンプルのScriptが掲載されているのに、スクリプトリンクが埋め込まれていないので、サンプルをすぐに使えるというレベルには達していません。また、画面のスナップショットやムービーなどが入っているわけでもありません。
Q&Aサイトでいろいろ答えた内容(自分自身のみ)をまとめて本にしてみました。ぴよまるソフトウェアBooks初の雑文系縦書き新書!(500円)
ぴよまるソフトウェア創設者である筆者は、元雑誌編集者。あふれるバイタリティと文章の力、そして新開発のアイデアを練るアプリケーション「Kamenoko」の威力でQ&Aサイトで1か月5万ビューの回答を繰り出した! 筆者による回答を再編集し、読みやすく縦書きの新書っぽい形にまとめた本書。全257ページ、38の珍問答。Macとガンダムに極端に強い筆者の、幅広そうで偏った知識がうなる渾身の一冊!
Kamenokoの事例集(作例集)、と見ることもできます。とにかく、毎日Kamenoko上でいろいろあーだこーだとアイデアを練って、こねて、まるめているので(本人向けに作ったので、本人にはめちゃくちゃ合っています)。
→ 製品版
→ お試し版
■航空機は一発食らってもやばいのに、どうしてガンダムは攻撃を耐えしのぐのか?
■AppleのCEO、Tim Cook氏は辞任すべきではないか?
■ファーストガンダムって何が凄いの?
■ソフトバンクの後継者問題について
■ガンダムのような巨大人型ロボットは兵器として有効か?
■いつもPCのディスク容量が足りないと嘆いているプログラマーがいます。プログラミングってそんなに多くの容量を使うのでしょうか?
■iMacは吊るしで買って数年で入れ替えるのとフルスペックで長く使うとどちらが理想的?
■コーディングを速くするには?
■勉強になるオススメのアニメや漫画はありますか?
■Macintoshで一番悩み苦しんだ出来事は?
■パソコンのディスク容量を圧迫すると実感するものの、なくてはならないツールやソフトは何ですか?
■AppleはMac Proがチーズグレーターに見えると人々が指摘することを予想していたか?
■楽しさを思いっきり表現してください
■テクノロジーが色彩(カラー)を決定している例は?
■自動車のワイパーを再発明してもらえませんか?
■MacとWindows、どちらの方が生産性が高いですか?
■どこでもドアは実現可能ですか?
■五分でめっちゃ成長する方法は?
■MacBookのアプリの閉じ方は、左上の赤い×ボタンを押すのであってますか?
■近年、サザエさんやドラえもんのような国民的長寿アニメが生まれていないのはなぜ?
■一切プログラミングの学習・経験を積まずに情報工学科の大学に進学した場合、将来エンジニアとして働けるでしょうか?
■1970年の人々にとってSFのように見える2020年のテクノロジーは何でしょう?
■ガンダムに出てくるもので一番実用的なものは何ですか?
■四十歳を超えたド素人のサラリーマンが、資料作りやホームページ作りでのデザインスキルを付けるにはどうするのが効率的でしょうか?
■エクセルの達人が複雑なマクロを作り大幅な業務効率化を達成したのですが、その人が転勤してしまい誰もエクセルのメンテナンスが出来ず元のやり方に戻りました。この事態に名前をつけるならどんなのが良いですか?
■MacのJISキーボードを使っています。Shift+0にアンダースコア(_)を割り当てるにはどうすればいいですか?
■なんで、スマホにストラップがつけられないようになったのでしょうか?
■プログラミングって賢くないと無理ですか?
■プログラミングでマウスや矢印キー以外でカーソルを移動させる方法はありますか?
■ARグラスでどのようなことができるようになると思いますか?
■パソコンがすぐ使えるようになる人とそうでない人との違いは何ですか?
■MacのことえりはAI学習機能ではないのですか? 繰り返し入力する単語でも、最初のいくつかの文字でさくっと候補に上がらないため、イライラしますが解消法はあるでしょうか?
■石に刺さった剣があります。どうにかして剣を取り出してくれませんか?
■もしガンダムでジオンがゲルググではなくギャンを次期量産モビルスーツとして採用していた場合、その後どうなっていましたか?
■子どもに「インターネットください」と言われたら、何て返事をしますか?
■アマゾンキンドルのテキストを、Macのスピーチ機能で読み上げることは出来ますか?
■なぜガンダムにはほとんど格闘戦だけのGガンダムはあるのに、逆に殆ど射撃、狙撃、砲撃だけのガンダム作品はなく、射撃+ビームサーベルなどを用いた格闘戦なのでしょうか?
BridgePlusほかShane Stanleyの各種ソフトウェアのホスティング先が変更になっていました。
現在は、latenightsoftwareの「FREEWARE」からダウンロードできるように変更されました。
変更前 Resources for AppleScriptObjC
変更後 Late Night Software / FREEWARE
従来のwww.macosxautomation.comドメインをwhoisデータベースで調べると、以前は所有者がApple Computerという表示になっていましたが、いまは違っているようです。もともと、Sal Soghoianが所有しており、更新や管理などをShaneに依頼しているものと分析していました(聞けば教えてくれそうですが)。
→ 管理自体、Salが行っているとのこと。好意でASObjC関連のコンテンツを置かせてもらっていたということです(Shane談)
同サイトの運用状況などは遠くから見ているほかありませんが、必要なコンテンツは手元にダウンロードしておくなどの準備をしておく必要性を感じます(必要なものはいろいろ手元に落としてありますが)。
→ コンテンツの移動とwww.macosxautomation.comの存続問題はリンクしていないとのこと
昨日もはじめてScript Menuの解説を見かけました。内容自体は既知のものですし新たな発見といったものはないのですが、説明文自体はいろいろ参考になりました。
This ebook “Switch Control with AppleScript” is a book about Switch Control. 89 pages (today). Price: JPY 3,000.
It is one of accessibility function for people with disabiulities. But it is very useful for every macOS users specially for the scripters.
Switch Control can launch AppleScript or run keyboard shortcut sequence. We can make button-based simple GUI for AppleScript. It is the easiest environent to make GUI.
This book will contain author’s sample Switch Control. It is useful and gives you a power of automation for macOS users.
▲supplement sample Switch Control Panel
他団体の作品の紹介です。以前から、コミケでそういう本を売っているサークルがあるという情報は掴んでいたのですが、さすがに同人誌即売会に足を運ぶほどの元気はないので(並ぶのと暑いのと寒いのが無理)、存在が確認できていなかった「アップルスクリプト Basic Magazine」。サークル名「Empty Party」、作者=かのつ、イラスト=かじわとクレジットされています。
作者への連絡手段が販売サイトに用意されておらず、サークルのWebサイトやTwitterアカウントなども見当たらないため、作者本人が販売しているかといった確認は取れていません(販売サイトがサイトだけに、ちょっと、、、まあ、多分大丈夫だとは思うのですが、、、)。
「アップルスクリプト Basic Magazine」vol.1/vol.2ともに550円でオンライン販売されています。ファイル形式はPDFで、Vol.1がページ数不明、Vol.2が25ページとなっているようです。
Vol.1ではXcode上で時計アプリケーションを作る内容を紹介。Vol.2ではPhotoshopを操作する方法を紹介しているようです。
Piyomaru Softwareでも「マンガとかイラスト形式の初心者向け本」という企画を出しては、立ち消えになりました。そういうものの必要性はあるものの、技術的にイラストを描けず作れないことから企画がオクラ入りを繰り返すこと数度。そういうのを作るのは無理なので、作れる中でどういう選択肢があるかを考えた末に苦労してAppleScriptえほんシリーズを作ったという経緯があります。
新型コロナウィルスの蔓延により、リモートワークでビデオ/オーディオチャットを行う機会が増え、音量調整のためのいい方法がないと嘆いている方が多いようなので、便利な方法をご紹介します。
macOSにはアクセシビリティ系(障害者支援)の機能が多々用意されており、その中核をなす「スイッチコントロール」という機能があります。この機能を利用して、画面上に操作可能な機能ボタンを貼り付けておくことができるため、オーディオ系の音量調整機能などをここに割り振って利用すると便利です。
# 業務系のScriptをフローティングパレット表示しておいて、ワンクリックで実行できるようにしておくと、とても便利だと思います
このスイッチコントロールの機能はユーザーごとに自由にカスタマイズすることができ、さらにその内容を書類に書き出して他のユーザーと共有できるようになっています。
それがパネル構成書類です。これはmacOS標準装備の機能「スイッチコントロール」の書類で、ボタン定義データやボタンから呼び出すAppleScriptが内包されています。
–> Download switchControlUserPanels1.ascconfig(12KB)
[Update] English Version included in same panel
このパネル構成書類はmacOS 10.14上で作成し、macOS10.14.6およびmacOS 10.15.4上での動作を確認しています。
Zipアーカイブから展開して、ユーザーの~/Library/Application Support/com.apple.AssistiveControlフォルダに入れてください。macOS 10.15上では展開後.ascconfig書類がフォルダに見えるかもしれませんが、気にせずそのまま上記フォルダに移動してください。
# 「com.apple.AssistiveControl」フォルダがApplication Support内に存在しない場合には作成してください。このフォルダ名を間違えるとOSに認識されないので、ご注意ください
「システム環境設定」を起動。
「アクセシビリティ」を選択。
左の一覧リストの下の方にある「スイッチコントロール」を選択。
「スイッチコントロールを有効にする」にチェックを入れます。この際に、管理者パスワードを求められる場合があります。
フローティング操作パレット「スイッチコントロール」のホーム画面が表示されるので、「カスタム」をクリック。
カスタムの中にさきほど追加した「入出力音量調整」があるので、それをクリック(”Sound Volume Control” is English version)。
これで、フローティングパレットの入出力音量調整パレットが表示されます。
▲SwitchControlの操作方法。macOS標準のGUI体系とは若干異なる
パレット上の各ボタンをクリックするか、あるいはMacのサブディスプレイとしてiPadを接続している場合には、iPadの画面上を指でタップすると各ボタンの機能が実行されます。
スイッチコントロールのフローティングパレットはパレット左上の「x」をクリックすると消去できます。いったん消去しても、ふたたび「システム環境設定」>「アクセシビリティ」>「スイッチコントロール」に戻って、「スイッチコントロールを有効にする」のチェックを入れると表示されます。
iPadをMacのサブディスプレイとして利用するアプリケーションは、Apple純正のSide Car(macOS 10.15標準装備)のほか、サードパーティ製の「duet display」や「AirDisplay」などが有名です。
とくに、サードパーティ製のアプリケーションは、古めのiOSや古めのiPadをサポートしている(Apple純正機能は最新のiPadしかサポートしていない)ため、身の回りに転がっている古いiPadや中古のiPadをMacのタッチ操作コントローラーにお安く利用できるため、とてもおすすめです。
Keynote、Pages、Numbersのv10.0が配信されました。Keynoteの前バージョンはv9.2、Pagesはv8.2、Numbersはv6.2.1でしたが、バージョン番号を別々に採番することがめんどくさくなったのか、内部のエンジンが一新されたのか、バージョン番号をそろえてきました。
おそらく、マーケティング的な要請やユーザーサポートの手間を省くために番号をそろえてきたのでしょう。
Pages/NumbersについてはmacOS 10.14以上が対象。KeynoteはmacOS 10.15.4が必要とのことですが、いろいろ致命的なバグの修正を含んでいるため、後日macOS 10.14.6向けのKeynoteアップデートが配信されることを期待したいところです。
# アップデートに出てこないだけで、Mac App Storeから個別にKeynote v10.0のダウンロードが(macOS 10.14.6上でも)できました。なんででしょう?
■Numbers v10.0:変更点なし
Numbers v6.2で「特定の行数の表を作るとエラーになる」というバグがありましたが、これはv6.2.1で修正されました。これが修正されています(記憶違いだったので、記事を修正しておきます)。
documentにfacing pagesというプロパティが新設されました。見開き表示時にページの左右(奇数ページ、偶数ページ)を考慮して2ページ表示のペアを変更するという機能のようです。
AppleScript名:Pages v10.0で追加されたfacing pagesの操作を行う |
tell application "Pages" tell front document set curStat to facing pages set facing pages to not curStat –反転 delay 2 set facing pages to curStat –元に戻す end tell end tell |
全言語的に普遍的な内容ではあるのですが、日本語ユーザー的には縦書き/横書きの設定属性値を持ってくれたほうがありがたいところです。たぶん、自分は使うことはないと思います。
Keynoteは前バージョンでかなりおかしなバグが発覚していたので、その修正が行われているかどうか、というのが見所です。
結論からいえば、バグは修正されています。macOSに関して久しぶりに前向きなニュースといえます。彼らにバグを修正する意思と能力が残されていたことについては喜びたいところです。同時に残念なニュースとして、この修正に関連して新たなバグが生まれています(このあたりがいかにもAppleらしい)。
5行の表を作るとエラーになり、他の行数でもいろいろエラーになる組み合わせが確認されていました。テスト用のAppleScriptを書いて、行数を2〜100行で変更しつつ作成、列数を2〜30列で変更しつつ作成、行数および列数を順次ループで2〜20まで変更しつつ新規作成するなどのテストを実施。無事、修正を確認できました。
ただし、本テストは表の新規作成についてのみ確認したものであり、既存の表の行数/列数の変更を確認したものではありません。Appleの仕事に関しては、修正点の周囲に新たなバグを生む可能性が高く、修正時と修正後が一番危険な状態です。彼らに「自分の作った機能を動作確認する」という能力を期待してはいけません。信じてもいけません。つねに、疑いの目で見ることが重要です。
AppleScript名:Keynote書類上に表を作成、行数を2から100まで可変 |
tell application "Keynote" tell front document tell current slide repeat with i from 2 to 100 set aTable to make new table with properties {header column count:0, header row count:0, row count:i, column count:3} delay 1 delete aTable end repeat end tell end tell end tell |
AppleScript名:Keynote書類上に表を作成、列数を2から30まで可変 |
tell application "Keynote" tell front document tell current slide repeat with i from 2 to 30 set aTable to make new table with properties {header column count:0, header row count:0, row count:5, column count:i} delay 1 delete aTable end repeat end tell end tell end tell |
AppleScript名:Keynote書類上に表を作成、行数および列数を2から20まで可変 |
tell application "Keynote" tell front document tell current slide repeat with x from 2 to 20 repeat with y from 2 to 20 set aTable to make new table with properties {header column count:0, header row count:0, row count:y, column count:x} delay 0.01 delete aTable end repeat end repeat end tell end tell end tell |
数値ではじまる予約語や記号を含む予約語はAppleScriptの言語処理系では宣言できません。エラーになります。それをAppleの(おそらくKeynoteの)担当者がKeynote v7.1のアップデート時に、従来の「small」「midium」「large」といったEnumによる指定から、「360p」「540p」「720p」「1080p」「2160p」という指定を行えるように変更を加えました。
より大きな解像度の書き出しに対処したことは評価できると思いますが、そもそもAppleScriptの処理系で認識できない「数字で始まる予約語」に変えたのはダメダメです(スクリプトエディタ上で構文確認を行うとエラーになる=使えない)。つまり、この担当者はsdefの改変を行なっただけで、実際にコードを書いて動作確認を行っていないことがわかります。
Appleにバグレポートを書きつつ、このような処理が必要な場合にはnative sizeで書き出して、そのあとでムービーをリサイズするような処理で回避していました(GUI Scriptingで乗り切ったScripterもいるようですが)。
Keynote v10.0では「format360p」「format540p」「format720p」「format1080p」「format2160p」と変更され、AppleScriptの構文確認時にエラーでハネられることはなくなりました。この点についてはバグ修正が行われたものと判断してよいと思われます。
ただし、従来動作していたEnum「native size」を指定するとエラーになるようになってしまいました。互換性のために残したが動作していない、といったコメントが書かれているわけでもないため、これはバグだと判断します。
■Keynote書類フォーマットとムービー書き出し時の解像度の対応表(Piyomaru Software独自調査による)
movie export formats | 標準(4:3) | ワイド(16:9) |
format360p | 480 × 360 | 640 × 360 |
format540p | 720 × 540 | 960 × 540 |
format720p | 960 × 720 | 1280 × 720 |
format1080p | 1440 × 1080 | 1920 × 1080 |
format2160p | 2880 × 2160 | 3840 × 2160 |
AppleScript名:Keynote 360p movie export test |
set targetFileHFSPath to (choose file name) as string –かならずファイル拡張子に「.m4v」を指定する必要がある if targetFileHFSPath does not end with ".m4v" then set targetFileHFSPath to targetFileHFSPath & ".m4v" end if with timeout of 3600 seconds tell application "Keynote" export front document to file targetFileHFSPath as QuickTime movie with properties {movie format:format360p} end tell end timeout |
AppleScript名:Keynote 540p movie export test |
set targetFileHFSPath to (choose file name) as string –かならずファイル拡張子に「.m4v」を指定する必要がある if targetFileHFSPath does not end with ".m4v" then set targetFileHFSPath to targetFileHFSPath & ".m4v" end if with timeout of 3600 seconds tell application "Keynote" export front document to file targetFileHFSPath as QuickTime movie with properties {movie format:format540p} end tell end timeout |
AppleScript名:Keynote 720p movie export test |
set targetFileHFSPath to (choose file name) as string –かならずファイル拡張子に「.m4v」を指定する必要がある if targetFileHFSPath does not end with ".m4v" then set targetFileHFSPath to targetFileHFSPath & ".m4v" end if with timeout of 3600 seconds tell application "Keynote" export front document to file targetFileHFSPath as QuickTime movie with properties {movie format:format720p} end tell end timeout |
AppleScript名:Keynote 1080p movie export test |
set targetFileHFSPath to (choose file name) as string –かならずファイル拡張子に「.m4v」を指定する必要がある if targetFileHFSPath does not end with ".m4v" then set targetFileHFSPath to targetFileHFSPath & ".m4v" end if with timeout of 3600 seconds tell application "Keynote" export front document to file targetFileHFSPath as QuickTime movie with properties {movie format:format1080p} end tell end timeout |
AppleScript名:Keynote 2160p movie export test |
set targetFileHFSPath to (choose file name) as string –かならずファイル拡張子に「.m4v」を指定する必要がある if targetFileHFSPath does not end with ".m4v" then set targetFileHFSPath to targetFileHFSPath & ".m4v" end if with timeout of 3600 seconds tell application "Keynote" export front document to file targetFileHFSPath as QuickTime movie with properties {movie format:format2160p} end tell end timeout |
AppleScript名:Keynote native size movie export test (Bug) |
set targetFileHFSPath to (choose file name) as string –かならずファイル拡張子に「.m4v」を指定する必要がある if targetFileHFSPath does not end with ".m4v" then set targetFileHFSPath to targetFileHFSPath & ".m4v" end if with timeout of 3600 seconds tell application "Keynote" –export front document to file targetFileHFSPath as QuickTime movie with properties {movie format:native size} end tell end timeout |
コンピュータのインタラクション・デザインを研究・実践してきたコンピュータ科学者のラリー・テスラー氏が亡くなりました。Xerox PARCやAppleをはじめ、名だたるIT企業を勤めてきました。
1980年にテスラーはPARCからAppleに移り、1989年、ATG(Apple Technology Group)でMac OSのユーザー向けスクリプティング言語を開発する「Family Farm」プロジェクトを開始。これがのちのAppleScriptになりました。
コピー&ペーストをはじめ、彼の活躍や着想なしに現在のパーソナルコンピュータの姿はありえなかったことでしょう。
彼の冥福をお祈りいたします。
■AppleScript登場前の歴史(書籍「AppleScript 10大最新技術」より引用)
時期 | 内容 |
---|---|
1989年 | ATG(Apple Technology Group)で、Mac OSのユーザー向けスクリプティング言語を開発する「Family Farm」プロジェクトが始まる。ラリー・テスラーがリーダー。メンバーはMike Farr、Mitchell Gass、Mike Gough、Jed Harris、Al Hoffman、Ruben Kleiman、Edmund Lai、Frank Ludolph |
1990年 | HyperCard 2.0が出荷される |
1990年中盤 | Family Farmプロジェクトの最初のスピンオフプロジェクトとして、スクリプト言語の基盤となるAppleEventの開発が始まる |
1991年4月 | ウィリアム・クック、Appleで働きはじめる。AppleEvent Managerの最終β段階 |
1991年夏 | 発売予定のSystem 7にAppleEvent Managerを一緒に出荷すべく計画される |
1991年中旬 | LispやSmallTalkなどの既存の言語のランタイム上にAppleScriptシステムを構築することが検討される |
1992年 | AppleScript対応のHyperCard 2.2がリリース |
1992年2月 | ウィリアム・クック、Kurt PiersolからAppleScriptに関するアイデアを聞く。AppleScriptのα版がリリースされる。Dave Winer(SOAPとかBlogの仕組みを開発した人)がUserland Frontierの初期バージョンをリリース |
1993年4月 | AppleScript 1.0Developer's Toolkitをリリース |
1993年1月 | AppleScript 1.1の次バージョンにさらなる機能追加を行うことをAppleが決定 |
1993年9月 | AppleScript 1.1がリリース。はじめてのエンドユーザー向けのリリース。AppleScriptのオリジナル開発グループが解体される。ウィリアム・クックがAppleを辞める(1993年内の時期不明) |
1994年 | FaceSpanがリリースされる |
1997年 | ScriptableなFinderがリリースされる |
1997年7月 | System 8と一緒にAppleScript 1.1.2がリリースされる |
本Blogには誰でもユーザー登録できるようになっていました。フォーラムの運用を想定していたので、誰でも登録できるようになっていたほうがよいと考えたからです。
ただ、最近はスパマーのボットによるユーザー登録が増えてきて、スパマーのブラックリストを用いての確認とかユーザー削除の作業が増えてきて、一時はスパマー除去のためのプラグインを入れて様子を見ていました。
スパマー除去プラグインのお試し期間が過ぎ、一思案。
スパマー除去サービスを利用するのが最善手でありますが、そこまでするんだったらもう少し、WordPressのユーザー登録時にロボットを弾くための認証プロセスを追加するなどの方法もありそうですし(自分が考えるぐらいだから存在するでしょう)。
とりあえずの暫定措置で、ユーザー登録そのものを一時的に停止します。日本語で書いて意味があるかは不明ですが、、、
2018年1月にDBをふっとばしてくれたホスティング業者「Xserver」をまだ使っているわけですが、日本標準時(JST)で2020年1月21日 AM2:00〜AM8:00ごろまで、データセンター内の回線増強にともない10分から60分程度、本サイトにアクセスできなくなる見通しです。
その間は、本サイトを通じて配布している各種AppleScriptライブラリのsdefに入れている画像やムービーなどが見えなくなります。
MicrosoftによるGoogle Chrome(オープンソース版のChromium)をベースにした(そのまま)Webブラウザ「Microsoft Edge」の正式版がリリースされました。
ChromiumはAppleScriptに対応しており、ベータ版である「Edge Canary」もChromiumと同様のAppleScript用語辞書を備えていました(A=B)。
正式版「Edge」のAppleScript用語辞書と「Edge Canary」の用語辞書とdiffをとってみたところ、内容が同じであることを確認できました(B=C)。
このため、Google Chromium用のAppleScriptとtell文のアプリケーション名だけ書き換えればEdge用のAppleScriptとして動かせることが期待できます(メニューやボタンを直接動かすGUI Sciriptingをのぞく)。
2019年:macOS 10.15(自分は10.14を使用)
2019年を振り返ると、
・鹿児島から東京に帰ってきた
・メイン環境をmacOS 10.12から10.14に移行した(10.13をパスした)
・仕事でCSVやIllustratorと格闘していた
・高度なデータ照合(配列の順列組み合わせ全パターン計算して照合)を実施
・Webブラウザ上のWebコンテンツ部品の詳細データにアクセスしたり、JavaScript側からAppleScriptにレコードや配列などの高度なデータを返すような処理ができるように
・AppleScript用語辞書つきのライブラリの試作開始
・アラートダイアログ上に有用なGUI部品を配置したライブラリの提供開始(コードネーム:箱庭ツールス)
・sdefの書き方に着手。世界初のムービー/画像/サンプルScript入りsdefが作れるようになった
といったところでしょうか。2018年がTanzakuの部品や研究、AppleScriptからの機械学習の利用などが主な方向だったのと比べると、より一般性の高い部品を作っていたような印象があります。もちろん、Tanzakuの発展機能を実装した小規模な実証アプリケーション「Tanshio」も今年の目玉です。
2019年で一番価値の高いAppleScriptといえば、「Safariで現在見えている表を抽出してCSV書き出しv3」でしょう。Webブラウザ上に見えている範囲のオブジェクトだけを処理対象にする、といういままでやりたくてもできなかった処理ができました。
■2019/1
Pages書類の1ページ目の表の背景色を置換 v4
セキュリティダイアログに表示するメッセージをローカライズする
このあたりは、必要に迫られていろいろ試行錯誤したものですが、macOS 10.14以降のセキュリティダイアログ関連の経験を蓄積しないとこれらのOS上でGUIアプリケーションが作れないので、とても重要です。
■2019/2
アラートダイアログ上にTable View+Map Viewを表示
アラートダイアログ上にちょっとしたGUI部品を並べる「箱庭ユーザーインタフェース」。これまでそうしたユーザーインタフェースは推奨されてきませんでしたが、よくよく見回せばiOSアプリなどこの箱庭ユーザーインタフェースそのもの。だったら、macOS上のAppleScriptでそういうものを作ってもいいと割り切って作ってみた次第です。
■2019/3
青空文庫のテキストのルビタグを超高速削除
720KBのテキスト置換を数秒で行う、現時点でのCocoaの機能を十分に活用した、1つの到達点です。普通にtext item delimitersで置換していただけでは、この規模の処理は数時間かかることでしょう(一晩かけても終わらないかも)。
■2019/4
RectangleBinPackを用いて2D Bin Packを解く
Appleがいまだに直さないPDFViewのバグを回避する
2D Bin Packは昔からクリアしておきたいと思っていたテーマです。PDFViewというかScripting Bridgeのバグには困らされまくりです。
■2019/5
矩形座標同士の衝突判定(共通部分の検出) v3b
GET method REST API v4.3
このあたりは順調に機能を積み上げて到達した処理です。地道に機能を積み上げて、もう少しで別のレベルに行けることでしょう。
■2019/6
与えられた文字列の1D Listのすべての順列組み合わせパターン文字列を返す v3
macOS 10.15 Beta Release Notesに将来のmacOSでPython、Ruby、Perlなどのランタイムが含まれなくなることを告知
データの照合処理で必要になってくる(場合もある)順列組み合わせ計算。自分で書いた処理だけでなく他人の書いた処理も参考にしてパワーアップしました。他のScript言語処理系がデフォルトでインストールされなくなるかもしれないという件、OSプラットフォームとしての魅力が下がるのでやめてほしいんですが、そういう決定をするならするで、AppleにはAppleScriptの処理系をもっと大事にしてほしい気がします。
■2019/7
クリップボードに入れたIllustratorのオブジェクトをQRコード認識 v2
構文色分け情報を取得(Color Spaceを考慮)
QRコード認識は以前からいろいろやっていますが、実戦で使ってみると予想外の事態に直面します。想定外であれば想定外なりに対処した、というのが自動スケールアップ+QR認識機能です。
一方、AppleScript書類の構文色分けに基づく構文要素処理も機能を積み重ね、もう少し熟成(部品単位での使い回しを向上)させると普通にありふれた部品として使えるようになることでしょう。ライブラリ化してsdef付けて呼ぶぐらいこなれるとよいことでしょう。
■2019/8
display YouTube Script Library
JavaScriptCore経由で関数計算を行うcalcLibASをアップデート
冗談の産物display youtubeに、冗談で作ったcalcLibJS(JXAで作った)のあまりの不安定さに音を上げて作り変えたcalcLibAS、そして高速化改良を加え、sdefをつけて予約語で呼び出せるようにしたcalcLibASは、冗談から生まれて下手に実用性が出てしまったものです。冗談で作ったものが意外な発展を遂げるというのは、よくある話です。
■2019/9
指定アプリケーションの指定言語のstringsファイルの内容をすべて取り出す
Safariで指定のDOM Elementの情報を取得する
やらなくてはならない処理ばかり書いていると「やりたい処理」も書きたくなるもので、Safariを経由してJavaScriptの実行結果をAppleScriptで利用しやすくする処理を書いておきました。これが、今年一番の「Safariで現在見えている表を抽出してCSV書き出しv3」へとつながります。
■2019/10
CotEditorのScript集、PowerPack & Basic Packをv2.0にアップデート
sdef(AppleScript用語辞書)に画像やムービーを入れる
CotEditorの最前面のドキュメントの選択範囲を伏せ字に
CotEditorのPowerPackは、実際に作ってみていろいろ発見がありました。無償配布のScript集なんて作る意義はほとんど感じないものですが、これは事実上Tanzakuの部品や実装の習作でもあります。
sdefに画像やムービーを入れた例は目にしたことがありませんでしたが、「applescript://」リンクURL入りのサンプルScriptや画面スナップショットが入っているsdefを見ると、逆に入っていないものに違和感を覚えるほどです。
■2019/11
Safariで現在見えている表を抽出してCSV書き出しv3
checkboxLib v2
今年書いた中で、そしてここ数年で一番のScriptです。こういうレベルの処理が書きたかったものの、手がかりが見つからずに着手していませんでした。Webコンテンツの処理で「実際にWebブラウザで見えている範囲のものをピックアップする」のはやりたかった処理です。
checkboxLib v2は、はじめてムービー入りのsdefを同梱したライブラリです。実際にやってみると面白いものの、ムービーまでやらなくていいと感じます。
■2019/12
Double PDFを作り直して、Scripting Bridgeのバグを回避したと思ったら、PDFViewではNotificationもバグっていて表示中のページ変更のノーティフィケーションでページのノンブル変更できず、もう最初から最後まで表示中のページを自前で管理するなど「それってゲームプログラム?」ともいうような作りになってしまいました。
腹いせにVer.2はDouble PDFを30言語ローカライズして審査に回しました。ステータスが審査中になっても、数日返ってきません。言語リソースが増えると審査に余計に時間がかかるのでしょうか?
AppleがPDFViewのScripting Bridge関連データにバグを作り、レポートしても一向に直さないため、Mac App Storeに出しているものの、macOS 10.13以降のOSでは正常動作しない、Piyomaru Software謹製のPDF差分ブラウザ「Double PDF」。
Appleが作ったバグのせいで基礎的な動作が阻害されてしまっているので、機能アップは一切考えないで(機能アップ版として別のものを作っていたので)、Double PDFについては現在のOSで動くレベルで改修をすすめています(作業量が見えない、、、、)。
–> Demo Movie of Current Version of Double PDF v2.0 (on macOS 10.14.6)
AppleScriptの箱庭世界でモノを作っている分には環境変化は割と穏やかですが、直接Cocoaの機能に手を出しはじめると、OSバージョンごとの無意味な名称改変とか、予告なしの仕様変更とか、このような未改修のバグに直面することがあり、Mac OS X 10.3で「is in」という基礎的かつ重要な演算子にバグを作られた時と同質の負の感情を喚起されるものがあります。
正式にDevelopper Supportの窓口から詳細に症状を伝えてレポートしても無視されているので、AppleのDevelopper Supportもバグの報告でパンクしているということでしょうか。macOS 10.13以降、バグレポートしても返事も来ないのが日常化してしまったので(AppleScript関連ではないバグがほとんどなのですが)、バグを直す気がないんでしょうか。
▲macOS 10.14.6上で改修中。まだ画面操作まわりに着手しただけ
▲macOS 10.15.1上で動作確認。最近のmacOSはBetaで動作確認してもRelease版の品質がBeta以下なので、Beta上で確認する意義が、、、
Appleによって破壊された機能は、PDFViewまわりの基礎的な機能。
- (IBAction)goToFirstPage:(nullable id)sender; - (IBAction)goToLastPage:(nullable id)sender; - (IBAction)goToNextPage:(nullable id)sender; - (IBAction)goToPreviousPage:(nullable id)sender; @property (nonatomic, readonly, nullable) PDFPage *currentPage;
などです(他にもあるかも。いや、確実にある)。つまり、PDFビューワー機能を作ろうとすると、いろいろ苦労させられる状態です。
苦労が必要ということは、余計に処理時間が必要ということで、処理速度はオリジナル版よりも遅くなっています。とくに、PDFのページめくりが、、、
▲開発時に資料を作っておかなかったらもっと大変、、、、、
On this day 25 years ago, Apple introduced AppleScript, a system and application automation system and language. It’s still shipping in Mojave and is one of the oldest code bases in continual use in macOS. Happy birthday, AppleScript! pic.twitter.com/ymijJ8mMa1
— Chris Espinosa (@cdespinosa) October 4, 2018
社員番号8番で、Developper Tools担当を長年務め、いまはHome Kitを手がけていると噂されている、AppleScript系の開発者にはおなじみのChris EspinosaがAppleScriptの生誕25周年を祝うTweetを投稿していました。
2018年9月26日、池袋で開催したイベント「Think AppleScript」、参加者12名で盛会のうちに終了しました。
お越しいただいた皆様、お忙しいところをありがとうございました。まずは、お礼までに。
電子書籍「AppleScript 10大最新技術」をベースにAppleScriptの歴史や成り立ち、これまでの経緯を説明し、Newt Onや最新のTanzaku、あるいはAppleScriptで作成したMac App Storeで販売中のアプリケーション「Double PDF」などについてデモを行いました。
電子書籍「AppleScript最新リファレンス」掲載のiOSデバイスとのAppleScriptによる連携をご紹介したところ、出席者から驚きの声が上がっていました。
AppleScriptの穴Blogアーカイブ1〜3が、よりパワーアップ。TOC(しおり)を付加していっそう読みやすくなりました(読みにくくなくなりました、の間違い?)。
Blogアーカイブ本をBOOTHからダウンロード購入された方は、再度ダウンロードを行ってみてください(再購入の必要はありません)。
また、今回のTOCアップデートは目次を持たないアーカイブ本への目次追加の措置であり、TOCはないものの目次がついている他の既刊本はその対象ではありません。
昨日のうちに再ダウンロードしてくださった方、ごめんなさい。その時点ではまだアップデートしていなかったんです、、、