«前の日記(2004-12-14 (火)) 最新 次の日記(2004-12-20 (月))»  

まちゅダイアリー


2004-12-15 (水)

exerb

phonondriveより、 Ruby スクリプトを EXE ファイル化する exerb の話。

exerb した exerb があれば、みんなで幸せになれると思う。そう思った一日。

スクリプト書くのに五分。exe 出来るまで二時間弱。

確かにそうかも。 僕も UNIX で動かそうとして挫折したままだった。

Tags: Ruby

カウンタ復旧

以前から壊れていた日記のカウンタを復旧させた。 tDiary のカウンタは、データが1週間分バックアップされるようになっているけど、気がついたときには1週間が過ぎていて戻せないようになっていたのだ。

カウンタのデータは PStore というバイナリ形式で保存されているので、手で復旧させるには少し大変だった。 以下、その手順。かなりやっつけなので、真似するときは慎重に。

  • 以下のスクリプトで counter.log を正しいデータに復旧
#!/usr/bin/env ruby
all = yesterday = 0
ARGF.each do |line|
  m = /^(.*) : (\d+),(\d+),(\d+)/.match(line)
  date, today = m[1], m[3].to_i
  all += today
  puts "#{date} : #{all},#{today},#{yesterday}"
  yesterday = today
end
  • misc/plugin/counter.rb を適当なディレクトリにコピー
  • cache/counter/counter.dat を同じディレクトリにコピー
  • コピーした counter.rb を以下のように修正(元のファイルは修正しないこと)
@@ -138,8 +138,6 @@
 =end


-if ["latest", "month", "day"].include?(@mode) and
-  ENV['REQUEST_METHOD'] == 'GET'

 require 'date'
 require 'pstore'
@@ -155,6 +153,10 @@
     @ignore_cookie = false
   end

+  def repair(all, today, yesterday)
+     @all, @today, @yesterday = all, today, yesterday
+  end
+
   def up(now, cache_path, cgi, log)
     if @newestday
       if now == @newestday
  • 380行目以降のクラス外のメソッドもすべてコメントアウトする
  • 以下の内容で repair-counter.rb を作成する
#!/usr/bin/env ruby
require 'pstore'
require 'counter'
db = PStore.new('counter.dat')
db.transaction do
  db['countdata'].repair(*ARGV) if ARGV.size == 3
  puts "all: #{db['countdata'].all}"
  puts "today:  #{db['countdata'].today}"
  puts "yesterday: #{db['countdata'].yesterday}"
end
  • コマンドラインで repair-counter.rb 10000 150 100 を実行(数字は戻したい値を入力。counter.log を参考に。)
  • 更新された counter.dat を元の場所にコピーする。

うちの環境はこれで戻っているけど、無茶しているのは間違いない。 ともかく、tDiaryGroph-FlashStyle の表示が綺麗になって(自己)満足。

※ 繰り返しますが、真似するときは慎重にお願いします。壊れても責任はもてません。

Tags: tDiary

Windows XP で時刻同期

@IT:クライアントPCの危機対策 第3回より。

そのほかにも、コマンドラインツールとしてTelnetが提供され、日付と時刻のプロパティからNTPが利用できる。

これは知らなかった。 今までは Becky! の Adjust Time Plug-In を使っていたけど、 Windows XP にも機能があったのね。

調べてみると、 Windows 2000 の頃から NTP に対応していたみたい。

Tags: memo

CD-R の消去

ITmedia エンタープライズ:一般ユーザーのためのセキュリティ12カ条より。

CD-Rを無効にする最善の方法は、5秒間、電子レンジで高温処理することだ。

なるほど、これは知らなかった。 第11条のファイアウォールは、ブロードバンドルーターが普及している日本では自然に実践されていそう。

Tags: memo