Safari + JXA

STORES やなんかもそうなんですが、意外とかゆいところに手が届きません。

Yahoo! Auctions なども、API で出品できるようにするといっていたのですが、問い合わせたら、できなくなりました、ということなので、ブラウザの側をスクリプトで制御して、決まった動作を(半)自動化しているのですが、今までは AppleScript で行っていたので、AppleScript と JavaScript、更に shell とのちゃんぽんだったわけです。

別に動いているものを特に書き換えるつもりもないのですが、最近覚えるよりも忘れるほうが早いので、なるべく単一の言語でやりたい、というのがありまして、重い腰を上げて JXA なるものを初めてみました。

というわけで、かなりの人にどうでもいいネタだと思いますが、備忘録として。

Imperia Online という村ゲーをしているのですが、これの特定の村を表示するスクリプトを書いてみました。
いや、ブックマークが 20 件までしか登録できないので、不便なので。

参考にしたのは、この辺り。

動作的には、Safari のすべてのウインドウを取得して、ウインドウの中にぶら下がっているすべてのタブを巡回し、URL をマッチして目的のタブを調べる、という部分、あとは、そこで取得したタブに対して、JavaScript を実行する、という部分で成り立っています。

例えば、Yahoo! Auctions で発送作業をしようと思った時など、発送情報が開かれているタブと、クリックポストの発送入力画面が開かれているタブと、その両方を取得して、それぞれで doJavaScript をすれば、通常できないクロスサイト・スクリプティングが簡単に可能になり、スクリプトメニューにそういうよく使うスクリプトは登録しておくこともでき、また、所詮はスクリプトですから、サイト側のデザイン変更などにも容易、かつ、迅速に対応ができるわけです。

ところで、今のところのハマっている部分。

いちいちエラー画面を出すのがイヤなので、通常は、say を使って喋らせているんですが、うまくいかないんですよね。
多分、Accessibility の権限設定が間違えているんだと思うんだけど。

こちらで参考にしたのは、openspc。
一体何年お世話になりっぱなしなんだろう。

MacVim も動かなくなっているし。。。

午前中、ウッドバッグ 3 つ分、割ったところでお昼になったし、ウッドバッグ自体がなくなったので、撤収。
暑いので 3 時くらいまで、RCS の件もあるし、いろいろ Mac の掃除をしようと思っています。

Screenshot 2016-05-22 12.52.12このところ、まともに開発してなかったのがばればれって感じですが、MacVim もいつのまにやら動かなくなっていて、面倒くさいので Terminal.app でゴニョゴニョしていたんですけど、そろそろアップデートしたほうがいいんじゃないかと思いまして、久しぶりに新しいのを落としました。

起動しようとしたら、can’t opened because it is from an unidentified developer と起こられて、強制終了です。
そういや、そんな機能がいつの間にか実装されてましたね。

まあ、System Preferences → Security & Privacy → General で Allow apps download from: を Anywhere にして起動しましたが、Open Anyway を押しても、シカトされるのはどういう具合でしょうか?

とりあえず、MacVim が起動することを確認後、Mac App Store and identified developers に戻してみたんですが、一度起動したものは覚えていて、起動拒否はされませんでした。

いやまあ、普通に vi(m) を Terminal で使ってもいいんですけど、:vert diffs とかするときに、ウインドウをでかくしたいじゃないですか。でも、Terminal がそんなにでかいと邪魔ってのがあるので、MacVim を使いたいわけですけど、まあ、かなりどうでもいいレベルの話ではありますね。

そういや、MacVim には Sparkle が組み込まれているんですけど、実際のところ、差分でアップデートするほどのサイズじゃないと思うんですけど、そんなことよりも、iOS の方は、こういう差分アップデート機能というのはないんでしょうかね?

実際問題、facebook だとかのアプリだと、結構な容量があるわけで、ユーザ数も多いと思うんですが、丸ごと更新しているように見えます。

1MB あたり、1円くらい通信費がかかるので、100MB だと 100円もかかるんですが、WiFi でやればいいやということなのかどうなのか知りませんけど、昔のことを思えば、もうちょっと何とかしたらどうかと、常々思っています。

App Store の仕組みを知らないのでなんともですが。

El Capitan で RCS が行方不明な件

ついに引導を渡された、ということでしょうか。

RCS って、確かに化石みたいなもんだけど、生きている化石だと思ってたんですけどね。

vi 並にしぶとく。

まあ、ポンコツのオッサンに今更新しいことを覚えろというのが土台無理な話なわけで。

時代的には、一人が 1 ファイルだけのコードのバージョン管理って、何でやるんですかね?
RCS でいいでしょ、RCS で。

MacPorts も入れてあったと思ったんだけど、そっちの使い方自体忘却の彼方。

$ which port
/opt/local/bin/port

ということで、入って入る模様。

$ port selfupdate
Warning: Your developer_dir setting in macports.conf points to a non-existing directory. Since this is known to cause problems, please correct the setting or comment it and let macports auto-discover the correct path.
---> Updating MacPorts base sources using rsync
Error: /opt/local/bin/port: port selfupdate failed: Error synchronizing MacPorts sources: command execution failed

う、めんどい。

今日は電話案件があったので起きてたんですが、もういい時間なので、さっさと寝たいと思います。

STORES の管理画面がリニューアルされた件

雑貨屋 Hearth & Home 暖炉家(暖炉屋) は STORES という個人のお店用のサービスを使って営業しています。

こういうサイトを一から作るのはそれなりに手間隙がかかるわけで、売れるかどうかもわからない状態で、コストを掛けることはできないし、拙速に行こうということで、サービスが始まった当初に登録して、1 年くらいは開店休業状態だったんですが、2 年ほど前から、本格的に活動を始めたわけです。

ヤフオクも手数料が跳ね上がったので、今までどおりの価格では出品できなくなったのと、簡単取引の仕組みが導入されたたため、すべての出品を一度終了していたのですが、自動出品機能も STORES のほうが変更になったので機能しなくなっていたので、雨で外の仕事ができないので、ごそごそとプログラムを書き直しました。

ほとんど備忘録ですが、JavaScript で変数の汚染の問題があったんですが、とりあえず、無名関数を使って対処するようにしました。

それはそうと、いろいろ調べ物をしていて、今頃知ったんですが、JXA といって、Mac の操作が JavaScript からできるようになっているようです。

Illustrator とかも、JavaScript で自動化できるようですし、Safari 自体も、コンテンツを JavaScript で外部から云々すれば、クロスサイトでの処理も、上の join のようなブサイクなことをしなくても済むので、かなりコーディングが楽になりそうです。

勉強してみようと思いますが、その前に、Raspberry Pi、届いているんですが、micro SD のアダプタがないこと、HDMI で繋がるディスプレイがないこと、この 2 点でテンションが下がって、放置プレイ中です。

忘れるほうが早い年代になってきましたので、忘れないうちにこっちにも時間を割いていこうと思います。

いきなり 3.8 倍速

結局、昨日は昼ごろにうとうとしてしまいました。。。
まあ、台風で仕事にならなかったんで、それそれで悪くなかったんですが。

出典 http://121ware.com

出典 http://121ware.com

で、このところ無線 LAN の具合が悪くて、ストレスがたまってるって この前書いた件 ですが、結局、当初の予定通り、WG1200HP を購入しました。

ブリッジモードにスイッチを切り替えてつないだだけ。

画像で見るとコソコソ大きさがあるのかと思ったんですが、手のひらサイズで、今まで使用してきた WR8165N に比べて薄くなっているので、容積でいえば、かえって小さいくらいに感じました。

壁掛けなどもできるようになっているし、付属するケーブルも短くて、そこは無駄がなくていいようにも思うんですが、ただ、ケーブル自体は太いし、AC アダプタのコードは長いので、うちの場合は、イーサネットはコンセントに埋め込んであるので、アダプタの方のケーブルがタップリと余っちゃってますね。。。
まあ、コード類の長さはどれくらいが最適なのか、というのは永遠のテーマでしょうが、アダプタの場合は、LAN ケーブルとは違って、短くてもそのへんで売ってない、というのがあるから必然的に眺めにせざるをえないのでしょうね。

さて、肝心の速度の変化です。

アップロードは元からストレスは感じていなかったんですが、ダウンロードが 27.84Mbps → 106.2Mbps と 3.8 倍ほど速くなりました。

ネットからの転送なので、ローカルでの転送だと、もっと差がつくかもしれませんね。

iPad でのビデオの視聴なんかも、試してみた範囲で、もたつく印象もすっかりなくなりました。

Mac で通信が時々できなくなる症状も、昨日の晩に届いて設置してから、という限られた時間の中では今のところは発生していません。

今回の件では、新しい規格も出て、速度が上がったりもあるし、毎日使うものでもあるので、やはりある程度の間隔で更新したほうがこういうインフラは良い、と思い強く感じました。

仮に 3 年使ったとすれば、電気代と合わせるとだいたい 12,000 円くらい、月 320 円、一日 11 円ってことになりますね。
高いか安いか、微妙ではあるんですが、ネットの回線の月々の料金はもっとするわけなので、そこそこ快適に使わないと、意味が無いですね。

そういう意味では、iPhone も 2 年になるし、Mac も 2 年くらい経つのかな?
まあ、iPhone は 7 になるまで粘ろうと思うし、Mac も全く不満はないので、今すぐって気は全くないんですが、そろそろ検討を始め他方が良さげです。
当然、お金も貯めておかないとなんで、コツコツ行こうと思います。

無線 LAN の具合が悪い件

出典 http://121ware.com

出典 http://121ware.com

自宅では、NEC の WR8165N を使っています。

この機種をチョイスした理由なんですが、消費電力が最大 3W と非常に少ないこと、そして中継機能があることです。

神社では、Apple の AirMac を使っていたんですが、寿命で 1 台壊れたため、安価な WR8165N に置き換えました。

しかし、社務所は基本的にスチール製の雨戸を閉めてあるため、電波が飛びづらく、親機をハイパワータイプに交換し、余ったものを自宅で使っていたんです。

が、最近、たまに途切れるようになりました。
特に Mac Book Pro が切れるので、ネットで検索して、書いてあることは試してみたてはいるんですが、劇的に改善ってことはないんです。
ただ、気のせいだか、10.10.5 (14F27) にしてからは、切れなくなった気もしないでもない。

神社では、同じ WR8165N を使っていますし、そちらは環境が中継なのですが、問題が発生していないことから、原因は、個体の問題と思うので、新しく買い直そうかと思っているんですが、結構、種類が多くて悩みます。

出典 http://121ware.com

出典 http://121ware.com

今のところ、WG1200HP が最有力候補で、価格はざっと調べたところ、コジマ Yahoo! 店 で 7,460円 が T ポイントを考慮すると最安でした。

WG1200HP は、WG1200HS よりも若干高いのですが、中継機能があり、最大 3 世代まで中継できる、つまり、親 → 子 → 孫 → ひ孫、ということで、神社で使うとしても、境内をほぼ確実にカバーできる能力があるのが魅力です。

最上位モデルの WG2600HP はとても高速っぽいんですが、本体の価格も高く、それと同時に消費電力も 32W にもなります。

32W だと、1 年間で 280kWh も電気を消費します。1kWh を仮に 25 円としても、7,000 円ほど電気代がかることになるわけです。
製品の寿命を 3 年程度と考えると、概ね電気代は、端末の市場価格と同程度、ということになるので、高い端末は、その後も高いので、本当に必要な性能かどうか、よく考える必要がありますね。

そういう意味では、自宅では、WG1200HP でも過剰かなとは思うんですが、昔買って放置してあった nasne をようやく使い始めて、そっちで 5GHz 帯を使ってみたいというのがあるので、ほぼ決めかけてはいるんですが、消費電力が 8W と倍以上になるので、ちょっとそこのところが悩ましい限りです。

まあ、使えないほど頻繁に途切れるわけではないので、WR8165N がモデルチェンジするなり、それに相当するモデルが出るまで粘るってのも、現状選択肢ですが。

毎日使うものだし、悩むほど高いものでもないんだけどね。

画像形式を変換するコマンド

最近本当に忘れっぽくて困ります。

さて、本日のお題は、表題のとおりなんですが、STORES.jp に出品している商品をベースとして、ヤフー店にも、商品を転送?しているわけですが、スクリプトがエラーになりました。

まあ、商品の登録時に気をつけておけばいいことではあるんですが、この調子だといつまでも覚えてないと思うので、また同じ轍を踏むのは確実です。

というわけで、スクリプト自体を書き換えました。

エラーの原因は、いくつかあって、STORES の方は、JPEG 以外にも、PNG などの形式が OK なんですが、ヤフー店は、JPEG か GIF ということになっているためです。

それ以前に、スクリプト自体が JPEG である前提でした。

やっつけなので汚いですが、とりあえず動きました。

今度の改築で、自動的に png があると jpeg に変換されるので、その画像にすげ替えれば、次からは問題ないかと。

えらく振りが長くてすみません。

肝心のコマンドですが、sips です。

sips コマンドは、記憶が確かなら海上忍氏の 連載記事 で知ったと思うんですけど、あれ、344 回も続いたんですね。

当該記事は、こちら です。

2003/12/05 の記事でしたので、かれこれ 12 年ほど前ですか。
まあ、よく覚えていたというべきか、それともやっぱり耄碌したと考えるべきか。

というか、OS X になってからもうそんなに経つんですかね。
そういえば、Preview Release は嫁さんと新宿新南口の高島屋に買いに行ったような記憶があります。
Cheater のリリースは 2001 年だったのようですから、子供が生まれる前ですね。
いやはや、長生きしたものです。

今更ながら JavaScript で半角 → 全角

まあ、半角・全角という表現がアレなのはおいておいてください。

最近、郵送にクリックポストという手段を使うのですが、ヤマトのメール便に似た感じのサービスで、A4 サイズ、3cm までの厚みのものが安価に送れます。

ウェブで送り先などを入力して、ラベルを作成するんですが、ある程度の数になると、それが結構面倒臭いんですよね。

需要があるのか、さっぱりわかりませんが、重松は住所録ソフトは筆まめを使っているんですが、その筆まめの住所データーをいちいち Windows と Mac とを切り替えながらコピペするのも面倒くさいので、自動化しました。

その時、住所は半角があってはいけないので、変換する必要があるんですが、以前は、Script Managaer を使って変換していたんですけど、もう OSAX がどっかに行ってしまっているし、JavaScript でやることにしました。

以下のページを参考にしました。

よろしくない UI — SHARP MX

2015-04-11 14.41.59昨日は案内状を作りながら他の作業をしている、とブログにも書いたのですが、その作業中にトラブルが発生しました。

まあ、見ての通りなのですが、複合機がエラーになり、印刷がストップです。

で、画面には「電源を入れなおしてください」と表示されています。

普通に考えると、ソフトウェアエラーで、再起動することにより復旧する、と読めませんかね?

しかし、これは、ハードウェアエラーで、紙が 5 回連続で詰まって、サービスマンによるメンテナンスが必要なエラーだったのです。

要するに、電源を何度入れなおしても復旧しないわけです。

もし、そうであるのなら、そのように説明の表示をすれば、こちらとしても、すぐにサービスとコンタクトを取って、対応を検討することができるわけで、時間を無駄にせずに済みます。

トラブルで困っているところに、追い打ちを掛けるような、非常によろしくない UI だと感じました。

ただ、シャープの名誉のために、断りを入れておくと、裏では、「H5 エラーが発生した」というのは、サービスマンに自動的に連絡が行くようで、こちらがシャープのサービスセンターに電話すると同時に、サービスマンから連絡があり、土曜にもかかわらず、速やかに復旧作業をしていただけました。

けど、その間数時間作業が停止しているので、昨日仕事を終えることはできませんでしたが。。。

それと、Mac からの印刷で落ちまくる件ですが、Yosemite 10.10.3 にアップデートしてから、症状が今のところ出ていません。VMWare からも、汎用の PS ドライバで出力できています。

Mac Book の WiFi 接続も安定したし、このまま、安定してくれれば、社務が捗るのですが。。。

ブログ村で Safari が落ちまくるんですが?

2015-03-14 16.28.41表題の通りなんですが、ブログ村で Safari が落ちまくって、まともに閲覧できないのですが、気のせいでしょうか?

iPhone だけでなくて、Mac の方でも落ちます。

結構うざいんですけど、うちだけでしょうか?

もう、かれこれ、一月くらいそういう状況なんですが、そろそろ虫取りした方がいいのかしら。