φ(.. ) 備忘録
   
  

2014年3月21日金曜日

Cygwinでプログラミングする。『Makefile編』

プログラミングする前に、Makefileのテクニックを忘れないように書いておこう。私の会社ではソースのファイル名やオブジェクト名を直接Makefileに書く手法をとっている。この手法では作成者の意図どおりにmakeすることが可能な反面、ソースのファイル名や作成後のバイナリ名を変更したいときや、新しく開発する際に、Makefileの作成・編集が必要になってしまう。
私はこれが面倒なのでメンテフリーのMakefileを作成し流用している。
その内容は、以下。
# Makefile
CC       = /usr/bin/gcc
WINDRES  = /usr/bin/windres
CFLAGS   = -O2 -mwindows
LDLIBS   = -lpthread
.SUFFIXES: .c .o .exe
.SUFFIXES: .rc .res
SRC = $(wildcard *.c)
RES = $(wildcard *.rc)
OBJS = $(SRC:%.c=%.o) $(RES:%.rc=%.o)
TARGET = $(shell basename ${PWD}).exe
all: ${SRC} ${RES} ${OBJS} $(TARGET)
.c.o:
$(CC) ${CFLAGS} -c $< -o $@
.rc.o:
$(WINDRES) -i $< $@
${TARGET}: ${OBJS}
$(CC) ${CFLAGS} ${OBJS} $(LDLIBS) -o ${TARGET}
clean:
rm -f *.o ${TARGET} *~ *.core core
上記内容をソースフォルダ配下のMakefileにコピペしてmakeとうつだけでフォルダ名のバイナリが作成できる。複数のフォルダを作成しソース管理している場合には使えないかもしれないが、簡易開発ならこのMakefileで十分だと思う。。。。

GNU Make 第3版
GNU Make 第3版
posted with amazlet at 14.03.21
Robert Mecklenburg
オライリージャパン
売り上げランキング: 99,058

Cygwinでプログラミングする。『環境準備編』

Cygwinの環境が整ったのでプログラミングをしてみる。仕事でC言語を使ったツール開発をする必要があったのでついでにノウハウをまとめておこう。
まずは、Cygwinのsetup-x86.exeを起動し、以下をインストール。
  • gcc
  • g++
  • make
  • w32api-headers
  • w32api-runtime
  • mingw-gcc一式
次にソース管理ツールを同じくCygwinのsetup-x86.exeでインストール。私はrcsを愛用。
これでひとまずプログラミング環境は作成完了。簡単でしょw

ふつうのLinuxプログラミング Linuxの仕組みから学べるgccプログラミングの王道
青木 峰郎
ソフトバンククリエイティブ
売り上げランキング: 18,648

2014年2月22日土曜日

CygwinのminttyをLinux login terminalとして常用する

UbuntuなどのLinuxホストにWindowsからログインする際、poderosaのマクロを常用していた。poderosaは完成されたフリーソフトで便利であるが、私の環境ではマクロがフリーズする謎事象が発生し、ストレスとなっていた。せっかくCygwinの環境も整えたのでこの際Cygwinターミナルのminttyに切り替えようと思う。
まずは、ログインマクロをどうするかだが、最初はexpectを試した。ログインまでは問題ない。しかし日本語入力しようとするとセッションが切れる事象が発生し使い物にならなかった。この事象が回避できれば問題なく使える。
次、sshpass。これはコマンドパラメータにパスワードを書いておけばパスワードの入力をサボれるすぐれもの。こっちが本命。とても便利。インストールから使い方を書いておく。
インストールは以下。
% cd /usr/local/src
% wget http://downloads.sourceforge.net/project/sshpass/sshpass/1.05/sshpass-1.05.tar.gz
% tar zxvf sshpass-1.05.tar.gz
% cd /usr/local/src/sshpass-1.05/
% ./configure --prefix=/usr/local
% make
% make install
使い方は以下。※opensshをインストールしてない人はsetup.exeでインストールすること。
% sshpass -p 'pass' ssh user@hostname
上記のpassとuser@hostnameは適宜変更すること。
しばらく常用しているが、不具合はまったく発生していない。むしろ快適。poderosaではウィンドウサイズをかえるとresizeコマンドでいちいち設定しなおす必要があったが、そんなことをしなくてもちゃんと自動で調整してくれる。ウィンドウの透明化も可能だし文字コードまわりも安定している。

実用SSH 第2版―セキュアシェル徹底活用ガイド
Daniel J. Barrett Richard E. Silverman Robert G. Byrnes
オライリー・ジャパン
売り上げランキング: 489,114

2014年2月13日木曜日

fvwmユーザのためのAutoHotKey入門

私が入社した頃はSunOSでウィンドウマネージャーはfvwm、エディタはNEmacsというが主流であった。そのせいかWindowsをメインに使用する現在においても当時の癖が抜けず試行錯誤しながらWindowsのカスタマイズを行っている。
そのカスタマイズに最適なツールがAutoHotKeyである。
このツールはショートカットキーを自由にカスタマイズできることに加え、シャットダウンや再起動などの動作も任意のショーカットキーに割り当てることが可能で大変便利である。
ただ、カスタマイズはスクリプトライクなプログラミングが必要であり、初心者にはちょっとハードルが高いかも・・・・。ネットに転がっているスクリプトをコピペして書き換えるのが一番ラクかも。
ということでまずは、fvwmのときにつかっていたキーボードでウィンドウサイズを拡縮する機能を実装してみる。意外と簡単だった。スクリプトは以下。
#NoEnv
;============================================
;ウィンドウサイズ制御
;コンフィグ
MAX_H=1051
MAX_W=1920
^+i::
WinGet,id,ID,A
if(x%id%= ""){
WinGetPos,x%id%,y%id%,w%id%,h%id%,A
WinMove,ahk_id %id%,,x%id%,0,w%id%,MAX_H
}
Else{
WinMove,ahk_id %id%,,x%id%,y%id%,w%id%,h%id%
x%id%=
y%id%=
w%id%=
y%id%=
}
return
^+k::
WinGet,id,ID,A
if(x%id%= ""){
WinGetPos,x%id%,y%id%,w%id%,h%id%,A
WinMove,ahk_id %id%,,0,y%id%,MAX_W,h%id%
}
Else{
WinMove,ahk_id %id%,,x%id%,y%id%,w%id%,h%id%
x%id%=
y%id%=
w%id%=
y%id%=
}
return
^+j::
WinGet,id,ID,A
if(x%id%= ""){
WinGetPos,x%id%,y%id%,w%id%,h%id%,A
WinMove,ahk_id %id%,,0,0,MAX_W,MAX_H
}
Else{
WinMove,ahk_id %id%,,x%id%,y%id%,w%id%,h%id%
x%id%=
y%id%=
w%id%=
y%id%=
}
return
Ctrl + Shift + i で縦拡大、Ctrl + Shift + k で横拡大、Ctrl + Shift + j で全画面にでき、拡大状態でいずれかのショートカットキーを入力すると元に戻る。
みなさんも活用してみてはw

ウィンドウマネージャ徹底解説 fvwm―Fvwm/Fvwn95
江面 敦
テクノプレス
売り上げランキング: 1,224,284

2014年2月11日火曜日

省スペースな自作パソコン

Acer Aspire L5100 が先日、お亡くなりになりました。謹んでご冥福をお祈りいたします。画面がブラックアウトしてうんともすんとも言わないため死因はマザーボードかと。。。元は確実にとれていないと思われ悲しい限りです。
で代わりのPCを模索中。先日おすすめパーツをブログで紹介したが、今回は省スペースPCを組んでみる。想像でw
省スペースPCなのでまずはケースから。これかなぁ。現時点では¥ 8,400なり。

Antec mini-ITX規格対応PCケース ISK-110 VESA ISK-110 VESA
Antec (2012-11-17)
売り上げランキング: 7,260

「電源(W):90」が付属しているところがポイント。
次はCPU。当然省電力CPUを選択。話題のHaswellできまりだな。現時点では¥ 14,980なり。

Intel CPU Core-I3 2.90GHz 3Mキャッシュ 省電力モデル LGA1150 BX80646I34130T 【BOX】
インテル (2013-09-01)
売り上げランキング: 4,064

TDP35Wは発熱面でかなり魅力的。CPUクーラーはあえて買わん。動かして温度みてから買おう。ぜんぜんあつくならないようなら、ケースの穴もアルミテープでふさいでしまおう。
次はマザーボードだが、電源容量がこころもとないので、拡張はあまりできないだろう。そのため機能はあまりいらない。一番やすいやつでいいだろう。現時点では¥ 9,889なり。

ASRock マザーボード (HASWEL対応)  H87 MiniITX USB3.0 SATA3 H87M-ITX
ASROCK (2013-06-02)
売り上げランキング: 9,772

ファン速度アラームきれなかったらやだな。どうだろう。
次はメモリ。一番うれてるやつ。現時点では¥ 8,400なり。


ケースが2.5インチのシャドウベイしかないのでHDDも買わないといけないな。どーせかうならSSDだな。現時点では¥ 11,980なり。

シー・エフ・デー販売 TOSHIBA製SSD採用 2.5inch 内蔵型 SATA6Gbps 128GB CSSD-S6T128NHG5Q
シー・エフ・デー販売 (2013-04-13)
売り上げランキング: 27

DVDドライブはケースにはいらないので買わない。OSはWindows8.1。現時点で¥ 11,836なり。

Microsoft Windows 8.1
Microsoft Windows 8.1
posted with amazlet at 14.02.11
マイクロソフト (2013-10-18)
売り上げランキング: 8

総額¥ 65,485なり。結構やすくあがったな。SSDまでつけたのに。
だれかこれで組んでみて結果を教えてくださいw。

2014年2月4日火曜日

低消費電力録画パソコン(自作)

本日のテーマは自分がほしい低消費電力録画パソコン。ひとつひとつパーツを選んでみようw。こんなことすると本当にほしくなってくるなw
まずはCPU。TDP35Wのこいつで決まりだな。

Intel CPU Core I3-3220T 2.8GHz 3MBキャッシュ LGA1155 BX80637I33220T
インテル (2012-09-03)
売り上げランキング: 6,088

現時点では、¥ 16,052 なり。

つぎ、マザーボード。信頼のASUSで間違いないだろ。

ASUSTeK Intel B75チップセット搭載マザーボード B75M-PLUS【MATX】
Asustek (2013-09-13)
売り上げランキング: 817
現時点では、¥ 5,916 なり。

つぎ、メモリ。一番うれているこれでw

現時点では、¥ 8,400 なり。

つぎ、HDD。これは現録画マシンの経験から超静かなseageteだな。

現時点では、¥ 13,283 なり。結構たけーなw。

つぎ、DVD。これは家に転がっているやつを転用だな。
つぎ、電源。まよわず80plus プラチナを選択。Antecがいいだろう。

ANTEC 【HASWELL対応】 PC電源 プラチナ EA-450 PLATINUM
Antec (2011-11-24)
売り上げランキング: 14,830
現時点では、¥ 8,980 なり。電源は多少たかくてもいいやつを買う。発熱量がぜんぜんちがうから。

次はケース。電源もCPUも熱を発しないパーツを選択したので、あまり穴の開いてないやつを買おう。まぁあいててもアルミテープでふさいじゃうけどw。これかっこいいな。
でも、すこし穴が開きすぎかも。

Silver Stone Sugo M-ATX 黒 SST-SG02B-F-USB3.0
Silver Stone
売り上げランキング: 15,008
現時点では、¥ 7,480 なり。やすい!!穴はアルミテープでふさごうw

次、CPUファン。このセットならいらねーかもね。組んでから判断しよう。
次、ケースファン。このセットなら十中八九いらねーな。
次、録画装備。これは鉄板のPT3しかない。

PT3 Rev.A
PT3 Rev.A
posted with amazlet at 14.02.04
アースソフト
売り上げランキング: 1,022

現時点では、¥ 11,600 なり。ドスパラのほうがやすいな。
次、カードリーダ。

現時点では、¥ 1,963 なり。
あと、B-CASはそのへんにおちてるやつで。。。

ここまで合計 \ 73.674。結構たけーな。これに

Microsoft Windows 8.1
Microsoft Windows 8.1
posted with amazlet at 14.02.04
マイクロソフト (2013-10-18)
売り上げランキング: 7
を足して、\85,814 なり。微妙にたかいね・・・・。

2014年2月2日日曜日

ddコマンドでMBR復旧

hdd破損に備えて、ddコマンドでいろいろバックアップを取っておこう。
#これは完全に俺個人の備忘録だなw
  1. まずは、適当なUSBスティックメモリにUbuntuをインストール。
  2. 次に、BIOS画面でF12を押してboot menu起動。Ubuntu選択。
  3. Ubuntuがスタートしたらターミナルを起動
これで、ddコマンドが使えるようになる。
ちなみに理由は不明だが、普通はUnity上のハードディスクアイコンをクリックすると自動マウントされ中身が参照できるが、USBのUbuntuはクリックでマウントできない事象が発生した。要因はマウント先のディレクトリがないからで、mkdirするとマウントできる。
最初は、全面バックアップでもしようかと思ったが、時間と容量が勿体ないのでやめた。
最低限の範囲にする。
  • MBRバックアップ方法
% sudo dd if=/dev/sda bs=512 count=1 | gzip -c > mbr.dump.gz
 →これでMBRとパーティションテーブルに一部がバックアップできる。
  •  パーティションバックアップ
% sudo dd if=/dev/sda1 bs=512 | gzip -c > Partition1.dump.gz
  • 復旧方法
% zcat ファイル名 | dd of=デバイス名
 MBRの復旧は結構めんどくさい。とくにWindowsは厄介だ。インターネットで調べればいくつか方法はでてくるが、どれも俺にとっては難易度が高い。
あらかじめバックアップしておくことをおすすめする。なにかあってからではおそい。

Acronis True Image 2014 Premium
Acronis True Image 2014 Premium
posted with amazlet at 14.02.02
Acronis (2013-11-15)
売り上げランキング: 266