fc2ブログ
プロフィール

けい

Author:けい
公開したWebサービス・アプリ一覧はこちら

※2014年12月、私が個人で開発したWebサービス・アプリへの
累計アクセス数は8億を超えました。
負荷対策頑張ります。日々精進していきます!!


■■■ 業務経歴 ■■■
社会人1年目:携帯電話開発。画面周りを1年間
2年目 :海外向け携帯電話ミドルウェア開発
     ブラウザとプロトコルスタック周り
2年目後半~:携帯電話の通信専用チップ開発
3年目:カーナビ。画面周りの開発
3年目後半~:BDビデオカメラ
     組み込みLinux カーネルと
     ドライバの開発。
4年目12月:プロジェクト途中で退社
~ここまではC、またはC++で開発~

~ここからJavaがメインの開発~
4年目1月:Web系の会社に転職
       ~4ヶ月間の研修
5年目5月:製造業向け生産管理システム開発
6年目9月:証券会社向けシステム開発
7年目10月~携帯電話向けコミックサイトの運用・開発
8年目12月:プロジェクト途中で退社

~ここからPHPがメインの開発~
8年目1月~仲介手数料が無料の不動産屋の社内SEに転職
交渉しほぼ完全に裁量労働が可能な立場になる。
業務内容はシステム全般ですが、
最近はSEO対策の作業が多いです。
現在14年目 まだ、しばらくはこの会社に居るつもりです。

あと、全ての記事がリンクフリーです。

最近の記事

過去ログ

全ての記事を表示する

全ての記事を表示する

カテゴリー

FC2カウンター

RSSフィード

XFree86-4.6のインストール

DynaBook Vシリーズの V1/470PMCにXFree86-4.6をインストールすることにした。ビデオカードは結構めずらしい Trident Microsystems CyberBlade/XP (rev 63) という奴である。
このビデオカードは色々なサイトでLinuxでの表示不可能だとか書かれているけれど、実際は最新のXFree86では表示可能である。なぜディストリビューションが最初からサポートしないのかというと、これはライセンスが関係していて、XFree86のバージョン4.4からはライセンス条項が変わったため、ディストリビューションの多くがそれ以降のバージョンをサポートしなくなったためだ。

XFree86のサポートページ
サポートハードウェアにしっかりと記載がある。
Blade3D, CyberBlade series i1, i7 (DSTN), i1, i1 (DSTN), Ai1, Ai1 (DSTN), CyberBlade/e4, CyberBladeXP, CyberBladeAi1/XP, BladeXP

http://www.xfree86.org/4.6.0/trident.4.html

前書きはこの辺にして、インストール手順を説明する。
このインストール手順は別にビデオカードに依存しているわけではないので、XFree86-4.6ならば全て同一だと思っていい。

まず環境一式をダウンロードする。
ftp://ftp.xfree86.org/pub/XFree86/4.6.0/source/

その次に解凍
gzip -d < XFree86-4.6.0-src-1.tgz | tar vxf -
gzip -d < XFree86-4.6.0-src-2.tgz | tar vxf -
gzip -d < XFree86-4.6.0-src-3.tgz | tar vxf -
gzip -d < XFree86-4.6.0-src-4.tgz | tar vxf -
gzip -d < XFree86-4.6.0-src-5.tgz | tar vxf -
gzip -d < XFree86-4.6.0-src-6.tgz | tar vxf -
gzip -d < XFree86-4.6.0-src-7.tgz | tar vxf -

自分の環境のビルド用ディレクトリを作り、移動する。
mkdir build
cd build
lndir ../xc

lndir が無い人は、xc/config/util ディレクトリに入って、以下のコマンドを実行してlndirを作成してください。
$ make -f Makefile.ini lndir

lndir が成功したならば、buildディレクトリにて
$ make World

を実行します。私の環境ではbison, flexというコマンドが無いと怒られたので、bison, flexパッケージをインストールしました。
makeには非常に時間がかかりますので(P3 700Mhzで2時間近く)、みなさんが実行するときにはmake前にコマンドが実行できるかを確認してください。

インストールが完了したら、以下のコマンドを実行します。
$ make install
$ make install.man

その後、Xとコマンドを実行します。
うまく立ち上がればOK.立ち上がらなければXF86config-4 を書き換えてください。

参考に私のXF86config-4を貼り付けます。
# XF86Config-4 (XFree86 X Window System server configuration file)
#
# This file was generated by dexconf, the Debian X Configuration tool, using
# values from the debconf database.
#
# Edit this file with caution, and see the XF86Config-4 manual page.
# (Type "man XF86Config-4" at the shell prompt.)
#
# This file is automatically updated on xserver-xfree86 package upgrades *only*
# if it has not been modified since the last upgrade of the xserver-xfree86
# package.
#
# If you have edited this file but would like it to be automatically updated
# again, run the following commands as root:
#
# cp /etc/X11/XF86Config-4 /etc/X11/XF86Config-4.custom
# md5sum /etc/X11/XF86Config-4 >/var/lib/xfree86/XF86Config-4.md5sum
# dpkg-reconfigure xserver-xfree86

Section "Files"
FontPath "unix/:7100" # local font server
# if the local font server has problems, we can fall back on these
FontPath "/usr/lib/X11/fonts/misc"
FontPath "/usr/lib/X11/fonts/cyrillic"
FontPath "/usr/lib/X11/fonts/100dpi/:unscaled"
FontPath "/usr/lib/X11/fonts/75dpi/:unscaled"
FontPath "/usr/lib/X11/fonts/Type1"
FontPath "/usr/lib/X11/fonts/CID"
FontPath "/usr/lib/X11/fonts/Speedo"
FontPath "/usr/lib/X11/fonts/100dpi"
FontPath "/usr/lib/X11/fonts/75dpi"
EndSection

Section "Module"
Load "GLcore"
Load "bitmap"
Load "dbe"
Load "ddc"
Load "dri"
Load "extmod"
Load "freetype"
Load "glx"
Load "int10"
Load "record"
Load "speedo"
Load "type1"
Load "vbe"
EndSection

Section "InputDevice"
Identifier "Generic Keyboard"
Driver "keyboard"
Option "CoreKeyboard"
Option "XkbRules" "xfree86"
Option "XkbModel" "jp106"
Option "XkbLayout" "jp"
EndSection

Section "InputDevice"
Identifier "Configured Mouse"
Driver "mouse"
Option "CorePointer"
Option "Device" "/dev/psaux"
Option "Protocol" "PS/2"
Option "Emulate3Buttons" "true"
Option "ZAxisMapping" "4 5"
EndSection
Section "InputDevice"
Identifier "Generic Mouse"
Driver "mouse"
Option "SendCoreEvents" "true"
Option "Device" "/dev/input/mice"
Option "Protocol" "ImPS/2"
Option "Emulate3Buttons" "true"
Option "ZAxisMapping" "4 5"
EndSection

Section "Device"
Identifier "Generic Video Card"
Driver "trident"
EndSection

Section "Monitor"
Identifier "Generic Monitor"
HorizSync 28-49
VertRefresh 43-72
Option "DPMS"
EndSection

Section "Screen"
Identifier "Default Screen"
Device "Generic Video Card"
Monitor "Generic Monitor"
DefaultDepth 24
SubSection "Display"
Depth 1
Modes "1024x768"
EndSubSection
SubSection "Display"
Depth 4
Modes "1024x768"
EndSubSection
SubSection "Display"
Depth 8
Modes "1024x768"
EndSubSection
SubSection "Display"
Depth 15
Modes "1024x768"
EndSubSection
SubSection "Display"
Depth 16
Modes "1024x768"
EndSubSection
SubSection "Display"
Depth 24
Modes "1024x768"
EndSubSection
EndSection

Section "ServerLayout"
Identifier "Default Layout"
Screen "Default Screen"
InputDevice "Generic Keyboard"
InputDevice "Configured Mouse"
InputDevice "Generic Mouse"
EndSection

Section "DRI"
Mode 0666
EndSection


うまく、Xが立ち上がるようでしたら、あとは見た目だけの問題なので、gnomeなりkdeなりのデスクトップ環境やsawfishなどの見た目をそろえればいいだけです。
スポンサーサイト



トラックバック(1)   コメント(0)   2006.09.22    [ ジャンル:コンピュータ / テーマ:UNIX/Linux / Myカテゴリ:技術の話 ]

エアコン手抜き工事されました(1)

最近大手量販店でエアコンを購入したのですが、豪快に手抜き工事されました。
これはその時の自分の気持ちを忘れないための記録です。
エアパージ真空抜き等についてご存じない方は以下をご覧ください。

http://members.at.infoseek.co.jp/aircon2003/ http://allabout.co.jp/family/electronics/closeup/CU20020625A/index2.htm

私の家にはとんでもなく古いエアコンが一台あり、
それの撤去ついでにエアコンが無い部屋にもエアコンをつけようということになりました。
その為、エアコン3台を購入し、1台を撤去という大工事を行うことになりました。
 ある程度の相場と、機能、評判は価格コムなどで調べ、
以下のいずれかの方法を選択することにしました。

①価格コムで購入し、工事工事業者に依頼
②量販店で購入し工事もお願いする。

①の場合の利点としては工事専門業者なので巷で話題になっている、
手抜き工事はまずされないということ。また少人数の会社が多いため、
きちんと工事を行い、自社の責任を持って工事を行うということ。
万が一工事に失敗した場合(工事には失敗は付き物らしい)には返金や、
一年間の取り付け後保障などエアコン工事業者ならではの保障が売りです。
 欠点としては、料金が若干高くなる傾向にあり、
穴あけや、配管延長、撤去などのオプションサービスが比較的高額であることがあげられます。
穴が開いており、配管が4m以内で、撤去も不要ということならば①を選ぶと最もお得といえるでしょう。

②の場合の利点としては穴あけや、
真空引きなど標準サービスでかなり充実しており総額で考えると①の方法よりも安くなる場合があるということです。
欠点としては価格コムや2chの掲示板でも言われているように、
手抜き工事が横行しており、工事業者が信用できないということです。

私が計算したところ①②共に、標準工事費+物の値段は対して変わりませんでしたが、
穴あけ料金と撤去費用を考えると私の家では②の方が5000円くらいお得という結論に達しました。
手抜き工事されてはかまわないので、量販店の店員にも真空引きを確実にやることを確認し工事を依頼しました。

 工事日当日、最近は真空引きをやらないところはほとんど無いと聞いていたのと、
店員の自信に満ちた態度もあり、あまり準備することなく、
ぼんやりとエアコンの取り付け風景を眺めていました。 エアコン本体と、
室外機組み立てもほとんど終わり、そろそろ真空引きをするのかなーと思っていたところ、
「プシュー」と言う音が2秒ほど。真っ先に思ったのは、
「ああ、やられちゃった・・・」 その後は返品することばっかり考えて、
なんとかして証拠を残したかったのですが、 残せるわけも無く、残りの2台もプシューと。
私の見た限り、ポンプは無く、ポンプをシュコシュコやることも無く、 作業員が電源を借りることも無く工事は終了してしまいました。
 これも心の油断なのでしょう。普段の私ならば準備万端にして反論できるような下準備もするのですが、
今回は量販店の店員の言葉を信じてしまい、真空引きの正確な手順を把握していなかったのです。
その為、指摘することができず、心のどこかで「きっと私の見ていないどこかで真空引きをやったのだろう」とその場は思い、後で質問するつもりでした。

その2へ続く
トラックバック(2)   コメント(3)   2006.09.19    [ ジャンル:結婚・家庭生活 / テーマ:マイホーム / Myカテゴリ:時事・駄文 ]

エアコン手抜き工事されました(2)

その後、取り外し工事の際にも、取り外しだからと配管をそのまま引っこ抜きフロンガスが室外機から無くなるまで20秒くらいフロンガスが漏れっ放しになっていました。
本来なら「ポンプダウン」と言う操作で外機にガスを戻し、工場でフロン回収するか、現場で「フルオロカーボン回収機」を使ってガスを抜き取る(回収)かしないといけないそうです。
この時には工事業者への信頼は完全に0になっていて、もうこんな量販店の下請けに任せたのが間違いだったと思えるようになりました。

工事終了時に真空抜きについて質問したところ、「やりました」
プシューという音については、「室外機のほうにガスを流すときに出る音です」。
ポンプは電動ですか?手動ですか?「手動です。」
ネット等では真空抜きに時間がかかるとのことですが?「30回もポンプをやれば十分なので、すぐに終わります」
私の調査不足もあり、その場ではとりあえず納得したのですが、その後ネットで調べたところ

・コントロールバルブ等の器具を使用していれば、「プシュー」音はまったくしない。
・冷媒運転で外すかバルブを全開にせず少し制圧状態で外せばプシュという音はする。
その場合は炭酸入りジュースを開けたときの感じの「プシュ」。
エアパージをした場合には自転車の虫ピンを抜いたときのようなプシューが1秒以上。

上記のような調査結果が得られました。
その結果を踏まえ量販店に苦情の電話を言ったところ、量販店の対応は非常に良かったのですが、業者は「真空引きはやった」と言い張るばかり。結局、証拠は何一つ無く、もう証拠が無いことでやったやってないと言い張るのに疲れ泣き寝入りすることになりました。
クレームを言いまくって、なんとかすることもできるのでしょうが、
エアコンにそこまで時間をかける気がせず、自分の不勉強と思って諦めることにしました。

まとめと今後の教訓
今回はエアコン3台なので精々20万程度であり、取り返しが付かない金額ではない。しかし、今後医療関係、住宅関係などで取り返しの付かないミス、100万を超えるようなミスがあるかもしれない。
今回のように、目の前で手抜きされても証明手段が無い場合も有るだろう。作業者と同程度以上の知識がないと、手抜きを指摘することはできない。専門分野の知識が無い素人がその場で専門業者をギャフンと言わせることなど不可能なのだ。

例えば、住宅関係の基礎で手抜きがあった場合
例えば、医療関連で致命的なミスされた場合
それを防ぐことはできないし、その場でしか証明の方法は無い。
家の建築中に、毎日建築現場に行って、作業を監視するという人の話があるが、はたしてそれで手抜きを防ぐことができるかというと、目に見える部分の態度が改まる程度で実際の複雑な作業の手抜きはやめないだろう。

家の基礎部分の手抜きなどはやられた時点でもう手遅れであり、運がよく気が付いて直させたとしても、結局そんな業者は他の部分で手抜きをするだろう。建設中に建設業者を変えることはできない。できるかもしれないがもっとお金がかかってしまう。違約金などもあるだろう。建築条件付土地などを買った人などはもっと悲惨だ。

対策
工事の場合には業者は自分で選ぶこと。きちんと社名で工事する会社、工事失敗時の保障がある会社ならばなおよい。
・医療関係の場合には、実績などをきちんと調査すること。
・住宅関係の場合にも同様で、大手の業者では買わないこと。
もし信用できる業者が見つからない場合には、枯れている中古を買うこと。

トラックバック(0)   コメント(0)   2006.09.18    [ Myカテゴリ:時事・駄文 ]

IOCCC 邪悪なコード祭り

IOCCCという祭りを聞いたことがありますでしょうか?
wikipedia にはこんなことが記載されてありました。

http://ja.wikipedia.org/wiki/IOCCC

----------------------------------------
IOCCCとは「The International Obfuscated C Code Contest(国際邪悪なCコードコンテスト)」の略称。汚く読みづらいC言語コードをあえて書き、その汚さを競うというC言語ハッカーの奇祭である。むろんただ汚ければよいというわけではなく、目にした瞬間のインパクト、実行結果の美しさなど、さまざまな要因でアーティスティックなものが選ばれる。多くのコードはそもそも全くC言語に見えない。コード全体がアスキーアートになっているものなどが典型的である。
----------------------------------------


興味を持ったのでちょっとソースを見てみました。
以下ソース
-------------------------------------------------
char a[80];
int e[4],g[5],c=100,h,i,j,k,b,f,s,t,p[4][1000];
int main(char*d){
return main((char*)(srand(time(&h)),
setjmp(p[2]),
(k=atoi((gets(a),
a+strspn(a," -"))))
&&(b=k),
b||++b,
j+=-j,
d=(char*)(&j),
setjmp(p[1]),
1<<1>j&&(k&=4>>3,
i=1<h<<=i+j,
setjmp(p[0]),
(h+=*d++-h)&&(-'1'^(h-='1'))&&(i<<=4,
setjmp(p[3]),
(i||!++i)&&(h--||(k|=i),
i/=2,
longjmp(p[3])),
longjmp(p[0])),
k^=-1,
k+=1<<037,
setjmp(p[3]),
k&&((--i<5&&1&k)&&(s=(rand()>>9)%0x4,
setjmp(p[0]),
t+=(rand()>>3)%015-t,
e[s]&(1<e[s]|=1<g[i]=t|++s<<"\004"["\004"[1]]|t),
k>>=1,
i+=1<<1,
longjmp(p[3])),
setjmp(p[0]),
putchar(0x20+!putchar(012+"(.7-A,G+@*J)/"[(017&(i=g[4-k]))*013%13])),
++k^005&&longjmp(p[0]),
putchar('\n'),
setjmp(p[3]),
putchar(0x1F+!!putchar(("BCDHS"[g[--k]>>4]))),
k&&longjmp(p[3]),
putchar('\n'),
j+=1<<0,
1^j||(d=(char*)gets(a)),
longjmp(p[1])),
s=1==(f=0),
i=0<<1,
setjmp(p[3]),
i<4&&(j=i+1,
setjmp(p[1]),
j<5&&((017&g[j])>(g[i]&15)&&(k=g[i],
g[i]=g[j],
g[j]=k),
j++,
longjmp(p[1])),
i++,
longjmp(p[3])),
setjmp(p[0]),
i--&&!((g[1+i]^g[i])>>4)&&longjmp(p[0]),
setjmp(p[1]),
--j&&(!(k=(g[j]&15)-(g[j-1]&017)+1)||(!(j-1)&&(8==-k)))&&longjmp(p[1]),
s+=3*!j|!(++i^17),
(j*=i*=4)&&(i=1),
setjmp(p[3]),
5-j<2&&(j=0,
setjmp(p[1]),
5-i>j&&((g[j]^g[j+1])&0xf?g[j]^=g[j]:(s+=((g[j]&0xf)>8&&f++,
!!g[j]*i)),
j++,
longjmp(p[1])),
i++,
longjmp(p[3])),
s=1^s?"AACEDJQZHello World"[s]-'A':!!f,
s+=(!i)*(6+12*s-!!s*(g[2]&017^0xa?8:-192)),
s--,
s*=b,
printf("$%d (%d) \n",
c+=s,
s+b),
i=0,
setjmp(p[0]),
6>i&&(j=1,
setjmp(p[1]),
0<=j&&(e[i+j]^=*(i-j+e+(j<<1)),
--j,
longjmp(p[1])),
i+=++i,
longjmp(p[0])),
longjmp(p[2])));
}
-------------------------------------------------
もはや最初の数行でわけわからん。
というよりC言語のソースに全く見えず、最初は文字化けした文字列かと思った。

IOCCCのソースの解読をしている人のホームページがあったので、興味があれば見てください。(一行のソースコードの説明に30行以上必要・・・すごいですね)
http://kzk9.net/column/ioccc.html


私的にはここまでソースは酷くなくても、結構読みづらいコードを書く人は結構いて、また自分的には読みやすくても、レビュー時にはわからないという人が結構いる。
最近ではこんなコード。

typedef struct newst {
int i;
}new_struct;

/* stはnew_struct型の変数を指しているポインタである。 */
?
void eventhandler(void *st) {
func(((new_struct *)st)->i);
}

?
void eventhandler(void *st) {
new_struct *prm = (new_struct *)st;
func(prm->i);
}

私は?の方を多用するのだが、レビュー時には?がわかりにくいと言う人がたまにいる。また、意図的に?を使用している人曰く、単価はコード量(ステップ数)で決まる部分もあるので、一行でも長く書くために、このようにしているらしい。
ちなみに括弧も一行と数える会社は結構多いようである。

また、私がこれが理解できるのは普通なのか、それとも指摘するべきなのかと迷ったコードに以下である。
?
void eventhandler(void *st) {
int iCount = 0;
int i = 0;

while(iCount == 20) {
iCount++ += i++;
}
}

う~ん。一応わかるのだが、どこまで分解するべきなのか。
それとも2行くらいコメントをつけさせるべきか。
この辺は会社によっても判断が分かれそう。
私はとりあえず、左辺の++はアウトだろと思っており、
+= はギリギリセーフという感じなのですが、みなさんどうなんでしょうね。

P.S
IOCCCは原文自体がインデントなしなのですが、
私の書いたコードはインデントしているのですが、なぜかブログに書くときにスペースが消されてしまったものです。
どなたか行頭のスペースのつけ方をご存知でしたら教えてください。
トラックバック(0)   コメント(2)   2006.09.16    [ Myカテゴリ:技術の話 ]

w-zero3 skypeでの音声通話は本当にできてますか2

以前Skypeでの音声通話無線LANでも問題ありと書いたのですが、原因が判明いたしましたので訂正いたします。

えー結果から申し上げますとイヤホンマイクが原因だったみたいです。一応3つほどイヤホンマイクを試したのですが、カシムラが出しているイヤホンマイクに変えたところ、クロックアップしなくてもきちんと通話ができるようになりました。

http://www.kashimura.com/goods/keitai/earphone/ae27.html

う~ん。以前の検証でCPU使用率が高いから音飛びがするのかと思っていたのですが(実際にクロックアップすると音飛びが減りましたし)、カシムラのイヤホンマイクにしたところ、416Mhzでも普通に音飛びせずに通話が可能となってしまいました。

う~ん。何か納得いかないのですが、なぜなんでしょうねー


12月18日追記
aChgSndCfg というソフトがあります。
このソフトを用いることで、音楽再生時などに前面のスピーカーから
音を出すことができます。
私の環境ではこのソフトを使い、前面スピーカーから音を出せば(音量は下げた方がいい)
イヤホンマイクを買わなくとも音飛びは無くなりました。
http://w-zero3.org/?%A5%C0%A5%A6%A5%F3%A5%ED%A1%BC%A5%C9%2FaChgSndCfg

ただ、やっぱりSkype 使用中はCPU使用率が高く、
プロセスの切替えもできない状態なので
通話前にクロックアップしておいた方がいいのでは無いかとは思っております。

1月2日追記
クロックアップしたSkypeとクロックアップしなしていないSkypeでの動作テストを行った所、雑音が減っていることがわかりました。私の環境では546Mhzまでクロックアップを行い、aChgSndCfg で前面スピーカーに出力することにより、無線LAN経由で快適に音飛び無しにSkypeが使用できています。長時間の通話だと、本体が熱くなるので低音火傷が心配だなぁっていうくらいいい音質で使えてます。
トラックバック(0)   コメント(1)   2006.09.09    [ ジャンル:携帯電話・PHS / テーマ:W-ZERO3 / Myカテゴリ:時事・駄文 ]
Template Designed By
ぐらいんだぁ