Linux 日記

 

(24h August 2014)    トップページ

このページも含め,自分で作成しているホームページのトップページについて,何か物足りない. WANtaroが運営しているページの目的は,設計理論やプログラムを掲載しておき必要な時参照することであり,基本的に自分用なので,トップページのみてくれなどあまりこだわる必要は無いのだが。 まだどうしたらいいのかのイメージは無いのだが,いつか書き換えてやろうと思っています.



(24h August 2014)    放流管ゲート流量算定式

上流側に導水管を有する放流ゲートの流量算定式をアップ. 考えれば簡単に分かることだが,よく「どうやったっけ?」と思うことがあるため,公式を整理してアップした.



(12h August 2014)    内圧を受けるトーラスの応力解析

現在行っている水力発電所の設計に関連して,発電機からの荷重伝達やスパイラル・ケーシング回りの応力分布を確認するため,軸対称FEMのプログラムの見直しを行っている. ここで,理論解の存在する簡単な事例として,内圧を受けるトーラスの解析を行い,その結果をこのHPにアップした. その他,軸対称FEMでは主応力分布図や主応力ベクトル図を作成する後処理プログラムを作っていなかったので,そこいらの整備も行いつつある. プログラムのテスト・ランや後処理プログラムの作成そのものはおもしろいのだが,仕事で使うつもりなので,それにしては見直しの時間が無いのが気になる.



(04h August 2014)    新しいプログラム

必要に迫られて2つの数値解析のプログラムを作りました. 1つは,軸力と2軸曲げを受けるRC矩形断面の終局耐荷力計算プログラム,もう1つは格子桁解析プログラムです. 格子桁解析プログラムは,平面骨組解析プログラムの要素剛性と自由度を変更しただけですが,なかなか使えそうです. 本当は3次元骨組構造解析のプログラムが欲しいのですが,これは難しいので未だに取りかかっておらず,必要最小限ということで,比較的簡単に作れる格子桁解析プログラムで妥協しました. 軸力と2軸曲げを受けるRC矩形断面の終局耐荷力計算も,以前から整備しようと思っていたのですが,そろそろ時間切れとなってきたので頑張って作成しました. 今はPCを使って結構簡単にやりたいことができるけど,PCが普及していなかったころは「大変だったんだろうなあ」とつくづく思います.



(20th July 2014)    久しぶりのプログラム

久しぶりに数値解析のプログラムを作りました. 4辺が単純支持された等分布荷重を受ける矩形板のたわみと断面力を計算するプログラムで,Navier の方法を用いています. これまでは,スラブの設計には,Timoshenko の Theory of Plates and Shells の数表を使っていましたが,一応基本的な計算ができるプログラムを作ろうと思い立ったのでした. Navier の方法は定式化が簡単でプログラム化するには適していますが,二重三角級数の収束が遅いという難点があります. ただし基本的に sin と cos の積の形の級数ですので,項数を多くしても値が発散することはなく,CPU パワーにものをいわせて計算できます. 暇を見て,色々な荷重条件や境界条件で計算できるようにしてみよう...かな?



(25th June 2014)    Google Chrome

通常使うブラウザを SeaMonkey から Google Chrome に変更しました. SeaMonkey もそれなりに気に入っていたのですが,先日ImageMagickで作成したgifアニメをアップして確認したところ,SeaMonkey,Safari,FireFoxが期待した動作をしなかったため,ショックを受け,通常使うブラウザを変更しようと思い立ったのでした. 作業は,このページ(http://blog.livedoor.jp/hamu_nbr/archives/31091570.html)にしたがって行いました. 特に問題なく作業は完了です. ただし,css で Arial を指定したサイトの英字が,Linux の Chrome で見るとギザギザで見るに耐えない状態. これは,web page の css から Arial を抜き,解決. また Chrome の設定ではフォントを Dejavu に指定しておきました.まあまあ見られますがあまり綺麗ではない.



(15th June 2014)    文字コードと改行コードの変換

最近仕事で水力発電所建屋の概要図を作成するプログラムを作りました.Windows 7 環境です. いくつかの基本座標を与えると,そこから作図に必要な座標を設定して作図用データを作成,作図そのものは GMT で行うものです. これを Linux 用に書き換えました.書き換えのポイントはいくつかありますが,まず第一は文字コードと改行コードの変換です. 通常は Linux 側のエディタ (geany) で変更し保存していますが,入力ファイルなど付属ファイルが多い場合,いちいちエディタで変換するのは面倒です. そこで,ネット検索したところ,このサイト (http://d.hatena.ne.jp/over80/20080406/1207452324) で便利なものを見つけました. 使用法は,以下のとおりです.

fa=text.dos
fb=text.linux
iconv -f SHIFT-JIS -t UTF-8 $fa | dos2unix > $fb

iconv により文字コードを変換し,dos2unix で改行コードを Windows の [CR][LF] から Linux の [LF] に変更します. 上書きの方法はなく,mv でリネームするしかないようです.

私の Linux 環境は PuppyLinux precise 5.7.1jp + devx_precise_5.7.1.sfs ですが,iconvdos2unix の両方を使えることが分かったのは成果でした. その他,書き換え時の注意事項を下表に記載しておきます.

項目 Windows (DOS) Linux
変数セット set fig=fig_gmt.epsfig=fig_gmt.eps
変数の利用 %fig% $fig
スクリプト呼び出しcall xxx.bat source xxx.sh
gawkスクリプト記載gawk "print a" gawk 'print a'


(08th June 2014)    3次Spline補間プログラム追加

最近仕事で使っている,3次Spline補間プログラムを,このサイトに追加しました.



(07th June 2014)    ホームページの衣替え

ここのところ,ホームページの衣替え作業を行っていたが,一応完成. デザインの問題なので,なかなか満足いくものはできないがとりあえずの妥協案というところか.

また,yahoo の geocites は引き払い,JCOM と FC2 にページを集めた.

Theme HDD Web site
WANtaroHP (Fortran and Drawings) WANtaroHP_html5_winhttp://members3.jcom.home.ne.jp/civilysrou/index.html
WANtaroHP (MathJax and Linux) WANtaroHP_Linux http://members3.jcom.home.ne.jp/wantaro/index.html
WANtaroHP (Home): 旧サイトのトップページ Fixed_WANtaroHP http://civilyarou.web.fc2.com/index.html
旧サイト: WANtaroHP (数値処理プログラム) Fixed_WANtaroHP http://civilyarou.web.fc2.com/WANtaroHP/index.html
旧サイト: WANtaro雑記帳 Fixed_WANtaroHP http://civilyarou.web.fc2.com/WANtaroNOTE/index.html
旧サイト: WANtaroHP (工学問題のプログラミング)Fixed_WANtaroHP http://civilyarou.web.fc2.com/WANtaroHP_F90_html5/index.html
旧サイト: VB & C# プログラム倉庫 Fixed_WANtaroHP http://civilyarou.web.fc2.com/sub_souko.html
旧サイト: zipファイル格納 WANtaro_zip http://members3.jcom.home.ne.jp/kbt.kt/


(26th May 2014)    VL 等幅フォント導入

テキストエディタでプログラムや html 文書を打ち込んでいるとき,等幅フォント (Fixed) を使っていても,同じ文字数なのに行末が一致しなかったりして気持ちが悪かった. そこで,ネットで検索し,VL 等幅フォントを導入.手順は以下のとおり.

  • VLGothic-20130607.zip をダウンロードし,適当な場所で解凍
  • VL-Gothic-Regular.ttf を /usr/share/fonts/default/TTF/ にコピー
  • 再起動

使用してみると,かなり見やすい.肝心の行末については,そこそこか.エディタの予約語の強調なども関係あるのだろうか?完璧というわけではないらしい. しばらく使ってみようと思う.



(25th May 2014)    今日の成果

昨日・今日と仕事は忘れてのんびりしています. 今日は朝 10:30 まで寝てしまった.とは言っても夜中 1:30 に起きてしまったので 5:00 位まで PC をいじりながらウイスキーを飲んでいたのだ. 不健康な生活です.

で,今日は Linux 上で,ImageMagick により短冊による色見本を作成しました. 既に Windows 環境で作成していますが,復習を兼ね Linux 環境で行いました.結局 Fortran プログラムの出番は無く,awk でやってしまいました. やはり色見本はいくつかの場所に置いておき,いつでも参照できるようにしておきたいものです. この HP にもアップしておきました.



(24th May 2014)    今日やったこと

maxis のモデムを紛失したと思い込み,5月13日に celcom のモデムを買ったのですが,その日のうちに maxis のモデムを発見. 今日は KLCC に行って maxis のモデムのトップアップしてきました.celcom のモデムは Win でしか使えないので,maxis 復活により Puppy Linux でもインターネット接続が可能になりました. お金はかかりましたが,良かった良かった.

あとは気分転換に,FC2 にアップしているホームページの CSS を変更.イメージチェンジを図りました. 前の構成は目次が使い辛かったので,それは少し改善されたような気がします. また今まで可変幅だったのを固定幅 (1000px) にしました.本当は 800px にしたかったのですが,数式や図の配置に無理がLかかるので,1000px に落ち着かせました.まあこれは好みの問題でしょうけど.

また,PuppyLinuxにガジェットを追加しました.時計とカレンダー.やったことは以下のとおり.

  • pwidgets-2.3.1.pet をダウンロードし,インストール.
  • /usr/local/pwidgets/widgets/script の Calendar ファイルで,cal_monday(){ の前の行に,LANG=C を追加する.これによりカレンダーの表示が正常になる.
  • メニュー==>デスクトップ==>Pwidgets tiny desctop apps で設定を変更.時計がオレンジ?だったので色を変更しました.


(01st May 2014)    洪水時貯水池水位解析プログラム

洪水時貯水池水位解析プログラムをアップしました. 昔C言語で作ったことがあるものをFortranに書き直し,少し機能を追加しました. 収束計算については,貯水池水位を1mmピッチで計算することを考慮し,水位を1/10mmづつ変化させるという原始的な方法をとっています. もっとうまい方法があるような気がするのですが,ルーチンが簡単だしとりあえず昔ながらの方法としています.



(26th April 2014)    Julia 集合描画 (2)

Julia 集合の漸化式の指数部を一般化して描画するプログラムをアップしました. 複素数の累乗は,極座標変換することにより,三角関数を介して実数部と虚数部に分解できますが,角度計算が必要となり,面倒なので, このプログラムでは,Fortranの複素数関数を使って複素数の演算を行っています.プログラム的にはすっきりしていると思います.

また,これまでこの手の描画は白黒画像としてきましたが,今回はカラー画像としてみました. 結局はGMTのカラーパレットをカラー対応にするだけなので,特に手間がかかる訳ではありませんが.



(12th April 2014)    Julia 集合描画

Mandelbrot 集合描画プログラムを少しいじって,Julia 集合描画プログラムをアップしました. 作図は Mandelbrot 集合描画と同様に GMT を用いて行い,GMT の吐き出す eps を ImageMagick により jpg 画像に変換するようにしています.



(9th April 2014)    Buddhabrot 描画

Mandelbrot 集合描画がうまくいったので,今度は同じ Mandelbrot 集合の計算式を用いる Buddhabrot の描画プログラムをアップしました. 作図は Mandelbrot 集合描画と同様に GMT を用いて行い,GMT の吐き出す eps を ImageMagick により jpg 画像に変換するようにしています.



(29th March 2014)    Mandelbrot 集合描画

Mandelbrot 集合描画のプログラムをアップしました. 作図は当初は gnuplot でやってみましたが,やはり最近使い込んでいる GMT で!ということで GMT を用いています. ただし GMT の吐き出す eps ファイルは 10MB を越える場合もあり扱い辛いので,即座に ImageMagick により jpg 画像に変換するようにしています.



(5th March 2014)    新規ページの追加

以下のページを新たに追加しました.

  • 自分用 Puppy Linux Install:PuppyLinux precise-571JP による作業環境作成のための手順の記述
  • 自分用 Fortran Sample Program:入出力関係のTipsをまとめた自分用のサンプルプログラム


(3rd March 2014)    Seamonkey 追加

NEC LaVie N にインストールした Puppy Precise-571JP に seamonkey-2.20.0-ja_fp112.sfs により Seamonkey を追加し,通常用いるブラウザに設定. なぜならば,Operaの欧文があまりにも見にくく,フォントの変更もできなかったため. ただし,Seamonkey起動後,1回ノアップデートが必要.

また,16GB の USB に同様の Puppy 環境を設定.これは Let's note CF-J10 用です.



(28th February 2014)    久しぶりの実家

2月27日・28日と,久しぶりに実家に顔を出しました. 通常は車を使うのですが,冬装備を持っていないのと,途中で雪が降ると困るので,今回は電車でいってきました.

利用した電車の時刻表は以下のとおり.

往路 (27th February 2014)
発時刻-着時刻発駅-着駅備考
11:39 - 12:33高崎 - 長野 長野新幹線あさま517号
13:00 - 14:01長野 - 塩尻 特急ワイドビューしなの14号
14:19 - 14:40塩尻 - 辰野
15:03 - 16:00辰野 - 駒ヶ根
復路 (28th February 2014)
発時刻-着時刻発駅-着駅備考
09:39 - 10:33駒ヶ根 - 辰野
11:00 - 11:21辰野 - 塩尻
11:54 - 12:54塩尻 - 長野 特急ワイドビューしなの7号
13:03 - 13:57長野 - 高崎 長野新幹線あさま526号



(27th February 2014)    Puppy Precise-571JP (NEC LaVie N)

昨日は,2005年5月に購入したNEC LaVie N PC-NL500CD (Pentium M 1.7GHz, mempry 512MB) のXPを削除し,Puppy Linux の最新版 Precise-571JP をHDDにFrugalインストールしました. 無線LANは動きませんが,有線LANは問題なく動きます. この機種はUSBブートできないので,まずWin7機を用いてCDを作成し,CDブートでPuppyを起動してからHDDへのインストールを行いました.

LaVieのHDDのパーティション分割は GParted を用い,以下のようにしました.

/dev/sda1linux-swap 2.00GB
/dev/sda2ext2 10.00GBboot
/dev/sda3ext3 62.53GB

ここでは,Puppyのシステムをext2にいれていますが,パーティションを切り直したい場合,PuppyをCDから立ち上げても システムの入っているext2をアマウントできないので,この場合は別のLinuxシステムを用いる必要があります. 私の場合,もっていた KNOPPIX を DVD ブートで立ち上げ,KNOPPIX の GParted でパーティションを切り直し,Puppy を2回ほど再インストールしました.

インストールしたプログラム類は以下のとおり.

  • goffice-precise_571.sfs
  • devx_precise_5.7.1.sfs
  • libgfortran3_4.6.3
  • gfortran-4.6_4.6.3
  • gfortran_4.6.3
  • gs-cjk-resource_1.20100103-3
  • gsfonts_8.11+urwcyr1.0.7
  • gsfonts-x11_0.22
  • ghostscript_9.05
  • ghostscript-cups_9.05
  • ghostscript-x_9.05
  • libgs_5.7.1 (パピーリナックス日本語フォーラムの486HAさんが作成されたもの)
  • Imagemagick 6.8.8-7
  • GMT 4.5.9
  • gnuplot 4.6.4
  • TeX Live 2011 teTeX
  • MathJax v2.3
  • IPA mona Font

USBにインストールしているImagemagick 6.8.7-4は,インストール時にエラーはないものの,実行しようとするとIllegal Instructionが出てしまうため, 現時点での最新版であるImagemagick 6.8.8-7をインストールしました. インストールのコマンドはImageMagick本家ページにしたがって以下のとおりとしました.

tar xvzf ImageMagick.tar.gz
cd ImageMagick-6.8.8-7
./configure
make
make install
ldconfig /usr/local/lib

また,MathJax は Let's note CF-J10 の SSD にインストールしてあり,Win7 と USB 起動の Puppy で共通で使っていますが, LaVie N は Puppy 専用機としたので,HDD に新規にインストールしました.



(16th February 2014)    Puppy Precise-571JP (8GB USB)

今日はPuppy Linux の最新版 Precise-571JP の起動USBを作りました. この作業はしばらく前から行っていたのですが,Ghostscriptの最新版のインストール方法がわからず,フォーラムで質問したらすぐに解決しました.

Puppy本体は,precise-571jp.isoを unetbootin-windows-585.exe を用いてWindows上でUSBメモリにインストールします. 用いたUSBメモリは8GBです. precise-550JPではLucid用のプログラムを組み込むといインチキをしていたので,571ではインチキなしでうまく環境を整えようと思います.

インストールしたプログラム類は以下のとおり.

  • goffice-precise_571.sfs
  • devx_precise_5.7.1.sfs
  • libgfortran3_4.6.3
  • gfortran-4.6_4.6.3
  • gfortran_4.6.3
  • gs-cjk-resource_1.20100103-3
  • gsfonts_8.11+urwcyr1.0.7
  • gsfonts-x11_0.22
  • ghostscript_9.05
  • ghostscript-cups_9.05
  • ghostscript-x_9.05
  • libgs_5.7.1 (パピーリナックス日本語フォーラムの486HAさんが作成されたもの)
  • Imagemagick 6.8.7-4
  • GMT 4.5.9
  • gnuplot 4.6.4
  • TeX Live 2011 teTeX
  • IPA mona Font


(08th February 2014)    一時帰国日決定

一時帰国日程が決まりました.2月21日(金)夜便で日本へ,3月9日(日)昼便でマレーシアに戻る予定です. 今回は会社支給のXPノートパソコン(大きくて重い)をWin7にアップデートのため持ち帰らなければなりません. 今回は日本においてあるXPノートパソコン(B5サイズ)をLinux専用機とするため持ってきたいのですが,前述会社のお荷物があるので憂鬱です.

とりあえず日本から持ってきたいものを記載しておきましょう.

  • B5版XPノートパソコン(Linux専用機にする予定)
  • 鉄管の岩盤負担の実挙動データ(鉄管岩盤負担設計のページに追加する)
  • 多変量解析の教科書(このページに理論をまとめておこうかと)
  • 統計解析用BASICプログラムがのっている本(BASICはもう使わないけどたまに何かしらの手本が欲しくなる)
  • LinuxのShell Scriptnoの本(購入してこちらで勉強しようかと)
  • プサXガXの設計計算書のコピーを持ってくる
  • BSの打ちだしを持ってくる
  • 新しいメガネを作って持ってくる(早く作れるところを探す)
  • 運転免許の書き換えを必ず行う
  • 新しいUSBメモリを買ってくる

そう言えば前回帰国時は「R」の本を買って持ち込んだのだけど,全然勉強していない!



(19th January 2014)    文書アップロード

以下のページをMathJaxを用いて作成しアップしました.一応英語で作成しました.数式は日本語版のコピーです.

  • RC圧力水路設計理論 (英語)
  • 水圧鉄管岩盤負担設計理論 (英語)


(15th January 2014)    文書アップロード

以下のページをMathJaxを用いて作成しアップしました.といってもTeXの文書をhtmlとしてアレンジしただけです.

  • 不等流解析プログラム
  • RC圧力水路設計理論
  • 水圧鉄管岩盤負担設計理論

不等流解析プログラムの文書は英語で作成しましたが,RC圧力水路と水圧鉄管の文書は日本語のまま. 早々に英語版を作成しなければ.



(05th January 2014)    初プログラム

ついに2014年がやってきました.1月1日は同僚エンジニアの娘さんの結婚式,昨日1月4日は前から招待されていた夕食会に言ってきました.

で,プログラムの話ですが,昨日・今日で2014年初のプログラムを作りました. このWebページは,これまは一回作ったものをコピーし,修正しながら新しいページを作る方式をとっていましたが,面倒なので一括で書式調整するプログラムをFortranで作りました. 結果としてそれらしき答えを出しているようです. 機能としては以下のものです.

  • 更新年月日・時刻を自動で書き込む
  • ジャンプメニューを規則的に挿入する
  • MathJaxを作業チェック用とupload用で切り替える

ジャンプメニューについては</article>が現れたらその直後に挿入するようにしました. Mathjaxについては,常にインターネットに接続しているとは限らないので,作業チェック用にPCにダウンロードしてあるMathJaxを読みにいくものを加えました. ただしLinuxのパスで書いてあるのでWindowsでは機能しません(Windows用パスに書き換えれば機能します).

Fortranの文字列処理もなかなかおもしろいです.凝ったことをやらなければC言語より扱いは簡単かもしれません.

さて,1月のPC遊びは何をしようか...設計関係の文書をMathJaxに載せてアップしてみようかと言う感じです. 項目としては,水圧鉄管と鉄筋コンクリート圧力水路の設計理論,およびWindows版Fortran90のページに載せている不等流計算の事例などですかねえ.



(29th December 2013)    2重積分 その2

昨日はクアラルンプールにディナーに行ってきました.時間待ちでビールを飲みすぎ,メインディシュが少ししか食べられなかったのが悔やまれます. おみやげにして,一緒に来た仲間が持ち帰りました.

一方,最近Simpson法を勉強しているので,任意の平面領域を指定して積分するプログラムをSimpson法とGauss-Legendre法で作って見ました. 基本は,FEMの四角形要素の積分で行っているものと同じです.積分領域の指定はFEM用のメッシャーを使っています. 数値積分単体を実務のどこで使うか?となると出番はないような気がしますが,理論と方法論の確認という意味では,意味があるでしょう. 結果としてそれらしき答えを出しているようです.

実務上凝りたいのは不等流計算プログラムか?プログラム本体はできるだけ汎用性を持たせるようにして,入力データとして通水断面特性を入れるようにしている. これで問題ないのだが,今は通水断面特性のテーブルを作成するのに簡単な複合台形断面の計算を行うプログラムを別途作っている. しかし本当は実測した座標を入れるとそこから任意断面の断面通水特性のテーブルを作るようにしたいと思っている.

あとはたまに欲しいと思いながら公式集やTimoshenkoで対応している板曲げのFEMプログラムか.



(25th December 2013)    2重積分

今日はクリスマス.なぜだかマレーシアは休日です.そこでSimpson法とGauss-Legendre積分の重積分化に挑みました. 一応答えは出ているようです.やはりGauss-Legendreは精度がよいなという感じです. ただし,積分点座標や重みの精度もあり10-12位の誤差までの精度です. が,私が通常行っている計算のレベルからすれば充分な精度です.



(22nd December 2013)    DKA 法と Simpson 積分の追加

今週末は久しぶりにゆっくりできたので,LinuxのMathJaxのページに以下の記事を追加しました.

  • DKA 法による代数方程式の解法
  • Gauss-Legendre積分とSimpson公式による積分の比較 (Gauss-Legendre 積分の記事に追加)


(02nd December 2013)    gcc 4.6.3 の gfortran (4倍精度対応)

今朝Puppyフォーラムに質問したら,すぐ答えが帰ってきました.以下の組み合わせでokとのこと. 結局USBをフォーマットしてPuppyを入れ直しました.これによりdevx_precise_5.5.sfsの組み込み成功. Fortranのファイルはパッケージマネージャーで探してフォーラムで教えていただいた最小限の3つのファイルをインストールしました. 結果として問題なく4倍精度で計算できるようになりました.

  • precise-550jp
  • devx_precise_5.5.sfs
  • libgfortran3_4.6.3
  • gfortran-4.6_4.6.3
  • gfortran_4.6.3

gccとgfortranを含め全てのプログラムをインストールしなおしたのですが,今回はImagemagickで2回インストールしたらlibjpeg.laがないのにうまくmakeでき,libjpeg.soもlibjpeg.so.8.0.2を見にいくことでjpegを扱えます. いったいどうなっているのでしょうね.



(01st December 2013)    gcc 4.4.3 の gfortran (4倍精度未対応)

DKA 法の使い方の復習をかねて Puppy にインストールしてある gfortran (gcc version 4.4.3) で4倍精度計算を行おうとしたら,このバージョンは4倍精度に対応していないとコンパイラに言われてしまいました. あわてて devx_precise_5.5.sfs を探しだし gcc のバージョンアップを図ろうとしましたが,これを読もうとしたらカーネル・パニックということで Puppy が立ち上がらず. しょうがないので,gcc のバージョンは元に戻し,Puppy を含め全てのソフトをインストールしなおしました. 意外な落とし穴でした.Windows版gfortran は4倍精度に対応しているのに少しショックでした. 費やした時間は3時間ほど.こういう時にどうやったか記録をとっておく(私の場合はこのwebページ)と迷わず作業ができるので大変便利です.



(24th November 2013)    jpeg 画像縮小と html 表示スクリプト

ImageMagick で jpeg 画像が使えるようになったので,デジカメから転送した jpeg 画像を縮小し,html で表示するスクリプトを作ってみました. この作業は今まで Visual C# で作成したプログラムで行っていましたが,「やはりPuppyから実行する」ことを目指して作成したものです.

スクリプトの実行

いずれのプログラムも引数をとります.数値,ここでは「300」は画像寸法(ピクセル)です. サムネイル用に横200ピクセルの画像を寸法固定で作成するのに対し,web 投稿用には 300 ピクセルにしたい場合や 600 ピクセルにしたい場合などがあるため,作成画像のサイズを指定できるようにしました. なお sh_small.sh に対する引数と sh_pic.sh に対する引数は同じ数値でなければなりません.
# bash sh_small.sh 300
# bash sh_pic.sh 300 > pic.html

ImageMagick によるjpeg画像縮小スクリプト (sh_small.sh)

機能は,基となる jpeg 画像が収納された directory において,その下に small という directory を作成し,サムネイル用の横 200 ピクセルの縮小画像と,web 投稿用にコマンドラインから指定した横ピクセル数を持つ縮小画像を作成・収納するものです. jpeg 画像の拡張子は大文字「.JPG」です. 「$1」はコマンドラインより引き渡された引数で,この数値の横ピクセル数をもつ画像が作成されます. コマンド「convert」は Imagemagick の命令です.

#!bin/bash
if [ -d small ]; then
rm -r small
fi
mkdir small

files="*.JPG"
for files in $files
do
convert -resize 200x -unsharp 2x1.4+0.5+0 -colors 65 -quality 100 -verbose $files ./small/200-${files}
convert -resize $1x -unsharp 2x1.4+0.5+0 -colors 65 -quality 100 -verbose $files ./small/$1-${files}
done

ls
ls small/

画像表示用 html 文書作成スクリプト (sh_pic.sh)

機能は,small という下の directory にある縮小画像(横200ピクセル)を html で表示するものです. ファイル名をクリックするとコマンドラインから「$1」として引き渡された横ピクセル数をもつ画像が表示されます. ここではファイル名を参照しているだけなので,コマンドライン引数「$1」は,上述の sh_small.sh に対するものと同じ数値でなければなりません. スタイルシートは html 文書内に埋め込みました.

#!bin/bash

cat << EOS
<html>
<head>
<style type="text/css">
<!--
body{line-height:150%;color:#000000;}
.unit{clear:both;}
.grid{
float:left;
width:220px;
margin:5px;
padding:0px
}
.grid p{margin:0;line-height:150%;}
a{text-decoration:none;}
a:link{color:#000000;font-weight:bold;}
a:visited{color:#000000;font-weight:bold;}
a:active{color:#000000;font-weight:bold;}
a:hover{color:#ff0000;font-weight:bold;}
-->
</style>
</head>
<body>
EOS


files="./small/200-*"
for filepath in $files
do
pic1=$filepath
pic2=${pic1/200-/$1-}
echo "<div class=\"grid\">"
echo "<img src=\""$pic1"\" alt=\"pic\" width=\"200\"><br>"
echo "<a href=\""$pic2"\" target=\"_blank\">"${pic2##*/}"</a>"
echo "</div>"
done
cat << EOS
<div class="unit"></div>
</body>
</html>
EOS

exit 0


(19th November 2013)    ImageMagick で jpeg 取扱い成功!

ここのところ悩んでいた,ImageMagick で以下のエラーが出で jpeg が扱えない問題 (4th November 2013 記載) について,試行錯誤の結果,ついに解決!

Wrong JPEG library version: library is 80, caller expects 62 'xxx.jpg'
@error/jpeg.c/JPEGErrorHandler/319

考えてみればデジカメ画像は全部 jpeg なのでこれを Puppy で扱えないといつまでも Windows を手放せなくなるのでやはり何とかしなければと思っていたところでした. 少しシンボリックリンクの勉強もでき,大変すっきりしました. 対応策として,libjpeg.so.8.0.2 を消すことも試みましたが,Viewnior (jpeg, png などの viewer) がこれを読みにくるので,よくありません. 結局のところ,ImageMagick は libjpeg.so.62.0.0 を使いたいらしいので,libjpeg.so のリンク元を libjpeg.so.62.0.0 にしておくことが決め手のようです.

揃えておくものは以下のとおり.

/usr/lib/libjpeg.so シンボリックリンク.これを libjpeg.so.62.0.0 へのリンクに書き換える.
/usr/lib/libjpeg.so.7 libjpeg.so.7.0.0 へのシンボリックリンク
/usr/lib/libjpeg.so.7.0.0
/usr/lib/libjpeg.so.8 libjpeg.so.8.0.2 へのシンボリックリンク
/usr/lib/libjpeg.so.8.0.2
/usr/lib/libjpeg.so.62 libjpeg.so.62.0.0 へのシンボリックリンク
/usr/lib/libjpeg.so.62.0.0
/usr/lib/libjpeg.la ImageMagick が make の時読み込んでいる模様.ないとエラーとなる.
  • libjpeg.la 以外は Puppy のインストール時に入ってくる模様.
  • libjpeg.la は手持ちがなければ web で検索して撮ってくる.また中身は libjpeg.so.62.0.0 用に書き換える.
  • 更に,libjpeg.so の中身を確認し,libjpeg.so.62.0.0 へのリンクに書き換える.

ImageMagick のインストールは以下のコマンドでok. install 後,念のため,ldconfig /usr/lib しておく.

tar xvf ImageMagick.tar.bz2
cd ImageMagick-6.8.7-4
./configure
make
make install
ldconfig /usr/lib

make で「/usr/bin/ld: warning: libjpeg.so.8, needed by /usr/libtiff.so, may conflict with libjpeg.so.62」という警告が出ますが,tiff を扱う予定はないので気にしないことにしました.



(17th November 2013)    新しいシステムUSBを作る

今日は,いままで使っていた 16GB の Puppy の USB から,ユニバーサルインストーラを用いて 8GB の USB に Puppy およびその他プログラムをインストールしてみた.

Puppy 本体および sfs や pet は簡単にインストールできた. 最初の時問題だった GMT も最初の時に作った設定ファイルを用いて問題なくインストールできた. しかし ImageMagick が jpeg を扱えない問題は同じように残った.

最終的には,この USB は万が一のための救出用として,デフォルトでインストールされたもの以外は入れずに,空容量は Windows データの一時保管などに使うことにした.



(13th November 2013, evening)    TeX: dvipdfmx フォント埋め込み

やりたいこと:Puppyに導入したTeXにおいて,dvipdfmxでpdfに日本語フォント ipa モナーを埋め込む.

手順

  • 埋め込みたいフォントと格納されているdirectoryは?
    • /usr/share/fonts/default/TTF/ipam-mona.ttf
    • /usr/share/fonts/default/TTF/ipag-mona.ttf
  • ファイルipa.mapを置く場所は?
    • /usr/local/texlive/2011/texmf/fonts/map/dvipdfmx/
  • ipa.map の中身は?
    • rml H ipam-mona.ttf
    • gbm H ipag-mona.ttf
    • rmlv V ipam-mona.ttf
    • gbmv V ipag-mona.ttf
  • フォントをTeXに認識させる手順は?
    • mkdir /usr/local/texlive/2011/texmf/fonts/truetype
    • cd /usr/local/texlive/2011/texmf/fonts/truetype/
    • ln -s /usr/share/fonts/default/TTF/ipam-mona.ttf
    • ln -s /usr/share/fonts/default/TTF/ipag-mona.ttf
    • mktexlsr
  • dvipdfmx の実行
    • dvipdfmx -f ipa.map filename.dvi

上記手順で Adobe Reader で日本語文書が表示され,フォントが埋め込まれていることが確認できます. この手順は,こちら (http://nanase.hatenablog.jp/entry/2013/08/09/023416) のサイトを参考に作成しました. なお私の環境で xdvi での日本語表示は不可です.しかし実用上はこれで良しという感じです.



(13th November 2013, morning)    TeX のインストール,実は失敗か?

とりあえず何が起こっているのかを書いてみる.

  • インストールしたもの:texlive-2011-TETEX.sfs
  • 自分の書式や追加のスタイルファイルをいれた directory を /usr/local/texlive/2011/texmf-dist/tex/platex の下にコピーし mktexlsr を実行
  • 日本語文書を platex でコンパイルしたdvi ファイルを xdvi で見ようとすると全ての日本語が文字化けしている.数式や欧文は問題なし.
  • 上記文書を dvipdfmx で pdf 化し Adobe Reader で見ようとしても数式・欧文を除き日本語は見えない.
  • しかしながら,上記 pdf を ePDFview で開くとちゃんと日本語を表示してくれる.

次に上記挙動から考えられることを書いて見る.

  • ePDFview を調べてみると /usr/share の直下に /poppler という directory があれば日本語が埋め込まれていない pdf も表示できるようになるらしい. この PC の Puppy を調べると確かに poppler という directory があり中に何やらのファイルが入っている. したがって ePDFview はしかるべき動きをしているのであろう.
  • 調べてみると TeX が utf8 に対応していない場合,xdvi で日本語を表示できないらしい. 日本語文書の TeX が吐き出す log の一行目は以下のとおりであり,この TeX は utf8 に対応していると思うのだが...
    This is e-pTeX, Version 3.1415926-p3.2-110415-2.3 (utf8.euc) (TeX Live 2011) (format=platex 2011.12.4)  13 NOV 2013 00:05
    
  • dvi を xdvi で表示できないということは platex による処理がまともにできていないことが考えられる. しかし ePDFview では見えるのだから xdvi が日本語に対応していないと考えるのが妥当か?
  • Puppy で作成した日本語文書 pdf を日本語 Windows 環境で Adobe Reader を使って見るとちゃんと見ることができる. しかし Adobe Reader の「ファイル」「プロパティ」「フォント」で見て見ると日本語フォントは(埋め込みサブセット)になっておらず埋め込まれていないことが分かる. したがって,Puppy 上の platex は正常に機能しているが dvipdfmx が pdf にフォントを埋め込んでいない,というのが問題なのだろう.
  • ちなみに,日本語 Windows の日本語 TeX 環境である w32tex で作成した日本語 pdf 文書には MS-Gothic や MS-Mincho が埋め込まれており,ファイルサイズも Puppy 版約 28kB に対し Windows 版約 70kB であり違いは明らかである.

TeX 文書は,私の場合通常 dvi でやりとりすることはなく,pdf にして扱うので,もし platex が日本語処理をまともに行っているのであれば,pdf に日本語フォントを埋め込む作業がうまくできれば実用上の問題は解決できることになる.



(10th November 2013)    geany 黒背景化

今日は,geanyの黒背景化に挑戦しました.ネットで調べていたら,geany-dark-schemeというページに黒背景化のためのファイルがあることが分かりました. 作業手順は以下のとおり.

  • geany-dark-scheme (http://code.google.com/p/geany-dark-scheme/) のページから geany_dark_filedefs_20100304_1980847.tar.bz2 をダウンロード. 適当な directory を作成して展開する.(私は geany_dark_filedefs という directory を作成し展開)
  • 展開されたファイル一式を /usr/share/geany/ にコピー.
  • ダウンロードしたファイルには Fortran の色更新ファイルが含まれていないため,filetypes.fortran というファイルを探しだし,自分で色を変更する必要あり.
  • filetypes.fortran は,foreground:黒,background:白が基本になっているので,これを逆転するように書き換える. 私の場合,background は他のファイルに対するものと同じような黒系色 (1e1e1e) とし,foreground は実際に何回か試しながら,白・水色・赤・黄色などで適当に色付けした.

これにて geany の黒背景化は完了.各ファイル別の色の修正方法も分かったので,今後は自分の気に入るように直していこうと思います.

昨日と今日の成果のデスクトップ画面が下の画像です.私の使用している PC の画面は 1366 x 768 なので少し横長です. この画面のキャプチャは,Windows と同じように Fn + PrtSc (F12) としたら mtPaint が立ち上がって自動的に画像を取り込んでくれたので,これを jpg 画像として保存しました.

screen.jpg


(09th November 2013)    Acrobat Reader と gv の導入

Acrobat Reader と gv の導入

pdf 及び eps の表示には,epdfview がデフォルトで入っていましたが,なんとなく見づらいのとメニューが上のほうに隠れてしまって使いづらいので,それぞれの viewer を入れました.

Acrobat Reader は sfs なので,「メニュー」「システム」「BootManager ブートアップの設定」「sfs ファイルのロード」で読み込み. 再起動の後,/root/Choices/MME-types にある「application_pdf」で「exec epdfview "$1"」=>「exec acroread "$1"」という書き換えを行う必要があります. これを行わないと pdf ファイルをクリックしても起動してくれません.

gv は pet なので,クリックによりインストールしてくれます.eps ファイルをクリックすると gv が立ち上がりますが,その eps を表示してくれません. 設定方法はあるのでしょうが分からないので,開きたい eps ファイルのある directory を選択しファイルを選択するようにしています. gv の画面はなかなかかっこいいです.

以上は早起きしてやった作業.その後午前中は KL に買い物,午後は Puppy のデスクトップ画面をいじっていて終わってしまいました.

デスクトップいじり

やったことは以下のとおり.

  • 「メニュー」「その他」「その他のプログラム」で urxvtset.desktop を開き,色を変える:ROX-Filer の色を変更する復習
  • 「メニュー」「デスクトップ」「Wallpaper」で壁紙の種類を変更.
  • 「メニュー」「デスクトップ」「デスクトップアイコンの変更」でアイコンを変更する.
  • 「メニュー」「デスクトップ」「JWMの設定」で下メニューバーを変更する.

最終的に壁紙は ImageMagick で簡単なものを作りました.コマンドは以下のとおり.フォントがデフォルトしか入ってないので文字が寂しい感じです. そこで,レギュラーフォントを stroke,strokewidth を使って太字に,skewX を使って傾けたりしてみました. このページ (http://www.imagemagick.org/Usage/fonts/) を参考にしました.ImageMagick による色々な文字の加工事例が紹介されています.

#!bin/bash
fcol=cyan
bcol=MidnightBlue
kfon=/usr/share/fonts/default/TTF/DejaVuSans.ttf
#kfon=/usr/share/fonts/default/TTF/M+1P+IPAG.ttf
convert -size 200x50 xc:$bcol -fill $fcol -stroke $fcol -strokewidth 1 -font $kfon -pointsize 32 \
-gravity center -draw "text 0,0 'Puppy Linux'" _temp1.png
convert -size 200x30 xc:$bcol -fill $fcol -font $kfon -pointsize 20 \
-gravity center -draw "skewX -10 text 0,0 'Precise - 550jp'" _temp2.png
convert -append _temp1.png _temp2.png _temp3.png

convert -bordercolor $bcol -border 50x50 _temp3.png str.png
convert -size 1366x768 canvas:$bcol wall_base.png
composite -gravity southeast str.png wall_base.png wall_paper.png
rm _*
exit 0

なお,自分で作った壁紙を削除する場合は,「usr/share/backgrounds/xxx.png」と「usr/share/backgrounds_original/xxx.png」(xxx.png は壁紙の画像ファイル名) の双方を削除する必要があるようです. その後再度「/root/puppy-reference/backgrounds/」に製作した壁紙をコピーすれば最新版が選択できるようになります.



(08th November 2013)    Fortran の計算で妙に時間がかかる件 (解決:プログラムミス)

Fortran の計算で妙に時間がかかる件は解決しました. このパソコンの Windows版gfortran より少し古いバージョンの Windows版gfortran をいれている会社の PC で同じ計算を行った結果,やはりすごく時間がかかりかつメチャクチャな結果を出してきました. やはりどこかプログラムがおかしいのかと思い色々見直した結果,ガンマ関数の計算の中で初期値未定で収束計算を行っている箇所がありました. この部分を修正することにより問題なく結果を出すようになりました. 逆に何でこの PC の Windows版gfortran がもっともらしい結果を出してきていたのかが不思議です. この件に関しては早速 Web にアップしているプログラムを差し替えました.件名は「水文統計解析」のプログラムです.すっきりしました!

作業中に気がついた gawk の特性などについて覚書.

  • gawk の命令は,bash の中では「'」で囲む.Windows では「"」なので注意!
  • gawk のフィールドセパレータをカンマ「,」にした場合({FS=","}),読み込むデータの「,」の前または後ろに1個以上の空白がないと「,」をセパレータとして認識しない. これに対しては,出力を吐き出すプログラム側で書式を調整しておく必要あり.


(05th November 2013)    会社は今日まで休み

今日はイスラムの新年ということで休日です.久しぶりに4連中を楽しみました.といってもパソコン三昧ですが.

WEBページの文字コードの変更 (shift-jis, CRLF => utf-8, LF) は VB プログラムを用い特段問題なく終わりました.ひとつ,気がついたこと.

  • 文字コード utf-8,改行コード LF のテキストファイルを Windows でコンパイルした Fortran プログラムで処理すると,文字コードは変わりないが改行コードは CRLF に戻ってしまう.
  • また,文字コード utf-8,改行コード LF のテキストファイルを Linux でコンパイルした Fortran プログラムで処理しても,文字コード・改行コードとも当然変化しない.

なお,メインのページ「WANtaroHP(工学問題のプログラミング」では,GMT や ImageMagick などのコマンドとして大量の MS-DOS のバッチファイルを紹介しています. このため,文字コードを変更し Linux を使ってアップロードするのは,やっていることがちぐはぐになるので,取りやめます. このページは,この「Linux日記」も含んでいるので,Linux からアップすることで行きたいと思います.

今日からシェルスクリプト bash の勉強を始めました.Fortran で何十ケースも同じプログラムを回したいとかその結果を GMT で作図したいとかいう時,MS-DOS のバッチファイルより効率的にスクリプトを書くことができるようです.

シェルスクリプトの練習とプログラムの挙動確認のため,Windows 用 Fortran の directory の文字コードを全て Linux 用に変換,いくつかの挙動確認を行いました. その結果,以下の違いを発見.

  • Bootstrap 法 f90 プログラム (LP3) において,Windows 版では 10 秒位の計算が Linux では 3 時間半かかっていた. 同じコードを通しているはずなのに.コンパイラのバージョンの違いによるものか? プログラム的にはガンマ関数の計算に時間がかかっていることは明らかなのだが.
  • GMT で作図し ImageMagick で png 化する場合において,同じコマンドを使っているのに違う挙動になる場合がある. 具体的には GMT による eps ファイルは問題なくできているようだが ImageMagick で png 変換をかけると図の右上右端 (NE側) が切れた図面が出来上がる. これは GMT 側で SWNE の全軸を使う設定にして InageMagick を使うことで実務上は解決. ImageMagick ではなく GMT 側の不都合のような気もするがなんで NE 側を認識しないかは不明.


(04th November 2013)    Puppy Linux (GMT4.5.9)

GMT のインストール

昨日は 1 日 GMT のインストールに四苦八苦していました. インターネット接続の残り容量が 300MB を切ったので,会社の LAN を使うべく仕事のフリをして事務所へ.3km 程の道のりですが PC を担いで歩いて行きました.

ハワイ大学の HP で INSTALL FORM というのを開き必要事項を記入して作成されたテキスト(sh)を取り込んで保存.Puppy でシェルを実行します. でも「ftpなんていうコマンドはないよ」と言われ,プログラムをダウンロードできません. そこでハワイ大学の HP から以下のファイルを事前にダウンロードしておきます.私の場合 /root の下に作業用の /GMT_inst という directory を作成しました.

  • gmt-4.5.9-non-gpl.tar.bz2
  • gmt-4.5.9.tar.bz2
  • gshhg-gmt-nc3-2.2.2.tar.bz2
  • install_gmt.sh
  • netcdf.tar.gz

まず netcdf のインストールです.これは

# cd GMT_inst
# tar xfvz netcdf.tar.gz
# cd netcdf-4.3.0
# ./configure --prefix=/usr/local/netcdf --disable-netcdf-4
# make check
# make install

という感じで問題なく終了.--disable-netcdf-4 をつけないとHDF5なるものが無いとか言ってきます. 使わないなら --disable-netcdf-4 をつけるようにインストーラが言ってくれますので,それに従いました. 次はGMTです.

/GMT_inst で install_gmt.sh を実行.質問されるので答えていきます. 主要な質問への答えは,GDAL; n, shared libraries: n, POSIX File Locking: y という感じです.なんか「POSIX File Locking」で「y」と答えるのがミソのような感じでした. 答えの候補を聞いてくるのでし質問に答えるのは比較的楽です.GMT のインストール先は /usr/local/GMT4.5.9 としました. また何かしらのコンパイラは必須であり,私の場合は gcc としました. 質問に答え終わると GMT4param.txt というファイルを作りインストールスタート.

GMT 自体のインストールはうまくいくのですが,テストランをかけると海岸線データを読み込んでくれません.GMT は「海岸線データが無い」と言って来ます. それもそのはず,海岸線データは GMT 本体にはリンクされず /GMT_inst の下に gshhg-gmt-nc3-2.2.2.tar.bz2 を展開した gshhg-gmt-nc3-2.2.2 という directory ができているのみです. Windows 版の構成を調べると(これも苦労した記憶あり),/usr/local/GMT4.5.9/share/conf に coastline.conf というファイルがありそこに海岸線データが入っている directory のフルパスを記載しています. そこで,Linux でも同様に海岸線データが展開された directory: gshhg-gmt-nc3-2.2.2 を /usr/local/GMT4.5.9 の下に移し,coastline.conf というファイルを作成し /usr/local/GMT4.5.9/share/conf に保存. ファイルの中身は以下の 1 行のみです.

/usr/local/GMT4.5.9/gshhg-gmt-nc3-2.2.2

またパスを通すのを忘れずに.これはインストールに成功すると通知してくれます./etc の中のファイル profile の最終行に以下の 1 行を追加します.

export PATH=/usr/local/GMT4.5.9/bin:$PATH

その後,pscoast を使ってみると海岸線データを読み込んで地図を作ってくれるではありませんか! ここまでやりきるのに昨日は朝から夕方までかかりましたが,目標を達成できたので満足です. この時点での USB メモリの消費容量は 2.2GB です.(Puppy 起動用 USB メモリは念のため 16GB のものを使っています.)

今回の経験に基づくGMTインストールの重要事項は以下のとおり.

  • 必要なファイルは予めダウンロードし準備しておく.
  • GMT インストールの前に netcdf をインストールする.
  • 主要な質問への答えは,GDAL; n, shared libraries: n, POSIX File Locking: y
  • install_gmt.sh は海岸線データを展開してくれるがリンクしてくれない.
  • 展開された海岸線データの directory: gshhg-gmt-nc3-2.2.2 を自分で好みの場所に移動する.
  • 海岸線データを入れた directory のフルパスを記載した coastline.conf を自分で作成,/usr/local/GMT4.5.9/share/conf に保存する.
  • /etc の中のファイル profile の最終行に export PATH=/usr/local/GMT4.5.9/bin:$PATH を追加する.

次は .eps を TeX に張り込むときに必要となる Boundary Box を指定するための Windows でいう GSview のようなのが欲しいです.

ImageMagick で問題発生

GMT のインストールがうまくいったのでテストランをかけていたときに問題に遭遇. eps から png への変換は特に問題なく行くようであるが,png を jpg に変換しようとしたら以下のエラーが出て変換不能.

Wrong JPEG library version: library is 80, caller expects 62 'xxx.jpg'
@error/jpeg.c/JPEGErrorHandler/319

ImageMagick を再インストールしてみましたが解決できず.web で調べたら海外での話題でかなり沢山ヒットしました. 多くの人が似たようなエラーを経験しているようですが,結局明確な解決方法はわかりません. 私の場合 ImageMagick で jpg を扱うことはめったにないから具体的な支障はないと思われます.でも気持ち悪いですね. ちなみに私の環境において Windows 版 ImageMagick の最新版でテストした結果からは問題なく jpg を扱えるようです.Linux 特有の問題のようです.



(01st November 2013)    文字コード変換プログラム (VB)

Windows から Linux 用にテキストファイルの文字コードと改行コードを変換するプログラムを VB で作ってみた. VB をいじるのは久しぶり.でもこういう作業は VB だと大変楽にプログラムができる. やっていることは以下のとおり.

  • "C:\WANtaroHP_FC2" に入っている shift-jis のテキストファイルを utf-8 に書き換え "C:\WANtaroHP_FC2_UTF8" に保存する.
  • まず "C:\WANtaroHP_FC2" 内の全ファイルをサブフォルダ内のものも含めてそのまま "C:\WANtaroHP_FC2_UTF8" にコピーする.以降の作業はこのフォルダ内のファイルに対し行う.
  • "C:\WANtaroHP_FC2_UTF8" 内の全ファイルのフルパスを取得し ListBox1 に書き出す.
  • ListBox1 に表示されたファイルを 1 個ずつ読み込み,テキストファイル (拡張子が .txt, .html, .css) かどうか判定.
  • テキストファイルであれば文字コードを shift-jis に固定して 1 行ずつ読み込み配列に保存.この際,html の charset 文を見つけたら表記を shift-jis から utf-8 に書き換えておく.
  • 読み込みを閉じて,書き込みファイルを開く.
  • 1 行ずつ,文字コード utf-8 (BOM無し),改行コード LF でファイルに書き出し.
  • 上記処理により画像ファイル (.pdfや.png) はコピーのみされ,テキストファイルの文字コードと改行コードが書き換えられ保存される.

使用コントロールは実行のための Button1 とファイル名を書き出す ListBox1 の2つです. VB のコードを以下に示します.

Public Class Form1

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Dim dirR As String = "C:\WANtaroHP_FC2"
Dim dirW As String = "C:\WANtaroHP_FC2_UTF8"
Dim fnameR As String = ""
Dim fnameW As String = ""
Dim i As Integer
Dim j As Integer
Dim num As Integer
Dim iflag As Integer
Dim sline(100000) As String

My.Computer.FileSystem.CopyDirectory(dirR, dirW, FileIO.UIOption.AllDialogs, FileIO.UICancelOption.DoNothing)
Dim files As String() = System.IO.Directory.GetFiles(dirW, "*", System.IO.SearchOption.AllDirectories)
ListBox1.Items.AddRange(files)
For i = 0 To ListBox1.Items.Count - 1
fnameR = ListBox1.Items(i)
fnameW = fnameR
iflag = 0
If fnameR.IndexOf(".txt") >= 0 Then iflag = 1
If fnameR.IndexOf(".html") >= 0 Then iflag = 2
If fnameR.IndexOf(".css") >= 0 Then iflag = 3
If iflag >= 1 Then
Dim sr As New System.IO.StreamReader(fnameR, System.Text.Encoding.GetEncoding("shift-jis"))
num = -1
While sr.Peek() > -1
num = num + 1
sline(num) = sr.ReadLine()
If sline(num).IndexOf("") >= 0 Then
sline(num) = sline(num).Replace("shift_jis", "utf-8")
End If
End While
sr.Close()
Dim sw As New System.IO.StreamWriter(fnameW, False, New System.Text.UTF8Encoding(False))
For j = 0 To num
sw.Write(sline(j) + vbLf)
Next j
sw.Close()
End If
Next i

End Sub

End Class


(31th October 2013)    Puppy Linux (TeX)

Puppy に TeX を導入.日本語・dvipdfmx も ok.eepicsup をインクルードすると arc コマンドが不安定になるので削除. 自分用のスタイルの入った directory を /usr/local/texlive/2011/texmf-dist/tex/platex の下にいれたら ls-R ファイル更新のため,mktexlsr コマンドを実行しておく.

現在個別にインストールしたものは以下のとおりです.(ファイル容量は私の SSD の記録です)

unetbootin-windows-585.exe   5.2MB Puppy Linux インストール用プログラム起動用 USB 作成 (Windowsより)
precise-550JP.iso  180.6MB Puppy Linux 起動用 USB 作成 (Windowsより)
luci_devx_528.sfs  141.7MB GNU C コンパイラ
gfortran-4.4.3.pet    4.5MB GNU Fortran コンパイラ
ghostscript-9.05.Lucid.pet   8.9MB Ghostscript (eps取扱い用)
ImageMagick.tar.gz   11.7MB ImageMagick (画像処理用)
gnuplot-4.6.4.tar.gz    5.0MB gnuplot (作図用)
texlive-2011-TETEX.sfs  349.4MB pLaTeX (文書作成)
  • sfsファイルは /mnt/home におとし「メニュー・システム・BootManager」で起動時ロード設定し再起動で使用可能.
  • petファイルはクリックすることにより自動でインストールしてくれる.
  • tarファイルは端末を立ち上げ自分で make です.

とりあえず現状の課題をあげてみると以下のとおりです.

  • 初めから Puppy に付属していた pdf viewer が不安定な気がする.もっと良い pdf viewer を探す.
  • 難問である GMT のインストール.
  • エディタ?である Geany の合理的な使い方を覚え,Fortran コンパイル・TeX コンパイル・html 文書確認などの効率化を図る.
  • せっかく Linux を始めたので,Web 関係の文書の文字コードを shift-jis から utf-8 に変換する.久しぶりに VB でやってみる?


(29th October 2013)    Puppy Linux (ghostscript と ImageMagick)

ここ数日,Puppy Linux で ghostscript のインストールに手間取って作業が中断していたので,この間,KNOPPIX への浮気を行ってみました. システムファイルが 700MB 弱でダウンロードに 2 時間半費やしました.先進国でない海外は通信環境が貧弱なので辛いです. unetbootin-windows-585 を使ってインストールを行い,USB からの起動は成功. 中を覗いてみると gcc,gawk,ghostscript,ImageMagick と,使いたいものは結構揃っているようですが,肝心の gfortran が無い! ネットで gcc のバージョン (4.6.1) と同じ gfortran を探しましたが見当たらず.

そうこうしているうちに運良く ghostscript-9.05-Lucid.pet を発見.さっそくダウンロードし Puppy にインストール. そしたらちゃんと新しい ghostscript が立ち上がるではありませんか!旧バージョンへのリンクを切り新しいバージョンを優先にしてくれたのですかね. 何をやってくれたのかはよく分かっていません.すかさず最新版の ImageMagick をインストールしたらこれも成功. eps から png への変換が問題なくできるようになり,めでたしです. 結局 Puppy のほうがやりたい環境を早く作れそうです. 次はなんとか GMT (generic Mapping Tools) をインストールしたいのですが,これには一度失敗しており手強そうです.



(26th October 2013)    Puppy Linux (ファイルのアップロード)

このページをFC2にアップロードしました. アップロードは,「メニュー => インターネット => gFTP FTPクライアント」で行っています. 必要な接続情報を入れたら「ブックマーク」に登録することにより繰り返し利用可能.

あと,プログラムが入っている directory を確認しました.いずれもパスは通っています. パスは,$PATH あるいは env で確認可能. なお,gawk がインストールされているのを見つけたのは成果でした.

Program PATH
gcc /usr/bin
gfortran/usr/bin
gnuplot /usr/local/bin
gawk /bin


(25th October 2013)    Puppy Linux ( gnuplot のインストール, GMT は失敗)

gnuplot

今度は作図用ソフトが欲しい!ということで,まずは gnuplot のインストール.

最新版の gnuplot-4.6.4.tar.gz をダウンロードし /root に置く

01 | # tar xvf gnuplot-4.6.4.tar.gz
02 | # cd gnuplot-4.6.4
03 | # ./configure
04 | # make
05 | # make install
  • 01: /root の下に directory gnuplot-4.6.4 を作成し gnuplot-4.6.4.tar.gz を展開
  • 02: gnuplot-4.6.4.tar.gz が展開された directory に移動
  • 03: コマンド ./configure を実行.画面に処理内容が表示される
  • 04: make を実行.画面に処理内容が表示される
  • 05: make install を実行.画面に処理内容が表示される

一連の処理が完了したらテスト.#gnuplot で gnuplot が立ち上がるので,とりあえず

gnuplot> plot sin(x)

してみると,別画面が現れ sin(x) のグラフが表示された.インストール成功! いくつか directory を移動してやってみるが問題なし.パスは全体に通っていると想像.

GMT (失敗)

次のターゲットとして GMT のインストールを試みていますが,ダウンロードしたスクリプトの中で「ftp コマンドが無い」ようなコメントが出でインストール不可! 現在対応模索中です.



(24th October 2013)    Puppy Linux ( gcc と gfortran インストール)

今日は天気が曇りのせいか通信環境が非常に悪い. 約 150MB のファイルをダウンロードするのに1時間かかり,ここへのアクセスもかなりの時間待.

gcc

閑話休題,今日は開発環境導入に挑戦. devx_xxx.sfs のようなファイルが必要とのことで Index of /puppylinux/download/devx に行ってみるが 550JP に対応するものはないようなので,まず最も日付の新しい devx_slacko_5.3.sfs (28-Oct-2011:127MB) を /mnt/home にダウンロード. メニュー->システム-> BootManager ブートアップの設定:SFS ファイルのロードで devx_slacko_5.3.sfs を Add して ok,再起動. gcc -v で gcc は使えるような雰囲気だったが実際コンパイルを実行するとリンクがおかしいのかコンパイル不能.

今度は luci_devx_528.sfs (15-Aug-2011:135MB) をダウンロードし同じ手続き後再起動! gccで Hello world ! の表示に成功!

今日は私の住んでいるパハン州の王様の誕生日で会社が休みだったので一日粘っていましたが,そのかいあって gcc を回せるようになりました. 自分としては大満足です.次は gfortran をいれられればと思ってます.

備忘録です.

自分の環境では root の下に gcc という directory を作成. gcc_hello.c をエディタで作成しそこに保存. 端末から以下のコマンドを入力.端末を立ち上げたときは /root にいます.

# cd gcc
# gcc -o gcc_hello.exe gcc_hello.c
# ./gcc_hello.exe
Hello, world !

という感じです.

実行ファイル名の .exe は linux の伝統にあっているかは分かりませんが,自分用の目印としていれています. ファイル名先頭の gcc_ も同様.Fortran90 のプログラムなら f90_ を先頭につけるようにしています.

(追記) 「.exe」についてはファイル名の一部でありコンパイラのじゃまをしなければいいやと思っていましたが, Linux のファイラで見ると「.exe」をつけたものは「dos/windows実行ファイル」となっていおり、折角 Linux を使っているのに残念! ということで,これからはつけるのは止めます.

なお上記コマンドでコンパイルできているので,gcc コンパイラのパスは全体に通っていると思っています(想像).

実行時に「./」を忘れずにつけることに注意. 実行ファイルはできているのに「./」を付けないがためにに「ファイルが見つからないよ!」と怒られていました. これに気づくのにも色々 linux 関係を検索し時間を費やしてしまいました. 決まりなので解ればそれまでですけどね.

gfortran

その後,もう少し頑張って gfortran のインストールに成功. Index of /home/emil/MathSoftware/Puppy5 から gfortran-4.4.3.pet をダウンロードし,インストール. インストールは ROX-filer (ファイル) で pet ファイルをクリックすることで実行. /root の下に f90 という directory を作成し,hello world のプログラムを入れて,コンパイル。実行し,表示に成功.

これも最初は新しいバージョンである gfortran-4.5.2.pet を見つけたのでインストールを試みたが,いくつかのリンクファイルが足りないようで失敗. gcc と同じバージョンでないとダメのようです.バージョンは少し古くてもちゃんと回れば「良し」としたいと思います.

今日はすごく成果があった感じです! 用いた主要なプログラムは以下のとおり.

unetbootin-windows-585.exePuppy Linux インストール用プログラム起動用 USB 作成 (Windowsより)
precise-550JP.iso Puppy Linux 起動用 USB 作成 (Windowsより)
luci_devx_528.sfs GNU C コンパイラ Puppy Linux で download and install
gfortran-4.4.3.pet GNU Fortran コンパイラ Puppy Linux で download and install


(22nd October 2013)    Puppy Linux ( Puppy インストール)

Puppy Linux

10/20より linux の試用を開始.

目的:xp も苦しい PenM,メモリ 512MB の古いノートパソコンの復活と将来的な linux への乗り換えの準備.

使用PC:Let's note CF-J10UYBHR (Core i5:2.3GHz, メモリ4GB,SSD128GM,画面解像度1366x768,Windows7)

この PC は SSD 搭載であり Windows7 もストレスなく動きます. また仕事でも使うので USB ブートで「軽い」という評判の Puppy Linux を起動することを指向し作業開始.

10/20は Windows で lupu-528JP.iso, unetbootin-windows-585.exe をダウンロードし 8GB の USB メモリに書き込みを実施. PC 側にて F2 キー BIOS 画面にて「USBハードディスク」の優先順位をあげ,USB をさして電源をいれると,USB からの起動に成功, Puppy Linus を起動できました.linux 上では画面解像度の変更がきかず.(続く)

結局 Puppy Linux の最新版である precise-550JP.iso をダウンロードし同じ手順で起動用 USB を作成. これを起動することにより PC の画面解像度 1366 x 768 の認識に成功.

通信環境など

次はインターネット接続.会社の有線 LAN への接続は問題なく成功. USB タイプのマレー製ダイアルアップモデムの接続に手間取りましたが, 最終的には「インターネット接続手段」で「ダイアルアップ アナログあるいは無線モデム」を選択, 「外部接続モデムをもってますか?」とか聞いてきましたが事実を答えながら, 「phone number, username, wiewless APN, password」をモデムの説明書にしたがって入力することにより,接続に成功.

USBマウスも自動認識してくれています.

日本語入力は PC キーボード左上の「半角/全角|漢字」キーにより切り替えて行います. 「alt + 半角/全角|漢字」ではないことに注意ですね.



pic
inserted by FC2 system