tag:blogger.com,1999:blog-56493565721226592702024-02-19T11:10:57.946+09:00ubulog主にubuntuとEmacsに関してのメモなどUnknownnoreply@blogger.comBlogger190125tag:blogger.com,1999:blog-5649356572122659270.post-2876410580313147502013-02-26T16:49:00.000+09:002013-02-26T16:49:33.119+09:00ubuntuのpolipoをupstartから起動するようにした 最近 <b>polipo</b> がしょっちゅうセグフォして落ちるので、<b><span style="color: #990000; font-size: large;">自動的に再起動する</span></b>ようにしよう。どうせなら <b><span style="color: #6aa84f; font-size: large;">upstart </span></b>対応にしようそうしよう。ということでしてみました。<br />
<br />
<br />
<br />
まず既存のinitabで動作しているのをやめます。バッティングしてしまいますからね。<br />
<br />
<br />
<blockquote class="tr_bq">
sudo service polipo stop<br />
sudo update-rc.d polipo disable</blockquote>
これで止まります。<br />
<br />
<br />
<br />
次に、以下の内容を <i>polipo.conf</i> という名前で、 <i>/etc/init/ </i>以下に保存します。<br />
<br />
<br />
<br />
<blockquote>
<span style="color: indianred;"># </span><span style="color: indianred;">polipo - polipo web cache<br />
</span><span style="color: indianred;">#</span><span style="color: indianred;"><br />
</span><br />
<span style="color: darkseagreen;">description</span> <span style="color: orange;">"polipo web cache"</span><br />
<br />
<span style="color: darkseagreen;">start</span> on local-filesystem or runlevel [2345]<br />
<span style="color: darkseagreen;">stop</span> on runlevel [016]<br />
<br />
<span style="color: darkseagreen;">respawn</span><br />
<br />
<span style="color: darkseagreen;">env</span> NAME=polipo<br />
<span style="color: darkseagreen;">env</span> USER=proxy<br />
<br />
<span style="color: darkseagreen;">post-start</span> script<br />
<span style="color: darkseagreen;">if</span> [ ! -e /var/run/$NAME ] ; then<br />
<span style="color: darkseagreen;">mkdir</span> -p /var/run/$NAME<br />
<span style="color: darkseagreen;">chown</span> proxy:proxy /var/run/$NAME<br />
<span style="color: darkseagreen;">chmod</span> 755 /var/run/$NAME<br />
<span style="color: darkseagreen;">fi</span><br />
<br />
<span style="color: darkseagreen;">sleep</span> 1<br />
<span style="color: darkseagreen;">PID=`pgrep</span> -u $USER $NAME`<br />
<span style="color: darkseagreen;">echo</span> $PID > /var/run/$NAME/$NAME.pid<br />
<span style="color: darkseagreen;">end</span> script<br />
<br />
<span style="color: darkseagreen;">post-stop</span> script<br />
<span style="color: darkseagreen;">rm</span> -f /var/run/$NAME/$NAME.pid<br />
<span style="color: darkseagreen;">end</span> script<br />
<br />
<span style="color: darkseagreen;">exec</span> sudo -u $USER /usr/bin/polipo -c /etc/polipo/config</blockquote>
<br />
保存し終えたら、<br />
<blockquote>
sudo initctl reload-configuration</blockquote>
して設定を再読み込みさせ、<br />
<blockquote>
sudo initctl start polipo</blockquote>
で polipo を起動してください。<br />
<br />
これで知らずにpolipoが落ちても自動的に再起動してくれます。便利♪<br />
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5649356572122659270.post-5856101545091281402012-09-17T13:07:00.000+09:002012-09-17T13:07:21.545+09:00境界線上のホライゾン SKK用辞書境界線上のホライゾンのSKK用辞書を作成しましたので置いておきます。<br />
そろそろ二期も終わりですけどね。<br />
<br />
以下からどうぞ。<br />
<a href="https://github.com/yama-natuki/horizon_jisyo">https://github.com/yama-natuki/horizon_jisyo</a><br />
<br />
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5649356572122659270.post-51303975376373673232012-08-31T21:00:00.000+09:002012-09-01T01:12:08.367+09:00CLIで天気情報を表示する。その2 <span style="font-size: x-small;">昔の下書きが出てきたのでリファインしてうぷ(^_^;)</span><br />
-----------<br />
以前紹介した <a href="http://ubulog.blogspot.com/2009/01/cli.html">weatherget</a> というコマンドが使えなくなった。weather.com がAPI利用するなら登録しろゴラァといってきたので、面倒くさいので利用をやめた。<br />
かわりの物を探したけどなかったので、しょうがないから作ってみた。<br />
<br />
<h2 style="color: #a64d79;">
<span style="font-size: x-large;">インストール</span></h2>
必要なライブラリを事前に入れておきます。
<br />
<blockquote class="tr_bq">
sudo apt-get install libxml-treepp-perl</blockquote>
次に git で、<br />
<blockquote class="tr_bq">
git clone git://github.com/yama-natuki/tenki.git</blockquote>
として <a href="https://github.com/yama-natuki/tenki"><b style="color: #674ea7;"><span style="font-size: x-large;">tenki.pl</span></b></a> を取得してきます。<br />
実行属性を付けたら、 <b><i>/usr/local/bin/</i></b> あたりに放り込んでおいてください。<br />
<br />
<h2 style="color: #cc0000;">
<span style="font-size: x-large;">使い方</span></h2>
<h3>
<span style="color: #38761d;">自分の地域のコードを調べる</span></h3>
<blockquote class="tr_bq" style="background-color: black; color: white;">
~$ tenki.pl --lookup tokyo<br />
<br />
<br />
空港名 コード 緯度 経度<br />
Tokyo RJTT 35.54999924 139.77999878<br />
Tokyo Heliport RJTI 35.63000107 139.85000610<br />
Kisarazu AB RJTK 35.40000153 139.91999817<br />
--------------------------------------<br />
観測所 ID<br />
Tokyo ICHAOYAN2<br />
Ohta-ku ITOKYOOH1<br />
Oota-ku ITOKYOOO2<br />
Kodaira ITOKYOKO2<br />
Shinjuku-ku,Tokyo ITOKYOSH4<br />
Setagaya ITOKYOSE3<br />
Zama MC8811<br />
Wako-City IU57FCU73<br />
Tokyo - Kashiwa MAS392<br />
Kamakurashi IKANAGAW10<br />
Hino Tokyo ITOKYOHI1<br />
Atsugi IKANAGAW1</blockquote>
<br />
もよりの<span style="color: #990000; font-size: large;"><b>飛行場</b></span>と<span style="color: #0b5394; font-size: large;">観測ポイント</span>の<b>コード</b>が出てくるので、それを打ち込みます。<br />
<br />
<h3>
<span style="color: #8e7cc3;">空港の場合。</span></h3>
<blockquote class="tr_bq" style="background-color: black; color: white;">
~$ tenki.pl --aircode=RJTT
<br />
<br />
場所 : 東京国際空港 (羽田空港), 日本<br />
更新時間 : 2009年7月15日(水) 15時0分<br />
天候 : ところにより曇り<br />
風 : 9.50 m/s, 南南西の風<br />
気温 : 31℃<br />
体感温度 : 34℃<br />
湿度 : 55%<br />
露点温度 : 21℃<br />
気圧 : 1003 ヘクトパスカル<br />
視程 : 10.0 Km</blockquote>
<br />
<h3 style="color: #bf9000;">
観測ポイントの場合。</h3>
こちらはおまけ程度。<br />
<blockquote class="tr_bq" style="background-color: black; color: white;">
~$ tenki.pl --pws=ICHAOYAN2
<br />
<br />
場所 : Sanno Hill, Ota-ku, Tokyo, Tokyo, Tokyo<br />
更新時間 : Last Updated on July 15, 2:49 PM JST<br />
天候 : --<br />
風 : 1.48 m/s, 南東の風<br />
気温 : 32.8℃<br />
体感温度 : 39℃<br />
湿度 : 59%<br />
露点温度 : 23.9℃<br />
気圧 : 1006.0 ヘクトパスカル</blockquote>
<br />
な感じで<span style="color: #674ea7;"><b>ほぼリアルタイムな気象情報</b></span>が入手出来ます。更新頻度は各観測ポイント次第。<br />
<br />
んで現実的な使い方としては自分の最寄りの空港のコードをネットで検索して調べます。<br />
<span style="font-size: large;"><a href="http://www.k-tanaka.net/airport/airport_code.html"><b style="color: #0c343d;">日本の空港のコード一覧なサイト</b></a></span>があるのでそれを利用すればいいでしょう。<br />
<br />
後はそれで表示すればOK. 空港は気象情報を飛行機に提供しなければいけないので、常に観測しているのです。<br />
<br />
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5649356572122659270.post-17714520938658916232012-08-30T17:58:00.002+09:002012-09-01T00:56:29.713+09:00Darkroom.el を更新 ほったらかしておいた <a href="http://ubulog.blogspot.jp/2010/02/emacs-darkroom.html"><b><span style="color: #674ea7; font-size: x-large;">darkroom.el</span></b></a> をちょこっと修正しました。<br />
X window 用ですが、windowsでも動くようにしてみました。<br />
ただしWinのフルスクリーン機能はテストしてません。動けばいーなー(遠い目)<br />
<br />
<br />
以下から<br />
<blockquote class="tr_bq">
git clone git://github.com/yama-natuki/darkroom.el.git</blockquote>
して取得して load-path の通ったディレクトリに放り込んでください。<br />
<br />
後は <i>~/.emacs</i> に<br />
<br />
<blockquote class="tr_bq">
(require 'darkroom)<br />(global-set-key [f11] 'darkroom-mode)</blockquote>
と書いて、F11キーを押せばDarkroomモードにトグル動作します。<br />
<br />
<br />
ほったらかしていましたけど、ちょくちょく自分では便利に使っていました。全画面にすると集中度合いに全然違いますものね。<br />
<br />
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5649356572122659270.post-10307406644592185472012-08-22T13:18:00.000+09:002012-08-22T13:22:41.441+09:00久しぶりの更新 えーブログのIDとパスワードを忘れてしまって更新出来ませんでしたorz<br />
いきなりブログのテンプレもバックアップを取らずに更新してしまい、元に戻せません。あっはっはっは……<br />
ubuntuは相変わらず使用しています。もちろんメインです。<br />
ぼちぼちてけとーに書ける事があったら書いていこうかなと思います。<br />
けど、もうubuntuって安定していて特に書かなきゃいけない事ってないんだよなあ……<br />
ブログテーマを変えるかっ(ォイUnknownnoreply@blogger.com0tag:blogger.com,1999:blog-5649356572122659270.post-74244862176749936142011-01-24T19:10:00.003+09:002011-01-24T23:47:39.048+09:00davfs2 で drivee に接続するネットワークストレージでは<span class="Apple-style-span" style="color: #bf9000;"><b>Dropbox</b></span>が使い勝手がいいのですが、今回 <a href="http://www.drivee.jp/private/"><b><span class="Apple-style-span" style="color: #990000; font-size: x-large;">drivee</span></b></a> という新サービスがはじまり、無料で3GBも使え、しかも <b><span class="Apple-style-span" style="color: #274e13; font-family: Georgia, 'Times New Roman', serif;">WebDAV</span></b> でアクセスできちゃうということなので、早速試してみました。<br />
<br />
<h4><span class="Apple-style-span" style="color: #741b47;">インストール</span></h4>事前に<a href="http://www.drivee.jp/private/">drivee</a>のアカウントを取得しておいてください。<br />
<blockquote>sudo apt-get install davfs2</blockquote><br />
<h4><span class="Apple-style-span" style="color: #351c75;">davfs2 のユーグループに自分のアカウントを追加する</span></h4><blockquote>sudo gpasswd -a ユーザ名 davfs2</blockquote><h4><span class="Apple-style-span" style="color: #38761d;">マウントポイントを作成する</span></h4><blockquote>mkdir ~/drivee</blockquote><h4><span class="Apple-style-span" style="color: #7f6000;">/etc/davfs2/secrets にIDとパスワードを記述する</span></h4>パーミッションに注意してくださいね。<br />
書式は、<br />
<blockquote>https://アカウント名.drivee.jp/ ID パスワード</blockquote><h4><span class="Apple-style-span" style="color: #45818e;">/etc/davfs2/davfs2.conf の設定を変更する</span></h4><blockquote>if_match_bug 1</blockquote>にしておく。<br />
<h4><span class="Apple-style-span" style="color: #8e7cc3;">fstab に追記する</span></h4><blockquote>https://ユーザ名.drivee.jp/ マウントポイント(フルパス) davfs noauto,users,uid=1000,gid=1000 0 0</blockquote>uid と gid は自分のアカウントに合わせてください。id コマンドで確認できます。<br />
<br />
<h4><span class="Apple-style-span" style="color: #f6b26b;">マウントしてみる</span></h4>以上設定ができましたら、マウントしてみます。<br />
<blockquote>sudo mount ~/drivee</blockquote><br />
後はファイルをコピーしたりして試してみてください。Unknownnoreply@blogger.com2tag:blogger.com,1999:blog-5649356572122659270.post-66336313998699777142010-09-11T22:10:00.003+09:002010-09-11T22:10:00.594+09:00Emacsから校正支援する Emacs から 日本語の<span class="Apple-style-span" style="font-size: x-large;"><b><span class="Apple-style-span" style="color: #134f5c;">校正支援</span></b></span>をする Emacs lisp を作ってみました。<br />
<br />
<br />
<h4><span class="Apple-style-span" style="color: #6aa84f;">インストール</span></h4> <a href="http://github.com/yama-natuki/yspel">github</a> からダウンロードしてきた<span class="Apple-style-span" style="font-size: x-large;"><i><span class="Apple-style-span" style="color: #cc0000;"> <a href="http://github.com/yama-natuki/yspel">yspel.el</a></span></i></span><a href="http://github.com/yama-natuki/yspel"> </a>を <i>~/emacs.d/</i> などの load-path の通った場所に置いてください。<br />
git コマンドからなら、<br />
<blockquote>git clone git://github.com/yama-natuki/yspel</blockquote>で落とせます。<br />
落としてきたら <i>~/.emacs</i> に<br />
<blockquote>(require 'yspel)</blockquote>と書いておきます。<br />
<br />
<br />
<h4><span class="Apple-style-span" style="color: #a64d79;">使い方</span></h4><ul><li>校正したいテキストファイルを開きます。</li>
<li>開いたら <b>M-x yspel</b> としてyspel を起動します。</li>
<li>ウィンドウが分割され、校正箇所がリストアップされます。</li>
<li><b>p</b>キーと<b>n</b>キーでリストを上下に移動します。</li>
<li>リターンキーで該当箇所にジャンプします。</li>
<li>ウィンドウを閉じるときは <b>q</b> キーです。</li>
</ul><br />
<br />
<br />
Yahoo API を利用して校正支援をおこなっています。<br />
yahoo API の制限で校正できるファイルサイズは 100KB までです。あまり大きいテキストだとうまくいかないかもしれせん。<br />
だいたい4000文字ぐらいが安心?<br />
文書が大きい場合は範囲選択して分割して M-x yspel するようにしてください。<br />
<br />
<br />
取りあえず、動くものを作った。多分動くと思う(^_^;)<br />
原稿や論文などの校正にお役立てください。メールを送信する前とかにもいいですね。<br />
<br />
まーしかしあれですね、Emacsはプログラムだけでなく普通の文章を書くのにも最高の道具ですね。Emacsから広辞苑は引けるわ、<a href="http://ubulog.blogspot.com/2007/08/emacs.html">Emacsから英辞郎もひける</a>わ、<a href="http://ubulog.blogspot.com/2007/08/emacs.html">Emacsから翻訳もできる</a>わ、<a href="http://ubulog.blogspot.com/2009/04/emacs-hatena-keywordel.html">Emacsからはてなキーワードを調べられる</a>わ、Emacsから原稿枚数も計算できるわ、Emacsから校正支援もできるわ。Emacs最高です。Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-5649356572122659270.post-15863897851329257182010-08-11T12:10:00.002+09:002010-08-16T13:38:10.260+09:00Emacs でファイルをsudoで開き直す。その2 <a href="http://ubulog.blogspot.com/2010/03/emacs-sudo.html">前回</a>、root所有のファイルをsudoで自動的に開き直してくれる Emacs lisp の記事を書きました。わりと好評だったようでよかったです。<br /> 今回、rootユーザだけでなく、他のユーザのファイルも同様に開いて編集したいとの<a href="http://ubulog.blogspot.com/2010/03/emacs-sudo.html?showComment=1281448476500#c3716186064435535801">リクエスト</a>がきたので、修正してみました。以下になります。差し替えて使ってみてください。<br /><blockquote><PRE><br /> (<FONT color="#ba55d3">defun</FONT> <FONT color="#9acd32">file-other-p</FONT> (filename)<br /> <B><FONT color="#fff8dc">"Return t if file FILENAME created by others."</FONT></B><br /> (<FONT color="#ba55d3">if</FONT> (<FONT color="#ba55d3">file-exists-p</FONT> filename)<br /> (<FONT color="#ba55d3">/=</FONT> (<FONT color="#ba55d3">user-real-uid</FONT>) (<FONT color="#ba55d3">nth</FONT> 2 (<FONT color="#ba55d3">file-attributes</FONT> filename))) t))<br /><br />(<FONT color="#ba55d3">defun</FONT> <FONT color="#9acd32">file-username</FONT> (filename)<br /> <B><FONT color="#fff8dc">"Return File Owner."</FONT></B><br /> (<FONT color="#ba55d3">if</FONT> (<FONT color="#ba55d3">file-exists-p</FONT> filename)<br /> (<FONT color="#ba55d3">user-full-name</FONT> (<FONT color="#ba55d3">nth</FONT> 2 (<FONT color="#ba55d3">file-attributes</FONT> filename)))<br /> (<FONT color="#ba55d3">user-full-name</FONT> (<FONT color="#ba55d3">nth</FONT> 2 (<FONT color="#ba55d3">file-attributes</FONT> (<FONT color="#ba55d3">file-name-directory</FONT> filename))))))<br /><br />(<FONT color="#ba55d3">defun</FONT> <FONT color="#9acd32">th-rename-tramp-buffer</FONT> ()<br /> (<FONT color="#8fbc8f">when</FONT> (<FONT color="#00bfff">file-remote-p</FONT> (<FONT color="#ba55d3">buffer-file-name</FONT>))<br /> (<FONT color="#ba55d3">rename-buffer</FONT><br /> (<FONT color="#ba55d3">format</FONT> <FONT color="#ffa500">"%s:%s"</FONT><br /> (<FONT color="#00bfff">file-remote-p</FONT> (<FONT color="#ba55d3">buffer-file-name</FONT>) 'method)<br /> (<FONT color="#ba55d3">buffer-name</FONT>)))))<br /><br />(<FONT color="#00bfff">add-hook</FONT> 'find-file-hook<br /> '<FONT color="#8fbc8f">th-rename-tramp-buffer</FONT>)<br /><br />(<FONT color="#8fbc8f">defadvice</FONT> <FONT color="#9acd32">find-file</FONT> (around th-find-file activate)<br /> <B><FONT color="#fff8dc">"Open FILENAME using tramp's sudo method if it's read-only."</FONT></B><br /> (<FONT color="#ba55d3">if</FONT> (<FONT color="#ba55d3">and</FONT> (<FONT color="#8fbc8f">file-other-p</FONT> (ad-get-arg 0))<br /> (<FONT color="#8fbc8f">not</FONT> (<FONT color="#ba55d3">file-writable-p</FONT> (ad-get-arg 0)))<br /> (<FONT color="#ba55d3">y-or-n-p</FONT> (<FONT color="#ba55d3">concat</FONT> <FONT color="#ffa500">"File "</FONT><br /> (ad-get-arg 0) <FONT color="#ffa500">" is "</FONT><br /> (<FONT color="#ba55d3">if</FONT> (<FONT color="#ba55d3">file-exists-p</FONT> (ad-get-arg 0)) <FONT color="#ffa500">"read-only."</FONT> <FONT color="#ffa500">"newer file."</FONT>)<br /> <FONT color="#ffa500">" Open it as "</FONT><br /> (<FONT color="#8fbc8f">file-username</FONT> (ad-get-arg 0)) <FONT color="#ffa500">"? "</FONT>)))<br /> (<FONT color="#8fbc8f">th-find-file-sudo</FONT> (ad-get-arg 0))<br /> ad-do-it))<br /><br />(<FONT color="#ba55d3">defun</FONT> <FONT color="#9acd32">th-find-file-sudo</FONT> (file)<br /> <B><FONT color="#fff8dc">"Opens FILE with root privileges."</FONT></B><br /> (<FONT color="#ba55d3">interactive</FONT> <FONT color="#ffa500">"F"</FONT>)<br /> (<FONT color="#ba55d3">set-buffer</FONT> (<FONT color="#00bfff">find-file</FONT> (<FONT color="#ba55d3">concat</FONT> <FONT color="#ffa500">"/sudo:"</FONT><br /> (<FONT color="#8fbc8f">file-username</FONT> file) <FONT color="#ffa500">"@"</FONT> (<FONT color="#ba55d3">system-name</FONT>) <FONT color="#ffa500">":"</FONT> file))))<br /></PRE><br /><br /></blockquote><br /> これで他のユーザのファイルでもそのユーザとして開いて編集する事ができます。<br /><br /><br /><br /><h4>2010/08/15:修正</h4><br /> 新規ファイルを開こうとするとエラーになってしまうのを修正した。<br /><h4>2010/08/16:修正</h4><br /> 他ユーザの新規ファイルを開けるようにした。<br /> 再度ダウンしなおして差し替えてください。Unknownnoreply@blogger.com4tag:blogger.com,1999:blog-5649356572122659270.post-89086621296131047852010-06-12T15:50:00.002+09:002010-06-12T16:08:19.335+09:00ubuntu 10.04 アップデートメモ 遅ればせながら ubuntu10.04 にアップグレードしたのでそのメモを。<br /><br /><ul><li>起動時のスプラッシュ画面が、Plymouthになった。</li><li>kernel option で <span style="font-style:italic;">vga=792</span> としていたが、コンソールが表示されなくなった。<br> フレームバッファの取り扱いも変更になたようだ。<br /> nvidia のプロプラなドライバを利用している場合は、<br /><blockquote>echo FRAMEBUFFER=y | sudo tee /etc/initramfs-tools/conf.d/splash<br />sudo update-initramfs -u<br /></blockquote>とし、<blockquote>sudo hwinfo --framebuffer</blockquote>として解像度の値を取得。 <span style="font-weight:bold;">Mode 0x031b: 1280x1024 (+5120), 24 bits</span>にしたいので、kernel optionに、<blockquote>vga=0x031b</blockquote>と指定。無事コンソールが高解像度で表示されるようになった。</li><br /><li>Emacs = Emacs23 となったので、以前のemacs22 と emacs-snapshot を削除。すっきり。</li><li>アップグレード時にxscreensaver が起動してるとダメよとメッセージが出たので、killした</li></ul><br /> トラブルはこんなものか? 今回はほとんどトラブルらしいトラブルがなかった。<br /> 特に問題もなくアップグレード作業は終わり。うーん書くことがない。困った(^_^;)<br /> 起動時間は少し速くなったかなあという感じ。うちのPCがロートルなので体感出来ていないだけですかね。<br /> ext4 が以前より体感で高速になっている。不思議。遅くなっているハズなんだけどなあ。<br /> そんなわけで特に問題もなく、きわめて快適です。Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5649356572122659270.post-22283557010359704562010-04-03T13:35:00.001+09:002010-04-03T13:43:25.354+09:00nautilusのゴミ箱表示に削除した日と元の場所を追加する <span class="Apple-style-span" style="font-family:'courier new';"><i><b>nautilus</b></i></span>のゴミ箱を一覧表示した時に「<span style="font-weight:bold;"><span class="Apple-style-span" style="color:#CC0000;"><span class="Apple-style-span" style="font-size:large;">元の場所</span></span></span>」と「<span style="font-weight:bold;"><span class="Apple-style-span" style="color:#33CC00;"><span class="Apple-style-span" style="font-size:large;">ゴミ箱に入れた日</span></span></span>」という項目を表示するパッチを当てたものをPPAに置きました。<br /> よろしかったらどうぞ。<br /><br /><h4><span class="Apple-style-span" style="color:#993399;">PPAの追加の仕方</span></h4><blockquote>sudo add-apt-repository ppa:yama-natuki/ppa</blockquote><br /><h4><span class="Apple-style-span" style="color:#000099;">インストール</span></h4><blockquote>sudo apt-get update<br />sudo apt-get upgrade</blockquote><br /><br />こんな感じ。<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgggy_qdMBZ5a-ds97-HpTbIFNB6bVFvBwzn8BBGSaRIDhk4XkKi5NrvR4kF8qOifvDhWAhuG9xuqrpT8kqhB17HVxp41_kHzXK2qiTsg39ZEyo2NW4i5bH2ec4lyGknzqVgR9YeI0yyZQ3/s1600/trash_parent.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 184px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgggy_qdMBZ5a-ds97-HpTbIFNB6bVFvBwzn8BBGSaRIDhk4XkKi5NrvR4kF8qOifvDhWAhuG9xuqrpT8kqhB17HVxp41_kHzXK2qiTsg39ZEyo2NW4i5bH2ec4lyGknzqVgR9YeI0yyZQ3/s320/trash_parent.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5455767171336242658" /></a><br /><br /> ubuntu 9.10 用です。Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5649356572122659270.post-3306979298059825072010-03-01T20:30:00.001+09:002010-03-01T20:30:01.591+09:00Emacs でファイルをsudoで開き直す tramp の最初の一回目の認証で待たされる感覚が嫌いなので、私はよくsudo をやらずにそのままファイルを開いてしまいます。そうして「ああ、やっぱり編集したい」となり、sudo で開きなおします。<br /> 作業の流れ的に美しくありませんし、毎回引っかかるのでストレスにもなります。<br /> vim ですと「:e sudo:%」でカレントファイルを sudo で開きなおしてくれるようです。いいなあ。<br /><br /> ということで <b><span class="Apple-style-span" style="font-size: large;"><span class="Apple-style-span" style="color:#FF6600;">自動的に sudo で開きなおしてくれる機能</span></span></b>を作ろうかと思ったら、<a href="http://tsdh.wordpress.com/2008/08/20/re-open-read-only-files-as-root-automagically/">すでにあった</a>のでそれを導入します。<br /> 元のlispは、書き込み不可なファイルすべてをsudoで開きなおすか聞いてくるのでうっとおしいので、少し修正しました。<br /> root所有なファイルを開いた時だけ、sudoで開き直すか聞いてくるようにしました。<br /><br /> 以下を <i>~/.emacs </i>にコピペしします。<br /><blockquote><PRE><br />(<FONT color="#ba55d3">defun</FONT> <FONT color="#9acd32">file-root-p</FONT> (filename)<br /> <B><FONT color="#fff8dc">"Return t if file FILENAME created by root."</FONT></B><br /> (<FONT color="#ba55d3">eq</FONT> 0 (<FONT color="#ba55d3">nth</FONT> 2 (<FONT color="#ba55d3">file-attributes</FONT> filename))))<br /><br />(<FONT color="#ba55d3">defun</FONT> <FONT color="#9acd32">th-rename-tramp-buffer</FONT> ()<br /> (<FONT color="#8fbc8f">when</FONT> (<FONT color="#00bfff">file-remote-p</FONT> (<FONT color="#ba55d3">buffer-file-name</FONT>))<br /> (<FONT color="#ba55d3">rename-buffer</FONT><br /> (<FONT color="#ba55d3">format</FONT> <FONT color="#ffa500">"%s:%s"</FONT><br /> (<FONT color="#00bfff">file-remote-p</FONT> (<FONT color="#ba55d3">buffer-file-name</FONT>) 'method)<br /> (<FONT color="#ba55d3">buffer-name</FONT>)))))<br /><br />(<FONT color="#00bfff">add-hook</FONT> 'find-file-hook<br /> '<FONT color="#8fbc8f">th-rename-tramp-buffer</FONT>)<br /><br />(<FONT color="#8fbc8f">defadvice</FONT> <FONT color="#9acd32">find-file</FONT> (around th-find-file activate)<br /> <B><FONT color="#fff8dc">"Open FILENAME using tramp's sudo method if it's read-only."</FONT></B><br /> (<FONT color="#ba55d3">if</FONT> (<FONT color="#ba55d3">and</FONT> (<FONT color="#8fbc8f">file-root-p</FONT> (ad-get-arg 0))<br /> (<FONT color="#8fbc8f">not</FONT> (<FONT color="#ba55d3">file-writable-p</FONT> (ad-get-arg 0)))<br /> (<FONT color="#ba55d3">y-or-n-p</FONT> (<FONT color="#ba55d3">concat</FONT> <FONT color="#ffa500">"File "</FONT><br /> (ad-get-arg 0)<br /> <FONT color="#ffa500">" is read-only. Open it as root? "</FONT>)))<br /> (<FONT color="#8fbc8f">th-find-file-sudo</FONT> (ad-get-arg 0))<br /> ad-do-it))<br /><br />(<FONT color="#ba55d3">defun</FONT> <FONT color="#9acd32">th-find-file-sudo</FONT> (file)<br /> <B><FONT color="#fff8dc">"Opens FILE with root privileges."</FONT></B><br /> (<FONT color="#ba55d3">interactive</FONT> <FONT color="#ffa500">"F"</FONT>)<br /> (<FONT color="#ba55d3">set-buffer</FONT> (<FONT color="#00bfff">find-file</FONT> (<FONT color="#ba55d3">concat</FONT> <FONT color="#ffa500">"/sudo::"</FONT> file))))<br /></PRE><br /></blockquote><br /><br /> これで dired や C-x C-f で普通にファイルを開いても、それがroot所有なファイルならば自動的にsudoで開きなおすか聞いてくれます。おかげでtrampを意識しなくて済むのでとても楽になりました。Unknownnoreply@blogger.com3tag:blogger.com,1999:blog-5649356572122659270.post-41157607721551717012010-02-23T20:30:00.000+09:002010-02-23T20:30:01.077+09:00Ubuntu のdvipdfmx でB5でPDFにしたら用紙サイズが変 前回 TeX を導入し、いろいろ弄くって PDF に変換したりして遊んでいたんですが、<blockquote>dvipdfmx -p b5 test.dvi</blockquote>とかして 用紙を B5 指定にしてPDFに変換しても、どうもレイアウトがずれる。あれーおかしいなあとかなり悩んだんですけど、どうも用紙サイズがB系列がISO規格になっていて、国内のJIS規格に対応していないのが原因だった。<br /><br /> とりあえず <b><span class="Apple-style-span" style="font-size: large;"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#FF0000;">linpaper</span></span></span></b> にB系列の用紙サイズを追加したものを <b><span class="Apple-style-span" style="font-size: x-large;"><a href="https://launchpad.net/~yama-natuki/+archive/ppa">PPA</a></span></b> にアップしておきましたのでどうぞ。<br /><br /><blockquote>dvipdfmx -p b5j test.dvi</blockquote>というように<b> <span class="Apple-style-span" style="font-size: x-large;">j </span></b>を付ければJIS規格のサイズで出力されます。<br />ついでに<b>はがき</b>サイズも追加しておきました。 <b><span class="Apple-style-span" style="font-size: large;"><span class="Apple-style-span" style="color:#999900;">hagaki</span></span></b> でいけます。<div><br /></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5649356572122659270.post-10228755810523645892010-02-18T19:58:00.000+09:002010-02-18T19:58:00.094+09:00Ubuntu 9.10 に TeX を入れてみた Ubuntu に TeX を入れてみましたので、メモ。<br />基本的に <a href="https://wiki.ubuntulinux.jp/JapaneseLocalizedDerivative/LaTeXForJapanese">ubuntu wiki</a> のとおり。<br /><blockquote>sudo apt-get install latex-env-ja<br />sudo apt-get install latex-extra-ja<br />sudo jisftconfig add</blockquote><br /><br />でインストールが完了します。簡単ですねー昔の事を考えたら素晴しい進化です。<br /><br /><h3><span class="Apple-style-span" style="color:#999900;">●dvipdfmx が <a href="http://oku.edu.mie-u.ac.jp/~okumura/jsclasses/">jsarticle</a> で動かない</span></h3> jarticle では問題なく動きます。新しい <a href="http://oku.edu.mie-u.ac.jp/~okumura/jsclasses/">jsarticle</a> ではエラーが出て動きませんでした。<br /> うちの環境では、<span style="font-weight:bold;">/etc/texmf/dvipdfm/dvipdfmx.cfg</span> の最下行に、<br /><blockquote>f jis-cjk.map</blockquote><br />を追記し、 <span style="font-style:italic;">sudo update-vfontmap</span> する事で動きました。<br /><br /><ul><li>出来たdviファイルを確認する時は→<br /> xdvi を使う。</li><li>PDFに変換するには→<br /> dvipdfmx を使う。</li><li>文字コードは→<br /> 当座はeuc-jpにする</li></ul><br /><br /> こんなとこかな? <br /> TeXなんて使ったのは遥か昔の事なので、完全に忘れています。使う機会もないんですが、テキストのメモなんかプリントアウトする際にちょちょいと整形するのに便利なので、今後使っていこうかな。かな。かなあ?Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5649356572122659270.post-55916049219252576512010-02-10T14:48:00.003+09:002010-02-10T16:59:20.035+09:00darkroom.el をちょこっと修正 事前にcolor-themeを設定しなくても済むようにしました。自動で保存・復元します。<br /> <a href="http://ubulog.blogspot.com/2010/02/emacs-darkroom.html">こちら</a>から落としなおして下さい。<br /><br /><span class="Apple-style-span" style="font-size:small;"><span class="Apple-style-span" style="color:#666666;">バグ<br /> DDSKK を起動すると背景色が復元しない><</span></span><div><span class="Apple-style-span" style="font-size:small;"><span class="Apple-style-span" style="color:#666666;"> 追記:ddskk をcvs先端にしたら直った。ということでオールクリアー。</span></span></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5649356572122659270.post-37227758432962533562010-02-08T21:12:00.004+09:002012-08-30T19:55:09.155+09:00Emacs で DarkRoom <b><span class="Apple-style-span" style="font-size: x-large;"><span class="Apple-style-span" style="font-family: 'lucida grande';"><span class="Apple-style-span" style="color: #000099;"><a href="http://they.misled.us/dark-room">DarkRoom</a></span></span></span></b> とはフルスクリーンで<b><span class="Apple-style-span" style="color: #cc0000;"><span class="Apple-style-span" style="font-size: large;">ただ文章を書くことのみに集中</span></span></b>させるというシンプルなエディタです。<br />
しかしこれが言うのとやるのとでは全然違います。最近のPCは画面も大きくなり、横長になり、様々なウィジットをデスクトップにちりばめ、タスクトレイにいろんアイコンが並んでいる。気がつくと情報過多なデスクトップになっているのです。その事に気づかされました。<br />
<br />
<br />
でまあ、当然これをEmacsでもできないかとなと思い、やってみました。<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUGOJjgAjRJm23BsrVEZodQcMPMhxE7eR-uoWQnugh1AA7cj4TNfaylEg2V4-qRHLfXW0fnC52UTIw9CQzmooIzBuM29OSdLSpPiacztpeh8zSyvihLs2U8huGowECa8eDpr1gwow66tpq/s1600-h/darkroom.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5435839755950980434" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUGOJjgAjRJm23BsrVEZodQcMPMhxE7eR-uoWQnugh1AA7cj4TNfaylEg2V4-qRHLfXW0fnC52UTIw9CQzmooIzBuM29OSdLSpPiacztpeh8zSyvihLs2U8huGowECa8eDpr1gwow66tpq/s320/darkroom.png" style="cursor: hand; cursor: pointer; display: block; height: 180px; margin: 0px auto 10px; text-align: center; width: 320px;" /></a><br />
<br />
以下の Emacs lisp を <b><span class="Apple-style-span" style="color: #009900;">darkroom.el</span></b> という名前で load path の通った場所に保存してください。<br />
次に <i>~/.emacs</i> に、<br />
<blockquote>
(require 'darkroom)<br />
(global-set-key [f11] 'darkroom-mode)</blockquote>
と追記すればOKです。<br />
後は <b>F11 </b>キーを押せばフルスクリーンでDarkRoomモードになります。<br />
<blockquote>
<pre><span style="color: indianred;">;;; </span><span style="color: indianred;">darkroom.el --- </span>
<span style="color: indianred;">;; </span><span style="color: indianred;">Copyright (C) 2010 yama</span>
<span style="color: indianred;">;; </span><span style="color: indianred;">Author: yama </span><span style="color: indianred;">;; </span><span style="color: indianred;">Keywords: </span>
<span style="color: indianred;">;; </span><span style="color: indianred;">$Id: darkroom.el,v 1.10 2010/02/25 10:22:02 yama Exp $ </span>
<span style="color: indianred;">;; </span><span style="color: indianred;">This program is free software; you can redistribute it and/or modify</span><span style="color: indianred;">;; </span><span style="color: indianred;">it under the terms of the GNU General Public License as published by</span><span style="color: indianred;">;; </span><span style="color: indianred;">the Free Software Foundation, either version 3 of the License, or</span><span style="color: indianred;">;; </span><span style="color: indianred;">(at your option) any later version.</span>
<span style="color: indianred;">;; </span><span style="color: indianred;">This program is distributed in the hope that it will be useful,</span><span style="color: indianred;">;; </span><span style="color: indianred;">but WITHOUT ANY WARRANTY; without even the implied warranty of</span><span style="color: indianred;">;; </span><span style="color: indianred;">MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span><span style="color: indianred;">;; </span><span style="color: indianred;">GNU General Public License for more details.</span>
<span style="color: indianred;">;; </span><span style="color: indianred;">You should have received a copy of the GNU General Public License</span><span style="color: indianred;">;; </span><span style="color: indianred;">along with this program. If not, see <http://www.gnu.org/licenses/>.</span>
<span style="color: indianred;">;;; </span><span style="color: indianred;">Commentary:</span>
<span style="color: indianred;">;; </span><span style="color: indianred;">use color-theme</span>
<span style="color: indianred;">;;; </span><span style="color: indianred;">Usage</span>
<span style="color: indianred;">;;; </span><span style="color: indianred;">(require 'darkroom)</span><span style="color: indianred;">;;; </span><span style="color: indianred;">M-x darkroom</span>
<span style="color: indianred;">;;; </span><span style="color: indianred;">Code:</span>(<span style="color: mediumorchid;">require</span> '<span style="color: aquamarine;">color-theme</span>)
<span style="color: indianred;">;;; </span><span style="color: indianred;">Config ---------------------------------------------------------</span>(<span style="color: mediumorchid;">defvar</span> <span style="color: darkseagreen;">darkroom-left-margin</span> 30
<b><span style="color: cornsilk;">"left margin"</span></b>)
(<span style="color: mediumorchid;">defvar</span> <span style="color: darkseagreen;">darkroom-right-margin</span> 30
<b><span style="color: cornsilk;">"right margin"</span></b>)
(<span style="color: mediumorchid;">defvar</span> <span style="color: darkseagreen;">dark-mode-on</span> nil
<b><span style="color: cornsilk;">"Non-nil if DarkRoom mode is enabled.
Don't change this variable directly, you must change it by one of the
functions that enable or disable Dark Room mode."</span></b>)
<span style="color: indianred;">;;; </span><span style="color: indianred;">-------------------------------------------------------------------</span>
(<span style="color: mediumorchid;">defun</span> <span style="color: yellowgreen;">fullscreen</span> (<span style="color: lime;">&optional</span> f)
<b><span style="color: cornsilk;">"Chenge FullScreen. for Emacs23"</span></b>
(<span style="color: mediumorchid;">interactive</span>)
(<span style="color: deepskyblue;">set-frame-parameter</span> f '<span style="color: darkseagreen;">fullscreen</span>
(<span style="color: mediumorchid;">if</span> (<span style="color: mediumorchid;">frame-parameter</span> f '<span style="color: darkseagreen;">fullscreen</span>) nil 'fullboth)))
(<span style="color: mediumorchid;">defun</span> <span style="color: yellowgreen;">darkroom-mode</span> ()
<b><span style="color: cornsilk;">"simple writing environment."</span></b>
(<span style="color: mediumorchid;">interactive</span>)
(<span style="color: mediumorchid;">if</span> (<span style="color: mediumorchid;">equal</span> dark-mode-on t) (<span style="color: darkseagreen;">darkroom-mode-disable</span>)
(<span style="color: darkseagreen;">darkroom-mode-enable</span>)))
(<span style="color: mediumorchid;">defun</span> <span style="color: yellowgreen;">darkroom-mode-enable</span> ()
(<span style="color: mediumorchid;">setq</span> dark-mode-on t)
(<span style="color: mediumorchid;">setq</span> darkroom-default-background-color
(<span style="color: mediumorchid;">cdr</span> (<span style="color: mediumorchid;">assoc</span> 'background-color default-frame-alist)))
(<span style="color: mediumorchid;">fset</span> '<span style="color: darkseagreen;">color-theme-snapshot</span> (<span style="color: deepskyblue;">color-theme-make-snapshot</span>))
(<span style="color: mediumorchid;">sleep-for</span> 0.05)
(<span style="color: deepskyblue;">color-theme-simple-1</span>)
(<span style="color: darkseagreen;">fullscreen</span> )
(<span style="color: deepskyblue;">set-cursor-color</span> <span style="color: orange;">"yellow"</span>) <span style="color: indianred;">;; </span><span style="color: indianred;">cursor color</span> (<span style="color: deepskyblue;">tool-bar-mode</span> 0)
(<span style="color: deepskyblue;">menu-bar-mode</span> 0)
(<span style="color: deepskyblue;">display-time-mode</span> 1)
(<span style="color: deepskyblue;">scroll-bar-mode</span>)
(<span style="color: deepskyblue;">set-face-foreground</span> 'mode-line <span style="color: orange;">"gray25"</span>)
(<span style="color: deepskyblue;">set-face-background</span> 'mode-line <span style="color: orange;">"gray1"</span>)
(<span style="color: mediumorchid;">if</span> (<span style="color: mediumorchid;">equal</span> (<span style="color: mediumorchid;">intern-soft</span> <span style="color: orange;">"elscreen-version"</span>) nil) nil
(<span style="color: deepskyblue;">elscreen-toggle-display-tab</span>))
(<span style="color: deepskyblue;">auto-fill-mode</span> 1))
(<span style="color: mediumorchid;">defun</span> <span style="color: yellowgreen;">darkroom-mode-disable</span> ()
(<span style="color: mediumorchid;">setq</span> dark-mode-on nil)
(<span style="color: deepskyblue;">add-to-list</span> 'default-frame-alist
'(background-color . darkroom-default-background-color))
(<span style="color: darkseagreen;">color-theme-snapshot</span>)
(<span style="color: deepskyblue;">scroll-bar-mode</span>)
(<span style="color: mediumorchid;">if</span> (<span style="color: mediumorchid;">equal</span> (<span style="color: mediumorchid;">intern-soft</span> <span style="color: orange;">"elscreen-version"</span>) nil) nil
(<span style="color: deepskyblue;">elscreen-toggle-display-tab</span>))
(<span style="color: deepskyblue;">display-time-mode</span> 0)
(<span style="color: mediumorchid;">sleep-for</span> 0.05)
(<span style="color: darkseagreen;">fullscreen</span> ))
(<span style="color: mediumorchid;">defun</span> <span style="color: yellowgreen;">window-count</span> ()
(<span style="color: mediumorchid;">length</span> (<span style="color: mediumorchid;">window-list</span> (<span style="color: mediumorchid;">selected-frame</span>) 1)))
(<span style="color: mediumorchid;">defun</span> <span style="color: yellowgreen;">set-margin</span> ()
(<span style="color: mediumorchid;">set-window-margins</span> (<span style="color: mediumorchid;">selected-window</span>)
darkroom-left-margin
darkroom-right-margin))
(<span style="color: mediumorchid;">defun</span> <span style="color: yellowgreen;">dark-window-update</span> ()
(<span style="color: mediumorchid;">if</span> (<span style="color: mediumorchid;">equal</span> dark-mode-on t)
(<span style="color: mediumorchid;">if</span> (<span style="color: mediumorchid;">></span> (<span style="color: darkseagreen;">window-count</span>) 1)
(<span style="color: mediumorchid;">progn</span>
(<span style="color: mediumorchid;">set-window-margins</span> (<span style="color: mediumorchid;">selected-window</span>) 0 0)
(<span style="color: mediumorchid;">set-window-margins</span> (<span style="color: mediumorchid;">previous-window</span>) 0 0))
(<span style="color: darkseagreen;">set-margin</span>))
(<span style="color: mediumorchid;">set-window-margins</span> (<span style="color: mediumorchid;">selected-window</span>) 0 0)))
(<span style="color: deepskyblue;">add-hook</span> 'window-configuration-change-hook '<span style="color: darkseagreen;">dark-window-update</span>)
(<span style="color: mediumorchid;">provide</span> '<span style="color: aquamarine;">darkroom</span>)
<span style="color: indianred;">;;; </span><span style="color: indianred;">darkroom.el ends here</span></pre>
<br />
<br /></blockquote>
<br />
<br />
低機能です。フルスクリーンにする部分がEmacs23からの機能を使っているので、emacs23以上で使用してください。そこを書き換えればemacs22とかでも動作するはず。<br />
あらためて こうして全画面で作業をしていると、twitter や ウェブブラウズとかしなくなり、気が散らずに作業できるんだなあと。というか今までどんだけ注意力散漫だったんだろうと思いましたw<br />
<br />
<br />
さあ皆さんも思う存分執筆に集中して下さいw<br />
<br />
<br />
<span class="Apple-style-span" style="font-size: small;">ps.<br /># 端末で起動してフルスクリーンにすればいいじゃんという突っ込みはなしで;;</span><br />
<br />
<br />
●追記:<br />
color-theme の設定書いただけで反映するの忘れてた(^_^;) 修正しましたので落とした方は再度落とし直して下さい。<br />
<br />
<b><span style="font-size: x-large;">●2012/08/30 追記:</span></b><br />
<b><span style="font-size: x-large;"> 続き→ <a href="http://ubulog.blogspot.jp/2012/08/darkroomel.html">http://ubulog.blogspot.jp/2012/08/darkroomel.html</a></span></b>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5649356572122659270.post-73376758216366694722010-01-26T21:00:00.000+09:002010-01-26T21:00:00.086+09:00ubuntuで壁紙をランダムに切り替える。 起動時にランダムに壁紙を変更していきます。<br /> 毎回同じ壁紙だと飽きてくるし、かといって手動でいちいち切り替えるのも億劫になってきまして(^_^;)<br /><br /><br /> まず、ランダムに変える壁紙を入れたディレクトリを決めておきます。壁紙となる画像ファイルはあらかじめ gimp などのフォトレタッチソフトを使ってサイズを統一しておきましょう。その方がいろいろと面倒じゃなくなるので。<br /><br /><h3><span class="Apple-style-span" style="color:#CC6600;">● icewm の場合</span></h3> 以下を <b><i>random-wallpaper-icewm.sh</i></b> という名前で <i>~/bin</i> あたりに保存します。保存したら、<b>chmod +x random-wallpaper-icewm.sh</b> として実行属性を付けるのを忘れずに。<br /> <b><span class="Apple-style-span" style="color:#009900;"><span class="Apple-style-span" style="font-size:large;">pref</span></span></b> は ~/.icewm/preferences の場所です。<br /> <b><span class="Apple-style-span" style="color:#336666;"><span class="Apple-style-span" style="font-size:large;">WALLPAPERS</span></span></b> は壁紙のあるディレクトリを指定します。<br /> それぞれ御自分の環境に合わせて修正してください。<blockquote><pre><br />#<i><span style="color:#cccccc;">!/bin/</span></i><b><span style="color:#add8e6;">bash</span></b><i><span style="color:#cccccc;"><br /></span></i># <i><span style="color:#cccccc;">last updated : 2010/01/21 21:13:37 JST<br /></span></i>#<i><span style="color:#cccccc;"><br /></span></i># <i><span style="color:#cccccc;">icewm用ランダム壁紙チェンジャー<br /></span></i>#<i><span style="color:#cccccc;"><br /></span></i><br /><b><i><span style="color:#add8e6;">pref</span></i></b>=<i><span style="color:#8fbc8f;">'/home/ユーザー名/.icewm/preferences'</span></i><br /><b><i><span style="color:#add8e6;">WALLPAPERS</span></i></b>=<i><span style="color:#8fbc8f;">"$HOME/MyPictures/Wallpapers"</span></i><br /><b><i><span style="color:#add8e6;">ALIST</span></i></b>=( <span style="color:#fa8072;">`ls -w1 $WALLPAPERS`</span> )<br /><b><i><span style="color:#add8e6;">RANGE</span></i></b>=${#ALIST[*]}<br /><b><i><span style="color:#add8e6;">SHOW</span></i></b>=$(( $<b><i><span style="color:#add8e6;">RANDOM</span></i></b> % $<b><i><span style="color:#add8e6;">RANGE</span></i></b> ))<br /><br />sed --in-place=.bak -e \<br /><i><span style="color:#8fbc8f;">'s:^DesktopBackgroundImage=.*$:DesktopBackgroundImage="'"${WALLPAPERS}/${ALIST[$SHOW]}"'":'</span></i> $<b><i><span style="color:#add8e6;">pref</span></i></b><br />icewmbg -r<br /></pre></blockquote> 修正して保存し終えたら、<b><span class="Apple-style-span" style="color:#993300;"><i>~/.icewm/startup</i></span></b> の最後の方に追記します。<br /> 以上で次回以降、icewmにログインする度に壁紙がランダムで変更されます。<br /><br /><br /><h3><span class="Apple-style-span" style="color:#3333FF;">● GNOME の場合</span></h3> 以下を <i><b>random-wallpaper-gnome.sh</b></i> という名前で <i>~/bin</i> あたりに保存します。保存したら、<b>chmod +x random-wallpaper-gnome.sh</b> として実行属性を付けるのを忘れずに。<br /> <b><span class="Apple-style-span" style="color:#666600;">WALLPAPERS </span></b>は壁紙のあるディレクトリを指定します。<br /> 自分の環境に合わせて修正してください。<blockquote><pre><br />#<i><span style="color:#cccccc;">!/bin/</span></i><b><span style="color:#add8e6;">bash</span></b><i><span style="color:#cccccc;"><br /></span></i># <i><span style="color:#cccccc;">last updated : 2010/01/26 15:13:17 JST<br /></span></i># <i><span style="color:#cccccc;">Set Random Wallpapers for GNOME.<br /></span></i>#<i><span style="color:#cccccc;"><br /></span></i><br /><b><i><span style="color:#add8e6;">WALLPAPERS</span></i></b>=<i><span style="color:#8fbc8f;">"$HOME/MyPictures/Wallpapers"</span></i><br /><b><i><span style="color:#add8e6;">ALIST</span></i></b>=( <span style="color:#fa8072;">`ls -w1 $WALLPAPERS`</span> )<br /><b><i><span style="color:#add8e6;">RANGE</span></i></b>=${#ALIST[*]}<br /><b><i><span style="color:#add8e6;">SHOW</span></i></b>=$(( $<b><i><span style="color:#add8e6;">RANDOM</span></i></b> % $<b><i><span style="color:#add8e6;">RANGE</span></i></b> ))<br /><br />gconftool-2 --type string --set <i><span style="color:#8fbc8f;">"/desktop/gnome/background/picture_filename"</span></i> $<b><i><span style="color:#add8e6;">WALLPAPERS</span></i></b>/${<b><i><span style="color:#add8e6;">ALIST</span></i></b>[$<b><i><span style="color:#add8e6;">SHOW</span></i></b>]}<br />gconftool-2 --type string --set <i><span style="color:#8fbc8f;">"/desktop/gnome/background/picture_options"</span></i> <i><span style="color:#8fbc8f;">"centered"</span></i></pre></blockquote> 保存し終えたら、メインメニューの<b>システム</b>→<b>設定</b>→<b>自動起動するアプリ</b> を起動します。<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5KwtAQGie0lbCSVrWNeY3SrdPv8-dVhyphenhyphenKLtvHqxByUlaTJ0SFsIU5ZjsSyqnQXFVVxOmTmFutBmBNWuXfCf8qufRcUWjuNGHGhWDXBdbsFdVInzo4JmD4LIQt7NaM11W3yJy1J2XKK_xF/s1600-h/gnome-autostart1.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 294px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5KwtAQGie0lbCSVrWNeY3SrdPv8-dVhyphenhyphenKLtvHqxByUlaTJ0SFsIU5ZjsSyqnQXFVVxOmTmFutBmBNWuXfCf8qufRcUWjuNGHGhWDXBdbsFdVInzo4JmD4LIQt7NaM11W3yJy1J2XKK_xF/s320/gnome-autostart1.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5430943234353131106" /></a><br /> 起動したら追加ボタンを押して追加メニューを出し、登録していきます。<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9TZEwsGipPNg5WuY3KYSbZpj2ogE00-fhsscswZLqFq7BohtQ4Atdv_vRfbkTUXlR5wwTbe6Nt6GP0Yx0wx3Glb2W7yEVdlsjIoHqNCKPucB0s2T0sy9mQkrPQFsfeW1QDoH8uHcESOdg/s1600-h/gnome-autostart2.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 165px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9TZEwsGipPNg5WuY3KYSbZpj2ogE00-fhsscswZLqFq7BohtQ4Atdv_vRfbkTUXlR5wwTbe6Nt6GP0Yx0wx3Glb2W7yEVdlsjIoHqNCKPucB0s2T0sy9mQkrPQFsfeW1QDoH8uHcESOdg/s320/gnome-autostart2.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5430943238240075506" /></a><br /><br /> これで次回以降ログインする度に壁紙がランダムに設定されて表示されます。<br /><br /><h3><span class="Apple-style-span" style="color:#993399;">● openbox の場合</span></h3> 以下を <i><b>random-wallpaper.sh</b></i> という名前で <i>~/bin</i> あたりに保存します。保存したら、<b>chmod +x random-wallpaper.sh</b> として実行属性を付けるのを忘れずに。<br /> <b><span class="Apple-style-span" style="color:#666600;">WALLPAPERS </span></b>は壁紙のあるディレクトリを指定します。<br /> 自分の環境に合わせて修正してください。<br /> feh というコマンドを使いますので、あらかじめ<blockquote>sudo apt-get install feh</blockquote>として入れておいて下さい。<blockquote><pre><br />#<i><span style="color:#cccccc;">!/bin/</span></i><b><span style="color:#add8e6;">bash</span></b><i><span style="color:#cccccc;"><br /></span></i># <i><span style="color:#cccccc;">last updated : 2010/01/05 15:12:05 JST<br /></span></i>#<i><span style="color:#cccccc;"><br /></span></i># <i><span style="color:#cccccc;">SET random Wallpapers for background.<br /></span></i>#<i><span style="color:#cccccc;"><br /></span></i><br /><b><i><span style="color:#add8e6;">WALLPAPERS</span></i></b>=<i><span style="color:#8fbc8f;">"$HOME/MyPictures/Wallpapers"</span></i><br /><b><i><span style="color:#add8e6;">ALIST</span></i></b>=( <span style="color:#fa8072;">`ls -w1 $WALLPAPERS`</span> )<br /><b><i><span style="color:#add8e6;">RANGE</span></i></b>=${#ALIST[*]}<br /><b><i><span style="color:#add8e6;">SHOW</span></i></b>=$(( $<b><i><span style="color:#add8e6;">RANDOM</span></i></b> % $<b><i><span style="color:#add8e6;">RANGE</span></i></b> ))<br /><br />feh --bg-scale $<b><i><span style="color:#add8e6;">WALLPAPERS</span></i></b>/${<b><i><span style="color:#add8e6;">ALIST</span></i></b>[$<b><i><span style="color:#add8e6;">SHOW</span></i></b>]}<br /></pre></blockquote> 修正して保存し終えたら、<b><span class="Apple-style-span" style="color:#993300;"><i>~/.config/openbox/autostart.sh</i></span></b> の最後の方に追記します。<br /> 以上で次回以降、openboxにログインする度に壁紙がランダムで変更されます。Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5649356572122659270.post-22289950462657931952010-01-02T23:55:00.000+09:002010-01-02T23:57:20.994+09:00ubuntuでファイルコピーでベリファイする ubuntuで大きいファイルや沢山のファイルをコピーする場合は、nautilusでコピーするのではなく、<span style="color: rgb(153, 51, 153);font-size:130%;" ><span style="font-weight: bold;">cp</span></span> コマンドを使うと便利です。リソースも食わず、バックグラウンドで放っておけますし、なにより基本中の基本コマンドなので安心感が違います。<br /> とはいえ、ネットワーク越しのコピーだと外乱要素が多いので、ちゃんとコピーできたかどうか確認した方がいい場合もあります。大事なデータの引越しとかですね。<br /> そこで正しくコピー出来たかどうか確認するためにベリファイをします。各ファイルのハッシュ値を出して比較して正しくコピー出来たか確認します。<br /> 標準で md5sum コマンドがありますが、今回は確認作業をもっと楽にしてくれる <span style="color: rgb(255, 0, 0); font-family: times new roman;font-size:180%;" ><span style="font-weight: bold;">md5deep</span></span> コマンドを使います。<br /><br /><br /><h4 style="color: rgb(102, 0, 204);">インストール</h4><blockquote>sudo apt-get install md5deep</blockquote><br /><h4 style="color: rgb(0, 153, 0);">使い方</h4><br /><ol><li>元ファイルのハッシュ値リストを作成する。<br /><br /> まず最初に元となるファイル群のハッシュ値リストを作成します。<br /><blockquote>md5deep -r ディレクトリ名 > hash.list</blockquote><br /><span style="font-weight: bold;">-r </span>オプションを付けることにより、再帰的に動作します。<br><span style="font-weight:bold;">-e</span> オプションを付けると進行状況を表示します。大きいファイルの時に使うといいでしょう。<br>このハッシュリストは元データと同じディレクトリに保存しておきますと、そのうちなにかの役にたつかもしれませんw<br></li><li>コピー先と比較する。<br> 作成しておいたハッシュ値リストと、コピーした先のファイル群のハッシュ値とを比較していきます。<br> 正常にコピー出来たファイルはいちいち報告する必要はないので、正常にコピー出来なかったファイル名だけ表示させるようにします。<br /><blockquote>md5deep -X hash.list -r 比較作ディレクトリ</blockquote><span style="font-weight: bold;">-X </span>オプションはマッチングしないものだけを表示します。<br>両方のファイル名を表示させたいなら、<span style="font-weight:bold;">-w</span> オプションを付けます。<br /> これでなにも報告されなかったら正常にコピーできています。もしハッシュ値が違っていた場合は報告されますので、再度そのファイルをコピーすればいいでしょう。</li></ol><br /><br /> 基本的な手順は以上です。簡単でしょう?<br /> シェルスクリプトでサブプロセスで動かせば、並列して計算させる事も出来るので、高速化もできるでしょう。同一のHDDじゃあまり意味ないですけど。マルチコアじゃないと意味がないですけど。<br /><br /> 大事なデータの移動には是非ベリファイしておきたいものです。<br /> ついでに cp ですが、 nice コマンドと併用することでコピー時の負荷を減らす事が出来ます。さらに ionice と組み合わせると、もっとシステム負荷を減らせます。<br /><br />ex.<br /><blockquote>ionice -c3 -n7 nice -n19 cp コピー元 コピー先 && zenity --info --text "コピー完了"</blockquote><br /><span style="font-weight:bold;">-c3</span> はシステムがアイドル時にしかコピーしません。<span style="font-weight:bold;">-n7</span> で優先度を最低に。さらにniceの方でも優先度を最低にしています。<br /> これでバックグラウンドでコピーさせています。もちろんコピーの優先度を最低にしてますので、結果としてコピーの時間はかかりますが、システムの負荷は減るでしょう。<br /> 最後にコピーが終了したら通知ウィンドウを表示させるようにしていますので、時間のかかるコピーでも、コピー完了を忘れることを防ぎます。<br /><br /> であであ快適なubuntu生活を♪Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5649356572122659270.post-56340384558001414372009-11-29T17:25:00.001+09:002009-11-29T17:31:55.722+09:00ubuntu で ext3からext4へ移行してみた ファイルシステムをext3からext4へ移行しました。本当はしっかりとした移行記事を書こうかと思ったんですが、普通じゃないやり方してしまって参考にもならないのでやめました(^_^;) ので、感想だけ。<br /><br /> ext3からext4への移行は、ext3のマウントオプションをext4に指定してやればそのままext4として扱えるんですが、これだとext4本来の機能を利用した状態にはならず、ext4本来のパフォーマンスを発揮することは出来ません。というか意味がない。<br /> ですので、ext4本来の性能を体感したい、というかちゃんとext4を利用したいのなら、ext4でフォーマット仕直し、そこへファイルを書き戻すといったことが必要です。<br /><br /> で、LiveCDから起動し、中身をせっせとバックアップしてext4でフォーマット仕直して、バックアップを戻すという作業をしました。もちろんUUIDが変わるので、fstabやgrubなども書き換えてね。<br /><br /> そして再起動。<br /><br /> いきなりびっくり。ubuntu 9.10があっというまに立ち上がるんです。デュアルブートのXPよりも速い。ext3の時はこんなものでしょうっていう起動速度だったんですが。<br /> そして実際にログインして使てみると、速いこと速いこと。ext4ではやっとエクステントベースになったのですが、これによってメタ情報がぐっと少なくなりました。ext3のブロックベースですと1GBのファイルに必要な管理情報は1MBも必要でした。メタ情報のやり取りだけでI/O処理がそれなりにかかっていた事を考えると・・・<br /> 具体的にはfindやduなどのメタ情報を検索するコマンドの速度におおいに違いが表れます。<br /> 数千個のファイルがある、GB単位のディレクトリなど、du で容量を調べるにはそれなりの時間がかかりましたが、ext4だとあっという間に合計容量が返ってきます。<br /><br /> 最初は保守的にシステムだけをext4にして/homeはext3でなんて考えていたんですが、あまりにも良いので全部のパーティションをext4にしてしまいましたw<br /><br /> ext4は十分に問題なく使えるFSだと思います。Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5649356572122659270.post-30155138997502784402009-11-22T19:25:00.001+09:002009-11-24T02:09:54.251+09:00ubuntu 9.10 アップグレードメモ 遅ればせながら ubuntu 9.10 にアップグレードしましたのでメモ。<br /> 今回の目玉は起動速度がさらに速くなった? なんとなくそんな気がしないでもない。<br /><br /><br /><ul><li>アップグレードはCLIから行なった。</li><li>sdic-eijiro でエラーが出てアップグレードを強制終了せざるを得なくなった。</li><li>その後、sudo apt-get install -f をかけた。</li><li>synapticからいらないパッケージを削除。</li><li>emacs関係を入れ直した。使えるのはemacs22 emacs23 emacs-snapshot かな。</li><li>emacsのフォントまわりがまた変更されているみたいだ。おかげでまた再設定。</li><li>dmesg でみると、<b>i801_smbus: probe of 0000:00:1f.3 failed with error -16</b> と出てる。<br />カーネル2.6.31のリグレッション エラーらしい。おかげでCPUの温度が取得出来ない。</li><li><b>icewm</b> は特になにもしなくても問題なし。自前でパッケージ作る必要がなくなったようだ。</li><li><b>mlterm</b> はまた256色対応patchを当てなければorz</li></ul><br /><br /> 暫時追加予定。<br /> とりあえず問題は sensors で温度やファンの回転数が取得出来ないのが問題かな。mrtg でグラフ化しているので。まあサーバーというわけでもないので単に自己満足のグラフ化なのでいいですけど・・・<br /><br /> しばらく様子を見て、問題がなければ、/ をext4でフォーマットしなおしてみようかなと思います。やっぱり最大のメリットはext4ですからね。/home はext3のままでいきますw<div><br /></div><div><br /></div><div>●2009/11/24 追記:</div><div> i801チップがエラーになるのは、カーネルオプションで <b>acpi=off </b>にすることで回避出来た。当座はこれでいくか。</div><div> / をext4 にした。そのうち書く予定。</div><div><div><br /></div></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5649356572122659270.post-52871983451125335352009-10-10T01:36:00.001+09:002009-10-10T01:37:42.174+09:00Emacsのタイトルバーにホスト名を表示させる <a href="http://granzchesta.blog.drecom.jp/archive/1941">Granzchesta's ぷち日常天国</a> さんの方で Emacs で tramp使用時にタイトルバーにホスト名を入れられないかどうか悩んでいたみたいなので試してみました。<br /> 以下を ~/.emacs に追記。<br /><blockquote><PRE><br />;;; <I><FONT color="#cccccc">tramp でリモートホスト名をフレームに表示する。<br /></FONT></I>(<FONT color="#ba55d3">defun</FONT> <B><I><FONT color="#ffff00">my-tramp-hostname</FONT></I></B> ()<br /> <B>"tramp host name."</B><br /> (<FONT color="#ba55d3">if</FONT> (<FONT color="#ba55d3">buffer-file-name</FONT>)<br /> (<FONT color="#ba55d3">if</FONT> (<FONT color="#ba55d3">string-match</FONT> <I><FONT color="#8fbc8f">"\\`/</FONT></I><I><FONT color="#8fbc8f">\\</FONT></I><I><FONT color="#8fbc8f">(</FONT></I><I><FONT color="#8fbc8f">[</FONT></I><I><FONT color="#8fbc8f">^</FONT></I><I><FONT color="#8fbc8f">[/:]+</FONT></I><I><FONT color="#8fbc8f">\\</FONT></I><I><FONT color="#8fbc8f">|</FONT></I><I><FONT color="#8fbc8f">[</FONT></I><I><FONT color="#8fbc8f">^</FONT></I><I><FONT color="#8fbc8f">/]+]</FONT></I><I><FONT color="#8fbc8f">\\</FONT></I><I><FONT color="#8fbc8f">)</FONT></I><I><FONT color="#8fbc8f">:"</FONT></I> (<FONT color="#ba55d3">buffer-file-name</FONT>))<br /> (<FONT color="#0000cd">tramp-file-name-host</FONT> (<FONT color="#0000cd">tramp-dissect-file-name</FONT> (<FONT color="#ba55d3">buffer-file-name</FONT>)))<br /> <I><FONT color="#8fbc8f">"local"</FONT></I>) nil ))<br />;; <I><FONT color="#cccccc">フレームにセット<br /></FONT></I>(<FONT color="#ba55d3">setq</FONT> frame-title-format '(<I><FONT color="#8fbc8f">"%b - "</FONT></I> (<FONT color="#98fb98">:eval</FONT> (<FONT color="#8fbc8f">my-tramp-hostname</FONT>))))<br /></PRE></blockquote><br /> Emacsはテキストエディタなんですから決っして文字列操作が弱いわけではありません。テキストエディタなのに弱いとはこれいかに。Unknownnoreply@blogger.com3tag:blogger.com,1999:blog-5649356572122659270.post-87473803331233213642009-09-11T12:00:00.000+09:002009-09-11T12:00:01.869+09:00ubuntuにgoogle-earth 5.1 を入れる<span style="font-weight: bold; color: rgb(51, 51, 255);font-size:180%;" ><a style="font-family: lucida grande;" href="http://earth.google.com/">google-earth</a><span style="font-family: lucida grande;"> </span></span><span style="font-weight: bold;">Ver5.1 </span>がリリースされたので、インストールメモ。<br /><br /><br /><h4 style="color: rgb(51, 204, 0);">ポイント</h4><ul><li>事前に前のバージョンを削除しておく。</li><li>qt4を使用しているみたい。</li><li>メニューのフォントはqtconfig から行なう。</li><li>フォントがビットマップで汚ない。</li><li>インストール先は自分のhomeにする。<br /></li></ul><br /><br /><h4 style="color: rgb(0, 102, 0);">インストール</h4> インストール自体は<a href="http://earth.google.com/"><span style="color: rgb(204, 153, 51);">Google</span></a>からダウンロードしてきた <span style="font-weight: bold;">GoogleEarthLinux.bin</span> ファイルに実行属性を付与してからダブルクリックで実行すればOK.<br /><br /><h4 style="color: rgb(204, 0, 0);">フォント</h4> このままだとフォントがビットマップで汚ないので、修正します。<br />同梱のqtライブラリを使用しないようにし、ubuntuのライブラリを利用するように変更します。以下を端末から実行。<br /><blockquote>sudo apt-get install libqtcore4 libqtgui4 libqt4-webkit qt4-qtconfig<br /><br />cd ~/google-earth<br />mv libQtCore.so.4{,.bak}<br />mv libQtNetwork.so.4{,.bak}<br />mv libQtGui.so.4{,.bak}<br />mv libQtWebKit.so.4{,.bak}<br /><br />cd ~/google-earth/plugins/imageformats/<br />mv libqgif.so{,.bak}<br />mv libqjpeg.so{,.bak}<br /><br />ln -s /usr/lib/qt4/plugins/imageformats/libqjpeg.so .<br />ln -s /usr/lib/qt4/plugins/imageformats/libqgif.so .</blockquote><br /><br />フォントの変更は qtconfig から行ないます。フォントによってはうまく変更出来ないようです。<br /><br /> これでアンチエイリアスの効いた状態になりました。<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMgeli-p8FvHD_oUpuohU3q5n-P_4gVoiJqWBsPUzN1mINw0jcrHUH6kdjgNcrWZ6zfbkOtgNcQndKKRE-Gluol57Bsd_-k7qBNs07R0E1bsm3YicJSthpXXup27JCGY2nY4eS-u123fhU/s1600-h/Screenshot-Google+Earth.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 223px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMgeli-p8FvHD_oUpuohU3q5n-P_4gVoiJqWBsPUzN1mINw0jcrHUH6kdjgNcrWZ6zfbkOtgNcQndKKRE-Gluol57Bsd_-k7qBNs07R0E1bsm3YicJSthpXXup27JCGY2nY4eS-u123fhU/s320/Screenshot-Google+Earth.png" alt="" id="BLOGGER_PHOTO_ID_5379794642901606338" border="0" /></a><br /><br /><h4>参考</h4><a href="http://d.hatena.ne.jp/kakurasan/20090604/p1">GNU/Linux版Google Earth 5.0上の日本語フォントの問題とその対処</a>Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-5649356572122659270.post-32364391929133254272009-09-10T15:15:00.001+09:002009-09-10T15:15:00.084+09:00icewmの壁紙を変える<span style="font-weight: bold; color: rgb(0, 153, 0);font-size:180%;" ><span style="font-family: georgia;">icewm</span></span>の壁紙は、~<span style="font-style: italic;">/.icewm/preferences</span> 内の、<br /><span style="font-weight: bold; color: rgb(255, 0, 0);">DesktopBackgroundImage="ほげほげ.jpg"</span><br />行を書き換えてあげればいいわけですが、その後、icewmを再起動しないと反映されません。<br />けっこう面倒くさいので、さくっとシェルスクリプトでやっちゃいましょう。<br /><br />以下のシエルスクリプトを、<span style="font-weight: bold; font-style: italic;">icewmbg-changer.sh</span> という名前で保存し、実行属性を付けてください。<br /><blockquote><pre><br />#<i><span style="color:#cccccc;">!/bin/</span></i><b><span style="color:#add8e6;">sh</span></b><i><span style="color:#cccccc;"><br /></span></i># <i><span style="color:#cccccc;">-*- coding: utf-8 -*-<br /></span></i># <i><span style="color:#cccccc;">last updated : 2009/09/07 03:46:02 JST<br /></span></i>#<i><span style="color:#cccccc;"><br /></span></i># <i><span style="color:#cccccc;">icewm用壁紙チェンジャー<br /></span></i># <i><span style="color:#cccccc;">使い方。<br /></span></i># <i><span style="color:#cccccc;">icewmbg-changer.sh /home/foo/picture/hogehoge.jpg<br /></span></i># <i><span style="color:#cccccc;">引数がない場合はファイルセレクタが立ち上がります。<br /></span></i># <i><span style="color:#cccccc;">ファイラのコンテキストメニューなどに登録して使うと便利でしょう。<br /></span></i><br /># <i><span style="color:#cccccc;">icewmの設定ファイル。フルパスで。<br /></span></i><b><i><span style="color:#add8e6;">pref</span></i></b>=<i><span style="color:#8fbc8f;">'/home/ほげほげ/.icewm/preferences'</span></i><br /># <i><span style="color:#cccccc;">壁紙のあるディレクトリ。フルパスで。<br /></span></i><b><i><span style="color:#add8e6;">WALLPAAPERS</span></i></b>=<i><span style="color:#8fbc8f;">'/home/ほげほげ/MyPictures/Wallpapers/'</span></i><br /><br /><b><span style="color:#add8e6;">if</span></b> [ $<b><i><span style="color:#add8e6;">#</span></i></b> = 0 ]; <b><span style="color:#add8e6;">then</span></b><br /> <span style="color:#98fb98;">cd</span> $<b><i><span style="color:#add8e6;">WALLPAAPERS</span></i></b><br /> <b><i><span style="color:#add8e6;">FILE</span></i></b>=$(zenity --file-selection --title <i><span style="color:#8fbc8f;">"Wallpaper Select"</span></i>)<br /><b><span style="color:#add8e6;">else</span></b><br /> <b><i><span style="color:#add8e6;">FILE</span></i></b>=$<b><i><span style="color:#add8e6;">1</span></i></b><br /><b><span style="color:#add8e6;">fi</span></b><br />sed --in-place=.bak -e \<br /> <i><span style="color:#8fbc8f;">'s:^DesktopBackgroundImage=.*$:DesktopBackgroundImage="'"${FILE}"'":'</span></i> $<b><i><span style="color:#add8e6;">pref</span></i></b><br />icewmbg -r<br /></pre></blockquote><br /><br /><br /><h4 style="color: rgb(51, 51, 255);">設定</h4> 以下二行を自分の環境に合わせて編集してください。<blockquote>pref='/home/もげげ/.icewm/preferences'<br />WALLPAAPERS='/home/もげげ/MyPictures/Wallpapers/'</blockquote><br /><br /><h4 style="color: rgb(102, 102, 0);">使い方</h4> そのまま起動すればファイル選択ダイアログが出ます。<br /> が、このシェルスクリプト単独ではあまりおいしくはないので、<span style="color: rgb(0, 204, 204);font-size:130%;" ><span style="font-weight: bold;">ファイラや画像管理ソフトと組み合わせて使う</span></span>のがいいでしょう。<br /> ファイラなどのコンテクストメニューに登録しておけば、もっと便利に壁紙を変えることが出来ます。<br /><br /> 私はファイラに rox を利用しているので、こんな感じになります。<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYjBQ8ksa32kt8FSc_BV4_euyMDvsirZPc6hR3RODTciDS5iU-HNIL5uGthArXVM5d0FN94UdDaT_PQ0kfp6Nv5bHq4N47MnvNQh6Jk-XdlhvlfupOD9G3_P4AGiy3c0MKFz6QAWTTNGvp/s1600-h/icewmbg2.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 242px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYjBQ8ksa32kt8FSc_BV4_euyMDvsirZPc6hR3RODTciDS5iU-HNIL5uGthArXVM5d0FN94UdDaT_PQ0kfp6Nv5bHq4N47MnvNQh6Jk-XdlhvlfupOD9G3_P4AGiy3c0MKFz6QAWTTNGvp/s320/icewmbg2.png" alt="" id="BLOGGER_PHOTO_ID_5379713083223734322" border="0" /></a><br /><br /> ファイラと組み合わせれば、さくさく壁紙を変更出来るようになるので是非活用してみてください。Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5649356572122659270.post-27944597786514261532009-08-09T20:15:00.000+09:002009-08-09T20:27:43.467+09:00Emacsで行を右寄せをする 昔作ったやつです。<br /> 標準だと、<span style="font-weight: bold;">M-x set-justification-right</span> で右寄せしてくれます。がこれだとタブと空白で埋めてくれるので、空白だけで右寄せしてくれるものを作りました。<br /><br /><h3 style="color: rgb(0, 153, 0);">インストール</h3><ol><li> 下の方のelispを <span style="font-weight: bold; font-style: italic; color: rgb(0, 0, 153);font-size:130%;" >right-line.el</span> という名前で、<span style="font-style: italic;">~/.lisp</span> などに保存します。</li><li> <span style="font-weight: bold;">~/.emacs</span> に<blockquote><pre><br />(<span style="color: rgb(186, 85, 211);">require</span> '<span style="color: rgb(143, 188, 143);">right-line</span>)<br />(<span style="color: rgb(0, 0, 205);">global-set-key</span> <i><span style="color: rgb(143, 188, 143);">"\C-cr"</span></i> '<span style="color: rgb(143, 188, 143);">justify-right-line</span>) ; <i><span style="color: rgb(204, 204, 204);">行を右寄せする<br /></span></i></pre></blockquote>と書いておきます。</li></ol><br /><br /><h3 style="color: rgb(51, 153, 153);">使い方</h3> 右寄せしたい行の上にカーソルを持っていき、<span style="font-weight: bold;">C-c r</span> とすれば右寄せされます。<br /> 選択範囲内の右寄せも出来ます。<br /> 桁数は <span style="font-weight:bold;">C-u 桁数 M-x set-fill-column</span> で。デフォルトだと C-x f かな?<br /><br /><h4 style="color: rgb(204, 0, 0);">right-line.el</h4><blockquote><pre><br /><span style="color:#cccccc;"><i>;;; </i></span><span style="color:#cccccc;"><i>right-line.el --- 右寄せ<br /></i></span><span style="color:#cccccc;"><i>;;</i></span><span style="color:#cccccc;"><i> $Id: right-line.el,v 1.6 2007/10/11 09:55:17 yama Exp yama $ <br /></i></span><span style="color:#cccccc;"><i>;; </i></span><span style="color:#cccccc;"><i>last updated : 2007/10/16 15:00:41 JST<br /></i></span><br /><span style="color:#cccccc;"><i>;; </i></span><span style="color:#cccccc;"><i>Copyright (C) 2007 yama<br /></i></span><br /><span style="color:#cccccc;"><i>;; </i></span><span style="color:#cccccc;"><i>Author: yama <<a href="mailto:yama@localhost">yama@localhost</a>><br /></i></span><span style="color:#cccccc;"><i>;; </i></span><span style="color:#cccccc;"><i>Keywords:<br /></i></span><br /><span style="color:#cccccc;"><i>;; </i></span><span style="color:#cccccc;"><i>This file is free software; you can redistribute it and/or modify<br /></i></span><span style="color:#cccccc;"><i>;; </i></span><span style="color:#cccccc;"><i>it under the terms of the GNU General Public License as published by<br /></i></span><span style="color:#cccccc;"><i>;; </i></span><span style="color:#cccccc;"><i>the Free Software Foundation; either version 2, or (at your option)<br /></i></span><span style="color:#cccccc;"><i>;; </i></span><span style="color:#cccccc;"><i>any later version.<br /></i></span><br /><span style="color:#cccccc;"><i>;; </i></span><span style="color:#cccccc;"><i>This file is distributed in the hope that it will be useful,<br /></i></span><span style="color:#cccccc;"><i>;; </i></span><span style="color:#cccccc;"><i>but WITHOUT ANY WARRANTY; without even the implied warranty of<br /></i></span><span style="color:#cccccc;"><i>;; </i></span><span style="color:#cccccc;"><i>MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br /></i></span><span style="color:#cccccc;"><i>;; </i></span><span style="color:#cccccc;"><i>GNU General Public License for more details.<br /></i></span><br /><span style="color:#cccccc;"><i>;; </i></span><span style="color:#cccccc;"><i>You should have received a copy of the GNU General Public License<br /></i></span><span style="color:#cccccc;"><i>;; </i></span><span style="color:#cccccc;"><i>along with GNU Emacs; see the file COPYING. If not, write to<br /></i></span><span style="color:#cccccc;"><i>;; </i></span><span style="color:#cccccc;"><i>the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,<br /></i></span><span style="color:#cccccc;"><i>;; </i></span><span style="color:#cccccc;"><i>Boston, MA 02110-1301, USA.<br /></i></span><br /><span style="color:#cccccc;"><i>;;; </i></span><span style="color:#cccccc;"><i>Commentary:<br /></i></span><br /><span style="color:#cccccc;"><i>;; </i></span><span style="color:#cccccc;"><i>行を右寄せする。範囲選択していれば範囲選択部分を右寄せする。<br /></i></span><br /><span style="color:#cccccc;"><i>;;; </i></span><span style="color:#cccccc;"><i>ToDo<br /></i></span><br /><br /><span style="color:#cccccc;"><i>;;; </i></span><span style="color:#cccccc;"><i>Code:<br /></i></span><br />(<span style="color:#ba55d3;">defun</span> <span style="color:#ffff00;"><b><i>yama-region-active-p</i></b></span> ()<br /> <b>"リージョンアクティブならtを返す.<br />2007年10月06日(土曜日) 12:45:08 JST by yama"</b><br /> (<span style="color:#ba55d3;">if</span> (<span style="color:#ba55d3;">and</span> transient-mark-mode mark-active) t nil))<br /><br />(<span style="color:#ba55d3;">defun</span> <span style="color:#ffff00;"><b><i>right-line</i></b></span> ()<br /> <b>"2007年09月15日(土曜日) 14:46:17 JST<br />カレント行を空白で埋めて、右寄せする"</b><br /> (<span style="color:#ba55d3;">interactive</span>)<br /> (<span style="color:#ba55d3;">save-excursion</span><br /> (<span style="color:#ba55d3;">end-of-line</span>)<br /> (<span style="color:#ba55d3;">let</span> ((ln(<span style="color:#ba55d3;">-</span> fill-column (<span style="color:#ba55d3;">current-column</span>))))<br /> (<span style="color:#ba55d3;">beginning-of-line</span>)<br /> (<span style="color:#ba55d3;">insert-char</span> ?\ ln))))<br /><br /><br />(<span style="color:#ba55d3;">defun</span> <span style="color:#ffff00;"><b><i>right-line-region</i></b></span> (start end)<br /> <b>"選択範囲内を空白で埋めて右寄せする。範囲選択されてなければカレント行を右寄せする<br />2007年10月06日(土曜日) 12:44:41 JST by yama"</b><br /> (<span style="color:#ba55d3;">interactive</span> <span style="color:#8fbc8f;"><i>"r"</i></span>)<br /> (<span style="color:#ba55d3;">save-excursion</span><br /> (<span style="color:#ba55d3;">save-restriction</span><br /> (<span style="color:#ba55d3;">goto-char</span> start)<br /> (<span style="color:#8fbc8f;">unless</span> (<span style="color:#ba55d3;">bolp</span>)<br /> (<span style="color:#ba55d3;">beginning-of-line</span>)<br /> (<span style="color:#ba55d3;">setq</span> start (<span style="color:#ba55d3;">point</span>)))<br /> (<span style="color:#ba55d3;">goto-char</span> end)<br /> (<span style="color:#8fbc8f;">unless</span> (<span style="color:#ba55d3;">bolp</span>)<br /> (<span style="color:#ba55d3;">beginning-of-line</span>)<br /> (<span style="color:#ba55d3;">setq</span> end (<span style="color:#ba55d3;">point</span>)))<br /> (<span style="color:#ba55d3;">narrow-to-region</span> start end)<br /> (<span style="color:#ba55d3;">let</span> ((<span style="color:#0000cd;">max-line</span> (<span style="color:#0000cd;">count-lines</span> start end))<br /> (<span style="color:#0000cd;">count</span> 0))<br /> (<span style="color:#ba55d3;">goto-char</span> (<span style="color:#ba55d3;">point-min</span>))<br /> (<span style="color:#ba55d3;">while</span> (<span style="color:#ba55d3;"><</span> count max-line)<br /> (<span style="color:#8fbc8f;">right-line</span>)<br /> (<span style="color:#8fbc8f;">next-line</span>)<br /> (<span style="color:#ba55d3;">setq</span> count (<span style="color:#ba55d3;">1+</span> count)))))))<br /><br />(<span style="color:#ba55d3;">defun</span> <span style="color:#ffff00;"><b><i>justify-right-line</i></b></span> (start end)<br /> <b>"カレント行を右寄せする。範囲選択されているなら範囲内を右寄せする.<br />2007年10月16日(火曜日) 14:08:05 JST by yama"</b><br /> (<span style="color:#ba55d3;">interactive</span> <span style="color:#8fbc8f;"><i>"r"</i></span>)<br /> (<span style="color:#ba55d3;">if</span> (<span style="color:#8fbc8f;">yama-region-active-p</span>)<br /> (<span style="color:#8fbc8f;">right-line-region</span> start end)<br /> (<span style="color:#8fbc8f;">right-line</span>)))<br /><br />(<span style="color:#ba55d3;">provide</span> '<span style="color:#8fbc8f;">right-line</span>)<br /><span style="color:#cccccc;"><i>;;; </i></span><span style="color:#cccccc;"><i>right-line.el ends here<br /></i></span></pre></blockquote><br /><br /><br /> 報告書とか文書の末尾の署名なんかに利用すると便利です。<br /> 自分で作って使っていなかったり・・・orzUnknownnoreply@blogger.com0tag:blogger.com,1999:blog-5649356572122659270.post-12867955649935443302009-08-02T17:04:00.004+09:002009-09-14T18:25:38.896+09:00Emacsの起動時間を調べるEmacs23.1 がリリースされましたねー。めでたいめでたい。やんややんや。<br />もっともだいぶ前から使っていたんで新鮮さはないんですが、やっぱりアンチエイリアスの効いたフォントは美しい。<br /><br />んで、emacs23から追加された関数を使って、Emacsの起動に掛かった時間を表示する機能など。小ネタです。<blockquote><PRE><br />;;;<I><FONT color="#cccccc">====================================<br /></FONT></I>;;;; <I><FONT color="#cccccc">boot-time<br /></FONT></I>;;;<I><FONT color="#cccccc">====================================<br /></FONT></I>;;; <I><FONT color="#cccccc">起動するまでにかかった時間を表示。<br /></FONT></I>(<FONT color="#ba55d3">defun</FONT> <B><I><FONT color="#ffff00">boot-time</FONT></I></B> () <br /><B>" 起動するまでにかかった時間を表示。"</B><br /> (<FONT color="#ba55d3">interactive</FONT>)<br /> (<FONT color="#ba55d3">message</FONT> <I><FONT color="#8fbc8f">"起動時間:%s秒"</FONT></I><br /> (<FONT color="#ba55d3">-</FONT> (<FONT color="#0000cd">cadr</FONT> after-init-time) (<FONT color="#0000cd">cadr</FONT> before-init-time))))<br /></PRE></blockquote><br /><br /><span style="font-weight: bold;">M-x boot-time</span> で起動時間が表示されます。Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5649356572122659270.post-41583305162254787962009-07-02T15:55:00.001+09:002009-07-02T16:12:20.853+09:00CLIで天気予報を表示する 最近perlを触る機会があり、perlをいじるのは初めてだったのですが、なんとかでっち上げてみました。perlなんて記号だらけの省略記法だらけで大嫌いだったのでですが、時代は変わり、最近ではモジュールを活用してブロックを組み立てるかのように書けるとか。<br /> 実際 <a href="http://www.cpan.org/">CPAN </a>の充実ぶりは凄いですね。あらためて perl を見直しました。<br /><br /> んで今回はYahooから天気予報を取得して表示するコマンドです。<a style="font-weight: bold; color: rgb(255, 102, 0);" href="http://ubulog.blogspot.com/2009/01/cli.html">前回は今現在の気象情報を表示</a>するだったのですが今回は予報です。<br /><br /><h4 style="color: rgb(153, 102, 51);">インストール</h4> 以下のスクリプトを適当な名前、yohou.pl みたいな名前で ~/bin/ あたりにでも保存し、<span style="font-weight: bold;">chmod +x yohou.pl</span> として実行属性を付けておいてください。<blockquote><pre><br />#<span style="color: rgb(178, 34, 34);">!/usr/bin/perl<br /></span># <span style="color: rgb(178, 34, 34);">last updated : 2009/07/02 15:46:45 JST<br /></span>#<span style="color: rgb(178, 34, 34);"><br /></span># <span style="color: rgb(178, 34, 34);">Yahooから天気予報を取得する。<br /></span><br /><span style="color: rgb(160, 32, 240);">use</span> <span style="color: rgb(95, 158, 160);">utf8</span>;<br /><span style="color: rgb(160, 32, 240);">use</span> <span style="color: rgb(95, 158, 160);">strict</span>;<br /><span style="color: rgb(160, 32, 240);">use</span> <span style="color: rgb(95, 158, 160);">warnings</span>;<br /><span style="color: rgb(160, 32, 240);">use</span> <span style="color: rgb(95, 158, 160);">XML</span>::TreePP;<br /><br />binmode STDOUT, <span style="color: rgb(188, 143, 143);">":utf8"</span>;<br /><br /><br /># <span style="color: rgb(178, 34, 34);">url<br /></span># <span style="color: rgb(178, 34, 34);">以下のurlから調べて下さい。<br /></span># <span style="color: rgb(178, 34, 34);">http://weather.yahoo.co.jp/weather/public/rss.html<br /></span><span style="color: rgb(34, 139, 34);">my</span> $<span style="color: rgb(184, 134, 11);">url</span> = <span style="color: rgb(188, 143, 143);">"http://rss.weather.yahoo.co.jp/rss/days/4410.xml"</span>;<br /># <span style="color: rgb(178, 34, 34);">カットする文字列。<br /></span><span style="color: rgb(34, 139, 34);">my</span> $<span style="color: rgb(184, 134, 11);">cut</span> = <span style="color: rgb(188, 143, 143);">" 東京(東京) "</span>;<br /><br /><br /><br /><br /><span style="color: rgb(34, 139, 34);">my</span> $<span style="color: rgb(184, 134, 11);">tpp</span> = XML::TreePP->new(array_element => [qw<span style="color: rgb(188, 143, 143);">( item )</span>]);<br />$<span style="color: rgb(184, 134, 11);">tpp</span>->set( utf8_flag => 1 );<br /><span style="color: rgb(34, 139, 34);">my</span> $<span style="color: rgb(184, 134, 11);">tree</span> = $<span style="color: rgb(184, 134, 11);">tpp</span>->parsehttp( GET => $<span style="color: rgb(184, 134, 11);">url</span>);<br /><span style="color: rgb(34, 139, 34);">my</span> $<span style="color: rgb(184, 134, 11);">channelhash</span> = $<span style="color: rgb(184, 134, 11);">tree</span>->{rss}->{channel};<br />print $<span style="color: rgb(184, 134, 11);">channelhash</span>->{title} . <span style="color: rgb(188, 143, 143);">"\n"</span>;<br /><span style="color: rgb(34, 139, 34);">my</span> $<span style="color: rgb(184, 134, 11);">itemarray</span> = $<span style="color: rgb(184, 134, 11);">channelhash</span>->{item};<br /><span style="color: rgb(160, 32, 240);">foreach</span> <span style="color: rgb(34, 139, 34);">my</span> $<span style="color: rgb(184, 134, 11);">itemhash</span> ( @$<span style="color: rgb(184, 134, 11);">itemarray</span> ) {<br /> <span style="color: rgb(34, 139, 34);">my</span> $<span style="color: rgb(184, 134, 11);">base</span> = $<span style="color: rgb(184, 134, 11);">itemhash</span>->{title};<br /> <span style="color: rgb(160, 32, 240);">unless</span> ($<span style="color: rgb(184, 134, 11);">base</span> =~ <span style="color: rgb(188, 143, 143);">/^\[PR\]/</span>) {<br /> $<span style="color: rgb(184, 134, 11);">base</span> =~ s<span style="color: rgb(188, 143, 143);">/ - Yahoo!天気情報$//</span>;<br /> $<span style="color: rgb(184, 134, 11);">base</span> =~ s<span style="color: rgb(188, 143, 143);">/ (\d)日/ 0$1日/</span>;<br /> <span style="color: rgb(160, 32, 240);">if</span> ($<span style="color: rgb(184, 134, 11);">base</span> =~ <span style="color: rgb(188, 143, 143);">/^【 \d\d日/</span>) {<br /> <span style="color: rgb(34, 139, 34);">my</span> $<span style="color: rgb(184, 134, 11);">idx</span> = rindex($<span style="color: rgb(184, 134, 11);">base</span>, <span style="color: rgb(188, 143, 143);">'】'</span>);<br /> <span style="color: rgb(34, 139, 34);">my</span> $<span style="color: rgb(184, 134, 11);">day</span> = substr($<span style="color: rgb(184, 134, 11);">base</span>, 0, $<span style="color: rgb(184, 134, 11);">idx</span> + 1);<br /> $<span style="color: rgb(184, 134, 11);">day</span> =~ s<span style="color: rgb(188, 143, 143);">/$cut//</span>;<br /> <span style="color: rgb(34, 139, 34);">my</span> $<span style="color: rgb(184, 134, 11);">wea</span> = substr($<span style="color: rgb(184, 134, 11);">base</span>, $<span style="color: rgb(184, 134, 11);">idx</span> + 2);<br /> <span style="color: rgb(34, 139, 34);">my</span> @<span style="color: rgb(184, 134, 11);">tenki</span> = split(<span style="color: rgb(188, 143, 143);">/ - /</span>, $<span style="color: rgb(184, 134, 11);">wea</span>);<br /> $<span style="color: rgb(184, 134, 11);">tenki</span>[0] = trim($<span style="color: rgb(184, 134, 11);">tenki</span>[0]);<br /> print sprintf(<span style="color: rgb(188, 143, 143);">"%s %-4s %s"</span>, $<span style="color: rgb(184, 134, 11);">day</span>, ume($<span style="color: rgb(184, 134, 11);">tenki</span>[0]), $<span style="color: rgb(184, 134, 11);">tenki</span>[1]) . <span style="color: rgb(188, 143, 143);">"\n"</span>;<br /> }<br /> <span style="color: rgb(160, 32, 240);">else</span> {<br /> print $<span style="color: rgb(184, 134, 11);">base</span> . <span style="color: rgb(188, 143, 143);">"\n"</span>;<br /> }<br /> }<br />}<br />print $<span style="color: rgb(184, 134, 11);">channelhash</span>->{copyright} . <span style="color: rgb(188, 143, 143);">"\n"</span>;<br /><br /><span style="color: rgb(160, 32, 240);">sub</span> <span style="color: rgb(0, 0, 255);">trim</span> {<br /> <span style="color: rgb(34, 139, 34);">my</span> $<span style="color: rgb(184, 134, 11);">val</span> = shift;<br /> $<span style="color: rgb(184, 134, 11);">val</span> =~ s<span style="color: rgb(188, 143, 143);">/^\s*(.*?)\s*$/$1/</span>;<br /> <span style="color: rgb(160, 32, 240);">return</span> $<span style="color: rgb(184, 134, 11);">val</span>;<br />}<br /><br /><span style="color: rgb(160, 32, 240);">sub</span> <span style="color: rgb(0, 0, 255);">ume</span> {<br /> <span style="color: rgb(34, 139, 34);">my</span> $<span style="color: rgb(184, 134, 11);">val</span> = shift;<br /> <span style="color: rgb(34, 139, 34);">my</span> $<span style="color: rgb(184, 134, 11);">len</span> = length($<span style="color: rgb(184, 134, 11);">val</span>);<br /> <span style="color: rgb(160, 32, 240);">if</span> ($<span style="color: rgb(184, 134, 11);">len</span> < 4) {<br /> $<span style="color: rgb(184, 134, 11);">val</span> = $<span style="color: rgb(184, 134, 11);">val</span> . <span style="color: rgb(188, 143, 143);">" "</span> x (4 - $<span style="color: rgb(184, 134, 11);">len</span>);<br /> }<br /> <span style="color: rgb(160, 32, 240);">return</span> $<span style="color: rgb(184, 134, 11);">val</span>;<br />}<br /></pre><br /></blockquote> 次に自分の住んでいる地域の天気予報を表示するために、<a href="http://weather.yahoo.co.jp/weather/public/rss.html">http://weather.yahoo.co.jp/weather/public/rss.html</a> から地域のurlをコピーして<blockquote>my $url = ”http://rss.weather.yahoo.co.jp/rss/days/4410.xml"</blockquote>の行を変更しておいてください。その下の <span style="font-weight: bold; font-style: italic;">my $cut</span> も同じく地域に合わせて変更を。<span style="font-weight: bold; font-style: italic;">$cut</span> は単に冗長な部分を削除するだけですから、ほっといても特に問題ありません。<br /><br /> 次にこのスクリプトは <a href="http://search.cpan.org/%7Ekawasaki/XML-TreePP-0.39/lib/XML/TreePP.pm">XML::TreePP</a> というモジュールを利用しているので、<blockquote>sudo apt-get install libxml-treepp-perl</blockquote>としてインストールしておいて下さい。<br /> 以上で準備は完了です。後は ~/bin/yohou.pl とでもして実行すれば、<blockquote><pre>~$ yohou<br />Yahoo!天気情報 - 東京(東京)の天気<br />【 02日(木)】 雨後曇 26℃/21℃<br />【 03日(金)】 曇り 26℃/21℃<br />【 04日(土)】 曇時々雨 25℃/22℃<br />【 05日(日)】 曇時々雨 27℃/21℃<br />【 06日(月)】 曇り 28℃/22℃<br />【 07日(火)】 曇時々雨 28℃/22℃<br />【 08日(水)】 曇時々雨 27℃/22℃<br />【 09日(木)】 曇時々雨 26℃/22℃<br />【 23区西部 】警報・注意報はありません<br />【 23区東部 】警報・注意報はありません<br />【 多摩北部 】警報・注意報はありません<br />【 多摩西部 】警報・注意報はありません<br />【 多摩南部 】警報・注意報はありません<br />Copyright (C) 2009 Yahoo Japan Corporation. All Rights Reserved.</pre></blockquote>な感じで天気予報が表示されます。<a style="font-weight: bold; color: rgb(0, 153, 0);" href="http://ubulog.blogspot.com/2009/01/cli.html">天気情報コマンド</a>と合わせて使えばいいでせう。<br /><br /><br /># ん〜それにしてもperl の文字列処理のやり方がまだ理解していない・・・でもモジュールは便利だね。というか便利すぎ。<br /># いままでrubyばかりだったけど、perlで便利なモジュールがある場合はperlを使おう。Unknownnoreply@blogger.com0