2013年3月18日月曜日

Windows時間をローカル時間に変換

UNIX系OS(C言語なども)は、1970年1月1日0時0分0秒 からの秒数をシステム時刻としてもっています。 一方、Windowsでは、1601年1月1日0時0分 からの経過時刻を 100ナノ秒単位 で持っているそうです。 ActiveDirectryの情報をPerlで取得したりすると、最終ログイン日時やパスワード変更日時が上記の秒数になって表示されているので、変換する必要があります。 Perlで書くと以下のようになります。 #!/usr/bin/perl $time = shift(@ARGV); #100ナノ秒単位なので秒に変換 $time = int($time / 10000000); #1601年1月1日0時0分から1970年1月1日までの経過秒数を引く。これでUNIX時間になる。 $time = $time - 11644473600; #UNIX時間からローカル時間に変換 ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime($time); $year = $year+1900; $mon++; print $year."/".$mon."/".$mday;

2012年8月18日土曜日

Macでcrontab -e がエラーになる

Macでcron実行をしようとして crontab -e を実行するが、保存時に以下のようなエラーになる。 crontab: no crontab for username - using an empty one crontab: "/usr/bin/vi" exited with status 1 以下のようにすると解決した。 (Mac OS X 10.7 Lionで) export EDITOR=/usr/bin/vim を実行後、crontab -e

Macbook(Late 2007)のトラックパッドのクリックボタンが押しっぱなしになった

Macbook(Late 2007)のトラックパッドの調子がおかしくなった。
クリックボタンに少し触れただけでも反応するようになり、ついには押しっぱなしになるようになってしまった。

検索してみたところ、以下の事例を発見。

長時間使っているとトラックパッドやマウスの左クリックが出来なくなる


似てる状況なのでバッテリーを確認したところ、やはり膨らんでた。
外すと直ったので、同じ状況のようだ。
バッテリーを買い直すしかないか・・・。

調べてみたところ、以下が一番安い。


2012年8月11日土曜日

picasaに写真をアップロードするコマンド

Picasaに写真をアップロードするコマンドを発見。

googlecl

Pythonが必要です。
インストールは、python setup.py install コマンドを行うだけ。
初回実行時にブラウザが起動し、認証を行えば使用できます。

使い方も非常に簡単。

【アルバムを作成してアップロード】
google picasa create --title "albumname" folder/*.JPG

【現在あるアルバムに画像を追加】
google picasa post --title "albumname" folder/*.JPG

【アルバム名の表示】
google picasa list-albums

【アルバム内の画像ファイル表示】
google picasa list --title "albumname"

これらを使えば、シェルスクリプトでPicasaに自動的に画像をアップロードすることも出来そうです。

2012年7月12日木曜日

QNAP TS-439ProIIのmakeでエラー

QNAPはデフォルトでTelnetログインできるのが魅力。
ipkgパッケージでたいていのものはそろうが、それでも数が少ないため、make せざるをえない場合がある。
ところが、普通にmakeすると、以下のようなエラーが出る場合がある。

libtool: link: cannot find the library `/home/slug/optware/ts509/toolchain/i686-unknown-linux-gnu/i686-unknown-linux-gnu/lib/libstdc++.la'

どうやら、QNAPの中の人の環境がこのようなディレクトリ構成になっているらしい。
よって、以下のようにシンボリックリンクを貼ってあげる。


mkdir -p /home/slug/optware/ts509/toolchain/i686-unknown-linux-gnu/bin/
mkdir -p /home/slug/optware/ts509/toolchain/i686-unknown-linux-gnu/i686-unknown-linux-gnu/lib/  
ln -s /opt/bin/ld /home/slug/optware/ts509/toolchain/i686-unknown-linux-gnu/bin/i686-unknown-linux-gnu-ld
ln -s /opt/bin/as /home/slug/optware/ts509/toolchain/i686-unknown-linux-gnu/bin/i686-unknown-linux-gnu-as
ln -s /opt/lib/ /home/slug/optware/ts509/toolchain/i686-unknown-linux-gnu/i686-unknown-linux-gnu/lib/

これでも、以下のようなエラーがでる場合がある。

undefined reference to `__sync_fetch_and_add_4'

これは、TS-439 Pro II のCPUの指定をするようにフラグを設定してconfigureとmakeすると解決した。

export CFLAGS="-march=i686"
export CXXFLAGS="-march=i686"
./configure
make CFLAGS="-march=i686" CXXFLAGS="-march=i686"

これで、MeCab、Rubyなどもインストールできた!

2012年7月10日火曜日

TeraStation Pro TS-HTGL/R5 のE04エラーからの復旧

職場で使ってるTeraStation Pro(TS-HTGL/R5)が起動しなくなった。
電源を入れても、Now System Loading... のまま動かない。たまに、E04エラーになる。

というわけで、復旧作業を試みた。
すべてネットワークから切り離し、クロスケーブルを用意。
ファームウェアの最新版をダウンロードしておき、接続するPCのIPアドレスは192.168.11.1 にしておく。

1.フタを開けて、リセットボタンを押しながら起動。
フタをあけた左上の赤いボタンがそのボタンらしい。押しながら起動すると、”EM Mode Start"とディスプレイに出て起動が始まるが、やはりそのまま動かない。失敗。


2.HDDを入れ替えて起動。
 HDDをはずし、順番を入れ替えた。まずは1番と3番を入れ替えてみると、無事に起動。
 液晶に出るIPアドレスは192.168.11.150。用意したPCを接続し、ファームウェアアップデートを実行。再起動すると、元通り!

何が原因か結局わからなかったが、1番のディスクのみにして起動するとダメで、3番のみにすると起動したので、1番のディスクのシステム領域にエラーがあったのかも。

2012年7月1日日曜日

QNAPのNASでcron

QNAPのNASでcronを動かす場合、crontab -e ではダメです。
vi /etc/config/crontab で編集し、 crontab /etc/config/crontab でセットします。