Monthly Archives: 9月 2014

[メモ] Windows, OS X(Mac)でフォルダ/ファイルのパスをクリップボードにコピーする

Pocket

たとえば仕事上、共有サーバにあるフォルダのパスを知らせたい、ということがある。
こういう時のために、フォルダのパスを簡単にクリップボードへコピーする方法を示す。
Windows, OS Xの両方向け。大盤振る舞いである。
OS Xでは追加のツールも要らない方法です。

Windowsでの方法

こちらは簡単。
対象フォルダをSHIFT+右クリックして出てくるメニューからコピーを選べばよい。
ただの右クリックでは出てこないところが憎らしい。
ただ、ダブルクオーテーションで括られる点に注意。

pathcopywindows

OS X(Mac)での方法

Automatorを使う。
Launchpadの「その他」の下にある。

Automatorの設定方法

起動時の選択では「サービス」を選ぶ。

CopyPathToClipboardOSX
「アクション」では「クリップボードにコピー」を探す。
「クリップボード」あたりで検索するとよい。
「クリップボードにコピー」を、画面右側にドラッグ・アンド・ドロップ。
「サービスは、次の選択項目を受け取る」では「ファイルまたはフォルダ」を。
「検索対象」では「Finder」を選ぶ。
メニューバーの編集から保存で「Copy Path to Clipboard」とでも名前を付けて保存。

使いかた

Controlキーを押しながらフォルダをクリックでメニューが開く。
さっき追加した「Copy Path to Clipboard」があるはず。

OSXCopyPath

以上。

[メモ][OS X] Sublime textでShift-JISを扱うには

Pocket

Sublime textはOS Xで使えるテキストエディタ。
Shift-JISが読めないが、Pluginで対応できる。
Pluginの名前はConvertToUTF8。
「import」などせず、Pluginをダウンロードして突っ込む古式ゆかしい方法を示す。

なお、sublime text3の場合はcodec33も必要。

方法

公式サイトからダウンロードする。
伸長(解凍)後、Sublime textのパッケージフォルダにコピーする。
Sublime textを再起動。

公式サイト

https://github.com/seanliang/ConvertToUTF8

画面右にあるDownload ZIPをクリックしてダウンロード。

パッケージフォルダへのコピー

ConvertToUTF8-master.zip を展開、フォルダをConvertToUTF8に変更し、パッケージフォルダにコピーする。
パッケージフォルダは、Sublime textのpreferences.. から Browse Packagesで確認できる。
私の例で言えば、パッケージフォルダは以下のとおり。

/Users/<user name>/Library/Application Support/Sublime Text 2/Packages

Sublime Textを再起動

以下のようにShift-JISで開けるようになる。
sublimeTextShiftJIS

[メモ] wxPythonがOS Xにインストールできない(解決)

Pocket

wxPythonはWindows, OS X, LinuxなどOSを問わずGUIアプリケーションを作ることのできる超絶ありがたいツールである。
あるのだが、OS Xにインストールしようとすると、イメージが「壊れているからインストールできません」と来る。
スクリーンショット 2014-09-19 13.40.54
実はこれ、壊れているのではなく、単にサインされていないだけである。
解決法を示す。

システム環境設定の「セキュリティとプライバシー」から「一般」に進み、「ダウンロードしたアプリケーションの実行許可」で「すべてのアプリケーション」を選べばよい。
スクリーンショット 2014-09-19 13.40.09
インストールし終わったら元に戻しておこうな。

http://stackoverflow.com/questions/21223717/install-wxpython-on-mac-os-mavericks

[メモ][Python][SQLite] 巨大なSQLiteデータベースからレコードを取り出すには

Pocket

PythonでSQLiteのデータベースからデータを抜き取るときには何種類か方法がある。

  1. fetchallで一気に取得する方法
  2. fetchoneを繰り返す方法
  3. fetchmanyで数行ずつ取得する方法

である。

fetchoneはダルいから、いままではfetchallを使っていた。
単純に気持ちの問題なんだけれども、根こそぎぶっこ抜いてリストにいったん入れてしまえば、あとはフッツーのPythonで流儀で操作できるからである。
しかし。この方法には問題がある。
fetchallで全部を取り出した先はどこかと言えば、メモリである。
つまり、データベースが巨大になるほど、メモリをバカ食いするわけである。
これはたまらん。

そこで以下のようにする。

def getAllRecords(cursor, arraysize=1000):
    while True:
        records = cursor.fetchmany(arraysize)
        if not records:
            break
        for record in records:
            yield record

データベースから1000行ずつ取り出し、かつ、1行ずつyieldする。
メモリ使用量も抑えて、かつスピードも出る方法である。

元ネタは以下。
Use generators for fetching large db record sets (Python recipe)
http://code.activestate.com/recipes/137270-use-generators-for-fetching-large-db-record-sets/

[メモ] clamav先生、悪意のあるソフトウェア削除ツールにトロイを見つける(誤検出)

Pocket

Windows xp用にと、大昔に取得していたMicorosoftの”悪意のあるソフトウェア削除ツール”をclamavでチェックしたらトロイを見つけおって真っ青になりました。
わたくし、トロイの入った削除ツールをいろんなxpマシンにインストールしたのかと。
しかしまあ、結論から言うと、誤検出でした。

ファイルやURLを登録すると各種アンチウイルスソフトウェアでのチェック結果を表示してくれるVirusTotalというサイトがあります。
ググったところ、このVirutsTotalでの結果がヒットしました。
結果、55のアンチウイルスソフト中、Clamavのみがトロイを検出。
おそらくClamavの誤検出と判断してよいと思います。
ただ、念のため該当ファイルは削除しました。

参考情報として記録を残します。
Clamavのエンジンは以下の通り。

ClamAV 0.98.4/19317/Sun Aug 31 14:18:51 2014

誤検出(と思われる)したトロイは以下のもの

Win.Trojan.Swrort-12784

最新の Windows-KB890830-V5.15.exe (ただWindows7用ですが)では検出なし。