でらうま倶楽部

バカってゆうか、ゲームを作る事しか能の無いプログラマの、面白おかしな日々を綴ってみる実験。

Tips

知らない単語を0.5秒で調べられるのがOSXの辞書

今日もコード書いてる??

みんなはOSXに標準装備されてる「辞書」使ってる??

…って聞いたら「え…辞書??いちいち立ち上げるのめんどいじゃん…」みたいなコメントをいろんなOSX使いから頂いてしまった。

これはアカン!!

超便利なのに使ってないなんてモッタイナイ!!

というわけで「知らない単語を0.5秒で調べる」方法を紹介するぜ。

photo1
システム環境設定 -> トラックパッド
「調べる」を有効にする

はいオッケィ!!

photo2

テキストを三本指でタップすれば、一瞬で辞書が教えてくれる!!(タッチパッドのないMacだとどんな操作なのかな…??)

photo3

しかもパッチを当ててビルドしたcarbon emacsでも使えるんだぜ…


もっと詳しく調べたい時は、ウィンドウ内の「国語辞書」とか「英和/和英辞典」をクリックすれば、その場で辞書が起動して教えてくれる。

photo4
ちなみに自分がさいきんとても使いまくってるのが「英語シソーラス」。これを使うには、辞書の環境設定で「Oxford American Writer's Thesaurus」にチェックを入れる。

photo5
英語版類義語辞書なんだけど、これプログラム内の識別子名を考えるのに重宝するんだよね。普段英語使わないから「row」に似た言葉って…??ってなった時に助けてもらってる。


どう??便利でしょ??

超便利なのに使ってないなんてモッタイナイ!!

コレWindowsにもあったらいいなぁ…


ではまた次回!!

boost::any って参照で取り出せるんだ…

30
こんにちは!!

今日もプログラム書いてる??

オレもC++書き始めて3年目。 すこしずつだけど、boostも使い始めてる。

てかboost便利すぎ!!

とくにboost::anyがお気に入りで、これを使うとC++でNSArrayやNSDictionaryっぽいのが実現できて重宝してる。

んで、ふと気づいたんだけど…

#include <iostream>
#include <boost/any.hpp>


struct Hoge {
  Hoge() :
    value(0)
  {
    std::cout << "Hoge()" << std::endl;
  }
  
  ~Hoge() {
    std::cout << "~Hoge()" << std::endl;
  }

  int value;
};


int main() {
  boost::any value = Hoge();

  {
    std::cout << "Test 1" << std::endl;
    auto v = boost::any_cast<Hoge>(value);
    v.value += 1;
  }
  
  {
    std::cout << "Test 2" << std::endl;
    auto& v = boost::any_cast<Hoge&>(value);
    v.value += 1;
    
    std::cout << v.value << std::endl;
  }    
  
  {
    std::cout << "Test 3" << std::endl;
    auto& v = boost::any_cast<Hoge&>(value);
    v.value += 1;
    
    std::cout << v.value << std::endl;
  }    
}

おおお!! コピーで取り出すだけじゃなくて、参照でも取り出せるがね!!!!(名古屋弁)

なんだよー、みんな。教えてよwww

けっこういろんな箇所で std::vector とか コピーで取り出してて恥ずかしかったわー(名古屋弁)


もちろんiOSでも使えるboost。ただ、ビルドするのが大変なので、ヘッダファイルだけで使えるのを丸ごと自分のプロジェクトのソースフォルダにコピーして使ってるんだけどな!! ワッハッハ!!(実はcpp_akiraさんにそう教えて貰ったのは内緒)


ではまた次回!! 

Windows7 ようやく ATI と Illustrator のトラブルを回避

images
Windows7へ移行してちょこっと問題になってたのが1つ解決。

イベントログに「CPLIB :: General - Invalid Parameter」というエラーが記録される
エラーを出してるのはノートPCに内蔵されているATIのグラフィックドライバだというところまでは突き止めたんですが…ちょっと前に新しいドライバをAMDのサイトからダウンロードして導入した時は、なんと Windows Aero のパフォーマンスが 4.5→3.9になっちゃっててヘコーン… が!今週配布が始まった新しいドライバだと問題なしだという事が判明!
photo2
やったね!もちろんイベントログにもエラーの記録は無し。ありがとうAMD!

ノートPCに入っとるグラフィックは「Mobility Radeon HD 4330」という型番なのが…新しいドライバを導入するとWindows7からは「Mobility Radeon HD 4300」と認識されとる。一抹の不安が胸をよぎりますがまあいいよね。

この件、保証期間切れにも関わらず、しかもプリインストールされてないOSに関してのメールでの問い合わせに丁寧に回答してくださったHPのサポートにも感謝。今回の件、一報入れておきました。

Windows7 で Illustrator を使ってたら日本語入力できなくなった
これ、自分は遭遇してなかったんだけどかなり深刻だったんだね。 なぜ遭遇を回避できてたかといいますれば、Office2010をインストールしてたから! 困ってる人、 Microsoft IME 2010 をインストールしたら直る可能性が高いので試してみてください。まぁ無料ですしね~^^;


ではまた次回!

Windows7 (x64) 痒いところに手を届けるカスタマイズ

photo2
Windows7、ちょっと放置しておくと省電力のために画面を暗くしてくれるのはいいんだが、ファイル検索の為のインデックス生成が始まってHDDもファンもフル稼働。それはかえって電力を消費しているんじゃ…

なんというか、Windows7を象徴するような仕様でござるニンニン。

というわけで、前回に引き続き、Windows7 のカスタマイズ記です。
今回もテキストばっか^^;


エクスプローラーのステータスバーにファイルサイズが表示されない
詳細ウインドウに表示されるからいいじゃん!という事なのでしょうが、縦方向に狭いワイド液晶画面では縦方向の余計なスペースは無駄でしかないのでオフってます。ので、WindowsXPと同じくステータスバーにファイルサイズが表示されて欲しくてしかたがないのですが…なんとありました。

⇒こちらの記事を参考に、⇒こちらの「Classic Shell」に同梱されている「Classic Explorer」がまさに欲しい機能!ついでに細かい挙動ですが修正できて満足。ありがとうございまっす。


ナビゲーションペインでの表示項目が微妙
せめてオンオフとか並び替えとかあればもうちょっと皆さん使ってくれそうな気配なのですがそなへん上から目線過ぎてかなりの人がオフっているであろうナビゲーションペイン。ナビゲーション ウインドウ?
⇒こちらと、⇒こちらの記事を参考に、常にユーザーフォルダを表示するよう、レジストリを修正。

HKEY_CURRENT_USER\Software\Classes\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\ShellFolder
に、値 PinToNameSpaceTree を追加しただけ~
当該項目を削除とか2か所以上書き換えとかありますが、安全に変更するにこしたことはない。

ナビゲーションペインで「お気に入り」は消さない方が無難
調子に乗って「お気に入り」も消してみたんですが、一番上の項目が少し下にズレて表示される。それだけならちょっと格好悪い程度なんですが…ナビゲーションペイン内で色々フォルダが開いてスクロールするような状況になると描画が乱れます。これみんな遭遇してるのか自分だけなのか…。とにかく惜しい。

VS2008のジャンプリストに「最近使ったもの」が表示されない
VisualStudio2008をタスクバーに登録して使っていたのですが、ジャンプリストがちっとも育たない…。 これでは自分的にほぼタスクバーに登録する意味がないので調べてみたら… .sln ファイルの関連付けで、バージョンチェックしてからVSを起動するようにバイパスされていました。VS2005とかVS2010とか入ってないし、複数バージョンを同時に使うこともなさそうなので、関連付けを変更したらちゃんとジャンプリストに登録されるようになりました。うむむ。

最近開いたプログラムを「スタート」メニューに表示し保存する
スタートメニューのプロパティ内「最近開いたプログラムを「スタート」メニューに表示し保存する」のチェックは外さない方がいいかもね。「ファイル名を指定して実行」方面の履歴も軒並み消えます。消えますし、記録されなくなって不便です。単にスタートメニューでの表示を制限したい場合は、プロパティ→カスタマイズ内の「最近使ったプログラムの表示数」を0にする方が無難か。

EmacsをWindows7で少しだけ使いやすく
runemacs.exeをタスクバーに登録すると、なんと起動後にタスクバーにアイコンが2個並んでしまってイヤーン!なのをどうしてくれようかと調べてみたら、コレ解消できるみたい。
→ここから実行ファイルを取ってきて、runemacs.exeのショートカットのAppIDを「GNU.Emacs」にするだけ。おお!バッチリじゃん。
タスクバーに登録されたソフトは、「Windowsキー+数字」で起動できたり切り替えたりできるのが地味に素敵仕様。これとジャンプリスト、Aero 関連は作業の効率アップに貢献してると思うのだ!


ではまた次回~

Windows7(x64)への移行で私がした30の項目

photo2
さてWindows7(x64)へ移行を始めて一週間です。

ようやく出口が見え始めました(>_<)

そんだけWindowsXPをカリカリにチューニングして使ってきた裏返しなのですが、ちょっとでも操作感がかわるともう拒否反応出ます。「あ~これショートカットキー違う!」とかいろいろ。

…それだと仕事にならんので普段のワークフローも含めてエイやっと刷新しました。

というわけでその対応記です。めっちゃ分量あるんで覚悟するべし!
「Windows7(x64)への移行で私がした30の項目」
ちなみに機種は「HP Pavilion Notebook PC dm3z-1100 Entertainment/CT」
はじまりはじまり~


Aeroデザインの黒いマウスカーソルください
こちらで配布されています 感謝。

自分で設定したマウスカーソルがログオフすると戻ってしまう
→ \WINDOWS\Cursor 以下にファイルを保存する(ディレクトリ丸々で大丈夫)

イベントログ: CPLIB :: General - Invalid Parameter
→ どうもグラフィック(Radeon HD 4330)のドライバが原因。メーカーに問合せ中

タスクバーを固定した状態でタスクバーのアイコンを右クリックしてメニューを出してアイコンのない場所で左ドラッグ上でタスクバーが勝手に上に移動
→ タスクバー固定しとるっちゅーねん。もしそうなったらあわてずタスクバーのプロパティーで位置を直す。

タスクバーのアイコンサイズを小さくしたら時計の日付表示が消えた
→ もう言葉がない… でもこちらのTTClockというソフトで解消! 多謝

SONAR3でEDIROL VSTが入っていない
→ インストーラーをXP互換&管理者特権モードで動かしたら入った。でもEDIROL VSTを使ってるプロジェクトと一緒にSONAR3を閉じるとエラーで落ちる…。

.curファイルを開こうとするとVisualStudio2008起動直後に「プログラムにコマンドを送信しているときに、エラーが発生しました」ってなる
→ VisualStudio2008とかOffice2007とかで発生してる不具合。 Default Programs Editor というソフトで関連付けの設定の中の「dde」を無効にして解決。

アイコンが壊れた!
こちらで解決 多謝

イベントビューアーで以下の記録
次のエラーのため、セッション "Circular Kernel Context Logger" を開始できませんでした: 0xC0000035
→ ネットワークプロトコルの設定からIPv6を外す

スクロールバーの上下のボタンをタッピングしたときに余計にスクロールする
→ HPで配布してるドライバではなく、こちらを参考にドライバを入れ替えたら解消した。どんだけ!

タップ直後にもう一回タップして指を離さないでいると、左クリックしたままと思われる
→ いまだ解消できず。これはWindows7の仕様なのかタッチパッドのドライバの仕様なのか…

Virtual Desktop for Win32をスタートアップに入れても「管理者特権」を要求されるので起動しない。SoundForge8も同様
→ タスクに登録する方法とかありましたが…電源アダプタの抜き差しでソフトごとタスクが終了させられてしまうため解消法なし。

emacs23で「~」がちゃんとでない!
こちらの設定で解消 感謝! まさかフォント設定が問題だったとは…

スリープ後、一定時間で休止にならない?
→ WindowsVistaからの新しい省電力「ハイブリッドスリープ」の仕様だそうな。電源の詳細設定で休止になるよう設定可

再起動とシャットダウンのショートカット
→ いろいろありあしたが標準の操作で慣れました

イベントログ: 次のブート開始ドライバーまたはシステム開始ドライバーを読み込めませんでした:cdrom
ここを参照して解決 多謝

イベントログ: セッション "Microsoft Security Essen太字tials OOBE" が次のエラーで停止しました: 0xC000000D
こなへんとかこなへんとか参照 ありがとうございます!

Explzhはdllが出揃っている32bit版をチョイス
→ 書庫をダブルクリックした時の挙動はOSにあわせた

アイコンのフォントを Meiryo UI に変更
→ ちょい省スペースなので、エクスプローラーでのファイル表示で「…」と省略されにくくなった

ライブラリの並び替え
こちらを参考にしたらできた! これよく見つけたと尊敬。 エクスプローラーから直感的に操作したいのぅ

ライブラリにマイドキュメント以下のフォルダを登録していると、選択した時の挙動が怪しくなる
→ マイドキュメントの位置を下の方にすると思った通りの挙動になった

Firefoxは「タブが選択されるまでページを読み込まない」にしておくとメモリの消費をかなり抑えられる
→ グループ分けして20ページほど開きっぱなしですが、普段見るページは限られてるからね。

Thunderbirdのウイルススキャンの禁止
→ MicroSoft純正スキャンソフトと機能が被るので設定エディタで browser.download.manager.scanWhenDone を false に。Firefoxと同じ設定でいけた

Bonjour、スリープ時にエラーをたくさん吐く
→ 機能を使ってないのでサービスを止めた

イベントログ: AMLI: ACPI BIOS は無効な IO ポート アドレス (0x70) への書き込みを試みました。
→ BIOS新しくしてもだめだったので製造元に問合せ中

タッチパッドの滑りが悪い
→ ご飯食べながらPC操作してたら具合よくなった(^o^)/

タッチパッドの反応が悪い
→ HPで配布してるドライバではなく、こちらを参考にドライバを入れ替えたら解消した。どんだけ!

スクロールバー細い
→ デザインの詳細設定で太くしたった!

仮想デスクトップを使いたい
Dexpotの出来が非常によい 特にタスクバーで各デスクトップのサムネイルが表示されるのが気に入った!

ライブラリを活用してみる
photo
いくつもプロジェクトが同時進行してるから、そのぶんだけエクスプローラーを開いてたんだけど、それをスパッと止めてエクスプローラーを1こだけにしてみた。んで、よく使うフォルダをライブラリに登録。プロジェクトが終わったらライブラリから削除。ん~これならいいかもね。


やはりたくさんあった…^^;

ではまた次回!

iOS5で電池をグッと減りにくくする3つのTIPS

巷ではiOS5祭りやiPhone4Sフェスティバルもようやく落ち着き始めておりますが皆さま如何お過ごしでしょうか。

僕の先輩もiPhone4S買ってスポットライト浴びてます…いいな…。

のーでーすーがー!

iOS4.3あたりから手持ちの3GSはおろかiPhone4やiPad2!「電池減るの早くね?」状態です。

んで色々調べたりしてみた結果、どうやらこの3つの設定で回避できた模様なので以下詳細。

『自動的ダウンロードをオフる

1
「設定->Store->自動的ダウンロード」
たぶんこれが一番効果が大きい。どうも…これのプッシュ通信が重いのかな。他のデバイスでアプリとかダウンロードする時に妙に待たされるし、落ち着くまではしばらくオフ!iPhone、iPadを複数所持してる人は全ての機器でオーフ!iTunesの環境設定でもオーフ!!

『メールもプッシュで取らない
2
「設定->メール->データの取得方法」
部長はそんな困らないので~♪ でもメールにタイトな人はこの設定はスルーでしょうかね。すぐ読む!的な。

『位置情報系も色々オフる
3
設定->位置情報サービス->システムサービス
設定画面に辿り着くのにちょいと手間ですし、設定効果もやや都市伝説的ですが…車持ってないから渋滞状況とかあっても使わないし~的にオフ!

とくに、機内モード(WiFiオン)で使ってる3GSは電池が一週間持つようになったのでオススメかもしれません。

ではまた次回!

C++でstd::coutの出力をデバッグ出力に回す

C++始めて二週間目。

0201889544

主にVisualStudio2008でビルドしてますが…

std::cout << "hogehoge" << std::endl;

これがデバッグ出力に出力されないのが微妙に不便。

printf()もなんだけどね。

コレMacのXcodeだと出来るのに!と思いつつ調べてみたら、OutputDebugString()を使った実装方法を見つけたのでメモ。

class nnStreambuf : public std::streambuf {
public:
virtual int_type overflow(int_type c = EOF) {
if(c != EOF)
{
char buf[] = { c, '\0' };
OutputDebugString(buf);
}
return c;
}
};

nnStreambuf dbgstream;
std::cout.rdbuf(&dbgstream);
コードを見れば一目瞭然ですが、要するに出力部分を乗っ取ってしまえばなんて事はないという結論。さすがC++のライブラリ、よく考えられてるぜ…

ついでにこんな感じにしてみた。
class Os {
nnStreambuf dbgstream;
std::streambuf *default_stream;
public:
Os() : {
default_stream = std::cout.rdbuf(&dbgstream);
// Winの環境依存の処理があれば
}
~Os() {
std::cout.rdbuf(default_stream);
// Winの環境依存の後始末があれば
}
};

こうしとけばmain側では

void main() {
OS os;
// 以下ソフトの処理
}
とやっとくだけでソフト終了時に自動的にデストラクタが呼ばれるのでメモリリーク知らず。OS依存の処理をクラス内に書いておけば#ifdef要らず。メインのコードはスッキリ。

Cじゃ考えられなかった便利で簡単な実装だと思うんだけど、どーなのかしらん。

…まだC++始めたばっかなんで色々ご容赦頂ければ幸いDEATH


ではまた次回!

iPhone 彼はいい奴です!Objective-Cのアクセサメソッドとちゃんと向き合ってみた記録。

sdkこのブログを読んでくださってるみなさん。
けっこう会社や事務所とかからアクセスしとる?

まぁそれは置いといて。置いとくんかい!

今回はコードでよく見かけるアレ、

CGRect frame = view.frame;
CGPoint center = view.center;

みたいに書けるヤツ。Objective-Cのアクセサメソッドについてー。あとちょっと長文だから今集中力が足りてない人は注意。

これ、ソースに書かれとる@propertyとか@synthesizeとかがなんか呪文っぽいし、めんどくさそうだし、

CGRect frame = [view frame];

って書けるからいーじゃん。って敬遠しとったんだけど、Objective-Cにおいてはむしろ積極的に使った方が何かと得!てか使わないとハマる…かも。という事がだんだん見えてきました。つまり宣言のめんどくささより使う事で得るメリットが部長的に上回った訳です。

宣言のし方はだいたいこんな感じ。
@interface Hoge : NSObject
{
    int hoge;
    UIView *fuga;
    NSString *fugafuga;   
}
@property (nonatomic) int hoge;
@property (nonatomic, retain) UIView *fuga;
@property (nonatomic, copy) NSString *fugafuga;

@end


@implementation Hoge

@synthesize hoge;
@synthesize fuga;

-(void)dealloc
{
    [fuga release];
    [fugafuga release];
    [super dealloc];
}

@end

はい、終了~!これで、
UIView *view;    // 取得済み
NSString *str = @"hogehoge\n";
Hoge *hogehoge = [[Hoge alloc] init];

hogehoge.hoge = 0;
hogehoge.fuga = view;
hogehoge.fugafuga = str;

と、アクセサメソッドを使って変数のやり取りが出来るようになる。これ、コンパイラ側で
-(int)hoge
-(void)setHoge:(int)aValue;

などのメソッドを自動的に生成してくれとる訳。なので、やっぱり
[hogehoge setHoge:0];

とも書ける。そんな大した事じゃないじゃん!と思うかもしれんけど、自動的に生成されるメソッドの内部処理が非常に重要。

引数がUIViewやNSStringなどのオブジェクト型の場合
呼び出し側でオブジェクトを削除されても整合性が取れるようにする為、@property宣言に retainを追加する。で、その場合はこんな感じのコードが追加されてる。あーなるほどね!みたいな。
-(void)setFuga:(UIView *)aObj
{
    if(fuga != aObj)
    {
        [fuga release];
        fuga = [aObj retain];
    }
}

マルチスレッドで扱われるクラスの場合
@property宣言のnonatomicを外す。すると、いろいろめんどくさい手続きをすべて自動で行ってくれる。

主に文字列の場合の利点
オブジェクトをretainしてると、そのオブジェクトを共用してるって事なんで、よそで書き替えられた内容が反映されます。それじゃ都合が悪いよって時は、@property宣言でretainの代わりにcopyを指定する。すると、いい感じにcopyしてretainしてくれます。

で、忘れがちなのが、@property宣言にretainやcopyがついとるオブジェクトはdeallocでちゃんとreleaseするって事!これ、上の例のようにいきなしreleaseしてしまって大丈夫。Objective-Cはnilポインタに対してメソッドを実行してもエラーで止まる事は無いからね。

こんな感じでホイホイアクセサメソッドを使っとりますが…こんな感じの記述は怒られるんで注意。
UIView *view;   // 初期化済み
view.center.x += 1.0;

あと、見た目メソッド呼び出しっぽくないんで、ついついこんな感じで書くと後でえらい事になるんでコレも注意。
view.center.x = view.center.x + view.center.y * 0.5 + view.freme.size.width / 2.0;

この一行で4回メソッドが実行されとります。

CGPoint center = view.center;
view.center.x = center.x + center.y * 0.5 + view.freme.size.width / 2.0;

予め変数に格納してから計算するとかして、メソッド呼び出しを減らすよう心掛けるのが吉かと。

オマケ
Objective-Cのメソッド呼び出しに対するコストを気にしとる人。こうするとCの構造体と同じ感覚で変数にアクセスできる。恐るべしObjective-C。そのぶん自分で管理する事は増えますが、まあアリでしょう。
@interface Hoge : NSObject
{
@public
    int hoge;
    UIView *fuga;
    NSString *fugafuga;   
}
 
@end

hoge->hoge = 1;
hoge->fuga = view;
hoge->fugafuga = str;

なお、今回の件。こちらの記事がたいへん優秀です。てかこれを読んだら部長の解説は要らない(笑)

あとAppleのドキュメントも。ただ部長的には若干訳がわかりにくい。

そして、こちらこちらの記事にもたいへん助けられました。さりげなくいつもお世話になっとります。多謝。

iPhone 最高クオリティの動画を無限ループで楽しめる簡単クッキング

5末のイベントですが。

なんとiPhone3GSを持ち込んで、
物販ブースで延々PVを流してみようかと画策しとります。
大丈夫、本番中はちゃんと消しますって。

で、試行錯誤した末のiPhone3GS向けの高画質のムービー製作手順とかループ再生手順とかのメモ。
(要QuickTime Pro)

ゆーてもやりかたは簡単で、
下の設定で「ファイル->ムービーを書きだす」でファイルを書き出すだけ。
誰でもできます(要QuickTime Pro)

ビデオ
圧縮形式:H.264
キーフレーム:240
フレーム並べ替え:はい
ビットレート:2000kbps
最高品質
サイズ:NTSC 720x480 16:9

サウンド
フォーマット:AAC
レート:44.100kHz
最高品質
エンコーディング方式:標準ビットレート
ビットレート:128kbps

で、書き出した.movファイルをiTunesに取り込んで準備完了。
さっそくiPhone3GSと同期してみてちょ。

手持ちの環境だと、上記の設定で作った.movファイルはあっさりiPhone3GSに転送できちゃうのだ。解像度、640x480よか高いんですけど…いいのかね?

でもお陰で動画がiPhone3GS上でもかなり高品質。
ほぼiPhone3GSの画面一杯に奇麗な動画が表示されるのってなんか優越感。
でもこれって、iPhone3GS以外でも有効なのかね?

ま、とりあえず。最初のハードルをクリア。


続いて…転送したムービー、フツーに再生できますが、シャッフル再生とかループ再生ができないっぽい…けどできちゃった!という技。

photo1まず、iTunes上で再生する動画のプレイリストを作ります。

で、iPhone3GSに転送。

そんで、プレイリストから一つ動画を再生。
この時iPhone3GSを縦にするとあら!不思議。動画も縦画面にあわせて回転します。

photo2そこですかさず再生中の動画をタップすると、ループ再生とシャッフル再生を制御するボタンが出現するという寸法。スゲェ!

PSのリッジレーサーで、好きなCDをセットしてBGMにできちゃう技を見つけた時の気分。

で、設定したらiPhone3GSを横に戻して任務完了。


ただ動画再生はiPhone3GSのバッテリーをみるみる消費するんで、当日はACアダプタ持参だな。忘れたら…かなり泣ける。

Emacs 巷はバージョンアップ祭り開催中(23.2)。でも指をくわえて見てるしか…!

photo1Emacsのバージョンが23.2になったのでいそいそとバージョンアップ作業。

特にWindows環境は、公式バイナリで日本語がインライン入力できるようになるという、嬉しすぎる機能強化があったので期待大。でも若干いまさら感もあり(笑)

ま、UNIX畑のソフトだからねー。Windowsで使うには色々諸々工夫が必要なのだ。でも時間を掛ければそのへんのテキストエディタより格段に使いやすくなるはずなので我慢の子。使い古した道具が手に馴染む感じ。

そしてあえなく玉砕。

WindowsXPだとConsolasフォントを指定すると激重になる件が相変わらず。ハンパなく重い。これじゃ使いモノにならんので思い切ってバグレポ書くべ…と思って検索してみたら、やっぱり上がってたよバグレポ。なんだよもう!

という訳で、この件FIXされるまでバージョンアップはおあずけになりました。Macだとぜんぜん問題ないのになー。

Macの場合、23.2のソースを取ってきて

./configure --with-ns --without-x
make
make install

でなんの問題も無くバイナリが出来あがる。もちろん64bit。素晴らしい!


で、Consolas問題で四苦八苦してた時になんとなく見つけたEmacs23.2のTips…とか?

  1. set-face-foregroundで色を変えてると、org-modeの色分けが変になるんで、カスタマイズ機能を使って指定し直す必要がある。
  2. (setq redisplay-preemption-period nil)で、描画が重い時にそれなりに描画完了を待ってくれるようになる。
  3. フォント設定は
    (set-frame-font "Bitstream Vera Sans Mono-9")
    みたいに書く。いいかげん set-default-font は使うなって事らしい。
  4. Mac版で簡易的にフルスクリーンにしたければ、フレームの幅と高さに1000とか大きな値を設定すればよい。23.2からはいい塩梅にサイズ調整してくれる。
  5. org-mode、なにげにバージョンが上がって6.36になってた。

では次回までごきげんよう!

「Win+数字」でアプリを起動できるのはVistaだけじゃない。

いちゲームプログラマとして、主にiPhoneプログラミング関連を…!

と意気込んでた時期もありましたがー。

すっかりEmacsとそれに付随するブログになっとる今日この頃。
開発環境のTipsと捉えられなくも無いんですが…まぁ今回もそんなTips。

苦笑。

とにかくデスクトップにアイコンがズラズラ並んでるをよしとしない部長。なんとか常用アプリをショートカットで起動できるようにしつつ、アイコンをデスクトップから追い出したいよね…と目論む事数年。

たとえばクイック起動に登録したショートカットを
Win+数字
でサクッと起動できれば目的は達成…なんだけどー。
これVistaでは使えてもWindowsXPでは使えん便利機能。


photo1ので、運用でカバーだ。

必要なソフトをスタートメニューに登録して、ショートカット名の頭に数字を付ける。

すると「Win 数字」と続けて押すとそのソフトが起動するようになる。同時押しじゃないのがミソ。

Emacsだけは「Win e」←ここ重要。

たまにしか使わないソフトはこれまで通りクイック起動バーに置いとく。これでずいぶんデスクトップが片付いたぞ。


photo2ちなみにIllustrator10は起動時に最大化してくれなくて微妙に不便なんだけど、実はショートカット側で設定できてしまう。

これ、他のソフトでも使えてかなり便利。Emacsには効かんけどね。さすがだぜEmacs。

画面を最大限に活用したい人なら覚えておいてソンはないだろう。


なんか、数年越しの「なんとなくモヤモヤ」な悩みが一気に解決した(笑)

まあこんな感じですかね。

すっきり!
記事検索
電子書籍発売中

「チュートリアル形式で始めるOpenAL」
サウンド怖くない。C++による8つのチュートリアルで始めるOpenALプログラミング。さああなたも、自作アプリに魅力的な音効を添えてみませんか??
⇒Kindle版 ⇒iBooks版


「iPhoneアプリ『ういろう』のレシピ」
ゲームってどうやって作ってるの?? 拙アプリ『ういろう』の製作過程を本にまとめました。もちろんソースコードつき
⇒Kindle版 ⇒iBooks版


『チュートリアル形式で始めるOpenGL[2D編]』
OpenGL怖くない。C++による16のチュートリアルで始めるOpenGLプログラミング[2D編]。さああなたも、ゲーム作りを始めてみませんか?
⇒Kindle版 ⇒iBooks版
自作ゲーム配信中

『Puzzle & Monarch』
「君主候補となって国作り!! ただし制限時間は90秒。」森を作って道をつないで...あなただけの国を作ってみませんか??
⇒AppStore


『BRICK & TRIP』
咄嗟の判断に、あなたの指先はついてこれるか?! 爽快フリックアクション!! 様々な難関をくぐり抜けて旅の終着点を目指そう!!
⇒AppStore


『ういろう』
名古屋土産ういろうがiPhoneで大活躍?! 白ういろうを守れるのはあなただけ。ひゅーん、ぼよよーん!!
⇒AppStore ⇒LITE版


『こなへん』
ヒマラヤ山脈、大西洋、世界で一番深い湖… それって地球のどこにあるのか知ってるかな?『全方位直感地理クイズ』という新ジャンルに挑戦!あ、それ。地球をくーるくるw
⇒AppStore ⇒LITE版


『GEOSPOT』
ヒマラヤ山脈、大西洋、世界で一番深い湖… それって地球のどこにあるのか知ってるかな?『全方位直感地理クイズ』という新ジャンルに挑戦!あ、それ。地球をくーるくるw
⇒Windows ⇒Mac


『TieGunner』
マウス片手に大宇宙へ飛び立とう!『しっぽシューティング』というジャンルを作って頂きました^^; WinでもMacでも動きます。ソースもあるでよw
⇒Windows ⇒Mac
QRコード
QRコード
  • ライブドアブログ