2007年07月15日
■ [neta] Googleでinurl:ViewerFrame?Mode=と検索すると..
この記事によると、webカメラの情報が見られるらしい。こういった内容の記事は去年のGigazineにもあったらしいのだけど、なぜそのようなことができるのか分からなかったので、調べたところ
2005年の中旬ごろ、使用が簡単なGoogleの検索ストリングがオンラインフォーラムで公開された。これは、何千ものハイエンドなウェブカメラを見つけることができる。多くのウェブカメラは初期設定で動作していて、パスワードなどを要求しないので、その結果、個人的な目的のウェブカメラを勝手に使用され覗かれるなど、プライバシー問題などに発展する場合もある。
つまりwebカメラを初期設定にしておくと、Googleで検索した際に、その情報がヒットし、パスワード入力が不要なのでウェブ上で勝手に操作できるってわけですね(ノ∀`)
ここで問題はやはりカメラを作った側に問題があると思うのですが、重要な点は以下の点に集約されると思います。そもそもそれがネットで見られるという事を検討して(パスワード無しで見られる)、作ったものなのか、それともそのようなことを知らずに作ったものかという点です。知っていて作ったなら、ある程度の事態は予測できるので、初期設定でパスワード無しでみられるような設定にはしないはず。知っていてやったとなるとやはりこれは問題ですよね(ノ∀`)
まぁ、googleで検索できるなんてことは予測してなかったのかもしれないけど.. とりあえず今後なんか大きな問題になりそうな予感がするニュースだったと思いましたとさ
■ [misc] CADについて思うこと
CADの操作方法って覚えるのが結構めんどくさいものなのです。とはいっても設計作業は、今やCAD無しで行うなんてことはありません。手書きの製図は授業ですら、初期にちょっとさわりとして扱うだけです。
設計作業は基本全てCADでやるんですけど、このCADってのが厄介なものでして、業界ごとに使ってるソフトがまったく操作方法が違っていて、しかも使ってるソフトが山のようにたくさんあるという状況あります。
しかもファイルのフォーマットも、まったく統一されておらず、あるソフトで作成したCADファイルが他のソフトで使えるということは無いわけなのです。つまりまったく互換性が無いわけなのです。
当然のことながら、これは大きな問題です。
互換性が無いので、当然他社のデータは使えないし、もしかすると自社のデータですら使えるかどうかはっきりしないと思います。 なぜなら、20年前に作成したCADのデータが現在使用しているCADで果たして読めるか?という問題があるからです。同じCADソフトをアップデートしたものを使っていたとしても、20年前のソフトのデータを読めるということはまず無いと思います。
というわけで群雄割拠しているようなCAD業界なのですが、自分が使っていてやだなぁと思うのは、このソフトは将来的には使うことが無いかもしれないし、はたしてこのソフトをそのまま使っていて大丈夫なのか?という所にあります。
ソフトの違いで作業の効率性はかなり違うでしょうし、自分が作ったCADのデータも、それは20年前のデータなのでもう読めないよっていわれたら結構悲惨です。(ノ∀`)
こういうわけで、CAD業界はカオスってます。結構専門的分野なので、共通のファイル形式を作ろうといった運動もあまりない気がします(あんま詳しいこと知らないけど(ノ∀`))共通のプラットフォームがないと色々と面倒なんだけどなぁ...
CADを使ってる人も大抵は2,3のソフトぐらいしか操作方法を知らないのも事実です。というか触る機会がまずありません。というわけで自分の使っているCADしか知らず、しょうもないテクニックなどを身について設計などをしていかなければならない状況になっています。
■ [謎] intuos3とかいっちゃってさぁ
買おうとしたのだけども、2万overなので辞めた... うーむw デスクトップまったく使ってない身分のものとしては、ノーパソではintuos3の性能を持て余すであろうと危惧した結果の末の判断でもあったと思う。うむw
冷蔵庫の中におでん缶があるのだが、食うべきか、それとも食わざるべきか...
買ったの6ヶ月ぐらい前だからなぁ、迷うところだ。 6ヶ月前のゆでたまごとかってあんまり見かけない気がするし、ある意味貴重かもしれない. 食べる気にはならんけどね(ノ∀`)
■[javascript] prototypeウィンドウを使った動画再生 その3 ajaxとyoutubeapiによる動画再生
というわけで第3弾というわけで、こんなんつくりました。 youtubeの動画のidを入れると動画をmacライクなwindowで再生してくれるアプリです
とりあえずソースコードをさらしてみる。phpで作ったのは使えるライブラリ知ってたからです。他の言語だと調べるのに時間がかかっちゃうので(ノ∀`)
html メイン部分
<html xmlns="http://www.w3.org/1999/xhtml" version="-//W3C//DTD XHTML 1.1//EN" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>macライクなwindowでyoutube再生 ver0.2 + ajax</title> <style> * { margin: 0px; padding: 0px; } #account { margin: 5%; padding: 5%; } #sample { margin-left: 60%; margin-top: 5% } </style> <script type="text/javascript" src="../javascripts/prototype.js"> </script> <script type="text/javascript" src="../javascripts/effects.js"> </script> <script type="text/javascript" src="../javascripts/window.js"> </script> <script type="text/javascript" src="youtube_set.js"> </script> <link href="../themes/default.css" rel="stylesheet" type="text/css" > </link> <link href="../themes/theme1.css" rel="stylesheet" type="text/css" > </link> </head> <body> <script> function show_youtube() { var video_id = $F('input'); //video_id = '00UcVdar3vc'; var url = 'http://test.replore.com/youtube/ajax_2.php'; var pars = 'video=' + $F('input'); //$('result').innerHTML = pars; var myAjax = new Ajax.Request( url, { method: 'post', parameters: pars, onComplete: showResponse, onLoading: onLoad, onFailure: reportError }); } function showResponse(originalRequest) { //var video_id = originalRequest.responseText.match(/title=(.*?)id=(+?)/); var video_contents = originalRequest.responseText; var video_id; var video_title; if (video_contents.match(/error/)) { $('result').innerHTML = "そんなvideo無いなりよ\(^o^/:)"; return; } video = /title=(.*?)&id=(.*?)&end/.exec(video_contents); $('result').innerHTML = video[1]; if ($(video[2])){ $('result').innerHTML = "そのvideoはもう開いてるなりよ\(^o^/:)"; return; } get_and_show_youtube_video(video[2], video[1], video[2], 50, 50); } function reportError(originalRequest) { $('result').innerHTML = "errorナリよ(ノ∀`))"; } function onLoad() { $('result').innerHTML = "now ろーでぃんぐなり"; } get_and_show_youtube_video("title", "らき☆すた", "f4gbuRiqD2Q", 100, 250); //get_and_show_youtube_video("higurashin", "ひぐらし you", "00UcVdar3vc", 250, 250); </script> <div id='result'></div> <input type="button" value="video召還" onclick="show_youtube()"> <input type="text" size="50" value="2sXfpHM2RT8" id=input> <div id="sample">動画のidの例<br><br>絶望先生Ending:2sXfpHM2RT8<br>ひぐらし you:00UcVdar3vc<br>おっくせんまん:XmaltChJnV0 </div> <br> <br> <div id="account"> <h3> youtube動画のidをとってきて動画をmacライクなwindowで開くサンプルです.またなんか追加するつもりです.<br> 使用方法:youtubeのvideoidを入れて、動画を召還する。無効なidを入れた場合は召還できない。<br>動画は同じidにつきひとつ。なぜ一つなのかというと、domid = youtubeidにしているので、一々変えるのが面倒だったからなのです(ノ∀`)<br> マックのキーは×で動画削除。-で最小化。ただしもう一度押すと元に戻る。+は最大化。これももう一度元に戻すと元に戻る<h3></div> <address>replore@gmail.com</address> </body> </html>
jsファイル youtube_set.js ウィンドゥにyoutubeの動画を入れるためのjavascriptファイル
/* * youtube_set.js * author replore: 2007/07/15 */ /* set youtube video to window */ function set_youtube_video(dialog_name, video_title, video_id ) { video = new Window(dialog_name, {className: "dialog", title: video_title, top:0, left:0, width:"425", height:"350", zIndex:100, opacity:1, resizable: false}); video.getContent().innerHTML='<object width="425" height="350"><param name="movie" value="http://www.youtube.com/v/' + video_id + '"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/' + video_id + '" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"></embed></object>' return video; } /* get and show and set movie position */ function get_and_show_youtube_video(dialog_name, video_title, video_id, px, py) { obj = new set_youtube_video(dialog_name, video_title, video_id); obj.setDestroyOnClose(); obj.show(); obj.toFront(); obj.setLocation(px, py); }
phpファイルその1 youtubeapiを使うための関数 youtube_get_details.php
<?php require_once 'HTTP/Request.php'; define ("YOUTUBE_URL", "http://www.youtube.com/api2_rest"); define ("DEV_ID", "your dev id! ← もちろんこれは変える"); define ("FUNC_METHOD", "youtube.videos.get_details"); function get_videos_get_details($video_id) { $request = new HTTP_Request(YOUTUBE_URL); $request->addQueryString('dev_id', DEV_ID); $request->addQueryString('method', FUNC_METHOD); $request->addQueryString('video_id', $video_id); if (PEAR::isError($request->sendRequest())) { die('request failed'); } return $request->getResponseBody(); }
phpファイルその2 ajax通信部 ajax_2.php.. なんちゅー名前だ(ノ∀`) ひどいので変更するけど、なんにしようかなぁ
<?php require_once 'youtube_get_details.php'; header( "Content-Type: text/html; charset=UTF-8"); if (isset($_POST['video'])) { $sample_video_id = "00UcVdar3vc"; $video_id = $_POST['video']; $video_list = get_videos_get_details($video_id); $xml = new SimpleXMLElement($video_list); //print $xml->video_details->title; if ($xml->video_details->title) { echo ("title=" . $xml->video_details->title . "&id=" . $video_id . "&end"); //echo $video_id; } else { echo "error"; } } ?>
とまぁこんな感じです。 今は説明する気力が無いのでしませんが(ノ∀`)、なんかの参考になるかもしれないのでうpしときました。
とりあえず、今回はjavascript及び、prototyp.jsに慣れるといった感じの作業内容になりました。ライブラリはやはり楽ですね(ノ∀`)。
始め、youtubeapiにjavascriptで直接アクセス用としたのですが、できずじまいだったので、しょうがないのでphpでアクセスした結果をjavascriptに送る内容のソースになってしまいました(ノ∀`)
javascriptでyoutubeapidにアクセスするには、どうすりゃいいんだろうか(´・ω・`)...とりあえず保留です(`・ω・´)
その4作るとしたらどうな内容にしようか. 考えた内容は以下のとおり
- インターフェースがひどいので、それを改善する。
- ドラッグアンドドロップで動画再生させる.
- youtubeの検索もajaxで実行させ、検索+実行をできるようにする
まぁこんなところかな
■ [javascript] javascriptの正規表現
1.5の解説 正規表現は言語によって扱いが少し違うのでメモ. 根本的な仕様は大体同じだけど.
そういや、ふくろう本とか持ってたな.. 久々に見てみよっかなぁ(ノ∀`)
■ [javascript][ajax] ちょっとしたメモ
フォームとか昨日は謎のメモを残したが、そもそもそんなもの、いらないことが分かった。むしろ邪魔といってもよい。
ajax技術を駆使したサイトはそもそもフォーム謎使わないでも全然OKだし、そっちのほうが動作的にすっきりする。
ajax使いまくりのサイトはフォームなんて使わずに、大抵次のような感じで外部とのデータ処理をしてる.
<input type="button" value=" 送信" onclick=ジャヴァスクリプトの関数>
submitとか使う機会が無くなる。
<input type="submit" value="ほんにゃら">
うーむ、今更って気もするのだけどなんとなくメモっとく。昨日作ったmacのソースを改造して、youtubeのidをとってくると動画再生できるようにはなったのだけれども、エラー処理部分が微妙なのでそこをどうしようかと考え中(*゚∀゚)
問題点は、youtubeのidを外部に渡してyoutubeapiを使って情報を加工するのだけれども、どういった形で返せばうまくいくのが分からないところ.. どうすっかなぁ

