« 2005年03月 | メイン | 2005年05月 »
2005年04月21日
プログラミングの心理学
今日一日の仕事を終えて考えたのは、プログラマーのどこが技術職なのかと。
この仕事についた直後は、エンジニアとしての誇り?があり、ソフトウェア開発がサービス業に区分されていることに憤りを感じていましたが、今では、エンジニアと呼ばれると、違和感を感じます。
結局、僕のやっている仕事は混乱した物事を自身が混乱しないように、自分自身に云い聞かせながら、絡んだ紐を解きほぐしていることなのではないかと思います。
だいぶ前にAmazonで注文したのに、やっと、届きました。
ワインバーグ氏の『プログラミングの心理学 -25周年記念版- または、ハイテクノロジーの人間学』は、ずっと、読みたかったのに、絶版になっていて入手できなかったのが、また、入手可能になった、思い入れが強い本です。
まだ、まえがきしか読んでいませんが、ワインバーグ氏の(自分自身を含めた)技術レビューを受ける人々への忠告「自分の過ちを隠すのはやめよう」という、言葉で、購入してよかったと云う気持ちでいっぱいです。
ただ、ワインバーク氏は技術に偏っているので、あえて、違う観点から書籍を執筆されていますが、この違う観点の書籍ばかり読んでいるのは、まずいかなと、最近、思い始めました。
ということで、当面は、バーバラ・ミント氏の「考える技術・書く技術」の習得に励もうと考えています。
投稿者 murakami : 00:37 | コメント (1)
2005年04月09日
実戦空手の源流(本部朝正氏)
世界初の動く格闘技マガジンBUDO-RAの今月の教伝に、再配信の「実戦空手の源流(本部朝正氏)」がUpされていた。
僕は、那覇手系の空手道をやっていた為、首里手系の内歩進(ナイハンチ)という形の指導を受けた事がなく、書籍の写真で順番を覚え、練習していたのですが、初めて、古伝に近いと思われる映像を見て、とても、勉強になりました。
まず、横一直線の動きと聞いていたのですが、横という訳ではなく、直線に動くというを知りました。
また、松濤館流では、基礎固めの為に、動きを大きくしているような印象でしたが、何処に力を入れて、どう、バランスを取れば良いのか分かり、とても、参考になりました。
本当は、Realのストリーミングでなく、ムービーとして保存でき、何度でも、見直したいのですが、できませんので、残念です。
投稿者 murakami : 23:45 | コメント (0)
2005年04月08日
Perl Code Kata
日本語の"型"という単語は、英語になったのですね!
http://www.perl.com/pub/a/2005/04/07/mockobject_kata.html
ちなみに、空手道では、首里手系は形を、那覇手系は型を使用しているようです。
投稿者 murakami : 15:53 | コメント (0)
[qa1409]Help Viewerの表示失敗への対処法
英語が駄目駄目ですが、ことしのWWDCは同時通訳なしという事ですので、勉強と考え、チャレンジしてみます。
http://developer.apple.com/qa/qa2005/qa1409.html
アプリケーションのヘルプについての情報は、以下の場所に覚えられているようです。
~/Library/Preferences/com.apple.help.plist
この内容を見て気がついたのですが、開発者の場合、ローカルなパスで開発してい、最終的な確認をアプリケーション・フォルダでというパターンは多いと思いますが、開発中のアプリが置いている、ローカルなパスが、ココにキャッシュされてしまうようです。
Q&Aでは、以下を削除すればキャッシュがクリアされると説明しているようですが、これを削除すれば、上記の初期設定が再構築されるのでしょうか?私の英語力では、よく、分かりません。
~/Library/Caches/com.apple.helpui
投稿者 murakami : 12:12 | コメント (0)
2005年04月03日
[qa1414]アイコンの選択表示
英語がまったく駄目な為、間違っていたら、すいません。
ツールバーのようにアイコンを選択表示する方法の解説です。
http://developer.apple.com/qa/qa2005/qa1414.html
Mac OS X 10.3からアイコン描画時に、選択表示である指定をすればよいのだけれど、まだ、ヘッダーに定義していないので、自分で定義して、サンプルの通りにアイコンを描画したら、選択表示になるようです。ただし、アイコンがクリップされて描画された場合に、選択表示の部分がはみ出て描画してしまうという問題があるようです。
以下のソースコードは、僕が動作確認してみたもので、XcodeでCarbon Applicationプロジェクトを生成した際のデフォルト構成で、main.cのソースコードのみをカスタマイズしただけです。
------------------------------(ここから)------------------------------
#include
#define kDemoApplicationSignature 'jcbD'
enum {
kTransformFocused = 0x8000
};
pascal OSStatus DemoMainWindowEventHandler(EventHandlerCallRef myHandler,
EventRef event, void *userData);
int main(int argc, char* argv[])
{
IBNibRef nibRef;
OSStatus err;
WindowRef window;
EventTypeSpec mainSpec[] = {{kEventClassWindow, kEventWindowUpdate},
{kEventClassWindow, kEventWindowDrawContent},
{kEventClassWindow, kEventWindowActivated},
{kEventClassWindow, kEventWindowBoundsChanged}};
err = CreateNibReference(CFSTR("main"), &nibRef);
require_noerr( err, CantGetNibRef );
err = SetMenuBarFromNib(nibRef, CFSTR("MenuBar"));
require_noerr( err, CantSetMenuBar );
err = CreateWindowFromNib(nibRef, CFSTR("MainWindow"), &window);
require_noerr( err, CantCreateWindow );
DisposeNibReference(nibRef);
InstallWindowEventHandler(window, NewEventHandlerUPP(DemoMainWindowEventHandler),
GetEventTypeCount(mainSpec), mainSpec, (void *)window, NULL);
ShowWindow( window );
RunApplicationEventLoop();
CantCreateWindow:
CantSetMenuBar:
CantGetNibRef:
return err;
}
pascal OSStatus DemoMainWindowEventHandler(EventHandlerCallRef myHandler,
EventRef event, void *userData)
{
OSStatus result = eventNotHandledErr;
OSStatus status;
WindowRef window;
CGrafPtr port;
CGContextRef context;
IconRef iconRef;
CGRect iconRect;
RGBColor color;
if (GetEventClass(event) == kEventClassWindow) {
switch (GetEventKind(event)) {
case kEventWindowUpdate:
case kEventWindowDrawContent:
case kEventWindowActivated:
case kEventWindowBoundsChanged:
GetEventParameter(event, kEventParamDirectObject,
typeWindowRef, NULL, sizeof(window), NULL, &window);
SetPortWindowPort(window);
port = GetWindowPort(window);
status = CreateCGContextForPort(port, &context);
iconRect.origin.x = 10;
iconRect.origin.y = 10;
iconRect.size.width = 128;
iconRect.size.height = 128;
status = GetIconRef(kOnSystemDisk, kSystemIconsCreator,
kGenericApplicationIcon, &iconRef);
status = PlotIconRefInContext(context, &iconRect, kAlignNone,
kTransformNone, &color, kPlotIconRefNormalFlags, iconRef);
iconRect = CGRectOffset(iconRect, 160, 0);
status = PlotIconRefInContext(context, &iconRect, kAlignNone,
kTransformFocused, &color, kPlotIconRefNormalFlags, iconRef);
CGContextFlush(context);
CGContextRelease(context);
result = noErr;
break;
}
}
return result;
}
------------------------------(ここまで)------------------------------
投稿者 murakami : 05:11 | コメント (0)
2005年04月02日
考える技術・書く技術
参加しているプロジェクトのリーダの書棚にあったので、購入しました。
仕事で、状況の説明は、対応結果の報告をする機会が多いのですが、この手の事は苦手です。
どんな書類を作れば良いのか、他人の書類を見ればどうすれば良いのかは分かります。
でも、自分が作成する事になると、客観的になりません。
特別、上手い文章を書く必要がないのに、素直に読む人の事は考えればいいのだと、それが出来ません。
と、色々、いっていますが、まだ、読んでいません。
村上龍氏の新刊『半島を出よ』を読み終えた、取り組みます。