(24h August 2014) トップページ
このページも含め,自分で作成しているホームページのトップページについて,何か物足りない. WANtaroが運営しているページの目的は,設計理論やプログラムを掲載しておき必要な時参照することであり,基本的に自分用なので,トップページのみてくれなどあまりこだわる必要は無いのだが。 まだどうしたらいいのかのイメージは無いのだが,いつか書き換えてやろうと思っています.
このページも含め,自分で作成しているホームページのトップページについて,何か物足りない. WANtaroが運営しているページの目的は,設計理論やプログラムを掲載しておき必要な時参照することであり,基本的に自分用なので,トップページのみてくれなどあまりこだわる必要は無いのだが。 まだどうしたらいいのかのイメージは無いのだが,いつか書き換えてやろうと思っています.
上流側に導水管を有する放流ゲートの流量算定式をアップ. 考えれば簡単に分かることだが,よく「どうやったっけ?」と思うことがあるため,公式を整理してアップした.
現在行っている水力発電所の設計に関連して,発電機からの荷重伝達やスパイラル・ケーシング回りの応力分布を確認するため,軸対称FEMのプログラムの見直しを行っている. ここで,理論解の存在する簡単な事例として,内圧を受けるトーラスの解析を行い,その結果をこのHPにアップした. その他,軸対称FEMでは主応力分布図や主応力ベクトル図を作成する後処理プログラムを作っていなかったので,そこいらの整備も行いつつある. プログラムのテスト・ランや後処理プログラムの作成そのものはおもしろいのだが,仕事で使うつもりなので,それにしては見直しの時間が無いのが気になる.
必要に迫られて2つの数値解析のプログラムを作りました. 1つは,軸力と2軸曲げを受けるRC矩形断面の終局耐荷力計算プログラム,もう1つは格子桁解析プログラムです. 格子桁解析プログラムは,平面骨組解析プログラムの要素剛性と自由度を変更しただけですが,なかなか使えそうです. 本当は3次元骨組構造解析のプログラムが欲しいのですが,これは難しいので未だに取りかかっておらず,必要最小限ということで,比較的簡単に作れる格子桁解析プログラムで妥協しました. 軸力と2軸曲げを受けるRC矩形断面の終局耐荷力計算も,以前から整備しようと思っていたのですが,そろそろ時間切れとなってきたので頑張って作成しました. 今はPCを使って結構簡単にやりたいことができるけど,PCが普及していなかったころは「大変だったんだろうなあ」とつくづく思います.
久しぶりに数値解析のプログラムを作りました. 4辺が単純支持された等分布荷重を受ける矩形板のたわみと断面力を計算するプログラムで,Navier の方法を用いています. これまでは,スラブの設計には,Timoshenko の Theory of Plates and Shells の数表を使っていましたが,一応基本的な計算ができるプログラムを作ろうと思い立ったのでした. Navier の方法は定式化が簡単でプログラム化するには適していますが,二重三角級数の収束が遅いという難点があります. ただし基本的に sin と cos の積の形の級数ですので,項数を多くしても値が発散することはなく,CPU パワーにものをいわせて計算できます. 暇を見て,色々な荷重条件や境界条件で計算できるようにしてみよう...かな?
通常使うブラウザを 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 に指定しておきました.まあまあ見られますがあまり綺麗ではない.
最近仕事で水力発電所建屋の概要図を作成するプログラムを作りました.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 ですが,iconv と dos2unix の両方を使えることが分かったのは成果でした. その他,書き換え時の注意事項を下表に記載しておきます.
項目 | Windows (DOS) | Linux |
---|---|---|
変数セット | set fig=fig_gmt.eps | fig=fig_gmt.eps |
変数の利用 | %fig% | $fig |
スクリプト呼び出し | call xxx.bat | source xxx.sh |
gawkスクリプト記載 | gawk "print a" | gawk 'print a' |
最近仕事で使っている,3次Spline補間プログラムを,このサイトに追加しました.
ここのところ,ホームページの衣替え作業を行っていたが,一応完成. デザインの問題なので,なかなか満足いくものはできないがとりあえずの妥協案というところか.
また,yahoo の geocites は引き払い,JCOM と FC2 にページを集めた.
Theme | HDD | Web site |
---|---|---|
WANtaroHP (Fortran and Drawings) | WANtaroHP_html5_win | http://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/ |
テキストエディタでプログラムや html 文書を打ち込んでいるとき,等幅フォント (Fixed) を使っていても,同じ文字数なのに行末が一致しなかったりして気持ちが悪かった. そこで,ネットで検索し,VL 等幅フォントを導入.手順は以下のとおり.
使用してみると,かなり見やすい.肝心の行末については,そこそこか.エディタの予約語の強調なども関係あるのだろうか?完璧というわけではないらしい. しばらく使ってみようと思う.
昨日・今日と仕事は忘れてのんびりしています. 今日は朝 10:30 まで寝てしまった.とは言っても夜中 1:30 に起きてしまったので 5:00 位まで PC をいじりながらウイスキーを飲んでいたのだ. 不健康な生活です.
で,今日は Linux 上で,ImageMagick により短冊による色見本を作成しました. 既に Windows 環境で作成していますが,復習を兼ね Linux 環境で行いました.結局 Fortran プログラムの出番は無く,awk でやってしまいました. やはり色見本はいくつかの場所に置いておき,いつでも参照できるようにしておきたいものです. この HP にもアップしておきました.
maxis のモデムを紛失したと思い込み,5月13日に celcom のモデムを買ったのですが,その日のうちに maxis のモデムを発見. 今日は KLCC に行って maxis のモデムのトップアップしてきました.celcom のモデムは Win でしか使えないので,maxis 復活により Puppy Linux でもインターネット接続が可能になりました. お金はかかりましたが,良かった良かった.
あとは気分転換に,FC2 にアップしているホームページの CSS を変更.イメージチェンジを図りました. 前の構成は目次が使い辛かったので,それは少し改善されたような気がします. また今まで可変幅だったのを固定幅 (1000px) にしました.本当は 800px にしたかったのですが,数式や図の配置に無理がLかかるので,1000px に落ち着かせました.まあこれは好みの問題でしょうけど.
また,PuppyLinuxにガジェットを追加しました.時計とカレンダー.やったことは以下のとおり.
洪水時貯水池水位解析プログラムをアップしました. 昔C言語で作ったことがあるものをFortranに書き直し,少し機能を追加しました. 収束計算については,貯水池水位を1mmピッチで計算することを考慮し,水位を1/10mmづつ変化させるという原始的な方法をとっています. もっとうまい方法があるような気がするのですが,ルーチンが簡単だしとりあえず昔ながらの方法としています.
Julia 集合の漸化式の指数部を一般化して描画するプログラムをアップしました. 複素数の累乗は,極座標変換することにより,三角関数を介して実数部と虚数部に分解できますが,角度計算が必要となり,面倒なので, このプログラムでは,Fortranの複素数関数を使って複素数の演算を行っています.プログラム的にはすっきりしていると思います.
また,これまでこの手の描画は白黒画像としてきましたが,今回はカラー画像としてみました. 結局はGMTのカラーパレットをカラー対応にするだけなので,特に手間がかかる訳ではありませんが.
Mandelbrot 集合描画プログラムを少しいじって,Julia 集合描画プログラムをアップしました. 作図は Mandelbrot 集合描画と同様に GMT を用いて行い,GMT の吐き出す eps を ImageMagick により jpg 画像に変換するようにしています.
Mandelbrot 集合描画がうまくいったので,今度は同じ Mandelbrot 集合の計算式を用いる Buddhabrot の描画プログラムをアップしました. 作図は Mandelbrot 集合描画と同様に GMT を用いて行い,GMT の吐き出す eps を ImageMagick により jpg 画像に変換するようにしています.
Mandelbrot 集合描画のプログラムをアップしました. 作図は当初は gnuplot でやってみましたが,やはり最近使い込んでいる GMT で!ということで GMT を用いています. ただし GMT の吐き出す eps ファイルは 10MB を越える場合もあり扱い辛いので,即座に ImageMagick により jpg 画像に変換するようにしています.
以下のページを新たに追加しました.
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 用です.
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号 |
昨日は,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/sda1 | linux-swap | 2.00GB | |
/dev/sda2 | ext2 | 10.00GB | boot |
/dev/sda3 | ext3 | 62.53GB |
ここでは,Puppyのシステムをext2にいれていますが,パーティションを切り直したい場合,PuppyをCDから立ち上げても システムの入っているext2をアマウントできないので,この場合は別のLinuxシステムを用いる必要があります. 私の場合,もっていた KNOPPIX を DVD ブートで立ち上げ,KNOPPIX の GParted でパーティションを切り直し,Puppy を2回ほど再インストールしました.
インストールしたプログラム類は以下のとおり.
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 に新規にインストールしました.
今日はPuppy Linux の最新版 Precise-571JP の起動USBを作りました. この作業はしばらく前から行っていたのですが,Ghostscriptの最新版のインストール方法がわからず,フォーラムで質問したらすぐに解決しました.
Puppy本体は,precise-571jp.isoを unetbootin-windows-585.exe を用いてWindows上でUSBメモリにインストールします. 用いたUSBメモリは8GBです. precise-550JPではLucid用のプログラムを組み込むといインチキをしていたので,571ではインチキなしでうまく環境を整えようと思います.
インストールしたプログラム類は以下のとおり.
一時帰国日程が決まりました.2月21日(金)夜便で日本へ,3月9日(日)昼便でマレーシアに戻る予定です. 今回は会社支給のXPノートパソコン(大きくて重い)をWin7にアップデートのため持ち帰らなければなりません. 今回は日本においてあるXPノートパソコン(B5サイズ)をLinux専用機とするため持ってきたいのですが,前述会社のお荷物があるので憂鬱です.
とりあえず日本から持ってきたいものを記載しておきましょう.
そう言えば前回帰国時は「R」の本を買って持ち込んだのだけど,全然勉強していない!
以下のページをMathJaxを用いて作成しアップしました.一応英語で作成しました.数式は日本語版のコピーです.
以下のページをMathJaxを用いて作成しアップしました.といってもTeXの文書をhtmlとしてアレンジしただけです.
不等流解析プログラムの文書は英語で作成しましたが,RC圧力水路と水圧鉄管の文書は日本語のまま. 早々に英語版を作成しなければ.
ついに2014年がやってきました.1月1日は同僚エンジニアの娘さんの結婚式,昨日1月4日は前から招待されていた夕食会に言ってきました.
で,プログラムの話ですが,昨日・今日で2014年初のプログラムを作りました. このWebページは,これまは一回作ったものをコピーし,修正しながら新しいページを作る方式をとっていましたが,面倒なので一括で書式調整するプログラムをFortranで作りました. 結果としてそれらしき答えを出しているようです. 機能としては以下のものです.
ジャンプメニューについては</article>が現れたらその直後に挿入するようにしました. Mathjaxについては,常にインターネットに接続しているとは限らないので,作業チェック用にPCにダウンロードしてあるMathJaxを読みにいくものを加えました. ただしLinuxのパスで書いてあるのでWindowsでは機能しません(Windows用パスに書き換えれば機能します).
Fortranの文字列処理もなかなかおもしろいです.凝ったことをやらなければC言語より扱いは簡単かもしれません.
さて,1月のPC遊びは何をしようか...設計関係の文書をMathJaxに載せてアップしてみようかと言う感じです. 項目としては,水圧鉄管と鉄筋コンクリート圧力水路の設計理論,およびWindows版Fortran90のページに載せている不等流計算の事例などですかねえ.
昨日はクアラルンプールにディナーに行ってきました.時間待ちでビールを飲みすぎ,メインディシュが少ししか食べられなかったのが悔やまれます. おみやげにして,一緒に来た仲間が持ち帰りました.
一方,最近Simpson法を勉強しているので,任意の平面領域を指定して積分するプログラムをSimpson法とGauss-Legendre法で作って見ました. 基本は,FEMの四角形要素の積分で行っているものと同じです.積分領域の指定はFEM用のメッシャーを使っています. 数値積分単体を実務のどこで使うか?となると出番はないような気がしますが,理論と方法論の確認という意味では,意味があるでしょう. 結果としてそれらしき答えを出しているようです.
実務上凝りたいのは不等流計算プログラムか?プログラム本体はできるだけ汎用性を持たせるようにして,入力データとして通水断面特性を入れるようにしている. これで問題ないのだが,今は通水断面特性のテーブルを作成するのに簡単な複合台形断面の計算を行うプログラムを別途作っている. しかし本当は実測した座標を入れるとそこから任意断面の断面通水特性のテーブルを作るようにしたいと思っている.
あとはたまに欲しいと思いながら公式集やTimoshenkoで対応している板曲げのFEMプログラムか.
今日はクリスマス.なぜだかマレーシアは休日です.そこでSimpson法とGauss-Legendre積分の重積分化に挑みました. 一応答えは出ているようです.やはりGauss-Legendreは精度がよいなという感じです. ただし,積分点座標や重みの精度もあり10-12位の誤差までの精度です. が,私が通常行っている計算のレベルからすれば充分な精度です.
今週末は久しぶりにゆっくりできたので,LinuxのMathJaxのページに以下の記事を追加しました.
今朝Puppyフォーラムに質問したら,すぐ答えが帰ってきました.以下の組み合わせでokとのこと. 結局USBをフォーマットしてPuppyを入れ直しました.これによりdevx_precise_5.5.sfsの組み込み成功. Fortranのファイルはパッケージマネージャーで探してフォーラムで教えていただいた最小限の3つのファイルをインストールしました. 結果として問題なく4倍精度で計算できるようになりました.
gccとgfortranを含め全てのプログラムをインストールしなおしたのですが,今回はImagemagickで2回インストールしたらlibjpeg.laがないのにうまくmakeでき,libjpeg.soもlibjpeg.so.8.0.2を見にいくことでjpegを扱えます. いったいどうなっているのでしょうね.
DKA 法の使い方の復習をかねて Puppy にインストールしてある gfortran (gcc version 4.4.3) で4倍精度計算を行おうとしたら,このバージョンは4倍精度に対応していないとコンパイラに言われてしまいました. あわてて devx_precise_5.5.sfs を探しだし gcc のバージョンアップを図ろうとしましたが,これを読もうとしたらカーネル・パニックということで Puppy が立ち上がらず. しょうがないので,gcc のバージョンは元に戻し,Puppy を含め全てのソフトをインストールしなおしました. 意外な落とし穴でした.Windows版gfortran は4倍精度に対応しているのに少しショックでした. 費やした時間は3時間ほど.こういう時にどうやったか記録をとっておく(私の場合はこのwebページ)と迷わず作業ができるので大変便利です.
ImageMagick で jpeg 画像が使えるようになったので,デジカメから転送した jpeg 画像を縮小し,html で表示するスクリプトを作ってみました. この作業は今まで Visual C# で作成したプログラムで行っていましたが,「やはりPuppyから実行する」ことを目指して作成したものです.
# bash sh_small.sh 300 # bash sh_pic.sh 300 > pic.html
機能は,基となる 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/
機能は,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
ここのところ悩んでいた,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 の時読み込んでいる模様.ないとエラーとなる. |
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 を扱う予定はないので気にしないことにしました.
今日は,いままで使っていた 16GB の Puppy の USB から,ユニバーサルインストーラを用いて 8GB の USB に Puppy およびその他プログラムをインストールしてみた.
Puppy 本体および sfs や pet は簡単にインストールできた. 最初の時問題だった GMT も最初の時に作った設定ファイルを用いて問題なくインストールできた. しかし ImageMagick が jpeg を扱えない問題は同じように残った.
最終的には,この USB は万が一のための救出用として,デフォルトでインストールされたもの以外は入れずに,空容量は Windows データの一時保管などに使うことにした.
やりたいこと:Puppyに導入したTeXにおいて,dvipdfmxでpdfに日本語フォント ipa モナーを埋め込む.
手順
上記手順で Adobe Reader で日本語文書が表示され,フォントが埋め込まれていることが確認できます. この手順は,こちら (http://nanase.hatenablog.jp/entry/2013/08/09/023416) のサイトを参考に作成しました. なお私の環境で xdvi での日本語表示は不可です.しかし実用上はこれで良しという感じです.
とりあえず何が起こっているのかを書いてみる.
次に上記挙動から考えられることを書いて見る.
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
TeX 文書は,私の場合通常 dvi でやりとりすることはなく,pdf にして扱うので,もし platex が日本語処理をまともに行っているのであれば,pdf に日本語フォントを埋め込む作業がうまくできれば実用上の問題は解決できることになる.
今日は,geanyの黒背景化に挑戦しました.ネットで調べていたら,geany-dark-schemeというページに黒背景化のためのファイルがあることが分かりました. 作業手順は以下のとおり.
これにて geany の黒背景化は完了.各ファイル別の色の修正方法も分かったので,今後は自分の気に入るように直していこうと思います.
昨日と今日の成果のデスクトップ画面が下の画像です.私の使用している PC の画面は 1366 x 768 なので少し横長です. この画面のキャプチャは,Windows と同じように Fn + PrtSc (F12) としたら mtPaint が立ち上がって自動的に画像を取り込んでくれたので,これを jpg 画像として保存しました.
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 のデスクトップ画面をいじっていて終わってしまいました.
やったことは以下のとおり.
最終的に壁紙は 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/」に製作した壁紙をコピーすれば最新版が選択できるようになります.
Fortran の計算で妙に時間がかかる件は解決しました. このパソコンの Windows版gfortran より少し古いバージョンの Windows版gfortran をいれている会社の PC で同じ計算を行った結果,やはりすごく時間がかかりかつメチャクチャな結果を出してきました. やはりどこかプログラムがおかしいのかと思い色々見直した結果,ガンマ関数の計算の中で初期値未定で収束計算を行っている箇所がありました. この部分を修正することにより問題なく結果を出すようになりました. 逆に何でこの PC の Windows版gfortran がもっともらしい結果を出してきていたのかが不思議です. この件に関しては早速 Web にアップしているプログラムを差し替えました.件名は「水文統計解析」のプログラムです.すっきりしました!
作業中に気がついた gawk の特性などについて覚書.
今日はイスラムの新年ということで休日です.久しぶりに4連中を楽しみました.といってもパソコン三昧ですが.
WEBページの文字コードの変更 (shift-jis, CRLF => utf-8, LF) は VB プログラムを用い特段問題なく終わりました.ひとつ,気がついたこと.
なお,メインのページ「WANtaroHP(工学問題のプログラミング」では,GMT や ImageMagick などのコマンドとして大量の MS-DOS のバッチファイルを紹介しています. このため,文字コードを変更し Linux を使ってアップロードするのは,やっていることがちぐはぐになるので,取りやめます. このページは,この「Linux日記」も含んでいるので,Linux からアップすることで行きたいと思います.
今日からシェルスクリプト bash の勉強を始めました.Fortran で何十ケースも同じプログラムを回したいとかその結果を GMT で作図したいとかいう時,MS-DOS のバッチファイルより効率的にスクリプトを書くことができるようです.
シェルスクリプトの練習とプログラムの挙動確認のため,Windows 用 Fortran の directory の文字コードを全て Linux 用に変換,いくつかの挙動確認を行いました. その結果,以下の違いを発見.
昨日は 1 日 GMT のインストールに四苦八苦していました. インターネット接続の残り容量が 300MB を切ったので,会社の LAN を使うべく仕事のフリをして事務所へ.3km 程の道のりですが PC を担いで歩いて行きました.
ハワイ大学の HP で INSTALL FORM というのを開き必要事項を記入して作成されたテキスト(sh)を取り込んで保存.Puppy でシェルを実行します. でも「ftpなんていうコマンドはないよ」と言われ,プログラムをダウンロードできません. そこでハワイ大学の HP から以下のファイルを事前にダウンロードしておきます.私の場合 /root の下に作業用の /GMT_inst という directory を作成しました.
まず 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インストールの重要事項は以下のとおり.
次は .eps を TeX に張り込むときに必要となる Boundary Box を指定するための Windows でいう GSview のようなのが欲しいです.
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 特有の問題のようです.
Windows から Linux 用にテキストファイルの文字コードと改行コードを変換するプログラムを VB で作ってみた. VB をいじるのは久しぶり.でもこういう作業は VB だと大変楽にプログラムができる. やっていることは以下のとおり.
使用コントロールは実行のための 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
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 (文書作成) |
とりあえず現状の課題をあげてみると以下のとおりです.
ここ数日,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) をインストールしたいのですが,これには一度失敗しており手強そうです.
このページをFC2にアップロードしました. アップロードは,「メニュー => インターネット => gFTP FTPクライアント」で行っています. 必要な接続情報を入れたら「ブックマーク」に登録することにより繰り返し利用可能.
あと,プログラムが入っている directory を確認しました.いずれもパスは通っています. パスは,$PATH あるいは env で確認可能. なお,gawk がインストールされているのを見つけたのは成果でした.
Program | PATH |
---|---|
gcc | /usr/bin |
gfortran | /usr/bin |
gnuplot | /usr/local/bin |
gawk | /bin |
今度は作図用ソフトが欲しい!ということで,まずは 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
一連の処理が完了したらテスト.#gnuplot で gnuplot が立ち上がるので,とりあえず
gnuplot> plot sin(x)
してみると,別画面が現れ sin(x) のグラフが表示された.インストール成功! いくつか directory を移動してやってみるが問題なし.パスは全体に通っていると想像.
次のターゲットとして GMT のインストールを試みていますが,ダウンロードしたスクリプトの中で「ftp コマンドが無い」ようなコメントが出でインストール不可! 現在対応模索中です.
今日は天気が曇りのせいか通信環境が非常に悪い. 約 150MB のファイルをダウンロードするのに1時間かかり,ここへのアクセスもかなりの時間待.
閑話休題,今日は開発環境導入に挑戦. 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 のインストールに成功. 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.exe | Puppy 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 |
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 + 半角/全角|漢字」ではないことに注意ですね.