バッチファイルで日付や時刻を取得する

Windowsのバッチファイルで日付や時刻を取得する方法。
バッチファイルのログファイルに日時をつけるときに便利。

日付を取得

日付を取得するには、変数dateを参照するのが手軽。

C:\>echo %date%
2017/02/02

また、dateコマンドを使っても同様に取得可能。

C:\>date /T
2017/02/02

ただしこれらは、地域の設定によって変わるので注意。

時刻を取得

時刻を取得するには、変数timeを参照するのが手軽。

C:\>echo %time%
20:55:58.24

timeコマンドを使っても取得が可能。

C:\>time /T
20:58

Java: 文字列の日付フォーマット変換

久々にJavaを書くと毎回調べ始めてるのでいい加減メモ。

例:以下の変換を行う。ただし、汎用性を考慮してDate形式を通す。

  • 変換前:2012年1月2日
  • 変換後:2012/01/02

String input = "2012年1月2日"

SimpleDateFormat sourceFormat = new SimpleDateFormat("yyyy年MM月dd日");
Date sourceDate = null;
sourceDate = sourceFormat.parse(input);
SimpleDateFormat convertFormat = new SimpleDateFormat("yyyy/MM/dd");

String output = convertFormat.format(sourceDate);

元のフォーマットは"yyyy年MM月dd日"でも"yyyy年M月d日"でも通るみたい。

読書記録:一冊の手帳で夢は必ずかなう

あまりに更新しなさすぎなので、小さいことでもメモしていこう…ということで更新。

今回は読書記録で「一冊の手帳で夢は必ずかなう」という、GMOインターネット社長が書いた本。
本を書いた当時は、GMOがオリエント信販を買収して多大な損失を被る前だったのを思いながら読んだけど、色々感慨深かった。

印象に残った内容を自分なりの言葉でまとめると、以下の3点に集約された。

  • 夢を手帳に書いて常に持ち歩く。常に持ち歩くことで度々読み返すことができ、目標を見失わなくなる。
  • 夢以上の自分にはなれない。なんとなくやっているだけではナンバーワンになれることはない。
  • 夢(長期的な目標)なしには、適切な「今年の目標」は立てられない。

10年以上前の本だけど学ぶべき部分はあったし、共感できる部分もあった。
パソコンが普及しても、紙のほうが思考力や集中力が高まるのはその通りだと思う。
今だとEvernoteOnenote、デジタイザ対応タブレットも出てきて使い勝手は近くなってきているけど、それでもまだ紙のほうが優位な面はあるよね。

これを機に、一度自分の長期目標を考え直したい。

一冊の手帳で夢は必ずかなう - なりたい自分になるシンプルな方法

一冊の手帳で夢は必ずかなう - なりたい自分になるシンプルな方法

Apache設定:ユーザディレクトリでPHPのページを公開

備忘録。
以前は設定ファイルを直接編集していたような記憶があるけど、更にシンプルになった感じ。

環境

ユーザディレクトリのpublic_htmlを公開する

以下の2つの設定用ファイルが用意されているので、これらを/etc/apache2/mods-enabled/に入れればよい。

/etc/apache2/mods-available/userdir.conf
/etc/apache2/mods-available/userdir.load

シンボリックリンクでも良いし、コピーでも可。

ユーザディレクトリでphpを有効にする

/etc/apache2/mods-enabled/php5.confを見ると、デフォルトではユーザディレクトリ内のWebサイトではPHPが動作しないようになっていた。
以下のようにコメントアウトして無効化。

# Running PHP scripts in user directories is disabled by default
#
# To re-enable PHP in user directories comment the following lines
# (from to .) Do NOT set it to On as it
# prevents .htaccess files from disabling it.
#
#
# php_admin_value engine Off
#

#

32bit Windowsで使用できないメモリ領域をRamdisk化

1年程前の記事が書きかけになっていたので今更。
32bitのWindowsにおいて使用できないメモリ領域をRamdisk化できるらしいので、試したときのメモ。

概要

Gavotte Ramdiskというツールを使う。
基本的に以下のWikiに従えば問題なし。
http://www10.atwiki.jp/gavotterd/

そもそもなぜ4GBを超えてアクセスできるのか疑問だったが、PAE(物理アドレス拡張)というアクセス方法を使用しているらしい。
Wikipedia:物理アドレス拡張
32bitを36bitに拡張しているということなので、PAEを使えば64GB(=4GB*2^4)までアクセスできる、ということになる。

やってみた

環境

OS: Windows XP SP3
マザーボード:A7GM-S
メモリ:SILICON POWER、SP004GBLRU800S22 4枚
ツール:Gavotte_RAMDisk_1.0.4096.5_20081130

ベンチマーク

HDDのベンチマークソフト、CrystalDiskMarkを使用。

HDDとしては有り得ない値が出ているので、確かにRAMDiskとして動いているようだ。

運用

Wikiにあるように、OSのページファイルと、WebブラウザのキャッシュファイルをRAMDiskに置くようにした。
HDDへのアクセスが激減して、快適になった(気がする)。

スタンバイ(S3)は問題なく使用できた。*1
休止状態(S4)は試していないが、おそらくデータは消えると思う。
特にページファイルを置いているときは、S4からの復帰時にデータの不整合が発生してOSがブルースクリーン、とかになりそうなので怖くて試せない。

しばらく使っていると、時々画面が乱れることが分かった。
グラボはオンボードなので、おそらくメモリにマップされているVRAM領域とメモリ領域が競合するのだと思われる。*2
Gavotte RAMDiskではこのVRAM領域を避けて設定するのが難しそうだった。
そこでVSuite Ramdiskを試したところ、このVRAM領域を避けて設定ができた。
図にすると、こういうこと。

肝心のVSuite Ramdiskの設定をメモし忘れてしまったので、また今度設定する機会があったら書くことにしよう。

*1:S3ではメモリは通電しているはずなので、当然といえば当然か

*2:グラボを使っている場合はそちらのVRAMが使われるため、実際のメモリは使用されないはず

Debianインストールメモ

USBメモリDebianをインストールしたので備忘録としてメモ。

USBメモリLinuxをインストール

ソフトウェアの選択

  • パッケージ群をまとめてインストールできるだけ。
  • 全てチェックをはずしてよい。taskselコマンドで後から入れられる。
  • コマンドで、何のパッケージがインストールされるか調べられる。
    • tasksel --task-packages laptop
    • tasksel --task-packages standard

セキュリティ勉強メモ

セキュリティ関係のフォレンジックリバースエンジニアリングを勉強した。
後で見直せるようにキーワードをメモ。

  • ツール
    • IDA Proでフローチャート解析
    • UPXでバイナリファイルをアンパック
    • OllyDbg+OllyDumpでバイナリファイルを解析、アンパック
    • Linuxコマンド:file, objdump
    • Rubyでテキスト/バイナリ走査
  • 得た知識/経験
    • IsDebuggerPresent関数
    • UPX形式などによるバイナリファイルのパック/アンパック
    • ESPトリックによるマニュアルアンパック
    • バッファオーバーフローを起こしてEIPを上書き、任意のサブルーチンを呼ぶ

久々に充実した休日だった。