メモの日々


2003年11月17日(月)

[link] 間取りのページ

変わった間取りが沢山集められている。面白い。QuickJapan Vol.40より。

[unix] daemontools のページ (新山祐介さん)

サービスを管理するツールdaemontoolsの紹介。定番ツールのようだ。connect24h MLがトリガ。

生活

  • 10:10 出社。
  • 自動販売機に、「自販機にお金(1000円)を入れて取り忘れた方へ 総務部で保管しています」という張り紙があった。あー、ああいうときは総務部へ届けるのが人として正しかったのかなあ。貰ってしまったよ。
  • 総務部に2人申し出てきたらどうするんだろう。ドキドキ。
  • 昨日セールスの電話があり、適当に相槌を打っていたら「お父さんかお母さんはいませんか」と言われてしまった。おれってチャイルドボイスだったのか。
  • ラッキーのhttpd.confが書き換わってて.htaccess使えなくなってるやん。勝手に設定変えちゃまずいのだろうなあ。httpd.confなんでこんなに空行だらけなんだろう。ツールで編集してるのかな。サンイーピー450でもApache起動する気配ないしなあ。
  • どうもマウスの調子がよろしくない。苛々する。
  • ひたすらドキュメント書き。うえーん、つまらん、疲れる。
  • 18:40 退社。
  • 渋谷で定期券を購入。なんでいつもあんなにすごい行列なのだ。

やること

  • 歯ブラシを買う
  • O2ケアを買う
  • WindowsUpdate(職場、家)
  • 定期券を買う
本日のツッコミ(全2件) [ツッコミを入れる]

kdmsnr [本も出てるみたいですよ>間取り]

あいざわ [「間取りの手帖」本屋で立ち読みすると膝からくずおれそうになるので買いました。電車で立ち読みも避けた方がよろしいですね..]


2009年11月17日(火)

[java] ソースにエンコーディングが不正な文字が含まれている際のjavacの挙動

コメント内にエンコーディングが不正な文字が含まれているソースファイルをコンパイルする必要があった。

Antを使うと

警告:この文字は、エンコーディング UTF-8 にマップできません。

という警告はでるがコンパイルできた。が、NetBeans 6.7.1でコンパイルすると

この文字は、エンコーディング UTF-8 にマップできません。

というエラー(警告じゃない)になりコンパイルできなかった。なんでや。

-sourceオプションの有無で動作が変わる

javacに渡されているオプションを比較したところ、「-source」オプションの有無によりjavacの挙動が変わることが分かった。次のようになる。

G:\home\kenichi\work\java>javac -version
javac 1.6.0_17

G:\home\kenichi\work\java>javac -encoding UTF-8 -source 1.6 B.java
B.java:1: この文字は、エンコーディング UTF-8 にマップできません。
//aaaaa?bbbbbb
       ^
エラー 1 個

G:\home\kenichi\work\java>javac -encoding UTF-8 -source 1.5 B.java
B.java:1: 警告:この文字は、エンコーディング UTF-8 にマップできません。
//aaaaa?bbbbbb
       ^
警告 1 個

G:\home\kenichi\work\java>javac -encoding UTF-8 B.java
B.java:1: 警告:この文字は、エンコーディング UTF-8 にマップできません。
//aaaaa?bbbbbb
       ^
警告 1 個

まとめると、

  • 「-source 1.6」を指定:エラー
  • 「-source 1.5」を指定:警告
  • 「-source」の指定なし:警告

ということ。NetBeansではプロジェクトのプロパティで「ソース/バイナリ形式」を「JDK 5」にすることで「-source 1.5」が付くようになるので、これで一応問題を回避できる。

Java 6でエンコーディングエラー時の仕様が変わっていた

javacの標準オプションの説明の -source の所に、

-source release
   受け付けるソースコードのバージョンを指定します。release には次の値
   を指定できます。

   1.3
       このコンパイラでは、JDK 1.3 以降に導入されたアサーション、総称、
       または他の言語機能をサポートしません。
   1.4
       JDK 1.4 で導入された、アサーションを含むコードを受け付けます。
   1.5
       JDK 5 で導入された総称および他の言語機能を含んだコードを受け付
       けます。
   5
       1.5 と同義です。
   1.6
       これがデフォルト値です。Java SE 6 では言語に対する変更は導入さ
       れませんでしたが、ソースファイル内のエンコーディングエラーが、
       以前のような「警告」ではなく、「エラー」として報告されるように
       なりました。
   6
       1.6 と同義です。

とあった。「1.6」の所の説明に注目。1.6でjavacの動作が変わっているのだ。

「これがデフォルト値です。」という言葉を信じれば、-sourceを指定しなかった場合と-source 1.6を指定した場合の動作は同じになるのが正しいはずだが、先に示した通りこのときの動作は違っている。javacのバグかなあ。

[vim] Vimでファイルを16進数ダンプ表示する

:%!xxd

を実行することで、開いているファイルを16進数ダンプ表示することができるのでメモ。ファイル全体をVimに付属の xxd コマンドで変換している。

この状態で編集もできるみたいだけれど試してないのでメモしない。

あと、文字の上で

ga

を実行することでその文字の文字コードが表示されることもメモ。

ヘルプのバイナリファイルの項(リンク切れ→http://vim-jp.org/vimdoc-ja/usr_23.html#23.4)に説明がある。Vim上で見るには「:help xxd」したときに表示されるユーザマニュアルへのリンクを辿ればよい。


2010年11月17日(水)

  • OTが来てて、FさんとWTMNCへ行った。ごちそうさまでした。

[dev][howto] gitでコミットログを修正する

ログだけじゃなくて変更内容自体も修正できるけど。

手順のメモは面倒なので、Pro Gitの

に全て書いてある、とメモしておけばいいか。git rebaseの -i オプションを使って変更したいコミットを指示し、「git commit --amend」で修正、「git rebase --continue」で次へ進む、を繰り返せばよい。

面倒そうだけど、やってみたら簡単だった。

やること

  • GVimを7.3.034以上にバージョンアップ
  • Adobe Readerを9.4.1にバージョンアップ

2017年11月17日(金)

[howto][shell][unix][soft] ワンライナーで同名ファイルへの上書き出力

シェルのリダイレクトを使って同名ファイルへの上書き出力を行うとファイルの中身が消えてしまう。

$ cat a
3
2
1
$ sort a > a
$ cat a

これを防ぐのにspongeというコマンドが使えることを知った。

$ cat a
3
2
1
$ sort a | sponge a
$ cat a
1
2
3

spongeはmoreutilsというツールコレクションの1つとして開発されているようで、moreutilsパッケージをインストールすれば使えるようになる。

ついでに、spongeコマンドを使ってやりたかった作業をメモ。

$ find . -name $PATTERN | xargs -I{} sh -c 'cut -f 1-2,4-44,47- {} | sponge {}'

パターンにマッチする全TSVファイルの3,45,46列目を削除したかった。