たんでー のすべての投稿

sheevaplug電源問題

http://web.archive.org/web/20100616193819/http://plugcomputer.org/plugforum/index.php?topic=1318.msg9502#msg9502

$10+送料手数料で、電源交換に応じてくれるとのこと。
送料高すぎだよなぁ、、、、。

次の土曜あたりに電源の線とACアダプターのコネクタを買って、電源外付け化しようと思っていたけど、これは待ちなのか、、、、。

==

その後のフォーラムへの書き込みでは、別に送り返さなくても電源を用意してくれるようだ!すばらしい!
まぁそれでも、熱とかの対策のために電源外付け化するのはありだと思っているんだけれども。どうしようかなぁ。

==
その後、GlobalScaleが電源を売り始めました。
http://www.globalscaletechnologies.com/p-36-sheevaplug-power-supply.aspx
このあたりをご参考に。

sheevaplugが死にまして。

GlobalScaleが交換用電源を売っています。

http://www.globalscaletechnologies.com/p-36-sheevaplug-power-supply.aspx

電源を交換してみた記事はこちら。

https://ttandai.info/archives/724
===========

sambaとcupsを動かし、cronで微妙なアクセスログ収集なぞやっていたsheevaplugが昨晩死にました。

ぐぐれば色々画像があるけれども、自分のも本当にそうなっているか確かめるためにとりあえずガワをあけてみる。

ゴム足をはずしてネジをはずす。わりとネジがきついのでペンチで叩いたり、、、

あけてみた。まだ異常はない?

と思いきやコンセントの口のプラスチックがかけていました。つくりが雑なのかな。

予想通り電源部分が死亡。

コンデンサの液漏れです。

予想できたのは

http://plugcomputer.org/plugforum/index.php?topic=1318.0 (Wayback machine 経由)

http://momo-shin.cocolog-nifty.com/blog/2010/02/sheevaplug-ff7a.html

でも同じ原因でsheevaplugが死んだ様がのっていたからですが。。。。

というか、forumでコンデンサが駄目になって死んだって人がだいぶいるから、駄目なロットをひいたってことなんだろうか。保証期間30日はとっくに過ぎてるし、値段相応の”development kit”ということであきらめることにする。

赤で囲んだのが電源の口。

5V2A入れれば動くようだ。フォーラムではUSBハブの電源アダプタの線からコネクタにつないで起動させている人もいる。

(太陽電池とバッテリで動かしている人もいるようで。http://plugcomputer.org/plugforum/index.php?topic=260.0 (Wayback Machine 経由))

左の黄色で囲んだのがesataで、コネクタを半田付けしてkernelを最新のやつにすれば使えるそうだ。http://shirata.ddo.jp/papa/blog/2010/02/sheevaplugesata-1.html(リンク切れ)

右下の青で囲んだやつはjtagのやつだとかなんとかforumに書いてあった。

まぁ、死んだものは仕方ないが、電源がこの調子だと、代替機としてguruplugを買うのはなしかな。とりあえずは電源の口に5V供給する方法を何とか考えるために、明日あたりちょっと探してみることにする。
#どうでもいいが、今回gooblogの画像関連が新しくなって始めて使ったが、お絵かきツールとか、アップロード関連とか、以前使ったときよりすごく使い勝手がよくなってびっくりした。

##まぁ、アドバンス会員だからといってこのあたりで特にいいことはなさそうな気がしたが、、、。1TBも画像おかないしねぇ、、、。
—–

代替機になりそうなものを探しています。

http://shop.epson.jp/n090603-1/とか

http://www.mouse-jp.co.jp/desktop/lmmini/とか

がとりあえず今の用途には使える気がしているけど、ディスプレイがないんだよなぁ、、、。

goo mailが、、、

ブログと一緒に金を払って使っているgoomail。
gmailの方がよさげだろうなあと思いつつ、sylpheedでIMAP使えれば十分と思っていた今日この頃。まぁ、goomailを使いつづけるのは心情的な理由もあったりする。

と、思っていると、なんだよgoomailのIMAP機能が死んでるじゃないか、、、。夏までメンテナンス?機能増強でもしてくれるんだろうか。

SSLでの接続が可能になってくれたらうれしいんだけど、まぁ実際
goomailの閲覧、送受信はwebが主体だから別にいいや。
期待しないで復活を待っておこう。

ブランドの価値は?

よそで書いたことのメモ。

ブランドに投資するって言うのは、コストを下げる合理的な思考や時間の節約だろう。経験もだいぶ近い。まぁ、合理的な判断が合理的な結果になるわけじゃないけどねー。

品質に関するブランドの価値は、真の品質を知るためにかかる負の価値を減ずるところ、品質をある程度推定できるところにあるんだろうと思う(後者がネームバリューを含むか?)。ブランドによって推定される品質が真の品質より不当に高くなっている場合でも、真の品質を知ってよりよい選択をするためにかかるコスト(ブランド信仰が強いほど高く見積もられる?)が二つの品質の差に見合わなければブランドからは脱却できないんじゃなかろうか。(ぼろい商売だよなぁ、、、)

真の品質が少しでも高いモノが絶対的に良いという選好者もその文脈の中で合理的な選択をしているはず。

価値=商品の持つ真の価値-価格+(真の品質)-(推定される品質)+(それ以外)
その他が多すぎて意味がないかな。()は適当な関数。

gooブログ6周年

まだ6年しかたってなかったのか。
このブログが始まったのが2005年5月だから、gooブログ自体はもっと前からあったのかと思ってた。

ま、ブログ作ってから色々あったが、これからもあるのかねぇ、、、。

6周年キャンペーン、ヘルシオかvaioが欲しいです。。。。
この手の懸賞って当たったことがないんだけどね〜。

いまいち

どうも最近具合がよくない。
耳がおかしくなったかなぁ、、、。
ちょっと右の耳が詰まった感じで、このまえの土曜とかは
頭がぐるぐるしてた。
なかなか耳鼻科にいけそうにないし、どうしたものやら。

BEGIN JAPANOLOGY

NHKのBegin Japanologyが割りと面白い。
木曜深夜にやってるやつ。
ああいう日本文化を紹介する番組は日本語、日本人視点だと作りにくいのだろうか。
単純に楽しめる番組だと思う。ナレーターのセンスが違うというか。
日本でやるなら、アナウンサーとかゲーノージンとかが、浮かれて出て行って頓珍漢なこと言って終わるような感じかなぁ。
もっと良質な番組を!!

Knoppix6.0.1を使ったパーティションテーブルの復旧

fedora12のbootパーティションが足りずにkernelがいれられない、とyumに怒られたのでgpartedで拡張したのがすべての間違いだった、、、、。
その後、別パーティションに置いてあったwindowsが起動しなくなった。

とりあえずtestdiskを試すと、いろいろ変なところがあった。
gparted、fdisk -lでみるとbootパーティションがちゃんと広くなっているのに、yumには怒られ続けるし、dfすると拡張前のサイズが表示される。
パーティションの順が1、windows 2、boot 3、Linux LVMになっていて、bootを広げるのに前の方のwindowsを詰めて広げたので怪しくなったようだ。
testdiskすると、元の大きさのbootパーティションが二つ(元の場所と、前に詰めた場所に)置いてあった。

とりあえずファイルシステムの大きさがおかしいことになっていたので、resize2fsで拡張。
次に、windowsのインストールCDを入れて、回復モードでFIXMBR,FIXBOOTして、再起動してみても起動しない。起動CDはwindowsXPsp2、インストールされているのはwindowsXPsp3だから変なことになっているのかもしれない、と考えて、ここはKnoppixでtestdisk。
windowsパーティションのパーティションテーブルが壊れていたので、[Advanced]を選んでその先で作成しなおす。次に、bootパーティションをとりあえずwindowsパーティションにして、MBRを上書きして再起動する。
windowsが立ち上がるのを確認して、再度Knoppixからtestdiskして、bootパーティションをbootにして、MBRを上書きして、あとは以前の
https://ttandai.info/archives/626
この記事の下の方の記述に従ってgrubの再インストール。
これで元通り。

windowsxpとリンク

sheevaに構築したsambaにアクセスしに行くときに、手元のwindowsXPHOMEだと毎度毎度パスワードを聞かれてうるさいことこの上ない。どうやって設定するのやら、、、、。

windowsのユーザ名とパスワードが、sheeva上のものと一致していれば面倒じゃないんだとか、、、。というわけでwindowsの方のユーザ名を変えようとすると、、、、。

(ホームディレクトリとかなんとか、)設定ファイルをいろいろ移さないといけないことになるわけで、一発シンボリックリンクでもはればいいか、と思ったところでそんなことはできないことに気づいた。

まったくなんともけしからんOSだよなぁ、、、。使ってられん。

結局実現したいことは
http://oshiete1.goo.ne.jp/qa819655.html
にしたがって解決。

—–
その後、windowsXPでもリンクをはれるということを知った。
http://www.atmarkit.co.jp/fwin2k/win2ktips/991fjunction/fjunction.html
このとき使っていた外付けハードディスクはNTFSじゃなかったはずだけど、気づいていれば、、、。

gooblogのアクセス解析ログを自動収集

せっかく使えるsheevaで、24時間稼動しているlinuxサーバの割りにこれまでsambaとcupsしか使っていなかったが、cronを回してgooblogのアクセス解析のログを自動で取得するようにした。

とりあえずテストということで、ログが保存されている11月1日分から昨日分までとってくる。
1ファイル1日分というのが微妙に使いにくい。毎日一回クリックする気がおきないから、1週間分くらいにまとめてファイルを出して欲しいところ。まぁ、面倒だからこそcronで回すんだけど。

結局ログのファイルを落として適当に整形したりまとめて、一ヶ月単位くらいでファイルにまとめるのが使いやすいか。

以下が作業メモ

まずは
$ w3m http://blog.goo.ne.jp/admin
で、ログイン状態を保持する、にチェックを入れてログイン。
次に、w3mを起動中に o をおして設定画面
随分下のほうの、「文書の標準の文字コード」をJapanese (Shift_JIS, CP932)に変更
ログの取得は
$ w3m “http://blog.goo.ne.jp/admin/showanalyze/8b?type=csv&mode=pv&date=20100210″ -dump >hogehoge
など
これを組み合わせたシェルスクリプトを組んでcronで回そうというのが今回のお話でした。
スクリプトとかコマンドとかを綺麗に書くのはどうするんだったかなぁ、、、。

近況(201002月

sheevaは安定稼動。
同じメーカーの16GBのSDカードをもう一枚(3000円弱?)入手してデータのコピー。
(16GB分もddでコピーするのはちょっといやなので、パーティション切って、データを手でコピー。)

次の一手はUSBカメラでもつけて監視カメラ化だろうか。といっても、あきディスクがないし、そんなに監視したいものがあるわけでもない。ワイヤレスUSBで遠隔のカメラを操作できたら面白いかも。玄関の監視とか。
ネットワーク化して面白いUSB機器って、考えてみたらそんなにないんだよなぁ。パソコンから操作する(そしてパソコンからしか操作できない)オーディオも微妙だし。
ルータにするにしても追加の投資が必要。はてさて。

ファミコンウォーズDSはその後順調に攻略して、そろそろ100時間。
トライアルは初見でやるとAが多い。タイムサバイバルは残り7秒でクリアとか。そんなもん。

ファミコンウォーズDS

年末に新幹線の暇潰しにと思って、叩き売りの星のカービィと一緒に買ったファミコンウォーズDS。

とりあえずハードキャンペーンをSランクでクリア。
普通のキャンペーンとたいして変わっていなかったようなところが多かった気がする。というか、タッグブレイク強すぎ。ドミノも強すぎ。

クリア後に攻略サイトなぞ見てみたところ、ヘルリウムで稼ぐだとか、面倒だなぁと思ったところが簡単と評されていたりなど、そういうもんかなぁ、と言う感じ。
索敵マップで敵の配置がわかっていること前提で攻略されてもさぁ、、、。
まぁ、攻略っていうのはそういうもんか。

ゲームボーイウォーズをやっていた時分にはなかった、先攻先制な戦闘がなんともはや、そんなもんかなぁ、と言う具合。
ヤマモト先生いいよー。やっぱり戦闘ヘリだよ。

トライアルはまだ半分位しかやってないが、なかなか厳しいところもある。グーチョキ岬とか、真っ向勝負でいったら60日くらいかかったりして。結局ヘリに歩兵積んで一気にいくのかなぁ、、、、。評価があるとその辺気になるから、どうしてもやりようが決まってしまうのが何とも。
ブレイクなんか必要ねーよ!と声を大にしていいたくなってしまう。

GBAにも出ていたようで、見つけたら買ってみようかなぁ、と言う感じ。
っというか、サバイバルとか含めると全部やるまでどれだけ時間かかるんだこりゃー。という感じ。ずいぶん長く遊べそうだ。

sheevaplug作業メモ4

ひきつづきサーバの構築中。

http://honana.com/system/iptables.html
ここを参考にしてiptablesの設定。
/etc/init.d/iptables saveしてからrestartするのを忘れずに。
シェルスクリプトの改行コードを変えないとシェルスクリプトが走らなかった。
適当に編集して、sshdとかsambaとかcupsとかを開けておく。

sambaのログがなんか変だなぁ、ということで、いろいろ変更。
smb.confに
socket address = hogehoge
を追加しないとうるさく言われる。

udpの631ポート、192.168.0.255まで届かない旨のログがdmesg|tailしたときに出まくる。→iptablesで設定し直し。
cupsってtcpじゃなかったっけ?まぁ両方書いておく。

/var/log/eximの下にログがのこる。rootにメールを送ろうとするとエラーになるらしい。
/etc/aliasesにrootあてのメールのエイリアスを設定。

うーん。まだルータを越えたsshはだめだぞ。。。
まぁ、こんなもんだろうということで、そろそろSDカードのバックアップをとりたいんだけども、、、。
まぁいいや。

今のSDカードは16GB
そのまま使わないのはもったいないので何かしら使ってやろうと思う。まぁとりあえずは/homeのあたりを適当に10GBくらいきるのだろうか。
で、とりあえずシステムは4GBのSDカードにも収まるようにきって,残りをざっくりhomeに当てた。
バックアップ用に16GBのSDカードを買ったが、もっと小さいやつでも良かったなぁ、、、。

sheevaplug作業メモ3

帰還。

とりあえず作業メモ1に追記。ファイアウォールの設定を変更。

さて、本体に入れておくにはfedora11はダメだと判断してubuntu9.0.5を入れる。
(plugcomputer.orgからダウンロードしたやつ)
この辺を参考に設定変更など。
http://biokids.org/?%A4%C9%A4%D6%A4%AA%2FSheevaPlug%A4%C7%CD%B7%A4%DC%A4%A6%A1%AA
http://mizupc8.bio.mie-u.ac.jp/pukiwiki/index.php?SheevaPlug%2FNAND_Flash
カーネルモジュールのビルドは上の方のリンク。
modules.depにモジュール名を追加するにはdepmod -a とかする。

/etc/default/ntpdate
に適当なntpサーバを入れてntpdate
apt-get update
apt-get upgrade
した。
次はSDカードに適当なディストロを突っ込むことにする。
ちなみに、plugcomputer.orgから拾ってきたubuntu9.0.5は、/var/cache/apt/archives/partial
を掘らないとapt-getがつかえないようなので、rc.localにそのように書いておく。

やっぱりredhatじゃないとだめだよね、ということでfedora12を試すことにする。
http://fedoraproject.org/wiki/Architectures/ARM
からfedora12のprebuilt root file systemというのをもってきて、bootする前にその中のetcに入って
http://honana.com/fedora/10/setup.html
にしたがって設定変更。

んでもって試しにfedora12にnfsでboot。
よさげな感じなのでSDカードに入れることにする。

母艦で適当にfdisk、mkfsして、
http://notepad4yu.wordpress.com/2009/05/13/sd-%E3%82%AB%E3%83%BC%E3%83%89%E3%81%8B%E3%82%89-sheevaplug-%E3%82%92%E8%B5%B7%E5%8B%95%E3%81%99%E3%82%8B/
を参考にしてubootを設定。
ん?/etc/fstabでswapがなんとかと怒られる。
fstabを編集し忘れた。
適当に編集して(母艦のやつをコピーして編集して、、、)再起動。動いた。めでたしめでたし。

userを足したりいろいろ遊ぶ。とりあえずは
http://fedorasrv.com/fedora12-init.shtml
http://honana.com/fedora/10/setup.html
http://tmcosmos.org/linux/fedora/10/
なんかを参考にしていじることにする。

http://fedorasrv.com/
ここを参考にしてとりあえずntpサーバを設定。
タイムゾーンの変更は
http://d.hatena.ne.jp/rx7/20080425/p2
を参考にして
# cp /usr/share/zoneinfo/Japan /etc/localtime
な感じ。

sshが、どうもルータの向こうからアクセスできないみたいだ、、、。
cupsもうまくいかないなぁー。

とりあえずcupsは
http://honana.com/system/cups.html
を参考にやってみているけれども、、、、ふむむ。
fedora12の設定ファイルは/etc/cups以下になっている。はてさて

上手くいかないのはどうも/dev/usb/lp0ができていないからのようで、これをちゃんと作ってもらうにはカーネルモジュールを用意する必要があった。カーネルモジュールはnandにつっこんだubuntuでは作業したけどfedoraではやってなかったんだった。
$ lsmod
したときに全くひとつもモジュールが見えない。
nandでやると、ipv6,usblpなどがはいっているようにみえる。
面倒くさいから、どうせ同じカーネルだ、とえいやっとscpで母艦を経由して
/lib/modules/以下をまるっとコピー。
まぁなにやらうまくいきそうなのでOK。
あとは上のほうのURLに従って作業。簡単簡単。

cmpがない!!
# yum install diffutils
でOK

次はsambaサーバの設定
設定は/etc/samba/smb.conf
http://honana.com/samba/setting.html
http://fedorasrv.com/samba.shtml
まぁまたここを参考にしてやってみる。
設定は参考にして、ゲストは別に入れなくてもよい。
まぁほとんど[global]はデフォルトのまま。
起動ごとにusbでつないだハードディスクの/dev/以下の名前が必ずしも一致しないので、
/dev/disk/by-uuid/以下の対応するものを/etc/fstabに書いておく
(たとえば、/dev/sda1なんかにシンボリックリンクがはってあるやつ。)
で、結局fstabのハードディスクの行はこんな感じ
UUID=<UUID> /mnt/disk vfat defaults,uid=99,gid=99,rw,iocharset=utf8,codepage=932,umask=000 0 0
ちなみにuidとgidの99は、nobodyになっている。

windowsのほうのzonealarmの設定を変えないとsambaのディレクトリにアクセスできなかったので要注意。日本語ファイル名を扱うのに
http://biokids.org/?%A4%C9%A4%D6%A4%AA%2FSheevaPlug%A4%C7%CD%B7%A4%DC%A4%A6%A1%AA
ここを参考にしてモジュールをビルド。

sheevaplug作業メモ2

参考にしたのはググれば出てくる範囲だが,kernelのインストールに関しては
http://lglinux.blogspot.com/2009/09/recovering-bad-sheevaplug-kernel-flash.html
ちなみにkernelは
http://sheeva.with-linux.com/sheeva/
ここから最新版をとって入れる(どうでもいいが、ペンギンが動く!)
ubootのバイナリは
http://plugcomputer.org/plugforum/index.php?board=4.0
ここの3.4.25のなかの3ページ目?あたりにバイナリファイルをゲット
ubootのインストールは
http://www.saigyo.org/hiki/?Update+U-Boot+by+SheevaPlug+oneself
http://mizupc8.bio.mie-u.ac.jp/pukiwiki/index.php?SheevaPlug%2FU-Boot
ここにあるとおりにできた。

さて、記事の続き。
変更前後の設定はこんなかんじ。

__ __ _ _
| / | __ _ _ ____ _____| | |
| |/| |/ _` | ‘__ / / _ | |
| | | | (_| | | V / __/ | |
|_| |_|__,_|_| _/ ___|_|_|
_ _ ____ _
| | | | | __ ) ___ ___ | |_
| | | |___| _ / _ / _ | __|
| |_| |___| |_) | (_) | (_) | |_
___/ |____/ ___/ ___/ __|
** MARVELL BOARD: SHEEVA PLUG LE

U-Boot 1.1.4 (Dec 27 2009 – 22:03:21) Marvell version: 3.4.27

U-Boot code: 00600000 -> 0067FFF0 BSS: -> 006CFEE0

Soc: 88F6281 A0 (DDR2)
CPU running @ 1200Mhz L2 running @ 400Mhz
SysClock = 400Mhz , TClock = 200Mhz

DRAM CAS Latency = 5 tRP = 5 tRAS = 18 tRCD=6
DRAM CS[0] base 0x00000000 size 256MB
DRAM CS[1] base 0x10000000 size 256MB
DRAM Total size 512MB 16bit width
Addresses 8M – 0M are saved for the U-Boot usage.
Mem malloc Initialization (8M – 7M): Done
NAND:512 MB
Flash: 0 kB

CPU : Marvell Feroceon (Rev 1)

Streaming disabled
Write allocate disabled

USB 0: host mode
PEX 0: interface detected no Link.
Net: egiga0 [PRIME]
Hit any key to stop autoboot: 0
Marvell>> printenv
baudrate=115200
loads_echo=0
netmask=255.255.255.0
run_diag=yes
CASset=min
MALLOC_len=1
ethprime=egiga0
bootargs_root=root=/dev/nfs rw
image_name=uImage
bootcmd=tftpboot 0x2000000 $(image_name); setenv bootargs $(console) $(bootargs_root) nfsroot=$(serverip):$(rootpath) ip=$(ipaddr):$(serverip)$(bootargs_end) $(mvNetConfig) $(mvPhoneConfig); bootm 0x2000000;
standalone=fsload 0x2000000 $(image_name);setenv bootargs $(console) root=/dev/mtdblock0 rw ip=$(ipaddr):$(serverip)$(bootargs_end) $(mvPhoneConfig); bootm 0x2000000;
ethmtu=1500
mvPhoneConfig=mv_phone_config=dev0:fxs,dev1:fxs
mvNetConfig=mv_net_config=(00:11:88:0f:62:81,0:1:2:3),mtu=1500
usb0Mode=host
yuk_ethaddr=00:00:00:EE:51:81
nandEcc=1bit
netretry=no
rcvrip=169.254.100.100
loadaddr=0x02000000
autoload=no
ethact=egiga0
ethaddr=00:50:43:??:??:??
ipaddr=192.168.0.5
serverip=192.168.0.2
console=console=ttyS0,115200 mtdparts=orion_mtd:0x100000(u-boot),0x700000@0x100000(uImage)ro,0x1f700000@0x800000(rootfs)rw
arcNumber=2097
bootargs_end=255.255.255.0:DB88FXX81:eth0:none
rootpath=/path/to/the/rootfs/directory/
stdin=serial
stdout=serial
stderr=serial
mainlineLinux=yes
enaMonExt=no
enaCpuStream=no
enaWrAllo=no
pexMode=RC
disL2Cache=no
setL2CacheWT=yes
disL2Prefetch=yes
enaICPref=yes
enaDCPref=yes
sata_dma_mode=yes
netbsd_en=no
vxworks_en=no
bootdelay=3
disaMvPnp=no
enaAutoRecovery=yes
pcieTune=no

Environment size: 1414/131068 bytes
変更はmainlineLinux,arcNumber,bootargs_end,console,ipaddr/serverip,bootcmd
だったと思う。もちろんethaddrとrootpathは適切に編集してあります。

で、変更は
>> setenv bootargs ‘console=ttyS0,115200 rootfstype=jffs2 mtdparts=orion_mtd:0x100000(u-boot),0x700000@0x100000(uImage)ro,0x1f700000@0x800000(rootfs)rw root=/dev/mtdblock2 ip=$(ipaddr):$(serverip)$(bootargs_end) $(mvNetConfig) $(mvPhoneConfig)’
>> setenv bootcmd ‘nand read.e 0x800000 0x100000 0x400000;bootm 0x800000’

http://www.openplug.org/plugwiki/index.php/Flashing_an_Operating_System_onto_the_Plug
ここに従ってfedora11のjffs2を作ってbootしたけど、rootパスがわからん。nosoup4uじゃないのか、、、。passwdにguestがあったので試してみたら、パスなしで入れた。うーむむ。

当時
http://fedoraproject.org/wiki/Architectures/ARM/SheevaplugUSB
からとってきたfedora11のデフォルトのrootパスはmarvellだった。
fedora-armのメーリングリストのログを検索したら見つかった。

とりあえずrootになってみる。っつうか、lessとかpasswdとか入ってないね、、、。
yumを使おうとしたら怒られた。rpm -qaも効かないから、データベースが構築されていないんだろう。
とおもってrpm –rebuilddbもダメ。うーぬぬ。

どうも起動時にエラーが多かったりするようだから、ubuntuに戻そうかなぁ、、、。
apt-get/aptitudeよりyumの方が使いやすい気がする、というのはある。

こんなところで時間切れ。この作業のせいで完全に昼夜逆転したが、ま、正月はこんなもん。
続きはまた来年。