月別アーカイブ: 2010年7月

[CGO]CGOptimizer麦茶v1.00β2

CGOptimizer麦茶の開発版を更新しました。

Download(CGOptimizer.zip)

今回の更新では暫定的に下記のJpeg系ツールを追加しました。

暫定対応のため、細かくパラメータ設定ができません。
また、開発版のため、不具合を含んでいる場合がありますので使用時に画像のバックアップを行うようにしてください。

[ZCFS]ZenCoding for SakuraEditor Ver 0.0.3

ZenCoding for SakuraEditor を更新しました。

ver0.0.2ではキャレットが最後にくるver0.0.2ではキャレットがタグの中にくる

更新内容

  • 置換時の選択範囲削除を削除。
    (これにより、Ctrl+Z時の挙動が変わります。)
  • 置換後にキャレット位置を移動
  • 英語で寄付方法を追記

Download(Zen.Coding-SakuraEditor.v0.0.3.zip)

Windowsのバージョン取得

使うことなんてないと思うけれど、一応メモ。
Windows系コンパイラなら問題なくコンパイルできると思う。
一応、MinGWでコンパイル、動作確認は行った。


#include <windows.h>
#include <stdio.h>

int main(void)
{
  unsigned int GV = GetVersion();

  printf("GetVersion API(GV)                        = %08X\n\n", GV);
  printf("_winver                                   = %08X\n", _winver);
  printf("_winmajor                                 = %08X\n", _winmajor);
  printf("_winminor                                 = %08X\n", _winminor);
  printf("_osver                                    = %08X\n\n", _osver);
  printf("(( GV << 8 ) | (( GV >> 8 ) & 0XFF)) & 0XFFFF = %08X (= _winver)\n",
                  (( GV << 8 ) | (( GV >> 8 ) & 0XFF)) & 0XFFFF );
  printf("GV & 0XFF                                 = %08X (= _winmajor)\n",
                  GV & 0XFF );
  printf("( GV >> 8 ) & 0XFF                          = %08X (= _winminor)\n",
                  (( GV >> 8 ) & 0XFF));
  printf("GV >> 16                                  = %08X (= _osver)\n\n\n",
                  (GV >> 16) );

  // Windows version(_winmajor, _winminor, _osver)
  printf("This system is [");
  if ( _osver < 0X8000 ) {
    // NT Group (_osver LowWORD MSB = 0)
    switch (_winmajor) {
      case 3:
      case 4:
        printf ("Windows NT %u.%u Build %u",
                         _winmajor, _winminor, _osver);
        break;
      case 5:
        switch (_winminor) {
          case 0:
            printf ("Windows 2000 Build %u", _osver);
            break;
          case 1:
            printf ("Windows XP Build %u", _osver);
            break;
          case 2:
            printf ("Windows Server 2003 family Build %u",
                                    _osver);
            break;
          default:
            printf ("NT Group Windows Build %u", _osver);
        }
        break;
      case 6:
        switch (_winminor) {
          case 0:
            printf ("Windows Vista or Windows Server 2008 Build %u", _osver);
            break;
          case 1:
            printf ("Windows 7 Build %u", _osver);
            break;
          default:
            printf ("NT Group Windows Build %u", _osver);
        }
        break;
      default:
        printf ("NTGroup Windows Build %u", _osver);
    }
  }
  else {
    switch (_winmajor ) {
      case 0: //Win32s Group
      case 1:
      case 2:
      case 3:
        printf ("Win32s Build %u", _osver & 0X7FFF);
        break;
      case 4: // 9X Group (_osver is invalid.)
        switch (_winminor) {
          case 0:
            printf ("Windows 95 Build ----");
            break;
          case 10:
            printf ("Windows 98 Build ----");
            break;
          case 90:
            printf ("Windows Me Build ----");
            break;
          default: // To make sure
            printf ("Newer than Windows Me");
        }
        break;
      default: // To make sure
        printf ("Newer than Windows Me");
    }
  }
  printf("]");

  return 0;
}

インタラクションデザインの教科書を読み終えて

[amazon asin=”4839922381″][/amazon]

インタラクションデザインの入門にもってこいの一冊。
内容は考え方と担当するところを丁寧に書いてくれている。
まさに、必要な知識を吸収するのに最適な本。

インタラクションにスポットを当てているけれど、Webアプリ開発者および、デザイナーも読んでほしい。
仕事の進め方も例を上げながら記述されていて実にわかりやすく、「どんなふうに仕事してるの?」とか「インタラクションデザイナーって必要なの?」って時にこの本を差し出したい。それぐらいに明確に、わかりやすく、読みやすい、いい本である。

すでに、在庫が少なくなりAmazonでは2倍の値がついてるけれど、
ジュンク堂で何冊か残っていて定価で買えたのはほんとうに運が良かった。

[CGO]CGOptimizer麦茶v1.00β1

CGOptimizer麦茶の開発版を更新しました。
Download(CGOptimizer.zip)

今回の更新では暫定的に下記のPNG系ツールを3つ追加しました。

暫定対応のため、細かくパラメータ設定ができません。
また、開発版のため、不具合を含んでいる場合がありますので使用時に画像のバックアップを行うようにしてください。

mimo UM-740のインストール

同梱されているドライバCDは文字化けする上、UM-740が存在せず、UM-750となっており、
しかも、インストールを行うとAvira AntiVirに引っかかる危なさ。
これではまったくもって、信用できないため、Webから新しいドライバを入手してインストールした。

  • ドライバの入手
  • 注意
    グラフィックボードのドライバに依存してるため、グラフィックドライバのバージョンが古いとディスプレイアダプタのエラーを起こす場合がある。
    上手く動作しない場合は、グラフィックスドライバを更新してみること。

JpegopitmをMinGWでコンパイルその2

Jpegoptim.cの変更なんだけど下記の変更のほうが修正個所が1か所にまとまるしいいかも。

@@ -53,6 +53,39 @@
 #define ICC_IDENT_STRING  "ICC_PROFILE\0"
 #define ICC_IDENT_STRING_SIZE 12

+#ifdef WIN32
+#define uid_t   int
+#define gid_t   int
+#define ROOT_UID	0
+#define ROOT_GID	0
+#define realpath(N,R) _fullpath((R),(N),_MAX_PATH)
+uid_t getuid(void)
+{
+	return ROOT_UID;
+}
+uid_t geteuid(void)
+{
+	return ROOT_UID;
+}
+gid_t getgid(void)
+{
+	return ROOT_GID;
+}
+gid_t getegid(void)
+{
+	return ROOT_GID;
+}
+int setuid(uid_t uid)
+{
+	return (uid == ROOT_UID ? 0 : -1);
+}
+int setgid(gid_t gid)
+{
+	return (gid == ROOT_GID ? 0 : -1);
+}
+
+#endif
+
 void fatal(const char *msg);

 struct my_error_mgr {

JpegopitmをMinGWでコンパイル

Jpegoptimのコンパイルにちょっと躓いたのでメモ。

  1. msys/src/配下にjpegoptim-1.2.3を解凍して配置
  2. msysを起動して、下記のコマンドを入力
    $ cd /src/jpegoptim-1.2.3/
    $ autoconf
    $ configure
    
  3. configureが通らず、下記のエラーが出る
    configure: error: cannot find install-sh, install.sh, or shtool in aux "."/aux
    
  4. configure.inを下記のように修正する
    @@ -3,7 +3,7 @@
     dnl Process this file with autoconf to produce a configure script.
     AC_INIT(jpegoptim.c)
     AC_CONFIG_HEADER(config.h)
    -AC_CONFIG_AUX_DIR(aux)
    +AC_CONFIG_AUX_DIR(sub)
    
     AC_CANONICAL_HOST
    
  5. subフォルダを作成し、install-sh等を適当な場所から持ってくる(例ではJpeglibから)
    $ mkdir sub
    $ cp ../jpeg-6bx/install-sh ../jpeg-6bx/config.sub ../jpeg-6bx/config.guess ./sub
    
  6. 再度、configureファイルを生成して、configureを実行
    $ autoconf
    $ configure
    
  7. configureが通ったら、makeを実行する。すると下記のエラーが出る
    jpegoptim.c:354: undefined reference to 'realpath'
    jpegoptim.c:354: undefined reference to 'realpath'
    
  8. jpegoptim.cを下記のように修正する
    @@ -351,7 +351,11 @@
           }
           break;
         case 'd':
    -      if (realpath(optarg,dest_path)==NULL || !is_directory(dest_path)) {
    +#ifdef WIN32
    +	if (_fullpath(dest_path,optarg,MAXPATHLEN)==NULL || !is_directory(dest_path)) {
    +#else
    +	if (realpath(optarg,dest_path)==NULL || !is_directory(dest_path)) {
    +#endif
     	fatal("invalid argument for option -d, --dest");
           }
           if (verbose_mode)
    @@ -441,8 +445,13 @@
     	 fatal("splitdir() failed!");
            strncpy(newname,argv[i],sizeof(newname));
          }
    -     snprintf(tmpfilename,sizeof(tmpfilename),
    +#ifdef WIN32
    +	 snprintf(tmpfilename,sizeof(tmpfilename),
    +	      "%sjpegoptim-%d.tmp", tmpdir, (int)getpid());
    +#else
    +	 snprintf(tmpfilename,sizeof(tmpfilename),
     	      "%sjpegoptim-%d-%d.tmp", tmpdir, (int)getuid(), (int)getpid());
    +#endif
        }
    
       retry_point:
    
  9. 再度、makeでコンパイルが通った。

auxというのはBSD系の名残でinstall-shなどの補助スクリプトが各のされているフォルダなのだが、
WindowsではauxというフォルダはDOSの特殊フォルダの名残で作成できない。
そこで、参照先を”sub”に変更し、新たに”sub”フォルダを作成し、GNU系ソフトに同梱されている補助スクリプト類を格納した。
また、コンパイル時にエラーになったrealpathやgetuidはPOSIX系の関数で
Windowsには存在しないため同様の動作するものに置き換えたり削除したりしている。
今回の例ではコンパイルを通すためにrealpathを_fullpathに置き換えたけれどもっときれいに書き直した方がいいな

QEMUのコンパイル

QEMUの最新版がほしかったので自分でコンパイルしてみたときのメモ。

  • コンパイル環境構築
    • MinGW+MSYS+zlib
      1. 猫科研究パック(msys_felidlabo_a007.7z)をダウンロード
      2. msys_felidlabo_a007.7zを解凍し、作成されたmsysフォルダをc:/などマルチバイト文字およびスペースを含まないパスに格納(例:”c:/msys”)
      3. msys/_felidlabo/04_gccinstall.batを実行し、GCCをインストール
    • coreutils-ext
      1. coreutils-5.97-3-msys-1.0.13-ext.tar.lzmaをダウンロード
      2. coreutils-5.97-3-msys-1.0.13-ext.tar.lzmaを解凍し、binの中をmsys/bin/にコピー(pr.exeは上書きでよい)
        ※.tar.lzmaの解凍方法がわからない場合は、7-Zipを使用する
        ※coreutils-extを入れないとQEMUのmakeで下記のエラーとなる

        /pc-bios/optionrom/signrom.sh: line 31: * 512 - 1 
        : syntax error: operand expected (error token is "* 512 - 1 ")
        make[1]: *** [multiboot.bin] Error 1
        rm multiboot.o multiboot.raw multiboot.img
        make: *** [romsubdir-optionrom] Error 2
    • SDL
      1. SDL-1.2.14.zipをダウンロード
      2. SDL-1.2.14.zipを解凍し、SDL-1.2.14フォルダをmsys/src/へ移動
      3. msys/msys.batを起動し、下記のコマンドでSDLをコンパイル
        /src/SDL-1.2.14/configure --prefix=/mingw --disable-shared
        make
        make install
  • コンパイル
    1. qemu-0.12.4.tar.gzをダウンロード
    2. qemu-0.12.4.tar.gzを解凍し、qemu-0.12.4フォルダをmsys/へ移動
    3. msys/msys.batを起動し、下記のコマンドでQEMUをコンパイル
      mkdir /home/***/QEMU
      /qemu-0.12.4/configure --prefix=/home/***/QEMU --target-list=i386-softmmu
      make
      make install
    4. /msys/home/***/QEMU/にコンパイルされた実行ファイル等が格納されている

英語の勉強に役立つサイトまとめ

まだ全部試せたわけじゃないけれど、基本的に無料で集めたつもり。

個人学習

コミュニティ

いいサイトや、使ってみた感想などありましたらここを参照した方へのアドバイスになりますので
コメントに書いていただけると助かります。