伊藤清徳の垂直落下式ムーンサルトプレス

PerlとかPHPとかMySQLとか…がんばっても8割だ。
7月 25

ふと、気になったので調べてみた。完全に独り言。

いろいろな解釈がされているけど多いのが、

・基本的には同義で使われる。
・フォルダはGUIで使われる概念
・ディレクトリはCUIで使われる概念

ということ・・・だそうだが・・・なんかしっくりこないので、
もう少し突っ込んで調べた。

両者とも、ファイルをまとめる概念で、なおかつ入れ子構造を持つことで階層化できる構造だが、

【ディレクトリ】

HDDなどのストレージ内に保存されたデータの物理的構造そのものを指す言葉

【フォルダ】
GUIにおける「見た目」の概念で、いわゆる「ショートカット」(win)「エイリアス」(mac)「リンク」(UNIX/Linux)などの仕組みも内包された人間が認知しやすい構造概念のことを言う

ということだそうだ。
人間がしゃべり言葉として使う分には「フォルダ」といったほうが正解なのかなという気がしてきた。(ただしGUI上のみの概念なので、コマンドの世界にはフォルダはないから、ディレクトリと言わざるを得ないけど。あれ?でもコマンドの世界にも「リンク」とかあるぞ??訳わからなくなってきた、、、)

7月 22

とても面倒な日付・時刻計算をPerlで行うためのCPANライブラリ。
それがDate::Calc。

調べたら、なんだか直訳調っぽくて「何言ってんだか?」みたいなとこしかなかったので、
今回使った部分だけメモ。

use strict;
use Date::Calc qw(:all);
 
#UNIXタイムスタンプの取得
my $time = Mktime( 2009, 6, 5, 12, 42, 44); 
print $time . "n";

#今の時間を取得
my ($year,$month,$day, $hour,$min,$sec) = Today_and_Now();
print "$year年$month月$day日 $hour時$min分$sec秒n";
#日付のみ取得 ($year,$month,$day) = Today(); 
#時刻のみ取得 ($hour,$min,$sec) = Now();
 
#2008年6月1の30日前の日付を計算
($year,$month,$day, $hour,$min,$sec) = Add_Delta_DHMS( 2008, 6, 1, 0, 0, 0, -30, 0, 0, 0); 
print "$year年$month月$day日 $hour時$min分$sec秒n";
#引数
#[0]:基準の年 [1]:基準の月 [2]:基準の日
#[3]:基準の時 [4]:基準の分 [5]:基準の秒
#[6]:何日後(前はマイナス指定)を計算するか
#[7]:何時間後(前はマイナス指定)を計算するか
#[8]:何分後(前はマイナス指定)を計算するか
#[9]:何秒後(前はマイナス指定)を計算するか

#今を基準にして10日後の3時間15分30秒前を計算
($year,$month,$day, $hour,$min,$sec) = Add_Delta_DHMS( Today_and_Now() , 10, -3, -15, -30); 
print "$year年$month月$day日 $hour時$min分$sec秒n";
#第6引数まではToday_and_Now()を使える。
#日付のみの計算 ($year,$month,$day) = Add_Delta_YM($year,$month,$day, $Dy,$Dm);
#時刻のみの計算 ($year,$month,$day) = Add_Delta_YMD($year,$month,$day, $Dy,$Dm,$Dd); #日付のみの計算 ($year,$month,$day) = Add_Delta_YMD($year,$month,$day, $Dy,$Dm,$Dd);
#時刻のみの計算 (

#日付として正しいか?(リターンは1または0)
#↓不正
print check_date( 2009, 13, 1 ) . "n";
#↓正常
print check_date( 2009, 12, 31 ) . "n";

#時刻として正しいか?(リターンは1または0)
#↓不正
print check_time( 26, 12, 62 ) . "n";
#↓正常
print check_time( 23, 59, 59 ) . "n";

よく使いそうなところはこんなもん?

【一応メモ】
競合する関数名の関数を自分で作っているときは、競合してしまうので、
use Date::Calc qw(:all);

use Date::Calc;
に変更して、関数にDate::Calc::をつけて関数実行。

【すみません】
誤りがありました。日付の増減計算はありましたが、時刻のみの増減計算はありませんでした。修正しました。

7月 17

ajaxライブラリを含んだソフトの販売をすることになりそうだったので、これまであんまり気にしたことがなかったライセンスを確認した覚書。

prototype.jsとjQueryはMITライセンス。
YUIはやっぱりYahoo!が大好きなBSDライセンス。

主要なところは全部緩いライセンスだ(^-^)/

ソースはオープンである必要があるけど、自分が開発したWEBアプリに組み込んで売る分には問題なし!

7月 9
PerlでSwitch
icon1 admin | icon2 perl | icon4 07 9th, 2009| icon3No Comments »

個人的備忘録

Perlで複数分岐がif{}elsif{}else{}しかないのが不便だなー

Switch文使えないかなー

とか思ってたら、Switchというモジュールがあることを知った。

すげぇ。PerlでSwitch使えるじゃん!って思った。そしたら、5.8.0から標準モジュールだったんですね。

知らなかった。情けない(>_<)

ちなみにAcme::Commentモジュールを使うと、Cの/*—*/スタイルの複数行コメントが使えるよ。まぁ=pod — =cutスタイルで十分だけど。

7月 7

先日までMySQLでEC-CUBEサイトを構築中。

だったのだけれど、商品数1,000を越えたあたりでサイトが激重に。
調べたらMySQLでEC-CUBEつかうのはアレなんですね・・・。

EC-CUBEが使っているMySQL用のクエリがダメダメみたい。
一つ一つSQL文を書き直せばいいのだろうけれど、
そんなのあまりにムダな作業だ!!!

ってことで、PostgreSQLに変更し、
EC-CUBEを意気揚々と再インストールっ♪

でも、接続できないみたいなことを言ってくる?

はぁ?


MySQLにイージーさに慣れすぎて色々忘れてた。
ポスグレってpostgresql.confとpg_hba.confの設定が必須だっけ?
でググったらありましたよ。

http://www.dotconf.com/modules/dev/content0001.html


弊社はクララオンラインさんのPlesk導入サーバーを愛用させてもらっていますが、こちらの記事も同様のサーバー構成(OSは違いますが)のようですから、このままやれば良いだろうーーー。という希望的観測で今日はここまで。眠い。なんか頭イタイ。深夜0時。

ネタ元の記事の方。多謝です。

成功後、この記事に追記します。

【追記&結論】

あれこれ設定を変えてもうまくいかない(>_<)
と12時間近く悩んだあと発見。

クララオンラインのサーバーでPHP→ポスグレ接続するときは、
ホスト名を指定すると接続できません(>_<)

で、EC-CUBEのデータベース接続はどうなってるかと言うと、
PEAR_DBを使ってポスグレやらMySQLに接続をしてますが、
デフォルトの接続文字列が、

pgsql://username:password@hostname:port/dbname

という書式が使われています。ホスト名が見事に設定されています。
ってことで、これを

pgsql://username:password@unix()/dbname

となるように、install.phpとSC_Initial.phpを変更すると接続できるようになりました。
install.phpの方は書き換えなければならない箇所が複数あるので、
見落とさないように注意。

なぜ、このようにしなければならないのか・・・。
まさかこんなところで丸半日悩むとは思いもよりませんでした。

 ANZXCvg