読了
面白くなかった。
とにかく文体が古く、長いので読むのが大変。
しかも内容が各章毎にまちまちで興味のある章、
ない章で読む気がまったく変わる。
たとえば、旅行記は結構楽しめたけど、
世評は時代が違うせいか的確な内容だと思えない。
この人の別の本を先に読んでて、
ほかの著書も読みたいなら楽しめるかも。
少なくとも私はこれだけ読んでもほとんど意味不明だった。
読了
面白くなかった。
とにかく文体が古く、長いので読むのが大変。
しかも内容が各章毎にまちまちで興味のある章、
ない章で読む気がまったく変わる。
たとえば、旅行記は結構楽しめたけど、
世評は時代が違うせいか的確な内容だと思えない。
この人の別の本を先に読んでて、
ほかの著書も読みたいなら楽しめるかも。
少なくとも私はこれだけ読んでもほとんど意味不明だった。
読了
面白かった。
前半は不要なものをためることの問題点の指摘中心だが、
その辺は検証可能でない(宗教的な)根拠が多くあまり納得できない。
ただ、中盤の不用品の片付け方は結構実践的で
実際片付けるときにも参考になる。
後半のものを片付けることで身体その他に与える影響の話はおまけか。
とりあえず、これのおかげで捨てることへの肯定感を得られた。
「不要なものがある」ことの悪影響を具体的に言葉にできるようになった感じ。
(具体的といっても感覚的なものだけど)
実際部屋片付いたし。今、結構引越し当初風。
シリーズ第2弾
overflowを変更してもreload
もちろんさかのぼった親要素の変更も有効
ExternalinterfaceでHTML Elementを含めた値を渡そうとすると
「Error calling method on NPObject!」といわれる。
まあ、自分が悪いんですが。
そこそこ早い。
Mathクラスなんてはじめて使ったかも。
image_corner = ( function () {
var curve = 0.3;
curve /= 2;
var radius = curve * 100;
var height_size;
var width_size;
var id_class = 'image_corner';
var rect = new Array( '', '', '', '', '' );
var coner = function ( img, func ) {
var div = img.parentNode;
var clone_img = img.cloneNode( true );
clone_img.style.background = 'transparent';
var r_pow = Math.pow( radius, 2 );
for ( var current = 0; radius >= current; current++ ) {
var new_img = clone_img.cloneNode( true );
div.appendChild( new_img );
var base = Math.abs( Math.floor( Math.sqrt( r_pow - Math.pow( current
|| 1, 2 ) ) ) - radius );
func( current, base );
new_img.style.clip = 'rect( ' + ( rect.join( 'px ' ) ) + ' )';
}
};
var render = function ( org_img ) {
org_img.className += ' ' + id_class;
var img = org_img.cloneNode( true );
var int_or = function ( param ) { return parseInt( img[param] ) ||
parseInt( img.style[param] ); };
height_size = int_or( 'height' );
width_size = int_or( 'width' );
radius = height_size * curve;
var parent_elem = document.createElement( 'div' );
parent_elem.style.position = 'relative';
parent_elem.style.width = width_size + 'px';
parent_elem.style.height = height_size + 'px';
img.style.position = 'absolute';
rect = [ radius, width_size, ( height_size - radius ), 0, '' ];
img.style.clip = 'rect( ' + ( rect.join( 'px ' ) ) + ' )';
var parent = org_img.parentNode;
parent.replaceChild( parent_elem, org_img );
org_img.style.display = 'none';
parent_elem.appendChild( org_img );
parent_elem.appendChild( img );
//top coner
coner( img, function ( current, base ) {
rect[0] = radius - current;
rect[1] = width_size - base;
rect[2] = radius;
rect[3] = base;
} );
//button coner
coner( img, function ( current, base ) {
rect[0] = height_size - radius;
rect[1] = width_size - base;
rect[2] = height_size - Math.abs( current - radius );
rect[3] = base;
} );
};
var clear = function ( elem ) {
var org = ' ' + elem.className + ' ';
var rep = org.replace( ( new RegExp( '\s' + id_class + '\s' ) ), '' );
if ( org == rep ) return;
var parent = elem.parentNode;
parent.parentNode.replaceChild( parent, elem );
};
return {
render : render,
clear : clear,
curve : curve,
id_class : id_class,
dummy:null
};
} )();
http://d.hatena.ne.jp/susie-t/20061004/1159942798
offsetTop、offsetLeftは扱いが結構面倒。
特に親要素のpositionの値によって0の位置が変わるのが嫌。
なので、とりあえずそれだけでも何とかするコードを書いた。
要jQuery
var pos = ( function ( base_elem ) {
var parent = base_elem.parentNode;
var e_top = 0;
var e_left = 0;
return ( function ( elem ) {
var t = elem.tagName;
if ( !t || t.toLowerCase() == 'body' ) return;
var pos = $.curCSS( elem, 'position' ) || 'static';
var par = elem.parentNode;
if ( pos != 'static' ) {
e_top += elem.offsetTop;
e_left += elem.offsetLeft;
}
arguments.callee( par );
return [ e_top, e_left ];
} )();
} )( elem );
embed要素のstyle.positionを変更すると、
表示されているflashの内容がreloadされる。
(サーバへもうswf一度とりに行く)
しかも、embedの親要素のpositionを変更しても同じようにreloadされる。
つまり、flashの状態を保持したままpositionを動的に変えることができない。
がー
elem.style.position
だと、style tagで定義した値や、link hrefで読み込んだ先で
定義しているstyle指定が取れない。
(tagにstyle="position:static"で指定した値しか取れない)
これを取得するには「currentStyle」等を使用するが、
例によってブラウザごとに動作が違う。
だが、jQueryのcurCSSはその辺の違いをうめて
いい感じでとってきてくれる。
$.curCSS( elem, 'position' ) == 'static';
こんな感じで。
ただ、なぜか公式サイトのAPI Referenceには記述がない。
ほんとに使っていいのかなぁ。。。
アメーバブログのトップらへんに使われている
swfobjectってライセンス表示削られてる。
swfobjectってMIT Licenseだからライセンス表示削るのはやばいよなぁ。。。
まあ、内容確認してないから同じファイル名の別物かもしれないけど。
あ、prototype.jsもライセンス表示削られてる。ひどいなぁ。。。
http://javascript.g.hatena.ne.jp/Yuichirou/20071002
prototype.jsの機能縮小版みたいな感じ?
コードが短いので読みやすい。
それにしても、JSのライブラリはlicense明記してない場合が
多くて改造とかしにくいな。
人のこといえないけど。
--
書き出してあるhtmlのparameterは当てにならない。
(大抵初期値のまま書き出しただけなので)
wmodeとかscaleとかは要確認。
「so.addParam( 'bgcolor', '#FFFFFF' );」をつけてると
「so.addParam( 'wmode', 'transparent' );」でも背景が透過しない。
(「bgcolor」が優先される)
二千円の加湿器購入。
思ったよりまともだったが構造は非常に簡単。
浮きの上下で水量を監視して加熱器で蒸発させる。うーん、作れそう。
とりあえず、温度調節機能つけようかな。
12/8にまたIPA未踏報告会行ってきました。
今度は東京大学の中で。そのときのメモ。
http://www.ipa.go.jp/jinzai/esp/2007mito1/index.html
例によって寝坊して遅刻。発表1の途中から入る。
・身体で操るバランスボール型インターフェイスシステムの開発
バランスボールにセンサーつけてコントローラとして扱う話。
配線の削減のためにPCとは無線で接続。
重心とボールの傾きを別々に判定できるので、
単純なコントローラより細かい判定が可能。
(ボール自体は右に傾いてるけど、人は左に傾いてるとか)
基本的には普通に乗っかって身体を傾けたり、叩いたり。
無線化のためにいろいろモジュール試したけど、
なかなか良いものがないとのこと。
(zigbeeは安定しない、Bluetoothは開始が遅い)
操作用ソフトは現在ライブラリ化中。
現在あるソフトとしては、お絵かきソフトやDDR系のもの。
(ネギダンス->ネギを持って踊る)
なんか普通のコントローラをうまくバランスボールにつけるだけで
十分な気もする(元々無線のものを使えば無線化も容易だし)
確かにインターフェイスとしては新しいけど、
過去との互換性が低いのでソフト増えるか疑問。
これ自体はおもしろそうだけど、コントローラとしては発展するかな?
(SFCのスーパースコープを思い出した)
http://dango-net.org/
・Ruby-Flashネットゲーム通信フレームワークの開発
地声で発表。声良いなぁ。
基本的にAS3でHTTPを使わずに独自プロトコルでしゃべるものらしい。
サーバ側もHTTPDとは別の独自デーモンが待っててそれが直接会話するっぽい。
なので、RailsはActiveRecordとかを使ってるだけかな?
(Web経由のインターフェイスも同時に揃う利点はあると思うけど)
同期処理やらを抽象化できるのはいいかも。
ライセンスはMySQL式。Flash部分がGPLだと買う人もいるかも。
稼働実績はあるが、現状の安定性はいまいちとのこと。
(50人/3日動かすとメモリリークで落ちるとか)
スケーラビリティに関してRailsでの実績にTwitterを上げてたけど、
肝心の処理部分が独自実装ならRailsの例は適応できないんじゃ。。。
現在はベータ版なので、問い合わせれば無料でライセンス発行しますとのこと。
・学術研究対象としてのゲームとは
PM(コーエー社長)の講演。
ゲーム業界での産学連携の課題に関して。
おもしろい内容だったけど、ゲーム業界には
あまり興味がないのでよく覚えてない。
ゲーム会社への就職は親が心配するので優秀な人が来にくい。
なので、就職内定社の父兄会企画とか。おもしろい。
産学連携に関しては、教育機関は速度が遅くて
製品化までの時間がかかりすぎる。
ゲーム業界は研究テーマのロードマップがなく、
研究対象を教育機関へ提示できていない。
こっから先は聞いてると最後まで聞いてしまいそうだったので退散。
電気街に行く。パネルディスカッションも聞きたかったなぁ。
とりあえず、応募はメールでなくフォームからにした方が良いと思う。
サイト上に各プロジェクトのURLもないし。
もう少し何とかならないんだろうか。不便。
javascriptのtext nodeを展開するときにmethodがわからなかったのでメモ。
(mozillaのDOMリファレンスにも載ってなかったし)
http://developer.mozilla.org/ja/docs/DOM
console.log( document.createTextNode('hoge').nodeValue );
で、中身がとれる。
ついでに[object Text]をfor inしたときの中身一覧。
(addEventListenerってw)
addEventListener
appendChild
appendData
attributes
baseURI
childNodes
cloneNode
compareDocumentPosition
data
deleteData
dispatchEvent
firstChild
getFeature
getUserData
hasAttributes
hasChildNodes
insertBefore
insertData
isDefaultNamespace
isEqualNode
isSameNode
isSupported
lastChild
length
localName
lookupNamespaceURI
lookupPrefix
namespaceURI
nextSibling
nodeName
nodeType
nodeValue
normalize
ownerDocument
parentNode
prefix
previousSibling
removeChild
removeEventListener
replaceChild
replaceData
setUserData
splitText
substringData
textContent
ATTRIBUTE_NODE
CDATA_SECTION_NODE
COMMENT_NODE
DOCUMENT_FRAGMENT_NODE
DOCUMENT_NODE
DOCUMENT_POSITION_CONTAINED_BY
DOCUMENT_POSITION_CONTAINS
DOCUMENT_POSITION_DISCONNECTED
DOCUMENT_POSITION_FOLLOWING
DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC
DOCUMENT_POSITION_PRECEDING
DOCUMENT_TYPE_NODE
ELEMENT_NODE
ENTITY_NODE
ENTITY_REFERENCE_NODE
NOTATION_NODE
PROCESSING_INSTRUCTION_NODE
TEXT_NODE
読了
フリーター、日雇い労働者、野宿者の過去、現在、未来を解説した内容。
著者の実体験もかなり書かれているので説得力がある。
とりあえず、一度失業して野宿者になると、そこから再就職して部屋を借りるのが非常に困難であるというのはわかった。
あと、「人間には自分の部屋が必要」という内容にも同意。昔、野宿主体の一人旅をしたが、毎日寝る場所を探し、違う場所で寝るのは精神的にもきつかった。
ほかに。
厚生労働省のデータが信用ならないのは同意。うちの地元人数一桁になってるけど、私はその半数以上に人数を見かけてる。
私の狭い行動範囲だけでそれだけ会うなんて、人数偏りすぎだろ。
夜メインで働いて昼寝てるので誤解を受けやすい。そのほうが安全だし空き缶拾い等は効率的だろうけど。
犯罪に巻き込まれても警察にまともに取り合ってもらえない。私も警察にまともに取り合ってもらった経験がないので良くわからないけど。。。(もちろんそこまでひどい状況で警察にお世話になったことはない)
NHKでも放送してたけど、生活保護のピンはねをしてる団体があるらしい。ただ、こうしないと生活保護自体受けられない。
一般的な偏見に対する解説が書いてあるが、事情はかなり複雑。一度詰んだらどうしようもなくなる。
ExternalInterface経由でASにJSのObject持たせれば
globalな変数いらないかも。
または、書き出しタグの側にelement作って
それのeventに持たせるとか。
var hoge = { start : function () { alert('ok') } };
Event.observe( elem, 'click', function () { hoge.start() } );
要追記
http://mitou-hata.com/
結構楽しみにしてたのに寝坊。最初の発表を聞き逃す。
・オブジェクト管理API及び簡単システム構築UIの開発
RDBMS(MySQL)に対するWeb経由の管理画面(MySQLAdminっぽいの)と
REST(or SORP)経由のCRUDのインターフェイス提供するシステム。
裏はRDBMだけど、外からはObjectDBっぽく使えるのが新しい。
他環境からのInterfaceはHTTP経由のみなので、多言語ライブラリとかはないらしい。
(これとJSだけでシステム組めそう)
今はsortが微妙らしい(単純にRDBにマッピングしているだけじゃないので、大変なんだとか)
これ自体はJava。
認証権限系とか、バージョン管理とかを独自実装してるとか。
(ただ、これ系の処理ってシステム毎に特異条件が多いので、汎用的なのって使いにくいだよね。。。)
スケーラビリティは今後の課題(テーブル分割とかで結構いけるのでは?とのこと)
面白そうだけど、信頼性(プレゼンでも一部落ちてた)と性能(80番経由で速度出る?)がネックかな。
(あとJavaってとこと)
・特別講演:(タイトル未定)
ミクシィ社長の公演。ミクシィの遷移と会社規模毎の課題とかがテーマ?
(正直発表を見にきたのであまり聞いてなかった)
「会社の課題は売り上げ等より人数に依存する」、「10人前後、200人前後で人数の壁がある」といった内容は面白かった。
(「10人くらいなら結構何とかなるよ」とのこと)
とりあえず、ミクシィもAPIとか作るとのこと。
・動的仮想世界でのコミュニティ形成を軸とするネットゲームの開発
ネタとしては面白いけど、ヒットするかというと微妙。
コミュニケーションだけでユーザ集まるかな?
MMORPGに人が集まるのは既存のゲーム的要素があるからだと思うけど。。。
(人がつまらないとコミュニケーション的要素が楽しめないし)
正直これに時間を使おうとは思わない。
・問い合わせ学習を用いた自動操作ソフトウェア「子猫の手」の開発
なんとなくプレゼンが淡々と進んでいくなと思ってたけど、実際デモをする段階になって爆笑。
とりあえず、拡張子は「.nya」(ドットニャ)
ファイルの読み方は「設定を変更する.nya」(設定を変更するにゃ)
ソフト自体も面白いけど、ファイルの読み方聞いた時点でとりあえず入れる気になった。
機能自体もかなり面白い。
基本的には自動操作ソフトだけど、ユーザの操作意図を問い合わせて正確な操作を行えるようにする。
(マウスクリックでも、単純にその場所をクリックしたかったのか、その要素をクリックしたかったのか、その要素の属性を変化させたかったのかを問い合わせる)
さらに操作履歴を使用してHTML形式のヘルプも吐ける。
アプリのテストに使おうかと思って質問してみたけど、あまりそういう使い方は想定してないっぽい。
ファイル形式がバイナリなので、同じ操作を100回とか、条件によってやめるとかは出来なさそう。
(パスワードの自動入力も想定しているので、暗号化しているとか)
ただ、exeのstdoutは取れるらしいので、その辺がんばれば多少はいけるかなぁ。。。
・特別講演:経営者になった技術者 ~サイボウズの場合~
サイボウズ社長の公演。芸人かと思うほど面白い。
ただ、内容はかなり「ちょいデキ」とかぶってたので若干残念。
とりあえず松山の某社にはがんばってほしいらしい。
・宣言的アプローチによるJavaScriptマッシュアップエンジンの開発
フルJSのYahoo!Pipesっぽいもの。UIすごい。
JSなのでbookmarkletとして、既存のURI上に呼び出せる。
つまり、認証が必要な場所や、localdomain内でも実行可能。怖~
この手のものを使ったことがないので、あんまり良くわからない。
ライブラリはExt.jsとのこと。Ext.js使ってみようかな。。。
・懇親会
会場の三分の一くらいの人が来る。人としゃべるのが苦手なのでビールで勢いつけて名刺交換したり聞き耳立てたり。
青野さんと話せたのは良かった。
その後サイボウズラボ来ませんか?と声を掛けられたのでいってみる。全部で20人くらい。ほぼ二次会。
サイボウズラボへは15分くらい?amachangさんが一人でコード書いてるとのこと。
入室に身分証が必要だったり、一人一人のスペースが多くてびびる。(でも、やっぱりおもちゃと本で埋まってるけど)
多少話したはずなんだけど、若干酒が入ってたせいかあまり記憶にない。とりあえず、S6はプレゼンテーションソフトを目指してるわけじゃないというのは記憶してる。
(あと、エンジニアは基本エロだとか)
最後にIPAのサイトはもう少し何とかしたほうが良いと思う。発表資料ダウンロードできたりとか、発表者のサイトへリンク張ったりとかしてくれないとなんとも。
読了
おもしろかった。
内容が具体的かつ、細かく分けられているので読みやすい。
紹介されている手法には賛同できないものや、立場が違うので参考に出来ないことも多いけど、著者がこの手法をどう利用しているかも書いてあるのでその部分だけでも面白い。
最初と最後は自己紹介とサイボウズ社長としての話なので、本当にメインの部分は150Pほど。細切れで読んだけど、一気に読めば数時間で読める。
とりあえず、「照れくさいというのは、自分の勝手な都合です」というのは忘れないようにしよう。