2015/09/17(木)fml Ver 4.04 の Perl 5.22 対応

2017/10/12 19:02 サーバ運営・管理
収容ユーザからの連絡で発覚・・orz

fml はPerl で動作する有名なメーリングリスト提供ソフトウェアで、弊社でも使っていますが、どうやら Perl 5.22 にすると動作しなくなるようです。
12年も前に作られた代物なので、これだけ長寿命なのも素晴らしいですが、さらなる長寿化ヾ(^^; を図らないといけないので、対策しました。

以下の2箇所を修正することで対応できるようです。
fml.pl 693行目:(単にコメントアウトする)
#    $* = 0;                    # match one line
jcode.pl 677行目以降:(以下のように変更)
参考 jcode.plでdefined(%hash) is deprecated at ../perllib/jcode.pl line 684.のエラー 〔アイスポテト - C#|Tex|Perl|東京凰籃学院〕
sub z2h_euc {
    local(*s, $n) = @_;
#    &init_z2h_euc unless defined %z2h_euc;
    &init_z2h_euc if (! %z2h_euc) ;
#    $s =~ s/($re_euc_c|$re_euc_kana)/
#       $z2h_euc{$1} ? ($n++, $z2h_euc{$1}) : $1
#    /geo;
    $s =~ s/($re_euc_c|$re_euc_kana)/$z2h_euc{$1} ? ($n++, $z2h_euc{$1}) : $1/geo;
    $n;
}

sub z2h_sjis {
    local(*s, $n) = @_;
#    &init_z2h_sjis unless defined %z2h_sjis;
    &init_z2h_sjis if (! %z2h_sjis) ;
    $s =~ s/($re_sjis_c)/$z2h_sjis{$1} ? ($n++, $z2h_sjis{$1}) : $1/geo;
    $n;
}
680行目付近の3行コメントアウトの部分は、3行にまたがってる判りにくい部分を単に1行にまとめているだけなので、修正しなくても大丈夫だと思います。

2015/09/07(月)Postfix を 3.0 系にしてみた

2017/10/12 19:00 サーバ運営・管理
ずっとやりたくても出来なかったメンテナンス作業をようやく行い、
その過程で Postfix も 3.0 系にしました。

20150907.png

Postfix 3.0 系(一部では Postfix 2.12 というアナウンスもあるが同じです) のハイライトは、国際化メールアドレスのサポートでしょうか。これは SMTPUTF8 と言われており、公式サポートは Postfix 3.0 が最初のようです。
尚、完全なサポートは Postfix 3.1 系のリリースになるらしいです。

これは早い話、電子メールアドレスに、ネイティブ言語が使えるという機能で、文字コードは UTF-8(Unicode) に限定されるという代物です。

要するに

はんかくさい日報@ベースカーネル.jp

みたいなメールアドレスが使えるというものです。電子メール本文も UTF-8 での使用になります。(と、いうことは多言語の文字を混在できるということ)
↑ 言い切っているけれど、ここちょっとあやしい


日本のように既に電子メールが普及している国では、それほど大きな需要がないのですが、どこの誰か使うか判りませんし、今後は受信する場面も出てくるかもしれませんので。。

また、メールサーバ的には対応しているけれど、Thunderbird 等でのソフトウェアで対応しているかどうかまではちょっと判りません。皆さまの方がご存じでしょう。

弊社では発信アドレスは日本語対応(というか国際化対応)していませんが、
受信電子メールの送信元、返信・転送メールの送信先と転送先は国際化対応できているはずです。(「できているはず」というのは確認できる環境がないため)
弊社で電子メールサーバを預かっている方は、利用した機会があったら「使えた/使えなかった」レポートをください。

2015/06/15(月)体調が悪い

2017/10/12 18:59 はんかくさい
1週間程度前から、風邪に罹患してしまったようです。
最初は少し熱があったので、大人しくしていたのですが、
治り掛け(つか、このまま治ると思っていた)に、調子こいで徹夜作業したものだから、一気に悪化してしまい、先週後半から昨日まで実際に何も出来ませんでした。

今日から現場復帰といきたかったんですが、少し仕事したら具合が悪い...orz
まだ本調子ではなさそう。。

20150615.JPG
こんな感じで、平熱のようなんですけどねぇ。。熱はないが、ものすごい量の黄色の鼻水・痰がでています。昨日から比べたらかなり減ったんですが。。
今日も養生しないとダメか。。

いくつかの取引先に迷惑かけていますが、養生を優先して今後の影響を最小限にしたいと思います。

2015/05/05(火)facebook連携アプリケーションの変更

2017/10/12 18:57 雑多なトピック
http://radio-electronics.basekernel.ne.jp/entry/726 でも書きましたが、今まで使っていた Facebook 連携アプリが突如使えなくなってしまいました。。
20150505_1.png

Facebook とのブログ連携そのものには、異議もあるようですが、筆者にとっては半ばどうでもいい問題です。
コメントは圧倒的にFacebook 側に書き込まれることが多く、コメント有無よりも何らかの感化を与えることができれば筆者の目的は達成してしまうので、リーチ率がどうとか、そういう難しい話はどうでもいいという感覚になります。

まぁ、多くの目に触れてくれることに越したことはないですが、有名人になるつもりは無いので、アクセス数で一喜一憂することはあまり無いです。はい。

まだ、連携タイミングが判らないんですが、IFTTT が使えそうかな? というところです。しばらく実験することになります。

2015/04/30(木)Programmable Timer ADK-204 の修理

2017/10/12 18:55 修理や再生など
稼動年数 32年になる昔のオーディオタイマーです。
設定時刻になったら、所定のAC100Vコンセントを入り切りするものです。
4チャンネルのディジタル制御。
いまどき、このような同じような機能を持つ機器は市販すらされていないですね。
却って接続機器に悪影響が出るからでしょう。
20150430_2.jpg

先日(といっても4ヶ月前。。orz)、「(当方で書き直した)回路図が間違っているのでは?」という指摘を受け、調べる時間もままならない状態だったのを何とかして調査したんですが、発振回路と電源廻りが結構間違って いました。。。orz
修正済みです。製造元サポートもとっくに終了している絶版の機器ですので、回路図をどこかからダウンロードできるようにしたいと考えています。

解体・修復途上で経年変化で、逝ってしまった(と思った)抵抗器がありました。
20150430_1.jpg

この抵抗器、動作時にはかなり熱くなります。熱的ストレスで表面がひび割れて、中の抵抗体がむき出しになっています。

こんな状態でも、一応、機能はするんです。さすが日本製。ヾ(^^;
抵抗値を測ってみました。
100Ω±5% の抵抗器ですので、所定の範囲内。
20150430_3.jpg

しかし、この状態での放置はよくありませんので、同じく傷みが見られた抵抗器は全て新品と交換しました。

2015/04/04(土)FreeBSD 10.1 上における dovecot 2.2.x の構築

2017/10/12 18:54 サーバ運営・管理
自分メモ・・・
FreeBSD 10.1 では、dovecot の構築の最終段階に入る際(実行形式ファイルの生成と思われる)、以下のようなエラーになり、コンパイルが出来ません。
dovecot 2.2.15 、dovecot 2.2.16 でこの現象を確認しています。
../lib-charset/.libs/libcharset.a(charset-iconv.o): In function `charset_to_utf8_begin':
/usr/local/src/dovecot-2.2.16/src/lib-charset/charset-iconv.c:27: undefined reference to `libiconv_open'
../lib-charset/.libs/libcharset.a(charset-iconv.o): In function `charset_to_utf8_end':
/usr/local/src/dovecot-2.2.16/src/lib-charset/charset-iconv.c:46: undefined reference to `libiconv_close'
../lib-charset/.libs/libcharset.a(charset-iconv.o): In function `charset_to_utf8_reset':
/usr/local/src/dovecot-2.2.16/src/lib-charset/charset-iconv.c:53: undefined reference to `libiconv'
../lib-charset/.libs/libcharset.a(charset-iconv.o): In function `charset_to_utf8_try':
/usr/local/src/dovecot-2.2.16/src/lib-charset/charset-iconv.c:76: undefined reference to `libiconv'
cc: error: linker command failed with exit code 1 (use -v to see invocation)
*** Error code 1
このような場合は、src/lib-charset/Makefile.in を、dovecot 構築開始前に以下のように編集してから構築作業を始めると回避できます:
● 92行目付近
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
 LTLIBRARIES = $(noinst_LTLIBRARIES)
-libcharset_la_LIBADD =
+libcharset_la_LIBADD = $(LTLIBICONV)
 am_libcharset_la_OBJECTS = charset-iconv.lo charset-utf8.lo
 libcharset_la_OBJECTS = $(am_libcharset_la_OBJECTS)
(先頭を- で示している行を削除し、先頭を + で示している行を挿入する)

参考: 2.2.16 link failure on FreeBSD 10.1, with patch

2015/03/02(月)通信回線活性管理ファームウェアを開発しました

こんな記事書いている状況には無く、仕事しなければならんのだが、、、orz
現状、TCP/IP 通信によるインターネット回線断検出には、Ping と呼ばれる手法が広く使われています。

今般開発したファームウェアは、Ping手法でインターネットやLAN・サーバ・ルータ等の回線断管理(活性管理)を行う機器の心臓部分にあたります。

Ping で指定したサーバ等へパケット到達が確認できなかった場合、リセット信号を発生させるような仕組みになっています。
このような機器は既に溢れていますが、構成の自由度があるものは皆無でしたので、取引先の強い要望もあり、制作した次第です。
20150302.jpg

このボード単体では、対象装置のリセット等(自動的にAC電源をOFF/ONする)は出来ません。相応する外部回路・電磁リレー・電源・収納ケースなどを外付けする必要があります。

また、このボードは トライステート社の (新)PIC-NIC をそのまま流用しています。
弊社は、トライステート社 (新)PIC-NIC 上で動作する 通信回線活性管理ファームウェアを開発しただけで、(新)PIC-NIC は別途用意していただくことになります。
(新)PIC-NIC 搭載のファームウェアをごっそり入れ替えることで機能を実現しています。

完成品とキットの販売両方考えていますが、秋月電子通商で販売されている (新)PIC-NIC キット本体価格 ¥7,800 よりはどうしても高額になってしまうことはご容赦願います。

2015/01/27(火)ImageMagickライブラリによる塗りつぶし

殆ど事例が紹介されていなかったので、自分メモ
20150127.png
これは、筆者が開発作業で制作した、気象庁によるXML配信データを基に生成した、日本近海の海上(気象)警報を視覚化したものです。
https://www.basekernel.jp/pc/weather/fishcond/index.html

図中の黄色や橙色、水色は、閉塞領域の単純な塗りつぶしですが、このような簡単な事例が検索してもなかなか出てこない。
昔のパソコンで一般的だった BASIC だと、
paint(X,Y), colorcode,bordercolor1,bordercolor2
みたいにするだけで任意の座標 X,Y を含む bordercolor で示す閉塞領域をcolorcode で塗りつぶすことが出来たのですが、これと同じことをする手法が判らない。

結局、 ImageMagick の本家でそれらしきものを見つけて、わかりにくい説明を基に試行錯誤しました。

いつもの例によって Perl でのやり方ですが、
use Image::Magick ;                     # 画像描画ライブラリ使用宣言
で、ライブラリを宣言し、
 $image = new Image::Magick ;            # 操作オブジェクト生成
 $image->Read('seamap.png') ;            # 元の画像ファイルを読み込む
 $image->FloodfillPaint(x => $position_x,
                        y => $position_y,
                        channel => All,
                        fuzz => '20%',
                        fill => $paintcolor) ;
 $image->Write('seamap.png') ;           # 操作後の画像をファイルに書きだす
 undef ($image) ;
のようにします。
書き出す際のファイル形式は、読み込んだときのファイル形式がデフォルトになるようですが、詳しく検証していません。
FloodfillPaint という関数呼びだしが塗りつぶし処理そのもの。
x に塗りつぶしたい領域を含むX座標(水平方向の座標)、
y に塗りつぶしたい領域を含むY座標(垂直方向の座標)、
fill に塗りつぶしたい色を、rgb文字列形式で指定します。
#ff0000 とすれば赤、#00ff00 とすれば明るい緑、#0000ff とすれば青、
#ffff00 とすれば黄、#ffffff とすれば白、#000000 とすれば黒、
といった具合です。
fuzz は、境界のあいまいさのようなもので、この数値を減らせば境界色判定がシビアになり、数値を増やすと、多少違った色でも塗りつぶしを行うようになります。
fuzz の数値は、実際に試しながら設定するのが早いです。

2015/01/11(日)いまどきのWebページにおけるボタン作成

HTMLが一般化しておよそ20年になりますが、
デザイン化されたリンクボタンは、gif や png 、凝ったものになると jpg で組むのが一般的でしたが、最近は CSS で作るのが一般的になりつつあるようです。
簡単にここまで出来るという一例ということで。。

《HTML側》
 <a class="button"
    style="color:#422; background-color:#3aaef3; text-shadow:1px 1px #344;"
    href="********.html">サイト更新情報<span style="font-size:8pt;"> 2014/12/22 更新</span></a><br>
 <a class="button"
    style="color:#422; background-color:#e66bf3; text-shadow:1px 1px #344;"
    href="********.html">北海道の歴史綴<span style="font-size:8pt;"> 2014/12/22 更新</span></a><br>
 <a class="button"
    style="color:#422; background-color:#ff9d3c; text-shadow:1px 1px #344;"
    href="********.html">北海道の交通綴<span style="font-size:8pt;"> 2014/12/22 更新</span></a><br>
 <a class="button"
    style="color:#422; background-color:#ff9d3c; text-shadow:1px 1px #344;"
    href="********.html">北海道の道の駅<span style="font-size:8pt;"> 2015/01/08 更新</span></a><br>
 <a class="button"
    style="color:#422; background-color:#ddf14b; text-shadow:1px 1px #344;"
    href="********.html">不都合な真実集<span style="font-size:8pt;"> 2014/12/22 更新</span></a><br>
 <a class="button"
    style="color:#422; background-color:#bec970; text-shadow:1px 1px #344;"
    href="http://hankakusai.basekernel.co.jp/">はんかくさい日報  <span style="font-size:8pt;">不定期更新</span></a><br>
 <a class="button"
    style="color:#422; background-color:#3fed77; text-shadow:1px 1px #344;"
    href="********.html">サイトリンク集<span style="font-size:8pt;"> 2014/12/25 更新</span></a><br>
《CSS側(CSS3 に対応しているWebブラウザが必要です)》
.button     { width:13em ;
              padding:5px ; margin:5px ;
              font-size:12pt ;
              text-align:center ;
              color:#fff ;
              text-decoration:none ;
              display:inline-block ;
              background-color:#888 ;
              box-shadow:2px 2px 2px #555;
              text-shadow:1px 1px #555 ;
              border-radius:10px ;
            }
表示はこんな感じになります。
20150111_1.jpg