Hatena::ブログ(Diary)

EC-One ナレッジセンター レスキューサービス ブログ

2010-04-19

037 今までありがとうございました!ブログの更新終了のお知らせ

20100416154931

お久しぶりです、id:EC-OneのAkiです!

前回のエントリから随分と間が空いてしまいました。
実は最近ナレッジセンターへの質問・相談が立て続けにやってきて、てんてこまいの日々を送っております。

4月からは新入社員を迎えて研修も始まり... ありがたいことにナレッジセンターはますます大盛況です!
学生の方も、社会人の方も、皆さん新年度は何かと慌ただしいことと思いますが、元気でお過ごしでしょうか?

さて、今日は皆さんに、ナレッジセンターレスキューサービスブログに関するお知らせがあります。

f:id:EC-One:20090805110551g:image ナレッジセンターレスキューサービスブログ 更新終了のお知らせ

約1年前から「開発現場の実際とノウハウを公開する」ことを目的として、はてなダイアリーで始めた「ナレッジセンターレスキューサービスブログ」ですが、今回のエントリをもって更新はお休みすることとなりました。

このブログを通じて、イーシー・ワンの中に蓄えられていたナレッジを、少しでもオープンな形で提供することができ、とても楽しかったです。
サービス自体は今後も継続して社内外に提供してまいりますので、困ったときにふと思い出したら、どうぞお気軽にお問い合せ下さい。お待ちしております!

ブログを公開するにあたって親身にご協力いただいた株式会社はてなの田中様(id:mitsuki)、エントリの冒頭に掲載する後ろ姿の写真を撮らせてくれた社員の皆さん、エントリの内容を一緒に考えたり推敲してくれたナレッジセンターのメンバー、そして何よりこうしてブログを読んでくださっていた皆さま、本当にどうもありがとうございました。

今回をもって更新は終了となりますが、ここまでのエントリは引き続き公開されていますので、時折思い出して見にいらしていただけると嬉しいです。

20090826135203 今までのエントリ

技術に携わる皆さまが、いつも笑顔で過ごせるように、ナレッジセンターは今後も精進してまいります!
これまでご愛顧いただきまして、本当にどうもありがとうございました。

今後ともナレッジセンターレスキューサービス、そしてイーシー・ワンをどうぞよろしくお願いいたします。




JavaRuby及び周辺のソフトウェアを用いた開発に関して、企業があらゆる悩みごとを相談できるのが、ナレッジセンターの「レスキューサービス」です。

どんな相談でも親身に受け付けますので、レスキューサービスってなに?もっと知りたい!と思った方はお気軽に問い合わせ下さい。

問い合わせ画像リンク

2010-01-26

036 インターネットに繋がらないマシン(CentOS)へのSubversion+Tracのインストール

f:id:EC-One:20091201200914j:image

お正月気分も抜けて、仕事をされている方はすっかり本調子でしょうか?
皆さん、こんにちは。id:EC-OneのAkiです。

最近、セキュリティ意識の向上により、さまざまな企業で「インターネットにつながらない環境」を多くみかけます。
CentOSなどのLinuxOSでは、何かをインストールする際に「ネットワークからダウンロードしてインストール」を行うコマンドを使うのがラク&一般的なのですが、いざネットにつながらない環境となると...?

今回はそんな「インターネットにつながらない環境」でのSubversionおよびTracのインストール作業についてお話しします。

f:id:EC-One:20090805110551g:image インターネットにつながっているならば

インターネットに繋がっているならば、インストールされたばかりのCentOS5.4に、Subversion + Trac(日本語版) をインストールするのは容易いことです。(ここではApacheは既にインストール済であるものとします)

以下、対象マシンのアーキテクチャがx86_64の場合です。

まず、

rpm -Uhv http://apt.sw.be/redhat/el5/en/x86_64/rpmforge/RPMS//rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm

として、yumリポジトリを補強してから(そうしないと 古いバージョンのSubversionが入ってしまいます)

yum check-update
yum update

として、念の為、アップデートできるものは全てアップデートした後に、

yum install mod_dav_svn
yum install trac
yum remove trac
wget http://www.i-act.co.jp/project/products/downloads/Trac-0.11.5.ja1.zip
unzip Trac-0.11.5.ja1.zip
cd Trac-0.11.5.ja1
python setup.py install

とすれば終了です。あー、簡単!

f:id:EC-One:20090805110551g:image ではインターネットにつながっていないなら?

しかし、インターネットに繋がっていない場合、インストールされたばかりのCentOS5.4に、Subversion + Trac(日本語版) をインストールするのは少々面倒になります。
依存関係やら何やら、といったややこしい事担当の yum というコマンドは、インターネットに繋がっていなければ役に立ちません。
「yum(ヤム)が使えないだけに、やむなし!」と言ったってどうにもなりはしません。

その場合の手順ですが(x86_64の場合)、予め、自分のローカルPC(もちろんインターネットに繋がっている)に、ネットから、

neon-0.28.4-1.x86_64.rpm
sqlite-3.5.9-2.x86_64.rpm
subversion-1.6.6-1.rhel5.x86_64.rpm
mod_dav_svn-1.6.6-1.rhel5.x86_64.rpm
subversion-python-1.6.6-1.rhel5.x86_64.rpm
Trac-0.11.5.ja1.zip
setuptools-0.6c11-py2.4.egg
Genshi-0.5.1-py2.4-linux-x86_64.egg
mod_python-3.2.8-3.1.x86_64.rpm

たちを取得しておきます。

そしてこれらを、対象のインターネットに繋がらない CentOS 5.4 へ SFTPなどでアップロード

その後、インターネットに繋がらない CentOS 5.4 上の適当なフォルダで、

rpm -ivh neon-0.28.4-1.x86_64.rpm
rpm -Uvh sqlite-3.5.9-2.x86_64.rpm
rpm -ivh subversion-1.6.6-1.rhel5.x86_64.rpm
rpm -ivh mod_dav_svn-1.6.6-1.rhel5.x86_64.rpm
rpm -ivh subversion-python-1.6.6-1.rhel5.x86_64.rpm
sh setuptools-0.6c11-py2.4.egg
easy_install Genshi-0.5.1-py2.4-linux-x86_64.egg
rpm -ivh mod_python-3.2.8-3.1.x86_64.rpm
unzip Trac-0.11.5.ja1.zip
cd Trac-0.11.5.ja1
python setup.py install

としてやれば、Subversionと日本語版Tracのインストールは完了です。

インストールが完了した後は、Projectの作成やら、認証関係の設定やら、tracのユーザ管理用のプラグインの追加やらが、"インターネットに繋がらない状態で"あるのですが、今回はその辺りの煩雑な設定は割愛します。

ちなみに、mod_python-3.2.8-3.1.x86_64.rpm については、捜すのに苦労しました。(結局 http://rpm.pbone.net/ で、mod_python.so と入力して SEARCH ボタンを押下)

本家のApacheのサイトにはC言語のソースしかなく、それをコンパイルするためのgccコマンドも対象のマシンにはなかったりしますから...

CentOSへのモジュールのインストールにyumが使えないというのは、高校生がせっかく習った判別式を使わずに二次方程式を解けと言われるのと同じ位致命的なことだ(?)、と実感したのでした。


ナレッジセンターでは「インターネットにつながらない環境で○○がしたい」などの相談も受け付けます。
トライアル質問を無料で受け付けるキャンペーンも実施しておりますので、お気軽にお問い合わせ下さい!




JavaRuby及び周辺のソフトウェアを用いた開発に関して、企業があらゆる悩みごとを相談できるのが、ナレッジセンターの「レスキューサービス」です。

どんな相談でも親身に受け付けますので、レスキューサービスってなに?もっと知りたい!と思った方はお気軽に問い合わせ下さい。

問い合わせ画像リンク

2009-12-26

035 jboss-5.1.0.GAでcronのような定期処理を実現

f:id:EC-One:20091201200917j:image

こんにちは、id:EC-OneのAkiです。
ちょっと間が空いてしまいましたが、その間、プロジェクト支援や調査依頼等でナレセンメンバ一同忙しくしておりました。
今回はそれらの調査の中から、ひとつご紹介したいと思います。

f:id:EC-One:20090805110551g:image 定期処理を行うには

定期的な処理を行うには OS の力を借りて実現する事が多いですね。Unix 系の cron や Windows 系のタスクスケジューラ等。
しかし、今回依頼のあったプロジェクトでは、運用チームとアプリ開発チームの分担やAPサーバ水平分散等の事情もあり、JBoss の機能を使用して実現することにしました。
それでは参りましょう!

f:id:EC-One:20090805110551g:image JBossでの定期処理

jboss-5.1.0.GA 上で periodical な処理をする機能としては Timer と Scheduler があります。
Timer は実際に行いたい処理を設定ファイルの中に直接 beanshell というスクリプト言語で記述しなければなりません。
これに対して Scheduler は、設定ファイルの中で実行する java のクラスを指定する形ですので、今回のプロジェクトでは Scheduler での実現の方が良い、ということになりました。
以下、簡単な例です(WindowsXP 上の jboss-5.1.0.GA です)。

1. JBoss を起動します。

set JAVA_HOME=C:\Java\jdk1.6.0_16
set PATH=C:\Java\jdk1.6.0_16\bin;%PATH%
cd C:\jboss-5.1.0.GA\bin
run.bat

2. Scheduler でキックされる java のクラスを作成します。

package scheduler_sample;

import java.util.Date;
import org.jboss.varia.scheduler.Schedulable;
import org.apache.log4j.Logger;

public class Sample1ExSchedulable implements Schedulable {
    private static final Logger log = Logger.getLogger(Sample1ExSchedulable.class);
    private String arg1;
    private long arg2;

    public Sample1ExSchedulable(String arg1, long arg2) {
        this.arg1 = arg1;
        this.arg2 = arg2;
    }

    public void perform(Date now, long remainingRepetitions) {
        log.info("perform!!! now[" + now + "]" +
                 " remainingRepetitions[" + remainingRepetitions + "]" +
                 " arg1[" + arg1 + "]" +
                 " arg2[" + arg2 + "]");
    }
}

3. Scheduler でキックされる java のクラスをデプロイします
 ( Sample1ExSchedulable.java をコンパイルし、できたクラスファイルを scheduler_sample1.jar という名前の jar に固め、
  その scheduler_sample1.jar を C:\jboss-5.1.0.GA\server\default\deploy にコピーします)。

4. Scheduler の設定を行います。C:\jboss-5.1.0.GA\server\default\deploy にある scheduler-service.xml を以下のように編集します。

<?xml version="1.0"?>
<server>
  <mbean code="org.jboss.varia.scheduler.Scheduler"
         name="jboss.docs:service=Scheduler">
    <attribute name="StartAtStartup">true</attribute>
    <attribute name="SchedulableClass">scheduler_sample.Sample1ExSchedulable</attribute>
    <attribute name="SchedulableArguments">knowledge-center,123</attribute>
    <attribute name="SchedulableArgumentTypes">java.lang.String,long</attribute>
    <attribute name="InitialStartDate">NOW</attribute>
    <attribute name="SchedulePeriod">60000</attribute>
    <attribute name="InitialRepetitions">-1</attribute>
  </mbean>
</server>

5. 動作確認を行います。run.bat を実行しているコマンドプロンプトに、60秒ごとに、以下のログが出力されます。

13:17:15,963 INFO  [Sample1ExSchedulable] perform!!! now[Fri Nov 06 13:17:15 JST 2009] remainingRepetitions[-1] arg1[knowledge-center] arg2[123]

f:id:EC-One:20090805110551g:image 終わりに

以上が「OSに頼らずにJBossだけで定期処理を実現する方法」でした。
cron やタスクスケジューラ等での実装では、処理の先頭でまず JBoss が起動しているかいないかのチェックをしなければいけないケースがあります。この方法ではそもそも JBoss が起動している時のみ実行されますので、そのようなチェックが不要になります。意外と使えるケースがあるのではないでしょうか。

ナレッジセンターでは、「運用が楽になるようにアプリを作りたい」などの相談も受け付けます。
トライアル質問を無料で受け付けるキャンペーンも実施しておりますので、お気軽にお問い合わせ下さい!




Java、Ruby及び周辺のソフトウェアを用いた開発に関して、企業があらゆる悩みごとを相談できるのが、ナレッジセンターの「レスキューサービス」です。

どんな相談でも親身に受け付けますので、レスキューサービスってなに?もっと知りたい!と思った方はお気軽に問い合わせ下さい。

問い合わせ画像リンク

2009-12-02

034 ITproで「ナレッジセンター」を題材にした連載が始まりました!

f:id:EC-One:20091201200913j:image

こんにちは、id:EC-OneのAkiです。

冷え込みが厳しい毎日ですが、皆さまいかがお過ごしですか?
今日は嬉しいお知らせがあるので、私の気持ちは春気分です!

f:id:EC-One:20090805110551g:image 企業システムでオープンソース活用時のトラブル解決法

日経BP社のITproで「企業システムでオープンソース活用時のトラブル解決法」の連載が始まりました

企業でLinuxをはじめとするオープンソース・ソフトを活用するには,商用ソフトと違うさまざまなノウハウが必要になります。この連載では,システム・インテグレータのイーシー・ワンで実際にオープンソース・ソフトのトラブル解決にあたってきた事例・ノウハウを基に,発生したトラブルやその解決手順をドキュメンタリ・タッチで紹介します。

企業システムでオープンソース活用時のトラブル解決法:ITpro

引用の通り、企業でオープンソースソフトウェアを利用する際に起こったトラブルと、その解決までの過程を描く連載なのですが、なんとその舞台がイーシー・ワンのナレッジセンターなんです。

f:id:EC-One:20090805110551g:image 気になる第1回は「Linuxセキュリティ機能の罠」

連載の第1回目は、「Linuxセキュリティ機能の罠」と題して、SELinuxのトラブルに見舞われた高野さんが主人公のお話です。

このプロジェクトは,あるユーザー企業で大規模Webアプリケーションの開発に取り組んできた。開発言語は「Ruby」,フレームワークとして「Ruby on Rails」(RoR),データベースには「MySQL」を採用。これをRed Hat系Linuxである「CentOS」上に配備して動作させる想定だ。

(中略)

高野氏はひとりほくそえんでいた。このプロジェクトで良い成果を収めれば,次の案件ではより重要なポジションを任せてもらえるに違いない。複数の案件でリーダー経験を積み,いずれはプロジェクト全体をまとめあげるポジションに着いて,華々しい舞台で活躍する。目の前に広がる輝かしい未来予想図に一人酔いながら,高野氏はテスト環境のセットアップに着手した。

しかし,そのテスト環境セットアップの過程に意地悪なトラブルが待ちうけていようとは,そのときの彼には知る由もなかった――

第1回:Linuxセキュリティ機能の罠 - 企業システムでオープンソース活用時のトラブル解決法:ITpro

果たしてナレッジセンターは高野さんのピンチを助けることが出来るのでしょうか?

私、Akiもナレッジセンターのスタッフとして登場します。ぜひご一読下さい。

f:id:EC-One:20090805110551g:image 連載を通して「ナレッジセンターってこんなところなんだ」と知って欲しい

今回の連載はイーシー・ワンの社員であり、テクニカルライターとしてJavaPerlJRubyなどを題材にした記事や本を多く出している小竹さんが執筆を担当しています。

ナレッジセンターで実際に起こった事例についてヒアリングを行ったものを、ドキュメンタリ・タッチでまとめてありますので、非常に読みやすく笑いも交えた記事になっています。そして勿論、技術的な面でも間違いのないように、社内のアーキテクトがきちんと内容をチェックしています。

色々な人が協力して「ナレッジセンター」を舞台にした記事を書いてくれている、そしてその記事を読んでくれる方がいる、そう考えると本当に嬉しいものがあります。

知っている人にとってはなんでもないこと、あるいは周りに質問できるような人がいればすぐに解決するようなことでも、聞ける相手が見つからずに一人で考え込んでしまうことってありますよね。

元々ナレッジセンターは「そんな人の力になりたい」という想いから始まったサービスです。
この連載を通して、皆さまにナレッジセンターを疑似体験してもらえたり、少しでもナレッジセンターのことを知ってもらえたら嬉しい限りです。

ナレッジセンターでは、使ったことがある人ならすぐわかるような小さなつまづきでも、ご質問いただければ親身に対応いたします。
トライアル質問を無料で受け付けるキャンペーンも実施しておりますので、連載をご覧になって気になった方はぜひお気軽にお問い合わせ下さい!




Java、Ruby及び周辺のソフトウェアを用いた開発に関して、企業があらゆる悩みごとを相談できるのが、ナレッジセンターの「レスキューサービス」です。

どんな相談でも親身に受け付けますので、レスキューサービスってなに?もっと知りたい!と思った方はお気軽に問い合わせ下さい。

問い合わせ画像リンク

2009-11-23

033 MySQLのはまりどころ(その2)〜不正データがエラーにならない

f:id:EC-One:20091112201520j:image

こんにちは、id:EC-OneのAkiです。

前回のエントリに引き続き、MySQLの小ネタをひとつ。

f:id:EC-One:20090805110551g:image MySQLに不正な値を入れると...?

Oracle+Windows-31Jで構築したアプリをMySQL+UTF-8に変更していたエンジニアが気付いたこと。

Oracleは不正な値をINSERTやUPDATEで入れようとするとエラーになります。
不正な値とは、たとえば「カラムサイズを超える長さの文字列」等です。

日本語の文字列の必要バイト数は文字コードがWindows-31Jであれば「1文字2バイト」で計算できます。
しかし、UTF-8にするとそれよりも必要バイト数が多くなります。これはUTF-8が日本語一文字に2〜4バイト使用するためです。

ところが、MySQLに明らかにカラムサイズを超える文字列を入れてもエラーになりません。
おかしいなと思ってデータを見てみると、そのデータの文章が不自然に終わってしまっています。
そうです、なんとMySQLはエラーにせずに黙って格納可能バイト数を超える部分をカットしてしまっていたのです。

日付・時刻の場合、不正な値を入れるとやはりエラーにならずに黙って「ゼロ」にしてくれます。
と言うことはたまたまタイミングよく閏秒の時に23時59分60秒という値をMySQLに入れると、それはゼロになってしまうということです。(最近のMySQLは閏秒のときでもNOW()関数は23時59分59秒を返すようになっているようですが)

「何か間違っていたら最後の砦DBが叱ってくれるはず」と思っていたのが、「間違っているかどうかは全て手前のアプリが自分で確認しなければならない」となるわけです。
まぁ、もちろんアプリでは入力チェックを行うようには作る&テストはするのですが、「DBに頼る事はできない」となった時点でちょっと負担が増える気はしますね...
しかし、この点だけを理由にMySQLをあきらめる必要はありません! なぜなら、不正な値に対してエラーを発生させる設定があるからです。

f:id:EC-One:20090805110551g:image 不正な値を入れるとエラーにしてくれる「STRICT_ALL_TABLES」設定

マニュアルの「SQLモード」のページにその設定に関する以下の記述があります。

STRICT_ALL_TABLES

すべてのストレージ エンジンに対して、Strict Mode を有効にする。無効データは排除の対象になる。

http://dev.mysql.com/doc/refman/5.1/ja/server-sql-mode.html#id3524189

この「STRICT_ALL_TABLES」設定によって、「不正データを水際で止める」事が出来るようになります!
この設定を使用するには、mysqldの起動引数に「--sql-mode="STRICT_ALL_TABLES"」オプションを追加するか、または設定ファイルmy.cnf(Unix)かmy.ini(Windows)に「sql-mode="STRICT_ALL_TABLES"」を追記します。
あー、良かった!

EC-Oneナレッジセンターは、OracleとMySQLのような製品間の差異に関する相談でも親身に受け付けます!




JavaRuby及び周辺のソフトウェアを用いた開発に関して、企業があらゆる悩みごとを相談できるのが、ナレッジセンターの「レスキューサービス」です。

どんな相談でも親身に受け付けますので、レスキューサービスってなに?もっと知りたい!と思った方はお気軽に問い合わせ下さい。

問い合わせ画像リンク

2009-11-14

032 MySQLのはまりどころ(その1)〜行ロックのつもりでテーブルロック

f:id:EC-One:20091112200615j:image

こんにちは、id:EC-OneのAkiです。

なかなか技術ネタが書けない今日この頃ですが、小ネタでもいいから書いてみようと思います。


f:id:EC-One:20090805110551g:image MySQLのロック

数年前までは、EC-Oneが業務システムを開発する場合に、DBOracleを使用することが多かったです。
ODBが適する業務の場合は別ですが、RDBが適する業務の場合のOracleの使用率はダントツ。

そのため、Oracle以外のRDBを使用する場合でも、最初のうちは「DB2はOracleとここが違う」等、Oracleとの比較で理解/説明しようとする事が多かったです。
そんな中で出会ったMySQLのハマりポイントをご紹介します。

f:id:EC-One:20090805110551g:image MySQLって行ロックじゃないの?

MySQLを使用するといっても、そのエンジンにはInnoDBMyISAMがありますが、最近のデフォルトはInnoDBで、これは行ロックが基本となるエンジンです。
ちなみに、ちょっと前のMySQLはインストール時にMyISAMの方が有効になっており、MyISAMはトランザクションに非対応なので期待した動作にならない(Rollbackしても値が戻らない)事がありました。

さて、行ロックのつもりでアプリを構築&テストしていたときのこと、「どうもテーブルロックになっているっぽい」との声が開発メンバから上がりました。
しかもそれが発生するのが特定のテーブルでだけという不思議な現象でした。

実はMySQL(InnoDB)は「当該テーブルにプライマリキーもユニークキーもない場合、ロックはテーブルロックとなる」のだったのです。
しかもそれはselect 〜 for update文のように「明示的に目的レコードだけをロックする」目的の場合でもやはりテーブルロックなのです。
文献を読めばわかること、かつ小さなことではありましたが、初めてMySQLを使用した我々には衝撃の事実だったわけです。これからMySQLを使用する方々は「行ロックとしたいテーブルにはプライマリキーまたはユニークキーを設ける」ようにご注意を!

ナレッジセンターでは、詳しく文献を読めばわかるかも知れないことや、使ったことがある人ならすぐわかるような小さなつまづきでも、ご質問いただければ親身に対応いたします。
トライアル質問を無料で受け付けるキャンペーンも実施しておりますので、お気軽にお問い合わせ下さい!




JavaRuby及び周辺のソフトウェアを用いた開発に関して、企業があらゆる悩みごとを相談できるのが、ナレッジセンターの「レスキューサービス」です。

どんな相談でも親身に受け付けますので、レスキューサービスってなに?もっと知りたい!と思った方はお気軽に問い合わせ下さい。

問い合わせ画像リンク

2009-10-31

031 OSC2009 Tokyo/Fall 2日目 本日もブース展示中!

f:id:EC-One:20091031102706j:image

おはようございます、id:EC-OneのAkiです。

本日もOSC2009 Tokyo/Fallにて、ブース展示を行っています。

ナレッジセンターレスキューサービスのチロルチョコを配布すると共に、売れるECを実現するためのネットショップ構築パッケージ「EC-Rider」のご紹介も行っております。

セミナー講演の合間にぜひお立ち寄り下さい。

ナレッジセンターではシステム開発に関する初歩的なご質問から、どこが問題なのかすら分からない入り組んだバグのお悩みまで、幅広くお応えしています。
トライアル質問を無料で受け付けるキャンペーンも実施しておりますのでブースにてお気軽にお声がけ下さい。




JavaRuby及び周辺のOSSを用いた開発に関して、企業があらゆる悩みごとを相談できるのが、ナレッジセンターの「レスキューサービス」です。

どんな相談でも親身に受け付けますので、レスキューサービスってなに?もっと知りたい!と思った方はお気軽に問い合わせ下さい。

問い合わせ画像リンク

2009-10-30

030 OSC2009 Tokyo/Fall デモで学ぶGoogleApps勉強会、満員御礼!

f:id:EC-One:20091112201513j:image

こんばんは、id:EC-OneのAkiです。

本日のOSC2009 Tokyo/Fall 「デモで学ぶGoogleApps勉強会」、なんと満席での開催となりました!

f:id:EC-One:20091030164429j:image

ご参加頂いたみなさま、どうもありがとうございました。

ブース展示は明日も行っておりますので、お時間がありましたらぜひお越し下さい。




JavaRuby及び周辺のOSSを用いた開発に関して、企業があらゆる悩みごとを相談できるのが、ナレッジセンターの「レスキューサービス」です。

どんな相談でも親身に受け付けますので、レスキューサービスってなに?もっと知りたい!と思った方はお気軽に問い合わせ下さい。

問い合わせ画像リンク

029 10/30 OSC2009 Tokyo/Fall デモで学ぶGoogleApps勉強会の資料はこちら

f:id:EC-One:20091016143700j:image

こんにちは、id:EC-OneのAkiです。

今日はOSC2009 Tokyo/Fallに来ています!

午後1時から行われる「デモで学ぶGoogleApps勉強会 〜Google Secure Data Connectorでクラウドと社内システムを連携!〜」の資料を、こちらに置いておきますので、会場で見えにくかった方や、満席で参加できなかった方はぜひご覧下さい。

f:id:EC-One:20090805110551g:image デモで学ぶGoogleApps勉強会のパワーポイント資料

f:id:EC-One:20090805110551g:image Twitterでの感想つぶやきもお待ちしております

TwitterでもECOne_Akiというアカウントで、セミナーの実況中継や展示ブースの紹介をしています。

Twitterキャプチャ

セミナーにお越し頂いた皆さま、展示ブースでチョコを受け取った皆さま、Twitterでの感想つぶやきお待ちしております。

今後もどうぞよろしくお願いいたします!




JavaRuby及び周辺のOSSを用いた開発に関して、企業があらゆる悩みごとを相談できるのが、ナレッジセンターの「レスキューサービス」です。

どんな相談でも親身に受け付けますので、レスキューサービスってなに?もっと知りたい!と思った方はお気軽に問い合わせ下さい。

問い合わせ画像リンク

2009-10-27

028 Rubyビジネス・コモンズが10/31(土)に「Rubyプログラミング基礎」と大規模分散データベース「hBase」の勉強会を開催!

f:id:EC-One:20091016143800j:image

こんにちは、id:EC-OneのAkiです。

今日は快晴!雨が降ったあとなので空気も清々しいですね。

最近はイベントの告知ばかりしているような気がしますが*1、今日は2009年10月31日(土)に福岡で開催される「Rubyビジネス・コモンズ」の大規模分散データベース「hBase」 イケテル・クラウド勉強会をご紹介します。
同日の午前中には、Ruby初心者に向けた「Rubyプログラミング基礎」も併せて開催されるそうです。こちらも楽しみですね。

以下は、Rubyビジネス・コモンズがメンバーに対して送っているメーリングリストからの引用です。(「自分もRBCのメンバーになって、こういった開催案内を受け取りたい」という場合はブログが見つかりませんをご覧ください)

参加者を募集中ですので、お気軽にお申し込みください。

開催告知です。

前回、分散処理システム「Hadoop MapReduce」について学びましたが、
いよいよ今回は、分散データベース「hBase」です。
hBaseは、大規模なデータになってもパフォーマンス劣化がおきにくく、
さらにhBaseを構成する複数のサーバーの一部がダウンしても、全体障害に発生しにくい構造をもっています。
このため、次世代のデータベースとしても大変注目されている技術です。

MapReduceと比較すると、hBaseに関する日本語の情報は少なく、
理解には英文資料を読み込むことが必要でした。

この技術を、RBCでは、いつもの勉強会のように、直感的に理解しやすく学んでいきます。

hBaseプロジェクトでは、JRubyを使うことで、
他の言語では味わえないような幅広い可能性について示唆されています。

今回は、こうしたテクニックを使い、わかりやすく理解しやすい勉強会を実施します。
クラウドを構成する技術のなかで、最も「学ぶべき」技術です。

是非、多くのみなさんが、この機会を次のステップアップに利用されることを期待します。


また今回は、Ruby初心者のために、
午前10:00〜12:00に同じ場所で「Rubyプログラミング基礎」を行います。
興味のある方は、こちらにも是非、いらしてください。



開催概要

1.日時
 2009年10月31日(土)13時〜18時
(「Rubyプログラミング基礎」は、10時〜12時です。)

2.場所
 株式会社イーシー・ワン 九州事業部
 福岡市早良区百道浜2−1−22 SRP8階
 tel. 092-985-0093


3.内容
(1)Key Value Storeについて考えよう
(2)hBase Shellで、使ってみよう
 ーhBase Shellは、hBaseプロジェクトで開発されたツールで、JRubyで開発されています。
 ーこれを利用すると、一行一行コマンドをうち、hBaseの特徴を掴んでいくことができます。
(3)Rubyで使ってみよう
 ー同じ事を、Rubyのコマンドラインツール「irb」を使って試してみます。
(4)Ruby on Railsに組み込もう
 ー学んだ知識を元に、Ruby on Railsで開発したプロジェクトに組み込んで、
  Webアプリケーションでの利用を実現してみます。


4.持ってくるもの
virtualBoxを導入したコンピュータをお持ちください。
virtualBoxの導入は、以下のリンクから行ってください。
http://dlc.sun.com/virtualbox/vboxdownload.html

*勉強会では、virtualBoxの仮想環境を利用して、事前に準備した開発環境を配布します。


5.参加費:無料


6.申し込み方法
以下のサイトから、お申し込みください。
http://form1.fc2.com/form/?id=477306

誰かが先生で、誰かが生徒という訳ではなく、集まった人たちとの交流によって、みんながインスパイアされ、何かをつかみ取ることができる。それがRubyビジネス・コモンズのイケテル勉強会です。

特に午前中の「Rubyプログラミング基礎」は、環境構築でつまづいてしまった人や、何から学びはじめたらいいのか分からない人にオススメの勉強会です。普段は企画をされている方、営業をされている方、学生の方など、色んな分野で「Rubyってなんだろう?」と感じている人に参加してもらえればと思います。




Java、Ruby及び周辺のOSSを用いた開発に関して、企業があらゆる悩みごとを相談できるのが、ナレッジセンターの「レスキューサービス」です。

どんな相談でも親身に受け付けますので、レスキューサービスってなに?もっと知りたい!と思った方はお気軽に問い合わせ下さい。

問い合わせ画像リンク

*1:いや、027 ご注文ありがとうございます。ご一緒にVelocityはいかがですか?も書いていますし、そんなことは...

2009-10-20

027 ご注文ありがとうございます。ご一緒にVelocityはいかがですか?

f:id:EC-One:20091016143600j:image

こんにちは、id:EC-OneのAkiです。

EC-Oneイーシー・ワン)で提供している製品のひとつに、ポータルサイト製品*1があります。この製品は、各種社内システムへのシングルサインオンや、Sun Microsystemsが提供するSun Java System Identity Manager*2と連携したアカウント管理が行えることが特徴です。
この製品では、迅速な画面設計を行うため、Apache Velocityというテンプレートエンジンを多用しており...

うーん、ちょっと硬い書き出しになってしまいましたね。
今日はこのApache Velocityの特徴をご紹介しつつ、「Velocityいいよー」というお話がしたいと思います。

Apache Velocityを、通常の画面作成で作成するJSPと比較した場合、以下の4つが特徴として挙げられます。

f:id:EC-One:20090805110551g:image 1. 記述が圧倒的にかんたん

JSP(というよりStruts2)でbeanの中を表示するために必要な記述は...

 <%@ taglib prefix="s" uri="/struts-tags" %>
 <s:property value="guest.name" />様、ようこそ!

となりますが、これがVelocityなら...

 ${guest.name}様、ようこそ!

あぁ、63文字も短縮できます!*3

f:id:EC-One:20090805110551g:image 2. 拡張もかんたん

次に、JSPで新しいタグを作るとなると...

  • TLDファイルという、複雑な長いXMLファイルを書き
  • doStartTagなどのメソッドなどをオーバーライドした専用クラスを作成
    (Strusなら簡単に記述できますが、TDKファイルは健在です)

という手順が必要ですが、Velocityならもっと簡単に作れます。例えば「今日の日付を出す」タグを作るとすると...

  • こんな感じのクラスを作成して
 public class DateTag {
  public String printDate() { new java.util.Date().toString() }
 }
  • こんな感じのXMLを書く
   <tool>
     <key>datetag</key>
     <scope>application</scope>
     <class>DateTag</class>
   </tool>

たったこれだけです。
使うときは、「$datetag.printDate()」を記述するだけ。簡単!って思いませんか?*4

f:id:EC-One:20090805110551g:image 3. (それなりに)枯れた技術である

"google:Apache Velocity"で検索していただくと分かると思いますが、2004年・2005年ごろの記事が非常に多く引っかかってきます。Velocityはその頃から使われているライブラリで、過去の利用事例も多いですので、バグに悩まされることは少ないと思います。

ちなみに、今も開発が続行されており、OSSでありがちなメンテナンスが止まった... という事態も今のところは大丈夫です。

f:id:EC-One:20090805110551g:image 4. メールテンプレートにも使える

もうひとつ、Velocity のいいところは HTML出力以外にも色んな用途で使えることです。社内でもプロジェクトによってはメール本文のテンプレートや、ソースコードの自動生成で便利に使っています。というより、こっちの用途で使われるほうがメインですね。

今回は、ポータル製品に絡んでApache Velocityを取り上げましたが、「Mayaa」や「FreeMarker」など、他にもたくさんの素晴らしいテンプレートエンジンが世の中に存在します。

「これまで、JSPしか使ったことないよー」という方も意外と多いらしいです。これを機にApache Velocityを使ってみてはいかがでしょうか?

今回はよく知られた技術を紹介しましたが、このような技術選定においても、レスキューサービスはお役に立ちます。「○○という処理を実現するには、どんな技術を使えばいいのだろう?」というご相談には、各種事例を交えて具体的な技術をご紹介することが可能です。お困りの際は、ぜひナレッジセンターにご相談ください。





Java、Ruby及び周辺のOSSを用いた開発に関して、企業があらゆる悩みごとを相談できるのが、ナレッジセンターの「レスキューサービス」です。

どんな相談でも親身に受け付けますので、レスキューサービスってなに?もっと知りたい!と思った方はお気軽に問い合わせ下さい。

問い合わせ画像リンク

*1:導入事例はこちら
http://www.ec-one.com/product/example_portal.html

*2:社内や学校内に分散しているシステム全体でIDの管理を行う製品
http://www.ec-one.com/product/id.html

*3:taglibなんて書くのは最初だけでしょ?というつっこみは心の中にしまって下さい。あとEL式(Expression Language)のことも...

*4:タグなんて、普通1から作らないでしょ?というつっこみも心の中にしまって下さい。これも、EL式で簡単にできますか...