2017/12/17

ifconfigの甘い罠

もっと有効活用しようかと思いつつも結局数年おきにくだらないことを書いて終わっている謎ブログですが、細く長く続けます。

Linux/UNIX系のシステムでIPを確認したい時に無意識にifconfig -aと打つことが多いと思いますが(最近ではipコマンドなのかな)、SunOS/Solarisでは-aのオプションが「コマンドをすべてのインターフェイスに適用する」という意味合いなのでうかつに

ifconfig -a <打鍵ミスで変な文字を入力>

などとしようものならネットワークインターフェイスの設定が全部書き換わってしまうのです。ええ、自分がやった訳では無いんですがハマりました…orz
OS間の挙動の誤差というのは常に考えなければなりませんね。

2016/04/12

いつから日本人は桜に「儚さ」を感じるようになったのか

桜の花と言えば一般的に「儚い」イメージですが、散り際は確かに儚いけど落ちた後かなり長い間地面に残っているし、なぜここまで「儚い」イメージだけが強いのだろうかとなんとなく違和感を覚えました。そこで、改めて桜と日本人がどのように関わってきたのか歴史の側面から調べて、いつから日本人は桜に「儚さ」を感じるようになったのかを推測してみることにしました。


●有史以前~旧石器時代
・桜に限らず樹皮を切り取り利用する技術はあった可能性が高い

●縄文時代
・日本人と桜の関わりが「事実」として出てくるのはここから
・遺跡から桜の樹皮を利用した道具が出土している

●飛鳥~奈良時代
・唐の影響で、当時の花見は梅の観賞が一般的だった

●平安時代
・桜の花見が広まり出す(国風文化の影響とも)
・当時は貴族が野生品種のヤマザクラなどを愛でていた
・ヤマザクラは個体によって開花時期が違うため今のような短期集中型では無かった
   (例:吉野の桜。場所によって開花時期が違うため1ヶ月間見頃が続く)

●鎌倉時代
・オオシマザクラの栽培が始まる

●室町時代
・植木屋の出現
・オオシマザクラから派生した栽培品種が生まれる

●江戸時代
・この頃になってやっと庶民が花見をする余裕が出てきた(飛鳥山、隅田川など)
・江戸末期に染井吉野※1 が広まり出す

※1 染井吉野について
・江戸末期に染井村(現在の駒込)から「吉野桜」として広まった
・明治時代にヤマザクラと別種ということが判明し「染井吉野」と改名
・母親はエドヒガン、父親はオオシマザクラということまでは判明している
・江戸時代に人工交配が行われていた可能性は低く、偶発実生からの選抜の可能性が高い

●明治時代
・幕府、武士の消滅により武家庭園の消滅
・篤志家の努力により桜は保存された
・ヤマザクラを美しいと感じる心に関して唄った本居宣長の「敷島の歌」が
 「武士道」と結びつけて曲解され始めた。この頃には既に「儚く散る」イメージが浸透していた

●戦後
・戦中、上記の「敷島の歌」が愛国心の鼓舞するプロパガンダとして利用され始めた
・第二次世界大戦後、扱いやすさから染井吉野が爆発的に植樹されるようになった

---

推論
・江戸時代以前の桜に関する学術的な証拠・記録はほとんど残されていない
・国風文化から推測すれば、本来、日本人にとって桜は女性的なもの、美しいもの、という感覚
・桜と儚さ(死)が結びついたのは明治以降の「武士道」の影響が強いのでは無いか
・戦中、プロパガンダとして利用されたこともその印象を強めた


・以下、個人的感想(読む価値の無い散文)
幕末、文明開化、戦争という歴史上において「日本」のアイデンティティが強く求められた時期にちょうど染井吉野が普及したことと関係があるように思えました。染井吉野に纏わる起源の話で「色々な意味で恥ずかしい人たち(双方ともに)」がよく話題にしているものがありますが、日本古来のヤマザクラではなく染井吉野が題材になっている理由が何となく見えてくるような…

ともあれ、改めて世にはびこる「○○らしさ」を信じ込む思考停止の恐ろしさ、危うさについて考えさせられました。そして歴史を知れば知るほど、日本というのは本当に複雑で面白い国だと実感させられます。

---

●参考文献
日本財団図書館(電子図書館) 自然と文化 71号
https://nippon.zaidan.info/seikabutsu/2002/00708/contents/026.htm

桜の観賞と栽培の歴史 : 野生種から栽培品種への道
(<特集>美しい日本の桜を未来に伝える-系統保全の現状と新展開-)
http://ci.nii.ac.jp/naid/110009823853

桜の野生種から栽培品種への道 -総論と歴史-
https://www.ffpri.affrc.go.jp/tmk/event/documents/2013021601.pdf

独立行政法人森林総合研究所 多摩森林科学園
https://www.ffpri.affrc.go.jp/tmk/visit/documents/someiyoshino.pdf

森林総合研究所 多摩森林科学園/お問い合わせ
https://www.ffpri.affrc.go.jp/tmk/info/faq.html

「敷島の歌」その後 - 本居宣長記念館
http://www.norinagakinenkan.com/norinaga/kaisetsu/shikishima_sonogo.html

2016/03/05

ヒアドキュメントをインデントする方法

このブログ、年に1、2度しか更新してませんが折角作ったんだから有効活用してみようということであれこれ書いてみようかなと。

ファイルが作成されていれば「SUCCESS」失敗していれば「FAILED」とログファイルに書き出すという、よくあるシェルスクリプトをこんな感じで作成していました。


if [ -e "${FILE}" ]; then

  cat <<; EOF >> file_check.log
  ##################
  #       SUCCESS        #
  ##################
  EOF

else

  cat < EOF >> file_check.log
  ##################
  #       FAILED           #
  ##################
  EOF

#
#わかりにくいですが、cat~EOFまで半角スペースでインデントしています。
#以下処理部分につき省略…
#


一通り書き終えて実行したところ、以下のようなエラーが…。


/home/foo/bar.sh: line **: warning: here-document at line ** delimited by end-of-file (wanted `EOF')
/home/foo/bar.sh: line **: syntax error: unexpected end of file


oh...( ‘ᾥ’ )
慌てず騒がずbashのmanを読んでみます。

Here Documents

       This  type  of  redirection  instructs the shell to read input from the
       current source until a line containing only delimiter (with no trailing
       blanks)  is seen.  All of the lines read up to that point are then used
       as the standard input for a command.

       The format of here-documents is:

              <<[-]word
                      here-document
              delimiter

       No parameter expansion, command substitution, arithmetic expansion,  or
       pathname expansion is performed on word.  If any characters in word are
       quoted, the delimiter is the result of quote removal on word,  and  the
       lines  in the here-document are not expanded.  If word is unquoted, all
       lines of the here-document are subjected to parameter  expansion,  com-
       mand  substitution,  and arithmetic expansion.  In the latter case, the
       character sequence \ is ignored, and \ must be used  to  quote
       the characters \, $, and `.

《訳》
ヒアドキュメント

このタイプのリダイレクトはshellに対し、終端文字(※末尾に空白文字を持たない)のみが含まれる行が見つかるまで現在の入力ソースを読み込む指示となります。すべての行は終端文字の地点まで、コマンドに標準入力として渡されます。

ヒアドキュメントのフォーマットは以下の通り:

              <<[-]word
                      here-document
              delimiter

パラメータの展開、コマンドの置換、算術式の展開、またはパス名の展開は、wordに対しては実行されません。wordのいずれかの文字がクォートされている場合、delimiterはwordのクォートを消去する結果となり、ヒアドキュメントの行内では展開が行われません。 wordがクォートされていない場合は、ヒアドキュメント内のすべての行はパラメータの展開、コマンドの置換、算術式の展開を施されます。後者の場合、文字列の\は無視され、文字列\, $, `,を使う場合は\でクォートされなければなりません。

予感はしていましたが、インデントに使った半角スペースが文字列として認識されてしまい終端文字が見つからねえぞコンチキショウ!という事態になっていたようです。では、インデントを使いたい場合はどうすれば良いのかというと、ちゃんと続きの行に回答がありました。

       If the redirection operator is  <<-, then all leading tab characters are
       stripped from input lines and  the  line  containing  delimiter.   This
       allows  here-documents within shell scripts to be indented in a natural
       fashion.

《訳》
リダイレクト演算子を"<<-"とした場合は、終端文字列を含む行までのすべてのタブが削除されます。これにより、シェルスクリプト内のヒアドキュメントを自然な方法でインデントすることが出来ます。

( ・ิω・ิ)......なるほど
これを踏まえて冒頭のシェルスクリプトを修繕すると、以下の通りとなるわけですね。


if [ -e "${FILE}" ]; then

     cat < EOF >> file_check.log
     ##################
     #       SUCCESS        #
     ##################
     EOF

else

#
#cat~EOFまでTabでインデントしています。
#以下処理部分につき省略…
#


これでエラーは出なくなりました。なにごとも日々勉強です。

2015/08/30

TOMIX(16番)の285系に自作室内灯


市販の室内灯は高いのでテープLEDを使ってこういうものを安くでっちあげようという魂胆です。

※以下の文章はメーカーが推奨しない工作をしようという趣旨なので、当然ながら保証が受けられなくなる、車両を破損するなどトラブルが起こる可能性もありますので、At Your Own Riskで実行願います。

材料は以下のとおり。

●テープLED
3528チップLEDを使った非防水のもの十分です。5mで500-600円という値段(他の商品の1/10以下)の誘惑に負けて、某Amazonで怪しい業者が売っている格安のものを仕入れてみました。

画像の通り、なかなかジャンキーな代物なので耐性のない方にはおすすめしません。

それでも購入したいという方は値段だけでなくどこの業者が出品しているのかよく見ておいたほうが良いと思います。何故か関東に発送出来なかったり、中国から直送で即納出来なかったり、というイレギュラーが多々あるようなので。

●ブリッジダイオード
定番のDF08M、と型番を書くより秋月電子で7個100円で売っているアレと言ったほうが通じる気がします。

●CRD 
石塚電子E-153(15mA)を使用しました。これは好みですが、テープLEDに直で12Vを流すと明るすぎることが多いので8~18mAのCRDを挟んで調整しています。副次的に流れる電流が下がってLEDの発熱量が減るという効果もあります。

●電解コンデンサ
耐圧と容量の大きさがそのままサイズに反映されるので自ずと搭載できる限界が決まってきます。耐圧は35V(DCC環境であれば50V)、容量が470~1000μF程度は必要となります。今回はサイズ的になんとか収まりそうなルビコンの35V/470μFを使いました。ちらつき防止は「少し」効果があるかな?程度です。

さて、材料が揃ったところで今度は給電方法は考えないとなりません。ベースになる板にテープLEDを引っ付けて純正の室内灯に近い形のものを作り固定する方法もあると思いますが、今回はもともと付いている集電板にスプリングを接触させる方法としました。実際に組み込むにあたっては、車両側に少し加工が必要です。

元々の集電板の先っぽを曲げてスプリングが接触する面を作り、車両によってはコンデンサとブリッジダイオードが干渉する部分をカットしています。非常に雑な方法ですが今のところ問題無く使えています。接触不良が起きたら…対策考えます(意識低い) 確実にリード線で結線したり、ピンヘッダとソケットを使って分離できるようにしたり、その辺はお好みで。

実際に作ったものを装着するとこんな具合となります。今回のテープLEDは1ユニットが5cm長のため、5ユニット分使いました。クハネ2両とモハネ285-0(3000)は4ユニットでOKです。

ブリッジダイオードは集電板との位置関係に合わせて固定。コンデンサはリード線を付けて外から見えない部分に逃がします。

車体を戻して完成。室内の設計が良いので下段も十分に明るいでのは助かります。夜行列車なのでここまで煌々と明るいことはないですけど、模型的には見栄えがしますね。

テープLEDを使っている以上消費電力が大きいのが難点です。2Aクラスのパワーパックなら14連程度は大丈夫かと思います。


2015/01/30

ローカルでハードなクロックの話

Linuxやシステム管理に詳しい人からしてみれば何だそんなこと、というレベルの話ですが…。
何分ど素人が備忘録的に書いている記事なので、間違い等ありましたら何卒ご容赦を。

とある仮想サーバ(CentOS 6.5)でglibcのyum updateと機能試験を行い、問題無しと判断して実環境で同じことを行ったところ何台かのサーバの時間設定がJSTからUTCに戻る事態となり、軽く冷や汗をかきました。調べてみたところCentOS Bug Trackerにこんな投稿が。CentOS4の頃の情報ですが、まさにこれです…。

0002085: Yum updates reset /etc/localtime causing the time to be incorrect - CentOS Bug Tracker

There is a trigger script (/usr/sbin/tzdata-update) for the glibc-common package which runs whenever the tzdata package is updated. This in turn gets its zone information from /etc/sysconfig/clock. You should edit that file instead of just replacing /etc/localtime.

This is the way the upstream distribution does it and isn't -- good idea or not -- a CentOS bug.

glibc-commonの更新の際に一緒にtzdata-update(タイムゾーンの更新)が実行されてしまうので/etc/localtime(ローカルタイム)の内容が/etc/sysconfig/clock(ハードウェアクロック)で書き換わる。だから/etc/sysconfig/clockも設定する必要がある、とのことです。

cp -p /usr/share/zoneinfo/Japan /etc/localtime

strings /etc/localtime
TZif2
TZif2
JST-9

今までずっとこういう感じでローカルタイムを設定すればOKだと思っていたのですが

less /etc/sysconfig/clock
ZONE="Asia/Tokyo"

このようにハードウェアクロックも正しく設定してあるか確認する必要があるのですね。

大事には至りませんでしたが、設計した側の意図を考えず設定を弄ることの危うさを認識させられました。「ググる前にmanページを読め」というのは本当に金言だと思います。

…蛇足ながら、なぜUTCに戻るサーバと戻らないサーバがあったかと言いますと

某クラウドのCentOSテンプレートがカスタムされてZONE="Asia/Tokyo"がデフォルトになっていた

そのテンプレートを元に構築した環境をスナップショットにして、検証環境を構築

検証環境でglibcの更新と試験を行い、問題無いと判断

ところが、CentOSのバージョンが上がった際にテンプレートが更新され設定がデフォルトのZONE="UTC"に変更された(というか、こっちが正しい)

更新作業を行ったところ、ある時期を境に新しく作ったサーバ群が全部UTCに戻る

/(^o^)\

というのが事の真相だったようです。
人生もそうですが、便利だから、楽だから、とお仕着せで物事をするといつか痛い目に合うものです…。


●参考文献

glibcを更新しても大丈夫な「正しい」タイムゾーンの設定方法 - めもおきば
http://d.hatena.ne.jp/nekoruri/20150130/glibclocaltime

28.1.6. /etc/sysconfig/clock
https://www.centos.org/docs/5/html/5.1/Deployment_Guide/s2-sysconfig-clock.html

Linux時刻管理の仕組みと設定 (1/4)
http://www.atmarkit.co.jp/ait/articles/0812/26/news120.html



2015/01/02

新年早々めんどくさい人たちに向けて毒を吐こうかと


「面倒くさい」あの話に触れてみようと思う:日経ビジネスオンライン

”君が代不起立問題を扱った原稿の中でも書いたことだが、ネット時代の言論弾圧は、「面倒くささ」として書き手の前に立ちはだかることになっている。別の見方をすると、メディアに関わっている人間が、面倒くさい話題や、触れるだけで自分のブログが炎上するタイプのタームを避けて通ることは、結果として、それらの問題を面倒くさくしている勢力に荷担することにつながるということだ。”

というわけで、あえて書きます。

新年早々、ネット上でネガティブな話をするのはどうなのと思いましたが相手方は他人を脅して発言を萎縮させるのが目的のようなのでこのまま不愉快な思いをしたままというのも癪なので。

先に言っておきますがかなり読む価値の無い話です。あくまでもわたし自身の考えの話なので。
興味の無い方や「セイジ」や「ミンゾク」の話題が苦手な方は回れ右で。

2014/12/23

"disc"か"disk"か、それが問題だ。いや、そんなに問題ではないかも…。

 皆様こんばんは。友人にバイク屋を紹介してもらうはずが何故かフルOHをした原付を格安で譲ってもらう方向に話が進んで、恐縮するやら何やらなわたくしです。今からボアアップキットやオプションパーツのリストを眺めて一人ニヤニヤしています。(取らぬ狸の何とやら)

ふと仕事中、discとdiskの違いが気になって帰宅後調べてみたのですが、検索したらアップルのサイトが一番初めに引っかかりました。

技術的には明確な違いがあります。と堂々と断言して事細かに記載してありますが、この文書では何を根拠にしているのか説明がありません。子供の頃『刑事コロンボ』が好きだったせいか細かいことが気になると夜も眠れないタイプ(大嘘)なので調べてみました。

信憑性という意味では微妙ですが、文化に根ざしていると言う意味では意義があるかと思いますのでwiktionaryとWikipediaの文章を紹介しておきます。(以下記載内容は2014/12/23現在)

※以下、中途半端な訳なので気になる方は原文を読んでみてください

・International English*に於いて、diskは磁気ディスクを差す
・媒体が光である場合、コンピュータ用語に限っていえば"disc"を使うことが望ましい
・ハードディスクや他のディスクドライブなど、古いものは"k"が使われ、
 光学メディア、新しいメディアは"c"を使っている
・一般的ではないが、イギリスでフロッピーなどの磁気ディスクをcで示す場合もある

*International Englishについて調べてみましたが、少なくとも技術的な英語の定義では無いようです。

・20世紀、アメリカでは"k"、イギリスでは"c"がそれぞれ多く見られた
・1950年代にアメリカのIBMがHDDを表現した際に"disk"と表記していた
IBMと競合していたHDDのメーカーはわざと"disc"と使い分けていた
・医療分野(眼科と形成外科)ではあえて使い分けている*

*確かに椎間板ヘルニアを指す"slipped disc"は"slipped disk"という表記も見受けられます。

慣例に関する話がほとんどで、「技術的な明確な違い」の根拠は無いように思えます。ちなみに一般的な用例ではGoo辞書研究社 新英和中辞典では"=disk"とされているので、綴りによる意味の使い分けはそもそも一般的ではないと見なせると思います。
確かに慣例的には"k"と"c"を使い分けているようですが、証拠も出さず断言しちゃうのはメーカーとしてどうなのよ、とちょっともやもやする書き方ですね。

もし誰かに違いを聞かれて説明するのであれば、以下のアメリカの言語学者?さんが書いたコラムの説明程度で十分な気がします。

蛇足ですが、個人的にすごく共感できた意見がコメント欄にあったので紹介しておきます。

For geeks, Disc refers to optical media and disk refers to magnetic media. For all others, a generic flat round item is a disc in the UK and disk in the USA.
(オタク共にとっては光学メディアと磁気ディスクの違い。普通の人にとってはんなもの平たい円盤状のものを差すイギリス英語かアメリカ英語かの違い)

200%同感です(´ω`)