Ramen Timer for bash

時間を見つけては地味にシェルスクリプトの覚書に書きたししています。
ところで echo を man にてオプションを見てみると

-n で改行動作を行わない
-e でバックスラッシュによるエスケープ

ができるのか、単純に文字列そのままを stdout に出力するだけと勘違いしていた。

$ echo -e "きもー\tい\nあっちいけ\tてか死ね"
きもー い
あっちいけ   てか死ね
$

知ったからには何か作ってみないと気が済まない。
知って、積極的に書き出して、だけど何も作れない人、なんてマジで価値ゼロだもの。

#!/bin/bash

for i in {180..0}
do
    echo -e -n "$i  \r"
    sleep 1
done
echo timer_end

以上カップラーメンタイマーw

bash はこう書けば Python の range(整数) と同様に扱えるのね。
Ubuntu では bash 指定でないと dash になってしまうので /bin/bash 指定。
塗りつぶす必要がある部分は半角スペースで埋めておく、なるほどね。

よし新しいアプリとして公開、するようなシロモノじゃ無いよな。
ということで Blog に、どこかの知らない誰かの参考になればイイや。

どうでもいいが、先日原付でコケてしまい手を上げると鎖骨のあたりから激痛なう。
やっぱり折れている?
検索すると今の程度ならサポーター治療だけっぽいし、ほっとくべ。

shell

シェル・スクリプトの基本

こんなページをチマチマ作っているけど自分で勉強になるわ。
本や既存サイトから情報を集めて元 Windows ソフト作者っぽく書き換えているので。
C-c とかいう書き方はどうしても馴染めない、てか今の Linux でソレはないと思うし。

標準エラー出力のリダイレクトは 2> と書くなんて今日まで知らなかった。
C シェルは書き方が違うが Ubuntu 使いなら B シェルだけでいいだろう。

それと気がついたんだけど ImageMagic が入っていた、9.10 には無かったのを確認。
最初からなのか何かのパッケージにくっついていたのかは解らないけど。

display
convert
identify
import
xv
netpbm

のコマンドも使える、結構おもしろい。

$ convert -sample 160x90 input.jpg output.jpg
$ identify input.jpg

しかし SyntaxHighlighter 3.0.83 が出ていたので変更しようと思ったのだが…

Opera のフォントは相変わらずだな…
というか Opera も Chrome もアルファベットの下が欠けてしまう!
駄目だこりゃ、v2 のまま当面は様子見するか。

いや、アクセス状況を見ると Blog よりまとめページに力を入れたほうが良さそうなので。
Blog は終わったとかよく見かけるけど今まで日本人は使い方を間違えていたのが正されてきただけ。
とにかく結果として情報のまとめページのほうが検索上位に、つーことだろう。

しかし IronPython のまとめは全然アクセスが無い、まったく無い。
どうがんばっても Windows でスクリプトは受け入れられそうにないな、と感じる。

MP4 Container get_m4a Nautilus Script

以前 MPEG4 動画から AAC を抜く Nautilus Script にこんなことを書いた
BlackBerry Ubuntu Connect

これだと再生時間が変な表示になるしタグ編集もできない。
理由が解らなかったけど何を今ごろこんなのを見つけた。

iTunesのライブラリにAACファイルが追加できない | OKWave

そうか、素の AAC でなく MP4 コンテナとして抜かないと駄目なのか。
一応動画プレイヤーを作っている人なのにこんなのも知らないでいいのか俺…
とにかく、ならば ffmpeg に -vn オプションを付け拡張子を m4a 指定でイケそうだ。

#FFCOMMAND = "ffmpeg -y -i %s -acodec copy %s.aac"
FFCOMMAND = "ffmpeg -y -i %s -vn -acodec copy %s.m4a"

ついでに debug 用の表示メッセージボックスのコードも入れて
コマンド出力の確認をしたい場合はコメントアウトを外せばダイアログが出る。

#!/usr/bin/env python
#-*- coding:utf-8 -*-

"""
    get_m4a.py Nautilus Script
"""


import os
import commands
import gtk

FFCOMMAND = "ffmpeg -y -i %s -vn -acodec copy %s.m4a"

def debug_message(text, title):
    dlg = gtk.MessageDialog(None, gtk.DIALOG_MODAL, gtk.MESSAGE_INFO, gtk.BUTTONS_OK, text)
    dlg.set_title(title)  
    dlg.run()  
    dlg.destroy()

path_array = os.environ["NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"].split("\n")
for f in path_array:
    pos = f.rindex(".")
    r = commands.getoutput(FFCOMMAND % (f, f[:pos]))
    #debug_message(r, "Get AAC Message")

うん、コレなら再生時間も正しいし Rhythmbox でタグ編集も可能になった。
ついでに以前のコマンドで抜いた AAC もそのまま丸ごと m4a に変換できる。

もちろん BlackBerry で再生…
音が飛ぶんだが…

素の AAC なら飛ばないけど再生時間表示が Rhythmbox での算出と違う。
なんだよコレ、get_aac.py は残して追加するほうがいいな。

ついでに以前書いた Nautilus の場所バー直接入力切り替えだが。
Mandriva to Ubuntu p3
Ctrl+L でよかったのね、戻すには Esc でいい。
toggle.sh はもういらないな、つか一度も使ったことが無いような…
Linux に慣れると端末から Tab キー保管が簡単にできるディレクトリ名にしちゃうからね。

Canzona

連休前で忙しくプログラミングしていないので久々に音楽。

palepoli で検索すると今でもマニアックな漫画が一番上。
つーてもこの作者さんも間違いなく名前のネタ元は同じで Osanna だろう。

まぁこれと The Who の Tommy は何度も紹介していると思うが。
その Osanna のアルバムに Milano Calibro 9 ってのがある。
サントラだと聞いていたので避けていたがつい最近 YouTube で曲を見つけた。

YouTube – OSANNA – Canzona

こんなにグッとくる曲が入っていたとは知らなかった。
CD が全然売れないとかネットでよく見かけるようになった昨今。
やっぱり音楽はどこかで一度は耳にしないと購入するキッカケすら無いよね。

どうでもいいけどイタリアンでカンツォーネとはストレートな名前を付ける
new trolls のコンチェルト・グロッソも合奏協奏曲という意味だし。

テレビをまったく見ないので最近マスゴミが何を流行らせようとしているか知らないけど。
どっちにしろこういう音楽はどうせ流してくれないだろう。

そういえば昔 Il Balletto Di Bronzo の Ys の良さがイマイチ解らなかった。
今なら解るかな?と思ってこれを書きながら聴いてみた。

やっぱり悪くは無いけど自分にはイマイチ良さが解らないや。
評判は恐ろしくイイのだがイタリアン・プログレッシブなら全部オケではないわな。
PFM だけは万人受けすると思うけど。

YouTube – Premiata Forneria Marconi (PFM) – River of life

日本人なんて全然解らない。
ランカとシェリルくらいなものか、いやマジでマクロスの曲は結構いいと思う。