スタッフブログ

  • 最新配信
  • RSS

openpearの旅 第4回:Services_Hanako

 : 技術全般 2009/3/25 22:40

Blogger's Avatar

最初は,紹介するパッケージがなくなってしまうかと心配していたのですが,openpear.orgのパッケージ数は順調に増えており,当分の間はネタに困る事はなさそうです.

さて,この季節花粉症に悩む人達は多いのではないでしょうか.私はたまに目がかゆくなる程度なので,花粉症ではないと自分に言い聞かせていますが,人によっては外出する事もできないくらいひどくなるそうですね.

今日紹介するのは,花粉の飛散量を調べてくれる,Services_Hanakoというパッケージです.
おなじみpearコマンドでインストールしてみましょう.

sudo pear install -a openpear/Services_Hanako

Services_Hanakoを動かすにはPEARのライブラリである,HTTP_Request2が必要です.pearコマンドに-aをつける事で,自動的にインストールする事ができますが,pearコマンドを使わず手動でインストールした場合は,HTTP_Request2と,HTTP_Request2が依存しているNet_URL2も一緒にダウンロードしてください.

インストールが終わったら,以下のように書きます.

<?php
require_once "Services/Hanako.php";

$hanako = new Services_Hanako('03', '51300200');
var_dump($hanako->now());

これを実行すると,以下のような配列の値が表示されます.これが花粉に関する情報です.

array(7) {
  ["hour"]=>
  string(5) "21時"
  ["pollen"]=>
  string(1) "0"
  ["wd"]=>
  string(9) "北北西"
  ["ws"]=>
  string(1) "4"
  ["temp"]=>
  string(3) "6.3"
  ["prec"]=>
  string(1) "1"
  ["prec_bool"]=>
  string(6) "無し"
}

hourが取得時間,pollenは飛散数です.1立法メートルあたりの花粉の飛散量になります.wdは風向き,wsは風速,tempは気温,precは降水量になります.

コンストラクタの引数に,エリアコードと,観測所コードを入力する事で,指定の観測所のデータを取得する形になっています.上記データは,東京都の日本医科大学付属病院にある観測所からのデータです.
以下は関東の観測所の一覧です.

県名:観測所の名称 - エリアコード - 観測所コード

という形式で並べてあります.いろいろ値を変えて試してみるとおもしろいのではないでしょうか.

[blockquote]
茨城県:水戸石川一般環境大気測定局 - 03 - 50810100
茨城県:独立行政法人国立環境研究所 - 03 - 50810200
茨城県:笠間市役所 - 03 - 50820100
栃木県:独協医科大学 - 03 - 50900100
栃木県:宇都宮市中央生涯学習センター - 03 - 50910100
栃木県:栃木県林業センター - 03 - 50920100
栃木県:日光特別地域気象観測所 - 03 - 50920200
群馬県:群馬県衛生環境研究所 - 03 - 51010100
群馬県:群馬県林木育種場 - 03 - 51020100
埼玉県:埼玉医科大学 - 03 - 51100100
埼玉県:さいたま市役所 - 03 - 51110200
埼玉県:飯能市役所 - 03 - 51120300
埼玉県:寄居町役場 - 03 - 51120400
千葉県:千葉大学 - 03 - 51200100
千葉県:日本医科大学付属千葉北総病院 - 03 - 51200200
千葉県:東邦大学付属病院 - 03 - 51200300
千葉県:東洋眼科医院 - 03 - 51200400
千葉県:君津中央病院 - 03 - 51200500
千葉県:亀田総合病院 - 03 - 51200600
千葉県:東邦大学 - 03 - 51210100
千葉県:千葉県環境研究センター - 03 - 51210200
千葉県:千葉県森林研究センター - 03 - 51220100
千葉県:君津市糠田測定局 - 03 - 51220200
東京都:日本医科大学付属多摩永山病院 - 03 - 51300100
東京都:日本医科大学付属病院 - 03 - 51300200
東京都:東京都多摩小平保健所 - 03 - 51310200
東京都:独立行政法人森林総研多摩森林科学園 - 03 - 51320100
神奈川県:国立相模原病院 - 03 - 51400100
神奈川県:日本医科大学武蔵小杉病院 - 03 - 51400200
神奈川県:神奈川県庁分庁舎 - 03 - 51410100
神奈川県:川崎市衛生研究所 - 03 - 51410200
神奈川県:神奈川県自然環境保全センター - 03 - 51420100
[/blockquote]

このごろ気になること

naoto : その他 2009/3/25 19:30

Blogger's Avatar

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

このごろ一番気にしていることは、健康についてです。 キーワードはいわゆる「メタボ」と「ストレス解消法」です。

食事に気をつかうようにしています。

てんぷらやコロッケのような揚げ物、ハンバーグは避けます。 おいしいけど高カロリーな食事は、計画的に月1回とかにするようにしています。

甘いものを止められたらいいのですが、減らしてはいますが、負けています。

お昼は外食の割合が多いのですが、たいてい「ごはん半分でお願いします」と言って、炭水化物も適量を心がけます。 いっぽうで野菜は多く摂りたいのですが、このごろまったく不足しています。

飲み物は基本的に無糖のお茶です。 それでもたまに野菜ジュースや栄養ドリンク、気になる新発売の飲料も選びます。

自宅では体脂肪計付きの体重計を使っているのですが、ちょっと前に乾電池が切れて使えなくなっていました。 それまでほぼ毎日計測していたのですが、それがおろそかになっていました。 先日乾電池を交換して量ってみたらびっくり、いやなんとなく気づいてはいたのですが、結構増えていました。

そうなると運動をするという話になるのですが、休みの日には寝て過ごすことが多く、思うように体をつかうこともままならず……。

ほかには毎日の通勤時間に運動を意識しています。 だらだらと歩かずに、きびきびとします。 そして帰りは、歩いています。

会社の近く、昌平橋から後楽園駅までだと約2.4km、茗荷谷駅まで行くと約4km、池袋までだと約7kmです。 池袋までは稀ですが、たいてい茗荷谷まで、1時間半かけて歩いています。

ただどうもこの程度歩いても、運動としてはそれほど効果が上がっていないのかなと思います。 それでも、ストレス解消のためにはなくてはならない時間となっています。

また途中、東京ドームシティ近辺、ラクーアなどを通り、買い物などするのが楽しみです。

本郷あたりを通ってみたり、飯田橋や神楽坂を経由したり、いろいろなコースを試しています。 道すがらの景色、とはいっても夜の風景ですが、そういったものにも趣があって楽しいですよ。

Zend_ProgressBarでプログレスバー

 : 技術全般 2009/3/23 11:02

Blogger's Avatar

satoです。

重い処理の進捗を視覚的に表示したい場合、例えばXOOPS Cubeのインストーラのように、進捗を随時表示するようなケースがあります。
Cubeのインストーラのように、文字をそのまま流すだけであれば、出力を随時flush()してあげればよいのですが、例えばプログレスバーのように視覚的に表示したい場合は何かと面倒だったりします。

Zend FrameworkにはZend_ProgressBarという、そのものを行うためのライブラリがあります。
今回はこれとjQuery UIを使ってプログレスバーを実現してみたいと思います。

PHP側(progress.php)は

<?php

require_once('Zend/ProgressBar.php');
require_once('Zend/ProgressBar/Adapter/JsPush.php');

// 処理だと思われる何か
$items = array('データ新規作成', 'データ更新', 'データ削除', '後処理');

$adapter = new Zend_ProgressBar_Adapter_JsPush(array('updateMethodName' => 'Zend_ProgressBar_Update', 'finishMethodName' => 'Zend_ProgressBar_Finish'));
$progressBar = new Zend_ProgressBar($adapter, 0, count($items));

foreach($items as $key=>$item) {
// 処理を行っていると思われる部分
$progressBar->update($key + 1); // 進捗の度合いを指定する
sleep(2); // テスト用
}

$progressBar->finish();


HTML側は

<html>
<head>
<script type="text/JavaScript" src="js/jquery-1.3.2.min.js"></script>
<script type="text/JavaScript" src="js/jquery-ui-1.7.1.custom.min.js"></script>
<link type="text/css" href="css/smoothness/jquery-ui-1.7.1.custom.css" rel="stylesheet" />

<script type="text/JavaScript">
<!--
$(function() {
$('#progressbar').progressbar({
value: 0
});
});

function Zend_ProgressBar_Update(data)
{
$('#progressbar').progressbar('value', data.percent);
}
function Zend_ProgressBar_Finish()
{
alert('更新が完了しました!');
}
-->
</script>

</head>
<body>

<div id="progressbar"></div>

<iframe src="progress.php" style="left: -1000px; top: -1000px: width: 1px; height: 1px; position: absolute;"></iframe>

</body>
</html>


このようになります。
これだけでプログレスバーが実装できます。

原理としては、iframeでPHP側を読み込むと、PHP側が随時進捗のJavaScriptコードを吐き出すので、それに応じてプログレスバーを動かすことによって、進捗状況を表示しています。

時間のかかる処理をWeb上から行うようなケースには是非使用してみてください。

ゲストブロガーによる北海道のススメ

 : その他 2009/3/19 20:15

Blogger's Avatar

花粉症でマスクが手放せないgusagiです
今日は、会社見学に来ているriafさんにお願いして、ゲストブロガーとなって頂きました。
ということで、ここからはriafさんによる「北海道のススメ」を楽しんで下さい!

北海道のススメ


riaf(http://riaf.jp)です!北海道から1週間くらい就職活動(いちおう!)で東京に出てきてます。来週の月曜日までいるので、飲みでも何でも誘ってください。

** 北海道には花粉症がない!
ブログ当番を僕に丸投げしたgusagiさんは今マスクをつけています。花粉症ですって。
僕は花粉症の辛さをしりません。なぜなら北海道には花粉症が無いんです。(厳密には花粉症の人も居るらしいですが)
なので、花粉症に苦しんでいる人はぜひ北海道に来てください!gusagiさんも北海道に引っ越しませんか!

** 北海道には梅雨がない!
じめじめしてイヤーなイメージがある梅雨も、北海道にはありません。RYUSも北海道に移転するべきですね。

** 北海道はひろい!
僕の実家は北海道の釧路町という、北海道の東側にある街にあります。そこはだいたい札幌と300km以上離れている場所で、東京から仙台くらいの距離があります。
そのために、恐ろしい看板もたくさんあったりしますよ!
http://blog.livedoor.jp/dqnplus/archives/742659.html

** OSC北海道あるよ
6/20(土) に札幌で、OSC北海道が開催されます。
北海道のOSCは他県のOSCとはひと味ちがいます(らしいです。僕は北海道しか知りません)
LOCAL Developer Day という、イベントも併催という形で開催されるので、こちらも要チェックです!


というわけで、みなさんぜひ北海道に遊びにきてくださいね!
そして、北海道に来た際にはぜひぜひ連絡をください!


riafさん、ありがとうございました!
自分も、北海道には機会があれば行ってみたいと思っているので、北海道のイベントをターゲットに計画を立ててみようと思います

XOOPSお手軽(?)プリントアウト対応

Ryuji : XOOPS » TIPS小ネタ 2009/3/18 22:07

Blogger's Avatar

XOOPSのニュースモジュールには印刷用ページを表示する機能がありますが、多くのモジュールは印刷用ページというのをもっていません。

そんな印刷用ページをもっていないモジュールでも印刷用に余計なブロックやヘッダを排除してプリントアウトできるように、ちょっとテーマをいじる方法をご紹介します。



こちらは、RYUSの社内情報共有用のXOOPSサイトです。
今このxpWikiのページを印刷すると次のように印刷されるようにしています。



利用したのは、印刷用のスタイルシートを読み込む仕組みです。

theme.htmlのhead部分に次のような行を追加しています。
<link rel="stylesheet" type="text/css" media="print"
 href="<{$xoops_url}>/themes/trump_color3/print.css" />
media="print"としておくと印刷時に指定されたスタイルシートファイルが読み込まれるようになります。
ここで読み込まれるprint.cssには、次のようにヘッダ、フッタやブロックを非表示にするように指定しています。
div#header{
    display:none;
}
#leftcolumn{
    display:none;
}
#centerBlock{
    display:none;
}
#rightcolumn{
    display:none;
}
#footerbar{
    display:none;
}
各ブロックにどんなidが割り振られているかは、テーマによって違いますので、利用されるテーマにあわせてくださいね。

で、さらにwpWikiもそうですが、モジュール内にも新規登録や編集のためのリンクなどがありますので、それらも印刷時には非表示になるように追記します。
/*xpWiki*/
.footer{
    display:none;
}
.counter{
        display:none;
}
.toolbar{
        display:none;
}
.navigator_page{
        display:none;
}

ここもモジュールに合わせて指定しましょう。
非表示にしたい箇所にid指定もclass指定も無い場合がありますが、その場合はそのモジュールのテンプレートを修正して対応します。

テンプレートまで手を入れだすと利用するモジュールが多い場合は結構大変かもしれませんが、テーマへの修正だけでもしておくと、ちょっと印刷して見たいなぁというときには重宝すると思います。

d3blogを使って個別対応窓口?ユーザーサポートページを作る

mik : XOOPS » モジュール 2009/3/17 17:36

Blogger's Avatar

なんか追い詰められると思ってもない力が出るときがあるなぁ、と感じることが多い今日この頃です。

プログラム的にはお客様に全く新しい機能をリクエストされて、実は既存のモジュールをちょっといじるだけで実現できたり、ということがありました。

そうこうするうちに、「割とみんなが知っている普通のモジュールや機能を使って、全く別のことに利用できる!」ということを発見しました。

今日発行のメルマガにも書いたのですが、XOOPSに備わっているサイト閉鎖機能を使って違うことに利用してみたりもできます。

例えば会社なら社員だけがログインできるためのサイトを「閉鎖機能」を使ってログイン画面だけ出しておくとか。

SNSや会員制サイトを作りたいと思ったときにmixiみたいなログイン画面(画像があって、ログイン部分だけがあって)を作ることも閉鎖中のhtmlをちょっといじるだけでできます。

まだ考えているだけですが、ダウンロード用のモジュール(d3downloads)を使ってファイルの受渡専用のビジネスっぽい使い方もできそうですし、d3blogを使ってmixiの様に公開範囲を限定した日記を書くということもできそうです。

ハックせずに機能や設定だけでできるところもありますが、あとちょっとだけハックしてみるだけでまるでそのものの機能が作れそうです。

既にある機能とほんのちょっと機能をプラスして、既存のモジュールの面白い使い方を発見して、ご報告したいと思ってます。

目薬

 : その他 2009/3/16 13:00

Blogger's Avatar

こんにちは。

「デザイナーのUbuntu体験記」の続きを書かないといけないと思うのですが、なかなかネタの仕込みができないargonです。

ということで、今回は愛用の目薬について書いてみようと思います。

目が疲れやすい自分はだいたい、持ち歩きように鞄に1つ、予備などに会社に1つ、そしてベッドサイドに寝る前に差す用に1つ目薬を用意してあります。
持ち歩き用と会社置き用は、それほどこだわりもなく薬局でパッケージを観て気に入ったものを買っているのですが、寝る前に差す目薬は決めていてロート製薬の「養潤水」です。

ロート養潤水 | 解眼新書シリーズ - ロート製薬株式会社

他の目薬と比較したわけではないのですが、「ロート養潤水は、そんな休眼時間の修復メカニズムに着目した目薬です」と、うたっているように就寝前に差す目薬としては最適なのではと思って使っています。
目が疲れやすい目が疲れているという方は、一度試してみてはいかがでしょうか?

openpearの旅 第3回:Image_Colorful

 : 技術全般 2009/3/13 17:30

Blogger's Avatar

今日はオシャレな画像が簡単に作れるImage_Colorfulを紹介します.
どんな風にオシャレかというと,以下のような感じです.



サイトには明記されていませんが,動作にはGDが必要なようです.インストールは,いつも通り

sudo pear install openpear/Image_Colorful

でいけます.openpearをはじめて利用する人はpear channel-discover openpear.orgしてください.

インストールしたら,以下のコードを書くだけです.

require_once 'Image/Image_Colorful.php';

$image = new Image_Colorful(400,100,175,1);
$image->addColors(150,150,150);

$font_path = '/usr/share/fonts/truetype/kochi/kochi-gothic.ttf';

$image->addTexts(
    '株式会社RYUS',
    $font_path,
    '30',
    '10',
    '10',
    array(0,0,0),
    'CENTER'
);

$image->getGenerateImage('png');

$font_pathには,フォントの場所を指定してください.WindowsかLinuxでフォントの場所が違うので
,自分の環境にあわせて変更する必要があります.

リロードするとわかるのですが,背景のデザインは毎回変わるので,自分だけのユニークな画像を作
る事ができます.Image_ColorfulでおしゃれなWeb素材作成してみませんか?

FCKEditor 2系 プラグイン作成ガイド入門 日本語版

naoto : ツール 2009/3/12 20:21

Blogger's Avatar

こんにちは。なおとです。さっそく本題に入ります。

配布元が公開している以下のドキュメントが、情報源になります。

Plug-ins http://docs.fckeditor.net/FCKeditor_2.x/Developers_Guide/Customization/Plug-ins

これを参考にしつつ、私の体験談を交えながらサラッと書いておこうかと思います。

FCKEditorは「FCKEditor for XOOPS」を利用することを前提にします。 ただし基本的にFCKEditorならば、他のウェブアプリの場合でもほとんど変わらないはずです。

プラグインを書く

Findreplaceプラグインを書く場合、編集するファイルは、以下のようなファイル名になります。

  • html/common/fckeditor/editor/plugins/findreplace/fckplugin.js
  • html/common/fckeditor/editor/plugins/findreplace/lang/en.js
  • html/common/fckeditor/editor/plugins/findreplace/lang/ja.js
  • html/common/fckeditor/editor/plugins/findreplace/fck_findreplace.html
  • html/common/fckeditor/editor/plugins/findreplace/findreplace.gif

fckplugin.js

プラグインとして動作するのに必須なのは、このファイルだけです。 ファイル名は固定です。

具体的な実装は外部において、それを読み込むようなことも可能です。

私もまだ肝心の中身をあまり把握できていないのですが、標準添付のPlaceholderプラグインをベースに手を入れていく方法で学習しました。

lang/en.js

言語ファイル(英語用)です。 なくても構わないかもしれません。

lang/ja.js

言語ファイル(日本語用)です。 サイトのページ(html)のエンコーディング指定によらず、UTF-8にするとよいかと思います。 (いろいろやりようはあるかもしれません。)

//パネルのアイコンのツールチップ表示に使われます
FCKLang.FindreplaceBtn      = '検索/置換';

//ダイアログの表題と、同ウインドウのタイトル
FCKLang.FindreplaceDlgTitle = '検索および置換をします';

fck_findreplace.html

ダイアログのhtmlファイルです。文字コードはUTF-8ということになっています。 しかし具体的なメッセージは言語ファイルを使うことにして、こちらには日本語は使わず、US-ASCII相当の文字のみを使うとよいかと思います。

findreplace.gif

パネルに配置するアイコン(ボタン)の画像です。 パネルに配置しないのであれば不要です。 ファイル名は任意です。

大きさはタテヨコそれぞれ16ピクセル、背景は透過にしておくとよいでしょう。

プラグインの動作設定

プラグインが出来上がったとして、設定ファイルを編集します。

  • html/common/fckeditor/fckconfig.js

プラグインディレクトリの指定

fckconfig.jsに既に書いてありました。 これはあえて変更する必要はないでしょう。

FCKConfig.PluginsPath = FCKConfig.BasePath + 'plugins/';

プラグインの有効化

公式のドキュメントの通りにします。

FCKConfig.Plugins.Add('findreplace', 'en,ja');

言語ファイルを使わない時は、次のような書き方になります。

FCKConfig.Plugins.Add('samples');

重要な点として、大文字小文字の区別があります。 findreplaceはプラグインディレクトリ配下のパス名として使われるので、パス名が小文字ならこの指定も小文字になります。 プラグインの名前を先頭大文字などにしている場合は注意が必要です。

パネルのカスタマイズ

公式のPlug-insページには、この先がほとんど書かれていません。 しかし上記のように書いてプラグインを有効化しても、勝手にパネルにボタンが増えたりしません。

そのことも設定しなくてはならないのですが、慣れないとこういったことも分からずに、右往左往してしまうものです。(私のことです)

パネルのカスタマイズについては、グーグルなどの検索でいくつか情報が見つかります。 ですので詳しく説明しませんが、プラグイン名を「Findreplace」として作成していたなら、次のような感じになります。

FCKConfig.ToolbarSets["Basic"] = [
    ['Bold','Italic','-','Findreplace','-','OrderedList','UnorderedList','-','Link','Unlink','-','About']
];

FCKConfig.ToolbarSets["Default"]にも追加しておきます。

スタイルシート

必要に応じて、編集エリアのCSSを定義しているファイルを編集します。

  • html/common/fckeditor/editor/css/fck_editorarea.css

fckplugins.jsの書き方

標準添付のPlaceholderプラグインを参考に作った「Findreplace」プラグインというものを想定して、プラグインの実装のうち、共通処理の冒頭部分だけ説明します。

// Register the related command.
FCKCommands.RegisterCommand(
    'Findreplace',
    new FCKDialogCommand(
        'Findreplace',
        FCKLang.FindreplaceDlgTitle,
        FCKPlugins.Items['findreplace'].Path + 'fck_findreplace.html',
        340, 240
    )
);

'Findreplace'のように、プラグイン名を決めています。この名前を使ってパネルに登録したり、スクリプトから実行するなどできます。

いっぽう、FCKPlugins.Items['findreplace'].Pathという記述が見えます。 fckconfig.jsでの設定などから導かれるので、'findreplace'と小文字になっています。 この違いは先ほど説明したように、パス名に由来するためです。

// Create toolbar button.
var oFindreplaceItem = new FCKToolbarButton('Findreplace', FCKLang.FindreplaceBtn);
oFindreplaceItem.IconPath = FCKPlugins.Items['findreplace'].Path + 'findreplace.gif';

FCKToolbarItems.RegisterItem('Findreplace', oFindreplaceItem);

この部分がパネルに配置できるようにする部分です。 findreplace.gifがアイコン画像のファイル名です。

この先は実際にプラグインの動きを書くことになるのですが、まだまだ紆余曲折が待っています。

しかし冒頭でも書いたように、正直に言って私もまだ勉強中のため、割愛させていただきます。 なにか参考情報がありましたら教えていただけるとうれしいです。

以上で説明は終わります。

LaunchyでCHMファイルをキーワードで一発で開く

 : ツール 2009/3/11 10:53

Blogger's Avatar

satoです。

今回は、以前紹介したLaunchyで、CHMヘルプファイルをキーワード付きで簡単に呼び出せるようにしたいと思います。
とは言っても非常に簡単で、saitou155・プログラム技術のページで公開されているhhh.exeを使うだけです。

通常のCHMヘルプファイルは、hh.exeというプログラムが読み込んで表示するのですが、hh.exeはコマンドラインオプションでキーワードを渡して開く機能がありません。
そこで、hhh.exeを代わりに使用します。

設定自体は簡単で、Runnerプラグインで、
Name:呼び出す時に使う名前
Program:hhh.exeのパス
Arguments:[CHMファイルのパス] $$
と指定しておけば、「[Name][Tab][キーワード]」と入力するとCHMファイルの指定キーワード部分が開きます。
ただしCHMファイルによって挙動がまちまちで、キーワード検索に文字が入っているだけのものもあれば、該当ページまで自動的に開くものもあるようです。原因は不明です。

以前紹介した通り、CHMファイルは非常に便利だと思うのですが、開くのが面倒という難点がありました。
これにより、多少難点があるものの、どの状況でもキーワード検索が簡単に呼び出せるようになるので、CHMファイルを更に有効活用できるようになります。是非お試しください。

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

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

Copyright(c) 2012 RYUS.All Rights Reserved.