ここから最寄りの郵便局を見つける。
http://www.post.japanpost.jp/shiten_search/index.html
集荷電話番号があるのでそこに電話。
2008年12月30日火曜日
2008年12月2日火曜日
PHPで親ディレクトリのフルパスを取得する
今回はPHPで親ディレクトリのフルパスを取得する方法を紹介します。
phpファイルは「/var/www/index.php」に存在しているものとします。
■ ファイルが存在するディレクトリを取得するコード
■ ファイルが存在するディレクトリの親ディレクトリを取得するコード
上記コードからわかるように-1, -2となっている部分を変える事でさらに上の階層を取得する事も可能です。
require_onceなどで相対パス指定していると、そのファイルがさらに別のファイルからrequire_onceなどで読み込まれた場合に正しく動作しないという現象に対応する事ができます。
また、相対パス指定でrequire_onceしているとcronなどから実行した場合に動作しない現象を避けることができます。
phpファイルは「/var/www/index.php」に存在しているものとします。
■ ファイルが存在するディレクトリを取得するコード
// $pdir = '/var/www';
$pdir = implode(array_slice(explode(DIRECTORY_SEPARATOR, __FILE__), 0, -1), DIRECTORY_SEPARATOR);
■ ファイルが存在するディレクトリの親ディレクトリを取得するコード
// $pdir = '/var';
$pdir= implode(array_slice(explode(DIRECTORY_SEPARATOR, __FILE__), 0, -2), DIRECTORY_SEPARATOR);
上記コードからわかるように-1, -2となっている部分を変える事でさらに上の階層を取得する事も可能です。
require_onceなどで相対パス指定していると、そのファイルがさらに別のファイルからrequire_onceなどで読み込まれた場合に正しく動作しないという現象に対応する事ができます。
また、相対パス指定でrequire_onceしているとcronなどから実行した場合に動作しない現象を避けることができます。
2008年10月29日水曜日
Googleトレンド
日本でもGoogleトレンドが開始されたようです。
http://www.google.co.jp/trends
現時点で急上昇ワードは「たりないもの占い」
「バナナ,納豆」などで比較もできておもしろいです。
http://www.google.co.jp/trends
現時点で急上昇ワードは「たりないもの占い」
「バナナ,納豆」などで比較もできておもしろいです。
2008年7月16日水曜日
MINICLIPのmother loadが面白い
MINICLIPのサイトのmother loadというゲームを最近やったのですが、
これが面白くて結構ハマりました。
MNICLIP : http://www.miniclip.com/lip.com/
mother load :http://www.miniclip.com/games/motherload/jp/
ゲームとしては地面を掘って、より深く掘っていくという内容です。
地面には銅や鉄、金などの鉱石が埋まっていて、それを回収し売却することで
得られるお金で自機(採掘機)をパワーアップさせることができます。
鉱石以外にも色々埋まっていて50000くらいお金が増えるものも埋まっています。
操作方法は簡単。
移動(上下左右)はマウスかキーボードの矢印キーでできます。
ほかにwで上、sで下、aで左、dで右に対応しているのがFPSに慣れている関係上
非常にやりやすいです。
また、いちばん右のショップでアイテムを購入し使用する事もできます。
5000ft.を超える深さからテレポートして帰ってこれるようなアイテムも売っています。
途中、ドリルでは壊せない岩などが出てきますがダイナマイトなどの爆弾で吹っ飛ばせます。
爆弾を使用した時の画面。
地上で浮いている機械みたいなやつに触れるとセーブできます。
※その時点でのスコアは0になってしまいますが。
4000ft.くらいを超えるとスコアはガンガンあがるのであまりスコアを気にせず
セーブする方が良いかもしれません。
これが面白くて結構ハマりました。
MNICLIP : http://www.miniclip.com/lip.com/
mother load :http://www.miniclip.com/games/motherload/jp/
ゲームとしては地面を掘って、より深く掘っていくという内容です。
地面には銅や鉄、金などの鉱石が埋まっていて、それを回収し売却することで
得られるお金で自機(採掘機)をパワーアップさせることができます。
鉱石以外にも色々埋まっていて50000くらいお金が増えるものも埋まっています。
操作方法は簡単。
移動(上下左右)はマウスかキーボードの矢印キーでできます。
ほかにwで上、sで下、aで左、dで右に対応しているのがFPSに慣れている関係上
非常にやりやすいです。
また、いちばん右のショップでアイテムを購入し使用する事もできます。
5000ft.を超える深さからテレポートして帰ってこれるようなアイテムも売っています。
途中、ドリルでは壊せない岩などが出てきますがダイナマイトなどの爆弾で吹っ飛ばせます。
爆弾を使用した時の画面。
地上で浮いている機械みたいなやつに触れるとセーブできます。
※その時点でのスコアは0になってしまいますが。
4000ft.くらいを超えるとスコアはガンガンあがるのであまりスコアを気にせず
セーブする方が良いかもしれません。
2008年7月14日月曜日
EC-CUBEでのセッション
最近EC-CUBEのソース解析なぞしてます。
EC-CUBEのセッションはどこで管理してるのか見る機会があったので、それについてメモ。
EC-CUBEはセッションをDBで管理してるようです。
テーブルは「dtb_session」
関連情報:http://www.lockon.co.jp/blog/php/db_1.html
セッションをDBに保存する理由については下記サイトを参考に。http://dozo.matrix.jp/framework/symfony/database_session
EC-CUBEのセッションはどこで管理してるのか見る機会があったので、それについてメモ。
EC-CUBEはセッションをDBで管理してるようです。
テーブルは「dtb_session」
関連情報:http://www.lockon.co.jp/blog/php/db_1.html
セッションをDBに保存する理由については下記サイトを参考に。http://dozo.matrix.jp/framework/symfony/database_session
2008年7月1日火曜日
emoを導入してみた
emoを導入してみました。
右のメニューバーの自己紹介の一番下に表示されてるヤツです。
なんでもブログの内容を解析して性格分析してくれるらしい。
でもって顔が表示される、と。
ちなみに現在のニックネームは「pdateが好きなザブザブサムライ」です。
まぁ確かに「pdate」っていっぱい書いたけどもw
って書いてたらまた解析されてpdateのランク上がるなw
と言ってる文章にも・・・(エンドレス)
右のメニューバーの自己紹介の一番下に表示されてるヤツです。
なんでもブログの内容を解析して性格分析してくれるらしい。
でもって顔が表示される、と。
ちなみに現在のニックネームは「pdateが好きなザブザブサムライ」です。
まぁ確かに「pdate」っていっぱい書いたけどもw
って書いてたらまた解析されてpdateのランク上がるなw
と言ってる文章にも・・・(エンドレス)
2008年6月24日火曜日
初プール
前の休みに息子とプールに行ってきました。
息子はちっちゃいビニールのプールでしか遊んだ事がないはずなので、
25mプールはさぞかし驚いて最初は入るの嫌がるだろうなぁと思ってました。
が、驚きはしましたが普通にザブザブとプールの中へ。
すごいぞ我が息子!w
水深が80cmくらいなので息子は頭がちょうど出るくらい。
たまに水かぶって驚いた顔になりつつも楽しく遊べた模様。
途中、休憩を入れつつ3時間ほど遊んで帰宅したらば帰って5分程で
息子は電池が切れました。その後3時間爆睡。
ふと思うのは息子が大きくなった時に初プールの記憶はあるんだろうかということですが、
自分自身も記憶がないようにきっと覚えてはいないんだろうなぁと。
でも、父が私の初プールの記憶があるように息子の初プールは一生忘れないでおこうと思うのです。
息子はちっちゃいビニールのプールでしか遊んだ事がないはずなので、
25mプールはさぞかし驚いて最初は入るの嫌がるだろうなぁと思ってました。
が、驚きはしましたが普通にザブザブとプールの中へ。
すごいぞ我が息子!w
水深が80cmくらいなので息子は頭がちょうど出るくらい。
たまに水かぶって驚いた顔になりつつも楽しく遊べた模様。
途中、休憩を入れつつ3時間ほど遊んで帰宅したらば帰って5分程で
息子は電池が切れました。その後3時間爆睡。
ふと思うのは息子が大きくなった時に初プールの記憶はあるんだろうかということですが、
自分自身も記憶がないようにきっと覚えてはいないんだろうなぁと。
でも、父が私の初プールの記憶があるように息子の初プールは一生忘れないでおこうと思うのです。
2008年6月18日水曜日
CentOSでAjaxがうまく動かない
Ajaxでの通信がうまくいかない現象に遭遇。Webサーバ(Apache)のOSがCentOSかつAddDefaultCharset noneという設定がhttpd.conf(またはhttpd.confからインクルードしている設定ファイル)に存在しているのが原因。
Firefoxでは問題なく動作するけども、IE7では動作しない。AddDefaultCharset noneをコメントアウトして#AddDefaultCharset noneにすれば良い。
httpd.confの設定を変更できないのであれば、Webサーバからのレスポンスヘッダにcharsetを設定すればおkPHPだと header("Content-Type: text/html; charset=UTF-8");UTF-8の部分は出力文字コードに応じて変更すべし。
Firefoxでは問題なく動作するけども、IE7では動作しない。AddDefaultCharset noneをコメントアウトして#AddDefaultCharset noneにすれば良い。
httpd.confの設定を変更できないのであれば、Webサーバからのレスポンスヘッダにcharsetを設定すればおkPHPだと header("Content-Type: text/html; charset=UTF-8");UTF-8の部分は出力文字コードに応じて変更すべし。
2008年6月10日火曜日
2008年6月3日火曜日
WindowsをNTPサーバにしてLinux(Fedora7)と時刻を同期させる
先日「Virtual PC 2007で動作しているFedora7の時間がおかしくなるのを自動的に直す」で「WindowsTimeサービスなるものがあるらしい」と言いましたが、
いろいろ調べてチャレンジした結果WindowsをNTPサーバとしてLinux(Fedora7)と時刻を同期させる事ができました。
以下手順です。
--------------------------------------------------------------------------------
この手順はレジストリを直接いじるため、操作については自己責任で行ってください。
操作の結果、起こった損害・トラブルについて私は一切責任を負いません。
---------------------------------------------------------------------------------
■手順1 : WindowsでNTPサーバを動作させる (XP, Vista共に同じ手順)
・windowsキー + Rでファイル名を指定して実行ダイアログを出す。
・regeditと入力してOK
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\AnnounceFlags
の値を5に変更(変更前は16進数でa)
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer\Enabled
の値を1に変更(WinXPはデフォルトで1でした。)
・Windows Timeサービスを再起動
コントロールパネル→管理ツール→Windows Timeを選択してサービスの再起動を実行。
■手順2 : Fedora7からntpdateで接続
#ntpdate 192.168.11.4
2 Jun 23:59:11 ntpdate[2607]: step time server 192.168.11.4 offset 2.225084 sec
※192.168.11.4はWindowsマシンのIPアドレスです。適時読み替えて下さい。
■手順3: Fedora7のcronにntpdateを登録
#crontab -e
*/1 * * * * /usr/sbin/ntpdate 192.168.11.4
※1分毎にntpdateを実行。間隔はご自由にどうぞ。
うまくいかない場合は下記を参考に調べてみて下さい。
・Fedora7のiptables (ntpdateはUDP123ポートを利用しているようです)
・Windowsのファイアウォール設定
・ウイルスバスターなどのファイアウォール設定
いろいろ調べてチャレンジした結果WindowsをNTPサーバとしてLinux(Fedora7)と時刻を同期させる事ができました。
以下手順です。
--------------------------------------------------------------------------------
この手順はレジストリを直接いじるため、操作については自己責任で行ってください。
操作の結果、起こった損害・トラブルについて私は一切責任を負いません。
---------------------------------------------------------------------------------
■手順1 : WindowsでNTPサーバを動作させる (XP, Vista共に同じ手順)
・windowsキー + Rでファイル名を指定して実行ダイアログを出す。
・regeditと入力してOK
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\AnnounceFlags
の値を5に変更(変更前は16進数でa)
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer\Enabled
の値を1に変更(WinXPはデフォルトで1でした。)
・Windows Timeサービスを再起動
コントロールパネル→管理ツール→Windows Timeを選択してサービスの再起動を実行。
■手順2 : Fedora7からntpdateで接続
#ntpdate 192.168.11.4
2 Jun 23:59:11 ntpdate[2607]: step time server 192.168.11.4 offset 2.225084 sec
※192.168.11.4はWindowsマシンのIPアドレスです。適時読み替えて下さい。
■手順3: Fedora7のcronにntpdateを登録
#crontab -e
*/1 * * * * /usr/sbin/ntpdate 192.168.11.4
※1分毎にntpdateを実行。間隔はご自由にどうぞ。
うまくいかない場合は下記を参考に調べてみて下さい。
・Fedora7のiptables (ntpdateはUDP123ポートを利用しているようです)
・Windowsのファイアウォール設定
・ウイルスバスターなどのファイアウォール設定
2008年6月2日月曜日
「仕事時間を賢く楽に節約する10の方法」の1つを実践してみた
「仕事時間を賢く楽に節約する10の方法」を読んでなるほどなぁと思ったので、実践してみた。
とはいっても全てではなく1つだけ。
今の自分に一番適用できそうなのが「2. 気を散らすものを遮断し、タイマーをセットする」。
普段からいろんな事が気になって仕事が中々進まない自分にぴったりなわけで(笑
キッチンタイマーがなかったので、メモ帳(手書き)とWindowsの時計で脳内キッチンタイマーを準備。
メモ帳に開始時刻と終了時刻を記入。その横にその時間内に実行しなければならない事(目標)を記入。
ちょうどテスト仕様書を作成していたので、時間内にテスト項目を何個作るかということを目標にしました。
例:14:30-40 5つ
実践してみた感想としては、割と集中しやすい状況を作れるのではないかと思いました。
目標に対して自分が今どれくらい達成できているかという事と照らし合わせて自分が今どのあたりにいるかということがすぐわかるのが利点かなぁと。
本当はもっと長い間隔で同じことができればいいんですが。そういうわけにもいかないわけで。
とはいっても全てではなく1つだけ。
今の自分に一番適用できそうなのが「2. 気を散らすものを遮断し、タイマーをセットする」。
普段からいろんな事が気になって仕事が中々進まない自分にぴったりなわけで(笑
キッチンタイマーがなかったので、メモ帳(手書き)とWindowsの時計で脳内キッチンタイマーを準備。
メモ帳に開始時刻と終了時刻を記入。その横にその時間内に実行しなければならない事(目標)を記入。
ちょうどテスト仕様書を作成していたので、時間内にテスト項目を何個作るかということを目標にしました。
例:14:30-40 5つ
実践してみた感想としては、割と集中しやすい状況を作れるのではないかと思いました。
目標に対して自分が今どれくらい達成できているかという事と照らし合わせて自分が今どのあたりにいるかということがすぐわかるのが利点かなぁと。
本当はもっと長い間隔で同じことができればいいんですが。そういうわけにもいかないわけで。
2008年5月31日土曜日
Fedora9で外部サーバからFTPでファイルがダウンロードできない
自社のローカルにあるFedora7で、外部サーバにあるバックアップファイルを定期的にダウンロード
していたのですが、Fedora9に変えたところ定期的にダウンロードできなくなっていました。
原因はiptableでした。
-------------------------
【解決方法】
/etc/sysconfig/iptables-configの
IPTABLES_MODULES=""
となっている所を変更
IPTABLES_MODULES="ip_conntrack_ftp ip_nat_ftp"
/etc/sysconfig/iptableに下記を追加
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
iptablesを再起動
/etc/rc.d/init.d/iptables restart
以上の設定により外部のFTPサーバからファイルをダウンロードすることができるようになりました。
していたのですが、Fedora9に変えたところ定期的にダウンロードできなくなっていました。
原因はiptableでした。
-------------------------
【解決方法】
/etc/sysconfig/iptables-configの
IPTABLES_MODULES=""
となっている所を変更
IPTABLES_MODULES="ip_conntrack_ftp ip_nat_ftp"
/etc/sysconfig/iptableに下記を追加
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
iptablesを再起動
/etc/rc.d/init.d/iptables restart
以上の設定により外部のFTPサーバからファイルをダウンロードすることができるようになりました。
2008年5月29日木曜日
2008年5月28日水曜日
SQLで年度別のデータカウントを取得する
仕事で年度別のデータカウントを取得しなければならなかったので、できるだけプログラム(PHP)で処理をしなくていいようにSQLを考えてみた。
※MySQLのみ想定しています。Postgresの場合はpdateの型とdate_formatをto_char(pdate, 'YYYY-04-01 00:00:00')とすれば良いかと。動作保障はできませんので悪しからず。MySQL5.0.45での動作は確認済。
------------------------------------------------------------
年度はX年4月1日~(X+1)年3月31日とする。
例: 2008年4月1日~2009年3月31日は2008年度、 2008年3月31日は2007年度
テスト用テーブル:test
id, pdate(DATETIME型)
1,2008-03-31 00:00:00
2,2008-04-02 00:00:00
3,2007-10-21 00:00:00
4,2007-04-02 00:00:00
5,2007-03-31 00:00:00
6,2006-04-01 00:00:00
上記の年度はそれぞれ 2007, 2008, 2007, 2007, 2006, 2006 となるはず。
【SQL】
SELECT pdate , count(pdate) as yearly_cnt FROM (
SELECT extract(YEAR FROM pdate)-1 as pdate, id FROM test WHERE pdate <>
UNION
SELECT extract(YEAR FROM pdate) as pdate, id FROM test WHERE pdate >= date_format(pdate, '%Y-04-01 00:00:00')
) as tmp_tbl GROUP BY pdate
【実行結果】
pdate yearly_cnt
2006 2
2007 3
2008 1
※MySQLのみ想定しています。Postgresの場合はpdateの型とdate_formatをto_char(pdate, 'YYYY-04-01 00:00:00')とすれば良いかと。動作保障はできませんので悪しからず。MySQL5.0.45での動作は確認済。
------------------------------------------------------------
年度はX年4月1日~(X+1)年3月31日とする。
例: 2008年4月1日~2009年3月31日は2008年度、 2008年3月31日は2007年度
テスト用テーブル:test
id, pdate(DATETIME型)
1,2008-03-31 00:00:00
2,2008-04-02 00:00:00
3,2007-10-21 00:00:00
4,2007-04-02 00:00:00
5,2007-03-31 00:00:00
6,2006-04-01 00:00:00
上記の年度はそれぞれ 2007, 2008, 2007, 2007, 2006, 2006 となるはず。
【SQL】
SELECT pdate , count(pdate) as yearly_cnt FROM (
SELECT extract(YEAR FROM pdate)-1 as pdate, id FROM test WHERE pdate <>
UNION
SELECT extract(YEAR FROM pdate) as pdate, id FROM test WHERE pdate >= date_format(pdate, '%Y-04-01 00:00:00')
) as tmp_tbl GROUP BY pdate
【実行結果】
pdate yearly_cnt
2006 2
2007 3
2008 1
2008年5月27日火曜日
Smartyでimplodeを利用する。
Smartyのテンプレート内でimplodeを利用するには下記の様に記述します。
{","|implode:$aryData}
$aryDataが array("A", "B", "C"); となっているとすると、上記コードは
A,B,C と表示されます。
ちなみにimplodeのマニュアルによると「歴史的な理由により、引数をどちら の順番でも受けつけることが可能」とあるので、
{$aryDataimplode:","}
としても同じ結果が得られるはず。
しかしながら結果は
Array
{$aryData|implode:","}
とするとOK
・・・なぜ?
ちなみにSmartyのVersionは 2.6.17です。
{","|implode:$aryData}
$aryDataが array("A", "B", "C"); となっているとすると、上記コードは
A,B,C と表示されます。
ちなみにimplodeのマニュアルによると「歴史的な理由により、引数をどちら の順番でも受けつけることが可能」とあるので、
{$aryDataimplode:","}
としても同じ結果が得られるはず。
しかしながら結果は
Array
{$aryData|implode:","}
とするとOK
・・・なぜ?
ちなみにSmartyのVersionは 2.6.17です。
2008年5月26日月曜日
Virtual PC 2007で動作しているFedora7の時間がおかしくなるのを自動的に直す
私は現在開発でVirtual PCにFedora7をインストールして、apache, php, MySQLを動作させています。
Virtual PCを利用しているとよく「状態の保存」を利用するのですが、その場合、復帰させると時刻が進まないままになってしまっています。
時間に関係するような処理をしていると、実際の時間とずれているので困ることがあります。
自動的に時間を修正させることでその問題に対処します。
ntpdateコマンドを定期的に実行することで実現させます。
ntpサーバはNICTのntpサーバを利用します。
※自身が利用しているプロパイダでntpサーバを利用できないかをまず調べて、 利用できるならそちらを利用する方が良いと思います。
OCNとASAHIネットはntpサーバがあるようです。
# crontab -e
@reboot /usr/sbin/ntpdate ntp.nict.jp
0 * * * * /usr/sbin/ntpdate ntp.nict.jp
上記により起動時と毎時0分にntpサーバとの時刻同期が実行されます。
しかしながら、一度時刻同期をしてしまうと「状態保存」「シャットダウン」をしない限りはさほどずれは問題にならないので、毎時間実行するのは無駄のような気がします。
1日10時間起動してても単純計算で10回程度ですが、多くの人が一つのntpサーバに問い合わせるとサーバへの負荷とトラフィックの増加を招きます。
できる限りそういう事態は避けたいところ。
調べてみるとWindowsTimeサービスなるものがあるらしいのでそれにチャレンジしてみる予定。
Virtual PCを利用しているとよく「状態の保存」を利用するのですが、その場合、復帰させると時刻が進まないままになってしまっています。
時間に関係するような処理をしていると、実際の時間とずれているので困ることがあります。
自動的に時間を修正させることでその問題に対処します。
ntpdateコマンドを定期的に実行することで実現させます。
ntpサーバはNICTのntpサーバを利用します。
※自身が利用しているプロパイダでntpサーバを利用できないかをまず調べて、 利用できるならそちらを利用する方が良いと思います。
OCNとASAHIネットはntpサーバがあるようです。
# crontab -e
@reboot /usr/sbin/ntpdate ntp.nict.jp
0 * * * * /usr/sbin/ntpdate ntp.nict.jp
上記により起動時と毎時0分にntpサーバとの時刻同期が実行されます。
しかしながら、一度時刻同期をしてしまうと「状態保存」「シャットダウン」をしない限りはさほどずれは問題にならないので、毎時間実行するのは無駄のような気がします。
1日10時間起動してても単純計算で10回程度ですが、多くの人が一つのntpサーバに問い合わせるとサーバへの負荷とトラフィックの増加を招きます。
できる限りそういう事態は避けたいところ。
調べてみるとWindowsTimeサービスなるものがあるらしいのでそれにチャレンジしてみる予定。
2008年5月25日日曜日
Virtual PC 2007にFedora9をインストール
マシン構成
OS : Windows Vista Ultimate
CPU: Core2 Duo E6850
Memory:4G
Fedora9をここからダウンロード。
Mirror選択が面倒な人はここ。→ Fedora-9-i386-DVD.iso
インストール時のオプションは
vesa i8042.noloop psmouse.proto=imps clock=pit noapic nolapic vga=786
インストール後に起動しようとすると「回復できないプロセッサエラー」が1回発生したあと起動できる。
その後、起動時に必ず「回復できないプロセッサエラー」→「リセット」が起こる。
noreplace-pravirt
をオプションに追加することで「回復できないプロセッサエラー」が発生することなく起動可能。
OS : Windows Vista Ultimate
CPU: Core2 Duo E6850
Memory:4G
Fedora9をここからダウンロード。
Mirror選択が面倒な人はここ。→ Fedora-9-i386-DVD.iso
インストール時のオプションは
vesa i8042.noloop psmouse.proto=imps clock=pit noapic nolapic vga=786
インストール後に起動しようとすると「回復できないプロセッサエラー」が1回発生したあと起動できる。
その後、起動時に必ず「回復できないプロセッサエラー」→「リセット」が起こる。
noreplace-pravirt
をオプションに追加することで「回復できないプロセッサエラー」が発生することなく起動可能。
登録:
投稿 (Atom)