2014年7月8日火曜日

8進数対策(bash)

日付を計算するシェルで以下のエラーが発生。

08: value too great for base (error token is "08") 

 今日は8日。 `date +%d`は08となる。

 よくあることだが頭に0がつく数字は8進数と見なされる。 

そのため、エラーが生じる。 
→頭の0をとってやれば良い。 
 →`date +%d | sed s/^0//` 

 以上。

2014年6月15日日曜日

ImageMagickを使って、EXIF情報に基づいて回転&縮小(BASH)

PowerPointに画像を入れて、フォトアルバムを作成するときの不具合への対処。


■使い方
\ls ./*.jpg > filelist.txt
./(下記のスクリプトファイル) < filelist.txt

■EXIF情報に基づいて回転
#!/bin/bash -xv 
 
mkdir -p ./rotated 

while read fn
do
    rotate_type=`identify -format "%[Exif:orientation]" "$fn"`
    echo $rotate_type
    case $rotate_type in
        6)
            deg="+90"
            ;;
        8)
            deg="-90"
            ;;
        3)
            deg="+180"
            ;;
        *)
            deg="0"
    esac

    if [ $deg -ne "0" ]; then
        convert -rotate $deg "$fn" "./rotated/$fn"
    fi

done

exit 0


■縮小
通常「 -geometry 縦x横」の指定であるが、「 -geometry x横」と指定することで、アスペクト比を保ったままサイズを固定(横サイズ優先)できる。
(雑な説明です。厳密な説明は省略します。)
#!/bin/bash -xv

mkdir -p ./converted

while read fn
do
 echo $fn
 convert -geometry x768 "$fn" "./converted/$fn"
done

exit 0


問題
・EXIF対応の画像ビューアでは、上記方法で補正済み状態から更にEXIFの情報に基づいて回転が行われるため、回転された状態で表示されてしまう。
→EXIF側の回転角を0にしなければならない。
 →時間がないので、後日(たぶんやらない。)



2014年3月28日金曜日

そういえば

H25秋NWスペシャリスト合格しました。
以上。

2013年3月27日水曜日

Terminal type set to 'unknown' への対処 [Linux]

VirtualBox 上に Ubuntu を入れて、

そこに 「apt-get install gnuplot」で gnuplot を入れて作業しようとしたのですが、

gnuplot 起動時に Terminal type set to 'unknown' と出て、グラフが表示されません。



 とりあえず作業が進まないと困るので、根本的な解決策ではありませんが、

参考にしていただければ幸いです。



 ということで、対策です。



 単に autoconf tool 版を導入するということ。

 で、終わりにすると無意味で終わりそうなので、もう少し説明を・・・。


gnuplot は sourceforge からダウンロードできます。


http://sourceforge.net/projects/gnuplot/files/


 あとはお決まりの、

$ tar xvfz gnuplot-4.6.2.tar.gz
$ cd gnuplot-4.6.2
$ ./configure
$ make
# make install

 で OK. 以上。

2012年7月17日火曜日

アップデート後に度々起動に失敗 (Linux Mint 12 Lisa)

こんにちは。
私事ですが、先日LPIC Level 2 認定取得しましたv
もっと早くとる予定でしたが、研究室の引っ越しだとか引っ越しだとか引っ越しだとか
研究だとか研究だとか研究だとかでこの時期まで先送りになってしまいました。
長かった・・・。
前置きが長いってか??

さてこここら本題。
HPのシンクライアントにUSBメモリさして、Mint 12をインストールして
LANのフロントエンドマシンおよびDHCPサーバとして使ってます。

ところが、アップデートしたら起動しなくなってしまいました。
自分なりに解決したので、メモしておきます。


参考にする場合は
** 自己責任お願いしますね。 **


常時起動なのでUSBメモリがキレてしまったのかと思ったが、
他のマシンに接続してみたが何処にも異常は見あたらず

しかし、よくよく見てみると/boot がカーネルアップデートのせいで一杯
ディスク容量の確認
  
~ $ df -h
Filesystem                Size  Used Avail Use% マウント位置
/dev/sdb1             92M     90M      0  100% /boot
  (以下略)



/boot のデータ削減
 default のカーネルを消さないように /boot/grub/grub.cfg で確認し、
他のバージョンを別のパーティションへ移動(もしくは削除)


 カーネルイメージ   vmlinuz-3.0.0-??-generic
 マップファイル      System.map-3.0.0-??-generic
 初期RAM          initrd.img-3.0.0-??-generic
 設定ファイル       config-3.0.0-??-generic
                     abi-3.0.0-??-generic
 (??はバージョン番号)



GRUBの設定を修正
/boot/grub/grub.cfg (Mint 12の場合)
以下を1かたまりとして、移動したバージョンに関する情報を「#」でコメントアウト

menuentry 'Ubunmenuentry 'Linux Mint 12 32-bit, 3.0.0-17-generic (/dev/sdb1)' --class linuxmint --class gnu-linux --class gnu --class os {
       (中略)
       initrd  /boot/initrd.img-3.0.0-17-generic 
}
   
grub.cfgは、下記のaptでカーネルアップデートのした時に自動で生成される模様
(アップデート完了後に確認したところ、コメントアウトした部分が消えていたため)


確認のためリブート
 ~ $ sudo reboot
無事起動


アップデートのチェック
アップデートが失敗していた可能性があるので、再チェック
 ~ $ sudo apt-get update


アップデート
やはりカーネルのアップデートが完了していなかったのでアップデート
 ~ $ sudo apt-get dist-upgrade


念のためもう一度リブート
 ~ $ sudo reboot
無事起動。元気に動いてます。



そもそも /boot への割り当てが少なすぎるんじゃ・・・とかいう突っ込みは無しで
お願いします :P

2012年3月9日金曜日

CentOS6.2 on VirtualBox にVBOXADDITIONSをインストール

CentOSインストール時にgccなどを選択して置かないと、
VBOXADDITIONSのインストールに失敗します。


大したことではないが、あとから入れればいいので、以降で紹介。

端末内の実行結果をみると、kernel-develのインストールに失敗している模様なので、
自分でインストール。
# yum install kernel-devel-2.6.32-22-220.4.2.el6.x86_64


さらにログ(/var/log/vboxadd-install.log)を見ると
makeから、「gccが見つかりません。」とのメッセージがあるので、これも自分でインストール。
# yum install gcc


ここまでやった上で、VBOXADDITIONSのインストールに再度挑戦。

成功

2012年2月11日土曜日

Eclipse INDIGO で javadoc 生成

Eclipse で javadoc を生成する方法をメモしておきます。

コメントの書き方やパッケージ情報の書き方については、
他のサイトを参考にしてください。
詳しく書いてあるサイトがたくさん有ります。
その辺りの前提が整えられているものとして進めます。


1,まずEclipseのメニューバーの[File]から[Export]をクリック。

2,[Java]から[Javadoc]を選択して、[Next>]ボタンをクリック。

3."Javadoc command" にjavadocのコマンドを絶対パスで記入($ which javadoc で探せます)。
Javadocを生成したいプロジェクトを選択し、保存先を指定します。(基本的にはデフォルトで構わないと思います。)

4.特に必要がなければデフォルトのまま[Next>]ボタンをクリック。
5.Overviewファイルを指定します(なくても生成自体は行えますが、生成されるドキュメントのトップページのコメントが無く、javadocとして不完全?です)。

ここで、重要なのが文字コードの指定です。
私は、TeXの関係で文字コードを全てEUC-JPで統一しています。このプロジェクトも例外ではなく、EUC-JPで書いています。
なので、Javadocの拡張オプションに
-encoding EUC-JP -charset EUC-JP
と指定します(各自の使用文字コードに合わせてください)。
最後に、[Finish]ボタンをクリックします。

指定した保存先にドキュメントが生成されます。
以上で完了です。

参考サイト
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1435959639