Menu

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

AppleScriptの穴

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

カテゴリー: 未分類

chartJSでアニメーション円グラフをダイアログ表示 v2.scptd

Posted on 6月 30, 2020 by Takaaki Naganoya

アラートダイアログ上にWkWebViewを作成し、その上でChart.jsによる円グラフを表示するAppleScriptです。


▲実行するとテーマ選択ののちにグラフ表示を行います


–> Download chartJSPieChartDemo.scptd(Script Bundle with Lirbrary and HTML)

Chart.jsは、ダイアグラムやフローチャートなどを描画するJavaScriptのライブラリです。割とデータのカスタマイズがしやすい感じです。

AppleScript名:chartJSでアニメーション円グラフをダイアログ表示 v2.scptd
—
–  Created by: Takaaki Naganoya
–  Created on: 2020/06/26
—
–  Copyright © 2020 Piyomaru Software, All Rights Reserved
—
use AppleScript version "2.4" — Yosemite (10.10) or later
use framework "Foundation"
use scripting additions
use webD : script "webDialogLib"

set aRes to first item of (choose from list {"light1", "light2", "dark1", "dark2"} with prompt "Choose theme")

set aList to {{y:45.43, label:"Chrome"}, {y:32.4, label:"Safari"}, {y:6.67, label:"Firefox"}, {y:5.41, label:"Microsoft Edge"}, {y:5.26, label:"Internet Explorer"}, {y:1.19, label:"Samsung Internet"}}
set myTitle to "Desktop Browser Market Share in Japan May 2020"

–https://canvasjs.com/javascript-charts/pie-chart-legends/
set mePath to path to me
set resPath to (mePath as string) & "Contents:Resources:index.html"
set myStr to (read (resPath as alias) as «class utf8») as string

set aJsonStr to array2DToJSONArray(aList) of me
set aString to current application’s NSString’s stringWithFormat_(myStr, aRes as string, myTitle, aJsonStr) as string

set paramObj to {myMessage:"Animation Pie Chart", mySubMessage:"This is a canvasJS test", htmlStr:aString, jsDelimiters:{"<script>", "</script>"}, viewSize:{900, 620}}

webD’s displayWebDialog(paramObj)

on array2DToJSONArray(aList)
  set anArray to current application’s NSMutableArray’s arrayWithArray:aList
  
set jsonData to current application’s NSJSONSerialization’s dataWithJSONObject:anArray options:(0 as integer) |error|:(missing value)
  
set resString to current application’s NSString’s alloc()’s initWithData:jsonData encoding:(current application’s NSUTF8StringEncoding)
  
return resString
end array2DToJSONArray

★Click Here to Open This Script 

Posted in dialog list Record 未分類 | Tagged 10.13savvy 10.14savvy 10.15savvy 11.0savvy NSJSONSerialization NSMutableArray NSString | Leave a comment

Numbersの表の選択範囲をシーケンシャル番号で埋める

Posted on 3月 11, 2020 by Takaaki Naganoya

Numbersの最前面の書類で選択中の表の選択範囲を1からはじまるシーケンシャル番号で埋めるAppleScriptです。

Numbers書類のセルを埋めるのは、それなりにコストの高い(処理時間が長い)処理なので、数十とか百ぐらいの要素だと、このように悠長にループで埋めても大丈夫ですが、数千とか数万セルを相手にする場合には途方もない時間がかかります。

要素数が多い場合には、CSVのファイルを組み立ててオープンする処理方法をおすすめします(一瞬で終わるので)。

この手の処理は、ほぼ「書き捨て」で保存すらしないことが多いのですが、たまたま気が向いたので保存しておきました。

本ScriptはmacOS 10.14.6/10.15.3+Numbers v6.2.1、macOS 10.13.6+Numbers v6.2で動作確認しています。

AppleScript名:Numbersの表の選択範囲をシーケンシャル番号で埋める
—
–  Created by: Takaaki Naganoya
–  Created on: 2020/03/10
—
–  Copyright © 2020 Piyomaru Software, All Rights Reserved
—

tell application "Numbers"
  tell front document
    tell active sheet
      try
        set theTable to first table whose class of selection range is range
      on error
        display notification "Numbers: There is no selection"
        
return
      end try
      
      
tell theTable
        set aRes to value of cells of selection range
      end tell
      
      
set aLen to length of aRes
      
set newList to makeSequential1DList(aLen) of me
      
      
tell theTable
        set cList to cells of selection range
      end tell
      
      
repeat with i from 1 to aLen
        set anObj to contents of item i of cList
        
set aVal to contents of item i of newList
        
        
ignoring application responses
          set value of anObj to aVal
        end ignoring
        
      end repeat
    end tell
  end tell
end tell

on makeSequential1DList(itemLen)
  set outList to {}
  
repeat with i from 1 to itemLen
    set the end of outList to i
  end repeat
  
return outList
end makeSequential1DList

★Click Here to Open This Script 

Posted in 未分類 | Tagged 10.13savvy 10.14savvy 10.15savvy | Leave a comment

ラリー・テスラー亡くなる

Posted on 2月 20, 2020 by Takaaki Naganoya

コンピュータのインタラクション・デザインを研究・実践してきたコンピュータ科学者のラリー・テスラー氏が亡くなりました。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がリリースされる
Posted in 未分類 | Leave a comment

Blogへの新規ユーザー登録を停止

Posted on 1月 24, 2020 by Takaaki Naganoya

本Blogには誰でもユーザー登録できるようになっていました。フォーラムの運用を想定していたので、誰でも登録できるようになっていたほうがよいと考えたからです。

ただ、最近はスパマーのボットによるユーザー登録が増えてきて、スパマーのブラックリストを用いての確認とかユーザー削除の作業が増えてきて、一時はスパマー除去のためのプラグインを入れて様子を見ていました。

スパマー除去プラグインのお試し期間が過ぎ、一思案。

スパマー除去サービスを利用するのが最善手でありますが、そこまでするんだったらもう少し、WordPressのユーザー登録時にロボットを弾くための認証プロセスを追加するなどの方法もありそうですし(自分が考えるぐらいだから存在するでしょう)。

とりあえずの暫定措置で、ユーザー登録そのものを一時的に停止します。日本語で書いて意味があるかは不明ですが、、、

Posted in 未分類 | Leave a comment

A Happy New Year

Posted on 1月 1, 2020 by Takaaki Naganoya

Posted in 未分類 | Leave a comment

[作業中]Double PDF 改修中

Posted on 11月 28, 2019 by Takaaki Naganoya

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のページめくりが、、、


▲開発時に資料を作っておかなかったらもっと大変、、、、、

Posted in 未分類 | Tagged 10.14savvy 10.15savvy | Leave a comment

Chris EspinosaがAppleScript 25周年を祝うTweetを投稿

Posted on 10月 5, 2018 by Takaaki Naganoya

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を投稿していました。

Posted in 未分類 | Leave a comment

イベント「Think AppleScript」盛会のうちに終了

Posted on 9月 26, 2018 by Takaaki Naganoya

2018年9月26日、池袋で開催したイベント「Think AppleScript」、参加者12名で盛会のうちに終了しました。

お越しいただいた皆様、お忙しいところをありがとうございました。まずは、お礼までに。

電子書籍「AppleScript 10大最新技術」をベースにAppleScriptの歴史や成り立ち、これまでの経緯を説明し、Newt Onや最新のTanzaku、あるいはAppleScriptで作成したMac App Storeで販売中のアプリケーション「Double PDF」などについてデモを行いました。

電子書籍「AppleScript最新リファレンス」掲載のiOSデバイスとのAppleScriptによる連携をご紹介したところ、出席者から驚きの声が上がっていました。

Posted in 未分類 | 2 Comments

MOSAミーティングで新プロジェクト「Tanzaku」を発表

Posted on 9月 22, 2018 by Takaaki Naganoya

2018年9月21日にニュー新橋コワーキングにて行われた「新しいMOSA」スタート・ミーティングにおいて、Piyomaru Softwareの新プロジェクト「Tanzaku」を発表しました。

Tanzakuは「ファイル名に処理してほしい内容を書くと、そのとおりに動く」プログラムであり、まとまった操作を行うのにAppleScriptやshell scriptを書くことなく、実行したい内容をファイル名に書くだけで実行できるようにするものです。

2002年発表の「Newt On」(自然言語ユーザーインタフェース)や2003年発表の「符令韻投句」(日本語音声認識インタフェース)などと並ぶレベルの画期的なアイデアとして発表。開発中のバージョンの動作デモを行いました。

→ TanzakuのKeynote資料

Posted in 未分類 | 1 Comment

CotEditor 3.5でウィンドウの透明度コントロール機能がなくなる

Posted on 9月 15, 2018 by Takaaki Naganoya

CotEditor v3.5で機能に変更があり、「CotEditorでウィンドウの透明度を連続的に変更する」のようなScriptが実行できなくなりました。AppleScript側からウィンドウの透明度をコントロールするための予約語「view opacity」が廃止されました。

予約語が廃止されたときにどういう状態になるのか、という事例として掲載しておきます。

保存ずみの同Scriptをオープンすると、

のような表示になりました。この状態でコンパイル(構文確認)を行うと、

のようにエラーになります。

CotEditorのAppleScript用語辞書をHTMLに書き出してdiffで差分を計算すると、

たしかにview opacityが削除されていることが確認できます。

ただし、アプリケーションの機能としてウィンドウの透明度設定は行えるので、エディタとしての使い勝手は(あまり)変わりません。AppleScriptから透明度をコントロールできないと困ることがあるかと考えると、とくに困ることはありません。

Posted in 未分類 | Tagged 10.11savvy 10.12savvy 10.13savvy CotEditor | Leave a comment

イベント「Think AppleScript」の参加募集を開始

Posted on 8月 31, 2018 by Takaaki Naganoya

2018年9月26日に池袋で行うイベント「Think AppleScript」の参加募集を開始いたしました。質問だろうが、自慢だろうがなんでもOKですので、この際にぜひお集まりください。

→ 申し込みページ

Posted in 未分類 | Leave a comment

Blogアーカイブ本 既刊3冊にTOCアップデート

Posted on 8月 19, 2018 by Takaaki Naganoya

AppleScriptの穴Blogアーカイブ1〜3が、よりパワーアップ。TOC(しおり)を付加していっそう読みやすくなりました(読みにくくなくなりました、の間違い?)。

Blogアーカイブ本をBOOTHからダウンロード購入された方は、再度ダウンロードを行ってみてください(再購入の必要はありません)。

また、今回のTOCアップデートは目次を持たないアーカイブ本への目次追加の措置であり、TOCはないものの目次がついている他の既刊本はその対象ではありません。

昨日のうちに再ダウンロードしてくださった方、ごめんなさい。その時点ではまだアップデートしていなかったんです、、、

Posted in 未分類 | Leave a comment

Newt On Projectのプレゼン書類を公開

Posted on 8月 15, 2018 by Takaaki Naganoya

2002〜2003年ごろにAppleScriptでいまのSiriライクな人工知能インタフェース「Newt On」を作っていた頃の、プレゼン資料をSlideshare上に公開しました。
→ Slideshare上のアカウントが凍結されたので(なんで?) 本Blogに掲載しておきました。

書籍「AppleScriptの穴Blogアーカイブvol.3」掲載のNewt On Project記事と合わせてご覧になると、より分かりやすいと思います。

Posted in 未分類 | Leave a comment

本気で使うといろいろ粗が見えてくるScript Debugger

Posted on 8月 13, 2018 by Takaaki Naganoya

込み入った案件で必要になって、Script Debugger 7を購入しました。Adobeの大型アプリケーションのオブジェクト階層を調査したい場合にはScript Debuggerを使わないのは自殺行為です。

その反面、Xcodeの外部エディタとして使うなら、まだASObjC Explorer 4のほうが使い勝手がいいし(Xcode上で外部エディタを指定してscriptを再編集するとxibファイルのトラブルなど諸問題が解決するのに、Script Debuggerだと解決しない)、クラッシュの頻度もややScript Debuggerのほうが高い気がします。

本気で組んだ仕事用のAppleScript相手だと、Script Debugger上で作って、Script Debugger上で動作させるだけなら問題はないのですが、アプレットを書き出して実行させるあたりで疑問符が出てきます。

AppleScript上で何かの予約語が存在していた場合に、「どのアプリケーション、どのScript Libraries」の用語辞書から使用したものなのかをusing terms from句で囲ってこまめに宣言しておかないと、書き出したAppleScriptアプレットを起動しようとしてもクラッシュします。

# しかも、Scriptのサイズが小さい場合にはクラッシュせず、大きくなるとクラッシュするという、、、

また、using terms from句で囲むさいにはuse宣言で代入したプロパティが使えず(using terms from bPlus とか)、using terms from script “BridgePlus”のように書かないとScript Debugger上で構文確認が通りません(こちらはAppleScript処理系そのものの動作の癖?)。

さらに、「anything」(≒”any”)という(Appleに)いい加減に実装されてきた予約語を、さまざまなライブラリで別々に(ちゃんと)実装していたりすると、Script Debugger上での構文確認時に「どのアプリケーションの予約語なのか分からないぞ」というワーニングメッセージが出ます。これ、ダイアログで表示するなら、リストから選択させるとかいった動作の方がいいと思います。

このあたり、Apple純正のスクリプトエディタやASOBjC Explorer 4(現在はScript Debuggerと合流)では確認していない現象ですが、Script Debuggerを使っているかぎりはこまめにusing terms fromで囲う必要があるようです。

Posted in 未分類 | Tagged 10.12savvy Script Debugger | Leave a comment

Blogアーカイブ本 vol.3を販売開始

Posted on 8月 13, 2018 by Takaaki Naganoya

ごく一部の愛読者の皆様からのご要望を受け、2018年1月のBlog消滅以前の内容を1年ごとにまとめた「Blogアーカイブ本」のVol.3を販売開始しました。Vol.3は2010年1〜12月の内容をまとめています。全401ページ、2,000円。ファイル形式はPDFで、キーワードによる全文検索や印刷が行えます。

→ オンライン販売ページ
→ お試し版ダウンロードページ

2014年以前の巻についてはCocoaの機能をほとんど使っていないので、Cocoa Scriptingについてはわからないとか、Cocoa Scriptingになじめない方には「Cocoaを使わないやりかた」が説明されている、現時点では数少ないまとまった参考文献になるはずです。

また、2000年代初頭にAppleScriptで開発した人工知能インタフェース「Newt On」プロジェクトについての当時のレポート記事、初期バージョンのNewt Onのソースリストなども掲載しています(さすがに古いバージョンのMac OS X上で構文確認する必要があったので、URLリンク入りのプログラムリストにはできませんでしたが……色分けリストでは掲載しています)。

続刊刊行スケジュールについては、「できた分から」としか言いようがありませんが、各巻のボリュームについては、

 vol.4:2011/1〜2012/12(仮組みページ数:372)
 vol.5:2013/1〜2014/12(仮組みページ数:276)
 vol.6:2015/1〜12(仮組みページ数:320)

といったところです。価格は一律2,000円です。当初は日本語版だけですが、英語版も出せるといいですね。Vol.5/6については、Cocoa Scriptingがわからないと手が出しづらいので、Cooca Scriptingの入門資料を添付することも検討中です。

AppleScriptの穴Blogアーカイブvol.3

–Newt On Projectアーカイブ部

#1 始動
#2 インテリジェントな環境を構築するもうひとつの要素〜SOAP
#3 Wordに見るインテリジェント処理の可能性
#4 ついに姿を現した「えせNewton」
#5 えせNewtonの正式名称が決定
#6 えせNewton、大地に立つ!
#7 えせNewton 改良強化新型の系譜
#8 コマンド、目的語、サブキーを認識
#9 Classic MacOS 9への挑戦
#10 ついに疑似対話が可能に
#11 えせNewton、Mac界に激震をもたらす?
#12 複数のコマンドを実装 メール出せます
#13 Newtonを超えた~Now, “Newt On” is beyond the Newton.
#14 Newt Onから見た日本語形態素解析事情
#15 Newt On一般向けバイナリ配布開始
ABUI “Newt On”とは?
Newt On Project 活動報告
用語解説
Newt On ロードマップ
#番外編 プロジェクトMac OS X~技術屋たち「Newtonよもう一度! 〜スタートレックの世界を夢見た男たち」

–Blogアーカイブ部

指定形式でスクリーンキャプチャを撮る
動的に演算子を指定してリストから要素を取り出す
lengthの同義語number of items
タイマー割り込み処理
指定されたファイルのparentにラベルとコメントを付ける
Aperture 3でAppleScript関連機能に大きな前進
AppleScriptで扱う「パス」について(1)
AppleScriptにおける「パス」について(3)
AppleScriptにおける「パス」について(4)
I/Oデータの地デジチューナー「m2TV」添付ソフトがAppleScriptに対応
AppleScript用語辞書の変更履歴が分かるよう「DICT」メニューを整備中
「AppleScriptの穴」、気がつけば3年目
m2TVの録画スケジュール情報を取得する
m2TVの録画ライブラリ情報を取得する
pdfinfoの結果をparseするv3
リストから指定のアイテムを削除する
SHA-1 digestを求める
次期SilverlightでAppleScriptのサポートが現実のものに?
iTunes 9.1で用語辞書に変更アリ
脳波ビジュアライザ「IBVA Ver.4」がAppleScriptに対応
Photoshop CS3で指定アクションセット内のアクション一覧を取得する
現在編集中のXcodeプロジェクトのビルドターゲットが生成したpreferenceファイルを削除する v3
ImageEventsで画像回転(時計回りに90度)
ImageEventsで画像回転(反時計回りに90度)
ImageEventsで画像の縦横サイズを取得する
ImageEventsで75%にリサイズ
ImageEventsでTIFF保存
ImageEventsで横幅400ピクセルに
4月29日のラジオ番組に参加します
Finder上で選択中の画像を横幅400ドットにリサイズ
指定のtarアーカイブを展開する
手書き文字認識アプリケーション「QuickScript」がバージョン3.0でAppleScriptに対応
マウント中のdiskimage中のファイルをすべて削除
Xcodeで表示中のScriptの各ハンドラ行数をカウント
ファイルのコピー(通常実行、非同期高速実行)
指定のリストから削除指定リストに入っているアイテムを削除する
deleteListに入っている数値に該当するものをリストから削除する
リストから、指定データが何アイテム目に登場するかを算出
指定のアプリケーションの起動を待つ
指定文字列のAppleScriptをAppleScriptエディタ上で実際に実行して結果を文字列として取得する
指定文字列のAppleScriptをAppleScriptエディタ上で実際に実行して結果を文字列として取得する 10.5_10.6
指定のzipアーカイブを展開してファイルを取り出す
指定フォルダ内をすべて削除し、そのフォルダも削除
iChatで文字チャットの相手に文字列を送信。長い場合にはテキストに書き出してzip圧縮して送信
リストをレコードに v2
iEPGのファイルから各種情報を取り出してみるテスト v2
iEPGのファイルから各種情報を取り出してみるテスト v3
iEPGのファイルから各種情報を取り出してみるテスト v4
Mail.appで選択しておいたメッセージに返信してsubjectと本文を加える
iPhotoに指定画像をインポートする
DateオブジェクトからYYYY-MM-DD-hh-mm-ssの形式の文字列を返す
数値の序数の文字列を返す
アドレスブックでmy cardがあるかどうか取得する
Photoshopで複数画像の「差の絶対値」を計算するテスト v3
Snow Leoaprdで追加になったsayコマンドのパラメータテスト3
ファイル作成日付を変更する
文字列から数字の部分を取り出してリスト化
指定矩形座標内に含まれる座標をピックアップ
現在のドキュメント上のアイテムをすべてグループ解除
GUI部品にAppleScriptを貼り付ける「UI Actions 2.0.0」
近似色を求めるサンプル
エイリアス書類からオリジナルファイルの情報を取得する
Script Objectのparseのじっけん v4
時刻文字列の差を数値で返す
改行のみで囲まれた行をリストで取り出す
現在のユーザーの権限を調べる v2
数値リストを連続部分に分解する
Elgatoのハードウェアエンコーダturbo.264 HDがAppleScriptに対応
指定年_月の初日(1日)がその年の何日目かを取得する
指定日がその年の何日目かを取得する
指定年月の最初のx曜日を返す
指定年月の最後のx曜日を返す
与えられた日付の「月」が異なるかどうかチェック
2つのdateの差を月単位で取得する
実体参照している文字列をデコードする
簡単な素因数分解
簡単な素因数分解v2
数字で指定した月の英語名称を返す
2つのdateの差を月単位で取得する。パラメータはdateオブジェクトではなくリストで
dateに対してincMonthNumか月足した結果の年、月を取得する
openハンドラでファイルパス以外を渡す
指定の数字の組み合わせのすべてのパターンをリストアップ
アプリのアイコンをJPEG画像化してデスクトップに書き出すv23
SkimでPDFをページごとに分割する
指定名称のムービーを指定開始-終了時間の間を取り出して指定名称で保存 v1
Font Bookでfont collectionを作成する
Font Bookで指定文字列ではじまるfont collectionをすべて削除する
指定のフォントファイルをFont Bookに追加して情報を取得する
指定のフォントをFont Bookから削除する v3
フォルダ差分コピー
指定フォルダ以下のファイルやフォルダからラベルを外す
Font Bookで選択中のフォントを削除(Font Containerなしフォント、および複数選択対応)
フォント情報をSystem Profiler経由で取得する
ひらがなカタカナ変換
iLife 11のAppleScript用語辞書の変更点
AppleScriptObjCでハマったこと
数字桁漢字まじり日本語的数値表現テキストをparseする
Mobiolaで静止画像をキャプチャする
Mobiolaで静止画像をキャプチャ、ファイル名指定つき
Mobiolaでビデオ録画を開始、停止
Finder上で選択中のフォルダをdiskimageに(パスワード指定つき)
入れ子のリストから、指定アイテムの値が連続して同じ値で続くブロックを検出する
Terminal.appで指定コマンドを実行する
指定フォルダ容量をMB単位で返す_v2
Mac添付の赤外線リモコンのon,off_v2

Posted in 未分類 | 1 Comment

Blogアーカイブ本 vol.2を販売開始

Posted on 7月 16, 2018 by Takaaki Naganoya

ごく一部の愛読者の皆様からのご要望を受け、2018年1月のBlog消滅以前の内容を1年ごとにまとめた「Blogアーカイブ本」のVol.2を販売開始しました。Vol.2は2009年1〜12月の内容をまとめています。全367ページ、2,000円。ファイル形式はPDFで、キーワードによる全文検索や印刷が行えます。

→ オンライン販売ページ
→ お試し版ダウンロードページ

XcodeプロジェクトのダウンロードリンクやYouTubeのムービーへのリンクもきちんと反映し直しています。

続刊のボリューム感については、(最低でも)こんな感じです。

 vol.3:2010/1〜12(仮組みページ数:247)
 vol.4:2011/1〜2012/12(仮組みページ数:372)
 vol.5:2013/1〜2014/12(仮組みページ数:276)
 vol.6:2015/1〜12(仮組みページ数:320)

■Vol.2 掲載AppleScript(全184本)

Photoで特定のアルバムに入っている写真の枚数をカウントする
iPhotoで写真のファイル名に合致する写真を取得する
iPhotoで、複数名称による写真指定を行う例(できない)
Numbersでオープン中のドキュメントを数える
Numbersでウィンドウを数える(動作がおかしい)
Numbersでウィンドウの情報を取得する
Numbersのアプリケーションのプロパティを取得する
Numbersで書類を保存する
pdfinfoを使ってPDFのページ数をかぞえる
Numbersで統合された選択セルを元にもどす
CaminoでWindow 1の情報を取得する
Caminoで新規ウインドウで指定URLをオープン
CaminoでBookmarkを操作するテスト(駄目)
変数やサブルーチン名称に日本語を使用する
QuickTime Playerがバージョン7.6にアップデート
Xcodeでオープン中のプロジェクトで、ビルドターゲット「deployment」を使用してクリーニング実行後、ビルドを行う
入れ子のリストをフラット化v01
入れ子のリストをフラット化v02
入れ子のリストをフラット化v03
指定階層下で、指定クリエータコードのファイルを取得
SkimでPDFの各種情報を取得する
Skimで注釈(note)を削除する
Numbersで選択範囲を取得
Nunbersで選択範囲の値を取得
Numbersで指定範囲を選択
Preview.appで最低限のScript命令実行機能をイネーブルに
Excel 2008でX軸方向に右端から、データが存在しているセルをサーチ
GUI Scriptingによる記述(1)
Shade 10でレンダリングを行う
GUI Scriptingによる記述(2)
GUI Scriptingによる記述(3)
pdfinfoの結果をparseするv2
Shade 10でドキュメントを保存する
Shade 10で新規ドキュメントを作成
Shade 10でsceneをDXF形式で書き出す
リスト中で重複を検出する(大文字小文字を同一視)
Font Bookで指定フォントのファイルがどこに置かれているかを検知する
diskutilitiesで起動HDDのユーザー権限修復
Font Bookで指定typefaceの詳細な情報を取得する
アプリケーションに命令を行う記述方法で最短のもの
Safariのダウンロードフォルダを求めるv1
Safariのダウンロードフォルダを求めるv2
Safariのダウンロードフォルダを求めるv3
Safariのダウンロードフォルダを求めるv4
アドレスブックで表示中のPersonに画像をTIFF変換して読み込み
アプレットをコピーしてリネーム v2
指定文字列ではじまるプロセスをすべて終了させる
指定ファイルがバンドル形式のアプレットかどうかチェック
ソート用のカラムを生成する
複数リストの合成
version テスト
指定名称のプログラムを強制終了させる
数値を「時間」「分」でフォーマットしたテキストで返す
MacJournalでアプリのプロパティを取得
MacJournalで書類のプロパティを取得
MacJournalでキーワード検索状態を解除
MacJournalで選択中のjournal entryを取得する
MacJournalでjournalを選択UIを表示しつつ表示
MacJournalで任意のjournalをロックする(未遂)
国民の祝日を求めるv2
リスト中から重複項目をリストアップする
現在日時から曜日を番号で返す
リスト内のアイテムへの項目追加
contains/is inによる存在確認は、入れ子のリストに使えない
Photoshop Elements 6のAS辞書はPhotoshop CS3と同じ
入れ子のリスト内のis in/containsによる存在確認
某氏のtwitter上の発言を集めてテキスト化
twitter検索結果のJSONをparseする
6/13にTMUGのMeetingで新作「Moving Agency」をデモ
FireFoxでオープン中のURLを取得する
FireFoxでオープンしているURLを取得。Leopard対応版
郵便専門ネットでバージョン番号を取得
郵便専門ネットでXML-RPC経由でJISコード(5桁、6桁どちらでも)から、その市区町村に属している郵便番号のリストを取得
郵便専門ネットで道府県のコード(地方公共団体コードの先頭2文字)から都道府県名を返す
郵便専門ネットでXML-RPC経由で郵便番号に対応する世界測地系(WGS84)の緯度経度コード(Geocode)を返す
郵便専門ネットで一度に取得できるデータ件数を返す
郵便専門ネットでXML-RPC経由で引数に都道府県のJISコード(JISコードの先頭2文字)を渡すと、その都道府県に属しているJISコードを取得
郵便専門ネットでXML-RPC経由で郵便番号から住所を返す
郵便専門ネットで郵便番号の存在チェック
郵便専門ネットで引数に指定した郵便番号で何件ヒットするのかをint型で返す
郵便専門ネットでXML-RPC経由で郵便番号を6桁(チェックデジット付き)の全国地方公共団体コード/JISコード/市町村コードに変換
WordPress.comが受け取るXML-RPCのメソッド名一覧を取得する
ファイルの安全な書き出し
AppleScript Studioを念頭に置いたライブラリ整備
WordPressのBlogに画像ファイルをアップロード
Safariで表示中のページ内容をMacJournalの現在選択中のJournalにペースト
Diary++Xでアプリの情報を取得
Diary++Xでドキュメントの情報を取得
Diary++Xで指定カテゴリ内のアーティクルを取得する
XcodeでクリーニングしてビルドしてZip圧縮
指定月の第x指定曜日に該当する日付を求める(曜日数値指定対応)
国民の祝日を求める v4
指定年月の祝日の日を数値のリストで返す
Twitterrifficで選択中の発言の時間をGrowlで表示。アイコン付きで
URL Access Scriptingにファイル名の32文字制限が
Twitterifficで選択中の発言の時間をGrowlで表示。アイコン付きで v3
AppleScriptで開発を行うユーザーアカウントにATOKは禁物
Google Chrome BetaがAppleScriptに非対応
国民の祝日を求め__指定期間に該当するものを返す
もんのすごいざっくりな元号計算ルーチン
指定月のうち、日曜日に該当するものを日付だけ返す
1年間の各週の開始日と終了日を求める(月曜日はじまりカレンダー)
ファイル名文字列から拡張子のみ取得する
日曜日はじまりのカレンダーで指定月が何週分あるか行数を数える
指定年の各月の開始日と終了日を算出する
指定フォルダ内の指定種別(kind)のファイル一覧を取得
指定アプリケーションのAppleScript予約語をリストアップ
メールの返信文1行目のテキストからメールアドレスを抽出する v1
メールの返信文1行目のテキストからメールアドレスを抽出する v2
メールアドレスチェック
Snow Leoaprdでスクリプトエディタが「AppleScriptエディタ」に
Snow LeoaprdのAppleScriptに関するリリースノート
Snow LeopardのAppleScriptに関するリリースノート(2)
指定フォルダ内の指定種別(kind)のファイル一覧を取得
指定アプリケーションのAppleScript予約語をリストアップ
メールの返信文1行目のテキストからメールアドレスを抽出する v1
メールの返信文1行目のテキストからメールアドレスを抽出する v2
メールアドレスチェック
Snow Leoaprdでスクリプトエディタが「AppleScriptエディタ」に
Snow LeoaprdのAppleScriptに関するリリースノート
Snow LeopardのAppleScriptに関するリリースノート(2)
リスト中の要素の存在確認(10.6以降)
10.6でtext item delimitersがリストで指定可能に
QuickTime PlayerのXと7を区別して命令を発行する
Diary++Xで最近の日記本文をもとに今日の日記を新規作成する
Diary++Xで最近の日記本文をもとに今日の日記を新規作成する v2
9/19にホスティングサービス側の都合で5分間ダウン
Diary++Xで最近の日記本文をもとに今日の日記を新規作成する v3
Sin Cos演算ルーチン
AppleScriptObjCのドキュメント公開が開始される
リスト中の要素の存在確認(10.6以降)
10.6でtext item delimitersがリストで指定可能に
QuickTime PlayerのXと7を区別して命令を発行する
Diary++Xで最近の日記本文をもとに今日の日記を新規作成する
Diary++Xで最近の日記本文をもとに今日の日記を新規作成する v2
9/19にホスティングサービス側の都合で5分間ダウン
Diary++Xで最近の日記本文をもとに今日の日記を新規作成する v3
Sin Cos演算ルーチン
AppleScriptObjCのドキュメント公開が開始される
Mail.appの指定メールボックス内に任意のメールボックスを新規作成 v2
テキストによるプログレスインジケータ作成 v2
LateNight SoftwareのMark Alldrittが自社製OSAXの64ビット非対応について言及
whoseによるフィルタ参照
Cyberduck 3.3b4がAppleScriptに非対応
全角文字から半角文字への置換
System EventsでDockの設定を取得、変更する
Diary++X v1.1以降で日付を指定して日記アーティクルを作成
Xcode 3.2.1でAS用語辞書が大幅拡充
URL形式の文字エスケープを行う
リスト中に入っている指定要素をサーチして、合致した出現アイテム番号を返す
指定文字列の中に特定の文字が何回出現するかをカウントして返す
InDesign CS3のuser interaction levelを取得、設定する
テキスト中の任意の順番の文字取り出し Mac OS X 10.4.11への対応
Xcode 3.2.1でアプリケーションの情報を取得する
Xcode 3.2.1でプロジェクトの属性情報を取得する
10.5以降でRemote AppleEvent操作時にdisplay dialog等を使えない
AppleScriptの文字列比較(1)
AppleScriptの文字列比較(2)~considering, ignoring
AppleScriptの文字列比較(3)~濁点/半濁点の考慮/無視指定
AppleScriptの文字列比較(4)~日本語の大文字/小文字
AppleScriptの文字列比較(5)~句読点の考慮/無視
等号つき不等号の同義語
System EventsでScreen Saverの設定にアクセスする
Web共有がオンになっているかどうかを検出する
AppleScriptObjC-Dev MLが新設された
System Events経由でQuickTimeムービーにアクセスする2
System Events経由でQuickTimeムービーのannotationにアクセスする
擬似的にPropertyファイルを使ってカウントアップ
cyberduckでファイルのアップロード
AppleScriptObjc 3分間クッキング
指定の大きさでカラのリストを作成する
クリップボードに入っている情報の改行を外してクリップボードに書き戻す
PlistファイルをParseして返す
選択したアプリケーションのInfo.plistを読んで、実行バイナリの名称を取得する
オブジェクトの複数同時指定
指定フォルダ中のファイルを消してフォルダだけ残す
指定フォルダの中のフォルダをオープン
Excel選択範囲から各種文字列長のデータをピックアップ v6
Photoshop CS3で指定エリアを切り出して新規保存
指定値を構成するペアの全パターンのリストを求める
連続する文字(たぶんスペース)を1つにまとめる
指定文字列の中に指定文字が何回出現するかカウントする
伏せ字文字列を返す
指定日に在任中の内閣総理大臣の氏名を取得 v2

Posted in 未分類 | Leave a comment

noteのオンラインマガジン「猛者」に新規Noteを寄稿(4)

Posted on 7月 11, 2018 by Takaaki Naganoya

オンラインマガジンApp Engineer Journal “猛者”(モサ)に「Appleを倒すメーカーを作ってみよう」「Apple Watchの打倒のしかた(上)」を寄稿しました。

Posted in 未分類 | Leave a comment

Blogアーカイブ本 vol.1を販売開始

Posted on 7月 9, 2018 by Takaaki Naganoya

ごく一部の愛読者の皆様からのご要望を受け、2018年1月のBlog消滅以前の内容を1年ごとにまとめた「Blogアーカイブ本」のVol.1を販売開始しました。Vol.1は2008年3〜12月の内容をまとめています。全418ページ、2,000円。ファイル形式はPDFで、キーワードによる全文検索や印刷が行えます。

→ オンライン販売ページ
→ お試し版ダウンロードページ

2014年以前の巻については、Cocoaの機能をほとんど使っていないので、Cocoa Scriptingについてはわからないとか、Cocoa Scriptingになじめない方には「Cocoaを使わないやりかた」が説明されている、現時点では数少ないまとまった参考文献になるはずです。

続刊刊行スケジュールについては、「できた分から」としか言いようがありませんが、各巻のボリュームについては、

 vol.2:2009/1〜12(仮組みページ数:332)
 vol.3:2010/1〜12(仮組みページ数:247)
 vol.4:2011/1〜2012/12(仮組みページ数:372)
 vol.5:2013/1〜2014/12(仮組みページ数:276)
 vol.6:2015/1〜12(仮組みページ数:320)

といったところです。価格は一律2,000円です。当初は日本語版だけですが、英語版も出せるといいですね。Vol.5/6については、Cocoa Scriptingがわからないと手が出しづらいので、Cooca Scriptingの入門資料を添付することも検討中です。

■Vol.1 掲載AppleScript(全262本)
5桁の乱数を生成
指定アプリの存在確認
BSDサブシステムの存在確認
リストから重複部分を除外(ユニーク化)
春分の日と秋分の日を求める
自分の(インターネットアクセス時の)IPアドレスを調べる
起動中のアプリのうちScriptableなものをリストにして選択
起動ディスクの空き容量を返す
リストの内容を乱数でシャッフル
CPUのクロック数だけを求める
与えられたリストから、値がヌルの要素を削除して返す
最小値を取得する1
最小値を取得する2
最小値を取得する3
文字列中の最長Wordを返す
リストをテキストに
リストのスイープ
Automator集計
chooseFromListでアイテム番号を返す
OSのバージョンを求める
リストを任意のデリミタ付きでテキストに
文字列のアルファベットチェック
拡張子を取得する
日本語URL Encoding
指定年月の長さを求める
指定文字を置換(リプレース)
国民の祝日を求める
時分秒をシステム設定と関係なく一律に取得
プロセス名一覧を取得
指定フォルダまで強制的に作成
指数表示数値を文字列化
Safariの選択部分のテキストを取得する
各種情報取得
デフォルトの出力先のプリンタ名称(キュー名称?)を取得
リストをタブ区切りのテキストに変換
MacのハードウェアのシリアルNoを取得
BluetoothのOn、Off
リスト中の指定要素をサーチして削除して返す
ACで動いているかDCで動いているかを取得する
指定クリエータのアプリケーションの情報を返す
最前面のFinderウィンドウのアイコンサイズを取得する
リスト中の全要素が同じかどうかをbooleanで返す
指定矩形内に含まれるデータをリストで返す
URLエンコードされたファイルパスを元のテキスト(POSIX Path)に戻す
Desktop Windowの大きさを取得してメインモニタの大きさを得る
RSS用のRFC822形式の日付を返すv2
OSのバージョンを求める5
ユーザー名をLong Formatで取得する2
リスト内のアイテムへの項目追加
リスト項目の並べ替え
指定のiDiskをマウントする
OSのバージョンの2桁目(メジャーバージョン)を取得
イベント継承実験1
文字列中のピリオドの個数を数える
ISO形式の日付をdateオブジェクトに
twitter.comの更新
Zipでフォルダ構造ごと圧縮
指定キーワードの出現回数のカウント
System UI Soundが有効になっているかどうかをチェック
指定桁でゼロパディングしたファイル名を返す
set the beginning of
データのhexダンプ_v2
entire contentsをalias listで取得する
10.4.9〜10.4.11でバージョンが10.4.9と返ってくるバグを回避するOSバージョンの取得方法
今日の日付をYYYYMMDDで求める
指定文字列を指定バイト数以内に収める
画面のサイズを取得するらしい
リストのCSV書き出し
list sort
インターネット接続確認
ファイルの各種情報を取得する
指定の文字エンコーディングでファイル書き出し
1月分のワークログ作成(祝日反映版)
1月分のワークログ作成(iCal連携Ver)
Omni Outlinerでドキュメントの全行削除
クリップボード中のテキストから、行単位にトピック作成
最前面のOmniOutliner書類をDHTMLでデスクトップにExport
Terminalで同じパスの画面をもう1枚ひらく
ターミナルのcurrentをFinderでひらく
Finderの最前面のパスをTerminalで開く(強化ver4)
iPhotoで選択中の写真をデスクトップピクチャに設定
Finderで作成したZipアーカイブを展開してオリジナルのアーカイブを削除する
指定ファイルがTIFFで128×128であれば、icnsファイルに変換する
10進数をn進数文字列に変換する
自分用のtempoary folderをtmporary items foder(user domain)に作成する
指定のAutomator Workflowのファイルを実行する
File Busyが解除になるのを待つ
指定プロセスの可視_不可視切り替え
文字列の前後から別々の文字を指定してトリミング
Menu Xtraに入っているアイテムの一覧を取得する
再帰でファイルをカウント
parseByDelim:指定デリミタで文字列をリストに変換
OSバージョンの各桁を求める
警告を出しつつ再起動
時間フォーマットをhh-mm-ssからsに変更
GUI Scriptingをenableに
GUI Scriptingをdisableに
ワイヤレスキーボードのバッテリ残量を得る
指定フォルダ内に指定ファイルが存在するかどうかをチェック
OSのバージョンを求める2
OSのバージョンを求める3
OSのバージョンを求める4
OSのバージョンとビルドNoを求める
対象文字列の中で、特定の文字以降を取得
Front Rowが実行中かどうかを調べる
iCalでReadOnlyではないカレンダーの番号を取得
指定のタグを外す
数字の間に入っているゴミを除去
アルファベットを大文字 or 小文字に変換する
アルファベットの大文字か小文字かを検出する
電池容量を取得
iTunesでどこのIPからライブラリを共有されているかを検出
印刷可能なプリンタ一覧から選択してプリント実行
指定のAutomator Workflowのファイルを実行するv2
Dockの制御
Skypeのバージョンを求める
Skypeで接続状態を取得する
Skypeで指定IDの人に音声コール
Skypeでチャットメッセージを送信
Skypeで最近のチャットメッセージをリストアップ
Skypeでユーザー権限を取得
Skypeでフレンズを検索
Skypeでセルフテスト
Skypeでオンライン中の人間の数を取得する
Skypeでオーディオ出力設定を取得
SkypeでUser Statusを求める
SkypeでStatusを変更
SkypeでP-STNの状態を得る
Skypeでauthentication待ちのユーザーをリストアップ
Google Earthで現在表示中の画面のスクリーンショットを撮るv1
Google Earthでバージョン情報を取得
日本語入りテキストのURLエンコーディング
Systranで翻訳
Mail.appでAccountの情報を取得する
Mail.appで新着メールを確認する
Mail.appで新着メールの確認インタバルを変更する
Mail.appで選択中のメッセージから迷惑メールフラグの状態を取得する
添付ファイルのダウンロード先を求める
選択中のメッセージの実ファイルが存在する場所を取得するv3
URL Access ScriptingでDL
GUI Scriptingの確認
JPEG画像の破損チェック
Safariの選択部分のテキストを取得する
SafariでオープンしているWindowをすべてクローズする
指定文字列の中に指定リストの各アイテムが含まれているかをチェック
rmコマンドで指定フォルダ内のファイルの強制削除
modemでダイヤルする
modemでダイヤルする2
エイリアスをDockに追加する
入り組んだリストの中に指定要素が存在するかどうかをチェック
指定の名称およびバージョンに該当するアプリケーションプロセスが起動しているかどうかをチェック
Database Eventsでパスを指定してDBを作成する
Database Eventsを終了する
Database EventsのQuit Delayを指定
Database Eventsで、すべてのDBをクローズして終了
Database Eventsで、既存のDBを指定してオープンする
Database Eventsを起動して、オープン中のDBを数える
画像の縦長横長を見てフォルダ仕分け
リストをレコードに
レコードから特定要素を取り出し
Safariのウィンドウを画面いっぱいに拡大する
スクリプトエディタ上のキャレットがある行に、ファイル名をコメントで展開
指定文字列の中に指定リストの並びが含まれているかをチェック。含まれていたら起点のアイテム番号を、ない場合にはfalseを返す
指定文字列の中に指定リストの並びが含まれているかをチェック。含まれていたら起点のアイテム番号を、ない場合にはfalseを返す v2
テキストから余計な空白行を削除する
リストを任意のデリミタ付きでテキストにv2
画面スナップショットのファイル形式を変更
Acrobat Professionalでしおりを作成(文字化け)
Pagesの最前面のドキュメントを閉じてラベルを付ける
Acrobat Professionalでしおりを数える
Acrobat Professionalでしおりを全消去
Acrobat Professionalで指定ページに移動
フォルダ同士の内容比較
ファイルのMac OS形式のフルパスのテキストから、ファイル名のみを取得
バージョン番号文字列からメジャーバージョンのみ取り出し
クリエーターコードを指定してアプリケーションを起動する
QuickTime Playerで録音を開始する
QuickTime Playerで録画を開始する
ヨドバシ.comのWebの画面に表示されている200×200ピクセル以上の画像をダウンロードする v2
指定アプリのメインウィンドウのサイズを返す
指定フォルダ内の指定ファイルを削除
真偽値の反転
指定のディスクイメージが暗号化されているかどうかを判定する
ファイルのコピーをshell scriptで実行
uuidgenでユニークな(重複のない)文字列を取得
アクティブウィンドウのアクティブセルの値を取得
現在の列のセル幅を変更する
現在の行のセルの高さを変更する
空のplistファイルを指定パスに作成する
空のplistファイルを指定パスに作成するv2
PDFのページ数を数える
dateコマンドから生成した日付テキストから、ASのdateオブジェクトを生成する
active cellが属するentire rowを取得する
Unionコマンドで複数の範囲を同時に使う
条件を指定してセルを抽出する
指定セルの値を取得/設定する
セルの文字列を取得する
Bubble Sortでリストをソートする
Insertion Sortでリストをソートする
挿入ソートを入れ子のリストに対して行う(ソートキー項目指定つき)
シェルソート
shell sortで入れ子のリストをソート
奇数かどうかチェック
曜日リストの並び順をチェック
曜日リストの並び順をチェック v2
iCalに「日本の祝日」を追加
MindManagerで、ルートトピックを選択状態にする
Excelで、バージョンに依存しないで選択範囲のデータ取得
指定の数値リストを作成する
データが数値かどうか調べる
カレンダーのインクリメント/デクリメント
ポップアップメニュー項目の高速生成
MACアドレスを取得する(Mac OS X 10.5のバグ回避版)
指定日に在任中の内閣総理大臣の氏名を取得
数値テキストに対して指定桁ごとにセパレータ文字を入れる
リストから選択してアイテム番号を返す
リスト中の複数の指定要素を削除して返す
1年分のカレンダーリストを作成
1年分のカレンダーリストを作成して指定日が何週目かを求める v1
1年分のカレンダーリストを作成して指定日が何週目かを求める v2
1年分のカレンダーリストを作成して指定日が何週目かを求める v2.1
DragThingで表示しているDock名称を取得する
DragThingの特定のDock中で現在選択中のレイヤーを求める
DragThingで、最前面のDock上で現在選択されているレイヤーの名称を返す
リストの一部を取り出す
デスクトップ上のピクチャファイルを指定フォルダに移動
Keynoteでslideの情報を取得する
10.5で(登録してある)プリンタ名称の一覧を取得するv1
10.5で(登録してある)プリンタ名称の一覧を取得するv3
ColorSync Scriptingで各種情報を取得
アドレスブックで所有者の情報を取得する
アドレスブックで選択中のPersonの情報を取得する
FM v7〜9で、オープン中のデータベースを数える
オープン中のデータベースの中にあるテーブル数を数える
オープン中のデータベース中のテーブル1にあるフィールドを数える
オープン中のデータベースのレイアウト(画面)を数える
オープン中のデータベースのレイアウトの名称を取得する
オープン中のデータベースで条件検索(複数条件)
オープン中のデータベースでソート
Microsoft Office 2008用の「VBAからAppleScriptへの移行支援ガイド」が公開
10.5で暗黙のキャストが行われなくなった例(getMLen)
OmniPlanでWindowの情報を取得する
OmniPlanでドキュメント内のプロジェクトを数える
リストの重複項目を除去、リスト2つ同時バージョン
Excel v.Xで新規ドキュメントを作成して任意のワークシートを作成
Excel v.2004/2008でウィンドウの最大化
Excel v.Xで最前面のウィンドウを最大化する
Excel v.2008でウィンドウ枠の分割を固定
International Settingsの言語で第一優先になっているものを取得
指定フォルダにあるテキストとZipアーカイブのリストを取得。エイリアスで v0
指定フォルダにあるテキストとzipアーカイブのリストを取得。エイリアスで v1
指定フォルダにあるテキストとzipアーカイブのリストを取得。エイリアスで v2
度数分布のテキスト出力
指定フォルダにある特定のラベル(複数)のファイルのリストを取得。エイリアスで
MindManagerで、ルートトピック以外のトピックをすべて取得
指定フォルダにある特定の書類種別(複数)のファイルのリストを取得。エイリアスで
特定の文字ではじまるリスト要素を削除して返す
与えられたURLからファイル名を取り出す
単純ダウンロード
クリップボードに入っているURLのファイルをダウンロード
POSIX pathからクォート記号を除去する(unquote)
ファイル名から拡張子を外す

Posted in 未分類 | Leave a comment

Bash In Tokyoで音声認識コマンドプログラムをデモしてきました

Posted on 6月 17, 2018 by Takaaki Naganoya

6月15日(金)に渋谷で行われた「Bash In Tokyo」にて、急遽作成した音声認識コマンド実行プログラムをデモしてきました。

macOSの「音声認識コマンド」と「音声文字入力」の中間のような動きをしていて、シソーラス辞書(同義語辞書)を搭載しているため、パラメータの表現の「ゆらぎ」を許容する構造になっています。

GUI部分はXcode上のAppleScriptのプロジェクトであり、呼び出されるコマンド側も(編集可能な)AppleScriptのファイルです。現段階では、コマンド側のAppleScriptのファイル名にコマンドとパラメータを記述してあり、音声認識したテキストを形態素解析して、コマンドやパラメータに該当する品詞の単語をピックアップし、コマンド側の単語とのマッチングを行います。

本プログラムを作成する前に「Web APIでチャットボットなんか使えば楽をできるのでは?」と考えて調査はしてみたものの、結論からいえば「雑談暇つぶしボットぐらいしかできない」という印象でした。お金をかけて作り込めばMicrosoft Bot Frameworkにしても、NTT Communicatins 「COTOHA」にしても使えるとは思うのですが、特定のコマンドキーワードを認識したあとは急に業務系アプリっぽい挙動になったり、コマンド実行の演出とかはとくにないので、「自分で作ったほうがマシ」だということに、、、、デモの前日に気づきました。

# つまり、プログラムのコア部分は1日かけずに作ったという、、、、

もうちょっと調整して何かのデモに使ってみたいところです。

Posted in 未分類 | Leave a comment

サーバーの移行を行います

Posted on 6月 12, 2018 by Takaaki Naganoya

移行前

Blogのサーバー移行を行います。2018年2月にWordPressの新バージョンに移行した後から、Blogの応答パフォーマンスが低下してきているので(大きな画像をWordPressまかせでサムネール作成させて表示しているのが問題なのか、WordPressそのものに問題があるのか)、高速なサーバーへの移行を行います。

放っておいても8月ぐらいには自動で移行というスケジュールのようですが、またホスティング会社側に全部おまかせで行うと、トラブルが発生すること必至です(状況をまともに説明する能力がないようなので、期待していません)。

なので、一括移行のタイミングよりも前のタイミングで移行の実験を行います。さっそく、1月末のトラブル中に作成したMySQLのユーザーアカウントのうちの1つのパスワードが読み取れないといったエラーが報告されました。

実験用に作成したアカウントだったのでアカウントごと消しましたが、ホスティング会社のWebフォーム上のメニューから作成したアカウントがホスティング会社側のプログラムから読み取れないとは実におかしな話です。

今回のサーバー移行は、同じホスティング会社の古いサーバーから、新しい高速(といわれる)サーバーに移行します。つまり、古いサーバーよりも新しく調達したサーバーの方が仕様的に上なのでアクセスが快適になる、、、、、、という話なのですが、実際に移行してみないとわかりません。

移行後

実際に移行してみましたが、とくに何も問題はないようです。ただ、サーバーを移行してもWordPressの応答速度がたいして上がらなかったので、WordPressのプラグインを外しまくりました。

プラグインによってずいぶんパフォーマンスが落ちていたようです。いまはかなり快適に? つまり、サーバー移行自体はあまり関係なかったようなのですが、あとでモメなくてよかった程度の話でしょうか。

ホスティングしているサーバーのアップデートが計画されているようですが、1台あたりの収容ユーザー数を増やせば、数値どおりのパフォーマンス向上を体感することは難しいことでしょう。

Posted in 未分類 | Leave a comment

Post navigation

  • Older posts

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

Google Search

Popular Posts

  • Numbersで選択範囲のセルのデータを取得して重複データを抽出
  • Keynoteの最前面のドキュメントの現在のスライドに指定月の日曜日はじまりカレンダーを表で作成
  • 指定フォルダに指定アイコン画像をつける v3
  • AppleScriptでキースキャン
  • front document
  • 配列の指定要素を検索する(テキスト)
  • 【基礎】AppleScriptの実行を(操作により)中断する
  • スリープおよびスリープ解除Notificationを受信
  • Numbersで選択中の表のセルの範囲を背景色で頻度集計
  • CotEditorで編集中のMarkdown書類をPDFプレビュー
  • SafariでURLをローディング
  • AppleScript上でJavaScriptを実行する
  • なんでもデータを文字列化 v2
  • 文字置換 v2
  • NSProcessInfoでプロセスの各種情報を取得
  • PSPDFkitのじっけん
  • ファイルパスの変換(Alias→POSIX path→NSURL→POSIX path→file→Alias)
  • 画面上の指定座標にマウスカーソルを強制移動させてクリック
  • Xcode 12.2betaでIntel/ARM Universal Binaryのビルドを確認
  • Evernoteがv10.0でElectronベースのWebブラウザ的なアプリに

Tags

10.11savvy (1109) 10.12savvy (1249) 10.13savvy (1384) 10.14savvy (504) 10.15savvy (295) 11.0savvy (103) CotEditor (47) Finder (43) iTunes (25) Keynote (58) NSAlert (59) NSAlertSecondButtonReturn (16) NSArray (50) NSBitmapImageRep (20) NSBundle (19) NSButton (33) NSColor (48) NSDictionary (26) NSFileManager (23) NSFont (18) NSImage (40) NSJSONSerialization (20) NSMutableArray (61) NSMutableDictionary (21) NSPredicate (36) NSRunningApplication (55) NSScreen (30) NSScrollView (22) NSString (113) NSURL (93) NSURLRequest (22) NSUTF8StringEncoding (29) NSUUID (18) NSView (33) NSWindow (17) NSWorkspace (19) Numbers (42) Pages (16) Safari (34) System Events (16) WKUserContentController (20) WKUserScript (19) WKUserScriptInjectionTimeAtDocumentEnd (17) WKWebView (21) WKWebViewConfiguration (21)

カテゴリー

  • AirDrop
  • AirPlay
  • Animation
  • AppleScript Application on Xcode
  • Bluetooth
  • boolean
  • Bug
  • Calendar
  • call by reference
  • Clipboard
  • Code Sign
  • Color
  • Custom Class
  • dialog
  • drive
  • exif
  • file
  • File path
  • filter
  • folder
  • Font
  • GAME
  • geolocation
  • GUI
  • GUI Scripting
  • History
  • How To
  • Icon
  • Image
  • Input Method
  • Internet
  • JavaScript
  • JXA
  • Keychain
  • Language
  • list
  • Locale
  • Machine Learning
  • Markdown
  • Menu
  • Metadata
  • MIDI
  • MIME
  • Natural Language Processing
  • Network
  • news
  • Noification
  • Notarization
  • Number
  • 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
  • RTF
  • Sandbox
  • Screen Saver
  • Script Libraries
  • sdef
  • search
  • Security
  • shell script
  • 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)
  • 未分類

アーカイブ

  • 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
Proudly powered by WordPress
Theme: Flint by Star Verte LLC