2008年7月31日木曜日

小学生並みに夏休みが欲しい

子供達は夏休みですが、お父さんは基本的に土日しか休みが無いので、土日は子供と出かけることが多いです。
そんな訳で、お父さんは他にもやりたい事が山の様にあるけど、全然手が付けられないでいます。
遊ぶ時間がもっと欲しい!
と思いながら、今日もルパン見ちゃったりする

2008年7月28日月曜日

電子工作マガジン


電子工作マガジン NO.1

実はここ最近局地的ではありますが「電子工作」がちょっとしたブームになっていたりします。

色々なメーカーから高性能のマイコンが色々出ていたり、真空管アンプが団塊世代の間で流行っていたり、2足歩行ロボットなどを中心としたロボットがちょっ とした話題になっていたりなどなど、数年前に比べると電子工作と一言で言っても多種多用な方向があり面白い世界になっています。

そんな中また新しい書籍が創刊されました。
電子工作マガジン
電波新聞社「電子工作マガジン」

電波新聞社?
電子工作をずっとされている方は「ラジオの製作」を出していた出版社といえばピンとくる方も多いと思います。
その電波新聞社より新しい電子工作マガジンとなれば期待せずにはいられません。

以下略


恐怖新聞じゃなくて電波新聞の昔懐かしい系の雑誌かな?
子供の頃「ラジオの製作」を図書館でよく借りてました

関係ないけど、子供の頃は「ポスタルガイド」って怖いものだと思ってた

カタカナ表記

モバHO!ニュースついでに

「マイクロソフト製品ならびにサービスにおける外来語カタカナ用語末尾の長音表記の変更について」

カタカナ表記について、なんて事はどうでも良い事なんですけどね。
昔、会社で営業部交えての会議に出たときに、いつも苛められてる営業のAさんが、最近取締役になったばかりの元社外のコンサルさんに
「こんな、報告書読む気もせん!!」
と、報告書を投げだされた理由がコレでした。

「3文字以上のカタカナの語尾の"ー"は付けないのが常識だ!」
「そんなことも知らんのか!」

と怒られてました。
そんな事は売り上げ報告の本質には関係無い事だと思ったし、僕もそんな事も知らなかったので、

「じゃー、ソニーはソニですか?」

って聞いてみたら

「それは無理だろ」

って言われちゃいました、へへへ

正確には、3音以上の用語の場合は(長音符号を)省くことを “原則” とするらしいのでソニーはソニーで良かったんですね~

モバHO!のニュース

モバHO!サービス終了のニュース

頑張ったと思う
マンションの屋上にアンテナ設置の依頼が来たときには、きっと3年で終了だろうと思いました。
(アンテナ設置は住民の投票で否決されました、もったいない話だ)

2008年7月26日土曜日

ディズニーシー

有効期限7月いっぱいのディズニーランド/シーのパスポートを貰ったので、行って来た。
嫁さんは仕事で神戸に行っていて居ないので、お父さんと子供だけで楽しんできた
というか疲れた~


子供の写真ばっかり撮っていてディズニーっぽい写真を撮り忘れてた
ディズニーシーは久しぶりに行ったけど、以前の様にやたらと行列に並ぶ事が減ったように思う。お客が減ったのか、シーが出来て分散したのか、ファストパスのおかげか

でも、相変わらず子供向きのアトラクションを選ぶのに困りました。子供向けのアトラクションってわざわざディズニーランドまで来て20分待ちとかで乗るものかなぁーとか思ってしまう
で、海底2万マイルに乗ってみたら、小学校2年生の娘は大泣きで、なだめるのに苦労しました。

ColdFire



今度のInterfaceの付録はColdFire基板です。
しかもEther Interface付だとか。凄い。早速ポチったですよ。先月のトラ技の付録だってまだ開封してないのにね。

ColdFireには5年位前に弄っていたので、ちょっとした思い入れがあったりする。でも、BDMインターフェイスのデバッガが必要だと思う。付録ではどうやって開発するんでしょうね

安価でマルチに使えるJTAGデバッカがあれば良いのだけど。CQがUSB-JTAG-ICE基板とか付録にしてくんないかな...Eclipseベースで使えるとか

と思っていたらこんな記事が
MITOU JTAGのなひたふさん
トラ技78K基板でUSB-JTAGを作ってみた

2008年7月24日木曜日

Googleリーダで、すべて既読にする方法

googleリーダのAPIは公式には公開されていないので、全て既読にする方法を調べてみたのメモ

uri "https://www.google.com/reader/api/0/mark-all-as-read?client=scroll"に

以下のパラメータをPOSTする

特定のサイトのfeedを指定する場合
s=feed/http://blog.livedoor.jp/xxxx/index.rdf&t=Title&ts=Timestamp&T=Token

特定のTagのfeedを指定する場合
s=user/-/label/ニュース&t=Title&ts=Timestamp&T=Token

全てのアイテムを既読にする
s=user/-/state/com.google/reading-list&t=Title&ts=Timestamp&T=Token

timestampで指定した時間以前の記事を全て既読にする、逆にtimestamp以降の記事は未読になるみたい

uGReader ver1.03

コメントで要望をもらったので

menu->Action->Mark All as Read

で、まとめて既読マークをつけられるようにしました。Googleリーダの"すべて既読にする"ボタンに相当します

cabファイル


feedを古い順に表示しているときと、新しい順に表示しているときで若干動作が違います

新しい順に表示しているときは、リストの先頭のfeed以下を全て既読にします。
古い順に表示しているときは、カーソル位置のfeed取得時間以前のfeedを全て既読にします。ただし、カーソル位置のfeedより新しく取得したfeedは全て未読になっちゃいます。
これを、すべてのアイテムTAG内でやると他のTAGをつけた既読feedが未読状態に復活する事があります。全てはカーソル位置のfeedの取得時間(crawl-timestamp)に依存するからです。
カーソル位置のfeedに関わらず、全てを既読にすると、ダウンロードした事のない、超最新の記事まで既読になってしまうので、カーソル位置のcrawl-timestampを使用するようにしました。

Tagの一覧表示中にMark All as Readした場合は選択中のTAGを全て既読にします(表示順は関係なし)。未読数の表示はカーソル位置のTagについてのみ更新しているので、複数Tagに登録してある場合は数が合わなくなります。(Refreshすると良いのだけど)


オフライン対応はマダです...

2008年7月21日月曜日

キャンプ

土曜日から2泊3日で山中湖に家族でキャンプに行ってました。
天気は快晴ではなかったけど、いつも雨に降られる我が家にとっては良い天気でした
キャンプ場が湖畔にも道路にも近くて、車の騒音がうるさかったです。夜中にバイクが爆走してたりして、ちょっと雰囲気をぶち壊しな感じですた。でも、湖畔は涼しくて気持ちよかった~

2008年7月16日水曜日

のりおくれた

買った人も買わなかった人も、iphone(アイフォーン)の話題でもちきりですな
iPhoneに関しては色々思うところがあったりするけど、なんか今更ってかんじで、完全に話題に乗り遅れました。

昨日コジマに100円EeePCを見に行ってみて思った、「欲しいけど、必要ないか....」
ついでに新03のモックも持ってみて、「欲しいけど、アドエスでもいいか」
D4のモックをチルトアップしてみて、「欲しいけど、いや、そんなに欲しくないかも」
iphoneは「次回入荷は未定です....」

結局、僕がiphone買わない理由は「お金ないから」ですが、アドエスで十分間に合ってるからでもあります

2008年7月14日月曜日

展覧会案内にGoogleMapを追加

展覧会案内ページに、会場の地図を表示するようにしたので忘れる前にメモ


まず入力ページのヘッダにgooglemapを使用するために以下を追加
keyは予め取得しておく

<script type="text/javascript" src="http://www.google.com/jsapi?key=key"></script>
<script type="text/javascript">google.load("maps", "2.x");</script>


続けて javascript で動作を書く

<script type="text/javascript"><!--
var map = null;
var geocoder = null;
var marker = null;
function initialize() {
map = new GMap2(document.getElementById("map_canvas"));
if (GBrowserIsCompatible()) {
var lat = document.getElementById("lat");
var lng = document.getElementById("lng");
var latlng = null;
if (lat.value != "" && lng.value) {
latlng = new GLatLng(lat.value,lng.value);
} else {
latlng = new GLatLng(35.671940094926995,139.76398944854736);
}
map.setCenter(latlng, 17);
map.addControl(new GLargeMapControl());
geocoder = new GClientGeocoder();
marker = new GMarker(latlng,{draggable: true});
map.addOverlay(marker);
GEvent.addListener(marker, "dragend", function(){
markerToform(marker.getLatLng());
});
GEvent.addListener(map, "dblclick", function(overlay,point) {
marker.setPoint(point);
markerToform(point);
});
}
}


function markerToform(latlng)
{
var lat = document.getElementById("lat");
var lng = document.getElementById("lng");
lat.value = latlng.lat();
lng.value = latlng.lng();
document.getElementById("mapenable").checked=true;
}


function showAddress() {
address = document.getElementById("address").value;
geocoder.getLatLng(
address ,
function(point) {
if (!point) {
alert(address + " \u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002");
} else {
map.setCenter(point, 13);
marker.setPoint(point);
markerToform(point);
}
}
);
}

// --></script>



入力ページを開いたときにinitialize()を実行する
initialize()は
html内の map_canvas エレメントにgooglemapを挿入する。
初期位置をformのid=lat,id=lngより取得する(lat,lngはpythonで予め埋め込む)
markerオブジェクトとGeocoderオブジェクトを作っておく
markerをドラッグして移動したときと、地図をダブルクリックした時にformのlat,lngを書き換えるようにイベント登録しておく

function markerToform(latlng) で、マーカーの位置をformのlat,lngに反映させる処理をする。地図を使用するcheckboxにもチェックを入れておく

function showAddress() は、会場住所から場所を検索できるようにgeocoderを使用した処理をする。(サンプルをコピペ)

htmlソース

<input type="button" name="showaddr" id="showaddr" onclick="showAddress()" value="地図"/>
<label class="description" for="mapenable">地図</label>
<input type="checkbox" id="mapenable" name="mapenable" value="enable" {% if entity.point %}checked{% endif %}/>地図を使用する
<input type="hidden" id="lat" name="lat" value="{{ entity.point.lat|default:"" }}" />
<input type="hidden" id="lng" name="lng" value="{{ entity.point.lon|default:"" }}" />
<div id="map_canvas" style="width: 500px; height: 300px">
</div>



案内状表示ページのhtmlにも同様にgooglemapのjavascriptを追加しておく


<script type="text/javascript" src="http://www.google.com/jsapi?key=key"></script>
<script type="text/javascript">google.load("prototype", "1.6.0.2");</script>
<script type="text/javascript">google.load("maps", "2.x");</script>
<script type="text/javascript"><!--
var WEEK ='week2';
function viewmap(obj,lat,lng)
{
var par = obj.parentNode.parentNode;
var elm = par.childNodes;
var cld = elm[1];
cld.style.display="block";
elm[0].childNodes[0].style.display="block";
obj.style.display = "none";
var map = new google.maps.Map2(cld);
map.addControl(new GLargeMapControl());
map.setCenter(new google.maps.LatLng(lat, lng), 17);
map.addOverlay(new GMarker(new GLatLng(lat, lng)));
}
function closemap(obj)
{
var par = obj.parentNode.parentNode;
var elm = par.childNodes;
elm[0].childNodes[1].style.display="block";
obj.style.display = "none";
var cld = elm[1];
cld.style.display="none";
cld.innerHTML="";
}
// --></script>


案内状では、地図ボタンを押したときに地図を表示、閉じるボタンを押したときに地図表示を閉じるようにしたい

function viewmap(obj,lat,lng) と function closemap(obj)

案内状表示ページを生成するpythonのコード(地図の部分抜粋)


if entity.point:
cards+=u"""
<div class="maps"><div class="maphed"><div class="btnclose" onclick="closemap(this)"></div><div class="btnopen" onclick="viewmap(this,%f,%f)"></div>地図</div><div id="map" name="map"></div>
</div>""" % (entity.point.lat,entity.point.lon)



btnopenをクリックしたときにviewmap(this,point.lat,point.lon)が呼ばれる
viewmap スクリプトで
this オブジェクト以下の id=mapにgooglemapを表示する様にしたかったけど、id=mapのエレメントへの参照の仕方がわからなかったので

function viewmap(obj,lat,lng)
{
var par = obj.parentNode.parentNode;
var elm = par.childNodes;
var cld = elm[1];

みたいな、わけわからん参照になってしまった...

入力ページからPOSTされたデータを処理するpythonプログラム(抜粋)


mapen = self.request.get('mapenable')
if mapen == "enable":
try:
lat = self.request.get('lat')
lng = self.request.get('lng')
postcard.point = db.GeoPt(lat,lng)
except:
postcard.point = None
else:
postcard.point = None



ソースの表示にBlogger Syntax Highlighterを使用してみた。
http://www.kuribo.info/2008/06/blogger-syntax-highlighter.html

2008年7月9日水曜日

トラ技

トランジスタ技術 (Transistor Gijutsu) 2008年 08月号 [雑誌]
今度の付録はUSBマイコン
NEC 78Kシリーズだそうです

基板がUSBコネクタになっていて、そのままPCに挿せるみたい

ロケット


先週の土曜日に、小学校の行事でペットボトルロケットを打ち上げました。
普段は炭酸飲料は飲まない家庭なのですが、ロケット製作のために1週間かけてCCレモンを飲みきりましたゲフ
一機あたりにペットボトル2本必要で、子供二人分で合計4本のペットボトルが必要でしたゲフ
Posted by Picasa

2008年7月7日月曜日

展覧会案内

先月から作業していた 展覧会案内 のページ
実は先週にレイアウトを完成して、ひと段落つけました

IEだとちゃんと表示されなかったり、表示位置がずれたりして、ページデザインにとてつもなく時間がかかった。世の中にあるページって良く出来てるなーって感心しました
web屋さんってのはエライね

人気エントリー

先週から、客先での作業のため殆ど出社できず、とても忙しかった。帰宅しても、飯喰って寝るだけという毎日でインターネットする暇もなし。
ただ、電車での移動中にRSSを読む時間が結構あって、こういうときにアドエスが役に立った。RSSリーダでざっくりとブログやニュースの記事を読める。
時間が結構あるので、はてなの人気エントリーをGoogleReaderの購読リストに加えてみた。
人気エントリーの記事って長文で、思ったことを色々と書いていて、なんだか皆さん若いなぁと思った。

で、気になったのが、怒っている人が多い。
後味悪い記事が結構あって、普段読んでるモバイルデバイス系のニュースやblogとは、なんか違う

後味悪いというのは、反感を抱いたり、共感したり、出来る記事だけど、なんだか気分が沈む感じ

いつも読んでる記事は、こんな凄いデバイスが出るぜ!とか、こんな技を見つけた!とか、便利なアプリがあるよ!
みたいな内容なので、割と後味が良いし、物欲も湧き上がる。

後味悪い記事を読んだ後は、なんだか仕事に行くのが嫌になってくる(客先に行きたくないだけかも?)

そういえば2chも読んでいて、ネガティブパワーを感じる事が多いのであまり読まないようにしてる。
というのは、年をとったからだろうか?