-
Microsoft Windows XP [Version 5.1.2600]
-
(C) Copyright 1985-2001 Microsoft Corp.
-
-
C:\Documents and Settings\hogehoge>diskpart
-
-
Microsoft DiskPart version 5.1.3565
-
-
Copyright (C) 1999-2003 Microsoft Corporation.
-
コンピュータ: hogehogepc
-
-
DISKPART> list disk
-
-
Disk ### Status Size Free Dyn Gpt
-
-------- --------------- ------- ------- --- ---
-
Disk 0 オンライン 466 GB 0 B
-
Disk 1 オンライン 298 GB 0 B
-
Disk 2 オンライン 298 GB 0 B
-
-
DISKPART> select disk=1
-
-
ディスク 1 が現在選択されているディスクです。
-
-
DISKPART> detail disk
-
-
Hitachi HDT725032VLA360
-
ディスク ID: 02AB02AB
-
種類 : IDE
-
バス : 3
-
ターゲット : 0
-
LUN ID : 0
-
-
Volume ### Ltr Label Fs Type Size Status Info
-
---------- --- ----------- ---- ---------- ------- --------- --------
-
Volume 7 H NTFS Partition 146 GB 正常
-
Volume 8 I NTFS Partition 83 GB 正常
-
Volume 9 J NTFS Partition 69 GB 正常
-
-
DISKPART> select disk=2
-
-
ディスク 2 が現在選択されているディスクです。
-
-
DISKPART> detail disk
-
-
Hitachi HDT725032VLA360 USB Device
-
ディスク ID: B07D94E2
-
種類 : USB
-
バス : 0
-
ターゲット : 0
-
LUN ID : 0
-
-
ボリュームがありません。
-
-
DISKPART> clean
-
-
DiskPart はディスクを正常にクリーンな状態にしました。
-
-
DISKPART> exit
-
-
DiskPart を終了しています...
[mac]WindowsでMac用外部HDD(GPT保護パーティション)を初期化する
MacのTimeMachineのバックアップに使用していたHDDを、Windows XP用のバックアップHDDに変えようと思って、Windowsにつなげて、ディスクの管理ツールでフォーマットしようとしたところ、GPT保護パーティションという表示になっていて、何も操作を受け付けないようになっていました。
以下の2つのサイトを参考に、Windows XPのコマンドラインアプリケーションのdiskpartツールを使って、Windows XPで使えるHDDとして初期化してみました。
以下がdiskpartツールのログです。
実行後、初期化が可能なディスクになっていました。
[php]86400
86400って聞いて、すぐに何の数字か当てられる人は、一般の人にはなかなか居ないかもしれない。
ただ、プログラマーならこの数字は暗記しておくべきだと思う。256って数字を区切りがいいと思うように、86400もプログラマーにとっては神聖な数字だと感じてほしい。
ちなみに86400ってのは、1日の秒数ね。24[h] × 60[m/h] × 60[s/m] = 86400[s]。
例えば、「3日前までのデータを取得する」プログラムなら以下のようなイメージ。
-
$sql = "SELECT * FROM hoge WHERE created_unixtime>= {$base_time}";
ポイントとしては、「86400*3」をそのまま計算せずに残しておくこと。「time() - 259200」じゃパッと見でよくわからないが、「time() - 86400 * 3」ならパッと見で3日前だとわかる。どうしても計算したいならコメントで「// 86400 * 3」とでも残しておくといい。
とはいっても人の好みかもね。
[symfony]app:routesコマンド
Jobeet(Practical symfony)の5日目にあった、ルートのデバッグをするためのコマンドが、app:routesコマンドです。
./symfony app:routes application [name]
試しにJobeetの5日目の状態で「./symfony app:routes frontend」をたたくとこんな感じです。
-
$ ./symfony app:routes frontend
-
>> app Current routes for application "frontend"
-
Name Method Pattern
-
job GET /job.:sf_format
-
job_new GET /job/new.:sf_format
-
job_create POST /job.:sf_format
-
job_edit GET /job/:id/edit.:sf_format
-
job_update PUT /job/:id.:sf_format
-
job_delete DELETE /job/:id.:sf_format
-
job_show GET /job/:id.:sf_format
-
job_show_user GET /job/:company_slug/:location_slug/:id/:position_slug
-
homepage ANY /
-
default_index ANY /:module
-
default ANY /:module/:action/*
お決まりのdefaultルートに対して、「./symfony app:routes frontend default」をたたくとこんな感じです。
-
$ ./symfony app:routes frontend default
-
>> app Route "default" for application "frontend"
-
Name default
-
Pattern /:module/:action/*
-
Class sfRoute
-
Defaults
-
Requirements action: '[^/\\.]+'
-
module: '[^/\\.]+'
-
Options cache: NULL
-
context: array ()
-
debug: true
-
default_action: 'index'
-
default_module: 'default'
-
extra_parameters_as_query_string: true
-
generate_shortest_url: true
-
lazy_routes_deserialize: false
-
load_configuration: false
-
logging: false
-
lookup_cache_dedicated_keys: false
-
segment_separators: array (0 => '/',1 => '.',)
-
segment_separators_regex: '(?:/|\\.)'
-
suffix: ''
-
text_regex: '.+?'
-
variable_content_regex: '[^/\\.]+'
-
variable_prefix_regex: '(?:\\:)'
-
variable_prefixes: array (0 => ':',)
-
variable_regex: '[\\w\\d_]+'
-
Regex #^
-
/(?P<module>[^/\.]+)
-
/(?P<action>[^/\.]+)
-
(?:(?:/(?P<_star>.*))?
-
)?
-
$#x
-
Tokens separator array (0 => '/',1 => NULL,)
-
variable array (0 => ':module',1 => 'module',)
-
separator array (0 => '/',1 => NULL,)
-
variable array (0 => ':action',1 => 'action',)
-
separator array (0 => '/',1 => NULL,)
-
text array (0 => '*',1 => NULL,)
そしてsfPropelRouteCollectionによる自動生成ルートの1つに対して「./symfony app:routes frontend job_edit」をたたくとこんな感じです。
-
$ ./symfony app:routes frontend job_edit
-
>> app Route "job_edit" for application "frontend"
-
Name job_edit
-
Pattern /job/:id/edit.:sf_format
-
Class sfPropelRoute
-
Defaults action: 'edit'
-
module: 'job'
-
sf_format: 'html'
-
Requirements id: '\\d+'
-
sf_format: '[^/\\.]+'
-
sf_method: array (0 => 'get',)
-
Options cache: NULL
-
context: array ()
-
debug: true
-
default_action: 'index'
-
default_module: 'default'
-
extra_parameters_as_query_string: true
-
generate_shortest_url: true
-
lazy_routes_deserialize: false
-
load_configuration: false
-
logging: false
-
lookup_cache_dedicated_keys: false
-
method: NULL
-
model: 'JobeetJobPeer'
-
object_model: 'JobeetJob'
-
segment_separators: array (0 => '/',1 => '.',)
-
segment_separators_regex: '(?:/|\\.)'
-
suffix: ''
-
text_regex: '.+?'
-
type: 'object'
-
variable_content_regex: '[^/\\.]+'
-
variable_prefix_regex: '(?:\\:)'
-
variable_prefixes: array (0 => ':',)
-
variable_regex: '[\\w\\d_]+'
-
Regex #^
-
/job
-
/(?P<id>\d+)
-
/edit
-
(?:\.(?P<sf_format>[^/\.]+)
-
)?
-
$#x
-
Tokens separator array (0 => '/',1 => NULL,)
-
text array (0 => 'job',1 => NULL,)
-
separator array (0 => '/',1 => NULL,)
-
variable array (0 => ':id',1 => 'id',)
-
separator array (0 => '/',1 => NULL,)
-
text array (0 => 'edit',1 => NULL,)
-
separator array (0 => '.',1 => NULL,)
-
variable array (0 => ':sf_format',1 => 'sf_format',)
あまりに細かすぎて謎な感じですが、私が使うとしたら、詳細表示の末尾のTokensセクションにて、セパレータ文字が有効かどうかを確認するくらいでしょうか。以前セパレータに「_」を使ったらセパレータとして認識されなかったことがあったので、悩んだ末に「.」に変更したのですが、もしかしたらそこで使えたのかもしれません。
[symfony]propel:build-model時のBaseモデルのタイムスタンプ変更を停止する
symfonyでsubversionやgitなどのバージョン管理システムを使っているとき、symfonyコマンドのpropel:build-modelをした後に、モデルとPeerのベースクラスが根こそぎ更新されているのが気になっていませんか?
実はpropelがモデルとPeerのベースクラスのphpDocコメント内に、生成日時のタイムスタンプを入れているんです。このタイムスタンプがbuild-modelをするたびに書き変わるので、毎回バージョン管理システムの更新対象になってしまっています。
このタイムスタンプの生成を停止する方法がありました。
モデル再構築で余計な更新が発生しないようにする - aki77の日記
このブログに載っているように、config/propel.iniの中にある、propel.addTimeStampをfalseにすると、タイムスタンプの生成が停止します。この変更で、build-model後のsvn status/git statusの結果がだいぶ改善されました。これはぜひお勧めしたい設定です。
こういうような、symfonyの新規プロジェクトを立ち上げたら、始めにやっておくべきTODO集があるといいですね。
[雑記]「文字化けした」は英語で「garbled」
最近OpenPNE3に習って、gitのコミットメッセージを拙い英語で書くように努めています。
さきほど、「au端末だけ文字化けを起こしていたのを修正した」という内容のコミットメッセージを書こうとしたのですが、「文字化け」がわかりませんでした。(見栄を張らずに言うと、全部わからんけどw)
「文字化け」を調べると一応「garble」「garbled」と出てきます。元の意味は「不明瞭な」とかだそうですが、文字が化けると不明瞭な文字であるというところから、この単語が使われているのでしょうか。ちなみに「garbage character」というのも文字化けだそうです。ゴミくずみたいな文字だからってことでしょうか。。。
「au端末だけ文字化けを起こしていたのを修正した」をうえちょこ英語で訳すと「fixed garbled (only au-mobile)」とか。ツッコミしてもいいけど、まぁ、伝わればいいんです。


