2020年2月8日土曜日

MojaveからCatalinaに移行すると"写真"が開けなくなる

Mojaveの"写真"とCatalinaの"写真"はファイルの管理方法が大きく変わっている。

  • オリジナルファイルの置き場所がMastersからoriginalsに変わっている。
  • originalsファイルの下はUUIDで管理されていてオリジナルのファイル名は失われている。
このためMojaveからCatalinaにアップグレードすると、写真ライブラリの変換が行われるのだが、 これが途中で終了してしまい、ニッチもサッチも行かなくなった。

ログ(PhotoUpgrade.log)を見ながら、下記で対応できたので記しておく。

cd ~/Pictures/写真ライブラリ.photoslibrary/resources
mv cpl _cp
cd ~/Pictures/写真ライブラリ.photoslibrary/private/com.apple.photoanalysisd
mv GraphService _GraphService
mv VisionService _VisionService

この後ログ上は最後まで走りきるので、「写真ライブラリの修復」を行うことで開けるようになった。

経緯は以下の通り。

2020-02-07 21:04:48.993 (NSOperationQueue 0x7ff66e9014e0 (QOS: UTILITY)) MigrationOperation.m:904 REASON: Error Domain=com.apple.photos.error Code=46510 "Failed cpl prefix check. cplPath:/Users/XXXX/Pictures/写真ライブラリ.photoslibrary/resources/cpl : bundleRoot:/Users/XXXX/Pictures/写真ライブラリ.photoslibrary" UserInfo={NSLocalizedDescription=Failed cpl prefix check. cplPath:/Users/XXXX/Pictures/写真ライブラリ.photoslibrary/resources/cpl : bundleRoot:/Users/XXXX/Pictures/写真ライブラリ.photoslibrary, PLMigrationContext=cplprefix}

cplがなんなのかよくわからないが、とりあえずリネームする。

file:///Users/XXXX/Pictures/%E5%86%99%E7%9C%9F%E3%83%A9%E3%82%A4%E3%83%95%E3%82%99%E3%83%A9%E3%83%AA.photoslibrary/. Error: Error Domain=NSCocoaErrorDomain Code=516 "同じ名前の項目がすでに存在するため、“GraphService”を“com.apple.photoanalysisd”に移動できませんでした。" UserInfo={NSSourceFilePathErrorKey=/Users/XXXX/Pictures/写真ライブラリ.photoslibrary/private/com.apple.photoanalysisd/GraphService, NSUserStringVariant=( Move ), NSDestinationFilePath=/Users/XXXX/Pictures/写真ライブラリ.photoslibrary/private/com.apple.photoanalysisd/graph, NSFilePath=/Users/XXXX/Pictures/写真ライブラリ.photoslibrary/private/

GraphServiceというのが確かに存在するのでリネームする。 (このあとVisionServiceについても同じことを言われるのでリネームする)

2017年2月1日水曜日

WDC-433DU2HBKをmacOS 10.11 (El Capitan)で使用する 解決編

昨日 無理やりmacOS 10.11(El Capitan)が稼働するiMacに10.9用のドライバをインストールした エレコムのWDC-433DU2HBK だが,スリープすると二度と復帰しないという不具合があって,実質使い物にならないことが分かった。

解決策はないかと色々と調査しているとRealTekのチップを使ったUSB LANアダプタはどこのメーカー製であっても汎用ドライバを使っているようで,チップさえ同一であれば他社製ドライバでも使用できることが分かった。

ということは正式にEl Captian対応を謳っている BUFFALO WI-U2-433DMのドライバを使用すれば使えるのではないか? ということで試してみたらキッチリ動いたではないか! スリープも問題ない。

ライセンス的には問題ないのか? ソフトウェア利用許諾を読むとBUFFALO以外の製品に使うな,とは書いていないので問題無いと思われる。

ということでRealTekのチップを使っているUSB LANアダプタを持っていてEl Captian対応しないと困っている向きは,他社製ドライバを使うという手があるということを覚えておくと良い。

2017年1月31日火曜日

WDC-433DU2HBKをmacOS 10.11 (El Capitan)で使用する

もはや結構な年代物になっている我が家のiMac (20-inch Mid 2007)。そのせいなのか何なのか,以前から5GHz帯の無線LANの接続状況が良くなかったので,外付けのUSB無線LANアダプタを購入してみることににした。

APから若干離れている場所に設定されているため,アンテナの大きめなアダプタとして エレコムのWDC-433DU2HBK を買ってきたのだが,MacOS 10.9までの対応となっていて,El Capitanではインストーラが正常に動作しない。さて困った。

いろいろごちゃごちゃやってみて,結局10.9用のドライバを手動インストールすることで使用できたので,メモとして残しておく。

ドライバの展開

ドライバはエレコムのサイトからダウンロードしてきてzipファイルを展開すると Wlan_11ac_USB_MacOS10.9_Driver_v1027_UI_2.2.6というフォルダができているはずなので,まずそのディレクトリにcdする。

$ cd Wlan_11ac_USB_MacOS10.9_Driver_v1027_UI_2.2.6
$ ls -l
Installer.pkg  Uninstall.command*  Utility_release.txt*

Installer.pkgというファイルがあるはずである。pkgファイルはxarアーカイブなので,これをxarで展開する。,

$ xar -x -f Installer.pkg
$ ls
Distribution   Uninstall.command*    wirelessacNetworkUtility.pkg/
Installer.pkg  Utility_release.txt*  wlanac.pkg/
Resources/     rtl8812au9.pkg/

wirelessNetworkUtility.pkg, rtl8812au9.pkg, wlanac.pkgという3つのpkgディレクトリができたはずである。それぞれを手動でインストールしていく。

wirelessNetworkUtility.pkgの手動インストール

無線LAN接続用ユーティリティである。WDC-433DU2HBKはMacからはEthernetインタフェースとして認識されるのでMacの無線LAN設定機能が利用できない。基本的に無線LANの設定はこれで行い,また起動時に一度は実行しないと無線LANに接続しない。/Applicationsフォルダにコピーておく。

$ cd wirelessNetworkUtility.pkg
$ gzip -dc Payload | cpio -idv
$ mv Wireless-AC\ Network\ Utility.app /Applications/

rtl8812au9.pkgの手動インストール

ドライバである。所定の場所にコピーしkextloadでロードするだけで使えるが,所有者に気をつけること。rootでないとロードできないようである。

$ cd rtl8812au9.pkg
$ gzip -dc Payload | cpio -idv
$ sudo chown root -R RTL8812AU9.kext
$ sudo mv RTL8812AU9.kext /System/Library/Extensions
$ sudo kextload /System/Library/Extensions/RTL8812AU9.kext

wlanac.pkgの手動インストール

OS起動時にWireless-AC Network Utility.appを起動するlaunchd用設定ファイルである。

$ cd wlanac.plg
$ gzip -dc Payload | cpio -idv
$ sudo chown root WlanAC.plist
$ mv WlanAC.plist /Library/LaunchAgents
$ sudo launchctl load /Library/LaunchAgents/WlanAC.plist

あとはマニュアル通りに

/Applications/Wireless-AC Network Utility.appを実行すれば使えるはずである。

追記

もっと良い解決法があったので, WDC-433DU2HBKをmacOS 10.11 (El Capitan)で使用する 解決編を参照のこと。

2013年10月3日木曜日

RailsBaseURIを指定したRailsアプリケーションでアイコンが消える問題

Railsアプリケーションをルートではなくサブディレクトリで動作させている場合、Apacheのhttpd.confにRailsBaseURIを指定する。 このときAssetのprecompileで生成されるパスが/assetとなっているために、例えばgifやpngなどのアイコンが画面から消えてしまう事象が発生した。

この問題を解決するにはAssetをprecompileする際にRAILS_RELATIVE_URL_ROOTという環境変数にRailsBaseURIに設定したパスを与えればよい。

たとえば

RailsBaseURI = /subdir
のときは
rake assets:precompile RAILS_ENV=production RAILS_RELATIVE_URL_ROOT="/subdir"

Capistranoでは以下のオプションを設定する。

set :asset_env, "#{asset_env} RAILS_RELATIVE_URL_ROOT=/subdir"

2012年10月27日土曜日

CloudStack 2.2.15のインストールパッケージを自作する

CloudStack 2.2系の最新版は2.2.15ということになっているらしい。このバージョンは以下の様な重要な変更点(詳しくはリリースノートを参照のこと)があるのでぜひともバージョンアップしておきたいと思うのだが一般には公開されないもののようだ。

ということでgitリポジトリからパッケージを自作してみることにした。なおOSはターゲットOS、ビルドOSともにCentOS 6.3を使用してる。

githubからソースコードを入手する

以下のコマンドでgithubからソースコードを入手する。

git clone https://github.com/CloudStack-extras/CloudStack-archive.git

カレントディレクトリにCloudStack-archiveというディレクトリが作成され、masterブランチのソースコードが展開されるはずだ。

以降CloudStack-archiveディレクトリで作業を行う。

ブランチを2.2.15に変更する

以下のコマンドで2.2.15のソースコードを展開する。

git checkout -b 2.2.15 TAG_CLOUDPLATFORM_2.2.15_GA2

TAG_CLOUDPLATFORM_2.2.15_GA2というタグが2.2.15のリリース版のハズ(正確なところはよくわからない)。

ビルドに必要なRPMパッケージをインストールする

waf viewrpmdepsというコマンドを実行すればコンパイルに必要なパッケージ一覧が得られる。これらのRPMをyumなりでインストールする。

[mas00 CloudStack-archive]$ ./waf viewrpmdeps
glibc-devel
gcc
commons-httpclient
java-1.6.0-openjdk-devel
rpm-build
ws-commons-util
tomcat6
MySQL-python
jpackage-utils
/usr/bin/mkisofs
'viewrpmdeps' finished successfully (0.001s)

RPMをビルドする

CloudStackのビルドスクリプトはターゲットOSをCentOS/RHEL/Ubuntuとそれぞれ区別して処理を行うように作られているが、CentOS用の処理は(JavaのCLASSPATHなど)色々とおかしいところがあるので、ビルドするOSがCentOSである場合、RHEL6であるように振る舞うように以下の様な変更を行う。

rm /etc/redhat-release
echo Red Hat Enterprise Linux Server release 6 > /etc/redhat-release
mv /etc/centos-release /etc/centos-release.orig

準備が出来たら早速ビルドする。

./waf rpm --package-version=2.2.15 --release-version=0.1

うまくビルドできればartifacts/rpmbuild/RPMS/x86_64にRPMパッケージが作成されているはずだ。

[mas00 CloudStack-archive]$ ls artifacts/rpmbuild/RPMS/x86_64
cloud-agent-2.2.15-0.1.el6.x86_64.rpm
cloud-agent-libs-2.2.15-0.1.el6.x86_64.rpm
cloud-agent-scripts-2.2.15-0.1.el6.x86_64.rpm
cloud-baremetal-agent-2.2.15-0.1.el6.x86_64.rpm
cloud-cli-2.2.15-0.1.el6.x86_64.rpm
cloud-client-2.2.15-0.1.el6.x86_64.rpm
cloud-client-ui-2.2.15-0.1.el6.x86_64.rpm
cloud-console-proxy-2.2.15-0.1.el6.x86_64.rpm
cloud-core-2.2.15-0.1.el6.x86_64.rpm
cloud-daemonize-2.2.15-0.1.el6.x86_64.rpm
cloud-deps-2.2.15-0.1.el6.x86_64.rpm
cloud-python-2.2.15-0.1.el6.x86_64.rpm
cloud-server-2.2.15-0.1.el6.x86_64.rpm
cloud-setup-2.2.15-0.1.el6.x86_64.rpm
cloud-test-2.2.15-0.1.el6.x86_64.rpm
cloud-usage-2.2.15-0.1.el6.x86_64.rpm
cloud-utils-2.2.15-0.1.el6.x86_64.rpm

インストールパッケージを使ってインストールする

ビルドされたRPMパッケージをそのままrpm -ivhしても良いのだが、yumを使用して依存RPM含めて一気にインストールしたい場合はCloudStackのインストールパッケージを借用する。

  1. CloudStack-2.2.14-1-rhel6.1.tar.gzをダウンロードして展開する
  2. CloudStack-2.2.14-1-rhel6.1/ossディレクトリにあるRPMを2.2.15のものに置き換える
  3. CloudStack-2.2.14-1-rhel6.1ディレクトリに移動し"createrepo -d ."を実行する
  4. CloudStack-2.2.14-1-rhel6.1/install.shを実行してインストールする

インストール後の注意点

2.2.14までエージェントのスレッド数の上限(DirectAgentPoolSize)は500とハードコーディングされていたが、2.2.15からdirect.agent.pool.sizeというグローバルコンフィグレーションパラメータでこの値を設定するようになっている。

ところがこの値のデフォルト値が1000となっており、Linuxのulimitを設定しない場合のプロセス上限を超えてしまうので、Out of memory例外を出してCloudStackが停止してしまう。インストール後速やかにこの値を1000以下(2.2.14と同様500で良いと思う)に設定する必要がある。

おそらくこのバグのad hocな対処が原因である。

2011年7月31日日曜日

間接照明を導入してみる

省エネでリラックス感があり、健康にも良いとされる間接照明を我が家でも導入してみたので、まとめてみたい。

まずはTVの裏の間接照明


TVの裏に間接照明を設置するのは、TVの眩しさを低減するという意味で目の健康に良いらしい。ってなことで、ホームシアターをやる人たちの間では間接照明の定番となっている。私もまずここから設置することにした。

TVの裏はあまりスペースがなく、また熱が発生すると色々と問題がある。よって直管型蛍光灯を照明として使用するのがもっとも適している。

軽く、大きくなく、値段が安いということで、日本グローバル照明の以下の製品を購入した。この製品には今回は使用していないが半分が反射板になっているカバーが付属している。直接光をコントロールしたい間接照明向きに作られているのだろう。こういう用途にはぴったりである。



設置の様子はこんな感じ。固定にはカーナビなどを固定するための自動車用の両面テープを使用している。

点灯すると、以下のような感じになる。

正面から見ると、こんな具合。

どうだろうか。まずまずの出来だと自画自賛している。

部屋全体をほんのり明るくする照明


TV裏の照明はこのような感じでいい雰囲気に仕上がったが、部屋が暗いままである。間接照明でほんのり明るくしてみたい。

直接光を用いず部屋を全体明るくするために、天井に照明を当てて反射光で部屋を明るくするという方法ある。こういう用途に使用できるのがアッパーライトだ。

アッパーライトとは、名前の通り天井を照らすための上向きの照明装置だ。直接光が目に入らないように、人間の目線より高い位置に設置するのが普通である。よって、形状としては170cm以上の棒状のスタンドの先に電球が上向きに付いているようなものが多い。

使用した製品は、この物ズバリではないのだが、以下のような製品である。


設置してみるとこんな感じ。

電球は白熱電球では電気代が怖いので電球型蛍光灯を使用している。最初東芝の製品を使っていたが、演色性に問題(全体的に緑がかる)があってオーム電機というメーカーの安価な製品に切り替えて使用している。といってもベストというわけではなく東芝よりマシというところ。電球についてはこれからもLED電球含め色々試してみたい。

TVの照明と組み合わせるとこんな感じだ。

間接照明のOn/Offはリモコンで


間接照明は複数の照明から構成されることが多い。これらの照明をいちいち手動でOn/Offしていたのではたまらない、ということで集中的にOn/Offするためのリモコンを使用している。

リモコンコンセントという以下のような製品である。


今は2灯をOn/Offするのみだが、800Wまで使用できるのでこれから何灯増えても間接照明のスイッチとしては困ることはなさそうである。

まとめ


以上のような感じで導入した間接照明。TVで映画を見ながらウィスキーをちびちびやるのは、なかなかのものである。

トータルのコストは5,000円程。この程度の出費でホテルのラウンジや喫茶店に居るようなリラックス感が得られるのだから安いものだ。

間接照明には副交感神経を刺激する効果があり健康にも良いとされているが、それはまたおいおい。

2011年2月11日金曜日

HomeBrewを使ってみる

HomeBrewは最近登場したMacOS X用パッケージマネージャ。同様なものにはMacPortsfinkがあるが、以下のような点はHomeBrew独特のものだ。

  • perlやrubyなどMacOS Xに最初からインストールされているものがあれば、積極的にそれを使用する。(例えばMacPortsはperlやrubyを必要とするパッケージがあれば、OSに入っているそれらを使わずに、わざわざMacPorts専用のperlやrubyをインストールするように作られている。)
  • パッケージのルール(Formulaと呼ぶ)がrubyで書かれる。
  • パッケージのインストール先として標準的な/usr/local/を使う。

これまではMacPortsのお世話になっていたが、MacPortsの複雑さ、OSにバイナリが存在するものまでいちいちコンパイルをしなければならない面倒さに何とかならないかと思っていたのでHomeBrewに移行してみることにした。

MacPortsのアンインストール

ガイドを参考に一気に

sudo port -f uninstall installed
sudo rm -rf \
    /opt/local \
    /Applications/DarwinPorts \
    /Applications/MacPorts \
    /Library/LaunchDaemons/org.macports.* \
    /Library/Receipts/DarwinPorts*.pkg \
    /Library/Receipts/MacPorts*.pkg \
    /Library/StartupItems/DarwinPortsStartup \
    /Library/Tcl/darwinports1.0 \
    /Library/Tcl/macports1.0 \
    ~/.macports

HomeBrewのインストール

Installationを参考にこのような感じで。

ruby -e "$(curl -fsSLk https://gist.github.com/raw/323731/install_homebrew.rb)"

パッケージのインストール

いつも使っているものを次々とインストール

brew install lv # などなど

FDcloneをインストールする

有ればあったで便利なファイラーFDcloneはHomeBrewのパッケージには存在しないが、HomeBrewならば簡単に追加することができる。

以下のようにアーカイブのURLを引数にcreateコマンドを実行する。

brew create http://hp.vector.co.jp/authors/VA012337/soft/fd/FD-3.00j.tar.gz

Formula名(パッケージ名)を聞かれるのでfdcloneと入力。

formula name [FD-3.00j]: fdclone
Warning: Version cannot be determined from URL.
You'll need to add an explicit 'version' to the formula.

エディタが開くのでFormulaファイルを編集する。とは言っても最初からある程度内容が自動的に記述されているので、必要に応じて変更・追加する程度。今回は以下のようにしてみた。

require 'formula'

class Fdclone <Formula
  url 'http://hp.vector.co.jp/authors/VA012337/soft/fd/FD-3.00j.tar.gz'
  homepage 'http://hp.vector.co.jp/authors/VA012337/soft/fd/'
  md5 '9e12c8a1480cc5f535bf6df852a0defc'
  version '3.00j'

  # depends_on 'cmake'

  def install
    system "make", "PREFIX=#{prefix}"
    system "make MANTOP=#{man} install"
    system "make MANTOP=#{man} jcatman"
  end
end

ここまでできたら、あとは普通にinstallコマンドを叩く。

brew install fdclone

気になった点

  • MacPortsでは可能だった日本語manが表示できない。MacPortsのGNU groffは日本語に対応しているが、MacOS Xのgroffは日本語に対応していない。従ってHomeBrewパッケージの日本語manも表示ができない。
  • sshfsが動かない。原因は今のところ不明。