メニュー
Infomation
■お知らせ
[スパム対策]コメントにURLを含めると自動的に削除されます。
■このサイトについて
一応残していますが、全時代の遺物。全ての情報は古く役に立ちません 連絡先:メールアドレス
■日記更新情報
RSSRSS|RSS(本文のみ)|lirs
実験&リサーチ
巡回先
製作環境
 

 



2004|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|11|12|
2011|01|
2014|05|08|
2017|07|
2018|03|
2020|08|10|
2021|11|

2010年03月02日(Tuesday) [長年日記]

_ [日記][コンピュータ] MacOSXへの移行 マウスホイールが不自然に感じる

MacProを買うわけにも行かず、仕方なくMac miniを入手してみました。

一つ前のモデルですが、仕様が現行に近いのと新品をバラすのも忍びないので。

SATAを外出しする予定。

下のはG4 mac miniです。


元Macユーザーといっても漢字Talkの頃の話なのでどうにもMacOSXで困ることもあります。

WindowsやLinuxから移ってもっとも困るのは(人によると思いますが)マウスの動きです。

なんか変に加速するんですよねぇ。そして無効にできない。


カーソルの動きはなんとか慣れることも出来そうですが、ホイールの動きだけはどうしても酔いそうで如何ともしがたいのです。

(OSX以前はホイールなんて無かったのだからそれを昔と比べるのもおかしい気もしますが)


有償のシェアウエアで、例えば「SterrMouse」のようなソフトを使うと加速スクロールを無効に出来て試用してみたところかなり改善しました。

快適度合いを考えると購入しても良いのですが、しばらく耐えてMacOS標準のこの動きになれるべきなのか、そもそもマウス止めて昔そうしていたようにタブレットで操作するようにするか悩むところです。

本日のコメント(全2件) [コメントを投稿]

§ zinviex [自分は、結局Mac Book Air買ったのに 使ってないんですよね…。 結局、Windows使ってますし何かやり..]

§ Suika [Airうらやましー Airくらいしか持ち運べそうなのがないんですよね。重くて。]


2010年03月04日(Thursday) [長年日記]

_ [日記][コンピュータ] URLエンコードをデコードするCコード

URLエンコード(Percent-Encoding)をデコードする方法は単純な処理なので実装するのは簡単なのですが、いざ欲しいと思うと何故かOSには用意されていなかったりします。


ググれば一発だろ! と思っても何故かすんなりは見つからないか、見つかっても冗長だったりするので毎回新たに書いているのですが、今回で最後にしたいのでここに貼りつけておきます。

エンコードは今回必要無かったので作ってませんが必要になった時に作ります。

urlDecode()にバッファとその長さと変換したい文字列を渡します。

なんか見本で見かけるソースよりやけに短くなってしまうのですが、何か自分が間違っているんだろうか・・・。(RFCは読んでいない)

     9 :int valueFromHexChar(char hex)
    10 :{
    11 :	if('0' <= hex && hex <= '9') return hex - '0';
    12 :	else if('A' <= hex && hex <= 'F') return hex - 'A' +10;
    13 :	else if('a' <= hex && hex <= 'f') return hex - 'a' +10;
    14 :	else return 0;
    15 :}
    16 :
    17 ://typedef unsigned int size_t;
    18 :void urlDecode(char* decoded 
    19 :			   ,size_t decoded_length
    20 :			   ,const char* source)
    21 :{
    22 :	decoded_length--;	//最後の\0の分
    23 :	while(*source && decoded_length){
    24 :		if(*source == '%'){
    25 :			if(*(source+1) == '\0') break; //%の後2Byte続かずに備えて
    26 :			*(decoded++) 
    27 :				= (valueFromHexChar( *(source+1) ) <<4 )
    28 :				+ valueFromHexChar( *(source+2) );
    29 :			source += 3;
    30 :		}else if(*source == '+'){
    31 :			*(decoded++) = ' ';
    32 :			source++;
    33 :		}else{
    34 :			*(decoded++) = *(source++);
    35 :		}
    36 :		decoded_length--;
    37 :	}
    38 :	*decoded = '\0';
    39 :}

2010年03月05日(Friday) [長年日記]

_ [日記][コンピュータ] Objective-C

最初は呪文にしか見えなかったObjective-Cもやっと理解できてきました。

ある程度わかってみれば、単にC言語を変な風に使っているだけという感じがしてきました。(おそらく本当にCをトリッキーに包んでいるだけだと思う)

しかし、やはり新しい物は素晴らしきかな。

便利なところはとても便利です。

そして何よりいざとなったらCに降りてしまえば良いという点もJAVAなどに比べてとても助かります。


4月からは忙しいので3月中にささっと形にしてAppleStoreに申請してみたいと思います。(間に合うかな)


2010年03月25日(Thursday) [長年日記]

_ [日記][コンピュータ] MacとWindowsOSのカーソル初期位置の違い

System7あたりのMacintoshはアップルメニューがランチャーのようになっていたのでアップルメニューは使用頻度の高いものでした。

もっとわかりやすいネーミングなのがWindowsのスタートボタンで、取り敢えずこっから始めろみたいな名前です。


初めてWindows3.1/95を使った時に違和感があったのは起動時のカーソル位置です。

たしかWindowsではカーソルが画面の中央から始まるんですよね。

Macintoshではアップルメニューの位置が初期位置でした。

X Window Systemでもたしかど真ん中からですね。


そんなこと今思えばなんで気になったんだろうと思ってましたが、MacOSXを使ってみて、やっぱり画面の上のほうにカーソルの初期位置があったほうがしっくりくるなぁと思いました。

だいたい電源落とした後ってマウスを机の奥の方にやってしまうことが多いからかもしれません。


最近は電源入れっぱなしでシャットダウンすることはめったに無いので関係ありませんが・・・。


2010年03月26日(Friday) [長年日記]

_ [日記][コンピュータ] Shift_JISをUTF-8に変換するコード(Windows)

Windows(Shift_JIS/マルチバイト環境)で文字コードをUTF-8に変換する方法です。

マルチバイトとUTF-8の変換APIは用意されていないのできっと面倒な事になるんだろうな・・・と予想していたのですが、一旦ワイド文字に変換すれば良いだけでしたね。


今iPhoneアプリを開発中なのですが、Windows環境とも通信するためUTF-8でやることにしましたが、Shift_JISのダメ文字(「表」とか)を気にしなくていいのでUTF-8楽です。

     1 : 	
     2 : 	//UTF8に変換する
     3 : 	void shiftJisToUTF8( char* converted 
     4 : 		,size_t converted_length
     5 : 		,const char* ascii )
     6 : 	{
     7 : 	
     8 : 		size_t sizeBuffer = strlen(ascii) *6;
     9 : 	    LPWSTR  pwszBuf = new wchar_t[sizeBuffer];
    10 : 	
    11 : 	    MultiByteToWideChar(
    12 : 	        CP_ACP,    
    13 : 	        0,   
    14 : 	        ascii,    
    15 : 	        -1,   
    16 : 	        pwszBuf,  
    17 : 	        (int)sizeBuffer); 
    18 : 	
    19 : 	
    20 : 	    WideCharToMultiByte(
    21 : 	        CP_UTF8,
    22 : 	        0,
    23 : 	        pwszBuf,
    24 : 	        -1,
    25 : 	        converted,
    26 : 			(int)converted_length,
    27 : 	        NULL,
    28 : 	        NULL);
    29 : 	
    30 : 		delete[] pwszBuf;
    31 : 	    return;
    32 : 	}
    33 : 	
    34 : 	//ShiftJisに変換する
    35 : 	void UTF8ToShiftJIS( char* converted 
    36 : 		,size_t converted_length
    37 : 		,const char* ascii )
    38 : 	{
    39 : 	
    40 : 		size_t sizeBuffer = strlen(ascii) *6;
    41 : 	    LPWSTR  pwszBuf = new wchar_t[sizeBuffer];
    42 : 	
    43 : 	    MultiByteToWideChar(
    44 : 	        CP_UTF8,    
    45 : 	        0,   
    46 : 	        ascii,    
    47 : 	        -1,   
    48 : 	        pwszBuf,  
    49 : 	        (int)sizeBuffer); 
    50 : 	
    51 : 	
    52 : 	    WideCharToMultiByte(
    53 : 	        CP_ACP,
    54 : 	        0,
    55 : 	        pwszBuf,
    56 : 	        -1,
    57 : 	        converted,
    58 : 			(int)converted_length,
    59 : 	        NULL,
    60 : 	        NULL);
    61 : 	
    62 : 		delete[] pwszBuf;
    63 : 	    
    64 : 	    return;
    65 : 	}

最近のコメント

364,000 at 2008.06.14
Copyright (c) Suika KNOnline.NET