mieki256's diary



2023/07/19(水) [n年前の日記]

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

雷が鳴ったので、17:40-18:50の間、自宅サーバ止めてました。申し訳ないです。

線状の雲が流れてきて、10分ほどかなりの豪雨に…。同時に雷も…。

#2 [anime] 「おやすみタローマン」を視聴

たまたま番組表で見かけて録画していたので視聴。無名で有名な巨大特撮ヒーロー、タローマンに関係する番組なのだろうと期待しつつ再生したのだけど…。

なんだこれは。

しかも40分もの尺。なんだこれは。

NHK攻めてるな、攻め過ぎてどこを走ってるのかもう分からないなと大いに感心してしまったのだけど、ググってみたら フィラー映像なるものだったらしい。なるほど。たしかにそれっぽい。…いや、それっぽいのかなコレ。どうなの。何にせよ、たまたまチャンネルを合わせた人は驚いただろうな…。

2022/07/19(火) [n年前の日記]

#1 [prog] cmdline.hを少し試用

C++で書いたコマンドラインツールに、コマンドラインオプションを渡して、処理が変わるようにしたい。昨日、getopt() や getopt_long() を使って試してみたけど、それらは記述が面倒だなと…。ヘルプメッセージは自分で用意しないといけないし。

もっと便利なライブラリは無いのかなとググったら、cmdline.h というライブラリがあることを知った。ヘッダーファイル1つを inlcude するだけで使えるらしい。

_C++向け簡易コマンドラインパーザ cmdline - 純粋関数型雑記帳
_tanakh/cmdline: A Command Line Parser
_C++版のgetopt - Qiita

興味が湧いたので、手元で動作確認。動作確認環境は、Windows10 x64 21H2 + MSYS2 + MinGW64 + g++ 12.1.0。

_getopt_sample2.cpp
#include "cmdline.h"

#include <stdio.h>
#include <iostream>

int main(int argc, char *argv[])
{
    // parse options
    cmdline::parser a;
    a.add<std::string>("input", 'i', "Input png image", true, "");
    a.add<std::string>("output", 'o', "Output png image", true, "");
    a.add<std::string>("palette", 'p', "Palette (.png or .gpl)", false, "");
    a.add<int>("dither", 'd', "Dither map 2/4/8 (2x2/4x4/8x8)", false, 4);
    a.parse_check(argc, argv);

    // get options
    auto infile = a.get<std::string>("input").c_str();
    auto outfile = a.get<std::string>("output").c_str();
    auto palette = a.get<std::string>("palette").c_str();
    auto dither = a.get<int>("dither");

    if (0)
    {
        std::cout << "input   : " << infile << std::endl;
        std::cout << "output  : " << outfile << std::endl;
        std::cout << "palette : " << palette << std::endl;
        std::cout << "dither  : " << dither << std::endl;
    }
    else
    {
        printf("input   : [%s]\n", infile);
        printf("output  : [%s]\n", outfile);
        printf("palette : [%s]\n", palette);
        printf("dither  : %d\n", dither);
    }

    if (strlen(infile) == 0 || strlen(outfile) == 0)
    {
        // Not set infile or outfile
        printf("%s\n", a.usage().c_str());
        return 1;
    }

    if (strlen(palette) == 0)
    {
        // Not set palette
        printf("Use default palette\n");
    }

    if (!(dither == 2 || dither == 4 || dither == 8))
    {
        printf("Error : Unknown dither mode = %d\n\n", dither);
        printf("%s\n", a.usage().c_str());
        return 1;
    }

    return 0;
}

コンパイルは以下。
g++ getopt_sample2.cpp -o getopt_sample2.exe -static -lstdc++ -lgcc -lwinpthread -lm

実行。
$ ./getopt_sample2.exe --help
usage: D:\...\getopt_sample2.exe --input=string --output=string [options] ...
options:
  -i, --input      Input png image (string)
  -o, --output     Output png image (string)
  -p, --palette    Palette (.png or .gpl) (string [=])
  -d, --dither     Dither map 2/4/8 (2x2/4x4/8x8) (int [=4])
  -?, --help       print this message

$ ./getopt_sample2.exe -i in.png -o out.png -d 8
input   : [in.png]
output  : [out.png]
palette : []
dither  : 8
Use default palette

$ ./getopt_sample2.exe --input in.png --output out.png --dither 8
input   : [in.png]
output  : [out.png]
palette : []
dither  : 8
Use default palette

記述量も少なくて済むし、ヘルプメッセージも自動生成してくれるし、ヘッダファイル1つだから使うのも楽だし、静的リンクもしやすい。これは便利だなと…。

#2 [prog] パレットデータ相当を読み込みたい

C++で、パレットデータ相当を読み込みたい。以下のような処理をしたい。
ということで、一応そういう処理を書いてみた。

動作確認環境は、Windows10 x64 21H2 + MSYS2 + MinGW64 + g++ 12.1.0。

画像の読み込みには、stbライブラリ(stb_image.h) を使わせてもらった。ありがたや。

_nothings/stb: stb single-file public domain libraries for C/C++

ソース。 :

ソースは以下。

_loadpalette.cpp
// load palette (.gpl or .png)

#include <map>
#include <string.h>

/*
 use stb library

 nothings/stb: stb single-file public domain libraries for C/C++
 https://github.com/nothings/stb
 */
#define STB_IMAGE_STATIC
#define STB_IMAGE_IMPLEMENTATION
#include "stb_image.h"

#define CBUF_N 1024
#define TMP_PAL_NUM 1024

unsigned int *load_palette_from_gpl(char *infile, int *len_pal)
{
    unsigned int *pal = nullptr;
    unsigned int tmp_pal[TMP_PAL_NUM];
    FILE *fp;
    char str[CBUF_N];
    unsigned int r, g, b;
    int idx = 0;

    for (int i = 0; i < TMP_PAL_NUM; i++)
        tmp_pal[i] = 0;

    fp = fopen(infile, "r");
    if (fp == NULL)
    {
        printf("Error : Can not open %s\n", infile);
        *len_pal = 0;
        return nullptr;
    }

    while (fgets(str, CBUF_N, fp) != NULL)
    {
        str[strlen(str) - 1] = '\0';
        if (strncmp("GIMP Palette", str, 12) == 0)
            continue;
        if (strncmp("Name:", str, 5) == 0)
            continue;
        if (strncmp("Columns", str, 7) == 0)
            continue;
        if (strncmp("#", str, 1) == 0)
            continue;

        sscanf(str, "%d %d %d", &r, &g, &b);
        // printf("%s", str);
        // printf("\t\tRGB : (%d, %d, %d)\n", r, g, b);

        tmp_pal[idx] = (r << 16) | (g << 8) | b;
        idx++;
    }
    fclose(fp);

    *len_pal = idx;
    pal = new unsigned int[idx];
    for (int i = 0; i < idx; i++)
        pal[i] = tmp_pal[i];

    return pal;
}

unsigned int *load_palette_from_img(char *infile, int *len_pal)
{
    unsigned int *pal = nullptr;
    std::map<unsigned int, unsigned int> pal_map;

    // load image
    unsigned char *pixels;
    int w;
    int h;
    int bpp;

    pixels = stbi_load(infile, &w, &h, &bpp, 0);
    if (pixels == NULL)
    {
        printf("Error : Can not load %s\n", infile);
        *len_pal = 0;
        return nullptr;
    }

    for (int y = 0; y < h; y++)
    {
        int yofs = y * w * bpp;
        for (int x = 0; x < w; x++)
        {
            int i = x * bpp + yofs;
            unsigned int col = (pixels[i + 0] << 16) | (pixels[i + 1] << 8) | pixels[i + 2];
            pal_map[col] += 1;
        }
    }
    stbi_image_free(pixels);

    int n = pal_map.size();

    // pal = (unsigned int *)malloc(sizeof(unsigned int) * n);
    pal = new unsigned int[n];

    int j = 0;
    for (auto i = pal_map.begin(); i != pal_map.end(); i++)
    {
        pal[j] = i->first;
        j++;
    }

    // printf("Count palette = %d\n", j);
    *len_pal = j;
    return pal;
}

unsigned int *load_palette(char *infile, int *len_pal)
{
    unsigned int *pal = nullptr;
    int n;

    char *ext = strrchr(infile, '.');
    if (stricmp(".gpl", ext) == 0)
    {
        // load from .gpl (GIMP palette file)
        pal = load_palette_from_gpl(infile, &n);
    }
    else
    {
        // load from .png
        pal = load_palette_from_img(infile, &n);
    }
    *len_pal = n;
    return pal;
}

int main(int argc, char **argv)
{
    if (argc != 2)
    {
        printf("Usage:\n    %s PALETTE\n\n  PALETTE (.png or .gpl)\n", argv[0]);
        return 0;
    }

    auto palfile = argv[1];
    printf("Palette : %s\n", palfile);

    int len_pal = 0;
    unsigned int *my_pal = load_palette(palfile, &len_pal);
    if (my_pal == nullptr)
    {
        printf("Error : Load failure palette [%s]\n", palfile);
        return 1;
    }

    printf("Palette size = %d\n", len_pal);

    // dump palette data
    for (int i = 0; i < len_pal; i++)
        printf("%06X, ", my_pal[i]);
    printf("\n");

    for (int i = 0; i < len_pal; i++)
    {
        unsigned int col = my_pal[i];
        unsigned int r = (col >> 16) & 0x0ff;
        unsigned int g = (col >> 8) & 0x0ff;
        unsigned int b = col & 0x0ff;
        printf("{%d, %d, %d}, ", r, g, b);
    }
    printf("\n");

    delete my_pal;
}

コンパイルは以下。
g++ loadpalette.cpp -o loadpalette.exe -static -lstdc++ -lgcc -lwinpthread -lm

実行は以下。
$ ./loadpalette.exe def16.gpl
Palette : def16.gpl
Palette size = 16
080000, 201A0B, 432817, 492910, 234309, 5D4F1E, 9C6B20, A9220F, 2B347C, 2B7409, D0CA40, E8A077, 6A94AB, D5C4B3, FCE76E, FCFAE2,
{8, 0, 0}, {32, 26, 11}, {67, 40, 23}, {73, 41, 16}, {35, 67, 9}, {93, 79, 30}, {156, 107, 32}, {169, 34, 15}, {43, 52, 124}, {43, 116, 9}, {208, 202, 64}, {232, 160, 119}, {106, 148, 171}, {213, 196, 179}, {252, 231, 110}, {252, 250, 226},

$ ./loadpalette.exe def16.png
Palette : def16.png
Palette size = 16
080000, 201A0B, 234309, 2B347C, 2B7409, 432817, 492910, 5D4F1E, 6A94AB, 9C6B20, A9220F, D0CA40, D5C4B3, E8A077, FCE76E, FCFAE2,
{8, 0, 0}, {32, 26, 11}, {35, 67, 9}, {43, 52, 124}, {43, 116, 9}, {67, 40, 23}, {73, 41, 16}, {93, 79, 30}, {106, 148, 171}, {156, 107, 32}, {169, 34, 15}, {208, 202, 64}, {213, 196, 179}, {232, 160, 119}, {252, 231, 110}, {252, 250, 226},

.gpl も .png も読み込めているように見える。

動作確認に使った .gpl、.png は以下。

_def16.gpl

def16.png
_def16.png

余談。 :

.gpl内のRGB値をどうやって取り込めばいいのか悩んだけれど、sscanf() であっさり取り込めてしまった。ただ、.gpl内の記述の仕方によっては、sscanf() で対応できなくてエラーになる場面もありそう。

そもそも .gplの記述ルールがアバウト過ぎる気もする。空白無し、区切り文字は「,」にでもしておけばよかったのに。あるいは xml にしておくとか。

2021/07/19(月) [n年前の日記]

#1 [nitijyou] 暑い

朝の時点で部屋の温度が29度。これはヤバイなと…。

ベランダに寒冷紗を取り付けた。これでエアコンの室外機に直射日光が当たらなくなることを期待。

#2 [debian][linux] 自宅サーバ代替機の設定作業中

自宅サーバ代替機(キューブPCケース機、Intel D945GSEJT使用)の各種設定作業中。自宅サーバ機の環境は、Debian Linux 10 buster 32bit版。

DDNS更新ツールの導入。 :

DDNSサービス No-IP の Dynamic Update Client (DUC) を Debian Linux 10 buster に導入。一定時間毎に No-IP にアクセスして、こちら側のIPが変わっていたら反映させるツール。

公式サイトのアカウントページにログインして、noip-duc-linux.tar.gz を入手。root になってから、/usr/local/src/ にコピーして、以下を行う。
cd /usr/local/src
tar xzf noip-duc-linux.tar.gz
cd no-ip-2.1.9
make
make install
  • /usr/local/bin/noip2 として実行ファイルがインストールされる。
  • /usr/local/etc/no-ip2.conf が設定ファイル。

make install をすると、以下の必要な情報を尋ねてくるので入力する。
  • ログイン用メールアドレス
  • パスワード
  • 更新間隔(単位は分)
  • 更新した際に何か処理をするかどうか

  • 再設定したい場合は、/usr/local/bin/noip2 -C を実行。
  • /usr/local/bin/noip2 を実行すれば常駐してIPアドレスの更新を行う。
  • /usr/local/bin/noip2 -S で、動作状態や設定内容を確認できる。

noip2の自動実行。 :

OSが起動したら noip2 が自動実行されるようにしたい。

/usr/local/src/no-ip-2.1.9/ に debina.noip2.sh というファイルがある。これを /etc/init.d/noip2 としてコピー後、内容を修正すれば、自動実行の設定ができる…ような感じがする。
cp /usr/local/src/no-ip-2.1.9/debina.noip2.sh /etc/init.d/noip2
vi /etc/init.d/noip2

2行目に色々追加。最近の Debian の /etc/init.d/ 以下はこういうのを書いておくことになっている、ということなのかな…?
#! /bin/sh

### BEGIN INIT INFO
# Provides:          noip2
# Required-Start:    $local_fs $remote_fs $network
# Required-Stop:     $local_fs $remote_fs $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Should-Start:      $syslog
# Should-Stop:       $syslog
# Short-Description: Start/stop noip2
### END INIT INFO
# /etc/init.d/noip2

/etc/init.d/xxx としてファイルを置けば、service で実行/停止/再起動ができる…?
service noip2 start
service noip2 stop
service noip2 restart
ps aux | grep noip2 でプロセスがあるか確認。

update-rc.d を使って自動実行するように登録するらしい。
update-rc.d noip2 defaults

しかし、OSを再起動しても noip2 が起動しているようには見えない。

sysv-rc-conf というツールで設定もできるらしい。
apt install sysv-rc-conf
sysv-rc-conf

sysv-rc-conf で確認したら、何故か noip2 が全ての runlevel で無効になっていた。2,3,4,5 を有効化してみた。
# sysv-rc-conf --list | grep noip2
noip2        0:off      1:off   2:on    3:on    4:on    5:on    6:off

この状態なら、OS起動時に自動実行してくれる模様。

参考ページ。

_Raspberry piにNo-IP DUCをインストールしてダイナミックDNSのIPを更新させる | 手間ひまかけて楽をする
_Raspberry Piでno-ipのDynamic DNSを使う | nogu.net
_Ubuntu で chkconfig の代わりに update-rc.d を使う | cloud.config Tech Blog
_Debian 系 Linux - サービス自動起動設定! - mk-mode BLOG
_Debian 9 (Stretch) - サービスの管理! - mk-mode BLOG
_Debian 10 (buster) - サービスの管理! - mk-mode BLOG

systemDを使って登録する場合。 :

前述の方法では /etc/init.d/ にスクリプトを置いて自動実行していたけど、今時の Linux は systemD なる仕組みで自動実行する場合がほとんどっぽい。一応その方法も調べてみた。

/etc/systemd/system/ 以下に、noip2.service を作成する。

例その1:
[Unit]
Description=No-ip.com dynamic IP address updater
After=network.target
After=syslog.target

[Install]
WantedBy=multi-user.target
Alias=noip.service

[Service]
# Start main service
ExecStart=/usr/local/bin/noip2
Restart=always
Type=forking

例その2:
[Unit]
Description=noip2 service

[Install]
WantedBy=default.target

[Service]
ExecStart=/usr/local/bin/noip2
Restart=always
Type=forking

以下で登録。
systemctl daemon-reload
systemctl enable noip2
systemctl start noip2

参考ページ。

_Systemd Service file for no-ip.com dynamic ip updater
_How to install the noip2 on Ubuntu and run via systemd systemctl (noIP Dynamic Update Client) - blackMORE Ops
_NO-IPダイナミックドメインの再設定 - shinji629のブログ
_Linux の任意のスクリプトをサービス登録し OS 起動時に自動起動させる [init.d/SystemD 編] - Qiita
_No-IP+動的IPアドレスへの対応 - Linux / Server - FICUSONLINE FORUM

chkrootkitをインストール。 :

ルートキット検出ツールの chkrootkit をインストール。
apt install chkrootkit
chkrootkit

インストールしただけで、毎日実行するように設定してくれる…のかな。/etc/cron.daily/ 以下に chkrootkit というスクリプトがあるけれど…。でも、これって何時頃に実行されるのだろう…。

_Debian 9 (Stretch) - rootkit 検出ツール chkrootkit インストール! - mk-mode BLOG

vsftpdのアクセス制限。 :

hosts.allow、hosts.deny を使って vsftpd のアクセス制限をする。

_vftpdにIPのアクセス制限をかける - susan-styleの日記

/etc/vsftpd/vsftpd.conf 内に tcp_wrappers=YES を追記。これで、hosts.allow、hosts.deny を使ってアクセス制限ができるらしい。

hosts.deny 内の記述例。
vsftpd: 1.15.
vsftpd: 1.30.

Postfix+Dovecotのインストール。 :

メールサーバ Postfix + Dovecot をインストール。Postfix は送信サーバ。Dovecot は受信サーバ。

以下のページを参考にして作業した。/etc/postfix/main.cf や /etc/dovecot/ 以下を色々修正。

_Debian 10 Buster : Postfix : インストール : Server World
_Debian 10 (buster) - SMTP サーバ Postfix 構築! - mk-mode BLOG
_Debian 10 Buster : Dovecot : インストール : Server World
_Debian 10 (buster) - POP/IMAP サーバ Dovecot 構築! - mk-mode BLOG
_Debian 10 Buster : メールユーザーアカウント登録 : Server World

自分の環境の場合、プロバイダに plala を使っているので、/etc/postfix/main.cf 内で relayhost を設定した。
relayhost = mmr.plala.or.jp

当初、mail xxxx@localhost をしてもメールが送れない・届かなくて悩んだけれど、/etc/postfix/main.cf の中で header_check 云々の行を有効にしていたのが原因だった。Vine Linux で使ってた設定ファイルを眺めて有効にしてしまったけれど、ウイルス対策用の機能だったらしい…。該当行をコメントアウトしたらメールの送受信ができるようになった。

#3 [anime] 「きみの声をとどけたい」を視聴

BS12で放送されてたので視聴。アニメ映画。女子高生達が海辺の町のミニFM局を舞台にしてアレコレするお話。

恥ずかしながらこんなアニメがあったことすら全く知らなかったのだけど、これはなかなかイイ感じのアニメだなと…。

「ちなつのシュート!」の青木俊直さんのキャラデザ原案、「干物妹!うまるちゃん」「からかい上手の高木さん」の郄野綾さんのアニメ用キャラデザが、個人的には結構好み。

話のほうも、フツーにイイ感じのソレで。いやまあ、人によってはお約束だのテンプレだの言い出しそうだけど、こういうソレで奇を衒ってみてどうするのと思うし。

小さい子供さんからお爺ちゃんお婆ちゃんまで、安心して万人に見せることができる、イイ感じのアニメだったなと…。ただ、その分、尖った部分はほとんど無いので、刺激性を求めてる人には不評だったのかなと思ったりもして。

それはさておき。劇中においてラジオというメディアは使えるなー、と再認識。これがもし…。 そんな置換がされてたら色々台無しになりそうな予感。

#4 [nitijyou] クッションを購入

ホーマックでクッションを購入。レシートには、DCM ひんやり低反発、と書いてある。45x45cm。657円。PCの作業用の椅子で使う予定。

当初、クッション売り場で探したものの、何故か40x40cmのクッションばかりで。品質は別にして、そのサイズなら100円ショップでも売ってるわけで、45x45cm とか 60x60cm とかそういうサイズを置いておかないと差別化できないのではないかな…。

仕方なくカー用品売り場で探してみた。そちらは45x45cmの商品がたくさん置いてあった。消臭を謳う製品や、座り心地を謳う製品等々、機能面も色々な選択肢が用意されていた。ただ、シートに差し込む部分もついていたりして、ちょっと余計なモノもついてるけれど。

店頭の商品群を眺めていてなんとなく思ったけれど、カーシート(?)と、事務用の椅子関係は、相互に商品や部材を応用できそうな気がしてきた。利用時の姿勢はかなり違うけど、体重を預ける何かという点では一致しているから、一部のグッズに関しては商品ジャンルとして融合すらできてしまうのではないかと…。

いやまあ、実際、カーシートにしか見えないパソコン作業用の椅子が既にあるのだけど。ただ、あそこまで行くと…。作業時の姿勢が違うはずなのに、車側の形状をそのまま持ってくるのは、どうなんだろう…。

2020/07/19() [n年前の日記]

#1 [zatta] 日記消滅

※ この日記は、2020/08/08に書いてる。

メインPCで使っていた SanDisk製SSDが、2020/08/01に突然死して…。バックアップを取っていなかった、2020/07/19 から 2020/07/31 までの日記ファイルが消滅してしまった…。さすがに、10日分も何をしていたのか思い出すことはできず…。

この記事へのツッコミ

Re: 日記消滅 by 名無しさん    2020/08/11 01:04
通りすがりですが

まだSSDを初期化や処分をされていない、のでしたら
1.しばらくSSDの電源を入れっぱなし(SATAポートはあけたまま)にする
2.外付けHDD(USB変換アダプタなどで、相性はありますが粘り強いタイプのものがあるといい※)として接続。
運がよければ1と2を繰り返すと内容が読めることがあります。
1は2のアダプタに繋いだまま放置、でもいいのですができれば何もコマンドが与えられない状態で放置が良いかと思います。

参考になれば

2019/07/19(金) [n年前の日記]

#1 [blender] blender 2.80rc1を触ってる

せっかく blender 2.80rc1 をインストールしたので、グリースペンシルについて操作方法を調べていたり。

2.79 とは仕様が変わっているようで、オブジェクト表面に沿うように描き込む方法が分からず。

キーフレーム間を補間して自動中割する方法はなんとなく分かった。
ただし、既にキーフレームが作られているフレームに対しては行えない模様。キーフレームになってないフレームを選んでから前述の操作をしないといけない。キーフレームを上書きしてくれるわけではないというか。

まあ、チマチマと手作業でちゃんと指定したキーフレームまで上書きされたら大変なことになるので、空フレームをユーザが明示的に作ってから自動中割、という仕様のほうが正しいのだろうなとは思う。

これが CACANi なら、自動中割するフレームを指定できるので、その種類のフレームだけは自動中割時に上書き、という処理もできるのだけど、blender にそういう種類のフレームは無さそうだし、仕方ないところもあるのだろうなと。

#2 [anime] 「サマーウォーズ」を視聴

民放の地上波で放送されていたので視聴。今回は初のノーカット版放送だそうで。

ノーカット版のはずなのに、見たことがないシーンの存在には、これといって気づかず。自分、この映画をどういう形で見ていたのだろう…。地上波放送で見たのだろうと思い込んでいたけれど、実はDVD等で見たことがあったのだろうか…。記憶が全く無い…。

さておき、やはりED曲はズバッとカットされてた。ノーカット版って何だろう。

2018/07/19(木) [n年前の日記]

#1 [gimp] GIMP 2.10からScript-Fuの仕様が少し変わっていた

以下の記事に遭遇。

_ShiroYuki_Mot の ひとりごと: GIMP Script-Fu (12) GIMP バージョンの影響

GIMP 2.10 から、Script-Fu の仕様が少し変わっていたらしい…。TRANS-IMAGE-FILL が TRANSPARENT-FILL になってるようで…。いや、正確には GIMP 2.6、GIMP 2.8 から既に変わっていたようだけど。

とりあえず、手元の *.scm に対して grep をかけて、TRANS-IMAGE-FILL を TRANSPARENT-FILL に変更。

GIMP 2.10.2 Portable の入力欄がおかしい。 :

GIMP 2.10.2 Portable の各種入力欄に文字列を打ち込もうとすると、半角カタカナで謎の文字が表示されてしまう…。これは不便だ…。

以下の記事に、現状についての説明が。

_ShiroYuki_Mot の ひとりごと: GIMP 2.10.2 x86 Windows 版 の対処方法

この方がバグ報告をしてくれたらしい。ありがたや。しかし、GIMP 2.10.4 64bit版では修正されたものの、32bit版は未修正の状態らしい。GIMP Portable は 2.10.2、かつ、32bit版なので、修正されるとしても先になりそう…。

#2 [anime] 「ハイスコアガール」のフレームレートが気になる

TVアニメ「ハイスコアガール」1話を視聴。こういう作品だったのか…。コレはかなり面白そう。 *1 また、おそらくは3DCGでキャラを描いてるのだろうけど、比較的自然な映像になってる印象。イイ感じ。

ところで。本編内のPANのカットがなんだか滑らかな動きで気になった。もしかして30コマ/秒で映像を作っているのだろうか。

一般的に、手描きTVアニメは24コマ/秒(作画部分は3コマベース・8枚/秒が基本)で作っているはずだけど。TVゲーム画面の映像は60fps(60コマ/秒)なので…。本編内に頻繁に登場するTVゲーム映像を24コマ/秒に変換すると動きがガタガタしておかしくなったのだろうかと。だったらキリのいい30コマ秒に変換したらどうか…という流れでアニメパートも30コマ/秒で撮影することになった、てな感じだったりするのかなと。

この邪推が当たっているとしたら…。アニメスタッフはTVゲーム映像を邪険に扱わず、むしろゲーム映像をちゃんと尊重して、アニメの側までゲーム側に寄せてみせたと言えるのかも。アニメ業界の方々はえてしてゲームの類を馬鹿にしている、てな話をチラチラ見かけるけれど。このアニメに関しては全くそんなことはないよ、ちゃんとゲームと向き合いながら作ってるよ、という姿勢の現れの一つ、だったりするのかもしれず。

などと書いてはみたものの。単に自分の見間違いで、フツーのアニメと同様に24コマ/秒でPANしてたらどうしよう…。あるいは編集の都合で、24コマ/秒と30コマ/秒が混在してる映像なだけだったりする可能性も。例えばプリキュアやワンピース等、手描きのはずの東映アニメ作品でも、何故かたまに30コマ/秒でPANしてるときがあったりするので、どういう理由でそういったカットが出現するのか、一視聴者には分からんのだよな…。

まあ、各ゲームのテクニックや裏技等もしっかり解説して、それぞれのゲームについて知らない人でも話が分かるようになってたり、スタッフロールを見る限りでは某ゲーセンでゲーム映像撮影をしてるっぽいしで、色々な部分で好印象。

監督が山川吉樹氏な点も期待大。丁寧に作ってくれる監督さんだから安心して見れそうな予感。監督自ら原画を描いてるらしいED映像もグー。二人の表情の変化がイイ…。
*1: こんなにヨサゲな作品なのに、編集部だか担当だかが許諾関係の仕事をサボったせいで、一時期は妙なことに…。でもまあ、アニメ版放映まで到達できてよかった…。

2017/07/19(水) [n年前の日記]

#1 [raspberrypi] Raspberry Pi3にRTCモジュールを追加してみた

昨日届いた、DS3231使用のRTCモジュールを、Raspberry Pi3に追加してみた。以下を参考に作業。

_「Raspberry Pi 3 (ラズパイ3)」 RTC 追加 : Snow in Novemberのblog
_Raspberry Pi 3BでRTC(リアルタイムクロック)|Penta creation
_Raspberry PiでDS3231 RTCを正しく動かす - My life is programming
_Raspberry Pi 2 で RTC を使いスタンドアロンで時刻を保持 - 或る阿呆の記
_RedSleeve へのミニ RTC モジュールの導入 | あたがわの日記

一応、行った作業をメモ。

本体に接続。 :

GPIOの、1,3,5,7,9版に接続。でいいのかな。

OS側の設定。 :

Raspberry Pi3 と RTCモジュールは、I2Cなる規格(?)で通信するらしい。raspi-config で I2C を有効化する。
sudo raspi-config
enable にしたら再起動(sudo reboot)…しただけでは何故か正常起動しなかったので、一旦電源ケーブルを抜いてからまた差し直した。

I2C関係のツールをインストールする。が、最初から入ってた。
sudo apt install i2c-tools

状態を確認。
sudo i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
68と出てきた。たぶん認識されてる。のかな。

/boot/config.txt に以下の行を追加。
dtoverlay=i2c-rtc,ds3231
再起動。sudo reboot。

状態を確認。
sudo i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
UUが表示された。有効になってるっぽい。

ntpdateをインストール。 :

ntpdate をインストールして、NTPサーバの時刻を強制取得。
sudo apt install ntpdate
sudo ntpdate -u ntp.jst.mfeed.ad.jp
date

RTCに設定。
sudo hwclock -w

ntpを停止。fake-hwclockをアンインストール。 :

ntpが動いてるとRTCとのソレがアレになるらしい。また、フツーの Raspberry Pi にはRTCがついてないので、fake-hwclock なるソレでそれっぽくしてるらしい。ので、サービスを無効にしたり、アンインストールしたり。
sudo apt install chkconfig
sudo chkconfig ntp off
sudo apt remove fake-hwclock
sudo dpkg --purge fake-hwclock

/etc/rc.localに追加。 :

/etc/rc.local に、RTC からシステムクロックに時刻を設定するソレを記述する事例が多いっぽいので真似したり。
sudo vi /etc/rc.local
以下を追加。
# RTC
/sbin/hwclock --hctosys
sleep 10
/usr/sbin/ntpdate -b ntp.nict.jp && /sbin/hwclock --systohc
hwclock -s (hwclock --hctosys) で、RTCからシステムクロックに時刻を設定。また、ntpdate が成功したら、その後に続く処理、hwclock -w (hwclock --systohc)が実行されるらしい。

/etc/default/hwclock を修正。
sudo vi /etc/default/hwclock
HWCLOCKACCESS=no

サービスとして追加する方法もあるらしい。そのほうが、起動直後から早く時間が設定されるとか…。そのうち試してみたい。

cron で一定時間毎に時刻合わせ。 :

sudo crontab -e
# m h dom mon dow command
0 0,12 * * * /usr/sbin/ntpdate ntp.nict.jp && /sbin/hwclock -w
00:00、または 12:00 に、ntpdate でシステムクロックを設定後、RTCに設定。ということでいいのかな。

一応動いてるっぽいような。 :

不良品のRTCモジュールが届いてたらどうしようと不安だったけど、一応動いてるように見える、ような。ホッとした。ただ、通電してない状態で、どの程度時刻を保持できるのかはまだ不明。

使われている電池について。 :

Amazonのレビューには、CR927 なる電池が使われているという話が。

_ボタン電池 CR927の規格や互換品などの詳細情報
_CR927 ‐ 通信用語の基礎知識

充電池ではないっぽい。すると、既に電池が切れてたり、そのうち切れちゃう可能性が。電池交換は…無理だな…。電池に直接端子を溶接してあるし…。個人が半田ごてで何かくっつけようとしたら、熱で電池が爆発しそうだし。

コイン型電池を交換できるタイプのソレを買ったほうが良かったのだろうか…。

#2 [raspberrypi] Raspberry Pi3本体のLED設定を変更

Raspberry Pi3のシャットダウン処理が終了したかどうかを、本体のLEDを使って確認できるようにしたい。まだ終了処理が終わってないのに、電源コードを引き抜くのがちと不安なわけで。

ググってみたら、 CPUが動いてる間は一定間隔で点滅するように設定できるらしい。シャットダウン処理が終了した際に点灯しっぱなしになるから、電源コードを抜いてもOKと分かるはず。

/boot/config.txt で指定すれば、LEDの動作を変えられるっぽい。
sudo vi /boot/config.txt
dtparam=act_led_trigger=heartbeat

しかし…。設定を変えてみて、たしかに反映されたように見えるものの、ケースのデザインの問題で外から見ても点滅してる様子が確認できない…。ケースにドリルで穴を開けないとダメっぽい予感。

ちなみに、使ってるケースはコレ。

_Raspberry Pi 3/2/B+ 用RSコンポーネンツ製ケース 白 - スイッチサイエンス

このケース、GPIOからコードを出したり、カメラモジュールケーブルを出そうとすると不便だったりして、実用性は微妙な印象が。ただ、綺麗でオシャレだし、他のケースと比較して値段も少しだけ安かったりするわけで。本体のみで動かす・電子工作をしない場合は選択肢としてヨサゲな印象。

以下、参考ページ。

_Raspberry Pi がシャットダウンしたか緑LEDでわかるようにする - Raspberry Pi にっき
_Raspberry Pi 3をシャットダウンした時に電源が切れたかを簡単に確認する方法 (ラズパイをシャットダウン操作した時に電源が切れたかを簡単に確認する方法)
_メモ:Raspberry Piの基板上のLEDを別の用途に使う - Qiita

#3 [raspberrypi] Raspberry Pi3の無線LAN関係を少し設定変更

どうも時々、DHCPでIPアドレスを取得できない時があるような…。なので、ちょっと設定を変えた。

IPv6の無効化。 :

まず、IPv6 が有効になってるのがよろしくないのではと思えてきたので、そのあたりを無効化。以下を参考に作業。

_Raspberry Pi 2で遊ぶ(Ver.2.0):ipv6の無効化 | cozy attic

sudo vi /etc/modprobe.d/ipv6.conf
#alias net-pf-10 off
...
install ipv6 /sbin/modprobe -n -i ipv6

新規ファイル作成。
sudo vi /etc/sysctl.d/40-ipv6.conf
net.ipv6.conf.all.disable_ipv6=1
net.ipv6.conf.default.disable_ipv6=1
/etc/sysctl.confに書いてもOK、らしい。

sudo vi /etc/hosts
#::1 localhost ip6-localhost ip6-loopback
#ff02::1 ip6-allnodes
#ff02::2 ip6-allrouters

sudo vi /etc/dhcpcd.conf
noipv6rs
noipv6

これで IPv6 は無効になった。が、やっぱりDHCPでIPアドレス取得ができない時が…。何故。

固定IPアドレスにした。 :

原因が分からんので、固定IPアドレスにしてしまうことにした。以下を参考に作業。

_Raspberry Pi 3 (Raspbian Jessie)の無線LANに固定IPアドレスを設定する - Qiita

sudo vi /etc/dhcpcd.conf
interface wlan0
static ip_address=192.168.xx.yy/24
static routers=192.168.xx.1
static domain_name_servers=192.168.xx.1

pingでエラー。 :

関係ないけど、Raspberry Pi3上で ping を打つとエラーが。

_【エラー】ラズベリーパイでpingを実行すると「ping: icmp open socket: Operation not permitted」と表示されて実行できない

真似をして以下を実行。
sudo chmod u+s /bin/ping

#4 [nitijyou] 某所に行ってきた

16:27から17:44まで作業。詳細はGRPでメモ。

#5 [nitijyou] ヘッドルーペを購入

某所からの帰宅途中で寄ったダイユーエイトでヘッドルーペを発見。ホーマックには5,000円ぐらいの品しか置いてなかったけど、ダイユーエイトで見つけたソレは2,000円ほど。お袋さん or 親父さんへのプレゼントとして購入してみたり。

まあ、実際に使えるのか、便利かどうかは分からんけど…。

2016/07/19(火) [n年前の日記]

#1 [raspberrypi] Raspberry Pi3でサーボモータを制御。その1

秋月電子から購入したマイクロサーボモータ、 _SG92R を、Raspberry Pi3 から制御したいなと。

サーボモータってのは…。この場合は、PWMで角度を指定して動かせるモータ、という認識でいいのだろうか。 _サーボモータ - Wikipedia を眺めるとゴイスなヤツからホビー用まで色々あるらしいけど。今回使うのはホビー用。

仕様をメモ。 :

とりあえず、SG92Rの仕様を秋月電子さんのサイトからコピペしてメモ。特に、PWMサイクル、制御パルスの仕様が重要。
SG92R : メーカー : Tower Pro Pte Ltd
PWMサイクル : 20ms
制御パルス : 0.5ms〜2.4ms
制御角 : ±約90°(180°) 配線 : 茶 = GND、赤 = 電源[+]、橙 = 制御信号 [JRタイプ]
トルク : 2.5 kgf・cm
動作速度 : 0.1秒 / 60度
動作電圧 : 4.8V(〜6V)
温度範囲 : 0℃〜55℃
外形寸法 : 23 x 12.2 x 27mm
重量 : 9g

マイクロサーボ SG92R: サーボ 秋月電子通商 電子部品 ネット通販 より


つまり、20ms間隔でPWMを流して…。0.5ms幅のパルスを送ると -90度に、2.4ms幅のパルスを送ると90度にモータが回転してくれる、のであろうと。

ピンコネクタでちょっと失敗。 :

サーボモータの端子をブレッドボードに差すために、 _細ピンヘッダ 1 x 20 も購入したのだけど。試してみたら長さが足りなかった…。もしかすると、ここは _両端ロングピンヘッダ なるものを購入すべきだったのだろうか…。

とりあえず、 _ブレッドボード用ジャンパーコード(オス - オス) をサーボモータ側の端子に差し込んでどうにか。

回路図。 :

こんな感じに。
servo_motor_02_bb.png

servo_motor_02_c.png
  • Raspberry Pi3 の GPIO 18番を、サーボモータの制御信号に接続。GPIO 18番なら、PWMが使える場合が多いらしいので。
  • サーボモータの電源は、単三電池 x 4 で確保。
  • モータがノイズを出すらしいので、ノイズ対策としてモータの電源(VCC - GND)の間に 100uF のコンデンサを追加。コンデンサにはプラスマイナスがあるので注意。

巷の解説記事を眺めてると、コンデンサや抵抗を入れる場合と入れない場合があるようで。
  • コンデンサをつけるとしても 0.1uF とか 100uF とか色々あって、どれが正しいのやら。
  • Raspberry Pi3 の GPIOピンと、サーボモータの制御信号の間に、1KΩ程度の抵抗を入れる場合も。サーボモータが壊れた際に逆流しないように、という理由だとか。

Pythonで動かしてみる。 :

とりあえず、LEDをPWMで光らせた時と同じやり方で ―― Python + RPi.GPIO を使う形で制御してみたり。servo_pwm.py として保存。
#!/usr/bin/python
# -*- coding: utf-8 -*-

import RPi.GPIO as GPIO
import time

PULSE_PIN = 18
TOTAL_MS = 20.0
MIN_MS = 0.5
MAX_MS = 2.4
MIN_DCV = (float(MIN_MS) / TOTAL_MS) * 100.0 - 0.7
MAX_DCV = (float(MAX_MS) / TOTAL_MS) * 100.0 - 0.5

def get_dc(ang):
    ang += 90
    if ang < 0.0:
        ang = 0.0
    if ang > 180.0:
        ang = 180.0
    dc = MIN_DCV + ((MAX_DCV - MIN_DCV) * (float(ang) / 180.0))
    return dc

GPIO.setmode(GPIO.BCM)
GPIO.setup(PULSE_PIN, GPIO.OUT)
pwm = GPIO.PWM(PULSE_PIN, 50)
pwm.start(get_dc(0))

try:
    for ang in [0, -90, 0, 90, 0, -90, -45, 0, 45, 90, 0]:
        dc = get_dc(ang)
        print "ang %f , dc %f" % (ang, dc)
        pwm.ChangeDutyCycle(dc)
        time.sleep(3)

except KeyboardInterrupt:
    pass

pwm.stop()
GPIO.cleanup()

sudo python servo_pwm.py として実行。



動いた。

と思ったら、甘かった。指定角度で止まってくれたように一瞬見えたけど、なんだか「ジャジャッ…ジャッ…」と鳴きながら、ガクガクブルブルしている…。これじゃ使えない…。

Python + RPi.GPIO はPWM制御に関して精度がよろしくない、という話も見かけたけれど。ひょっとして、そのせいでガクブルしてしまうのだろうか…。それとも別の原因が…。

全然関係ないけど、サーボモータ上に乗せたのは _2012/05/15 に作ったペーパークラフト。机の中を探したらコレが見つかったので。

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

サーボモータを制御することに特化した、ServoBlaster なるものがあるそうで。デーモンとして動くことで、比較的正確なPWM制御が可能になっているらしい。

_Raspberry PI でサーボを動かす ・ Airwhite Memo
_Raspberry Pi でサーボモータ制御 - Qiita
_Raspberry-PiにおけるGPIO関係ツールのインストール方法
_[raspberry] GPIOの制御とservoblasterの併用時 | Gerolian
_Indoor airplane world
_raspberry Pi でサーボモータ制御 | Linux & Android Dialy

コレを使えば、RPi.GPIO 使用時と違う結果になるのでは。試してみないと。

インストールは以下。
$ git clone git://github.com/richardghirst/PiBits.git
$ cd PiBits/ServoBlaster/user
$ make servod
$ sudo make install
servod てのが、コマンド名(?)らしい。

デーモンとして起動。あるいは、デーモンが起動中なら現在の状態を表示。
sudo servod

デーモンを終了。
sudo killall servod

ServoBlaster をインストールすると、サービスとして自動起動するように設定される。自動起動しないように設定する場合は以下。
sudo update-rc.d servoblaster remove

自動起動するように設定する場合は以下。
sudo update-rc.d servoblaster defaults

サーボ番号と、GPIO番号の対応は以下のようになってるらしい。コピペさせてもらってメモ。
サーボ番号01234567
GPIO番号4171821/2722232425
P1ピン番号?711121315161822

例えば、GPIO 18番のdutyを、パーセント指定で変えたければ、以下のように打つ。
echo 2=0% > /dev/servoblaster
/dev/servoblaster に何かを書き込んでやることで指定できる、ということなんだろう…。

パーセントではなく、パルス幅(10マイクロ秒単位)で指定することも可能。
echo 2=120 > /dev/servoblaster

さて。手持ちの SG92R の場合、受け付けるパルス幅は、最小 0.5ms 〜 最大 2.4ms らしいので、以下が指定できるはずだけど。
echo 2=50 > /dev/servoblaster
echo 2=240 > /dev/servoblaster

試してみたところ、実際には指定できず…。以下の範囲でしか指定できなかった。
echo 2=50 > /dev/servoblaster
echo 2=213 > /dev/servoblaster
213より大きい値を指定すると異音がする…おそらく回りっぱなし…。本来なら 240 まで指定できそうだが…。

つまり、ServoBlaster + SG92R を使う際は、-90度 = 50, 0度 = 131, 90度 = 213 を指定する感じになりそう。

さておき。前述のPythonスクリプトで制御するとガクブルだったけど、ServoBlaster を使った場合は、ちゃんとピタリと止まってくれた。状況が改善した、ような気がする。

ServoBlasterが握るピンの数を変更。 :

ところで、このままだと ServoBlaster が複数のGPIOのピンを握り続けてしまって、他の実験がちょっとやりにくくなる。今回は GPIO 18番だけを使いたいわけで…。

ということで、GPIO 18番だけを利用しなさい、他は使わんでくれ、と指定する。P1ピン番号を使って指定するらしい。
sudo servod --p1pins=12
ただし、コレを一度発行すると、ピン番号が入れ替わるので注意。デフォルトでは、
echo 2=50 > /dev/servoblaster
echo 2=213 > /dev/servoblaster
と指定したけど、1本だけ有効状態にすると、以下のような指定になる。
echo 0=50 > /dev/servoblaster
echo 0=213 > /dev/servoblaster

再度 sudo servod を実行すると、元のピン設定に戻ってしまう模様。

それと、sudo servod 実行時に --idel-timeout=1000 をつけると、指定時間(ms)が過ぎたらアイドル状態になる、ような設定にできる、のかもしれないけど、このあたりよく分かってない。

ServoBlasterを使ったPythonスクリプト。 :

ServoBlaster を使った場合の Pythonスクリプトを書いてみたり。servo_pwm2.py として保存。
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# required servoblaster

import subprocess
import time

START_V = 50
END_V = 213
CENTER_V = 131

def get_pulse(ang):
    ang += 90
    if ang < 0.0:
        ang = 0.0
    if ang > 180.0:
        ang = 180.0
    v = float(END_V - START_V) * (ang / 180.0) + START_V
    return v

try:
    cmd = "servod --p1pins=12 --idle-timeout=1000"
    subprocess.call(cmd, shell=True)
    for ang in [0, -90, 0, 90, 0, -45, 0, 45, 0]:
        pulse = get_pulse(ang)
        print "ang = %f , v = %f" % (ang, pulse)
        cmd = "echo 0=%d > /dev/servoblaster" % (pulse)
        subprocess.call(cmd, shell=True)
        time.sleep(3)

except KeyboardInterrupt:
    pass
要するに、bash上で手打ちしていたコマンドを、subprocess.call() を使って再現してるだけですが。

sudo python servo_pwm2.py として実行。

こちらもガクブルしなかった。指定角度で、ちゃんと止まってるように見える。

pigpioを試用。 :

ServoBlaster はイイ感じにサーボモータを制御できるのだけど、コマンドを呼び出してる感がなんだか気になるわけで。

他の方法を探してみたところ、Python + RPi.GPIO ではなく、Python + RPIO ならサーボモータ専用のモジュールが既に用意されていたそうで。しかし、RPIOは随分前から開発停止状態。Pi3 や Pi2 に非対応なのだとか。残念。

ただ、RPIO関係を調べていたら、pigpio なるものがあると知り。ServoBlasterと同様にデーモンとして動く仕組みで、コマンドラインでも使えるし、Pythonから呼ぶためのモジュールも用意されているらしい。

ということで、pigpio を試用してみる。 Raspberry Pi3 の場合は、最初からインストールされてるっぽいが、入ってない時はおそらく sudo apt-get install pigpio でインストールできるんじゃないか、という気がするけど自信無し。

デーモンの起動と殺し方。
sudo pigpiod
sudo killall pigpiod

ひとまず、コマンドラインから使ってみる。pigs というコマンドを使って、GPIOに色々送れるっぽい。

GPIO 18番にサーボモータが繋がってるものとして、1.45ms のパルス幅を送る例。
pigs SERVO 18 1450
オプション内容は、pigs SERVO GPIOピン番号 パルス幅(単位はマイクロ秒?)、だと思う。

パルス幅には、500 - 2500 の値を指定可能。つまり、0.5ms - 2.5ms の範囲で指定できる。

SERVO の記述は、s でも代替できる。以下は 0.5ms、2.4ms のパルス幅を送る例。
pigs s 18 500
pigs s 18 2400

サーボモータ用のパルスを切る例。
pigs s 18 0

詳細は _pigpio library を参照。

ところで、ServoBlaster を使った際は、最大値として 213 (2.13ms) までしか指定できなかったけど。pigpio (pigs) を使った場合は、2400 (2.4ms)まで指定できた。もしかするとPWMの精度に関して、ServoBlaster より pigpio のほうが高い、ということだろうか…。わからんけど。

pigpioを自動起動。 :

Raspberry Pi3起動時に、pigpio が自動で起動するようにしたい。以下のページにやり方が色々載っていた。一つは crontab を使う方法。他には、サービスとして登録できるようにする方法。

_Raspberry Pi - View topic - PIGPIO daemon

とりあえず、サービスとして登録できるやり方を試してみたり。

最初に、pigpiod の場所を ―― /usr/local/bin/以下にあるのか、/usr/bin/以下にあるのか、把握しておく。
which pigpiod

サービス起動用の雛形ファイルをコピー。
sudo cp /etc/init.d/skeleton /etc/init.d/pigpiod
sudo chmod 755 /etc/init.d/pigpiod

中身を編集
sudo vi /etc/init.d/pigpiod

/etc/init.d/pigpiod の中身は、上記のサイトからコピペ。ただし、Pi3 などでは、
DAEMON=/usr/local/bin/$NAME
の行は、
DAEMON=/usr/bin/$NAME
になる。かもしれない。

サービスとして登録。
sudo update-rc.d pigpiod defaults
sudo update-rc.d pigpiod enable

サービスの起動・終了ができるか確認してみる。
sudo service pigpiod start
sudo service pigpiod status
sudo service pigpiod stop
sudo service pigpiod status

参考ページ。 :

_サーボモーター(SG-90)を試す - Raspberry Pi 備忘録
_くたじんの鎌倉生活 RaspberryPiのPWM制御、周波数とデューティー比について
_Raspberrypi2 PWMでサーボモータを動かす | Myブーム & My備忘録
pwmSetClockの値の設定についてだが、調べたところ以下の条件式が成立するらしい。

- pwm周波数=raspiのPWMが持つベースクロック周波数/clock * range
- pwm周波数: 50Hz
- raspiのPWMが持つベースクロックの周波数: 19.2MHz
- range: 1024
- clock: pwmSetClockで設定する値

従ってclockを求める式は、clock = 19.2 x 10^6 / (pwm周波数 x 1024) となる。
故に、clock = 18750 / pwm周波数
ということは、50ms にしたいなら…。clock = 18750 / 50 = 375、なのかな。

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

門のチャイムが壊れたとのことで。親父さんが線を繋ぎ直しても鳴らないのだとか。どこかで断線したままなのだろうけど、断線箇所を見つけようにも…。線は壁の中を通ってるわけで…。てなわけで、ここはワイヤレスのチャイムを買って、ソレを設置しようという話に。

ということで、ホームセンターホーマックまで電動自転車で。以下を購入。 _電源タップ WHS2523JP は、Raspberry Pi3 の電源を取ってる位置をもっと伸ばしたくなったので購入してみたり。他にも電源を取りたくなるだろうから、スイッチ付・数個口のモノを。

ついでに、Seriaで以下を購入。
一応コンセントカバーは部屋に転がってるけど、小さいから引き抜くのが面倒で。その点今回購入したソレは比較的大きいので、引き抜く時に楽かなと。

セパレートボックスは、ブレッドボード用のジャンパーコードを入れるために購入したけど、長いコードは入らなかった。細長いケースが、どこかで売ってないものか…。筆記具を入れる時に便利だろうから、商品としてありそう、とは思うのだけど…。

REVEX X810のスペックについてメモ。 :

_リーベックス株式会社 Xシリーズカタログ
_X810・X800・X10共通 取扱説明書

送信機側の電源は、CR2032 x 2。受信機側は、単三電池 x 3。ただし受信機側は、5V 500mA のACアダプタがあれば、ACアダプタ駆動もできるらしい。

無線IDは、16段階のボリューム x 2 で設定する。16 x 16 = 256通りが選べるはず。他の御家庭と混線しないように選んでくれ、と説明書には書いてあった。

チャイム、音楽、効果音の種類は、16種類。なかなかイイ感じの音色が鳴る…。PSGっぽい音というか、ファミコンっぽい音というか…。

送信機側はネジを緩めないと裏蓋が外れない。防雨対策、なのかなと。

2015/07/19() [n年前の日記]

#1 [gimp][cg_tools] GIMPのレイヤーを等分割するスクリプトを探したり

等幅のビットマップフォント画像をGIMPを使って編集中なのだけど、1文字単位でレイヤー分けして位置を移動したい。レイヤー or キャンバスを等分割してレイヤーその他にしてくれるスクリプトがあれば楽だろうなと。

ググってみたら、2つほど遭遇。

_divide-layer | GIMP Plugin Registry
_Split layer into tiles | GIMP Plugin Registry
_denilsonsa / small_scripts / ソース / gimp-2.6-plug-ins - Bitbucket

どちらも、レイヤー内容を等分割して、各部分をレイヤーにしてくれる。ありがたや。項目は、レイヤー → 変形 → Divide、レイヤー → Split layer into tiles、だったかな。たぶん。

レイヤー分けされていれば、後は各レイヤーを画像として保存することもできるし…。

_Export Layers | GIMP Plugin Registry
_Releases - khalim19/gimp-plugin-export-layers

GIMP-Python だか Python-fu だかが Windows上でも最初から使えるようになったことで、便利なスクリプトが増えてくれたような気がする。やっぱり Scheme というか Lisp はツライ。アレは天才のための言語。

選択範囲の中身をいきなり移動したい。 :

GIMPの場合、矩形で選択範囲を作ってその中でマウスドラッグすると、選択範囲だけが移動して、選択範囲の中身・ピクセル内容は移動しないのだけど。ピクセル内容も一緒に移動できたらいいのになと。

ググってみたら、機能はちゃんとあったらしい。選択範囲を作った状態で、Ctrl + Alt を押しながらマウスドラッグして、直後に Ctrl + Altキーを離すと、選択されたピクセル内容がフローティング範囲になって移動することができるようになる。位置の確定・固定は、選択範囲外をクリック。

恥ずかしながら今まで知りませんでした…。

#2 [nitijyou] お腹の調子が悪い

朝の9:00ぐらいからお腹の調子が悪くなってきて少々キツイ。症状はGRPでメモ。

2014/07/19() [n年前の日記]

#1 [prog] MySQL勉強中

_MySQL入門 (全19回) - ドットインストール を、まだ眺めていたり。

2013/07/19(金) [n年前の日記]

#1 [nitijyou] 一日中寝てました

なんだかものすごく疲れてしまったというか、背中がずっと居たくて。

まさか、昨日久々に自転車で動いたから、筋肉痛に…?

2012/07/19(木) [n年前の日記]

#1 [anime] 境界線上のホライゾンを視聴

作業しつつBGVとして流してチラ見では基本設定すら理解できない感じがしたので、「後で見る」つもりで録画だけして放置状態だったのだけど。HDDレコーダの空きが厳しいのでそろそろ消化しないと、てな感じで1話から目を通し始めたり。

ある意味、凄いな…。ディスプレイに全画面表示して腕組みしながらガン見してみたけれど。つまりは視聴に専念したつもりだけど。それでも、登場人物が何を言ってるのかさっぱりわからねえ…。全ての会話が意味不明。まるで技術系のはてなダイアリーを眺めてる気分。なんだこの呪文の羅列は、みたいな。

設定が観念的過ぎる上に、作品内でのみ通用する用語・単語がてんこもりだから、チンプンカンプンなのだろうと思うけど。映像化しちゃいけないラノベって、あるんだなあ…。

全てを文章で示す、小説という表現手法なら、観念的な設定も独自用語もいくらでも書くことができるし、読者が理解できずに引っ掛かっても読み返すことができるから、作品・商品として成立する可能性は十分ある。ので、それが小説なら、作家さんが好きなだけ突っ走ってくださいな、で済むのだけど。これをアニメにするのは…。小説以外では表現できない作品ってあると思うけど、これはそういう作品じゃないのかなと。

アニメだの映画だのを見るにあたって、「理解不能な部分は、『よくわかんない』とラベルを貼ってパッケージングしてひとまず横に置いといて、理解できるところだけ受け止めて、どんどん先に進む」てな鑑賞の仕方もあるよ、という話を以前どこかで見た記憶があって。自分も時々そういう見方で凌いだ(?)作品がいくつかあるけれど。この作品は、それも無理だなと。全てを細かくパッケージングする羽目になるから処理が追いつかないし、理解できる部分がほとんど残らない。もしかするとそのあたり、視聴者側の脳内で、ある種のオーバーフローを起こし続けることで、「この作品、なんだかすげえ」と錯覚(?)させる作り、なのかなと勝手な想像も。

まあ、世の中、色んな作品があったほうがいいよね。と思うので、これはこれで。2期も作られてるみたいだから需要はあるのだろうし。

1〜3話をガン見して理解できなかったのだから、たぶんこの後の話も理解不能だろう…。どんどん消していこう…。しかし、このおいてけぼり感、スゲエなあ…。

ガンダムシリーズやマクロスシリーズも、こう見えているのだろうか。 :

アニメばかり見ている人にはピンとくる設定も、普段アニメを見てない人には、こんな感じでチンプンカンプン、なのだろうか。なんだかマズイな…。

能・狂言・歌舞伎も、それをずっと見ている人なら、お約束が分かってるから楽しめるのだろうけど。この作品もそういう領域に入ってる作品なのだろうか。ラノベばかり読んでる人ならピンとくるのかしら。わからんけど。

アニメだの、ラノベだの、そのへんなんだかヤバイのかもしれない。蛸壺化してる可能性が高そう。

まあ、作品によるか。全てがこういう作品というわけでもないし。

#2 [anime][neta] ラノベ原作アニメ内の固有名詞だか専門用語だかについてぼんやり思ったり

境界線上のホラなんとかを見ていて思ったけれど。原作を読めば、作品内の、固有名詞? 専門用語? 独自用語? に、どんな漢字が割り当てられているか分かるだろうから、多少は台詞の意味も分かってくるのかも、と。なんだかそのへん、灼眼のシャナ、彩雲国物語、等と同じ問題を抱えてるような気が。

妙な単語をやたら作りたがる・使いたがる作家さんってたまに居るけど、映像化する時、困るよなあ…。

ラノベ原作のアニメ化企画は、今後も増えると思うけど。原作内で使われる膨大な独自用語(?)を、映像ではどのように理解・把握させるのか、その手法について、アニメ業界には課題が突き付けられている、と個人的には思っていたり。

用語と言ってもピンとこないか…。説明に適してるか分からないけど。例えば、昨今流行り(?)の「怪異」なる単語で説明すると。小説では「怪異」と書けるから、読者にもイメージが伝わるけれど、アニメでは「カイイ」という音の響きにしかならないので、視聴者は、「カイイ? 何ソレ?」と困惑する羽目になる。台詞内の単語で一々引っ掛かると、作品を楽しむどころではなくなるわけで。

これがもし新房作品なら、臆することなく画面にドーンと「怪異」の文字を表示したり、黒板に書いたりしちゃうと思う。「なるほど、そういう単語か」と視聴者は把握できるので、その後はすんなり作品に入っていける。

実写作品だけど、仮面ライダー響鬼も同じことをしてた。怪人の呼称について、画面にドーンと「魔化魍」の文字を表示してた記憶が。 *1

そんな感じで、このあたり何かしら工夫しなきゃいけない。と思う。 やり方はなんでも構わないから、技を発見しないといけない。

新房監督とその仲間達は、技を会得しつつある気がするのだけど。でも、他作品では、技を見つけようという気概すら見えないことも多く。技を見つけようとしないということは、作り手に、伝えよう、理解してもらおうという気持ちすら無いことの証明だから、あまり良い傾向ではない。

いや、そもそも、そんな面倒臭いラノベはアニメ化しないのが一番手っ取り早いのか。というわけにはいかんよな… (´・ω・`)

単語数が少なければ、文字ドーン方式その他も使えるんだけど。単語が多過ぎると、手の付けようがないよな…。例えば、ホラなんとかで文字ドーンをやったら、画面が文字だらけになりそう。

いっそ、無声アニメにして、台詞は全部字幕に…。嘘です。アニメなのに、ゲームっぽくメッセージ窓を常時表示して…。嘘です。

何か手は無いのかな。「その手があったか!」と感動してみたいものですが。

まあ、宿題ですわな。アニメ業界に出されてる宿題。てなことを思いながら視聴させてもらってます。

昔のアニメはそのへんどうしてたっけ。 :

ラノベ原作アニメ、と言うわけじゃないけれど。

例えば、ナウシカの「フカイ」「キョシンヘイ」「オウム」は、どの時点で、観客の脳内に辞書登録してたんだろう?

「フカイ」は、タイトルロゴを出す直前、説明文を画面に出すところで、「腐海」の文字を見せてたっけ? 記憶が怪しいな…。「キョシンヘイ」「オウム」は、本編中で最後まで、文字を見せてなかった気がする。

でも、ナウシカの場合、実物を見せながら「○○だ!」と言わせてた。
  • 「腐海」に沈んだ村を歩くユパ様が、「この村も『フカイ』に沈んだか…」
  • 「巨神兵」の繭?を目の前にして、ユパ様とミト爺が、「『キョシンヘイ』が掘り起こされたというのだ」「すると、これが…?」
  • 「王蟲」の抜け殻を目にしたナウシカが、「なんて綺麗な『オウム』の抜け殻」
実際の台詞は違ってるだろうけど、そういうことをやってた。観客が、「ああ、この世界では、これを○○と呼んでんのか」と理解さえできれば、どんな漢字がついてるのか分からなくても問題は無いだろうな、と思う。

富野アニメは、どうだろう…? 基本的に、独自用語はカタカナだけにしてることが多いので、そもそも漢字・文字を見せる必要が無い。…たぶん、これも、技なのだろうと思う。

それでも、自分が子供の頃は、「モビルスーツ」「ニュータイプ」「サイコミュ」「デスドライブ」あたりで引っ掛かってた記憶があり。

「ニュータイプ」は、シリーズ中盤、マチルダさんとブライトさんの会話で、「エスパーみたいなもの」とぶっちゃけてる。でも、これは映画版だけだったかも? 記憶が怪しい。それに、ニュータイプが実際に出てくるまで時間が空いちゃうので、その頃には視聴者は設定を忘れてる。しかし、後半アムロがどんどん強くなり、それに伴って「ニュータイプ」「ニュータイプ」と周囲が言い始めるので、「凄いパイロットのことなんだろうな」ぐらいは伝わるのだと思う。

「デスドライブ」は、映像を見て、「ヤマトのワープみたいなもんかなあ」と思った記憶がある。後に、ロマンアルバムを読んで、ワープとは概念が違うのだと知ったけど。そんなの知らなくても、やっぱりワープみたいなもんだと思っておけば問題無い。これは、既に知られている概念・設定を利用して、混乱を少なくした事例、なのかしら。「ニュータイプ」を「エスパーみたいなもの」とぶっちゃけてるソレに、少し近いのかもしれない。

「マグネットコーティング」は、全然引っ掛からなかった記憶がある。おそらく、アムロのスピードにガンダムがついていけない、という問題を提示して、それに対する解決策を、技術者が登場して説明する、という流れが良かったのかなと思う。実際には何やってるかさっぱりわからんけど、「油を差すようなもんだ」と言ってたような気もするし。

なんとなくだけど、比喩を上手に使って説明を済ませた場面が多い、のかな…。

しかし…。何かのバラエティ番組で、ガンダム芸人さんが、「ロボットのことをモビルスーツって呼ぶんです!」と、一般人のゲストに向かって叫んでた映像を目にした記憶もあり。そういう説明が必要な時点で、結構危ないのだと思えたり。ガンダム芸人さんが、なぜ叫ばなければいけなかったのか、それを鑑みると。独自用語を1つ増やすたびに、お客さんが作品から振り落とされそうになっている、ということぐらいは意識したほうがいいのかもしれない。

宮崎駿監督も、富野監督も、その他、尊敬すべき先輩方も、ちゃんとそういう危機感を持ってアニメを作ってた。特に昔は、アニメ=子供の見るもの、だったから、今以上に気配りが必要だったのだろうと想像するのだけど。

先輩達は、色々な技を発見してきたけど。さて、現役世代は、どうだろうなあ…。まあ、数が少なければ、先輩達が発見した技を使ってどうにかなるんだろうけど。数が多くなると…。この量は、先輩達の時代には、ちょっと無かったよねえ…。

いっそ、東映アニメの動画枚数制限のように、「1話につき独自用語の使用は○種類まで」の制限を脚本家に課してしまうとか。…気配りできる演出家・脚本家なら、そんな制限は不要だろうけど。気配りできない・技を見つけようとしないスタッフしか居ないなら、規則を強制して解決するしか…。いや、そこはやっぱり、自発的に何かしらの技を見つけてほしいような気も。

まあ、宿題ですわな。

*1: 響鬼のソレは、筆文字というデザイン性を活かして、視覚的にもおどろおどろしい感じを伝えていた。仮に文字が読めなかったとしても、なんか気味が悪いモノなんだなと、低年齢の視聴者にも雰囲気で伝えようとしていたのかしら。…いや、待て。OPで、主人公の名前その他も、同じデザインで表示してたから、そういうわけではないか。単にそのほうが和風ムードが出るから、かな…。

#3 [anime] アニメの中で説明できる量について最近思ったことをメモ

もやしもんリターンズの1話を見て、これはちょっとギリギリか? でもないか? このくらいなら大丈夫か? もうちょっとイケるか? 無理か? と少しハラハラドキドキしたり。

何がギリギリ? 説明できる量が。

アニメは、説明することに長けている表現手法。と、自分は思っているけれど。しかし、アニメは、時間制御できる表現手法でもあるから、説明できる量には限度がありそうだな、てなことを、件の作品を見ているうちに思ったり。

それぞれ説明が必要かしら? 自分もそのうち忘れそうだから、一応メモしておこう…。

アニメは説明することに長けている表現手法。 :

前にも書いた気がするのだけど、記事が見つからなかったので、一応メモ。

例えば、ニュース番組や教養番組で、少し複雑な事故・事件・知識等を説明するときは、ちょっとしたアニメが挿入されたりする。なんでアニメが出てくるのか。アニメを使うと説明が分かりやすくなるから。

そもそも、日本で初めて作られたアニメは、教育目的で作られたらしい。子供達に科学知識を教える際に、アニメを使うと分かりやすく説明できる、てな効能を見出されたのだとか。東映動画が誕生する、少し前の時代の話。

ということで、実際に使われている場面を眺めると、アニメは説明することに長けている表現手法、と言えるのではないかと。

アニメになるとどうして分かりやすくなるのか。これは自分の勝手な仮説だけど。
  • 動きを表現できる。動きとは、時間の変化に伴った、状態の変化のこと。
  • 説明する上で邪魔になる視覚情報を、デフォルメ・記号化を通すことで、消去することができる。肝の部分だけ、見せることができる。
  • 「読み聞かせ」ができる。
  • etc.
どれも、アニメ特有の強みというわけではないけれど。時間、絵、音を操れる総合芸術だからこそ持てる強み、ではあると思う。

ついでに、飛躍した極論も書いてしまうけど。アニメを使っているのに上手に説明できないということは、そのアニメを作った人達が、説明すべき内容を理解できてない証拠。もしくは、作った人達が、アニメを愛してない。アニメという表現手法と真剣にお付き合いしてないから、活用できないのだろうなと。自分の勝手な極論ですけど。

しかし時間制御する表現手法には量に関して限界がある。 :

アニメは説明することに長けているけれど。しかし、作り手が時間を制御できる表現手法でもあるので、説明できる量には限界があるよな、と。

作り手が時間を制御できない、小説や漫画と比較すると、分かりやすい気がする。
  • 小説や漫画は、時間の制御を、読者が行う。理解が遅い読者はゆっくり読むし、理解が早い読者はガンガン読み進む。一人一人の理解速度に対応できる。
  • 小説や漫画は、途中で引っ掛かる部分が出てきたときに、少し前に戻って読み返すこともできる。過去の情報を容易に参照できる。
  • 小説や漫画は、詰め込む情報量に自由度がある。ページサイズや文字数が許す限り、ギッシリ詰め込むこともできるし、逆に、特大の文字で台詞を一つだけ書く、なんてこともできる。
アニメでは、どれも難しい。
  • アニメは、視聴者一人一人の理解速度に対応できない。作り手が設定した速度以外にはならないから。
  • アニメは、作り手が仕込まない限り、過去の情報を参照できない。
  • アニメは、フレームという制限、TVという解像度の制約があるので、詰め込める視覚情報の量に制限がある。
  • アニメは、音声を流すので、一定の時間内に詰め込める台詞の量に限界がある。
  • etc.

例えば、もやしもんは漫画が原作だけど。漫画版では、教授がやたら長々と農学について説明するコマがある。アニメでは、そういう表現は無理。説明するためには、その音声分の時間が必要になるので、下手すると教授の説明台詞だけでAパートが終わってしまう。しかしこれが漫画なら、たった1コマ、吹き出しの中にビッシリ細かい文字で書き込んで、読者に情報を与えることができる。その上、読者がその気になれば、その説明を一字一句漏らさず読んで理解することもできてしまう。…いや、もやしもんの件のコマは、どう見ても読み飛ばすこと推奨なのだけど。そこに書かれた大量の文章を、読もうと思えば読めてしまうのが、時間制御をユーザに任せている表現手法の強み。アニメでは、そういうのは無理。

アニメは音楽と同じ。提示した情報は、どんどん流れて消えていく。

作り手が時間を制御できる表現手法は、理解させられる量に関して限界がある。オーケストラの楽器音の一つ一つ、合唱団の一人一人の声を聞き分けるのは、素人には無理。

もっとも音楽は、漠然と全体を感じることができればそれで娯楽になるけれど。アニメは、そういうわけにはいかない。いや、そういう状態で問題無い場面と、問題がある場面が混在している。それがアニメ。

説明することに関して、そういう難しさが、アニメにはあるよなと。分かりやすい形で伝えられるけど、提示できる情報量には限界がある。感じさせることはたやすいけど、大量にしっかりと一度に全てを理解してもらうことは難しい。

このへん、アニメに限った話じゃなくて、映像コンテンツに共通する話なのだけど。

そんなこんなで。 :

「もやしもんリターンズ」を見ていると、説明できる量や、説明する速度について、どのへんがギリギリのラインか、絶えず意識しながら作ってるように思えるので、好印象でしたよ、と。アニメという表現手法と悩みながら付き合ってくれているんだな、みたいな。まあ、漫画原作があの情報量だから、そうせざるをえないよ、と言われそうな気もするけれど。

「氷菓」も、同じような理由で好印象。謎について説明する際に、アニメの強みを活かした説明を模索しているように見える。巷のアニメのほとんどが、「読み聞かせ」しか使わない怠惰ぶりを見せる中、あの手のこの手で状況を説明しようと試みている。心意気からして違う。原動画の細やかさもそうだけど、京アニは、アニメ(あるいは映像表現)を愛してくれている人達が集まっているんだなあ、と感じて嬉しくなるわけで。

自分は薄いアニオタだけど、それでも一応アニメが好きなほうなので。アニメの強みや弱みを意識しながら作ってる作品群を見ていると、それだけでなんだか嬉しくなってしまうのでした。みたいな。

そんなことを思いましたよとメモ。

2011/07/19(火) [n年前の日記]

#1 [nitijyou] コンビニまで買い物に

台風が近づいているので外は雨。大気中の放射性物質が水滴に混ざって落ちてくる。のだけど。台風が本格的に来たら歩きで外出できなくなりそうなので今のうちに煙草を買いに。

数人の中学生が雨に濡れながら歩いている・自転車で走っているのを目撃。マズイ気がする。数年後には大変な事態になってるのではあるまいか。取り越し苦労ならいいのだけれど、おそらくそうはならない気がする。

2010/07/19(月) [n年前の日記]

#1 [pc] Amazonから5インチドライブケースが届いた

サイズ 鎌蔵2 5IDEブラック、KMZ2-5IDE-BK。2,961円。IDE接続の5.25インチ光学ドライブをUSB外付けにできるドライブケース。

一時期は、この手の製品が何故か市場にほとんど無くなってしまい、微妙に困ってたのだけど。なんとか手に入ったので一安心。

早速、部屋の中に放置していた IO-DATA DVR-AN20GL (実体は Sony Optiarc AD-7203A)を組み込んでみたり。ケース側の設計に関して不安を感じる箇所がいくつかあったけど、一応動いてくれた感じ。

ざっくりとレビューを。

#2 [pc][window] 親父さんPCの引っ越し作業を始めた

Windows Live メールをインストールしてみたら、やっぱり OutlookExpress のアドレス帳データを正しく変換できてなかった。姓と名が入っている場合は名前にして変換してくれるようだけど。姓と名が無く、表示名しか存在しない場合は、名無しさんになってしまう。約1年前にも「こりゃダメだ」と思ったけれど。相変わらずダメなままなのか…。>Windows Live メール。

どうも Windows Live 関連のソフトを作っている方々は、2軍3軍レベルの印象。一体どこに発注してるんだろう。いや、発注する際に仕様を決めてる人がダメダメなのかな。きっと英語はペラペラだろうけど、仕事ができない人物が担当しているんだろう…。

2009/07/19() [n年前の日記]

#1 [nitijyou] 腹痛で目が覚めた

なんだろうなあ…。

#2 [anime] ライダーディケイド+シンケンジャー後半の回を鑑賞

実はディケイドなんてライダーは要らないんじゃないか、誰からも必要とされてないのではないか、といった、ディケイドという企画そのものに対しての吐露のように聞こえなくもない台詞の数々がなんだか興味深かったり。電王の時の、「変身とは何ぞや」「別の意味で新たな変身は作れないか」等の発案の件と言い、企画の根っこのところまで一旦掘り下げて考えてみるあたりが、小林脚本の凄さ、なのだろうか。

にしても、よくぞ実現してみせたなと。>ライダー+戦隊シリーズ。劇場版ではなくTVシリーズ本編の中でやってみせたというのがまた素晴らしい。こういった企画はえてして劇場版でようやく実現することが多い印象もあるのだけど。親の都合で滅多に映画館に連れて行ってもらえない、そんな子供さん達であっても、TVの前できっとワクワクドキドキしながら見ていたのであろうなと想像すると、なんだか目頭が熱く…。

#3 [anime][comic] NHK-BS2でマンガノゲンバなる番組を鑑賞

日曜の深夜に、花咲ける青少年、グインサーガ、プラネテスを続けて流してるNHK-BS2。その3本の後に、時々、「マンガノゲンバ」なる、漫画家を紹介する番組が流れていて、気がついたときは一応見ているのだけど。今回は「クッキングパパ」なる作品を描いてる漫画家さんの回だった。

漫画を描く前に、まずは料理を考えて、実際に作ってみるという話が興味深かった。そういう試みは料理漫画だからこそできるのだろうなと。例えばコレが、料理漫画じゃなくてロリコンエロマンガだったら、とてもそんなことできないわけで。漫画ジャンルにおける、現実とファンタジーの境界というものについて、なんだか考えてしまったり。

2008/07/19() [n年前の日記]

#1 [anime] 時をかける少女を鑑賞

やっぱり面白い。でも、見終わった後、何が面白いのかと問われたら具体的に答えられないであろう自分に気づいてしまって、ちょっと考え込んでしまった。この作品の面白さって何だろう…?

#2 [iappli] 相変わらず参考資料を探していたり

斜め下や真下を捉えた写真がほとんどないんだよなあ…。

どうもセルアニメの背景画と同じ歪ませ方をしたBG画像を作らないといけないような気もしてきた。セルアニメの場合、1カット内でカメラが真下→真横→真上と180度の範囲内で動くとき、事前に、歪ませた・嘘のパースがついた背景画を描いたりするはずで。たぶんそれと同じBG画像になる予感。…ていうかソレ、コンピュータの計算で作ることはできないのかしら。

2007/07/19(木) [n年前の日記]

#1 [zatta] _指導者の身分に立つ人に名選手はいらないのではないか

たしかに…。 _(via 駄文にゅうす - 2007年7月)

アニメ業界で言うと宮崎駿だろうか。 :

と思ったけどどうなんだろう。

#2 [anime] 「地球へ…」TV版でソルジャーブルーが出てきたけれど

昨日か一昨日あたりにHDDレコーダに溜めてたソレを消化。ソルジャーブルーって、使えないヤツだな…。

ソルジャーブルー=発射台、だと個人的には思ってたんだけど。 :

以前、出渕氏がどこぞのラジオ番組?で喋ってたのを聞いた限りでは、原作者自身が、「長期連載になると判ってたらソルジャーブルーを残すのだった」と言っていたらしいし、出渕氏も残したほうがいいと考えたみたいなのだけど。TV版を見ている限り、あのキャラを残して一体何をさせるのかという点で、二人とも、さほど明確なビジョンを持ってなかったのでは、という疑念が湧いてしまったり。単に、美形キャラだから商売上の理由で残したほうがいいよね、では、考えが浅すぎるのではなかろうか。

劇場版におけるソルジャーブルーは、主人公というロケットを宇宙に打ち出すための発射台、もしくは、多段ロケットにおけるブースター部分 ―― 何段目と呼ぶのかわからないが ―― だったような気がする。そこで切り離されて地上に捨てられてしまうのだけど、肝心要の部分を押し上げてくれるだけでもう十分。そこでキッチリ役目を果たして舞台から降りていくからこそ、ロケットはより遠くへ飛んでいける、みたいな。…しかし、TV版のソルジャーブルーは、ロケットに発射台がくっついたまま離れない、てなすっきりしない感が。

残すなら残すで、もっと活用の仕方があるように思える。主人公に助言を与える役にするとか。…それは、占いをするお婆ちゃんがいたか。では、世代間対立を浮き彫りにする役とか。…いかにもな老人キャラが居たか。うーむ。それらポジションには既に別キャラが配置されているのだな。うーむ。

ヤマトにおける沖田艦長のようなポジションはどうか。未熟な若者たちに的確な指示を与え、成長を見守りつつ、地球に到着したときに何か名台詞を残しながら永遠の眠りに…。と思ったが、ヤマトの場合は乗員のほとんどが若者ばかりという特殊性があったからこそ、沖田艦長のようなポジションが成立したのかもしれないなぁ。

眠り姫よろしく、ずーっと眠り続けるソレを、何かの象徴として活用する道もあったのではないか、という気もしてきた。何を眠らせるのか。ミュウという新人類が持つ、特殊性の象徴であったり、憎しみや争い・人の持つ好戦的な部分・悪しきものとされる部分の象徴であったり、地球への憧憬の象徴であったり…。何かに関連付けて活かせたんではないか。難しいか。

竹宮恵子作品群の特徴の一つとして、作品中で世代交代を描く、てなところがあるのだけど。 *1 そのあたりを、よりハッキリさせるために、ソルジャーブルーを使えればなぁ…。いや、具体的方法は思いつかないのだけど。

まあ、これから活用されるのかもしれないし。できれば、「ああ、そうきたか。そういう使い方をするなら、残して正解だなぁ」と唸らせてほしいのだけど。さて、どうなんだろう。

*1: 「地球へ…」以外でも、そういう作品を目にした記憶が。宇宙船の中で世代交代しながら、目的の星に辿り着く、みたいな作品を読んだ記憶があるのですが。

#3 [jiji][zatta] 自衛隊とおにぎり

街角で拡声器を持って「戦争反対」「自衛隊廃止」を唱えてる人と、被災地で自衛隊の作ったおにぎりを食べた人とでは、自衛隊に対するイメージがまったく異なるのかもしれない。てなことをなんとなく思ったりもする。

まあ、自衛隊でなければおにぎりを作れない、というわけでもないだろうからアレなんだけど。

_野外炊具 - Wikipedia :

自衛軍より自衛隊という呼称のほうが、個人的にはいいような気がする。 :

外国に対して「俺達、憲法で、軍は持たないことにしてるから…。だからあくまで『隊』なんだよね」と宣伝して。海外に派遣したときは後方でひたすら水を配ったりご飯作ったり、そういうことしかしない。みたいな。そういう方向でのみ活躍しまくる姿ってのも、それはそれでカッコイイ気がする。個人的には。

国家単位での壮大な実験、なんだろうな。そんな手法で本当に切り抜けていけるのかと。誰もが「無理だろ」と思ってるんだろうけど。個人的には、特定条件下であれば成立するかもしれない、と思えていたり。

数百年後、世界中の歴史の教科書に、「こんな手法を試した国があった」と記述されるぐらいまで、実験を続けてみる価値はあるんじゃないか。成功するにしても失敗するにしても、後世の人たちにとって大いに参考になる実験なのではなかろうか、などと思ったりもするのだけど現地で危険に晒される隊員のことを考えるとそうも言ってられない事情もあるだろうし。色々と難しいんだろうな。

考えてみれば、太平洋戦争以前のソレも、ある種の実験と言えるのかも。物量と技術力がないと失敗するっぽい、というところまではたぶん判ったのだろうけど。上手くいかない方法を何度も試しててもしょうがない気がする。どうしてもその手法を再度試したければ、条件を色々と変えてみる必要がありそう。とはいえ、物量はどうしようもないし。技術力だって、飛行機すら作れない現状では。…別の手法を試したほうが、まだ望みがあるような気もする。

#4 [vine][epia][linux] EPIA機のssh設定

メインPCから操作できるようにしないと、作業がやりづらくてしょうがない。

コンソールから root でログイン。
apt-get install openssh
インストール済みだった。

インストール直後は、rootでログインできないような設定になってるっぽい? > Vine Linux 4.1。

特定ユーザだけ su が使えるようにする。 /etc/login.defs に、
SU_WHEEL_ONLY yes
を追加。

/etc/group 中の、
wheel:x:10:root
を、
wheel:x:10:root,hoge
という感じにして、su できるユーザを追加。

/etc/pam.d/su を編集して、
auth       required     /lib/security/pam_wheel.so use_uid
を追加。

/etc/hosts.allow を編集。アクセス可能なIPを指定。
sshd : 192.168.2.5
とか
sshd : 192.168.2.
とかそんな感じ。

/etc/hosts.deny を編集。
sshd : ALL
とか。/eyc/hosts.deny で全範囲を禁止して、/etc/hosts.allow で許可をする、みたいな感じらしい。

visudo で、/etc/sudoers を編集。sudo が使えるユーザを指定する。
# %wheel  ALL=(ALL)       ALL
のコメントを外して、
%wheel  ALL=(ALL)       ALL
に。最初の「%」はグループらしい。

/etc/ssh/sshd_config を編集。 *1
# rootでのログインを禁止
PermitRootLogin no

# パスワード無しのログインを許すか
PermitEmptyPasswords no

# パスワード認証を許可するかどうか
PasswordAuthentication yes

# ログインできるユーザを指定
AllowUsers hoge

参考ページ。 :

/etc/fstab も弄った。 :

_「余計なディスク書き込みを軽減させよう〜noatime編〜」 を参考に、noatime をつけた。
LABEL=/                 /                       ext3    defaults,noatime  1 1
none                    /dev/pts                devpts  gid=5,mode=620    0 0
none                    /dev/shm                tmpfs   defaults          0 0
LABEL=/home             /home                   ext3    defaults,noatime  1 2
none                    /proc                   proc    defaults          0 0
none                    /sys                    sysfs   defaults          0 0
LABEL=SWAP-hda3         swap                    swap    defaults          0 0
こんな感じに。

*1: /etc/ssh/ssh_config ではない。

#5 [epia][vine][linux] xorg.conf を設定して液晶ディスプレイでもちゃんと表示できるように

しようと試みてるのだけど。上手くいかない。RDT156M の画面に out of range の表示が。うーん。

_VESAのSetting on XFree86 :

うちの研究室に某飯△製の液晶モニターが入ったのですが, WindowsNTでは平気で映るのに,XFree86では全然映ってくれませんでした. どうもこの手の液晶モニターはVESAのSettingしかうけつけないようで, XFree86サーバで使いたい場合は,XF86Config に VESAのSettingでModelineを書いてやる必要があります.

VESAのSetting on XFree86 より

_gtf (Modeline算出コマンド) - Setting of X Window System(X.Org) on Linux box :

希望する解像度で起動しない場合、xorg.confのSection "Monitor"でModelineを記述して やるとうまく行くことが有ります。Modelineの各パラメータを求めるためには 非常に複雑な計算を行わなければなりません...と思っていたのですが、今は便利な コマンドが有るんですねぇ。

たとえば、横方向解像度 1600ドット、縦方向解像度 1200ドット、リフレッシュレート 75Hzで 表示したい場合、以下のように実行します。

gtf 1600 1200 75

Setting of X Window System(X.Org) on Linux box より

こんなコマンドがあるのか…。

_X.orgでWUXGA表示を行うためのメモ :

_High resolution display
_FC_5のupdate後の画面解像度
_X Window System

見よう見まねで xorg.conf に色々やってみたが、解決せず。うーん。

ふと、気になった。 :

BIOS設定で、TV出力を無効にしてみた。Xconfigurator で xorg.conf を再作成。

液晶ディスプレイに out of range が出なくなった。そういうオチなのか。トホ。どうやら TV出力を有効にしてると設定どおりの信号が送られなくなるらしい。> EPIA LN10000EG。

さて、どうしよう。TV出力を無効にしたままで使うか…。どうせTV出力しても、文字の判別は無理だし…。

#6 [vine][epia][linux] Backspaceキーが前の文字を削除してくれない

putty から ssh でログインして、screen + vi 使用中に Backspaceキーを押しても、「^?」と出てくる。

putty の設定で、Backspaceキーを押したときに「Ctrl + ?」ではなく「Ctrl + h」を送るように設定したら、意図通りの動作になった。

2006/07/19(水) [n年前の日記]

#1 [nitijyou] なんだか頭のスイッチが入らない

やらなきゃいけないことがあるのに。うーむ。

2005/07/19(火) [n年前の日記]

#1 [linux] _スラッシュドット ジャパン - 家庭用NAS+サインはVGA=デスクトップ機

_サインはVGAをつなげてみた - LANDISKがスタンドアローンLinux機に様変わり
_(via hard で loxse な日々)

なるほど。こんな手が。

スラッシュドットジャパンのスレのほうで、 _個人で立ててるWebサーバの負荷・回線飽和をどうやって改善するか の話が。興味深い。

_Webアクセスを速くするP2Pの新アプリケーション - Coral :

こんな仕組みがあるのか。

この記事へのツッコミ

Re: スラッシュドット ジャパン - 家庭用NAS+サインはVGA=デスクトップ機 by けいと    2005/07/20 19:10
回線が飽和するほどアクセスがあるだけ幸せなのかも。
Re: スラッシュドット ジャパン - 家庭用NAS+サインはVGA=デスクトップ機 by 名無しさん    2005/07/23 02:07
> 回線が飽和 = 幸せ

難しいところですな…。
実際そういう状態になったら「勘弁してー」みたいな気持ちになりそうな。

アクセス集中時の問題って、
転送量とサーバ負荷の2つの問題がありそうですね…。
サーバ負荷は設定次第で幾分改善できるところがあったりするのかもですが、
転送量はなぁ…なかなか難しい…
Re: スラッシュドット ジャパン - 家庭用NAS+サインはVGA=デスクトップ機 by mieki256    2005/07/23 02:08
しまった。名前を打ち込む欄を間違えた… (;´Д`)

#2 [nitijyou][pc] DVD-RやCD-Rを焼いたりHDDをデフラグしたり

何度デフラグしても断片化されたファイルが出来てしまうのは何故。

この記事へのツッコミ

Re: DVD-RやCD-Rを焼いたりHDDをデフラグしたり by けいと    2005/07/20 19:12
デフラグソフトがワークとかテンポラリに使う領域として
細切れになった部分を占領するから、っていうオチだったりして。
Re: DVD-RやCD-Rを焼いたりHDDをデフラグしたり by mieki256    2005/07/23 02:10
> ワークとかテンポラリに使う領域として細切れになった部分を占領

なるほど。そういう状況だとしたら、何度やっても断片化してしまう…
デフラグに「最適化の必要はありません」と言われたら、
そこでやめとくのが吉、ですかな。

#3 [nitijyou] 夕方、「ボールが庭に入ってしまったので取らせてください」とどこぞの子供さんが言ってきた

うわ。懐かしい。自分も子供の頃、よく人様の家の庭にボールを入れちゃったっけなぁ。

ということで、「どうぞどうぞ」と快諾。少し時間はかかったけど、ボールも見つかったようで何より。…いいなぁ。子供。言葉を交わしてると、なんか楽しくなってくるな。

2004/07/19(月) [n年前の日記]

#1 [windows] LAN内でリモートアシスタンス機能を使ってみたいのだけど

WM5.0 から、「リモートアシスタンスを要求」しても、使えないのであります。使える条件は何でせうか。

_Windows XPスマートチューニング 第3回リモートデスクトップ接続のポート番号を変更する :

Windows Messengerのリモートアシスタンスやリモートデスクトップは基本的にポート 3389を使っています。
ふむ。

_リモートアシスタンス :

ふむ。

「リモートアシスタンスの招待」をファイル保存して :

別PCに渡したら、リモートアシスタンスが使えた。相手先PCの画面は見れるし、ファイル転送もできるし、チャットもできる。つまり、LAN内でもリモートアシスタンス単体なら使えると。しかし、WMから呼ぼうとすると使えない。何故。

ひょっとして、WM で、インスタントメッセージが送信できない・ファイル送受信ができないことと関係があるのだろうか。WM からリモートアシスタンスを使う場合、WM のファイル転送機能で、「リモートアシスタンスの招待」ファイルが渡されているとか。そういう仕組みであれば、WM自身のファイル転送機能が使えていない現在、失敗するのは当たり前。などと勝手な想像。

リモートアシスタンスはかなり便利そう :

電話でPC操作を指示したりする場面が、今まで何度かあったのだけど。そういった場面でコレを使えたら、絶大な効果を発揮しただろうなと思ったり。相手の画面を見ながら音声で指示が出せるし、いざとなれば、自分で操作して各種設定ができる。随分楽だろうな。…セキュリティ云々が気になるけど。

#2 [windows] LAN内においてWindows Messengerからリモートアシスタンスその他を使いたいのだけど

ということでそっち方面を調べる也。

_Windows Messenger の既知の問題について :

テキスト、絵文字チャット機能を使用HTTP サーバーと Socks サーバーの両方が、同じポート 80 を開いていること
ボイス チャット、ビデオ チャット機能UDP 5004-65535
ファイル転送機能TCP 6891 〜 6900
ホワイトボード、アプリケーション共有機能TCP 1503
リモートアシスタンス機能TCP 3389
ふむ。

_鈴木直美の「Windows Messenger使用記」 :

メッセージのやりとりは、常にMessenger用のサーバーを介して行なわれる。接続するサーバーのポートは1863番(TCP)なので、このポートに対する内部から外部の接続が制限されていない限り、双方がルータの内側にいる場合でも、メッセージをやりとりすることができる。他の機能はいずれも、このコネクションをベースに必要な手続きを開始するため、メッセージのやりとりが成立しないと、Windows Messengerの全機能が停止する。
ということは、ウチの環境は、Messenger用のサーバが存在していない・TCP 1863 を流れるデータ(?)を処理できてない状態、ということなのかしら。しかし、音声チャットとホワイトボードは使えているのが不思議。音声チャットは PartySIP がどうにかしてくれてるのかもしれないけど。ホワイトボードは誰も面倒を見てくれてないような。なのに、どうして使えるのん?
<リモートアシスタンス>
単体で利用する場合には、アシストしてもらう相手をメールで招待し、ポート3389(TCP)に接続してもらうが、Windows Messengerで招待した場合には、3000(TCP)番台のポートを使って双方から接続し合い、適当なところに落ちつくようだ。一方の要求が通れば接続できるルーズな仕様(というかソフトの性格上なんとか接続しようと頑張ってくれている)なので、どちらか一方がグローバルアドレスであれば接続できる。ただし、リモートアシスタンス内の音声通話はSIPを使用するので、Windows Messengerの音声・ビデオ通話と同様の制約がある。
リモートアシスタンスを単体で呼び出す場合と、WMから呼び出して使う場合は、動作が違うらしい。その動作の違い故に、WMからはリモートアシスタンスが使えないのだろうか。

_さらに複雑な設定が必要なリモートアシスタンス :

_Windows Messengerの救世主として期待されるUPnP
もしかして。WMは、ルータに、WAN側のグローバルIPを問い合わせ、そのグローバルIPでやり取りしようとしてるのでは。そうなると、LAN内のPC同士では使えない状態になるような。であれば、UPnPとやらを無効にすれば。ということで、 _Corega のサイトのFAQ。
Q. WindowsXPでUPnP機能を使用可能・使用不可能にしたいのですが、方法がわかりません。

A. WindowsXPのスタートメニューにて、[スタート]→[コントロールパネル]→[パフォーマンスとメンテナンス]→[管理ツール]→[サービス] で表示されているローカルのサービス内『 SSDP Discovery Service 』を右クリックして「開始」・「停止」させて下さい。
試してみた。…WM5.0の動作に変化無し。関係ないや。

もしかして、ルータを介してるから動作しないのかな。HUBだけで繋いだら結果が変わるだろうか。

_Windows/MSN Messenger,1カ月前から接続障害 :

また一部では,「Online」から「Away」へなど,ステータスを変更できなくなる問題が散発的に発生したり,本当は接続しているのに,オフライン状態に見えるといった現象も起きている。
オンライン、オフラインの状態が反映しないのは、ウチの今の環境でも起きてるような。WMそのものに問題があるのかしら。

_ReAIM - AOL Instant Messenger Proxy :

MSN Messenger のファイル転送にも有効らしいのでメモ。 _(via kinneko home/LinuxUPnP)

_MSN Messengerのファイル転送障害 :

こうやって解析していくしかないのですか。とりあえずパケットキャプチャとやらを行えるツールがないと。うーん。

_Windows XP の Windows Messenger : ファイアウォールおよびネットワーク アドレス変換での動作 :

「2台のクライアントが UPnP 対応ゲートウェイの背後にある場合」の解説を信じれば、LAN内のPC同士でWMの機能は利用できるはず。

試してみた。MSのサーバにサインイン。LAN内のPC同士で、
  • インスタントメッセージの送受信。
  • ファイルの送受信。
この2つはOKだった。万歳。他の機能はまだ未確認。

なるほど。MSのサーバにサインインすることさえ耐え忍べば、LAN内のPC同士でもWMの機能は使えるのですな。

しかしコレ、例えば社内LANの中だけで使いたいと思った場合はどうすれば。お仕事に使うのに、一々MSにサインインしてられないよなぁ。…そのために必要な製品をMSは販売してるはず。む。 _Live Communications Server 2003 とやらがソレですか。いくらぐらいするのだろう。…わ。 _13万 ですか。かつ、Windows Server 2003 上でしか動かないのか。…5CALって何だろ。5人まで同時に利用できるとか、そんな感じかしら。…違った。 _ユーザCALとデバイスCALがあるらしい。 面倒臭いなぁ。

MSのサーバを介さずに、LAN内だけでWMを使おうとした場合、これらが必要になるのでありますか。何も知らずにジタバタしてたオイラが無謀・無知でした。orz

_LCSをいぢる :

ふむ。

それにしても :

「WMってどんなもんなんだろう」と疑問を持ったばかりにこうして数日を無駄にしたわけですが。オイラですらこんなに時間がかかるのに、コレ、PC初心者が即座に使ってリモートアシスタンスで云々とかできるのかしらん。結局、「面倒臭い」「電話で聞いたほうが早い」「ウチに来て教えてよ」という話になりそうな予感。(;´Д`)

この記事へのツッコミ

Re: LAN内においてWindows Messengerからリモートアシスタンスその他を使いたいのだけど by けいと    2004/07/21 19:32
リモートアシスタンスしてもらう準備が出来るような人は
そもそも初心者的質問はしない…

と、私の脳内では答えを出しています^^;
Re: LAN内においてWindows Messengerからリモートアシスタンスその他を使いたいのだけど by mieki256    2004/07/22 16:54
> リモートアシスタンスしてもらう準備が出来るような人は
> そもそも初心者的質問はしない…

私も同感です… (^^;
せめて、メーカのサポートに電話をする行為より、
簡単に利用できるように、改良されないものかしらん。
Re: LAN内においてWindows Messengerからリモートアシスタンスその他を使いたいのだけど by けいと    2004/07/22 22:25
私の乏しい知識での発想ですが…

どうしても前提条件が厳しいです。

前提条件:
初心者ユーザーはADSLモデムや光ONUとパソコンが直結してある。
つまり、ISPからリースされたIPアドレスを持っているのはただ1台のパソコン。

ソフト的にマルチセッションを張れればいいので、
フレッツスクエアみたいに
第2セッションはメーカーのサポートにセッションを張る
メッセンジャーのようなソフトを導入。

「困ったらこのボタンを押してね」というどくろマークのボタンを押すと
第2セッションを張る。
そのソフトは裏でリモート脚スタンスのセットアップを開始しておく。

メーカー側は次々にログインされるメッセンジャーの名前を見て
ユーザーに質疑応答しながらリモートアシストをする。

終わったらメーカー側からセッション切断。
だめかなぁ???
Re: LAN内においてWindows Messengerからリモートアシスタンスその他を使いたいのだけど by mieki256    2004/07/24 00:02
> 初心者ユーザーはADSLモデムや光ONUとパソコンが直結してある。

私がPC操作を教えにいった、PC初心者の方々の環境は、
大体がこの条件に合致してるので、
ここはそれほど問題はなさそうな気がします。

PC初心者でありながら複数台のPCを所有してる方って居ませんし。
ネット接続も、まずは最低限のコストで始めてる感じだったりしますし。

ただ、NTTあたりが、セーフティなんちゃら等の機器を
PC初心者に売りつけてたりすると、ちと状況が変わってきそうな予感。

メーカによるサポート云々は、
たしか既に、有償で始めてるメーカがあったような気も…。
ちとそのへん、後で調べてみやうかなー、と。

#3 [windows] _Regnessem

マルチアカウント・マルチプロトコルを同時に扱えることを目標に開発されている、インスタントメッセージクライアントソフトです。基本構成ではMSN メッセンジャーサービスに接続することができます。
こんなソフトがあったのですか。知らなかった。

#4 [windos] _Windows Messenger Ver6.0対応

Corega WLBAR-54GT の製品紹介ページ。Windows Messenger って、現時点で 6.0 が存在してたかしら。 *1
*1: MSN Messenger 6.0 と間違えてるだけかな。

この記事へのツッコミ

Re: Windows Messenger Ver6.0対応 by けいと    2004/07/21 19:38
WindowsメッセンジャーはWinXP内臓
MSNメッセンジャーはダウンロードするやつ

・・・だったような。

こんな感じらしいです。ほんとかな?
http://blog.livedoor.jp/takatan05fld/archives/4335590.html
Re: Windows Messenger Ver6.0対応 by mieki256    2004/07/22 17:04
> こんな感じらしいです。ほんとかな?

なるほど。
リモートアシスタンスが無いとしたら、ちとアレですねぇ…

しかし、
http://www.kyocera.co.jp/meteor/goods200/spec200/upnp.html
を見ると、使えると書いてあるし…
MSN messenger で、リモートアシスタンスは、
使えるのか、使えないのか。さてはて。
これは一旦入れてみるしかないのだろうか。

まあ、どちらにしても、双方がWinXPじゃないと
使えないみたいですな。(;´Д`) >リモートアシスタンス。

#5 [linux] _Yet Another 仕事のツール 第17回TeamSpeakで音声通話 - TeamSpeakサーバのインストール

色々あるのだなぁ。

#6 [windows] _UPnP 関連

スゴイ量。勉強になります。

2003/07/19() [n年前の日記]

#1 [pc][digital] 音声通話に不具合が

ノイズが入ったり、音声が途切れたり、電話が繋がらなくなったり。

親父さんがNTTに電話、不具合を訴えた。作業員の方が来訪。マルチ回線 *1 を外してから来たとの事。作業員の方自身が行った最初の確認通話でノイズが入った。しかしその後、数度確認通話をしてみるもノイズは入らず。局側からの回線調査 *2 でも問題は無いらしい。三人 *3 とも首を捻る。

とりあえず様子見。また不具合が出たら連絡するということに。

その後、自分でも177にかけてみた。一瞬音声が途切れたように聞こえたが、しかし再度かけてみると問題無い。…うーん、わからんなぁ。

試しにADSLの速度も確認してみたり :

下り1Mbpsだったのが2Mbpsに。驚いた。実は何も作業をしてないのではと怪しんでいたが、マルチ回線外しとやらの作業はたしかにしていたらしい。疑って申し分けない>NTT。が、しかしわからん。音声通話の不具合は残ってるのか、残ってないのか。どっちなんだ。速度が出ても音声が途切れたままでは喜べない。

そういえば外は雨 :

雨が降ると問題が起きたり、なんてことはないのだろうか。どこかに水が入りこんで云々とか。でもソレ、ショート云々で機器が壊れそうな。それとも水滴が滴り落ちるほどの短時間であれば問題が無いのか。…そのへんの可能性について作業員の方に尋ねてみれば良かった。失敗。いや待て。不具合の起きた日の天気を記録しておけば良いのだな。雨が降った時に不具合が起きてればソレだし、晴れの日に起きてたらソレではないのだろう。

*1: マルチ回線って何だ?
*2: 損失でも測ってるのだろうか。
*3: 作業員の方。親父さん。オイラ。

#2 _コラムのタイトルがわからない

けど面白かった。 _本を読まない人ほど日本語が乱れてると思ってる話 とか _少年犯罪が増えるのは子供達が未来を感じてるからではないか とか。後者はゆうきまさみがNewtype誌で似たような事を書いてたかもしれず。大人達の疲れた姿から自分達の将来の暗雲を動物的嗅覚で感じ取った子供達は、自暴自棄になって刹那的に暴れるか、諦めて感覚を麻痺させて淡々と日常を送るかの2パターンしかない、みたいな。 _(from L.L.L@online pn)

#3 [pc][web] ネタ元サイトを今まで(src)と書いてたんだけど

やはりサイト名もちゃんと書いたほうがいいのではないかと思い直したりしたけどサイト名もコピペするのが面倒臭かったりしてとはいえページタイトルとURLをまとめてコピペできるSleipnirのスクリプトでも書けば問題無さそうな気もしてきたけどそれも面倒臭いなと思ってたらSleipnirに同種のスクリプトが既に用意されてた事に今頃気づいてコレ使えば良かったのかアホだな自分と激しく恥じてしまったそんなサタデー。

ニュース系サイトもアンカーをつけて欲しいなと思ったり :

一行コメントが面白い時はソコに直接リンクを張りたかったり。しかしアンカーがあると、「まとめて選択」→「開く」等してる閲覧者にはうっとおしいかもしれず。うーん、色々問題があるのかもしれないなぁ。

ネタ元のサイト名を記述するのは「礼儀」以上の意味を持ってないような感も :

例えばサイト名だけ目にしてそのサイトに興味を持つ閲覧者ってどれだけ居るのだろう。 *1 となるとサイト名記述は閲覧者にとって意味のある行為ではなくサイト作成者の間でのみ意味のある行為ということになるのだろうか。

かといって閲覧者にとっても意味を持たせようとすると、閲覧者にとって嬉しい情報…そのサイトがどんな情報を主に扱ってるかについてまでリンクを張る側が記述する必要が出てきて、それはそれで負担が増えて現実的ではないだろうし。

将来的には、リンク情報の中に、リンク先ページの概要みたいなものも含まれたりするんだろうか。たぶんソレは、リンクを張る側が逐一書いたりするのではなく、ブラウザがリンク先を先読みして、サイト・ページ作成者が記述した概要情報を取得・表示したりするんだろうな。でないとやってられない。…もしかしたら、既にそういう規格が決まってるのかもしれないけどそのへんよく知らなかったり。

*1: 例えば「void DummyFunc(void);」とか「mieki256's diary」という名称を見て興味を持つ? 持たないよなフツー。「エロエロだよ!」とかコメントついてれば興味持つかもしれんけど。

#4 [pc][web] メールの全文引用

_「ネットで使う文章の改行位置」 の、「メール全文引用」について、むむ?と。

アレは、相手がメールの内容を失念してたり、メールを削除してた場合に起き得るトラブルを事前に回避する為の策だと思ってたけど。「印象」云々以前の話と言うか…如何にして双方確実に伝達事項を把握するかを重視した、トラブル予防策、責任回避策、ビジネスマン同士の自己保身策ではないのかなと。 *1

例えば、一日数十件以上のメールをやり取りしてる人物に対して、「先の件OKです」だけ書いたメールを送ったらどうなるか。…危険極まりない行為ではないかと。相手が「先の件」を忘れてる可能性がある。膨大な数のメールのやり取りをしてるんだから、人間、確実にいくつかは忘れてる。ロボットじゃないもの。忘れてる中に「先の件」が入ってたらどうなるか。「先の件」を相手はどうやって探すのか。チクチクと送信済みboxを探すの? もし送信メールを既に削除してたら? 別のメールの内容と混同しちゃったら? …ミスが起きそうですよ、コレ。 *2 もちろん「全文引用」ではなく、「適切な引用」をしてればそういう問題は避けられますが。しかし…その「適切な引用」作業を数十件以上のメールに対して全部やれと? *3 …鬼だ…。 *4

別の意味で想像力が無いような気も :

メールマナー云々については、「大量にメールをやり取りしてる、とても忙しい人物に、この内容のメールを送ったら、相手は実際どういう状況に遭遇するのか?」 *5 について想像力を欠いた主張が多いような。一見想像力を働かせ、相手の事を考えて、良かれと思ってしたつもりが、別のところを見落としてる事で、違う危険性を孕んでしまってる…事が多いような気もしたり。

…もちろん、先の「全文引用も別におかしくないじゃん」という話は、相手が「忙しい人」「大量にメールをやり取りしてる人」 *6 という条件下においての話で。「一日に数通しかやり取りしない人」「送信メールの内容を絶対に忘れないロボットのような人」「私だけ特別扱いしろ・その他大勢と一緒に扱うなんて許せんと思ってる人」に対して、全文引用とか返してたらウザがらたり嫌がられたりするのは当たり前だとは思うんですが。 *7 *8

どうもメールのマナー云々は :

合理性から来る主張と、感性・印象から来る主張がゴチャゴチャしてる感も。これまでは帯域・閲覧環境云々の視点から「こうしたほうがいい」と取り決めが比較的容易にできてた部分もあるのだろうけど、一般ユーザが増えるに従って後者の主張…非合理的・非効率的・印象重視・感情重視の主張が増えてきてるような感も。 *9

…手紙や電話と同一視されやすいあたりにも、この手の混乱の原因があるのかな。わからんけど。

とはいえこういった事は、技術でどうとでもなりそうな気も :

例えば全文引用云々は、メーラ上で送受信メールを、MLのスレッド一覧表示っぽく、視覚的に関連付けて表示・扱えれば不必要になるような気も。 *10 別に人間様がチクチクやらんでも、関連機能を発案して実装しちゃえばあっさり問題解決するんじゃないのかしら。

しかしそんなメーラあるのかな。それに一般的に使われてるのは圧倒的にOEだろうし。高機能なメーラがあったとしても果たしてどれだけの人が乗換えるか、乗換えるだけのメリットを感じるか。やはり無料じゃないと普及しないのだろうし。…それに機能があっても「機能のついてないメーラの事も考えろ」とか言われるんでしょうね。HTMLメールみたいに。…技術じゃ解決は無理か。

ってあるじゃん!OEに! :

OE立ち上げて確認してみたらちゃんと機能があった。「会話別にメッセージをまとめる」にチェックを入れれば似たような事ができる。知らなかったヨ…。考えてたのとはちょっと違うけど、これはこれで便利そう。…いや、やっぱり「機能がついてないメーラの事を〜」と言われるか。根本的解決になってないなぁ。

あかん :

「会話別にメッセージを〜」、あかん。やっぱり送信メールと受信メールを混在して使えないと意味が無いや…。

*1: とかいいつつ、自分は全文引用していないけど。要は、やり取りの内容がお互いハッキリ把握できてればいいわけで。適度に区切ってその都度レスをしても充分目的は果たされるから、それが出来るのなら全文引用する必要も無い…はず。しかし、これはこれで自分に取って都合の悪い情報を意図的に削れるという悪しき部分もあるけれど。
*2: これだけやっても現実にはまだトラブルが発生するわけで。自分も痛い目見た事あったり。
*3: 受け取ったら大抵の場合返事を送らんといかんし。
*4: 「適切な引用」作業にかかる時間は内容によるので、どのくらいの時間がかかるかはわかりませんが。少なくともベタっと全文引用するより手間隙かかるんじゃないかと。
*5: 「どういう気持ちになるか」「どういう印象を受けるか」じゃなくて、その前の段階というか、事実関係というか。「現実の状況としてはどうなるのか」「その後当人はどんな作業を行う必要が出てくるのか」という話。
*6: あと「回線の状況が良い人」もあるのかな。
*7: とはいえ、「そんな事まで一々考えてられるかよこっちは毎日終電で帰る生活してんだよ数十通数百通のメールに対して全文引用じゃない書き方してたら午前中で終わるはずのメールチェック・返信作業が一日経っても終わらないんだよメール書きだけで俺を会社に泊まりこみさせる気かよ」という悲惨で洒落にならん状況も近年たくさんありそうな気もしたりするので(いや知らんけど)、「メールの全文引用なんてマナー違反だ」とか呑気なこと言えるぐらいに時間的余裕のある人間側が、「あ、コイツめっちゃ忙しいのだ。全文引用するぐらい忙しいのだ。そのくらい大量のメールに囲まれた仕事をしてるのだ」と察してやるしかないのでは…と思ったりもして。
*8: 個人サークルに対する同人誌の通販申し込みと似てるかも。アレって相手の手間隙を考えて、あらかじめ宛名シールに、自分の住所・氏名・あまつさえ「様」すら書いて送りますよね。アレの「様」と似てるような。個人サークルに対して「『様』を書き足せよ!それがマナーだろ!」とは要求できないじゃないですか。それでなくても切手貼ったり封筒に入れたりで大変なのに、更に数十、数百の宛名シールに「様」を書く姿・作業時間を想像すれば…要求してたら鬼ですよ。ていうか「様」書く暇があったらもっと漫画描いてもらったほうが読者としては嬉しいわけで。…それと同じかもと。「本来だったらこうすべき」というのはひとまず置いといて、いかにして相手側の手間隙を省くか(それが実現すれば自分にとっても利があるのだから)、そういう事を優先して考えたらこうなった、みたいな話じゃないのかなぁ>全文引用云々。
…あ。もしかして今は、個人サークルで通販なんてやらないの? オイラは学生の頃しか同人やってなかったから最近の事情は知らんのですが。自分がやってた頃はそんな感じでしたよ。宛名シールに「様」を書いてました。同人誌欲しかったから必死ッスよって何が必死なんだか。
*9: それらが悪いと言う事ではなく。誰だって気持ち良くメールのやり取りしたいのだからそういう視点も絶対に必要だし。ただ、元々そこに有った合理性を阻害して、実作業で苦しむ人が出てくるところまで、それら主張が声高に叫ばれるとなれば、それはちょっとどうなのよと。いや、全文引用の話だけじゃなくて。全般的に。
*10: 自分の送信メールを削除するとスレ全部が消えてしまう、となれば迂闊に削除等もしなくなりそうだし。

2002/07/19(金) [n年前の日記]

#1 IME2002

_最悪…コイツ開き直っとる…

2001/07/19(木) [n年前の日記]

#1 雷と猥褻物と歯磨き粉

涼しくなったなと思ったら、また雷雨。
PCの電源OFFにしないと。
セーブポイントが少ないとこういう緊急時に困る。


従姉のY姉様が来訪。
自分、寝癖だらけの頭で挨拶…


_「猥褻画像が保存されたHDDそのものが猥褻物であり、故に猥褻物陳列罪に処する。」
という最高裁判決が下されたそうで。

てことは、エロ漫画家なんかは「生きる猥褻物陳列罪」なのか。

脳と言うHDDにたんまり猥褻画像を記録してある上に、彼等の腕+紙+ペンという出力インターフェイスによって、時と場所を選ばず、それらわいせつ画像を容易に具現化し、不特定多数が閲覧できる状態を生み出せる。例えば飲み屋で割り箸袋の裏にそういうの描いて周りに見せただけでアウトか。いや、絵画はまた扱いが微妙に違うのか。しかし下手な無修正画像よりエロい場合も多いぞ。

や、冗談です。
「生きる猥褻物陳列罪」というフレーズが気に入っただけ。

しかしコレ、偽装してたりパスかけてたらどう扱われるのだろう。フツー見れないぞ。
つか、会員制の時点で「不特定多数」じゃなくて「特定〜」のような気も。うーん


歯磨き粉を変えたら口の中がヒリヒリする。

2000/07/19(水) [n年前の日記]

#1 マンガ人生

普段は取らないような行動をとると「雨でも降るんじゃないの?」と周りにからかわれたりしますが。

いいかげんに今日こそ床屋に行こうと外出の準備を始めたら、突然物凄い雨が降り始め、雷まで…ウヒャー
これじゃマンガだ。
もしや私は「マンガくん」ですか?

こんな調子が続いてしまったらどうなるんでしょう。

道を歩くとバナナの皮で滑って転ぶ。
机の引出しから青くて丸い未来のロボットが来訪。
異世界に呼び寄せられて戦争に参加させられつつも可愛いお姫様とラブラブに。
虎縞ビキニのグラマーな美少女宇宙人に「ダーリン」と呼ばれ同棲するはめに。時々電気ショック有り。
「遅刻だ〜」と食パンをくわえて走ったら曲がり角で美少女と正面衝突。
小さい頃引っ越していった近所の女の子と街で偶然再会。しかも美人になってるし。

…マンガ人生って結構いいかもしんない… (*´▽`*)

…あれ?
なんかこれ、誰かが既にどこかで書いてたネタなんじゃ?
でもどこが元だったか…最近記憶力が怪しいです <これも何回書いてることやら

まあそれでもマンガのような人生がなんだか良さげな事に変わりは無いのですね。
ビバ。マンガ人生 (´ー`)ノ

などと、少しは前向きに考えられるようになりたい私。

1999/07/19(月) [n年前の日記]

#1 (NoTitle)会長さんからTELあり...

会長さんからTELあり。すまないッス会長さん、そういう状況なんですぅ。でも頑張ってみるヨ…。

タバコが切れたんで買いに。久々の自転車は疲れました。でもジュースも買ってきたんで、これでしばらくは生き延びられる…って、ちゃんと飯食えよ。オレ。

神様からメールが。嬉しいッスぅ〜(ToT)

以上、25 日分です。

過去ログ表示

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

カテゴリで表示

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


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

Powered by hns-2.19.6, HyperNikkiSystem Project