タグ

ブックマーク / zariganitosh.hatenablog.jp (69)

  • JavaScriptを圧縮・整形するコマンド作り - ザリガニが見ていた...。

    最近、ブックマークレットを書く時には、Closure Compilerをよく使う。Closure Compilerは、Googleが提供しているJavaScriptコードの圧縮・整形サービスの一つである。 Closure Compilerを使う! - トップページ 圧縮といってもzip圧縮などとは違う。正確には、コンピュータが実行しやすいように最適化しているのだ。 コメントや空白文字を削除したり、 使っていない関数を削除したり、 変数名や関数名を短縮したり、 最適化レベルによっては、関数の中身のコードを展開することもある。 以上の作業を機械的に行って、最適化されたコードを返してくれる。人間にとってはめちゃくちゃ読み難いコードだけど、コンピュータにとっては無駄のない、実行しやすいコードとなるのだ。 逆に、そのようなめちゃくちゃ読み難いワンライナーにインデントや改行を追加して、少しでも人間が解

    JavaScriptを圧縮・整形するコマンド作り - ザリガニが見ていた...。
  • GUIスクリプティングで使いたくなる道具 - ザリガニが見ていた...。

    AppleScriptに対応していないアプリケーションでも、OSが提供するGUIを指定してコーディングによって操作できるGUIスクリプティングはたいへん便利。ただし、未知のGUIの構造を理解して、それをAppleScriptの文法で指定するのは結構しんどいところもある。 GUIを調べる AppleScriptエディタで確認 基は、地道にAppleScriptエディタで以下のようなスクリプトを実行して、その結果からGUIを指定するコードを確認するのが確実。 以下は、Safariのメニュー:表示 >> テキストエンコーディング >> Unicode (UTF-8) のGUIを解析している例。 tell application "System Events" tell process "Safari" set frontmost to true UI elements end tell end

    GUIスクリプティングで使いたくなる道具 - ザリガニが見ていた...。
  • OSX10.9におけるGUIスクリプティングとセキュリティとの戦い - ザリガニが見ていた...。

    AppleScriptにはGUIスクリプティングという最後の切り札がある。GUIスクリプティングは、OSが認識するGUIオブジェクトを直接指定して操作する方法である。AppleScriptに対応していないアプリケーションであっても、GUIスクリプティングを使えば、ある程度自由に操作できる。かなり便利で、よく使っていた。 GUIオブジェクトとは、画面に表示されるウィンドウとか、ボタンとか、テキスト等の、OSが管理しているあらゆる表示物である。そのようなものを自由に操作できるようになると、場合によっては悪意のある操作を実行することも可能になる。そのためセキュリティ上の危険性を考慮してか、Appleは長らく、たった1つの制約を付けていた。 GUIスクリプティングを実行するには、システム環境設定 >> アクセシビリティ >>「補助装置にアクセスできるようにする」をオン(チェックあり)にしておく必要

    OSX10.9におけるGUIスクリプティングとセキュリティとの戦い - ザリガニが見ていた...。
    seuzo
    seuzo 2013/12/26
    果てしなくめんどい。戦い、戦い、戦え、何を、ASを。
  • UTF-8にもいろいろある - ザリガニが見ていた...。

    前回からの続き。 改行コードの違いを体感してみる - ザリガニが見ていた...。 文字エンコードとロケールを体感する - ザリガニが見ていた...。 改行コードの違いも知った。文字コードとロケール、ターミナルの言語環境との関係も知った。これで文字にまつわる悩みとはおさらばできると思ったら、まだダメだった...。 実験環境 OSX 10.8 Mountain Lion以前((OSX 10.9 Mavericksでは、Mac仕様なNFDのUTF-8を表示しようとするとエラーになってしまったため、10.8以前の環境で実験した。Assertion failed: (width > 0), function conv_c, file /SourceCache/shell_cmds/shell_cmds-175/hexdump/conv.c, line 137. ** ** Abort trap: 6

    UTF-8にもいろいろある - ザリガニが見ていた...。
  • 標準入力からプログレスバーを利用する仕組み - ザリガニが見ていた...。

    cocoaDialogというアプリケーションがあって、インストールするとコマンド呼び出しから、GUIのダイアログ環境を提供してくれる。 例: msgbox(メッセージボックス) inputbox(インプットボックス) secure-inputbox(セキュア インプットボックス) dropdown(ドロップダウン) fileselect(ファイルセレクト) textbox(テキストボックス) progressbar(プログレスバー) progressbar(プログレスバー) ひと通りのGUIが揃っていて、たいへん便利である。その中でも気になるのがプログレスバーの存在である。時間のかかる処理の進捗状況を教えてくれるあの棒グラフみたいなGUI。今まで単機能のコマンドツールを作っても、進捗状況を的確にフィードバックする方法がなくて困っていた。窮余の策として、Growlや通知センターを使って、「開

    標準入力からプログレスバーを利用する仕組み - ザリガニが見ていた...。
  • いままでAmazonでいくら買い物してきたのか? - ザリガニが見ていた...。

    Amazonには注文履歴というページがあって、そこでは過去の発注を一覧できる。 https://www.amazon.co.jp/gp/css/order-history ところが、商品ごとの金額は分かるのだけど、合計でいくら使ったのかを知りたかったら、ちまちまと手作業で計算するしかなかった...。 手作業とか大嫌い。面倒だから、今までいくら使ってきたのかなんて計算したこともなかった。そんな時、いままでAmazonでいくら買い物してきたのか計算するブックマークレットに出会った!(素晴らしい!) いままでいくらAmazonで買い物したか合計するブックマークレット書いた - モロ屋 こうゆうの大好き!即、試したくなる。さっそく、やってみた。 合計してみた 注文履歴のページを開いて、 https://www.amazon.co.jp/gp/css/order-history 求められたら、サイン

  • Exifの必要な部分だけコピーする - ザリガニが見ていた...。

    写真撮影時の情報はexiftoolコマンドを使うと、余すところなくすべて確認できる。 $ exiftool R0015381.DNG 詳細に確認できることは素晴らしいこと。でも、あまりに項目数が多すぎると来注目したい値が埋もれてしまう...。もっとシンプルに基的な撮影情報をまず知りたい。そう、iPhotoでcommand-Iした時にウィンドウ右上に表示されるExif程度で十分なのだ。 exiftoolコマンドはすべてのExifを取得できるのだから、その中から必要な項目だけピックアップして、自分好みのフォーマットで出力するようにすれば良いはず。やってみた。 exiftoolコマンドの使い方 当初、パイプで繋げて、grepやawkに渡して必要な項目を取り出そうかと考えていたのだが... $ exiftool -Model R0015381.DNG|grep -E '^Camera Mode

    Exifの必要な部分だけコピーする - ザリガニが見ていた...。
  • 独自のPDFのQuartsフィルタを追加する - ザリガニが見ていた...。

    以前の日記「約1/30でも割と見られるPDFに圧縮しておく」でも試した、プレビュー.app >> ファイル >> 書き出し... のPDFのQuartsフィルタ:Reduce File Size。 ファイルの圧縮率は抜群なんだけど、細かい文字などは潰れてしまって判読不能。その時は使い物にならないと思って、諦めていた。 Reduce File Size 59KB 元画像 4.5MB ところが、最近このPDFのQuartsフィルタを自分好みに変更する方法を知った! Shrink Preview files without ruining image quality | Macworld PDFのQuartsフィルタの在処 システムが定義するすべてのQuartsフィルタは、以下のファイルパスに存在する。 $ ls -l /System/Library/Filters total 224 −rw-

    独自のPDFのQuartsフィルタを追加する - ザリガニが見ていた...。
  • オーディオファイルの繋ぎ方 - ザリガニが見ていた...。

    複数のオーディオファイル(.m4a)を1つにまとめたくなった。しかし、オーディオファイルはテキストファイルと違って、単純にcatコマンドなどでは連結できなかった...。 cat sample1.m4a sample2.m4a > total.m4a 例えば、上記コマンドを実行しても、ファイルサイズは2ファイルの合計になるのだが、再生されるのはsample1.m4aの内容だけだった。データ構造としてはsample1.m4a+sample2.m4aになっているはずなのだが、その状態ではオーディオファイルの構造としては問題ありのようだ。(最初のsample1.m4aしか再生されないので) Quicktime 7 Proで繋ぐ もし、Quicktime 7 Proのライセンスキー(3400円)を持っているのなら、オーディオファイルをコピー&ペーストで次々と編集して、1つのファイルにまとめることがで

    オーディオファイルの繋ぎ方 - ザリガニが見ていた...。
  • OSX 10.8でWeb共有を有効にする - ザリガニが見ていた...。

    OSX 10.8では「Web共有」のシステム環境設定がなくなってしまった...。システム環境設定 >> 共有を開いても、そこには「Web共有」の項目は見当たらないのだ。しかし、それほど幻滅することはない。なくなってしまったのはGUIの設定環境だけである。「Web共有」を実現する仕組みはしっかり残っているのだ。必要な設定ファイルを自分で追加して、apachectlコマンドを操作することで、いつでもWeb共有は有効にできるのだ。 Web共有を有効にする手順 以下の4つの手順を実行することで、Web共有は有効になるのだ! ~/Sites フォルダを追加 OSX 10.8には ~/Sites さえ存在しないので、まずはWeb共有の起点となる ~/Sites を追加した。 mkdir -p ~/Sites 動作確認用に~/Sites/index.htmlも追加 ログインユーザー権限のWebページとし

    OSX 10.8でWeb共有を有効にする - ザリガニが見ていた...。
  • シェルにおけるタブと改行の扱い - ザリガニが見ていた...。

    最近はradikoやらじる★らじるのタイマー録音絡みで、シェルスクリプトを触る機会が多かったのだが、 再びradikoで録音したい! - ザリガニが見ていた...。 予約日時になったらちゃんと目覚めるtimerコマンドが欲しい - ザリガニが見ていた...。 radikoをキーワードで予約する - ザリガニが見ていた...。 自分の思いどおりに動作する時とうまく動かない時の原因は、そのほとんどが、スペース・タブ・改行を扱う時の勘違いにあると感じてしまった...。その扱いを正確に理解していれば、シェルスクリプトはかなり高度なテキスト処理を最初から的確にこなしてくれるはずだ。シェルスクリプトを理解するポイントの1つは、これらの目に見えない文字を、頭の中で正確に思い描く想像力かもしれない。現状の理解をメモしてみた。 検証環境 MacBook Pro Retina15 OSX 10.8.2 bas

    シェルにおけるタブと改行の扱い - ザリガニが見ていた...。
  • ショートカットから日本語文章校正ツールを利用する - ザリガニが見ていた...。

    Yahoo! JAPANのWebAPIには、日語の校正支援APIがあるらしい。そして、そのAPIを利用して、日語文章校正ツールというサービスが公開されている。文章を入力して、チェックボタンを押すと、このような校正チェックが行われるのだ!(素晴らしいサービスに感謝です!) さらに、ブログ校正用のブックマークレットも公開されており、これをブックマークに登録しておけば、1クリックで編集モードのブログ内容をチェックしてくれるはず!...だったのだが、ブックマークレットが登録できない...。よく見ると、注記で「Safariではブックマークに登録できない」と書いてあった。(ガックリ) ならば、Safariを常用する自分自身がやってみる。 Safariに登録できない理由 javascriptのリンクを右クリックしても、ブックマークへの登録はできないのだけど、 リンクをコピーして、自分でブックマーク編

    ショートカットから日本語文章校正ツールを利用する - ザリガニが見ていた...。
  • イメージ圧縮してDropboxで公開するサービス - ザリガニが見ていた...。

    DropboxのPublicフォルダとは 現在(2017-03-15以降)、この機能(DropboxのPublicフォルダ)は使えない 今時のDropboxには、Publicフォルダがある。 Publicフォルダに入れたファイルには、「パブリックリンク」と呼ばれるURLが与えられる。 そのURLをブラウザに与えれば、画像を表示したり、ファイルをダウンロードしたりできるのである。 「パブリックリンク」として与えられるURLの仕組みを見てみると、以下の要素の組み合わせになっている。 Publicフォルダを表現する、ユーザーごとのID番号*1 Publicフォルダを起点とする、ファイルパス。 https://dl.dropbox.com/u/ユーザーごとのID番号/ファイルパス もしPublicフォルダ内にimagesフォルダを作って、その中にscreenshot.pngを入れたとしたら、 自分

    イメージ圧縮してDropboxで公開するサービス - ザリガニが見ていた...。
  • curlでDropboxにアクセスする試み - ザリガニが見ていた...。

    curlというコマンドがある。引数にURLを指定すると、そこにアクセスして、サーバーから情報を取得するのだ。 基の書式。 $ curl http://d.hatena.ne.jp/zariganitosh ...(非常に長いhtml出力)... ズラズラとhtmlが出力されたが、htmlの羅列では訳が分からん。 htmlファイルに出力してみる。 $ curl -o output.html http://d.hatena.ne.jp/zariganitosh/ % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 4178 100 4178 0 0 12717 0 --:--:-- --:--:-- --:--:-- 22830 o

    curlでDropboxにアクセスする試み - ザリガニが見ていた...。
  • シンプルなモデルで具体的に考えて理解する方法 - ザリガニが見ていた...。

    新入社員として初めて配属された先は、とある巨大店舗の経理部だった。経理部はいくつかの課に分かれており、さらに課はいくつかの係に分かれている。自分が担当するのは、その中の一つの係である。 新入社員というのは、良くも悪くも前提知識がまったくない。自分が担当する係の仕事内容も分からないし、その係が経理全体の中でどのような役割を担っているのかさえ分かっていないのだ。 それにしても、巨大店舗の売り場では色々なことが起こる。伝票を処理するルールというのは決まっているのだけど、そのルールから外れてしまうのが常である。こちらの想像を超えた予想外のミスをどのように修正すれば良いのか、新入社員であっても電話をでたら、容赦なく問い合わせてくる。(電話の向こうでは、こちらが新入社員かどうかなんて、分からないのだから) 新入社員がそのような問い合わせを受けても答えられるはずもなく、必死で問い合わせの内容をメモして、

    シンプルなモデルで具体的に考えて理解する方法 - ザリガニが見ていた...。
    seuzo
    seuzo 2012/10/01
  • メール.appの文字化けの悩み - ザリガニが見ていた...。

    先日、MacBook Pro RetinaをOSX10.8.2にアップデートしたら、一部のメールに文字化けが発生するようになってしまった...。送ったメールが、宛先にちゃんと届いて、ちゃんと読めることは、メールとして当り前の機能なのだけど、どうもアップルはこの辺の基機能を失敗することが多い。 サポートメールさえまともに届かないMobileMeになってしまったのか? - ザリガニが見ていた...。 Leopard Mail.appの送信済みフォルダの文字化け対策の試行錯誤 - ザリガニが見ていた...。 過去にも幾度かの文字化けを経験して、その都度、自分ができる限りの対策をしてきた。最終的にOSのアップデートで修正はされているのだが、それには時間がかかる。そもそも過去に幾度も文字化けしてその対策をしているのだから、その経験を生かして欲しいものだと願う。2012年の今でも、最新のOSで文字化

    メール.appの文字化けの悩み - ザリガニが見ていた...。
  • 見えない通知を捕まえて通知駆動アプリケーションを作る - ザリガニが見ていた...。

    iOS5で鳴り物入りで登場して、その仕組みがMountain Lionにも取り入れられたと錯覚しがちな通知センターであるが、実は通知センターという考え方は、はるか昔のNeXTSTEPの頃からあった。その証拠に、通知センターを実現するクラス(NSUserNotificationCenter)はNSで始まっている。NSはNeXTSTEPの頭文字なのだ。 NSUserNotificationCenterは、Mountain Lionで導入された、その名のとおりユーザーのための通知センターである。一方、NeXTSTEPの頃から使われている通知センターは、NSNotificationCenterである。Userが抜けている。NSNotificationCenterは、オブジェクト(プロセス)間の通信のための通知センターである。オブジェクトに通知することが目的なので、GUIとして視覚的に見せていないの

    見えない通知を捕まえて通知駆動アプリケーションを作る - ザリガニが見ていた...。
  • 通知センターでHello, world! - ザリガニが見ていた...。

    Mountain Lionの新機能の一つ、通知センターをうまく使えないかと試してみた記録。今まではgrowlnotifyコマンドを利用して、AppleScriptなどの処理の状態を知る手がかりにしていた。できることならOSX標準の仕組みだけで通知したいのだ。 Objective-C CocoaはObjective-Cで書かれている。Objective-CはCocoaのために存在する、と言えるかもしれない。 だから、最初はObjective-Cで考えることが、理解への近道だと考えた。 #import "AppDelegate.h" @implementation AppDelegate - (void)applicationDidFinishLaunching:(NSNotification *)aNotification { // Insert code here to initializ

    通知センターでHello, world! - ザリガニが見ていた...。
  • そうだiOSアプリを常に最新の状態にしておこう! - ザリガニが見ていた...。

    年齢認証ダイアログを突破できない問題を修正しました。 予約時間を変更できない問題を修正しました。 除外アプリを指定できるようにしました。>>移動する 最新バージョンが必ずしも良いものだとは限らないのだけど、アプリのアップデートをお知らせする件数バッジが増えてくると、それなりに気になる。最近はWiFi経由でもiTunesとの同期が可能になった。いちいちUSBケーブルで接続していた頃と比べれば、かなりお手軽に同期できる環境になったとも言える。しかし、人間一度「楽」を覚えると、さらなる「楽」を求めてしまうものである。(特に自分の場合は) iTunesを起動して、 Appを選択して、 OO個のアップデートが利用可能をクリックして、 iTunes Storeの無料アップデートをダウンロードをクリックする。 すべてのダウンロードが完了したら、同期する。 たったこれだけの操作なのだけど、この一連の操作が

    そうだiOSアプリを常に最新の状態にしておこう! - ザリガニが見ていた...。
  • PDFの連続印刷 - ザリガニが見ていた...。

    リッチテキスト書類をPDFにして提出しなければならない。そんな時、OSXではめちゃくちゃ簡単である。command-Pでプリント...を選択して、「PDFとして保存...」すればいいのである。素晴らしい! ところが、リッチテキストのファイルがたくさんあると、どうだろう?10ファイルなら10回書類を開いて「PDFとして保存...」すればいい。まだ、頑張れる。 でも、100ファイルあったとしたら...そんなこと面倒くさくてやってられない、と思ってしまうのである。(自分の場合は)そこから、すべてが始まる。 デスクトッププリンタ そう言えば昔、デスクトッププリンタってあったよな、と思って調べてみると、OSXにもあった。 デスクトッププリンタとは、デスクトップにあるプリンタアイコンに書類をドラッグ&ドロップすると印刷されるヤツ。 システム環境設定 >> プリントとファクスで表示されるプリンタアイコン

    PDFの連続印刷 - ザリガニが見ていた...。