[Tips] Twitterでパスワードを変えるときの注意

当ブログをご覧の皆様は既にご存じかもしれませんが、私は普段からよくTwitterを使っております。

ちなみに私のアカウントは、 http://twitter.com/naka54 です。お気軽にフォローお願いします!

このTwitterですが、クライアントがいろいろとあるのがひとつの特徴で、私の場合、家のデスクトップPC、私的な研究用に買ったAndroid端末、メインの通話・メールに使っている携帯電話、会社のデスクトップPC、ノートPCと、いろいろなところからアクセスしています。

そのため、気をつけないといけないのが、パスワードを変えるときです。
あたりまえなのですが、各所でクライアントを起動するたびに、パスワードを変えてからアクセスする必要があります。

さらに気をつけたいのが、パスワードは一定回数間違えると、しばらくの間アカウントがロックされてしまうということです。

手動で起動するクライアントなら「あ、パスワード変えたんだっけ」と思い出して設定を変更するだけなのですが、やっかいなのは、携帯端末などで、一定間隔毎にアクセスする設定にしている場合です。私は、Android端末を自宅の無線LANに繋ぐ設定にして使っているのですが、この端末内のTwitterアプリが一定間隔毎にアクセスする設定になっていまして、これを自宅に置いたまま出勤し、会社でパスワードを変更したところ、しばらくしてアカウントがロックされてしまいました。おそらく、Android端末からのアクセスでログインに失敗し続けたせいだろうと想像されたため、自宅に電話して妻に端末の電源を切ってもらい、なんとか事なきを得ました。

もしかしたら仕様が公開されているのかもしれませんが、Twitterは何回ログイン失敗するとアカウントロックされ、ロックはどのくらいの時間で解除されるのか、わからないので、これに引っかかると結構やっかいだと思います。

皆様もお気をつけください。

あと、まだ実質稼働していませんが、私個人のTwitterアカウント以外に、会社オフィシャルのアカウントも近々稼働開始したいと思っています。ご期待ください。

[Java][Tips] Eclipse Pleiadesによる日本語化

Eclipseでメニューやメッセージを日本語化しようとするとき、以前はeclipse.orgのダウンロードページから、「Language Pack」がダウンロードでき、eclipseのフォルダに上書きするだけで適用が出来ていたのですが、最近のバージョンからは、eclipse.orgでは直接日本語化のためのパッケージは提供されなくなってしまいました。

そこで最近では、Pleiadesというプラグインを利用することが定番となってきているようです。

Pleiades –  Eclipseプラグイン日本語化プラグイン

こんな仕事をしていながら、お恥ずかしい話なのですが、私はPleiadesを少々食わず嫌いしておりまして、Pleiadesそのものではなく、サードパーティー版を使っておりました。

しかしながら、Pleiades自体の適用もことのほか簡単であることが分かりました。READMEを読んでいただくとわかりますが、若干(ほんとうに少しだけですが)設定ファイル(eclipse.ini)に編集をする必要はあるものの、それ以外は以前のLanguage Packと同様、features/pluginsフォルダを上書きするだけです。

それすらも、というかたにはオールインワンのパッケージまで提供されています。至れり尽くせりですね。

Eclipseをこれから使ってみようとお考えの方は是非Pleiadesも使ってみましょう。

[Rails][Tips] Rails 2.3.4でmongrel_clusterのprefixが効かない

先日に引き続きRailsのTipsです。

実は、来月開催の「Ruby on Railsインストール道場(2)運用環境構築編」は、前回までRails2.0.xをベースにした内容になっていたのですが、次回からRails2.3.4対応に教材を改訂する予定でおります。

といいつつ、ほとんどの内容はちょっとした違いだけで済んでいるのですが、このコースではApache+Mongrelという組み合わせで環境を作るのですが、ひとつだけ結構変わってしまったポイントがあります。それが、mongrel_clusterの設定ファイル(mongrel_cluster.yml)で設定できるアプリケーションのprefix(JavaのWebアプリでいうところのコンテキストパスみたいなものです)です。

mongrel_cluster.ymlに記述することのできたprefix属性は、Rails2.3.4では効かなくなっています(ネット上の情報によれば2.3かららしいです)。かわりに、production.rbなどのファイルに

config.action_controller.relative_url_root  = '/プレフィックス'

のように設定します。私の場合、開発時はprefixなし、本番運用時のみprefixありにするので、production.rbに書きますが、開発時も運用時もprefixありでいいなら、environment.rbに書いてもいいでしょう。

そして、このMongrelにApacheのリバースプロキシで接続するようにしている場合は、


<VirtualHost *:80>
ServerAdmin www
DocumentRoot /home/www/rails/app
ServerName localhost
ErrorLog logs/app.com-error_log
CustomLog logs/app.com-access_log combined
# ProxyPass/ProxyPassReverseの接続先URLからプレフィックスを外す
ProxyPass /app http://localhost:3000
ProxyPassReverse /app http://localhost:3000
</VirtualHost>

のようにします。今までとの違いは、mongrel_cluster.ymlにprefixをつけていたときはProxyPass/ProxyPassReverseの接続先URLにも同じくプレフィックスが必要だったのですが、前述のconfig.action_controller.relative_url_rootを使う場合には、接続先URLにはプレフィックスはつけなくてよいことになりました。私は最初これがわからなくてだいぶ時間を使ってしまいました。

参考になりましたら幸いです。

また、これらを含めた運用環境のインストール手順については、「Ruby on Railsインストール道場(2)運用環境構築編」で扱いますので是非ご検討ください。

[Rails][Tips] will_paginateのAjax対応

いま、とあるサイトのリニューアル案件に関わっておりまして、これがRailsで構築されています。このサイトがサービスインしたのは2006年とRailsを利用したサイトとしては結構古くて、当時はRailsのバージョンも1.1くらいだったと記憶しています。そんな時代のサイトなので、当然ながらRailsもバージョン1ベースで動いています。

さすがに、いつまでもそのバージョンで稼働を続けるのもメンテナンシビリティから考えてあまり好ましくないと思われましたので、今、私の手でRailsのバージョンを2.3.4に対応させる作業をリニューアルの作り込みと並行して行っています。

そんな中で、割合にインパクトがあるのが、Rails2.0で標準から外されてしまったページネーション機能(Googleの検索結果に代表されるような、多数の問い合わせ結果を一定件数ずつのページに分けて表示する機能)への対応です。

もちろん、2.0登場当時に、対応としては「will_paginate」プラグインを入れればほとんど同じ感覚でページネーション機能が使えるということはよく知られています。しかしながら、該当のサイトはAjaxを多用していますので、will_paginateで生成したページナビゲーション(<前へ 1 2 3 4 … 10 次へ> のようなリンクですね)からのリクエストをAjaxに対応させる必要があります。とはいえ、ページナビゲーションのリンクは will_paginateメソッドが自動生成するため、そのままではAjaxに対応させることができないように思えます。

困ったときはGoogleで検索・・・と「will_paginate ajax」とかのキーワードで検索してみたところ、いくつか対応方法が記されたサイトがあったのですが、私のやり方がいけないのでしょうか、今ひとつうまくいきませんでした。

途方に暮れかけたのですが、考えてみると、公式サイトを見に行っていなかったことに気がつきました。見に行ってみますと、そのものずばりなページがありました。

Ajax Pagination

書かれている方法を試して、無事に解決することができました。灯台もと暗しというか、何でもとりあえず検索から始めるというのも、善し悪しだなと思った日でした。

http://wiki.github.com/mislav/will_paginate/ajax-pagination

[WordPress][Tips] 自動アップデート機能がうまく動かないとき

弊社のブログはWordPressで作成されています。最近のWordPressは管理画面を表示したときに、アップデートがあれば通知してくれるようになっているんですね。しかも、アップデートを適用したければ、管理画面上でアップデートするボタンをクリックすれば、勝手にアップデートしてくれるのです。ずいぶん、楽になったのですね。

私も、おお、楽でいいなと思い、早速アップデートのボタンをクリックしてみたのですが、なぜか、うまくアップデートすることができませんでした。何事か、接続のための情報を入れよ、という画面になってしまい、何を入れたらいいものか全然わからないのです。

悩んでいたところ、とあるサイトで解決法がわかりましたので、参考までにご紹介します。

2009-06-13 WordPressの自動アップグレードliang’s essay

私の場合、WordPress用のフォルダの所有者をrootにしていたので、Webサーバの実行ユーザ(apache)では、WordPress用のフォルダを書き換えることができなかったのだと思われます。

前のバージョンまでは、管理画面メニューの日本語もところどころ英語混じりだったりしたのですが、アップデートするとほとんどの箇所が日本語にローカライズされていますね。「こんにちは、中越さん!」のかわりに「Howdy,中越!」と表示されていた前バージョンのメッセージも、嫌いではなかったですが。

[Tips] バックアップをそこそこ手軽で安全に持ち歩く

私は決して根が真面目だったり仕事熱心だったりするわけではないのですが、それでも、帰宅後や休日に仕事をしなければいけないときがあります。といっても、会社に行かないとデータがないので、あきらめてしまったり、翌日の早朝に会社に寄って済ませたり、仕方なく出勤したり、そういう対応にならざるを得ませんでした。

世の中、クラウド時代なのだから、電子データなんかクラウドに置いておけばいいではないか、と思われそうですがやはり顧客のデータとかそういうものをクラウドに置くのはどうも抵抗があります。

といって、外部から社内PCに接続できるようにするのも、セキュリティの面でなんとなく心配です。私はセキュリティのプロではないので、にわか仕込みでそういう仕組みを作ると、穴がいっぱいありそうでちょっと怖いんです。

そんなわけで「外部メディアにバックアップを取ってそれを持ち歩く」という方法を考えたのですが、懸念されることがいくつかありました。

  • そもそも、そのメディアを紛失・盗難する危険があるのでクラウドに置くのと一緒では?
  • バックアップは時間がかかるし、定期的に実行しても、最新のデータじゃないことがありえるからイヤ!
  • ハードディスクは耐衝撃性に不安があるので、気軽に持ち歩きたくない!

「紛失・盗難の危険性」に関しては、完全とはいえないものの、データ自体を暗号化することで他人の手に渡ってしまったときにもある程度の安全性を得ることができると思います。

私は普段から、TrueCrypt(Wikipediaによる解説はこちら)という暗号化ソフトを使っています。これは暗号化された仮想のドライブを作ることができるので、他のソフトとの相性が非常に良いのです。しかも、いったんマウントすれば、あとは普通のドライブと同じように使えるので、操作に面倒がありません。

よく、お手軽な暗号化ソフトで「格納したいファイルやフォルダをこのソフトのウィンドウにドラッグアンドドロップすると、暗号化されます」というようなインターフェースのソフトがあるのですが、これだと暗号化したいファイルを毎度毎度手動で移動しないといけないので、自動化などには全く向きませんし、他のソフトと組み合わせるのもほとんど無理と言っていいでしょう。

詳しい使い方は、時間があればまた改めてご説明しますが、TrueCryptを使って、外部メディアに暗号化されたドライブを作ってしまえば、持ち歩くことのリスクを多少低減することができます。もちろん、今日は飲み会だし帰りも遅いので仕事はもうしないだろう、というようなときは、無理に持ち帰らず机のキャビネットにでも入れて帰ればいいので、そういう意味でのリスク低減も必要ですね。

また、TrueCryptはWindows以外(LinuxやMac)にも対応しているので、会社と自宅でOSが違うという人でも使えるのが嬉しいところです。

そして、「バックアップが面倒」な問題に関しては、特定のフォルダを常時監視し、追加・変更・削除などの変化があった瞬間にバックアップを取ってくれるという、なかなか優れもののソフト「Lazulite」というソフトがあります。このソフトを使って、目的のフォルダの内容を、TrueCryptで暗号化されたドライブにバックアップされるように監視する設定にしておけば、特に意識しなくても、常にバックアップ先の状態を最新に保つことができるのです。私はせっかちで、かつ忘れっぽいところがあるので、定期的なバックアップだと時間がかかるのがいやだったり、といって手動でやろうとするとバックアップすること自体を忘れてしまったり、ということがあるのですが、このソフトならばそういう私の性格でも大丈夫です。

そして最後の「ハードディスクの耐衝撃性」ですが、これはさすがにソフトウェアで解決するには限界があります。お手軽なのは、USBメモリですね。私の場合は、まだ使ったことがないという興味もあって、SSD(Solid State Drive)の外部メディアを買ってみました。最近は、こういったメモリ系のデバイスでも、16GBとか32GBとかの大きさのものがお手頃な価格で販売されているので、入手しやすいですね。

この仕組みにしてからは、出社したらSSDを挿してPCを起動し、起動後はTrueCryptのパスワードを入れて暗号化ドライブをマウントするだけで、常時バックアップできるようになりました。帰社時は、特に何も考えずシャットダウンして、SSDを抜いて持ち帰るだけです。

参考になりましたら幸いです。

http://www.truecrypt.org/

[Tips] Oralce 10g Express EditionにはScott/Tigerがいない

Oracleの学習等の用途には、体験版という手もあるのですが、Express Editionを利用したい方もいらっしゃるのではないかと思います。

このExpress Editionには、いわゆるOracleの定番サンプルユーザーであるところのscottユーザーが登録されておらず、これまた定番サンプルテーブルであるところのemp/dept/loc表なども入っておりません。

なければ作ればいいではないか、と言われてしまいそうですが、そもそもこれからOracleを勉強されようとする方に、ユーザーを作れ表領域を作れテーブルを作れ・・・というのも酷な話ですよね。

実はExpress EditionにはHRというサンプルユーザーが登録されていて、scottユーザーのそれと全く同じではないのですが、似たような構造のEMPLOYEES/DEPARTMENTS/LOCATIONSというようなテーブルも所有しています。

しかしながらこのユーザーは初期段階では利用できない状態にされているため、それを解除する必要がありますので、その方法について下記にご説明します。

まず、スタートメニューから、「Oracle Database 10g Express Edition」→「データベースのホームページに移動」を選択します。

送信者 Knowledge-ex. Blog

ブラウザが開き、ログイン画面になりますので、インストール時に設定したパスワードを使い、systemユーザーでログインします。

送信者 Knowledge-ex. Blog

ログインするといくつかのアイコンが表示されますが、「管理」の横にある三角の部分をクリックしてプルダウンメニューを出して、「管理」→「データベース・ユーザー」→「ユーザーの管理」と選択します。

送信者 Knowledge-ex. Blog

ここに、「HR」というユーザーがいますが、アイコンを見ると「時計」のようなマークと、「鍵」のようなマークが付いています。これらはそれぞれ「パスワードの期限切れ」「ロックされたユーザー」であることを表しています。

送信者 Knowledge-ex. Blog

この設定を変更すれば、HRユーザーでログインできるようになります。アイコンをクリックして下さい。

送信者 Knowledge-ex. Blog

アイコンをクリックし、パスワードに新しいもの(「HR」などでよいでしょう)を設定、さらに、「アカウント・ステータス」を「ロック解除済」に変更します。

送信者 Knowledge-ex. Blog

変更したら、「ユーザーの変更」ボタンをクリックします。さきほどの時計と鍵のアイコンが消えていることがわかります。

送信者 Knowledge-ex. Blog

これで、設定が完了しましたので、再びスタートメニューから「Oracle Database 10g Express Edition」→「SQLコマンドラインの実行」でSQL*Plusを起動し、「connect hr/hr」で接続できることを確認してください。

送信者 Knowledge-ex. Blog

ちなみに、「Express Edition」という用語は、「XE」と略されます。調べ物をしたりすると、「XE」という用語もよく出てきますので、覚えておくとよいでしょう。

[Tips] 「テキストロンダリング」でコピーペーストする

私は、仕事柄なのか、オフィス文書や、ブログ、Wikiなど、いわゆる「装飾情報」が含まれる文書に、他のソフトやWebなどから「コピーペースト」をしたいことがよくあります。最近の技術の進歩?で、例えばWeb上でリンクになっているものをコピーしてペーストすれば、コピー先でもリンクの形式でペーストされ、見出しで大きく表示されている文字をコピーしてペーストすれば、その大きさを保ってペーストされるものがほとんどです。

しかしながら、私の場合、コピーペーストしたいのは文字そのものだけで、装飾情報はいらない、というケースが結構多かったりします。そうすると、ペーストした先の文書で、リンクを外したり、フォントの大きさを戻したりしないといけないので、ちょっと面倒です。

私がよくやる方法は「テキストロンダリング」(すいません、これは私が勝手に作った造語です)というものです。手順は以下のとおりです。

  1. まず、目的の文書やWebの文字をクリップボードにコピーします。
  2. 次に、その文字をいったん、メモ帳などの「テキストエディタ」にペーストします。
  3. そして、メモ帳にペーストされた文字を再度コピーし、目的の文書にペーストして完了です。

って、なんか文字にするとどうっていうこともない方法ですね。もともと装飾情報の編集能力を持たないメモ帳などのアプリにいったんペーストすることで、文字についていた装飾情報が削ぎ落とされるという性質を利用しています(そのため、同じエディタでもワードパッドなどを使ってロンダリングすると失敗すると思いますのでご注意を)。なんとなく、この様子が「ロンダリング」という言葉に合うかなあと思いまして命名してみました。「〜ロンダリング」っていうとなんか悪いイメージがありますが、これは別に悪いことをしているわけではないので、もしご存じなかった方がいらっしゃったら是非活用してみてください。

[会社][経理][Tips] セミナー開催の前払いの帳簿処理

ご存知のとおり、弊社では自社開催の研修コースを細々とさせていただいております。

研修については原則前払いとさせていただいているのですが、こういった場合、商品を売ってその場で支払いいただくわけではないため、帳簿上の処理が若干面倒です。

セミナーの受講料を前払いしていただいたときは、払っていただいた時点で売上となるわけではなく、当然ながら研修を実施して修了していただいて始めて売上となります。そのため、この受講料は、帳簿上の勘定科目は「前受金」になります。また弊社のセミナー受講料は銀行振込でお願いしておりますから、受講料が入金された時の振替伝票は、

借方/貸方
普通預金/前受金

となります。やや乱暴にいいますと「借方」というのが会社に入るお金や会社が支払うべき費用の内容、「貸方」というのが会社から出て行くお金や会社に入る収入の内容、というイメージです。

ですから上の伝票の場合、会社の普通預金にお金が入りますが、その内容は前受金である、という意味ですね。

実際に研修を実施し無事に終了したら、売上となります。同時に、前受金が消滅します。この場合の振替伝票は、

借方/貸方
前受金/売上高

となります。イメージとしては、前受金が売上に変わる瞬間という感じです。「前受金」の位置が、最初の伝票と次の伝票で逆になっているので、前受金の元帳は借方と貸方で相殺されて0になります。つまり、時間の流れを外して考えれば、最終的には、

借方/貸方
普通預金/売上高

という借方、貸方が残るわけですね。

などと、偉そうに書いておりますが、普段お付き合いしている税理士さんに教えていただいたものをそのまま書いているだけだったりします。

[Java][Tips] プロパティファイルのUnicodeエスケープをEclipse上で行う

Strutsを使う場合、プロパティファイルの内容をUnicodeエスケープしなければいけないことが多くありますが、せっかくEclipseを使っていても、native2asciiコマンドだけはコマンドプロンプトで実行している・・・という方がいらっしゃるかもしれません。

実は、Eclipseには外部コマンドを実行するためのメニューが用意されています。以下、Windowsの場合を例にご説明します。

まず、メニューから「実行」→「外部ツール」→「外部ツールの構成」を選びます。

送信者 Knowledge-ex. Blog

すると「外部ツール構成」ダイアログが出ますので、左のツリーから「プログラム」を選び、その上にある「新規の起動構成」ボタンをクリックします。

送信者 Knowledge-ex. Blog

「新規構成」という名前の設定画面が右側に出てきます。名前は任意なのでわかりやすい名称(「native2ascii」とか)に変更しても良いでしょう。

次に「メイン」タブの「ロケーション」を設定します。すぐ下にある「ファイル・システムの参照」ボタンをクリックし、JDKのbinディレクトリ(通常は、「C:\Program Files\Java\jdk1.x.x\bin」あたりです)に含まれている「native2ascii.exe」を選択してください。

続いて、「作業ディレクトリー」を設定します。今度は、すぐ下にある「ワークスペースの参照」ボタンをクリックし、 プロジェクト内でプロパティファイル(変換前のもの)が入っている場所を選択します。

そして「引数」のところに、プロパティファイル名(変換前のもの)を記入します。

送信者 Knowledge-ex. Blog

まず、ここまでで、動作を確認してみましょう。 「適用」ボタンをクリックして内容を確定し、続いて「実行」ボタンをクリックします。すると、コンソールウィンドウに、変換結果が表示されます。

送信者 Knowledge-ex. Blog

ここまでがうまくいきましたら、 この結果をファイルに保存できるように設定をさらに変更します。準備として、出力先のファイル(変換後のファイル。拡張子が.propertiesのもの)を作成しておいてください。内容は空でかまいません。

では、再び「外部ツール構成」ダイアログを表示させます。右側の設定画面から「共通」タブを選択してください。

この中の「標準入出力」にある「ファイル」にチェックし、すぐ下にある「ワークスペース」ボタンをクリックしてください。ここで、先ほど作成しておいた自分のプロジェクトの出力先ファイルを選択します。

送信者 Knowledge-ex. Blog

すると、次回からは変換内容がファイルに書き込まれるようになります。

外部ツールの実行はメニューだけでなく、ボタンバーからも選択可能です。

送信者 Knowledge-ex. Blog