mieki256's diary



2024/11/04(月) [n年前の日記]

#1 [cg_tools] Affinity Designerのスウォッチ種類を増やしたい

せっかく Affinity Designer 2 を購入したので操作方法を勉強中。ただ、スウォッチの種類が少ないなと…。

スウォッチと言うのは、パレットウインドウ、パレットパネルとでも思っておけばいいのだろうか。あらかじめ、色を数色〜数十色置いといて、クリック一つで利用できるようにする機能。

Affinity Designer 2 は、Photoshop のスウォッチファイル (.ase) をインポートすることができるらしい。しかし、手元にあるのは GIMP Palette (.gpl) ばかり。.gpl を .ase に変換できればいいのだけど…。

変換ツールを探した :

.gpl を .ase に変換できるツールを探してみた。2つほど見つかった。どちらも Windows10 x64 22H2 上で動作した。

_Cyotek Color Palette Editor - Color palette editing made easy - Cyotek
_solarstrings/GPL2ASE: GIMP .gpl to Adobe .ase palette converter

Cyotek Color Palette Editor の場合は、.gpl をウインドウ上にドラッグアンドドロップすると読み込まれて色一覧が表示されるので、その状態から File → Import/Export → Export to a palette file → ファイル種類で「Adobe Swatch Exchange Files (*.ase)」を選んで保存すれば、.gpl を .ase に変換することができる。

gpl2ase.exe の場合は、gpl2ase input.gpl output.ase と打てば、input.gpl を output.ase に変換してくれる模様。

いくつか変換してみた。 :

手元にある .gpl を、いくつか .ase に変換してみた。一応 zip にまとめて置いておく。

_photoshop_swatch.zip

中に入っているファイルは以下。
db16_tic80_old.ase
db16_tic80_old.gpl
db32.ase
db32.gpl
flatUIColors.ase
flatUIColors.gpl
Material-Design.ase
Material-Design.gpl
MaterialUIColors.ase
MaterialUIColors.gpl
Pyxel_new.ase
Pyxel_new.gpl
sweetie-16_tic80_new.ase
sweetie-16_tic80_new.gpl
tango-palette.ase
Tango-Palette.gpl

色見本は以下。

_DawnBringer 32 Palette
_DawnBringer 16 Palette
_Sweetie 16 Palette
_Pyxel's new palette - Issue #217 - kitao/pyxel
_Flat UI Palette v1
_マテリアル UI カラー(全20色) - みんなの知識 ちょっと便利帳
_Tango Desktop Project - Wikipedia

  • DawnBringer 32 (DB32), DawnBringer 16 (DB16), Sweetie 16, Pyxelパレットは、ドット絵(PixelArt)用のカラーパレット。
  • DB16 は、昔の TIC-80 でデフォルトパレットとして使われていた。
  • Sweetie 16 は、今の TIC-80 でデフォルトパレットして使われている。
  • TIC-80 や Pyxel は、ファンタジーコンソールの一種。架空のゲームコンソールエミュレーター。PICO-8 が一番有名だろうか。

ところで、上記の色見本をメモしていて気づいた。上記ページのいくつかで、.ase も配布してるじゃんよ…。わざわざ変換する必要はなかったかも…。

Affinity Designer 2上でインポート :

Affinity Designer 2 のスウォッチパネルの右上のほうにあるメニューアイコン?をクリックすると、メニューが表示されるので、その中の「パレットをインポート」→「アプリケーションパレットとして」を選べば、.ase をインポートすることができる。

ad_ss01.png

ad_ss02.png


メニューの中には「パレット名を変更」「パレットを削除」等もあるので、それらを使って整理できそう。

ad_ss03.png

また、「画像からパレットを作成」を使えば、画像の中で使われている色を調べてそれらしいパレットを作成してくれる。ただ、並び順は滅茶苦茶になる。

スウォッチ内の各色は、ドラッグアンドドロップで順番を変更することもできる。

#2 [pc] 親父さん用PCがWindows11にアップグレードされた

昨晩から今朝にかけて、親父さん用PCが、Windows10 22H2 から Windows11 23H2 にアップグレードされたとメモ。

ただし、この作業、自分が意図してアップグレード作業を始めたわけではなくて…。

親父さんがWindows10で作業中に、「Windows11にアップグレードしましょう」系の例のポップアップが表示されたそうで、「えっ。Windows10が使えなくなるのか?」と訳も分からず「します」系のボタンをクリックしていったらアップグレードしちゃったそうで…。いや、いいんだけど。いつかはアップグレードしないといかんよなと思ってたし、アップグレードできるようにCPU交換したりMBRをGPTに変換したりと苦労したわけだから別にいいんだけど。

親父さんがそういう操作をすでにしちゃってると自分は知らないまま、親父さんから「Windows11にアップグレードするにはどうしたらいいんだ?」と質問を受けて…。「SSDの空き容量が20GBしかないからせめて64GBまで空けてください」と答えたら「やり方が分からない」と言われて、ドキュメント内の各ファイルを外付けHDDに移動する方法を教えているうちに、Windows Update の設定画面で「Windows11インストール中」と表示されてることに気づいたという…。

途中で止まるかなと思ったけれど、夜中まで放置しておいたらWindwos10とは違うサインイン画面が表示されていた。

とりあえず、関連ドライバ等のインストールは一切してないけれど、フツーにWindows11が動いてしまっているようなので、まあいいかなと…。何かおかしな動作が出てきたら、その時はドライバ等のインストールを試みるつもりで様子見しておこうかと。

余談。スタートボタンの位置が変わっていて、自分も親父さんも最初は困惑。シャットダウンのさせ方すら分からない…。各アイコンが真ん中に寄せてあることに気づいたら、そこから先はなんとなくで分かったけれど。でも、こんなレイアウトにする意味はあるのか…? この変更については何か理論武装してあるんだろうか?

2023/11/04() [n年前の日記]

#1 [hsp] hsp3dishでスクリーンセーバを作れそうか試したけど無理っぽい

Windows10 x64 22H2 + HSP 3.7beta7 で、hsp3dish を使ってスクリーンセーバを作れそうなのか試していた。

結論を先に書くと、無理っぽい。

無理な理由 :

HSP には多数のサンプルが同梱されていて、sample\ssaver\arusave.hsp がスクリーンセーバ作成のサンプルになってる。そのサンプルでは、スクリーンセーバのフルスクリーン表示モード時に、以下の処理が書かれてる。
  • HSP製プログラム実行時にデフォルトで作られる表示ウインドウ(ウインドウID0)には、一切手を付けない。
  • ウインドウID2の表示ウインドウをフルスクリーン表示で新規に作成して、そちらに描画をしていく。
HSPの標準命令のみを使ってプログラムを作れば、複数の表示ウインドウを作ることも可能だから、そういうことができるわけだけど…。

しかし、hsp3dish を使う場合は、以下の制限がある。
  • 表示ウインドウは1つしか持てない。複数の表示ウインドウは作れない。
  • プログラム実行時に作られるウインドウID0の表示ウインドウだけが、描画可能なウインドウになる。

それを踏まえた上で。

hsp3dish を使ってスクリーンセーバを作るなら…。ウインドウID2の表示ウインドウを新規作成せずに、既に存在するウインドウID0をフルスクリーン表示にして、そこに描画していけばスクリーンセーバを作れるのではないかな、などと甘いことを考えていたのだけど…。

実際にやってみたら、そうは問屋が卸さなかった。見た目だけはそれらしくなったけど、マウスを動かしたりキーボードを叩いても終了してくれないプログラムになってしまった。これではスクリーンセーバにならないわけで…。

どういう仕組みになっているのか分からないけれど、HSPでスクリーンセーバを作る際、フルスクリーンモード時では、手付かずのウインドウID0と、ガンガン描画をしていくウインドウID2、この2つの表示ウインドウが存在してる状態じゃないといけないようだなと…。

では、hsp3dish ではなく、HGIMG4 ならどうだろう。HGIMG4 なら複数の表示ウインドウを作れたりしないか? 調べてみたけれど、サンプルを眺める限り、表示ウインドウを1つしか持てないのは hsp3dish と同じらしい。HGIMG4 は hsp3dish を拡張して作られたプラグインなので、hsp3dish と同じ制限を引き継ぐ模様。

ならば HGIMG3 ではどうかとサンプルを眺めてみたら、screen命令でもう1つの表示ウインドウを確保しているサンプルが見つかった。ひょっとすると HGIMG3 を使えばスクリーンセーバが作れるのでは、と期待しているところ。実験してみないと…。

ソース :

スクリーンセーバにはならなかったけれど、デモプログラムとしては動かせるので、一応ソースを置いておく。

_h3dshscr.hsp
    ; screensaver sample for hsp3dish.
    ; fork arusave.hsp
    ;
    ; This program does not work.
    ;
    ; hsp3dish を使ってスクリーンセーバが作れるか実験したが、失敗に終わった。
    ;
    ; Windows10 x64 22H2 + HSP 3.7 beta7
    ;
    ; 2023/11/04 by mieki256
    
    #include "hsp3dish.as"
    #include "d3m.hsp"
    
    ; 以下の行のコメントアウトを外すとスクリーンセーバとして実行ファイルを作成する
    ; #define SCREENSAVER_ENABLE
    
    #define TITLE_STR   "Screensaver sample for hsp3dish"
    #define VER_STR     "0.0.1"
    
    #packopt name "h3dshscr"
    
#ifdef SCREENSAVER_ENABLE
    #packopt type 2
#else
    #packopt type 0
#endif
    
    #packopt xsize  640     ; 設定画面横幅
    #packopt ysize  360     ; 設定画面縦幅

    #define TEX_FILE        "star.png"
    #define PREVIEWFILE     "preview.png"
    #pack TEX_FILE
    #pack PREVIEWFILE
    
    #define KB_ESC      $000080
    #define FRAMERATE   60
    
    fps_display_enable = 1
    
    ; ----------------------------------------
    ; parse command line option
    
    s = dir_cmdline         ; get command line option
    i = instr(s, 0, "/")    ; "/" の出現位置を検索
   
    if i = -1 {
        ; not option
#ifdef SCREENSAVER_ENABLE
        goto *config_mode
#else
        goto *fullscreen_mode
#endif
        ; goto *preview_mode
    }
    
    a = strmid(s, i, 2)     ; 2文字だけ取り出し
    
    if a == "/p" or a == "/P" : goto *preview_mode      ; プレビュー
    if a == "/s" or a == "/S" : goto *fullscreen_mode   ; フルスクリーン
    if a == "/c" or a == "/C" : goto *config_mode       ; コンフィグ
    
    ; コマンドラインがどれでもない時はエラー表示
    dialog "Unknown switch [" + s + "]"
    end

*config_mode
    ; 設定画面
    
    screen 0, 640, 360, 0
    gsel 0
    cls
    
    tt = "Config - " + TITLE_STR + " " + VER_STR
    title tt
    font "Tahoma", 24, 1
    
    redraw 0
    color 0, 0, 0
    
    pos 20, 20
    mes "Config - " + TITLE_STR
    
    pos 20, 50
    mes "Version : " + VER_STR
    
    pos 520, 300
    button "OK", *ssend
    
    redraw 1
    stop
    
*ssend
    end

*preview_mode
    ; プレビュー画面
    ; スクリーンセーバー選択時の、小さな画面内でのプレビューの処理。
    ; HSPのWindow ID0がプレビュー画面に合わせて小さくなっているので、
    ; ginfo_winx, ginfo_winy で画面サイズを取得後、その中に描画する。
    ; 経験上、単に画像を表示してstopしたほうが不具合が起きにくい。
    wdw_w = ginfo_winx
    wdw_h = ginfo_winy
    
    ; load preview image
    imgid = 3
    w = 152
    h = 112
    buffer imgid, w, h
    picload PREVIEWFILE
    iw = ginfo_winx
    ih = ginfo_winy
    
    ; draw
    gsel 0
    redraw 0
    cls 4
    gmode gmode_gdi, iw, ih
    gzoom wdw_w, wdw_h, imgid, 0, 0, iw, ih, 1
    redraw 1
    
    stop

; ----------------------------------------
*fullscreen_mode
    ; フルスクリーン描画処理
    
    ; get desktop size
    dispw = ginfo_dispx
    disph = ginfo_dispy
    
    ; initialize window without frame
    ; bgscr WindowID, width, height, mode, x, y
    bgscr 0, dispw, disph, 0, 0, 0, dispw, disph
    
    ; load image
    imgid = 3
    celload TEX_FILE, imgid

    ; split image. set orign
    celdiv imgid, 512, 512, 256, 256

    ; Set the buffer to draw from. Windows ID 0
    gsel 0, 1
    
    ; Set screen clear color to be performed when redraw 0 is called.
    ; 0 or 1, color ($000000 - $ffffff)
    ; setcls CLSMODE_SOLID, $4080c0
    setcls CLSMODE_SOLID, $000000
    
    font "Tahoma", 24, 1
    
    randomize
    
    star_size = 0.75
    dist = 150.0        ; screen distabce
    area_z = 5000
    zmax = double(area_z) + dist
    
    ; rnd() only accepts 1 to 32768.
    ; adjust the value to stay within that range.
    area_m = 4.0
    area_w = int((double(dispw) * zmax) / dist / area_m)
    area_h = int((double(disph) * zmax) / dist / area_m)
    
    objmax = 512
    
    ; initialize stars work
    ddim posx, objmax       ; position x
    ddim posy, objmax       ; position y
    ddim posz, objmax       ; position z
    dim px, objmax          ; display position x
    dim py, objmax          ; display position y
    ddim scalev, objmax     ; scale
    dim alpha, obj_max      ; alpha value
    dim patidx, obj_max     ; pattern index
    repeat objmax
        gosub *get_newpos_xy
        posx(cnt) = nx
        posy(cnt) = ny
        patidx(cnt) = idx
        posz(cnt) = double(rnd(area_z)) + dist
        px(cnt) = 0
        py(cnt) = 0
        scale(cnt) = 0.0
        alpha(cnt) = 0
    loop
    
    time_start = d3timer()
    endfg = 0
    
; ----------------------------------------
*mainloop
    while endfg == 0
        tm = d3timer() - time_start
        fps = d3getfps()                ; get FPS
        
#ifndef SCREENSAVER_ENABLE
        ; ESC key to exit
        stick key, 0
        if key & KB_ESC : endfg = 1
#endif
        
        ; move stars
        spd = 40.0
        repeat objmax
            posz(cnt) -= spd
            if posz(cnt) < (dist / 2.0) {
                posz(cnt) += zmax
                gosub *get_newpos_xy
                posx(cnt) = nx
                posy(cnt) = ny
                patidx(cnt) = idx
            }
            
            ; get display x, y position
            px(cnt) = int(posx(cnt) * dist / posz(cnt)) + (dispw / 2)
            py(cnt) = int(posy(cnt) * dist / posz(cnt)) + (disph / 2)
            scalev(cnt) = star_size * dist / posz(cnt)
            
            size = int(512.0 * scalev(cnt))
            x0 = px(cnt) - (size / 2)
            y0 = py(cnt) - (size / 2)
            x1 = px(cnt) + (size / 2)
            y1 = py(cnt) + (size / 2)
            if x1 < 0 or x0 > dispw or y1 < 0 or y0 > disph {
                ; out of display area. position reset
                posz(cnt) += zmax
                gosub *get_newpos_xy
                posx(cnt) = nx
                posy(cnt) = ny
                patidx(cnt) = idx
                px(cnt) = int(posx(cnt) * dist / posz(cnt)) + (dispw / 2)
                py(cnt) = int(posy(cnt) * dist / posz(cnt)) + (disph / 2)
                scalev(cnt) = star_size * dist / posz(cnt)
            }
            
            ; get alpha value
            az = double(area_z) * 0.7
            if posz(cnt) < az {
                alpha(cnt) = 255
            } else {
                ; fade in
                z = posz(cnt)
                if z > zmax : z = zmax
                v0 = z - az
                v1 = zmax - az
                alpha(cnt) = int(255.0 - (255.0 * v0 / v1))
            }
        loop
        
        ; ----------------------------------------
        ; draw start
        redraw 0
        
        ; clear screen
        ; color 64, 128, 192
        ; boxf
        
        ; draw stars
        repeat objmax
            rot = 0.0
            idx = 0
            
            ; draw image by celput
            gmode gmode_add, 512, 512, alpha(cnt)
            pos px(cnt), py(cnt)
            rot = 0.0
            idx = patidx(cnt)
            celput imgid, idx, scalev(cnt), scalev(cnt), rot
        loop

        ; draw text
        if fps_display_enable {
            gmode gmode_rgb0
            color 255, 255, 255
            pos 10, 10
            mes strf("[%dx%d] %d/%dFPS", dispw, disph, fps, FRAMERATE)
        }
        
        ; draw end. screen refersh
        redraw 1
        
        await (1000 / FRAMERATE)
        ; await 12
    wend
    
*jobend:
    end
    
*get_newpos_xy
    nx = double(rnd(area_w) - (area_w / 2)) * area_m
    ny = double(rnd(area_h) - (area_h / 2)) * area_m
    idx = rnd(4)
    return

使用画像は以下。

_preview.png
_star.png


実行画面は以下。静止画ではさっぱり伝わらないけれど、星が奥から飛んでくるアレ。昔のWindowsに入ってた「宇宙飛行」スクリーンセーバみたいなソレ。

h3dshscr_ss.png

#2 [anime][neta] 主人公がジョブチェンジするロボットアニメはどうだろう

妄想メモ。

BS11で放送されている「ガンダムSEED」を眺めていたら、コーディネーター(遺伝子操作で作られためっちゃ頭のいい人間)の主人公がガンダムのOSを調整したことで、コーディネーターだけではなくナチュラル(遺伝子操作されてない頭の悪い人間)もそこそこ操縦できるガンダムが出来ちゃいました、というシーンが出てきた。

そのシーンを見ていて、なんとなく妄想。ひょっとしたら、あの主人公、途中でパイロットなんか辞めさせて、その後はずっとMSのOSの改良に専念させたら、軍全体の戦力が著しく増強されたのではないか、そのほうが効率良く使えたのではないかなと思えてきた。いやまあ、フィクション作品に効率がどうとか言い出してもアレなんだけど。ただ、ハードウェアは変えてないのに、ソフトウェアを変えただけで戦力増強というのは、それはそれで夢がある展開のような気もする。…ところが、その夢のOS、実はとんでもないものが仕込まれていて…って方向で話を転がしたら 「パトレイバー」になっちゃうか。

さておき。上記のような展開になるとしたら、作品としては「パイロット編」と「開発者編」で構成されることになるだろうなと…。主人公のジョブチェンジで構成されるガンダムシリーズ、もしくはロボットアニメって新規性があったりしないだろうか。

そういえば、韓国ドラマ「チャングム」も、前半は「料理人編」、後半は「医者編」で構成されてたっけ。いや、考えてみたら、NHKの朝ドラでもそういう構成はたまにある気もする。途中から、当初目指していた職業とは別の方向に行くヒロインという設定は、それなりにあったような…。であれば、ロボットアニメの類でソレをやってもおかしくはないよな…。

などと妄想していたのだけど。考えてみたら「ガンダムAGE」が結構近いのかもしれないと思えてきた。アレは世代が変わって主人公も変わるという構成だけど、初代のフリット爺さん(?)にだけ注目すると、「パイロット編」「司令官編」「老兵編」に分けられそうでもあるなと…。

あるいは、「グレンラガン」もそうかもしれない。「最前線の一兵士編」と「指導者編」になってた気もする。

ということで、主人公のジョブチェンジで各編に分かれる構成というのは、探せば結構あるのかもしれないと思えてきた。新規性は特にないなと…。

でもまあ、「主人公がジョブチェンジすることで各章が分かれる構成を考えてみましょう。さて、主人公は一体どんな職種/ポジションを経由していくでしょう?」というお題もアリかも。スポーツアニメなら「選手編」「監督編」。アイドルアニメなら「アイドル編」「事務所社長編」。色々思いつきそう。「全編通して主人公は同じ職業でなくてもよい」という点を頭の片隅に置いておくだけも何か違ってきそうな気もする…。

妄想メモです。オチはないです。

2022/11/04(金) [n年前の日記]

#1 [tic80][ruby] TIC-80用スクリプトをRubyで書いてみる

TIC-80 は、元々Lua言語でプログラムを書いて動かすことを前提にしているけれど。TIC-80 1.0.2164 では、Ruby (mruby) を使って書くこともできるらしい。なんだかちょっと興味が湧いたので、そのあたりを試してみた。

環境は、Windows10 x64 21H2 + TIC-80 1.0.2164。

Hello World を眺める。 :

TIC-80 1.0 で、Ruby を使った Hello World 相当を新規作成するには、TIC-80のコンソールで以下を打つ。
new ruby

F1キーを押すと、スクリプトソースが見れる。引用してみる。
# title:   game title
# author:  game developer, email, etc.
# desc:    short description
# site:    website link
# license: MIT License (change this to your license of choice)
# version: 0.1
# script:  ruby

$t=0
$x=96
$y=24

def TIC
 $y-=1 if btn 0
 $y+=1 if btn 1
 $x-=1 if btn 2
 $x+=1 if btn 3

 cls 13
 spr 1+(($t%60)/30|0)*2,$x,$y,14,3,0,0,2,2
 print "HELLO WORLD!",84,84
 $t+=1
end

Lua版の Hello World 相当も引用してみる。ちなみにLua版の場合は、「new lua」で新規作成できる。
-- title:   game title
-- author:  game developer, email, etc.
-- desc:    short description
-- site:    website link
-- license: MIT License (change this to your license of choice)
-- version: 0.1
-- script:  lua

t=0
x=96
y=24

function TIC()

 if btn(0) then y=y-1 end
 if btn(1) then y=y+1 end
 if btn(2) then x=x-1 end
 if btn(3) then x=x+1 end

 cls(13)
 spr(1+t%60//30*2,x,y,14,3,0,0,2,2)
 print("HELLO WORLD!",84,84)
 t=t+1
end

見比べると、言語仕様の違いが少し分かるかなと。また、他の違いについても、ちょっとだけ調べてみた。
言語仕様RubyLua
コメント文「#」から始まる「--」から始まる
グルーバル変数$xx
ローカル変数xlocal x
関数定義def hoge 〜 endfunction hoge() 〜 end
関数呼び出しhoge 0, 0, 0hoge(0, 0, 0)
if文if x == 0 then 〜 endif x == 0 then 〜 end
if文(1行タイプ)$y -= 1 if btn 0if btn(0) then y = y - 1 end
インクリメント$t += 1t = t + 1

それと、TIC-80 の場合、最初のほうのコメント行に、スクリプトが何の言語で書かれているのか記述しておいたほうが良いのかもしれないなと…。
# script:  ruby
-- script:  lua

classを使ってみる。 :

Rubyはオブジェクト指向を意識してる言語なので class も用意されてる。class が無い Lua と比べるとそのあたり楽になりそうなので、試しに使ってみたい。

とりあえず、昔書いた、以下のような動作をするスクリプトをRubyで書き直してみたい。正直この程度の処理ならクラスを使うほどではないのだけど、そこはまあ、無理矢理使ってみるということで…。

movecircle_ss01.gif

Lua版のソースは以下。

_movecircle.lua
-- script: lua

Obj = {}
Obj.new = function(cx, cy, ang, r)

 local o = {
  id=0, x=0, y=0, t=0,
  cx=cx, cy=cy, ang=ang, r=r
 }
  
 o.update = function(self,dr)
  self.id = 1 + (self.t % 32 // 16)
  local rad = math.rad(self.ang)
  local r = self.r
  self.x = r*math.cos(rad)+self.cx
  self.y = r*math.sin(rad)+self.cy
  self.ang = self.ang + 1.5
  self.r = self.r + dr
  self.t = self.t + 1
 end
  
 o.draw = function(self)
  spr(self.id,self.x-4,self.y-4,0)
 end
  
 setmetatable(o, {__index=Obj})
 return o
end

scrw, scrh = 240, 136
cx, cy = scrw/2, scrh/2
t=0

-- init objs
objs = {}
n = 24
for i=1,n do
 local o = Obj.new(cx, cy, i*360/n, 60)
 table.insert(objs, o)
end

-- main loop
function TIC()

 local r = 0
 if btn(0) then r=-1 end
 if btn(1) then r=1 end

 -- update 
 for i, o in ipairs(objs) do
  o:update(r)
 end

 -- draw
 cls(0)
 for i, o in ipairs(objs) do
  o:draw()
 end
 
 print("Lua: " .. _VERSION,4,8*1,12)
 print("count: " .. t,4,8*2,12)
 print(t//60 .. " sec",4,8*3,12)
 
 t=t+1
end

使用画像は以下。

tiles.png
_tiles.png

TIC-80 のコンソール上で以下を打てば、タイル画像領域(tiles)にインポートできる。
import tiles tiles.png
その後、F2キーを押せばドットエディタが開くので、画像を読み込めたことが確認できる。

movecircle_ss02.png


今度は Ruby(mruby)版を書いてみる。

_movecircleruby.rb
# script:  ruby

class StarObj

  def initialize(cx, cy, ang, r)
    @id = 0
    @x = 0
    @y = 0
    @t = 0
    @cx = cx
    @cy = cy
    @ang = ang
    @r = r
  end
  
  def update(dr)
    @id = 1 + (@t % 32).div(16)
    rd = @ang * 3.14159 / 180.0
    r = @r
    @x = r * Math.cos(rd) + @cx
    @y = r * Math.sin(rd) + @cy
    @ang += 1.5
    @r += dr
    @t += 1
  end
  
  def draw
    spr @id, @x-4, @y-4, 0
  end
  
end

$scrw, $scrh = 240, 136
$cx, $cy = $scrw / 2, $scrh / 2
$t = 0

# init objs
$objs = []
n = 24
n.times do |i|
  o = StarObj.new($cx, $cy, i*360/n, 60)
  $objs.push(o)
end

# main loop
def TIC
  r = 0
  r -= 1 if btn 0
  r += 1 if btn 1
  
  # update
  $objs.each {|o| o.update(r)}
  
  # draw
  cls 0
  $objs.each_with_index {|o,i| o.draw}

  print "mruby: #{RUBY_VERSION}",4,8*1,12
  print "count: #{$t}",4,8*2,12
  print ($t.div(60)).to_s+" sec",4,8*3,12
  $t+=1
end

Lua版とRuby(mruby)版を見比べていけば、Ruby風の書き方も分かるかなと。

HTML + JavaScriptでエクスポートしてみる。 :

ブラウザ上でも動作させられるように、HTML + JavaScript でエクスポートしてみる。TIC-80 のコンソール上で以下を打つ。
export html movecirclerb

_movecirclerb.zip というファイルが生成された。解凍すると、中には以下のファイルが入っていた。
cart.tic
index.html
tic80.js
tic80.wasm

これをWebサーバからアクセスできるようにしておけば…。

_movecirclerb/index.html

さて、どうだろう。ブラウザ上でも動くだろうか。手元の環境、Firefox 106.0.4 と Google Chrome 107.0.5304.88 では動いてるけれど…。

上記ページを開いて、動いてることを確認出来たら、ESCキー → F1キーと押すとソースコードが見れるので、本当に Ruby で書かれていることが分かるかと。

Luaで書かないとhtml生成できないのかなと思ってたけど、Ruby(mruby)で書いてもhtml生成できるのだな…。素晴らしい。

実行ファイル1つだけで、Ruby(mruby)を使ってファミコンライクな2Dゲームを作れて、しかもブラウザ上で動かせるように HTML + JavaScript でエクスポートまでできるなんて…。これは Ruby が好きな人にとっても喜ばしい話なのではなかろうか。

#2 [ruby] mrubyの実行バイナリをビルドしてみた

mruby は実際にどんなAPIを持っているのか今一つ分からないので、ローカルで動作確認しつつ使ってみたいなとそのためには実行バイナリ(.exe)が欲しい。ビルドしてみようかなと。環境は Windows10 x64 21H2。

以下の記事が参考になった。ありがたや。

_Windows上でmrubyをビルドし動かしてみる - Qiita

ビルドには、Visual Studio Community 2015 を使用。ちなみに、Visual Studio Community 2019 も使ってみたけど、そちらはビルドに失敗した。

ビルドに必要なツールは以下。
_Bison for Windows

VS2015 と Ruby 2.6 はインストール済みだったけど、Bison はインストールしてなかったのでインストール。

bison-2.4.1-setup.exe を入手して実行。今回は、D:\Dev\GnuWin32\ にインストールしておいた。インストール場所\bin にパスを通しておく必要があるけれど、addbison.bat を作成して、実行すればパスが通るようにしておいた。
set PATH=D:\Dev\GnuWin32\bin;%PATH%

mrubyのソースを入手。

_mruby/mruby: Lightweight Ruby

今回は zip でダウンロードした。D:\home\USERNAME\prg\mruby\mruby\ に置いた。

スタートメニューから、「VS2015 x86 Native Tools Command Prompt」を起動。bison にパスを通しつつ、カレントディレクトリを mruby のソースのある場所にする。
addbison.bat
cd /d D:\home\USERNAME\prg\mruby\mruby

ビルド開始。
ruby .\minirake

ビルドに成功すると、bin というディレクトリが作成されて、中に以下のファイルが入っている。
mirb.exe
mrbc.exe
mruby.exe
mruby-config.bat
mruby-strip.exe

C:\Ruby\mruby-3.1.0\ というディレクトリを作成して、そこにコピーしておいた。

mruby のバージョンを確認。
> mruby.exe --version
mruby 3.1.0 (2022-05-12)

その場で実行して動作確認するなら、mirb.exe を実行する。
> mirb.exe
mirb - Embeddable Interactive Ruby Shell

> RUBY_VERSION
=> "3.1"
> puts "Hello World"
Hello World
=> nil
> exit

2021/11/04(木) [n年前の日記]

#1 [windows] 共有プリンタから印刷できない問題についてまだ調べてる

Windows Update をインストールするとLAN内の共有プリンタから印刷できなくなる問題についてまだ調べてる。

Microsoft が公式に不具合を認めて、RCP over TCP接続を許可して云々という情報を公開したわけだけど、具体的に何のアプリで何を設定すればいいのか分からなくて、もしや海外の方々ならその手の作業をしているのではないかと英語圏のページを半日ほどひたすらググって探してみたのだけど…。どの記事も、Windows Update をアンインストールすれば解決するよ、と書かれている事例ばかりで…。うーん。

自分の手元に印刷できない環境があればアレコレ試せるのかもしれんけど…。自分の部屋に置いてあるWindows10機は2台だけで、しかも印刷できちゃってるんだよな…。

#2 [nitijyou] 犬が夜中に吠えるので困っている

昨晩から飼い犬が夜中に吠え始めるので困っている。夜中の11:00とか、01:00とか、02:00に、「ワンワンワン!」「ワンワンワン!」と吠え始める…。外で飼ってるので、近所迷惑になる…。

とりあえず、吠え始めたら玄関の中に入れるようにしてみたけど、犬が興奮してしまって玄関の中でも吠える始末…。

近くを猫でもうろついているのだろうか。それともネズミがそのへんをゴソゴソと動いてるのだろうか。あるいはどこかの犬が脱走して近所をウロウロしているのだろうか。トイレに行きたいのかと思ったけれど、庭の中を少し歩かせてみても、そういうポーズを取らないし…。

2020/11/04(水) [n年前の日記]

#1 [zatta] LED電球を購入

ドラッグストア カワチで、夜食を買うついでにLED電球を購入。
店頭で税抜き価格を見て随分安いなと驚いて購入してみたけれど、税込み価格で比較したらヨドバシカメラの価格とさほど変わらなかった…。それでもケーズデンキで買うよりはるかに安いけど。以前ケーズデンキの店頭で同等製品を物色したら千円を超えてたから…。

ひとまず、PCデスクの真上に設置していた電球型蛍光灯 TOSHIBA EFA15D/11-Z (60W相当, 11W, 680lm)を外して、Panasonic製LED電球 LDA7D-G/E/W に交換した。

電球型蛍光灯は電源を入れたばかりだと暗くて、数分経つと期待していた明るさになっていく感じだったけど、LED電球は電源を入れた途端に明るく光るので少しだけ便利になったような気もする。

また、スペック上はLED電球のほうがルーメン値が大きいけれど、光らせてみた感じではたしかに若干明るくなってくれたような気もする。もっとも、あくまで体感(?)なので実際のところは分からんけど。

余談。 :

オーム電機製LED電球は、店頭では税抜き価格で300円台だったのでついつい買ってしまったけれど。オーム電機のLED電球は、たしかスペック値を盛っていて消費者庁から注意されてた時期があった記憶が。ググってみたら2012年の話らしいけど。

_消費者庁、LED電球の明るさを誇大表示した12社に再発防止命令 - 家電 Watch
今回措置命令を受けたのは、アガスタ、エコリカ、エディオン、オーム電機、グリーンハウス、恵安、光波、コーナン商事、スリー・アールシステム、セントレードM.E.、タキオン、リーダーメディアテクノ。この12社は、消費者に販売するLED電球において、商品パッケージに「白熱電球60W形相当の明るさ」など、白熱電球と比較した明るさを表示していたが、実際には白熱電球と同等の明るさは得られなかったという。

消費者庁、LED電球の明るさを誇大表示した12社に再発防止命令 - 家電 Watch より


いくらなんでもさすがに今は改善してるのではないかと淡い期待をしつつも、万が一暗かったら、やっぱりなー、オーム電機だからなー、道理で安かったわけだわー、という感じで受け止めようかと。とりあえず、玄関奥の電球型蛍光灯と交換してみる予定。

たしかLED電球のスペック詐欺云々の話が出た時に、どこかのメーカが「それは測定の仕方がおかしい。ウチはちゃんとした製品を販売してる」と反論してた記憶もあるのだけど…。ググっても出てこない。偽記憶だろうか。それとも自分は別の家電製品の話と混同してるのだろうか。大半のメーカが素直に(?)謝罪してたのに一社だけ反論していて随分強気だなと思った記憶もあるのだけど…。アレは何の話だったかなあ…。

2019/11/04(月) [n年前の日記]

#1 [python][windows][pygtk] PyGTK関係をインストール

pycairo の勉強をする関係で、Windows10上で、PyGTK 関係をインストールした。Web上で見かけたサンプルコードが、PyGTK を使って pycairo の描画結果を表示していたので、コレは入れたほうがいいのかな、と。

_PyCairo backends

ちなみに、今回の作業環境は、Windows10 x64 1903 + Python 2.7.17 / 3.8.0。

Python 2.7 の場合。 :

Windows + Python 2.7 で PyGTK を使いたいなら、GIMP 2.6.x Windows版 + Python-Fu を動かすために、PyGTK関係が一通り入ったインストーラが用意されているので、ソレをインストールすればいい。

_Index of /pub/GNOME/binaries/win32/pygtk/2.24

pygtk-all-in-one というのがソレ。Python 2.6用(py26)と、Python 2.7用(py27)があるので、既にインストール済みのPythonのバージョンに合わせて、インストールすればいい。

自分の環境では、Python 2.7.17 + pygtk-all-in-one-2.24.2.win32-py2.7.msi がインストール済みだった。

ただ、前述の、 pycairo用のサンプルコードは動かない。PyGTK の種類(?)がそもそも違うので…。

Python 3.5以降の場合。 :

PyGTK は、Python 3用としては用意されなくなって、代わりに PyGObject というものに置き換わっているらしい。

_PyGTK - Wikipedia

前述の pycairo用サンプルコードは、Python 3.x + PyGObject を使うことが前提のソースなので、Python 2.7.x + PyGTK 上では動かない。

Python 2.7, 3.1 - 3.4 までなら、「Windows環境でもコレをインストールすれば、PyGObject だの pycairo だの、そのへんが一通り全部入るよ」という便利なインストーラがあったらしいのだけど。

_PyGObject for Windows download | SourceForge.net

しかし、このインストーラは、Python 3.5以降には対応していない。

公式ドキュメントによると…。

_Getting Started - PyGObject

「Windows環境 + Python 3.5以降で PyGObject を使いたいなら、msys2 を使えるようにして、その上で色々インストールしろ」ということになってるっぽい。

一応、自分の環境にも msys2 はインストール済みだったので、その上で作業した。

  1. MSYS2 MSYS (64bit) を起動。
  2. pacman -Syu
  3. pacman -S mingw-w64-x86_64-gtk3 mingw-w64-x86_64-python3 mingw-w64-x86_64-python3-gobject

これで必要なパッケージは入った。

MSYS2 MSYS (64bit) は一旦閉じて、MSYS2 MinGW 64-bit (64bit) を起動。MSYS用の環境と MinGW用の環境は、それぞれ、呼び出される Python が違うようで、後者じゃないと先ほどインストールしたパッケージが使えない。

この msys2 の bash上で gtk3-demo を実行。gtk3 でこんなことができる、と提示するデモウインドウが開いた。たしかに、gtk3 関係はインストールされたらしい。

公式ドキュメントで提示されていた以下の内容を hello.py として保存して、python hello.py を実行したところ、gtk3 のウインドウが開いてくれた。

import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk

window = Gtk.Window(title="Hello World")
window.show()
window.connect("destroy", Gtk.main_quit)
Gtk.main()

また、前述の、pycairo + PyGObject を使用したスクリプトも動いてくれた。

コレで一応、Windows上でも PyGTK、というか PyGObject関係のサンプルを動かせる状態になった。

しかし…。msys2 をインストールしないと動かないというのは、HDDの容量的になかなか厳しい話だなと…。msys2 だけで、約9GB近くも容量を消費している…。全然お手軽ではない…。

PyGTK と PyGObject の違い。 :

ざっと見たところ、記述については、以下のような違いがあるように思えた。

import については…。
# Python 2.7 + PyGTK
import pygtk
import gtk
pygtk.require("2.0")
import cairo
# Python 3.7 + PyGObject
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
import cairo

gtk.xxx については…。
  • PyGTK は gtk.xxx ―― 全部小文字で「gtk.」と書く。
  • PyGObject は Gtk.xxx ―― 最初の1文字を大文字にして「Gtk.」と書く。

定数名も違っていた。

# Python 2.7 + PyGTK
self.window.set_position(gtk.WIN_POS_CENTER)
# Python 3.7 + PyGObject
self.window.set_position(gtk.WindowPosition.CENTER)

他にも細かいところで違いがあるはず。

#2 [python][pycairo] pycairoについて勉強中

以下のサイトのサンプルコードを動かしながら勉強中。

_PyCairo backends
_Basic drawing in PyCairo

環境は、Windows10 x64 1903 + Python 2.7.17 + PyGTK 2.24.0 + pycairo 1.8.10。

PyGTK を使ってテスト。 :

gtk2を使って、pycairo の描画結果を表示してみる。元のサンプルは、以下のページにある。

_PyCairo backends

件のサンプルコードは Python 3.x + PyGObject 用だけど、自分の環境は、Python 2.7.x + PyGTK なので、記述を変えないといけない。

手元の環境で動くように変更した版。

_04_gtkwindow.py
# Python 2.7 + PyGTK
import pygtk
import gtk
import cairo
pygtk.require("2.0")

# Python 3.x + PyGObject
# import gi
# gi.require_version('Gtk', '3.0')
# from gi.repository import Gtk


class MyDrawingArea(gtk.DrawingArea):
    """My DrawingArea."""

    def __init__(self):
        super(MyDrawingArea, self).__init__()
        self.connect("size-allocate", self.on_self_size_allocate)
        self.connect("expose-event", self.on_self_expose_event)

    def on_self_size_allocate(self, widget, allocation):
        """Resize."""
        print("resize")
        self.__width = allocation.width
        self.__height = allocation.height

    def on_self_expose_event(self, widget, event):
        """Draw for pycairo."""
        print("draw")
        ctx = widget.window.cairo_create()

        ctx.set_source_rgb(0, 0, 0)
        ctx.select_font_face("Sans", cairo.FONT_SLANT_NORMAL,
                             cairo.FONT_WEIGHT_NORMAL)
        ctx.set_font_size(40)

        ctx.move_to(10, 50)
        ctx.show_text("Disziplin ist Macht.")


class MyApp(object):

    def __init__(self):
        self.window = gtk.Window()

        self.darea = MyDrawingArea()
        self.window.add(self.darea)

        self.window.connect("delete-event", self.on_delete_event)

        self.window.set_title("GTK window")
        self.window.resize(420, 140)

        # Python 2.7 + PyGTK
        self.window.set_position(gtk.WIN_POS_CENTER)

        # Python 3.7 + PyGObject
        # self.window.set_position(gtk.WindowPosition.CENTER)

    def on_delete_event(self, window, event, data=None):
        gtk.main_quit()
        return False

    def main(self):
        self.window.show_all()
        gtk.main()


if __name__ == "__main__":
    app = MyApp()
    app.main()

  • import 関係を変更。
  • Gtk. は、gtk. に書き換え。
  • drawイベントは、expose-event に置き換えた。

結果表示。

04_gtkwindow_ss01.png

lineの表示。 :

pycairo を使って line を描画してみる。元サンプルは以下。

_Basic drawing in PyCairo

手元の環境で動くように修正した版。

_05_lines.py
# Python 2.7 + PyGTK
import pygtk
import gtk
import cairo
pygtk.require("2.0")

# Python 3.x + PyGObject
# import gi
# gi.require_version('Gtk', '3.0')
# from gi.repository import Gtk


class MouseButton:
    LEFT_BUTTON = 1
    RIGHT_BUTTON = 3


class MyDrawingArea(gtk.DrawingArea):
    """My DrawingArea."""

    def __init__(self):
        super(MyDrawingArea, self).__init__()

        self.connect("size-allocate", self.on_self_size_allocate)
        self.connect("expose-event", self.on_self_expose_event)

        self.set_events(gtk.gdk.BUTTON_PRESS_MASK)
        # self.connect("button_press_event", self.on_button_press)
        self.connect("button-press-event", self.on_button_press)

        self.coords = []

    def on_self_size_allocate(self, widget, allocation):
        print("resize")
        self.__width = allocation.width
        self.__height = allocation.height

    def on_button_press(self, w, e):
        if e.type == gtk.gdk.BUTTON_PRESS:
            if e.button == MouseButton.LEFT_BUTTON:
                print("LEFT BUTTON")
                self.coords.append([e.x, e.y])
            elif e.button == MouseButton.RIGHT_BUTTON:
                print("RIGHT BUTTON")
                self.queue_draw()

    def on_self_expose_event(self, widget, event=None):
        """Draw for cairo."""
        print("on_draw")
        c = widget.window.cairo_create()
        c.set_source_rgb(0, 0, 0)
        c.set_line_width(0.5)

        for i in self.coords:
            for j in self.coords:
                c.move_to(i[0], i[1])
                c.line_to(j[0], j[1])
                c.stroke()
        del self.coords[:]


class MyApp(gtk.Window):

    def __init__(self):
        super(MyApp, self).__init__()
        self.connect("destroy", gtk.main_quit)

        self.darea = MyDrawingArea()
        self.add(self.darea)
        self.set_title("Lines")

        # Python 2.7 + PyGTK
        self.set_size_request(512, 512)
        self.set_position(gtk.WIN_POS_CENTER)

        # Python 3.7 + PyGObject
        # self.resize(300, 200)
        # self.set_position(gtk.WindowPosition.CENTER)

        self.show_all()


if __name__ == "__main__":
    app = MyApp()
    gtk.main()

ウインドウ内で何ヶ所か左クリックしてから右クリックすると、クリックした位置を全て繋ぐ線が描かれる。

結果表示。

05_lines_ss01.png

ちょっとハマったのは、マウスクリックイベントを取得するあたり。クリックしてもイベントが発生しなくておかしいなと思っていたら、以下の一行が抜けていた…。

        self.set_events(gtk.gdk.BUTTON_PRESS_MASK)

この一行が無いと、マウスクリックを取得できない模様。

_python - Mouse event in DrawingArea with PyGtk - Stack Overflow

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

#1 [pc] HDMIについて調べていたり

親父さん用PCが不調なので代替機もしくは代替M/Bについて検討していたのだけど、親父さんが使ってるディスプレイ、DELL UP2516D (25インチ液晶, 2560 x 1440)の入力端子が、DisplayPort と HDMI しかないことを思い出して、構成について悩み始めてしまったり。

今現在は、PC側がM/B背面のDisplayPort、ディスプレイ側がminiDisplayPort、で接続してるから、WQHD (= 2560x1440) で表示できているけれど。代替として検討してるM/Bには、DisplayPortが無い ―― DVI、HDMI、D-SUB しかないわけで。となると、HDMI で WQHD は表示できるのだろうか。

ググったところ、HDMIでもバージョンによっては、2560x1440 @ 60FPSで表示できなくもないらしい。ただ、手持ちのM/B が…。
_ASRock > M3A785GMH/128M
_ASRock > AM1B-ITX

すると、AM1B-ITX + ちゃんとしたHDMIケーブルを使えば、2560x1440 が表示できる可能性はあるのかな…。

と思ったが、ディスプレイ側がHDMI接続した際に1920x1080より上の解像度を出せるかどうかが疑問。DELLのサイトからマニュアルpdfをDLして眺めてみたけど、そのあたりの仕様が書いてない。液晶ディスプレイによっては、HDMI接続時は最大1920x1080までの製品も多々あるそうで。

_パソコンとモニターの接続方法で解像度は変わる

上記ページで紹介されてる DELL U2711b の場合、HDMI接続時はフルHD (= 1920x1080)までの対応だったりするようだし…。もしや、DELL UP2516D もそんな感じだったりしないか。

他にも、デュアルリンクDVI - HDMI変換アダプタを使ったら、2560x1440が表示できた事例もあるようで。ただ、市販の DVI - HDMI変換アダプタやケーブルは、シングルリンクDVIのみ対応と書いてある製品がほとんどで…。どの製品ならフルHDより上を出せるのか…。

いっそ DisplayPort端子を持ってるビデオカードを増設するのはどうか、と思ってググってみたけど。例えば DisplayPort付きの GeForce GT 1030 搭載ビデオカードは 1万円以上するのだな…。

DisplayPort に拘らず、HDMI接続で2560x1440を出せるビデオカードなら、GeForce GT 710等が5,000円台からあるけれど。しかし、HDMI接続ではディスプレイ側がイケるのかどうかが不安だったりもするわけで…。

面倒臭いな…。いっそ、1920x1080で表示することを前提にしてしまおうか。いや、でも、せっかく 2560x1440 を表示できるディスプレイがあるのに…。フルHDで使うのも、もったいない…。

#2 [windows] 親父さん用PCから他のPCの共有フォルダにアクセスできず

親父さん用PC (Windows10 x64 バージョン 1803 (Windows 10 April 2018 Update) ) 内のファイルを、他のPCの共有フォルダにバックアップしようとして、「\\hoge\共有フォルダ名\」を打ち込んだら、SMB関係のエラーメッセージが表示されて。

安全でないためファイル共有には接続できません。
この共有には最新でない SMB1 プロトコルが必要です。
そのプロトコルは安全でないため、システムが攻撃にさらされる可能性があります。
このシステムには SMB2 以降を使用する必要があります。

とりあえずでどうにかしたいなら、「SMB 1.0/CIFS ファイル共有のサポート」を有効にすれば、ひとまずは解決するらしい…。

_Windows 10のパソコンからアクセスすると「指定されたネットワーク名は利用できません。」または「安全ではないため、ファイル共有に接続できません。」と表示される|Q&A | IODATA アイ・オー・データ機器
_NASへの接続時に「SMB1プロトコルが必要です」エラーが出る場合の対処方法 | TeraDas
_Windows 10 バージョン 1709 と Windows Server バージョン 1709 以降のバージョンの既定では SMBv1 はインストールされません
_Microsoft、Windows 10の次期大型アップデートでSMBv1を無効化する計画 | スラド セキュリティ

本来は、サーバ側で SMB2 を使うようにすべき、かもしれないのだけど。古いOSを使う時もあるので、そっちに合わせるしか…。

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

#1 [lua][love2d] love2dでスプライトをアニメーション、するあたりを勉強中

love2dを勉強中。スプライトシート画像を扱うあたりを調べていたり。どうやら Quad とやらを使えばできるらしいけど…。

_love.graphics.newQuad (日本語) - LOVE

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

#1 [nitijyou] HDDの中を整理中

ピクチャ、ミュージック、ビデオ、その他のフォルダをDドライブに移動した関係で、バックアップツールの SyncToy の設定をし直すことになったので、バックアップ先の2.5インチHDDをUSB接続して、中身を整理したり等その他の作業をゴチャゴチャと。

SyncToyについて。 :

SyncToy てのは、Microsoft が公開してる、フォルダの中身を同期してくれるツール。コレを使って、ローカルHDDの中身と、外付けHDD(あるいはUSBメモリ等)の中身を同期すればバックアップが取れるわけで。変更があったファイルだけを上書きコピーしたり、ローカルで削除したファイルは外付けHDD側でも削除してくれるので、バックアップ作業の時間がちょっとは短くて済む、みたいな。

_Windows 10 データのバックアップはSyncToyが便利 | Tanweb.net
_Microsoftのツール「SyncToy 2.1」でフォルダを手軽に同期してみる (1) SyncToy 2.1のダウンロードとセットアップ | マイナビニュース
_Microsoft製フリー同期ツール「SyncToy」には、コマンドラインから使える SyncToyCmd.exe もあるのが便利! - Sakura scope

もっとも今なら、クラウド上の仮想ストレージを活用してバックグラウンドで同期、とかできたりもするので、そういうサービスを使う手もあるわけだけど。とはいえ、利用できる容量、転送速度、万が一重要ファイルが流出する可能性などを考えると、ローカルで、HDD同士を使って、というのもアリじゃないかなと。

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

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

近所のヨークベニマル、サンドラッグまで。

2014/11/04(火) [n年前の日記]

#1 [ubuntu] Ubuntuで音声合成その2

以下の記事を参考にして自分も試してみたり。

_Ubuntu Open JTalk その1 - 日本語で文章を読み上げる音声合成ソフトウェアの紹介・Open JTalkをインストールする・Open JTalkのテストを行う - Ubuntu kledgeb
_Ubuntu Open JTalk その2 - open_jtalkコマンドの説明 - Ubuntu kledgeb
_Ubuntu Open JTalk その3 - MMDAgentのmeiの音声データを利用する・meiの音声データの使い方・ meiの音声で文章を読み上げるシェルスクリプト - Ubuntu kledgeb

デフォルト?で使える音声だけでは「うーん」って感じだったけど、MMDAgentのmeiデータを使ったらイイ感じの音声に。素晴らしい。

しかしコレ、使用条件がよく分からず。 _License | MMDAgent によると、出力された音声波形はCC-BYになる、と書いてあるように見えたのだけど、その理解で合ってるのだろうか…。

2013/11/04(月) [n年前の日記]

#1 [nitijyou] 蚊に刺された

11月なのに、蚊に刺された…。たぶん蚊だと思うのだけど。寝てたら急に手が痒くなってきて、目が覚めて。腕だけ布団の外に出して寝てたので、何かに刺されたらしい。血の巡りがいい箇所をやられたのか、指から肘まで、全体が痒い状態に。

仕方ないので蚊取り線香をつけた。蚊取り線香をつけると、目が痛くなるわ、頭がボーッとするわ、悪夢を見るわ、てな状態になるので嫌なのだけど。ヤツがどこに潜んでいる状態ではコイツに頼るしか無く。

やっぱり悪夢を見た。が、夢の中で、イデオンのTVアニメシリーズリメイク版映像も見れたから、まあいいか…。湖川キャラっぽい骨格がしっかりした髭面おじさん達が今風の作画・3DCGで描かれたイデオン+イデオンソードで次々に吹き飛んでいく映像は、なかなかイイ感じでした。ってどんな夢だよ。

#2 [blender] Cyclesをちょっと触っているところ

結構前から blender に標準装備されるようになった Cyclesレンダラーの使い方をちょっとだけ勉強。以下の解説動画等が参考になりました。ありがたや。

_Blender標準搭載レンダラーCycles布教スレ - 三次元CG(過去ログ保管庫)@七葉
_【Blender】 Cyclesの簡単な使い方 【レンダリング】 - ニコニコ動画:GINZA
_光の屈折 物体の屈折率(IOR)

自分の環境のGPUは、9800GT = CUDA 1.0なので、CUDA 2.0以降を要求する Cycles では GPGPU の支援は受けられなくてアレだったり。今時のGPUが欲しくなってきますな…。

_CUDA GPUs | NVIDIA Developer Zone (NVIDIA製GPU - CUDA対応一覧)

以下のページで、Cycles + CUDA が利用できるGPUが色で表示されていて分かりやすかった。赤いのは使えない。黄色は微妙。緑は全然OK。

_How do I know which CUDA version my GPU supports and why does it matter? | The Dedicated System Agnostic

今、9800GTから買い替えるとしたら、どのあたりのGPUかな、てなあたりが気になって調べてみたのだけど。GTX650Ti なら倍ぐらい、GTX660 なら3倍ぐらいの性能になりそうな。GTX650 とはどのくらい差があるのかよく分からなかった。NVIDIA は、9800GTからの乗り換えなら GTX660 を推してるみたいだけど。

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

#1 [nitijyou] ここ数日煙管で吸ってたり

紙巻きタバコをハサミで3〜4つに切って、煙管の火皿にグリグリ差して吸うのを試しているところ。

1本を数回に分けて吸えるので、結果的に本数を少なく出来る・1日で1〜2本ぐらいしか消費しないあたりは良さそうなのだけど。フィルタがついてないので煙が濃く、それをいつもの調子でうっかり肺に入れようとして苦しんでしまうミスが多発。

また、掃除も面倒で。時代劇では、煙管をどこぞでカンカンと叩いて中の灰を出す、なんてことをしてるけど、現実には難しい。ピンセットを火皿にツッコんでグリグリしないと灰は除去できない感じ。もっとも、ちゃんとした刻み煙草なら時代劇のようなソレができる可能性はありそうだけど。ただ、煙管が痛むので、フツーはそういうことをしないらしい。アレはあくまで時代劇における、らしさを見せる演出の一つ、なのだろうなと。

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

#1 [pc] USB3.0の調子が悪い

USB3.0接続の外付けHDD、Silicon Power SP640GBPHDA80S3B を認識しない時がチラホラ。M/Bを Intel DH67BL に交換してUSB3.0ポートが背面に増えたのだけど。以前の増設ボードのみで使ってた時より、どうも具合がよろしくない印象。

PC自体もなんだか微妙。シャットダウンしたはずが勝手に再起動してしまう時がある。何が起きているのやら。

#2 [windows] zipファイルをマウントしたい

SyncToy 2.1 でバックアップを取っているのだけど。細かいファイルがたくさんあると、サーバーにアクセスした際に妙に反応が遅くなってしまう時があり。できればそれらファイルはzipにまとめて、そのzipファイルを使う時だけ、仮想ドライブとしてマウントして中を閲覧する、という形にしたい。

そういうツールを探したけれど、なかなか存在しないようで。Windows XP 以降は、標準でzipファイルをフォルダのように扱えるらしいと知り、それでどうにかできるかなと思ったけれど。残念ながら期待していた動作ではなかった。例えば、zipファイル中の index.html をブラウザで開いても、そこから呼ばれているcssや画像ファイルが読み込まれないし、リンクを辿って別htmlを開こうとしても開けない。おそらく、ダブルクリックして開いた1ファイルのみが解凍されている状態ではないかと予想。

検索したところ、 _Pismo File Mount Audit Package というツールをインストールすれば zipファイルを仮想ドライブとしてマウントできるらしい。Windows XP x86 と Windows7 x64 上で動作するのを確認した。このツールを使えば、前述の動作とは異なり、開いたhtmlファイルから呼ばれている css や画像ファイルにもアクセスできた。ただ、マウントしたzipファイル・仮想ドライブがリードオンリーになるらしいのがちと残念。書き込みもできれば良かったのだけど。

HDDイメージを作成、かつ、マウントして、その中に細かいファイルを書き込めれば、目的は果たせるのかもしれない。だが、やはりそういうツールは見当たらず。iso等、CD/DVDイメージをマウントするツールは多々あるみたいなのだけど。Windows7上ではVHDなるHDDイメージファイルをマウントできるようだが、Windows XP上でも使えないと、サブ機から中を閲覧することができない。しかしXP上でVHDをマウントするためには、ちとアレなツールをインストールする必要があるようで。なかなか難しい。

後から内容を変更しないであろうファイル群なら、isoで固めてしまってマウントするのも手かもしれず。しかしどうせなら、圧縮が効くフォーマットのほうが嬉しいのだけど。

#3 [windows] Perlの関連付けが解除されてた

.plをクリックしたら、メモ帳が開いた。おかしい。ActivePerlインストール時に、.pl の関連付け設定をしているはずなのに。どこで消えてしまったのだか。

インストールしたものと言えば、CyberLink BD Solution、PowerDVD 11、VideoStudio 12、WinDVD 8、ぐらいだが…。 .pl がプレイリストとして使われているとか? それとも昨日インストールした MS-Office 2003、2007 が悪さをしたのだろうか?

とりあえず、ActivePerl をアンインストールしてから、また再インストール。関連付けは再設定されたが、気味が悪い。

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

#1 [flash] アタリ判定処理を実装中

円に点が入ってるかどうか判定するソレを実装して、円を組み合わせてそれっぽいアタリの形を。実装のほうは簡単なのですんなり終わったけど、画面にアタリ範囲を表示してみたら、どうもアタリ範囲がずれる。

調べてみたら、GIMPで作成した、パーツレイアウト確認用画像がそもそも間違ってた。αチャンネルを持った各パーツのpngをレイヤーとして読み込んだ際に、画像周辺の透明部分が勝手に削除されてしまい、ソレに気付かないままレイアウトして座標取りをしたものだから、微妙にオフセット値がずれていた。泣く泣く、レイアウト確認画像を再作成。今度は、各画像の四隅にあらかじめドットを入れて勝手に削除されないようにしてから、レイヤーとして読み込み・レイヤー移動をしてレイアウト。

やはり、こういった配置を行う専用のツールが欲しいところ。PhotoshopにしろGIMPにしろ、内部でどのような値を持っているかを考慮しなくて済むCGツールは山のように存在するけれど。プログラムに反映させるために、位置情報その他をみっちり調べられるようなCGツールはなかなか見かけない。まあ、ゲーム開発ぐらいにしか使えないから、需要が少ないのだろうけど。

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

#1 [windows] Microsoft Security Essentialsを試しにインストールしてみた

親父さんの友人からこの手の質問を受けた時に推薦できるかどうか知りたかったので、自分の環境にも試しにインストール。

元々、MSがWindowsに対し、あらゆる場面で「○○していいですか? してもいいけど自己責任ですよ?」的ダイアログを表示するよう手を加えてそれで良しとしてるのはおかしい状況だなと思ってたわけで。利便性を損なわずに安全性を得るためには、ウイルス対策をしっかり行うのがあるべき姿であって、なんでもかんでもユーザの自己責任に仕立て上げて済ませてしまうのは違うだろうと。ということで今回の、MS自身のウイルス対策ソフト無料提供という試みは、本来あるべき正しいアプローチにようやく辿り着いてくれたように思えて評価したいのですが。

環境固有の問題続出。 :

インストールできたように見えたけど、リアルタイム保護が有効にならない。再起動したら有効になったように見えたけど、また再起動したら無効になった。うーん。

アンインストールしようとするとエラーが出る。再インストールもできない。何度も再起動して再インストールにチャレンジしたけどダメ。インストール先フォルダの内容も削除できない。うーん。

原因が判った。複数の入力機器を接続している場合に、それぞれの入力機器に対して個別に設定できるようにする、MultiMouseConfig というツールが原因だった。該当ツールの中で、mpfilter.sys というファイルが使われていて、C:\WINDOWS\system32\drivers\ 以下にコピーされているのだけど。Microsoft Security Essentials のほうでも、MpFilter.sys というファイルを使っていて、これが衝突だか競合だかしてしまって Microsoft Security Essentials の動作がおかしくなる模様。

試しに MultiMouseConfig 側をアンインストールして試したところ、Microsoft Security Essentials も、すんなり再インストールできた。

が、MultiMouseConfig が使えないのは個人的にかなり痛いわけで。ということで、Microsoft Security Essentials は使用を諦めることに。

#2 [windows] AVG9を試しにインストールしてみたり

最近になって、新版としてAVG9が出たらしい。試しにインストール。時々、「ウイルス対策ソフトは何がいいのか」といった質問を親父さんの友人方から受けることがあるので、一応少しは試用してみたほうがいいかなと。

インストールは問題なく終了。Microsoft Security Essentials と違って、常駐ツールと衝突等は起きてないように見える。

が、1〜2度再起動したあたりから、HDDが延々とカリカリガリガリするようになった。CPU使用率は低いものの、ひっきりなしにHDDにアクセスするため、他アプリを起動することもままならず。下手すると、アプリの起動に体感では1分近くかかることも。

某巨大掲示板の関連スレを覗いてみたら、どうやらインストール直後からHDD内のフォルダ・ファイル構成を調べ上げるために、カリカリが延々と続くらしい。環境によってその調査時間は大きく異なるらしく。数分で終わったという話もあれば、数時間かかったという話も。これは参った…。

2008/11/04(火) [n年前の日記]

#1 [nitijyou] 昨日自転車で走りすぎたかもしれず

一日中寝てた気がする…。

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

#1 [nitijyou] 石油ファンヒーターについて検索

_2ch:やっぱり暖房は石油ファンヒーターですか26台目
_2ch:【暖房対決】 エアコン VS その他の暖房器具 2R

上記のスレを眺めたり。とりあえず、販売してる会社は4社ぐらいあるらしい。
ダイニチ
店頭に必ず置いてある。機能は比較的豊富。電力は一番食う。仕組みがちょっと複雑らしく、不良灯油を入れたら一発で壊れるらしい。
コロナ
比較的店頭で見かける。機能は豊富。タンクの栓が一工夫してあって給油のときに汚れないらしい。たぶん。
アラジン
ごく稀に店頭で見かける。松下にOEMされていたものと同等、らしい。松下がファンヒーター事業から撤退したので、件の会社のブランドで売るようになった、という噂。
トヨトミ
滅多に見かけない。機能は貧弱。タンクの栓が昔ながらのスクリュー式だったり、匂いがあったりするらしい。電力は食わない。仕組みが比較的単純とのことで、とにかく故障が少ない・長く使えるらしい。不良灯油に比較的強い、てな話も見かけた。強い=すぐに壊れない、ってことなのかな?
シャープもOEM品を販売してたらしいけど、ファンヒーター事業からは撤退したとの話。

利用コストに関しては、既に、石油ファンヒーターよりエアコンのほうが安上がり、という話で。 といった条件を満たせば、らしいけど。すきま風が入るような家屋では反射タイプ(ていうの?)の暖房器具のほうが効率がいいとか、寒冷地では石油ファンヒーターのほうが一気に部屋が暖まるとか、昔のエアコンは性能が悪いのでコスト高になるとか、てな話が各スレに書いてあった。

自分の環境では、夜中にエアコンをつけると隣室の妹から「うるせー」と文句を言われるので、昼間はともかく夜はエアコンを使えないわけで…。また、本格的な冬になれば、エアコンではちと厳しい感も。ということで、石油ファンヒーターしか選択肢がなさげ。

まあ、須賀川市では、ダイニチかコロナの2択になってしまう予感。故障したときの修理持ち込みを考えると、できるだけ近いところで買わないと危険だし。となると、店頭に置いてあるものしか買えないだろうと。

補助的な暖房器具も検討。 :

デスクヒーターってのがなんだか気になる。しかし、検索してもレビュー記事が見つからない。使ってる人が少ないのかしら。あまり使えないから使ってる人が少ないのかな。使用電力は比較的少な目なので、そのへんは良さそうなのだけど。

電気ひざ掛けも気になる。ここ数日、深夜、足のあたりを毛布で包んでいるのだけど。結構違う感じがするわけで。これでもし、電気で暖かくなるのであれば、かなり効果はありそうな。が、これまたレビュー記事が見つからない。自分が想像してるほどには暖かくないのかしら。

高校時代、足をすっぽり囲う足温器を使ってた時期があるのだけど。アレは全然ダメだった。足先はなんとか暖かいけど、足全体は寒いわ、当然体もめちゃ寒いわで。その選択肢は無し。

電気ストーブは電気を馬鹿食いするのがどうにも。600Wとか1200Wとか、数字を目にするだけでドキドキしてくる。万が一、ブレーカが落ちたら、メインPCもサーバも大変な事態に…。

ダイニングコタツ/ハイタイプコタツも少し検索してみたけど。 :

そもそも椅子の形がフツーの椅子とは違うのだな。写真を見る限り、足のあたりが完全に塞いであるようで。椅子の下から、暖まった空気が逃げないように工夫されてるのであろうと想像。

つーかPCデスクとの兼ね合いや、部屋のスペースが…。値段も結構するし…。

この記事へのツッコミ

Re: 石油ファンヒーターについて検索 by けいと    2007/11/07 01:10
「足元ヒーター」ですけど、使ってますよ。
↓こんなやつですが
http://www.store-mix.com/ko-bai/product.php?pid=849337

温感や作りはまるっきり電気ストーブです。
作りが単純なので、ワット数と暖かさは比例すると思いますよ。

靴(といっても学校ではく上履きみたいなヤツ)越しに使っているので
なかなか温まりませんけど、
いったん温まってしまうと低音やけどするんじゃないかっていうぐらい
しっかり温まります。

ですが、ひざした全部暖めたい、っていうのは無理です。
足の裏しか温まらないっていう方が正しいですね。
それでもないよりはるかにマシですけど。

あと、足が持ち上がるので、
ヒーターの高さに慣れるまでかなり違和感がありますね。
ヒーターの分椅子を高く出来るのであればそうしたいところです。
足元ヒーター by mieki256    2007/11/07 12:03
> 「足元ヒーター」ですけど、使ってますよ。こんなやつですが

なるほど、こういうものが…。勉強になりますです。
190Wっての電気ストーブに比べると消費電力が少なそうで良さそうですな。
とはいえ、やはり足元だけというのは厳しい…。
何か布で筒を作れば効果が違ってくるのかしらん。
でも下手すると火事になりそうだな…。うーむ。
Re: 足元ヒーター by けいと    2007/11/07 22:50
そこまで気にするのでしたら、
素直に股引はいた方が安くて安全で健康的ですよ^^
確実に暖かいですし、移動しても暖かいですし。

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

#1 [nitijyou] HDDの中を整理

外付けHDDに逃がしたり。

外付けHDDを冷やすのに、転がってた8cmファンと、先日通販で購入した電池ボックスを使ってみたり。…風量が少なくてあまり冷えない。本来12Vで回すものを6V以下で回してるのだから当たり前か。その代わり、音はまったくしないけど。とりあえず、スイッチつき電池ボックスは便利だなと。

#2 [tv] NHK「ドキュメント北朝鮮」を見た

再放送らしい。作業しながらチラ見。

建国時のエピソードからして捏造なのか。まあ、ロシア側の言うことだから話半分に聞いておいたほうがいいのかもしれんが。にしても、神話を使ってた日本の戦時中とたいして変わらんかもしれぬと。それはともかく、ロシア人の顔を自国民の顔に差し替えている写真を見て、あの国は昔のほうが写真修正技術が高かったようだなと思ったり。

見てるうちに考え込んでしまった。国を動かしてるのは民なのか、民を動かしてるのが国なのか。…「天空の城ラピュタ」のラストのあたりの台詞が思い浮かんだり。民が居ないのに王だけが生きてる云々の台詞。正確には覚えてないけど。

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

#1 [anime] _飯島真理が米国版マクロスを吹替え(10/26)

なんと。…考えてみれば、日本語版と英語版の両方を吹替えできる人物って珍しいよなぁ。しかも歌手としての能力も持ってるわけで。極めて貴重な人材。かもしれん。 _(via think =或るCG屋の呟き=: ヤック・デカルチャー!)

#2 [comic] _風力発電装置の設計をする漫画家

素晴らしすぎる。さすが、平田弘史先生。

#3 [comic] _Atahualpa: 【日記】六本木ヒルズで大塚英志が大暴れしたらしい

面白い。 _(via たけくまメモ: 楳図かずお・幻のデビュー作品、のコメント欄)

#4 [tv] _北野たけし(ビートたけし) のちょっといい話

どこまで作ってるのかわからないけれど。それでも読んでて面白いなぁ。

#5 [tv] _脚本家・宮村優子

NHKをつけたら、時代劇が流れ始めた。そこで「脚本 宮村優子」なるテロップが。な、なにー! 脚本家までやってるのか!?>みやむー。

あの声優の宮村”アスカ”優子さんとは、同姓同名ですが、別人です。

「六番目の小夜子」原作・脚本・作曲 より

焦った。

_少なくとも1999年ぐらいから既に間違えられてた らしい。有名な話だったのか。今頃知りました。トホホ。

#6 [game] _壇弁護士の事務室: 「異議あり! 嘘です」 - 本物の弁護士さんが「逆転裁判」をやってみた

_驚きは尋問に関する事が多いようである。

ゲームに絡んで、実際の裁判に対するトリビアが得られる記事。

にしても、コメント欄を眺めていてちと頭痛が。「娯楽作品だからあえて嘘をつく」ことを判ってる方が、野暮を承知で「現実はこうなんですね」とトリビアを披露してるのに。それにマジツッコミするファンの図は、野暮にもほどがあるだろうと。まあ、ゲームをプレイしていたメイン客層の、年齢やレベルが判るところもあるような。「現実と違う=ダメ」と否定してしまうほどの子供さんでもなく、さりとて大人の遊び方・話の聞き方もまだできない、おそらくは学生さんあたりが主に購入・プレイしてるのかも。てなことを想像したけど、さて。 _(via オレンジニュース(2005-10-31))

_逆転裁判(開発コラム) :

件の記事のコメント欄で出ていたけれど、件のゲームの、開発者の企画・開発時の思い出話が公開されてる。 _「裁判長は木槌を叩かない」「プロは「異議あり!」がキライ」 等の感想が。当然だけど、現実をそのまま再現するのではなく、面白くなる方向にわざと嘘をついて、スタッフはゲーム化してる。それはどのゲームも、いや、漫画も、映像作品も、ほとんど同じ。もちろん、リアルを「売り」にした製品、現実を極力再現することに拘ったが故ヒットした製品、というのも世の中にはあるわけで。

嘘をつくことで面白くなる製品も、嘘をつかないことで面白くなる製品も、どちらも増えてほしいもんだなぁ、と思ったりもして。

#7 [tv] _「黒ひゲイ危機一発!」商品化の予定

「黒ひげ危機一発!」の黒ひげが、レイザーラモンHGになったバージョン。たまたま、TV番組「爆笑問題のバク天!」該当コーナーの映像を目にしていたのだけど、差し方によって音声が変わったあたりに驚いた記憶があったり。最近の「黒ひげ危機一髪」は喋るのだな。ライダーの変身ベルト・武器もそうだけど、玩具の電子化はかなり進んでいる…となると、喋るミクロマンとか、喋る勇者シリーズロボット・戦隊シリーズロボットとか、そういうのも出てきそう。…そういやハロが喋ってたっけ。喋るのはもはや当たり前なのか。 _(via オレンジニュース(2005-10-28))

#8 [jiji] _要するに「中国は我が国の仮想敵国かどうか」だ。

「中国は日本の仮想敵国である」とするなら、一連の組閣人事だけでなく、外交面で広がる多くの問題も一本の線として極めて容易に理解できるし、「中国は日本の仮想敵国でない」とするなら、靖国神社などとっとと取り壊して国立の記念施設の建設に着手するはずである。

どうやら、私たちの選んだ首相は、組閣人事を持って東アジア共同体構想を拒否する側に回ったらしい。それはつまり、台湾有事に備えて我が国は軍備もするし憲法も改正するよということになるだろう。

切込隊長BLOG(ブログ) - 台湾有事懸念を挟んで第三次小泉内閣に関する米中の諜報合戦が本格化 より

なるほど。と思っちゃっていいのかしら。

#9 [zatta] _「キター!」と叫ぶ中学生ぐらいの少年

リアルワールドで2ch語 *1 を使うのは中学生レベルということかしら。まあ、中学生ぐらいのローディスト *2 なんかが本屋さんでその手の言葉 *3 を使って誌面にネタ提供してた記憶もあるし、チョベリバとかチョベリグとかそのへんの言葉が出てきたのもそのへんの年齢だった気もするしで。大体そのへんの年齢が、人目を意識することができない・リアルとバーチャルの境界をあやふやにしてしまう傾向がある、ということだったりするのであらうか。 _(via オレンジニュース(2005-10-28))
*1: 2ch語 = 2chという匿名掲示板の中だけで流行する言葉。
*2: ローディスト = ファンロードという、アニメや漫画のパロディ記事を中心に扱ってる雑誌、の読者。
*3: ロード語、であろうか。「北斗の拳」と言う漫画に登場していた台詞を流用したものが主流。だったのかな。よく知らんが。

#10 [web] _第2日本テレビのサイトがひどすぎる件について 〜いつか来た道〜 - 蓄積多趣味人

近年稀に見る、ユーザの利便性無視・最悪のサイトデザインらしい。

まあ、作る側の感覚はわかるような。ゲームっぽい感じにして、利用者に遊び感覚を味わって楽しんでほしい云々とかそういうありきたりなアレだろうけど。でも、この場合、利用者が見たいのはサイトじゃなくて映像コンテンツなわけで。欲しいブツが決まってる利用者にソレとは無関係・欲しいブツとの関連性がわからない見出しを提示したり、そのサイト内でのみ通用する独自ルールをその都度強制したらゲンナリされちゃうのは当たり前。…本の目次がアドベンチャーブックとか、エクスプローラでフォルダを辿るたびにウイザード形式で尋ねてくるとか、ゲームのタイトル画面でSTARTやOPTIONを選ぶだけでもADVになってるとか、そういう感じのウザったさだろうなぁ。 _(via オレンジニュース(2005-11-02))

#11 [comic][zatta] _60度の角度でなぐると直るTVとローラーのついてる洗濯機

何故かは判らんが45度と勘違いしてた。それにしても、ローラーで脱水する洗濯機なんて、プロジェクトXの映像の中でしか見たことない。

漫画にツッコミは野暮だけど。衝撃を与えると改善するってのは、たぶん接触不良だよなぁ。まあ、今の家電は昔の家電と違って電子回路がほとんどIC化されてるから、叩いて直る状況自体そうそう無さそうな。

_白黒テレビの想い出 :

_ハイビジョン 温冷蔵庫 EFDウルトラシステム エンジニアリングなよもやま話 vol. 12
さて、「叩くと直る」というが本当というのは、実は昔の家電製品は部品精度に難があり、電子銃のブラケットに緩みが生じたり、ホコリが付着して接触不良を起こすことがありました。で、叩くとホコリが落ちたり、嵌合(かんごう)の接触が戻ったりして、同期が一時的に正常になるということなのです。他にも、「裁ちばさみを置くとキレイに映る」というのも、金属のハサミに電波を増幅する効果がある、ということで、あながち「迷信」とはいえないようです。

ハイビジョン 温冷蔵庫 EFDウルトラシステム エンジニアリングなよもやま話 vol. 12 より

衝撃で埃が落ちる → 接触が改善、てな場合もあったらしい。なるほどねぇ。ていうか掃除するほうが先だよな、ソレって。そんな状態で使い続けてたら、下手したら火事になる。何かの拍子に、埃に引火したらヤバイ。

とはいえブラウン管は高電圧が発生してるし、電源を切ってもしばらくは帯電してるので、蓋を開けてうっかり触ってしまったら、人間が弾き飛ばされるぐらいの電撃を食らうらしく。 *1 蓋は開けずになんとかするか、修理に持ち込むか。

何にせよ、現在においても「叩くと直る」と思い込まれたり、放置されたら困るよなぁ。そうなる原因・そういう話が通用した時期ってのがあるわけで。

_起動しないハードディスクのナゾ(吸着編) :

家電と違ってHDDの話。ちょっと前までは叩くことで改善する事例もあったらしく。
潤滑剤が吸湿して性質が変化してヘッドがプラッターに張り付いてしまう。長い間使わなくても同じ事が起こることがある。間の悪いことに、ハードディスクのスピンドルモーターはDCブラスレスモーターで、コグとかスロットとか言って初動トルクが小さい位置がある。これらの条件が揃うと、プラッターが回らず立ち上がらない。

対処はショック療法である。どうせ起動しないハードディスクからは全くデータを回収することはできないから意を決して欲しい。ハードディスクをハズし、プラッターの回転方向にドライブ全体を回してみよう。ダメ?そのときは、漫画雑誌に上下に軽くたたきつけてみよう。ダメ?そのときは、床に軽く落としてみる?

結局、友人のマックは軽くたたいたところ、無事立ち上がるようになった。Webmasterの限られたサンプリング範囲のハナシなので正確で無いかも知れないが、Q社のドライブに多いといううわさがある。四国の空気は日本とは少し異なるのだろう。

.今日の必ずトクする一言 -- TODAY'S REMARK -- より

もっとも、こんな状態になったHDDではいつ死亡するかわからないのでは。動いてるうちにバックアップを取らないと。

ちなみに、もうちょっと昔になると。「空中にポーンと放り投げてキャッチしただけでHDDは壊れる」てな話が。月刊マイコンだったか、ベーマガだかに書いてあった。当時、HDDなんてそうそう購入できるほど安いものではなかったから、実際どうなのかは知らんのだけど。それが今では、携帯音楽プレイヤーにまで入ってたりするわけで。技術の進化ってスゴイ。

*1: 高校時代の担任が体験談を話してた。部屋の端まで吹っ飛んだとかで。意識回復してから触ってしまった手を見たら、爪の真ん中に黒々とした穴があいてたとかなんとか。

#12 [anime] BJ、ヴァイオリンの回

ビンに入った指をしっかり見せてる。スゴイ。たしかに、ここで見せなかったら話にならないわけで。必要なものは描く、という姿勢は、たぶん大事なこと。

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

#1 [comic] _ジョジョ立ち in 渋谷

こんなことをしてたのか。知らなかった…

#2 [web] _血液型推測Web版

血液型云々はどうでもよくて、個人的には、「※IE3.0(JAVA対応)以上でご覧下さい。」の一文が気になったのでした。ソースを見たけど、使ってるのは _JavaScript じゃないのか…? 一緒にされると関連情報を検索サイトで探すときに困るので、分けてくれないものかと。 _(via あさってのほう)

それはさておきせっかくの機会なので一応やってみた :

自分はB型だったのか。知らなかった。普段は典型的なA型と言われるし、実際A型なんだけどな。

#3 [pc] _海外出張 韓国 DiCon

_韓国1日目
_韓国2日目
異文化と接すると色々な発見があるのだな。面白い…。それはさておき、「お姉ちゃんはどうだ」が気になる。どういう意味なんだ…。

#4 [game] _コーエー、中国の海賊版ソフトに一撃

気になるところが。海賊版を作る業者が居るってことは、中国でもその商品が売れる、ってことを見事証明してるのではないのかしら。…なのに何故、正規版を発売しないのだらう。ひょっとして、ビジネスチャンスを思いっきり逃しちゃってるんじゃないのか。実質勝訴とか得意がってる場合じゃないような気もするが…。それとも、裁判で勝って、そこで儲ける商売を試みようとしてるのだろうか。…まあ、中国特有の色々な事情があって、正規版が出せないんだろう。たぶん。…正規版を出してないなら、海賊版が普及しようがしまいが、裁判に勝とうが勝つまいが、コーエーには金が入ってこないよなぁ。なのに、裁判を起こす。…意味あるのか、ソレ。商売になってない気もするんだが。 _(via Masuda,Masashi's network engineering diary)

#5 [jiji] 誰に向かっての「すみません」だったのだろう

イラク人質殺害映像について。怖くて音声は聞いてなかったので、 *1 自分は確認できてないのだけど。「すみません」と言ってたらしいとどこかで目にして、なんとも言えない気持ちになった。 *2

仮に本当なのだとすれば、御両親に向かって、だけの言葉ではないような気もする。以前の3人の事件のときに、自己責任がどうこうと散々騒いで、被害者をサンドバックのように叩きまくったこの国の姿を、ひょっとしたら彼は知ってたんじゃないか。だとすると、彼の言葉は、日本国内のいわゆる「世間様」とでもいうか…自己責任云々を未だに言い続けてる日本人一人一人に向けての言葉ではないのか。 他者の悪意によって命が奪わようとしてる人質のいまわの際の言葉が、「たすけて」じゃなくて「すみません」なのか…。

なんだろう。怒りを感じる。日本人という民族に対し、怒りを感じる。なんでこの国は、人質に「すみません」なんて言葉を吐かせて平気で居られるんだろう。
*1: いざとなれば、目は閉じることができるけど。耳は閉じることができないから。
*2: 本当かどうかは知らない。もう一度見て確認できるだけの勇気が自分にはないです…。

2003/11/04(火) [n年前の日記]

#1 [seiji] _うるさい人には投票しません

全くもって同感。 _(from ReCollection)

名前の連呼しかしない候補者に票を入れたら、有権者は大損する :

拡声器で名前を連呼さえしていれば、有権者はその候補者に票を入れてくれるのだろうか。否。どころか、「ウルサイ」「いいかげんにしろ」と、候補者に対し負の感情を持つ可能性が高い。また、選挙カーを走らせるのだって金がかかるわけで。わざわざ金をかけて自分のイメージを下げてどうするのだ。そんな人間に国や自治体の予算を渡したらどうなるか。自身に関する損得計算すらできずに金をドブに捨てるかのような選挙活動を延々と行う人間が果たして予算を有効活用できるのだろうか。断言してもいい。仮にその候補者が当選した場合、彼は国民の税金を絶対に無駄遣いする。彼にはコスト意識がない。彼は損得計算ができない。そんな人間を選んだら、有権者は大損する。

その候補者を選べばどんなメリットがあるのか、名前と一緒に連呼すればいいだけの話なのに。候補者名と選ぶメリットが一つになった状態で知られてこそ選挙活動は意味がある。名前だけ知られても意味がないし、ましてや「ウルサイ」としか思われなかったら完全に逆効果だろう。なんでこんな簡単な事に気づかないのだろう。候補者もスタッフも馬鹿しかいないのだろうか。眩暈がしてくる。

おそらく、候補者の中には、顧客である有権者の的確な像が存在してないのだろう。自身の中に、自分にとってのみ都合のいい顧客像…名前さえ知ってくれればホイホイと票を入れてくれる、そんなアホな有権者像しか存在してないのだ。だから、自身の選挙活動を顧客がどう思うのか、正確なシミュレーションができないに違いない。顧客不在の思考しかできず、効果の無い売り込みを延々と続ける営業マンには、今後の活躍は一切期待できないよなぁ。

#2 [pc][web][hns] hnfって他サイト内の画像を表示できんのか…

IMG の後ろに http:// から始まるURLを書いたら怒られた。バナーを表示したかったんだけどなぁ。何か問題があるから制限してるのだろうけど。その問題ってのはなんだろう。

この記事へのツッコミ

Re: hnfって他サイト内の画像を表示できんのか… by otsune    2003/11/05 11:41
~/diary/conf/config.phの
package HNS::Hnf::Command::Image;
$AllowRemoteImage = 0;
を1にすれば画像が表示できます。
デフォルトでは安全のため0になっていると思います。
Re: hnfって他サイト内の画像を表示できんのか… by mieki256    2003/11/06 02:21
>AllowRemoteImage
おお! そんな手が!

…あちゃー、コレってドキュメントにもちゃんと書いてあるのですな…
http://www.h14m.org/docs-2.20/config-j.html
完全に勉強不足でありました。指摘thxなのであります。

とりあえず、バナーを表示するぐらいにしか使わないだろうから
onにしておこうかな…画像をコピーして自アカウントに
置いといたほうがいいのかもしれないけど。

2002/11/04(月) [n年前の日記]

#1 忘れた

犬夜叉、録画するの忘れてた。ガックリ…


レイヤー統合しないで画像解像度を変えたら、輪郭線になんだかゴミが…
高解像度画像では一見したところ、おかしくないんだけどな…
各レイヤーの縮小時、基準になる座標がズレるのかな。
データの存在する領域のみ縮小して、あとから位置だけ合わせる、とかしてたら、
微妙にズレてくる可能性もありそうな。

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

#1 家族用PCのHDD増設

_家族用PCのHDDを増設しました。

あ。
増えたのは家族用PCのHDD容量でして。
サーバ機は相変わらずの容量のままです。
期待しちゃってたらゴメンナサイ…


_ViXが、カタログファイルにサムネイルを重複登録するのです。


ウェディングドレスの本を眺めておりました。
自分も着てみたいなと思って <うっそーん。単なる絵の資料です

やー、現実のドレスはむちゃくちゃ細かくてゴージャスですね。
頭の中のイメージだけに頼ってちゃダメですな。
いかに怪しく貧しいイメージを持ってたことか。

実は、ウェピーのコスチュームイメージしか湧いてなかったのです >My頭の中
怪しいとか貧しいとかそういうレベルですらないじゃん… (;´Д`)

#2 [digital] 家族用PCのHDD増設

家族用PCのHDDを増設しました。
SCSI、7200回転、9GのHDDです。

HDD自体は、かなり前に、弟から受け取ってたんですが。
親父さんがCD-Rの焼き方を覚えるまで、増設するのは不味かろうと。
HDDに余裕があると、使わないファイルをRに逃がす必要性が湧いてこない…
結果的に、Rの焼き方を覚えようとしませんから。

増設してみたんですが、「カキン」「カキン」と中から音がします。
だ、大丈夫なのか…?
それとも、こういう仕様なんでしょうか。

#3 [digital] Vixカタログ重複登録

ViXが、カタログファイルにサムネイルを重複登録するのです。
フォルダを開くたび、延々と同じサムネイルが追加される。
カタログファイルがみるみる巨大に。

画像ファイルが壊れてるのかなと思ったんですが…
ViXも、他のアプリでも、問題無く開けるんですよ。

該当ファイルの保存フォルダ場所を変えたり、
別ドライブにコピー・移動してみたり、
scandiskしてみたけど、ダメ。

色々試してみたら、該当ファイルのタイムスタンプを書換えると正常動作するみたい。
とすると、可能性としては…


謎ですね。




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

#1 Cマガ

お袋さんの元上司の方の、電子メール設定を確認しに行ってきました。
無事、送信受信完了。問題無し。
しかしNiftyって、昔のパソ通時代の面影、無くなったんですね。
独自のルール(仕様)を押しつけてこなくなったってのは、いいことではないかと。
って、いつの時代の話をしてるのか >自分

帰り。
せっかくなので、あちこち回ってきたです。
300W電源のケース(FREEWAYの広告に出てるヤツ?)、PC工房で\14800ぐらい。
このへん安いのは無さそうデスネ… (´Д`;)
J-ZONEで、PenIII750MHzが\21000ぐらい。
セレ700MHzが\10980。
随分と安くなったなぁ。

最近、セレを買おうかどうか悩んでたり。
566MHzをベース100MHzで動かすか、それとも定格700MHzのにするか…
値段的にはそんなに変らないんですよね。
セレ700(ベース66)って、セレ450(ベース100)より、イイのかな。
CPUクロックは明らかに、だろうけど…


昨日書いてた、空き容量取得の件ですが。
Cマガの今月号にちょうどそれ関係の記事が。
おーイエ。ぐっどたいみんぐ。
でも、こっち帰ってきてまでCマガ買うことになろうとは。
なんだかちょっぴり複雑気分でせんちめんたる <なんでやねん

ホント、久々にCマガ読みました。
読んでるだけでなぜかワクワク(?)してくるのは、何故なんだろう。


最近、茶の間のTVの映りが酷くて。
VHFがノイズしか見えない…
そこで親父さんが急遽、「Newアンテナを買ってこよう」と言い出したのです。
でもよく聞いてみると、取りつけ工事は自分でやろうとしてる様子。
ヤバイな、ソレ…
せっかく新品アンテナ買ってきても、「映ればイイ」程度の意識でやられたのでは、もったいない…
必死にゴネて、まず現状把握を、という流れに。

実際、配線を見てみたら。
…なんじゃこりゃ?
VHFのケーブルが、複数の混合器・分配器に対して、行って、戻って、また行って…
って、何で「戻ってる」んじゃー!? ?堯福陰◆?;)!!
プログラムじゃあるまいし、ループしてどうする…
こりゃそもそも、アンテナうんぬんじゃなくて、ココが問題なのでは? (´Д`;)

ってことで、明日オイラがそのへんサッパリさせることになってしまいました。トホホ
親父さんは、今使ってる混合器や分配器を使いまわせと言ってるけど、冗談じゃない。
やるからには徹底的にやったる。錆びた部品なんて使わん。
同軸ケーブルも、全部F型端子にしたる <嘘。そこまで予算無い
こんな事、2度も3度もやってられません。バシッとやらねば… (-_☆)キラーン

幸い、今月号のDOS/Vマガジンに、そのへんの工事についてチラリと解説があったり。
分配器と分岐器は違うのか…知らなかった…
こういうの、高校の授業でやってそうだけど、全然覚えてないヨ… (´。`;)
授業で覚えてるのは…
担任の先生が、ブラウン管の横に触って感電死しそうになった、って話ぐらいかなぁ。
ドーンと後ろに吹っ飛んだとか、爪に真っ黒い穴がポッコリ空いたとか、そんな話。
…何を勉強していたのだ? >自分

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

#1 (NoTitle)起きてようとしたのだ...

起きてようとしたのだけど、茶の間のコタツでウトウトしはじめ、気がついたらPM4:00。うう。咽がカラカラする<自業自得
まあ、咽がハラハラとかキラキラじゃなくて良かったってそれどんな状態やねん。

今僕を見た後、自転車で買い物に。足が疲れたです。運動不足を痛感。そういえば最近煙草が不味い。いや、もとからおいしいと思えた事はなかったけど、なんかこの頃は少し吸ってるだけで気持ち悪くなってくる。これ体が弱っているってことなんだろうな。ちと明日から何かしよう。

以上、26 日分です。

過去ログ表示

Prev - 2024/11 -
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