2008年2月27日水曜日

あー

先日よっぱらってなんだか支離滅裂なことを書いていた。

・同僚の素敵な女性先輩と話した。

・社長と話した

ってことだけ書いておこう。

忙しすぎてぜんぜん勉強できてないや。

2008年2月19日火曜日

Googleプラクティスは結局いまいちできないのか。

転職の際に
Googleプラクティスってものをたまたま
みて、
http://blog.japan.zdnet.com/shiraishi/a/2007/10/google.html
面接の際、今の会社の執行役員の人と少し話題になった。
振り返ってみる。

・20%ルール - 「innnovative」かは別として、業務とは別の勉強をかねての成果物を残すように
        心がける。Extはそのひとつ。
・TechTalk - いまひとつテクニカルなことははなせないから聞くことを心がける。
       VSUGとか、MPUFとかに参加して。
・Snippet - 個人ではブログだし、業務では日報を。
・DesignDoc - MINDOMOはとっても便利。マインドマップ作ってそこから仕様におとして。
        仕様書はWord派から完全にExcelになった。ドキュメントを書く癖はかなりついてきた。
・ユニットテストは基本中の基本 - これはまだ癖ついてない。
・レジュメ - 自分の経歴書を常に作成、保持しておく

仕事終わって飯食って。
一時間半から、二時間捻出するのはかなり至難の業。

というよりも朝5時40分におきるので毎日三時間から4時間睡眠。
そりゃ、休日眠くなるわな。

ねよ。

ExtJs-7 サンプルを組み合わせて。。

概要と仕組みはわかったので
サンプルを組み合わせて
DD使って簡易レイアウトツールみたいなものを作ってみよう。
としてみている・・。
が忙しくて時間が割けない。

一応、
・DataGrid
・DDのサンプルで左ペインから中央ペインへのDD
を。
やってみよう。

あとはDBに画像情報格納用のデータベースきって
DBから取得したインスタンス分DDオブジェクトを
生成してあげるように実装。
をやってみよう。

2008年2月14日木曜日

ExtJs-6

がビーン
http://www.ext-japan.org/


なんできがつかなかったのよ。おれ。
一生懸命、翻訳と格闘してたのに。。。

今日はねよ。

2008年2月13日水曜日

なんかものすげー寒い

バスが来ない。
寒い。
そう、今日はとても寒い。

今日はいつもよくしてくれている会社の
YさんとSubversionではまり、打ち合わせ(?)を終バスまで。
ブランチわけて開発してたのは良いんだけどトランクにマージできない。
正確にいうと追加したファイルしか反映されない。
うーん。オペミスなんだろうけどなにが悪いかがわからない。
リリース予定だったのに。

嫁さんの体調が不良。
かわいそう。で、心配だ。
この寒さでインフルエンザ後の風邪を
振り返さなきゃいいけど。

あ、バスガキタ。

しかし本当にさみーな。

2008年2月12日火曜日

ExtJs-5(Widgetsの2)

今日はGridを。
参照してたチュートリアルがExt1Xだったので
リファレンスのサンプルで。
しょぼいところで??なんで描画されんのじゃ?
ってまよったけど、本当にしょぼくて泣けた。
今日は割りと楽しめた。

チュートリアルだと次はAjax。楽しみです。

=====
今回は助けていただきました。
ありがとうございました。
http://labs.unoh.net/2007/10/extjs_grid.html
というか、もっと早く知っていれば導入が楽だったのに。。。
今後とも拝見させていただきます。

そういや、Bloggerでとらっくばっくってどうすんだ?
=====

先日行ったタブのサンプルにひとつ追加して
そこにレンダリングさせてみた。

ソートとかその辺が日本語化されていないので
<script type="text/javascript" src="./ext-2.0.1/source/locale/ext-lang-ja.js"></script>

で日本語化。













いや、renderToを指定するときにtab3を指定してなくて、
なんで表示されんのじゃ。ってちょっと戸惑ったのはNG。
そのまえにExt1Xのサンプルそのまま残しててrender時に
引っかかってたってのもNG。


        Ext.onReady(function() 
{
var myData =
[
['Apple',29.89,0.24,0.81,'9/1 12:00am'],
['Ext',83.81,0.28,0.34,'9/12 12:00am'],
['Google',71.72,0.02,0.03,'10/1 12:00am'],
['Microsoft',52.55,0.01,0.02,'7/4 12:00am'],
['Yahoo!',29.01,0.42,1.47,'5/22 12:00am']
];
var grid = new Ext.grid.GridPanel(
{
renderTo: 'tab3',
store: new Ext.data.Store({
proxy: new Ext.data.MemoryProxy(myData),
reader: new Ext.data.ArrayReader({id: 0},
[
{name: 'company'},
{name: 'price', type: 'float'},
{name: 'change', type: 'float'},
{name: 'pctChange', type: 'float'},
{name: 'lastChange', type: 'date', dateFormat: 'n/j h:ia'}
]
),
data: myData
}),
columns: [
{id:'company', header: "Company", width: 200, sortable: true, dataIndex: 'company'},
{header: "Price", width: 120, sortable: true, renderer: Ext.util.Format.usMoney, dataIndex: 'price'},
{header: "Change", width: 120, sortable: true, dataIndex: 'change'},
{header: "% Change", width: 120, sortable: true, dataIndex: 'pctChange'},
{header: "Last Updated", width: 135, sortable: true, renderer: Ext.util.Format.dateRenderer('m/d/Y'), dataIndex: 'lastChange'}
],
viewConfig: {
forceFit: true
},
sm: new Ext.grid.RowSelectionModel({singleSelect:true}),
width:600,
height:300,
frame:true,
title:'Framed with Checkbox Selection and Horizontal Scrolling',
iconCls:'icon-grid'
}
);
}//function
);//onReady

働く理由って①

働く理由的な本を読み始めた。
すごく読みたかった本を兄が送ってくれた。
このほかに二冊あり、2冊知っていたが、一冊は知らなかった。
で、知ってた方の一冊を。

日本に伝統的に根付いている仕事感は
「公のため、天命に従って行うもの」
に集約されると考えられる。

私はどうなんだろう。
「天命~」はないだろうな。
公のためってのは根底にある。
でも組織に対しての執着は実はあまりない。
扱う商材と自分が提供できることと
求められていることが
マッチしたらGOだと思っている。
そして重要なのは人、環境。

ほんの出だし部分で自分を再確認するには
効果的な問いかけがあり、ふーん。って読める。

よい本を贈ってくれた。
少しづつ読もう。

2008年2月11日月曜日

三連休

は、名のとおり三日連ねて休んでましたね。
予定がびっちり入っていたのに、
体調不良は誠に恐ろしいものです。

みんなグズグズで完治はしてないものの
インフルエンザの嫁が持ち直したのは救い。
誰にも伝染らなかったし。

ただ勉強時間が全くとれなかったのは
ショック。
ブログ更新も寝る前に携帯だしな。
さ、明日からしごと。

がんばろ。

2008年2月10日日曜日

まぁ、そんなことだろうと。

昨日、長女か三十九度の熱を出し、
インフルエンザ検査するも陰性。
家に帰ってきたら平熱に。
はてあの熱はなんじゃったのだろう?

て感じです。

が今朝6時。
三十九度。

休日診療病院に。
私も悪化。
嫁もいまひとつ。

まぁ、そんなもんか。

2008年2月9日土曜日

やはり最後は。

自分が風邪を。
一日4時間睡眠を考えると二日分寝る事になる。すごいな。睡眠時間て。
いろいろやりたいことあるのになー。
でもそんなのかんけいなく眠い。
そういえばビリーとあってないな。
コシマワリがふよついてきたな。
外は大雪。
大変だ。

ねよ。

2008年2月7日木曜日

ExtJs-4(Widgetsの1)

今日はウィジェット。
チュートリアルをなめるだけだけど、毎日少しづつやるだけでも
気分がよい。

早速、
■MessageBox
メッセージボックスが出た。
なにせ、パラメータが多い。でも、いろいろ備わってて面白い。
サンプル貼り付けるだけで満足だわな。
モーダル、モードレスもあるし、
シングルライン、マルチラインのIFも持っててコールバックで取れるし。
面白くなってきた。

        //--- onReadyの分割テスト ---
Ext.onReady(
function()
{
var processResult = function( btn, text )
{
Ext.MessageBox.alert( btn + text )

}
//--- チュートリアル3(イベントハンドらに名前をつける) ---
//--- イベントハンドラを別定義 ---
var highlight = function()
{
Ext.select('p').highlight();
}
//--- 引数つきのイベントハンドラ ---
var highlight_arg = function(e)
{
//Ext.get( e.target ).highlight
//--- チュートリアル ---
var paragraph = Ext.get(e.target);
paragraph.highlight();
// Ext.MessageBox.show(
// {
// title: 'Paragraph Clicked',
// msg: paragraph.dom.innerHTML,
// width:400,
// buttons: Ext.MessageBox.OK,
// animEl: paragraph
// }
// );

//--- リファレンスサンプル ---
//alert( String title, String msg, [Function fn], [Object scope] )
//title : String
//The title bar text
//msg : String
//The message box body text
//fn : Function
//(optional) The callback function invoked after the message box is closed
//scope : Object
//(optional) The scope of the callback function
// Basic alert:
// Ext.Msg.alert('Status', 'Changes saved successfully.');

// Prompt for user data and process the result using a callback:
// Ext.Msg.prompt('Name', 'Please enter your name:', function(btn, text){
// if (btn == 'ok'){
// // process text value and close...
// }
// });

// Showメソッドのパラメータは多いなぁ。
//Property Type Description
//---------------- --------------- -----------------------------------------------------------------------------
//animEl String/Element An id or Element from which the message box should animate as it opens and
// closes (defaults to undefined)
//buttons Object/Boolean A button config object (e.g., Ext.MessageBox.OKCANCEL or {ok:'Foo',
// cancel:'Bar'}), or false to not show any buttons (defaults to false)
//closable Boolean False to hide the top-right close button (defaults to true). Note that
// progress and wait dialogs will ignore this property and always hide the
// close button as they can only be closed programmatically.
//cls String A custom CSS class to apply to the message box element
//defaultTextHeight Number The default height in pixels of the message box's multiline textarea if
// displayed (defaults to 75)
//fn Function A callback function to execute after closing the dialog. The arguments to the
// function will be btn (the name of the button that was clicked, if applicable,
// e.g. "ok"), and text (the value of the active text field, if applicable).
// Progress and wait dialogs will ignore this option since they do not respond to
// user actions and can only be closed programmatically, so any required function
// should be called by the same code after it closes the dialog.
//icon String A CSS class that provides a background image to be used as an icon for
// the dialog (e.g., Ext.MessageBox.WARNING or 'custom-class', defaults to '')
//maxWidth Number The maximum width in pixels of the message box (defaults to 600)
//minWidth Number The minimum width in pixels of the message box (defaults to 100)
//modal Boolean False to allow user interaction with the page while the message box is
// displayed (defaults to true)
//msg String A string that will replace the existing message box body text (defaults
// to the XHTML-compliant non-breaking space character ' ')
//multiline Boolean True to prompt the user to enter multi-line text (defaults to false)
//progress Boolean True to display a progress bar (defaults to false)
//progressText String The text to display inside the progress bar if progress = true (defaults to '')
//prompt Boolean True to prompt the user to enter single-line text (defaults to false)
//proxyDrag Boolean True to display a lightweight proxy while dragging (defaults to false)
//title String The title text
//value String The string value to set into the active textbox element if displayed
//wait Boolean True to display a progress bar (defaults to false)
//waitConfig Object A Ext.ProgressBar.waitConfig object (applies only if wait = true)
//width Number The width of the dialog in pixels
// Show a dialog using config options:
Ext.Msg.show({
title:'Save Changes?',
msg: 'You are closing a tab that has unsaved changes. Would you like to save your changes?',
buttons: Ext.Msg.YESNOCANCEL,
fn: processResult,
animEl: 'elId',
icon: Ext.MessageBox.QUESTION,
modal:true,
prompt: true
}
);



}
//--- pタグのイベントハンドラ ---
//Ext.select('p').on('click', highlight );
Ext.select('p').on('click', highlight_arg );
}//function
);//OnReaady

いんふるえんざ

昨晩、残業して終電。
夜中の一時ごろ嫁さんが降りてきて
熱があるととのこと。
39ども。


入社したてで有給のない私にとって
休むことはぺなるてぃだがそうもいってられない。
ので本日は休みをとって
家事全般を。

普段嫁さんがどんだけつかれてんのかっていうのを
身をもって感じた。

長女の世話
次女の世話
朝食
掃除
洗濯
昼食作り
次女の世話
長女お迎え
長女、次女の相手
風呂掃除
夕食作り
風呂入れ(長女、次女)
夕食
夕食かたずけ
寝かしつけ
明日の長女の準備等

本日思う限りやった成果だが、
おそらくまだ抜けがあるだろう。
われながらよくドライブできたなぁ。と。

ちなみに夕食はシチューと
炒め物。さいころステーキ。と
三品作った。明日もだめそうだからってことで作りおき。

夜、嫁さん実家の母がきてくれた。
業務期日、リソースが逼迫してきている中での
この事件はいたすぎる。

2008年2月6日水曜日

ExtJs-3(イベントハンドラ)

■インラインじゃないイベントハンドラ
function定義の中に直接実装するインラインのほかにちゃんと
いべんとはんどらに名前を持たせることができるということ。

■OnReadyをまたぐとだめ。
スコープは同一のOnReady内。
先日のOnReadyを分割して記述してみるって書いたけど、
イベントハンドラ実装と使用箇所は同一のOnReady内で記載されなければならない。
っぽい。

使用したオブジェクトを指定された場合は
・OnReady
・イベントハンドラ実装
・イベント実装
のセットで吐き出してあげる必要があるってことかな?

■イベントハンドらのパラメータ3つあるらしい。
チュートリアルより
・発生したイベント
・イベントID(?)
・いまいちわからん

■その他として
・elementのSet/GetのX,Yで位置をずらせるってことがわかった。
 これだけでもすごい収穫。
・TabPanelが思った以上に簡単にできることにおどろいた。
 これもつかえるなぁ。。
 (APIリファレンス多すぎ。。。)
 var tabs = new Ext.TabPanel({
renderTo: 'my-tabs',
activeTab: 0,
items:[
{contentEl:'tab1', title:'Tab 1'},
{contentEl:'tab2', title:'Tab 2'}
]
});

HTML側で
<div id="my-tabs"></div>
<div id="tab1" class="x-hide-display">
<p>タブ1</p>
</div>
<div id="tab2" class="x-hide-display">
<p>タブ1</p>
</div>


■構成イメージ
ASPX側でDBからオブジェクト情報拾って
その分のDivタグを生成してみる
その際、X、Y座標等も当然DBにて管理
OnReady内でElement取得してDB情報を反映

2008年2月5日火曜日

ExtJs-2(OnReadyは多重で書いても関係ない)

イベントハンドラのサンプルを試す。
きになったのでOnReadyを分割してみる。
問題ない。

※使用したいメソッドをのレンダリング情報生成の際、
OnReadyの開始と終了を把握して作成しなくてもよいということ。

 //--- ライブラリ定義 ---

<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>
<script type="text/javascript" src="./ext-2.0.1/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="./ext-2.0.1/ext-all-debug.js"></script>
<link rel="stylesheet" type="text/css" href="./ext-2.0.1/resources/css/ext-all.css" />

<script type="text/javascript"><!--
Ext.onReady(
function(){
//--- チュートリアル ---
var myDiv = Ext.get('myDiv');
myDiv.highlight(); // 要素の背景が黄色にハイライトされ、もとの色に戻っていきます
myDiv.addClass('red'); // カスタムCSSクラスを追加します(ExtStart.cssで定義してある)
myDiv.center(); // 要素をセンタリングします
myDiv.setOpacity(.25); // 要素を部分透過にします

//--- チュートリアル2(select) ---
Ext.select('p').highlight();

//--- ボタンイベントハンドラ定義 ---
Ext.get('myButton').on('click',
function()
{
alert("You clicked the button");
}
);
}//function
);//OnReaady

//--- onReadyの分割テスト ---
Ext.onReady(
function(){
//--- pタグのイベントハンドラ ---
Ext.select('p').on('click',
function()
{
alert("You clicked a paragraph");
}
);
}//function
);//OnReaady
//--></script>

2008年2月4日月曜日

雪の影響

昨日からのゆきで自転車が出せず。
バスも遅れて、かつ考え事してたら降りるバス停乗り過ごした。
しまいにゃ凍った路面で滑りそうになり、
向こうから自転車で走ってきた野球部らしい学生を焦らせ、学生も若干スリップしてお互い微妙に恥ずかしくなったりと
雪による影響は大きい。

ExtJs-1(イントロダクションとExt.get)

会社ではWebアプリをやり始めた。
もう四年のブランクがある。

で、ASP.NETの学習を久々に。
その過程で
会社のYさんにExtJSの存在をおしえてもらった。
ので学習しよう。


(XOOPS,OPenPNE)の学習ももちろん。
浮気だ。

■Ext JS
http://extjs.com/
イントロダクションから。
http://homepage3.nifty.com/a-itou/javascript/introduction-ext.html

■やりたいこと
・ASP.NETサイドでHTMLレンダリング情報の生成
・ExtJS使って動的操作(ASP.NETでリテラル排出)
というしくがつくってみたい。
それでで、D&DでDB情報を加工できるボックスを作りたい。
この仕組みさえできればやりたいことがどんどん可能に?

■環境はもちろんVS2008で。
JavaScriptデバッグ機能使ってみたいし。
さらっと動かしてみてブレイク、ウォッチができるのはめからうろこ。

で、Extなんだけど、
①ライブラリ読み込み
②チュートリアル
var myDiv = Ext.get('myDiv');
myDiv.highlight(); // 要素の背景が黄色にハイライトされ、もとの色に戻っていきます
myDiv.addClass('red'); // カスタムCSSクラスを追加します(ExtStart.cssで定義してある)
myDiv.center(); // 要素をセンタリングします
myDiv.setOpacity(.25); // 要素を部分透過にします

冒頭のこれで結構感動。
サンプルでもかんどうしてたけど、所詮は作ってもらったものをみただけ。
ただコピペしただけだけど、実際じぶんでやってみると、面白いぞこれ。

サンプルは山ほどあるので
少し筒噛み砕いて形づくっていこう。

2008年2月3日日曜日

Synergyで連携

とても省スペースなのでパソコンを左右に置けない。
なんか3Dなレイアウトのため、
キーボード、マウスも一組。

さて。
Synergyで使えるようにする。

デスクトップをサーバ(キーボード、マウス所有)
ノートをクライアント

とする。

①双方にインストールして
http://synergy2.sourceforge.net/

②クライアントの設定











③サーバの設定1
サーバとしてつかうよ。と設定。














④サーバの設定2
だれと誰がどうくっつくのよ。
という指定。
・Screenにコンピュータ名をいれて(双方)
・サーバの上がクライアント
・クライアントの下がサーバ
ってせっていする。













⑤あとはサーバがわのスタート実施。
⑥クライアント側のスタート実施。

これだけ。

ノートPCにXAMPP入れてXOOPS、OPenPNE、SQLServer等のサーバAPの類が入ってるので
これがあるととっても便利。

うれしい限りだ。