ブログトップ 記事一覧 ログイン 無料ブログ開設

今日もスミマセン。

Do you follow me?

2010-02-07

Notify.ioクライアント for Windows (Niow) をアップデート【微妙な操作性についての調整】

変更点

  • タスクトレイアイコンのダブルクリックでウィンドウを復元するようにした。
  • ウィンドウの閉じるボタン[x]でタスクトレイに入るようにした。

Niow_0.1.5.zip

2010-02-05

Windowsネットワークで共有しているファイルが誰かに更新されたらGrowlで通知するスクリプト

ネットワーク上で不特定多数が共有するファイルがいつ更新されているか確認したい場合って多々ある。

そこで、ファイルの更新日をチェックして前回の更新日から変更があれば Growl で通知するスクリプトかいてみた。

実行すると、こんな感じでファイルの更新を通知してくれる。

http://gyazo.com/b50dbd9dc063d15a33e0b723ecd167e5.png


監視対象のパスの書き方をそれなりにすれば、別に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-01-31

投げてみた

みんなruby-listにはもっと気楽に投げていいと思うんですよ。

2010-01-30 - はてなるせだいあり

そうですね、ためらう理由はない。と、いうことで投げてみた。

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]

PostgreSQL: Documentation: Manuals: PostgreSQL 7.4: VACUUM

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オブジェクトへの参照を持つ定数