スタッフブログ

  • カテゴリ 技術全般 の最新配信
  • RSS

MAX_FILE_SIZE はinput フィールド file の前に置く必要があります

naoto : 技術全般 2009/5/7 19:50

Blogger's Avatar

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

イベントビューアで見ることができるシステムのログから、毎日の始まりと終わりの時間を抽出するスクリプトを書きました。 タイムカードの打ち忘れの時にちょと使うためです。

スタート→すべてのプログラム→管理ツールー→イベント ビューア
操作→一覧のエクスポート
テキスト(タブ区切り)

で書き出したファイルをフォームから食わせて、結果をCSVファイルでダウンロードできるようにしました。

こういうコードは基本は書き捨てなのですが、弊社のリポジトリにある「雑多なコードを入れるところ」にも置きました。 今日はそのコードをここに晒しておしまいにしようかとも思ったのですが、面白みに欠けるので別の話題にします。

例1 ファイルアップロード用のフォーム

その作業の中でPHPマニュアルを参照していたのですが、気になる点があったので書いておきます。

POST メソッドによるアップロード
/[cvs]/phpdoc-ja/features/file-upload.xml

$ diff -urN file-upload.xml.1.38 file-upload.xml
--- file-upload.xml.1.38 2009-05-07 18:57:10.000000000 +0900
+++ file-upload.xml 2009-05-07 19:06:47.000000000 +0900
@@ -53,7 +53,7 @@
 <![CDATA[
 <!-- データのエンコード方式である enctype は、必ず以下のようにしなければなりません -->
 <form enctype="multipart/form-data" action="__URL__" method="POST">
-    <!-- MAX_FILE_SIZE はファイルフィールド用に必須です -->
+    <!-- MAX_FILE_SIZE はinput フィールド file の前に置く必要があります -->
     <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
     <!-- input 要素の名前が $_FILES 配列での名前となります -->
     このファイルをアップロード: <input name="userfile" type="file" />

初めはまったく気に留めていなかったのですが、MAX_FILE_SIZEなんて普段書かずに済むことの方が多いのに、必須って何だろうと思い、まわりのひとと雑談をする中でここは誤訳なのではないかということになって、それで気づいた次第です。

DD_roundiesで角丸表現

 : 技術全般 2009/5/1 9:08

Blogger's Avatar

satoです。


(CSSの)borderを角丸にしたい、というのはデザインでよくある要望の1つだと思います。
以前はNifty Corners Cubeを使用していたのですが、条件によって一部ブラウザで表示がおかしくなることがあり、代替ライブラリを探していました。

いくつか調べたところ、DD_roundiesというライブラリを見つけました。

使い方は簡単で、このファイルを読み込んだ後に、
DD_roundies.addRule([セレクタ], [角丸量], true);
というのを書いていくだけです。
最後のtrueをfalseにしたり、省略したりするとIE専用になるようです。どういう違いがあるのかわかりませんが、一部の紹介記事では省略された状態になっているので、必ずtrueを付けるようにしてください。
セレクタは、普通のスタイルシートの指定と同様の感じで書けます。
.class
div.class
div#id a
角丸量は、




指定数順序例の解説
1全部10px全ての角を10px丸める
2(左上 右下)、(右上 左下)10px 5px左上と右下を10px、右上と左下を5px丸める
3(左上)、(右上 左下)、(右下)10px 5px 3px左上を10px、右上と左下を5px、右下を3px丸める
4左上、右上、右下、左下10px 5px 3px 1px左上を10px、右上を5px、右下を3px、左下を1px丸める

となっております。
2〜3指定がわかりづらいので、全部同じか全部個別指定がいいと思います。

例えば、この記事限定でこのファイルを読み込むようにしてありますので、アドレスバーに、
j&#x61;v&#x61;script:DD_roundies.addRule('#rd3blogHeader', '20px', true);
と入力すると、この記事の上部の「スタッフブログ - DD_roundiesで角丸表現」という箇所の角が丸くなっているのがわかると思います。

MITライセンスを採用しているため、再配布も容易です。テーマやモジュール制作を行っている方も使用してみてはいかがでしょうか。

jQueryを使っている場合であれば、jQueryを使用した角丸ライブラリがいくつかあるようなので、そちらを使ってみるといいかもしれません。いろいろ試してみてください。

Internet Explorer 8 を入れたくない場合に

 : 技術全般 2009/4/30 23:50

Blogger's Avatar

大型連休を目前に控え、何をやろうか悩み中のgusagiです

既にあちこちのブログで取り上げられていますが、少し前にマイクロソフトが自動更新の日程について「未定」としていたはずのInternet Explorer 8(IE8)日本語版が、昨日あたりに自動更新の対象としてあがってきたようです。
個人的には、新しいIEのインターフェースやら速度やら試してみたいと思いますが、流石に業務で使っているPCにいきなりインストールというのは出来ません
同じように「今はまだ入れられない」という方も多いと思います。

IEについては、こちらのページに書かれていますが、ブロッカーツールキットを使用することで、自動更新によるインストールをブロックすることが出来るようです。
マシンを起動したまま連休を迎え、連休後に出勤したらIE8になっていたなんてこともあり得るので、IE8にしたくない人は上記のブロッカーツールキットを入れてみては如何でしょうか?

Dropbox+WARPで同期した環境作成

 : 技術全般 2009/4/24 11:31

Blogger's Avatar

こんにちは、argonです。

今回はDropbox+WARPで同期した環境作成という内容を書いてみようと思います。

Dropboxについては自分もつい最近使いはじめたのですが、大変便利ですね。
もっと前から使っていれば良かったと後悔したくらいです
さて、作業としては特に難しい事があるというわけではないのですが、順をおって書いていきますと…

1)Dropbox導入
既に使っている人はOKです。まだの人は下記URLのDropboxのサイトからソフトをダウンロードして、Dropboxのアカウントを作成します。

http://www.getdropbox.com/

2)WARPをダウンロード
以下のサイトからWARPをダウンロードしてきます。
そしてダウンロードしてきたファイルを解凍します。
WARPはApacheやMySQLが動作しますので、既存のパッケージから自分で好きなCMSをインストールすることもできますので、様々なCMSをいれてみたりするのも良いと思います。

http://warp.ws/index.php?action=pages_view_main&page_id=16

3)Dropboxにアップロード
My DropboxにWARPのフォルダをコピーして、ファイルのアップロードします。
さて、このアップロードなのですがWARPはファイル数の数が多いので結構時間がかかります。
(逆にファイルサイズの大きいものでもDropboxの仕組み上、誰かがまったく同じファイルをDropbox上においていればアップロードに時間はほとんどかかりません。例・有名なソフトの体験版など)

これでアップロードが終了すれば完了です。
環境を作るのは結構手間もかかるので、1つ環境を作り、それが同期できれば、なかなか便利だと思います。
今回のWARPはWindows用のソフトなので当然Macでは動作させることはできません、ですが、もしかしたらAdobe AIRで作られたソフトはWindowsでもMacでも使用できるかもしれません。
ちょっと夢が広がりますね

openpearの旅 第7回:Net_Pocketbell

 : 技術全般 2009/4/23 19:45

Blogger's Avatar

今日はNet_Pocketbell ( http://openpear.org/package/Net_Pocketbell ) というライブラリを紹介します.
このライブラリは,ポケベル打ちの数値とカナを変換するライブラリです.

ポケベル打ちとは,ポケットベルにおいて,プッシュ信号によって数桁の数字を送れる機能を利用して,数字の組み合わせを文字と判定して表示を行う方法で,現代では,携帯電話の文字入力方式の1つに利用され,「2タッチ方式」などと呼ばれています.
基本的には,1タッチ目が母音で,「1,2,3,4,5」が「あ,か,さ,た,な」になり,2タッチ目が子音になっています.
「11」で「あ」,「12」で「い」という感じです.
通常の携帯電話の入力方式は,一文字確定するのに最大で5回押す事になりますが,2タッチの場合は常に2回なので,従来の方式よりも高速に入力する事ができるといわれています.

http://ja.wikipedia.org/wiki/%E3%83%9D%E3%82%B1%E3%83%99%E3%83%AB%E6%89%93%E3%81%A1
http://ja.wikipedia.org/wiki/%E7%84%A1%E7%B7%9A%E5%91%BC%E3%81%B3%E5%87%BA%E3%81%97

女子高生が公衆電話のボタンを超高速で連打していたのはわずか10年前の事ですから,技術の進歩の速度には驚かされます.

ともかく,今回のライブラリを使うと,

228513618512440322443354

という数値を打った時に,

キヨウハヨイテンキテスネ

に変換してくれます.
使い方は簡単で,

$pb = new Pocketbell('NTT');
echo $pb->num2kana('228513618512440322443354') . "\n";

とすれば,引数に指定した数字の内容が.

$pb = new Pocketbell('NTT');
echo $pb->kana2num('キョウハヨイテンキデスネ');

とすれば,数値が表示されます.

ただし,2タッチで表示できない(組み合わせにない)文字は表示できません.上の「キョウハヨイテンキデスネ」という文章は,「ョ」と「デ」が存在しないため,この2つの文字を抜いた,「22136185124403223354」が表示されます.

また,「あ」から「ん」までは割とどの機種でも同じなのですが,それ以外の文字については,機種依存が激しく,機種によって入力方法はまちまちです.

例えば,私が使っているSH906iにある「2タッチ入力方式」で0から9までの数値を表示する場合,

00969798999006070809

とします.しかし,これをNet_PocketbellのNTT方式に適用すると,

0↑↓[時計][電話]9/‐& 

となってしまい,意図した通りに表示されません.

今の携帯の2タッチ入力の再現に利用するのは難しいですが,昔なつかしのポケベル文化に触れるという意味ではなかなかおもしろいライブラリです.

Candycaneのロゴ作成

 : 技術全般 2009/4/16 12:50

Blogger's Avatar

こんにちはargonです。

新学期&新年度シーズンという事で電車の遅延が多いですね。
(というか東京は人が多すぎ…首都機能移転など行って人口分散すべきだと思う)

さて、今回はCandycaneというプロジェクトのロゴを作った事について書こうと思います。
haltさんからオープンソースのプロジェクト(初期開発はクローズドで開始のようです)のロゴを作らない?
というお話がありまして、ロゴ作りは好きなので作ってみました。

Candycaneロゴ画像

ロゴ作成の初期段階では、完成イメージを持っているか、要件はどういう点があるかなど、様々だと思うのですが
今回のCandycaneの場合はわりと具体的なイメージがあったので、すんなりと進行しました。
流れとしては、まず手描きでラフを何点か描いて、それを見てもらいながらhaltさんと相談し、そこから一点を作成しました。
ただ、今回は時間があまりなかったので完成版という程つめらなかったので、修正して完成版にしたいと思います。

CandycaneはBTS(バグ管理システム)というジャンルのシステムで、中身の機能としてユーザー管理システム、ガントチャート、カレンダー、wiki、フォーラム、RSS、メール送信機能などCMS(コンテンツマネージメントシステム)的な機能もだいたい網羅してしまうほど多機能なようで、かなり面白そうです。

開発の方は先日合宿を行ったそうです。大変そうですが隔離された環境だと集中して開発できそうです。

合宿に参加された方のブログ

RedmineをCakePHPに移植する「candycane」プロジェクトの開発合宿に参加してきました
http://www.akiyan.com/blog/archives/2009/04/redmine-to-cakephp-candycane-devcamp-report.html

CakePHP開発合宿アルファ版終了!
http://d.hatena.ne.jp/yandod/20090412

openpearの旅 第6回:Services_MixiAPI

 : 技術全般 2009/4/15 1:01

Blogger's Avatar

haltです.
mixiが誰でも参加できるようになって随分立ちますね.mixiやってますか?

今日は,mixiの足あと情報を始めとする情報にアクセスできるライブラリ,Serices_MixiAPI ( http://openpear.org/package/Services_MixiAPI ) を紹介します.

このライブラリは,mixiステーションというmixiが提供するサービスが利用しているapiをPHP側から叩く事で,mixiから様々な情報を取得できます.

mixiには,自分のページにアクセスした人の名前がわかる「足あと」という機能があります.足あとは,最大60件までしか表示できないので,「自分のページに誰がアクセスしたのかことこまかに知りたい!」という自分大好きな人は細かくアクセスしてチェックする必要があります.

今回はServices_MixiAPIを利用してPHPから足あとを取得します.MixiAPIから返ってくるデータはXMLなので,PHP5から使えるSimpleXMLを利用して,ある程度読めるように加工して表示します.

require_once "Services/MixiAPI/Factory.php";

$user = 'あなたのログインメールアドレス';
$pass = 'あなたのパスワード';
$id = 'あなたのmixi id(ログインして,「プロフィールを見る」からわかります)';

$service = Services_MixiAPI_Factory::getInstance(
               Services_MixiAPI_Factory::API_MODE_FOOTPRINT,
               $user, $pass, $id);
$service->execute();
$xml = new SimpleXMLElement($service->get());
foreach ($xml->entry as $entry) {
    echo "[{$entry->updated}] " . $entry->author->name  . "\n";
}

これを実行すると,

[2009-04-14T14:51:03Z] xxxxxx
[2009-04-14T14:31:58Z] xxxxxxxxx
[2009-04-14T13:59:47Z] xxxxx
[2009-04-14T12:29:28Z] xxxxxxxxxxxxxxx
[2009-04-14T11:33:13Z] xxxxx
[2009-04-14T11:17:58Z] xxx
[2009-04-14T11:00:27Z] xxxxxxx
[2009-04-14T10:52:19Z] xxxxx
[2009-04-14T09:50:04Z] xxxxx
[2009-04-14T07:47:23Z] xxxxxxxxxx

のような感じで,足あとの一覧が表示されます(xxxxはアクセスした人の名前です)
これを定期的に実行し,アクセスログとして保存すれば,自分のページにアクセスした人を把握する事ができます.

MixiAPIには他にもたくさんの情報を見る機能があるので,実際に試してみてください.

CubeCakeを使い始めました

 : 技術全般 2009/4/9 15:38

Blogger's Avatar

最近、某動画投稿サイトの"作業用BGM"タグのおかげか、作業効率が上がった気がしているgusagiです。
(単に、花粉症の症状が少し軽くなっただけかも知れませんが

弊社では、XOOPS Cube上でCakePHPによる開発ができるモジュール"CubeCake"を配布しています。
このCubeCakeは、昨年10月に弊社のhaltがCakePHPカンファレンス東京で発表していたりするのですが、最近は私もCubeCakeを使ってモジュール開発を始めてみました。
以前から、CakePHPには興味があったのですが、CakePHPハンズオン@Tokyo #2でCakePHPの楽しさを感じたことが大きな要因です。

CakePHPは、Cookbookなどのオンラインドキュメントがしっかりしていることや、CakePHP自体の作りが判りやすいこともあり、学習コストはそれほど高くない感じです。
ただ、どうせ学習するなら最新版である1.2の書籍を一冊手元に置いておきたいと思い、今日の昼休みにオフィスの近くにある書店に行って『CakePHPによる実践Webアプリケーション開発』を購入してきてしまいました

まだざっと目を通しただけですが、基礎知識から実用的な例まで一通り書いてあるようです。
また、携帯対応についても簡単にですが触れているようでした。
今月からはフライデーラボも始まりましたし、自分もこの書籍とCookbookなどを参考にして、CubeCakeでモジュールを作って行こうと思います。

openpearの旅 第5回:Services_ThreeLines

 : 技術全般 2009/4/3 21:09

Blogger's Avatar

haltです.

最近電子工作にハマっていて,PICを使ってLEDを点灯させたりしているのですが,CPUにあたる内蔵オシレータが8MHzしかないので,
普段何GHzのパソコンの上で動くコードと違い,1クロックというレベルでのリソース管理を要求されるので,なかなかおもしろいです.

さて,今回のopenpearパッケージは,Services_ThreeLines ( http://openpear.org/package/Services_ThreeLines ) です.このライブラリは,3行で要約します.( http://www.3lines.info/ )というサービスを利用するラ
イブラリで,これを利用する事で,特定のサイトやRSSの内容を3行に要約する事ができます.

require_once "Services/ThreeLines.php";

$url = 'http://ryus.co.jp/';

try {
    $summary = Services_ThreeLines::execute($url);
    echo $summary;
}
catch (Exception $e) {
    echo $e->getMessage();
}

これを実行すると…

[blockquote]
・XOOPS Cubeとは、掲示板に書き込むような感覚で手軽にホームページの更新ができるようになるCMS(コンテンツ・マネージメント・システム)のひとつです。

・XOOPS Cube を利用したホームページの制作、イントラサイトの構築、そして XOOPS Cube のモジュール開発からカスタマイズまで、XOOPS Cube のことでしたら>、まず RYUS にご相談ください。
[/blockquote]

あれ,2行になっています.しかし要約の内容についてはかなり的確ですね.大量に登録されているサイトの概要が必要な時なんかには使えるのかもしれません.お
もしろい使い方を見つけたら教えてください.

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]

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

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

Copyright(c) 2012 RYUS.All Rights Reserved.