mieki256's diary



2018/08/31(金) [n年前の日記]

#1 [cg_tools] ひたすら木を描く練習中

CLIP STUDIO PAINT を使って、アニメの背景画っぽく見えそうな木を描く練習中。

何度描いても、コレジャナイ感が…。子供の落書きにしか見えない…。何が違うんだろう…。

#2 [zatta] 小さい紙コップが見当たらない

部屋で飲み物を飲む時は、ペットボトルから、80ml前後の小さい紙コップに移して飲んでいるのだけど。紙コップを補充しようとして近所のスーパーを回ってみても、何故か店頭でそのサイズの商品が無くて。以前はあったのだけどなあ…。

仕方なく、100円ショップのSeriaで小さいサイズの紙コップを買ってみたけど、当然ながら中国製なのでちょっと怖いわけで。実際使ってみたら、かすかに妙な味がする…。

フツーのサイズの日本製の紙コップを買ってきたほうがいいのだろうか。にしても、どうして小さいサイズが無くなってしまったのだろう。

2017/08/31(木) [n年前の日記]

#1 [raspberrypi] Raspberry Pi3上でHSP3を動かそうとしてみたけれど

先日、Linux や Raspberry Pi上でも動かせる HSP を開発中、という話を見かけたわけで。興味が湧いたので試してみようかなと。環境は、Raspberry Pi3 + raspbian stretch。

_HSP3 for Linux/Raspberry Pi に従ってインストール作業。
mkdir ~/hsp
cd ~/hsp
wget http://www.onionsoft.net/hsp/file/hsplinux35b5.tgz
tar zxvf hsplinux35b5.tgz
cd hsplinux35b5
これで hsplinux*.tgz のDLと解凍が済んだ。

ビルドに必要なパッケージをインストール。
sudo apt-get install libgtk2.0-dev
sudo apt-get install libglew-dev
sudo apt-get install libsdl1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-ttf2.0-dev

ビルドしてみる。
sudo make -f makefile.raspbian
g++ -Wall -fpermissive --exec-charset=UTF-8 -DHSPDISH -DHSPLINUX -DHSPRASPBIAN -DHSPDEBUG -DUSE_OBAQ -I /opt/vc/include -c src/hsp3dish/emscripten/hgiox.cpp -o src/hsp3dish/emscripten/hgiox.do
src/hsp3dish/emscripten/hgiox.cpp:120:1: error: narrowing conversion of ‘255’ from ‘int’ to ‘GLbyte {aka signed char}’ inside { } [-Wnarrowing]
 };
 ^
src/hsp3dish/emscripten/hgiox.cpp:120:1: error: narrowing conversion of ‘255’ from ‘int’ to ‘GLbyte {aka signed char}’ inside { } [-Wnarrowing]
src/hsp3dish/emscripten/hgiox.cpp:120:1: error: narrowing conversion of ‘255’ from ‘int’ to ‘GLbyte {aka signed char}’ inside { } [-Wnarrowing]
...
中略
...
makefile.raspbian:105: ターゲット 'src/hsp3dish/emscripten/hgiox.do' のレシピで失敗しました
make: *** [src/hsp3dish/emscripten/hgiox.do] エラー 1

エラーが出てビルドできなかった。残念。

もっとも、件のソース群は raspbian jessie 用らしいので、stretch 上ではエラーが出るのも仕方ないのかも。

#2 [raspberrypi][python][pi3d] pi3dをインストール

Raspberry Pi の OpenGL ES を Python から使える、pi3d というモジュールが存在するらしい。

_tipam/pi3d: Simple, yet powerful, 3D Python graphics library for beginners and school children running on the Raspberry Pi.
_Pi3D Tutorial #1: Installation and Getting Started - YouTube
_pi3d/pi3d_demos: Demos and support files for pi3d (3D graphics python package for the raspberry pi)
_Welcome to pi3d’s documentation! - pi3d 2.20 documentation

興味が湧いたので、試しに Raspberry Pi3 + raspbian stretch にインストール。

インストール手順。 :

以下でインストールできるらしい。
sudo pip install pi3d
sudo pip3 install pi3d
Python 2.7 にインストールするなら pip を、Python 3.x にインストールするなら pip3 を使う。

pi3d_demos に、デモスクリプトがまとめてある。git を使って github から入手。
git clone https://github.com/pi3d/pi3d_demos.git

地球が表示されるはずのスクリプトを動かしてみる。
$ cd pi3d_demos
$ python Earth.py

libEGL warning: DRI2: failed to authenticate

警告が出て、何も表示されなかった…。Ctrl+C でスクリプトを強制終了。

「libEGL warning: DRI2: failed to authenticate」への対処。 :

(※ 2017/09/01追記。sudo rpi-update をすれば、問題は修正される模様。)

ググったら、以下のページが見つかった。

_libEGL warning: DRI2: failed to authenticate - Issue #177 - tipam/pi3d
_Frequently Asked Questions - pi3d 2.20 documentation
_Raspberry Pi 2/3 Model B(Raspbian Jessie with PIXEL)でRStudioを使う

pi3d のバグ報告や、FAQページによると、pi3d を動かす際には、
/usr/lib/arm-linux-gnueabihf/
に入ってる、以下の4つのファイルが絡んでくるらしい。
libEGL.so
libEGL.so.1
libGLESv2.so
libGLESv2.so.2

なんでも、sudo apt install xxxx をしていく際に、それらのファイルが不適切なファイルで上書きされてしまう…時があって、そうなると正常動作しなくなるのだとか。

ストレージ(microSD)内には、色んな種類の libEGL.so、libGLESv2.so が存在してるようで。 _find という、ファイル検索をするコマンドを使ってリストアップしてみる。

sudo find / -name libEGL*
sudo find / -name libGLESv2*

自分が使ってる raspbian stretch 上では以下の結果になった。
$ sudo find / -name libEGL*
find: ‘/run/user/1001/gvfs’: 許可がありません
/usr/lib/arm-linux-gnueabihf/libEGL.so.1
/usr/lib/arm-linux-gnueabihf/libEGL.so
/usr/lib/arm-linux-gnueabihf/libEGL.so.1.0.0
/usr/lib/chromium-browser/libEGL.so
/opt/vc/lib/libEGL_static.a
/opt/minecraft-pi/lib/mesa/libEGL.so
/opt/minecraft-pi/lib/brcm/libEGL.so
$ sudo find / -name libGLESv2*
find: ‘/run/user/1001/gvfs’: 許可がありません
/usr/lib/arm-linux-gnueabihf/libGLESv2.so.2
/usr/lib/arm-linux-gnueabihf/libGLESv2.so.2.0.0
/usr/lib/arm-linux-gnueabihf/libGLESv2.so
/usr/lib/chromium-browser/libGLESv2.so
/opt/vc/lib/libGLESv2_static.a
/opt/minecraft-pi/lib/mesa/libGLESv2.so
/opt/minecraft-pi/lib/brcm/libGLESv2.so
chromium-browser や minecraft-pi も、それらのファイルを持ってると分かった。

また、/usr/lib/arm-linux-gnueabihf/ 内の各ファイルについても状況を確認してみる。
$ ls -al /usr/lib/arm-linux-gnueabihf/libEGL*
lrwxrwxrwx 1 root root     15  8月  4 21:41 /usr/lib/arm-linux-gnueabihf/libEGL.so -> libEGL.so.1.0.0
lrwxrwxrwx 1 root root     15  8月  4 21:41 /usr/lib/arm-linux-gnueabihf/libEGL.so.1 -> libEGL.so.1.0.0
-rw-r--r-- 1 root root 175516  8月  4 21:41 /usr/lib/arm-linux-gnueabihf/libEGL.so.1.0.0
 $ ls -al /usr/lib/arm-linux-gnueabihf/libGLESv2*
lrwxrwxrwx 1 root root    18  8月  4 21:41 /usr/lib/arm-linux-gnueabihf/libGLESv2.so -> libGLESv2.so.2.0.0
lrwxrwxrwx 1 root root    18  8月  4 21:41 /usr/lib/arm-linux-gnueabihf/libGLESv2.so.2 -> libGLESv2.so.2.0.0
-rw-r--r-- 1 root root 38184  8月  4 21:41 /usr/lib/arm-linux-gnueabihf/libGLESv2.so.2.0.0
  • libEGL.so と libEGL.so.1 は、libEGL.so.1.0.0 からリンクが張られていた。
  • libGLESv2.so と libGLESv2.so.2 は、libGLESv2.so.2.0.0 からリンクが張られていた。

pi3dのFAQページには、「sudo _ln -fs リンク元 リンク先 を使って適切な .so を探して割り当ててみてくれ」と書いてあった。

chromium-browser のソレを割り当てて試してみる。
sudo ln -fs /usr/lib/chromium-browser/libEGL.so /usr/lib/arm-linux-gnueabihf/libEGL.so
sudo ln -fs /usr/lib/chromium-browser/libEGL.so /usr/lib/arm-linux-gnueabihf/libEGL.so.1
sudo ln -fs /usr/lib/chromium-browser/libGLESv2.so /usr/lib/arm-linux-gnueabihf/libGLESv2.so
sudo ln -fs /usr/lib/chromium-browser/libGLESv2.so /usr/lib/arm-linux-gnueabihf/libGLESv2.so.2
sudo ldconfig
ldconfig は… _共有ライブラリの依存関係情報を更新する らしい。

_ldconfig【コマンド】とは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

python Earth.py を実行してみた。ダメだった。コレではないらしい。

minecraft-pi のソレを割り当てて試してみる。が、2種類あるな…。

/opt/minecraft-pi/lib/mesa/ 内のソレは、/usr/lib/arm-linux-gnueabihf/ 内のソレにリンクが張ってあった。これを指定しても意味はない。
$ ls -al /opt/minecraft-pi/lib/mesa/
合計 20
drwxr-xr-x 2 root root 4096  8月 16 10:02 .
drwxr-xr-x 4 root root 4096  8月 16 10:02 ..
lrwxrwxrwx 1 root root   40  7月  5 19:52 libEGL.so -> /usr/lib/arm-linux-gnueabihf/libEGL.so.1
lrwxrwxrwx 1 root root   43  7月  5 19:52 libGLESv2.so -> /usr/lib/arm-linux-gnueabihf/libGLESv2.so.2
-rw-r--r-- 1 root root 9588  7月  5 19:52 libbcm_host.so.1.0

/opt/minecraft-pi/lib/brcm/ 内のソレは…なんだかそれっぽいものにリンクされてる。こっちを試してみるべきかな…。
$ ls -al /opt/minecraft-pi/lib/brcm/
合計 8
drwxr-xr-x 2 root root 4096  8月 16 10:02 .
drwxr-xr-x 4 root root 4096  8月 16 10:02 ..
lrwxrwxrwx 1 root root   29  7月  5 19:52 libEGL.so -> ../../../vc/lib/libbrcmEGL.so
lrwxrwxrwx 1 root root   32  7月  5 19:52 libGLESv2.so -> ../../../vc/lib/libbrcmGLESv2.so

sudo ln -fs /opt/minecraft-pi/lib/brcm/libEGL.so /usr/lib/arm-linux-gnueabihf/libEGL.so
sudo ln -fs /opt/minecraft-pi/lib/brcm/libEGL.so /usr/lib/arm-linux-gnueabihf/libEGL.so.1
sudo ln -fs /opt/minecraft-pi/lib/brcm/libGLESv2.so /usr/lib/arm-linux-gnueabihf/libGLESv2.so
sudo ln -fs /opt/minecraft-pi/lib/brcm/libGLESv2.so /usr/lib/arm-linux-gnueabihf/libGLESv2.so.2
sudo ldconfig

python Earth.py を実行。

…出た。なんか地球とか月っぽいものが出てクルクル回ってる。どうやらコレが合ってるらしい。ESCキーか、Ctrl+C を押して終了。

が、しかし、OpenGL ES が正常動作してるか確認できる、es2gears を実行してみたら、
EGLUT: failed to initialize EGL display
とエラーが表示されて何も出てこなくなった…。本当にこれでいいのだろうか…。

元に戻すときは…こうかな…?
sudo ln -fs /usr/lib/arm-linux-gnueabihf/libEGL.so.1.0.0 /usr/lib/arm-linux-gnueabihf/libEGL.so
sudo ln -fs /usr/lib/arm-linux-gnueabihf/libEGL.so.1.0.0 /usr/lib/arm-linux-gnueabihf/libEGL.so.1
sudo ln -fs /usr/lib/arm-linux-gnueabihf/libGLESv2.so.2.0.0 /usr/lib/arm-linux-gnueabihf/libGLESv2.so
sudo ln -fs /usr/lib/arm-linux-gnueabihf/libGLESv2.so.2.0.0 /usr/lib/arm-linux-gnueabihf/libGLESv2.so.2
sudo ldconfig

動くものと動かないものがあるっぽい。 :

さておき、調子に乗って pi3d_demos 内のスクリプトをアレコレ動かそうとしてみたけれど。

_Introduction to pi3d - pi3d 2.20 documentation

動くものと、動かないものがあるな…。以下は動いたけど…。
Earth.py
Raspberry_Rain.py
Clouds3D.py
Shapes.py
SpriteBalls.py

MarsStation.py , TigerTank.py は、/dev/input/mice が Permission denied と言われて途中で落ちてしまった。後から追加したユーザアカウントで動かしてるので、マウス入力を取得するためのアクセス権限が無いらしい。

普段使ってるユーザも、ユーザ pi が所属してるグループ群と同じになるように設定してみた。これで、前述の2つのスクリプトも動くようになった。

グループに追加。 :

ユーザをグループに追加する方法も一応メモ。

ユーザpiがどのグループに所属しているか確認。
$ groups pi
pi : pi adm dialout cdrom audio video plugdev games users input netdev spi i2c gpio

ユーザ hoge が、どのグループに所属しているか確認。
$ groups hoge
hoge : hoge sudo video

usermod を使って、ユーザ hoge を各グループに登録。
sudo usermod -aG sudo,pi,adm,dialout,cdrom,audio,video,plugdev,games,users,input,netdev,spi,i2c,gpio hoge

登録できたか確認。
$ groups hoge
hoge : hoge adm dialout cdrom sudo audio video plugdev games users input netdev pi spi i2c gpio

一旦ログアウトして再度ログイン。

以下、参考ページ。

_raspberrypi3に独自のユーザを設定する | Hornet|静岡拠点のWeb、ホームページ制作
_usermodでグループを追加するのは危険 - Qiita

usermod を使う場合は、それまで登録されてたグループ名を“全て”列挙しなきゃいけない。記述漏れがあると大変なことになる。だから、usermod より gpasswd を使って登録作業をしていったほうが安全、という話もあるのだけど。上記の記事によると、usermod の -G オプション利用時は、-aG にすれば追加登録になるから、そういう指定をすれば gpasswd と同様の処理になるよ、ということらしい。

2016/08/31(水) [n年前の日記]

#1 [nitijyou] 蚊取り線香でダメージ

部屋の中で虫が飛んでいたので蚊取り線香をつけたのだけど、予想通り寝ていたら悪夢を見たわけで。

蚊取り線香は、虫だけに効く成分が入っていると ―― 虫はその成分に対する受容体を持ってるけど、人間はその受容体をほとんど持ってないので、故に虫だけを殺せる、という仕組みらしいけど。なんだか怪しいなと。人間がその受容体を完全に持ってないというわけではなくて、おそらく体積からすればほとんど持ってないと捉えていいんじゃないか、みたいな話ではあるまいかと。であればやっぱり人間にもダメージがあるのではないかと邪推してるのだけど、どうなんだろう。

もしかすると、人間も個体によって、そのあたり違うんじゃなかろうか…。自分などは不幸にも多くの受容体を持って生まれてきてしまった個体なのではないか。食物アレルギーみたいなもんで…。

そういえば、新築の建物は建設時に使った接着剤が揮発していくので、人によってはソレでダメージを受ける、みたいな話もあったなと。…どんな化学物質が、どの個体にダメージを与えるかなんて、ちと分からないところがあるよなと。

まさかとは思うけど、鬱病になる・ならないも、結構ソレが絡んでたりして…。新築の建物に住んでる人は鬱病になる確率が高いとか。蚊取り線香を頻繁に使ってた人は鬱病になる確率が上がるとか。

2015/08/31(月) [n年前の日記]

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

雨だったので徒歩で。AM11:15頃に治療。細菌検査とやらをすると説明してもらえた。何かを取って、薬をつけて、蓋をして。

治療してから30分後ぐらいに、だんだん痛みが。痛み止め(ロキソニン)を2錠飲んでも、痛みが消えてくれない。何だコレ…。前回の治療時も、治療した当日は痛みがあって痛み止めを飲んでたけれど、その時よりはるかにヤバイ感じ。もしかして、自分の体には、つけてる薬が合わないのだろうか。

だんだん思い出してきた。十数年前に治療してもらった時も、同じことがあったような…。

2014/08/31() [n年前の日記]

#1 [dxruby] 多関節キャラエディタ GMCMT のプロジェクトファイルをDXRubyで表示

数日前に弄ってた Ruby + DXRuby のソースを今のうちに一応アップロードしておこうかと。まだ、基本ポーズを表示するところまでしかできてないけど。

_多関節スプライトエディタGMCMT

例えば、以下のような感じのデータを作ってみたりして。
gmcmt_ss.png

GMCMT はpng画像エクスポート機能があるので、下のような感じのアニメgif画像も作れる。
run_anime.gif


以下は、プロジェクトファイルを Ruby + DXRuby で読み込んで表示してみた例。
gmcmtanimeobj_rb_ss.png

ソースは以下。

_gmcmtanimeobj.rb
_main.rb
# GMCMTのプロジェクトファイルを読んで基本ポーズを表示してみるテスト

require 'dxruby'
require_relative 'gmcmtanimeobj.rb'

obj = GmcmtAnimeObj.new("walk_test.gmp")
bx, by = 320, 240
brot = 0

Window.loop do
  break if Input.keyPush?(K_ESCAPE)    # ESCキーで終了

  brot += 1 if Input.keyDown?(K_UP)    # 本体角度をキー入力で変更
  brot -= 1 if Input.keyDown?(K_DOWN)

  obj.draw_grid(bx, by) # グリッドを描画
  obj.draw(bx, by, brot) # 全パーツを描画
end

一応、実験に使った GMCMT のプロジェクトファイル一式(.gmp、.gms、画像ファイル)と上記のRubyソースも zip にして置いておきます。Public Domain / CC0ってことで。 *1

_sample_my_2.zip (27.4KB)

とりあえず、プロジェクトファイルがテキストファイル(ini(?)、json)で保存されてる限りは、ご覧のとおり、Rubyその他で読み込んでゲームに使うのも比較的容易なのでありがたいなと。これがもしバイナリファイルだったら、解析するだけでも面倒で、途中で投げ出してたはず。

できればDXRuby上でモーション再生までしてみたいけど、今後しばらくは別のことを勉強しなきゃいけない感じだったりするので、今回はここまで。

ゲームに使うとしたら。 :

ゲームに使うとしたら、画像描画の優先順位(プライオリティ値)が後々絡んできそうな気がする。複数のキャラが画面内に登場するだろうし。どうしたもんか。
  • 座標計算だけは事前にしておいて、最後にプライオリティ値に従って描画順を前後させるか。
  • それとも、背景画像その他をどのプライオリティ値で描画するか事前に厳密に決めておいて、その範囲内で各キャラのプライオリティ値が収まるようにするか。
後者の方が楽だろうか。どうなんだろう。

*1: GMCMTのプロジェクトファイルのライセンスはどうなるのか、ちょっとよく分からないけど、データファイルにまでライセンスが強制される事例ってあまり聞かないので、たぶん問題無いのではないかなと…。

2013/08/31() [n年前の日記]

#1 [haxe] Haxe+OpenFLでハマった

Haxe + OpenFL で、svg 表示ができるかどうかが気になって試していたのだけど、ハマってしまったり。全然すんなり行かない…。

結論から言うと、svgの内容によっては、一応表示できなくもない感じ。ただし、いくつか注意点がありそう。 要するに、HTML5用に出力すると、ハマります。svgをブラウザで直接開くと、まともに表示されるので、svgがおかしいというわけではないのだろうけど…。

ちなみに、Inkscape で svg を作ってたのだけど。その場合、以下の点に注意して作業・保存したほうが良いかもしれず。 とにかく一発で表示できず、何度も修正・保存形式を変えて試してみる羽目に。どう考えても、ビットマップ化して表示したほうが、余計なトラブルに遭遇せずに済みそう…。

Haxe + OpenFL上で、svg表示を可能にするライブラリ?は、gm2d/svg と haxenme/svg の2種類があるようで。前者を試したらエラーが出て解決できなかったので、後者で試した。

haxelib.exe を使って、いくつかライブラリをインストールする必要あり。
haxelib.exe install format
haxelib.exe install svg
haxelib.exe install swf
最後のは要らないかもしれないけど、念のため入れてみたり。

application.xml
<?xml version="1.0" encoding="utf-8"?>
<project>
    <!-- NMML reference: https://gist.github.com/1763850 -->
    
    <!-- metadata, make sure 'package' is at least 3 segments (ie. com.mycompany.myproject) -->
    <meta title="haxe_openfl_svg_disp_test" package="haxeopenflsvgdisptest" version="1.0.0" company="mieki256" />
    
    <!-- output -->
    <app main="Main" file="haxeopenflsvgdisptest" path="bin" />
    
    <window background="#FFFFFF" fps="60" />
    <window width="640" height="360" unless="mobile" />
    <window orientation="landscape" vsync="false" antialiasing="4" if="cpp" />
    
    <!-- classpath, haxe libs -->
    <source path="src" />
    <!--
    <haxelib name="gm2d" />
    -->
    <haxelib name="format" />
    <haxelib name="svg" />
    <haxelib name="openfl" />
    <haxelib name="actuate" />
    
    <!-- assets -->
    <icon path="assets/openfl.svg" />
    <assets path="assets/img" rename="img" />
    
    <!-- optimize output
    <haxeflag name="-dce full" /> -->
    
</project>

Main.hx
package ;

import flash.display.Shape;
import flash.display.Sprite;
import flash.events.Event;
import flash.Lib;
import openfl.Assets;

import format.SVG;

//import gm2d.svg.Svg;
//import gm2d.reso.Resources;
//import gm2d.svg.SvgRenderer;

/**
 * SVG display test. use haxenme/svg
 * @author mieki256
 */

class Main extends Sprite 
{
    var inited:Bool;
    var bg:Sprite;
    var count:Int;

    /* ENTRY POINT */
    
    function resize(e) 
    {
        if (!inited) init();
        // else (resize or orientation change)
    }
    
    function init() 
    {
        if (inited) return;
        inited = true;

        // (your code here)
        
        // Stage:
        // stage.stageWidth x stage.stageHeight @ stage.dpiScale
        
        // Assets:
        // nme.Assets.getBitmapData("img/assetname.jpg");

        // svg setting
        var svg = new SVG(Assets.getText("img/bg.svg"));
        var shape = new Shape();
        svg.render(shape.graphics);
        shape.cacheAsBitmap = true;
        
        //var svg = new SvgRenderer(Resources.loadSvg("img/bg.svg"));
        //var shape = svg.createShape();
        //shape.cacheAsBitmap = true;
        
        bg = new Sprite();
        this.addChild(bg);
        bg.addChild(shape);
        shape.x = -320;
        shape.y = -180;
        bg.x = 320;
        bg.y = 180;
        
        this.addEventListener(Event.ENTER_FRAME, onEnterFrame);
        count = 0;
    }
    
    private function onEnterFrame(e:Event):Void
    {
        //bg.rotation = 20 * Math.cos((count * 4) * Math.PI / 180.0);
        count++;
    }

    /* SETUP */

    public function new() 
    {
        super();    
        addEventListener(Event.ADDED_TO_STAGE, added);
    }

    function added(e) 
    {
        removeEventListener(Event.ADDED_TO_STAGE, added);
        stage.addEventListener(Event.RESIZE, resize);
        #if ios
        haxe.Timer.delay(init, 100); // iOS 6
        #else
        init();
        #end
    }
    
    public static function main() 
    {
        // static entry point
        Lib.current.stage.align = flash.display.StageAlign.TOP_LEFT;
        Lib.current.stage.scaleMode = flash.display.StageScaleMode.NO_SCALE;
        Lib.current.addChild(new Main());
    }
}

以下の3行が肝心の部分、なのかな。
        var svg = new SVG(Assets.getText("img/bg.svg"));
        var shape = new Shape();
        svg.render(shape.graphics);

SVG表示の不具合について。 :

以下の画像のような感じになる。

グラデーションの色がおかしくなる件。

Flash ... OK。
Haxe + OpenFL + Flash

Neko ... OK。
Haxe + OpenFL + Neko

HTML5 ... NG。色がおかしい。
Haxe + OpenFL + HTML5


ストロークが入っていると表示がおかしくなる件。

Flash ... OK。
Haxe + OpenFL + Flash

Neko ... OK。
Haxe + OpenFL + Neko

HTML5 ... NG。ストロークが無いはずの部分にまでストロークがついている。
Haxe + OpenFL + HTML5

マウス座標の取得でハマったり。 :

画像を表示してマウスカーソルを追いかける、という処理を試しに書いていたのだけど。 Flash や Neko上ではすんなりと正常動作したものの、HTML5上ではうんともすんとも反応しなくてハマったり。

Spriteのプロパティ値を疑って、半日ほどアレコレ試していたけど。そこではなくて、マウス座標がそもそも取得できてない場面があったのが原因だった。undefined だか NaN だかの値をマウス座標として得てしまった際に、Sprite の x座標にもその値が入ってしまって、その後も、その計算不能な値を使って計算しようとするから、ずっと計算できずにピクリとも動かなくなっていた。

Main.hx
package ;

import flash.display.Bitmap;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.Lib;
import flash.text.TextField;
import openfl.Assets;

/**
 * OpenFLテスト。マウスカーソルを画像が追いかける。
 * @author mieki256
 */

class Main extends Sprite 
{
    var inited:Bool;
    var spr:Sprite;
    var bmp:Bitmap;
    var tf:TextField;
    var mousex:Float;
    var mousey:Float;

    /* ENTRY POINT */
    
    function resize(e) 
    {
        if (!inited) init();
        // else (resize or orientation change)
    }

    /**
     * 初期化処理
     */
    function init() 
    {
        if (inited) return;
        inited = true;

        mousex = 320;
        mousey = 180;
        
        // 画像を描画
        spr = new Sprite();
        bmp = new Bitmap(Assets.getBitmapData("img/chara.png"));
        bmp.x = - bmp.width / 2;
        bmp.y = - bmp.height / 2;
        spr.addChild(bmp);
        Lib.current.addChild(spr);
        
        // 文字列を描画
        tf = new TextField();
        tf.selectable = false;
        tf.width = 640;
        tf.height = 48;
        tf.textColor = 0x333333;
        tf.text = "start";
        Lib.current.addChild(tf);

        // ステージ上でマウスが動いた際のイベントを登録
        Lib.current.stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);
        
        // 毎フレームの処理を登録
        this.addEventListener(Event.ENTER_FRAME, mainUpdate);
    }
    
    /**
     * マウスカーソルが動いた時の処理
     * @param   event
     */
    function onMouseMove(event:MouseEvent):Void
    {
        mousex = event.stageX;
        mousey = event.stageY;
    }
    
    /**
     * メインループ部分相当
     * @param   e
     */
    private function mainUpdate(e:Event):Void
    {
        var mx:Float;
        var my:Float;

        // マウス座標を取得
        switch (1) {
            case 0:
                // html5上でも動く。
                mx = mouseX;
                my = mouseY;
            case 1:
                // html5上でも動く。
                mx = mousex;
                my = mousey;
            default:
                // html5上では動かない。Flash や Neko では動く。
                mx = Lib.current.stage.mouseX;
                my = Lib.current.stage.mouseY;
        }

        // キャラクタ画像が、マウスカーソルを追いかける処理
        var spd:Float = 0.04;
        var dx:Float = (mx - spr.x) * spd;
        var dy:Float = (my - spr.y) * spd;
        spr.x = spr.x + dx;
        spr.y = spr.y + dy;
        
        tf.text = 'mouse x,y = $mx, $my';
        //tf.text = 'spr x,y = ${spr.x}, ${spr.y}';
    }
    
    /* SETUP */

    public function new() 
    {
        super();    
        addEventListener(Event.ADDED_TO_STAGE, added);
    }

    function added(e) 
    {
        removeEventListener(Event.ADDED_TO_STAGE, added);
        stage.addEventListener(Event.RESIZE, resize);
        #if ios
        haxe.Timer.delay(init, 100); // iOS 6
        #else
        init();
        #end
    }

    public static function main() 
    {
        // static entry point
        Lib.current.stage.align = flash.display.StageAlign.TOP_LEFT;
        Lib.current.stage.scaleMode = flash.display.StageScaleMode.NO_SCALE;
        Lib.current.addChild(new Main());
    }
}

2012/08/31(金) [n年前の日記]

#1 [nitijyou] 自転車で買い物に

夜になってから自転車で買い物に。近くのコンビニまで。

体が蜘蛛の巣だらけに。ここ数時間、歩道を誰も歩いてなかったのだな…。

2011/08/31(水) [n年前の日記]

#1 [nitijyou] 線量計で自宅周辺の空間線量を測定した

昨日から、福島県須賀川市でも、線量計貸出サービスが始まった。

何ヶ月も前に、親父さんが、線量計貸出し等を検討してほしい、といった要望メールを市に出したことがあり。なので、ようやくかよ、やっとかよ、何ヶ月かかってんだよ、対応遅いよ、危機感無さ過ぎだよ、という印象も。いや、もちろん、サービスが始まるだけでもありがたい・随分マシだと思うのですが。最悪、このまま須賀川市は、学校や公園のソレを測るだけで、他には何もしないのかもしれん、とすら予想してたので、そういう状況に比べたら全然マシではあるのですが。…線量計が確保できなかったのか、それとも最近要望がどんどん増えてきて対応せざるを得なかったのか、あるいは国や県から何かしら指示でもあったのか。実状はさっぱり分からんけど。

借りる手順としては、事前に各公民館に電話で予約をして、午前もしくは午後の間に貸してもらう、という形。ちなみに、サービス開始日に親父さんが、近くの公民館に電話して予約しようとしたら、電話が繋がらなかったそうで。仕方ないから比較的遠くにある中央公民館に電話を入れて予約した次第。…たぶん、電話が混雑してたのではないかと想像。皆、そういうサービスが始まってほしいと願ってたんじゃないだろうか。いや、実際のところは分からんけど。

ということで、親父さんの運転する車に同乗して、今日の午前中、中央公民館に行って線量計を借りてきた。いや、借りたのは親父さんだけど。借りるときは身分証明をする何かが必要。免許証とか、保険証とか。

線量計の使い方が書かれている用紙を貰ったが、市のWebサイトで公開されてたpdfと内容は同じだった。親父さんと一緒に、事前にpdfに目を通していたので、そのあたりは問題無し。

用紙の裏には住所と線量を書き込む欄が印刷されていて、できれば記録して市に提出してほしいとのこと。その話を聞いて、感心、というより感動した。各家庭で線量を調べて、数値を記入して提出すれば、それがそのまま市内の線量マップ作成データとして利用できる、ということだろう。さすがに今から始めるだけあって、賢いなと。素晴らしい。…後になって考えてみると、その時の感動はヤンキー効果じゃないのか、という気もするけれど。まあ、賢いやり方なのは間違いないわけで。

渡された線量計は、あらかじめビニール袋に入っていた。念のためにと、こちらもビニール袋を持って行ったのだけど、必要なかったなと。

測定結果をざっくりとメモ。 :

場所は、福島県須賀川市森宿海道西のあたり。

線量計は、35秒ほどで測定できる仕様だった。測定開始ボタンを押すと、35が表示され、カウントダウンが始まる。0になると、数値が表示される。測定中は機器をあまり動かさないようにする。市からもらった用紙には、1m か 50cm の高さで測定するよう心掛ける、と書いてあったのでそれに従った。雨どいや側溝を測る際は、1cmぐらいの距離で測ってみるのもアリ、とも書いてあった。

あちこち調べてみたが、ざっくりまとめると。
  • 門前の未舗装道路や庭など、つまり自宅周辺の屋外では、0.4〜0.5μシーベルトぐらい。
  • 茶の間や寝室等、つまり屋内は、0.15〜0.3μシーベルト、平均すると0.2μシーベルトぐらい。
  • 1階より2階のほうが、全体的に数値が高かった。地面からは離れているはずなのに、何故なんだろう…。
  • 側溝と、雨どいの出口のあたりも、おそらくは凄い値が出るだろうと思いながら測定したが。0.3〜0.4μシーベルトだった。庭のほうが高い。予想外の結果。

自宅近くにある空き地も測定。市の花火大会の際には、親父さんの写真仲間が何人か集まってシャッターを切る場所なので。
  • 草の上は、0.45μシーベルトぐらい。家の庭と似たような値。
  • 草を刈った場所は、0.3〜0.4μシーベルト。
草を刈ることで線量が減るというのはどうやら本当らしい。

測定中、近所の人達の会話が聞こえてきた。どうやらそれらの御家庭では、昨日の段階で各自測定していたらしい。この手の不安を抱えていたのはウチだけではなかったと知って、なんだかホッとした。この界隈ではウチだけが気にしているのだろうか、ウチだけが異常なのか、と思ってた。そうじゃなかった。皆、不安だったんだ。…考えてみれば、それらの御家庭には、赤ちゃんや子供さんが居る。ウチなんかより、はるかに不安だったはずで。サービス開始と同時に急いで予約を申し込むのは、当たり前といえば当たり前か。いや、あるいは、子供さんがいる御家庭には何かしら別の文書が届いていて、優先的に貸出をしているのかもしれない。…そこまで気が利いたことをしているのだろうか。分からんけど。

車を走らせて、親父さんが家庭菜園?をしている畑も測定。江持のあたり。須賀川市と郡山市の境界の近く。
  • 新聞等で公開されている線量マップを見ると、自宅より畑のある場所のほうが値が低いように見えている。
  • 以前、農機具販売店で土の線量を測ってもらった際は、畑の土は、庭の土の1/3ぐらいの線量だった。
なのでおそらく、畑周辺は自宅よりも随分と低い値が出るのでは、と予想していたけれど。これがまた、全く予想外の結果で。
  • 畑の真ん中あたりは、0.57μシーベルト。
  • 木の下などは、0.4μシーベルト。
つまり、総じて、自宅の庭より、畑のほうが高かった。土の線量はあれほど違ったのに。何故。

お袋さんの実家が畑のすぐ近くにあるので、伯父さんにお願いして、そこも測定させてもらった。もしかすると、畑だけが異様に高かったりするのでは、とも思ったので。
  • お袋さんの実家の庭が0.4μシーベルト。
  • 屋内が0.2μーシーベルト。
ウチと、お袋さんの実家は、そこそこ距離があるほうだと思うけど、ほぼ似たような値になった。どうやらこのあたり一帯は、大体そういう感じの線量なのかな、という気がする。

伯父さんの話では、以前も誰かに測ってもらったことがあるそうで。物置?の横の、雨水が集まる場所が高かったんだ、と教えてもらった。試しに測ってみたら、1μシーベルト。おお。とうとう1μシーベルトを超える場所に遭遇してしまった…。雨が溜まって乾くところは高くなるという話は本当らしい。また、0.n μシーベルトより大きい値が出たことで、線量計がそれなりにちゃんと動いていることも確認できた、ような気がする。

09:00〜12:00までの貸出時間だったけど。大体10:30ぐらいにはほとんど測定が終わったので、11:00頃、中央公民館に返却。用紙の裏にも場所と数値を記録して渡した。

線量計によっては、10分ほど時間をかけないと測定できないという話も聞いていたので、何度か借りて測定しないといかんのかもと想像していたが。1分以内でざっくりと測れる機器だったので、サクサク測れてとても助かった。…結構値が張る製品だったりするのかしら。

測定してみて思ったこと。 :

測ってみることで、物凄く安心できることを実感した。具体的な数値で現状を認識できること、「見える化」?ってのは、とにかく大事だなと。ここまで安心できるとは予想してなかった。

今までは、「測ってないから把握できてないだけで、実は、この家の周辺は、ホットスポットだったりして…」「本当は、避難地域に指定されてもおかしくないぐらい、酷い状態になってたりしないか…」と不安でしょうがなかったのだけど。測ってみたら、市が公開してる、学校や公園の測定結果と、さほど大きな違いは無く。

ここまで安心できると分かってたら、もっと早い時期に、どうにかして線量計を購入しておくべきだったか…とも思ったが、それも何か釈然としないものがあったりするわけで。誰のせいでこういう状況になってるんだよ、とか。毎日ずっと使うものなんだろうか、とか。2万円前後の製品が数倍の値段になっててさすがにそれはどうなんだ、とか。靴やバッグを扱ってた店が急に線量計を扱い始めて、しかもそういう怪しい?店でしか買えそうにないこの状況はどうなのよ、とか。そういったアレコレを考えると、個人で買うのも、何かこう、ムカムカと腹が立ってくるというか。

ということで、冒頭で「遅いよ」等の文句を書いてしまったけれど、それでも、貸出サービスを始めてくれてありがとう、と。>須賀川市。いやホント、マジで助かりました。

#2 [comic] 「うさぎドロップ」1〜4巻を購入

中央公民館からの帰りに寄った、ロックタウンの宮脇書店で、1,3,4巻を購入。2巻は売り切れ。入荷予定は未定とのこと。帰宅後、親父さんから電動自転車を借りて、ヨークベニマル内の本屋さんまで2巻を探しに。幸い全巻揃ってた。2巻だけ購入。

現在ノイタミナ枠で、アニメ版が放送中の、この作品。アニメ版の4話?を見て、その設定に興味が湧いて。Wikipediaを眺めてラストのあたりの展開をざっくりと知った際に、ああ、この漫画を、自分は絶対に買わなければいけない、と思ったのです。

と言うのも。昔、これとほぼ同じ設定、同じラストの漫画を描けないかと夢想・妄想してた時期があるわけで。キャラやエピソードをちょこちょこと自由帳に描き残してみたものの、肝心のネームが全然描けなくて見事に挫折。その、自分が挫折してしまったソレと、ほぼ同じ内容の漫画が存在して、しかもどうやらヒットしているらしい…。これは絶対に読まなければと。自分の脳内でモヤモヤしていたアレは、どうすれば作品に成り得たのだろうかと。テスト用紙を前にして手も足も出なかった人間が、ここに来て正解が書かれた答案用紙を見せてもらえるような、そんな感覚で購入したという。

で。読んでみて、コレは面白いわと。プロの漫画家さんは、さすがだわと。自分が夢想していたソレより、何倍も面白い。こういう風に話を作っていける人だけが、漫画家になれるのだなと。…バクマンアニメ版の特番内で、編集の人が、「設定だけなら編集者でも、極端なことを言えば素人さんでも作れる。話まで描ける人が漫画家になれるんだ」と言ってたことを思い出したり。その通りなんだろうなと。

何にせよ、読んだことで、モヤモヤしていたそれがスーッと消えていってくれた、そんな気がしたり。読んで良かった。いや、まだ第一部、幼女時代の巻しか読んでないけど。

それはそれとして、ちょっと気になったことが。

漫画原作版よりアニメ版のほうが、キャラが可愛らしいように思えて、これはどうしてなんだろうと。フツーは逆で、漫画原作のほうがヨサゲに見えることのほうが多い印象が。おそらく、読者が想像する余地がある分、漫画のほうが各読者の理想のソレを呼び起こしやすいのでは、と想像してるのだけど。しかしこの作品は逆。何故。アニメ版でしか表現できない、声と動きが、とにかく秀逸だったのか。それとも、原作の絵柄の、力強さを持った極太のペンタッチが、キャラの可愛さ云々を殺してしまっているのだろうか。でも、表紙のカラー絵に関しては、可愛らしく見えるし…。このあたりの印象の違いは何に起因するのか。何かが足りないのか、何かが多過ぎるのか。さてはて。

もう1点。各コマがでか過ぎて…ちょっと…。なんだかスカスカな印象が。最近の漫画って、えてしてこんな密度だったっけ…? このコマの大きさだったら、一般的な単行本サイズ、あるいは文庫版サイズのほうが良かった。

さらにもう1点。サイズが大きいせいなのか、あるいは紙質が良すぎるのか、各巻の値段が高いあたりもちょっと。何かこう運命的なものを感じてしまったので「えいやっ」と買ってしまったけど。でも…。やっぱりちょっとお値段が高過ぎる…。だって最終巻まで揃えたら…ねえ?

2010/08/31(火) [n年前の日記]

#1 [emacs] emacsでウインドウ上のどの行にカーソルがあるのかを取得する方法が分からない

xyzzy なら (get-window-line) で取得できるのだが…。

_GNU Emacs Lispリファレンスマニュアル: バッファ内の位置 の、Function: count-lines の解説の中に、それっぽい記述が。
(defun current-line ()
"Return the vertical position of point..."
(+ (count-lines (window-start) (point))
(if (= (current-column) 0) 1 0) -1))

GNU Emacs Lispリファレンスマニュアル: バッファ内の位置 より

これで取得できるのか…?

2009/08/31(月) [n年前の日記]

#1 [pc] Microsoft Natural Wireless Laser Mouse 6000の電池を1本にしてみたり

やっぱり肩や腕が痛いわけで。マウスの重さが軽くなれば多少は違うだろうか、と思ったので単3電池2本のところを単3電池1本にしてみたり。多少は軽くなった。が、あまり違いはないか…。

2008/08/31() [n年前の日記]

#1 [iappli] ある程度できてきたのでまたバイナリを送った

あちらから来ていた修正要望はあらかた対応できたはず。

仮画像の一覧も送ったり。 :

もしかすると見落としがあるかもしれないので、念のために今現在バイナリに含めて使っている仮画像を一覧にして送っておいた。

#2 [prog] 画像一覧htmlを出力するPythonスクリプトを作成

以前そういう処理をするPerlスクリプトを作成していたのだけど、PerlMagickが必要なスクリプトで。試しに実行してみたら、PerlMagickが入ってない、と言われる。

Meadowを動かす都合上、Meadowのバージョンに合わせたImageMagick(PerlMagick)をインストールしておかないといかんわけで、そのあたりのやりくりが面倒になってしまって今は入れてなかった、のかもしれず。>自分の環境。かといって、またそのへんの環境設定で苦労するのもやはり面倒。

仕方ないのでPythonで書き直し。Python+PILなら、バージョンを固定してくるアプリ等は無いので。

というか、MeadowのImageMagickバージョン縛りはどうにかならんのか。いやまあ、ImageMagickがやたらバグがあって、あるいは仕様が頻繁に変更されがちなため、バージョン決め打ちじゃないと使えないというのが根本的な原因なんだろうけど。コマンドラインツールに渡すオプション文字列やパラメータすらバージョンによって結構変わってしまうImageMagickはどうにかならんのか。

とりあえずPythonで書いたソレをメモ。 :

mkimglisthtml.py という名前で作成。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# -*- coding:utf-8 -*-
# 
# 画像一覧htmlを作成するPythonスクリプト
# PILを使用
# 使用方法は スクリプト名 -h で表示される。

import re
import os
import sys
from optparse import OptionParser
import Image

def action_read_dir(indir):
    dirname = os.path.abspath(indir)
    filelist = []
    files = os.listdir(dirname)
    p = re.compile(r"\.(gif|jpg|jpeg|png|bmp)$", re.IGNORECASE)
    for fn in files:
        m = p.search(fn)
        if m:
            filelist.append(fn)
    
    return filelist

def output_image_album_html(indir, lst, ofname):
    dirname = os.path.abspath(indir)
    outlist = []
    
    header = """
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<meta http-equiv="Content-Style-Type" content="text/css">
<title></title>
<style type="text/css">
<!--
  td.inimg { text-align:left; }
  td { border:1px solid #aaa; padding:3px; }
  body { background-color:#ddd; }
  table { border-collapse:collapse; empty-cells: show; }
  p.filenameinfo {font-size:medium;}
  p.sizeinfo {font-size:small;}
  p.filesizeinfo {font-size:small;}
  p.palinfo {font-size:small;}
-->
</style>
</head>
<body>
<table>
"""
    outlist.append(header) # header 登録
    
    for fn in lst:
        pn = os.path.join(dirname, fn)
        im = Image.open(pn)
        (w, h) = im.size
        filesize = os.path.getsize(pn)
        pal = im.palette
        if pal is None:
            pallen = 0
        else:
            pallen = len(pal.palette) / 3
        
        str = "<tr>"
        str += """<td><p class="filenameinfo">%s</p></td>""" % (fn)
        str += """<td><p class="sizeinfo">%d x %d</p></td>""" % (w, h)
        str += """<td><p class="filesizeinfo">%d byte</p></td>""" % (filesize)
        str += """<td><p class="palinfo">%d color</p></td>""" % (pallen)
        str += """<td class="inimg"><img src="%s" width=%d height=%d alt="%s"></td>""" % (indir+"/"+fn, w, h, fn)
        str += """<td class="incomment"> </td>"""
        str += """</tr>\n"""
        
        outlist.append(str)

    footer = """
</table>
</body>
</html>
"""
    
    outlist.append(footer) # footer登録

    # ファイル出力
    
    if ofname == "":
        for s in outlist:
            print s.encode('cp932')
    else:
        fp = open(ofname, 'w')
        for s in outlist:
            fp.write(s.encode('cp932'))
        fp.close()

def main():
    usage = "usage: %prog [options]"
    parser = OptionParser(usage=usage, version="%prog 0.0.1")
    parser.add_option("-d", "--dir", action="store", type="string",
                      dest="indir", metavar="DIR",
                      help="read DIR name.", default=".")
    parser.add_option("-o", "--output", action="store", type="string",
                      dest="outfilename", metavar="FILE",
                      help="Output html FILE name.", default="")
    parser.add_option("-v", "--verbose", action="store_true", dest="verbose")
    parser.add_option("-q", "--quiet", action="store_false", dest="verbose")
    (options, args) = parser.parse_args()
    
    if len(args) != 0:
        parse.error("incorrect number of arguments")
        
    if options.verbose:
        print "read Dir    [%s]" % options.indir
        print "output html [%s]" % options.outfilename

    lst = action_read_dir(options.indir)
    output_image_album_html(options.indir, lst, options.outfilename)

if __name__=='__main__':
    main()
mkimglisthtml.py -d 画像群が入ってるディレクトリ名 -o 出力htmlファイル名

2007/08/31(金) [n年前の日記]

#1 [cg_tools] CAD関係を勉強中

HO_CADをインストールしてみた。 :

UIがDOS時代、いや、Win3.1時代のソレで閉口。メニュー項目を選択すると、大本のメニューが消滅してサブメニュー項目のみが表示されるあたりに困惑した。Windowsアプリの流儀には、基本的に沿ってないのだな…。もっとも、DOS時代のCADを意識して作られてるらしいので、それも必然なのか。昔からCADを触ってた人には、かえって使いやすいのかもしれん。

DJ!! Standard 2 をインストールしてみた。 :

UIが現代風。Microsfot Office を見ているかのような印象。タブを多用してるあたりも今風な印象。各図形の表示も、アンチエイリアスがかかってる。ただ、複線の引き方がわからない。

DOS時代のフリーのCADのアレコレを意識せずに使うのであれば、これが万人にお薦めかもしれず。少なくとも、MS Officeに触ったことがある人なら、UIで戸惑うことはないはず。

AR_CAD をインストールしてみた。 :

これは…! UI、特にメニューのあたりは、アイコンも同時に表示してるせいか、見た目ちょっとごちゃごちゃしてるけど。各コマンドの操作に関しては、妙に使いやすい。また、pdfでエクスポートできるのもヨサゲ。自分にとっては、これが一番使いやすそう。

#2 [vine][linux][epia] ダンボール工作でファン用のフード?を作った

Mini-ITXケース ES-1100W を横置きできるように、8cmファンをつけるフードを作り直し。AR_CADで図面?を引きつつ形状を検討。 図面をpdfエクスポートしたモノ _(1) _(2) 。各板は、ビニールテープでくっつけた。ビニールテープを貼ることで、空気も漏れなくなるだろうし。

ES-1100Wの厚みが、8cmよりちょっと短いぐらいなので、上下をダンボールの板で挟みつつ、隙間に数mmのダンボールを入れたらピタリと収まった。

結構冷えてくれる模様。 :

標準添付の 4cmファン x 1 を回していた時は、手で触るのを躊躇するぐらいにケース全体が熱くなってたけど。8cmファンで空冷したら、触っても熱さを感じない・ほんのちょっと暖かいかなと思う程度の温度になった。

てことは。Mini-ITXケースという、中が狭いケースであっても。それなりの風量のある8cmファンをつけてあれば、CPU+M/Bの発熱をある程度解消できる…ということだろうか。

つまり、4cmファンで冷却する ES-1100W ではなく、8cmファンで冷却する _Dirac Noah 800-B Rev1.5 あたりを選んでおけば、ここまで苦労せずに済んだのかもしれない。Noah 800-B なら、8cmファンの風が直接HDDに当たる配置になってるようでもあるので、仮に3.5インチHDDを入れてもなんとかなった可能性もありそうな。市場価格的には、Noah 800-B のほうが5,000円ほど高いけど。今回、裸族のマンションやらIDEケーブルやらを追加購入したことを考えると、コスト的にも最初から Noah 800-B を選ぶべき、だったのかもしれん…。

いやいや、HDDに風が直接当たるということは、HDDによって暖められた風がCPU+M/Bに当たるということで…。HDDはいいかもしれんが、CPU+M/Bの冷却がよろしくない状態になる可能性もあるのか。うーん。

_よくある買い物日記: Mini-ITXケース Noah 800-D :

購入レビュー記事が。ありがたや。写真が載ってるのが、とにかくありがたい。参考になる…。

HDDが40℃前後…てのはちとアレだなぁ。裸族のマンションでは33℃ぐらいだし。それと、やはりスペース的に厳しいあたりがなんというか。

2006/08/31(木) [n年前の日記]

#1 [java] _JMF Video Capture - JMFでビデオキャプチャ

NHKをつけてたら、小学生にクレイアニメを作らせる、てなニュースが流れてた。自分もやってみたいなと思ったが、キャプチャするソフトがない。980円で買ったUSB接続Webカメラはあるのだけど。

そもそも、フリーのプログラミング環境で、USBカメラから画像を取得することはできるんだろうか。疑問に思って検索してみたら、上記ページに遭遇。どうやら java でキャプチャはできるらしい。python でキャプチャする事例は見つからなかった。

クレイアニメを作るとなると…。現在の画像と、撮影済みの画像を、パカパカと切り替えて表示したりすれば、動きが判って作りやすいかもしれない。もしくは、オニオンスキンとやらで表示するとか。

_JMF入門 :

メモ。

この記事へのツッコミ

Re: JMF Video Capture - JMFでビデオキャプチャ by 名無しさん    2008/08/26 13:46
他にもライブラリはあると思いますが、OpenCVを使うと、pythonから、画像取得、画像処理が出来ます。

検索結果
http://www.google.com/search?q=OpenCV+python&lr=lang_ja

#2 [python] python関係をインストール

プログラミング言語 Python 関係のツールを色々インストール。

_Python標準リリース版 :

Windows向けの python-2.4.3.msi をインストール。

以前は ActivePython をインストールしたけど、今回は標準リリース版とやらをインストールしてみたり。

_Python for Windows extensions :

Windows 用に特化した何かが入ってるらしいけどよく知らない。とりあえず、 pywin32-209.win32-py2.4.exe をインストール。標準リリース版の Python を入れたときは、これも別途入れることになるらしいけど。ActivePython を入れた場合は一緒に入るので別途入れる必要はない、とどこかで見かけた気もする。

PythonWin なる環境が入ってるらしい。…標準リリースでついてくる IDLE なる環境は、Windows 上ではコード補完等してくれないのだけど。 *1 PythonWin なら補完をしてくれるらしいので、ちょっと期待。

_JapaneseCodecs :

本パッケージは、Unicode をサポートした Python において、EUC-JP、Shift_JIS、ISO-2022-JP などの日本語の文字エンコーディングを利用できるようにするためのコデック集です。

JapaneseCodecs より

JapaneseCodecs-1.4.11.win32-py2.4.exe をインストール。

_ctypes :

_こちらの記事 で入れていたみたいなので、必要なのかなと。…何に使うのかはよくわかってない。 ctypes-1.0.0.win32-py2.4.exe をインストール。

_wxPython :

Python で GUIツールを作れる。らしい。Tk とか Gtk とか Qt とかそのへんと似たようなもの、なのかなと。wxPython2.6-win32-unicode-2.6.3.3-py24.exe と、Doc & Demo の wxPython2.6-win32-docs-demos-2.6.3.3.exe をインストール。

_PythonSidebar ja :

Mozila Firefox のサイドバーにチュートリアル文書を表示できる、らしい。 python-sidebar-ja24.zip をインストール。

_Pydev :

eclipse 上で Python 関係の開発をしやすくする plugin、らしい。eclipse のアップデートマネージャ? 更新マネージャで、
http://pydev.sf.net/updates/
を指定すればインストールできるらしいが…。eclipse 3.2 が必要と言われてしまった。

今まで 3.1.2 を入れてたので、eclipse 3.2 のインストール・各種 pluginのインストールからする羽目に。トホ。…でも、DoJa 4.1 の最新版をDL・入れてみたら、色々と機能が追加されてたので、まあいいかなと。一応 DoJa プラグインも動いたみたいだし。

コード補完が使えるっぽい。

_Boa Constructor :

GUIビルダー。らしい。boa-constructor-0.4.4.win32.exe をインストール。

_SPE IDE - Stani's Python Editor :

Python用エディタ、らしい。SPE-0.8.2.a-wx2.6.1.0-py24.exe をインストール。…微妙に補完が怪しい。

*1: UNIX環境ななら補完等できるらしい。補完するのに readline なるものが関係してるらしく。Windows はソレがないので出来ないのだとか。ただ、Windows 環境でも最近は IPython なるものがあるらしく。それを使えば、というか使えるように色々入れていけば、補完等もできるとかなんとか。とメモ。

2005/08/31(水) [n年前の日記]

#1 [nitijyou] 親父さんが犬を動物病院に連れてった

両目が目やにだらけになったので。で、診察してもらったら結膜炎らしく。目薬を貰ってきたとか。後ろから顔を持ち上げるようにして目薬を注せとのこと。

外で飼ってる犬のせいもあって、体中ダニだらけだったらしい。1ヶ月ほどダニがよりつかなくなる薬を、3滴ほど投下したとか。その手の薬は市販されてもいるらしく。そんな薬があることすら知らなかったわけで、ウチは飼い主失格だな…。でも、1ヶ月も持つというのがなんだか不気味。

この記事へのツッコミ

Re: 親父さんが犬を動物病院に連れてった by Y    2005/09/01 20:18
ダニは外犬の宿命ですね。
散歩とかで草むらに突っ込む習性があるとダニが付き易いみたい。

うちでは昔ヒマな時に膝の上に乗せてダニ取りやってました。
ピンセットで毟ってやるんですが案外おとなしくしてるもんです。

ノミ取りの薬とかは市販品は効かないって聞きましたよ。
でも動物病院で処方してもらうと高いんですよね。
ダニ取り・ノミ取りの薬 by mieki256    2005/09/01 23:42
> ノミ取りの薬とかは市販品は効かないって聞きました

なんと。それは気になる話であります。

> でも動物病院で処方してもらうと高い

それだけ強力な薬を使ってるということなのかしら…
それもそれで怖いなぁ…

#2 [nitijyou] とりあえずチラシ作成作業は一段落

サーバにアップしてアドレスを相手先にメールで連絡。明日の朝、電話でその旨伝えておこう…。

#3 [game] _「エミュレータ」と呼ばれる不正プログラム

「PSP仰天裏ワザ…レトロゲームがタダで遊べる」というZAKZAKの記事。相変わらず、ZAKZAK。やっぱり意図的にやってるのだろうなぁ。 _(via あさってのほう)

#4 [zatta] _普通じゃないよ潜水艦

_普通じゃないよ潜水艦 その2
_普通じゃないよ潜水艦 その3

潜水艦内における各種トリビアを紹介しているページ。 _(via del.icio.us/otsune)

_『Man Machine System』 潜水艦って何? :

潜水艦関連の情報が多々。なんとなく、潜水艦の映画を作りたくなる人達の気持ちが判ったような。オタク属性のある人にとって、快感になりそうな話がたくさんありそう。

#5 [jiji] _Life is beautiful: 米国政府の「年次改革要望書」を読む

「年次改革要望書」は、日米双方の政府が、毎年、それぞれの国の企業が相手の国でビジネスをする場合の障壁になっている問題点を指摘し合い、相互に「市場開放」を進めようというために交換される文書である。
〜米国政府は米国資本の銀行や証券会社から、「郵便局の貯金業務が法律や税制の面で優遇を受けすぎており、かつ、日本国民が『郵便貯金は政府がバックにいるから100%安全だ』と思っているため公平な競争が阻害されている、なんとかしてくれ」というリクエストを受けていることが分かる。
ここまではっきりと米から要求が出ていたのか…。 _(via del.icio.us/otsune)

_Life is beautiful: 理科系人間にも分かる「小泉改革の本質」 :

今の日本が抱える一番の問題は、財政赤字である。支出が税収を大きく上回る状況を何年も続けて来たため、国債という形の大量の借金を抱える悲惨な状況になっているのだ。誰が考えても、この「支出が税収を上回る状況」は早急に解消すべきなのだが、それがとても難しいのである。
この問題の正しい解決方法は、その構造そのものを壊してしまうこと(=構造改革)にあるのだが、それがまた難しいのである。なぜなら、そういった構造を決める立場にいる政治家の多くが、同時に今の構造から多くの恩恵を受ける立場にあるからである。彼らとしては、構造改革をすることイコールその恩恵を失うこと、なので、当然のように構造改革に反対する抵抗勢力となるのである。

悲観論者は、「そんな状況では決して日本の国はまともにならないじゃないか」と嘆くかも知れないが、必ずしもそうではない。我々有権者には、『票』という武器がある。この武器を最大限に生かして、抵抗勢力を国会から追い出し、自分自身の目先の利益を犠牲にしてでも構造改革を進めてくれると信じるに値する政治家に票を投じれば良いのである。

#6 [jiji] _郵政民営化って要するに何なの?と政治に詳しい人に聞いてみた。

わかりやすい。合ってるかどうかはわからないけど。
だから、現状に不満がある人たちは、
 第一に、必ず投票すること、
 第二に、現状に不満があるんだから、前職・元職には投票しないこと。
これでいけばいいのに。政策なんか無視して。
シンプルだなぁ。 _(via 読書記録ChangeLog)

_夏休みの宿題提出・・・再び郵政民営化!! :

前述の記事のコメント欄で紹介されててちょっと気になったのでメモ。「外資にのっとられた」場合のシミュレーション記事。かしら。

この記事へのツッコミ

Re: 郵政民営化って要するに何なの?と政治に詳しい人に聞いてみた。 by けいと    2005/09/01 14:32
> 第一に、必ず投票すること、
> 第二に、現状に不満があるんだから、前職・元職には投票しないこと。

私は投票権を持つ前からずっとこうですよ^^;
親の教えもあるんですが…

原則として「悩んだら野党」にしています。

ただ、私の場合、
「日本の与党=地元では野党」という状態が続いているので
非常に面倒なのですが。
Re: 郵政民営化って要するに何なの?と政治に詳しい人に聞いてみた。 by mieki256    2005/09/01 23:13
> 原則として「悩んだら野党」

なるほど。それもまたシンプルで判りやすいですな…。
追加項目 by がんした    2005/09/03 02:09
第三に、投票したい人が居ない場合は、白紙投票。過半数を超えれば選挙やりなおしに出来ます。
Re: 追加項目 by mieki256    2005/09/06 02:28
> 白紙投票が過半数を超えれば選挙やりなおし

恥ずかしながら、このルールは知らなかったのですが…
実際有効なルールなんでせうか?

検索したところ、
「そういう制度にしよう」と提案してる事例は見かけたものの、
そうなってる、という事例は見かけなくて疑問に思ったり。
Re: 追加項目 by がんした    2005/09/08 00:01
ぐぐってみたが、詳細不明。
ひょっとしたら「有効票数の過半数が白紙なら再選挙」ではなく
「有効票数の半数以上の票が取れなければ、再選挙」だったのかもしれない。
今度、入れ知恵してくれた知人に確認してみます。

#7 [pc] _タイトーと言えば…、26年ごしの懺悔

PC-8001発売当時、雑誌記事用にインベーダーゲームの画面を捏造したことが…という話。

人間という生き物は、「文字」「テキスト」だけではダメで、「画像」が目の前に現れたとき、急激に想像力が働き始める・創作意欲が湧き始める生き物なのだろうか、てなことを思ってしまったり。

そういや自分がMZ-700を選んだのも、MZ-80K2E等の広告にあった、『ワープするエンタープライズ号』の画面のせいだったような…。子供だったし何も知らなかったから、「こんな画面が出せるなら全然問題なし」と単純に思ってしまった。キャラグラなのに。騙された。というより、画像一枚のその向こうに、理想のPCを夢見てしまった・想像してしまったのだろうな。 _(via del.icio.us/otsune)

#8 [anime] _アニメアンテナ製作日記:機動戦士Zガンダム声優交代劇の真相に迫る

実は私は音響監督の藤野氏が「故意に連絡をしなかった」とは考えない・・というか考えたくは無いのだ。何故なら・・

私にも似たような経験があるからだ・・。
声優さんに対して、相談に乗ったり、アドバイスしたり、なにくれと世話を焼いたり、指導したり、育てようと一生懸命頑張ってきた人にとって実は、「何が一番ショックであるのか」という事。

それは、連絡が取れなくなってしまうという事。その中でも、特に滅入るのが「事務所が変わったにも関わらず連絡が無かった」という事。
そういう場面・可能性もあったかと目ウロコ。 _(via del.icio.us/otsune)

#9 [cg_tools] _ソニー新技術!2次元画像から3Dアニメを生成

_ワールドビジネスサテライト/ WORLD BUSINESS SATELLITE : テレビ東京 - ニュース映像

スゴイ! 人間の顔の静止画像はもちろんのこと、一枚絵のイラストで動かしたり、果物を動かしたり…。これはスゴイ。マジレンジャーの野菜ができそうな…。つーか、アニメ制作ですぐに使えてしまうのでは。 _(via hard で loxse な日々)

#10 [cg_tools] _個人で使える5万円台のモーションキャプチャキットが登場

うお。この値段なら… _全国アニメスタジオ天安門広場化計画 も夢じゃない! <いや、それはない。 _(via ryuzi_kambe の?D)

#11 [pc] _スラッシュドット ジャパン | 1チップMSX、 商品化ならず

あらら。 _(via サーバ管理者日誌)

1チップMSXの話を見かけたときに想像したのは :

「ライターなみのサイズなのに、パソコン」みたいなイメージだったりして。>自分。で、予約ページを見たら値段もさることながらそのサイズにガックリきた記憶が。恐るべし、「1チップ」なる単語。妙に期待させてしまう魔の呪文。

カートリッジ端子とか映像端子とか全部ケーブルで外に出して、本体自体はキーホルダーサイズにできなかったんだろうか。

「俺さぁ、新しいパソコン買ったんだー。ホラ、コレ」
「あはは。○○さん、冗談ばっか。それ、オモチャじゃん」
「いやいや。嘘じゃないよ。ケーブルを繋げば…ホラ」
「えーっ! うそーっ!」

みたいな展開をってそんなの無理か。…よく考えてみると、今はもう携帯電話という形で皆がPCを持ち歩いてる時代なんだよな。極小PCなんて目新しくもないのか。

この記事へのツッコミ

Re: スラッシュドット ジャパン | 1チップMSX、 商品化ならず by けいと    2005/09/02 00:59
> カートリッジ端子とか映像端子とか全部ケーブルで外に出して、本体自体はキーホルダーサイズにできなかったんだろうか。

いや、言ってることが破綻してますってば^^;;

キーホルダーサイズなのに、
カートリッジ端子とか映像端子が
すでにキーホルダーよりでかいという話が…

いろいろ考えても現状では携帯電話よりいい形は思い浮かびませんね^^;
携帯アプリで16bitゲームできるようになってきたし。
Re: スラッシュドット ジャパン | 1チップMSX、 商品化ならず by mieki256    2005/09/02 19:38
> カートリッジ端子・映像端子がすでにキーホルダーよりでかい

いや、だからこそ、その各端子を外にケーブルで出して…

と書いたところで気がつきました。
ああっ。ピン数か! ピン数が膨大だから、
それらを外部に出すための端子自体が
とんでもなくデカイものになると。しまったぁ… orz

シリアル-パラレル変換を用意すれば
外に出すための端子も小さくなりそうですが、
そこまで設計・製造すると更にコストがかかりますしねぇ…
信号のタイミング云々も絡んできそうだし。
どう考えても実現は難しいですな。
Re: スラッシュドット ジャパン | 1チップMSX、 商品化ならず by けいと    2005/09/03 01:06
> そこまで設計・製造すると更にコストがかかりますしねぇ

完全無視、とまでは行きませんが、
現実味のないコストをかけてもいいならできそうな気がしてきました(笑)

いわゆるマザーボード部分の体積は限りなくゼロである、という前提で行くと
イーサネットコネクタ2つ分で何とかなるかも。

あとは、このコネクタ自体の体積も
ミニUSBやIEEE1394ぐらいに小さければ
キーホルダー化も無理じゃない!!

まず1つ目のイーサネットコネクタにVGA出力/キーボード/マウスを収容。
これは
http://www.raritan.co.jp/products/kvm_switches/z_series/prd_line.aspx
この機能を内部に格納すればOK。

次に2つ目のイーサネットコネクタはそのまんまLANとして使用。
今流行の?シンクライアントのようにネットワークブートしてシステム起動。PoEで電源供給もできるからバッテリー要らず。
もちろん立ち上がってしまえば通信環境も整う。
USB未対応のCDやFDのような外部記憶デバイスも
LAN対応のマシン経由でアクセス可能。

ブロック図にするとこんな感じ(笑)

キーホルダーPC

■−Ether1----□-+-KB
| +-MOUSE
| +-monitor
| +-USB?

+−Ether2(PoE)---□-+-[ACadp]---AC100V
+-[HUB]----(Network)
コネクタ2つでPC本体ができてしまう話 by mieki256    2005/09/06 02:17
> イーサネットコネクタ2つ分で何とかなるかも

うお。それ、面白いですな!
たしかにコネクタ2つならキーホルダーサイズに収まるかも…。

でも既にMSXじゃないような… (^^;
考えてみるとMSXってのはアドレス空間にROMを配置・交換できるところが
面白いのだろうか…。いや、そういう仕組みなのかは判らんですが。
FM音源をスロットに挿したりもしてたしなぁ…。よくわからん…。

#12 [anime] _世間一般では、拘りがあろうとなかろうととにかくキモければオタクなのではないだろうか。

そうかもしれない、と思ってしまったのでメモ。

#13 [zatta] _「経済が苦しいから、拉致問題とかを起こすんですよ。経済がうまく回れば、そんなことはなくなる。平和な国になる」

ほりえもん発言、らしい。なんとなく、この世代に共通する感覚なのかなと思ったり。 *1 にしても、該当記事の批判内容もなんだか妙な。北朝鮮と米を同列において話をしてるのはどうかと。ほりえもんとたいして変わらん大味ぶり。 _(via 読書記録ChangeLog)
*1: 自分も、「食えれば、大体は安定しちゃうもの」という感覚があるので。

2004/08/31(火) [n年前の日記]

#1 [nitijyou] 風がなくなった

朝方はかなりの風だったけど。通過したかな>台風。

#2 [zatta] _図解言語入門

_(via あけてくれ)

#3 [windows] _録音ソフト「Rockoon」

録音してる際の音量が画面表示されるのでありがたい。

#4 [anime] デカレンジャー、凶悪犯脱走の回

そうきたか。やられた。いや、途中で予想はできたけど。それでも上手い。脚本書いた人、頭いいなぁ。元ネタがあったりするんだろうか。

ひょっとして、龍騎の時に使おうとしたネタだったりして。

#5 [zatta] 爪を切らないでキーボードを叩くと病気になりやすい

という仮説 *1 を検証するにはどうしたら。
*1: 爪が伸びた状態でキーボードを叩く → 不快 → ストレスが蓄積していく → じわじわと精神面がまいってくる → 病気になる。

#6 [pc] MZ-700のプログラムを変換中その5

を変換。どれも Hu-BASIC用。「ラシャーヌカントリークラブ」は、たしか月刊マイコンに掲載されてたんじゃないかしら。

数値入力でも結構遊べるなぁ :

「スーパーゴルフ」をRUNしてみて感心。
_[スタート画面] _[ゲーム画面]
「クラブ」「打つ方向」「強さ」を、数値入力(!)すると、その方向にボールが飛んでいくだけなのだけど。これだけでもゲームになるのだな。

見た目がキャラグラなので、内部でどんな数値を持ってるか判らない。故に思ったとおりにコントロールできなくて、もどかしさを感じる ―― 逆に、上手く飛んだときは嬉しいわけで。「風向き」「風の強さ」「グリーンの芝目」「傾き」「ボールを打つタイミング」等々、今のゴルフゲームに備わってる要素は何一つないのだけど。不自由さがある分、面白い。…もっとも、今のユーザなら数値入力する時点で面倒臭くなって投げ出しそうではある。

数値入力でふと思ったけど、こういう入力・遊びは、携帯で使えるんじゃないか。でもないか。小数点を入力できないような。<そういう問題じゃないか。

リアルタイム性がでてくるとサクサク進む :

「ラシャーヌカントリークラブ」をRUNして、また感心。
_[スタート画面] _[ゲーム画面]
キャラグラで3Dっぽくゴルフコースを描いてる。ボールを打つ際、タイミングによって強さが変わったり、どのくらい曲がるかをキーを押してる時間で変化させたり。つまりは、リアルタイム性が若干入ってる。「スーパーゴルフ」ほど、計算どおりにいかないし、判定もアバウトだけど。ゲーム自体はサクサク進む。なるほど。こういう方向で進化していくわけか>ゴルフゲーム。

この頃のゲームは音楽が鳴り終わるまで一切の操作ができない :

かなりイライラ。わざわざユーザを待たせていた & ユーザがそのことに不満を持たなかったなんて。昔は、時間の流れがゆっくりしてたのですな。

ついでに「スタートレック」 :

_[スタート画面] _[ゲーム画面]
ゲーム内容は説明するまでもないですな。

全体マップ(銀河地図)って、通ったところの情報が残らなかっただろうか。今居る位置の情報しか表示されないのだけど。mztへの変換をミスったかと思い、再度録音・変換してみたけど、結果変わらず。

…判った。星域レーダーを使わないと、全体マップに反映されないのか。

ついでに「レイホープ研究所」 :

_[スタート画面] _[ゲーム画面]
いわゆる「倉庫番」タイプ。画面中央のウイルスが広がる前に、倒れてる人達を押して運んで隔離室に入れ、ブロックも押して運んで部屋の入り口を封鎖するのが課題。なかなか難しい。クリアできません。

難しいのは、BASICで書かれてるからだろうな。カーソルキーを押しても反応が鈍い。ユーザの操作に対して、即座に、正確に反応するというのは、ゲームにとって非常に大事なことなのだな。

ふと :

キャプチャ画面を載せてるだけでも怒られたりするんだろうか。…もし、問題があったら言ってくださいであります>各製品の権利云々を持ってる方。そん時は消しますので。 *1

*1: でも、そういうことしてると、誰も、何の記録も、残せなくなりそうですね。

2003/08/31() [n年前の日記]

#1 [pc][linux][gentoo] 5度目のインストール

gnomeのインストールがグチャグチャになってしまったので、ファイルシステム作成からやり直して4度目のインストール。LiveCDと同じgs-sourcesを選べばスンナリ行くだろうかと思って、gentoo-sourcesではなくgs-sourcesを利用。ネットで見つけたページに書かれてた /etc/make.conf と同じような内容にしてみたり、英文ドキュメントによる xfree-drm のインストール手順で作業してみたものの、いつのまにか次々とコンパイルが始まってしまったので、またファイルシステム作成からやり直し。5度目のインストール。

こんな事なら、最初から emerge sync とかして、全てをコンパイルする覚悟を決めてからやれば良かった。3〜4日もあればそこそこコンパイルできるだろう。しかも最新状態になるし。「急がば回れ」だったな…。

ネットで見つけた、とあるインストール記録には、カーネル作成=10分ぐらい、と書いてあった。…きっとCPUが3GHzぐらいの富豪ユーザに違いない。あるいは、自分の環境は何を削ればいいのかよくわかってる上級者ユーザなんだろう…。

2002/08/31() [n年前の日記]

#1 時報

まとめて書いてますー

最近ビデオデッキの時間がどんどん遅れていくのです。
一応、NHK教育、昼12:00の時報の周波数で、時刻合わせをする設定をしてたはずなんですが。
もしかして、時報の前後に変な音楽流すようになったとか、そもそも時報を流さなくなってるのかな。

2001/08/31(金) [n年前の日記]

#1 トゥーンレンダリングと未来博その2

ときメモ3のスクリーンショットを見てビックリ。
あそこまで表現できるなら、もうセルアニメは要らないのでは。
TV向けのアニメなんてVGA程度の解像度があれば充分だし。
ゲームメーカの持つ技術だけで、リアルタイムにTV向けアニメ動画を制作できちゃいそう。


親父さんに引っ付いて、未来博に行って来ました。
午後だったので比較的空いてて良かった。 _(以下略)

#2 [seiji] 未来博その2

親父さんに引っ付いて、またまた未来博に行って来ました。
午後だったので比較的空いてた上に、気温も低めで助かった。


立体映像関係の出し物を見てきました。
映像技術(3DCG)は良かった。
でも、中身(脚本・演出・世界設定など)が子供向け。
NHK教育の子供向け番組以下の劣悪なストーリー。
おじさんにはツラい。


技術館とやらで、プログラミング講習モドキを試しに受けてみたり。
何も知らないおじさんの振りをして受講してきました。
(でも、キー打つ速さで薄々向こうもわかってただろうなぁ)
いや、この手の講習ってどんな感じで進むのか知りたくて。

なんか、会津大学が協力してる模様。
人が来なくて、だだっ広いPCルームに、受講者は自分一人。寂しい。

内容は、 _Visual Legacy Basic なる学習用ソフト 上で、BASICで書かれたピコピコゲームプログラムをコンパイル。
このVLBとやら、Javaで作られてる模様。
会津大学製で既に商品化されてる、と講師の方は言ってました。
質疑応答用に、講師のPCとのお絵描きチャットが実装されてることに感心。

実際の講習は、プログラミングをするわけではなかったです。
IMEの使い方や、お絵描きチャットの使い方を教えたりとか。
出来合いのソースを数行書き換えて、コンパイルすると結果が変化することを示す程度。

ソースを書き、コンパイルすることで、PCがプログラムで動く様子を理解させることが目的のようですね。
帰りに一枚、VLB体験版入りCDを貰いました。赤字にならないか心配。

それにしても。
ネットで検索してみたら、件のVLBの情報が全く見つからないのだけど。
この手のソフトの情報が、ネットに無いのはかなーりマズイ気が。
かろうじて見つけた上記のページも、単なるテキストを全部画像にするなど勘違い具合炸裂。
こういうところがとっても福島県っぽいゾ (´ー`)y-~~


夜になったら、噴水やら花火やらレーザーやらのショーが。
よく作ったなーと思いつつ、あまり面白くなかった。
単なる花火の音で観衆が驚いててなんだか興醒め。


帰り際、山一面に、LED?使用の蛍が設置されて点滅してました。
これは綺麗だった。
夜は真っ暗になる田舎だからこそ作れた美しさ。

2000/08/31(木) [n年前の日記]

#1 4Dマウス

今日も午後から教習所。
予約を入れてきたけど、来週中には仮免みきわめ前まではイケそう。
サボらなければ、だけど…

「免許をとろう」ですが。
学科の問題数、少ないかも。
所詮ゲームなのかな、みたいな。

ロジクールマウスを愛用してたのですが。
ン年使ってただけあって、底面がザラザラ。滑らなくなってきたのです。
で。
昨日、パソコン工房で新しいマウスを買ってきました。
4D-Mouseってやつ。
ホイール(ボタンにはならない)x2。
前面マウスボタンx3。サイドボタンx1。

早速繋いでみましたが、これはグッド。
ボタン一つ増えただけでこんなに快適とは。
Linuxで使う時がまた良い感じ。
カッチリ3ボタン用意されてるって気持ちイイ。
かなり使いやすくなったですよ。

というか。
ロジクールマウスのホイール部、ホイールとしてもボタンとしても固すぎ。
押すの辛かったデス。

しかしこれで\1580とは >4D-Mouse
なんか得した気分。
でも不満もありますが。
今まで使ってたロジクールマウスのドライバは、カーソル移動時の加速度も調整可能。
加速度も設定できるとかなり快適に使えるんですが。
さすががにそういう機能は、こちらにはないみたい。
あと、ホイールがスルスル回るんですが、どれだけ回したかわかりづらい。

もう一つ同メーカーの赤外線ワイヤレスマウスも買ってきてあるんですが。
ホイールx2、マウスボタンx2、サイドボタンx1。
ホントはコード式が欲しかったんだけど売ってなくて。
電池がどれだけ持つのか、ちょっと心配。
長持ちしない時は見切りをつけて別の買ってくるしかないなぁ。

1999/08/31(火) [n年前の日記]

#1 (NoTitle)お腹が痛くてお昼頃起...

お腹が痛くてお昼頃起床。しかし眠くて1時間後また寝る。PM8:00起床。

犬が帰ってこない。うーん…。

フリーのHTMLエディタを調べているうちに、フォトショップでJPEG保存した画像のサイズ取得に失敗する不具合の情報が。サムネイルを作ると変なサイズ情報になってしまうらしい。
しかしいいHTMLエディタあるんですね。個人的には HTML Maker AZUKI が凄いなと。フリーなのに機能豊富だし、画面のレイアウトも煩くない。しかも HTML文法チェック機能までついてる。惜しむらくはオイラの環境だと、漢字入力時の文字色がおかしな色になって入力がめっちゃやりづらいって事。それさえなければ、シェアウェアなのに2年近くも新バージョンが出ない HTML Builder Pro に見切りをつけて、さっさと乗り換えるのに。

以上、20 日分です。

過去ログ表示

Prev - 2019/09 - 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

カテゴリで表示

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


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

Powered by hns-2.19.6, HyperNikkiSystem Project