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 として問題なく動作させることができましたとさ。めでたしめでたし。