DEZZ Networksってダサくね?
と思った。
DEZZ.net
でいいよね。
そうしよう。
Rippliaの管理人のブログが消えてる!
Rippliaは、Google Buzzと同じコンセプト(?)で、つまり位置情報とつぶやきを合わせたiPhone用Webサービスでした。
結構好きだったのに、残念。
今まで、言語仕様は最強だと思ってたC#に、微妙なところがあることに気付きました。
というか、多分ずっとC++を使ってた影響なんですが。
何かというと、一般にmix-inと言われる機能です。
有名どころではC++、Ruby、D(template mix-in)なんかがこれを実装してます。
これが無いと何が問題かと言うと、委譲がスムーズに出来ないんですね。
つまり、クラスAとクラスBで共通する処理があるので、クラスCを作って委譲したい、というような場合です。
高水準な重複部分は、モデリング段階である程度排除できますが、実際にプログラムを書いてるとこういった問題は避けられません。この問題に直面したとき、継承を使うという選択肢は、コードの見通しが悪くなるなどの理由から、あまり良いとは言えません。
基底クラス:BaseClass
委譲されるクラス:DelegatedClass
委譲するクラス:ClassA
として、C++、C#、Javaで書いてみます。
(BaseClassの全てと、ClassA固有の実装は省略します。)
C++
class DelegatedClass
{
private:
int propertyA;
public:
void DoSomething()
{
// do something
}
int GetPropertyA() { return this->propertyA; }
void SetPropertyA(int value) { this->propertyA = value; }
};
class ClassA : public BaseClass, public DelegatedClass
{
};
public class DelegatedClass
{
private int propertyA;
public int PropertyA
{
get { return this.propertyA; }
set { this.propertyA = value; }
}
public int DoSomething()
{
// do something
}
};
public ClassA : BaseClass
{
private DelegatedClass delegatedClass = new DelegatedClass();
public int PropertyA
{
get { return this.delegatedClass.PropertyA; }
set { this.delegatedClass.PropertyA = value; }
}
public int DoSomething()
{
return this.delegatedClass.DoSomething();
}
};
Java
public class DelegatedClass
{
private int propertyA;
public int getPropertyA() {
return this.propertyA;
}
public void setPropertyA(int value) {
this.propertyA = value;
}
public int doSomething()
{
// do something
}
};
public ClassA extends BaseClass
{
private DelegatedClass delegatedClass = new DelegatedClass();
public int getPropertyA() {
return this.delegatedClass.propertyA;
}
public void setPropertyA(int value) {
this.delegatedClass.propertyA = value;
}
public int doSomething()
{
return this.delegatedClass.doSomething();
}
};
C++とJavaはプロパティという言語仕様が無いので、プロパティ周りが若干キモいですが、Javaは委譲のせいで更に不恰好になってます。
mix-inは概念がオブジェクト指向と少し違うので、あればいいというものではありませんが、C#のように型推論やデリゲートなどの、高度な機能を持つ言語なら、自動委譲とかあってもいいんじゃないでしょうか。
2/7:(追記)
細かい事ですが、mix-inした状態を委譲と呼ぶのは言葉の定義的に正しくないかもしれませんね。
あと、C#は自動プロパティを使うことでprivate int propertyAの宣言を回避できます。
ここのところ、Yahoo!JAPANからのおすすめ情報メールというものが止まらない。
今日届いたのは
年収・スキル、自信と不安… 自分の市場価値をチェックしてかしこい転職タイミングを知ろう!【Yahoo!リクナビ おすすめ情報】
というものだった。
どんなに止めても来る。
リクナビのメールを停止してみた状況はこんな感じ。
先日、全部チェックを外して保存したはずなのに、項目が増えてる…?
こうしてまたGoogleのサービスへ皆が移行していくわけですね。わかります。
皆様、明けましておめでとうございます。
全くもってやる気の無いこのブログですが、今年もどうぞよろしくお願いいたします。
さて、新年早々となりますが、今まで、CORESERVERのCORE-Aプランを使用していたところを、CORE-MINIプランへ移行しました。
正直なところ、全くCORE-Aの性能を活かせていなかったので、他の安いところへ移行しようかと思っていましたが、
ちょうどいいところで安いプランが発表されたので、お試しに乗ってみました。
使い勝手としてはCORE-Aそのままです。というかXREAそのままです。
さらに最近ではCOREBLOG.JPなんてのも始まっているようですが、どうなんでしょうね。正直それでもいいような気がしましたが、独自ドメインが1個しか使えないようなので、諦めました。
もうなんか最近、WordPressを自前で管理するのはだるいです。
ブログだけアメブロやら忍者ブログやら、はてなやらの、無料サービスを使ってもいいような気がしますね。
更新が滞りすぎて情報の劣化が激しいこのブログですが、最近仕事でULE4JISを使う機会が多いので、使っていてバグってたところなどを直しました。
半年ぶりのアップデートですが、半年間で81回しかダウンロードされていないツールなのでw
あんまり気にせず気楽にアップデートできていいです。
でも最近、2chの東プレRealForceスレで、ULE4JISについての書き込みを見つけて大興奮。
まあどうせ世の中の大半の人はキーボードなんか興味なくて、こんなツールを探そうとしたりしないので、ごく一部の人にでも、大事にされるツールになればいいかなーと思ったり。
なんかベクターにログインできないので、ベクターはまた今度…
とりあえずこの記事に最新版を付けときます。
ule4jis10r
追記:2009/11/12 23:58
バージョン情報ダイアログの表示から、betaの文字を取るのを忘れてました。
修正版をビルドしたので、ダウンロードページのほうへアップしておきます。
⇒ダウンロードページへ
iPhone 3Gを2008年の7月に購入してから、はや1年が経とうとしています。
その1年の間に我々iPhoneユーザーを最も苦しめたのは、「接続中…」で固まってしまうメール(i)ではないでしょうか。
抜本的な解決策が無いまま、OSはついに3.0になってしまいましたが、3.0で使用できるPNS(Push Notification Service)を利用することで、どうやらこの問題を解決できるようです。
1.iPhone OSを3.0にアップグレードする。
iPhone 3Gユーザーは無料です。サクサク感が増しており、OSとしての完成度が上がっています。
2.Tap Tap Revenge 2.6をインストールする。
iTunesのダウンロードページへ
PNSに対応したアプリが入っていないと設定をONにすることができないので、無料のこのゲームを入れます。ゲームとしてはいわゆる音ゲー。なかなかです。
3.Tap Tap Revenge 2.6を起動する。
プッシュサービスをONにして良いか?という問いが出るので、OKを選択。
以上
まあ、単純にPNSをONにするだけなのですが、これだけで劇的に改善されます。
念のため再現手順を:
1.メールを起動し、i.softbank.jpの受信ボックスを開く。
2.通信が終わったら、スリープボタンを押してスリープ状態にする。
3.10秒ほど待つ。
4.ホームボタンなどでスリープを解除する。
5.「接続中…」で数十秒~数分待たされる(PNSオフ時)
PNSのオン・オフ
一度PNSを使うアプリケーションをインストールすると、設定画面に「通知」という項目が出てくるので、そこからPNSのオン・オフを設定できます。オフにして、上記の再現手順を実施してみると…悪夢が再びw
MMSの利用開始でメール(i)の存在は薄れがちですが、絵文字も全キャリア対応していますし、IMAPは便利なので、今後もどんどん活用して行きましょう。
※ちなみに、PNSをオンにすると、何らかのコネクションを繋ぎっぱなしにしているだろうと思われるので、電池の消費は早くなるかもしれません。
こんにちは!お久しぶりです。nanoです。
今日はまた、新しいソフトウェアのリリースのお知らせです。
今回リリースしたソフトウェアは、ULE4JISという名前のアプリケーションです。
このソフトは、
US Keyboard Layout Emulator for JIS Driver
から取った名前で、JIS配列のドライバのまま、英語キーボードを正しく使用できるようにするためのアプリケーションです。(WindowsXP/Vista専用)
日本語版Windowsは、キーボードは全てJIS配列のものという前提で動作しており、英語配列のキーボードを使用するためには、レジストリを変更してレイアウト・ドライバを切り替えるという作業が必要です。
これは、日常的に英語配列キーボードを使用している人にとっては慣れた作業であり、本人のみが使用するPCではこれで問題ないのですが、共用や他人のPCを一時的に使用する場合など、レジストリの変更や再起動が許されない状況もありえます。
「一時的に起動するだけで英語配列のキーボードが簡単に使えるツールがあれば良いのになぁ…」という私自身のニーズから生まれたのがこのULE4JISです。
インストール作業や再起動は一切無しに、英語配列キーボードで正しく入力できるようになります。
英語配列キーボードのユーザーの方は、ぜひお試しください。
こんにちは。
だいぶデスマーチなnanoです。
au_sanitizerのコメントに返信できず、申し訳ないです。
Q.文字化けしたまま返ってきた
恐らく、想定外の絵文字が存在します。現状、調査する時間も無いので、申し訳ないですがまだ対応できそうにないです…。
第三者が見ても問題ないメールであれば、nano***dezz.netに転送して頂ければ解析します。(***はアットマーク)
Q.返ってこない
iPhoneからの転送以外のメールは破棄しています。10分程度経っても返ってこなければ破棄されたものと思ってください。
Q.ソースは?
公開する価値があるように思えないので、オープンソースにはしません。
(というか、オープンソースが嫌いなんです)
早く2.2が出るといいんですが。
現在、停止しております。ファームウェアのアップデートをご利用ください。中途半端なまま放置してしまい申し訳ありませんでした。
Powered by WordPress