mieki256's diary



2024/01/14() [n年前の日記]

#1 [prog] C言語でiniファイルの読み書きをしたい

C/C++ と OpenGL を使って、Windows用のスクリーンセーバを作りたい。しかし、スクリーンセーバの設定パラメータを、どこにどうやって保存しようか…。

一般的なスクリーンセーバは、えてしてWindowsのレジストリに設定を記録するらしいけど、レジストリの読み込みはともかく、書き込みなんて怖くてやりたくない。ここは一つ、iniファイルの読み書きで勘弁してもらえないだろうか。

でも、C/C++ でiniファイルの読み書きってどうやったらいいんだろう。ということでそのあたりを調べて実験してみた。

環境は、Windows10 x64 22H2 + MinGW (gcc 6.3.0)。

WritePrivateProfileStringを使う :

ググったところ、iniファイルの読み書きについては、Windows なら WritePrivateProfileString()、GetPrivateProfileString() といった関数が使えるらしい。

_INIファイル(Win32API)(C言語) - 超初心者向けプログラミング入門
_iniファイルを読み込む - わびさびサンプルソース

Windowsに特化してるあたりがなんだかちょっと気になるけれど、これがもし Linux なら、ini ファイルではなく .xxxxrc 等のファイルに設定を保存しそうではあるし、iniファイルにアクセスする時点で、そのプログラムは Windows上でしか動かさないやろ、という気もするのでこの際使ってしまうことにした。

そんな感じで、こうなった。実行ファイルと同じ場所(ディレクトリ)に test.ini が無かったら作成して、その test.ini の内容を読み込んで printf() で出力するだけのプログラム。

_01_write_ini.c
// ini file read and write sample

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

#define INIFILENAME "test.ini"
#define SECNAME "ssstarsgl_config"

// global work
int wait = 15;
int speed = 1000;
int number = 500;
int fps_disp_enable = 0;

int main(void)
{
  char cdir[MAX_PATH];
  char filepath[MAX_PATH];

  // get current directory
  GetCurrentDirectory(MAX_PATH, cdir);

  // create save file path
  PathCombine(filepath, cdir, INIFILENAME);

  printf("Current Directory : %s\n", cdir);
  printf("ini file path : %s\n\n", filepath);

  if (!PathFileExists(filepath))
  {
    // Not found ini file
    printf("Not found %s\n", filepath);
    printf("Create %s\n\n", filepath);

    char buf[256];

    // create/write ini file
    sprintf(buf, "%d", wait);
    WritePrivateProfileString(SECNAME, "wait", buf, filepath);

    sprintf(buf, "%d", speed);
    WritePrivateProfileString(SECNAME, "speed", buf, filepath);

    sprintf(buf, "%d", number);
    WritePrivateProfileString(SECNAME, "number", buf, filepath);

    sprintf(buf, "%d", fps_disp_enable);
    WritePrivateProfileString(SECNAME, "fps_disp_enable", buf, filepath);
  }

  if (!PathFileExists(filepath))
  {
    printf("Not found %s\n\n", filepath);
    return -1;
  }
  else
  {
    printf("Found %s\n", filepath);

    // read ini file
    printf("Read ini file\n");
    wait = GetPrivateProfileInt(SECNAME, "wait", -1, filepath);
    speed = GetPrivateProfileInt(SECNAME, "speed", -1, filepath);
    number = GetPrivateProfileInt(SECNAME, "number", -1, filepath);
    fps_disp_enable = GetPrivateProfileInt(SECNAME, "fps_disp_enable", -1, filepath);

    // dump results
    printf("wait  = %d\n", wait);
    printf("speed = %d\n", speed);
    printf("number = %d\n", number);
    printf("fps_disp_enable = %d\n", fps_disp_enable);
  }

  return 0;
}

_Makefile
01_write_ini.exe: 01_write_ini.c
    gcc $< -o $@ -lshlwapi -Wall -O3

.PHONY: clean
clean:
    rm -f *.exe
    rm -f *.o
    rm -f test.ini

make でビルドして 01_write_ini.exe を作る。

DOS窓(cmd.exe)上で 01_write_ini.exe を実行すると、以下のような出力をして、test.ini という iniファイルも作成された。
> 01_write_ini.exe
Current Directory : D:\home\prg\c_lang\gcc\ini_read_write\take1
ini file path : D:\home\prg\c_lang\gcc\ini_read_write\take1\test.ini

Not found D:\home\prg\c_lang\gcc\ini_read_write\take1\test.ini
Create D:\home\prg\c_lang\gcc\ini_read_write\take1\test.ini

Found D:\home\prg\c_lang\gcc\ini_read_write\take1\test.ini
Read ini file
wait  = 15
speed = 1000
number = 500
fps_disp_enable = 0

test.ini の内容は以下のような感じ。

_test.ini
[ssstarsgl_config]
wait=15
speed=1000
number=500
fps_disp_enable=0

再度実行すると、test.ini が存在するので、test.ini を読み込んで内容の表示だけをする。
> 01_write_ini.exe
Current Directory : D:\home\prg\c_lang\gcc\ini_read_write\take1
ini file path : D:\home\prg\c_lang\gcc\ini_read_write\take1\test.ini

Found D:\home\prg\c_lang\gcc\ini_read_write\take1\test.ini
Read ini file
wait  = 15
speed = 1000
number = 500
fps_disp_enable = 0

少し解説 :

分かった範囲で、少し解説。

  • 実行している exeファイルの場所(ディレクトリ)を取得するには、GetCurrentDirectory() を使う。
  • ディレクトリのPATHに、ファイル名を結合したい時は、PathCombine() を使う。

_Win32APIでパス名とファイル名を連結する - プログラムを書こう!
_PathCombine

  char filepath[MAX_PATH];

  // get current directory
  GetCurrentDirectory(MAX_PATH, cdir);

  // create save file path
  PathCombine(filepath, cdir, INIFILENAME);

  printf("Current Directory : %s\n", cdir);
  printf("ini file path : %s\n\n", filepath);


ファイルの存在チェックは、PathFileExists() が使える。

_PathFileExists - Windows APIの部屋

  if (!PathFileExists(filepath))
  {
    // Not found ini file
    // ...
  }
  else
  {
    // Found ini file
    // ...
  }

注意点。PathCombine() や PathFileExists() を使うには、#include <shlwapi.h> が必要らしい。また、gcc/g++ に -lshlwapi を渡してライブラリをリンクしないといけない。


iniファイルへの書き込みは、WritePrivateProfileString() を使う。もし、指定したiniファイルが存在しなかったら、自動でiniファイルを作成して書き込んでくれるらしい。
WritePrivateProfileString("セクション名", "キー名", "キーの文字列", "iniファイルのPATH");
    // create and write ini file

    char buf[256];

    sprintf(buf, "%d", wait);
    WritePrivateProfileString(SECNAME, "wait", buf, filepath);

    sprintf(buf, "%d", speed);
    WritePrivateProfileString(SECNAME, "speed", buf, filepath);

    sprintf(buf, "%d", number);
    WritePrivateProfileString(SECNAME, "number", buf, filepath);

    sprintf(buf, "%d", fps_disp_enable);
    WritePrivateProfileString(SECNAME, "fps_disp_enable", buf, filepath);


iniファイルからの読み込みは、GetPrivateProfileString() を使って文字列として読み込むのが一般的らしいけど、今回は Int値を読み込めれば十分なので、Int値を返してくる GetPrivateProfileInt() を使って済ませることにした。この GetPrivateProfileInt()、もし、指定したキー名が無かったときは、デフォルト値を返すらしい。
int GetPrivateProfileInt("セクション名", "キー名", デフォルト値, "iniファイルPATH")
    // read key value from ini file

    wait = GetPrivateProfileInt(SECNAME, "wait", -1, filepath);
    speed = GetPrivateProfileInt(SECNAME, "speed", -1, filepath);
    number = GetPrivateProfileInt(SECNAME, "number", -1, filepath);
    fps_disp_enable = GetPrivateProfileInt(SECNAME, "fps_disp_enable", -1, filepath);

とりあえず、これで iniファイルの読み書きはできそう。

ただ、このプログラム、英数字のみのPATHにしか対応できない気もする…。PATHを格納するバッファを char で用意してるので、日本語文字列を含むディレクトリやファイル名には対応できないのではないかな…。いや、日本語文字列でフォルダを作ってその中で試したら、一応動いているようではあるけれど…。

2023/01/14() [n年前の日記]

#1 [pc] お袋さん用のノートPCをメンテナンス中その4

お袋さん用の旧ノートPC、FUJITSU LIFEBOOK AH33/J FMVA33JW1 に入っている Windows8.1 64bit をどうにかしたい。Windows8.1のサポート期間は、2023/01/10で終わってしまったので…。

Windows8.1 を Windows10 にアップグレードする作業は成功したし、手順も大体把握できたけど、ライセンスが無いから使い続けるわけにはいかない。ここは Ubuntu Linux 22.04 LTS でも入れて、そちらを使っていくようにしたい。

Ubuntu 22.04 LTSのisoを入手。 :

Ubuntu 22.04 LTS の iso を入手しないといけない。公式サイトからDLすることもできるだろうけど…。

_Ubuntuを入手する | Ubuntu | Ubuntu
_日本国内のダウンロードサイト | Ubuntu Japanese Team

公式サイト経由のDLは、回線速度が遅くて何時間もかかりそうだった。日本のミラーサーバからDLすることにした。今回は jaist (北陸先端科学技術大学院大学)さんのところから落としてみた。

_Ubuntu Releases
_Ubuntu 22.04.1 LTS (Jammy Jellyfish)

ubuntu-22.04.1-desktop-amd64.iso を入手。3.6GBほどのファイル。

USBメモリに書き込み。 :

USBメモリからブートしてインストール作業をしていくので、iso を USBメモリに書き込む。

書き込みには、Rufus 3.21 Portable を利用させてもらった。

_Rufus - 起動可能なUSBドライブを簡単に作成できます

書き込む際の注意点としては、USBメモリに MBR じゃなくて GPT で書き込むこと。今時のPCの BIOS は CSM mode (昔のBIOSの起動をエミュレーションする機能)が無くなってたり、CSM mode を有効にすると既にインストールされている Windows が起動しなくなったりするらしいので…。

そんなわけで、Rufus の「パーティション構成」は「GPT」を選択。「ターゲットシステム」は「UEFI(CSM無効)」に。

ISOモードとDDモードのどちらで書き込むかは、まずは ISOモードを試してから、ダメだったらDDモードで、ということらしい。

空き領域を確保。 :

Windowsが入っているストレージ(HDD や SSD)に対して、Ubuntu をインストールするための空き領域を確保する。

Ubuntu のインストーラは、
  • ストレージにWindowsが入っていて、
  • かつ、Ubuntu がインストールできそうな程度の空き領域が存在する、
という条件を満たしていると、「Windows Boot Manager とは別にインストールする」という項目が表示されて、Windows とデュアルブートできるようなインストールをしてくれるらしい。

今回は、Windows側で「コンピュータの管理」を起動して、データドライブとして用意されてるDドライブを縮小して空き領域を確保した。
  • Win + Xキーを叩くとメニューが表示されるので、「コンピュータの管理」を選択。
  • 左側の「記憶域」→「ディスクの管理」を選ぶ。
  • Dドライブを選択して、右クリックメニューを出して「ボリュームの縮小」を選択。
これで、Dドライブのサイズを小さくして空き領域を作ることができる。

どのくらい空き領域を用意すればいいのか。32GB程度があれば Ubuntu をインストールできるけど、経験的には48GB以上、できれば64GB程度は欲しいなと…。以前、32GBで使っていたら、次バージョンにアップグレードする時に空き容量が少なくて詰んだので。

ただ、今回、空き領域を64GBほど確保するつもりが、間違ってDドライブのサイズのほうを64GBにしてしまった…。空き領域は71GBほどに…。まあ、これはこれで困らないだろうから、このまま作業を続けた。

USBメモリからブート。 :

FUJITSU LIFEBOOK AH33/J FMVA33JW1 は、電源投入直後に以下のキーを叩くことで、BIOS設定画面その他を表示することができる。
  • F2キー : BIOS設定画面
  • F12キー : Boot menu (USBメモリ等を選んで起動できる)

しかし、デフォルトではセキュリティ云々が有効になっていて、USBメモリから起動することはできないので、そのあたりを変更しないといけない。

  1. 電源投入直後にF2キーを連打。ビープ音が鳴って、BIOS設定画面が表示される。
  2. カーソルキーの左右で、Security タブに移動。
  3. カーソルキーの上下で、Set Supervisor Password にカーソルを合わせて Enterキー。
  4. パスワードを設定。
  5. Secure Boot Configurstions にカーソルを合わせて Enter。
  6. Secure Boot Option にカーソルを合わせて Enter。Enabled を Disabled に変更。
  7. ESCを叩いて一つ前に戻る。
  8. Exit に移って、Exit Saving Changes を選んで Enter。設定を保存して、再起動がかかる。

この状態にすれば、電源投入直後に F12キーを連打してブートメニューを表示して、USBメモリを選んでブートできた。ちなみに、ブートメニューの中から Windows Boot Manager を選べば、今まで通り Windows が起動する。

一度設定してしまえば、BIOSのパスワードを空に再設定しても、件の設定は保持される模様。

余談。他のメーカ製PCのキー割り当ては以下でまとめられていた。ありがたや。

_Ubuntu Desktop 22.04 LTSのインストールガイド - あの角を曲がれば、かぼしー

Ubuntuをインストール。 :

USBメモリから Ubuntu を起動。インストールの手順は、いつもの Ubuntuインストールのソレ。今回、ストレージにはWindowsが入っていて、かつ、Ubuntu をインストールできるだけの空き領域があるので、途中で「Ubuntu を Windows Boot Managerとは別にインストール」という項目が表示された。その項目を選んで作業を進めた。

インストールが終わると再起動を求められる。再起動する直前に、「ブートメディアを外してEnterキーを叩け」と英文で指示される。USBメモリを抜いてからEnterキーを叩くと再起動がかかって、Ubuntu が起動した。

grubメニューが表示されない。 :

デフォルトでは、電源投入直後のgrubメニューが表示されない設定になっているけれど…。/etc/default/grub ファイルを修正して、メニューを表示するように設定して、sudo update-grub で反映させたはずが、再起動をしてもgrubメニューが表示されない…。

GRUB_DEFAULT=0

# GRUB_TIMEOUT_STYLE=hidden

GRUB_TIMEOUT=4
GRUB_DISABLE_OS_PROBER=false

GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="noquiet nosplash"
GRUB_CMDLINE_LINUX=""

GRUB_CMDLINE_LINUX_DEFAULT="noquiet nosplash" の指定は利いていて、起動時にメッセージがずらずらと表示される状態になっているから、grub が起動していないわけではなさそうなのだけど。

他のPCの grub設定ファイルを確認して反映させたりしてみたのだけど、どうしてもgrubメニューが表示されない…。何故。こんな事例は初めて目にした。

ひょっとすると、富士通製のPCは起動直後のgrubメニューが表示できない仕様になっているのだろうか…。FUJITSUのロゴが最初に表示されたりするし…。グラフィック描画用のアレコレを、FUJITSUロゴ表示用のプログラムが奪ってしまって、grubメニューが表示されないとか…?

でも、USBメモリからUbuntuを起動したときは grubメニューが表示されたのだけどな…。なんでだろ…。

まあ、Windows 8.1 はサポート期間が終了しているので、Ubuntu が真っ先に立ち上がってくる状態のほうがいいか…。カーネルがアレだった時に、一つ前のカーネルをgrubメニューから選んで起動できないあたりは怖いけど…。

ちなみに、Windowsを起動したい時は、前述したとおり電源投入直後からF12キーを連打してブートメニューを出して「Windows Boot Manager」を選ぶ。あるいは、Windows が最初に起動する状態にしたいなら、F2キーでBIOS設定画面に入って起動順を変更すればいい。

パッケージをインストール。 :

ノートPCのキーボードやタッチパネルで作業するのはツラいので、メインPCから ssh でログインして作業したい。以下をインストール。
sudo apt install openssh-server

メインPC (Windows10機) のDOS窓から、ping (Ubuntu機のマシン名).local と打って反応が返ってくることを確認後、今回は MobaXterm 22.0 Build 4858 を使って ssh でログインして作業を進めた。

他に以下もインストール。
sudo apt install aptitude byobu vim neofetch net-tools fcitx-mozc
  • aptitude : apt のラッパー。こっちのほうが慣れてるので。
  • byobu : CUI で複数のターミナルを利用できる。
  • vim : 有名なエディタ。
  • neofetch : OS種類その他をCUIで表示してくれる。
  • net-tools : ネットワーク関係のツール。昔使ってた ifconfig 等が入ってる。ただ、今は ip というツールで代替できる。
  • fcitx-mozc : IMEの類。IBus より慣れてるので…。

Ubuntu 22.04 用の日本語環境もインストール。

_Ubuntuの日本語環境 | Ubuntu Japanese Team
sudo wget https://www.ubuntulinux.jp/ubuntu-jp-ppa-keyring.gpg -P /etc/apt/trusted.gpg.d/
sudo wget https://www.ubuntulinux.jp/ubuntu-ja-archive-keyring.gpg -P /etc/apt/trusted.gpg.d/
sudo wget https://www.ubuntulinux.jp/sources.list.d/jammy.list -O /etc/apt/sources.list.d/ubuntu-ja.list
sudo apt update
sudo apt upgrade
sudo apt install ubuntu-defaults-ja

Xubuntu のほうが慣れてるので、そのあたりもインストール。
sudo apt install xubuntu-desktop
途中で gdm3 と lightdm を選ぶ画面が出てくるけれど、lightdm を選択。gdm3 はタッチパッドをタップしてもクリックになってくれないあたりが不便だったので…。

フォントもインストール。
sudo apt install fonts-ricty-diminished fonts-droid-fallback fonts-mplus fonts-migmix fonts-umeplus fonts-horai-umefont fonts-monapo fonts-mmcedar fonts-motoya-l-maruberi fonts-motoya-l-cedar fonts-ipafont fonts-ipaexfont fonts-takao fonts-ipafont-gothic fonts-ipafont-mincho fonts-takao-gothic fonts-takao-mincho fonts-takao-pgothic fonts-vlgothic xfonts-base xfonts-scalable xfonts-kaname xfonts-100dpi xfonts-100dpi-transcoded xfonts-75dpi xfonts-75dpi-transcoded xfonts-intl-japanese xfonts-intl-japanese-big xfonts-mplus xfonts-naga10 xfonts-shinonome unifont unifont-bin emacs-intl-fonts
sudo apt install ttf-mscorefonts-installer

2022/01/14(金) [n年前の日記]

#1 [nitijyou] 反射材タスキでベストを作った

夕方の犬の散歩中、服に反射材の類をつけたほうが良さそうだなと思えてきて、ここ最近はダイソーで買った反射タスキなるものをつけているのだけど。タスキなので、うっかりするとずり落ちてしまう。どうにかしたい。

道路工事をしている人達はベストっぽい形の反射材をつけていることを思い出して、ホームセンターでその手の商品を探してみたものの、どれも1,000円以上するのでなんだかアレだなと。

他に手はないのかなと関連情報をググっていたら、100円ショップで購入できる反射タスキを利用してベストっぽい形のモノを自作している事例もあるようで。気になる。自分も試してみたい。

ということで、ダイソーで反射タスキ(140cm、着脱に便利なワンタッチテープ付き、と書いてある)を3つ購入して、自作に挑戦。普段外出時に着ている服に巻き付けて、長さや位置を調整して、両面テープで仮止めしてから、針と糸で仮固定。ベルト部分にはマジックテープをつけて開け閉めできるようにしてみた。

できればミシンを使って、もうちょっと縫い付けていきたい…。このままでは強度というか耐久性が…。

接着が面倒。 :

くっつけるのがとにかく面倒なので、瞬間接着剤を使えないかと思ったけれど、瞬間接着剤の注意事項を読むと、綿やポリエステルのような染み込む系の素材で使うと100度近い温度になると書いてあった。今回は使えないな…。

_困ったときのQ&A | 瞬間接着剤はアロンアルフア[東亞合成株式会社]

両面テープは、布にも使える強力タイプ、なるものを使ってみたけど、これもすぐに剥がれてしまう。

ホッチキスはダメかな…。でも、芯を打ち込んだ後、芯の端っこが万が一起き上がってしまったら、手をひっかけて血だらけになったり、服に引っかけてビリビリに破けたりして危ないかもしれない…。

2021/01/14(木) [n年前の日記]

#1 [nitijyou] 電動自転車のバッテリーの交換作業を注文(?)した

ウチで使ってる電動自転車は、SANYO CY-SPA226A。バッテリーとして、元々ついていた SANYO CY-EB60 (灰色ケース)と、後から購入した Panasonic NKY378B02 (黒色ケース)の2つを用意してあるのだけど。

ここ最近、CY-BE60 のバッテリーがかなり弱まっていて。気温が寒いせいもあるだろうけど、近所の阿武隈川沿いを半周しただけでバッテリーが切れてしまう。しかも切れ方もおかしくて、残り容量4(MAX) → 3 → 0(LED点滅)という感じで切れてしまう。

新品が手に入らないかとググってみても、そんなものは、もはや市場には存在せず。

というわけで、親父さんが、バッテリーの中身について交換作業をしてくれる業者さんに、CY-BE60 を送って交換してもらうことになった。とメモ。

ググったところ、件の型番のバッテリーについても交換作業をしますよと謳っている業者さんは、二社しか見つからなかった。

電動自転車のバッテリー規格を統一してくれないものか。 :

電動自転車はバッテリーが死んだら使い物にならないので、バッテリーが入手できない状況は非常に困る。メーカーとしては電動自転車ごと廃棄して新しい製品を買ってくれ、そのほうが儲かるわい、とでも思っているのだろうけど、まだ電動自転車側は、バッテリーさえあれば動くわけで…。

単三電池等のように、電動自転車のバッテリーも規格を決めて売ってくれればいいのになと。

てなことを思いながらふとググってみたら、どうやら YAMAHA、あるいは Panasonic の電動自転車なら、そのメーカー内の製品についてはバッテリーに互換性があったりもするらしい。そりゃそうか。自転車本体が新しくなるたびにバッテリーまで設計し直してたらバカバカしいよな…。

と思いきや、SANYO の電動自転車は、自転車の型番毎に異なるバッテリーを載せていて、互換性を一切持たせてなかったそうで。そんなことをしてたから潰れてしまったのでは…。

このあたり、いっそ中国あたりで電動自転車用のバッテリー規格を決めてしまって、世界を席巻してくれないものか…。もう日本メーカには期待できないし…。

ていうか日本国内で電動自転車作ってる会社は、2社しかないような…。ブリジストンはYAMAHAのOEM、という話も見かけたし…。

#2 [nitijyou] 歯医者に行ってきた

近所のS歯科まで徒歩で。PM02:15-02:25まで治療。

正月頃から左上の奥歯周辺に痛みがあることを伝えたら、「虫歯がありますね」とのことで。なんてこった…。何かの器具でカンカン叩いても痛みはないので「様子を見ますか」と言われたけれど、虫歯が自然治癒するはずもなく。治療する方向で予約を入れてきた。

神経を取るレベルまで進行してたらどうしよう。あの手のシンドイ治療をまた受けないといかんのか…。でも、放置するわけにもいかんし…。気が重い…。かなり憂鬱…。

2020/01/14(火) [n年前の日記]

#1 [cg_tools] Pixelorama 0.6.1を試用

ドットエディタ Pixelorama の新版、0.6.1 が公開されたので試用してみたり。

_Pixelorama | Orama Interactive

ざっと触った感じでは…。
スポイト機能への機能追加は、大変ありがたいなと…。これで、右ボタンにスポイト機能を割り当てて、左ボタン側に色を取得する指定をすれば、キャンバス上で右クリックして色を取得 → 即座に左クリックでドット打ち、という流れで作業ができる。ドット打ちがとても快適になった。

今回の機能追加で、ひたすらクリックしてドット打ちをする感じの作業であれば、フツーに使えるツールになったような気がする…。

2019/01/14(月) [n年前の日記]

#1 [cg_tools] Inkscapeでまだテクスチャを描いてる

Inkscapeを使って、MZ-700のペーパークラフトのテクスチャ部分をまだ描いているところ。

キーボードの部分がとにかく面倒臭い。写真を撮影してそのまま貼り付けてしまおうか。でも、押し入れから実機を発掘して撮影するのも面倒臭いし…。

2018/01/14() [n年前の日記]

#1 [gimp][windows] GIMP 2.8.22 Portableのfontconfigについて調べたり

自分が画像編集・作成をする際は、Windows10 x64 上で GIMP 2.8.22 Portable を使って作業を行っているのだけど。どうも時々、起動直後にフォント検索で待たされてしまう場面があるので、どういう状態になってるのか、解決策がないか少し調べたり。

まず、前提として。GIMP や Inkscape は、OSが持ってるフォント種類の情報を、C:\Users\ユーザ名\AppData\Local\ 以下の fontconfig フォルダにキャッシュの形で残すようで。初回起動時はフォント検索で時間がかかるけど、その後の起動ではフォント検索が早く済むのは、fontconfig フォルダ内のキャッシュを参照してるから、だと思われる。

更に、GIMP Portable は以下のような動作をするようで。おそらく通常版のGIMPは、コレとは違う動作をするのだろうと思うけど…。

C:\Users\ユーザ名\AppData\Local\ に fontconfigフォルダが無い場合…。
  1. GIMP Portable を起動すると、フォントを検索して、C:\Users\ユーザ名\AppData\Local\ 以下に、fontconfig フォルダを作ってキャッシュを保存する。
  2. GIMP Portable を終了させると、C:\Users\ユーザ名\AppData\Local\ 以下の fontconfig フォルダは、GIMP Portableインストールフォルダ\Data\ 以下に移動されて、C:\Users\ユーザ名\AppData\Local\ 以下の fontconfig フォルダは消滅する。
  3. 次回、GIMP Portable を起動させると、GIMP Portableインストールフォルダ\Data\fontconfig が、C:\Users\ユーザ名\AppData\Local\ 以下に移動されて、GIMP Portableインストールフォルダ\Data\以下の fontconfigフォルダは消滅する。
つまり、一度 fontconfigフォルダが作られると、GIMP Portable の起動・終了をするたびに、 この2つのフォルダの間を、fontconfigフォルダが行ったり来たりするようで。

C:\Users\USERNAME\AppData\Local\GIMP Portable install dir\Data\
GIMP runnigfontconfig(none)
GIMP not runnig(none)fontconfig

ただ、GIMP ではなく Inkscape を起動して、C:\Users\ユーザ名\AppData\Local\ 以下に fontconfig フォルダが作られる場合がある。その場合、Inkscape を終了しても、fontconfig がそのまま残った状態になる。

この状態で GIMP Portable を起動すると…。
  1. GIMP Portable は、C:\Users\ユーザ名\AppData\Local\fontconfig を fontconfig.BackupByGIMPPortable にリネームする。これで、GIMP以外のアプリが作ってしまった fontconfig をバックアップしてる、のだと思う。
  2. GIMP Portableインストールフォルダ\Data\fontconfig が、C:\Users\ユーザ名\AppData\Local\fontconfig に移動される。
  3. GIMP Portable を終了すると、C:\Users\ユーザ名\AppData\Local\fontconfig は GIMP Portableインストールフォルダ\Data\fontconfig に移動されて、fontconfig.BackupByGIMPPortable は fontconfig にリネームされる。
こういう動作になってることで、GIMP Portable は、GIMP以外のアプリが作った fontconfig を破壊したりしないし、GIMP Portable が作った fontconfig は GIMPが起動した時だけ C:\Users\ユーザ名\AppData\Local\ 以下に書き戻されて読みだされるようになっている。

一応、GIMP Portable 2.8.20 と GIMP Portable 2.8.22 で動作確認したけれど、上記のような動作になっているようで。この状態なら、起動するたびにフォント検索が走ったりはしない。

疑問点。 :

ところで。GIMP起動中に、Inkscape を起動したらどうなるだろう…?

C:\Users\ユーザ名\AppData\Local\ の fontconfig はGIMP用だから、Inkscape は、その fontconfig を使えない。だから、Inkscape は fontconfig を作り直す。fontconfig の中には、Inkscape用の fontconfig 情報が保存される。

Inkscape を終了しても、Inkscape用の fontconfig は残ったまま。

この状態で GIMP を終了すると…。fontconfig は GIMP Portableインストールフォルダ\Data\fontconfig に移動されるけど、その中には Inkscape用の fontconfig も含まれてる。

GIMP Portable を起動する。fontconfig が移動される。中には GIMP で使えない fontconfig が含まれているから、GIMP はフォント検索を始める…。

と予想したのだけど。試してみたところ、たしかに fontconfig内に Inkscape用の fontconfig も含まれてしまったけれど、GIMP 2.8.22 はフォントの再検索はしなかった。

逆に、Inkscape を実行中の状態で、GIMP Portable を起動すると、どんな結果になるだろう…? さあ、皆で考えよう!

何にせよ、Windows上で GIMP と Inkscape は同時に起動しないほうがよさそうだなと…。

たぶんこのあたり、Linux上では、fontconfig は共通・同一バージョンが使われていて問題にならないのではないかと。Windowsは、各アプリに同梱されてる fontconfig のバージョンがアプリ毎に違うのに、同じ場所にキャッシュを作ろうとしてしまうから、問題が起きるのだろう。

キャッシュファイルの中に、「〜.NEW」があると、フォント検索が行われる、という話もどこかで見かけた。であれば、何かの拍子に .NEW が作成されて、そのキャッシュファイルがずっと残った状態になっていたりすると、起動するたびにフォントの再検索がされてしまう状態に陥る、ということなのかもしれない。

通常版のGIMP 2.8.22はこのあたり不具合があるらしい。 :

GIMP Portable ではなく、通常版の GIMP 2.8.22 の場合、このあたりで不具合があるらしい。なんでも、起動直後に毎回必ずフォントを検索してしまう状態に陥る時があるのだとか。

_Bug 782676 - Ship with current fontconfig version to avoid fontconfig cache issues

GIMP 2.8.20 と GIMP 2.8.22 は利用してる fontconfig のバージョンが違うので、GIMP 2.8.20 の fontconfig が残っていると 2.8.22 では使えないからフォントの再検索が、云々と書いてあるような…?

ふと、親父さんPC(Windows10 x64)上の GIMP 2.8.22 が、起動時に毎回フォント検索をしていたことを思い出した。試しに fontconfig を削除してから GIMP 2.8.22 を起動してみたところ、次からの起動時はフォントの再検索をしない状態になった。つまり、何故か毎回フォント検索されてしまう場合は、試しに fontconfigフォルダを削除して様子を見てみるのもアリ、ということかな…。

2017/01/14() [n年前の日記]

#1 [blender] blenderで3点照明を勉強中

3DCGのライティング設定をする際、基本となる照明の当て方として3点照明なるものがあるらしい。別に3DCGに限った話じゃなくて、スタジオでの写真撮影その他における基礎知識らしいけど。メイン照明のキーライト、陰になった部分をうっすらと照らすフィルライト、輪郭を際立たせるバックライトの3つを設置するとかなんとか。

ということで関連ページをググりながらblender上で試してみたのだけど、標準レンダラー利用時にランプの種類を何にすればいいのかよく分からず。ポイントランプやスポットランプでは光源がオブジェクトに写ってしまうし、ヘミランプでは全体的に明るくなりすぎる…。

色々ググってるうちに分かってきた。各ランプのスペキュラーを無効にすればオブジェクトの表面で光源が主張しなくなるようで。コレなら、ポイントランプを使ってもオブジェクトの照らされ具合を調整できるようになった。

2016/01/14(木) [n年前の日記]

#1 [dxruby][dxrubyws] DXRubyWSのウインドウの中で60FPSのゲームを動かしたい

要するに、 _DXRubyWS/sample/rubima.rb のようなことをしてみたいのです。どういう仕組みで、ウインドウ内にゲーム画面を表示できているのだろう…。

眺めているうちに、なんとなく分かってきた。もしかすると、こういうことかな…。
rubima.rb を改造して、少しだけ短めのサンプルソースにしてみたり。

_game_and_info.rb
# DXRubyWSのウインドウ内に、60FPSで動くゲーム画面を表示してみるテスト
# sample/rubima.rb を参考に作成

require 'dxruby'
require_relative 'lib/dxrubyws'
require_relative 'lib/standardgui'

# ----------------------------------------
# ゲーム画面用クラス
# ゲーム画面内で画像がバウンドするだけの処理
class GameMain

  attr_accessor :width, :height, :image

  # 初期化
  def initialize
    @x, @y = 100, 100
    @dx, @dy = 8, 4

    @width = 360
    @height = 480

    @image = Image.new(64, 64, C_WHITE)
  end

  # 更新
  def update

    # 座標に速度を加算
    @x += @dx
    @y += @dy

    # 画面外に出そうなら速度の向きを反転させる
    @dx *= -1 if (@x <= 0 and @dx < 0) or ((@x + @image.width) >= @width and @dx > 0)
    @dy *= -1 if (@y <= 0 and @dy < 0) or ((@y + @image.height) >= @height and @dy > 0)
  end

  # 描画
  def draw
    # グローバルなRenderTargetに対して描画してる
    $rt.draw(@x, @y, @image)
  end
end

# ----------------------------------------
# ウインドウシステム用のクラス定義
module WS

  # ----------------------------------------
  # ゲーム画面が表示されるウインドウ
  class GameWindow < WSWindow

    def initialize(*args)
      super
    end

    # サイズ変更されたら再描画
    def resize(*args)
      super
      self.client.image.draw(0, 0, $rt)

      # ゲーム画面サイズも変更しておく
      $gamemain.width = self.width
      $gamemain.height = self.height - 32
    end

    # 描画
    def draw
      super
    end
  end

  # ----------------------------------------
  # ゲーム画面ではないほうのウインドウ
  class DetailWindow < WSWindow

    def initialize(*args)
      super

      # ラベル生成と登録
      x, y, w, h = 8, 8, 100, 16
      @label = WSLabel.new(x, y, w, h, "TEST")
      self.client.add_control(@label)

      # ボタン生成と登録
      x, y, w, h = 8, 32, 150, 20
      button = WSButton.new(x, y, w, h, "画像読み込み")
      self.client.add_control(button)

      # ボタンが押された時の処理を登録
      button.add_handler(:click, self.method(:on_click))

      @count = 0
    end

    # 状態更新
    def update
      # カウントアップをラベルで表示してみる
      @label.caption = @count.to_s
      @count += 1
      super
    end

    # ボタンが押された時の処理
    def on_click(obj, tx, ty)
      # ファイル選択ダイアログを開く
      filter = [
        ["PNGファイル(*.png)", "*.png"],
        ["すべてのファイル(*.*)", "*.*"],
      ]
      filepath = Window.openFilename(filter, "画像ファイルを選択")
      if filepath
        # ゲーム画面用クラスの画像を差し替える
        $gamemain.image = Image.load(filepath)
      end
    end
  end
end


# ----------------------------------------
# ここから、ゲームのメイン処理

font = Font.new(24) # フォント生成

Window.width, Window.height = 800, 600 # 画面サイズ変更

# ゲーム画面を描画するための RenderTarget を生成して
# グローバル変数に入れておく
$rt = RenderTarget.new(360, 480, [0, 0, 0])

# ゲーム画面クラスを生成
$gamemain = GameMain.new()

# ゲーム画面用ウインドウを生成して画面に登録
gamewindow = WS::GameWindow.new(50,100,360,480)
WS::desktop.add_control(gamewindow, :gamewindow)

# ゲーム画面ではないウインドウを生成して画面に登録
detailwindow = WS::DetailWindow.new(450,100,200,200)
WS::desktop.add_control(detailwindow, :detailwindow)

# メインループ
Window.loop do
  break if Input.key_push?(K_ESCAPE) # Esc キーで終了

  # ここでゲームの処理をする
  $gamemain.update
  $gamemain.draw

  # ここまで来れば、グローバルなRenderTargetに、
  # ゲーム画面の内容が描画されてるはず

  # ゲーム画面用ウインドウに、グローバルなRenderTargetの内容を描画する
  WS.desktop.gamewindow.client.image.draw(0, 0, $rt)

  WS.update # ここで WS.update を呼んでる

  # 各種情報を画面に出力
  s = "CPU : #{Window.get_load.to_i} %"
  Window.draw_font(0, 0, s, font, :z => 100)
end
game_and_info.gif
DXRubyWSのウインドウの中で、ゲーム画面っぽいものが動いてくれた。なるほど…こういう仕組みなのか…。

他のサンプルはどうなのだろうと思って、 _DXRubyWS/sample/rubima3.rb を眺めてみたら、こちらは GameWindowクラスの中身がもっと短くなっていた。drawメソッドの中で描画しちゃえば済むのか…。なるほど…。

こういうことができるなら、リアルタイムに何かを動かしながら調整していく感じのツールが作りやすいであろう予感。

#2 [dxruby][dxrubyws] ツールチップだかバルーン表示だかについて見え方を確認してみたり

DXRubyWSで画像ボタンを表示した際、ツールチップ表示? バルーン表示? まで実装されていて感心したのだけど、その表示位置がマウスカーソルと重なって文字列が一部読めなかったのが気になったのです。

このあたり、他のアプリやOSは、どうやって解決してるのだろう…。今まで全く気に留めたことがなかった…。てなわけで、いくつかのアプリの、そのあたりの見え方を確認してみたりして。

Excel 2003 の場合。
tooltip_ss_excel2003.png


Excel 2007 の場合。
tooltip_ss_excel2007.png

tooltip_ss_excel2007_2.png

Excel 2007 においては、なんだか凄いところに表示してるな…。ほとんど簡易ヘルプを表示してるようなものだから、通常のツールチップ表示の位置では問題があると判断して、作業領域内に表示するようにしたのだろうか?

Mozilla Thunderbird の場合。
tooltip_ss_thunderbird.png


Explorer の場合。
tooltip_ss_explorer_01.png

tooltip_ss_explorer_02.png

tooltip_ss_explorer_03.png

中には、ウインドウをはみ出して表示されてるものもある…。これを DXRubyWS で実現しようとすると面倒なことになりそうなので、DXRubyWS は、画面内に表示されるように補正する、といった処理が必要になるのだろうか。

さておき、それぞれをざっと見た感じ、どうもマウスカーソル画像の縦幅分ずらしたところに表示してる、というか、マウスカーソル画像に追随して表示位置を決めているような気がしてきたり。

ただ、表示位置をどうやって求めてるのかが今一つ不明。例えば以下のスクリーンショットを見ると…。縦位置はともかく、横位置は何を基準にして求めてるのか…。
tooltip_ss_explorer_04.png

tooltip_ss_explorer_05.png


待てよ? もし、マウスカーソル画像の縦幅分、ずらして表示してるとしたら…。例えば大きいマウスカーソル画像を使ってる場合は、ツールチップがマウスカーソルで隠れてしまうのだろうか?

大きいマウスカーソルに変更して確認してみたり。

tooltip_ss_larecursor_01.png

tooltip_ss_larecursor_02.png

tooltip_ss_larecursor_03.png

tooltip_ss_larecursor_04.png

どうやらマウスカーソル画像の縦幅を、その都度取得して、縦位置を決めているっぽい。

今まで気にしてなかったけど、巷のソレは、こういう仕様になってたのか…。

ツールチップとバルーンって何が違うんだろう。 :

画像ボタンの上にマウスカーソルを合わせると表示されるソレって、何と呼ぶのだろう。ツールチップ、でいいのかな。ツールヒント、と呼ぶのかな。バルーン、ではないよな。

そのあたりの違いがよくわからなくてググってたら、気になる記事に遭遇。

_中小W: 深夜、家に帰る途中のWebディレクター: それはバルーンヘルプなのか?ツールチップなのか?

ツールチップは Microsoftの発明で、バルーンはAppleの発明だったのか…。

#3 [pc] A8-3850機でWinodws10が起動するか実験した

A8-3850機に、親父さんPCのSSDをクローンしたHDD、を、eSATAで接続して、Windows10 x64が起動するかどうか実験してみたり。ちなみに、LANケーブル等は差してない状態で確認した。

起動時に、例の青いWindowsマークと共に、「デバイスの準備をしています」と表示されて…。その後しばらく経ったら起動してくれた。M/Bが違っても、起動してくれるのか…。素晴らしい。であれば、親父さんPCのM/B交換をしても、OS再インストールまでせずに済むかもしれない。

ただ、ライセンス認証・再アクティベーションは、やはり必要なようで。システム情報を確認したら「ライセンス認証が必要です。インターネットに接続してください」と表示されていた。「これは今までと違うハードウェアだろ?」と、しっかり認識されてる模様。

#4 [windows] Windows7 x64上で Excel 2003 が終了できなくなっていた

Excel 2003上で作成された.xlsが外部から送られてきた際、見た目のみを確認するため、一応まだ、Excel 2003をWindows7 x64上にインストールしてあるのだけど。 *1

ふと、たまたま Excel 2003 を起動して見た目を確認していたら、閉じるボタンを押しても終了できなくなっていることに気が付いた。ファイル → 終了も、グレーアウトしている。何だコレ。

ググってみたら、どうやら Visual Studio が絡んでるらしい。

_【解決】Microsoft Office Excel 2000 2003 終了時にエラーが発生する。(Visual Studio ) | 吉田Style-MindShare-

そんな罠があるのか…。
*1: 常用してる表計算ソフトは LibreOffice Calc だし、Excel を使わないといけない場合でも Excel 2007 を使っているのだけど。Excel はバージョンによって、.xls の「見た目」が異なるので、過去のバージョンをなくすわけにはいかないという…。

#5 [pc][neta] hjklに矢印が印刷されてるキーボードってないのだろうか

前にも書いたかもしれないけど、Vimユーザの専用キーボードとして、hjklに矢印が印刷されてるキーボードを発売したら微妙なヒット商品に…。ならないか。ならないよな。ならないですね。

先輩プログラマー(以下、先輩)「どうだい? Vimの操作には慣れたかな?」
新人プログラマー(以下、新人)「いやー、これがなかなか…。特にhjklでカーソル移動がツラくて」
先輩「そうかー。じゃあ、このキーボードを貸してあげよう」
新人「?! な、な、なんスかコレ! hjklに矢印が印字されてる! こんなキーボードがあるんスか!?」

尊敬のまなざしゲット、ですよ。

ていうか、キーボードの各キーにペタペタ貼れるシール、みたいな商品って無いのかな。

以前、耐水シールっぽい用紙にプリントアウトしてキーに貼って試したことがあるけど、キーのサイズに合わせてテンプレート作るあたりが、地味に面倒くさいんだよな…。

viのカーソル移動について。 :


2015/01/14(水) [n年前の日記]

#1 [prog] 某ゲームのCDを発掘

ベルトスクロールアクションゲームのキャラの大きさを確認したくて、MEGA-CD版ファイナルファイトを部屋の中から発掘。ファイナルファイトCD、というタイトル。

記憶の中ではキャラがめちゃくちゃ大きい印象だったのだけど、実際に確認してみたら、これが意外と小さい。この程度のサイズだったのか…。これも脳内美化なんだろうか。

それにしても、このタイトル、たったの64色でよくまあここまで再現したもんだなと…。4パレットしかないはずなのに…。

MEGA-CDの実機をダンボール箱の中から発掘するのは大変だし、画面をキャプチャするのも一苦労なので、Kega Fusion というエミュレータで動作確認してみたり。CD-ROMも一々取り出すのが大変なので、イメージファイル化。しかし動かしてみたら音楽がちゃんとループしてくれない。それと、スプライトの点滅が再現できなくて。実機を出さないとダメかな…。

全然関係ないけど、BDドライブにCD-ROMを入れると PowerDVD 11 が自動起動するので鬱陶しい。設定で自動起動を無効にできないものかと。

2015/01/16追記。 :


2014/01/14(火) [n年前の日記]

#1 [dxruby] DXRubyのWindow.drawMorph()について調べてるところ

どういう機能かよく分かってないので確認作業を。

以下のような表示ができるらしい。
Window.drawMorphの描画結果

_drawmorph_simple_test1.rb
# Window.drawMorph の描画テスト

require 'dxruby'

# グリッド画像を生成
def get_grid_image(w, h)
  img = Image.new(w, h, [64, 128, 255])
  dt = [[10, 8, C_BLUE], [5, 4, C_WHITE]]
  dt.each do |d|
    d[0].times do |i|
      x = (w / d[1]) * i
      img.line(x, 0, x, h, d[2])
      img.line(0, x, w, x, d[2])
    end
  end
  img.line(w - 1, 0, w - 1, h, dt[1][2])
  img.line(0, h - 1, w, h - 1, dt[1][2])
  return img
end

img = get_grid_image(64, 64)

Window.loop do
  break if Input.keyPush?(K_ESCAPE)

  # 元画像を描画
  Window.draw(Window.width - img.width - 8, 2, img)

  # ただの真四角として描画
  w = 200
  d = 70
  x, y = 10, 10
  Window.drawMorph(x, y, x + w, y, x + w, y + w, x, y + w,
                   img)

  # 台形に変形して描画
  x, y = 220, 10
  Window.drawMorph(x + d, y, x + w - d, y, x + w, y + w, x, y + w,
                   img)

  # 台形に変形して描画。分割数を変更
  x, y = 10, 240
  Window.drawMorph(x + d, y, x + w - d, y, x + w, y + w, x, y + w,
                   img, :dividex => 2, :dividey => 2)

  # 台形に変形して描画。分割数を変更
  x, y = 220, 240
  Window.drawMorph(x + d, y, x + w - d, y, x + w, y + w, x, y + w,
                   img, :dividex => 4, :dividey => 4)
end
実際に描画してみて、以下のことが分かった。
テクスチャが歪む理由については、以下が参考になりそう。

_The Realm of Revery
_MascotCapsule Developer Network - 日本語 - WIPI - サンプル - WIPI + MascotCapsule V3 API - テクスチャの歪み軽減

さて、これを使って床ラスタースクロールっぽいことができるかどうか…?

気になるのは、遠近感がついてない点。元画像の縦方向に、あらかじめ遠近感をつけておけば、それらしくなるかもしれないけど。できれば、遠近感もプログラム側でつけてみたい。

遠近感をつける方法を検討する。 :

四角形の4点が指定されたとして、下のような分割方法ができれば、遠近感をつけることもできそうだなと。
遠近感をつけて分割する方法の試案

分かりづらいので、GIFアニメも用意してみたり。
遠近感をつけて分割する方法の試案(GIFアニメ版)

このあたり考えてるうちに、なんだか、学生時代に読んだ、建築パースの本を思い出してしまったり…。電子科に通ってたけど、建築科がある大学だった上に、自分は漫研に入ってたので、図書館で建築パースの描き方本を見て「ふむふむなるほど。こうやって漫画の背景を描けばいいのか」とかやってましたです。…今はそういう情報も、ネットで調べられるから便利な時代になりましたな。

さておき。2つの線分の交点を求めることさえできれば、次々に交点を求めて、遠近感のついた分割ができそうな予感。ググったところ、外積を使えば交点を求めることもできるらしくて。

_4点からなる交点の求め方 | 水玉製作所
_4点からなる交点の求め方 画像処理ソリューション

ただ、線分が平行だった場合にどうすればいいのか…。
線分が平行だと困る
黄色い線を求めたいわけだけど…。さて、どうすれば。

なんだかこのあたり、PS(プレイステーション1)やSS(セガサターン)の時代に、色々な技が駆使されてたような気がするのだけど。検索キーワードが思い出せず…。

射影変換を使えないかな。 :

色々ググってたら、射影変換だかホモグラフィだかのデモページに遭遇して。もしかしてそっち使ったほうがいいのかなと。例えば以下のデモページを眺めると…。

_重なる気持ち -台形補正- | _level0 | Kayac Front End Engineer's Blog

赤い四角を正方形に整えて、青い四角を台形っぽくすれば、赤い四角の中のマウスカーソル位置が、青い四角の中で表示されるわけで。つまり、元画像のこのあたり、を指定すると、変形後の四角ではこのあたり、になって返ってくるよなと。その、返ってきた値を使って、分割していけば、と。

そもそもShaderを使うべきかも。 :

_XEXEXのステージ1の背景 っぽいソレを、Window.drawMorph を使ってできないかなと思って調べてたけど。ああいった見せ方であれば、Shader を使ったほうがいいのかなと思えてきたり。

DXRuby開発版の、サンプルの中の、shader_sample\sample_spehari.rb を動かしたら、それっぽいことができそうな気がしてきたわけで…。

#2 [emacs] emacsのre-builderでちょっとハマった

emacs の re-builder を使えば、正規表現がちゃんと書けてるか、見た目で分かりやすくなるのだけど。\(...\) を記述する際にちょっとハマった。

emacs 上では、\(...\) のように、バックスラッシュが1つで済むのだけど。

re-builder 上では、\\(...\\) と書かないといかんらしい…。

_Emacsの正規表現編集モード re-builder とややこしいバックスラッシュ問題について。 - こせきの技術日記
_でらうま倶楽部 : Emacs re-builderで正規表現を「見える化」する
_re-builder で作った正規表現を query-replace-regexp に渡しても動作しない? - 刺身☆ブーメランのはてなダイアリー

C-c TAB、もしくは C-c C-i を叩いて、シンタックスモードを、デフォルトの read から string に変更すれば、emacs のソレと同様、バックスラッシュ1つで済む状態になるそうで。

一々変えるのは面倒臭いので、 ~/.emacs に、
(setq reb-re-syntax 'string)
と書いておきました。

こうしてメモしたけど、たぶんそのうち忘れる予感。

#3 [cg_tools] 新しいデフォルトカラー

_Colors を眺めて、綺麗だなと。デフォルトの16色に対して新しい定義を提案したい、みたいな話なのかなと。

せっかくだから、 _colors/hex.txt at master ・ mrmrs/colors をコピペして、GIMP or Inkscape用のパレットファイルも作ってみたり。一応置いときますね。

_new_defaults_colors.gpl.txt

new_defaults_colors.gpl.txt を、new_defaults_colors.gpl にリネームして、GIMPのユーザフォルダ\palettes\ 以下に置くなりしてみてください。…いや、GIMPってパレットのインポートもできるんだっけか。そのへんよく分からなかったり。

2013/01/14(月) [n年前の日記]

#1 [nitijyou] 結構雪が積もってきた

物置までサンダルで歩けそうにないぐらいに積もった感じ。

#2 [dtm] FL STudioを弄ってたり

FL Studio でサイドチェインとやらをする手順を試したり。サイドチェインというのは…あるチャンネル(?)の音量を元にして、別のチャンネルの音量だのPanだのアレコレを変化させることができる機能、という解釈でいいのだろうか。自信無いけど。

_FL Studioを使った手探りのDTM Fruity Peak Controllerの使い方(その1)
_FL StudioのPeak Controllerでサイドチェインコンプする方法: FL Studioファンクラブ
_FL Studio 8.5の新機能 Sidechainについて: FL Studioファンクラブ
_サイドチェインのやり方|杉本涼のブログ 音楽・作曲
_FL-chanがささやいてる サイドチェイン考察

とりあえず、2つのやり方があるらしい。 前者は参考ページ通りに作業していったらすんなりできたのだけど。後者で少しハマったり。Mixer上でsendボリュームを0にすれば、サイドチェインの元になってる音を出さずに済むらしいのだけど。どれがsendボリュームなのか分からない…。

Insert1 等をクリックした際に、Master の下の方に出ている小さいボリュームが、Sendボリュームだったらしい。Insert1、Insert2 などをクリックしてから該当ボリュームの値を変更すると、各チャンネル?毎に別々のSendボリューム値を指定できる模様。

とりあえず手順をキャプチャしてメモしたり。以下は、Mixer上のサイドチェインを使う事例。

_mieki256 @ ウィキ - FL Studioでサイドチェインを使う手順のメモ

#3 [web] @wiki(アットウィキ)でmp3だのoggだのを再生するにはどうしたらいいんだろう

今時のブラウザなら、 _html5のaudioタグ を使えば mp3 か ogg を鳴らせるはず。と思ったのだけど。 _htmlを直接記述する書き方 で試してみても表示されず。どうやら@wikiは、audio タグをサポートしてないっぽい…。

一応、 _音声系プラグイン ってのがあるらしいのだけど…。

_mp3blestarプレイヤー表示(mp3blestar) を使ってみたものの、ページにアップロードしたmp3を指定しても再生されず。URL内に「&」等が入ってるのがマズいのだろうか…?

Dropbox の公開フォルダに mp3 を置いて試してみたけれど、それも鳴らない。もしかするとURLに https が含まれてるとダメなんだろうか…?

結局、@wiki に FTP でファイルをアップロードして、そちらのURLを指定して鳴らすことができた。が、アップロードしたファイルサイズが小さくなっていて、最後まで曲が鳴らない。FTPサーバとの接続が途中で切れてしまうのだろうか。それともファイルサイズ制限があるのか…。仕方ないので、ビットレートを下げてファイルサイズを小さくしてからアップロードしてみたり。

2012/01/14() [n年前の日記]

#1 [anime] ストップウォッチ関係のアレコレをメモ

アニメ関係のストップウォッチ(=24コマ/秒でカウント)って無いのかなと興味が湧いたので検索。

有名なアニメーターさん自身の作があったりして、なんだかビックリした。

_アニメ制作向けのストップウォッチ iTunesで無料公開 :

iPhone用。

_WariKen
WariKen はアニメーターやアニメ演出家のためのストップウォッチアプリケーションです。ストップウォッチのタイプは3種類あります。
1. 1周6秒
2. 1周12秒
3. 1周30秒
選択はiOSの[設定]アプリケーションで行えます。これらは全て1秒間に24コマの表示をします。

WariKen より

開始した後で、時計画面を押せば、ラップタイムの取得が出来ます。停止した後には、[<]、[>]ボタンで取得したラップタイムの履歴を最大1000個まで見ることが出来ます。

WariKen より

_App Store - JAniCA Watch 1/24秒計ストップウォッチ :

iPhone用。
1秒24コマ(30コマ選択可能)、1周で6秒を計測、アニメ制作に特化したストップウォッチです。

App Store - JAniCA Watch 1/24秒計ストップウォッチ より

_ねこまたや-アニメお道具箱 :

_StopWatch (ストップウオッチ(1))
ブラウザ上で使えるストップウォッチ。 Startを押してからLapを何度か押すと、Lapを押した時の時間が記録される。StopさせてからLogを押すと、記録が見れる。

_ちものと  24コマのストップウォッチ作ったよ。 :

_stopwatch_bl.swf
ブラウザ上でも使えるストップウォッチ。Flash製。Lap履歴は4つまで。

_bry-ful's Homepage | アニメ用ストップウォッチ SheetWatch :

アニメのタイムシート風のインターフェースのストップウォッチです。

bry-ful's Homepage | アニメ用ストップウォッチ SheetWatch より

Windows用。

_24コマ ストップウォッチ - Android Apps und Tests - AndroidPIT :

_カリキュラム勉強会道具 :

アニメーターがアナログタイプのストップウォッチを使う理由は1秒の半分、3分の1、4分の1(12コマ、8コマ、6コマ)というのが針の位置で視覚的にとらえられるからと、針の進みを見ながら動きの速さをイメージしやすいからです。

カリキュラム勉強会道具 より

そうなのか…。すると、アプリとして作る場合も、UIはアナログ風のほうがいいのかな?

_JAniCA Watch取扱説明書 :

なんとなく思ったが。 :

ログをテキストファイルで出力できれば、その出力ログから仮映像を作ることも自動でやれそうだが。しかし、ストップウォッチ内部でのみLAP履歴を参照できるものが目立つ気がした。これでは外部ツールと連携できない。

まあ、現場では仮映像を作ってもあまり役に立たなくて、そのあたり閉じているのかもしれないけれど。

#2 [ruby] ストップウォッチもどきをRuby+DXRubyで作成中

音楽に合わせてキーボードを押していくと、画像がパカパカ切り替わって、同時に、キーを押した時の時間を記録し続けて、その記録をファイル出力するアプリが作れないか。と思ったので、試しに Ruby + DXRuby で作成中。

一応、雛形というか、サンプルっぽいものは作れた。自分で言うのもなんだけど、使ってみると結構面白い。なんだか音ゲーに似ている。いや、音ゲーってほとんどプレイしたことないんだけど。たぶんこんな感じなんだろう。

しかし、公開するためには、サンプル画像とサンプル曲が必要だろう。そこで悩んでしまった。画像はGIMPでテキトーに作っていけばまだどうにかなるが、曲データが…。

アプリ自体の課題はいくつか残ってる。 :

  • 24コマ単位=24FPSで処理してるので、精度がとても怪しい。そもそも正確な24FPSになってるのか、そこからして怪しい。時間測定はフレーム数じゃなくてタイマーを使って取得したほうがいいかも。
  • AVI出力もしてみたいけど、RubyでAVI出力はできるのかどうか。最低限、連番画像を出力するぐらいなら、Ruby+DXRubyでもできそうだけど。DXRubyには、スクリーンショットを保存する機能があるので。
  • 動きの種類が少ない。
  • 画像を縦横スクロールさせる際に、画像サイズから表示位置や移動速度を計算して、ウインドウから画像がはみ出ないようにしたい。
そもそも、Ruby+DXRubyで作るべきではなかったのかもしれない。

でも、Ruby+DXRubyは、それっぽいものをサクッと作れるなと今回実感。1〜2時間でそれっぽいものが作れてしまうなんて素晴らしい。

2011/01/14(金) [n年前の日記]

#1 [prog] Excelでコピペ作業を延々としている最中

とりあえず送られてきた分については全部できた。

かなりの部分を省略することになっているようなので、本当はこんなに作業しなくても良かったのかもしれぬ。が、一度作業しておけば追加しろと言われた時も楽だろうし。どうせ特定のルールに従った状態に編集しておけば後はスクリプトで自動的に出力するだけだし。

2010/01/14(木) [n年前の日記]

#1 [nitijyou] 外出しようと準備を整えたら

横殴りの雪が降ってきた。なんでや。外出するのを諦めた。

日が落ちたら、雪がやんだ。もう店は閉まってますがな。

#2 [nitijyou] 雑誌のページをひたすらドキュメントスキャナで読み込み

段ボール箱 1/4 ほどの雑誌の切り抜き?ページを、Canon DR-150 でスキャンした。最初のうちはモアレ補正をONにしていたけど、試しにモアレ補正なしにしてスキャンしたら、スキャン速度が速いのなんの。300dpiぐらいあれば、例えば白黒漫画のようなものでも、そこそこの速度で、スクリーントーンもそれほど潰さずに、スキャンできるのだなと。

ただ、問題もいくつか。裏映りが酷い。もちろん、紙が厚いものであればそれほど気にならないけど、ちょっと薄い感じの紙だと悲惨なことに。一応、裏映り除去のオプションはあるものの、強度を強くすると、今度は本来の表面の模様その他が消失していく現象も。フラットベッドスキャナであれば、裏に黒い紙をあてがって、裏映りを防ぐこともある程度できるのだけど。スキャンするページ数が多い場合は現実的ではない。
  1. 蓋を開けて
  2. 原稿を置いて
  3. 原稿の位置を調整して
  4. 蓋を閉めて
  5. マウス操作をしてスキャンを実行して
  6. スキャナが読み終わるまで待って
  7. 蓋を開けて
  8. 原稿を取り出して
  9. 次の原稿を置いて
  10. 原稿の位置を調整して
なんてやってられない。これがドキュメントスキャナなら、
  1. 原稿を揃えてガイドに置いて
  2. スキャンボタンを押す
  3. 取り込み終了
だもの…。

それと、再生紙?を使って印刷されたような雑誌のページは、紙は変色してるし、インクはボツボツと紙に乗ってなかったりで、スキャンすると悲惨なことに。

まあ、こういうもんだと諦めるしかないのかも。情報が完全に消失するよりは、おぼろげにでも残ってるほうが、まだマシだろう。と思うしかないような気もする。

2009/01/14(水) [n年前の日記]

#1 [nitijyou] 歯医者に行ってきた

お袋さんに車で送ってもらった。

親知らずの抜歯部分は比較的良い状態らしい。何も問題は無さそう。ドライソケットにはなってなさそうとの話。もっとも、穴がふさがる・血餅が骨になるのは5〜6ヶ月ほどかかるとの話。

上の歯の歯石をとってもらったのだけど、歯茎が血だらけ。作業中も激痛を感じる場面が多々。歯茎が弱ってるから、と歯科衛生士?の方は言ってたけど、何か違う理由で血だらけになってるんじゃないのかという不安も。まあ、そもそも、歯石だらけの状態にしちゃってる自分に非があるからアレなんだけど。

以前から、上の前歯の左の歯が虫歯になってそうだなと思ってたのだけど。見てもらったら、やっぱり虫歯になってるらしく。これは詰めたほうがいいと言われた。ただ、今回は歯石取りで歯茎が血だらけ状態・弱ってしまってる状態なので、次回作業をしましょうとの話で。

帰りは徒歩。ドラッグストアに寄って、安売りしてたカロリーメイトやゼリー状の食べ物を購入。

#2 [iappli] テーブル作成中

ヘッダファイルにinclude指定する部分はPerlスクリプトを作成することで自動生成した。処理用の参照ファイルとして、ファイル名、リネーム後ファイル名、並べる順番、ファイルについての説明文(ソース中でコメント文になる)、を列挙したファイルを作成。

各ムービー(?)の順序や制御をするテーブルに関しては、作成方法で悩んでいたり。今まであちらでは、手打ちで直接数値を書いて作ってたらしいのだけど。今回自分がそれをやってしまうと、後でムービーの順番が変更されたときに、修正作業が大変なことになりそうだなと。また、各種制御データの数値を人間が記憶して記述していくのも実に大変そう。後でバグが見つかったり、あるいは修正が必要になった際、どの数値データがどういう制御をしているのか、とても把握しきれないであろう予感も。

なので。ムービーファイル名+「ループ」「再生終了」といった形で列挙する元ファイルを作成して、それをPerlスクリプトに渡して、数値データの形で変換出力するようにしたほうがいいのかもしれない、と考えていたり。キーボードを叩く量は激増するだろうけど、後から眺めても何をやってるかパッと見で判るし、ファイルの列挙順序が入れ替わっても即座に対応できるので、後々楽なのではないかと想像。

#3 [nitijyou][pc] 従兄宅の電話回線の線路情報を調べてみたり

郡山市の外れにある家なので、きっと伝送損失は最悪=ADSLなんか使えないだろう。と思っていたけれど。

_フレッツ・ADSL通信速度チェックコーナー|フレッツ公式|NTT東日本
_電話回線の線路情報

調べてみたら、どうやら近くに局があるらしく。線路距離長が1950m = 1.95km。伝送損失が21dB。予想外に良い状態。その程度の伝送損失なら、フレッツADSLモアIIIの場合、5〜15Mbpsの範囲で使えてるユーザがほとんどらしい。であれば、料金が高い Bフレッツ(光ファイバー)にするより、まずは料金が多少安い、フレッツADSLを導入したほうがいいのかもしれない。

や。よくよく考えてみると、フレッツADSLと、Bフレッツを比べた場合、料金1.5〜2倍で速度は10倍になるわけだから、料金的にもBフレッツのほうがお得なんじゃないのか、という感もあるのだけど。

2008/01/14(月) [n年前の日記]

#1 [web] _文豪ミキサー

「古今東西の名作小説を、形態素解析とマルコフ連鎖を使ってミックス」するらしい。素晴らしい。

これで和歌を作れないだろうか。<まだ言ってる。…五七五七七を判定するのが大変か。読みを判断しないといけないし。

ミックスする際に、目的と言うか、方向性を指定してミックスできたら使い道が広がりそう、てな妄想を。「ラブレターのように」とか「堅苦しく」とか「陰鬱に」とか「明るい気分で」とか。…どうやってそれが「陰鬱」か「明るい」かを判別すればいいのだろう。たぶん技術的に無理。

#2 [zatta] 「借景」ってのは中国発祥じゃないのだろうか

先日民放のチャンネルをつけてたら、CM映像で「日本が生んだ借景という文化」みたいなフレーズが流れていて。や、そういうフレーズだったかどうかは記憶が怪しいのだけど、とにかく、「借景というのは日本独自のものなんですよ」と受け取れそうなフレーズ・映像だったわけなんですが。それを見て、ちょっと考え込んでしまったり。

以前NHKで、中国の古い街を紹介する番組が流れてたんですが。その番組中で借景を取り入れためちゃ古い建造物が紹介されていたのです。室外の風景を窓から利用することで云々みたいな。

そこから想像するに、日本における借景の発想てのは、おそらく元々は中国から来たもんじゃねえのかなと。もちろん日本は島国なので、借景が日本国内で中国のソレとは結構異なるものになっていって独自性を得た可能性も高いかもとは思うんですが。にしても、まるで日本が生みだしたものであるかのように映像なり文献なりで紹介しちゃうのはちとマズイ気がするのでした。韓国じゃあるまいし。<オイ。

アレンジしまくったものに対するグッドな呼び方ってないものだろうか。 :

例えば日本独自の文化として「折り紙」てのがあるわけなんですが。折り紙自体の発祥は、紙を生み出した中国あたりだろうと。紙がなければ折り紙は作れないので、紙を生み出したところが一番最初にやってみせたと考えるのが自然でしょうと。ただ、日本のソレは、紙を折ることで立体物を作ってしまうとか、一般庶民に広く普及したという点が独特、てな話を聞いた記憶が。要は、他国とは異質な発展・変化・アレンジが生まれたところに評価ポイントがあるのだと。

「発祥云々についてはどうこう言えないのだが、とにかく類を見ない妙なアレンジ・独自性がそこにある」モノに対して使える便利な呼称はないものだろうかと。…や。そういうものを「オリジナル」と呼んでしまってもいいのでしょうかね、この場合。であれば、韓国が常日頃主張してるアレコレだって、「発祥」は言えないまでも「オリジナル」と呼んじゃってもいいよなぁ。

もしかして韓国のソレは、訳の問題なんだろうか。元々は「オリジナル」=「独自性」てな意味合いの言葉で書かれてたものを、誰かが間違って、あるいは意図的に、「発祥」と誤訳しちゃってるとか。実際どうなのかは知りませんが。

_借景という言葉は中国でできたそうですが :

気になってあちこち検索してみたけど、やはり発祥は中国らしい。が、地理的な問題もあって日本でも独自に発展したっぽい。つまりは折り紙みたいなものなのかしらん。わからんけど。

この記事へのツッコミ

Re: 「借景」ってのは中国発祥じゃないのだろうか by けいと    2008/01/20 23:47
まぁ、ものはいいようだと思いますが、
「折り紙」を文化にしたのは日本、
という整理でいいのかもしれませんよ。

折り紙をやるには紙が必要だ、
だから、紙を初めて作ったところが折り紙発祥の地だ、
っていうのはちょっと乱暴すぎるのでは。

それを言ってしまったら、
自動車も船も鉄道も、鉄やアルミなどの金属を初めて発見、精製した人が
元祖っていうことになっちゃいますし、
各国の料理なんて、動物が進化して人類になって
木の実か何かを初めて何かを食べた人が元祖っていうことになっちゃいますし…
Re: 「借景」ってのは中国発祥じゃないのだろうか by mieki256    2008/04/14 06:31
> 折り紙をやるには紙が必要だ、
> だから、紙を初めて作ったところが折り紙発祥の地だ、
> っていうのはちょっと乱暴すぎるのでは。

あ、そのへんは、
韓国が「折り紙の起源は日本じゃない。韓国だ」
と主張してることを踏まえてのアレでして…。

紙をただ折りたたんだだけのモノが朝鮮半島には昔からあるということで
そういう主張をしてる人達が居るらしいんですけど、
そういうレベルのブツを折り紙としちゃうのがアリだとしたら、
紙を発明した中国のほうがよほど前からそういうのあるし、
というレベルの話でして。

という補足でありました。

#3 [iappli][cg_tools] blenderを再度勉強中

地形表示仮データを作成するべく再度勉強中。

2007/01/14() [n年前の日記]

#1 [iappli] 午前中にバイナリを送った

Ver.0.0.11。主に画像差し替え。ケアレスミスをしたまま気づかなくて結構時間をとられてしまった。

2007/01/18追記。 :

ケアレスミスだけでは何がなんだか。なんだっけ。

思い出してきた。本来差し替えるべき画像ではなく、別の画像をうっかり差し替えてしまって、それで不具合が出てしまったのだった。リネームコピー時の、画像ファイル名管理のミスなのに、プログラムのミス・画像を表示する際に参照する並びデータが間違ってるものと思い込んでしまって、一生懸命そのあたりを作り直して。でもちっとも直らなくて。デバッカで追いかけて等々、時間をかけてしまったという。…元々のデータが正しいかどうかの検証をまずはすべきであったのだろうなぁ。

#2 [windows] デフラグソフト PerfectDisk 8 Pro をインストール

数日前にAmazonから届いていたけど、なんやかんやでインストールしてなかった。で、インストールしてデフラグ実行。HDDの中は凄いことになっていた。これで多少快適になればいいけど。

#3 [pc] xxドライブのファームウェア書き換えってFreeDOSでできるのかな

DSR-600H のファームウェア書き換えツールのドキュメントを読んだら、「Win95/98 あたりの DOS起動ディスクを作って作業しろ」と書いてあった。…今時そんなもんねえよ。どのPCからも消しちゃったし。NT系Windowsを最初に買った人はどうするんだ。いや、そんな人はこんなドライブ持ってるはずがないか。

ということで、Win95/98時代の中身を持ったDOS起動ディスクをWinXP機で作るにはどうしたらいいのかと。…FreeDOSあたりを使うのかな?と。

_ファームウェア書き換えは DOS 上でやらなきゃいけないというので、FreeDOS を入手する。 :

宿舎で使ってる DVD-ROM ドライブのファームウェアを発見しダウンロード。 ファームウェア書き換えは DOS 上でやらなきゃいけないというので、FreeDOS を入手する。適当なフロッピー ディスクがないので、Omoikane GNU/Linux でファームウェア更新に必要なファイルを FreeDOS 起動用のイメー ジファイルに書き込み、gcombust を使って適当 に bootable CD-RW を作り、更新。無事 region free (RPC-1) になった。

日記 (2001 年 7 月) より

なるほど。できるみたいだ。

_FreeDOSの起動FD作成方法 :

起動FDを作成するために、FreeDOS(注)のページから「boot1440.img」というファイルとイメージファイルを書き込むプログラム「rawrite.exe」を用意します。boot1440.imgとrawrite.exeを同じフォルダに保存し、WindowsのDOSコマンドプロンプトから次のようにコマンドを実行してFDイメージを書き込みます。

X:\>rawrite -f boot1440.img -d A

【コラム】PCスクランブル 第56回 便利アイテムUSBメモリを使いこなそう(追補編) (MYCOMジャーナル) より


_FreeDOSの起動FD作成方法

boot1440.img がそもそも見つからない…。と思ったが、fdboot.img というファイルが 1.0 のディレクトリ内にあった。これかな。rawrite.exe はどこだ。 _Vine Linux のftpサーバ から持ってくるか。…rawwritewin.exe ってのがあるのか。コレを使おう。

起動ディスク作成。

_Windows XPでMS-DOSの起動フロッピーを作成する :

あら。Win2000では容易に作れなかったけれど、WinXPではさっくり作れるようになってたのか。知らなかった…。じゃあそれでいいじゃん。みたいな。そっちでやろう。

DVS製 DSR-600Hのファームウェアを更新した。 :

のだけど。何かおかしい。DVS社のサイトから入手した a17 にしようとしたら、「ドライブに入ってるファームウェアのほうが新しいッス。書き換えできないッス」と言われた。出身不明の a19 なら、書き換えることはできた。しかし、書き換え処理時のメッセージ表示で、「ca19 => ca19」と出てくる。アレ? PC起動時のBIOS表示、ドライブの文字列も、「DVS DSR-600H 000121a0」という表示から変化がない。…ひょっとして、自分、既にファームウェアを書き換えていたのだろうか。何故にメモしておかないのだ。>昔の自分。

でもまあ、これで間違いなく書き換えたということで。…まさか、a19 に書き換えてしまっていたことで、動作が不安定になっていたのだろうか。うーん。

#4 [pc][linux] knoppix機の光学ドライブを入れ替え

CD-R/RWドライブ LG製 GCE-8160B と、DVD-ROMドライブ DVS製 DSR-600H の2台を外した。代わりに、弟が正月に置いていってくれた、DVD+R/RWドライブ RICOH MP5240A 1台を入れた。…DVD+R/RWドライブだけど、DVD-Rは読めているみたい。knoppix DVD版で起動できたし。 *1

ただ、ファームウェアの更新に関して問題が。RICOHのサイトで公開されてる、 _Ver.1.19 にすれば、 _16倍速DVD+Rメディア を利用できるらしいのだけど。書き換え用のプログラムは、Windows向けしか用意されてない。…一旦、Windows機に繋げというのか。メインPCを引っ張り出してケースを開けて接続してファームウェア更新してまた取り外せと。そりゃシンドイ。…Linux用を出してくれとは言わないけれど、せめてDOS用の書き換えプログラムを出してくれないものか。って容量的にFDではもはや対処できんのか。にしても、Windows専用ってのはあんまりだなぁ。なんとかならんのか。

それはともかく、ちゃんとDVD-Rが読めるか、みっちりチェックしないと。と言っても、どうすりゃいいんだろう。…knoppix DVD 起動時に testdvd をつけて起動すればいいかな。DVD-R で確実に読まねばならないモノと言えば、konoppix のDVDぐらいだし。 *2

knoppix機のFSBを66MHz→75MHzにしてみたり。 :

924MHzから、1050MHzぐらいになってくれるはず。> Celeron (Tualatin)。本当は1.4GHz の品なんだけど。L2キャッシュがついてこれない初期不良品だったようで、定格では動かせないという。

ビデオカード等の拡張ボードに悪影響を及ぼしそうな予感もなきにしもあらずだけど。Socket7の頃はFSB75MHzってのも定格FSBの一つだったんだから大丈夫じゃないのか。てな甘い予想を。

ひとまず、knoppix DVD で、memtest をつけてメモリチェックを実行。問題があれば、エラーが出てくれるだろう…。

2pass ぐらいしたから、いきなりダメというわけではなさそう。3日ぐらい回しておかないとエラーが出なかったりするときもあるから油断は禁物だけど。

testdvd も通った。 :

つーことは、DVD-R なら問題なく読める、ということだな。>DVD+R/RWドライブ。

QTParted を実行すると、以前と違ってサクリと画面が出てくるようになった。 :

以前はどうして延々と待たされたのであらうか。DSR-600H がまとまな反応をしなかったのか。GCE-8160Bがまともな反応をしなかったのか。それとも単に、光学ドライブを2台接続していたせいだろうか。Linux機でATAPI接続光学ドライブを2台接続するのはトラブルの元なのか? 謎です。

*1: MP5240Aのスペックをメモ。書き込みが、DVD+R/RW 4x / CD-R 24x / CD-RW 10x。読み込みが、DVD-ROM/+R/+RW 8x / CD-ROM/-R/-RW 40x。UltraDMA mode2 (UATA-33?)対応らしい。
*2: knoppix 起動時の boot: の後に、testcd、testdvd をつけて起動させると、正しく焼けたメディアかどうかをチェックしながら起動する。ただし、かなりの時間がかかる。

#5 [pc] メインPCのFDドライブがヤバイ。

取り出しボタンを押してもFDが排出されない。爪で挟んで引っ張り出せばなんとかなるけど。うーん。

コレ、一応3モードFDDなんだよな。今時も3モードのFDDは販売されているのだろうか?

_USB-FDX1シリーズ :

USB接続のFDD。3モード対応らしい。起動ドライブとして利用できる場合もあるらしく。…ただ、1.25MBのフォーマットができないのが気になる。

_Logitec LFD-A1U
_Imation FDX-IMJ
_IO-DATA USB-FDX4
今時は4倍速のFDDがあるのか。

内蔵FDDについても調べてみたけど。 :

玄人志向あたりのが凄い。ハード的には3モード対応だけど、どんなドライバが必要になりそうか、といった情報がない。購入者が集まる、玄人志向のサイトの掲示板でも、「コントローラチップ? 知らん」「手当たり次第に入れてみて動いたらビンゴじゃねえか」的アバウトなノリ。凄いぜ、玄人志向。

というか内蔵タイプは、コントローラチップをユーザがちゃんと把握して、決め打ちでドライバを入れなければならない・ネットを探しまくって入手しなければならないあたり面倒といえば面倒。今導入するのはまったくもって得策ではないのかもしれん。まあ、値段は安いけど。

そもそもFDDを使う機会なんてほとんどなくなってしまったから、外付けにして普段は外しておくのが良さそうな気もする。ただ、昔のPCは、USB接続ドライブから起動なんてとてもできないM/Bを使ってるだろうから、そういう場合は内蔵タイプを確保しておく必要が。いや、昔のPCだって、PC-98時代のFDを読むことはほとんどないだろうし。となると、2モードの一番安いヤツで充分という話に。まあ、3モード対応云々は、保険みたいなもの。ですかな。

この記事へのツッコミ

スリーモードドライブ by がんした    2007/02/02 07:24
うーむ、 1.2MB って PC-9800シリーズ限定規格だから、
自作PCやってる時点で不要な気がしますけど。
つーか、FDDの普及率2%とは、いよいよ3.5インチ無くなりそう。

>フロッピー・ディスクの売上げは、1998年の20億枚に比べ、昨年では世界中でもわずか7億枚にとどまり、
>現在販売されているコンピューターの98%にはフロッピー・ディスク用のドライブがついていないという。

http://www.kajisoku.com/archives/eid1108.html
Re: スリーモードドライブ by mieki256    2007/02/06 10:10
自分が最初に買ったWindowsマシンってPC-9821だったので、
ダンボールの中には1.2MBのFDがあったりするのでした…。

まあ、それを読むことがあるのかと問われたら、たぶん無いであろう気も。

しかしヤバイですな。>FD消滅。
手元にあるノートPCやPC-9821は、
FDD or HDDから起動することしかできないので、
FDDが故障&市場から消滅すると、HDDにOSを入れられなくなる…。

まあ、OSを入れることがあるのかと問われたら、たぶん無いであろう気も。

…とか考えると、やっぱり今となっては必要ないのかな。>FD。
うーん。微妙なところです。
Re: スリーモードドライブ by がんした    2007/02/10 07:32
自分もFDが無くなると困る人です。
OSのセットアップにFD起動を愛用してます、WIN95からWINXPに至る現在まで。
普通に真ッ更なHDDにインスコするならCDROM起動で問題ないのですが、
使ってるウチにPCが不調になかけて、既に壊れかけたOSの入ってるHDDに再インストする場合、

CDROMから起動 → フォーマット&パーテイション切り分け → OSインストール

が使えない。いくらBIOS設定を変えてみても、CDROM起動する前に壊れかけたOSが起動しちゃうから。
FD起動なら、そんな事はないのですが。
まー、壊れかけたOSの入ってるHDDを他のPCに仮つなぎしてフォーマットすればイイのだけど、面倒だから。
きっとレコード針のように無くなりはしないだろうけど、いつまで長生きしてくれFDD。

後ね、前にも書いたけど、USB接続ならXPでも読み書き出来るし、2000ならフォーマットも可能。
そこまで投資する事でもないだろうけど、一応報告。

USB-FDX4
http://www.iodata.jp/prod/storage/fd/2005/usb-fdx4/index.htm

FD-2USB
http://buffalo.jp/products/catalog/item/f/fd-2usb/index.html
Re: スリーモードドライブ by mieki256    2007/02/11 12:01
> FDD

外付けFDDと、Windows DSP版のセットがあったら良さそうですな、
と、ふと思いました。
DSP版って、たぶん内蔵タイプのFDDとのセット販売が
ほとんどなんだろうなと…。今時は、内蔵より外付けのほうが…。

そもそも外付けの周辺機器とセット販売はできないのかしら。>DSP版。
USBメモリとのセット販売とかあればいいのに。
いや、そもそもUSBメモリの中にWindowsを入れた状態で
販売するというのもなんだかヨサゲ…。

2006/01/14() [n年前の日記]

#1 [nitijyou][pc] メインPC、再び死亡。今度はHDDが壊れた。

操作中に「ファイルの遅延書き込みに失敗」云々のエラーが出て。PCを再起動したら、いくつかのパーティション ―― 特に、アプリの設定やデータファイル関係を保存してたパーティションを、認識しなくなっていた。

今まで、メインPCには2台のHDDをつけていて。下のような構成にしてあったのだけど。
1台目hda1FAT322GBC:Win98 起動用。C:\Windows その他。
hda2FAT322GBH:テンポラリファイル置場。--
hda3FAT3210GB?E:Win98用のアプリインストール場所。E:\Program Files\、その他。
hda4FAT3230GB?F:データファイル保存用。ホームディレクトリ、その他。
hda5NTFS40GB?G:データファイル保存用。動画とかCGとか。--
2台目hdb1NTFS30GBD:WinXP 起動&アプリインストール場所。D:\Windows、D:\Program Files
1台目の、E: F: G: のパーティションが、WinXP、Win98 から見えなくなった。たぶん、管理領域が壊れて消滅したのであろうと。

Win98 も WinXP も、起動することは起動する。が、作業に必要になるデータファイルが消えてしまってる。 消えてしまいましたがな。いやー、バックアップは大事ですね。アッハッハ。うわーん。ホント、これはダメージがでかい。めちゃくちゃデカイですな。

Webサイトのデータは、サーバからDLすれば復旧できそうではあるけど。それだけが唯一の救い、ですかな。やっぱり、ことごとくあらゆる情報を、ネットにアップしておくべき、なのだなぁ。

ということで、しばらくはまた、サーバ機上でこの日記を書くことに。 :

emacs、使いづらい。

さておき。どうしたもんか。HDD買ってきて、ゼロからインストールしていかないと。…ビデオカード買い替えどころじゃないな。

メールで連絡とらなきゃいけないところが2件ほどあるのだけど、どうしたもんか。…どうしようもないか。1件は市内だから直接出向くとして。もう1件は電話で連絡、かな…。

ちと気になるのは、1台目の見え方 :

Win98 を起動すると、C: と H:(Win98上では D:) が見えるのだけど。WinXP を起動すると、D: しか見えなくなってる。

WinXP が起動するためには、最低限 C: は見えてないといかんはずなのに。その C: が WinXP から見えないというのは、なんだか不可解。

1台目のほうが新しい上に酷使は少ないのだけどなぁ :

ウチは、2台とも Maxtor 製。

1台目のほうが新しく、かつ、Win98 はほとんど使ってないから完全にデータ保存用みたいなもので。WinXPの起動&アプリインストール場所に使ってる2台目に比べたら、1台目は、酷使の具合は遥かに少ないはずなのだけど。どうしてその1台目から、おかしくなるですかね。

アレかな。1台目は、不良製品を出しまくった時期の Maxtor 製品だから、そのへんも関係してるのかしら。起動用として使ってたら、もっと早期にダメになるところを、あまり酷使しなかったものだから今頃症状が出てきた、とか。

2005/01/14(金) [n年前の日記]

#1 [cg_tools] 3Dで地図を描くにはどうすればいいのやら

『ガンゲージの地下鉄面と最終面の花の位置をプリーズ』というカキコを見て、よっしゃ地図でも描いたるかと思ったんですが。考えてみたらどちらの面も、立体的に通路が張り巡らされてるマップで。…どうやって地図を描いたらええのやろか。3DCGソフトでモデリングでもしなきゃダメか。いやいや。3Dモデルを作ったからといって、判りやすくなるとは限らない。2D画像としてレンダリングしたら、かえってわかりにくくなるかもしれない予感。

昨今の3Dゲームの攻略本を書いてる人達は、そのへんどうやって処理しているのだろう。その手の本は読んだことがないのでイメージすら湧かない。

別にゲームに限った話ではなく。そもそも現実世界も3Dなわけで。それら3次元情報を、どうやって2次元の地図画像に変換するか。既に解はあるのかもしれないが。さて。

テキストで伝えればいいのか :

テキスト情報を元に、読み手の脳内で3Dモデルを構築してもらうのもアリか。

この記事へのツッコミ

Re: 3Dで地図を描くにはどうすればいいのやら by けいと    2005/01/15 16:27
> テキストで伝えればいいのか

それでいいと思いますよ^^;

現実の道案内もそうだし。

「次の交差点を左折です」とか
「コンビニエンスストアが目印です」とか
カーナビもそう言うし。
Re: 3Dで地図を描くにはどうすればいいのやら by mieki256    2005/01/16 11:42
> 現実の道案内もそうだし

…あっ!
たしかに。言われてみれば。スポンと失念してました。

#2 [game] ガンゲージの花のある場所 - 地下鉄と最終面(?)

ということで、 _テキストファイルにメモ してみました。何かの参考になれば。

#3 [tv] _冬将軍様

PM10:00から流れるNHKのニュース番組をたまに見るわけですが。天気予報のコーナーで、イラストによる説明画面が出てくるわけです。たまーにしか見ないので、「あら。イラストがちょっと変わってる」ぐらいにしか認識してなかったのですが。…とんでもねえ。こんなに変わってたのか! 新聞の4コマ漫画なみの大連載かもしれん。

#4 [pc] _アップル、5万円台からの低価格Mac「Mac mini」

小さくていいなぁ。サーバにもなりそう。と思ったんですが。 _ユーザ自身の手でメモリ増設すら不可 らしく。それが本当なら、個人的には、うんこPC確定でございます。 *1
*1: 一般ユーザが自ら進んでその手の作業を行いたいと思うはずもないので、実は何の問題もないのだけど。オイラはPC自作とか好きなほうなんで、いざとなったらケースを開いて云々ができないのは気持ち的にイヤなのでした。が、元々Macは自作云々の対極にある商品。その手の仕様を望むほうがおかしいですわな。

この記事へのツッコミ

Re: アップル、5万円台からの低価格Mac「Mac mini」 by けいと    2005/01/15 16:32
前にも書きましたけど…
ちなみに我が家の自家サーバは
http://www.hightech.co.jp/products/micro.html
です。
自作には程遠いけど。

このへんでもいいかな?
http://www.e-lets.co.jp/product/be_silent.htm

最近小さい物好きになってしまったなぁ。
Re: アップル、5万円台からの低価格Mac「Mac mini」 by mieki256    2005/01/16 11:53
> Hightech System MicroPC、Be Silent

ああっ!
そうだ。こういう製品群が存在してたのですな。またまた失念してますた。
何もわざわざサーバ用に、MacMiniを選んでる必要もないか(笑)

> MicroPC
http://www.hightech.co.jp/products/mpc_spec.html
さすがにギッチリ詰まってますなぁ…
中開けて作業するのは一苦労…ではあるけれど、
この小ささに収めることを考えれば当たり前、なのでしょうな。

やっぱりこのぐらいのサイズのPCだと、HDDは2.5インチになりますか…
もっとも、3.5インチ(だったか?)と2.5インチでは
消費電力も違うだろうから、
発熱が変わってくる→ファンレス等も難しくなるのか…

#5 [digital] _「空中に電話番号を書く」携帯、Samsungから

技術的には可能なのか。早く『魔法のタクト』が商品化されないものか。

#6 [windows] _Google it !

単語を選択して右クリックから実行するとその単語をGoogleで検索
IEのコンテキストメニュー(右クリックメニュー)に該当機能を追加するスクリプト(?)。Live2chで気になる単語を見つけたときにGoogle検索したかったのでインストール。 *1 Mozilla Firefox をデフォルトブラウザにしてあれば、Firefox でページを開いてくれる。みたい。ありがたや。
*1: Live2chの『ツール』機能で実現できないだろうかと思ったりもするけど。

2004/01/14(水) [n年前の日記]

#1 [pc] コンボドライブよりDVD-R/RWドライブを買ってしまうほうが良いような気がしてきたですよ

値段もそんなに違わないし。どうせ今、コンボドライブを購入しても、その後でDVD-R/RWドライブを購入しなければならないのが見えてるし。ということで、「速度なんてどうでもいい」「DVD-Rさえ焼ければ良い」「コンボドライブよりは、ちとマシ」程度の製品を探してみたり。今だと、 _TOSHIBA SD-R5112 あたりかな。しかし、巷では七千円台〜八千円台になってるという話を聞くのに、ネット上ではよくても9,980円ぐらい。しかも添付ソフト無しがほとんどで、ソフト付でも聞いたことの無いようなソフトだったりして。通販なので、送料・手数料を加えると、ヨドバシで _BUFFALO DVR-R42FB を購入したほうが、ポイント還元も含めて考えると安くなってしまう。ていうかこのへん検討に入れてしまうと、 _I・O DATA DVR-ABN4 の方が、添付ソフトに若干の魅力を感じたりもして。また、少し値段は高くなるけど、 _日立LG GSA-4040B も評判が言いようだし。DVD-R/-RW/+R/+RW/-RAMが全部使えると言うのはたしかに心強いよなぁ。…いかん。「コンボドライブよりは、ちとマシ」からズレてきてる。

2003/01/14(火) [n年前の日記]

#1 Pen75MHz導入失敗

サーバ機のPen75MHz+ヒートシンクonlyが熱暴走。テクノバードはケース内の空調を考慮して設計していないようだ。CPU-FANによる強制冷却が前提だろう。なんともテキトーな仕事をするメーカだ。このPen75MHzは98CanbeのCPU交換で手元に余ったモノ。Canbeは一体型故、各パーツはかなり密集していたが、それでもヒートシンクonlyでしっかり動いてた。NECが技術力のあるメーカだった事を再確認した次第。

サーバ機CPUをK6-200MHz+CPU-FANに入替え。ケースを開けたついでに、CD-ROMドライブもつけてインストールし直し。インストール後CD-ROMドライブは外す。少しでも電気使用量を少なくしたい。

2002/01/14(月) [n年前の日記]

#1 消しゴムかけ

R焼き中、PIGMAでペン入れ。
消しゴムかけめんどい。

年賀CGアプしてみました。
topページからどぞ。

2001/01/14() [n年前の日記]

#1 pcmにコピー

おかげさまで、X68Kで音を出す方法が判明。
copy xxx.pcm pcm だそうで。
作業がだいぶ楽になった〜 (´▽`)

空き容量確保のため、メインPC内のファイルをCD-Rに焼き焼き。
その間、X68Kで例の作業。
作業の合間にBSDやLinuxの本読んでたら、なんだかメインPCにもLinuxを入れたくなってきたり。
別ドライブにインストールしてなんとか実現できないかな。
以前はチャレンジした時はRAGE128が壁になったけど、今使ってるG400なら…
(もっとも、最新版のXFree86?ではRAGE128も対応済みらしいけど)
今入れるとしたら、どのディストリビューションだろうか。

いつのまにか親父さんが、VHFアンテナの配線を治してた模様。
トタン屋根に雪が積もって滑りやすくなってるから、晴れて乾いてから作業を、と提案してたのに。
こないだのTVの件といい、行動を起こすのはいいんだけど、ちと無鉄砲。
しかも画質ヒドイ。
そういうのこだわらない人だから、たぶんぞんざいな作業をしたんだろう…
もしくはアンテナ自体がもうダメなのかも?

もっとも、画質を気にするならアナログ受信に見切りをつけて、BSデジタル導入を真面目に検討したほうが効率良さそうですが。お金かかるけど。

2000/01/14(金) [n年前の日記]

#1 (NoTitle)お絵描き続行。背景作...

お絵描き続行。背景作成中。
なんだかタブレットの動作が鈍い。USBだからなのかな。CPUパワーが足りてないんだろうか。それとも電流でも不足してるのか。まいっちゃうなぁ。

以上、25 日分です。

過去ログ表示

Prev - 2024/10 - Next
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project