ふにゃるん

2012-09-17 連休も終わり

[] GMailで、指定したfrom以外からのメールを転送しない 12:09  GMailで、指定したfrom以外からのメールを転送しないを含むブックマーク

自分、とあるメアドに対して 送られてきたメールを携帯のメールに転送していたりします。

急ぎは携帯。1日くらい余裕の有るやつは、自宅のパソコンでのんびり。という使い方ですね。


で、当初、メアド宛のメール全てを転送していたんですが、段々携帯で読む必要が無いメールが増えてきました。

消す手間も惜しいので、GMailフィルタ条件を見直す事にしました。


参考にしたURL

参考にしたURLは、↓これです。多謝。


フィルタ条件のミソ

自分の設定したい、フィルタ条件は、

  1. 基本的に、メアド(hoge@gmail.com)宛に送られるメールを、全て携帯に転送。
  2. しかし、送信元で、puge@hogeratta.comやponyo@mera.mera.net.jp から送られてくるメールは転送しない。

といったものでした。


この場合、以下のように設定します。

From.
Tohoge@gmail.com
件名.
含む.
含まないfrom:hogeratta.com and from:mera.net.jp

設定のミソは、「含まない」に、送信元(from)の部分文字列を、and条件で繋げる。って事です。


これで、不要なメールの転送を防げるという事です。良かった、良かった。

2012-05-27 良い天気

[] python-twitterを使う 20:26  python-twitterを使うを含むブックマーク

Twitterで、気になった つぶやき を、ポコポコ お気に入りに登録しています。

後で、がーっとwebで見なおしてやろうと思っての事なんですが、Twitterクライアントって、お気に入りを一気に開きまくるという使い方には、対応していません。


という訳で、Twitter APIを使って、何とかしてやろうと思いました。

その際、幾つか躓いた点をメモします。


最初

Python版のライブラリは、python-twitterというのがあるようで、先達の方々が色々と調べてらっしゃっています。

まずは、ここの情報を見るのは必須ですね。

後は、先達の皆さんのブログなメモを見ながら、Pythonのhelpコマンドの表示内容と見比べつつ やっていけばOKです。


注意:APIを使用するには、Twitter Developersの登録が必須です

古い情報だと、例えば以下の呼び出しで、幾つかAPIが呼び出せるよ。と、書いていますが、現在は

oAuth 認証が全ての機能の呼び出しで必須の模様です。

import twitter 

api = twitter.Api(username='ユーザー名', password='パスワード') 
ary = api.GetFriendsTimeline() 

つまり、Twitter Developersサイトでの登録が必須だという事です。

作業の流れとしては、以下の感じです。

  1. Twitter Developersにアクセス。
  2. 右側のメニュー「Create an app」をクリック。
    すると、「Sign in with your Twitter account」と出て、ユーザー名とパスワードを求められるので、自分のTwitterアカウントを入力する。
  3. Sign inできると、表示が切り替わるので、「Create a new application」を選ぶ。
  4. アプリケーションの情報を入力する。
    (自分、何かアプリな情報を入れないといけないのか?と、思ってたんですが、かなりテキトーでもOKでした)
    入力内容は、↓を参考にすると良いでしょう。

    TwitterOAuth認証を行う(1:Twitterへのアプリケーション登録) | Tech Booster
    http://techbooster.org/android/mashup/4525/
  5. すると、Consumer key, secretの情報がゲットできます。
    更に続けて、ページ下部にある「Create my access token」を選んで、Access token/secretをゲットしましょう。

削除機能を使うならば、Access levelを変更すべきです

参照するだけなら良いですが、削除とかを行うAPIを呼び出したいならば、先ほどのページで、Access levelを変更しましょう。

自分は、Api.DestroyFavoriteメソッドを使おうとして、この問題にぶち当たりました。

TwitterError: Read-only application cannot POST

既にAccess tokenをゲットしている場合は、Access levelを変更後、再度Access tokenを取得しなおして下さい。

サンプルコード

という訳で、お気に入りを一覧取得するサンプルコードです。

# -*- coding: utf-8 -*-
# テスト:お気に入り情報の取得
import twitter

CONSUMER_KEY = '入れて'
CONSUMER_SECRET = '入れて'
ACCESS_KEY = '入れて'
ACCESS_SECRET = '入れて'

def T(s):
	return s.encode('cp932', 'ignore')

def print_status(ary):
	for i in ary:
		print "------"
		print "[%s][%s][%s]" % (T(i.created_at), T(i.relative_created_at), T(i.user.name))
		print "  %s" % (T(i.source))
		print "  %s" % (T(i.text))

api = twitter.Api(
	consumer_key = CONSUMER_KEY,
	consumer_secret = CONSUMER_SECRET,
	access_token_key = ACCESS_KEY,
	access_token_secret = ACCESS_SECRET)

stat = api.GetFavorites()
print_status(stat)

twitterライブラリが、utf-8専用だと書いてあったので、エンコードutf-8にしてみました。

ただ これだと、コンソール出力する時に、encode失敗するようなので、適当に encode メソッドを呼び出して逃げています。

ちなみに、登録したお気に入りを削除するには、例えば、以下のように変更すればOKです。

...
def print_status(ary):
	for i in ary:
		api.DestroyFavorite(i)
...

これらの挙動を調べる際、pdbモジュールとhelpコマンドを総動員しました。

便利ですよね。

2012-05-02 ごーるでんうぃーく

[] バッチファイルで、あるプロセスが起動してなかったらば…を実現する 10:43  バッチファイルで、あるプロセスが起動してなかったらば…を実現するを含むブックマーク

自分的なメモ。


バッチファイルで、あるプロセスが起動していなければ、実行する。

というのを指示する方法です。

tasklist | find /C "procexp"
if ERRORLEVEL 1 start C:\ほげほげ\ProcessExplorer\procexp.exe /t

これで、ProcessExplorerが起動していなければ、起動させる。という事が実現できます。

(まぁ、ProcessExplorerは、「Allow Only One Instance」って指定が出来るんですけどね)


tasklist単体では、返値が常に「0」っぽいので、findと組み合わせてみました。

[] corega CG-WLNUP04N を買った 11:33  corega CG-WLNUP04N を買ったを含むブックマーク

嫁さんがプリンタ(非無線対応)をUSBケーブルで接続していたんだけど、取り回しが大変そうだったんですね。

他にも、非無線対応なUSBデバイスがあったので、無線対応なプリンターサーバーを買って、机の周りをすっきりさせる事にしました。


当初考えていたのは、PLANEXFFP-PKP03って奴。このタイプでは一番安いタイプじゃないかなと思います?

【Amazon.co.jp限定】PLANEX 無線LAN プリントサーバー シンプルシリーズ 双方向通信対応 FFP-PKP03(FFP)

ただ、これUSBが1ポートしかないんですね。

USBハブで複数分けて使えるのか、非常に微妙。


他のメーカさんで、複数のUSBポートが使えるタイプは無いか調べてみたんですが、大体以下の状況っぽい。

ほとんど1ポートのみなんですが、無線対応のプリンタが出てきている状況で、何の意味があるんだろうなぁ?(USBハブ対応とはっきり書いてある訳でも無し)

メーカ型式URL
coregaCG-WLNUP04N/-Whttp://www.corega.co.jp/prod/wlnup04n/
I/OデータWN-DS/UShttp://www.iodata.jp/product/network/option/wn-dsus/

で、いつものAmazonでチェックしていたら、CG-WLNUP04Nがある瞬間 結構安かったので、思わず購入してみました。

Corega CG-WLNUP04N 無線・有線LAN対応 4ポートUSBデバイスサーバ(プリントサーバ機能付き)

Corega CG-WLNUP04N 無線・有線LAN対応 4ポートUSBデバイスサーバ(プリントサーバ機能付き)


接続の手順ですが、大体以下の感じでした。

  1. 無線化したいプリンタを、まずUSB接続でドライバを入れる。
    ちゃんとスキャナとか使える事を確認した方が良いでしょう。
  2. USB共有センターのドライバを入れる。
    CD-ROMのものより、Web siteの方が新しかったので、こっちを入れました。
  3. CG-WLNUP04Nと無線ルーターを接続。
    USB共有センターで開くと、デバイスを認識するので、IPアドレスを自分の所属するドメインに設定し直して、ping確認しましょう。
  4. CG-WLNUP04Nにプリンタを接続。
    USBポートのLEDランプが点灯します。
  5. USB共有センターで、接続したいプリンタを選んで、「接続」します。
  6. 無線上で「接続」したプリンタを使います。

当初、WPSボタンで簡単接続は出来なかったので、無線ルーターフィルタ外しを、ちこっと行なっていたら、共有センターがデバイスを認識していました。(多分、パケットを監視してんだろうなぁ)


で、「サーバーダブルクリックして、IPアドレスを変更してください」とあったので、自分の所属ドメインに適当に振ってやると、後は簡単に接続できました。


他の製品で、無線化したプリンタは、応答速度が遅いというコメントも見られましたが、そんなに遅いかな?という感じです。

(あぁ、一度だけ妙にスキャナの応答速度が遅い時がありましたが、その後、特に発生していません)


今回、無線化したプリンタは、EPSON PM-A890という奴ですが、Win7 x64環境で、スキャナがばっちり使えています。(というか、先日からスキャナばっかり使っている)

2012-02-12 ひさしぶりー

[][] RMapsを使う為に、Windows7(x64)環境で Mobile Atlas Creator を使う 11:25  RMapsを使う為に、Windows7(x64)環境で Mobile Atlas Creator を使うを含むブックマーク

Androidタブレットを買ったんですが、Wi-Fi環境なので、基本外に持ち出す事が出来ないんですね。

(Wi-Fiルーターを持ち歩く必要がある)


Google Mapsは便利なので、これを外で電子地図代わりに使いたい。

けど、Wi-Fiルーターで接続しないと、地図表示できない。…うーん。という訳で、悩んでいたんですが、どうやらローカル地図ソフトなるものがある事を知った次第。



という訳で、RMapsというソフトを入れてみる事に。

動かしてみた感じ、良さげだったので、パソコンからオフライン地図データを取得して、RMapsに入れ込む事にしました。


オフラインな地図データ作成ソフトの存在

RMapsをWi-Fiが届かない環境でも使えるようにする為には、オフライン地図データが必要な訳ですね。

描画速度の速さで、↓このページからダウンロードできる Mobile Atlas Creator か TrekBuddy Atlas Creatorが良いように感じました。


本家?か良く判らないんですが、Mobile Atlas Creatorからダウンロードできる配布物は、SQLiteのバージョン不一致か良く判りませんが、少なくとも、Windows7(x64)な環境では正しく地図データを作成してくれません。

(当初、しょうがないので、VirtualPCで動かしていた)

ソフトの経歴としては、TrekBuddy Atlas CreatorからMobile Atlas Creatorにメンテナンスが移っているようなので、現在だと Mobile Atlas Creator(の、このサイトバージョン)を使った方が良いでしょう。


自分は、Mobile_Atlas_Creator_1.8_SQLite.zipダウンロードして動かしてみたんですが、何の設定変更も無しに、地図データを作成してくれました。

多分、正しく動く SQLiteライブラリが同梱されているお陰だと思われます。


皆さんが紹介されている、TrekBuddy Atlas Creatorも使えます。(というか、タブレットでの動作確認は、こちらばかり試していた)

この場合、Windows7(x64)環境では、そのままでは使えません。x64に対応したSQLiteライブラリに更新する必要があるので注意して下さい。


x64SQLiteは、↓ここで紹介されている通り、やはり同サイトの、Mobile_Atlas_Creator_1.7_SQLite.zip内の「Win x64(64bit)」フォルダにある、「sqlite_jni.dll」に上書きする必要があります。


使い方

使い方は、基本皆さんの説明ページを読んで下さい。

そちらの方が、詳細で判りやすいです。


まぁ、それだと芸が無いので、同じ説明で申し訳ありませんが、順を追って説明をば。

1.アプリを起動すると、地図がどーんと表示されます。

ここで、注意ば必要なのは、左ドラッグは領域選択。ドラッグが地図の移動です。最初、アレ?と思って固まりました。

1
1 posted by (C)wacky

2.地図データを作成したい大体の場所まで移動したら、おもむろに地図データを作成したい部分を左ドラッグで選択します。

選択した後、左ペインの「Zoom Levels」の数値を選択して下さい。これは地図の詳細度を指定します。

あまり大きい値を入れると、データサイズが莫大になるので、選択した際に表示される「xxx tiles」の値を睨みながら選んで下さい。

2
2 posted by (C)wacky

3.次に左ペインの「Add selection」をクリックします。

領域設定した情報は、下側の「Saved profiles」の下の「Save」で保存できるようなので、テケトーに保存しましょう。

3
3 posted by (C)wacky

4.次に左ペインの「Create atlas」で、地図データの情報取得と作成を行います。

全ての作業が完了したら、「Open Atlas Folder」ボタンが有効になります。

4
4 posted by (C)wacky

ちなみに、「Atlas settings」の「Format」で作成する地図データの形式を選ぶ事ができるようです。

6
6 posted by (C)wacky

5.「Open Atlas Folder」ボタンをクリックすると、作成された地図データファイル(.sqlitedb)のフォルダがオープンされます。

これを、タブレット端末の、SDカードの「//rmaps/maps」フォルダにコピーします。

5
5 posted by (C)wacky

6.タブレット端末を起動して、RMapsを起動し、Menuを選び、「その他」→「Settings」→「User defined maps」で、作成した地図データファイルを選択→「Enable map」にチェックを入れます。

一旦画面に戻って、Menuを選び、「Maps」で選択した地図データファイル名を選択すると、オフラインな地図データを表示するようになります。


感想

人々柱の備忘録さんのページで、オフライン地図アプリのまとめが載っていて、非常に参考になります。

つーか、iPhone版もあるんですね。知らなかった。

こうなると、手持ちのiPod touchGPSが欲しくなるなぁ。次期バージョンで搭載してくれないかなぁ?

2011-11-06 涼しいね

[] Windows7Irvineを使用する際の気づき 14:20  Windows7でIrvineを使用する際の気づきを含むブックマーク

ダウンローダ Irvineは、大きめのファイルや複数のリンクに分けられている細かいファイル(ネット小説系は、やけにリンク細切れが多くて、後でゆっくり見たい時大変)をダウンロードするのに便利なんですね。

今だったら、DCさくらの方がWindows7も正式サポートしているんで、こっちの方が良いと思うんですが、何故か こっちを使い続けています。


Windows7の動作報告関係のページだと、Irvine使えるよ!って報告例が多いのですが、一部の方は使えないよ。と報告している方も居るようですね。


自分のマシンは、Windows7(x64)でIE9の環境(正確にはメインブラウザSleipnir)なんですが、Irvineは ちゃんと使えています。(Irvine 1.3.0)

ただ、ちゃんと使えるようにする為には、ちょっとしたテクニックがあるようです。現時点で、判っている事を、メモしておきます。


Tips1.Program Files フォルダ以外にインストールする

これは結構有名なようです。

自分の場合、適当なフォルダを掘って、その中にIrvineを入れて動かしています。


Tips2.実行ファイルに管理者権限を与えずに動かす

先のwikiでは、管理者権限与えて動かせば。とありますが、どうも管理者権限を与えてしまうと、IEの右クリックメニューによる Irvine連携が機能しなくなるようです。

(もしかしたら、最初の起動だけは管理者権限必要かも知れません)


これ、何で気づいたかと言うと、オレオレなスクリプトで、Irvineダウンロードアイテムを登録しようとした際に気づいたんですね。


JavaScriptで、IrvineにアクセスするActiveXオブジェクトを起動しようと思って、簡単なJavaScriptを書いたんですよ。

o = new ActiveXObject('Irvine.Api');
WScript.Echo(o);

これを実行したら、以下のエラーが出てきたんですね。

$ cscript test.js
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

test.js(1, 1) (null): 要求された操作には管理者特権が必要です。

これを見て、「はっ」と気づいたんですよ。IEの右クリックメニューでも、「オブジェクトが生成できない」とか言ってたな。と。

で、Irvineの実行ファイルに与えていた管理者権限を外したら、ちゃんとIEの右クリックメニューからの「Irvineへ登録」が機能し始めた次第です。


テケトーな予想ですが、以下の動きじゃないかな?と思ってます。

  1. 管理者権限で起動した際、自分のアカウントとは別の専用アカウントで起動。
  2. スクリプトからアプリActiveXオブジェクトを得ようとする(new ActiveXObject(...))。
  3. スクリプトアカウントはxxさん、アプリアカウントは管理者権限さん。
    アカウントが違うので、アプリへのアクセスを蹴られる。
  4. 結果、ActiveXオブジェクトの生成に失敗する。

要するにクライアントアカウントと、Irvineアカウントを同じにしろや。って事です。

だから、Irvineに管理者権限を与えてしまうと、クライアント 例えばスクリプトIESleipnirも管理者権限で起動しないと、連携出来ないって寸法な訳ですね。


最後に

という訳で、ちょっとした気づきでした。


後、おまけですが、Irvineダウンロードアイテムを登録するには、ぶっちゃけ以下のコードで大体OKのようです。

var Irvine = new ActiveXObject('Irvine.Api');
var IrvineItem = new ActiveXObject('Irvine.Item');

IrvineItem.Url = ダウンロードしたいURL;
IrvineItem.FileName = ダウンロード時のファイル名;
Irvine.Current.AddItem(IrvineItem);

APIリファレンスは、 http://hp.vector.co.jp/authors/VA024591/doc/api.txt にあります。