Top > Blog

テーブルの行(TR要素)をスライドで表示切替させる方法(2)

前回はサンプルだけ提示しましたが、今回はそのソースコードを解説します。

Read the rest of this entry »

Mac が起動しない

Boot CampでWindows を使用していたら、突然Mac に切り替えられなくなりました。
原因不明。

Read the rest of this entry »

Mac mini SSD搭載モデルベンチマーク

Windows on Mac に惹かれて、十数年ぶりにMac を購入した。
Read the rest of this entry »

EclipseのSubversiveでエラーが出まくる

Eclipse3.4でSubversiveを使用してSubversionにアクセスするとエラーが出まくっていた。
Read the rest of this entry »

Mailmanで過去の投稿を一気にメーラーに取り込む方法

Mailmanで運用されているメーリングリストの過去の投稿を一括で取得してメールソフトで読みたかったのだが、Mailmanにはgetコマンドが無いらしい…
困った、と思っていたら、

Read the rest of this entry »

テーブルの行(TR要素)をスライドで表示切替させる方法(1)

jQuery等のライブラリを使うと、様々な視覚効果やアニメーションを簡単に行う事が出来ます。
例えば、

Read the rest of this entry »

TortoiseSVNでSubversionのコミットログを再編集できるようにする

Subversionでバージョン管理していると、コミットログを書きかけとか間違えた内容で書いてしまって、そのままコミットしてしまう事がよくあります。
「再編集できたらなあ」と思ってましたが、TortoiseSVNのメニューを見たら再編集できる事に気が付きました(知らなかった)ので、まずその経緯を。

Read the rest of this entry »

FirefoxでCSS, JSの読み込みエラーが発生する事がある

先日開発中のサイトを動作確認していたら、ページにjQueryを読み込ませた途端に、Firefoxでの表示が変になりました。
Read the rest of this entry »

T43の2010エラーに対処するBIOS設定

先日Transcend製のSSDに換装したT43ですが、起動の時に2010エラーが表示されて、起動が一旦止まります。互換性の警告のようですが、ESCキーを押して続行すれば特に問題はありません。

Read the rest of this entry »

T43でPhotoFast(G-Monster)はダメ、Transcendは爆速。

PhotoFastのG-Monster-IDE (64GB MLC)を購入して、ThinkPad T43で換装しましたが、全く使えません。Windows XPをインストールする途中で止まってしまいます。

Read the rest of this entry »

Ruby覚書

珍しくRubyでCGIなんぞ作ったので、忘れないようにメモを…

CGIからメールを送る

Rubyには TMail とか ActionMailer などのメール送信ライブラリがあるようですが、試してみたところ、そもそも配備対象のレンタルサーバーからはSMTPでの送信が出来ませんでした。 ポートが閉じられてるらしい。。。

レンタルサーバーの説明書を読むと sendmail は使えるようだったので、そいつでメール送信するとうまく行きました。 下記がそのメソッドです。

require 'kconv'

def sendmail(from, to, cc, bcc, subject, body)
  
  path = "/usr/lib/sendmail" # sendmailのパス
  subject = subject.tojis
  subject = [subject].pack('m') # Base64
  subject.gsub!(/\n/, "")
  subject = "=?ISO-2022-JP?B?#{subject}?="
  body = body.tojis

  IO.popen("#{path} -t", "r+") { |io|
    io.print "From: #{from}\n"
    io.print "To: #{to}\n"
    io.print "Cc: #{cc}\n" if cc != nil
    io.print "Bcc: #{bcc}\n" if bcc != nil
    io.print "Subject: #{subject}\n"
    io.print "MIME-Version: 1.0\n"
    io.print "Content-Type: text/plain; charset=iso-2022-jp\n"
    io.print "Content-Transfer-Encoding: 7bit\n"
    io.print "\n"
    io.print "#{body}\n"
  }
end

JIS変換で文字化け

前述のメール送信で、件名をJISに変換してますが、テストしてたらここで微妙に文字化けが発生してました。 調べてみるとどうも件名を定義しているスクリプトの文字コードがShift_JISなのに、オプションを指定せずに Ruby のインタプリタを実行していたのが原因らしい。説明はリファレンスマニュアルにありました。

FAQ::日本語の取り扱い – Rubyリファレンスマニュアル

こうすれば良いんですね。

#!/usr/local/bin/ruby -Ks

CGI実行時に発生したエラーを見る

begin ~ rescue(例外処理)end で、例外処理に以下のようなコードを実行させると、例外発生時にバックトレースが見れました。

require "cgi"
require "erb"
# 同一ディレクトリのrbファイルを参照
Dir.glob("*.rb").each do |file|
  require file
end

begin

print "Content-type: text/html\n\n"
cgi = CGI.new
# 以下、CGIの処理...

rescue Exception => e #例外を取得
  print "Content-Type: text/plain\n\n"
  puts "Error:"
  puts e
  puts ""
  puts "backtrace:"
  print e.backtrace
end

DocBookの段落内で改行する

DocBookではHTMLの<br/>に該当するタグがありません。これは改行はフォーマットであってXMLの責務では無いとする事からだそうですが、 Read the rest of this entry »

Eclipse3.3.1が突然落ちる問題への対処法

Eclipse3.3.0 → Eclipse3.3.1 にアップグレードするとEclipseが落ちまくりました。 Read the rest of this entry »

ダイアログを出さずに window.close() する

IE では、 ウィンドウを window.close() で閉じる場合、 下図のようなダイアログが出ます。

IE のダイアログ

セキュリティ上の理由だったか、 ECMAScript の仕様だったか忘れましたが、 いずれにせよスクリプトコードが勝手にウィンドウを閉じるという、 ユーザーが意識しない所での動作を防ぐ意味では重要なダイアログだと思います。 ちなみにこれは、 あらかじめ JavaScript で開いたウィンドウを閉じる場合には出ませんし、 IE 以外のブラウザでは、 ダイアログすら出ず、 window.close() そのものを機能させなくしているものもあります。

ところで、 このダイアログですが…企業内でのみ使う業務アプリなどを作っていると、 時に邪魔になる事があります。
例えば下図のような画面遷移を行って、 セキュリティ上の目的から

  • ログイン後の画面ではアドレスバー・メニューバーなどを表示しない
  • ログイン後の画面では右クリックをさせない

等の機能を持たせる事があります。

この時にログイン後の画面を開いた親ウィンドウとなっているログイン画面() を自動的に閉じたい場合もある()のですが、 いちいち「閉じますか?」のダイアログが出ていると使いにくいと思われる時があります。

そんな時は、

window.opener = window;
window.close();

として、opener に何かの参照を入れると、 例のダイアログは出ません。 業務アプリなどで、 ブラウザがIE固定の場合などには有効に使えそうです。

Log4J でログファイル名を動的に変更する

以前参加していたプロジェクトでバッチプログラムを開発する事案があり、 ログ出力には Log4J を採用してプログラムを開発しました。
Read the rest of this entry »

BeanUtils で独自のコンバーターを使用する

BeanUtils で JavaBeans のプロパティを一気にコピーする で作成したサンプルでは、 java.util.Date を String にコピーした時に “yyyy/MM/dd HH:mm:ss” というような任意のフォーマットへの変換は出来ませんでした。 Read the rest of this entry »

BeanUtils で JavaBeans のプロパティを一気にコピーする

Web アプリなんかを作っていると、よく DB 側のサービス層から取得したオブジェクトを Web 層側のフォームBean に変換して使用したり、またその逆を行ったりという事をよくやります。 Read the rest of this entry »

JDialog のコーヒーカップアイコンを消す

今回珍しく Applet(Swing) + RMI の仕事でした。 Read the rest of this entry »

ブラウザの戻るボタンを無効にする

Web アプリケーションを作成していると、時にブラウザで履歴をさかのぼる機能をを無効にしなければならない時があります。
Read the rest of this entry »

SWT で IME を制御する

UI を作成していると、入力欄にフォーカスが当たった時に、IME の入力モードをオフ(半角英数字入力)に切り替えたい時などがあります。 ただし IME の制御は Windows API 等を使わなければず、 Java からの制御は難しいのかな…と思っていたら、さすがに SWT では簡単にできるようです。

Read the rest of this entry »