2013年10月19日土曜日

Latitude10にWindows8.1をインストール

WindowsストアにWindows8.1のアップデートがきました。
評判はあまりよくない様子もあり、ドライバの互換性など心配もありましたが、
さっそくインストールしてみました。

念のため電源ケーブルを接続して、Latitude10を起動します。

まず、WindowsストアからWindows8.1のダウンロードを開始しました。
「ダウンロード中もほかの作業ができます」と表示されますが、そのままほっておきます。

30分ほどたった頃、「互換性をチェックしています」と表示されました。
プログレッシブバーは、半分をちょっとすぎたところです。
それから5分ほど経過し、「変更を適用しています」とのこと。
互換性チェックは、問題なかったのでしょうか。
さらに5分後、「情報を集めています」に。
そして20分ほど経過して、「再起動の準備をしています」に。
5分ほどで、再起動を促すメッセージが表示されました。
もちろん「今すぐ再起動」します。
画面が消えた後、DELLのマークが表示され、「設定しています(xx%)」という表示に。
まだ時間はかかりそう。
20分ほどで、「デバイスの準備をしています」に。こちらははやい。
画面が消えて点いて、「準備しています」に。
1分ほどで「PC設定を適用しています」が表示されました。
5分ほど後、画面が2度消えて、「その他の処理を実行しています」に。
その後8分ほどで、「準備しています」になり、すぐに、ライセンス条項が表示されました。
「同意します」で設定に進みます。
「自分で設定する」を選び、「IEの閲覧履歴をMicrosoftに送る」というものをオフにしました。
次に、アカウントのセットアップに進みます。
これまでローカルアカウントで利用していたのですが、設定が見当たりません。
「新しくアカウントを作成」を選んで、「すでにもっているアカウントを使い続ける」を選びました。
すると、次に進むことができて「アプリをインストールしています」が表示されました。
「最後の処理をしています」「PCの電源を切らないでください」と表示され、
5分ほどで、スタート画面が表示されました。
アカウントは、これまで利用していたローカルになっている様子です。
ダウンロードをはじめてから、1時間45分ほどかかりました。


インストールしているストアアプリの起動をチェックしてみます。
タスクリスト OK
Yahoo!天気 OK
NoteAnytimePremium OK
RubyReader OK
乗換NAVITIME OK
FlightAware OK
Skyscanner OK
PDF Touch OK
CamiApp OK
TuneIn Raddio OK
gMaps OK
GoogleSearch OK
Bingの検索が見当たりませんが、使っていなかったので問題ありません。
スタート画面の最後のページの下矢印で「すべてのアプリ」表示になるのですね。
こちらは以前、文字でちゃんと記述されていた方がわかりやすかったと思います。

デスクトップに移って、自分のPythonスクリプトの動作チェックをしました。
ImageViewer OK
QR Camera OK
Pomera Fix OK
gKey OK
Address Book OK
普段使っているものは問題なく動いたので安心しました。

さて、Pomera Fixの動作を確認するときに気がつきましたが、dm100のBluetooth接続は、ドライバーエラーになっています。
Bluetoothデバイスの追加を行うと、管理画面になります。
そこでドライバーエラーとなっているdm100デバイスを、いったん削除します。
その後、dm100の方から、キーボード接続を開始すると、dm100が見つかりペアリングできるようになります。
ペアリングを選んで、ペアリングコードをdm100から入力するとペアリング完了です。
これでまたdm100をBluetoothキーボードとして利用できます。

dmm100とのファイル転送も、様子が変わりました。
コントロールパネルのデバイスとプリンターの表示で、dm100デバイスにファイル転送のサービスを登録するところは、前に書いたとおりです。
その後は、デスクトップのPCを開くと、デバイスとドライブのところにdm100が表示されており、そこを開くとポメラ側の内蔵メモリやSDカードが表示されました。これはわかりやすくなりましたね。
この投稿はポメラで書いて、Win8.1にアップデートしたLatitude10へBluetoothでファイルを転送し、Dropboxを経由して、普段使いのノートPCで追加、修正して投稿しています。

デジタイザペンですが、最近WacomのタブレットPC用ドライバISD_DualTouch_712-9で、スリープ時の電源LEDの点灯問題が解決していたのですが、Windows8.1にアップデートしてから再びスリープ時にも点灯し続けています。
この問題が解決されたから、このドライバをいれたという人は注意が必要かもしれません。

ということで、大きな問題なく、利用できそうなので安心です。
でもLatitude10では、電源シャットダウンは、チャームだしてやっているので、今のところ使い勝手は変わりないかも。

2013/10/20 追記
アップデートと関係があるかわかりませんが、その後のあやしい動作。
一度、画面が点描みたいになりました。再起動したら直りました。
一度、バッテリーが認識できないという表示になった。再起動したら直りました。

BIOS A07、チップセットA06をインストールしたところ、スリープでのLED点灯不具合は解消されました。

2013/10/24 追記
Latitude10のBIOSのA08がでたので、入れてみました。
すると、Windows8.1の設定画面の文字が白く塗りつぶされて見えなくなりました。
デスクトップのIEを開いて、Windows Updateを確認したところ、
Intel(R) Corporation driver update for Intel(R) Graphics Media Accelerator
のドライバ更新がきていたので、それを適用したところ、その問題は解消されました。
BluetoohキーボードのドライバHIDデバイスがエラーになっていましたが(それでも利用できましたが)、それが解消されました。その代わり、ポメラをファイル転送で接続できなくなりました。
コントロールパネルのデバイスの表示で、DM100キーボードを右クリックでプロパティが表示されないのです。前のようにDM100のキーボードにFTPサービスを追加することができません。

しかたがないので、Bluetoothのデバイス追加画面でDM100のキーボードを削除します。そして、DM100からファイル転送をかけてみたところ、今度は、DM100をドライブとして認識しました。デスクトップのPCを開くと、DM100があります)開くと、DM100側のファイルを見ることができ、こちらへコピーしてくることができました。(DM100を開いたところで、ポメラ側が接続状態になりました。)
もちろん今度は、キーボードとして利用できません。

ということで、キーボードかファイル転送か、どちらかとしては利用できるようです。いちいちデバイスを削除するだけですが、以前のように手軽にはいきませんね。とりあえず、Latitude10で外付けキーボードを利用する機会はあまりないので、ファイル転送状態で維持しておきます。

A08で、Wacomドライバを用いても、スリープでLEDが消灯することは確認できました。
ソフトウェアで、いろいろ変わるようで、これからのアップデートも楽しみです。

2013/10/27 追記
その後、Windows Updateや、win8.1用のチップセットドライバーをインストールしたところ、以前のようにデバイス表示で、ポメラdm100を右クリックしたときのメニュー表示も出来るようになっていました。これで、サービスの追加もできるようになったと思うので、以前のようなポメラとの連携もできるかと期待してます。また試してみます。win8.1の動作も安定してきたかな。

2013/10/29 追記
ポメラとBluetooth接続してみました。以前のように、ポメラでキーボードかファイル転送かを選択するだけで、どちらの機能も利用できるようになりました。最初に、ストレージで、ペアリングしてもあとからキーボードのサービスを追加するだけでよいようです。







2013年10月12日土曜日

epsファイルのBoundingBoxの調整

Windows上からプリンタ出力でEPSファイルを生成すると、BoundingBoxがA4用紙の印刷範囲になっていたりします。グラフソフトで、EPSファイルを作成するとき、しばしば利用するのですが、実際にLaTeXなどに貼り付けるときは、BoundingBoxを図にあわせて調整します。これまで、GhostViewを使って、図の座標をしらべつつ、テキストエディタでEPSファイルを編集していました。ただ、図を修正してEPSファイルを生成するたびに行うのは、少し面倒な作業です。この作業を補助しようとpythonのスクリプトを書いてみました。GUIは、wxPythonを使っています。



Windows上のGhostScriptを使ってEPSファイルの画像を得て、それに対してBoundingBoxをマウスでドラッグ移動させ設定します。Acceptボタンでその設定をファイルに反映させます。HOLDモードにすると、複数ファイルをドロップして、同じBoundingBoxを設定できるようにしました。一番下のボタンは、個人的に好きなコピーボタンです。LaTeXに挿入するときの\includegraphics文をファイル名が入った形でクリップボードにコピーします。AddressBookや、カラムチェッカーといったスクリプトにも同じようなボタンをつけており重宝しています。タブレットでも、利用できるように、GUIにはメニューとチェックボックスを使わないようにしました。


2013年9月30日月曜日

Latitude10でポメラdm100をBluetoothキーボードとして使おう

ポメラdm100をLatitude10にBluetooth接続して、キーボードとして利用するときに、一部のキーの入力がキートップの表示とずれている問題があった。なんとなくモヤモヤしていたので、Pythonでキー入れ替えソフトを作ってみました。

pyHookモジュールを利用して、問題のキーなら、本来のキーにすりかえるだけという単純なものです。インターフェースも大き目のボタンひとつ。起動しているのが目立つように、そしてすぐに終了できるように。ポメラをBluetoothキーボードとして利用するときだけ起動して、すぐに終了するような使い方を想定しました。


無事に、viエディタの操作もポメラのキーボードからできるようになりました。ESCの代わりにCtrl+[をよく利用するので、このキーがずれていると困っていたのです。


2013年9月21日土曜日

Latitude10でNoteAnytime

Windows8のストアでNoteAnytimeを購入して試してみました。
使い方が分かっていないためか、気軽にメモをとるような使い方には、向いていない様子。
手書き文字の入力も追随性がいまいち。テキストに変換しないならWindowsJournalで、テキストにするならWindows8の手書き入力が書いていて気持ちがよいです。
NoteAnytimeは、あとから変換というのが売りかと思いますが、それよりも書き心地のほうを選びたいところです。

Graffitっぽいジェスチャー入力キーボードはgKeyに名前をかえてhelpボタンをつけてみました。










2013年9月16日月曜日

Latitude10とVim

Latitude10でもPythonスクリプトを編集するときには、Vimを利用しています。ジェスチャー入力のgPadもそのために、ESCキーのボタンを用意しました。実際に、スクリプトのちょっとした修正をしてみて、とてもよいと思ったのは、スクリーンを指タッチすることでスクロールできたことです。jklmキーをスクリーンキーで入力したり、細いスクロールバーを操作する必要がないので、非常に快適にスクリプトを眺めることができます。もちろん、実際のキーボード操作にはおよびませんが。長いことNetWalkerを使ってきたのでこのような点もすばらしく感じます。

さて、現在のgPadはこんな感じです。TABキーは、コマンドラインでコマンドの補完に利用するのでつけました。記号入力モードに遷移したことが分かるように、現在のモードも表示されるようにしました。ジェスチャーストロークは、一部、自分にとって書きやすいように調整しました。自作のスクリプトなので試しながらストロークデータを変更できるのでよいですね。





2013年9月14日土曜日

Latitude10とDM20のQRコード

久しぶりに、DM20を引っ張りだしてみましたところ、電源が入りません。単純に電池切れかと思って、電池を入れ替えても、入らないので焦りましたが、リセットボタンを押すのを忘れていました。無事に電源が入るようになりましたが、あるキーが勝手に入力されたり、入力されないキーがあったり。そのようなキーを数回たたいていたら、調子が戻ってきた様子です。無事に使えるようになりました。電子機器は、使わないでしまって置くの
は、よいことではないですね。

久しぶりにみると、dm100との画面の違いにびっくりですね。もっと白っぽいと思っていたけど、こんな色だったかなという感じ。落ち着いていて、とても見やすいのですけどね。キーのサイズは、dm100になれてしまうと小さいと感じますが、すぐに感覚は戻ります。その程度です。個人的には、このサイズでも十分です。このコンパクトさも捨てがたいですね。折りたたみ式の後継機としてdm25も発売されて
いますし、ポメラの今後が楽しみです。

ところで、DM20を引っ張りだしてきたのは、Latitude10のQRカメラでDM20のQRコードを読めるかどうかを試すためでした。連結QRコードができるまでテキストを書いてから、テストしてみようと思ったところです。さて、どうでしょうか。

無事に読み込めました。照明の当たり方が非常に重要です。


dm20のほうがdm100に比べてQRコードの変換が速いような気がしますが、気のせいでしょうか?

2013年9月10日火曜日

Latitude10とポメラ(QRコードの読み取り)

ポメラのQRコードによる文章転送機能は、ちょっとした文章を入力して利用したいときに便利です。気楽なのですよね。送りたい文章の一部(もちろん全部でもいい)を選択して、QRコードボタンを押して、あとは読みとればよいだけです。IDEOSも、ほとんど、このQRコードの読み取りに利用しているようなものです。ケーブルの接続もいらない、Bluetooth接続を確立する必要もない、いつも通り
の手慣れた写真を撮るという操作だけで済むというのが気楽です。

Latitude10では、Bluetooth転送で、文章の相互転送ができますが、気軽にQRコードで文章を送りたいと思うわけです。実は、Bluetooth接続で、ポメラの電池残量がどんどん減っていくのが気がかりなのですが。

というわけで、Windows8のアプリでなにかよいQRコードリーダーがないかとストアを覗いたのですが、読みとった文章を利用できるものが見つかりません。Windows用のソフトウェアはどうかと探してみました。Webページなどにある画像のQRコードを読み取るソフトはあるようですが、Webカメラを使って読み込むのは、手頃なものが見つかりません。そこで、自分用にwxPythonで作ってみました。QRコードを読みとる部分は、AndroidでおなじみのZXingを利用します。IDEOSでもポメラの連結QRコードを読み込む実績がありますしね。

ZXing-2.1のzipアーカイブには、コンパイル済みのcore.jar、javase.jar、w.warファイルがあるので、これらを使えば、コマンドラインでZXingを利用できますので、それを呼び出す部分さえ作ればよいわけです。

ZXingをコマンドラインで使うには、前述のファイルを一つのフォルダにコピーして、

java -cp javase.jar;core.jar com.google.zxing.client.j2se.CommandLineRunner target.png

とするとtarget.pngが解析されます。Windowsではクラスライブラリを指定する区切りがセミコロン;ですので注意が必要です。com.google.zxing.client.j2se.CommandLineRunnerが実行するクラスです。

pythonから、このコマンドをsubprocessで呼び出して、QR_CODEとして認識されたときだけ、文字列を得るようにしました。

Webカメラは、VideoCaptureモジュールを使って、画像を取り込みました。
このモジュールをインストールするには、単に対応するバージョンのフォルダをPythonのフォルダに投げ込めばよさそうなのですが、DLLsおよびlibsにばらばらに入ってしまいそうです。そこで、Python27\Lib\site-packagesにVideoCaptureというフォルダを作って、DLLsやLibにあるファイルをコピーしました。さらに、site-packagesにVideoCapture.pthというファイルを作成して、中にVideoCaptureと記述しました。これで、VideoCaptureモジュールが利用できるようになります。VideCaptureは、Python Imaging Libraryが必要なので、こちらもインストールしておく必要があります。

Latitude10で、Device番号0が外側カメラでした。解像度448x252pixelで取得できましたが、640x480は設定できませんでした。実際に試してみると、448x252pixelという解像度でも、ポメラの連結QRコードを読み込んでくれました。これで、Latitude10もまたひとつ便利になりました。







2013年9月5日木曜日

Latitude10でWacomのドライバー

Wacomのドライバーを試してみました。
Enhanced Tablet Driver 7.1.1-16というEnhanced Tablet Driver 7.1.1-12より
新しいものがあったのでスリープ時の LED点灯の不具合いが治ってないかと思い
インストールしてみました。
残念ながら、 LEDの点灯不具合は、治っていませんでした。
しかし、デジタイザペンの挙動が良くなった気がします。
高速起動スイッチを入れて、使用しない時間が長くなるような時は、
シットダウンして様子を見てみようかと思います。
ジェスチャー入力の gPadも、いくぶん動作が快適になったような、、、
こちらは、スクリプトも少しいじってしまっているのでどの程度効果があったのか分かりませんが。

2013/10/13追記 バージョン7.1.2-9でスリープでLEDがちゃんと消えるようになりましたね


2013年9月4日水曜日

Windowsでgraffitiっぽいの

NetWalkerのgraffitiっぽいものをwindows用としてわりきって
キーボードにしてみました。
一応、入力に使えますが、デジタイザペンとの相性はいまいちなところ。
ゆっくり目にストロークを描く必要があります。
ここまで書いてだいぶ慣れてきました。
windows8の手書き入力は、とても快適ですので、そちらを主に利用することでしょう。
入力欄が隠れてしまう時には、このような入力も良いかと思います。

ここまで、gPadで書きましたが、Windows8の手書き入力で続きを書きます。
gPadは、wxPythonで記述しましたが、もう少し速く動作するようにしたいところです。
ストロークの取りこぼしが少し目立ちます。


Latitude10とポメラDM100

Latitude10とポメラDM100との連携を試してみました。

ポメラDM100のファームウェアバージョンはVer.1.2.10.0です。
Latitude10のBIOSバージョンは、A05です。

まずはキーボードとして接続してみました。
普通にBlutoothデバイスを追加する方法で、接続できます。
ただし、Latitude10のキーボード配列は、Wikiを参照してレジストリをいじって
日本語106キーボードにしてありますので、その影響はあるかもしれません。
主なキーの配列は、DM100のキートップに記述してある通りでした。

しかし、以下のキーがずれています。

ポメラのキー <=> Latitude10に入力されるキー
@キー <=> ^キー
[キー <=> @キー
]キー <=> [キー
\キー <=> ]キー
^キー <=> 半角全角キー
Caps Lockキー <=> 半角全角キー
無変換キー <=> Windowsキー

Latitude10のBIOSをA06にアップデートしましたが、とくに違いはありません。
\および|キーの入力できませんので、少し問題ありといえます。


次に、ファイル転送です。
Windows8上で、DM100とBluetooth転送する情報は、なかなか見つかりません。
こちらを参考に、試してみました。

(1) とにもかくにもキーボードとして一度ペアリングしておきます。

(2) コントロールパネル>ハードウェアとサウンド>デバイスとプリンターを開くと、デバイスにキーボードのアイコンでDM100があります

(3) DM100のアイコンを右クリック>プロパティでDM100のプロパティが開きます

(4) DM100のBlutoothのファイル転送を開始して、接続先検索の状態にします。

(5) ここで、DM100プロパティのサービスタブを開くと、ファイル転送のサービスが表示されるので、チェックし、適用、OKします。

(6) デバイスにあるDM100のアイコンを右クリック>コントロールを押す。DM100のコントロールパネルが表示されます。

(7) (時間的に接続失敗がでていると思いますので)DM100のBlutoothのファイル転送を開始して、接続先検索の状態にします。

(8) DM100(切断)と書かれているアイコンをダブルクリックするとDM100のフォルダが開く。このときに、ポメラ側の接続が完了します。

(9) ポメラ側の内部メモリやSDカードが表示されるので、通常のフォルダ操作を行います。

ポメラ側のファイルをLatitude10側にコピーしたり、Latitude10上のファイルをポメラ側に転送できました。

デバイスとプリンターの中にあるDM100のアイコンのショートカットをデスクトップ上に作成し、
それを右クリックすることで、素早くDM100のコントロールパネルを開くことができます。

(5)番目の操作で、サービスを追加するところが大切な点だと思います。

というわけで、Latitude10とポメラdm100の連携は、キーボードに一部問題がありますが、できそうです。

ポメラとdm100のUSBケーブルでの接続は、普通にできそうなので、試していません。
Latitude10は、SDカードが使えるのでdm100用のSDカードを直接差すことも可能ですね。

Windows8のQRコードリーダーアプリは、よいものが見つかりません。

2013年8月31日土曜日

Latitude10にPythonとwxPythonをインストール

DELLのLatitude10でイメージビューアのpythonスクリプトを動かしてみるために、Python2.7.5とwxPython2.8およびPython Imaging Libraryをインストール。イメージビューアのスクリプトをダブルクリックすると、なんの問題もなく動作する。Windowsのデスクトップ環境は、普段使いのPCと同じ環境がそっくり利用できるという点がすばらしいと思う。

イメージビューアのストローク入力は、静電式のタッチパネルでも、デジタイザペンでも問題なく動作している。画面が自動回転しても、矛盾なく動作しているので、一安心。
(その後、全画面で自動回転すると復帰した後、画面サイズがおかしくなる様子)

PyInstaller 2.0をインストールして、実行形式に変換してみた。
これまで、PyInstaller 1.5.1を使っていたが、PyInstaller 2.0は、Configure.pyがなくなった様子。
どうやって使うのかと思ったけど、utilsフォルダの中に、MakeSpec.pyやBuild.pyがあるので、1.5.1で使っていたバッチファイルをほぼそのまま利用できた。以下、Windowsアプリと、コンソールアプリを実行形式に変換するバッチファイル。
cドライブ直下のscriptsフォルダの中にスクリプト名のフォルダを作って、その中にスクリプトやアイコンファイルicon32.icoを配置していることを前提としている。

makewin.batの中身(2行)
python utils\Makespec.py -F -w --icon=d:\scripts\%1\icon32.ico d:\scripts\%1\%1.py
python utils\Build.py %1\%1.spec

makecmd.batの中身(2行)
python utils\Makespec.py -F -c d:\scripts\%1\%1.py
python utils\Build.py %1\%1.spec

コマンドラインから、PyInstallerのフォルダに移動して、このバッチファイルをスクリプト名をつけて
実行するとよい。

Windows用スクリプトなら、
c:\pyinstaller-2.0> makewin.bat スクリプト名

コンソール用スクリプトなら、
c:\pyinstaller-2.0> makecmd.bat スクリプト名

問題なければ、
 pyinstaller-2.0フォルダにスクリプト名のフォルダが作成され、その中のdistフォルダに
実行形式のファイルができているはず。

バッチファイルはたったの二行だけど、スクリプト修正のたびに繰り返したりするので、
けっこう便利です。







2013年8月29日木曜日

DELLのLatitude10を入手しました

とうとうWindows8タブレットを手に入れました。小型のものに惹かれたのですが、NetWalkerがまだ使えるので、いろいろ試せそうなDELLのLatitude10を購入しました。

さっそくリカバリーディスクを作ろうと、Dell Backup and Recoveryを起動したのはよいものの、
用意したUSBメモリを認識しません。USBメモリ上にファイルを作ったりできるので、いちおう認識しているのですが、Recoveryのソフトウェアのほうで認識しない様子。
再起動するとよいという情報を得たので、さっそく再起動したところ、画面が真っ黒のままになりました。USBメモリを抜いて、再び再起動させたところ無事に起動してくれました。USBメモリを指したまま再起動はだめな様子(最初だけかな?ちゃんと試していません)
再起動後は、無事にRecoveryソフトのほうで、USBメモリを認識してくれました。

いろいろアプリケーションをインストール中です。



2013年8月3日土曜日

IDEOSにOCNのdLTE980のSIMを入れてみた

IDEOSには、b-mobileのU300のSIMを利用していたのですが、利用期間が過ぎたのでチャージせずに、OCNの980円定額SIMを使ってみました。APNに説明通りに3G端末用のAPNを設定をすると問題なく利用できました。
写真をメールで転送したり、ポメラのQRコードを読み取ってメール転送やDropboxを利用する程度ですから、1日30MBで通信速度が200kbpsに制限されても十分です。U300SIMを利用していたので、それに比べると非常に速くなったと感じます。NetWalkerのルータとしても利用してみましたが、とても快適になりました。

2013年7月19日金曜日

NetWalkerでgraffitiっぽいの

HandspringのVisorを使っていたときは、graffitiという手書き入力を利用していました。
NetWalkerでgraffitiっぽい手書き入力ってできるとよいなと思い、wxPythonでテストしてみた。
サクサクと認識してくれる。これでソフトウェアキーボードを作れたらよいのに。
Linux上のwxPythonで、ほかのアプリケーションへキー入力を送る方法が分からない。




2013年7月13日土曜日

イメージビューアImageViewerの修正

スクリプトを修正すると、新しいバグが生じたりしています。
ユーザーが自分自身なので、そのつど修正しながら楽しんでいます。
よけいな画面の再描画を減らすことで、画面のちらつきを減らしています。

また新しく、Python Imaging Library (PIL)を使ってみました。
こちらでアンチエイリアスをかけて画像を縮小したら綺麗になるかと思ったわけです。
NetWalker上でもimport Imageとしても問題なく、PILはすでに動くようでしたので、使ってみました。

Windows上では、 PIL 1.1.7をインストールしました。

あたらしく、設定ファイルにQualityのスイッチをつけました。0-5の数字を指定します。
0: wxPythonのScaleでwx.IMAGE_QUALITY_NORMALを指定しています。
1: PILのresizeで Image.NEARESTを指定しています。
2: PILのresizeで Image.BILINEARを指定しています。
3: PILのresizeで Image.BICUBICを指定しています。
4: PILのresizeで Image.ANTIALIASを指定しています。
5: wxPythonのScaleでwx.IMAGE_QUALITY_HIGHを指定しています。

効果を見るためにキーボードの0-5を押すことでスイッチできるようにしてみました。
しかし、NetWalkerで3以上を指定すると、処理が重過ぎるためかまともに動きません。
じっくりまって現れる画像は、たしかに綺麗になっているような気はしますが、
実用的な速度ではないですね。
結局、0番のサクサク感を選ぶのでした。

5番を選ぶと、だいぶ再描画処理に時間がかかるので注意です。


2013年7月3日水曜日

imageViewerを修正

imageViewerで画像を見ていると、画像切り替え時に白くフラッシュする感じだったので、それを抑えるように調整してみました。結局、MemoryDCに描画して、PaintDCに送っていたのだけど、ちょくせつPaintDCに描画することにしてみました。ついでに、画像の向きをスクリーンにあわせて自動回転するスイッチをAキーおよび、ストロークでトグルできるようにしました。ストロークは、1-0-3、または3-0-1。 NetWalker用、Windows用のどちらも修正しました。



2013年6月22日土曜日

イメージビューアのpythonスクリプト

NetWalkerで新しく書き直したImageViewerの動作を確認したので、
Windows用とあわせて、Pythonスクリプトをダウンロードできるようにしました。
スクリプト自体は同じものですが、
NetWalkerのものは、文字コードがUTF-8で改行LFで、
Windowsのものは、文字コードがSHIFT-JISで、改行CR+LF です。
また添付した初期設定ファイルが異なっています。
特に、DefaultScreenを指定するところ、NetWalkerのものは、
'/home/netwalker/imageViewer'というようにフルパスで記述しますので、
それぞれ環境に合わせて修正してください。

2013年6月21日金曜日

ImageViewerをNetWalkerで動かしてみた

先日書き直したImageViewerをNetWalkerで動かしてみた。
Pythonスクリプトの文字コードをUTF-8にして、改行コードをLFにしただけで、動作しました。
NetWalkerでは画面が小さいので、二ページ表示は活用できませんが、
先読みしているので、画像の切り替え速度は、前のJpegViewerより速くなった気がします。


Windows7にPSプリンタドライバを追加

先日、dropLaunchで、pdfからepsへの変換処理も簡単にできるようにしたところですが、
やっぱり直接epsファイルを生成したいということで、プリンタドライバを追加しました。
PSのプリンタドライバは、いろいろあるので、どれでもよさげなのですが、今回は、
MS Publisher Color Printerにしてみました。

手順をメモしておきます。

コントロールパネルを開きます

「ハードウェアとサウンド」の項目にある「デバイスとプリンターの表示」を選びます

「プリンターの追加」を選びます

「ローカルプリンターを追加します」をクリックします

「プリンターポートの選択」で、
「既存のポートを使用」「FILE:(ファイルへ出力)」を選択し、「次へ」を押します。

プリンタードライバーのインストールで、
「Generic」を選び、
プリンターとして、「MS Publisher Color Printer」を選びます。
「次へ」を押します。

プリンター名を適当に入力します(デフォルトのままでもよい)。

正しく追加されれば成功です。

テストページを印刷すると、ファイル名を入力するダイアログが開きます。

ここでは、フルパスでファイル名を記述しましょう。例えば、
C:\Users\loginname\output.ps
のように。ここで、c:\Users\loginnameはホームフォルダです。

epsファイルの出力にしか利用しないので、次のように設定しておきます。
コントロールパネルのデバイスとプリンターの中に、
「MS Publisher Color Printer」が追加されたら、
そのアイコンを右クリックしてメニューを出し、その中の印刷設定を選びます。

「詳細設定」ボタンを押すと、「詳細オプション」のウィンドウが開きます。

「ドキュメントのオプション」にある、「PostScriptオプション」を開きます。
(頭の+マークを押す)
「PostScript出力オプション」を「EPS」にします。
「OK」ボタンを押します。

「印刷設定」のウィンドウで、「適用」ボタンを押し、「OK」ボタンで閉じます。
これで、EPSファイル出力の設定になります。

2013年6月17日月曜日

ファイルをドロップして実行

ファイルをドロップして、そのファイルに対して処理をするpython+wxPythonの
スクリプトを作ってみました。
pdftopsでepsを作成するときに、便利になるかもしれません。
自分で使うための、ちょとした小物を作るのは、楽しいですね。
ここでダウンロードできます。


2013年6月15日土曜日

イメージビューアー

Windows 8 タブレットがいろいろと発売されている中、やっと8インチサイズのものも発表されてきたようです。NetWalkerのように、タブレットでPythonとwxPythonを動かせる小型のタブレットがでてきてほしいと思いつつ、少々大きめのタブレットの画面が生かせるようなイメージビューアとして、NetWalkerで利用しているJpegViewerを修正してみました。ペンで囲んでズームする機能は、使う機会がなかったので、削除してしまいました。

それ以外は、ほとんど変わっていないですが、デフォルトの初期画像を4枚用意してみました。このソフトは操作ボタンやメニューがないのです(ユーザーインターフェースがないわけではなくて、初期画面で見える形でないだけです)。JpegViewerでは、あまり意味のない操作説明を初期画像として用意してい たけれど、今度はわりきって、OPENとCLOSEのみの説明しか書いていないものにしました。NetWalkerではペンでストローク操作したのですが、Windowsではマウスで画 面上にストロークを描くことになります。昨今の静電式のタッチパネルでは試したことがないので操作できるかはわからないところ。キーボードによる操作もできるので、ノートパソコンではそちらが便利でしょう。
 

新しい機能は、二つの画像を並べて表示する機能とスライドショーです。とりあえず、Windowsのみで動作するように割り切って、主なスクリプトはすべて書きなおしました。

あとは、すてきなWindowsタブレットを手に入れることができたら動作を試してみたいと思います。

2013年4月18日木曜日

PythonでGoogleドライブのSpreadsheet

Windowsのpythonを使って、GoogleドライブのSpreadsheetをテキストデータベースとしてアクセスしてみました。Web上に情報がたくさんあるのですが、いくつかつまづいたので、覚え書き。

まず、pythonで利用するモジュールですが、
http://code.google.com/p/gdata-python-client/
からダウンロードします。左側のフレームにあるDownloadsから、gdata-2.0.17.zipをダウンロードしました。
展開して、Windowsのコマンドプロンプトを起動します。
展開してできたフォルダに移動して、インストールを実行します。

> python setup.py install

使用するモジュールは、gdata.spreadsheet.text_dbです。
これを用いると、スプレッドシートの一行目を要素名(Field名)の記述として、それ以降の各行を1つずつのレコードとしてアクセスすることができます。

import gdata.spereadsheet.text_db

としたらOKです。
googleドライブにアクセスするのには、アカウント名とパスワードが必要です。とりあえずコンソールで動かすのでパスワードをgetpassモジュールで取得します。このモジュールを利用すると、エコーバックなしに、文字を受け取ることができるようです。

import getpass
pw = getpass.getpass('password >')

pwに入力文字列が入ります。
さて、emailにgmailアドレスをいれて、アクセスしましょう。

client = gdata.spreadsheet.text_db.DatabaseClient(username=email, password=pw)

つぎにスプレッドシートを選択します。
dblist = client.GetDatabases(name='sheetname')
さて、sheetnameの名前のスプレッドシートがdblistに入ります。nameで指定すると一つとは限りません。目的のスプレッドシートのみを指定できるわけではないので、注意が必要です。スプレッドシートのkeyで指定する方法であれば一つに決まるようですが、keyを知らないといけません。

name='sheetname'で選ばれる最初のスプレッドシートはdblist[0]です。
そのkeyは、dblist[0].spreadsheet_keyに入っています。

さて、スプレッドシートを選んだら、次はその中のシートを選びます。text_dbでは、それがtableになります。

tablelist = db.GetTables(name='sheet1')
こちらもname='sheet1'で選ばれるのは一つとは限らないので注意が必要ですね。とりあえず、最初のシートを開きましょう。似たような名前の複数のシートを作らなければ大丈夫でしょう。
table = tablelist[0]
そのテーブルに含まれるField名を得るには、

table.LookupFields()

を呼びます。すると、table.fieldsにリストされます。

さてレコードを順番にアクセスしていくには、table.GetRecords()でレコードのリストを得ます。

for rec in table.GetRecords(1, 100):
    #write process for each record.
    pass

で1番から100番までのレコードを順に処理していけます。

特定の条件のレコードを得たいなら、table.FindRecords()を使うことができます。たとえば、nameというFieldに'net walker'が入っているレコードを得たければ、recs = table.FindRecords('name == "net walker"')
とするとよいでしょう。

特定の行のレコードを得体なら、table.GetRecord()を使います。10行目のレコードなら、
rec = table.getRecord(row_number=10)
でよいでしょう。ここで、10行目といいますが、Field行が0行目として考えています。

さて、最初利用してみたとき、このレコードがうまく取得できませんでした。大切なのは、第1カラム(最初のField)が空のレコード(行)を作らないことのようです。空があると、レコードの終わりと認識するようですね。

レコード(rec)内の各フィールド内の文字は、contentという辞書として保存されています。たとえば、'name'というフィールドに入っている文字を得たければ、rec.content['name']として得られます。python2.7で扱うときは、unicodeに変換して利用するとよいでしょう。

str = unicode(rec.content['name'])

とすると、いろいろと処理が便利になると思います。

さて、text_dbモジュールのいろいろは、"gdata text_db"で検索をかけてみると見つかると思います。制限がありますが、割り切って使うと便利なこともあるかもしれません。

○スプレッドシートやテーブルを選択するときに、名前で引くと意図したもの一つだけが選択されるわけではない。
○第1カラムが空の行(レコード)は作らない
○そうそう、Field名は、半角英数小文字を使うとよいそうです。
○テーブル(ファイル内のシート)を削除するときは、シートがすべて無くならないようにする。

以上、つまづいたので、覚え書きしておきます。

2013年4月17日水曜日

MacでEPSファイルを作る

最近また必要になったので、メモとして残しておきます。
私は普段Windowsを使っているのですが、Mac OSを使っている人からEPSファイルを作るのはどうしたらよいか聞かれた。ファイルに印刷することで図をPDFファイルに出力することはできたようなのですが、LaTeXに張り込むときのBoundingBoxの調整をするのに、EPSファイルでやりたいということらしい。

PDFファイルをEPSファイルに変換するツールxpdfを使えば解決するようです。Googleでxpdf-tools-3.dmgを検索するとダウンロードページが見つかります。通常通りにパッケージをインストールするとpdftopsという変換ツールが使えるようになります。

MacOS10.5.8で試したときには/opt/local/binの中にツールがインストールされました。ターミナルから、

$ pdftops -eps filename.pdf

とすると変換できます。しかし、pdfファイルをアイコンにドロップするとEPSファイルに変換されるようなツールがほしいようです。pdftopsというツールにドロップされたファイルの処理機能を追加するだけなので、Apple Scriptで書いてみたのが以下のもの。スクリプトエディタで書いてコンパイル、保存すれば完成です。

on open itemList
    tell application "Finder"
        repeat with aItem in itemList
            do shell script "/opt/local/bin/pdftops -eps " & POSIX path of aItem
        end repeat
    end tell
end open

さて、できあがったアイコンにEPSファイルを投げ込めば、pdftopsが起動して、変換されます。複数ファイルを投げ込めば、一つ一つ変換処理します。Apple Scriptも便利ですね。自分は使わないので分かりませんが、ドックに登録しておけば、作業も楽々でしょうか。最近、Mac OS 10.8の環境に移行したということで、同じ質問を受け、同じ作業が必要になったので覚え書きしときます。

AppleスクリプトはSystem 7の頃からあるらしいですね。私は、MacOS8.6時代にちょっと使うことがありましたが、懐かしい感じです。当時はHyper Cardなんて楽しいものもありましたね。

2013年3月19日火曜日

IDEOSを使ってみて

モバイルデータ通信用に、以前はb-mobileのDoccicaを使っていましたが、昨年春くらいからIDEOSを使っています。Android 2.2.1とディスプレイを搭載した小型のWi-Fiルーターであり、SIMロックフリーのスマートフォンでもあります。処理速度や広い画面が要求されないようなAndroid 2.2に対応したアプリケーションを実行させることもできます。IDEOSをWiFiルータとして利用することで、NetWalkerのデータ通信ができます。

GPSもついていますので、外出先でGoogle Mapを利用するときもあります。個人的にIDEOSのなにがよいかというと、大容量バッテリーをつけてもそこそこ小型で、数日間充電なしでほっておけることです。必要なときにテザリングをONにしてルーターとして利用しています。アウトカメラもついており、ポメラDM100で作成したQRコードをスキャンさせてみましたが、ちゃんと読み込めました。また、IDEOSにインストールしたESファイルエクスプローラーを使って、Bluetooth経由でファイルのやりとりもできました。ESファイルエクスプローラーは、DroopBoxやSkyDriveともファイルのやりとりができますので、IDEOSをハブにしてパソコン等とデータの相互やりとりも可能です。

私がIDEOSでよく利用しているAndroidのアプリは、

Checklist シンプルなチェックリスト(簡易ToDo)
DroidWing epwing辞書の検索
Widgetsoid ホーム画面でテザリングのON/OFF
ESファイルエクスプローラー ファイル管理
QRコードスキャナー pomeraのQRコード読み込み
連続バーコードリーダー pomeraのQRコード読み込み

SIMロックフリーの小型のAndroid端末、IDEOSの後継機はなにかあるでしょうか。
小型ではないけど、SIMロックフリーらしいということで、近々日本でも発売が期待されるNexus4が気になっています。

2013年2月16日土曜日

ポメラdm100を使ってみた

いまさらながらポメラdm100を手に入れました。
dm20を使っていましたが、最近文章を書くことがあり、ポメラの良さを再認識。最新のポメラを使いたくなりました。dm100は、大きく、薄い。キー ボードを打つときの感じもdm20とは違いました。キーボードは、なでるように、平面に描かれたキーボードを打っているような感じです。dm20よりも、 ゆったりとしています。キー入力していると、しばしばカシャカシャと音がするのが気になります。

いろいろ機能が追加されていますが、個人的に、一番気になるのはQRコードがどれほど読みとりやすくなったかです。dm100はバックライトがつ き、画面サイズもちょっと大きくなっています。dm20でも携帯電話(815SH)のQRコードリーダーでは簡単に読めるのですが、データ通信専用に使っ ているb-mobileのU300SIMを挿したideosで読みとりたいのです。

dm20では、連結QRコードが生成されるほどの文字数になると、生成されたQRコードが細かすぎるのと影の関係で読みとれませんでした。dm100で試したところ、連結QRコードも読みとることができました。液晶 の前にideosをかざしてもバックライトのおかげで、陰にならないことがよいのかと思います。読みとりには「QRコードスキャナー」と「連続バーコード リーダー」を使いました。

Evernoteへの投稿も試してみました。ideosをwi-fiルーターにして、TOSHIBAのFlashAir(8GB)を使いました。とくに問題なく投稿できましたが、途中経過が表示されないため終了時間が予測できないところが難点でしょうか。

Bluetoothでのファイルの転送は、Let's note CF-SX2(Windows 7)で試したところ、うまくいきませんでした。接続先がみつからないようです。NetWalker PC-T1で試してみたところ、あっさりつながり、本体とSDカードの中のファイルをブラウズできました。dynabook SS RX1(Windows Vista)でもBluetooth接続を試してみると、うまくいきました。Let's noteでもやりかたしだいでできるのでしょうか。また試したいと思います。いずれにせよ、ファイルをやりとりする方法が増えたので、いちいちUSBケーブルを接続しなくてもよさそうです。

全体的にdm20より操作が軽快になっている感じがします。ファイルの保存も速くなって快適です。私のdm20は、ファームウェアのバージョンアップをしてからファイルの保存が遅くなりました。

dm100用の純正ケースも一緒に手に入れ使っています。サイズがぴったりで出し入れしにくいとの評価も聞いており、伸びてなじむ時間が必要かと思っていましたが、使いはじめからス ルッと入るちょうどよいサイズでした。ケースの個体差があるのでしょうか。あと、筐体のゆがみなどによるガタもありませんでした。画面を開いて倒れてしま うというようなこともありません。ディスプレイが変更されているため画面の見やすさも心配しましたが、よく見えます。左右の目で見え方が違うというレビューも見かけましたが、それほど私の目は敏感ではありませんでした。

この文章もdm100で入力してQRコードに変換後、ideosで読み取って転送しました。これからはideosのカメラが有効活用できそうです。

2013/10/19追記
ちなみにBluetooth接続に成功したdynabookは、dynabook SS RX1/W7E Web直販モデルです。これは、Bluetooth Ver2.0+EDRを搭載しています。