2016/12/28

DropboxのLAN同期

Dropboxで大量にデータを更新した場合に,インターネット経由で隣のマシンに動悸されるのは非効率です.P2Pないのかなと思ったら,TwitterでLAN同期というのがあると教わったのでその設定です.

https://www.dropbox.com/ja/help/137

早速設定を見直したら,既にONでした.つまり,デフォルトではONのようです.

では,何が必要か?というと,上記のヘルプの一番下に書いてある,
「LAN 同期には TCP ポート 17500 へのアクセスが必要です。」
がミソになってくると思われます.と思ったけど,firewall offだった...
というわけで,LAN同期が実行されてるのか否か...よくわからないままでした.なお,telnet hostA 17500 で接続可能なのは確認しました.


2016/07/30

Mariana諸島の地震による津波

マグニチュード:      7.7
発生日時:   2118  UTC JUL 29 2016 (7月30日 6時18分 日本時間)
位置:        北緯18.5,東経145.8(Mariana islands; マリアナ諸島)
USGS

津波の危険はありませんが,DARTでは観測されていました.





2016/07/28

ワードファイルの差し込み画像を更新する

ちょっとした発見に喜びを感じたので報告.

ワードファイルに画像を貼りこむこと自体は,挿入→写真→ファイルからの画像…で出来ますし,ドラッグ&ドロップでも出来るので特に悩ましいことは無いです.が,更新が結構面倒だなと思っていました.画像のサイズを縮小して調度よくしていたりする場合(多くの場合がそうだと思うのですが),一旦消して再度挿入するとまたリサイズしなければいけません.あと,編集履歴をONにしていると画像の差し替え自体も編集として残る(欲しい場合もあるかもしれませんが,差分が見えるわけじゃないので不要)ので邪魔でした.

それらを解決してくれたのが,「画像の変更…」.図の上で右クリック(Ctrl+クリック)で下の画像のようなメニューが出てくるので,画像の変更を選択します.挿入する画像を選択すると,同じ場所に同じ大きさで入ってくれます.編集履歴も付きません(それじゃ困る人も居るかもしれませんが).


こんなオプションが隠れていたとは・・・

2016/07/21

Imagemagickで複数枚の画像を1枚にまとめる

時系列で画像を作成した時や,様々な条件で画像を作成した際に複数枚の画像ファイルを1ファイルにまとめたいことがしばしばあります.時系列画像の場合なら,gifアニメを作るのも1つの手です.が,複数ページの図に出来ないかなと思っていたところ,PDFにしたら出来るんじゃないか!?と思ったら出来ちゃいました.やり方は,

convert *.png hoge.pdf

これだけ.特段のオプションは必要なく,1画像1ページのPDFが出来上がりました.流石 ImageMagick.流石 convert.



2016/05/03

2016/4/29メキシコ沖の地震による津波

2016/4/29 01:33 (UT) にメキシコ沖で発生した地震による津波のデータを見てみる.


震央に近いDART 43413の波形

NAOTIDEを使って潮汐補正をした結果が以下の図です.
NAOTIDEを用いて潮汐補正した波形

津波が観測されている付近を拡大





2016/05/02

NAOTIDEJを使った潮汐計算

津波の観測データ(波高や海底水圧)を見ると,最初に見えてくるのは海洋潮汐による1日に2周期の波です.

気象庁が設置したのDART 21346のデータのプロット

これを取り除く方法はいくつかあるようですが,海洋潮汐モデルを用いて必要な地点の予測計算をして引き算する方法があります.ここでは,国立天文台水沢で公開されているNAOTIDEJの短周期海洋潮汐モデル(NAO99Jb;日本周辺モデル)を使った潮汐補正を試してみました.日本周辺モデルは以下の範囲と解像度です.
対応範囲:110°E-165°E, 20°N-65°N
解像度:5 arcmin
日本周辺モデルの対応範囲

NAOTIDEJのREADMEより:

  • itmode = 1 : geocentric tideを計算します。geocentric tideは海洋潮汐と荷重潮汐の和です。海面高度計データの補正の場合はこれを使用します。
  • itmode = 2 : 海底を基準とした純粋な海洋潮汐を計算します。海底圧力計データ等の補正の場合はこれを使用します。


DARTのように海水面上にあるGPSブイのように,海面高度(波高)を計測している場合は,itmode=1を使うようです.S-netDONET等海底水圧計の場合は,itmode=2 を使うようです.

プログラムと海洋潮汐モデルは以下のファイルをダウンロードしました.
海洋潮汐予測プログラム:naotidej990909.tar.gz
海洋潮汐モデル:nao99Jb.tar.gz + nao99L.tar.gz
海洋潮汐モデル:nao99Jb_gc.tar.gz + nao99L_gc.tar.gz
  注) READMEに従ってテスト計算するには,_gc  が必要です.

naotestj.f が付属しているのでそれをベースにして,観測点の位置と
       x       = 146.192d0     ! East longitude in degree
       y       =  40.302d0     ! North latitude in degree
計算する時刻
c Start epoch
      iyear1  = 2016 ! year
      imon1   =    4 ! month
      iday1   =   17 ! day
      ihour1  =    0 ! hour
      imin1   =    0 ! minute
c
c End epoch
      iyear2  = 2016 ! year
      imon2   =    4 ! month
      iday2   =   19 ! day
      ihour2  =    0 ! hour
      imin2   =    0 ! minute
,出力間隔(DARTに合わせて15分)
c Output data interval in minute
      dt      = 15.d0           ! in minute
を修正して実行しました.NAOTIDEJの出力は,(何処かの)平均海水面からの潮位分なのでDARTの水深から直接引き算(naotestj.f はcm単位の出力で,DARTはm単位なので注意)すれば,潮汐補正されたデータを得ることが出来ます.
  注) 時刻はDARTもNAOTIDEJもUTなのでそのまま比較できますが,JSTなデータを扱う場合は注意.


DARTの観測データ(紫;左軸)から,NAOTIDEJで計算した潮汐(水色;右軸)を引き算した結果(緑;右軸)

観測(紫)と計算(水色)(縦軸のスケールは合わせてあります.1ticが0.2m)を比べると計算したNAOTIDEJの方が少し小さい振幅なので,結果(緑)に少し潮汐が残っています.

潮汐を引き算した結果のみのプロット


2016/04/22

ハワイの溶岩

ASTER高温領域検出システムで,ハワイの溶岩が拡大している様子が捉えられていました.


場所↓


このKMLをダウンロードすると,Google Earthでこの場所の過去の検出記録を見ることが出来ます.

News: Brush fire closes roads near Diamond Head

2016/04/21

ORCID

GRLで論文を出版したくば,ORCIDを取得せよ.というので作成した.なんか書こうと思ったけど,特に何も思いつかないや...とりあえず,何も書いてないのも何なので,ちょびっとだけ属性を設定した.Linkedinと同じくらい眠らせてしまいそう.

2016/04/02

アライト(Alaid)島の火山

カムチャッカの南側のアライト島(Alaid)の火山が撮れてました.サチってるのは雪かな?



撮影時刻(Time):03/31 00:52:04 撮影バンド13の輝度温度: BT=331.463[K]場所:(緯度(lat),経度(lon))=(50.858,155.559)   ...
ASTER 高温領域検出システムさんの投稿 2016年4月1日


2016/03/12

2年目の自家製味噌作り

2年目の味噌作りをやりました.今年も参考にしたのは,初めての味噌作り.ただ,まぁ,アレンジもしてる.去年,とりあえずお試しでやってみたら,思いの外美味しかったので今年は量を増やしてみました.乾燥大豆で2kg.材料比で考えると,大豆2kg,米麹2kg,塩1kgです.原材料の総重量で5kg.さらに水も含むので,これだと 5L の保存容器に入りきりませんでした.ざっくり,6kg超の味噌になるのかな.

まずは,大豆を水に浸します. 参考にしたサイトでは16時間以上となっていますが,長い方がこの後の煮豆が楽になって良いようです.今回は30時間以上浸したので,短時間の煮込みでもかなり柔なくなりました.去年は正直ここを端折った(それでも16時間はやったはず)ので後がきつかったです.

 我が家最大の鍋はカレーに盗られてしまったので,大きい雪平で準備中です.煮ます.灰汁をとります.水に浸けた時間が長かったのでこの時点で結構柔らかったです.

土鍋組みも分離. 土鍋は数時間の煮込み(?)が必要なので,限界までいれて作業中ずっと放置.コンロ1玉を専有.

厚手のビニールで潰すのも良いとあってのでジプロックでやってみました.確かに潰せたけど,よくよく探っていくと,まるまる大豆が残っていたりしました.潰すというより,揉むという感じでこねました.麹と混ぜてこのまま保存するという手軽さへの道もあるようです.

平行して準備した,塩きり麹. 麹の発酵を抑制するらしいですがポイントは不明.適当に混ぜただけです.ここに煮汁を入れる手順もあるようですが,私は大豆と混ぜてから煮汁で調整しました.

ジプロックから取り出した大豆に塩きり麹を混ぜる.大豆を冷まさなきゃいけないようなのですが,麹菌が死んじゃうからとかかな?全体の作業工程の中で,大豆を潰した後,冷ます工程がスタックする.

使った米麹.みやここうじだけで揃えるつもりだったんだけど,見間違えて買ったようだ...ま,気にせず混ぜて使います.みやここうじ500g x 2,200g x 1,みちのくこうじ200g x 4 が今年の米麹.

去年同様,圧力鍋も登場. マニュアルによると,豆は1/3の線まで.ちょっと緊張しながらですが,1/2で実行.水と豆込みで基準の線までです.圧力鍋のマニュアルをちゃんと確認した方が良いです.

 潰す(その2)

潰し終わり総量.これくらい.

どう考えても全部まとめてこねる器はないので,シンク台にそのまま展開.したにサランラップを敷いたけど,麹がとげとげしていて,破れまくったので放棄. 異物混入(ラップの切れ端)事件発生.全部取り除けていることを願う・・・

入りきらん・・・な(5Lの保存容器です).

というわけで,3段.一番上は麦酒グラス・・・.駄目だしされたので,2段目の上澄みと麦酒グラスの分でジップロックを1つ作って,シンク下(ガスコンロから一番遠いところ)に保管中.

果たして,6kg の味噌は1年もつのだろうか?いや,来年作る分が食べられるようになるまでだから1年半か・・・絶対無理だな.追加投入しよう.

2016/03/10

(続)iTerm2内のEmacsでmewを使う

iTerm2内のEmacsでmewを使うで徐々に整備しつつあるEmacs環境ですが,メールのURLがクリックできなくて不便(Gmail webインタフェースを使いたくなる)だなぁと思っていたのですが,ありました.

⌘+Click で Opens Filenames/URL だそうです.iTerm2ウインドウの中でコマンドを押すと,マウスカーソルが指に変わります.その状態で URL にマウスオーバーすると URL が強調されてクリックすることが出来るようになります.

M- を ⌘- で置き換える作戦は元記事に追記してますが,今のスクリーンショットはこんな感じです.
%, <, >, d, u, w, x が割り当てられました.$ は不許可.

(2016.3.29追記)
emacsで,等幅に文章を揃える M-q も ⌘+q で定義しました.iTerm2の終了ができなくなるわけですが,まぁ,大丈夫かな.

2016/03/03

gnuplotでDARTの観測記録をプロットしてみる

インドネシアのスマトラ島(Sumatra)沖で,M7.8の地震が2016-03-02 12:49:48 (UTC)に発生しました.幸い横ずれだったようで津波はほとんど発生していません.


No tsunami observed. Warnings issued by Indonesia and Marine Warnings by Australia (for Christmas and Cocos Islands)....
Posted by US NWS Pacific Tsunami Warning Center on 2016年3月2日


一方で,NDBC DART(Deep-ocean Assessment and Reporting of Tsunamis)では4点でトリガがかかっているのでその記録を gnuplot で波形を書いてみました.

DART観測点 23401 のデータを使ってみます.今回のイベントのデータはこのリンクから持って来ることが出来ます.データが記載されているtextboxから単にコピペして, DART23401.dat として保存しました.

フォーマットは,データの先頭に以下のように書いてあります.
#YY  MM DD hh mm ss T   HEIGHT
#yr  mo dy hr mn  s -      m
2016 03 02 16 59 00 2 3469.152
.....

========== DART23401.gp ===========
set size ratio 0.4    # 時刻(x軸)に長くする.

# データを読み込む時の時刻のフォーマット.timefmtに使える記号は help timefmt で
# 確認できます.
set xdata time
set timefmt "%Y %m %d %H %M %S"

# x軸の目盛の書き方も timefmt と同じやり方で指定します.\n で改行も出来ます.
set xlabel 'Time [UT]'
set format x "%m/%d\n%H:%M"

set ylabel 'meters'

set output "DART23401.png"
set term png enh size 1080,480    # size ratio 0.4にしたので横長の画像サイズ
plot "DART23401.dat" u 1:8 lt 0 w l notitle \
, "< ../DART/readData.pl DART23401.dat" in 0 u 1:8 lc 6 lt 5 t '15-min', \
"" in 1 u 1:8 lc 2 lt 4 t '1-min' \
, "" in 2 u 1:8 lc 7 lt 5 t '15-sec'
unset output
# readData.pl は,
# T = Measurement Type;
#     where 1 = 15-minute measurement;
#               2 = 1-minute measurement;
#               3 = 15-second measurement
# の3つに分割して(間に空行を2つ入れる)出力するためのスクリプトです.
# 色分けしないなら, plot "DART23401" u 1:8 lt 0 w l だけでプロット出来ます.


x軸(時刻)を指定してプロットしたい場合は, set xrange を使いますが,フォーマットは timefmt で設定した書式に従って,xrange を設定します.例えば,地震動等の影響で見えている最初の振動を拡大するには以下のようにします.この書式は,format x のものではなく,読み込むときに設定する timefmt です.
set xrange ["2016 03 02 13 04 00":"2016 03 02 13 08 00"]


他の3点のデータも下記からダウンロード出来ます.
DART 56003


DART 23227


DART 56001

全データを一定のxrangeにして縦軸のスケールも合わせて,長周期成分を取り除いたデータを axis x1y2 で追加して作成したpng を montage で合成しました.
montage DART?????.png -geometry 540x240 DART.png


<< help timefmt より抜粋>>
       Format       Explanation
       %d           day of the month, 1--31
       %m           month of the year, 1--12
       %y           year, 0--99
       %Y           year, 4-digit
       %j           day of the year, 1--365
       %H           hour, 0--24
       %M           minute, 0--60
       %s           seconds since the Unix epoch (1970-01-01, 00:00 UTC)
       %S           second, integer 0--60 on output, (double) on input
       %b           three-character abbreviation of the name of the month
       %B           name of the month


2016/02/26

iTerm2内のEmacsでmewを使う

Macのターミナルソフトとしては,iTerm2 がお気に入りです.作業は基本的に screen で管理しているので,iTerm2 の中でEmacsも起動しています.そんな環境で Mew を使おうとすると,メタキーが非常に困ったことになってました.要するに,M-d を入力しようと思えば,ちゃんと [ESC] キーを押して,,,とやる必要がありました.pureなLinuxを触ってた時は, Alt キーが M- の役割をしてくれていたので不便はありませんでした.

(使いたいのは, Mew でメールをゴミ箱に入れずに消去する M-d です.何故かと言うと,Gmail の IMAP を使っている場合,受信トレイ(inbox)からの削除がアーカイブを意味するので...)

どこの誰のキーを変更するのが良いか悩んでいたのですが,やっと iTerm2 でコマンドキーをいじればよさ気なことに気づいて,設定したところ,うまくいきました!

iTerm2 の環境設定を出します(コマンドキー + , ).
Keys タブを出すと,右側に "Key Mappings" というリストがあり, + で追加できます.
Keyboard Shortcut: にコマンド+d を入力して,Action: で "Send Escape Sequence" を選択して, ESC+ に d を入力します.
これで iTerm2 のコマンド+d が Emacsに M-d で渡されます.

果たして副作用は何かないか....

M-x も mew を起動する時に必要なのを忘れてました(起動した状態でこの設定をやってたので).今のところ,⌘-d と ⌘-x を設定しました.

(2016.3.1追記)
その後,徐々に M- を頑張って [ESC] 押していたことが判明して,
<, >, d, u, w, x が追加されました.結果,⌘+w で「タブを閉じる」が無効になりましたが,iTerm の場合は中のシェルを exit すればタブが消えるので実害は少ないから気にしないことにします.むしろ,M-w (コピー)をしたくて ⌘+w してタブが消えていた実害が無くなった方が有効ですね.

(2016.3.2追記)
ページスクロールの M-v を ⌘+v で割り当ててしまいました...これはペーストだから無茶ですね.やめました.

(2016.3.3追記)
spell checkをemacsの中で呼び出しやすくするために ⌘+$ を割り当てようとしたら,スクリーンショットのショートカットにキーを奪われてしまって,そもそも設定画面に入力することすら出来ませんでした.⌘+$ は使ってるので諦めるか・・・

(2016.3.10追記)
⌘+%は置換(query-replace)で使えますね.徐々に増えてきた.でも,増える度に端末3つ全部にちゃんと設定しないと手が崩壊する(^^ゞ

2016/02/25

gnuplotフォントでエラー

自分が管理しているワケじゃない環境で,gnuplot が font 周りでエラーを出したので調査.

エラーメッセージ:
Could not find/open font when opening font "arial", using internal non-scalable font

scalableなフォントがないので,non-scalable なフォントで代用しますよということなので,見た目がきちゃないフォントになってしまいました.警告なのでグラフは書けます.環境は,CentOS 6.6 / gnuplot 4.2 patchlevel 6です.

対処策:
export GDFONTPATH=/usr/share/fonts/liberation
export GNUPLOT_DEFAULT_GDFONT=LiberationSans-Regular
GNUPLOT_DEFAULT_GDFONTはこのディレクトリにあるやつからお好みで選べば良いと思います.サンセリフ体の標準であるこれで良いと思いますが・・・.

参考(というか答えそのものですが...):
http://www5a.biglobe.ne.jp/~nkgwtty/nn_gnuplot.html

2016/02/13

友朋堂閉店(T^T)

つくば市に3店舗を持つ書店「友朋堂」が閉店してしまいました.

22時までやってるから,夜あれが欲しいと思ってからでも間に合うからしばしば行ってた.欲しいと思うものが大抵置いてあるのが凄いよなぁ.10年来知ってる店だったけど,ツイート見てると「数十年」ってみんな書いてて凄いな.

Togetterまとめ:




つくばの文化の中心にいた友朋堂が閉店するという突然のニュースに驚いている方も多いと思います。店長さんと話しましたが、今までお世話になった人にあいさつもできないことが残念だし申し訳ないともお話されていました。今日の22時に梅園店が閉店というこ...
Posted by 友朋堂にメッセージを伝えよう! on 2016年2月11日


「つくば 書店」の検索結果↓いずれ友朋堂3店舗が消えてしまうのか・・・
 


2016/02/10

Acrobat reader DCのツールパネルウィンドウを消す

Acrobat Proを買ってからは,面倒なのでPDFを見るだけでもAcrobat Proを使っていたのですが,どうにも落ちやすくてイライラするので Adobe Reader に .pdf ファイルの関連付けを戻しました.が,どうにも右側に出てくるパネルがうざい.デフォルトで出てこないようにしたいのだけどなかなか設定が見つからなかったのでそのメモです.
PDFを書き出しとか,PDFを作成,PDFを編集って滅多にやることじゃないので隠れていてもらって結構ですよね.

「ツールパネルウィンドウ」と言うらしい

名称は,タイトルにもある通り,「ツールパネルウィンドウ」と言うそうです.「表示」→「表示切替」→「ツールパネルウィンドウ」(Shift+F4)で表示・非表示が切り替わったのでそういう名前のようです.

が,コマンド+,で Acrobat Readerの環境設定を呼び出しても相当する設定が見つかりません.
が,左側の文書にある「各文書のツールウィンドウを開く」のチェックを外すことで出なくなりました.なんなんだかなー.ツール「パネル」ウィンドウという名称は何だったのか.



2016/02/08

ワードのデフォルトのフォントを変更する

最近,ちょっとだけフォントのことを考えるようになったところですが,日本語ワードを使っている場合に英語で文書を書き始めると,古のフォント(?) Century が使われるという罠にもろにハマってました.というわけで,思い切ってデフォルトのフォントを変更してしまうことにしました.対象は Microsoft Word:mac 2011です.

注)フォントやデザインについてド素人が書いてます.

書式のフォントからフォントメニューを呼び出します.

ここで,日本語(ヒラギノ明朝Pro W3)と英語(Times New Roman)を設定して,[規定値として設定…]をクリックします.
「NORMALテンプレートを基に作成されるすべての新しい文書に影響します.」という警告が出て,「はい」をすると設定されます.変更前は,MS明朝とCenturyでした.英文の方は,Calibri の方が現代的(英語のWordのデフォルト)のようですが,長文をサンセリフ体で書くと読みにくいという話もある(サンセリフ体の方が高速で読めるから忙しいビジネス文書向きという話もあるようです)ので,その前にデフォルトになっていた Times New Roman に無難にしておきました.

参考:
伝わるデザイン
現代的な英語フォントを選ぶだけでも洗練される
    Century を見るのは100年前の書物を読む時くらい・・・

2016/02/06

Mac OSXでコマンドラインからGUIアプリを起動する方法

Mac OSXでコマンドラインからGUIなアプリケーションを起動するって,出来るようですんなり行きません.Safariの場合の例です.

/Applications/Safari.app/Contents/MacOS/Safari

とすると起動はしてくれますが,既に起動してるSafariとは別プロセスになっちゃって,DockにもSafariが2つ出てきてしまいます.


これを回避するには,openコマンドを使ってアプリを起動します.

open -a /Applications/Safari.app/Contents/MacOS/Safari

そして,

open -a Safari

で省略して起動することも出来ます.で,さらに開きたいページを引数にして,

open -a Safari http://www.google.co.jp/

として起動できます.やってみると分かりますが,引数無しで起動すると,今開いているWindowが手前に来ます.URLを引数で指定すると,新しいWindowで開きます.

2016/02/04

gnuplotで使える色

gnuplotで線の色を変えたい場合,

  plot "data" lt 3

などとして(ltをlcにすれば,色だけを指定)指定します.どんな色が使えるかは,test コマンドでplotしてみると分かります(set terminal 毎に異なります).

set term png
set output "test.png"
test
unset output

で作成したのが以下のプロットです.

ですが,例えば白の線を書きたいと思っても番号がありません(白じゃ見えないじゃないかと言われるかもしれませんが,込み入った線の上から白で線を書きたくてこの発想に至りました).そのような時は,色の名前で指定することも出来ます.

  plot "data" w l lc rgb "white"

どんな色の名称を使用できるかというのは,

  show colornames

で確認出来ます.

        There are 111 predefined color names:
  white              #ffffff = 255 255 255
  black              #000000 =   0   0   0
  dark-grey          #a0a0a0 = 160 160 160
  red                #ff0000 = 255   0   0
  web-green          #00c000 =   0 192   0
  web-blue           #0080ff =   0 128 255
  dark-magenta       #c000ff = 192   0 255
  dark-cyan          #00eeee =   0 238 238
  dark-orange        #c04000 = 192  64   0
....

冒頭に書いてある通り,111種類定義されているようです.

2016/01/29

筑波山メガソーラー開発計画(進行中)

太陽光発電って本当にペイできんのかな?って懐疑的な自分ですが,他所様のやることにとやかく言うつもりもないと思っていたのですが,まさかの筑波山で木が切り開かれて建設されるとは思ってもみませんでした.

現地の様子がFacebookに出ています.
さらに,署名(様式ダウンロードして郵送)とオンライン署名(Change.org)が始まっています.

筑波山山麓で進められている, 全ての太陽光発電施設の建設中止を求めます(Change.org)
筑波山太陽光発電計画 反対署名のお願い(つくちゃん)



筑波山における太陽光発電事業の概要現在,筑波山で4 箇所の太陽光発電事業が計画されています.そのうち3 箇所が水郷筑波国定公園に指定され,2 箇所が土砂災害警戒区域に指定されています.
Posted by 筑波山の自然、生活を守り隊 on 2016年1月27日


2016/01/27

太字や斜体を使う場合のフォント選び

はっきり言って,今までスライドを作る時にどのフォントが良いか?ということを真剣に考えた事はなかったです.そもそも,斜体に「対応した」フォントか否かなんていう分類があること自体知りませんでした...伝わるデザイン(研究発表のユニバーサルデザイン)をきっかけに少し考えてみることにしたので適度に実験報告です.



参考資料)
伝わるデザイン(研究発表のユニバーサルデザイン)

2016/01/20

Perlでuniq

データリストとか眺める時に,項目数を数えたり,重複を排除して数えるっていうのはよくやります.Unix系のコマンドラインなら,

     % cat list | sort | uniq | wc -l

で出来ます.これをPerlでやりたいなと思ったが,どうやらuniqはPerl標準にはない模様.少し調べてみると,Array::Uniq で出来そうなので,

     % cpan install Array::Uniq

で投入.これが Mac での出来事.

***注***
このまま記事は残しますが,Perl で uniq するだけなら,keys (連想配列) する方が自然でした...こんなことも忘れてるとは(TдT)

     foreach (@input) {
       $xx{$_} = 1;
     }
     sort {$a <=> $b} keys %xx;


*******

で,Debian 環境でも同じスクリプトを動かす必要が出てきたので持って行った.

     % apt-cache search Array::Uniq

で, libarray-unique-perl が引っかかったので, install しても Array::Uniq が無いと言って動かない.よく見ない私が悪いのは明らかなのだが,入ったのは Array::Unique だった... Debian パッケージがさくっと見つかって,するする行けると思えていたのでなかなか衝撃的でした.

パッケージシステムにどっぷり(下手に逸脱したくない)なので,cpan で一般ユーザでインストールして .zshenv に PERL5LIB 書いて対処することにした.こんなこともあるんだなぁー.

ちなみに,Array::Uniq は uniq コマンドと同じ考えで良くて,

                uniq sort @input; (uniq 相当 ※重複をなくして出力)
                distinct sort @input; (uniq -u 相当 ※重複している行だけを出力)
                dups sort @input; (uniq -d 相当 ※重複していない行だけを出力)

だそうです.一方で, Array::Unique は,  @array に値を入れる都度 uniq が発動されるようです(使ったことはありません).

(余談)
@ から後を入力してたら,ユーザ候補が出てきた. Blogger も @ でユーザ管理してるんだっけ? Twitter の流儀を Facebook も流用してたりしてますが(Twitterより前の文化は知りません).

2016/01/07

gifアニメの作り方(ImageMagick)

gifアニメを作成する方法はたくさんあると思いますが,Mac で ImageMagick を入れてるなら,コマンドラインで作れます.convert コマンドは拡張子で変換対象を推測してくれますが,入力ファイルが複数あって,出力が gif の場合は gifアニメーションを作ってくれます.つまり,,,

       % convert *.jpeg hoge.gif

で gif アニメが作成されてしまいます.ただし,これだと1回流して終わりです.あと,切り替えがとても速いです.ので,

       % convert -loop 0 -delay 50 *.jpeg hoge.gif

で0.5秒切り替えで,無限ループ( -loop が繰り返し回数.0が無限 )になります.

再生の仕方ですが,open hoge.gif や,ダブルクリックで開くと,プレビューで開いてくれます.が,プレビューだと,gif アニメとしてではなく,各コマとして表示されてしまい,動画になってくれません.ブラウザだと gif アニメとして再生してくれるので,ブラウザで,

     file:///Users/(username)/

を開いてたどっていけば,再生できます.

ちなみに,今時のデジカメだと数Mピクセルとかあって,メガバイトクラスだと思います.それを複数枚つなげて gif アニメにすると巨大なファイルになってしまいます.そこで,

     % convert -loop 0 -delay 50 *.jpeg -geometry 960x hoge.gif

などとして出力のサイズを指定してあげると程よいサイズに出来ると思います.この例では,横方向のピクセル数を指定しています.縦は勝手に比例で決めてくれます.なお,元画像の画素数は,

        % identify foo.jpeg

とすると分かります.

gnuplot で書いたグラフを gif アニメにしても良いでしょう.
ImageMagickはMacPortsで入れてます.