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

ぴよまるソフトウェアが選ぶ、2018年に書いた「価値あるScript」

Posted on 12月 24, 2018 by Takaaki Naganoya

2018年:macOS 10.14(自分は10.12を使用)

本Blogには基礎的で再利用性の高いAppleScriptを掲載しています。高度で見ただけで腰を抜かすような高度なものは掲載していません。逆にいえば、そういう「高度で奇抜なもの」も一般的で簡単なScriptの組み合わせで作られている、ということです。

2018年を振り返ると、Blogの再構築のために過去掲載の記事から新しめのものだけを再掲載。途中から新規作成分を掲載しています。

2018年2月

消滅したBlogの再構築をゼロから開始。Blog投稿用のAppleScriptを作成してローカルのAppleScriptをHTML化してXML-RPC経由でWordPressに主要なAppleScriptをアップロード。この「Finder上で選択しておいたScriptをHTML化してWordPressにアップロード」するというAppleScript(というか、その部品)を用意できていなければ、こんなに早期に復旧することはなかったでしょう。

2018年3月

・(GET)駅すぱあとAPIで駅コードから駅名称を取得
ヴァル研究所の「駅すぱあとAPI」が公開されているのを見つけ、実際に呼び出してみました。ただ、このAPIの呼び出しが必要な開発案件にまだ出くわしていないので、本気で使い込んではいません。REST APIは全般的に「仕様的に呼び出せるものは呼び出せる」「呼び出すことが目的ではなく、それをどのように活用するかが目標」です。Google翻訳だろうがDropboxだろうが、REST APIをAppleScriptから呼び出せるというのは「当然のこと」なので、あえてBlogに掲載する意義もそれほど感じませんが、、、、

・指定PDFの全ページからリンクアノテーションのURLを取得してURLを書きかえる
PDFのリンク書き換えScriptは、えほんシリーズ(Keynoteで作成)のPDFにScript Linkを埋め込むために試作したScript群の一部です。結局、Keynoteバージョン8.2か8.3あたりでKeynote書類にカスタムURLプロトコルのリンクを埋め込めるようになったため、自力で対応しなくても大丈夫になりましたけれども。

・AppleScriptの構文色分けカラーフォーマットをplistから読み込む
これは、Cocoaの機能を使わずに構文色分けフォーマットの判定を行っていた従来バージョンのルーチン(電子書籍のオマケ「Piyomaru Script Assistant」に使用)を、Cocoaの機能を用いて書き換えたものです。速度的なメリットはとくにありませんが、これを下敷きにしてさらに高度なものを作成するためにクリアしておきたい技術的な課題でありました。

のちに、このあたりの技術的な問題をクリアしたScriptを「AppleScript書類から指定の構文要素をピックアップ(Cocoa Property名称)して文字列化」として掲載しています。本来の作成目的はさらにこれを発展させたものです。

あまり派手ではありませんが、

・shebangっぽい行から実行プログラムを取得してスクリプト言語の拡張子を取得

というScriptも個人的には割と重要です。このScriptの作成目的は、FileMaker ProのDB内に格納したshell scriptなどを、shebangの情報をもとにファイル書き出しして実行するというものです。こういう目的を果たすScriptが存在していなかったためです(国内、海外ともに探しても見つからず)。

2018年4月

・NSObjectの各種メソッドのじっけん

これは、個人的にはかなり意義のあるものです。掲載している分はこの程度の数ですが、未掲載分が大量にあります。このあたりの機能を確認することで、大きな収穫がありました。Cocoaの機能を使い出して真っ先に調べたのが、NSArray、NSString、NSDictionaryなどのデータ処理に必要なクラスの情報。ついで、NSImageなど画像処理に必要なクラス。NSObjectについてはずいぶん後になってから調べました。

・自分を最前面に移動させてAbout表示
これは、特殊な実行環境からこの機能を実現するための方法が見つからなかったので、「見つけたことが重要」な内容です。Scriptそのものにはあまり重要性はありません。

・配列に入れた画像を類似度でソートする
こういう処理はぜひAppleScriptでクリアしておきたい内容です。Cocoaの機能に手を出しはじめたのも、REST APIの呼び出しや機械学習(強化学習)やこのあたりの処理ができるようになるだろう、と感じたためです。強化学習については11月ごろに実現しています。

・アニメーションGIFをフレームごとに画像に分解する
分解すること自体にはあまり意味はありませんが、アニメーションGIFを作成するObjective-Cのプログラムが見つからない今日このごろ。Photoshopを使えば作れなくはないのですが、Photoshopを使わないで画像処理することに意義があります(使わなければMac App Storeに出せるので)。

・TwitterへのTweet文字数チェック
Github上で発見した当時「こんないいものが存在しているのに、なんでMac版のTwitterクライアントにこの機能は搭載されていないんだろ?」と首をひねっていましたが、間もなくMac版のTwitterクライアントが廃止に。あのアプリケーションは方向性がブレブレで、機能不十分で、User Interfaceもさっぱりな最低の存在でした。Appleに買収されたがっているがゆえの「瀬戸際外交の一種」とも見られていましたが、Twitterはどこに向かっているのでしょう?

2018年5月

・atan2をFramework呼び出しで計算する
これは、1つの緯度/経度情報をもとに他の座標がどの方角に存在するかを計算するために必要なものです。

・Bash In Tokyoで音声認識コマンドプログラムをデモしてきました
とりあえず作ってデモしてみたところ、若干方向性が合っていないことを感じ取って、のちのTanzakuにつながることになります。とくに、ファイルのドラッグ&ドロップ処理系とターミナル的なコマンド処理系を同時に実装すると「違和感」しかない、ということに気づいた次第です。

・Blog Archiveの電子書籍を計画しています
ごく一部の読者の方々のご要望を受けて企画した本シリーズ。続刊はすでに(機械的に)作成してあるのですが、内容確認とコメント追記にものすごくパワーが必要なので、思ったよりも進んでいませんが、すすんではいます。

・数値演算ライブラリ「calcLibAS」v1.3(28倍速)
数値演算ライブラリについては、Sephes Math LibraryをObjective-Cなどでラッピングしたものが決定版になるかと思っていましたが、本ライブラリはまさに掘っ建て小屋。冗談で作ってみたら予想外に実用性が出てしまったものです。

2018年6月

さすがに、引越しの最中に何かまとまったプログラムは書けません。

2018年7月

Blogアーカイブ本 vol.1を販売開始
Blogアーカイブ本 vol.2を販売開始
半信半疑で出してみたBlogアーカイブ本のVol.1〜2。一部読者のみなさまからはご好評いただいております。

2018年8月

・CPUの温度、放熱ファンの回転数を取得する
MacBook Proでデモを行っている最中に、AppleScriptを走らせて遅くなる現象に直面することがままありました。よくよく調べてみたら、長大なAppleScriptを実行しているさいにCPUが過熱してサーマルスロットリングが発生しているケースが多いことが判明。これは、環境がかわって南国の東向きの部屋に移動したことがきっかけですが、ノートPC用の放熱台にくわえ放熱ファンを強制的に高回転させるソフトウェア「TG Pro」を併用することで解決しています。本ルーチンは顧客に納品するGUIアプリケーションの部品として利用し、バッチ処理時のCPU過熱警報の機能として組み込みました。けっこう重要な部品です。

・Blogアーカイブ本 vol.3を販売開始
・AppleScript書類から指定の構文要素をピックアップ(Cocoa Property名称)
余裕を見て調査していたAppleScript構文要素の判別機能のCocoa版がだいたい予定どおりのレベルに仕上がったのが、本ルーチンです。

2018年9月

・MOSAミーティングで新プロジェクト「Tanzaku」を発表
自然言語コマンドを実行する「Newt On」Project(2002)、日本語音声認識コマンダー「ことだま」(2003)、その他日本語を理解して実行する各種プログラム試作品の集大成ともいうべきプログラム「Tanzaku」(2018)〜Talking Command Droplet via filenameです。

・easyJParse v3
AppleScriptに備わっている「words of」による簡易形態素解析機能。なぜか途中の記号類をドロップするため、いまひとつ実用的ではありませんでしたが、本プログラムにより本来の有用性を確保したといえなくもありません。何回か手を出しては放り投げていたものですが、デモの間際に集中して作ったら完成しました。コマンド解釈用に作ったので、この程度でも十分でした。

・イベント「Think AppleScript」盛会のうちに終了
初回だったので予定どおり、想定どおり、AppleScriptの歴史的経緯やおおまかな話などを詳細にご紹介しつつ、現時点での業務系のScriptでCocoaの機能を用いつつAdobe Createvie Suitesアプリケーションを操作する内容をデモしていただきました。質疑応答の中から、「iOSのSiriショートカットでiOSからosascriptコマンドを経由してMac上のAppleScriptを呼び出せる」といった話まで広がったのは収穫でした(結局、Entanglerのほうが6億倍ぐらい便利なのでSiriショートカットは使わずじまいですが)。

2018年10月

・ファイル作成日、修正日を変更する
他の補助アプリケーションの手助けなしに、ファイルの各種属性を書き換えられるようになったわけで、まことにけっこうなことです。

・NSURLからBookmarkを作成するじっけん
この機能はなくて困っていたので、できるという話は朗報でした。

2018年11月

・WebView+ボタンを作成 v3(URLから読み込み)
従来のWebViewがDepricated扱いになり、WKWebViewを使わなくてはならなくなったわけですが、使いこなすのに予想外に資料が存在せず(使い方がイレギュラーなこともある?)、いろいろ苦労していました。このあたり、プログラミングではなく「調査」の成果なわけですが、できないことをできるようにするためには、こうした下調べが欠かせません。

・機械学習で学習したMSの画像を連邦・ジオン軍判定してフォルダ分け v2
強化学習によって作成したモデルをもとにバッチ処理を行うというのは、1つの目標として据えていたので、そのやり方がわかって、実際にひととおり動作するプログラムを作成できたのはなかなかナイスです。

・tccKitで指定Bundle IDのアプリケーションの「オートメーション」認証状況を取得
macOS 10.14で大幅に変わった環境ですが、それに対処するためのノウハウも蓄積しつつあります。その中で最大のものがこれです。CodeSignさえ行えれば、動作内容の変化を最低限に抑えられる(初回のみセキュリテイダイアログを表示)のではないかと。ただ、CodeSignを行うような開発ライセンスを持っていないユーザーがドロップレットを作成した際にダイアログが出ることに不満を持っているようです。ドロップレットではなく、スクリプトメニューから実行するようにすれば、macOS 10.14のセキュリテイ対策機能に合っているように思います。

・macOS 10.14 AppleScriptリリースノート
後日確認したところ、macOSリリースノートに統合されたので、個別のリリースノートとして追記されることはなくなった、と明記されていました。内容をバックアップしておく必要がありそうです。

2018年12月

・easyJParse v4
簡易日本語形態素解析プログラムのアップデート版です。固有名詞に対応するための仕組みも見えてきました。

2018年にBlogに掲載したプログラムでいえば、強化学習、簡易日本語形態素解析、WkWebView利用あたりがポイントでしょうか。

More from my site

  • packit4meを利用して3D Bin Packingを解くpackit4meを利用して3D Bin Packingを解く
  • 人類史上初、魔導書の観点から書かれたAppleScript入門書「7つの宝珠」シリーズ開始?!人類史上初、魔導書の観点から書かれたAppleScript入門書「7つの宝珠」シリーズ開始?!
  • アラートダイアログ上にWkWebViewでGoogle Chartsを表示 v2アラートダイアログ上にWkWebViewでGoogle Chartsを表示 v2
  • 配列の最初の要素を削除する配列の最初の要素を削除する
  • CotEditor v5.1.1でprint機能に微修正CotEditor v5.1.1でprint機能に微修正
  • 文字を集合(CountedSet)に変換して文字列同士の近似度を計算する(単語単位で評価) v4文字を集合(CountedSet)に変換して文字列同士の近似度を計算する(単語単位で評価) v4
(Visited 222 times, 1 visits today)
Posted in Release | 4 Comments

4 thoughts on “<span>ぴよまるソフトウェアが選ぶ、2018年に書いた「価値あるScript」</span>”

  1. 12/10/21
    4:09 PM
    2021年12月10日
    4:09 PM

    Reply

    2021年に書いた価値あるAppleScript – AppleScriptの穴 says:

    […] → ぴよまるソフトウェアが選ぶ、2018年に書いた「価値あるScript」 → 2019年に書いた価値あるAppleScript → 2020年に書いた価値あるAppleScript […]

  2. 12/27/22
    1:34 AM
    2022年12月27日
    1:34 AM

    Reply

    2022年に書いた価値あるAppleScript – AppleScriptの穴 says:

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

  3. 1/29/24
    9:05 AM
    2024年1月29日
    9:05 AM

    Reply

    2023年に書いた価値あるAppleScript – AppleScriptの穴 says:

    […] → 2018年に書いた価値あるAppleScript → 2019年に書いた価値あるAppleScript → 2020年に書いた価値あるAppleScript → 2021年に書いた価値あるAppleScript → 2022年に書いた価値あるAppleScript […]

  4. 12/17/24
    2:32 PM
    2024年12月17日
    2:32 PM

    Reply

    2024年に書いた価値あるAppleScript – AppleScriptの穴 says:

    […] → 2018年に書いた価値あるAppleScript → 2019年に書いた価値あるAppleScript → 2020年に書いた価値あるAppleScript → 2021年に書いた価値あるAppleScript → 2022年に書いた価値あるAppleScript → 2023年に […]

Leave a Reply to 2022年に書いた価値あるAppleScript – AppleScriptの穴 Cancel reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

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

Google Search

Popular posts

  • 開発機としてM2 Mac miniが来たのでガチレビュー
  • CotEditorで2つの書類の行単位での差分検出
  • macOS 15, Sequoia
  • 指定のWordファイルをPDFに書き出す
  • Pages本執筆中に、2つの書類モード切り替えに気がついた
  • Numbersで選択範囲のセルの前後の空白を削除
  • メキシカンハットの描画
  • Pixelmator Pro v3.6.4でAppleScriptからの操作時の挙動に違和感が
  • AdobeがInDesign v19.4からPOSIX pathを採用
  • Safariで「プロファイル」機能を使うとAppleScriptの処理に影響
  • AppleScriptによる並列処理
  • Cocoa Scripting Course 続刊計画
  • macOS 14.xでScript Menuの実行速度が大幅に下がるバグ
  • NaturalLanguage.frameworkでNLEmbeddingの処理が可能な言語をチェック
  • AppleScript入門③AppleScriptを使った「自動化」とは?
  • Keynote/Pagesで選択中の表カラムの幅を均等割
  • Keynote、Pages、Numbers Ver.14.0が登場
  • macOS 15 リモートApple Eventsにバグ?
  • デフォルトインストールされたフォント名を取得するAppleScript
  • AppleScript入門① AppleScriptってなんだろう?

Tags

10.11savvy (1101) 10.12savvy (1242) 10.13savvy (1391) 10.14savvy (587) 10.15savvy (438) 11.0savvy (283) 12.0savvy (212) 13.0savvy (190) 14.0savvy (142) 15.0savvy (121) CotEditor (66) Finder (51) iTunes (19) Keynote (116) NSAlert (61) NSArray (51) NSBitmapImageRep (20) NSBundle (20) NSButton (34) NSColor (53) NSDictionary (28) NSFileManager (23) NSFont (21) NSImage (41) NSJSONSerialization (21) NSMutableArray (63) NSMutableDictionary (22) NSPredicate (36) NSRunningApplication (56) NSScreen (30) NSScrollView (22) NSString (119) NSURL (98) NSURLRequest (23) NSUTF8StringEncoding (30) NSView (33) NSWorkspace (20) Numbers (76) Pages (54) Safari (44) Script Editor (27) WKUserContentController (21) WKUserScript (20) WKWebView (23) WKWebViewConfiguration (22)

カテゴリー

  • 2D Bin Packing
  • 3D
  • AirDrop
  • AirPlay
  • Animation
  • AppleScript Application on Xcode
  • Beginner
  • Benchmark
  • beta
  • Bluetooth
  • Books
  • boolean
  • bounds
  • Bug
  • Calendar
  • call by reference
  • check sum
  • Clipboard
  • Cocoa-AppleScript Applet
  • Code Sign
  • Color
  • Custom Class
  • dialog
  • diff
  • drive
  • Droplet
  • 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
  • Localize
  • Machine Learning
  • Map
  • Markdown
  • Menu
  • Metadata
  • MIDI
  • MIME
  • Natural Language Processing
  • Network
  • news
  • Noification
  • Notarization
  • Number
  • Object control
  • OCR
  • OSA
  • parallel processing
  • PDF
  • Peripheral
  • PRODUCTS
  • QR Code
  • Raw AppleEvent Code
  • Record
  • rectangle
  • 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)
  • 未分類

アーカイブ

  • 2025年3月
  • 2025年2月
  • 2025年1月
  • 2024年12月
  • 2024年11月
  • 2024年10月
  • 2024年9月
  • 2024年8月
  • 2024年7月
  • 2024年6月
  • 2024年5月
  • 2024年4月
  • 2024年3月
  • 2024年2月
  • 2024年1月
  • 2023年12月
  • 2023年11月
  • 2023年10月
  • 2023年9月
  • 2023年8月
  • 2023年7月
  • 2023年6月
  • 2023年5月
  • 2023年4月
  • 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