プロフィール

Author:スーパークリエイター


この日記のはてなブックマーク数
早起き生活
Powered by 早起き生活

☆おすすめタイトル☆

☆Google!ちょっと来い!☆

☆Amazon!ちょっと来い!☆

便利ツール

タブブラウザ Sleipnir 公式ページ(上級者向け)

ブロとも申請フォーム

この人とブロともになる

PHP/SWF Chartsを使えば綺麗なグラフが描けるかな!?

PEAR::Image_Graphを使って、折れ線グラフを作ってみました。
しかし、グラフの見た目があまり綺麗じゃない。><
折れ線グラフの線が、ジャギーというかギザギザなかんじです。
アンチエイリアス処理がないんだなー。

antialiasing
図形や曲線のギザギザを滑らかに見せる機能。
たとえば白い背景に黒で斜めの線を引くと、ドットで描くためにギザギザになる。
しかし、黒のドットの間に適当なグレースケールのドットを配置すると、滑らかに見えるようになる。



PHPのグラフ作成ツールは、PEAR::Image_Graphの他にもいろいろあるみたい。
Jpgraphとかは、検索でよくヒットするな。

見た目が綺麗そうなグラフ作成ツールとして、PHP/SWF Chartsというのがありました。
これはFlashでグラフを表示させるツールとのこと。
今度ちょっと試しにPHP/SWF Chartsをテストしてみようかな!?

PHP/SWF Charts


PHPでフラッシュのグラフを作る「PHP/SWF Charts」

標準的なグラフを表示するだけでなく、アニメーションを使った様々なビジュアル効果を加えたり、印刷ボタンや切り替えボタン、グラフを見る方向の変更、複数のグラフの混在なども簡単にできる



PHP/SWF Charts

PHP/SWF Charts is a simple, yet powerful PHP tool to create attractive web charts and graphs from dynamic data.



Flash Hacks―プロが教えるテクニック&ツール100選 Flash Hacks―プロが教えるテクニック&ツール100選
シャム バンガル (2005/07)
オライリージャパン
この商品の詳細を見る

PEAR::Image_Graphの使い方調査

PEAR::Image_Graphを使ったグラフの作り方を調べてみた。
英語のドキュメントは、ちょっと読んだけど、途中で読むのやめた。(笑)
Googleで日本語のページをあさっていたら、解説してくれているページがありました。

PHP:PEAR::Image_Graph 習作

下のグラフは、pear.veggerby.dk - Image_Graph Samplesで公開されているPHPコードを参考にしながら作成しました。

間違いや勘違いがあるかもしれませんが、このグラフのPHPコードとメモを公開。(もし間違いに気づいたらぜひご教授ください。)

Image_Graph のキモは、’factoryメソッド’のような気がします。この引数にグラフのエレメントを生成するのクラスをセットして、そのエレメントオブジェクトを生成するのですが、その引数が省略形になっているのです。わたしはそれに気づいてから、なんとなく仕組みがわかるようになりました。[→Docs For Class Image_Graph]


↑Side-Bさんのブログは、情報がまとまっていてとても参考になりました。

眠る開発屋blog Image_Graphの円グラフ

Image_Graphって便利だなぁと思ったのですが、まともなドキュメントがどこにもないのですね。。。
(オープンソースではありがち)

phpDocumenterとか使えばいいのかな。
よくわからないけど。

とりあえず、円グラフが欲しかったので、Sample - Show pie chartをちょこっと触ってみました。



サンプルコードのコメントを参考にして、作りたいグラフの形に近づけてみよう!
サンプルコードだけでは分からない部分があれば、仕方ないので英語のドキュメントを読むことにしよう!
(・∀・)
最終的にはライブラリの中身を読めばいいんだろうけど、今はそんな時間ないぞ!!!
わー、もう14時だ!!!やることいっぱいありすぎ\(^o^)/

PHP Hacks―プロが教えるWebプログラミングテクニック PHP Hacks―プロが教えるWebプログラミングテクニック
ジャック ヘリントン (2006/06)
オライリージャパン
この商品の詳細を見る

MD5が解読可能になった!?

MD5関数で生成されるハッシュ値から、元の文字列を求める方法が考案されたらしい。

メールのパスワード暗号破った…APOP規格を解読

電子メールのパスワードを暗号化して送信する規格「APOP」の暗号解読方法を電気通信大学の太田和夫教授(暗号理論)の研究グループが発見し、経済産業省の外郭団体・情報処理推進機構(IPA)に連絡した。

 読み取り不可能と言われてきた暗号化技術に穴が見つかったことで、パスワードが盗まれる恐れが出てきた。

 APOPは、メール固有のパスワードなどを「MD5」と呼ばれる特殊な関数で別の文字列に変換する技術を使っている。メールを使う人のパソコンから、メールが保存されているサーバーまでパスワードが暗号化されて送られるため、途中でパスワードをすべて読み取ることは不可能とされていた。

 太田教授の研究グループは暗号化のカギとなる「MD5」を逆にさかのぼり、暗号化する前のパスワードに戻す手法を見つけた。この技術がハッカーなどに使われると、重要なメールが読み取られる恐れがある。日本銀行金融研究所の岩下直行・情報技術研究センター長は「MD5は、メール以外にも会員制サイトに入る際のパスワードの暗号化などインターネットの世界で広く使われている。さらに強力な関数に替えるなどの処置が必要だ」と話している。

(2007年4月19日3時1分 読売新聞)



MD5じゃセキュリティ(安全性)は確保できなくなったんだな。

MD5

1991年に開発されたMD5は、前身であるMD4の安全性を向上させたものである。開発者はMD4と同じく、MIT教授のロナルド・リベスト。

出力されるメッセージダイジェストは、

d41d8cd98f00b204e9800998ecf8427e (入力データ長が0バイトの場合)

の様に16進数の数字が並んだテキスト形式で出力され、これをフィンガプリント(指紋)やハッシュ値、あるいは単にMD5値と呼ぶ。
「MD5チェックサム」とも良く言われる。

アメリカ合衆国政府では、MD5ではなく、SHA(Secure Hash Algorithm)を標準のハッシュとして使用している。
日本のCRYPTRECでは、MD5を政府推奨暗号リストから外し、SHA-256以上を推奨している。



MD5の代わりに、SHAというのが推奨されてるのかー。
PHPでSHAを使う関数ってあるのかな?

PHP で SHA-256 を使う

mhash()を利用すれば、さまざまなダイジェストが生成できるようです



讃容日記 SHA-256

Pure PHP で SHA-256 を実装した人もいるけど、使ってみたところパフォーマンス的に苦しかったので mhash を使って適当に作ってみた。



[PHP-users 28622] Re: MD5の仕組みについて

SHA256、SHA512などがhashモジュールではサポートされています。



ハッシュ関数

ハッシュ拡張モジュールは外部のライブラリを必要とせず、PHP 5.1.2 ではデフォルトで有効となります。
それ以前のバージョンのPHPにハッシュ拡張モジュールを組み込むには、PECLモジュールをインストールします。



暗号技術入門-秘密の国のアリス 暗号技術入門-秘密の国のアリス
結城 浩 (2003/09/30)
ソフトバンククリエイティブ
この商品の詳細を見る

【“MD5が解読可能になった!?”の続きを読む】

データベースにまつわる怖い話

うおー!!!
これは恐ろしい!!!
お客さんのデータを全部消してしまったら、やっぱ焦るだろうな〜\(^o^)/

ITPro データベースにまつわる怖い話

ソフトのバグにミスが追い討ち データベースが修復不能に


処理が終わったようなので念のためSELECT文をタイプしてみた。と,なんとデータベースがエラーを返してくるではないか。一瞬背中がひやっとする。やばい。そんなバカな。


顔面蒼白になって客先の技術担当者に連絡を取る。悪いことはできるだけ早く伝えなくてはならない。「実はこういう問題が発生しまして。ユーザーのIDだけは復元できるのですが,ユーザー情報は日本語コードを使っているので,ほぼ復元できないと思われます」。しばし沈黙が続く。相手の頭の中も,おそらく真っ白になっているに違いない。


2〜3年に一度はこうした前代未聞のトラブルに巻き込まれることは避けられない。しかし,トラブルを避けて通りたいと考えるようになったら,そこで技術者生命はおしまいなのではないかと思う。



ミスやトラブルは避けられないもの。
失敗したら、いかに早く軌道修正するかが大事だな。
カール・ポパーがオープンソサエティ論で提示した「誤謬性」(人間は間違いをしでかすように出来ている)ということを認識しておくと。

データベース運用・管理「基礎+実践」マスターテキスト データベース運用・管理「基礎+実践」マスターテキスト
弓場 秀樹、武田 喜美子 他 (2003/02)
技術評論社
この商品の詳細を見る

PEAR::Image_Graphのマニュアル翻訳

PEARImage_Graphで、サンプルのグラフを出力してみた。
日本語フォントの設定もOK。

define('IMAGE_CANVAS_SYSTEM_FONT_PATH',
'/var/www/html/userID/app/lib/Image/Canvas/Fonts/');
require_once 'Image/Graph.php';


みたいに、Image/Graph.phpを読み込む前に、フォントの入ったフォルダを「IMAGE_CANVAS_SYSTEM_FONT_PATH」として指定してやれば良い。

うん、なかなかいい感じ。
これでグラフはOKそうだけど、肝心な使い方が分からんぞ!
英語のドキュメントを読まねばならん。
翻訳&グラフの作成は来週以降の宿題にしよう。

Side-Bさんのブログを読むと、Factoryメソッドの引数について理解しておくのがポイントらしい。

コンピュータ翻訳入門  アルク翻訳レッスン・シリーズ [実務翻訳] コンピュータ翻訳入門 アルク翻訳レッスン・シリーズ [実務翻訳]
佐藤 洋一 (2002/05)
アルク
この商品の詳細を見る

【“PEAR::Image_Graphのマニュアル翻訳”の続きを読む】

PearのImage_Graph

http://pear.veggerby.dk/wiki/image_graphPHPでグラフを描きたい。

PEARの「Image_Graph」というライブラリが便利そうだ。
とりあえず、これの使い方を確かめてみよう。
よさげであれば組み込んで使おう!

PearのImage_Graphのグラフ描画サンプル
http://phpspot.org/blog/archives/2006/01/pearimage_graph.html

■PEAR::Image_Graphの設定方法■
http://sakulog.blog69.fc2.com/blog-entry-5.html

PHP:Image_Graph::factory パラメータのメモ
http://side-b.sto.co.jp/weblog/archives/117

links for 2006-09-25 [Image_Graph関連]
http://side-b.sto.co.jp/weblog/archives/116

PEAR::Image_Graph Documentation 日本語
http://pear.php.net/manual/ja/package.images.image-graph.php

Image_Graph は現在開発段階ですので、マニュアルにて利用可能なドキュメントはありません。それ以外には、外部サイトで "Getting Started Guide" が公開されています。



とほほ。日本語のマニュアルはなさそう。
仕方ない。英語のマニュアルページを翻訳ソフトの力を借りて読んでみますか。

Image_Graph
http://pear.veggerby.dk/wiki/image_graph

PEAR入門 PHP標準ライブラリを極める! PEAR入門 PHP標準ライブラリを極める!
山田 祥寛 (2005/09/09)
翔泳社
この商品の詳細を見る

知っておきたい「在宅勤務」の働き方

在宅勤務にも向き、不向きがあるかな?

http://headlines.yahoo.co.jp/hl?a=20070412-00000005-gen-ent

知っておきたい「在宅勤務」の働き方

4月12日10時0分配信 日刊ゲンダイ

 松下電器が今月から取り入れた在宅勤務制度は、対象社員約3万人というから国内最大規模で、週1、2回在宅勤務する人が多いと予想されている。通勤ラッシュから解放される在宅勤務時代が本格到来か。

●“勤務時間”は会社と同じ
 対象の3万人は松下電器本体だけでなく、全額出資子会社23社の管理職と一般社員も含まれる。合計約7万6000人のうち、工場の作業員や保安担当者、秘書などを除くホワイトカラーだ。
 同社広報担当者はこう言う。
「総務、法務、人事、企画、営業、技術、デザイン、研究の各部門などで働く人はすべて在宅勤務の対象です。上司に申請し、何も問題がなければ受理されます。在宅勤務OKの社員にはパソコンと、職場の上司や同僚などとパソコンを見ながら会議ができるカメラを貸します。週1、2回の人が多いと思いますが、営業などは週3、4回の社員もいるでしょう。総務や人事などの社員は、就業規則通り朝9時から夕方5時30分まで家で仕事することになります」

●仕事のスタート、終了をPCで報告
 デスクワークが中心の総務部門の社員なら、朝食後にPCを置いた居間のデスクの前に座り、これから仕事を始めることを会社に送信。その後、事前に上司に報告しておいた“今日やる仕事”に取りかかる。
 昼食後もPCの前で同じように仕事をこなす。不明な点があれば上司や同僚などにPCやケータイで問い合わせる。夕方に今日の仕事の進み具合をPCなどで上司に報告し、1日の仕事は終了。
 フレックスタイムで働いている社員の在宅勤務は“直行直帰”型となる。

●NECやIBMも導入
 松下電器は試験的に昨年4月から研究、企画、デザイン、法務などの専門職1000人に週何回か在宅勤務をしてもらった。1年弱行った結果、仕事の効率やチームワークに支障が出なかったことから、本体と子会社に在宅勤務制度を取り入れたわけだ。
 またNECや日本HP、日本IBMなどでも在宅勤務の社員はかなりいる。

●「向く人」「向かない人」
 先行きホワイトカラーの在宅勤務は当たり前になりそうだが、「向く人」「向かない人」はいるはずだ。
 日本能率協会経営研究所研究員の海老原紀枝氏は言う。
「向くのは『自律型』の人です。自律型はマニュアルや細かい指示がなくても、自分の判断で行動できます。専門性を持っていて、自分の意見・主張をはっきり伝えられ、人を説得できるコミュニケーション能力も高い。在宅勤務では今まで以上に能力を発揮します。逆に向かないのは自分の意見を言えない『付和雷同型』の人です。このタイプは今までも仕事の出来はいまひとつの人が多いのですが、在宅勤務ではよりもがき苦しむことになるでしょう」
 在宅勤務で仕事ができる人とできない人の差はさらに広がるのは間違いないだろう。



フリーランスを代表して 申告と節税について教わってきました。 フリーランスを代表して 申告と節税について教わってきました。
きたみ りゅうじ (2005/12/08)
日本実業出版社
この商品の詳細を見る

外山恒一 YouTubeまとめ

外山恒一さんの映像まとめ

東京都知事候補 外山恒一 政権放送
http://www.youtube.com/watch?v=l2C9lv5t0yQ(5分21秒)

東京都知事候補 外山恒一 政権放送 2007/3/25 早朝
「選挙で何かが変わると思ったら大間違いだ!!!」


外山恒一YouTube


外山恒一・唯一の路上演説
http://www.youtube.com/watch?v=646d8Sq9C1I(6分30秒)

ニコニコ名作劇場 No.12 外山恒一の政見放送×IDOLM@STER とかちつくちて
http://www.youtube.com/watch?v=9-SRV3HfwQc(2分37秒)
外山恒一とかちつくちてバージョン


外山恒一が国民に物申す!!(MAD)
http://www.youtube.com/watch?v=jp5pepDDoBU(3分39秒)

2007年3月25日に放送された東京都知事選挙
政見放送に出た外山恒一候補の映像に
機動戦士ガンダムのギレン・ザビの演説の音声を被せてみた。



外山恒一は大変なものを盗んでいきました→Ver.2.0
http://www.youtube.com/watch?v=tCnHjK4IYMM(2分1秒)
外山恒一は大変なものを盗んでいきました→Ver.2.0ニコニコ動画コマンド付
http://www.youtube.com/watch?v=03t6gdPk9KQ(2分9秒)
外山恒一は大変なものを盗んでいきました→Ver.2.0

↓元ネタはコチラのようです。
プロモーションFlashムービー『魔理沙は大変なものを盗んでいきました』

霧雨魔理沙とは
同人ゲーム東方シリーズの魔法使い。



外山恒一の憂鬱
http://www.youtube.com/watch?v=4oXDIHw-xQo(26秒)

日本一早い政見放送(外山恒一)
http://www.youtube.com/watch?v=m5NqeKHo1KA(46秒)

shikashika-oashi(シカシカ オアシ)
http://www.youtube.com/watch?v=maMeRDA0-lE(4分11秒)

外山恒一皇帝陛下
http://www.youtube.com/watch?v=VjW17Z1MAyg(1分53秒)

<BGM系>
外山ベイダーの政見放送
http://www.youtube.com/watch?v=ua0TVs2MAkc(5分40秒)

外山恒一 YOSHIMOTO MIX
http://www.youtube.com/watch?v=leq1zzNtB1A(5分21秒)

<外山恒一・オリジナル曲>
青年は仕事をやめる〜無職青年社・社歌〜
http://www.youtube.com/watch?v=AawIfEcVIfQ(9分38秒)

賛美歌第13番
http://www.youtube.com/watch?v=ZEOTWk8VZAQ(4分58秒)

最低ですかーっ!―外山恒一語録 最低ですかーっ!―外山恒一語録
外山 恒一 (2005/01)
不知火書房
この商品の詳細を見る

情報の削り取り = スクレイピング

HTMLソースコードから必要な情報を抜き出すスクレイピングは、正規表現をチマチマ組み立てて抽出するのではなくて、DOMのツリー構造で扱うのがやりやすいみたいだ。

そのためのツールを作ってくれている人たちがいるんだな。

スクレイピング すくれいぴんぐ

"scrape"とは「削ること」。
特に、ウェブサイトのデータを必要な部分だけ抽出して利用すること。



進化する“Webスクレイピング”技術の世界

WebサービスのAPIやRSSフィードを使って複数サイトのサービスや情報をマッシュアップ――。
これはWeb2.0が包含するいくつかの概念のうち、最も重要なものの1つだ。
Amazon.comやGoogle、Yahoo!、楽天といった大手Webサイトは、RESTやSOAPを用いたAPIを公開しており、さまざまなサービス提供者や個人がAPIを通して各種サービスを利用している。

その一方、世の中のWebサイトの大多数はWeb1.0的なHTMLやCGIフォームしか提供していないのが現実だ。
こうした背景からWeb1.0サイトから構造化されたデータを引っ張り出す“Webスクレイピング”技術が急速に発展してきているようだ。


正規表現などの文字列処理を使い、ヒューリスティックに抽出処理を書き下すしかない。
それは多くの場合、「関係する情報の始まりを示す特定の文字列から、終わりの文字列に挟まれた特定のタグのうち、特定の正規表現にマッチするもの」といった面倒な処理になる。

もう少し楽な方法は、HTMLドキュメントをツリーとして扱うことだ。
処理対象のHTMLは、いつも必ずしも整形式のXHTMLというわけではないが、非整形式のHTMLでも、できる限り整合的な形でXML化するRuby向けライブラリとして「HTree」や「Hpricot」というものが存在する。

ツリー構造であれば、泥臭い文字列処理は多少軽減される。



「scRUBYt! 0.2.0」は、Webスクレイピング技術の集大成のようなフレームワークだ。名前が示すとおり、scRUBYt!はRuby向けのツールを組み合わせもので、HpricotとWWW::Mechanizeを統合し、さらにXPathよりも人間に分かりやすい構文が使えるようにしたもの。



scRUBYt!
http://scrubyt.org/

面倒くさそうな作業だと思ったら…
スクレイピングはもっと簡単にならなければいけない

スクレイピングをするときに正規表現を書いたりしないといけないのは、キカイにはどこが抜き出したいところなのかが理解できないからだ。
ニンゲンだったら、どこが抜き出したいかなんてだれでもわかる。
ページをスクレイプするために正規表現を書くよりも、正規表現を書けないひとがスクレイプできるようにするためのGUIフロントエンドを書いて、いままで正規表現が書けるニンゲンにしかできなかった部分を、知識なしでニンゲンならできるようにして、スクレイピングルールリポジトリを作っていくことが今の段階でかけていることだと感じています。


なるほど!
まずは情報の取り出し方、ルールの作り方を簡単にする方法から考えないといけませんね!

Rubyレシピブック 第2版 268の技 Rubyレシピブック 第2版 268の技
青木 峰郎、後藤 裕蔵 他 (2007/02/01)
ソフトバンク クリエイティブ
この商品の詳細を見る