ownCloudのContactsをふりがなに対応してみた

久しぶりに投稿できそうなネタができたので数年ぶりに復活。

クラウド全盛期のこのご時世、Google カレンダーも Google コンタクトも便利なのはわかっているんですが、予定や電話帳、位置情報と言った個人情報を Google に提供するのがどうにも気持ちが悪くて、Android スマホを使っていながらも、これらのアプリは Google アカウントとは連携せずに使ってます。※1

そんな私のニーズにバッチリなのが ownCloud で、Dropbox、Google Calender (CalDAV)、Google Contacts (CardDAV) を自分のサーバで完全に置き換えることができます。素晴らしい!!

そんなこんなで重宝している ownCloud ですが、不満があったのが Contacts アプリです。一通り機能は揃っていて UI も今風で使いやすいのですが、致命的な欠点はふりがなに対応していないことでした。

内部の DB としてはふりがななどの情報も保持できているようで、 CardDAV を使ってAndroidなどのクライアントからふりがな付きのデータを同期することは問題なくできます。なので、Android 端末側で全て操作して、クラウドの保存先として使う分には問題ありません。

ただ、スマホの機種変更の際の操作ミスが重なり、ふりがなが消えたデータで上書き同期してしまいました。スマホの操作で全部ふりがなを書くのは気が遠くなるので Contacts アプリを改造することにしました。

で、対応したのがこれ。

Contactsアプリを上記のものに置き換えると、設定に「Enable phonetic」「Reverse name order」の2つのチェックボックスが追加されます。

「Enable phonetic」のチェックボックスを有効にすると「せい」「めい」の項目が表示されます。

「Reverse name order」のチェックボックスを有効にすると、「名」「姓」の順から「姓」「名」の順に変わります。

両方にチェックを入れた時の右側の詳細画面がこちら。

もう1つ、ソートの項目に「せい」と「めい」の2つが追加されます。これを選ぶとふりがなでソートができるようになります。

日本なら2つのチェックボックスを有効にして、ソートは「せい」を選ぶのが良いでしょう。「せい」を選んだ場合、同姓なら「めい」でソートされます。

これで日本語環境で最低限使えるようになったと思います。

ソースは github で公開しています。一応本家にもプルリを送ってみたのでうまくいけばマージしてもらえるかも?

※1 .. LINE のほうが Google に比べて信用度は下がるのに、こっちは使わないわけには行かないというジレンマ・・・  コミュニケーションツールがクローズドな仕様で一社寡占状態なのは不健全だと思うんだけどねぇ。

Raspberry Pi 2 やっと届いた

先々週に発売されて話題の Raspberry Pi 2。 早速買ってしまいました。

Raspberry Pi 2Raspberry Pi2 買っちゃいました

発売されてすぐの2/3に注文したんですが、在庫切れで届いたのは今日でした。

早くも秋月千石電商Amazonでも販売されています。RSコンポーネンツに注文するより小売店で買ったほうが早く入手できたようです。

旧機種と新機種旧機種のRaspbery Pi model B(左) と新機種の Radpberry Pi 2 model B(右)

こう見ると違結構違いますが、基板の形状やコネクタ位置は旧機種の model B+ と同じだそうです。

CPU は ARM11 (ARMv6 アーキテクチャ) から Cortex-A7 x 4 core (ARMv7 アーキテクチャ) と大幅変更になり、RAM も 1GB に増量されたそうです。

ARMv7 アーキテクチャであれば Android も(実用的かどうかはわかりませんが)動くでしょうし、いろいろ遊びの幅が広がりそうです。

個人的には Cortex-A7, A15 などで搭載された Virtualization Extention (VE:仮想化支援) が気になっていたのでこれでいろいろと遊んでみようと思います。(実は Cortex-A7 搭載の Cubieboard2 を持っていたのですが半年近く死蔵したまま・・)

最近の Linux kernel の kvm は VE に対応しているそうなので、kvm も動かしてみたいですし。

ただ、まだデータシート類は公開されていないようですので、本格的にいじれるのはもうちょっと先ですかね。

とりあえずは買った報告だけ。

ZeroPlus LAP-C の EEPROM を Linux から書き換える

なんの脈略もなくロジアナの改造ネタです。

ZEROPLUS 社製のロジアナ LAP-C の型番を書き換えるために Windows を起動したものの Windows7 では書き換え用のドライバがインストールできず、悔しくて Linux 用の書き換えツールを探したが、ちょっと使いにくかったので改造して github で公開したぜという話です。

 

だいぶ前に買って以来、部屋に技術者っぽい雰囲気を漂わせるためのオブジェとして大活躍だったロジアナの LAP-C16032 ですが、最近使いたい用途が出てきたので引っ張り出してきました。

それでふと、LAP-C16032 の内蔵 EEPROM を書き換えることで上位機種相当に改造できることを思い出して、本来の用途そっちのけでまず改造をすることにしました。

情報元は Illegal function call さんの以下のエントリです。

# Illegal function call とは何て懐かしい響き・・・

早速EEPROMを書き換えようとしたのですが、Windows 7 では上記エントリで配布されている libusb のドライバがインストールできませんでした。

Windows XP 機なんて持ってないし、XP mode インストールするのも面倒なので、Linux で書き換えることにしました。

上記エントリに

『今回はGL660USBを解析した外人さんがいるが、
元はLinux用だったり、ちょっと扱いが面倒なので、こんなソフトを作ってみた。』

って書いてあったので、元になる Linux のコードがあるんだろうと探してみたところ・・・見つけました。

zerominus という Linux から LAP-C を叩いて計測データを取り出そうというプロジェクトのようです。

そのプロジェクトの中に  zeroprog という EEPROM を読み書きするツールがあります。きっとこれが元ネタだと思います。

早速ビルドして使ってみました。

一応使えるのは使えるのですが、すんなりビルドできなかったり、バックアップはできるのにリストアができなかったり、バックアップファイルのエンディアンの問題でダンプが読みにくかったりと、いろいろ使いにくかったのでチャチャッと改良してみました。改造したコードは github で公開しています。

ビルド方法などは上記ベージの README.md に書いてあるので割愛します。

リトルエンディアンに変更しているのでバックアップファイルを hexdump すると、文字列が普通に読めます。

オリジナル zeroprog

00000010 5a 1b 52 45 50 4f 55 4c 20 53 65 54 68 63 6f 6e |Z.REPOUL SeThcon|
00000020 6f 6c 79 67 43 20 2c 4f 4c 2e 44 54 ff ff ff ff |olygC ,OL.DT....|

改造後 zeroprog

00000010 1b 5a 45 52 4f 50 4c 55 53 20 54 65 63 68 6e 6f |.ZEROPLUS Techno|
00000020 6c 6f 67 79 20 43 4f 2c 2e 4c 54 44 ff ff ff ff |logy CO,.LTD....|

また、一番重要な restore コマンド (-r) を実装したのでいくらでも失敗ができます。

–help で resutore コマンドが出てきていたのでてっきり使えると思って安心して書き換えていたのですが、いざ restore コマンドを使ったら

// not yet implemented, sorry

なんて冷たくあしらわれてしまったので、仕方なく実装しました。

で、結果的に Product ID と Model string を変更することで LAP-C16128 として問題なく動作させることができましたとさ。めでたしめでたし。

AD00031のネジを手回し式に交換

ここのところ AD00031 のネタが続いていますが、今回も AD00031 です。

秋葉原にオペアンプなどのパーツを買いに行ったついでに AD00031 の前面パネル用のネジを買ってきました。

いろいろなサイトで不評な前面パネルのネジですが、これを手回し式に変更します。電池交換するためにドライバーが必要になるためです。

ちなみに、電池交換の際にボリュームツマミの六角ネジは緩める必要はありません。ツマミがついたまま基板を引き出せます。

ということで秋葉原の西川電子部品(西川ネジ)で買ってきました。

ローレットネジ2種割付き段付きローレットねじ2種 (綾目、平目)

こういう手で回せるようのネジをローレットねじというそうです。
ツマミの滑り止めの加工の種類により綾目(菱型模様のもの)、平目(縦線模様のもの)の2種類があり、更にドライバーで回せるようなスリットがあるものは「割付き」というそうです。また、つまみ部分とネジ部分の間に段があるものは「段付き」というそうです。

ということで、M3x6mm の綾目、平目の割付き段付きローレットネジを2つづつ買ってきました。

計4つで税込 192 円でした。安いですね。

実はローレットネジですが、これで2個目なんです。最初に10mm の割なしのローレットネジを買ったのですが、2つの失敗がありました。

1つ目は、長すぎたこと。
AD00031 にもともと付いているネジは12mm くらいあるのですが、タッピングネジということもあり、ネジ山間が広いので少ない回転数で取り付けられます。しかし、このネジはネジ山が狭いので 10mm あるといくら回しても進まなくて大変でした。

2つ目は、割なしだったこと。
ケースのかみ合わせの部分をネジ止めする関係で、AD00031 を落としたり衝撃を加えるとネジが固く締まってしまい、手では回せなくなります。なのでそういう時でもドライバーで回せる割付きにしました。まぁペンチで回ばいいんですけどね。

ということで、6mm くらいの割付きのローレットネジをおすすめします。

装着するとこんな感じになります。

ローレットねじに交換ローレットネジに交換しました

平目より綾目のほうがカッコよかったので綾目にしました。

うーん、カッコイイ!! 高級感が増した気がします (^^)

ただ見て分かるとおり、AUDIO OUT とネジの距離が近いので、プラグ部分が大きいヘッドホンだと干渉してしまうかもしれません。ご注意ください。

AD00031のホワイトノイズをやっつける(その4)

すでにこのシリーズ4回目。 また AD00031 のホワイトノイズを減らすべく試行錯誤していきます。

前回までの検証で色々と部品を変更しても自分の耳では聞き分けられないという、ガッカリな耳の持ち主だったという結果でしたが、今回は部品の変更ではなく、回路をいじってみます。

ということでこの回路です。

AD00031の回路の概要

とりあえずよくわからない電流帰還部を取っ払ってみます。上側のループの抵抗です。基板上ではR4とR6です。

取り外して聞いてみると・・・。お、ホワイトノイズ減ってる
若干は残るもののほとんど気にならないレベルまでホワイトノイズが減りました。

そうなると電流測定用の抵抗(回路図一番右の抵抗)もいらないので外してジャンパーでショートさせます。

こんな感じ。

普通の電圧アンプ化AD00031 を電圧アンプ化(笑)

5つ並んでいる抵抗の真ん中を取り外し、上部のインピーダンス調整用の抵抗を抵抗の足でショートさせています。

おー。こりゃいいや。曲間のホワイトノイズが気にならない!!

でも電流帰還をしないとこのアンプの意味が・・・。

もともと AD00031 通して聴くのと iPod touch 直で聴くのとであまり違いがわからなかったので、これでもいいのかなぁ。いや、ますます iPod 直で良くなってしまうような・・・。

それにしても電流帰還するとなぜノイズが増えるんでしょうね。そこが分かれば解決の道も見いだせそうなんですが。

正帰還してるから?? ノイズとか誤差が正帰還されて増幅されちゃうのかなぁ。

とりあえず、しばらく電圧アンプ化した AD00031 で聞いてみようと思います。