今日は便利なサイトを見つけたのでその紹介をします。
紹介するのはタイトルの通り「PHP Cheat Sheet」です。
Cheat Sheet(チートシート)は日本語に訳すとカンニングペーパーですが、別にこのサイトは不正行為をするためのものではありません。今回紹介するチートシートとは、プログラミングをしていて、「あれ、これはどうなるんだったかな?」と思ったときに便利な情報が載っている、早見表のことですよ。
普通はプログラミングのCheet Sheetというと、使用できる関数の一覧だとか、オプションの一覧などが多いのですが、今日はちょっと違ったCheat Sheatを一つ紹介したいと思います。
ここで、突然ですが問題です。
if ($str) {
echo "true";
} else {
echo "false";
}
下の4つの値を上に書いた条件式に当てはめると、それぞれ何が表示されるでしょう?
また、条件を($str)から(isset($str))に変えたら、どうなるでしょう?
1. $str = 0;
2. $str = "0";
3. $str = "";
4. $str = null;
続きを読む >>
早いもので、入社から二カ月が経ちました。
お付き合いいただければ幸いです。
さて、今回は同人誌の危機か?と噂の「著作権の非親告罪化」について書かせて頂きます。
まず、噂についてですがたけくまメモここから火種が方々に飛んでいます。
概要:
著作権が非親告罪化する→警察(第三者)が勝手に同人誌などを摘発できる→同人誌が危ない→創作の危機!
では、噂の内容を確認したところで、元々の法制審議に関する資料を見て考えていきます。
知的創造サイクルに関する今後の課題(p15~p17)
続きを読む >>
ということで、三度、
JavaScriptのDOMスクリプティングネタです。
今回はイベントハンドラの操作に使う
addEventListener、
removeEventListener、
attachEvent、
detachEvent の「たとえばこんな使い方?」みたいなものを書いてみました。
まずは毎度おなじみ、サンプル。
続きを読む >>
いつかの夕暮れ頃に現れるWEBシステム企画人のたわいない話、「たそがれ営業部」。しばし、マルにおつきあいください。
さて、先日Google Analyticsのレポートページが刷新されたというニュースを見て、対応がまだかなと思っていましたら、ようやく対応を完了して、旧来のユーザでも新しいユーザーインターフェイスが見れることになったようです。
続きを読む >>
SIPネタです!!!
近年、IP電話等が広く普及してきた中でその知名度を上昇さえたプロトコルが、
SIP(Session Initiation Protocol)である。
IETFによって、各種プロトコルと同様にSIPも当然ながら標準化されている。
旧来からの技術として、H.323という多機能シグナリングプロトコルも存在するが、
SIPは、より純粋にインターネットでの利用を目的として作られている。
[SIPの特徴]
1,プロトコル構造が非常に単純に出来ており、テキストベースでの動作である。
実装も容易に出来て消費リソースも少ない。
2,既存のインターネットサービスとの相性が非常に良い。
これは、SIP自体がセッション確立、変更、終了を行うが、
セッション内容には一切関知しない事が理由としてあげられる。
つまり、他既存技術との親和性が非常に良いのだ。
3,通常の電話でも広く普及している保留、転送、コールウェイティングといった、
各種のサービスを広く提供が可能である。
4,プレゼンスサーバやその機能有無にも大きく依存するのだが、
相手URIが判明していれば、在籍状況といったプレゼンス機能の提供も可能である。
5,IM機能として、ショートメッセージをリアルタイムでの送受信を実現する。
但し、構成や回線、採用機器によってはある程度の作り込みが必要である。
まずは、セッション開始の為に必要な"SDP"の内容を参考までに記述します。
SDPは、マルチメディアセッション記述で使用され、
SIP接続開始やSIP以外の接続開始などの宣言を実施します。
[SDP記述例]
v=0
O=sito 9501050 9501060 IN IP4 202.222.28.XX
s=SDP Tomo Creative
i=SDP Tomo Creative session protocol
u=htp://www.tomo.ne.jp/XX/sito/sdp.01.ps
e=XX@tomo.ne.jp
c=IN IP4 224.2.10.2/127
t=2873397496 2873404696
a=recvonly
m=audio 50000 RTP/AVP 0
m=video 50100 RTP/AVP 48
m=application 44563 udp XX
以上の構文は、都合により一部有り得ない記述としております。
[SDP記述方式]
Session Description
v= (protocol version)
o= (owner/creator and session identifier)
s= (session name)
i=* (session information)
u=* (URI of description)
e=* (email address)
p=* (phone number)
c=* (connection information-not required if included in all media)
b=* (bandwidth information)
One or more time descriptions
z=* (time zone adjustments)
k=* (encryption key)
a=* (zero or more session attribute lines)
Zero or more media descriptions
Time description
t= (time the session is active)
r=* (zero or more repeat times)
Media description
m= (media name and transport address)
i=* (media title)
c=* (connection information-optional if included at session-level)
k=* (encryption key)
a=* (zero or more media attribute lines)
RFCより引用
前回、[Xen] CentOS5でvirt-installを使って仮想環境を作るという内容のブログを投稿しました。ゲストOSにCentOS5を入れる場合はよいのですが、CentOS4を入れる場合はいままで非常に困難を極めました。
ところが、最近のRed Hat Enterprise Linux ES4のアップデート(U5)では、CentOS5と同じようにXenのゲスト環境のカーネルが利用できるようになりました。結果、CentOS4でもU5相当のCentOS4.5のイメージを利用することで簡単にCentOS4のゲスト環境を作成できるようになります。
以下、方法の説明です。
続きを読む >>
今週の課題はソケット接続であるサイトのHTMLを取り込み、そのなかから指定された部分の文字列を抜き出してくるというものでした。そこで、今日は初心者向けに正規表現の入門と豆知識を紹介したいと思います。
まず、正規表現を使って何ができるのかというと、ある決まったルールに当てはまる文字列を見つけることができます。例えば、「aで始まってeで終わる」というルールを決めると、"ae"とか、"apple"とか、"absolute"とか、ルールに当てはまるものは全部見つけることができます。このルールをさらに細かく決めていけば、自分が探している文字列を間違いなく探してもらえるというわけです。
次に、正規表現のルールを決めるときに使う記号について。
正規表現ではルールを決めるときに使う特殊な意味をもった記号のことをメタ文字と言います。
メタ文字 |
意味 |
^ |
行頭に一致する |
$ |
行末に一致する |
. |
任意の一文字 |
* |
直前文字の0回以上の繰り返し |
+ |
直前文字の1回以上の繰り返し |
? |
直前文字の0回または1回の繰り返し |
{n} |
直前文字のn 回の繰り返し |
{n,} |
直前文字のn 回以上の繰り返し |
{n,m} |
直前文字n 回以上、m 回以下の繰り返し |
このぐらいは正規表現で検索すると、大体どこのページにも書いてあることですね。
でも、これだけの情報ではPHPのpreg_match()やpreg_replace()を使うときに困ったことになります。
例えば・・・
続きを読む >>
いつかの夕暮れ頃に現れるWEBシステム企画人のたわいない話、「たそがれ営業部」。しばし、マルにおつきあいください。
先日ですが、弊社のお客様である近藤組住宅事業部様に訪問しました。
続きを読む >>
ネットワークの上位レイヤの考え方!
CiscoSystems社にはネットワークを顧客へ提供する際の考え方として、
「PPDIOO」というものがあります。
顧客への提供検討方法として、この考え方はパートナーにも要求されます。
PPDIOOとは、下記6フェーズの頭文字を併せた造語です。
「Prepare→Plan→Design→Implement→Operate→Optimize」
基本的には、案件時にこのフェーズに則った遂行を要求されます。
各フェーズには、更に詳細な工程としてサービスコンポーネントが存在し、
更にアクティビティ/タスクと呼ばれる工程により各フェーズを確実なものとします。
まずは大枠として「Prepare→Plan→Design→Implement→Operate→Optimize」のフェーズと、
それに付随するサービスコンポーネントとアクティビティ/タスクの関係について、
丸暗記してしまいましょう。
今回は、最初のフェーズとなる「Prepare」について図を公開します。
!Prepareフェーズの確認!()
ということで、今回は
JavaScriptのDOMスクリプティングネタです。
以前、さらりと
appendChild や
removeChild に関しては取り上げた気がするので、
今回は要素の複製に使う
cloneNode について書いてみました。
まずは毎度おなじみということで、以下のようなサンプルを作ってみました。
続きを読む >>
ということで、私の経験をもとに、Web製作を行う上で
これだけは最低覚えておきたいPhotshopのショートカット
をまとめてみました。
続きを読む >>
script.aculo.us(Ajaxライブラリ)のSortable.createでonUpdateを使った際に、うまく動作しませんでした。
Sotable.createは、リストなどの要素をドラッグ&ドロップで並び替えできます。
調べた結果、Sotable.createを使う際、並び替えたい要素にidをふりますが、idのつけ方によってonUpdateが反応しない場合があるようです。
続きを読む >>
いつかの夕暮れ頃に現れるWEBシステム企画人のたわいない話、「たそがれ営業部」。しばし、マルにおつきあいください。
Web上でグリグリと(Ajaxで)いじれる地図といえば、Google Mapsをイメージされる方が多いかと思います。私もけっこう使います。
ところがです。ホームページ上にGoogle Mapsの地図を貼るってのが実は意外とめんどくさい。
私もとある案件でやってみましたが、あまり簡単では無いんですね。
それに地図が単調でモノによってはちょっと見づらい。思いのほか使いづらいとは感じていませんか?
そこで、Google Mapsより「見やすく」、「貼りやすい」地図というものが無いか探してみました。
続きを読む >>
「六曜付カレンダーを作る」の最終回です。
前回の記事では、「任意の日の旧暦は、その日の直前にある二分二至とそこから三回分の中気、及び五回分の朔を計算することで決定することができる。」ことを紹介しました。この方法を用いれば、閏月の挿入場所を比較的簡単に算出することができます。
しかし、この方法をそのままカレンダーに組み込むのには問題があります。
というのは、二分二至や中気、朔の計算方法が複雑なため、計算に時間がかかるからです。
任意の日の旧暦を求める場合には処理速度0.085秒程度なのであまり気になりませんが、これを一ヶ月分(28~31日分)繰り返すと2.5秒もかかってしまいます。カレンダーを開いたり、月を移動するたびに2,3秒もかかっていたのではストレスを感じてしまいます。
そこで今回は、前回紹介した旧暦計算スクリプトをカレンダーに応用する方法について紹介します。
続きを読む >>