2010年10月15日金曜日

RedHatをシングルモードで起動

研究室の古いサーバ機にRH5.3 ELを入れたら、
haldaemonの起動中に完全フリーズして、一向に起動しなくなってしまった。
調べたところ、haldaemonは必須のデーモンではないらしいので止めてしまうことにする。

シングルモードでの起動はこちらを参考に。

シングルユーザーモードで起動する
http://www.jp.redhat.com/manual/Doc9/rhl-cg-ja-9/s1-rescuemode-booting-single.html

ついでに、いらなさそうな他のデーモンも止めた。

◇不要デーモンの停止(WBEL4)◇初心者のためのLinuxサーバー構築講座☆お便利.com☆:
http://www.obenri.com/_minset_wbel4/daemon_wbel4.html

もーマジで焦りましたよ。

2010年10月14日木曜日

mach-o, but wrong architecture なエラー

PythonからCの実行ファイルを呼び出している最中に突如起こったエラー。
以前コンパイルしたときは起こらなかったのに、半年ぶりにコンパイルしたら発生。
Snow Leopardのアップデートをかけてる内に、何かが変わったらしい。
※ちなみに当家の環境は、OX10.6.4 & Python2.6.1

簡単にググってみた所、やはりアーキテクチャ系(x86_64とかi386とか)の不一致が原因のエラーとのこと。
おかげで便利なコマンドを覚えた。
fileコマンドを使うと、その実行ファイルのアーキテクチャが調べられる。


$ file $(which python)
/usr/bin/python: Mach-O universal binary with 3 architectures
/usr/bin/python (for architecture x86_64): Mach-O 64-bit executable x86_64
/usr/bin/python (for architecture i386): Mach-O executable i386
/usr/bin/python (for architecture ppc7400): Mach-O executable ppc

$ file 今回作ってたpythonから呼び出すcの実行ファイル
cnt.so: Mach-O bundle i386


Pythonは一応i386にも対応している。
ただ、メインはx86_64という話を聞きかじったので、ものは試しにx86_64アーキテクチャを明示してコンパイルしてみる。

Makefile中のコンパイルコマンドの中に-arch x86_64を含めておいた。


$(CC) -fPIC -arch x86_64 $(CFLAGS) -I$(PYLIBS) -o $(SOTARGET).o -c $(SOTARGET).c
$(CC) -arch x86_64 -undefined dynamic_lookup -bundle $(SOTARGET).o -o $(SOTARGET).so


で、その結果をfileコマンドで試してみると以下の通り。


$ file cnt.so
cnt.so: Mach-O 64-bit bundle x86_64


実際、これで実行してみると問題なく動作可能。
良かった良かった。

2010年10月2日土曜日

本気の殺意が湧いた瞬間

不良品の代品が、また不良品だったときとか<怒

某K社の指紋認証機能付きHDDなるものを仕事の関係で購入したのですが、

一個目不良品
→ショップに相談
→3日経って届いた二個目も不良品

さすがにこの時点で返品しました。
これは不良品であることが仕様なのかな?
何て挑戦的!

ってか、これに費やした私の時間を返せ<怒

2010年9月27日月曜日

AS3 継承でのオーバーライドの書き方

ファンクションをオーバーライドするには、
オーバーライドすぐ子クラス側にoverride指定子をつけてやる必要がある

------------
親クラス側
(オーバーライドされたいファンクションをpublicで書く)
------------
public class Parent
{
//略
public function getName():String{
//
}
//略
}


------------
子クラス側
(オーバーライドするファンクションのpublicの後にoverrideと書く)
------------
public class Child extends Parent
{
//略
public override function getName():String{
return "My Name!!"
}
//略
}


このように明示的にオーバーライドすることで、
書き手のファンクションの書き間違いが少なくなる、らしい。

2010年9月24日金曜日

説明会という名の檻

説明会という名の檻を作ってしまったことに反省。
事前のフォローが足りなかった。
  • 何故、その相手に向かって説明会を開いたのかを最初に語るべきだったのに、そのフェーズがなかった。
  • 説明会後に、相手がどうなるのか。相手に対する要求を明確化していなかった。
オブザーバーとして参加してくれたM2がすごくフォローしてくれて助かった。
本当にありがたい。

けど一度、リハーサルをしておくべきだったのも事実。
時間をケチったのが敗因。
反省。

2010年9月21日火曜日

MacでPDFのサイズを削減する

ずっとずっと、Acrobat Proffesionalが必要と信じてたのに。。。

MacでPDFのファイルサイズを軽くするには、Previewでいけることを知り、軽くショック。
手順は以下の通り。

  1. Previewで該当PDFを開く
  2. 別名で保存をクリック
  3. Quartzフィルタで「Reduce File Size」を選択
  4. そのまま保存する

2.0MBのファイルが一気に1.3MBになってしまった…!
さらにファイルサイズを下げたいなら、Quartzフィルタを編集すれば良い。
これはMacのColorSyncアプリケーションから操作可能。

  1. アプリケーション >> ユーティリティ >> ColorSyncを開く
  2. ウィンドウ上部に並んだボタンからフィルタをクリック
  3. Reduce File Sizeの右の方にある下向き三角ボタンをクリックし、「複製」を選択
  4. Reduce File Sizeのコピーが作成されるので、そちらの設定を適当にいじる

ここで作成されたQuartzフィルタはやはりPreviewから見ることが出来る。
これを使うと、さらに0.1MBファイルサイズが減った。


ただ、これでファイルサイズを削減した場合、図がちょっとおかしいことになったりするので、保存したPDFは要チェック。

2010年9月20日月曜日

Illustrator で ピクセル画像を作成

研究の関係でちょっと特殊な画像を作る必要が会った。

 * 画像中のある色をしたピクセルを、プログラムで指定した色で置き換える *

多分、もっと良いやり方はあるんだろうけど、とりあえず読み込んだbmp画像から、ピクセルの色を判定して、必要な部分だけ別の色に着色するっていうのがしたい。

そのための画像をIllusteratorで作っていた訳だが、思ったより手間取った。
というのも、以下のような問題が山積しているからだ。

・基本Illusteratorで扱う画像はミリメートル指定なので、ピクセル単位で見るとそこかしこがぼやける。
・アンチエイリアスがかかって余計にぼやける。

とりあえず、調べてみた結果、Illustratorではピクセル単位の画像を作るときは専用の環境設定を行う必要があるらしいことが分かった。
以下に必要事項をリストアップ。

  • ピクセル単位で画像を作成するように環境設定を変更
環境設定 >> 一般 >> キー入力 ->1px

環境設定 >> 一般 >> 単位 -> ピクセル


環境設定 >> 一般 >> スマートガイド >> 整列ガイド -> オフ


ドキュメント設定 >> アートボードの大きさ -> ピクセル単位
  • 表示も変更
表示 >> ピクセルプレビュー
  • 全てのオブジェクトを選択し、サイズ調整などを行うビューで、ピクセル整合にチェックを入れる

あとものすごく重要なのが、bmpで書き出す際に、アンチエイリアスをかけない。
これをしないと、ここまでの作業が確実に無意味。
実はこれに気づくのに時間がかかったというアホが私。。。