スタッフブログ

  • 最新配信
  • RSS

株式会社カメレオン様

mik : その他 2008/9/18 0:01

Blogger's Avatar

WEBをお仕事にされている、したいと思っている方のためのSNSを検索していて

andromeda
http://www.andromeda8.com/

というSNSを見つけました。てっきり招待制だと思い、誰か知ってる人いないかなーと制作会社を見てみたらなんと昨年春に名刺交換をした 株式会社カメレオン さんでした。

とはいえ一度お会いしただけだったのでいきなり招待してくださいとも言いにくいなぁと思いつつサイトをいろいろ拝見していたら当時は別のところだったのですが現在の事務所はなんと弊社から徒歩10分以内ぐらいのところに。会社規模も当社と同じぐらい、社内blogを見ているとだんだん興味が湧いてきてついにメールをしてみました。

早速お返事をいただき、実は招待制でなく新規登録がサイトからできることがわかったのですが、これも何かの縁と本日カメレオンの福留さんが弊社を訪ねてきてくださいました。

これもまた偶然なのですが、弊社のビル2Fにある貸し会議室で行われている朝食会に参加されているとのこと。こういうところもご縁だなぁと思いつつ。

カメレオンの福留さん、弊社社長と私とでIT業界のあれこれや今後の方向性など意義のあるお話をさせていただきました。

株式会社カメレオン
http://www.kameleon.jp/

また本日社長ブログに弊社訪問の際のことを書いていただきました。
http://ameblo.jp/kameleon/entry-10140323009.html

エールの交換ではないですが私も同じように大変興味深いできごとでしたのでblog記事にさせていただきました。

カメレオンさんはandromedaのようにOpenPNEを導入したり、EC-CUBEを利用したショッピングサイト、WEBデザイン、MovableTypeを利用したサイトなど幅広い業務をされています。

社内勉強会でOpenIDについて話しました

 : 技術全般 2008/9/12 18:19

Blogger's Avatar

satoです。
弊社では毎週金曜日に何か発表とかがあるのですが、今回はOpenIDのRPの実装方法について話しました。
プレゼン資料を置いておきますので、参考になれば幸いです。(カーソルキーで操作します)

OpenID RPの作り方

メソッドの命名規則

 : 技術全般 2008/9/11 2:30

Blogger's Avatar

haltです。 プログラムにおいて、名前をつける事は非常に重要な意味を持ちます。 (半年後の自分も含めた)他の人が触れるプログラムなら多少時間が かかってもわかりやすい変数名、わかりやすい関数名をつけるべきです。 が、実際は最適解が見つからず適当につけてしまいがちです。 PEARのコーディング規約には、camelbackで書くように。等のキャピタライズに関する支持はあっても具体的にどういうメソッド名にするべきかは書かれていません。 isを使う時はbooleanで返すなどのルールは他のコードを見てみよう見真似でやっていたのですが他にどんなルールがあるのかとgoogleで検索したら以下のルールが見つかったので紹介します。 [blockquote] http://www.okapiproject.com/java/java_codeconventions/jcc_naming.htm 2.9.4.boolean 変数を返すメソッド boolean 変数を返すメソッドについては、「is + 形容詞」「can + 動詞」「has + 過去分詞」「三単現(三人称単数現在)動詞」「三単現動詞 + 名詞」のいずれかの名称をつけます。特に動詞は三単現以外の動詞は利用してはいけません。また、true の場合がどちらであるか判別しやすい名前にするために通常は true の場合を名称にします。 [/blockquote]
isEnabled()
canGet()
hasCanged()
contains()
containsKey()
このルールはJava向けのようですが、命名規則に関してはPHPでも通用します。あらかじめ規約を決めておく事で名前から関数の動作を予測できるようになり、コードの理解が早くなるので、こういったルールを覚えておき、自分のコードに反映させていくと良いのではないでしょうか。

.svnを掃除する

naoto : 技術全般 2008/9/9 20:51

Blogger's Avatar

こんにちわ。なおとです。

今日はいつもよりも開発よりの話題をしたいと思います。 それは、Subversionからチェックアウトしたディレクトリ以下から、.svnディレクトリを削除する方法です。

.svnディレクトリには、バージョン管理のためのメタデータが格納されていて、プログラムそのものの動作には影響しないものです。 これを綺麗に消してしまう方法を検索してみると、LinuxなどのUNIX系の環境では、シェルからワンライナー1発で解決する方法が見つかります。

それでまたくOKなのですが、Windowsユーザーでも使えるようなPerlスクリプトを書いてみました。 きっと誰が書いても同じようなことになると思います。

こういった短いスクリプトを「書き捨て」にできるのが、できるエンジニアと言われる条件のひとつのようです。 しかし私は書き捨てにせず、こうしてブログのネタに再利用しています^^;;。

#!/usr/bin/perl

use strict;
use warnings;
use File::Find;
use File::Path;

# rmtree .svn dirs

# 検査したいディレクトリの親のpath
use constant BASE_DIR => '/var/www/';
# 検査したいディレクトリ名のリスト
use constant TARGET_DIRS => ('html', 'xoops_trust_path');

for my $dir (TARGET_DIRS) {
find(\&del_svn, BASE_DIR . $dir);
}

sub del_svn {
rmtree($_, 1, 1) if (-d $_ and $_ eq '.svn');
}

OpenIDまわりの用語

 : 技術全般 2008/9/8 18:14

Blogger's Avatar

satoです。
OpenIDまわりの用語は結構多いのですが、どれもわかりづらいものが多いのでここでまとめてみます。

・OP
認証を行うサーバ。OpenID Provider。IdPとも。

・RP
OPを使って認証をするサービス。Relying Party。Consumerとも。「Relaying」ではないので注意。

・Claimed Identifier
ユーザが自分のものだと主張するID。いわゆる「あなたのID」。

・SREG
OpenIDに付随するユーザの情報を取得するためのプロトコル。OpenID Simple Registration Extension。

・Yadis
URIからその対応するプロトコルを取得するためのプロトコル。OpenIDに限ったものではない。

・nonce
なりすまし防止のための文字列。

・Diffie-Hellman鍵共有
一般経路で暗号鍵の安全な共有を行うアルゴリズム。PGP等でも使用されている。

・XRDS
Yadisで使われるXML文書の形式。

その他に関しては、OpenIDドキュメントの和訳(他にもあります)などを見るとわかると思います。
このあたりの用語と、セキュリティ問題とかを覚えておくと、実装の話以外では大体理解できると思います。

フライデーフリー制度

Ryuji : ビジネス 2008/9/5 20:29

Blogger's Avatar

7月の後半からですが、フライデーフリー制度というのを実施しています。
これは、毎週金曜は、通常の受託案件の開発をとめて、各スタッフさんに自分の作ってみたいプログラムの開発や、技術書を読むなど、普段は業務を優先するとつい後回しになってしまうことをやってもらうようにしています。

有名なGoogleの20%ルールと同じです(^^;
# 週休二日なんで、週に1日だとちょうど20%
ちなみに、名前はmixiの1デーフリーからいただきました(^^;

■フライデーフリー制度のメリットとは
◆メリット1.月曜から木曜の仕事がだれません。

週5日勤務だと、水曜の朝の段階では、まだ今週十分な時間があるように思えますよね。
でも、業務を行う日が、週4日しかないと、水曜の朝で今週業務に使えるのはもう残り半分だけってことになります。
おかげで、平日だれることがありません。

◆メリット2.スタッフの能力UPになります。
「7つの習慣」に「刃を研ぐ」というのがあります。
古びた刃を研いでないノコギリで必死になって木を切ろうとしても、大変なわりにいつまでも切れません。先に刃を研いだ方が木を切るのは断然楽になります。

「刃を研ぐ」とは、仕事をこなす能力をあげるために時間を投資することです。

勉強熱心な開発者がその能力を磨くには、そのための時間を確保するだけでも、かなり効果があると思っています。

その結果、通常の業務を更に効率的にこなせるようになると思ってます。

◆メリット3.人材確保にも効果あるかも
今、実力のある開発者を確保するのはかなり難しくなってきています。
こういう制度があることで、RYUSで働いてくれる方が増えたり、今働いてくれてるスタッフの皆さんがこの先もRYUSで働いてくれたらなぁと思います。

■大変な面もありますよ。。。
フライデーフリー制度の導入により、通常業務をこなす日数は週に4日となりました。
でも、アウトプットが4日分になるのを認めてるわけではありません。4日で、これまでの5日分のアウトプットを求めてますので、スタッフはけっこう大変かもしれません。

プライバシーマーク取得準備中

mik : その他 2008/9/5 10:43

Blogger's Avatar

そろそろRYUSもプライバシーマークを導入しないといけないのでは、ということを感じてきました。

お客様のニーズもありますが、社内での運用も必要だと思われます。

本を購入して研究したり、ホームページをいろいろ見て調べてみましたが

どうやら自力だけで導入するのは難しそう!

と、結論しました。

幸い、知り合いにJ-SOX法に詳しい方がいらしたのでお話を聞き、ますます導入の必要性やコンサルタントの必要性を感じています。

1年かかると言われている取得期間ですがなんとかがんばって可能な限り早期取得を目指します。

今回検討して思ったのは やっぱり餅は餅屋! ってことで、必要なことは専門家に協力していただくのが一番だなぁ、と。

ということでソフトウェアのことでお困りでしたらまずは専門家=RYUSにご相談ください

#とちょっと宣伝モードでした

JavaScriptを学ぶ上でPHPerが勘違いしやすい所

 : 技術全般 2008/9/3 20:17

Blogger's Avatar

haltです。 最近JavaScriptの勉強を真面目にやる事にしました。 いつまでも知ったかぶりで必要になった時にその場しのぎのコードを書くより ちゃんと理解して自分から積極的に使えるようになった方が良いですし。 そこでオライリー本を読みすすめているのですが、 文法的にPHPとそっくりのJavaScriptが配列の扱いに関しては 全然違う事がわかったので紹介します。 以下のPHPコードを見てください。
<?php
$a = array('a', 'b', 'c');
$b = $a; 
$b[0] = 'x';
var_dump($a);
これは当然a,b,cが入った配列が表示されます。 しかし、同じ事をやっているJavaScriptの以下のコードは
var a = ['a', 'b', 'c'];
var b = a;
b[0] = 'x';
alert(a);
x,b,cが表示されます。 PHPの場合、配列は「データ型」であるため、代入すると値がコピーされます。 しかしJavaScriptの場合、配列は、「配列オブジェクト」である為、 PHPのクラスのインスタンスを代入した時のように、参照扱いになります。 その為、参照先のbの変更がaに反映されるのです。 説明を読めば「ああなるほど」という感じですが、知らないでテキトーに使っていると ハマるのではないでしょうか。

NONEモジュールの言語ファイル対応版

naoto : XOOPS » モジュール 2008/9/2 19:54

Blogger's Avatar

RYUSのなおとです。先週末はLL Future第35回PHP勉強会と、盛りだくさんでした。でも両方とも遅刻してしまいました・・・。

さて今回話題にするのは、NONEモジュールです。これはほぼなにもしない、いわば骨組みだけのモジュールです。2003年頃にXOOPS2向けに公開されたようです。

モジュールについて勉強する過程で、これを知りました。しかし残念なことにEUC-JP固定で作られているようでした。

私は普段、最新のXOOPS Cube Legacy、例えばホダ塾ディストリのバージョン1.0.2を使うことが多く、サイトをUTF-8で構成したりします。そこで今回、NONEに言語ファイル対応部分だけ付け加え、japanese, english, ja_utf8の言語ファイルを用意しました。

D3対応のnone

実は後で気付いたのですが、d3noneというモジュールが既に存在するようです。もちろん言語ファイル対応で、モジュールを簡単に複製可能な仕様の、いわゆるD3対応です。これをみると、自作モジュールをどうしたらD3対応にできるかの、理解の参考になります。

d3noneをみて悔しかったので、ちょっと違う方向性でまとめてみました。

もともとのNONEは、モジュールの作り方を知るための教育的な位置づけも意図されていたと思います。原点に回帰して、xoops_trust_pathやaltsysなどのD3対応をしない、言語ファイル対応だけに集中してみました。

しかしこの半端さ、これにどういった意味があるのか分かりませんが、こっそり公開してみます。

none_m17n

PHPのreadline拡張を単体でインストールしようとしてはまった時のメモ

 : 技術全般 2008/8/29 10:20

Blogger's Avatar

satoです。
今回はPHP5.2のreadline拡張をビルドしたときにハマったことを書いておきます。

PHPの拡張はPHPのビルド時に指定することが多いと思いますが、sharedでビルドしてextension=〜.soで適用することもできます。こちらのほうが後から取り外しもできるので便利です。
しかし今回はそもそもPHPのビルド時の指定を忘れていたので、直接単体でビルドを試してみます。

拡張はPHPのソースのext以下に入っています。今回はreadlineなので、ext/readlineに移動してphpizeしてconfigureします。

checking for readline in -ledit... no
configure: error: edit library required by readline not found

とか言われてしまいます。
libeditは、readlineのBSDライセンス版的なものなのですが、私の環境ではreadlineしか入っていなかったのでreadlineを使いたいところです。

configureを見ると

# Check whether --with-libedit or --without-libedit was given.

とか書いてある行があります。
--without-libeditとか書けば大丈夫なのでしょうか。

./configure --with-php-config=/opt/php5.2/bin/php-config --without-libedit --with-readline=/usr/lib

checking for readline in -ledit... no
configure: error: edit library required by readline not found

変化がありません。--with-libedit=noでも変わらないようです。

configureを追うと、

echo "$as_me:$LINENO: checking for libedit readline replacement" >&5
echo $ECHO_N "checking for libedit readline replacement... $ECHO_C" >&6

# Check whether --with-libedit or --without-libedit was given.
if test "${with_libedit+set}" = set; then
  withval="$with_libedit"
  PHP_LIBEDIT=$withval
else

  PHP_LIBEDIT=no

  if test "$PHP_ENABLE_ALL" && test "yes" = "yes"; then
    PHP_LIBEDIT=$PHP_ENABLE_ALL
  fi

fi;

このあたりでlibeditのチェックをしていることがわかります。
echoでデバッグすると、どうやらPHP_ENABLE_ALL="yes, shared"になっているため、常に通ってしまうようです。
しかしconfigureを読むのに慣れていないので、この変数がどこで設定されているのかはわかりませんでした。

よくわからないので、

  if test "$PHP_ENABLE_ALL" && test "yes" = "yes"; then
    PHP_LIBEDIT=$PHP_ENABLE_ALL
  fi

を削除してしまします。が、変化がありません。
  PHP_LIBEDIT=no
の次の行で、echo $PHP_LIBEDITとしても"yes, shared"と出力されています。

よくわからないので、その後のチェック終了後だと思われる(3242行目あたり)

  ext_output="yes, shared"
  ext_shared=yes
  test "$PHP_LIBEDIT" = "no" && PHP_LIBEDIT=yes

の後に
PHP_LIBEDIT=no
と追加してしまいます。これでconfigureが通り、無事ビルドできました。

もしかすると何か設定があるのかもしれませんが、とりあえず今回はこれで正常に利用できているのでこれでよしとします。
正しい方法をご存じの方がいらっしゃいましたら是非ご教授お願いします。

スタッフブログ最新
カテゴリ一覧

〒104-0061 東京都中央区銀座1丁目3番3号 G1ビル7階
お問い合わせ TEL 03-3524-8860

Copyright(c) 2012 RYUS.All Rights Reserved.