mieki256's diary



2018/11/20(火) [n年前の日記]

#1 [tic80] TIC-80でシューティングゲームっぽいものを書いている最中

TIC-80上で横スクロールシューティングっぽいものを書いているところ。

雑魚敵の種類を増やしたものの、発生処理を時間と疑似乱数を元に行っていて、追加していくのがシンドイなと。この際、敵発生テーブルを書いて処理することにしてみたり。というか、書き直してみて思ったけれど、最初からテーブルにしておけばよかった…。どう考えてもテーブルを読んで発生させていくほうが処理も調整も楽…。

この手のテーブル作成用に使えそうなツールが欲しくなってきたりもして。一般的には何を使うのだろう…。マップエディタだったりするのかな…。例えば _Tiled なら、タイルベースとは別にスプライト相当のオブジェクトを配置することもできるので、以前はソレを使って敵発生テーブルを書いた…ような気がする。ただ、他にもヨサゲなツールがどこかにあったりしそうだなと。

そもそも、今時は、レトロ仕様のシューティングゲームを作れる専用ツールが存在しそう。調べてないけどあるんじゃないか。たぶん。

2017/11/20(月) [n年前の日記]

#1 [raspberrypi] Raspberry Pi Zero Wの無線LANが使えなくなって困ったり

Raspberry Pi Zero W + raspbian jessie で sudo rpi-update をしたら、再起動後に無線LANが使えなくなった。困った。

ググったら以下のページが。

_Rapberry piの起動時に無線LAN接続ができなくなった. - Atelier d' OFCOURSE

sudo ifup wlan0 と打ったら無線LANが有効になった。ということは、使えるけど起動時に有効になってない状態、ということかな…。

/etc/network/interface を編集。
sudo vi /etc/network/interface
allow-hotplug wlan0 の前に auto wlan0 を追加してから再起動。無線LANが使えるようになった。助かった…。

#2 [raspberrypi][love2d] Raspberry Pi Zero W + raspbian jessie でlove2dを使えるようにする手順をメモ

前にもメモした記憶があるけど、今回 raspbian jessie をクリーンインストールしたので、再度メモ。

SDL2(OpenGL無効版)をビルドしてインストール。 :

SDL2は、画像の描画や音声ファイルの再生等をしてくれるライブラリ、という説明でいいのかな…。

公式リポジトリにある、OpenGLが有効になったSDL2をインストールしたい場合は、以下だけで済む。
sudo aptitude install libsdl2-dev

が、今回は OpenGL無効(にすることで OpenGL ESが有効になる)版をインストールしたいのでビルドする。以下を参考に作業。

_Golang と SDL2 でゲームを作る - KaoriYa
_SDL2-2.0.6 on Raspberry Pi - ChoccyHobNob

ビルドに必要なパッケージをインストール。
sudo aptitude install automake build-essential mercurial qt5-default libtool libasound2-dev libaudio-dev libesd0-dev libsndfile1-dev libmodplug-dev libopenal-dev libfontconfig1-dev libpango1.0-dev freeglut3-dev libfreeimage-dev libjpeg-dev libtiff5-dev libwebp-dev libxcursor-dev libxi-dev libxrandr-dev libxss-dev libudev-dev libsmpeg-dev libxinerama-dev

ソースをDLして解凍して configure。
mkdir ~/sdl2
cd ~/sdl2
wget https://www.libsdl.org/release/SDL2-2.0.5.tar.gz
tar xzf SDL2-2.0.5.tar.gz
cd SDL2-2.0.5
mkdir build && cd build

../configure --host=arm-raspberry-linux-gnueabihf --disable-pulseaudio --disable-esd --disable-video-mir --disable-video-wayland --disable-video-x11 --disable-video-opengl

結果は以下。Raspberry Pi1 / Zero系の場合、--host=arm-raspberry-linux-gnueabihf をつけて configure しないと、Video driver に rpi が出てこないので、指定は必須。
SDL2 Configure Summary:
Building Shared Libraries
Building Static Libraries
Enabled modules : atomic audio video render events joystick haptic power filesystem threads timers file loadso cpuinfo assembly
Assembly Math   :
Audio drivers   : disk dummy oss alsa(dynamic) nas(dynamic)
Video drivers   : rpi dummy opengl_es1 opengl_es2
Input drivers   : linuxev linuxkd
Using libudev   : YES
Using dbus      : YES
Using ime       : YES
Using ibus      : NO
Using fcitx     : NO

--host=arm-raspberry-linux-gnueabihf をつけない場合は以下になる。video driver に rpi が無い。
../configure --disable-pulseaudio --disable-esd --disable-video-mir --disable-video-wayland --disable-video-x11 --disable-video-opengl

SDL2 Configure Summary:
Building Shared Libraries
Building Static Libraries
Enabled modules : atomic audio video render events joystick haptic power filesystem threads timers file loadso cpuinfo assembly
Assembly Math   :
Audio drivers   : disk dummy oss alsa(dynamic) nas(dynamic)
Video drivers   : dummy opengl_es2
Input drivers   : linuxev linuxkd
Using libudev   : YES
Using dbus      : YES
Using ime       : YES
Using ibus      : NO
Using fcitx     : NO

makeしてインストール。1〜2時間ぐらいかかる。
make
sudo make install
共有ライブラリを一応更新。
sudo ldconfig
$ sudo ldconfig -p | grep SDL2

        libSDL2-2.0.so.0 (libc6,hard-float) => /usr/local/lib/libSDL2-2.0.so.0
/usr/local/lib/ 以下にインストールされた。

love2dをビルドしてインストール。 :

以下を参考にして作業。

_Building LOVE (日本語) - LOVE
_pilove/build-love2d.sh at master - skarbat/pilove

必要なパッケージをインストール。
sudo aptitude install build-essential pkg-config libfreetype6-dev libopenal-dev libvorbis-dev libtheora-dev libmpg123-dev libluajit-5.1-dev libphysfs-dev libmodplug-dev
sudo aptitude install autotools-dev automake libtool libdevil-dev libogg-dev libflac-dev libflac++-dev libmng-dev
sudo aptitude install libturbojpeg1-dev
sudo aptitude install build-essential pkg-config libfreetype6-dev libopenal-dev libvorbis-dev libtheora-dev libmpg123-dev libluajit-5.1-dev libphysfs-dev libmodplug-dev
sudo aptitude install devscripts git-core debhelper dh-autoreconf libasound2-dev libudev0 libudev-dev libdbus-1-dev libx11-dev libxcursor-dev libxext-dev libxi-dev libxinerama-dev libxrandr-dev libxss-dev libxt-dev libxxf86vm-dev libgl1-mesa-dev libibus-1.0-dev libraspberrypi-dev

ちなみに、raspbian jessie ではなく raspbian stretch の場合は、libturbojpeg1-dev ではなく libturbojpeg0-dev をインストールするっぽい?
sudo aptitude install libturbojpeg0-dev

love2dのLinux用のソースをDLして解凍して configure してビルドしてインストール。1時間半かかった。
mkdir ~/love2d
cd ~/love2d
wget https://bitbucket.org/rude/love/downloads/love-0.10.2-linux-src.tar.gz
tar zxf love-0.10.2-linux-src.tar.gz
cd love-0.10.2
./configure --host=arm-raspberry-linux-gnueabihf
make
sudo make install

$ which love
/usr/bin/love
/usr/bin/以下に、love がインストールされた。

動作確認。 :

love で実行。例の画面が出た。

love2dに、サウンドを鳴らすソースを与えてみた。以下のような警告が表示されたものの、音が鳴った。
AL lib: (WW) alc_initconfig: Failed to initialize backend "pulse"

音が鳴らない場合は、pulseaudio --start をしてから pulseaudio --kill をしてから試すと音が鳴ったりした。

各パッケージのインストール時にリストアップされたパッケージをメモ。 :

一応、各パッケージのインストール時にリストアップされたパッケージもメモ。環境は、Raspberry Pi Zero W + raspbian jessie。

$ sudo aptitude install automake build-essential mercurial qt5-default libtool libasound2-dev libaudio-dev libesd0-dev libsndfile1-dev libmodplug-dev libopenal-dev libfontconfig1-dev libpango1.0-dev freeglut3-dev libfreeimage-dev libjpeg-dev libtiff5-dev libwebp-dev libxcursor-dev libxi-dev libxrandr-dev libxss-dev libudev-dev libsmpeg-dev libxinerama-dev

以下の新規パッケージがインストールされます:
  autoconf{a} automake autopoint{a} autotools-dev{a} debhelper{a} dh-autoreconf{a} dh-strip-nondeterminism{a}
  freeglut3{a} freeglut3-dev gettext{a} intltool-debian{a} libarchive-zip-perl{a} libasound2-dev libasprintf-dev{a}
  libaudio-dev libaudiofile-dev{a} libavahi-client-dev{a} libavahi-common-dev{a} libcaca-dev{a}
  libcairo-script-interpreter2{a} libcairo2-dev{a} libdbus-1-dev{a} libdirectfb-dev{a} libdirectfb-extra{a}
  libdrm-dev{a} libdrm-exynos1{a} libdrm-omap1{a} libdrm-tegra0{a} libegl1-mesa-dev{a} libesd0-dev
  libfile-stripnondeterminism-perl{a} libflac-dev{a} libfontconfig1-dev libfreeimage-dev libfreeimage3{a}
  libgettextpo-dev{a} libgettextpo0{a} libgl1-mesa-dev{a} libgles2-mesa-dev{a} libglib2.0-dev{a}
  libglu1-mesa-dev{a} libharfbuzz-dev{a} libharfbuzz-gobject0{a} libice-dev{a} libjbig-dev{a} libjpeg-dev
  libjpeg62-turbo-dev{a} libjs-excanvas{a} libltdl-dev{a} liblzma-dev{a} libmail-sendmail-perl{a} libmodplug-dev
  libogg-dev{a} libopenal-dev libpango1.0-dev libpcre3-dev{a} libpcrecpp0{a} libpixman-1-dev{a}
  libpthread-stubs0-dev{a} libpulse-dev{a} libpulse-mainloop-glib0{a} libqt5opengl5-dev{a} libqt5sql5{a}
  libqt5sql5-sqlite{a} libqt5test5{a} libqt5xml5{a} libsdl1.2-dev{a} libslang2-dev{a} libsm-dev{a} libsmpeg-dev
  libsmpeg0{a} libsndfile1-dev libsys-hostname-long-perl{a} libtiff5-dev libtiffxx5{a} libtool libudev-dev
  libunistring0{a} libvorbis-dev{a} libwayland-bin{a} libwayland-dev{a} libwebp-dev libx11-dev{a} libx11-doc{a}
  libx11-xcb-dev{a} libxau-dev{a} libxcb-dri2-0-dev{a} libxcb-dri3-dev{a} libxcb-glx0-dev{a} libxcb-present-dev{a}
  libxcb-randr0-dev{a} libxcb-render0-dev{a} libxcb-shape0-dev{a} libxcb-shm0-dev{a} libxcb-sync-dev{a}
  libxcb-xfixes0-dev{a} libxcb1-dev{a} libxcursor-dev libxdamage-dev{a} libxdmcp-dev{a} libxext-dev{a}
  libxfixes-dev{a} libxft-dev{a} libxi-dev libxinerama-dev libxrandr-dev libxrender-dev{a} libxshmfence-dev{a}
  libxss-dev libxt-dev{a} libxxf86vm-dev{a} m4{a} mercurial mercurial-common{a} mesa-common-dev{a} po-debconf{a}
  qt5-default qt5-qmake{a} qtbase5-dev{a} qtbase5-dev-tools{a} x11proto-core-dev{a} x11proto-damage-dev{a}
  x11proto-dri2-dev{a} x11proto-fixes-dev{a} x11proto-gl-dev{a} x11proto-input-dev{a} x11proto-kb-dev{a}
  x11proto-randr-dev{a} x11proto-render-dev{a} x11proto-scrnsaver-dev{a} x11proto-xext-dev{a}
  x11proto-xf86vidmode-dev{a} x11proto-xinerama-dev{a} xorg-sgml-doctools{a} xtrans-dev{a}
更新: 0 個、新規インストール: 135 個、削除: 0 個、保留: 0 個。

$ sudo aptitude install build-essential pkg-config libfreetype6-dev libopenal-dev libvorbis-dev libtheora-dev libmpg123-dev libluajit-5.1-dev libphysfs-dev libmodplug-dev
以下の新規パッケージがインストールされます:
  libluajit-5.1-2{a} libluajit-5.1-dev libmpg123-dev libphysfs-dev libphysfs1{a} libtheora-dev

$ sudo aptitude install autotools-dev automake libtool libdevil-dev libogg-dev libflac-dev libflac++-dev libmng-dev
以下の新規パッケージがインストールされます:
  liballegro4.4{a} libdevil-dev libdevil1c2{a} libflac++-dev libflac++6{a} liblcms2-dev{a} libmng-dev

$ sudo aptitude install libturbojpeg1-dev
以下の新規パッケージがインストールされます:
  libturbojpeg1{a} libturbojpeg1-dev

$ sudo aptitude install devscripts git-core debhelper dh-autoreconf libasound2-dev libudev0 libudev-dev libdbus-1-dev libx11-dev libxcursor-dev libxext-dev libxi-dev libxinerama-dev libxrandr-dev libxss-dev libxt-dev libxxf86vm-dev libgl1-mesa-dev libibus-1.0-dev libraspberrypi-dev
以下の新規パッケージがインストールされます:
  at{a} bsd-mailx{a} dctrl-tools{a} debian-keyring{a} devscripts diffstat{a} distro-info-data{a} dput{a} equivs{a}
  exim4-base{a} exim4-config{a} exim4-daemon-light{a} gir1.2-ibus-1.0{a} git-core hardening-includes{a}
  libapt-pkg-perl{a} libclass-accessor-perl{a} libclass-inspector-perl{a} libclone-perl{a} libcommon-sense-perl{a}
  libconvert-binhex-perl{a} libcrypt-ssleay-perl{a} libdigest-hmac-perl{a} libdistro-info-perl{a}
  libemail-valid-perl{a} libexporter-lite-perl{a} libfile-basedir-perl{a} libibus-1.0-5{a} libibus-1.0-dev
  libio-pty-perl{a} libio-sessiondata-perl{a} libio-socket-inet6-perl{a} libio-string-perl{a} libio-stringy-perl{a}
  libipc-run-perl{a} libjson-perl{a} libjson-xs-perl{a} libmime-tools-perl{a} libnet-dns-perl{a}
  libnet-domain-tld-perl{a} libnet-ip-perl{a} libossp-uuid-perl{a} libossp-uuid16{a} libparse-debcontrol-perl{a}
  libparse-debianchangelog-perl{a} libperlio-gzip-perl{a} libsoap-lite-perl{a} libsocket6-perl{a}
  libsub-name-perl{a} libtask-weaken-perl{a} libtext-levenshtein-perl{a} libtie-ixhash-perl{a}
  libxml-parser-perl{a} libxmlrpc-lite-perl{a} lintian{a} patchutils{a} python3-magic{a} t1utils{a} wdiff{a}

pulseaudioについてメモ。 :

pulseaudio関係をインストールしたい場合は、以下も打つけど…。
sudo aptitude install pulseaudio libpulse-dev

raspbian jessie をクリーンインストールした直後は以下のような状態で既にアレコレ入ってたので、わざわざインストールを指定しなくてもよいのではないかな…。
$ sudo aptitude search pulse | grep -E '^i'

i A libpulse-dev                    - PulseAudio client development headers and
i A libpulse-mainloop-glib0         - PulseAudio client libraries (glib support)
i A libpulse0                       - PulseAudio client libraries
i A libpulsedsp                     - PulseAudio OSS pre-load library
i A pulseaudio                      - PulseAudio sound server
i   pulseaudio-module-bluetooth     - Bluetooth module for PulseAudio sound serv
i A pulseaudio-module-x11           - X11 module for PulseAudio sound server
i A pulseaudio-utils                - Command line tools for the PulseAudio soun

#3 [linux] 自宅サーバの時計がおかしくて悩んだり

自宅サーバが、2017/11/20 01:30頃に何故か勝手に再起動していて首を捻ったのだけど、それはさておき。

どうも自宅サーバの時計がおかしい…。ハードウェアクロックが、異様にずれてる。

ちなみに環境は Vine Linux 6.5。
# cat /etc/vine-release
Vine Linux 6.5 (Poupille)

時刻を確認。
# date
2017年 11月 20日 月曜日 07:55:46 JST

# hwclock -r --debug
hwclock from util-linux 2.19
/dev interface to clock を使います。
直前のずれの修正は 1969 年以降 1511128259 秒時点で行なわれました
直前の調整は 1969 年以降 1511128259 秒時点で行なわれました
ハードウェア時計はローカル時刻です
ハードウェア時計ローカル時刻を保持しているとみなします
クロックチックを待っています...
...クロックチックを取得しました
ハードウェア時計から読込んだ時刻: 2017/11/19 22:55:52
ハードウェア時計時刻 : 2017/11/19 22:55:52 = 1969 年以来 1511099752 秒
2017年11月19日 22時55分52秒  -0.203008 秒
ハードウェアクロックが、ちょうど9時間ずれてる。おかしい。UTC絡みなのだろうか…?

ntpの状態は以下のような感じ。
# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
-ntp1.plala.or.j 202.234.233.109  4 u  140  256  377   19.093   -4.844   0.514
-ntp2.plala.or.j 202.234.233.109  4 u  203  256  377   12.973   -3.774   0.957
+ntp1.jst.mfeed. 133.243.236.17   2 u  204  256  377   20.810   -1.036   0.505
*ntp2.jst.mfeed. 133.243.236.17   2 u  196  256  377   21.901   -0.961   0.599
+ntp3.jst.mfeed. 133.243.236.17   2 u   91  256  377   18.489   -0.653   0.717
LOCAL(0)        .LOCL.          10 l  59m   64    0    0.000    0.000   0.000

ハードウェアクロックに、現在時刻を設定してみる。
# date
2017年 11月 20日 月曜日 08:28:08 JST

# hwclock --systohc --localtime --debug
hwclock from util-linux 2.19
/dev interface to clock を使います。
直前のずれの修正は 1969 年以降 1511132257 秒時点で行なわれました
直前の調整は 1969 年以降 1511132257 秒時点で行なわれました
ハードウェア時計はローカル時刻です
ハードウェア時計ローカル時刻を保持しているとみなします
クロックチックを待っています...
...クロックチックを取得しました
ハードウェア時計から読込んだ時刻: 2017/11/19 23:28:23
ハードウェア時計時刻 : 2017/11/19 23:28:23 = 1969 年以来 1511101703 秒
Time elapsed since reference time has been 0.004853 seconds.
Delaying further to reach the new time.
ハードウェア時計を 08:28:23 に設定 = 1969 年以来 1511134103 秒
ioctl(RTC_SET_TIME) に成功しました。
前回の調整以来、少なくとも一日経過しないと、ずれを修正できません。

# hwclock --show ; date
2017年11月20日 08時29分18秒  -0.351335 秒
2017年 11月 20日 月曜日 08:29:18 JST
設定できたように見えるけど、しばらくするとまた時間がずれる。何故。

関係ありそうなファイルを確認。 :

# strings /etc/localtime
TZif2
        JCST
TZif2
JCST
JST-9

# cat /etc/sysconfig/clock
ZONE="Asia/Tokyo"
UTC=false
ARC=false

# cat /etc/adjtime
0.018596 1511134103 0.000000
1511134103
LOCAL

指定がおかしいようには見えないのだけどなあ…。

そもそも、一体何が、一定時間毎にハードウェアクロックを上書き設定してしまうのだろう?

「11分モード」なるものがあるらしい。 :

以下のページを眺めてたら、「11 minute mode(11分モード)」なるものがあると知った。11分毎にハードウェアクロックを再設定してしまう機能がカーネルにあるらしく、ソレを利用してntpサーバがハードウェアクロックを設定してしまう時があるそうで。

_日時を設定して再起動すると標準時刻に戻ってしまう | アットマークテクノ ユーザーズサイト
_hardware clockがずれる件と 11 minute mode - (ひ)メモ
_Man page of HWCLOCK - (カーネルによるハードウェアクロックの自動合わせ、の項を参照)
_RHEL6のtickless kernel - とあるSIerの憂鬱
_設定ファイル
_パソコンの時計 ハードウェアクロックとシステムクロック

状態を確認してみる。
# ntptime | grep status
  status 0x2001 (PLL,NANO),
UNSYNC の表記が無いので、11 minute mode(11分モード)が有効になっているらしい。つまりウチの自宅サーバは、ntpd だかカーネルだか分からんけど、11分毎にハードウェアクロックが上書きされてしまう模様。

/etc/adjtime の3行目が、LOCAL か UTC かで、ハードウェアクロックから時刻を読み取る際の処理が変わってくるらしい。試しに UTC にしてみた。
vi /etc/adjtime
3行目をUTCに

vi /etc/sysconfig/clock
UTC=true に

hwclock --systohc --utc --debug

# hwclock -r --debug
hwclock from util-linux 2.19
/dev interface to clock を使います。
直前のずれの修正は 1969 年以降 1511139353 秒時点で行なわれました
直前の調整は 1969 年以降 1511139353 秒時点で行なわれました
ハードウェア時計はUTC時刻です
ハードウェア時計UTC時刻を保持しているとみなします
クロックチックを待っています...
...クロックチックを取得しました
ハードウェア時計から読込んだ時刻: 2017/11/20 00:59:18
ハードウェア時計時刻 : 2017/11/20 00:59:18 = 1969 年以来 1511139558 秒
2017年11月20日 09時59分18秒  -0.768737 秒

そもそもLinuxのシステムクロックはUTCで、ハードウェアクロックもUTCを前提にしている場合が多い、という話も見かけた。

どうせ Linux しか動かさない環境なのだから、これで様子を見てみよう…。

hwclockについて。 :

  • hwclock -w と hwclock --systohc は同じ。ハードウェアクロックを設定する。
  • hwclock -r と hwclock --show は同じ。ハードウェアクロックを読み出す。
  • --debug をつけると、詳細を表示してくれる。
  • --utc をつけると UTC として扱い、--localtime をつけるとローカルタイムとして扱う。

2016/11/20() [n年前の日記]

#1 [python] GIMPのパレットファイルをプレビューするPySideのスクリプト

PySideを使って、GIMPのパレットファイル(.gpl)を読み込んで表示できるスクリプトを書いてたり。

_palette_select.py
u"""
GIMPのgplファイルを読み込んでパレットを表示してみるテスト.

動作確認環境 : Windows10 x64 + Python 2.7.12 + PySide 1.2.4

"""

import os
import re
import sys
from PySide.QtCore import *  # NOQA
from PySide.QtGui import *   # NOQA


class PalettePreview(QGraphicsView):

    u"""パレットプレビュー用QGraphicsView."""

    valueGetted = Signal(QColor)

    def __init__(self, *argv, **keywords):
        """init."""
        super(PalettePreview, self).__init__(*argv, **keywords)
        self.rgb_data = []
        self.w = 256
        self.h = 128
        self.columns = 16
        self.rows = 8
        self.cw = self.w / self.columns
        self.ch = self.h / self.rows
        self.select_color = QColor(Qt.black)

        self.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
        self.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
        self.setFixedSize(self.w, self.h)
        self.setBackgroundBrush(QBrush(self.get_bg_chip_image()))

        self.setScene(QGraphicsScene(self))
        pm = QPixmap(self.w, self.h)
        pm.fill(Qt.black)
        self.pal_canvas_item = QGraphicsPixmapItem(pm)
        self.scene().addItem(self.pal_canvas_item)
        self.pal_canvas_item.setOffset(0, 0)

    def make_palette_preview(self, columns, rgb_data):
        u"""パレットプレビュー画像を生成."""
        self.rgb_data = rgb_data
        self.columns = columns
        n = len(rgb_data)
        self.rows = n / columns
        if n % columns != 0 or n < columns:
            self.rows += 1
        self.cw = self.w / self.columns
        self.ch = self.h / self.rows

        # QPixmapに描画
        pm = QPixmap(self.w, self. h)
        pm.fill(QColor(0, 0, 0, 0))
        x, y = 0, 0
        for d in self.rgb_data:
            r, g, b, _ = d
            self.draw_one_palette(pm, x, y, self.cw, self.ch, (r, g, b))
            x += self.cw
            if x >= self.w or x + self.cw > self.w:
                x = 0
                y += self.ch

        self.pal_canvas_item.setPixmap(pm)
        self.scene().setSceneRect(QRectF(0, 0, self.w, self.h))

    def draw_one_palette(self, pm, x, y, w, h, rgb):
        r, g, b = rgb
        brush = QPixmap(w, h)
        brush.fill(QColor(r, g, b, 255))
        qp = QPainter()
        qp.begin(pm)
        qp.drawPixmap(x, y, brush)
        qp.end()
        del qp
        del brush

    def get_bg_chip_image(self):
        u"""背景塗りつぶし用のパターンを作成して返す."""
        c0, c1 = 128, 80
        im = QImage(16, 16, QImage.Format_ARGB32)
        qp = QPainter()
        qp.begin(im)
        qp.fillRect(0, 0, 16, 16, QColor(c0, c0, c0, 255))
        qp.fillRect(0, 0, 8, 8, QColor(c1, c1, c1, 255))
        qp.fillRect(8, 8, 8, 8, QColor(c1, c1, c1, 255))
        qp.end()
        del qp
        return im

    def mousePressEvent(self, event):
        u"""マウスボタンが押された時の処理."""
        if event.button() == Qt.LeftButton:
            scene_pos = self.mapToScene(event.pos())
            x = int(scene_pos.x())
            y = int(scene_pos.y())
            if x < 0 or x >= self.w or y < 0 or y >= self.h:
                return
            idx = (y / self.ch) * self.columns + (x / self.cw)
            if idx < len(self.rgb_data):
                r, g, b, _ = self.rgb_data[idx]
                self.select_color.setRgb(r, g, b, 255)
                self.valueGetted.emit(self.select_color)

    @Slot(QColor)
    def changedValue(self, value):
        """get color."""
        pass


class PaletteSelect(QWidget):

    u"""パレット選択ウィジェット."""

    PAL_DIR = "./palettes"
    DEF_PAL_NAME = "pet2015"

    valueGetted = Signal(QColor)

    def __init__(self, *argv, **keywords):
        """init."""
        super(PaletteSelect, self).__init__(*argv, **keywords)
        self.gpl_data = self.get_gpl_data()

        self.gview = PalettePreview(self)

        idx = 0
        self.combo = QComboBox(self)
        lst = sorted(self.gpl_data.keys())
        for (i, key) in enumerate(lst):
            self.combo.addItem(key)
            if key == PaletteSelect.DEF_PAL_NAME:
                idx = i

        vl = QVBoxLayout()
        vl.addWidget(self.combo)
        vl.addWidget(self.gview)
        self.setLayout(vl)

        self.combo.activated[str].connect(self.change_combo)
        self.gview.valueGetted[QColor].connect(self.clicked_palette_view)

        self.combo.setCurrentIndex(idx)
        self.update_preview(PaletteSelect.DEF_PAL_NAME)

    def change_combo(self, str):
        u"""comboboxが変更された時に呼ばれる処理."""
        self.update_preview(str)

    def clicked_palette_view(self, col):
        u"""パレットプレビューがクリックされた時に呼ばれる処理."""
        self.valueGetted.emit(col)

    def update_preview(self, pal_name):
        u"""パレットプレビューを更新."""
        _, columns, rgb_data = self.gpl_data[pal_name]
        self.gview.make_palette_preview(columns, rgb_data)

    def get_gpl_data(self):
        u"""パレットファイル(.gpl)を読み込み."""
        dir = PaletteSelect.PAL_DIR
        dt = {}
        for fname in os.listdir(dir):
            path, ext = os.path.splitext(fname)
            if ext.lower() == ".gpl":
                d = self.read_gpl_file(dir, fname)
                if d is not None:
                    fname, name, columns, rgb_data = d
                    name = name.lower()
                    dt[name] = (fname, columns, rgb_data)
        return dt

    def read_gpl_file(self, dir, fname):
        u"""gplファイルを1つ読み込んで内容をタブルで返す."""
        name = fname
        columns = 16
        rgb_data = []
        fpath = os.path.join(dir, fname).replace(os.path.sep, '/')

        r1 = re.compile(r"Name:\s+(.+)$")
        r2 = re.compile(r"Columns:\s+(\d+)$")
        r4 = re.compile(r"^\s*(\d+)\s+(\d+)\s+(\d+)\s+(.+)$")
        r5 = re.compile(r"^\s*$")

        f = open(fpath, 'r')
        for (i, s) in enumerate(f):
            s = s.rstrip()
            if i == 0:
                if s != "GIMP Palette":
                    return None
            elif i == 1:
                m = r1.match(s)
                if m:
                    name = m.group(1)
                else:
                    print("Error : %s" & s)
                    return None
            elif i == 2:
                m = r2.match(s)
                if m:
                    columns = int(m.group(1))
                else:
                    print("Error : %s" & s)
                    return None
            elif s.find("#") == 0:
                continue
            elif r5.match(s):
                continue
            else:
                m = r4.match(s)
                if m:
                    r, g, b, colname = m.groups()
                    rgb_data.append([int(r), int(g), int(b), colname])
                else:
                    print("Error : %s" & s)
                    return None
        f.close()
        return (fname, name, columns, rgb_data)


class MyWidget(QWidget):

    u"""メインウインドウ相当."""

    def __init__(self, *argv, **keywords):
        """init."""
        super(MyWidget, self).__init__(*argv, **keywords)
        self.palview = PaletteSelect(self)
        self.lbl = QLabel("Ready.")
        l = QVBoxLayout()
        l.addWidget(self.palview)
        l.addWidget(self.lbl)
        self.setLayout(l)

        self.palview.valueGetted[QColor].connect(self.clicked_palette)

    def clicked_palette(self, col):
        u"""パレットプレビューがクリックされた時の処理."""
        r, g, b = col.red(), col.green(), col.blue()
        self.lbl.setText("RGB=(%d, %d, %d)" % (r, g, b))


if __name__ == '__main__':
    app = QApplication(sys.argv)
    w = MyWidget()
    w.show()
    sys.exit(app.exec_())

palette_select_ss01.gif


スクリプト + パレットファイル群(*.gpl)を、zipでまとめて置いておくです。スクリプトは CC0 / Public Domain ってことで。

_paletteselect_20161121.zip

2015/11/20(金) [n年前の日記]

#1 [zatta] 猫除けペットボトルは現代のプチ神社

思考メモ。

_猫よけペットボトルの起源 : ぬかよろこび通信 という記事を読んで、猫除けペットボトルはガーデニングの神様 Eion Scarrow氏のジョークが世間一般に信じ込まれてしまったもの、という話を知ったのだけど。

考えてみれば、犬猫版の _小便鳥居 なんだよなと思えてきて。

_街中の小鳥居、関西から全国へ 立ち小便防止が起源  :日本経済新聞
_鳥居 - Wikipedia
_魂京都(tamashii_kyoto) 【鳥】京都の小便鳥居を巡る〜その1

「ここでやらかさないでくれ。頼む。お願いだから」という、“そこに住む人達の願いや思いが形となって具現化したもの”という点では、猫除けペットボトルも、小便鳥居も、ほとんど同じ存在なわけで。

しかし。小便鳥居は人間の心理を利用してるので多少の効果が期待できるけど、猫除けペットボトルは一切効果が期待できない。効果が期待できないものがそこに存在するのだから、“願いだけがそこにひっそり鎮座ましましている”という点で、極めて純度が高い存在と言える。

てなことを考えてるうちに、そういえば昔誰かが、猫除けペットボトルは現代の神社、みたいなことを言ってたような気がしてきて、なるほどそういうことなのかと今頃納得した次第。日本人は神社に行って「神様どうかお願いします」と祈るわけだけど。猫除けペットボトルも「これでやらかす連中が減りますように。どうかうまくいきますように」と祈ってるわけで。これはもう、プチ神社みたいなもんだよなと。

そのあたり、誰が言ってたのだったか。なんだかブラタモリの中でタモリさんあたりが言ってそうな話のような気もしたり。実際言ってたかどうかは記憶が無いけど。

これをもうちょっと発展させていくと、SF設定にできそうだよなと。科学技術が発達してゴイスなメカがビュンビュン飛んでるのに、何故か場違いなものがポツンと。由来を聞いてみると、ははあ、なるほど、でもソレってホントかねえ、みたいな。

あるいは、願いを吸収して実際の力にしちゃう謎の機関とか。科学技術によって、本当に神様相当が誕生してしまったんだよ、みたいな。と思ったところで、イデオンやEVAを思い出したりして。人々の願いが〜みたいな台詞が本編中であったような。

さておき、そんなアレコレを意識しながら _PET bottle scape の風景を眺めていくと、そこにはある種の荘厳性を感じるわけで。神社相当を眺めているのだから当然かもしれない。 時折、 _収れん火災 という神罰までついてくるし。

2014/11/20(木) [n年前の日記]

#1 [cg_tools][dxruby][spriter] Spriter用のデータを作り直し

先日 Spriter で作ったデータは、パーツ数が多過ぎて何が何だか分からないので、数パーツだけ使った簡単なデータを作って眺めていたり。

Spriter の保存ファイルはそのままだとXML形式(.scml)で保存されるけど、json形式(.scon)でも保存できることに今頃気付いた。RubyでXML解析をするなら Nokogiri を使いたいところだけど、しかし Nokogiri はインストール時にハマったりするし。さりとて Ruby に標準でついてる REXML とやらは処理速度が遅いと聞くし。などと悩んでたけど、Spriter が json形式でも保存できるなら、ココは json を使ったほうがヨサゲかなと思えてきたり。ただ、内容を確認するなら json より XML のほうがまだ分かりやすいので、眺めているのは XML だったりして。

とりあえず、分かった点は以下。

animation タグがアニメーション種類の情報を持っている。例えば、defaultpose、walk、run というアニメーション種類を作ったら、
  <animation id="0" name="defaultpose" length="960" interval="16">
    ...
  </animation>

  <animation id="1" name="walk" length="960" interval="16">
    ...
  </animation>

  <animation id="2" name="run" length="960" interval="16">
    ...
  </animation>
といった形で記録される。 interval に 16ms ではなく 16.6ms 等を指定できれば60FPSに近づけられるのだけど、どうやら小数点以下は指定できないらしい。60FPSを前提にしてデータを作るなら、16ms か 17ms を指定して、微妙にフレームレートがずれちゃうけど、そこは我慢するしかナサゲ。

mainline タグは、キーフレーム情報を持っている。例えばキーフレームが2つあるなら、mainline タグの中に <key 〜> 〜 </key> が2つ記録される。
        <animation id="0" name="move" length="960" interval="16">
            <mainline>
                <key id="0" curve_type="cubic" c1="0.7349" c2="0.9581">
                  ...
                </key>
                <key id="1" time="480" curve_type="cubic" c1="0.6744" c2="0.9535">
                  ...
                </key>
            </mainline>

obj_info タグは、bone(ボーン、骨) の数を示してる。例えば bone の数が2つなら以下のようになる。
        <obj_info name="bone_000" type="bone" w="30.956" h="10"/>
        <obj_info name="bone_003" type="bone" w="64.7619" h="10"/>
w が bone の長さ、h が bone の幅。どうやら bone は、横に伸びる形で考えてサイズ指定されている。おそらく画面の右方向が 0度として扱われている予感。

2013/11/20(水) [n年前の日記]

#1 [windows] Windows PowerShell をちょこっと勉強しようとしてたのだけど

「PowerShell を使ったらもっと楽になる部分があるのかなあ。Windows7 には PowerShell ISE なる専用開発環境まで標準で入ってるみたいだし」てなことを思って少し触り始めたのだけど。入門サイトを見ながら、ISE上でスクリプトを写経して、動かそうとしたところで、「スクリプトは動かせないよん」と文句を言われて。

どうやら PowerShell のスクリプトって、デフォルトでは実行不可能だそうで。動作させるためには、権限、というか実行ポリシーを変更しないといけないのだとか。

_PowerShellスクリプトの実行セキュリティ・ポリシーを変更する − @IT

管理者権限で PowerShell を開いて、Set-ExecutionPolicy RemoteSigned とかするのが主流らしい。Get-ExecutionPolicy で現在の状態が確認できるらしいけど。

WSHと比べると不便だなと。いや、セキュリティ面を考えると妥当な仕様なのかもしれないけど。でも、自分の環境で作ったスクリプトを他のPCに持っていった際に、そのPCの実行ポリシーも変更しないといかんのだろうし…。

なんだかそういうの面倒臭いなと思えてきて、勉強する意欲も萎えてきたり。いや、セキュリティ面を考えれば、これで正解なのだろうとは思うけど…。

なんか他に解決策なかったのかな。実行時にユーザが決めたパスワードを入力をすると実行できる、とか。まあ、それもそれで何か問題が予測できたから、こうなってるんだろうけど。

#2 [ubuntu] VMware Player上の Ubuntu 13.04を13.10にしてみたり

日本語入力がよろしくないことになったと評判の Ubuntu 13.10。どんな風によろしくないのか気になったので、試しに更新してみようかなと。

更新自体はすんなりできた。

VMware Tools も、VMware Player 6.0.1 にアップデートした状態で入手できるソレを使えば、パッチ等当てなくてもインストール出来ている、ように見えた。いや、実際はなんか動作が怪しい感じがして、一旦 VMware Tools をアンインストールして再インストールしたのだけど。何にせよ、VMware Player が提供してる共有フォルダ機能は使えた。ここまではイイ感じ。

問題の日本入力だけど…。たしかにコレは評判通り「クソ」だなあ、と思えたり。Windows + Space キーで何かしらを切り替える仕様になった、とは聞いてたのだけど。それでも使い方が分からない。この仕様はWindows8と同じですよ、とか、Mac OS X がこういう仕組みですよ、てな話も見かけたけれど。自分、Windows8 は触ったことないし、Mac も持ってないので…。貧乏でゴメンナサイ。

半角全角キーを押せば日本語入力と半角文字入力が切り替わってる動作は確認できたものの、現在どちらの状態か、どこにも情報が表示されてないあたりも、なんというか。人間様の短期メモリーは、こういうの常時覚えておける性質は持ってないと思えたり。

更に困ったのは、Dash…でしたっけか。アプリ名等を打ちこむとリストアップしてくれる、あのランチャー。あそこで英数字の入力ができなくて。日本語入力状態から切り替える方法が分からず。

まあ、Ubuntuのパワーユーザさんなら特に困らないのかな、てな想像もするのだけど…。自分のような、たまにちょっと触る、ぐらいのアレでは、こりゃもう全然ダメだわ、歯が立たないわと。もっとも、「初心者はLTS版を使えよ。なんで最新の使おうとするんだよ。自業自得だよ」とか言われそうだけど。

とりあえず、 _Ubuntu 13.10をインストールした直後に行う設定 & インストールするソフト を参考に、Fcitx を使うようにしてみたり。コレならまだ、今までと同じ感覚で使えそう。助かりました。ありがたや。

半年以上前から問題視されてたのですな。 :

関連ページを眺めてたら、Ubuntuに詳しい人達は半年以上前から、「今度のiBusは、かなりマズい」「Fcitxを選択肢として考えといたほうがいいかも」と、何度もあちこちで警鐘を鳴らしてたのですな…。なんだかスイマセン。今頃になって「なんだコレ」とか言い出しちゃって。てな気分になってきたり。

中国で作られてる「Ubuntu Kylin」は、早々に Fcitx 採用を決定した、ハングルはそもそもこの手の変換は問題にならない、てな話も見かけて。のほほんとしてたのは、日本人だけなのだなと…。なんだか原発事故と同じ状況があるような気がしたり。問題発生が容易に予見できても、詳しい人が警告を発しても、実際に事故が起きるまで危機感を持たないのが日本人という民族、ということなのかな。

#3 [zatta] アクセルとブレーキを別の場所に配置してる車を作るメーカは出てこないのだろうか

「ヤマハが四輪車事業に参入」「バイクの技術を活かした製品を」というニュースを見かけて。「おお…これはもしかしたら、アクセルとブレーキが別の場所にある、お年寄りでも絶対に操作ミスをしない車が登場するのでは」と期待しちゃったのだけど。

ニュース映像を見たら、やっぱりフツーのハンドルがついていて。二輪車作ってる企業だから、今の四輪車が抱えてる根本的なUIバグにも気付いてくれるのではと期待したのだけど…。ヤマハもダメかー。まあ、考えてみたら、横から押したらバタリと倒れる車両を作り続けてきたグループなわけだし。安全性に気を配った設計を急にしてくるわけないよな、とも思えてきたのですけど。

それにしても、不思議というか不可解というか…。

これ、前にも書いたけど。UI設計の分野では、利用者の操作ミスを無駄に誘発するようなUI設計は悪、とされてるのに、どうして人命が関わってくる四輪車の世界では、そういう思考がガン無視されるのだろうと。そこが不思議でしょうがなくて。

子供を轢き殺さないように車を止めるためのボタンと、加速して子供を撥ね飛ばすボタンを、わざわざ仲良く足元に ―― しかも、仮に視覚を使っても判断しにくい、暗い暗い、影になった場所に設置するなんて、頭がまともな技術者のやることじゃないよなと。そりゃ咄嗟の場面で踏み間違えるヤツが出てきて当たり前で。運転してる人じゃなくてUIがそもそも悪いだろ、糞UIで殺し続けてるようなもんだろ、と自分は思っているのですが。 *1

例えば、お年寄りにPC操作を初めて教えると、左ボタンと右ボタンの使い分けすらできないわけですが。そこから察するに、本質的に人間は、左右の使い分けを、「絶対的」に間違えずに行える生物じゃないのだろう、と思ったりもして。

上から物が落ちてきた時に、頭を手で守らずに、足で守ろうとする人は居ないし。足元に犬のウンコ見つけて、足で避けずに腕をスライドさせる人は居ないと思うのですが。「右上げて、左下げて、左上げないで右下げない」で間違える人はボロボロ出てくる。常日頃、右手と左手を使いこなしてるにもかかわらず、そんな状態。

つまり、瞬時に左右を正確に判断するのは難しいのではないかなと。そんなものに頼って、人命に関わるUIを設計してちゃいかんよなと思うのです。

てなあたりに気付いて、「なるほど、これは理に適ってる。これなら絶対間違えない」と思えるUIを四輪車上でどんどん採用する企業が出てこないものかなあ、と夢想するのだけど。ほとんど見かけないよな…。四輪車作るのはコストがかかるから、売上げ云々を意識すると、そういう実験もなかなかできないんだろうけど…。「慣れ」を優先して、UIが変わると文句を言う・否定する人達も山ほど居るし。「人命に関わる部分だから変えちゃいかん」と言い出す人が居るだろうけど、最初から腐ったUIだと分かり切ってるモノに、ユーザを慣れさせちゃうことを、迂闊に肯定し続けるほうがもっといかんやろと。

つまりは、社会に蔓延してしまった悪しきUIを改善していくコストより、子供達を轢き殺し続けるほうが安く済む、と、この社会は判断して、選択し続けている、ということで。酷い社会だなと。

せめて、自転車みたいなUIの車が出てこないかな、と夢想するのですが。アレなら絶対に、アクセルとブレーキの踏み間違いはしないのになあ。

それはさておき。 :

ヤマハが発表したソレは1000ccのエンジンらしくて、ちょっとヘビーだなと思ってしまったり。125ccとか250ccでは作れないのでしょうか…。

もちろん、125ccとか250ccでは、周囲の車と接触したらペシャンコの、めっちゃ軽いペラペラボディになるだろうけど。要は、風雨を防げる四輪バイク、程度だったら良かったのにな、みたいな。

「風を防ぐだと? 風を感じられるのがバイクの魅力じゃないか。お前は何を言ってるんだ」とか言われそうだけど、こっちは自転車で走ってても寒いぐらいなので…。ガタガタ震えながらソレに乗るとか、もはやファッションだよなと。自分は、実用性・利便性・経済性が欲しいです。

とか思いながらググってたら、 _テッセラクト なるヤマハ製のバイクを見かけて。カ、カッコイイ…。いや、カッコよさはともかく、こういうのが作れるんだから、小型・中型バイクと似たような中身の車も作ろうと思えば作れそうだなと。でも、需要がないと予想してるのかな…。

_「東京モーターショー2013」開幕 軽自動車と原付自動車のあいだ「超小型モビリティ」に熱視線 - ITmedia ニュース を眺める限りでは、そのうち小さな車がポツポツ出てきてくれるのではと思えてくるのだけど…。しかしコレ、アクセルとブレーキはどこについてんだろ。せっかくの機会だから、こういうタイミングで改善しないと、なんてことも思うのだけど。

さておき。 _カワサキの三輪電動ビークル「J」が未来志向すぎ - GIGAZINE という記事を眺めて、アニメのメカデザインみたいだ、カッコエエ、と思いました。

本体デザインや機構は工夫するのに、どうしてUIは放置するんだろ…。

*1: もちろん、緊急時に足元を見るなんてできないので、視覚で分かるからOK、なんて配置もマズいのですけど。しかし、足先の感触だけでどっちがブレーキか、なんてますます分かるわけないから、そんなの論外やろと。

2012/11/20(火) [n年前の日記]

#1 [nitijyou] 昔のゲームをプレイ中

ドット絵を確認したくて、PCEやMEGA-CDのゲームを引っ張り出してきたり。まだどうにかCDメディアは読める模様。

ドットエディタで拡大表示して確認したいので、エミュレータを使って気になるシーンをキャプチャしたり。ソフト自体は購入所有しているものだし、ゲーム機本体も持ってるので、エミュで確認しても問題ないのではと思っているけれど。それもダメだ、許されない行為だ、ということであれば、その時は本体をRD-H1に接続して録画するしかないのだろうな…。

2011/11/20() [n年前の日記]

#1 [nitijyou] 投票してきた

親父さんの電動自転車を借りて下宿公会堂まで。福島県議会議員選挙の投票をしてきた。

枠が3人のところに5人が立候補。政策を調べたけど、皆除染云々を言及していて、さほど違いがなく。誰を選ぶかで悩んでしまった。…結局、一番若い人を選んだ。会津大学でコンピュータを勉強した人みたいだから合理的・論理的思考が多少は身についてるかもと根拠は薄いが淡い期待を。実行力は別にしてもそういう思考ができる議員さんが一人でも混じってないとよろしくないだろうし。

電動自転車で買い物に。 :

投票後、そのまま自転車で買い物に。

安積永盛のヨークベニマルの近くの100円ショップ、Seriaまで行って、au携帯用の通信ケーブルを探した。が、見つからず。DoCoMo用なら通信ケーブルも置いてあるのだけど、au携帯は充電ケーブルしか置いてない。昔は件の100円ショップで、通信ケーブルを売ってた時期があるらしいのだが…。

ケイヨーD2にも回って探したが、やはり見つからず。これまた、充電ケーブルは置いてあるものの、通信ケーブルは無い。DoCoMo用は置いてあるのに…。

もうauのガラケーは、周辺機器・ケーブルの類を入手するのは難しいということなのだろう。auショップでも在庫がないという話をネット上でも見かけたので、とにかくスマホに乗り換えろ・スマホを買いやがれという圧力を、それとは分からないところでじわじわとかけ始めているのかもしれない。なんだか酷い話。


ヨークベニマルによって夜食用のお菓子やジュースを購入して帰宅。

帰宅途中で電動自転車の電池容量がメモリ1つに減った。安積永盛程度の往復でこれほど電池を使うのでは、郡山駅前まで行ったら絶対に電池が切れそうだな…。予備の電池でも入手しない限り遠出は難しそう。

#2 [windows7][dtm] Windows7 64ビット版に MIDI Yoke を入れてみたがなかなか上手く行かない

KORG nanoKEY2 を Windows7 x64上で使えるようにしたついでに、仮想MIDIケーブルとしてメジャーな MIDI Yoke もインストールしてみたが、どうも今一つ。

管理者権限でcmdを起動して、MIDI Yoke インストール用の .msi を実行して、OS再起動。

_ペンちゃんの不思議なけんばん_MIDIせれくたー 、 PLWMidiMap.cpl 、 M1 LE スタンドアロン版上では、MIDI Yoke が一覧に見えるのだが。 _CHORDLINE 0.98 beta 上では一覧に MIDI Yoke が出てこないので選択できず。また、MIDIせれくたー上で MIDI Yoke を出力先として設定しても、反映されている感じがしない。

たしか以前も、Windows7上でこの手のソレが反映されず、悩んだ記憶がある。やはり VMware Player + XP Mode 上でDTM関連ソフトを動かすほうが妥当だろうか…。

どうも Windows の開発チームは、MIDIに対して冷たい。開発チームの中にDTMを趣味にしている人間が誰一人居ないのではないか?

2010/11/20() [n年前の日記]

#1 [flash] ソースを眺めているのだけど

どこでSE再生指定をしているかすら辿りつけなかった…。grepしてもそれらしい部分が出てこないってどういうこと…。

2009/11/20(金) [n年前の日記]

#1 [pc] AmazonからKB008W-Sの交換品が届いた

どうやら在庫があったらしい。返金扱いにならなくて良かった。

株式会社クーラージャイアントさんに連絡して、「ホイール回転が重いのは仕様。ホイールクリックが引っ掛かるのは初期不良っぽい」とのコメントを貰っていたわけだけど。届いた品で確認してみたところ、ホイール回転はたしかに重く、これは仕様なのだなと納得。ホイールクリックは、最初の届いた品と違い、引っ掛からない。最初の品は初期不良品であったことが確定。

届いた時の箱を使って、最初に届いた品を梱包。後で返送のための手続きをしておかないと。…直接店に持って行ったほうが早いのかな。

#2 [nitijou] k長さんから受け取った原稿が入った段ボールをようやく開けてみたり

昔同人誌を作ってた頃の原稿が入った段ボールを、結構前にk長さんから受け取っていたのだけど。分類が非常に大変そうなもので手つかずだったわけで。一念発起?して開けてみたり。

すっかり失念していた。合作が多いものだから、描いた人毎に分けていくのは大変なのだな…。というか、ぶっちゃけ、今となっては誰が描いたのか判別できない原稿が多々。自分が描いたものしか判らん。

それとは別に。版下にするために、各ページをセロテープでくっつけてあるのだけど。当然ながらテープは黄ばんでいてパリパリ状態に。また、油性で描かれた原稿も入っているようで、結構な時間が経過しているから、滲んで凄いことに。さらに、ペーパーセメントで貼りつけたであろう部分は、既に粘着力を失っていてパラリパラリと落ちてしまう。まあ、スクリーントーンが剥がれてないのは不幸中の幸いだけど…。

それにしても、昔描いた原稿は、目にするだけで結構なダメージを食うなあ…。いや、今描いたとしても、それなりにダメージを食うだろうけど。昔のソレは比較にならないほどの攻撃力がある。一枚、また一枚と発掘するたびに、壁に頭を打ちつけたくなるのは何故でしょうか。

とりあえず、B4サイズが入る封筒を買ってきて、分類しないと…。k長さんの話では、自分以外、昔の原稿を欲しがる人は居なかったとのことらしいけど。この攻撃力を自分一人で受け止めるのはなんだか悔しいので、無理矢理にでも他の人にも送ってやろうと。嘘。結構場所を取る上に、何かの念がこもってそうなので、処分の仕方をできるだけ各人に任せたいだけなんですが。しかし、作者が判らんのが結構混じってるんだよな…。誰に見てもらえれば判別できるんだろう。うーん。

#3 [anime] 「天空の城ラピュタ」がTVで流れてたのでぼんやりと鑑賞

やっぱり凄いわ。神懸かってる。

それはともかく。某実況板は、どうにかならんだろうか…。「バルス」でサーバが落ちる・アクセス禁止になるのは、ある種システムの物理的な限界だろうからどうしようもないとして。単発スレ立て・無駄なスレの乱立が酷い点だけでもどうにかできればなと。しかし、防止するための技術的策が何も思い浮かばない。スレッドを立てるとその後数分間アクセス禁止になる、みたいな仕様を入れてしまうと、真っ当なスレッドですら立てようとする人が出てこなくなる上に、サーバの負荷も今以上に重くなるだろうし。NGワード導入でどうにかなる問題でもないだろうし。

こういった問題は、利用者のモラル(?)とやらでしか解決できないのだろうか。しかし、人の集う場所で、意図的に悪意を持って、もしくは愉快犯的に振舞っている人間に対し、利用モラルの類などこれっぽっちも期待できるはずがない。となると技術でどうにかするしかないが、しかし技術で解決できる範囲にはどうしても限界がある…ということの実例なのかもしれないと思ったりもして。コストその他を考えない妄想レベルの段階ですら、何も解決策が出てこないという、そこがなんだか悔しい。技術の敗北ではないか。いやまあ、仮に名案があったとしても、実装や運用のコストを考えるとえてして没になりそうではあるけど。

2008/11/20(木) [n年前の日記]

#1 [pc] ネットブックをまだ調べてたり

SSD搭載機とHDD搭載機に大別できそうな感じなのだけど。

SSDは、容量が少ない代わりに、衝撃で壊れにくいし消費電力も少ないらしく。持ち運ぶにはそっちのほうがいいのかな。と思っていたら、書き込み回数制限の問題で、フツーに使用して1〜2年で本体内蔵SSDの寿命が来ることが予見される実測記事を見かけてしまったり。

本体内蔵SSDの寿命が来た場合、別途売られてる汎用?的なSSDと交換できるならまだなんとかなりそうだけど。実際には、交換が難しい・システムドライブ用SSDは各メーカの独自仕様っぽいSSDになってる製品もあるようで。その場合は本体ごと廃棄するしかないのかな、という不安が。また、えてしてアクセス速度はHDDより遅いらしく、ソフト起動時にかなり待たされたりもするようで。

その点HDDなら容量は多いし速度はそこそこだし。衝撃を与えないよう注意できるなら、まだHDDのほうがヨサゲな感じ。ただ、持ち歩きやバッテリーの持ちを考えると、HDDはちと怖い感も。

液晶サイズは、7、8.6、10.2インチのランク?があるようで。10.2インチになると本体も大きくなるため、キーボードのピッチとやらも大きくすることができて打ち込みやすいのだとか。しかし持ち歩く際には邪魔になる。キーボードの打ちやすさと持ち歩きやすさはトレードオフっぽい。

持ち歩くとなるとバッテリーの持ちも気になるところ。2.5時間しか持たない製品もあれば、8時間ぐらい持つ製品もあるようで。

どうもまだまだ「これで決まり」的な製品は出てないっぽい。いや、使用スタイルで選ぶべき製品は違ってくるんだろうけど。

内蔵SSDが壊れてもなんとかなるらしい。 :

BIOS設定を変えてSDHCやUSB接続機器から起動できるようにする方法があるのだとか。なるほど、そっちにOSを入れれば、廃棄しなくても済むのか…。まあその頃には液晶の寿命も来てるのかもしれんけど。

2007/11/20(火) [n年前の日記]

#1 [nitijyou] サーバ落ちてました

ログを見る限りでは、昨日のPM7:50から今朝のAM3:30ぐらいまで落ちてたようです。気づくのが遅れました。スマンです。

ケースやHDDを冷やすためのFANは回っていたのに、M/Bに電源が入ってなかった・電源ボタンを押しても入ってくれなかったのが謎であります…。もしかすると、気温が低くなりすぎて、ハード的に動作が怪しくなった・M/Bだけ電源が落ちてしまったのかしら。そういえば、以前使ってたサーバ機も、階下に置いてた頃は、寒い日があるとピーピー鳴いたりしていたような。 *1 と言っても今回、部屋の温度は、温度計をチラ見したところ7度くらいなわけで。まだ比較的温度はあるほうだよなぁ…。

温度センサをつけて、ログを取るような仕組みとかできないかしら。>サーバ機。もっとも、現在のサーバ機 ―― 安い EPIA M/B には温度センサが一切ついてないわけで。…PC側から値を取得できる温度センサアクセサリーってのは存在するのだろうか。まあ、フツーはM/Bに温度センサがついてそうだけど。
*1: BIOSが、「キーボードが接続されてないよ」とbeepを鳴らしてた模様。CPU切替器が正常に信号を返してなかった・切り替えをしてなかったと思われる。

#2 [zatta][neta] 電気服ってないのかな

電気ひざ掛けが思いのほか暖かいわけですよ。しかも消費電力が少な目。電気ストーブだったら600Wとか1200Wとか使うだろうに、電気ひざ掛けはそれより一桁少ない。

ということで、ひざ掛けに留まらず、服自体に仕込めないものかと。つまり、電気服。地球にやさしいですよ、電気服。

まあ、動きづらいとか色々問題はありそうですけど…。でも、PCの前に一日中座ってるような職業なら、たぶん使い道もありそう。でもないか。どうなんだ。

つか「厚着しろよ」で終わりか。

USB電気服ってないのかな。 :

商品名だけで胸キュン。しかし、さすがにそこまで省電力で作れないよな…。

#3 [pc][neta] レイヤーの深度を変更するときに疑似3D表示したら判り易くならないだろうか

と夢想。

#4 [anime] _ガンダムと電気ストーブが合体

発想に感動。デザインもカッコイイ…。

#5 [web][digital] _POLAR BEAR BLOG: メールは死んだ

そもそもケータイでメールを使うなんて遅れてる、のか…。ケータイ自体滅多に使わないからそんな機能orサービスがあるとは知らなかった。それともこれは海外に限った話で、日本には該当するサービスがないのだろうか。さっぱりわからない。 _(via ヲハニュース)

2006/11/20(月) [n年前の日記]

#1 [tv] のだめドラマ版を2話分視聴

学園祭と太鼓の達人の回。どんどん話を消化しないといけないからかなり圧縮してる印象。それにしても「ヒッ」「ヒィ」なる驚き方が異様に多いドラマ。原作からしてそうなんだろうけど。

#2 [iappli] プロジェクト作成

別企画が来たので、eclipse上で新プロジェクトを作成。が、subclipse でリポジトリを作る方法を忘れてしまってハマる。DOS窓から svnadmin create . をしてみたり。パッケージエクスプローラでプロジェクト名を右クリック→チーム→プロジェクトの共有を選んでみたり。とりあえずなんとか設定できたみたいだけど。そのうちまた忘れるだろうから、ちゃんとメモしておかないといかんな…。

メモ用にTiddlyWikiを導入。 :

_TiddlyWiki

htmlファイル1つで利用できるWiki。Version 2.1.3が出ていたようなので、ダウンロード。 _MemoWiki から日本語化部分をコピペさせてもらったり、 _WikiSample から書き方ページをコピペさせてもらったりしてカスタマイズ(?)。タブ表示ができるとは知らなかった…。

2005/11/20() [n年前の日記]

#1 [flash] FLASH勉強中。TextField とか attachMovie とか

MovieClip にしても TextField にしても ActionScript から生成できなければ話にならないだろうからそのへん勉強。…本当は Button を attachMovie したいのだけど、どうもうまくいかない。まあ、MovieClip でも onRollOver とか使えば似たようなことができるみたいだから、そのへんどうでもいいか。逐一処理を書くのが面倒だけど。

_TextFieldの動的作成 :

雰囲気を掴みつつ、細かいところは、 _ActionScript 2.0 リファレンスガイド を参考にしつつ。

loadMovie した 外部swf に変数を渡すあたりでハマる :

_Macromedia - Flash TechNote : fl0283 - ローカル上のファイルへクエリストリングの変数を渡せない

ローカルでテストするには、クエリストリングなるやり方では変数を渡せないわけで。で、外部swfロード後に変数を設定しようとしたけど、ロードしてから数フレーム経過させてから渡さないとダメみたいで…。

ActionScriptって2進数を記述できないのかな :

一々脳内で16進数に変換して記述するのは面倒。

全然関係ないけど、2進数で記述できない言語がチラホラあるのは何故なんだろう。

#2 [anime] エウレカセブン、宇宙怪獣の回

大変なことになってきたなー。面白いー。しかし、作画陣は違う意味で大変だな…。

コーラリアンってああいう形状だったのか。なるほど、あれだけバリエーションがあれば、LFOや人型が出てきても違和感はない、かも。自分、「先住民族の形状を模して変化していく = コーラリアン」と想像してたけど。そういう設定ではなく、最初からそれぞれ形状を持っているという設定なのだろうな。

知的生命体が脳内で作ったイメージを読み取って、それに形状・性質を変化させていく = コーラリアン、という設定でも面白そう。化け物みたいな形状・好戦的な性質になったのは、彼らに攻撃を加えた側が、彼らに「そういう形状であってほしい」「恐ろしい敵として存在してほしい」と望んでしまったから、みたいな。

なんだか色々と想像できて、最近の情報の出し方は面白い。ような気がする。

#3 [anime] マジレンジャー、スナイパーの回、2回目

黄色の人の豹変振りが面白かったかも。クールを気取ってるキャラが発狂するのはグー。…あー、そうか。敵と黄色の人を同じ性格にしてたのだな。今頃気づいた。ということは、緑、ピンク、青の人と同じ性格の敵が出てきても面白そうだなぁ。

#4 [anime] ライダーヒビキ、弟子にしてくださいの回

「俺を弟子にしてください」だけで笑いがとれるとは想像してなかったわけで。上手いなぁ。トドロキくんの反応には笑ってしまった。

とうとう娘さんが鬼に! なるのかどうかはわからんが。上手いヒキだよなぁ。やっぱり上手いわ。

おやっさんのみならず、少年の母親役の人も登場。これまたやっぱり舞台等で忙しかったのかしら。あるいは予算の問題なのか。…こういう番組における、役者さんへの支払いって、どういう取り決めになってるんだろう。拘束時間を日で計算してるのか。それとも年間契約なのか。後者だとしたらどんどん使ったほうが安上がり、だろうけど。

#5 [anime] プリキュアmax、海外に行っちゃうかもの話

ラストに向けての山を設定というか、別れの予感を匂わせてるというか。…別作品の企画が動いてるのかな。そのへん情報を探してないんで知らないのだけど。

2004/11/20() [n年前の日記]

#1 [mozilla] _Search Station (検索ステーション)

お。

_Web Search Plus :

おお。これでGooglebarを除外できるかしら。

_Firefox1.0リリース、おすすめのエクステンション、検索フォームの追加 :

JTw版Firefoxを入れなおした :

Firefox 1.0 公式版をアンインストールして、JTw版を入れなおした。この状態で拡張機能等揃えていくことにしやう…。

FirefoxじゃなくてMozillaだったら :

必要な機能は全部入ってたりするのだろうか。なわけないか。Mozilla も、TbEとか入ってないしなぁ。

#2 [hns] カテゴリに「mozilla」を作ってたのを

すっかり忘れてた…。数日前に書いていた記事のカテゴリを、「mozilla」に変更。

カテゴリをつけるの面倒だなぁ。指定するカテゴリが決まってきちゃうんだよなぁ。全部覚えていられない…。でも、後で自分が閲覧するとき、カテゴリで見れたほうが楽なときもあるし。 *1

hnfを打ち込む際に、リストボックスからカテゴリ名を選べると楽なのかも。…クリップボード拡張ツールの類でどうにかならんかしら。うーん。
*1: とはいえ、hnsは、巷のblogツールと違い、カテゴリで記事内容までは表示されないので、若干不便なんだけど。が、タイトルが列挙されるだけでも、結構ありがたいわけで。

#3 [nitijyou] pdfファイルの入れ替え作業に行ってきた

AM10:00-PM2:00まで。自転車で行ってきた。

印刷所から送られてきたpdfファイルのサイズが1/10になってた。むぅ。やるなぁ。

チラシ作成もついでにやってきた :

画像が必要なので、スキャナを使わせてもらった。Canon CanoScan LiDE 40 のドライバや添付ソフトをインストールしたものの、アプリのTWAINソース選択欄が空白のまま。むぅ。…OSがWinNT4.0だった。Canonのサイトで情報を探したら、NT4.0には非対応。ギャフン。

WinXPのノートPCを貸してもらって、そちらでスキャン。LANに接続できないノートらしいので、スキャンした画像をjpgにして、FDに2枚ずつ入れて、別のPCに渡した。LANが使えないと不便。

観光で商売したいと思うなら :

広告等に使える、フリー画像を提供しないとあかんのではという気もしてるのだけど。綺麗な風景写真、美味しそうな料理の写真を列挙したチラシのほうが、客がその気になるだろうし。商工会議所のサイトを作っただけで終わってたらもったいない。もっとネットを有効活用しないと。なんて思うのだけど、どうなんだべ。

#4 [nitijyou][pc] 昨日のWinXP起動せずの件

電話で事後報告が。memtest86を動かしたらゲッソリするほどエラーが出てきたとのこと。つまり、メモリが壊れてる可能性が高いのではと。購入店にメモリを持ち込んだら、代わりの品と交換してくれたそうで。 *1 交換したメモリと変えてみたら、スンナリWinXPが立ち上がったそうで。よかった。

一応電話口で、「メモリ交換後も、memtest86でチェックしてから各種作業をしたほうがいい」「OSが起動しただけで安心してはいけない」とは伝えておいた。万が一、交換後のメモリの一部が壊れていた場合、バックアップ作業をしていたはずが、壊れたファイルばかり保存してた、てなことになったらマズイし。 *2

他にも聞きたいことがあるとの話で、明日お伺いすることに。というか車で迎えに来てもらう方向で。
*1: 本来なら修理扱いになるところを店員と交渉して交換してもらったと言ってた。
*2: OSがファイルアクセスする度に、 CheckSum等使って、ファイルが正常かどうかチェックしてるなら問題ないのかもしれないけど。でも、なんとなく、そういうことはしてない気がするのですが。>Windows。してたら、めちゃくちゃ重くなりそうな気がする。

この記事へのツッコミ

Re: 昨日のWinXP起動せずの件 by Y    2004/11/21 11:50
メーカー製でそんなにエラーを出すようなメモリを使用
してるのは不思議ですね。
普通は何か外的な要因でも無ければ使用中にメモリなんて
壊れるはずが無いと思ってるのですが・・・
Re: 昨日のWinXP起動せずの件 by けいと    2004/11/21 16:51
昔と比べてメモリエラーが出るケースは増えているような気がします。

1チップあたりの密度も高くなっているし、
動作速度も速くなっているし…

256Mbitのメモリチップを例にとって見ても、
2億5600万の記憶素子1つ残らず正常動作って
かなり難しいと思いますし…
これはHDDも同じですね。
記録面のエラーは言うに及ばず、
信号がケーブルを伝っていく途中にノイズでエラーになっちゃう事もあるわけで…

あとはメーカー製PCといえども部品を買ってきて組み立てているだけなので、
チップメーカーの違いやら
メモリボードの基板の違い、挙句の果てにはパターン長の違いで
インピーダンスアンマッチ、反射信号が発生したりと結構大変だと思います。

最近私は「メモリは1枚」にするようにしています。
増設するとどうにもエラーに出くわすことが多くなっているもんで…
それぞれ単体で使う分にはちゃんと動くんですけどねぇ。

#富士通は10年近く前にもデスクトップ機で大量の不良マシン出したし…
#ヨドバシカメラのカウンターの向こうに天井に届くぐらい積み上げられた
#故障修理受付したFMVはすごかったなぁ…
Re: 昨日のWinXP起動せずの件 by mieki256    2004/11/22 05:30
> それぞれ単体で使う分にはちゃんと動くんですけどねぇ。

興味深い話です。
組み合わせによって動くときと動かないときがあるのですな…
そのへんも、実はノウハウがあったりするのだろうか。むぅ…

> 天井に届くぐらい積み上げられた故障修理受付したFMV

光景が目に浮かぶ…恐ろしい… (つДT)
逆にいうと、それだけ人気商品、てことでもあるのでしょうな。>FMV
Re: 昨日のWinXP起動せずの件 by けいと    2004/11/22 19:27
> そのへんも、実はノウハウがあったりするのだろうか。

詳しいことは私にも分かりませんが、私の場合は経験則ですね。

メーカーHPなので鵜呑みには出来ませんが、
こういうこと
http://buffalo.melcoinc.co.jp/pronow/m_high-quality/technology.html
とか
こんなこと
http://pc.watch.impress.co.jp/docs/article/990930/kaigai02.htm
の積み重ねのようです。
高速デジタル信号の宿命なのかも。

#5 [web] 返信メールアドレスにこだわるわけ

返信メールアドレスに転送メールサービスのアドレスを指定してるのですな。>自分。それでこだわってたりするのでありました。

フリーのメールサービスは、突然サービス提供が終了したり、不具合が長期に渡って発生して送受信できなくなったりすることが頻繁にあるわけですが。 *1 そういう時、転送メールサービスを使っていれば、転送先アドレスを変更するだけで済む…。今まで、知人・友人に知らせていたメールアドレスについて、変更のお知らせをしなくて済むわけで。 *2

が、返信メールアドレスが指定できないメールサービスでは、
  1. 相手先が、「本当のメールアドレス」に対して返信をしてしまう。
  2. と同時に、アドレス帳に、転送メールサービスのアドレスではなく、「本当のメールアドレス」が登録されてしまう。
  3. 「本当のメールアドレス」が消失したとき、相手がメールを送ろうとして困ってしまう…。
となるので、せめて返信メールアドレスを指定できるサービスじゃないと困るなぁ、と思っているのでした。 *3

POPとSMTPが使えるフリーのメールサービスが使えたら嬉しいんだけどなぁ… :

でも、今、そういうサービスって少ないみたいですしねぇ。なもんで、問題はありつつも、自宅サーバにメールサーバを立ててどうにかしている状態だったり。

いや、フリーのWebメールを使えばいいだけの話なんですけど。でも、ブラウザ上でメール内容を編集するのって、どうも使い勝手がよろしくなくて…。といっても、気分的な問題でしかないような気もするんですけど(爆)

*1: ていうか、以前、自分が利用してたサービスは、結構そういうことが多かった。
*2: や。転送サービス自体が終了してしまったら、結局同じなんですが(爆)
*3: ただ、このへんの動作は、メーラによって違うとは思うんですけど。実は、返信メールアドレスを指定しても、たいして意味はなかったりする場面が多いのかもしれない…。

この記事へのツッコミ

Re: 返信メールアドレスにこだわるわけ by けいと    2004/11/21 16:56
なるほど。転送メールですか。

私の場合、信頼できる相手には本メアドを教えちゃうので
そういう使い方はしてないですねぇ〜

あと、私はWebメールはむしろ嫌いです^^;
ブラウザ越しだと、
昔のメールからのコヒペが出来なかったり、
署名を作りにくかったりと…
そんなわけで、私は普通にメーラーが使える
POP/SMTP使用可能のフリーメールを使っているわけです。

まぁ、この辺は好みの違いですね。

2003/11/20(木) [n年前の日記]

#1 [tv] TRICK1

TRICK1が今頃福島で放映されてる。たまに見るけど、カットの繋ぎやセリフが漫画的で面白い。漫画文化が浸透した故に生まれてきた世代の作品、だったりするのかな。知らないけど。

#2 [tv] 白い巨塔

見ていたお袋さんが、「女性にしか書けない話」と言ってて、妙に納得。見ていて吐き気をもよおすほどに会話のやり取りが面白い。

#3 [anime] ロケット☆マイスター

妹から、山口美由紀先生の新刊「ロケット☆マイスター」を借りて読んだ。安定した出来。イイ感じ。

続編が作れそう。成長したやんちゃなそばかす赤毛娘と普段は冴えないがキメる時はキメるマッチョなサングラス親父が大活躍。血が繋がってない親娘は萌え設定かもしれない。

このシリーズ、アニメ化しないかな。無理か。スタッフが好き勝手に弄れそうな余地はあるけど、おとぎ話系だからヲタへのアピールは弱いし、パンピー向けだと約束事を説明するのが難しいだろうし。ていうかこの作家さん、その手の商品化から完全に離れた所に居るし。いや、白泉社系はそんな作家ばかり。

#4 [pc][linux][debian] また再インストール

素の woody なら bold 表示可能だったりしないか、と疑問に思ったので試しに再インストール。ついでだからパーティションも切り直しつつ。何度目のインストール作業だろう。明らかに Windows98 よりインストール回数は多い。

x-window-system と mozilla のみ入れた状態で確認してみたけど、日本語フォントに関しては bold 表示どころか italic 表示もならず。debian は stable=安定版においてさえも日本語フォント表示に難有り、をハッキリ認識。で、今後設定云々パッチ云々で苦労するなら新し目の環境で試したほうがいいのかも、と思ったので sid に dist-upgrade。もう少し試してダメそうなら debian 導入は諦めよう。その時は初心者らしく Vine あたりに逃げる。古いけど。

文字表示なんて結構基本的なところだと思うんだけど。妙なところがスポンと抜けた・未だに混乱したままのディストリビューション or OSだこと。混乱・不便は自由である事の代償なのだろうか。

2002/11/20(水) [n年前の日記]

#1 外出

自転車で買い物に。息切れしつつ。

ここ数日煙草が切れてたので苦しかったです。
ようやくMILD SEVEN ExtraLights をGET。

USBケーブル、USBハブの値段も調査。
ケーブル650円前後、USBハブ(バスパワー駆動)2000円前後、かな。

駅前のコンビニが潰れてて驚きました。
須賀川市は大変なことになってるなぁ。

リサイクルショップで、
「セレ1.4Gが動く中古のM/Bは無いですかね」
と無茶な質問したら、何故かThunderbirdを奨められてしまった。
店長さん、AMDに入れ込んでるな。

DX4-100MHz、HDD 750MBの中古ノートが20,000円でした。
通販なら半額で倍近い性能のが買える。
買い手つかないだろうな。


妹が今頃、幻想水滸伝1をプレイしてたのですが。
ゲーム途中でフリーズ。
ロードし直してもフリーズ。
嘆いて投げてしまった模様。
あー、初期ロットだからなぁ…

せめて、若干支払えば修正ロットと交換、てなサービスは用意できないだろうか。
もっとも「ベスト版買え」で話は終りですか。

バグはどうしたって取れないもんですしねぇ…
よく「フリーズだけはダメ」と言われたけど。やっぱり難しい。
RPGやADVなんかは人間にバグチェックさせるより、
プログラム作って全パターンをチェックさせたほうが良さそうな。無理か。

2001/11/20(火) [n年前の日記]

#1 久々の運転

お袋さんの知人からPC関連の相談を受けてました。
その方の家まで、久々に車を運転。何ヶ月ぶりだろ…

帰ってきて爆睡。
なんかここ数日寝てばっかり…

2000/11/20(月) [n年前の日記]

#1 不信任案と偽装解除解凍ツール

外は雨。
起きたら夜。

不信任案、否決ですか。
つまんない。

水をかけられた野党。
ゴチャゴチャ集まってるけど、何をしたいのかサッパリわかんない。

偽装解除・解凍ツールの「Malty」と「そ」と「eo」をインストール。

Maltyはウインドウを移動しただけでエラーが出る。
Myサブマシン上では危険な存在。

「そ」は便利。
大量の「うめ〜このみかん」形式を一気に抽出可能。助かった。
某ゲームの女の子の悲惨なCGもなんだかお茶目。

「eo」超便利。
エクスプローラ上の右クリックメニューから解凍指定できるし。
RAR形式に対応してるとは知らなかった。

1999/11/20() [n年前の日記]

#1 (NoTitle) FTP、エライ時間がか...

FTP、エライ時間がかかりながらも転送終了。が、CGI動かず。
色々試してみたところディレクトリィのパーミッションが違ってたらしく。といっても単純な間違いってわけでもなさそう。
ログファイルへの多重書き込みを防止するため、ログファイルアクセス中に適当なファイルを生成、そのファイルが存在している間はログファイルにアクセスしない(ロックする、というらしい)という処理をするため、ディレクトリィのパーミッションを777にせねばならないのですが、これをしてしまうとセキュリティとしては問題があるらしくそういう場合CGIを動作させない、という風にアチラではなっているのだろうと想像しているのですが。いや、知識無いんで全然見当違いかもしれませんが (;^_^A
とりあえずロック処理はOFFにして、パーミッションを755にすることで動作はしました。ログ壊れやすいかもしれないけど。トホホ
しかしアクセスカウンタをCGI使いながらもテキストで表示する方法はないものですかね。SSIなら見つけられたのですがアチラで動かせるのかわかんなくて。今のところ毎回gifの合成をしているわけだから負荷としては良くないよなと思うのですが。CGIでカウンタ表示するだけのHTML生成して、フレーム使って、という方法はあるらしいのですが、カウンタ出すためだけにフレームってのもなんか野暮ったいかなと。
そんなことする以前にメインコンテンツをなんとかせねば。そのためには垢とやらを取らないといけないらしけど…垢って何?<オーイ
知識が圧倒的に不足。勉強しないと。

以上、20 日分です。

過去ログ表示

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