Pages - Menu

2012-10-29

Photoshopで名刺づくり

Photoshop(またはIllustrator)で名刺をデザインし、名刺用紙(A4, 10枚分)で印刷する方法
※ここではPS7.0を使用
  1. 91mm×55mmのカンバスサイズで名刺をデザイン、psdで保存
  2.  別名で保存(画像を統合後は再編集できないため)
  3. レイヤー > 「画像を統合」
  4. (背景)レイヤーを複製して名刺レイヤーとする
  5. 「カンバスサイズの変更」 > 182mm×275mmに変更
  6. ガイドを作成(x=91mm, y=55, 110, 165, 220)
  7. 名刺レイヤーを複製し、ガイドにしたがって配置(2×5)
  8. プリントプレビュー > 「画像を中央に配置」にチェック
  9. プリンタの設定を確認して印刷

2012-10-27

複数行にマッチする正規表現

JavaScriptのString.matchメソッドでは、1行しかマッチングが行われない。
正規表現内に\nを含めても良いが、次のように書くことですべての行でマッチングが行われる。
String.match(/[\s\S]/)

参考
FFFF JavaScriptで改行にもマッチする正規表現Add Star

2012-10-19

invalid XML character

An invalid XML character (Unicode: 0x1e) was found in ...
というエラーメッセージを吐くことがある。
原因はよく分からないが、とりあえず、replaceAllメソッドで回避することは可能。
String.replaceAll("\\x1e", "")
\x1eは、16進数コード1eの文字。

ついでに、ネットでコードを調べているとよく出てくる"\"は、文字コードの問題でスラッシュになっているが、"¥"のことである。

2012-10-18

Protegeの関連付けができない問題

何かしらの条件で、Protegeを拡張子に関連付けられなくなる問題があるようである。
症状は次の通り。
  • 「ファイルを開くプログラムの選択」でProtege.exeを指定しても、エクスプローラが反応しない
  • コンパネの「既定のプログラム」 も同様に変更不可
原因は不明。
(私の場合、Protege.3.4.6を一旦アンインストールし、Protege3.4.8をインストールし直したところ、この症状になった)

仕方ないのでレジストリを直接いじって修正。
(レジストリの変更は自己責任で)

  1.  Protegeを開き、適当にプロジェクトを保存する
  2. *.owl *.pprj が作成される
    (*.owlのアイコンがProtege(またはLaunchAnywhere)→解決)
  3. *.pprjは少なくともProtegeに関連付けされてるのを確認
  4. Regeditを起動
  5. タスクマネージャーのプロセスでexplorer.exeを終了
  6. 次のキーを開く
    \HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts
  7. ここで、.owl以下のサブキーすべてを、.pprjと同じになるように変更する
  8. Regedit終了
  9. タスクマネージャー(win7/Ctrl+Shift+Esc winXP/Ctrl+Alt+Delete)を開き
    新しいタスクの実行からExplorerを実行

以上で関連付けが行われる。

String.splitメソッドによるOutOfBoundsException

String.splitメソッドで分割すると、値を代入する配列全体が初期化される。
例えば
String[] str = {"a", "b", "c"};
String x = "abcde";
str = x.split("g", 2);
としたとき、当然文字列xには"g"は含まれない。そのため、
str[0] -> "abcde"
となる。
ところで、予め初期化しておいた配列の第2・3要素は開放されてしまうことに注意する。
つまり、参照しようとするとエラーとなる。
str[1] -> OutOfBoundsException : 1
str[2] -> OutOfBoundsException : 2
そのため、第2以降の要素を用いる場合は、ほぼ必ずstr.lengthの判定が必要ということになる。

2012-10-17

Javaでの正規表現

正規表現では"."や"?"などのいくつかの文字は特殊文字となる。
それらの文字を検索条件に含めるためには、"\"でエスケープする必要がある。
しかし、Javaでは"\"自体がエスケープ文字として認識されてしまうため、二重にエスケープする必要がある。

example
"11.2 Test"  にマッチする正規表現
regex = "[\d]+" + "\\." + "[\d]+" + "\\s" + ".*"

2012-10-12

Javascriptでのローカルファイルの読み込み

FileAPIを使ってローカルファイルの操作ができる。
Fileタイプのinputを用いる。
<input type="file" id="fileId"/>
注意すべきは、fileの実体は配列になっていることである。
ファイルが一つの場合でも、[0]に格納されている。
document.getElementById("fileId").files[0]
ファイルの内容を読み出すためには、FileReaderを用いる。
var fileData = document.getElementById("fileId").files[0];
var reader = new FileReader();
reader.onload = function(evt){
        document.getElementById("text").innerHTML = evt.target.result;
}
reader.readAsText(fileData, "utf-8");
参考
ASCII.jp - FileAPIでブラウザーからローカルファイルを操作


2012-10-03

String#matchesメソッド

簡易的な検索にはcontains, startsWith, endsWithメソッドなどが使える。
正規表現を用いた高度な検索が必要な場合は、matchesメソッドを用いる。

ex)文字列aに数字が4回以上含まれるか
a.matches(".*"+"[0-9]{4,}"+".*")
参考
JAVA Developer