スタッフブログ

  • 最新配信
  • RSS

誰でも簡単にWebアプリが試せるWARPの紹介

 : ツール 2008/11/26 22:14

Blogger's Avatar

haltです.

Webアプリケーションは,ブラウザさえあれば,専用のソフトをインストールしなくても,パソコンや様々な種類のOSで利用できます.

一方で,ブラウザとは別にWebサーバが必要になり,これを用意するのは初心者には困難です.興味のあるWebアプリケーションをみつけても,使えるようになるには,自分でサーバを用意してセットアップしてインストールする必要があるので,普通の人にはコストが大きすぎます.

そういった問題を解決するプロジェクトがWARPです.

http://warp.ws/

Windowsを利用している人なら,上記サイトからファイルをダウンロードして,解凍.Server_start.batをダブルクリックするだけで,自分のパソコンの中でWebアプリケーションを動かす事ができます.

こういった「気軽に試せる」という内容のソフトは昔からあったのですが,これまでのものは,インストール作業が発生するので面倒でした.また「10分くらい使ってみて,ダメだったら使わない.」ような人の場合,そもそもインストールとアンインストールで10分以上かかるので,手を出す気になれませんでした.

WARPは,インストール作業なしでダブルクリックだけで即座に試す事ができます.アンインストールもフォルダを削除するだけです.

これまで「XOOPSやその他のWebアプリを試してみたいが,わざわざインストールするのは面倒」と思っていた人は是非試してみてください.

jQueryのはじめの一歩

naoto : ツール 2008/11/26 9:00

Blogger's Avatar

なおとです。

今日はJavascriptを楽に記述できる頼もしいライブラリ「jQuery」を使って、よくある showHide() アクションを実装してみます。 showHideとはつまり、ボタンを押すことによって、画面の中の一部分が開いたり閉じたりする動きのことです。

ちょっと長いですが、全体を以下に示します。

...続きを読む

CubeCakeを使う場合に注意する点 その1

 : XOOPS » 総合的な情報 2008/11/21 14:26

Blogger's Avatar

satoです。

弊社では、CubeCakeという、CakePHPでXOOPS開発ができるモジュールを配布しております。
CakePHPの手軽さをモジュール開発にそのまま利用できる便利なものではあるのですが、いくつか癖がありますので、そのあたりを紹介したいと思います。
(その1 と書いてありますが、その2があるかは未定です)

・ユーザ認証
CakePHP側のACLは使うのが難しいと思います。
手軽なのは、controllers/app_controller.phpに
     protected function getUser()
     {
         global $xoopsUser;

         return $xoopsUser;
     }

のようなのを用意しておくと、手軽に利用できると思います。

同様に、app_controller.phpやapp_model.phpに、XOOPSでよく使うものを組み込んでおくだけでかなり楽になります。(xoops_redirectとか)

・シェルから叩く場合
CakePHPには、vendors/shellsに、Shellクラスを継承したクラスを置くことで、シェルから叩くプログラム(バッチ処理など)を簡単に作れる機構が存在します。
しかし、これを普通にCakePHPの方法で実行すると、CakePHPだけで完結しようとしてしまうため、XOOPSの各種設定が読み込まれずにいろいろ問題が起きます。(DBの情報を取得できない等)

この場合、以下のコードをvendors/shellsに置くスクリプトの先頭に記述すると綺麗(?)にXOOPSを初期化してくれます。
(もう少しスマートな書き方にできると思うので、整備して後日本体に反映したいと思います)
if (!isset($_SERVER['REMOTE_ADDR'])) {
    $_SERVER['REMOTE_ADDR'] = '127.0.0.1';
}
if (!isset($_SERVER['REQUEST_METHOD'])) {
    $_SERVER['REQUEST_METHOD'] = 'GET';
}

$xoopsOption = array();
$xoopsOption['nocommon'] = true;
require_once(APP.'../../mainfile.php');
if (!isset($_SERVER['REQUEST_URI'])) {
    $_SERVER['REQUEST_URI'] = XOOPS_URL.'/modules/cubecake/';
}
require_once XOOPS_ROOT_PATH . "/include/functions.php";
require_once XOOPS_ROOT_PATH . "/class/xoopsobject.php";
$root=&XCube_Root::getSingleton();
if(!is_object($root->mController)) exit();

$root->mController->_setupFilterChain();
$root->mController->_processFilter();
$root->mController->_setupErrorHandler();
$root->mController->_setupEnvironment();
$root->mController->_setupLogger();
$root->mController->_setupDB();
$root->mController->_setupLanguage();
$root->mController->_setupTextFilter();
$root->mController->_setupConfig();
$root->mController->_setupDebugger();
$root->mController->_processPreBlockFilter();
//$root->mController->_setupSession();
//$root->mController->_setupUser();
$root->mController->setupModuleContext();
$root->mController->_processModule();
$root->mController->_processPostFilter();


---

紹介できる内容が用意できたらまた紹介したいと思います。
まだいくつか問題がありますが、便利なので是非試してみてください。

XOOPSモジュールを選ぶときの3つのポイント+1

Ryuji : XOOPS » モジュール 2008/11/20 9:00

Blogger's Avatar

XOOPSによるサイト構築のお手伝いをこれまでにいくつもやらせてもらいました。
XOOPSでサイト構築する際につきものなのが、どのモジュールを利用するかという、モジュール選びです。

私なりに、こんな基準で選んでるというのを今日は書いてみたいと思います。

■1.開発された方が、セキュリティ面に気をつかっているか?

PHPプログラムは、セキュリティについての知識無しでつくると、簡単にセキュリティホールだらけのプログラムができてしまいます。
XOOPSで利用するモジュールにセキュリティホールがあると、攻撃されたときに、被害はそのモジュールだけにとどまらず、XOOPSサイト全体、サーバ全体にまで被害がひろがることがあります。

だから、開発された方自身が、セキュリティ面に気をつかっているかどうかも、モジュールを選択するときに評価するようにしています。

これはXOOPSコミュニティを観察するとか、モジュールの更新履歴にセキュリティホール修正についての記述がちゃんと記載されてるかなどで判断出来ると思います。

■2.長期間更新がとまっているようなことはないか?

XOOPSは、PHPスクリプトですが、PHPはバージョンアップしたときに、下位バージョンとの互換性のない変更がされることがちょくちょくあります。

長期間更新がとまっているモジュールだと、最近のPHP環境で動かそうとしたときに、なんらかの不具合が発生することがあります。ここでハマらないように、数年更新がとまってるようなモジュールは避けるようにしています。

■3.良く使われているモジュールか?
多くのサイトで使われているモジュールほど、早く不具合発見→修正のサイクルが早くまわりますので、使ってみたときに何かのバグではまってしまうということが少なくなります。

また、何かわからないことがでてきても、利用者が多いモジュールの場合、検索してみると解決方法が見つかることが多くて助かります。

これも各XOOPSコミュニティサイトで、使ってみようかなと思うモジュール名の投稿を検索してみると、利用者が多いか少ないかある程度判断できるかと思います。


最後に。。。
RYUSでは、既存のモジュールをカスタマイズすることも多いのですが、カスタマイズをするときは上記3点にくわえて

■4.多機能過ぎないか?

というのも考慮するようにしています。

多機能なモジュールは、プログラムを改造しなくても、かなり幅広いニーズに応えてくれるので非常に便利です。

しかし、どうしてもプログラム改造が必要になったときは、多機能ゆえに、ほんのちょっとだけ改造したいだけなのに、あちこちに手をいれるはめになりやすいので、避けるようにしています。

これ、XOOPSモジュールのハック(改造のことですよ)にチャレンジしたことがある方なら、よくわかると思います(^^;

多機能なモジュールは、モジュールの管理画面で設定できることが非常に多かったり、モジュールのファイルサイズをみたときに、他のモジュールと比較してあきらかにファイルサイズが大きかったりするので、このあたりをみてカスタマイズするかどうか判断すると良いかと思います。

個人ブログ始めました

mik : ビジネス 2008/11/19 23:45

Blogger's Avatar

この年になってくるとどうやら女性でプログラマだということは珍しい部類にはいるらしく、珍しい=目立つのではないかと思って営業に役立つように個人ブログを始めてみようと思いました。

とはいえ、まだ内容が全然でして、プロフィールを書こうと思ってるのがまだだったりブログ件数も今のところ3件です。

新しく刷った名刺にブログのことを書いてしまったことを思いだしてWEBでも一応公開〜ということにしました。

個人ブログではたまに書き留めておきたいメモ的なプログラムのこととか、昔のプログラマさんのことを思い出して書いてみたりとかあとはとにかく

営業に役立ちそうな何か!

を書いていきたいと思っています。

今見てもほぼ何もありませんがよろしければちょっと後に見ていただくと少しはコンテンツが増えるかもしれません。

プログラマうさぎブログ
http://umo.sakura.ne.jp/

XOOPS Cubeでどこまでブログっぽくできるかやってみます。

テーマは女性らしいものをと思って

XOOPS DESIGN lab.さんのピンク系のものを使いました
http://xoops-page.com/a/

Favicon!

 : 技術全般 2008/11/18 19:30

Blogger's Avatar

こんばんはargonです。
今回はfavicon.ico(以下favicon)について書こうと思います。
Favicon『ウィキペディア(Wikipedia)』

最近のブラウザですとFirefoxやOperaはもちろん、Internet Explorerでも
バージョン7からタブ機能が実装され、それに伴ったタブのサイト名の左側に
faviconが表示されるようになりました。
ウェブサイトによっては結構、有名なサイトでもこのfaviconを設定してない
ところもあったりします。自分としてはタブブラウザ全盛の今faviconは
結構、重要な要素なのではないかと思っています。
faviconをテーマにしたウェブサイトもあったります。
Favicon Japan!! -16×16の小宇宙ファビコン-

XOOPSですと標準でfaviconがパッケージに含まれているので、そのままで
何も変更しないとサイトにXOOPSのfaviconが表示されるようになります。
例えばGame*SparkなどがXOOPS2のfaviconが表示されるのでXOOPSを使って運営
しているのが一目でわかります。

favicon作り方は専用のアプリケーションを使う方法や、オンラインで
作成できるサイトを使う方法などがあります。
自分はPhotoShopからicoファイルを出力できるプラグインを使って
PhotoShopで16px四方の画像を作成してから、それを出力しています。
やっぱり普段使い慣れたアプリケーションで作成するのが楽ですので・・・
Telegraphics - Free plugins for Photoshop & Illustrator...and other software

Outpuz

 : ツール 2008/11/17 22:21

Blogger's Avatar

haltです.

最近OutputzというFirefoxのアドオンをインストールしました.

このアドオンをインストールすると,ブラウザから送信した文章の量と時間をカウントし,インストールした人がどのくらいの時間にどれくらいの文章をブラウザで書いたかがわかるようになります.

私の場合は21時ごろが一番文章をかいているようです.



ブラウザ以外のツールも使うので,当然これだけでは仕事をやっているかどうかは判別できませんが,
Outputzをインストールして自分の行動について調べてみるとおもしろい事がわかるかもしれません.

懐古的な読書傾向

naoto : その他 2008/11/14 19:20

Blogger's Avatar

こんばんわ。なおとです。今日は自転車通勤にトライしました。

ところで、私は今「インターネットを256倍使うための本」という本を読んでいる途中なのですが、なかなか興味深いです。

  • インターネットを256倍使うための本 (Vol.1)
  • インターネット ホームページデザイン―インターネットエンジェルたちのためのWWW&HTML
  • Webの創成 ― World Wide Webはいかにして生まれどこに向かうのか
  • 教科書には載らないニッポンのインターネットの歴史教科書

ここに挙げたのは、私が読んで感銘をうけた本のタイトルです。共通しているのは、ネット黎明期の空気や秘話を伝えている、歴史書のようなところです。

はじめから歴史を書くつもりの本だけでなく、当時はそのつもりでなくても、今読むと懐かしく、当時の雰囲気を伝えているというものもあります。

文系というか、社会学的な視線でこのインターネット界隈の技術史やできごとを眺めて、そこから普遍的なものを掴んで今に生かしていきたいと思っています。

Selenium RCでテストを楽にする

 : 技術全般 2008/11/13 13:34

Blogger's Avatar

satoです。

WebアプリケーションのテストといえばSeleniumが有名です。
Seleniumは便利なのですが、HTMLでテストケースを書くのは面倒です。
通常はSelenium IDEを使うと思いますが、そもそもプログラマーはGUIを叩くのが面倒というケースが多いです。

Seleniumのプロダクトの中にSelenium RCというのがあります。
RCはRemote Controlの略で、その名の通りSeleniumをリモートから操作することができます。
操作に使う言語はJava/Perl/PHP/Ruby等多種多様に対応しているので、自分の好きな言語でテストを書くことができます。
これにより、例えばGUIの無い環境から、Selenium RCのサーバを動かしているPCでアプリケーションのテストを行うことが可能になります。
Selenium IDEの出力も、HTMLだけではなく各言語の形式で出力することができるようになっているので、ベースはSelenium IDEで作って、細かい調整は直接編集する、ということもできます。

サーバ側の使い方は簡単で、ダウンロードしたファイルの中の、selenium-server-[バージョン名]/selenium-server.jarを実行する(java -jar [ファイル名])だけです。当然JREが必要になります。
Windows Vistaの場合は管理者権限で動かす必要があります。

クライアント側は、PHPで動かす場合はPHPUnitが必要です。
pear channel-discover pear.phpunit.de
pear install phpunit/PHPUnit

さらに、Testing_Seleniumが必要なので、
pear install Testing_Selenium-beta

でインストールします。

実際には以下のようなコードで動かすことになります。(Selenium RCに付属のサンプルを多少変更したものです)
Firefoxでは動かなかったのでIE(7)にしています。
<?php

require_once 'Testing/Selenium.php';
require_once 'PHPUnit/Framework/TestCase.php';

class GoogleTest extends PHPUnit_Framework_TestCase
{
    private $selenium;

    public function setUp()
    {
        $this->selenium = new Testing_Selenium("*iexplore", "http://www.google.com", "192.168.1.1"); // 192.168.1.1はSelenium RCサーバのIPアドレス。同じPC上で行う場合は省略可
        $this->selenium->start();
    }

    public function tearDown()
    {
        $this->selenium->stop();
    }

    public function testGoogle()
    {
        $this->selenium->open("/webhp");
        $this->selenium->type("q", "hello world");
        $this->selenium->click("btnG");
        $this->selenium->waitForPageToLoad(10000);
        $this->assertRegExp("/Google/", $this->selenium->getTitle());
    }

}

これをphpunitで動かすとサーバ上で動作すると思います。
詳しくはドキュメントを参照してください。

テストケースを用意するのも簡単ではないので、できるだけ作りやすい方法で作業できるようにしておくといいと思います。
また個人的には、Selenium RCを使うと、Selenium本体のファイルを置いておかなくてもいい(恐らくjarに全部含まれている)のが好きです。

XOOPS Cube ワールドは、ビジネス的要求に対して自由です

Ryuji : XOOPS » 総合的な情報 2008/11/12 22:30

Blogger's Avatar

ときおり、リアルで話を聞いたりすると XOOPS Cube に対して、ビジネス的にあーしたらいいとか、こーしたらいいなんて意見をお聞きすることがあるのですが、XOOPS Cube でモジュールを作成したりテーマを作成して公開されてて居る方たちの多くは、ホビー、fun! の気持ちで楽しいからやっているのであって、ビジネス的な意義を見いだしてやっているわけではありません。

XOOPSは、楽しんで作ったものが公開されて、それが結果的にビジネスでつくられた CMS (ライセンス料だけでうん百万とかってCMSですね)にも対抗できるソフトウェアになっただけなんですね。

これって、面白いとおもいませんか?

XOOPSは、もともとモジュールやテーマデザインをつくるうえで、「必ずこうしなきゃいけない」とか「こういうやり方でないとXOOPSの流儀にあわない」というのが無い、比較的自由になんでもやれるオープンソースCMSだったので、多くの人が気軽に「作る人」になれたオープンソースでした。

この「自由になんでもやれる」ことが、XOOPS普及の原動力にもなったと思ってます。

XOOPSから派生した、XOOPS Cube プロジェクトでは、この「自由」「楽しむ」という部分がXOOPSプロジェクトよりも強くなってます。

自由に楽しみながらつくっているソフトウェアなので、ビジネス的な視点でみたときに、「あー!なんで、モジュールごとに操作感が微妙に違うんじゃ!」とか「こうしてくれたら、もっとお客さんにすすめやすいのに」とか思うこともあると思います。

でも、ビジネス上でそういうところが気になるなら、ビジネスでXOOPSに関わる会社(RYUSもそうですし、XOOPSを利用されてる企業さんも)にがんばってもらって、XOOPS Cubeの世界は、今のまま自由であってほしいと思ってます。

そのために、XOOPS Cube に対するビジネス的な要求は、RYUSを含めXOOPSをビジネスに利用しているところが受け止めるような形にしていきたいなっておもってます。

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

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

Copyright(c) 2012 RYUS.All Rights Reserved.