SVX日記

2004|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|06|07|08|09|10|11|12|
2025|01|02|03|04|05|06|

2004-12-23(Thu) ツーカーSに学ぶ

  昨日、目覚まし時計は「時刻を刻んだり、指定の時刻になにかやらせるという意味では、単機能ながらPCなどより圧倒的に先輩だ」と書いたが、それからフト思いついたことがある。

  画像の説明

  最近話題の「マニュアルがない」が売りの携帯電話「ツーカーS」である。実際には1枚ペラのマニュアルが添付されているらしいので、思い切りウソ広告をしている気もする。んが、それはこのプロダクトの素晴らしさを微塵も傷つけるものではないだろう(個人的には箱の裏の記述だけで済ませてもらいたかった気もするが)。実際この電話、お年寄りにオオウケだそうだ。

  しかし逆に考えると、こういう思い切ったプロダクトがウケるということが、なぜこんなにも長いあいだ気づかれなかったのだろうかとも思う。まったくもって不思議である。「ツーカーS」の開発者を貶めるつもりはないが、こんなの誰でも気づきそうなプロダクトではないか。

  で、思いついたのが、昨日の目覚まし時計を利用した「ビデオ録画システム」である。そう目覚まし時計は「時刻を刻んだり、指定の時刻になにかやらせるという意味では、単機能ながらPCなどより圧倒的に先輩」なのである。これを使わずしてどうするよ。

  似たようなトコロを狙ったプロダクトとして「Gコード」がある。確かに「Gコード」も素晴らしいが、あれは紙面に余計な情報を加えねばならないという意味であまり面白くないのだ(それがロイヤリティにつながるというビジネスモデルかもしれんが)。

  一方でこれを目覚まし時計にやらせた場合の利点と欠点を考える。圧倒的な利点は「直感的なインターフェイス」である。ビデオの予約録画ができないお年寄りはゴマンといるだろうが、目覚まし時計が使えないというお年よりは聞いたことがない。これに関しては「Gコード」よりも圧倒的に優れている。

  画像の説明

  ただし一方で「開始時間しか設定できない」という問題もある。そこでこないだ日米通商で買ってきたドラムスイッチの出番である。目覚まし時計の裏にこれをいくつか並べ、録画時間と録画チャンネルを設定できるようにするのだ。これなら単純明快で間違うことはありえないだろう。完璧だ。

  ほかにも欠点としては「午前午後の指定ができない」「録画する日付を指定できない」「1番組しか予約できない」という問題もある。しかし、これは「ツーカーS」に倣って「細かいことはできません」という対処としたい。ビデオデッキならテープが有限であるからキメ打ちで録画せねばならんだろうが、いまやHDDレコーダの時代である。余計なことを考えず「午前も午後」も「昨日も今日も明日」もガンガンと録画してしまえばいいのである。そして「2番組予約したければ、時計を2個買ってくれ」としてしまいたい。お年寄りをバカにするわけではないが、そんなに録るものは連発しないハズだし。

  というわけで、まったくもってたいしたアイデアではないが「一応」現時点をもって「広く公知のアイデア」ということにさせていただく。私自身も含めて、このアイデアの特許化はこの12月23日をもって不可能である(既に特許化されていたらそれは知らないが)。製品化する冒険野郎はご自由にどーぞ。


2011-12-23(Fri) 侵略!?イカ息子

  珍しく、妙に朝早く起きてきたウチのガキと、一緒に「侵略!?イカ娘」の第11話を観たあと、おもむろに、先日、試作したイカ娘仕様の帽子の「ウチのガキが被れるバージョン」を作ってみた。

  画像の説明

  割と、いいものができた。これを被っていれば「同胞になれるんじゃなイカ?」。


2013-12-23(Mon) 自宅サーバクラッシュ

  朝10時頃、なにげなくデスクトップPCをサスペンド復帰すると、ネットワークにつながらないことに気づいた。聞くと、iPodTouchもおかしかった、とか。こりゃマズい。

  小屋裏のLinuxサーバの様子を見に行く。ウチはPPPクライアントもルータもLinuxにやらせてるんで、落ちるとネットにつながらなくなるのだ。うーむ、画面に何も映らない。なにが起きたのだろう……Linuxのテクニカルサポートを生業としているオイラとしては、ここは「いとも鮮やかに」サービス復旧させたいところなのだが。

  まずはリセットだ。BIOSは立ち上がる。GRUBも立ち上がる。しかし、そのあと画面は真っ暗のまま。なんだ、これは。ハードディスクか? ソフトウェアRAIDは組んであるが、その復旧となるとやっかいだ。ハードディスクに触診する限り、ディスクは回っているようだが。

  レスキューモードで立ち上げてみるかな。インストールDVDをセットして起動……しねぇ!? なんだこれ……DVDが腐ってるとも思えんし……うーむ、ハードウェアくさくなってきたな。GRUBが立ち上げるってことは、なんかのデバイスのイニシャライズでストールしているとか。

  使ってなかったPT2のボードを外す。うさんくさいPS/2マウスも引っこ抜く。で、GRUBのカーネル起動オプションからquietとrhgbを外してブートしてみる。にしてもGRUB2はGRUBから仕様を変えすぎだろ……大幅に機能向上してそうだが、まったく別モノになっていて、操作からして手探り状態だ。

  画面にカーネルの起動メッセージが出るようになった。サーバ用途なら、最初からquietとrhgbは外しておくべきだな……4CPUだけに、4匹のペンギンが並んでいる……おッ! 止まったッ!? USBのHUBの初期化っぽいメッセージで停止している。USBが悪いんかな。カーネルパラメータにnousbを与えたり、つながっているUSB機器を外したり、BIOSからオンボードUSBを丸ごと殺したりしてみる……と、USBのHUBの初期化っぽいメッセージが出なくなり、代わりにネットワークっぽいログで停止している状況に変化した。

  次はネットワークだ。ケーブルを外したり、BIOSからオンボードNICを丸ごと殺したりしてみる……

  おーっと! 抜けたぁー!

  起動するようになった。なんと、オンボードNICが腐ったせいで、初期化でストールするようになった、ということらしい。このサーバは、2011年の3月から稼働して4年弱になるが、オンボードNICって壊れるもんなのかよ……。

  ここまで来るのに約1時間。「いとも鮮やかに」とまではいかないが、それなりの速度で切り分けできた気がする。ハードウェアは専門外だが、どうにかサポート屋の面目は立ったというところか。

  さて、ここからどう対処しようか……予備のNICがないわけでもないが、何年も前のものだから挿したくはないな……あ……思いついちゃった……半ばギャグだが、いまこそレスキュー用のアイツを取り出す絶好のタイミングではないか!?

  じゃーん!

  画像の説明

  USB接続のNICである。なにがギャグかというと、この得物の通信速度だ。100BASEで接続できる、という点では実用性たっぷりなのだが、USB1.1の側がギャグなのだ。結局は10Mbps程度ってこと。昔、持っていたPCカード直付けのNICを思い出す。CardBus非対応なせいで、同じようなギャグ仕様だった。ま、sshで端末操作する分には十分に有用な得物なのだけれど。

  得物を挿してみると、即座にeth0として認識された。p1p1の設定をeth0に持って行き、ppp接続もeth0で行うように修正、iptablesも書き換えて…… 

  復活!

  しかし、遅い……外のVPSにアクセスすると、この細い線を往復することになるから無理もない。しばらくしたら、ちゃんとしたNICに付け替えよう。

  ……とかなんとかドタバタしつつ、年賀状を印刷したりしつつ……もちろんLinuxで、先日に形になった踏み台を塗装したりする。

  画像の説明

  充実しまくりだが、つかれたワイ。昼寝。


2015-12-23(Wed) openstackはじめの一歩

  openstackの評価、なんてつもりはないのだが、自作のオートパイロット機構「kugutsu」のスクリプトを書いたり、走らせたりするのが楽しくなってしまい、しつこくFedora23とopenstackのインストールを繰り返してきた。んが、いいかげん、何かに活用していきたいので、一段落する意味も込めて、ひと通りの手順をまとめておくことにする。

  まず、OSのインストールはキックスタート。安物のUSBメモリから起動し、起動パラメータに「selinux=0inst.ks=http://server/anaconda-ks.cfg」を追記してウェブ経由でキックスタートファイルを渡す。

  OSのインストールが終わったら、再起動してデスクトップPCからopenstackインストール前の下準備。コントローラに「kugutsuprep_openstack_fed23.kgt troll」コンピュートノードに「kugutsuprep_openstack_fed23.kgt pute」を一撃ずつ、並行して実行させる。

  完了後、コントローラにsshでログインして「packstack--answer-file=answer_file」を一撃。

  完了後、再び、デスクトップPCからopenstackインストール後の処理。コントローラに「kugutsu prep_openstack_fed23.kgt troll -l 219-」を一撃。ブリッジの作成、glance のバックエンドの swift への変更、テナントの作成までが行われる。

  ここからは、openstackのウェブUIで初期設定を行う。やろうと思えば、この処理もkugutsuで実行可能だろうが、ウェブUIは普段の運用で使うものだし、理解のためにも手作業で行う。

  openstackのウェブUIであるDashboard(Horizon)は、コントローラ上のウェブサーバで提供される。具体的には、ブラウザで「http://troll0.itline.jp/dashboard/」にアクセスする。

  まずは、管理者であるadminでログイン、パスワードはコントローラの/root/keystonerc_adminに書いてある。

[root@troll0 ~]# cat keystonerc_admin | grep PASS

  画像の説明

  adminユーザで操作するときに注意が必要なのは、プロジェクト(テナント)利用者としての操作か、openstack管理者としての操作かを意識して区別する必要があるってことだ。前者の場合、左のペインの「プロジェクト」の中、後者の場合、左のペインの「管理」の中の操作となる。特に「ネットワーク」は両方にあるので、これに気づかないとドツボだ。

  一番にやるのは起動イメージのGlanceへの登録(ダウンロード)これは管理者として行うので「管理」の「イメージ」から「イメージの作成」を行う。「名前」は適当に「Fedora23」「イメージの場所」は「http://ftp.iij.ad.jp/pub/linux/fedora/releases/23/Cloud/x86_64/Images/Fedora-Cloud-Base-23-20151030.x86_64.qcow2」「形式」は「qcow2」「パブリック」と「保護」にチェックを入れる「イメージの作成」だ。当然ながら、ダウンロード完了までにはしばらく要する。

  画像の説明 画像の説明

  画像の説明 画像の説明

  画像の説明

  次にやるのはパブリックネットワークの登録。これも管理者として行うので「管理」の「ネットワーク」から「ネットワークの作成」を行う。「名前」は適当に「public」プロジェクトは「admin」プロバイダーネットワーク種別は「VXLAN」セグメントIDは「0」。「共有」と「外部ネットワーク」にチェックを入れる

  画像の説明 画像の説明

  ちなみに、プロバイダーネットワーク種別のVXLANは、packstackのanswer_fileでneutronに設定した以下のパラメータと一致させる必要があるっぽい。

CONFIG_NEUTRON_ML2_TYPE_DRIVERS=vxlan
CONFIG_NEUTRON_ML2_TENANT_NETWORK_TYPES=vxlan

  ネットワーク名「public」をクリックして、ネットワークにサブネットの作成を行う。「サブネット名」は適当に「public_subnet」。「ネットワークアドレス」は物理マシンとして所属しているネットワークアドレスで「172.24.0.0/24」とか「192.168.0.0/24」など。「ゲートウェイIP」は大概ルータだろうから「172.24.0.1」とか「192.168.0.254」など。

  画像の説明 画像の説明

  「IPアドレス割り当てプール」はopenstackとして仮想マシンに付与するためのフローティングIPを割り当てる範囲なので、ルータのDHCPレンジを避ける必要がある。ルータのDHCPレンジが192.168.0.1〜192.168.0.99なら「192.168.0.100,192.168.0.249」とかになる。「DNSサーバ」は大概ルータだろうから「172.24.0.1」とか「192.168.0.254」など。

  画像の説明 画像の説明

  画像の説明

  一応、管理者としての作業は一段落。次はユーザとして作業を行うので、ログアウトし、ログインし直す。もしくは、別のブラウザを開いてもいい。ホントは別のタブで管理者/ユーザの操作を並行して行えるといいのだが、cookieの都合か、同じブラウザだと並行作業ができないようだ。

  kugutsuでユーザテナントの作成を行なっている場合、ユーザが登録済なので「ユーザ名」が「mitsu」と「パスワード」が「mitsu123」でログインできる。

  最初にやるのは、セキュリティ関係。「プロジェクト」の「アクセスとセキュリティ」の「セキュリティグループ」から「セキュリティグループの作成」を行う。

  openstack内で立ち上がる仮想マシン(インスタンス)には、openstackの機能として標準的にパケットフィルタが備わっており、何も考えずインスタンスを立ち上げると何のパケットも通らず、後で首をかしげることになる。そのため、まずはフィルタリングしないセキュリティグループを定義する。

  「名前」は適当に「open」として「ルールの管理」で「ルールの追加」から「ALL ICMP」「ALL ICMP」「ALL TCP」「ALL UDP」の受信を許可するルールを加える。これで、インスタンスの起動時にこの「open」を付与することで、すべてのパケットの送受信が許容されるようになる。

  次は、インスタンスへのsshログインに使うsshキーの登録。「アクセスとセキュリティ」の「キーペア」から「キーペアのインポート」を行う。

  「キーペア名」は適当に「user_host」などとして「公開鍵」に「ssh-rsa AAAAB3Nz...JWgDura3 user@host」みたいなのを貼り付ける。公開鍵は、普段からLinuxで端末作業をしていれば、普段の端末から「cat ~/.ssh/id_rsa.pub」して表示されるものがそれである。Windowsなんかだとsshキーの生成ができないので「キーペアの作成」を行う必要があるかもしれんが……以下、このエントリを参照のこと。

  最後に、フローティングIPをいくつか確保しておく。「アクセスとセキュリティ」の「Floating IP」から「Floating IPの確保」を行う。「プール」は「public」のはず。「IPの確保」を行うと、上述した「IPアドレス割り当てプール」の範囲から、ユーザにフローティングIPが貸し出される。たぶん「172.24.0.201」とかが確保されたはず。これをインスタンスに付与することで、外からインスタンスに直接アクセスが可能になるという寸法だ。ついでなので「172.24.0.202」「172.24.0.203」と余計に確保しておく。

  次にやるのはテナント内ネットワークの構築。「ネットワーク」の「ネットワーク」から「ネットワークの作成」を行う。最初から存在している「public」は、先ほどopenstack管理者として作った外部ネットワークだ。

  「ネットワーク名」は適当に「private1」。「サブネット名」は適当に「private1_subnet」「ネットワークアドレス」は完全に好みなので「192.168.0.0/24」など。「ゲートウェイIP」は後に仮想的に設置するルータのアドレスなので「192.168.0.1」などにしておく。

  「IPアドレス割り当てプール」は内部的に割り当てる範囲なので、適当に「192.168.0.100,192.168.0.199」とかになる。「DNSサーバ」は大概ルータだろうから、上と同じく「172.24.0.1」とか「192.168.0.254」など。

  ネットワークが複数あるのだから、ルータでつなぐ必要がある。「ネットワーク」の「ルータ」から「ルータの作成」を行う。「ルータ名」は適当に「router1」。「外部ネットワーク」は当然「public」。これにより「public」側につながったから、次は「private1」側につなぐ。

  ルータ名「router1」をクリックして「インタフェイス」から「インタフェイスの追加」を行う。「サブネット」は「private1」。「IPアドレス」は「192.168.0.1」。これにより、「private1」が「router1」を介して「public」につながったことになる。先ほど「ゲートウェイIP」として登録したのは、このルータのインタフェイスだったわけだ。この様子は「ネットワーク」の「ネットワークトポロジ」で確認できる……んが、この表示、ちょっと凝り過ぎではないか。ネットワークがゴムひものように表現されており、機器をドラッグするとビョ〜ンボョ〜ンと動く。面白いが、必要性がわからんわ。

  ネットワークが完成したところで、次はストレージ。USBのポータブルハードディスクを買ってきて接続するイメージ。「コンピュート」の「ボリューム」から「ボリュームの作成」を行う。「ボリューム名」は適当に「volume1」。「容量」は「1GB」でいいだろう。

  ボリュームも用意できたところで、いよいよインスタンスの立ち上げ。「コンピュート」の「インスタンス」から「インスタンスの起動」を行う。「インスタンス名」は適当に「carmilla」。「フレーバー」は「m1.small」。「インスタンスのブートソース」は「イメージから起動」。「イメージ名」は「Fedora23」。一番最初にGlanceへ登録した起動イメージ名だ。

  まだ起動はできない。「アクセスとセキュリティ」の設定が必要だ。「キーペア」は「user_host」。「セキュリティグループ」は「open」。いずれも、上記の作業の中で定義したものだ。最後に「ネットワーク」の設定。「private1」を上の「選択済みネットワーク」にドラッグアンドドロップする。そして、ようやく「起動」。

  インスタンス「carmilla」が起動したら「Floating IPの割り当て」を行う。「IPアドレス」は「192.168.0.101」を選択して「割り当て」。これでようやく仮想マシンが利用可能な状態になったわけだ。ついでなので同様にインスタンス「chun-en」「yukikaze」を余計に起動しておく。

  ここで、さっき作ったボリュームをyukikazeに装備してみる。「コンピュート」の「ボリューム」に並ぶ「volume1」の「接続の管理」を行う。「yukikaze」を選択して「ボリュームの接続」だ。

  「ネットワーク」の「ネットワークトポロジ」を見るとなかなかおもしろい状況になっている。

  さて、各インスタンスにログインしてみる。登録した公開鍵を持つ、普段の端末から「


2016-12-23(Fri) Re:明るいポスト

  約4年前に製作した郵便ポストの内部の照明だが、光ったり光らなかったり、調子が悪くなってきた。どうも、LEDの根本のハンダが剥がれたり、電池ボックスが錆びたりしているのが原因らしい。そりゃ、ありあわせの部品で適当に作っただけのアイテムだもんなぁ。4年も持てば御の字か。

  画像の説明

  とはいえ、光らないと、夜、郵便ポストの中が見えないもので、異様に不便だ。作りなおすことにした。

  単4x3の電池ボックスの在庫がないので、しばし考えこんだが、以前、電池の一点アースを実現すべく購入しておいた、単4用の電池ホルダ(片側10円)と、なんとなく購入してあった単5サイズで12Vのアルカリ電池(5本で200円)を組み合わせて電源とすることにした。ちょうどいいサイズの基板の切れ端も見つかった。

  電池ホルダは、基板の穴を1.5mmのドリルで拡張すると、ちょうどいい感じに取り付けることができた。基板の場所は取るが、端子自体の値段もたいしたことないし、別途、電池ボックスのマウントを考えなくて済むので、使い勝手がいい。今回みたいに、単5のマウントにも使えるし。ただし、プラスマイナスの表示がないのと、ちょっと取り外しが難しいので、あまり頻繁な交換には向かないが。

  画像の説明

  ナットをひとつ追加しつつ、ネジ、ケース、LEDは古いものを再利用。基板、抵抗、スイッチとリード線は新調してサクっと工作を完了。郵便ポストに設置して作戦終了。さて、今回のアイテムは何年もつことやら。