日本語版chmoxできた Windowsのヘルプファイル形式である.chmをMac OS Xで読むソフト「chmox」を見つけました。ただ、そのままだと日本語のchmファイルが読めないので、少し改造しました。

SrtViewerScore

昨日、地味なアプリをポツンと地味にリリースしたわけです。

そんな風に、地味にポツンとアプリをリリースすることが
今までもありました

で、すごく久々に、そのサイトのデータを見たら、SF.NETの方が、ダウンロード数5910、MacUpdateのほうが1926と、なんかちゃんとしたアプリみたいにダウンロードされてました。それもなんかコンスタントにダウンロードされていました。

で、SF.NETのほうにも、MacUpdateのほうにも機能の要求リクエストやらコメントが残っていて、なんともうれしい気分になりました。

フリーソフトでも出していて、使ってもらえていると思うと、やっぱりうれしいものですね。

MacUpdateにも載りました。
http://www.macupdate.com/info.php/id/31819/snpemouse


Space NavigatorをMacでマウス代わりに使うソフトを書いてみました。

SNPEMouse v0.1

ちょっと、知人とC++の話をしていて、あるクラスが、いろんなタイプの基底クラスなのにも関わらず、下位クラスに、あまり実装をさせないために、バリバリに一つ一つのタイプのための変数と実装を積んで、肥大化していて、ちょっと困っているみたいな話がありました。 で、それに対する一つの回答というか、珍答として、implを切り替える方法を考えてみたのですが、それが本当に効果があるか試してみました。
#include <stdio.h>

enum mytype 
{
    one = 0,
    two,
    three
};

#if 0
class Klass
{
public:
    Klass(mytype type);
    virtual ~Klass();
    void print();
private:
    int a,b,c,d;
    mytype _type;
};

Klass::Klass(mytype type):
    a(0),b(1),c(2),d(3)
{
    _type = type;
}

Klass::~Klass()
{
}

void Klass::print()
{
    switch(_type) {
    case one:
        printf("%d\n",a+b);
        break;
    case two:
        printf("%d\n",a+c);
        break;
    case three:
        printf("%d\n",a+d);
        break;

    default:
        break;
    }
}


#else 

class Klass
{
public:
    Klass(mytype type);
    virtual ~Klass();
    void print();
private:
    struct Klass_impl;
    Klass_impl *_impl;
    struct Type1Klass;
    struct Type2Klass;
    struct Type3Klass;
};

struct Klass::Klass_impl
{
    Klass_impl():a(0){
        
    }
    int a;
    virtual void print() = 0;
};

struct Klass::Type1Klass : public Klass::Klass_impl
{
    Type1Klass():
        Klass_impl(),
        b(1) {}
    int b;
    void print(){
        printf("%d\n",a+b);
    }
};

struct Klass::Type2Klass : public Klass::Klass_impl
{
    Type2Klass():
        Klass_impl(),
        c(2) {}
    int c;
    void print(){
        printf("%d\n",a+c);
    }
};

struct Klass::Type3Klass : public Klass::Klass_impl
{
    Type3Klass():
        Klass_impl(),
        d(3) {}
    int d;
    void print(){
        printf("%d\n",a+d);
    }
};

Klass::Klass(mytype type)
{
    switch(type) {
    case one:
        _impl = new Type1Klass();
        break;
    case two:
        _impl = new Type2Klass();
        break;
    case three:
        _impl = new Type3Klass();
        break;
    default:
        break;
    }
}

Klass::~Klass()
{
    delete _impl;
}


void Klass::print()
{
    _impl->print();
}


#endif

int main()
{

    Klass a(one);
    a.print();


    Klass b(two);
    b.print();


    Klass c(three);
    c.print();

    return 0;
}
Pythonのネタです。そういえば、やろうとしてすっかり忘れていたんですが、Leopardにして、Pythonが2.5.1になり、3項演算子(Cでよく使うやつ。評価式 ? True結果 : False結果)がサポートされていたんでした。これによって、lambdaの中にif文がかけるようになりました。
>>> (lambda x: True if x > 5 else False)(3)
False
で、lambdaを使って再帰をするにはこんなやり方が。
>>> a = lambda x: 1 if 2 > x else a(x-1) * x
>>> a(10)
3628800
で、ふと見かけた、AmachangさんのサイトでYコンビネータのネタをやってて、あ、これ、Pythonでもできんじゃね、ということでやってみた。

Books

オビの誤植が気になるが......。
中身は良さそう「みんなのPython」。
無事に出て何よりです。なんでそんな感想になるのかは、

もう一冊は「Code Craft」。まぁ、面白そうです。

新宿の紀伊国屋書店でどちらも山積みになってました。

ちょっとテストなんです。これ。
というのも、Google Docsから、ブログにPublishできるって聞いて。

ほんとかな、って試してみてるんです。
できました? できてます? おぉぉ。

そうかぁ。

てすとです。

いろんな意味でへぇぇぇ。。。。。いまごろです。

VirtualBox_001

VIrtualBoxというWindows、Mac、Linuxなどで使える仮想環境があります。
ParallelsとかVMware Fusionとかと一緒です。

ほかの仮想化ソフトとは違って、RDP(リモートデスクトッププロトコル)サーバ機能をサポートしていたり、USB over RDP(リモートデスクトップ先のデスクトップにRDPを通してUSBデバイスの信号を送る)などの機能も持っています。

ドイツのinnotekという会社が作っているソフトウェアで、そのシリーズに、Mac版「VirtualBox for OS X Hosts」があるという
ことで試してみました。

さて、このMac版、なんと驚いたことに日本語リソースが
最初から入ってました。

ブログシステムをMT4にしてみた。

でも、もともとレイアウトに凝ってないから、
ぜんぜん悩む必要はないみたい。