modcrew の防水加工サービスの話を聞いてきた

先日の日曜は秋葉原に寄って来ました.
丁度modcrew の防水加工サービスが開店したばかりという事でお店を覗いて話聞いて来ました.

お店はこちらの2F .

横の階段ではなく店内を突っ切って奥の階段を登っていきます.
するとカウンターだけのお店.
そこでどんなかんじか聞いて来ました.

聞いてきたことをざっとまとめると,

  • iPhone4 以降対応.
  • Android は今のところ非対応.
    • しかし,Galaxy4s は検証済み.他のも対応するだろう.
    • 未保証で良ければ非対応機種もやる.
  • 14:00締め切りで一括で処理して18:00 に受け渡し(もしかしたらこのへん時間間違ってるかも)
  • 14:00 を過ぎてからの受付は次の日開店時受け渡し.
  • 1年ほど効果は続く.1年毎に防水加工したほうが良い.#でも1年未満で皆さん買い換えますよね的な(ぉ
  • コネクタなどはそのまま使える.
    • コーティング剤がコネクタとこすれて剥がれるので問題ない.
    • コーティング剤は液晶面などにも塗布されるが元々ガラスなので拭きとる.

こんな感じだったかなー.
コーティング処理済みのiPhone も見せてもらったけどぱっと見未加工品と違いわかりませんでした.

これだけだと不安だけど保険にいいかなと思いました.

聞き違いや勘違いなんかもあるかもなので加工時はお店で聞いてくださいね.

mozc-tool option

飛行機の機内でMozc の設定を変えようと思ったのですが,mozc-tool のオプションを覚えていない.
mozc-tool –help とかも無視される.
でも以前co したsource はあったのでその中を覗いて調べてみました.

ちなみに Mozc-1.5.1090.2 で動作確認を行いました.

手書き入力

% /usr/lib/mozc/mozc_tool --mode=hand_writing

文字パレット

% /usr/lib/mozc/mozc_tool --mode=character_palette

辞書ツール

% /usr/lib/mozc/mozc_tool --mode=dictionary_tool  

単語登録

% /usr/lib/mozc/mozc_tool --mode=word_register_dialog

プロパティ

% /usr/lib/mozc/mozc_tool --mode=config_dialog

Kobo Debian で dist-upgrade 後にもタッチパネルが使えるようにする

marekさん謹製のKobo Debian でapt-get dist-upgrade してxorg を更新するとタッチパネルが利用できなくなります.

原因は,marekさん謹製のマルチタッチドライバ(Kobo オリジナルはシングルタッチ)がxorg のバージョンに追従されないため.
解決するためにドライバをビルドしなおしてインストールする必要がある.

手順

apt-get dist-upgrade を行った後, /home/marek/src/xorg-input-kobomultitouch に移動し,ビルド&インストールを行う.
次回起動時に認識するようになる.

# cd /home/marek/src/xorg-input-kobomultitouch
# make clean
# make
# make install

開発環境は導入済みなので開発環境を導入する必要はない.

以前紹介した

を使ってもOK

デジタルガジェットで手書きマッピングしたい

OpenStreatMap のマッピング方法の一つにWalking Paper というものがあります。
これはマッピングしたい位置のOpenStreetMap 地図を印刷して、その紙に手書きでマッピングしてその紙をスキャンしてそれを見ながらマッピングするというものです。

OSM 地図印刷 -> 手書きマッピング -> 取り込んでPC マッピング

#最近だとコンビニで印刷もスキャニングもできるので楽ですね :)

これをタブレットなどのデバイスでできると便利そうだなーと思っていたのでした。
iPad 等では手書きがいまいちかなとか。enchantmoon はすごく相性良さそうだけど解像度が足りなさそう。
SHARP のd電子ノート(WG-S20/WG-N20)も解像度が足りなさそう…。
そもそも液晶画面だと外で見えにくいんですよね><

というところにソニー デジタルペーパー DPT-S1 というデバイスが出ました。

これは電子ペーパーだし、手書きもWACOM だしとよさげ。
ネックは100k という値段でしょうか…。

誰か試してみませんか?

Linux のDisk 確認方法

Linux マシンにSD Card や USB メモリ等を複数接続した時などにどれがどのデバイスかわからなくなった時などに役立ちそうな確認方法です。
(/dev/sda… とか /dev/mmcblk0… とか)

dmesg

よく dmesg を確認します。

% dmesg
  :
[378481.925145] usb 4-1.2: new high-speed USB device number 7 using ehci-pci
[378482.022988] usb 4-1.2: New USB device found, idVendor=056e, idProduct=6009
[378482.022991] usb 4-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[378482.022993] usb 4-1.2: Product: MF-HDU2
[378482.022994] usb 4-1.2: Manufacturer: ELECOM
[378482.022995] usb 4-1.2: SerialNumber: 0708C20C90C7B761
[378482.023271] usb-storage 4-1.2:1.0: USB Mass Storage device detected
[378482.023343] scsi9 : usb-storage 4-1.2:1.0
[378483.083291] scsi 9:0:0:0: Direct-Access     ELECOM   MF-HDU2          PMAP PQ: 0 ANSI: 4
[378483.083655] sd 9:0:0:0: Attached scsi generic sg2 type 0
[378484.049829] sd 9:0:0:0: [sdc] 62554112 512-byte logical blocks: (32.0 GB/29.8 GiB)
[378484.052425] sd 9:0:0:0: [sdc] Write Protect is off
[378484.052427] sd 9:0:0:0: [sdc] Mode Sense: 23 00 00 00
[378484.055034] sd 9:0:0:0: [sdc] No Caching mode page found
[378484.055037] sd 9:0:0:0: [sdc] Assuming drive cache: write through
[378484.064057] sd 9:0:0:0: [sdc] No Caching mode page found
[378484.064060] sd 9:0:0:0: [sdc] Assuming drive cache: write through
[378484.096077]  sdc: sdc1
[378484.103442] sd 9:0:0:0: [sdc] No Caching mode page found
[378484.103449] sd 9:0:0:0: [sdc] Assuming drive cache: write through
[378484.103454] sd 9:0:0:0: [sdc] Attached SCSI removable disk

ELECOM MF-HDU2 が /dev/sdc として認識しています。
しかし、これだと画面から流れたりどのデバイスを先に刺したかが判らなくなるといったんumount して接続しなおしをしないといけません。

/dev/disk/by-id

こんなとき /dev/disk/by-id を見ると判るかもしれません。※udev 依存

% ls -lA /dev/disk/by-id
合計 0
lrwxrwxrwx 1 root root  9  2月 23 02:42 ata-INTEL_SSDSA2CW600G3_CVPR1206005W600FGN -> ../../sda
lrwxrwxrwx 1 root root 10  2月 23 02:42 ata-INTEL_SSDSA2CW600G3_CVPR1206005W600FGN-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10  2月 23 02:42 ata-INTEL_SSDSA2CW600G3_CVPR1206005W600FGN-part2 -> ../../sda2
lrwxrwxrwx 1 root root 10  2月 23 02:42 ata-INTEL_SSDSA2CW600G3_CVPR1206005W600FGN-part5 -> ../../sda5
lrwxrwxrwx 1 root root  9  2月 26 03:53 ata-ST9500420ASG_5VJ79GDX -> ../../sdb
lrwxrwxrwx 1 root root 10  2月 23 05:05 dm-name-luks-3baf2c17-3b18-44ee-9547-cb87b88a80ab -> ../../dm-3
lrwxrwxrwx 1 root root 10  2月 23 02:42 dm-name-sdb5_crypt -> ../../dm-0
lrwxrwxrwx 1 root root 10  2月 23 02:42 dm-name-x220-root -> ../../dm-1
lrwxrwxrwx 1 root root 10  2月 23 02:42 dm-name-x220-swap_1 -> ../../dm-2
lrwxrwxrwx 1 root root 10  2月 23 02:42 dm-uuid-CRYPT-LUKS1-1b4bc14d71604ab5b3db2096a7f61be0-sdb5_crypt -> ../../dm-0
lrwxrwxrwx 1 root root 10  2月 23 05:05 dm-uuid-CRYPT-LUKS1-3baf2c173b1844ee9547cb87b88a80ab-luks-3baf2c17-3b18-44ee-9547-cb87b88a80ab -> ../../dm-3
lrwxrwxrwx 1 root root 10  2月 23 02:42 dm-uuid-LVM-L9AiiS7dZRu2WvjdUirxz9fS4OIIqRpKmuJecuwuh7tfiQxUbaGcvv9ppr7WhxZP -> ../../dm-2
lrwxrwxrwx 1 root root 10  2月 23 02:42 dm-uuid-LVM-L9AiiS7dZRu2WvjdUirxz9fS4OIIqRpKxnaP2Gj6PtwuddX1iXfyTQq0hxGbi6o3 -> ../../dm-1
lrwxrwxrwx 1 root root 13  2月 26 05:07 memstick-SD16G_0xd39a5655 -> ../../mmcblk0
lrwxrwxrwx 1 root root 15  2月 26 05:07 memstick-SD16G_0xd39a5655-part1 -> ../../mmcblk0p1
lrwxrwxrwx 1 root root  9  2月 23 02:42 scsi-SATA_INTEL_SSDSA2CW60CVPR1206005W600FGN -> ../../sda
lrwxrwxrwx 1 root root 10  2月 23 02:42 scsi-SATA_INTEL_SSDSA2CW60CVPR1206005W600FGN-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10  2月 23 02:42 scsi-SATA_INTEL_SSDSA2CW60CVPR1206005W600FGN-part2 -> ../../sda2
lrwxrwxrwx 1 root root 10  2月 23 02:42 scsi-SATA_INTEL_SSDSA2CW60CVPR1206005W600FGN-part5 -> ../../sda5
lrwxrwxrwx 1 root root  9  2月 26 03:53 scsi-SST9500420ASG_FEDCBA9876543210 -> ../../sdb
lrwxrwxrwx 1 root root  9  2月 27 20:52 usb-ELECOM_MF-HDU2_0708C20C90C7B761-0:0 -> ../../sdc
lrwxrwxrwx 1 root root 10  2月 27 20:52 usb-ELECOM_MF-HDU2_0708C20C90C7B761-0:0-part1 -> ../../sdc1
lrwxrwxrwx 1 root root  9  2月 26 03:53 wwn-0x5000c5002998a599 -> ../../sdb
lrwxrwxrwx 1 root root  9  2月 23 02:42 wwn-0x500151795957940c -> ../../sda
lrwxrwxrwx 1 root root 10  2月 23 02:42 wwn-0x500151795957940c-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10  2月 23 02:42 wwn-0x500151795957940c-part2 -> ../../sda2
lrwxrwxrwx 1 root root 10  2月 23 02:42 wwn-0x500151795957940c-part5 -> ../../sda5

USB 接続のデバイスだけなら以下のようにするとすっきりしますね。

% ls -l /dev/disk/by-id/usb*
lrwxrwxrwx 1 root root  9  2月 27 20:52 /dev/disk/by-id/usb-ELECOM_MF-HDU2_0708C20C90C7B761-0:0 -> ../../sdc
lrwxrwxrwx 1 root root 10  2月 27 20:52 /dev/disk/by-id/usb-ELECOM_MF-HDU2_0708C20C90C7B761-0:0-part1 -> ../../sdc1

/dev/disk の下には他にも by-label by-path by-uuid があるようです。何かの役に立つかもしれません。

  • by-label ボリュームラベルのデバイス
  • by-path デバイス名(<パスID>-:-<パーティション>)
  • by-uuid デバイスのuuid 表示

P2VJ というビットマップ形式の画像ファイルからベクター形式のSVG形式に変換するソフトを試してみた

P2VJ というビットマップ形式の画像ファイルからベクター形式のSVG形式に変換するソフトを見かけたので試してみました。
どういったものかというとビットマップ形式のPNG/Jpeg/BMP の画像をSVG かPDF のベクター形式のファイルに変換してくれるというものです。

Java で書かれていて、Java 環境であれば動作するようです。
Windows 向けには.bat ファイルが用意されていますが、手元の環境はLinux だったので起動用のsh script を用意して実行するようにしました。

P2VJ をダウンロードして展開したディレクトリに移動して、実行用のscript をダウンロードして実行権を付与して実行します。

$ wget https://gist.githubusercontent.com/matoken/9200813/raw/51f17da9e8b8d17e6449063baeb40e8499df2b4e/runp2vj.sh
$ chmod +x runp2vj.sh
$ ./runp2vj.sh

使い方は基本的に変換したい画像を指定するだけです。詳細は同梱のreadme.txt/readme_en.txt に詳しいです。

チェックボックスについて
postere・・・ポスタリゼーション(色の平滑化)をかけます。写真や、ぼかしを使っている絵を変換しようとする場合ONにしておいてください。jpeg画像の場合もONにしておくことをお勧め
します。
remove anti-Aliase・・・完全に2値化された絵(MSペイントなどで描かれた絵)を変換する場合以外はONにしておいてください。
makepng・・・ベクタ化した後PNG画像を作ります。
makepdf・・・ベクタ化した画像の PDF ファイルを作ります。コンビニとかで高解像度画像が(たぶん)そのまま印刷できるよ!

サイズが各種揃っていて、SVG もあるDebian ロゴで試してみました。

  • Debian ロゴ
    • openlogo-nd-25.png -> 25×30 pix
    • openlogo-nd-50.png -> 50×61 pix
    • openlogo-nd-75.png -> 75×92 pix
    • openlogo-nd-100.png -> 101×124 pix

このPNG ファイルをP2VJ でSVG に変換しました。

SVG に変換たものを横幅200pix に拡大したもの。

SVG に変換たものを1000×1230 に拡大して切り出したもの。

さすがにあまり小さい画像だとイマイチですが、覚えておくと色々使えそうです。

以下メモ。

% montage -label %f -tile 2x2 -geometry 200 -quality 100 openlogo-nd-25.svg openlogo-nd-50.svg openlogo-nd-75.svg openlogo-nd-100.svg out.png
% for i in openlogo-nd-*.svg ;do convert -geometry 1000x1230 -crop 400x400+200+200 $i $i-corp.png; done
% montage -label %f -tile 2x2 -geometry 200 -quality 100 openlogo-nd-25.svg-corp.png openlogo-nd-50.svg-corp.png openlogo-nd-75.svg-corp.png openlogo-nd-100.svg-corp.png corp.png

「Raspberry Piではじめる どきどきプログラミング」を読んでみた

PEG(programming education gathering) の公式推奨本ということで「Raspberry Piではじめる どきどきプログラミング」を読んでみました。

実は少し前に「小学生からはじめるわくわくプログラミング」の方も読んでいました。こちらはPC でScratch を利用する本でした。
「Multi-Device UX Competition 2014」鹿児島アイデアソン – 301 Coworking & Share space in Kagoshima-shi, Kagoshima, Japan
に参加した時の商品で頂いたものです。)

なので、今回はRaspberryPi でScratch の本かなと思っていたのですが、それだけでなくMinecraftPi やMinecraftPi をScratch で操作する方法、Lチカ 等まで紹介されていました。

MinecraftPi については今回初めて知ったのですが、RasoberryPi + Rasbian 向けのMinecraft というだけでなく、他のMinecraft にはないプログラミング連携機能を持っているようです。

このプログラミング連携機能を使ってScratch からMinecraft を操作したり、Python から操作したりできるようです。

この本の中では「ものづくりを仮想世界で楽しもう」「ものづくりの自動化に挑戦しよう」として紹介されています。
Lチカのあたりは「現実の世界をプログラミングしよう」として紹介されています。
応用して電子工作で何らかのセンサと、Minecraft を連携させてみると面白そうだなと思いました。

恐らくRaspberryPi や部品の入手、ソフトウェアの導入のあたりを大人が手伝ってあげれば小学生でもひと通り試せるような感じです。
ワークショップなどを行う場合は導入済みのSD Card を用意しておくと良さそうです。
これをきっかけにプログラミングや電子工作に興味を持つ子供が増えていくといいなぁと思います。

(鹿児島でも現物を入手できる場所があるといいんですが…)

第4回鹿児島node-jsの会に参加してきた

2/21(金) の第4回鹿児島Node.jsの会に参加?してきました。
?なのは到着が遅れて本題のNode.js の部は終わってしまったところでしたorz

鹿児島Node.jsの会は内村さんが主催されていて、第3回開催までは鹿児島在住だったのですがその後福岡に移動されて開催が危ぶまれていましたが今回わざわざ鹿児島に帰ってきての開催でした。
話が聞けずに残念…。資料読んで復習します><

#毎回開催前にちゃんと資料作って公開されてるので素晴らしいです。

その後、内村さん作成中のインテリジェント抱きまくら?を見せてもらいました。

抱くと声やキャラクターが反応するものです。
デバイスは無線LAN マウスを利用していて、HID なのでドライバいらずでマルチプラットホーム展開も楽という事でした。

#確かmbed でHID が簡単に作れたよなぁ…

その後、OpenStreatMap の説明を少ししてLinux勉強会をしたいという話をしたのでした。

OSM はうまく説明できずいまいちな反応でした><

#ちゃんと資料作って行かないとダメですね><

gitit のテストがてら鹿児島IT勉強会カレンダー(仮)というページも作ってみました。

このLinuxの勉強会は来月辺りから動き始めるつもりです。

以下は鹿児島Node.jsの会の過去の資料です。

ftp.kddilabs.jp の OpenSSH ミラーがうまく行ってないのを報告してみた

OpenSSH 6.5/6.5p1 リリース! ってことで

/OpenBSD/OpenSSH/portable/ のインデックス

に貰いに行ったら最新が 6.2p1 で 6.3p1~6.5p1 が無かった.
とりあえず jaist の mirror から貰ってきたけど報告したほうがいいだろうなってことで連絡先を探してみました.

ftp のディレクトリ階層を登って行って一番上の HEADER.html 経由で FAQ Page に.

そこに以下のように書かれていました.

アーカイブ内容が更新されていないようなんですけど...
各アーカイブのマスターサイトと比較して、1~2週間程度更新されていないようであればメール (アドレスは本ページ下部に記載されています)にてご連絡いただけると助かります。

OpenSSH 6.5p1 は出てすぐだけど,6.3p1 も同期されていないのでメールすることに.
メールして3時間ちょいで直したよってメールが帰ってきました.
#土曜日なのに!

ということで同期されるようになりました.

OpenSSH の公式からもリンク張られているし多分気づいてる人いっぱい居たと思うんですが,少なくとも数カ月は放置されてたってことは報告する人居なかったのだと思います.
報告するとすぐ直してもらえるようなので報告すると喜ぶ人がたくさん居ると思うよということで.

#ちなみにOpenSSH 6.5p1 は ed25519 が気になってます :)

ユーザーモードエミュレーションqemu を使って Kono on Debian のイメージを Host PC で apt-get とかする

Kobo on Debian ですが,ストレージがmicroSD のせいかよくイメージが壊れてしまいます.そのたびに書き込みなおして設定を行ってというのは大変です.ということで Kobo on Debian のイメージをホストのLinux マシンでマウントしてユーザーモードqemu を利用して apt-get したりする方法の紹介です.

ここではhost pc に Debian jessie を利用していますが,wheezy や Ubuntu 13.10 なんかでも全く同じように動作しそうです.
(他のディストリビューションでも大丈夫でしょうがパッケージ名などが異なると思われます.)

qemu-user-static パッケージを導入

先ず,ユーザーモードqemu のパッケージを導入します.これで,別のアーキテクチャのバイナリをユーザーモードで動作させることが出来ます.

% sudo apt-get install qemu-user-static

パッケージの中を見ると以下のアーキテクチャが動作するようです.

% dpkg -L qemu-user-static
/usr/bin/qemu-mipsn32-static
/usr/bin/qemu-or32-static
/usr/bin/qemu-mips-static
/usr/bin/qemu-m68k-static
/usr/bin/qemu-ppc64-static
/usr/bin/qemu-sparc-static
/usr/bin/qemu-i386-static
/usr/bin/qemu-armeb-static
/usr/bin/qemu-mipsn32el-static
/usr/bin/qemu-ppc-static
/usr/bin/qemu-ppc64abi32-static
/usr/bin/qemu-mipsel-static
/usr/bin/qemu-arm-static
/usr/bin/qemu-x86_64-static
/usr/bin/qemu-sh4-static
/usr/bin/qemu-mips64el-static
/usr/bin/qemu-sparc64-static
/usr/bin/qemu-unicore32-static
/usr/bin/qemu-sh4eb-static
/usr/bin/qemu-microblazeel-static
/usr/bin/qemu-microblaze-static
/usr/bin/qemu-mips64-static
/usr/bin/qemu-cris-static
/usr/bin/qemu-sparc32plus-static
/usr/bin/qemu-alpha-static
/usr/bin/qemu-s390x-static

ディスクイメージをマウント

Kobo on Debian のイメージを loopback mount します.イメージは複数パーティションなので,fdisk コマンドでパーティション情報を確認して mount 時に offset を指定します.

% /sbin/fdisk -l -u ./2013-08-17_kobo_debian.img

Disk ./2013-08-17_kobo_debian.img: 8014 MB, 8014266368 bytes
255 heads, 63 sectors/track, 974 cylinders, total 15652864 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000aad1a

                       Device Boot      Start         End      Blocks   Id  System
./2013-08-17_kobo_debian.img1           19456    10506239     5243392   83  Linux
./2013-08-17_kobo_debian.img2        10506240    14698495     2096128    b  W95 FAT32
./2013-08-17_kobo_debian.img3        14698496    15652863      477184   82  Linux swap / Solaris

今回利用したいのは1つめのパーティションの ./2013-08-17_kobo_debian.img1 19456 10506239 5243392 83 Linux 部分です.
先頭ブロックは 19456 で,ブロックサイズは 512 なので, 19456*512 = 9961472 が offset になります.(若しくは expr 19456 \* 512 とかしても判りやすいかもです.)

% sudo mount -o loop,offset=9961472 ./2013-08-17_kobo_debian.img /mnt

これで 2013-08-17_kobo_debian.img の第1パーティションが /mnt にマウントされました.

ユーザーモードエミュレーションQEMU コマンドをコピーする

Kobo on Debian 部分を chroot で利用したいので,ユーザーモードエミュレーションQEMU コマンドをイメージ内にコピーします.
マウント時に /usr/bin になる部分にコピーします.

% sudo cp -p /usr/bin/qemu-arm-static /mnt/debian/usr/bin

chroot してapt とかする

イメージを chroot して apt とかしてみます.

% sudo chroot /mnt/debian /bin/bash
# vi etc/apt/sources.list

名前解決に失敗するので,nameserver を設定します.以下は Google の 8.8.8.8 を指定した時の例です.chroot 前に host のresolv.conf を cp しておいてもいいかもしれません.

# cat <<__EOF__> /etc/resolv.conf
> nameserver 8.8.8.8
> __EOF__
# apt-get update
  :

後は普通に設定していきます.
設定が終了したらexit コマンドで chroot を抜け,umount コマンドでアンマウントします.

RaspberryPi の Rasbian イメージでも行けるだろうと思って試したのですが,失敗してしまいました.解決したいところです….

ADD: その後やり直したらうまく行った