2010-02-07
Notify.ioクライアント for Windows (Niow) をアップデート【微妙な操作性についての調整】
変更点
- タスクトレイアイコンのダブルクリックでウィンドウを復元するようにした。
- ウィンドウの閉じるボタン[x]でタスクトレイに入るようにした。
2010-02-05
Windowsネットワークで共有しているファイルが誰かに更新されたらGrowlで通知するスクリプト
ネットワーク上で不特定多数が共有するファイルがいつ更新されているか確認したい場合って多々ある。
そこで、ファイルの更新日をチェックして前回の更新日から変更があれば Growl で通知するスクリプトかいてみた。
実行すると、こんな感じでファイルの更新を通知してくれる。
監視対象のパスの書き方をそれなりにすれば、別にWindowsに限定されないはず...
ruby_gntpが必要です。
gem install ruby_gntp
でインストールしといてください。
スクリプト
require 'kconv' require 'rubygems' require 'ruby_gntp' targets = [ "//000.000.000.000/shared/doc/Excelファイル.xls", "d:/Projects/hoge/test.txt" ] entry = {} while true targets.each do |target| current = File.mtime(target) puts "#{Time.now} check #{target} ctime#{current}" unless entry[target] entry[target] = current else if entry[target] < current puts "#{target} has updated!" GNTP.notify ( :app_name => "File observer", :title => "File has updated!!", :text => target.toutf8 ) end entry[target] = current end end sleep 5 * 60 # 5min. end
カスタマイズ方法
監視対象ファイルの設定
target配列に監視対象のファイルのパスを定義します。具体的には以下のような感じです。
例1 C:\hoge\fuga.txt
"c:/hoge/fuga.txt"
例2 \\fileserver\hoge\fuga.txt (コンピュータ "fileserver" の共有フォルダ"hoge"の中の"hoge.txt")
"//fileserver/hoge/fuga.txt"
インターバル(間隔)
監視する間隔は sleep のパラメータを調整します。
sleep 5 * 60 # 5min.
2010-02-01
Ruby/GNTPひそかにアップデート(Ver.0.3.4)
Version 0.3.4
- 複数のNotificationの登録に失敗してた件の対応
Commit 43f5e34e7a5992db620166a5284899ea9ba7f087 to snaka's ruby_gntp - GitHub
2010-01-30
Herokuで使用中のDataサイズを削減する
今朝、Herokuサポートから”無料で使える範囲を超えてるから有料サービスにアップグレードしてね”とメールがきた。
heroku infoで確認してみると、"64M"程度使用中となっている
どうも、デバッグ用に出力しているログ用のテーブルが大変な事になっているらしかったのでごっそり削除することにした。
heroku consoleコマンドでリモート接続して。以下のようにテーブルの中身を削除。*1
>> DB.execute "truncate table access_log"
念のため、VACUUMも実行しておいた
>> DB.execute "VACUUM FULL"
で、データベースのサイズを確認してみる。
>> DB["select pg_size_pretty(pg_database_size('<db name here>'))"].first
結果は数十Kb、これなら大丈夫だろう。と、思って heroku infoで確認してみると、まだ"64M"程度使用中となっている...
IRCとかで質問してみたり、PostgreSQLのマニュアル調べたりしてみたが、よくわからず、Herokuのサポートにメール投げて回答を待つ事にした...が、再度 heroku info してみると、数百Kbに落ちていた。
単に反映されるのに時間が掛かっていただけみたい。
参考
Class: Sequel::Database [Sequel: The Database Toolkit for Ruby]
Herokuで使用中のテーブルのおおよそのサイズを求める
herokuではPostgreSQLが使われている。
PostgresSQLでは以下のようなSQLでテーブルのおおよそのサイズ求められる。
select to_char(relpages * 8 * 1024, '9,999,999,999') || ' kb' as usage from pg_class where relname='access_log'
上記は'access_log'というテーブルのサイズを求める例、この名前を任意のテーブルに変更すればよい。
自分の場合、アプリでSequel使っているので、heroku consoleでリモートでアプリケーションに接続して、以下のコマンドでサイズを確認することができる。
DB["select to_char(relpages * 8 * 1024, '9,999,999,999') || ' kb' as usage from pg_class where relname='access_log'"][1]
参考
PostgreSQL: Documentation: Manuals: PostgreSQL 7.4: Monitoring Disk Usage
*1:以下、DBオブジェクトはアプリケーション内で生成しているSeauelのDatabseオブジェクトへの参照を持つ定数
