mieki256's diary



2019/04/25(木) [n年前の日記]

#1 [pc] Z80のアセンブラについて調べていたり

MZ-700エミュレータ上で動く何かしらを、アセンブラで書けるかどうか確認したくなったので、Z80用のバイナリを出力できるアセンブラをググっていたり。

ググった感じでは、Z80AS が使われている場合が多いようだなと…。

_We Love MZ-700
_Z80 Abusolute Assembler 'Z80AS'

MZ-80K/700エミュレータで利用できるファイルフォーマット ―― .mzt で出力できるあたりがとてもヨサゲ。

問題は、どういうアセンブラソースを書けば MZ上で動くのか、そこが分からないという…。

モニタサブルーチンの一覧をメモ。 :

MZ-700 のマニュアルを発掘して眺めてみたり。

モニタ 1Z-009A に色々サブルーチンがあるので、そのあたりを呼べば Hello World ぐらいは楽に書けそうな気がする。後々作業する際のことを考えて、サブルーチンの一覧を試しにメモ。

_1Z-009Amonitor_note.pdf
_1Z-009Amonitor_note.csv

MZ-80K/700 は、テープからロードすると 1200h以降にプログラムが格納されるらしいけど、終了する時はどんな儀式を行わないといかんのか、そこが分からない。RET を呼ぶだけでいいのだろうか。

余談。マニュアルを眺めていたら、S-BASIC や Hu-BASIC がロードされた直後は、VRAM がフツーのRAMに切り替わると知った。フリーエリアは増えるけど、その代わり S-BASIC や Hu-BASIC で、いきなり VRAM に値を書き込んで何かを表示しようとしても、メモリ上の何かが破壊されるだけで画面表示はされない、ということかな…。これが MZ-80K用のプログラムなら、VRAM を RAM に切り替えたりはしないから、いきなり VRAM に書き込むこともできるのだろう。その代わり、フリーエリアは少なくなるはず。

#2 [pc] PC-6001のエミュレータを試用

Z80関係のサイトを眺めていたら、PC-6001の互換BASICがあると知り、興味が湧いたのでエミュレータを試用してみたり。

今回試したのは以下。

_PC-6001用互換BASIC
_PC-6001VX - ダウンロードのページ: 808 Midway
_Burnout.-Develop- PC6001VW3
_Burnout.-Develop- PC6001VW4
_ぱぴこんのこころ - PC6001V

PC-6001VX、PC-6001VW3/4 は互換BASICでも動いてくれた。ただ、PC6001V は CRC が違うと言われて動かなかった。おそらく実機のROMを入手しないと動かない作りになっているのだろうな…。

さておき、懐かしい緑色の画面が表示されて、なんだか感動。

もっとも、自分がナイコン族をやってた頃に触っていたPCなので、BASICの仕様等をさっぱり把握してなくて。仕様が分からないから、何かしらを打ち込んで遊ぶこともできず。当時はベーマガのリストを意味も分からずに打ち込んでいただけだから…。

2018/04/25(水) [n年前の日記]

#1 [linux][ubuntu] Linux Mint機にLXDEやxfce4をインストール

Gateway M-2408j + Linux Mint 18.3 cinnamon に、LXDE や xfce4 をインストール。

LXDE のインストールは、 _2017/11/10の日記 を参考にして作業。

xfce4 のインストールは以下。
sudo aptitude install xfce4 mint-meta-xfce
Linux Mint の場合、mint-meta-xfce というメタパッケージがあるらしい。知らなかった…。

_Installing XFCE on Linux Mint Cinnamon - Linux Mint Forums

$ sudo aptitude search mint-meta

i   mint-meta-cinnamon     - Set of packages installed by default in the Cinnamon edition of Linux Mint
i   mint-meta-codecs       - All the packages required for multimedia support in Linux Mint.
i   mint-meta-codecs-core  - All the packages required for multimedia support in Linux Mint.
p   mint-meta-codecs-kde   - All the packages required for multimedia support in Linux Mint
i   mint-meta-core         - Core Linux Mint packages
p   mint-meta-kde          - Set of packages installed by default in the KDE edition of Linux Mint
p   mint-meta-mate         - Set of packages installed by default in the MATE edition of Linux Mint
i   mint-meta-xfce         - Set of packages installed by default in the Xfce edition of Linux Mint

vnc4server をインストールして、VNCで接続できるか動作確認。~/.vnc/xstartup の内容は以下。(LXDEを使う場合)
#!/bin/sh

# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# unset DBUS_SESSION_BUS_ADDRESS
# exec /etc/X11/xinit/xinitrc

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources

# xsetroot -solid grey

# export XKL_XMODMAP_DISABLE=1
export XMODIFIERS=@im=scim
export GTK_IM_MODULE=scim
export QT_IM_MODULE=scim
# ibus-daemon -dxr
scim -d &

# x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
# x-window-manager &

# exec xfce4-session &
# startxfce4 &
#/etc/X11/Xsession
# exec /usr/bin/gnome-session --session=gnome-classic &
# gnome-session --session=gnome-fallback &

lxsession -s LXDE &
vncconfig -iconic &

日本語入力は、scim-anthy をインストールして指定した。Ctrl + Space で日本語入力のON/OFFができる。

#2 [linux][ubuntu] Connamonを選ぶべきではなかったのかも

Linux Mint 関係の記事をググっていたら気になる話が。

_Linux Mint その79 - Cinnamonでアプリの起動速度の改善 - kledgeb

Cinnamon ってアプリの起動速度が一際遅かったのか…。なんかもっさりだな、とは思ってたけど…。失敗した。MATE か Xfce を選んでインストールすべきだった。

まあ、Linux Mint 19 から改善されるという話らしいから、それまでは我慢かな…。

2017/04/25(火) [n年前の日記]

#1 [python] pysdl2でSDL_Render云々を調べていたり

まだ pysdl2 を触っていたり。

_SDL2の使い方 - mirichiの日記 によると、「SDL_Renderer と SDL_Texture を使えば SDL2 は高速な描画ができる」という話らしいので、pysdl2 でそのあたりを使えるかどうか試したり。

sdl2を使った版。 :

ウインドウを表示して画像を円運動させるだけのスクリプトを書いてみたり。以下のソースが参考になった。ありがたや。

_Example of render to texture with SDL2

手元のソースは、こんな感じになった。

_texture_render_test.py
_res/hello.png
u"""
PySDL2のテスト.

SDL_Texture と SD_Renderer を使うと高速描画できるらしいので試す。
でも、本当に速くなっているのかな…?

動作確認環境:
Windows10 x64 + Python 2.7.13 32bit版 + PySDL2 0.9.5
"""

import os
import sdl2
import sdl2.sdlimage
import ctypes
import math

SCREEN_SIZE = (640, 480)
# SCREEN_SIZE = (1280, 720)


def main():
    u"""メイン処理."""
    # PySDL2 の初期化
    sdl2.SDL_Init(sdl2.SDL_INIT_VIDEO)

    # ウインドウを作成して表示。
    # タイトル文字列、表示位置、ウインドウサイズを指定している
    window = sdl2.SDL_CreateWindow(b"render test",
                                   sdl2.SDL_WINDOWPOS_CENTERED,
                                   sdl2.SDL_WINDOWPOS_CENTERED,
                                   SCREEN_SIZE[0], SCREEN_SIZE[1],
                                   sdl2.SDL_WINDOW_SHOWN)

    # ウインドウから renderer を取得。ウインドウ、インデックス、フラグを渡す
    # インデックスが-1なら初期化

    # fg = 0
    # fg = sdl2.SDL_RENDERER_PRESENTVSYNC | sdl2.SDL_RENDERER_ACCELERATED
    fg = sdl2.SDL_RENDERER_ACCELERATED
    renderer = sdl2.SDL_CreateRenderer(window, -1, fg)

    # 画像ファイルのパスを取得
    filepath = os.path.join(os.path.dirname(os.path.abspath(__file__)),
                            "res", "hello.png")

    # 画像をサーフェイスとして読み込み
    # png等の読み込みには SDL2_image を利用する
    surface = sdl2.sdlimage.IMG_Load(filepath.encode("utf-8"))

    # 画像サイズを取得しておく
    w = surface.contents.w
    h = surface.contents.h
    print("w,h = %d,%d" % (w, h))

    # サーフェイスをテクスチャに変換
    # SDL_CreateTextureFromSurface() を使えば変換できる
    texture = sdl2.SDL_CreateTextureFromSurface(renderer, surface)

    # テクスチャに変換したからサーフェイスは用済み。解放してやる
    sdl2.SDL_FreeSurface(surface)

    ang = 0

    interval = sdl2.SDL_GetPerformanceFrequency() / 60
    oldtime = sdl2.SDL_GetPerformanceCounter()

    running = True
    while running:
        # メインループ

        # イベントを調べる
        # 閉じるボタンのクリック or ESCキーが押されたらメインループを終了
        event = sdl2.SDL_Event()
        while sdl2.SDL_PollEvent(ctypes.byref(event)) != 0:
            if event.type == sdl2.SDL_QUIT:
                # 閉じるボタンがクリックされた
                running = False
                break
            if event.type == sdl2.SDL_KEYDOWN:
                # 何かのキーが押し下げられた
                if event.key.keysym.sym == sdl2.SDLK_ESCAPE:
                    # ESCキーが押された
                    running = False
                    break

        # テクスチャの表示位置を算出。円運動をさせている
        rad = math.radians(ang)
        r = SCREEN_SIZE[0] / 6
        x = int(r * math.cos(rad) + (SCREEN_SIZE[0] / 2) - (w / 2))
        y = int(r * math.sin(rad) + (SCREEN_SIZE[1] / 2) - (h / 2))
        ang = (ang + 3) % 360

        # 画面をクリア
        sdl2.SDL_RenderClear(renderer)

        # テクスチャの転送元領域を設定
        src_rect = sdl2.SDL_Rect(0, 0, w, h)

        # テクスチャの転送先領域を設定
        dst_rect = sdl2.SDL_Rect(x, y, w, h)

        # テクスチャをウインドウの renderer に転送
        # 転送元領域に NULL を指定すれば、全体を指定できる、はずなのだが…
        # sdl2.SDL_RenderCopy(renderer, texture, None, dst_rect)
        sdl2.SDL_RenderCopy(renderer, texture, src_rect, dst_rect)

        # ウインドウ(renderer)の内容を更新
        sdl2.SDL_RenderPresent(renderer)

        # ループの時間待ち
        while True:
            if sdl2.SDL_GetPerformanceCounter() - oldtime >= interval:
                break
            sdl2.SDL_Delay(0)
        oldtime = sdl2.SDL_GetPerformanceCounter()

    # メインループ終了

    # テクスチャ、renderer、ウインドウの解放
    sdl2.SDL_DestroyTexture(texture)
    sdl2.SDL_DestroyRenderer(renderer)
    sdl2.SDL_DestroyWindow(window)

    # sdl2を終了
    sdl2.SDL_Quit()


if __name__ == '__main__':
    main()

長い。ウンザリしてきた。

以下で実行。
python texture_render_test.py
texture_render_test_ss.png

一応、分かった点について、いくつかメモ。

ウインドウを生成したら、sdl2.SDL_CreateRenderer(ウインドウ, インデックス, フラグ) を使って、SDL_Renderer を得られる。
renderer = sdl2.SDL_CreateRenderer(window, -1, fg)
フラグには、sdl2.SDL_RENDERER_ACCELERATED を指定しておけば、ひとまずハードウェアアクセラレーションが適用、されるのかな。たぶん。 _SDL_RendererFlags を眺めると、vsyncと同期するフラグもあるようで。

テクスチャクラス SDL_Texture は、サーフェイスから変換できる。sdl2.SDL_CreateTextureFromSurface(SDL_Renderer, サーフェイス) を使えばいい。
texture = sdl2.SDL_CreateTextureFromSurface(renderer, surface)

画面への描画の仕方は…。テクスチャを renderer に転送することで描画するようで。
sdl2.SDL_RenderCopy(転送先のSDL_renderer, 転送元テクスチャ, 転送元領域, 転送先領域)
みたいな感じ。

_SDL_RenderCopy

転送元領域や転送先領域は、sdl2.SDL_Rect(x, y, w, h) で用意しておく。のかな。たぶん。

sdl2.extを使った版。 :

sdl2を使った版は、やっぱり色々と記述が面倒臭いので、sdl2.ext を使って少しは行数が短くなるように書いてみたり。

_texture_render_test_ext.py
u"""
PySDL2のテスト.

SDL_Texture と SD_Renderer を使うと高速描画できるらしいので試す。
sdl2.ext を利用して、少しは行数が減るように書いてみる

動作確認環境:
Windows10 x64 + Python 2.7.13 32bit版 + PySDL2 0.9.5
"""

import sdl2
import sdl2.ext
import math

SCREEN_SIZE = (640, 480)
# SCREEN_SIZE = (1280, 720)

# リソース(画像等)の場所を指定
RESOURCES = sdl2.ext.Resources(__file__, "res")


def main():
    u"""メイン処理."""
    # PySDL2 の初期化
    sdl2.ext.init()

    # ウインドウを作成して表示。
    window = sdl2.ext.Window("Hello World", size=SCREEN_SIZE)
    window.show()

    # ウインドウから renderer を取得。ウインドウ、インデックス、フラグを渡す。
    # インデックスとフラグは省略可能。インデックスのデフォルト値は index=-1
    # フラグのデフォルト値は flags=sdl2.SDL_RENDERER_ACCELERATED

    # fg = sdl2.SDL_RENDERER_PRESENTVSYNC | sdl2.SDL_RENDERER_ACCELERATED
    fg = sdl2.SDL_RENDERER_ACCELERATED
    renderer = sdl2.ext.Renderer(window, flags=fg)

    # テクスチャベースのスプライト、を作成できるクラス?、を生成
    factory = sdl2.ext.SpriteFactory(sdl2.ext.TEXTURE, renderer=renderer)

    # スプライトを1つ生成。画像の読み込みも行う
    sprite = factory.from_image(RESOURCES.get_path("hello.png"))

    # スプライト描画用のrendererを生成
    spriterenderer = factory.create_sprite_render_system(renderer)

    # テクスチャサイズを取得しておく
    w, h = sprite.size
    print("w,h = %d,%d" % (w, h))

    ang = 0

    interval = sdl2.SDL_GetPerformanceFrequency() / 60
    oldtime = sdl2.SDL_GetPerformanceCounter()

    running = True
    while running:
        # メインループ

        # イベントを調べる
        # 閉じるボタンのクリック or ESCキーが押されたらメインループを終了
        events = sdl2.ext.get_events()
        for event in events:
            if event.type == sdl2.SDL_QUIT:
                # 閉じるボタンがクリックされた
                running = False
                break
            if event.type == sdl2.SDL_KEYDOWN:
                # 何かのキーが押し下げられた
                if event.key.keysym.sym == sdl2.SDLK_ESCAPE:
                    # ESCキーが押された
                    running = False
                    break

        # テクスチャの表示位置を算出。円運動をさせている
        rad = math.radians(ang)
        r = SCREEN_SIZE[0] / 6
        x = int(r * math.cos(rad) + (SCREEN_SIZE[0] / 2) - (w / 2))
        y = int(r * math.sin(rad) + (SCREEN_SIZE[1] / 2) - (h / 2))
        ang = (ang + 3) % 360

        # スプライトの表示位置を変更
        sprite.position = x, y

        # 画面をクリア
        renderer.clear()

        # スプライトを描画
        spriterenderer.render(sprite)

        # ループの時間待ち
        while True:
            if sdl2.SDL_GetPerformanceCounter() - oldtime >= interval:
                break
            sdl2.SDL_Delay(0)
        oldtime = sdl2.SDL_GetPerformanceCounter()

    # メインループ終了。色々なアレやソレを解放
    sdl2.ext.quit()


if __name__ == '__main__':
    main()

相変わらず長い。いやまあ、一応ちょっとは短くなっているのだけど。

以下で実行。
python texture_render_test_ext.py
texture_render_test_ext_ss.png


sdl2.ext版は、やっぱりスプライトを使わないと短く書けないっぽい。sdl2.ext.SpriteFactory() を使うことで、スプライトの生成ができるっぽいけど…。
# テクスチャベースのスプライト、を作成できるクラス?、を生成
factory = sdl2.ext.SpriteFactory(sdl2.ext.TEXTURE, renderer=renderer)

# スプライトを1つ生成。画像の読み込みも行う
sprite = factory.from_image(RESOURCES.get_path("hello.png"))
sdl2.ext は、スプライトの種類として、
  • ソフトウェアベースのスプライト(sdl2.ext.SOFTWARE)
  • テクスチャベースのスプライト(sdl2.ext.TEXTURE)
この2種類が用意されてるようで。名前からして、おそらく前者は遅いんじゃないかな、と…。

スプライトの描画は、create_sprite_render_system() を呼んで、ソレ用の何かを生成して…。
# スプライト描画用のrendererを生成
spriterenderer = factory.create_sprite_render_system(renderer)
後で、.render(スプライト) を呼べばいいのかな。たぶん。
# スプライトを描画
spriterenderer.render(sprite)

ホントにコレで合ってるのか全く自信は無いけれど、一応はコレで動いてるっぽいし…合ってるんじゃないかなあ…怪しいけど。

メインループの時間待ち処理。 :

メインループが60FPSで回るようにしたかったのだけど、最初は _SDL_Delay() だの _SDL_GetTicks() だのを使っていて。

_SDL:フレームレートの制御 | ジャジャガッチブログ

ただ、どうも動きがガクガクする…。

他の方法はないのかなとググっていたら、以下の記事が。

_Windows8(以降?)でSDL_delayの挙動が変わったのかしら?と言う話 - 今日の雑記
_c++ - Sleep(1) and SDL_Delay(1) takes 15 ms - Stack Overflow

Windows7 と Windows8以降では、動作が変わるとか…。そりゃ困る…。

ということで、件の記事で紹介されてる方法でループの時間待ちを書くことに。

_SDL_GetPerformanceFrequency
_SDL_GetPerformanceCounter

一応簡単に解説すると…。
  • sdl2.SDL_GetPerformanceCounter() を呼べば、現在の高分解能カウンタ値を得られる。
  • sdl2.SDL_GetPerformanceFrequency() は、1秒間に何回、高分解能カウンタでカウントできるかを返す。ということは、この値を60で割れば、1/60秒の間にカウントできるはずの数が得られる。(= インターバル値)
  • メインループ処理を始める前に、カウンタ値を覚えておいて…。
  • メインループ処理の最後のあたりで、覚えておいたカウンタ値と、現在のカウンタ値を使って、カウント数の差 = メインループの処理に何カウントかかったのかを取得する。
  • もし、差が、インターバル値に達してないなら、まだ処理時間は余ってるということ。時間待ちをしないといけない。
  • 差が、インターバル値に達するまで延々とループさせる。一応、ループの中で、SDL_Delay(0) を呼ぶことで、ほんの一瞬ちょっとだけ、なんとなく気持ち的にスリープさせておく。
  • 差が、インターバル値に達したら、1/60秒経過したということ。現在カウンタ値を記録して、メインループをまた実行。
面倒臭いですね。こんなの毎回書かせるとか何なんですかね。ライブラリ側でやってほしいですよね。

vsyncの使い方がよく分からない。 :

SDL2 は vsync を利用できるという話を見かけたので、「vsync で合わせれば確実に60FPSで回ってくれるんじゃないのかなあ」などと思ってしまったのだけど。以下の記事を目にして考えが甘かったことに今頃気づいたり。

_python - Locking the frame rate in pygame? - Game Development Stack Exchange

「PCによってディスプレイのリフレッシュレートって違うだろ」「あんなもんを頼りにしてたら何FPSになるか予測つかんぞ」という、あまりにも当たり前な指摘。ああ、たしかに、そうだった…。PCって、ゲーム機と違って、ディスプレイのリフレッシュレートがバラバラだった…。すっかり忘れてた。

となると、vsync って何に使えるんだろ。いや、画面の書き換えが気にならないように、みたいな使い方はできるだろうけど。メインループは60FPSだけどディスプレイは50FPSとかだったら、スクロールがガクガクしたりせんのかな。どうやって辻褄を…。って今頃になってこんなので悩むとか何十年頭の中が止まってるんだよって感じですな。

さすがにこのあたり、誰か対処方法をまとめてないのかしら。昔、アプローチを3種類ぐらい紹介してた記事を見かけた記憶も…。

でも、今時は、こういうのって気にしなくて済むように、ライブラリ/ゲームエンジン側で実装済みだったりするんじゃないのか。その手の解説記事、残ってるのかな…。

とりあえずここまでかな。 :

画像描画とキー入力ができれば、あくまで見た目だけ、ではあるけれど、リアルタイムゲームっぽいソレを頑張れば作れると思うので…。とりあえず今回はここまで、かなと…。pygame より高速に描画できそうな雰囲気もあるし、これはこれで。

でも、やっぱり記述が面倒臭いなあ…。しかし、sdl2.ext は、ちょっとよく分からんし…。pysdl2 の上に被せるグッドなラッパーが出てくれば、Pythonでその手のゲームを書く行為も、ちょっとはアレになるのだろうか。

そういや、SDL2関連DLLの入手も面倒、だったのだよな…。例えば、pythonスクリプトを一つDLして実行するだけで、各ページからzipを落として展開してまとめてくれる、みたいなソレってPythonで書けないのだろうか。あるいは、関連DLLだけをまとめてインストールできる別パッケージを用意するとか…。いやまあ、そのへん、最初からpysdl2に同梱しといてよ、てな気持ちもあるけれど。

ちなみにDXRubyで書いたら。 :

ちなみに、Ruby + DXRuby で上記のスクリプトと同じ処理を書くと…。
require 'dxruby'

# 画像を読み込み
img = Image.load("res/hello.png")

ang = 0

# メインループ
Window.loop do
  # ESCキーが押されたら終了
  break if Input.keyPush?(K_ESCAPE)

  # 円運動をさせる
  rad = ang * Math::PI / 180.0
  r = Window.width / 6
  x = r * Math.cos(rad) + (Window.width / 2) - (img.width / 2)
  y = r * Math.sin(rad) + (Window.height / 2) - (img.height / 2)
  ang = (ang + 3) % 360

  # ウインドウに画像を描画
  Window.draw(x, y, img)
end

他の言語やライブラリで書いたら、どうなるんだろう…。Python + pyglet、Ruby + gosu、HSP、Processing、enchant.js あたりで…。このくらいなら Processing も短く書けそうですな。 *1

*1: もちろん、「短ければいいってもんでもないだろう」と言われそうでもあり…。一般的に、少ない記述量で書けるってことは、その分何かがトレードオフになってるはずで…。結局そのへんケースバイケース、なのだろうと思いますが。

#2 [zatta][neta] 「東北でよかった」について

復興大臣が、東日本大震災に関して「東北のほうでよかった」と発言したらしいけど。

_今村復興相 震災復興に関連し「東北のほうでよかった」と発言 | NHKニュース
_復興相「震災、東北でよかった」 与党から辞任論も :日本経済新聞

最初にその話を聞いた時、自分も東北人でありながら、「え? それマズいの?」と思ってしまったりもして…。だって、これが東京だの関東だので起きてたらこんなもんじゃ済まなかったのは間違いないし。なので、「それはそれで事実じゃないのか」「事実を述べて叩かれるのは、ちとマズくないか」と、なんだか少々複雑な気分に。

しかし、このあたり、言い方が難しい。「不幸中の幸い」てのもなんか違うし。…いや、なんか違う、どころじゃないな。絶対に違うな。「コレコレこういう状況になることを想像した場合、現状は比較的マシなのかもと思えなくもないような、そうでもないような、どうなんだ」みたいなソレを、どう言えばいいのか…。

アレかな。「関東に比べたら人口が少ない東北ですらこれだけの被害が出てるのだから、まして〜」みたいな言い方で止めておけばよかったのかな。いや、それもそれでなんだか叩かれそうな…。

事実と感想を明確に分けて発言しないといけないのだろうな…。「よかった」は感想の域に足を踏み入れてる言葉だから、そこがいかんのだろう…。とは言え、仮に事実のみを述べたとしてもやっぱり叩かれそうで怖い…。

ニホンゴ、ムズカシイデス。…いや、日本語に限った話じゃないな。たぶん。

2016/04/25(月) [n年前の日記]

#1 [prog] three.jsをまだまだまだ勉強中

色々と試しているところ。今現在、こんな感じに。

_roadmake2.html (DEMO)

例えばブラウザ(Firefox、Google Chrome)で表示した後、F11キーを押して全画面表示にすると、それだけでも結構迫力がある、かもしれず。ちなみに、全画面表示を抜ける時は同じくF11キー。

画面に変なポリゴンが描画されてしまうのは、geom.mergeVertices(); を入れてたから、だった模様。コメントアウトしたら変なポリゴンが描画されなくなった。重複した頂点を結合してくれる機能らしいけど、与える頂点群によっては妙な処理がされてしまう時があるっぽい。

背景も追加。three.js サンプルの、 _panorama / equirectangular が参考になった。件のサンプルでは、球を追加して equirectangular 画像(正距円筒図法の画像)をテクスチャとして割り当てているっぽい。BG用の mesh を作成して、mesh.position.set(x, y, z); で、カメラの位置座標を常時入れてやったら、それらしく表示された。

遠くにあるテクスチャがぼけてしまう問題を minFilter の設定を変えることで一旦解決したけれど。texture.anisotropy の値を変更することでも解決できそうなので、そちらを使ってみたり。デフォルトでは1が入ってるらしいけど、以下のように記述して最高品質を指定。
  texture.anisotropy = renderer.getMaxAnisotropy();

ブラウザを全画面表示にするとスクロールバーが表示されてしまうあたりが気になってたけど。各サンプルを眺めていたら、body のスタイルシートで、overflow: hidden; を指定することでスクロールバーが出てこないようにしていたので、手元のソースでもそのように修正。
  <style>
    body {
      margin: 0px;
      padding: 0px;
      overflow: hidden;
    }
  </style>

さて。ビルボードで木を追加したいけど、何を使えばビルボードになるのやら…。

2015/04/25() [n年前の日記]

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

天気が良かったので自転車で。前回型を取って本歯?ができているはずなのでそれを取り付けに。

前回の治療後、かなりの痛みが丸一日続いたことや、仮歯や周辺に触れるとズキッとくるあたりが不安だったので、質問内容をWordで打って印刷して持って行ったり。最近物忘れが激しいので…書いておかないと忘れる…。

さておき、こんな質問したら怒られるだろうか、機嫌を損ねて何かされてしまうだろうかとオドオドしながらも一応質問してみたら一応答えてもらえてホッとした、けれど、なんだか一部の回答を誤魔化された印象も。しかし、しつこく質問して機嫌を損ねたら怖いし…。

とりあえず本歯がついて見た目は綺麗になったけど、たぶん数日痛みそうな予感。念のためということで痛み止めの薬を出してもらえたので少しは安心だけど。しかしそもそもこんなに痛むものだろうかという疑問が頭から離れず。

もっとも、自分の口の中があまりに汚い故に生じる結果かもしれぬと思えてならないわけで。歯の治療は、常に「自業自得」という言葉が付きまとうのがなんというか。普段からちゃんと磨けていたらこんなことにはならないはずで…。

歯医者の何が不安かと言えば。 :

今回通ってる歯医者もそうだし、S歯科もそうだったけど。説明が足りなくて、治療の「道筋」すら把握できないまま治療を受けてる状況が、とにかく不安を煽るというか、恐怖心が湧くというか。自分はこれから一体何をされてしまうんだろう、怖いけど自分の歯と口の中が人質に取られてるも同然だから迂闊なことを聞けない…。歯医者さんを信用するどころじゃない。治療中、「今日は何をされるんだろう」「今、何をされてるんだろう」「こっちが素人なのをいいことに何か酷いことされてるんじゃないのか」と震えっぱなしで。

何せ今回も、
「えっ。今、神経取っちゃってるの? 聞いてないよ…」
「えっ。こんなに小さく削っちゃったの? 聞いてない…」
「こんなに痛むのって正常な展開なの? 『痛む場合もあるかも』って聞いてないんだけど…」
と、コンボが決まって不安になってしまったわけで。

これがもし、例えばコピーの1枚でも渡されて、そこに、「この順番で治療していくよ」「歯はこういう形になっていくよ」「おおよそこのくらいの期間がかかるよ」とでも書いてあったら全然違ったんだろうなと。おそらく治療内容はいくつかのパターンで分類できるのだろうから、メジャーなパターンの説明文書を数種類用意して、「貴方の場合はコレね。眺めておいてね」と患者に渡せば…。

もっとも、治療で忙しくて、そんな文書を作ったり渡したりしてる余裕はないのだろうな。でも、別に先生が作らなきゃいけないわけでもないよな。助手さんに作らせて内容チェックだけして、ではいかんのかな。女性の助手さんの中には、謎生物があちこちに描いてあるファンシー文書を作れそうな人材が居そうな気もするけど。

別にコピーを渡さなくても、治療用の椅子の前に貼ってあるのもアリかも。治療されながら、「ああ、次はこういう治療になるのか」と把握できれば…。

原発事故の放射線量もそうだけど、ただ単に「知る」だけで、恐怖や不安が随分和らぐのは間違いないのだけどな。

もっとも今は、ググれば結構情報が出てくるから、患者側でもできることが。と思ったけど、各人の状況は違うから目的の情報に辿り着けそうか不明だし。歯医者さんがどういうルートを進もうとしてるかは、その歯医者さんにしか分からんし。インターネットをやってない患者はどうすればいいのかという問題も。

PCメンテナンス云々でもそうなのだけど、トラブル解決能力と、説明する能力って違うので、なかなか難しいよなと。

2014/04/25(金) [n年前の日記]

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

親父さんの電動自転車を借りて以下略。ダイソー、リオンドールに行った後、一旦帰宅してからホーマックに。

#2 [pc] 結束バンドとかマーカータイとか

ダイソーで、名札付き結束バンドなるものを見かけたので買ってみた。100円で15本入りだから、1本6〜7円かな…。

ホーマックでもマーカータイなるものを見つけたので、これも買ってみた。300円で100本入り。1本3円。OHM製、MT-100W100P。

ダイソーのソレを使ってみたけど、紐が全然入らなくて。差し込む向きを確認したり、ラジオペンチで引っ張ってみたけど、かなり厳しい。たぶん穴が小さいんじゃないかな…。これはちょっと使えない感じ。

マーカータイは、ケーブルをすんなり縛ることができた。ただ、名札部分が円の中に入ってしまうから、円をキッチリ細くすることができなくて。細いケーブルに使うと、ゆるゆるになってしまう。 _ELECOM LD-ST100WH20 のような形だったら良かったのに…。

また、どちらも一度縛ってしまうと取り外すことはできなくて。ニッパー等でちょん切って外さないといけないので、使い回しはできない。ちと不便というか、もったいない。使い回しが効くようなタイプだったら良かったのに。

ちなみに、普段、この手のソレには、木製ピンチ(木製洗濯ばさみ)を使っております。 _RFC2322 - 洗濯バサミDHCPによるIPアドレスの管理手法 を応用というか。

ダイソーで売ってる、木製ピンチにフックがついてるタイプが結構便利だったり。ケーブルを外した際、どこかそのへんに引っ掛けたりとかできるので。

#3 [windows] IEの自動アップグレードを無効にする方法を調べたり

某所のWindows7機上で、IE8に固定しておかないといかんという話があって。IEの自動更新・自動アップグレードを無効にする方法をググったり。

そのものズバリが、@ITで解説されてた。

_Windows TIPS:Internet Explorer 11の自動インストールをブロックする - @IT
_Windows TIPS:Internet Explorer 10の自動インストールをブロックする - @IT
_Internet Explorer 9の自動インストールをブロックする − @IT

試してないけど、手順を一応メモ。Microsoft のサイトから、ツールをダウンロードして…。

_Internet Explorer 9 自動配布の無効化ツールキット
_Internet Explorer 10 自動配布の無効化ツールキット
_Internet Explorer 11 自動配布の無効化ツールキット

実行すると解凍されてツールが出てくるらしい。以下を実行すれば、自動アップグレードが無効になる。
IE9_Blocker.cmd /B
IE10_Blocker.cmd /B
IE11_Blocker.cmd /B
自動アップグレードを有効にする場合は、/B ではなく /U をつけて実行。

それにしても、Windows8、8.1はもちろん、IE9〜IE11で動作確認していない・対応していない状況ってのは困るなと。IE8までは、色々凄いことができちゃう特殊機能でもあったのでしょうか?

IE8にダウングレードする方法もメモ。 :

「インストールされた更新プログラム」の中から、IE11、IE10、IE9 をアンインストールすればいいらしい。意外と簡単そうで良かった。

ただし、IE10をアンインストールした後、IE9 や IE8 の動作がおかしくなる場合があるそうで。そういった不具合が発生した際は、IE10を再インストール、パッチを当てて、IE10を1度起動して終了、IE10のアンインストールをすれば解決する、という話を見かけた。

_Internet Explorer 10 をアンインストールすると Internet Explorer 8 や 9 でダウンロードができない
_[MS13-047] Internet Explorer 用の累積的なセキュリティ更新プログラム (2013 年 6 月 11 日)
_マイクロソフト セキュリティ情報 MS13-047 - 緊急

2013/04/25(木) [n年前の日記]

#1 [pc][neta] HTML5 + CSS3 + JavaScript と書くのがとても面倒臭いです

略称って、ないのかなあ…。

hcj、とか。ググったら、別の何かに使われているようだった。ダメか。

h5c3js、とか。暗号みたいで覚えられないだろうな。

hhhhhcccjs、とか。さらに分かりづらくなった…。

次世代web技術、とか。でもそれって、そのうち「次世代ゲーム機」みたいなよく分からない扱いになりそうか。

h+c+j、とか。あるいは、h++とか。何を足してるのかよく分からなくなってきた。

誰かイイ感じの略称を考えてくれないものか…。まあ、その略称が普及しなきゃ意味ないけど。

頻繁に書かれる文字列なのに、略称が見当たらないってのが、なんだか不思議でもあり。コンピュータ関係の用語なんて、すぐに略されるのが当たり前なのに。これだけが例外扱いなのは、なんでだろ?

#2 [neta][pc] 8ビットマイコンをネタにしたTV番組が作られないかなあ

てなことをバカ妄想。

内容からしてオッサンホイホイ番組になるんだろうなあ…。ただ、若い人が見たら、今のPCやスマホがどんだけ凄いか痛感できる番組にもなりそうな。

原始的な仕組み、貧相なスペックだからこそ、それをネタにして笑いながら、しかしそれぞれの原理を解説する番組にしていけるのでは、という気もしたり。今のPCはスペックが高まりすぎて、原理の説明はかなり難しい気がする。でも、8ビットマイコンをネタにすれば、まだどうにか説明可能かな、と。…まあ、今時の感覚からすれば、それらは実用になる知識ではなく、単に雑学の範囲になるだろう、とは思うのだけど。

以下、妄想。

「同時表示8色」をネタにすれば…。 :

  • スタジオ内の芸人さんが「色鉛筆セットでも12色ですよ? 8色しか出せないって、なんだソレ!」とツッコんで笑いを誘ったり。
  • どうして8色なのかを解説する際、光の3原色が紹介される。貧相なスペックなれど、そこには物理法則に基づいた、ちゃんとした理由があったことを理解できる。
  • 8色では、肌色すら塗れない。そこで、市松模様を使った疑似中間色表現が紹介される。それはつまり、ディザリングの利用なわけで。現在でもその技術は、FAXやら低価格液晶パネルやらで利用され続けているのだと伝えたり。
  • 表現できる幅が狭かったが故に、ゲーム等に登場するキャラの記号化が激しかったあたりも紹介できるかも。どうして当時のゲームは、UFOや宇宙人等、首を捻る奇天烈ネタが多く登場していたのか。人間を忠実に描写するスペックがなかったから、パッと見で「ああ、アレか」と分かるシンボルを利用するしかなく、それがコンテンツの設定面にまで強い影響を及ぼした、とかそういうアレを。見た目が貧弱だったからこそ、ユーザの脳内にはトンデモな妄想世界が広がっていた、とかなんとか。

同時発色云々とは違うけど、表示関連で考えれば、サランラップも出せそう。
  • サランラップを使った座標取りは、いわば貧乏過ぎるロトスコープと言えるわけで。しかしその延長線上に、仕組みからして高度化したモーションキャプチャ等の技術が位置するのでは、とかなんとか無理矢理繋げたり。
まあ、サランラップを持ち出す時点で、若い人には、「ちょwww おじさん達、一体何やってたんスかwww」と笑ってもらえそうな。

「音楽機能:単音発声」をネタにすれば…。 :

おそらく、音というものの正体について、アレコレ解説できる内容になりそうな。
  • ブザーから、音階を持った単音発声になり、和音が出せるようになり、波形データが鳴らせるようになり、という進化を紹介。
  • 矩形波の単音を使って、周波数とは何か、ドレミファソラシドって何なのか、を解説。
  • 矩形波・正弦波・三角波は、実際はどんな音に聞こえるか紹介。
  • シンセサイザーの操作時に今でも出てくる、エンベロープとは何なのか。どこをどう変えたら、どのように音が変わるのか。
  • 単音や3和音でも、使い方によってはここまで聴いた感じが変わるのだ、と紹介してみたり。ドラクエの音楽で有名な、すぎやまこういちさんの名言を紹介して、視聴者を納得させたりして。やっぱりプロは言うことが違うぜ…、と。
  • 波形再生も、メモリが少なかったから当初はPCMなんて使えなくてADPCM等を使ってたわけだけど。このあたり電話関係の技術と絡んでるとか、音声圧縮技術は今時のMP3プレイヤーでも使われてるとか、そういう方向で話を繋げたり。
音関係は、視聴者に実際聞いてもらうという手が使えるので、「なるほど、昔はこんな音しか鳴らなかったのか」「ここが変わると、こんなに音が違ってくるのか」とすぐにピンときそう。

メモリ容量や、記録媒体をネタにすれば…。 :

  • 16KB、32KB、64KBって、どのくらいの容量なのか。「写真で言えばたったこれだけの大きさです。この中にプログラムもデータも全部入れてたんです」みたいな話になるのかな…。
  • 紙テープだの、カセットテープだのに、プログラムを記録するって一体どういうことなの? どんな仕組みなの? みたいな。アニメにおける、コンピュータの吐き出す紙テープについて絡めつつ紹介すれば、少しは面白くなるだろうか…。と思ったけど、8ビットマイコンと紙テープは関係ないですね。
  • 「テープに記録するなんて信じられない!」と芸人さんが笑いつつ。「いやいや、実はついこないだまで現役だったんですよ」「ええっ?」と。バックアップ用メディアとして、テープという記録媒体も活躍していたことを説明して、他メディアとのコスト計算も紹介したり。しかし今では…という話に持っていく、とか。
そもそも、「カセットテープとは何か?」から説明しないといけない気もするなあ…。

エロゲー回も欲しい…。 :

1回ぐらい、エロゲーの歴史を紹介するのも良さそうな。

国会で取り上げられて発禁?になったエロゲーの存在とか。今見ると、「え? これで問題になるの?」と思うはずで。つまり、社会がどんだけその手のソレに厳しかったのか。それが今ではどんな状態に成り果てて(?)しまったのか。日本の変化がなんとなく分かる、かもしれない。

まあ、番組内映像のほとんどにモザイクがかかった伝説の回になりそうでもあるけど。ゲストのコメントから中身をぼんやり想像してください、という酷い回に…。番組の最後で芸人さんが、「今回視聴者の方は、モザイクしか目にしてないんじゃないですかね?」とポツリ。

広告回も欲しい…。 :

当時のパソコンの広告に、どんな芸能人が登場していたのか、紹介していく回もヨサゲ。あの人が、こんなところに…となるのは間違いない、ような気がする。

タモリさんや武田鉄矢さんに、当時のパソコンに対する印象をインタビューしたり…ってそういうのはお金かかるから無理だろうな。きっとこの手の番組は低予算番組のはずだし。

パソコンを使った落語も紹介してほしい…。 :

再現出来たら尚嬉しい、けど、機材やプログラムが入手できないだろうなあ…。当時の映像は残ってたりしないのかな。

その延長線上に、昨今話題になった、iPadを使ったパフォーマンスなども存在しているのかもしれない、と話を繋げれば…。まあ、これは途中で完全に技術・文化が断絶してる事例だろうとは思うけど。

当時の各種実験の様子を若い人が見たら、「その発想でいけば、こんなパフォーマンスもできるんじゃないか。今のPCはこのくらいできるんだし」と閃いてくれそうな。と思ったけど、考えてみたらVJだの初音ミクのコンサートだのがソレなんじゃないのという気もしてきた。

ちょっと妄想し過ぎ。 :

そもそも、そういう番組が存在したとして、誰が見るんだろう…。

しかし、ファミコンゲームを延々プレイする番組も成立するのだから、ひょっとしたら、という気もする。

いやいや、見せる内容が違うか。ファミコンゲームのソレは、芸人さんのリアクションも発生するし、そもそもファミコンゲーム自体が娯楽コンテンツなので、眺めていてもそこそこ楽しめるけど。8ビットマイコンを紹介して、それが楽しめるのかというと…。さて、どうなんだろう…。微妙だよなあ…。

これが成立してしまうなら、おそらく鉄道オタク向け番組や、ガンプラオタク向け番組なども成立させられそうな。そう考えると、実現は難しいような気がする。そういう番組って、未だに無いもの。成立させるための手管を番組制作側が持ってない・作れていないということでもあるのだろうし。

もう少し経てば、携帯電話をネタにした番組が作れるかもしれない、とは思うのだけど。そのネタなら皆が使ってたから、「うわー懐かしいー」と言いつつ多くの人が見てくれる番組になるのかもしれない。まあ、今はまだスマホに移行してる最中なので、ちと早過ぎるけど。もう少し経てば、アリなのかなと。

2012/04/25(水) [n年前の日記]

#1 [android] スマホのヘッドフォン端子が気になる

スマートフォンのヘッドフォン端子はえてしてヘッドフォンとマイクのコンボになっているらしいのだけど。4極ジャックとやらについて調べていたら気になる話が。規格が違うものがあるらしく。

_XperiaとiPhone(を含む大部分のスマートフォン)の4極プラグの仕様が異なる件 | Listening Podcast
_OMTP Headset Support - Motorola Mobility, Inc. Canada Limited

一般的には先端から、L,R,GND,MIC、の順らしいのだけど、OMTPなるソレは、L,R,MIC,GND、のようで。IdeaPad A1の端子はどちらなのだろうか…。

#2 [android] IdeaPad A1をまだ弄ってたり

玩具としては面白い。

勝手に再起動する症状に遭遇。 :

Google Play を眺めてたら急に再起動。Lenovoロゴが表示されてアニメーション再生された後、いつまで経ってもホーム画面が出てこない。うーん。とりあえず、音量+ボタンを押しながら電源ボタンを長押し。さすが中華PAD、なのだろうか。

スタンドを自作。 :

100円ショップで売っているブックエンド?を折り曲げてそれらしいものを作成。以下の記事、そのまんま。

_誠 Biz.ID:3分LifeHacking:スチール製のブックエンドでスマホやタブレットのスタンドを自作する

試してはみたものの、操作しようとすると前後にグラグラする。スチール板1枚では強度が足りないらしい。

割り箸を使って、タブレット端末を立て掛けるスチール部分を、後ろからつっかえ棒のように支えてみた。接着には強力タイプの両面テープを使用。すると今度は、画面の左右を押した時にグラグラする。接地面が真ん中しかないので、その軸からずれるとグラグラするらしい。また割り箸を使って、奥のほうでT字の形で設置するようにしてみた。すると今度は前後にグラグラする。接地部分の位置の関係で、シーソーのようになってしまったらしい。

単に立てておくだけならどうとでもなるけれど、指で押して操作することを考えるとなかなか難しい。ちゃんとしたものを購入しようかと思ったが、巷で販売されてるモノの中には、やはりグラグラしそうな形のモノが混ざってそうな予感。

2011/04/25(月) [n年前の日記]

#1 [nitijyou] サーバ止めてました

昼頃、豪雨に伴い雷が鳴り始めたので、サーバを止めてました。スイマセン。

かなり近かったらしい。というか落雷のせいで、先日ようやく再開した標準電波を出す塔が壊れた、というニュースを目にした。…原発事故さえなければ復旧作業もできただろうに。

2010/04/25() [n年前の日記]

#1 [anime] 福島でも「けいおん!!」が始まったらしい

土曜の深夜、というか日曜の02:45ぐらいから放映。一応視聴。なるほど、これが話題の…。京アニって凄いんだなあ。「ハルヒ」とか「らきすた」は放映されたことがないので、京都アニメーションのレベルの高さをTV放映で確認するのはほとんどこれが初めてだったり。>福島。

学生時代にこういうキャラデザ・作画を目にしていたら、その可愛さのあまり、メロメロになってただろうなあ。さすがにこの歳になると、見ているだけでもちと恥ずかしくなってくるけど。

#2 [anime] 「犬夜叉完結編」最終回を視聴

スポンサーがついてなくて、いつか放送打ち切りになるかもしれんとドキドキしながら見てたけど。一応最終回まで流してくれたようで。ありがたや。

比較的爽やかな感じで終わったので良かったなと。途中、「ここでこう展開させたらバッドエンドになって、見てる人はもうカンカンだろうなあ」などと邪なことばかり妄想しながら見てたのですが。真っ当(?)に終わってくれて本当に良かった。

2009/04/25() [n年前の日記]

#1 [pc] NSK1480に現自宅サーバのM/BとHDDを入れた

弟が帰省するというのに、全然部屋が片付いていない。元凶は Antec NSK1480 + VIA MM3500。MM3500 に色々な Linuxのディストリを入れてみたけど、どれも何かしら不具合があって。ということで、MM3500 上で Linux を動かして自宅サーバにするのは諦めた。安物買いの銭失い。NSK1480から取り外して箱にしまった。いやまあ、Linux関連の知識がある人なら、特に Debian 関係のアレコレに詳しい人なら、MM3500もバッチリ使えるのかもしれないけれど。

さておき、MM3500は片付いたが、NSK1480は相変わらず部屋の一角を占領してる。購入時に夢想していたとおり、現自宅サーバの M/B、VIA EPIA LN10000EG と、IDE HDD Hitachi HDS721616PLAT80 (160GB, PATA133,7200RPM) を NSK1480 の中に入れることにした。

30分ほどで作業できるかと思ったら甘かった。2時間ぐらいかかった。

ちなみに、アイドル時の消費電力は30W。FAST ES-1100W に入れていた時にはアイドル時 25W だったので、ACアダプタから80PLUS電源にしたことで、5Wほど増えたことになるのだろう。

ファンがうるさい。 :

どうも NSK1480 のファンがうるさい。高速〜低速回転8cmファンを低速で3つ回しているわけだけど。高速回転用のファンを低速で回すとえてしてうるさい、という話をどこかで見かけたので、手持ちの8cmファンの中から駆動音が比較的静かなものを探して取り換えてみた。

大失敗。かえってうるさくなった。どうやら、NSK1480に最初から搭載されてる8cnファンはかなり音が静かなほうらしい。元々のファンに戻した。

考えてみれば、ES-1100W で使っていた時は、HDD冷却用に 8cmファン x1、M/B冷却用に 8cmファン x1 だったのだから、NSK1480のM/B冷却用 8cmファン x2を1つにできるかもしれないと。また、縦置きで使うことを考えているので、M/B付近で暖まった空気は、ケース上面の 8cmファン用の穴から抜けていくはず。ということで、M/B冷却用は 8cmファン x1 にした。

電源投入前に、裸族の頭のACアダプタを使って、ケースファン x2 のみを回してみた。とても静か。

パソコンデスクの足元に置いて、電源投入。…うるさい。つまり、NSK1480のケースファンは静かだけど、80PLUS電源の8cmファンが結構うるさい、ということだった模様。

HDD冷却用ファンの騒音が少なくなったということは、風量も結構落ちてる可能性大。となると、HDD温度も結構上がっているのでは。事前に、ES-1100W利用時のHDD温度を測定しておいたけど。NSK1480に交換したことで、19℃ → 23℃になった。…まあ、ES-1100W の中にHDDを入れた時は、あっという間にHDD温度が60℃を超えて、ファイルコピー中にファイルがバンバン壊れたわけで。それに比べたら全然マシなのかもしれず。

#2 [pc] PC-9821As3をどかした

今まで、パソコンデスクの下に PC-9821As3 を置いて、その上に自宅サーバ機を置いていたけど。今回、自宅サーバ機のケースを交換したついでに、As3 をどかすことに。

どかしたはいいが、どこに置いたものやら。

2008/04/25(金) [n年前の日記]

#1 [iappli] 修正要求が実はたくさんきていた

フリーズバグへの対策を入れて、バイナリを作って、さて送ろうかというところで。修正要求リストを開いて書き込もうとしたら、上のほう・画面外?に大量の修正要求が並んでることに今頃気づいたり。トホホ。ていうかコレ、サーバとの通信部分に関して、ほとんど作り直しのレベルじゃないか…。

できることなら、ゲーム本編のバランス調整云々以前に、こういった部分をチェックしてほしかった…。

とりあえず、サンプルライブラリを、eclipseのプロジェクトとして登録して、使えそうな部分を丸々コピペしていくか…ってeclipseに読み込ませたらガンガン警告が出てきた。うーん。Javadocの書き方が何か間違ってる・標準的なモノから外れてるとか、ライブラリ中の static 指定等が何かおかしいらしい…。いや、eclipse の設定を変えれば警告は消せるけど、そういう対処もどうなんだか。

2007/04/25(水) [n年前の日記]

#1 [pc] コメント欄の炬燵型PCの話を読んで

ふと、PCの排熱で発電できんかなぁと夢想したりして。…発電できるほどの熱を出すPCをそもそも作るなよという気もしてくるけれど。

どこかで誰か実験してないかしら。PCの熱でどこまで発電できるか、連載:永久機関への道、とか。…そもそも熱で発電ってどうやりゃいいのかよく判りませんが。そういうことに使える素子があったりするんだろうか。あるいはタービン回さないとダメでしょうか。

PCの熱で発電できるぐらいなら、人体の熱でも発電できるんじゃないかという気もしてくる。なんだかMatrixっぽい。

この記事へのツッコミ

Re: コメント欄の炬燵型PCの話を読んで by けいと    2007/04/27 20:54
熱エネルギーをもらさず他のエネルギーに変換できると
世の中かなり変わると思うんですけどね^^;

#2 [nitijyou] MSに振込をしてきた

外は雨だったのだけど、親父さんが写真屋さんに行くとのことで、車に同乗させてもらった。ということで、近くの銀行まで。窓口で振込をしてきた。

#3 [nitijou] EDGE2の振込をしたことをメールで連絡

もしかすると、あちらの確認作業はGW明けになるのかもしれない。てなことをなんとなく思いつつ。

#4 [iappli] 届いた仕様変更要求はたぶんこなせた

と思う…。別の画像が届くという話もあったので、それが届いてから・対応させてからバイナリを送ったほうがいいかもしれないなと。その間にCPUをもうちょっと弄っておこう。全然高い役で上がらないし…。もっとも、高い役を狙ってくるということは、安い手を狙う他CPUのカモにされる場面が多くなる予感も。局ごとに、方針を切り換えるほうがいいだろうか。いや、配牌結果を見て方針を変えるほうがいいかもしれん…。てな感じで悶々と。

#5 [cg_tools][windows] GIMP 2.2.14 と 2.3.14 をインストール

GIMP Windows版も新しい版が出てる・色々バグfixされてるらしいので。2.2.13 をアンインストールして、2.2.14 をインストール。

開発版の 2.3.14 もインストールしようとしたのだけど。 :

そのままインストールしただけでは起動時に libgimpui-2.0-0.dll が見つからない等エラーが出る。該当dllは GIMP 2.3.14 インストールフォルダの bin/以下にあるのだが。

起動用ショートカットファイルの、作業フォルダの欄に、"GIMP-2.3.14インストールフォルダ\bin" を指定した。これで解決…しない。今度は途中で強制終了してしまう。

どうやら ~/.gimp-2.3/ 以下の plugin を初期化しようとして落ちてるっぽい。~/.gimp-2.3/ を削除。

やはり強制終了。どうやら、~/.gimp-2.2/ を ~/.gimp-2.3/ にコピーして起動しようとしてる模様。~/.gimp-2.2/plugins/ の中に、GIMP 2.3.14 では不具合を起こす plugin が混じっているんだろう。一時的に、~/.gimp-2.2/ をリネーム。~/.gimp-2.3/ を削除。GIMP-2.3.14 を起動。素の ~/.gimp-2.3/ が出来た。一度出来てしまえば後は問題なく起動する。

さすが開発版。起動させるだけでもこんなに苦労するとは。ってこのぐらいはまだまだ苦労のうちに入らないのだろうな。自分でコンパイルしてるわけでもないし。

2006/04/25(火) [n年前の日記]

#1 [pc] QuickShot に使えるACアダプタについてメモ

コメント欄で質問があったので書いたのだけど、なんとなくメモしておいたほうが良さそうな気もしてきたのでこちらにもカキコ内容をコピペ。
自分も標準のアダプタは持ってないのですが、説明書を眺めた限りでは、

「使用するオプション電源は、DC 7.5V から DC9V 間での範囲で、600mA 以上の電源容量があるものを必ずご使用ください。」

とありますね。でも、説明書の後ろのほうのページには、

「電源消費量 : 200mA (最大)」

ともあります。

自分はとりあえず、メガドライブという、昔のゲーム機の電源アダプタを流用しています。
「OUTPUT : DC9V 1.2A」
と書いてありますな…。

ちなみに、端子は、外側が「+」で、中が「-」のようです。まあ、QuickShot の電源差込口にも書いてありますが…。「+」「-」が逆なアダプタもあったりするので、ちとアレですね…。

ちなみに、ここで言ってる QuickShot ってのは、昔 Justy から販売されてたリーズナブルなMIDIキーボード。

#2 [firefox] Firefox で svg が表示できるときと表示できないときがあるな

何故。

_livehttpheaders - HTTPヘッダの情報を確認できるFirefoxの拡張 :

_Live HTTP headers - Mozilla Firefox まとめサイト
_@IT:Security Tips > LiveHTTPHeadersでHTTPヘッダ情報を確認する

これを導入してチェックしようとしてみたりして。

404 が返ってきてるな…。

Adobe の svg サイトは、IE 用のビューワが入ってるかどうかをチェックしてるっぽいのでアレみたいではある。

_SVGってどうなの? :

_SVGフォーマット普及の為のuploader

Firefox でも表示できてるな…。とりあえず、Content-Type: image/svg+xml なら問題なし、なのであらうか。

#3 [cg_tools] SVG描画ツールをインストール

_SourceForge.net: Sodipodi

Sodipodi 0.34 をインストール。WinXP を使ってるので、Sodipodi_0_34_Win2000_XP_Setup.exe をDL。

「zlib-1.dll が見つからなかったため、このアプリケーションを開始できませんでした。」と表示される。

検索したら、 _こちらのページ に解説が。
Sodipodi(Unix, Win)という変わった名前のソフトがイラストレーターのような感じで使えます。
http://www.sodipodi.com/
これも、GTK+のライブラリを必要とします。

最新のGTK+だと、zlib-1.dllが見つからないと警告されますが、GTK+のライブラリから「zlib1.dll」を探して「zlib-1.dll」にリネームし、Sodipodiをインストールしたフォルダに入れておけば、大丈夫です。

レイヤーパレットのようなインターフェイスはありませんが、XMLエディタで図形の文字列を直接選択して、操作できます。けっこう新鮮かもしれません。

http://homepage2.nifty.com/onoy/soft.htm より

GIMP を入れてある関係上、GTK+ も入ってるので、そこからコピー。

「プロシージャ エントリ ポイント g_module_open_utf8 がダイナミック リンク ライブラリ libgmodule-2.0-0.dll から見つかりませんでした。」と表示される。

あら。解決策を、 _昔、メモってたわ…。

Sodipodi 操作メモ :

制御点編集ツールで、制御点の上で選択状態で delete キーを押せば制御点削除。Ctrl + クリックで、両ハンドルを直線にするか別々にするか切り替え(滑らか or カクカク)。

_ハンドル伸ばしてる最中にAltキーで折る らしい。

片方だけしかハンドルがない制御点に対してもう片方のハンドルを追加する方法がわからん…。

Sodiposi、落ちた。 :

文字を入れようとしたら落ちた。保存してなかった。…Windows 版はなんだかアレだなぁ。

Inkscape も入れたけど。 :

描画が重い。厳しいな。… 3.1GHzのCPUで重いってのはどういうことなんだろう。

_Potrace - ビットマップ画像をベクター画像に変換するツール :

_POTRACEを使ってBitmapからSVG、PDR作成 - po2pdr : カラー対応BMP→svg→pdrツール
_3ToheiLog: 1bit-paperとpotraceのコンボ
_スキャンデータからのオートトレースについて

試しに、potrace、po2pdr を導入。svg で出力。potrace だけでは白黒画像しか変換できないけど、po2pdr を使えばカラー画像を変換できる。

_出力結果(.svg)。 Sodipodi を使ってもっと真っ当にできないか手作業で修正を始めたものの。途中で嫌気がさして、やめてしまったり。…出力結果の元ネタはアレなんですが、さすがにそのままはマズイかなと思って、胡散臭い駄菓子のパッケージというか、いわばガンガル路線を狙おうとしたはずが。なんというか…ますます問題のある状態に。

ていうか、Firefox じゃやっぱり表示されないな。うーむ。何故だ。ローカルにある .svg を D&Dで渡したら表示できるのに。

(2006/04/27追記。Firefox で見れないのは、Mime-Type の問題だった。 .htaccess に、
AddType image/svg+xml svg
を記述したら解決。)

敵配置ツールとして使えんかと思って :

svg関連ツールを試してたのだけど。どうもビットマップ画像をそうそう入れられないみたいで。いや、image なんちゃらという記述も見かけたから、入れられるんだろうけど。それとは別に、内部で持ってる座標値に小数点がガンガン入ってくるあたり、ちとアレだなと。やはりドット単位で作業できるツールじゃないと流用できない予感。

#4 [nitijyou] 別の作業を進めるようにとの連絡がきた

とりあえず、BGデータの差し替え、というか、マップデータ作り直しと処理の書き直しから始めるか…。

2005/04/25(月) [n年前の日記]

#1 [anime] _ウルトラマンマックス

なるほど。これが新しいウルトラマン…。股間が気になる。そんなところまで微妙にマックス(違
_(via ビバ!ダイナミックBlog@おたく鍋 - 相棒はウルトラマンジャンボか?)

#2 [nitijyou] DVDを返してきた

霧だかもやだかが少し出てたので、厚着をして自転車で。

#3 [game] _DVDPG

先日借りたのはコレだったらしい。

再生してみたけれど、ゲームと称するには程遠い内容だった。元が映像作品=一本道なものだから、あらゆる条件分岐が BAD END に繋がってたりとか。まるで 8bit PC時代のC級アドベンチャーゲーム。また、内部で変数を扱えない or 変数の値を画面に反映させる術がないらしく、パラメータの上下する様子を見た目だけでも実現するために、5、6個のメニュー項目を選択した際の、全経路・全ての組み合わせを用意しているようで。なんとも涙ぐましいというか…。正直、ウンザリ。そうなると、当然総当りで再生してみる気力など更々無く。PC上で再生してるので、該当チャプターにジャンプしてエンディングを眺めて終わり。ちなみに、元の映像作品と同様の、1パターンのみのエンディングだった。

後から映像素材・別音声を追加できるなら、ザッピングだのマルチエンディングだの、多少は面白い内容にできそうではあったけど。出来合いの映像素材のみをやりくりしてゲームっぽくするのは、やはり無理がありそうな…。それでも、ゲーム仕立てにすると売れる等の状況があって、こういう種類の商品が出てくるのだろうか。なんだか再生時間を水増ししてる・ユーザの受けるストレスを増やしてるようにしか見えなかったんだけど。…ゲームって、何だろうな。非・ゲーム業界からは、未だ、「プレイ時間が長ければ長いほど、お得と思ってもらえる、ちょろいジャンル」とでも思われてるのだろうか。まあ、そういうイメージを作ってきたのはゲーム業界自身なんだろうけど。

2004/04/25() [n年前の日記]

#1 [zatta] _あなたにとって、セブン-イレブンとは・・・なんですか?

コレ、ホントにCMで流れないかな。

#2 [vine] 親父さん旧PCの設定中

メインPCからputtyでログインして作業中。 ぐらいしかまだやってない。

user , group追加が不安 :

後で/homeの入ったHDDだけ持ってきて繋ぐつもりだけど。id が一致してないと大変な事になるんだろうな。ユーザ数が少ないから手入力で追加しちゃったけど。膨大なユーザ数だったらどうするんだらう。…実は /etc/passwd と /etc/group をそのまま書き換えていいのかしら。

/etc/apt/sources.list :

コメントアウト部分を外して Vine Plus もインストールできるように。

mod_gzip :

Apache の mod_gzip って別途インストールする必要があったことを忘れてた。Vine Plus から apt-get install mod_gzip でインストール。Vine Plus のは古いみたいだけど、最新版との違いが判らない。…mgstatとやらはVine Plusにはないのだろうか。コンパイルしなきゃダメか。

chkconfig :

chkconfig hogehoge on でサービス有効に。

proftpd の DisplayLogin , DisplayQuit :

一箇所にまとめられないかな。やり方判んないんでユーザのホームフォルダに一々コピーしてるけど。 *1

_Dynamic DNSを利用する :

_No-IP(DDNS)
_ダイナミックDNSの設定(no-ip.com)
_noip2 ( no-ip.com ) アップデートの豆情報

no-ip.com の Linux No-IP DUC 2.1.1 をインストール。たしか以前は _1.6 をインストールしたような。今は 2.x.x しか配布されてないのか。2.x.x は設定ファイルが非テキストになったらしい。

解凍したらredhat用の起動スクリプトがついてた。/etc/rc.d/init.d/ に適当な名前で cp して、chkconfig --add xxx とかやってみた。これで使えるだらうか。

_sudoによるスーパーユーザーアクセスの限定的な移譲 :

ホストIP指定を忘れてた。メモ。

*1: いや。無くてもいいんだけど。でも、無いと寂しい。

#3 [windows] WinXPでSleipnirを立ち上げたままにしておくと

どんどん動作が重くなる。なんでだろう。

2003/04/25(金) [n年前の日記]

#1 名前を連呼するだけの選挙活動に何の意味があるのか

選挙カーがウルサイ。候補者の名前だけを連呼する連中がほとんどだが、彼等はバカじゃないのか。

例えば何か商品を売るとして :

例えば、店頭で野菜を売る為に声を出すとして。野菜の名前を連呼してるだけで売れるだろうか。「キャベツです!キャベツです!」と叫ぶだけで一体どれほどの効果があるのか。産地はどこそこです、無農薬野菜です、こういった栄養が含まれてます、いつもより安いです…等々、つまりはその商品を選択・購入する事でどんなメリットがあるか、それが消費者に認識されなければいくら名前だけ連呼してみても効果はないわけで。

有権者側の視点で物事を考える事ができない候補者であることを露呈している :

おそらく「名前だけを連呼」タイプの候補者は、「自分にとっての効率」しか考えていない。1分間に3回名前が出てくるのと、1分間に10回名前が出てくるのでは、後者のほうが名前を覚えてもらえる可能性が高い…とでも考えた故の「名前だけを連呼」ではないのか。
しかし、有権者側の視点で考えた場合、前述のように「名前だけを連呼」していてもそもそも意味が無い。その候補者を選択する事で自分達にどんなメリットがありそうか、そこを有権者に認識してもらえない限り、名前がどれだけ知られていても意味が無い。そんな当たり前の事にすら気づかず、ひたすら自分に取ってのみ都合のいい誤った論理展開で選挙活動をしているなら、その候補者は、「有権者側の視点、市民側の視点で物事を考える事ができない」人物であることを露呈し続けているも同じだ。はたしてそんな人物に誰が票を入れるというのか。少しは考えろ、といいたい。

#2 [pc] 親父さんが新しいスキャナを購入

親父さんが新しいスキャナを購入。 _EPSON GT-9300UF(2400dpi、CCD、USB接続、フラットベッド、透過原稿ユニット標準装備)。 近所の電器店での価格は¥24,800だったが、ポイント還元も含めて考えると¥20,000+αぐらい。以前、自分が、 _EPSON GT-7600U(1200dpi、CCD、USB接続、フラットベッド)+透過原稿ユニット を購入した際には¥30,000前後かかった記憶があるので、それより1万円安い値段で、より高性能のスキャナが買えてしまった事になる。写真を趣味にしている親父さんにしてみれば、これでようやく、まともにフィルムをスキャンできる環境が整ったわけで、早速ポジフィルムをスキャンして、「前のスキャナ(GT-7600U)とは全然違う。取り込んだ画像が綺麗だ」と喜んでたり。

スキャナが1台余ってしまった :

親父さんに貸し出していたGT-7600Uが戻ってきた事で、今まで自分のメインPCに繋いでいた、 _EPSON GT-5000WINS(300dpi、CCD、SCSI接続、フラットベッド) が余ってしまった。誰か欲しい人居ます? 送料負担してくれるならタダで差し上げますが。と思ったけど、SCSI接続だから別途SCSIボードが必要になるし、解像度も300dpiとヘボいし、どう考えても欲しい人なんか居るわけないか。そもそも、 _価格.com で調べてみたら、 _CanoScan LiDE 20(600dpi、CIS、USB接続、フラッドベッド型)_¥6,500 というお値段。つまり「GT-5000WINSクレヨ」と言ったとしても、その送料に+αするだけで新品のCIS薄型スキャナが購入できてしまう。
というわけでHARD-OFFにでも売ってこようかと思うけど、スペック的に引き取りすら拒否されそうな気も。

#3 [anime] 浦沢脚本って凄いな…

アバレのマッシュルームカットの回を鑑賞。凄い。凄すぎる。ヤバイ薬でもやってるんじゃないかというぐらいに凄い。これが浦沢脚本の力なのか。

2002/04/25(木) [n年前の日記]

#1 遠隔操作

遠隔操作に興味が出てきたです。
VNC(フリーソフト)とやらを導入するとできるらしい。
でも、操作するとしても、階下の親父さんのPCか、隣の部屋の妹のPCぐらい。
そもそも、後ろで指示を出して本人に作業させたほうが、PCの使い方を覚えるという点では意味があるわけで。

LAN内利用を想定したメッセンジャーソフト(?)などにも興味があるのです。
でも、家の中だしな…声出して呼んだ方が早い(爆)
常時リソース食ってしまうのもイヤだし。

自分の場合、その手のモノ、使う場面がないんだよな…

2001/04/25(水) [n年前の日記]

#1 生活サイクル

数日前から、朝(AM8:00頃)起きて、夜(PM10:00頃)寝るという生活サイクルになってしまってます。
おかげでテレホタイム中はぐっすり。
ネットアクセスが全然出来てないです。

この日記、いつもテレホ開始頃から書くんですが。
そういうわけで書くタイミングを逃して…二日分まとめて書いてたり。

妹から犬夜叉のビデオ借りて見てます。
包帯姿の珊瑚に萌え。
ある種、綾波萌えみたいなものでしょうか。
しかし桔梗は可哀想だなぁ。
つか巫女さん姿萌え。

2000/04/25(火) [n年前の日記]

#1 (NoTitle)ビデオに録画してたゲ...

ビデオに録画してたゲートキーパーズを見てたのですが。
なんかものたりない。なんでだろ。
絵が整いすぎているのかな。

1999/04/25() [n年前の日記]

#1 (NoTitle)外はどしゃぶりの雨。...

外はどしゃぶりの雨。だが市議選の投票に行かなければ。親父さんと共に投票所へ。

寝ても覚めても「シルバーガン」。「シルバーガン」三昧。「シルバーガン」漬け。思いっきり「シルバーガン」。朝まで「シルバーガン」。世界まるごと「シルバーガン」。
一応エンディング見ました。なんだか、ロボット君が悲しさせつなさ大炸裂な感じです(意味不明)。…でもよーく考えるとありきたりな設定のような気も。導入アニメを見た時点で「こーいうオチだったりして」なんて思ったことが大当たりだったんで、ちょっと残念……ってシューティングゲームにそういうもの求めてどうする。それにしてもトレジャーは、「ガーディアンヒーローズ」の時も思いましたが「お話」作るのダメっスね。なんだかとてもスカスカした感じ……って、だからぁ、アクションやシューティングにそういうの求めてどうするの。
それにしてもラスボス、なんだかメガデモライク。グー。

以上、21 日分です。

過去ログ表示

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