2015年2月12日木曜日

Yosemiteにアップグレードしたら辞書アプリで、あったはずの辞書が表示されていない

とても久しぶりの投稿になります。前回の投稿は去年の4月ですね。
途中書きかけてタイミングを逃して投稿しなかったのが2、3件ありますが、今年もあまり投稿できないかもしれません。
さて、去年Yosemiteにアップグレードしたのですが、辞書アプリを開くとMountain Lionで使っていた辞書が表示されていません。

Mountain LionではSnow Leopardの時に使っていた辞書から辞書の提供会社が変更されたことがあったのでYosemiteでも同じようなことが起きたのかと思ったら、環境設定のチェックが外れていただけでした。
というわけで、戻し方は簡単です。

辞書アプリの環境設定を開いてチェックを入れればOKです。
このように、以前の辞書が表示されるようになりました。


2014年4月19日土曜日

MewとOpenSSLとstunnelのアップデート(Hearbleedバグ対応 途中編)

OpenSSLのHeartbleed(心臓出血)バグが見つかり、情報流出のニュースも出てきました。

OpenSSLは、大雑把にいうと、ユーザのクライアントコンピュータ(PCなど)が、WebサーバやメールサーバとhttpsやSSLというプロトコルで通信する場合に、ネットワーク経路上のデータを暗号化してくれるソフトウェアです。
今回見つかったバグでは、暗号化されている通信の内容や、秘密鍵を盗聴される可能性があるということです(OpenSSLの該当バージョン(1.01から 1.01f)が使われている場合)。

OpenSSLは、サーバ側(Webサーバやメールサーバ)で使用される場合と、クライアント側(PC, Mac, Linux機など)で使用される場合があります。ですので、サーバ側とクライアント側の、それぞれに対して攻撃される可能性があり、特に今回は、ユーザ情報が集まるサーバ側への攻撃と情報流出がニュースになっています。

サーバ側の対策は、そのサーバの運営者が対応してくれるまでは、ユーザとしては使用を控えるというような消極的なことしか、対応の方法がありません。
よく使用するサービスの場合は、対応状況を確認して、脆弱性のないバージョンになったことを確認したあと、パスワードを変更するようにするとよいと思います。

ところで、ユーザ側は何も対策しなくてもいいかというとそういうこともなく、サーバ側がクラックされたり、悪意のあるサーバを立てられて誘導されたりすると、そこに接続することになるユーザ側のクライアント機もOpenSSLを使用しているとクラックされる可能性があります。

Macの場合、デフォルトの状態ではHeatbleedバグを持つOpenSSLは使用されていないようです。残念ながら、私は、EmacsのMewというメールクライアントを使用しており、MacPortsでOpenSSLとそれを使いやすくしてくれるstunnelというソフトウェアを導入していました。

しかし、MacPortsで、OpenSSLとstunnelをアップグレードしたのですが、Mewが動かなくなってしまいました。今回のアップグレードで、stunnelが5.01になっていましたが、Mewのソースコード(mew-ssl.el)を見ると、Mewはstunnelのバージョン3と4に対応しており、stunnelのバージョンが5だと、バージョン3と認識されるようなコードになっていました。私はそれ以上、自分で修正できるような知識はありませんので、Mewがstunnel 5に対応するまでは、stunnel 4を使用するようにしました。といっても、MacPortsで、stunnel 5をdeactivateして、stunnel 4をactivateしただけです。
stunnel 4でも、使用されるOpenSSLはバグフィックスバージョンなので、当面はこのままでもよいかなと思っています。(Running with OpenSSL 1.0.1g)

$ stunnel -version
stunnel 4.47 on i386-apple-darwin10.8.0 platform
Compiled with OpenSSL 1.0.1e 11 Feb 2013
Running  with OpenSSL 1.0.1g 7 Apr 2014
Update OpenSSL shared libraries or rebuild stunnel
Threading:PTHREAD SSL:ENGINE Auth:none Sockets:SELECT,IPv6

Global options:
debug           = daemon.notice
pid             = /opt/local/var/run/stunnel/stunnel.pid
RNDbytes        = 64
RNDfile         = /dev/urandom
RNDoverwrite    = yes

Service-level options:
ciphers         = ALL:!SSLv2:!aNULL:!EXP:!LOW:-MEDIUM:RC4:+HIGH
curve           = prime256v1
session         = 300 seconds
sslVersion      = TLSv1 for client, all for server
stack           = 65536 bytes
TIMEOUTbusy     = 300 seconds
TIMEOUTclose    = 60 seconds
TIMEOUTconnect  = 10 seconds
TIMEOUTidle     = 43200 seconds
verify          = none

また、Mewもバージョンアップの準備が進んでいる( http://www.mew.org/Beta/, https://github.com/kazu-yamamoto/Mew, http://www.mew.org/pipermail/mew-dist/2014-April/029344.html )ようですので、正式版になったらバージョンアップする予定です。

2014年3月30日日曜日

Grapherでハート形を描いてみる

OS Xには、Grapherという方程式をグラフ化してくれるアプリケーションがあります。Mac OSの頃にはグラフ計算機がありました。
Grapherは、アプリケーションフォルダのユーティリティフォルダに入っています。

ちょっと思い立ってハート形の曲線をGrapherで描いてみました。
ハート形曲線の式は以下のようになります。
円の方程式を基本にして、xの2/3乗の部分でうまくハート形になるように補正している感じですね。
では、描き方(というか式の入れ方)です。
Grapherを立ちあげると以下のような表示が出ます。

今回は平面グラフなので2Dグラフを選びます。すると次のような名称未設定ウインドウが開きます。

このウインドウのグラフ部分の左上の部分(y= と表示されている部分)に、式を入れていくわけです。ただ、このまままでは式を入れにくいので、方程式パレットを表示しておきます。
メニューバーのウインドウメニューから方程式パレット選びます。

すると方程式パレットが開きます。

今回は、標準タブの画面で入力を行っていきます。
名称未設定ウインドウのy=を消去してxを入力した後、方程式パレットの2(四角形の右肩に2が乗っている)ボタンを押すと下記のようになります。

次に、立方根の入れ方ですが、とりあえず下記の状態まで入力して、立方根にしたいxの2乗の部分を選択します。

この状態で、方程式パレットの立方根ボタンを押します。

更に2乗にしたい部分を選び、方程式パレットの括弧ボタンで括弧をつけてから、2乗ボタンで2乗の記号を押します。
最後に、=1を追加し、左の方程式をチェックするとハート形曲線が表示されます。

ちょっと、細い感じですね。
=1の部分を<1にすると、ハート形が塗りつぶされた状態になります。

ハート形が細いので、太くしたい場合は、yに1以上の係数をかけるとよさそうです。
下の図は、yを1.2倍した場合です。画像の倍率も大きくしています。

フォーマットメニューから軸とグリッド...を選んで座標を表示しないようにすると次のようになります。

今回は、実用的かどうかはわかりませんが、人によっては興味があるかもという話題でした。

2014年3月26日水曜日

デスクトップピクチャをタイル状に配置してランダムにな順序で表示する方法

システム環境設定で、好みのデスクトップピクチャをランダムな順序で表示している人も多いと思います。
また、ディスプレイのサイズに比べて画像が小さい場合は、タイル状に配置する方が見栄えがよい場合もあるかと思います。
ところが、たまに「タイル状に配置」が選べなくなる場合があります。

そのようなときは、一旦、画面全体に表示などの他の表示方法を選ぶと、タイル状に配置が選べるようになります。

それだけといえば、それだけですが、ときどき迷うので。

2014年3月9日日曜日

Firefox24 ESRと旧バージョンの同時使用

前のエントリーで、旧バージョンのFirefoxからFirefox24 ESRにアップグレードしたという記事を書きましたが、ここではそれらを同じMacに同居させる方法について書きます。
ここでの使用バージョンは、Firefox 16.0.2とFirefox 24 ESR (両方共日本語対応版)です。確認したOS バージョンは、Snow Leopard (OS X 10.6.8)、Mountain Lion (10.8.5)です。

アップグレードの、大まかな手順は以下の通りです。アプリケーションフォルダ内やFirefoxのブックマークや履歴等が保存されているプロファイルを操作しますので、必ずバックアップを取ってから実行してください。

  1. アプリケーションフォルダのFirefox.appをFirefox16.0.2.appにコピーする。
  2. Firefox16.0.2.appアプリケーションパッケージ内の必要な修正をする。
  3. Firefox16用のプロファイルを作成する。
  4. 最後にFirefox24 ESRをインストール(アップグレード)する。

では、順番に説明します。Firefox24 ESRを事前にダウロードして、Firefox自体は事前に終了しておきます。

1. アプリケーションフォルダのFirefox.appをFirefox16.0.2.appにコピー

Finderでアプリケーションフォルダを開き、Firefox.appを見つけます。
マウスで選択し、command + Dキーを押すとコピーできます。
するとFirefox のコピー.appというファイルが出来ますので、名前をFirefox16.0.2.appなどに変更します。

2. Firefox16.0.2.appアプリケーションパッケージ内の必要な修正

1.でコピーしたFirefox16.0.2.appのアイコン上でマウスを右クリックして、「パッケージの内容を表示メニュー」を選択します。するとパッケージ内のファイルが表示されますので、カラム表示にすると編集するファイルを探しやすいと思います。
編集するファイルは、以下の4つです。

(1) Contents/MacOS/application.ini
(2) Contents/MacOS/firefox
(3) Contents/Info.plist
(4) Contents/Resources/ja.lproj/InfoPlist.strings


(1) Contents/MacOS/application.ini


このファイルをエディタで開き、
[App]
Vendor=Mozilla
Name=Firefox
となっている部分を探します。
Name=Firefox
を、
Name=Firefox16.0.2に修正して、保存、終了します。

(2) Contents/MacOS/firefox


まず、firefoxを同じフォルダ内にfirefox.xと名前を変えます。
その後、エディタでfirefoxファイルを新たに作成します。
内部は、以下のようになります。
#!/bin/sh
/Applications/Firefox16.0.2.app/Contents/MacOS/firefox.x -P Firefox16.0.2 -no-remote

エディタで修正、保存した後、ターミナルでファイルオーナーや実行権が、firefox.xと同じになるようにします。
$ cd /Applications/Firefox16.0.2.app/Contents/MacOS
$ chmod a+x firefox
$ chown [firefox.xと同じlogin id] firefox #idが異なる場合のみ実行

firefoxシェルスクリプトで行っている内容ですが、firefox.xと名前を変更したファイルに対し、Firefox16.0.2というプロファイル(後で作成します)を指定して起動します。また、-no-remoteオプションにより、Firefox16.0.2が自分用のプロファイルの場所をデフォルトとして変更しないので、Firefox 24 ESRが混乱する(アドオンをチェックしたりする)ことを避けられます。

(3) Contents/Info.plist

このファイルの修正で、アクティビティモニタ、Dock上、アプリケーションスイッチャー(command + tab)で見た際のアプリケーション名を、Firefoxではなく、Firefox16.0.2にできます。
エディタでInfo.plistを開き<key>のCFBundlenameを探し、次の行の<string>の内容のFirefoxをFirefox16.0.2に変更します。
<key>CFBundleName</key>
<string>Firefox</string>
<key>CFBundleName</key>
<string>Firefox16.0.2</string>
に変更します。

(4) Contents/Resources/ja.lproj/InfoPlist.strings


このファイルの変更で、Firefox16.0.2アプリケーションが最前面になっている時のメニューバータイトルをFirefox16.0.2として表示できます。
このファイルは、UTF-16形式ですので、対応しているエディタかXcodeを使ってください。
CFBundleName = "Firefox";

CFBundleName = "Firefox16.0.2";
に変更します。


3. Firefox16用のプロファイルを作成する

3.1 Profilesディレクトリのコピー

ここでは、ターミナルで作業します。まずApplication Supportディレクトリに移動します。
$ cd ~/Library/Application\ Support

次に、プロファイルの入ったFirefoxディレクトリをFirefox16.0.2ディレクトリにコピーします。
$ cp -r Firefox Firefox16.0.2

3.2 Firefox16.0.2に古いプロファイルを認識させる

ターミナルで実行します。
/Applications/Firefox16.0.2.app/Contents/MacOS/firefox.x -p

以下のようなダイアログが出たら、続けるをクリックしてください。

以前にプロファイルを作成したことがある場合は、表示されないで次のダイアログが出るかもしれません。
新規プロファイルを作成…を選びます。
新しい名前をFirefox16.0.2と付けて、「フォルダを選択…」ボタンから、コピーしておいたフォルダ「~/Library/Application Support/Firefox16.0.8/Profiles/」を選びます。ki8xc…の部分はユーザーによって異なります。
ここで、「開く」を選び、元のダイアログウインドウで「完了」を選びます。
以上で、デフォルト以外にFirefox16.0.2というプロファイルが作成されます。


4. Firefox24 ESRをインストール(アップグレード)する

あらかじめダウンロードしていたFirefox 24 ESRのdmgを開き、Firefoxアイコンを/Applicationフォルダにコピーしてください。(前の記事も参照してください)
プロファイルの確認方法ですが、Firefoxを立ちあげて、ヘルプ -> トラブルシューティング情報…を選び、アプリケーション基本情報のプロファイルフォルダ項目のFinderで表示ボタンで確認することができます。



以前のバージョンのFirefoxでは、もう少し簡単に複数バージョンの同時使用ができていましたが、最近はFirefoxが起動時に見るファイルがApplication Support/Firefox/profiles.iniフォルダに固定されているのか、プロファイルを明示的に指定して、-no-remoteオプションで起動しないと混乱が起きるようです。

それから、Firefox 24 ESRで確認したところ、自分の使用しているアドオンは一応すべて対応していました。一部、動きがおかしいものもあるようですが、基本的にはESRを使う予定で、古いバージョンは使う必要はなさそうでした。

Firefox24 ESR版をインストールしました

今さらという気もしますが、Firefox 24のESR版にアップグレードしました。アップグレードしてはアドオンの対応を確認して、が面倒になりいつのまにかそのままにしていました。セキュリティ的には非常によくないので、このままにするよりESR版を使うことにしました。
ESR版はExtended Support Releaseの略で、本来、企業や教育機関など特定のバージョンを長期にわたって使用する組織に向けたリリースです。
私は個人ユーザーなので、ESR版についてあまり調べていなかったのですが、以下の理由でアップグレードすることにしました。また、ライセンス的に個人ユーザーをすべて排除しているようではありません。

  1. Firefoxはアドオンが便利でよく使っていますが、最新版にアップグレードするとアドオンが対応していなくて、アップグレードを断念する場合がありました。アドオンが対応していないのは、Firefox自体のバージョンアップが頻繁で、アドオン開発者がFirefoxに追随できないこともよくあるようです。
  2. 古いバージョンのFirefoxを使い続けることはセキュリティ的に危険なので、本当は好ましくありません。
  3. Firefox ESRのサポート期間は、そのリリース時から約1年です。その間は、セキュリティアップデートが6週間程度間隔で提供されます。また、ESR版の次バージョンとは12週間(3ヶ月弱)の重複期間が設けられることになっているので、アドオン開発者が追従できる可能性は高いと予想されます。短所としては、Firefoxの最新機能が使えない点が挙げられます。(注: 開発期間が変更されるようなので、上のリリース期間も少し変わるかもしれませんが、基本的なESRのスタンスは変わらないと思います)

以上から、Firefox 16からFirefox 24 ESRへアップグレードしました。
アップグレード自体は特に難しくありません。
(もし、Firefoxの旧バージョンとESR版を同時に使用したい場合は、次の記事にその方法を書いていますので参考にしてください)

下記のリンクからFirefox 24.3.0esr.dmgファイルをダウンロードしてください。
http://www.mozilla.jp/business/downloads/

Macの場合は、dmgファイルをダウンロードしてから、ダブルクリックして、表示されたFirefoxアイコンをApplicationsフォルダにコピーすれば終了です。

ウェブページには法人向けとは書いてありますが、Firefoxを立ち上げても特に法人ユーザーですかなどの確認はありませんでした。
これで、少しは安心ですね。

2013年11月20日水曜日

Safari 6.1アップグレードトラブル

少し前にソフトウェアアップデートでSafari 6.1がリリースされていました。まだ、Mountain Lionを使っています。すぐには上げず、SafariStandなどのPluginや機能拡張が対応しているのを確認・最新版にして、アップグレードしようとしました。
ところが、インストールしたSafari 6.1を起動しても途中で止まったままになり起動しません。調べてみたらGlimsというプラグインをインストールしていたのを忘れていました。Glimsは、/Library/Internet Plug-Ins/というディレクトリにインストールされるため、うっかり見逃していました。
Glimsは、Safariのタブの幅を一定幅以下にしたり、タブにfaviconを表示する機能があります。元々の使用目的はタブを一定の幅以下にすることでしたが、SafariStandにもその機能が含まれていますので、この際使用を止めることにしました。
アンインストールは、/Library/Internet Plig-Ins/からGlimsのプラグインを削除するのではなく、Glimsのインストーラに入っているアンインストーラを使う必要があります。
アンインストール後は、特に問題なくSafariが使えています。

ちなみに、今インストールしている機能拡張とプラグインは以下の図のようなものです。

AdBlockerとParty Pooperは、インストールしてはいますが使っていません。機能的には現在見ているページから第3者のページの表示を制御するという点で似ていると思います。
今のところは、Incognitoで、FacebookやGoogle Analyticsを第3者ページということで外すようにしています。広告はそれほど気にならないのですが、アクセス情報が収集というかトラッキングされているのが気になりますね。

2013年10月30日水曜日

テレコムスクエアのクレジットカード情報流出 (2)

テレコムスクエアの情報流出は、私は対象ではないと思っていましたが、どうもひっかかっていたようです。
テレコムスクエアからお詫びとしてAmazonのギフト券(1,000円)の案内が送ってきました。
自分が当事者になるとは思ってもいなかったので、びっくりです。
クレジットカードは更新しているので大丈夫だとは思いますが。
このような内容でブログを書くことも、個人情報の特定の面からはよくないのかと思ったり。流出した情報を持っている人は、持っていない人より、私を特定するのははるかに簡単ですよね(確率的に)。

2013年9月24日火曜日

テレコムスクエアのクレジットカード情報流出

最近、セキュリティやプライバシーに関するニュースがありました。Macとはあまり関係ありませんが、自分の使っているサービスだったのと、セキュリティはPCの機種や使用状況に関わらず気にしないといけないと思うので、ちょっと書いてみます。

ここでは、テレコムスクエアへの不正アクセスでクレジットカードデータが流出した事件について書きます。
テレコムスクエアでは携帯電話のレンタルサービスをしています。海外出張で何回か使ったことがあったので、自分のデータが該当していないかと心配しましたが、かすったようで大丈夫だったようです(調査が正しければ)。また、上記サイトのリンク先やニュースサイトITProによると該当する人は以下のようです。
(1)2008年7月1日~2013年4月30日に、各法人専用Webサイトを利用した法人ユーザー、(2)2012年6月1日~10月14日に同社の個人向けWebサイトから申し込んだユーザー、(3)個人向けWebサイトで申し込み、2012年10月15日~2013年2月5日に宅配便または空港の返却BOXで返却したユーザー。
クレジットカードのデータが流出して勝手に使われると、金銭的な損失や信用の喪失、クレジットカード会社や場合によっては警察等の対応への時間的損失や精神的なダメージなどかなり大変な状況になります。
今回の事件で一番悪いのは不正アクセスしたクラッカーでしょうが、クレジットカード情報を長期間保存していたサイトにも非があるように思います。テレコムスクエアは、今後はすべて自社サイト運営にしてクレジットカードデータの保存も必要最小限にするといっているので改善されるとは思います。
ユーザ側で、何か防御策があるのかと考えると、利便性を保とうとするとあまり有効な手立てはないように感じます。例えば、以下のような方法は思いつくのですが、

  1. クレジットカードを使わずに、現金払い、振り込みを利用
  2. 限度額の小さいカードや毎回異なるクレジット番号をくれるサービスの利用
  3. 会社で社用のクレジットカードがある場合は、それを利用

クレジットカードの目的が信用をベースにして種々の取引を簡便にすることがメリットだと考えると(*)、1や2の方法は、そのメリットを無くす方向です。また、1は使えないサービスもありますし、2をサポートしているカード会社もあまり多くはなさそうです。クレジットカードをよく使う人だと、2の情報管理の負担も増えそうです。3の方法は、会社によっては利用できませんし、最終的には被害にあう相手が変わるだけです。
どうしたらいいの、とも思うのですが、現状では、利便性とリスクや面倒さを天秤にかけて、自分で選んでいくしかないのかなと思います。後は、カード会社からの利用履歴をちゃんと確認したり、できればセキュリティ関連のニュースも気にするということでしょうか。本来は、ニュースを気にしなければならないのはおかしいでしょうが。

(*) 別の考え方では、クレジットカード会社が、顧客のお金を使いやすくして最終的には、顧客のお金を吸い上げていくビジネスモデルなのかもしれません。

2013年9月8日日曜日

MP3の再生速度を半分にする

iTunesに以前入れていたアルバムで、再生速度が途中から2倍になっていたものがありました。
10年ほど前に、カセットテープからデジタル化したので、途中でセッティングを変えたか、間違えてしまったのだと思います。もう一度同じ音源から取れればいいのですが、事情がありすぐには再取込みできない状況です。カセットテープが遠くの実家にあるのと当時使った機材(Windows PC)が壊れてしまいました。
ということで、すぐ録り直すのはあきらめて、現存のデータで何とかすることにしました。
今回は、この1曲(というか1データ)だけだったので、Audacityというアプリケーションを使いました。Audacityは、その開発サイトによると「フリー、オープンソースでクロスプラットフォームのレコーディング・サウンド編集ソフトウェアです」ということです。

Audacityのダウンロード

はじめ、Audacityの最新版2.0.4をダウンロードしてきたのですが、曲を再生してもブツブツ途切れたり、アプリケーションが突然終了したりであまり調子がよくありません。9月6日(時差を考えると1日前)がリリース日ということで、まだバグが残っているのかもしれません。
今回は、ダウンロードリンクから古いバージョンを探し、2.0.3をインストールして使いました。こちらの方は、曲の再生と安定性は問題ありませんでした。

曲の読み込み

はじめに、iTunesに入っている曲をFinderで表示します。
曲を選択した状態でメニューバーまたは右クリックで「Finderで表示」を選びます。

Finderで表示されたら、それを直接使うのではなく、一旦別の作業フォルダにコピーして、以降こちらを使うようにします。

Audacityに読み込むには、メニューからも読み込めますが、メインウインドウにドラッグアンドドロップするのが簡単です。

正常に読み込まれた後は、以下のような波形が表示されます。

速度変更したい部分のコピーと速度変換

ウィンドウ下部の選択開始、終了ペインで時間を指定し、再生ボタンで確認しながら変換したい範囲を選択します。

選択範囲をカットします。心配ならコピーでもかまいませんが、後でカットする必要があります。
次に、メニューバーから「ファイル(F)」->「新規(N)」を選び新しいウインドウを開きます。

そこに、先ほどカットした部分をペーストします。

全範囲を選択し再生速度を変更します。メニューバーから、「エフェクト(c)」->「スピードの変更...」を選びます。

次のようなウインドウが現れます。今回はスピードを半分にしたいので、-50.0としました。プレビューボタンを押すと、どのように再生されるか確認できます。

変換が完了したら、変換後の範囲(全部)を選択して、コピーします。
そして、最初にカットしたウィンドウに戻ってペーストします。時間のマーカーを動かしていなければ、後ろにペーストされます。

繋ぎ目あたりを再生して、違和感がないか確認します。この例では問題ありませんでしたが、ノイズや急に変わって違和感がある場合は、フェードイン・フェードアウトや無音期間を入れるなど工夫が必要かもしれません。

書き出し

メニューバーから「ファイル(F)」->「書き出し...(E)」を選んで書き出します。
今回は、AIFFにしてそれをiTunesで読み込み、AACに変換することにしましたが、Audacityで直接MP3を書き出したり、ffmpegをインストールすれば、AACを書き出すことも可能のようです。(確認はしていませんが)


速度変換したい曲やポッドキャストが大量にあり、範囲を調整しなくていいような場合は、ffmpegやsoxのようなツールの方が効率がいいかもしれません。

2013年8月20日火曜日

MacのPreviewで表示できないtiffファイルに遭遇

最近導入された会社の複合コピー機(Fuji Xerox C6680)にはスキャン機能がついています。
スキャンしたファイルは、WindowsとMacの共有フォルダにTIFFファイルとして保存するようにしています。というか、TIFF以外での保存ができないようです。
そのTIFFを、Mac側から表示したりするのですが、カラー画像の場合、MacのPreviewやその他ほとんどのグラフィックソフトで開くことができませんでした。モノクロのスキャンの場合は問題なかったのですが。また、Windowsのペイントなどでは問題なく開くことができます。

いろいろなグラフィックソフトを調べると、MacでもGraphicConverterでは開くことができました。GraphicsConverterは独自の画像フォーマットライブラリを持っているのでしょう。ただ、GraphicConverterはシェアウェアで試用しただけで、常用は考えていません。
独自の画像解析を持っていそうなソフトということで、ImageMagickを試してみたところ、convertコマンドで変換ができることがわかりました。ImageMagickはMacPortsで導入しました。
使い方は簡単で、JPEGにするには以下のようにします。PDFに変換する場合も拡張子を.pdfにするだけです。

$ convert input.tif output.jpg

変換の際、次のようなワーニングが出ます。

convert: Depreciated and troublesome old-style JPEG compression mode, please convert to new-style JPEG compression and notify vendor of writing software. `OJPEGSetupDecode' @ warning/tiff.c/TIFFWarnings/824.

変換されたJPEGやPDFは、Previewなどで問題なく開けるので、これ以上は調べていませんがこのコピー機の出力時のフォーマットが古い形式だということのようです。

2013年7月29日月曜日

iPhone4のホームボタンの調整

家族にあげたiPhone4のホームボタンの反応が悪くなってきたので、調整することにしました。
いくつかウェブを検索すると、指ではじくといったものや無水アルコールで洗浄する方法などがありましたが、効果はいまいちのようでした。また、アップルに修理に出す方法や、自力で部品交換する方法もありますが、ちょっと気軽にできません。その中で割りと簡単にできて、効果があると書いてあるページも多い、スリープボタンを併用してソフトウェア的に調整する方法を試しました。
結果は、調整後は反応はややよくなったように感じます。劇的によくなったと書いてあるページもありますが、ちょっと微妙です。それと、1回しかボタンを押していないのに、2回押したようになる(チャタリング)はたまに起きるままです。

私は以下の方法を試しました。iOSのバージョンは6.0.2です。


  1. iPhoneを起動します。
  2. ストックアプリケーション(iPhoneを購入時に付属しているアプリケーション)を立ちあげます。私はカレンダーにしました。ウェブサイトによっては、ストックアプリケーションと書かず、なんでもいいとしているところもあるようです。
  3. スリープボタン(電源ボタン)を長押しすると、電源オフの表示が出ます。
  4. 最後に、その表示の状態でホームボタンを長押しし、ホーム画面が出るまで待ちます。サイトによっては、やや軽めに押すとよいと書いてあります。


以上ですが、2.のアプリケーションの選択と4.の押す強さは注意してみてください。何回かやってみるといいかもしれません。
今回は、多少はボタンの反応はよくなったと思いますが、これにAssistiveTouchも使って、ホームボタンの劣化を押さえてもらおうと思います。
ホームボタンの反応が悪い人は試してみてはどうでしょうか。よくなるかもしれません。

2013年7月21日日曜日

fileコマンドがテキストファイルでエラーになる問題の回避

昨日、WindowsやLinuxで作成したテキストファイルの文字コーディングを調べようとしたら、fileコマンド( /usr/bin/file )でエラーがでました。
fileコマンドは、ファイルの音声や画像などの種類や、テキストファイルの場合文字エンコーディングなどを表示してくれるコマンドです。
やりたかったのは、UTF-8以外のファイルを探して、必要ならばUTF-8に変換しようと思ったのですが。

例えば以下の内容のファイル(UTF-8)をfileコマンドで調べると、ERRORとなります。(OS X 10.8.4)


$ cat test.txt
- 外部キー
  他のテーブルの主キーとなるキー
  外部キーは表の結合に用いる
od -c -t x1 test.txt
0000000    -      外  **  **  部  **  **  キ  **  **  ー  **  **  \n    
           2d  20  e5  a4  96  e9  83  a8  e3  82  ad  e3  83  bc  0a  20
0000020       他  **  **  の  **  **  テ  **  **  ー  **  **  ブ  **  **
           20  e4  bb  96  e3  81  ae  e3  83  86  e3  83  bc  e3  83  96
0000040   ル  **  **  の  **  **  主  **  **  キ  **  **  ー  **  **  と
           e3  83  ab  e3  81  ae  e4  b8  bb  e3  82  ad  e3  83  bc  e3
0000060   **  **  な  **  **  る  **  **  キ  **  **  ー  **  **  \n    
           81  a8  e3  81  aa  e3  82  8b  e3  82  ad  e3  83  bc  0a  20
0000100       外  **  **  部  **  **  キ  **  **  ー  **  **  は  **  **
           20  e5  a4  96  e9  83  a8  e3  82  ad  e3  83  bc  e3  81  af
0000120   表  **  **  の  **  **  結  **  **  合  **  **  に  **  **  用
           e8  a1  a8  e3  81  ae  e7  b5  90  e5  90  88  e3  81  ab  e7
0000140   **  **  い  **  **  る  **  **  \n                            
           94  a8  e3  81  84  e3  82  8b  0a                            
0000151
$ file test.txt
test.txt: ERROR: line 22: regexec error 17, (illegal byte sequence)

fileコマンドで、regexec関数を呼び出していて、その関数が不正なバイトの並びを見つけたというエラーのようです。test.txtは3行しかありませんので、行番号の22は、コマンドかライブラリのソースコードの行番号でしょう。
以前は、このようなエラーを見たことがなかったのですが、いつから出るようになったのでしょうか。

いろいろ試行錯誤したところ、localeの環境変数(LANGなど)を消すかCにすると正常に表示されるようになりました。

echo $LANG
ja_JP.UTF-8
$ LANG=C file test.txt
test.txt: UTF-8 Unicode text
$ unset LANG
$ file test.txt
test.txt: UTF-8 Unicode text

あまり、めでたしめでたしではないですが、暫定的には解決できました。

2013年7月17日水曜日

DuckDuckGoという検索エンジン


最近、米国中央情報局(CIA)元職員の情報漏洩事件で、米国国家安全保障局(NSA)が米国市民や国外との通信情報を収集していることを告発し、問題になっていますね。
NSAがさまざまな情報を収集しているということは、過去にもいわれていましたが、今回はより具体的な話が出てきたということになります。
例えば、NSAからGoogleやApple, Facebook, VerisonといったIT企業や通信会社に対して、利用者の情報を提供をするよう要請が出されている等、元職員は話しているようですね。たとえ国といえども、プライバシーに関する情報を勝手に集めるのは許されないと問題にしている人も多いようです。

そんな中で、最近DuckDuckGoという検索エンジンが注目を集めているようです。
DuckDuckGoは、ユーザの情報を収集・保存しないということをポリシーとしている検索エンジンです。収入源は、DuckDuckGo経由でAmazon等のショッピングサイトでユーザが買い物をした場合に入る報酬だそうです。
DuckDuckGoは、アクセス情報、検索履歴等を保存していないため、政府機関から情報提供の要請があっても出す情報自体がないという訳です。(日本では、アクセスログなどを保存しないといけない法律が検討されているようですが)

個人的にも興味があり、どんなものか使ってみました。
検索エンジンなので、その性能自体が悪いと仕方ないので検索の使い心地を調べてみました。全部、体感レベルの話でちゃんとした計測はしていません。
実行速度については、他の検索エンジンと変わらないようです。
また、検索機能についてですが、まずデフォルトの設定で使用すると検索ワードが英語の場合、英語のサイトが多く出てきて、日本語の情報はあまり出てきません。設定で地域(region)をJapanにすると日本語ページも上位に出てきて使いやすくなります。
検索精度の印象ですが、時事的な内容(例えばアシアナ航空の事故など)でも、ちゃんと引っかかるようで特に問題は感じませんでした。専門的な内容だとちょっと物足りない場合もあり、Googleの方がより適切な情報を示してくれることもありました。
DuckDuckGoの精度が悪いというよりは、Googleが私の検索履歴、IPアドレス等を利用してより精度を高めている印象です。
また、DuckDuckGoの方が検索欄に入れる言葉の順序による影響が大きいです。
全体としては、予想よりも使えそうなので、もうしばらく使ってみようと思います。

本当はプライバシーについても書こうとしたのですが、長くなってきたのと自分でも整理できていないことがわかったので、別の機会に書こうと思います。(整理できたかどうかは別にして)

また、気になる人は、ウェブブラウザーのトラッキングやトラッキングクッキー、プライベートブラウジングについての設定も調べるといいと思います。
Safariでは、環境設定->プライバシー->Webサイトによるトラッキング、FirefoxやChromeでも同様の設定があります。ただ、現状ではWebサーバー側で対応しているところは少ないようです。

2013年7月9日火曜日

terminal-notifierを使ってみる(続き)


前の記事で紹介したterminal-notifierですが、ひとつ気になる点がありました。前回の記事にも書いていますが、標準入力を受け取って表示できない点です。
調べてみると、標準入力を受け取るようにしてほしいという要望は出ているようです。そして、RubyGem (Rubyのパッケージシステム)でインストールした場合は、Rubyの中からは標準入力が使えるようになっているようです。
ということで、ソースコードを見てみました。関係あるところは下記のようです。


unless ARGV.include?("-message")
  ARGV.push(*["-message", STDIN.read.chomp])
end


あまり、人のことは言えませんが、ちょっと手抜きかもですね。
-messageオプションが指定されていなかったら、強制的に標準入力を読むようですが、-messageは必須ではないので、期待しない動作になるかもしれません。
それと、標準入力は、Ruby側でなく、terminal-notifierの本体側で処理すべきな内容にみえます。

私は、RubyGemを使わずインストールしたのと、terminal-notifierをシェル(bash)で使いたいので似たようなラッパスクリプトを書いてみました。


#!/bin/sh

TNCMD=/opt/local/libexec/terminal-notifier.app/Contents/MacOS/terminal-notifier

if [ -t 0 ]; then
    $TNCMD "$@"
else
    msg=`cat -`
    $TNCMD -message "$msg" "$@"
fi


このスクリプトでは、標準入力が端末以外(コマンドのパイプなど)になっている場合、そこからcatコマンドで読むようにしています。
本当は、else部で-messageオプションが使われているかどうか調べる方がいいんですが、手抜きですね。-messageオプションが重複している場合、"$@"の中で-messageオプションが使われていると、そちらが実行されるようです。

もうひとつ、terminal-notifierで通知を表示する場合、アイコンがジェネリックなアプリケーションアイコンになるのもできれば改良してもらえるとありがたいですね。

でも、通知センターがMac OS Xの標準機能になったためか、growlnotifyでは時々取りこぼしが起きていたのが、terminal-notifierでは起きないようです。