カドルドエグ 的个人资料たま(ご)の記録照片日志列表更多 ![]() | 帮助 |
|
|
10月29日 イノベーションセンターでのLINQセミナーに参加してきました昨日未明にたまたまキャンセル待ちで入ることができたので急遽参加。
ちょうど、LINQについての知識がほとんど皆無だったので非常にためになりました。
一応、正式に.NETに組み込まれたときから存在だけは知っているし本もちょこっと持ってはいるものの、
積読しっぱなしだわ聞きっぱなしだわで。。。
今回はハンズオンもあり、基本の部分を少しだけではあるけど書けるようにはなりました^^;
以下、知ってる人からすればあまりにも「今更」なメモ。。。。
----------------------------------------------------------------------------
・LINQは、「全て一つで事足りる」ことに依存せず、「操作」について共通利用する。
「構造」について平準化するものではないことに注意。
・LINQといえば必ず紹介されるこういう↓スタイル(クエリ構文)
IEnumerable<string> result = from p in places
where p.Legth == 2
order by p
select p.Substring(0,1);
は、以下の表現を簡素化したものである。
IEnumerable<string> result = places.Where(p => p.Length == 2).OrderBy(p => p).Select(p => p.Substring(0,1));
→これを「糖衣構文(シンタックスシュガー)」と呼ぶ。
・LINQはコンパイルされると最終的に拡張メソッドに変換される
→クエリ構文ではLINQの全機能を使うことはできない(クエリ構文でカバーされてないものが多々ある)
・LINQというか拡張メソッドのイメージ(前述のメソッド構文を例にした場合)
places:元のコレクション > Where:データの絞り込み > OrderBy:データの並び変え > Select:データを加工し新しいコレクションとして返す
左から右へ値が引き渡され、フィルタリングされているイメージ:パイプライン処理
・前述で書いたようなLINQ処理は、その場で行われて(今回の場合)resultに格納されてはいない。
この後で、foreachなどでresultが使用されるときにはじめて動作する。
結果セットをインメモリで保持しないので別途保存(ToArray()など)が必要。
・C#及びVB:手続き型プログラミング = 問題の解法を記述
→LINQは、そこに宣言的プログラミング(= 問題そのもの、必要とする結果を表現)を持ち込んだものである。
問題の抽出方法はLINQの実装側が考えること。
・従来との対比
<<LINQなし>>
List<String> companyNames = new List<String>();
List<String> result = new List<String>();
foreach(string c in companeNames)
{
if(c == "Microsoft")
{
result.Add(c);
}
}
<<LINQあり>>
List<String> companeNames = new List<String>();
return from c in companeNames
where c == "Microsoft"
select c;
やってることは同じでも表現がとてもすっきりしている
・C#内でのLINQは、C#2.0~3.0にかけての新しい技術で成立している。
→デリゲートや匿名メソッド、拡張メソッド、ラムダ式など ・クエリ構文で使用される「句」はメソッド構文にしたときの「演算子」に相当。
※一部除く。詳細はMSDN等を見てください ・クエリ結果は、RangeやAll、Anyといったメソッドで活用させることができる。
※詳細はMSDN等で。 ・よくあるLINQプロバイダ…
LINQ to Object:配列やListなど
LINQ to SQL:SQLServerへのアクセスをサポート。 対象は2000~2008及びCompact 3.5。 DataContextがポイント。 ストアドの呼び出しも可。但しどんどん遅延していくので注意。 LINQ to XML:3.5から加わったSystem.Xml.Linq名前空間内のクラスを使用。より直感的に扱えるようになった。 Xmlをインメモリで取り扱う。 VBではXMLリテラルなどの機能で直にコード内にXMLが書けるが……。 LINQ to Objectにあった標準的なクエリ拡張メソッドの他、XML用のも用意されている。(System.Xml.Linq.Extentionクラスで定義) 10月24日 第1回.NET中心会議に参加してきました詳細はこちら。
今回は久しぶりにがっつりメモってきたので掲載しようかと。
…ただ、相変わらず飽くまで「メモ」なのでそこはあしからず。
また、あまりよく理解できてない個所に関しては間違った表現があるかと思います。
その時は発見次第コメントでご報告頂けると助かります。
---------------------------------------------------------------------------------------------------------
@IT編集長 デジタルアドバンテージ おがわさん
前身は「VB研」:名前がVBオンリーっぽいので「.NET開発者中心」 ロゴもお金かけてます:イメージは「野武士」 日本の開発者を元気づけたい ★なんかしりきれとんぼ 宣伝:太陽生活 補助金サーチ クロールアプリ開発にえんどうさんが携わっている 大手建築会社「そのサービスほしい」最初は人使ってやろうとしたけど断念 →これがITの原点:人だけではできないこと ニーズにあったソフトを開発すること パネラー
おがわさん インサイダー.NET編集長 えんどうさん 副編集長(助手) グレープシティ やまきさん インサイダー.NETライター 日立ソフト みやざきさん(こぐまさん) MS 赤間さん(こんさる) 新村さん(製品マーケティング) 鈴木さん(同じ) Silverlight、クラウド、Azureは時間なければカット
大テーマ:Winアプリ&Webアプリ>データアクセス>>.NET FrameworkとVSは一括で
<3分間で「現状」を説明> 【Winアプリ】 やまきさん: Winフォーム:1からあるUIテクノロジ 2から大きくアップデート 3.5でもWinフォームは2.0と変わらず おそらく一番使われているUI技術 3.0からWPF:Vistaと同時に投入 実際は出た当初は移行ではなく使い分けで説明していたが…… 最近は「WPFに移行推奨」 Winフォームはメンテモードに。 4.0でも、Winフォームは存在こそしているが機能追加等はない Silverlightのブラウザ外:動きが一緒なだけ えんどうさん:
印象=WPF少ない 現場は? WPFはグリッドが別ダウンロード:4.0から含まれる→この現状が要因の一旦? VSの開発でWPFでもWinフォームでもぺたぽてができる じゃぁ、移行は必要ない?なんのためにWPF?デザインぐらい? みやざきさん:
現場でも実際少ない。WPFの方がリッチだとは思うけどやっぱりまだまだ。 コンポーネントでもWPF版が出てないなど、外部環境が整ってない 今の業務アプリ:グリッド中心 日本は紙ベースの帳票見やすいという文化が根付いてるので 簡単に移行の流れには持っていけない WPFへの移行の理由:デザイン性、美しさ、センスの問題 作業分担はわかるけど現場でそういう仕事があんまりない 環境が整ってない→普及しない やまきさん:
少しはWPF版あるけどメインでは出てない。鋭意開発中。来年以降にいくつか出る…? レイアウト:WPFで解像度の差の埋め方が楽になった WPFはやらない理由のひとつ:開発環境が追いついてない コンポーネントも少ない では、WPFで作るメリットって何?という問題に。 WPFのUIの基盤:自由度高い 柔軟性ある→デザイン性の自由度だけじゃない ちょっとしたボタン配置変更などは、Winフォームだとプロパティになければ自分で描画だったのが、WPFであれば データ扱うための基盤もWPFは整ってる:UIだけの頭でっかちだけでなくデータ扱うのと分割 洗練されてる 移行は難しくても新規案件であれば検討の価値あり すずきさん:
WinフォームとWPFとの違いを理解してる方少ないんじゃないの? Winフォーム:歴史的にいうと、C++やってるとわかるけどGDIというAPIをラップしたもの。 GDIという技術はWin2(16bit)の時代から。画面上にドットを打つ、色を塗る、というAPI ビットマップを扱う部品の集まり 広範囲のハードをサポート WPF:その下に流れているAPIテクノロジが違う。DirectX=ゲーム用のグラフィックアクセラレータに
近いとこで動く。3D扱ったりかなり高速でやるためのAPIをラップしたもの ベクターベースの描画するためのAPIをラップしたもの 比較的新しいハードが持ってるものをサポート 赤間さん:
.NET=ピクセルベースUIはWinフォームやGDI+ 2次元絵 ベクターベースはDirectX ドキュメントベースのUI:HTML、ASP.NET →これらをまとめて扱える技術 UIと技術が一本化してた→今は複数技術を織り交ぜる
現在開発される高度なWinアプリ=UXはこれらを混在させなくてはいけない→XAML=WPFの根幹 開発手法はどう変わる?→VB6:ぺたぺたはりつける
WPFやSilverlight:レイアウトという概念のもとに作られる CanvasはWinフォームとほぼ同じ しかしそもそもそんな高度なUIいるんか?というのもある。 ニーズのバランス ぱわぽみたいに勝手にサイズごとにレイアウトかわるアプリが作りやすくなった 要は「絵じゃない」 現場でそもそも高度なUIを必要とするものがあるのかという問題
誰しも「かっこいい」とは思うけど自分の日常業務でやるのかというとそうでもない コンシューマー向けくらい →でも最近、高度なUIを必要とするのは、業務でも参照系だと必要かも。 データ分析系だと、PCに詳しくない人向けに直感的にわかるUIが必要 →Winフォームだと行き詰まる 今まで使えなかった人が使えるようになる、マニュアル見なくても直感でわかるUIへのニーズ コンサル現場でも、WPFデモ見せると驚かれる→思いつかないらしい
協業があるケース:デモPG作るときとか しんむらさん:
2008:XAML編集めんどい 2010:DataGridおよびデータバインディングD&Dなど、Winフォームで簡単にできたことがWPFでも できるようになる→追いつく デザイン:Expression デザイナが作ったものをブラッシュアップ 元々はデザイナと開発者のコラボがテーマ デベロッパがすべてをやる必要ない:作業の切り分け→WPFだとそれができる マーケットの状況:これまでは開発者の生産性を重視してきたが、今の景気等でエンドユーザーの生産性を上げる必要性も出てきた→リッチなUIが求められている
WPF移行するのはいいけど金ない、といわれる→実際はWPFはWinフォームの一部としても使える
アプリ全部直す必要はない すずきさん:
実際はWPFにいきにくいという環境まだ多い こちらとしては新しいものを薦めたいが……。 Winフォームもこれからすぐ使えなくなるわけじゃなし。但し将来的にはWPFをおすすめしやすい環境がそなわってくる たとえば3年後、5年後どうなってるかを考えてみてほしい MSの人間だからというのもあるけど、必ずWPFの時代が来る。 Q&A
WPFとWinフォームでは後者の方が生産性が圧倒的に高いのでは? →社内のツールであれば十分。しかし、ITリテラシー低い人向けだとWinフォームだけでは足りない場合がある。 生産性にかんしては、ツールが多い等環境の違いもある。本来はWPFの方が使いにくい作りにくい、というのはない WPF勉強するとSilverlightでも使える:サブセットだから パフォーマンスやリソースの消費は?
→パフォーマンスという観点では、描画スピードは圧倒的に速い。但しハードに近いとこで動いてるのでハードのスペック次第になる。 但し、今普及しているハードの性能を考えると、Winフォームの方が早い可能性大 チューニングが進んでるのはWPF 【Webアプリ】
みやざきさん: ASP.NET:ぺたぽて&ドラッグアンドドロップなど、Winフォーム作ったことある人にとってはすごく楽。しかし、これまでのWebアプリ作ってきた人=HTML書いて~という人にとっては使いづらかった →そこで出たのがMVCというFramework:より大規模な開発にも耐えられるように よりリッチな表現→Silverlight 3年後:今のWeb界はどれが標準になるかわからない混沌とした状況なので不明
ギャップが激しいといっても、今実際Webアプリをリッチにしようとして使うのはjavaScript
ViewState:かなりたくさんの情報持ってる→体感的に遅くなる MVCは現状、VSのSP1入れても使えない(MSのサイトからだうそして使う)ので、そもそも存在知られてないのかも
大規模に耐えうる=テストしやすくなった 2が出るにあたって、考え方は無駄にならないけどこれまでの「モノ」は無駄になるかも…。
SilverlightはSilverlightでブラウザ内全画面別個で
やまきさん:
比較的小さいもの=Webフォームが向いてる しかし、ViewStateなど、使い方によっては重い MVCであれば軽いしきれいなHTMLをはいてくれる コントロール=中にVとC 考え方がちょっと合わない
体験:病院で、CT写真表示のアプリがなぜかIE…→Webアプリにする必要あるの?
Javaからきてる流れ? えんどうさん:
1.0だと基本手書き:ギャップが激しい ViewState:手間暇かけた割にチームでの調整が必要 MVCとASP.NETの混在はできないの?
MVCに新しいコントロール:それできれいなHTMLはけるの? 3年後は??
Silverlightで全画面アプリは?それだとWinフォームとかいらなくなる?
赤間さん:
MVC出た時「今更先祖帰りしてどうする」 素でのHTML→コンポーネントベースという流れから出たのがASP.NET:対話型アプリ作りやすい 確かに参照系ならMVC役立つところ多いと思うけど、使い分けるべきだと思うしViewStateが何でもかんでも悪いわけじゃないしそもそもViewState大きくなってるってのは設計的にそもそもどうなの? →ViewStateでかくなるからMVC、は危険 URLマッピング:アマゾン=スラッシュ区切りでISDN 検索で引っかかる カタログデータをネット上にさらす分には便利 でも…?
どこで切り分けるべきか:素のHTMLをきれいに出したい&コンポーネントベースで開発したい&javaScriptとか使ってリッチにしたい の3つ
きれいに出したい:生産性は犠牲にせざるを得ない
コンポーネント:きれいさを犠牲 更新タイプだと威力発揮 操作性高めたい:ASP.NET Ajaxなど 但し、AjaxでjavaScriptがりがりは生産性高くない コントロールつかって「吐き出させる」ならまだしも。→そこまで高度なUIを実現させるべきなのか、という話 日本では、ActiveXインストはOKなのに.NETはだめとかなんでもWebアプリであれば案件とれるとかいう土台がある
漏れるものについては.NETで、というお客さんも。 混在:できる
コントロール:対話型処理のハンドリングで発揮 新村さん:
Webフォーム:URLの問題点 MVC:URL指定で確実に表示したいページが確実によべる RESTの考え方 インターネットで使う 鈴木さん:
ASP.NETは結局HTMLはく技術 Web系はHTMLに依存して進化してきた→MVCが出た理由の一つ HTMLを生で書くというのを正とすべきか否か: HTMLを生で=WinフォームでいうならAPIを直書きするのと同義 →だからASP.NETが出てきた どちらか一方で行く、という話にはもっていくべきではない なぜ、「Webアプリを作る?」を考えてみよう なぜ「ブラウザを使う」かを考えてみよう
例)今からHTML5のアプリ必要? まだSilverlight開発がほかに追いついてない
確かにインストが面倒なら、Silverlightフルスクリーンもあり Q&A
工数や開発者の確保: →何をゴールとするのか でも基本、JavaScriptごりごりは薦めない 書かないとなると、RIAみたいなランタイムが対抗馬に Java
→Javaって思い込みで作られてるとこがある Winアプリ:操作性ちょっとかわる 最近はJavaも.NETも両方できる人が増えてる 【データアクセス】
赤間さん: SQLべた書き ウィザードベース LINQ ORマッピング 単なるウィザードベースではない エンティティ 上2つが大半 性能的な話するとちょっと複雑:べたがき<LINQtoSQL<ADO.NET Entity 重い
アプリケーション処理の中の「比率」で見る 業務に依存する アプリケーションを選んでしまう
大規模案件の場合:様々な状況に対応できることを重視 参照系:生産性を重視 うまく併用することをすすめる 技術的にみた場合:LINQtoSQL ダイレクトにSQLがマッピング ADOetc:一旦概念モデルにマッピングしてから 上位のデータモデル概念を扱いたいときに向いてる MSとしてはこれに重きおいてる
LINQtoEntity以外は消えてくんじゃ…?→LINQtoXXX=言語構文 SQL:汎用概念 EntitySQL:概念モデルに書く:言語に依存しない 開発中心に使われていく
「なぜ」LINQtoEntityを使うか どこに使うメリットを見出してるか
概念データモデルだと2の方がよいけど 開発者にとって身近なのは論理データモデル:区別つかない人多い
概念モデルから落としておくべき:概念→論理→物理の順がベスト 実際の現場では論理からはじめるのでインピーダンスミスマッチ発生 究極は概念だけを書けば全部おkをめざす トランザクション設計、アプリケーション設計大事
データセットが非常によく出来てた:普通だとそれだけでできてしまう。
変更履歴をまとめて一括で扱う スマクラ的 POCOに対するニーズを満たすための概念=LINQtoEntityなど 履歴が持てない→外部に持たせるということでデータコンテキスト 昨今のPOCOのニーズにこたえるのが課題 使いやすさ、わかりやすさでいえばデータセット
えんどうさん:
新しいもの使うとパフォーマンスは? 今から安心して使えるの?
画面から作ることの方がわかりやすいからだと思う。概念からというか概念自体作るのが大変
やまきさん:
みやざきさん:
実際は画面設計中心→データ関連は後付けになりがち 学術的順でいこうとすると厳しいのが現状 【.NET Framework 開発言語】
ここから進化していくための足がかり COBOLがいい、という人の理由:上から下に向かってやるのがよい
利用バージョンの比率;グレープシティの商品利用者のアンケート
思ったより早いスピードで3.5が普及している(少なくともグレープシティの商品利用者の中では) VSと.NETのバージョンは同じような感じで推移 2003は2002のバグフィックス版的位置づけだったのもあって移行が早かった 昔はVB6からの移行の関係でVB.NETの案件が多かったが、最近はJavaからのというのもあってC#が増えてる
今VB使ってても将来的にC#にしたい、という人が少なからずいる、ととれる結果→理由は? でも両方存在するしVBなくならない ただ、ベータ版のサンプルコードがC#多いのは事実 開発側で使ってるのがC#だから;なので、読めるようになるくらいはしといたほういいかも 今後、VBとC#は仕様をそろえる流れ
VBの方がインテリセンスのききは良い:MyとMeとドットがわかればカーソルで、という話さえ VB:初心者向け 思想の違い 2010からWPF使い始めてる:フルWPFモードもある
Winに標準で入ってるアプリにフルWPFがない:ExpressionはフルWPF
電卓はWPF 2010のうり:テストが使いやすい Pro版以上 Winフォームの自動化機能がついた 動きを記録して再生→自動化 テストセンター:テスト専用ツール
最新を追いかけるのもいいけど、幅をもたせるのも大事:視点ごとに触る技術を変える 別なアプローチをとってみる
開発環境として進化を期待:かゆいところに手が届くツールに
Winフォームの開発は変わらないだろうけど、WPF、Silverlightの開発は2010でスタートラインに立った感じ ・WPFは今後のコントロールや生産性の関係で先がある。新規案件であればぜひWPF
・ASP.NETに関しては、WinフォームとWPFの関係とは違って、MVCなどと共存・使い分けになってくる また、そもそもブラウザを使うことが適しているのかも考えるべき ・「適材適所」が重要なキーワード 存在している技術には存在している理由があり、何ができて何ができないのかを理解して使い分けるべき。また、新しく出現したエリアにも目を向ける。 同じ5%生産性を高めるなら、まったく違うとこに目を向けて生産性を上げる努力をしてみる ・自分の得意なところを深くしつつ、視界は広く。いかにT字型に成長するか ・「作る」は本来楽しいものであるべき ポジティブな感情で使ってくれるとうれしい 6月6日 [追記]わんくま勉強会東京 #34わんくま同盟 東京勉強会 #34
スタッフの方々、ご参加の皆さま、お疲れ様でした。m(_ _)m
今日の各セッションの様子は、それぞれのブログの中で語ってくれることを期待するとして(笑)
リンク先だけおいといて;、諸事情により自分の言い訳に終始しますすみません。
以下今回のスピーカーさん(且つブログ持ってる方)
・がるさん
LTスピーカー(且つブログを持っている方)
そして私。
ここにあげてない方にも、Twitterのアカウントはある方などもいらっしゃいます。
はてさて。
今日も懲りずにLTに参加したのですが…………
・そもそも自分で今回のテーマについて練れてない
・時間気にしすぎた
…ので、あのような恥さらしになりました…orz
申し訳ないという以上に壮絶に自己嫌悪です…。ええ。
ホント生きててすいません的な。。。。
使った資料はこちら。
後々見たら、
というかセッション中に、
「これは一つのテーマにまとめられないなー」と。。。
途中で話題が別方向に逝ってますね;;;
要は、
「『これイイ感じにつくって』と言っていきなり渡されても
相手のことも相手がどうしたいのかもわからない状態じゃ
デザインなんてやりようがないんだよ!!!」
てのを言いたかったんです…。
実務でたまに、デザインぽいことをやらされるのですが、そのときに決まって言われるのが
「これイイ感じにしておいて」
…どんな感じだよ、と。
まずその前に言うこと、伝えるべきことがあるだろう、と。
幸い、こちらからつっこめば詳しいことを教えてくれる環境にはいるんですがね…。
で。
頼む側はもしかして
「この人は美術に明るいからモノを渡せば見るだけで「イイ感じ」にしてくれるだろう」
と思ってるのかな、と考えたのが今回のネタのきっかけ。
その原因として、
相手がいてこそ、相手のことがわかってこそ成り立つ、「デザイン」の意味について
理解されてないのが一つのあるのかな、と考えたわけです。
プログラムだって、
まずは要件定義があって、仕様書があって……と、
相手のことを知ってから、相手が何をしたいのか何を求めてるのか調査しはっきりさせたうえで
開発しますよね。
さらに、相手についてわかったら、それをきちんと開発してもらうために開発者にうまく伝わるようにしますよね。
デザインの依頼だって同じ。
「相手がどうしたいのか」
がわかった上で行うこと。
「イイ感じにして」ってのは、それは相手(クライアント)にとって?それともデザイナーにとって?
私の経験だと、
「おれそういうのよくわかんないから君の好きにしていいよ」
といわれる。
いやー………
そうじゃないだろう、と。
正しい発注者はクライアントだろう、と。
私の好きにするわけにはいきませんよと。
なぜなら、
自分の好きなように自分用に作品を作ること = アート
と
相手が望む形に整える、作品を作ること = デザイン
だから。
ただ、
「好きにしていいよ、っていわれたんだから
自分の好きにする = クライアントの意見を聞いて作る
って解釈してもいいんじゃないの?」
と思うかもしれない。
今回はそういうのは除きます。飽くまで元となっているモノの発注者とデザインを依頼された者とのやりとり。
そんなわけで、
言い訳終了です。
次(あったら)はこんなことないようにせねば…orz
--------------------------------------
追記:LTリンクに割と普通さんのブログ追加 5月30日 Silverlightのバナーセミナー昨日、↓のセミナーに参加してきますた。
デザイナー向けのセミナーということで、Expressionの公式サイトの方にしか
主な案内が無くて、私もたまたま「Silverlight バナー」で検索したら引っかかった、みたいな。
でも、これで「無料」ってのはほんっとお得!
ご飯(軽食寄り)出るし!(←それかよ)
何より、今までのってもっぱら開発者向けのだったから、こういうのはマジで
「待ってました!」
という感じ。
多分、自分的に今までで一番充実したセミナーだったなと。
しかしそんなときに限って名刺きらしてる件…orz
恥を覚悟で講師さんらに名刺だけ頂いてきたという…。。。
本当に恐縮です。。。(※ちゃんと後でメールさせて頂きました。)
さて。
今日も今日とてメモ公開。
ただし、会場がレストランだったこともあり電源がなかったので手書きを帰宅後に
OneNoteに落とすというスタイルをとりました。
頂いた資料の文(というか見出し)を引用しつつメモも…、
という感じで書いたのでいつもよりは、飽くまで「いつもよりは」マシかなと。
あ。誤字脱字の苦情スルーは変わりません。あしからず。
----------------------------------------------------------------------------------------
【すごいぞ!楽しいぞ!Micorsoft Silverlight】 ・インストールの画像は変更可能:インストール用ボタンをGif画像に ・利用先ターゲット:マーケティング コンテンツ配信等々 ・フォトビューアー = Deep Zoom つけたタグごとに絞り込む、といった動きも可能 ・MSNショートショートコンテストの例 ・データ連動:Silverlightが最も得意とするもの ・最近では…:Eコマース、チケット予約、資産運用などの方面にも進出中 ・楽天アフィリエイト用ブログパーツ作成→4月末から稼働中:Silverlight製 ・業務アプリは情報系が多い ・BI:ダッシュボード:派手な動きなくとも操作性を上げるためにあえてSilverlight →手(マウス)で並べ替え ドラッグアンドドロップ:この辺の動きはまだHTMLのみではつらい ・デジタルサイネージ:動く広告:駅とかにあるやつ ・Silverlight for モバイル:現在開発中:詳細はまだいえない まずはWindows Mobileへの対応 米国ではNokiaので一つ対応してる?のがある ・イテレーション:反復 ----------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------
【短期間で極める!Silverlight2バナーを作るための実用!Blend2テクニック】 ・情報は開発者寄りのは多いがデザイナー視点のは非常に少ない ・広告は納期が短い
[1:作業全体の流れ] ・使用するソフトにExpression Web:最後にパラメータ変更時にエディタとして使用 DreamWeaverでも可能 ・Silverlight、Flash:どちらかを先に作るか、または並行して作る :今回は現実的な話としてFlash→Silverlightにおきかえ、というのが多いのでFlashで制作したバナーをベースに制作 ・レギュレーション(仕様) 媒体:MSN Silverlightのバージョン:2 サイズ:350*240 容量:250KB アニメ:15秒以内ループ無 形式:XAP 他:フレームレートは12~18fps 背景は白 ・今のフロー…… モック作る→チェックする→Flashオーサリング→動作確認→調整や代替Gif作り→納品 これから……… モック作る→チェックする→Flash&Silverlightオーサリング→動作確認→移植作業→調整や代替Gif作り→納品
[2:Blend2の起動と初期設定] ・新プロジェクトでSilverlight2アプリを選択。言語はC#。 ・Blend Flash オブジェクトと レイヤーフレーム タイムライン アートボード ワークスペース プロジェクトタブ ライブラリ プロパティタブ プロパティ リソースタブ カスタムユーザーインターフェース カスタムスキン PhotoShopのカスタムブラシ ・作りながらXAMLを覚えるために分割ビュー Blend Flash UserControl _root LayoutRoot シーン ・Storyboard→UserControl.Resourcesタグの中 ・デフォルトのパネル系コントロールはGrid:リキッドレイアウト = 相対位置を保つ 左上を基軸にした座標をベースに制作するのでCanvasに変更:これでFlashと同じ環境 ・サイズ変更はプロパティからでもXAMLからでもお好みで
[3:デザインパーツの読み込み] ・読みこみ可能なデータ:JPG、PNGがベスト:資産流用のためGifは避ける(Flashでは可能) ・イメージデータ読み込み:イメージ用フォルダをプロジェクト内にきっておく ・いじるファイル = Page.xaml.cs Flashでは表に出ないファイルがBlendでは出てるので気をつける(参照フォルダやPropertiesなど) →VS見慣れてると違和感ないのだが ・VSの起動:デザイナにとってはBlendが一発で起動してほしいところだが…?→関連付けは「可能」ではあるが非推奨。 右クリックで頑張るかプロジェクトファイルをBlendアイコンにドロップ ・Blend Flash ソリューションのビルド パブリッシュ ソリューションのテスト プレビュー ・ビルド後のファイルの場所:プロジェクトのファイル名/bin/Debug リリースでのビルドはVSが基本 XAPファイルが最終的な納品形式 ・流れとしては(若干こじつけはあるとしても)BlendもFlashもほぼ同じ
[4:アートボードへのデザインパーツ配置] ・イメージファイルを右クリックで「外部で編集」:Flashだとサムネイルが見れるが… ・レイアウト用テンプレート(イメージ)を配置 ・このイメージを下敷きにして制作:座標がわかりやすくなる 絵コンテのコマみたいなもの ・配置したデータには必ず名前付け:Flashだとレイヤーとオブジェクト本体でばらばらに名づけられるがBlendは共有なので注意 →開発者視点だとインスタンス名ということで理解できるが… ・ザムる:イラレプラグインでXAMLはいてくれるのがあるがコピペ必要→Designにおとして直にXAMLファイルにする方が早い ・アニメーションをつける前に:Blend タイムライン終わっても実体が残ったままになる→無駄な動き有 Flash タイムライン終わったら実体消滅
[5:アニメーションをつける] ・Blendのタイムライン:1600%まで拡大 スナップ精度を変更 = めもりどおりに動いてくれる ・移植するFlashの「X,Ys」を見る:Flashがフレームで見るのに対しBlendは飽くまで「時間」を軸とするから ・タイムライン始まる前でも動いてる:この無駄な動きでCPU食う場合があるので「ホールドイン」 ・バナーでよく使うアニメ:フレームイン&アウト イージング フェードイン&アウト ワイプイン&アウト ・ワイプとは:対象をマスクし時間とともにマスクをずらすまたは消していくことで表現 ・アルファフェードイン:Opacityプロパを変更 ・始点設定→キーフレームをセット→終点設定→キーフレームをセット ・「記録オン」の状態でレイヤーの増減は× ・四角形→クリッピングパス→マスクされる ・ループ設定:共通プロパティの「RepeatBehavor」1x、2x、Forever
[6:アニメーションのスタートとリンクを設定] ・Silverlightは起動したらすぐにスタートはしない:LoadedイベントにStoryBoard1.Begin()メソッド Flashだと_root.play()に相当 ・リンク用クリッカブルの設定:透明なボタンを配置→それのMouseleftButtonDownイベントを設定してアクションを書く ・Blendはビルドとテストは別物 ・共通プロパのCursolをhandに
[7:Silverlight表示エリアの設定と納品用ファイルの用意] ・表示領域のトリミング:Default.htmlのスタイルシート部分にある #SilverlightControlhostに縦横値を設定する ・実行形式のファイルのみ移す ・HTML変更後にビルドすると上書きされるので最後の最後に変える ・データサイズダウン:Png圧縮「PNGGauntlet」画質を落とさず、ごみコードだけ抜いてくれる XAP圧縮「XapOptimizer」 ・XAPの実体はZIP ----------------------------------------------------------------------------------------
【イノベーションセンター】XAML入門 ~XMLから依存関係プロパティまで~5/26に行われた森博之さんが講師を務めたセミナー。
既に終了済みのイベントのため詳細ページが消えてるのでコピペ。
------------------------------------------------------------------------------------------------------------------------------
イベントの概要
「XAMLを使った○○~」 = SilverlightであったりWPFあったりといったセミナーは多いけど、 5月14日 TechFieldersセミナー「All About Silverlight3」本日、こちらに参加してきました。
タイトルにもありますが、Silverlight 3に関するセッションです。
本日の講師はエバンジェリストの大野元久氏。
4月にも同じタイトル・内容で行ったそうですが、
私はスケジュールの都合でそっちには参加できず今日に。
個人的には、興味のあるRIA関連の話がいっぱい詰まっててなかなか面白かったです^^
あと、
またもLT、ライトニングトークスに参加させて頂きました。
資料はこちら。
今回は技術的な話ではなく、(私の場合「技術的話題」といってもレベルがタカがしれてるのですが)
「日本語のSilverlight専門コミュニティやサイト、ブログって少な過ぎ!」
という文句…いや感じたことについて。
ゆるーいネタです。
資料内にあるサイトのほか、個人的によく見てる、
RSSで拾ってるサイトやブログは以下の通りです。ここのブログでもよくピックアップしてます^^;
但し全て英語圏のなのでご了承をば。。。
飽くまで個人的目線からなので参考程度だけに…; ----------------------------------------------------------------------- 北京オリンピック→普及に貢献 gyao、Yahoo動画→日本国内での普及に貢献 :米国に続き日本も普及率高い メディア関係メインに普及している イージング:イージングファンクション:動きの抑揚をつけられる バウンス 定義済みの関数を使用:表現によって変えてみよう 自分でも新しい関数を割り当てて使用することも可能 グラーエフェクト:スライダーの値を反映させる 画像ににじみを与える Blur Effect イメージエフェクトタグ = 単数形 =ひとつに対してしか指定できない →Borderタグでかこってやると、Borderの要素として扱われる ぼーだー いめーじ いめーじえふぇくと エフェクト:ドロップシャドウも可能 徐々に影がつく感じとか Grid Effect:Grid内のすべてにエフェクト:操作しているスライダーも含む ピクセルしぇーだー : フリップオーバーエフェクト 左右反転する もともとDirect Xで使っているもの エフェクトかける→反転する 処理の順番も関係あり うずまき効果とか:動画にもOk Silverlightでオンラインプレゼンツール→それをオフラインで使ってみようとか>その中の使えるエフェクトとして WPF:カメラの位置 SL3:置くのは3D空間だけどモノはあくまで2次元 ボタンにかたむきとかのエフェクトをかけても機能が崩れることはない:押せなくなるとかはない 例)ヘルプボタン押すとフォーム(紙のイメージ)が裏返ってそこに内容→Perspective 3D テキストボックスが斜めってると字も斜め カジュアルな3D表現 ゲームとか本格的なものをやろうとするとちょっと大変かも… ビットマップの作成が可能になった:今までは疑似的 WritableBitmap 引数に書き出したの時のサイズ かきこみをしてレンダリングをする →ビデオのスナップショット キャプチャ機能を作ることもできる WrapPanel:折り返し可能パネル 鉛筆アイコンのボタンクリックでエディットモード C#側で属性をつけたりなんだりで効果発揮 データフォーム:一つのコントロールを編集しやすくする [Bindable(false)]属性をClassの前に置いといたりとか→編集不可 BindingDirection.TwoWay OneWay 属性 編集の仕方の方向性 プロパティにDisplay属性 [Display(Name="名前")] [Display(Name="名字")] 表示される内容が変わる [Display(Name="名字"),Discription="firstname"]→ヒント出せる RequiredField:必須項目化させる [Range(1,100) ErrorMessage="xxxxxxx"][String.]設定以上の文字の長さとかでエラーを表示させることができる XAML:AutoCommit = True or False ページ遷移時に保存するか否か: 保存ボタン押さないとまた編集モードに戻すとか AutoEdit <dt:DataFormFields> データフォームのタグ ClearType:フォントでRGBの並びまで考えてスムージングしてくれる機能 ※SL3B未実装:最終版では実装予定 CaretBrush:ぐらでや効果、果てはイメージ、動画も設定してブラシ化 上と右はSL下はHTML:上のSLは動画:上:ローカルアプリ LocalMessageSenderオブジェクト LocalMessageReciver受け取り手 アニメを自動で再生し終わったらイベント発生→また再生 バイナリXMLをサポート&デフォルト:パフォーマンスアップ目的 テキストより効率的 Silverlightページ:フレーム内で動くもの ナビゲーションフレームワーク メインページにTagを使って各SLページに飛べるようにする ボタンのタグを取り出し、メインフレームのナビゲートのURIに設定→SLページへ ブラウザのURLも変わる=それぞれにブックマーク可能:デフォルトのページ名も設定できる 戻るボタン:ちゃんと辿った順に戻れる:今まではサイト丸ごと戻っていたのでSLサイトの前に戻っていた App.XAML Navigate:URIMapping Navigate:URIMapper で各URIを設定→Tagに設定するURIをAppで設定した短縮名にできる
Silverlightページもスケッチフローで設定というかBlendで設定できんの? →Blendでは最終版でおそらく可能になる / スケッチフローでできるようになるかは不明
スケッチフロープレイヤー:テスト用 英語版のワード入ってたら仕様書できあがってくる プロパティタブの縮小幅に制限がなくなった ビヘイビアはWPF
UXの目的:かっこよくするだけでなく、ユーザーの入力時の間違いを減らす・手間を省く・正しいページに導く -----------------------------------------------------------------------
4月21日 【Codeseek】第39回:Silverlight 3とBlend3の新機能から今後の開発スタイルを考える本日(時刻的には昨日)、Codeseekさんの勉強会に参加してきました。
前回、Osloのセッション後にちょこっとやったSilverlight3についてを、2時間に拡大してお届け。
なので、
こないだとなるべくかぶってない箇所だけメモ。
相変わらずの誤字脱字聞き間違いは御容赦ください。
--------------------------------------------------------------------------------
Silverlight製の言語、というのは存在しない:それぞれの言語から別言語を呼び出せる JavaScriptからマネージドを呼び出すこともできる 途中で飛ばしてもバッファリングで待たせることがない→飛ばした瞬間に画質落とす:画質落ちてる瞬間に残りを取りに行く 音はあまり途切れない あかまい:ログもみれる ビットマップに落してから転送:前はすべてCPUレンダリング 指定したSilverlightの域でエフェクトがすぐかけられる ↓サンプル集 http://samples.msdn.microsoft.com/Silverlight/SampleBrowser/index.htm DeepLinkとは:ボタンのタグプロパティに指定されたXAMLへ飛ぶ 小さなページ遷移 ↓RIAサービスを使った実例とか http://code.msdn.microsoft.com/RiaServices RIAサービス:英語版のVSにしか入らない 英語版を上書きして両用 日本語版FullSP1→英語版FullSP1→International Settingで日本語選択 新しいテクノロジープレビューをいろいろ使える:英語オンリーが多いから インストールメニュー:ブラウザの外で動くようになる:タスクマネージャで見ると?? →SLランチャーの名前でホスト 1画面1ランチャー どっちを強制終了したいか、というときはちょっと困る? 2つのらんちゃーの間のデータのやりとりは?:ローカルコネクション(SL3から) ローカルに限って同じドメインのあぷりどうしで通信可能:ドメイン一緒であればブラウザ不問 Local connection Silverlight3で検索 アプリのアイコンは変えられるの? 単独でSLランチャー動かしてるときのデバッグ:DOMアクセスとかありえないのにやってしまったらどうする?? 「削除はユーザーにはさせたくない」ときは?:そのシナリオは考えてない カレントユーザーのとこにインストールとおもわれ:ALLUserはたぶんない 自動バージョンアップ可能 アウトオブブラウザ:マックも可能 Blend3本体とTFSとの連携が可能 Blend3からコードのインテリセンス使用可能 イベントにコード書く必要がなくなる:ビヘイビア アセットライブラリ→ビヘイビア:CallMethodAction ChangePropertyActionなどなど :ボタン等にドラッグアンドドロップ TriggerにEventNameともども入る イベントを連結すみのユーザーコントロールを作っておきあとはデザイナに任せる 右上のデータタブ→サンプルデータソースの追加 Editサンプルバリューで各列ごとに系統を設定可能 データバインドされている:裏でコードができてる メイクイットコントロール:取り込んだフォト所等のレイヤーごとにボタンなどのコントロールの変換 スケッチフローでつくった流れはワード等に出力可能:あくまでひな形 MS側としては自由度を高めるためにあえて足りないものもある:マネージドコードで作れる --------------------------------------------------------------------------------
よく、メインに持ってくる「SkechFlow」。 近いうちはまだ一般化の予定はないそうなorz 4月4日 【わんくま同盟】DataBase Day東京勉強会、参加してきました。
今日は「DataBase Day」ということでセッションスピーカーもめっさゴージャス!
てかベテラン揃いもいいとこで! 詳細はこちら。
また、私個人としては初体験となった 「資料のダウンロード」 「ディスカッション&その結果の発表」 これらも非常に良い体験でした。 前者は、パワポ形式であれば各スライドごとにメモが入れられて超便利。 パワポ以外の形式のときはやっぱりワンノートだけどね。 後者は、その日のメインテーマについて自分で実践できるから 記憶に残りやすい = 真の意味で勉強になるなー、と。 ただ時間短いからドタバタになるのがアレですが^^; やっぱり受身じゃダメだよネー。ヽ(´ー`)ノ 受け身にならざるを得ない形式でも、聞きながら質問を考えたりすることで 身になるんだけど、なーんも知らないと質問すら出ないこともあるしね……。。 「やってみて初めてわかる・気づく」というか。 1つにテーマを絞った会なら(身に付くという意味で)なかなか高い効果を発揮するのではないかと。 そんなこんなでいつもどおりのめも。 LTについては出番待ちで立っててなかなかキーを打てなかったので省略しま。。。 因みにやったテーマは… ※タイトルではないので注意 ・こくぶんさん:SQLiteとADO.NET Entities Framework ・野良さん:SQL Server 2005の時間系のデータ型 ・あたし:Blend3とSilverlight3の紹介(この間聞いたモノほぼそのまま…;←次のわんくまでやるの後から知ったorz) --------------------------------------------------------- 【はつねさんの「データベース設計入門」】 <<<<< OneNoteメモ >>>>> お勧めは「Oracle + .NET」 業務アプリにはDB 当時「難しい」と言われていたOracle7を入れてみた(Win)→実際は意外とそうでもない Oracle Objects for OLE: 今日の環境: クライアント Vista Business SP1 VS2008 TFS SP1 ODAC ODT→スタンダード以上 DP.NETはエクスプレスでも可能 Virtual PC 2007 SP1 サーバー Oracle Enterpruse Linux 5 Oracle 11g R1 概念設計>論理設計>物理設計 概念設計とは: 現状分析>お客さんの業務の流れ、状況を把握 データをどれくらい保存するのか 今データはどんな方法でどのように保存されているのか 例:電話きたら手元のノートに書く>コピー>上の人のはんこもらって保管→いつ使うの>結局使ってない エンティティ抽出>例:問い合わせ→承認 これが終わったら>次のは何?←エンティティ リレーションシップ>関係性 属性抽出 …以上この流れで行う ないがしろにされがち:リーダー一人でやってたり営業さんがやってたりが現状 「今この状態」を知りたいので想像できず飛ばされがち 論理設計 正規化:これだけでほぼ完璧 論理設計: テーブル設計 非正規化 今は概念、論理が大事 非正規化状態:エクセルの表みたいなやつ→この後の問題を分析しないと…>> ----------------------- <<<<< パワポメモ >>>>> [スライド:第1正規化] 誰でも使えるようにする 必ず手書きにする→抜けがないか確認する 場合によってはここで一気にひろがることもある [スライド:第2正規化] もともと数学の世界の言葉:正規化 最初の3つの項目だけで誰だかわかるはず:質問者に依存してるところは変えよう 同じ質問者かわかるようにIDを使おう:部分に依存 →これも「第2正規化ができるか ○」みたいに手書き 見開き 昔のメアドや昔の名前はそのまま残す、という仕様の場合→これではだめ:日付が必要:履歴 ↑概念設計で現状分析でこういった仕様が必要かしっかり洗いだしておく→故に概念設計と論理設計物理設計が別な人というのは危険 [スライド:第3正規化] 第2正規化で終わるときもある 第2正規化とどう違うの?>第2:質問者とメールアドレスは同じモノ:同じモノを表現するものを分離 第3正規化:開発側の都合で必要なものを分離する:勝手に決まるもの [スライド:ER図] 仕様書と実態をいつも一致させることができる:ERブラウザ 昔の:一度非正規化しないと遅くなったりした バッファもったいないのでテーブルわけたりくっつけたりもした 今はOracleもSQLServerも最適化してくれる 9i:もほぼ正規化はやい:多少残ってる 11g:ルールベースなくなってる <<DEMO>> Object Browser ER Entities + Relation = ER図 有料のだと線がきれいに出てクロスしないようにしてくれたりする あんまり細かいことは書かない 質問:IDと質問内容 答え:答えの日付と回答内容 →誰が質問し、誰が回答したか、は関係ない それらに付随してそれぞれカテゴリや名前などがある →綺麗にまとめると、「これらは1こいいのでは?」といった面が出てくる Ex)質問者と回答者が同じ場合 サポセンみたいに回答者と質問者が必ず別の場合で分け方違う 客「既にテーブルできてる」というとき→インポート ---------------------- 【KEUNAさんのManaging SQL Server for IT Pro】 ※PDF資料のみだったのでOneNoteメモのみ SQLServerを正しく認識 車内に存在するSQLServerを管理していくために役立つポイント ※基本2008で説明 SQLServerはどういうサービスで構成されてるの? SSAS,SSIS,SSRS データベースファイル:データベースのデータ チェックポイント =DBのキャッシュをフラッシュするタイミング コミット:SQLの中でプログラマが設定することが可能 直接の関係はない:データを保護するタイミングを見てる どんなに早いCPUがたくさんあってもスレッドは1つ→ボトルネックになる可能性大 復旧間隔:デフォは1分 パッチ すぐ当てなければいけないもの、そうでもないもの、の分類がある(ISM) 完全復旧モデル:書き換えるほどたまっていくので注意>ディスクにたまりまくって落ちることも… ログをどうバックアップするか事前に設定しておくこと Express:単純復旧がデフォルト 基本、ログはひたすらたまるもの:ログで1Tとか… 「ディスクのこのあたりをバックアップしたので次はこのあたりね」→一括復旧:差分バックアップ可能 例)毎回「1万行更新しました」みたいなのを避けるため 「これが最新」という情報のみ→単純ふっきゅ バックアップ圧縮:CPU使用率は上がるがIO量を削減 見掛け上速度が上がる ex)中身がjpgばかりのとかだと圧縮無理 →リソースガバナーでポリシーを定義:それに従ってCPU使用率やメモリ利用量を制限させることができる tempDB外出しでパフォーマンスアップ ------------------------ 【レジェンド・オブ・ジニアスさんのSQL Server 2008 の新機能をチェック】 <<<<<パワポメモ>>>>> [スライド:MERGEステートメント] オラクルでいうUPSERT [スライド:ユーザー定義テーブル型] オラクルのストラクチャみたいな使い方ができる READONLYにしないとエラーになる ストアドの中でテーブル作ってる [スライド:ユーザー定義テーブル型 + MERGE] あれば更新なければ追加マスタになければ削除 [スライド:ロックエスカレーションの無効化] 2008からテーブル単位で設定できるようになった 前はDB単位 ロックエスカレーション:いろんなコストを考えてロックを昇格する 900の行ロックかテーブルロックかを考える オラクルにはそれがないので全部行ロック:メモリ食う 場合によってはそれがよい場合がある →そこでロックエスカレーション 自分でやるかSQLServerに任せるかは自分次第 機能があるからって下手に使わない [スライド:Date型とTime型] 日本のはたいてい文字列で入ってる 文字列変換して比較しなくてもよくなる [スライド:hierarchyedデータ型のプログラミング] .NETデータ型 再帰コードなしでツリービューができる 実際はバイナリ 2.1と2.2の間にいれたら2.11になる 数値でもってるので下から考えている 論理的矛盾が出たときは?ループにはまるような移動は??→フラットだからループしようがない [スライド:FILESTREAMストレージ] 単なる巨大なバイナリである画像やPDF→ファイル管理の方が都合がいい DBの中には入っていない 単なるフォルダの中に入っている [スライド:FILESTREAM使用例] デフォルトではOFFになっている 画像:データ直す =フォルダの中のファイル直す でもよいということ [スライド:空間データ型] 位置情報 Geometry:数学的 [スライド:空間データの操作] VirtualEarthやGoogleMapのデータ:ほぼ同じ 線でも点でも面積でもなんでもいい:LINESTRING:線 呼び出されたオブジェクトも点になる Geography:実態バイナリ:TOSTRINGで文字列にしないとわからん 世界規格用日本規格用のパラメータを持っているのでそこで調整 [スライド:JIS2004対応] DBの中身のみ対応 Shift –JISはUnicodeに変換不可 プログラム側でバリゲートしておく Unicode制御文字:間に0幅文字が入る:バックスペースで消していくとわかる [スライド:ぜひ、ご評価ください] 全部タダ <<DEMO>> リソースガバナ:TSQLでもダイアログでも設定可能 :CPUの喰いあいを制御 動的に設定可能 他のタスクが終わり、CPUが空き次第一気に占領:そのCPUの状況によりそのつど動きを変える: 設定によっては賢い ユーザ定義テーブル型:コード側でDataTable型を引数にして設定でいる -------------------- 【えムナウさんの あなたにもわかるデータベース設計】 [スライド:業務モデリング] わけてしまう 「業務ビジョン」が大事:誰からお金をもらってるのかを考える→お客さんからいただいている>>システムを作る決定権のある人 →その人に合わせて設計するべき [スライド:業務プロセスモデル] アクター:システムのときもある [スライド:業務プロセスモデル・業務フロー図] 今回のはVisioで作成 [スライド:エンティティ関係図] ここ大事:正規化の前段階 カテゴライズする [スライド:カテゴライズ] 意味でも形式でも重複してるものをまとめる:この場合は両方ありうる [スライド:エンティティモデル] データを主観にする [スライド:エンティティモデルの設計方法・物理モデルを作成] SQL Serverは特にtimestampを使うと早い [スライド:物理モデル] DataSetみたいなやつ ---------------------------------------------------------------------- パワポのは、資料が目の前にあるとわかるんだけど、 そうじゃないとメモだけだとわかりにくいね;;;; そしてパワポ自体に大半のことが書かれてるとメモの量は著しく少なくなるっていう…;w パワポに書いてあったのことは勝手に詳細を公開していいのかわからんので とりあえずこんな形式で。 もし、全体でダウンロード可能になってたら落とした資料と合わせて見てみてくだしあ。 スライド名は、わんくまテンプレートで一番上に書いてあることか、あるいは 内容の見出しから取ってます。 あ。そうだそうだ。 ジニアス氏のデモをちょこちょこ撮ったんだけど あげてよいのかまだわからんので保留。 なかなか面白く、そして毎度のごとく(笑)わかりやすかったです。 ホントすごい人だなー。(・ω・) 写真といえば。 データベースをみんなでつくってみよう、ってんでグループディスカッション&発表 やったんだけどそれの写真撮るのすっかり忘れてター!! あー…もたいね。。 因みに私は、 わんくま代表である中さん、 今日一緒にLT参加だったこくぶんさん、 海外の方Benさん、 他、じゅんさん、おかじまさん、いちけんさん、という初めておあいする方らと グループになりますた。 Benさんは途中でお仕事だかで抜けてしまったのが残念。。。(´・ω・`) 海外のエンジニアさんとなんてめったにお話できないのに。。。 名刺交換すっかり忘れてたわorz DB作りのテーマは「時間割」。 結果はシンプルながらそれゆえに考えること(仕様)が多く、 40分じゃあ、とてもマトモにまとまらないwwwwwww もう発表時間間近になって、 でも模造紙まっちろwwwwwwwww 確かに深く話し合いたい気持ちはわかるけど、 とりあえず発表できるようにかいちまおうZE☆ というわけで一人で勝手に仕切ってガリガリ書きましたすいませんorz 一番年下(多分)なのにこんなこというのアレだけど、 あのままだと誰も書かない気がしましてね…。。。 中さんはそもそも全体の代表者なのでほかの班まわったりなんだりしなきゃいけなかったし。 ま、今思えばそんな焦って書かなくてもよかったなー、と思いつつ。 それにしても見事に全8班、かぶらずいろんな考えが発表されますた。 ホント人間は面白いですねw これ1時間や2時間だったらもっといろいろ深められたんだろうな。 こういった形式の勉強会はまたぜひ参加してみたいところ。 3月22日 【Codeseek】第38回codeseek勉強会「やっぱりOsloは長沢さんから教わりたい」詳細はこちら
3月19日に、Codeseekさん主催のOslo勉強会がありました。
前回もOsloがメインテーマでしたが、今回はなんとMSのエバンジェリスト:長沢智治氏自らが講師に!
さらに、飛び入り乱入(笑)ということで同じくMSの大西彰氏による、今旬な「Silverlight 3」についての
プチ講座も。
そんなわけでいつもどおり(?)編集無しのメモを公開します。
------------------------------- Oslo編 -------------------------------
できたモデルはリポジトリに蓄積しランタイムで即見に行く→使った先で加工 MSはかなり本気 簡単にモデル定義するための言語=M 視覚的に簡単に扱えるようにするためのツール=クアドラント とにかく作ったモデルはリポジトリに保存 モデルを作る作業=クアドラント:データベースの仕組みを利用 クアドラント:ビジュアル的に見せる 現在仕様が変わり、言語の文法も変わってきている
コードの例 module Microrsoft.Samples { type MusicItem { Id :Integer64 = AutoNumber(); Album: Text; Artist:Text; Rating Integer32 where value <= 3; } where identity Id;
MusicLibLibrary: MusicItem*; }
コマンドラインも使用可能:コンパイラがある:m.exe リポジトリへのインポート
コンパイル→リポジトリに保存 Mコンパイラを使い、.mファイルをコンパイルすると.mxになる→単なるZIP圧縮 →XAMLちか入ってる MXファイルのイメージを格納してる感じ 保存したモデルはエクセルで見れる→表(テーブル)のイメージ
一見単なるデータアクセスの仕組みに見える いろいろな制約表現とかもできておもしろい 入れたものはクアドラントを使うことで、エクスプローラという形でリポジトリに入ってるモデルが見れる クアドラントはまだ未公開 クアドラントの面白いところ:ビューをいろいろ変えられる:人によってデータの見やすい形が違うから 非常にグラフィカル:ドラッグアンドドロップ自由自在 SQL Server2008必須:Express版にはまだ未対応 なくてもインテリパッドは使えるが、リポジトリがないため蓄積できない 「表現」の方法をクアドラントでモデル単位でかえられる:ビジュアルなものをつくるのは大変:ちょっと使い勝手悪い 構成を理解していないとまだ難しい段階 製品をまたがった形、上にアプリケーションがある形だと現在のMSのモデルソフトでは無理 ダブリンもモデルはOslo システムセンターもそのうちOslo:そのうち全体のモデルをOslo化 DSLを作る: ビジュアルなDSLを作る→クアドラントで クアドラント:ノンテクニカルな人でも使える、誰でも使える形を目指している 汎用的なDSLを書いたり使ったり→クアドラント 専用のDSL→VS、しぇあぽ →共存?:評判によってはVSにクアドラント要素とりこんだり… Mグラマー:独自に文法を定義できる Token BY = "by"|"By"|"BY"|"bY" 自然言語である必要は全くない:自然言語を解析するためのものではないから 英語圏で使える書き方 a…z|A…Z 日本はそういうわけにいかない→ユニコードごとに定義(但し全部は不可能なのでよく使うことばのみ) 現在のインテリパッドは日本語可能 テキストベースのモデルは重要 DSL作るのがOsloの一番の面白さかも(それ以前にモデルをしっかり組む):今の段階は遊び道具なのでいっぱい使って M言語自身がMグラマー:その定義もSDKの中に入ってる すべての目的のためにOslo モデルを書くだけでそのモデルを実装できる 2010:モデル、WFとWCFを使ったウェブサービスを作れる モデル駆動でより簡単に:コードごりごりがすべてじゃない→ただしモデルの完成度を問われる:抽象度を上げるのはよいこと 画像も扱えたり途中でコード呼んだりとかなり柔軟性高い 将来的にはダブリン後ろで動かしたりとか… ライブメッシュ:リモートみたいな MWindow:だうそ可能 コードの中でMグラマー呼び出して何かする:モデルの中でれいあうとやデザインを決め、リポジトリの中を見にいって動かす モデルだけでビジネスが成立するレベルを目指す M自体は仕様公開→サードパーティによる実装可能 ランタイムに対応するとどんどん広がる:MSは(頓挫しなければ)全製品対応予定 似たようなやってる企業は結構ある:ただし、リポジトリだけとかツールだけ、といったのが多く、全部やってるのはそうそうない ---------------------------------------------------------------------
------------------------------- Silverlight 3編 -------------------------------
MIX09 今日日本時間深夜2時にScottGuから大量の発表@キーノート 079月V1 去年V2 今日V3 Expression Blend3 CTP スムースストリーミング パフォーマンス強化:疑似3D:面を傾けてみせる パースペクテブ3D 1ピクセルずつ操作可能 作ったアプリの外観をスキンとして切り替え 検索にひっかかりやすくした アクセシビリティ:システムカラーの認識、読み上げ ブラウザ外で動くアプリ作れる アウトブラウザモード:ネットワークの切断の認識/復旧 アセンブリをキャッシュしてくれるようになった Silverlightのレンダリング空間全体 WPFみたいにデータバインディングでリアルタイムで状態変化可能になった スケッチフロー ビデオもパースペクティブ3D対応 デザイン側で全部できる:トリガー対応:WPFとはちょっと違う Blend3からはインテリセンス対応 XAMLにもインテリセンス 画面遷移のスケッチの段階(フロー)からBlendが使えるようになった デザイン時にサンプルデータがない:Blendからはデータが扱えるようになり、サンプルデータを定義できるようになった→実行すると即反映 コードをかかずしてストーリーボード作ったりできる おえかきをしながら動きを確認できるようになる:WPFもSL3も サンプルデータもリアルにクラスが作られている:コレクション作ってバインドしている TFSと連携できるようになった 下位互換性キープ:2のものも動く WIndows7からSilverlightでのマルチタッチ対応 .NET RIA Services Framework:データ関連扱うときの開発が大変なのでそれをなんとかしようというためのもの DataGridViewの設定みたいなことできる --------------------------------------------------------------------------- 2月18日 Codeseek勉強会37「モデリング言語「M」を使ってみよう。」Windows 7、Asureに続いて話題沸騰中(?)のMSの新技術「Oslo」。
コレ、特定の商品を指してるんじゃなくて、MSが進めているモデリング技術の総称なんだそうな。 今日初めて知った…;w 今回の勉強会もその資料を参考に行われた。
で。 この「Oslo」の中心となっているのが「M言語」。 「M」は「Modeling:モデリング」のMだそうな。 作られた目的としては、
「コンピューター(に関する事柄を提供する)側からユーザーに歩み寄ろう」とのこと。 要は、プロではないけれどもプログラミングをしている・せざるを得ないエンドユーザーのために もっと扱いやすい、もっと仕様を表現しやすい技術 →特定(そのプロジェクト)の目的に沿った言語・モデルを作るための技術 ってことだとか。 ※正直、まだ漠然とした感覚でしか捉えることができてないので表現としては適切ではないかも…。 今現在、その立場にあるのはAccessやExcelで使われているVBAがいい例らしい。
実際にCTPを動かしながらいろいろなお話が聞けた。
しかし、まだまだこの「モデリング」自体を私が理解していないのもあり、 これ以上まとめられなくなった…orz のでメモをそのまんま公開。
--------------------------------
PDCでMSが見せたいと思われたもの
・Win7 ・Asure ・Oslo:モデリング技術の総称。特定の製品を指しているわけではない。 長沢さんのパワポ参照
.NET 3.0をベースにしたWPF、WF あちこちにモデルがあってめちゃくちゃ:今のアプリ→何かまとめる モデル = ツール群 Ex)SharePoint:テキストベースDSL、 ばらばらになってるものを1つにまとめ、本質に力を注げるようにする 情報を一か所にまとめる:リポジトリにまとめておく ビジュアルDSL テキストベースDSL:Domain Specific Language 最近の言語は汎用化してるので目的があるようでない→DSLとはいえない COBOLやFortranはまだせまい 目的で縛ってあるものがDSL M言語:M =モデリング:コンパイラをつくるためのコンパイラ?→特定の目的用の言語がつくれる Unicodeなので日本語もおk Mschema:SQLつくれる MGrammar:PG言語をつくるための言語 MGraph:数値、データの抽象モデルー>ここからデータをつくる Quadrant:ワークフローのリンクみたいなインターフェース たとえば、その店のウェブサイトつくるときにそれ専用の言語をつくるetc M言語でSQL生成のコード書く→SQL生成される→コンパイル→リポジトリ(SQL)に登録
生成されたSQLはそのままDBで流せる ビルドに組み込めばコマンドラインで細かいものを書かなくて済む .mxはバイナリ もしSQLServerに登録できたら…→Excelで表示させたりとか… MMode、SQL Mode 数値として設定した箇所を文字列にすると…? スキーマのマッチングはしてない:マッチングするようにはできる? yaccに似てる 左側:コード 右側:定義 もとから定義されているもの(ベースがある)もあるが、リポジトリの中にはなんでも入れられる ベースがあるものも、それを元にして新しく作ったり… バージョニング:IISの拡張 = ダブリンがバージョニング持ってる:データにバージョンがあり、 その処理方法を選べる:バージョン不整合によるエラーを避けられる ルーティング:ワークフローとかを流してるときに、様々な条件でメッセージを流す→それらを一括でやるエンジン:行先を決めるイメージ:実際はDB見ながらループしてるだけ ストアドはどうなの??→ストアド用のM言語を自分で作る??? Vista+VS2008+Winアップデート全部:環境にうるさい やりたいことをまず書く:「やりたいこと」からの目線でつくられたのがM Ex)M言語を介してレガシーシステムと新システムを同一上で動かせたり FLKにも使える?? Mスキーマをコンパイルするとバイナリになる 今後のロードマップの説明とかはまだない:未完成品故?2010に入れたいらしい ダブリンはまだ VSの「アーキテクト」に入れる?? --------------------------------
実際にもっと触ってみないとなー。 1月15日 [Codeseek]コメントは必要か、不要か本日は2009年初のCodeseek勉強会ですた。
主催のtatsugoroさんはじめ、御参加の皆さまお疲れ様でした そして今年も何卒宜しくお願い申し上げます。m(_ _)m [前篇:コメントの必要性] しばしば議論される「美しいコードとは?」とも絡む永遠のテーマ。 …といっても過言ではない気がするけど実際は既に結論は出ている、という。 結局は、 「コメントを書かなくてもわかるコードを目指すべき」 てのが正しいのであって、これがいつの間にやら 「コメントは書かないのが正しい・かっこいい」 と考えてる人が出てしまっているのが現実。 以下、tatsugoroさんから伺ったお話。 その昔、 COBOLという言語が世界初の高級言語として誕生した。 因みにその前はアセンブラ。 COBOLは「仕様書を書く言語」として作られ、要は 「コメント無し = コードオンリーで仕様も動きもわかる」 というのを目指し、目的とされた。 しかし、 いざ普及してみると 仕様書書く→(COBOLで)コード書く という現実。 結局は何も変わらなかった。 また、どうしてもコードだけでは仕様を後々に伝えるための表現が不可能になり、最終的には「コメント」を許可せざるを得なかったとか。 その後、「フォートラン」が誕生。 これはtatsugoroさん曰く 「わけわかんないのがかっこいい、と思われた」ことの結果だとか。 このCOBOL等々だけでなく、 その後誕生するどの言語も、同じ夢・理想を追求していったが、 表現が違うだけで結局は「コメントは必要不可欠」なのが事実上の真理。 因みに、 開発言語のベースが英語だろうと、なでしことかのように日本語だろうと結論は一緒。 そもそもそういった自然言語自体が決して完璧にロジカル(論理的に)つくられてるわけではないのに、 無理にそれをベースとしてしまっているもんだから別途表現(説明)が必要になる、と。 ただし、 「必要」なのはあくまでそのシステム、コードの中で仕様を相手に伝えるのに無くては困る場合。 ゴミコードやわざわざ日常の文章表現に直す必要のないものを置いておくための仕組みではない。 多分、後者が蔓延してるからこういう「いる・いらない」の議論が起こるのかな…。 [後篇:Windows 7ベータ所感] ひろりんさんとめさいあさんの発表。 御二方だけでなく、実際に使ってみた人の大半は 「意外とVistaより使いやすい」。 無論、ベータ故に(?)いろいろアレな箇所も多いみたいだけど…。 以下所感メモ。 ・コンパネまわりが変わってる ・ログが英語と日本語混在してしまうバグ ・コンピューターの管理:Windowsログ・システム・イベント→全般タブ:日本語と英語混じる ・システムロケールの設定:規定位置を入力させるパネルが追加→なんのため?管理者用 ・ロケーションによってウェブサイト等見れるものが変わってくるからそのため ・多言語対応が豊富になった ・地域と言語のオプション ・キーボードと言語:表示言語のボタン:文字ぎりぎり→やっちゃいけない ・ユーザー単位で表示言語、入力言語、形式、場所を設定できるようになった→ようこそ画面も ・ウェブ:日本語URL入れるとだめ ・エアロシェイク:直前の画面が最小化したり最大化したり ・エアロスナップ ・全画面にしても枠の色は変わらない ・VBのバイナリ→再生成してる? ・ocx減った:ソースないから再生成できない? ・SDKも豊富 ・最近いじったファイルがそれぞれで表示:ピンもさせる ・南京錠アイコンや電源アイコンではなく文字で「シャットダウン」になった ・PowerShellが最初から入った ・タブレットPCだと書き文字の認識率が上がっているのがわかる ・壁紙やスクリーンセーバーが選択しやすくなった ・時間単位で変わる壁紙にも対応 ・ライブメッシュが入ってるとうまく動かない? OneNoteで取ってたメモそのまんまなんでわけわかんない箇所もあるかも。。。 私はギリギリでインストールしたので(てかインストールしながら = ノート抱えながら移動してきた) 正直まだ大してさわってない;; しかも、Viutual PC 2007に入れたんだけどメモリの設定間違った?のか、動きがやたら遅いんだよね…。 描画間に合ってないしorz 1GB(1031MB)割り当てたんだけどなあ。。。 家PCのVirtual PCにも入れて試してみるか。 11月16日 わんくま同盟 東京勉強会 #26 - ライトニングトーク大集合!!昨日 = 15日土曜に溜池山王タワー13Fにて行われました。
私も参加させていただきました。
で。
一応自分除いて49人分メモを取ったのだけど、いかんせん
数が多いのと風邪ひいてるのとで、
見苦しさMAXなのを自覚の上でメモそのまんま公開。
因みにOneNoteで取ってたり。(どうでもいい
当日の登壇順はこちらを参照してください。
私(37番目)のは後日PPTと一緒に別記事でアップします。
------------------------------------------------------------
1:中さん:身近な野鳥
すずめ、むくどり、はと、からす←かっこよくて一番好き。東京にきて嬉しいのはからすがおおいこと 最後のオチ(?)はボーイングの飛行機 2:たっくさん:聖地巡礼のススメ
「ヲタ的」聖地巡礼 ある意味宗教的行為 世界にひろがる聖地巡礼 海外からのお客様 イタリア ARIRA マリみて とか ハーロックとか宇宙 3:鈴木宏昌さん:配色を考えてみよう
あるフォーム:背景黄色、OK赤、キャンセル青→まんまやるとうるさいし悪趣味 たとえばBlendを使って整えてみよう 4:Kei1さん:ソフト開発によるシステム管理
バージョン情報とは:アプリexeとかに含まれてる バージョンを取得してみる 要件の実現には1つの手段にはこだわらない 十分なテスト 万全なセキュリティ対策 5:なかchanさん:Silverlight2でわんくまボタンをつくろう
Blend2SP1でつくったソリューション→そのままだとVS立ち上がるので右クリックでプログラム選択 マウスオーバーでツールチップみたいなセリフ登場 クリックでウィンク テンプレート化して貼り付けるだけでいろんなバージョン SilverlightApp.sln button stateで設定 6:ZOETRPE RubyでSilverlifht
Sliverlight Dynamic Language SDK 見た目はXAMLロジックはIronRubyで書く メソッドやプロパ名が「_」区切り SDL SDK付属のChiron.exeでXAPファイルを作る必要 ページにはりつける MSがレイルズと連携するためのSilverligthプラグインを開発してるとかなんとか 7:アキラさん FC++ ブログ:Faith and Brave
C++で関数型プログラミングを行うためのライブラリ Haskellを意識されてるとか 公式サイトからfcpp1.zipをだうそBoostのフォルダにつっこんでおk 8:猪股健太郎さん 私がJavaからC#に乗り換えた10の理由
2003年に@ITにのった記事 道具は設計思想にそって使わなければ真価は発揮されない 実行効率がC#の方がよい→今はJavaも改善 C#=現実をふまえたごった煮言語 Javaやらいろいろ 4では動的型が使えるようになったり 無節操だが無秩序ではない 豊富な機能と理解しやすさとのバランス 9;zio3さん プロパティ設定に新提案 PropertyMatrixの提案
VSのプロパティ設定は簡単だけど数多いとめんどい アドイン作ってみた 1つのフォームにはりつけたコントロールのプロパティをグリッド上でまとめて設定 一括設定も可能 同一プロパないで違う値があったら色変えるとか CSVでのインポートエクスポートもOK 10:とっちゃんさん インストーラ作ってます?
市販:作らないという選択肢はない 業務:デスクトップ向けは多いがサーバー向けは… VSでもインストーラは作れます フリーソフト、オープンソフトでもあります WiXとか ただし日本語ドキュメントない… 作らないのは英語の壁じゃなく、インストーラなくても動いてるし困らないから Vistaになって正直かなりめんどう UACとかUACとかUACとか 趣味の世界:使うの自分一人なんだから作ってみれば? ClickOnceとかどう? 3.5 SP1で大きく変わったがやっぱり英語 MSIは?UAC出さない方法もばっちり ファイルさえ渡せればおk .NETいらない 11:takaさん シガー
キューバ:少量生産だが需要が高い 偽物もおおい、ドミニカは高い:ダビドフが有名 ホンジュラス、ニカラグアは安い:煙草屋の趣味によってはある 紙巻き:味がない たまに香りがついてる 葉巻の香り:クリーミー ナッツのような ココアのような スパイしー←この辺そのまんま 木の香り:木を燃やした時のようないい香り どこで買えるのか:趣味によってはおいてるけど少ない 専門店:少ない新宿とか ネット:質がわからない 12:高見知英さん:コミュニティ参加のすすめ
磯子クリエイティブチーム:共同制作を行うコミュニティ オフ会もコミュニティの一種 なぜコミュニティイベントに出るのか:出会いが楽しい 共有できる話題 13:片桐継さん:
瓶詰の魚:アカヒレ:3度~30度で暮らせるので非常に丈夫:原産地で中国ではほぼ野生では存在しないが 丈夫故に下手にはなすと生態系破壊の可能性 3cmの魚3匹が3年間くらす→もっと良い環境に ビンはいわば核シェルター:広いシェルターに変えよう 環境整えたら少しずつ水を変えていく:温度とPhを必ず整える 一気に変えると心臓止まる可能性 14:chY:人文諸科学への招待
Googleの広告システム:ユーザーが見てるページの内容に合わせて変化 最近では「リアル」の履歴がとれるようになってきている 特に何も考えずに履歴を取っていたデータが個人の情を体系づけて構築してしまう 常に見世物にされてるようなもん→何もできない:人文諸科学「超パノプティコンとデータベースにおける問題」 個人情報がどんどん盗まれていく世の中:←?誰が?なぜ?盗む側も盗まれる→結果共有?? 15:やじゅさん:北斗の拳の世界でオブジェクト指向を
3大要素:クラス、継承、多態せい クラスはデータと操作の集まり:オブジェクトの設計図 インスタンスとは実態 クラス化:人間(能力はさておき)、拳法、ストーリー進行管理 クラス人間:プロパティ設定例:名前ラオウ 性別 通商 組織 所属 流派 しちょうせいの可視 メソッド:特技 インスタンス化 Dim けんしろう As new 人間() 継承:拳法クラス 北斗南斗 ポリもーふぃずむ 呼び出す側 呼び出される側 ケンシロウ.特技. 16:出水さん:公開鍵暗号とRSA
平文←→暗号文 RSA:公開鍵暗号の一つ a=bのd乗×mod×n dは233 詳細はWikiで 17:takeshikさん C#4の動的型の使い道を妄想してみる
動的が キーワード引数などなど Dynamic dobj 宣言 DynamicObj ユーザーがオブジェクトの根本的なふるまいを自由に定義 tween開発に参加してる人 18:IIJIMASさん VS2010CTPのC#4をのぞいてみよう
新機能:dynamic 遅延バインディングサポート 省略可能ぱらめ 省略可能ref 省略可能ぱらめ:Office相互運用アプリのコード記述の簡素化が実現 19:こくぶんまさひろさん:C#であそんでみた
C#:ドの半音上 ミクとの組み合わせでピアノソフト Vocaloid2のRealtime VSTi <VST Host< C#アプリ メッセージ投げるてリアルタイムで歌う MIDIYoke:仮想MIDIデバイス 20:Crystal Dew World ひよひよさん:ハードディスク監視しよ
ハードディスクは壊れることがある:故障予測ができれば…?→S.M.A.R.Tという仕組み おかしな動作をしたのちに壊れることが多いことから;故障と大きな相関関係 約10万台のハードを解析したのちに論文で発表 作ってみた>USB接続のHDDに対応できないか CristalDiskInfo2.0:6台も 一部標準化されているか基本的に隠し機能として監視・解析機能を持たせている 11月20日リリース予定 crystalmark.infoで公開 21:あんどちんさん:キャッシュの功罪
CPUのキャッシュ:CPUとメインメモリの間にありCPUの動作に対して遅いメモリのアクセス速度 を隠ぺいするための高速メモリ HDDキャッシュ:HDD内部に存在 IDE/SATA/SCSI等転送速度より遅いデバイスアクセスを隠ぺい ライドバック、ライトスルー:書き込みは後で CPU書き込みタイミングで書き込む 書き込み時キャッシュの不整合:CPUが書き込みを行った時に同期していない 読み出し時キャッシュの不整合: キャッシュとメインメモリの整合性に注意 JIT等の処理ではキャッシュ制御に注意しないと暴走することも →バーチャルマシンなんぞ使うな 22:松崎さん えばの人 Tech Fieldersって何
Tech Fielders:コミュニティ向けの企画を開始 MSDNセミナーやIT Pro道場の名前変わっただけ?ブログ開設?→違う よく聞くイメージ:一方的にUpdateやら説明会やら… それを変えてみよう:米国では頻繁に技術者が入れ替わり立ち替わり:MSの人ももとはいち技術者 社員からの一方的なセミナーではなく、互いにやりとりしていこう MS側から取材して情報発信 コミュニティの一環として 23:おかむらさん:結婚の諸届出
戸籍変更=婚姻届:親の戸籍から抜けて新しい戸籍を作る 二人の戸籍謄本も必要 はんこは三文判&旧姓 新しい本籍地 どこでもよい 地番が存在するとこならおk 元の本籍地と同じ場所でもよい 親と同じ場所に違う戸籍 届け出先は事実上どこのしやくしょでもよい たいていけっこんしきの日は入籍日ではない 一人で出しに行ける:後日確認の書類郵送 戸籍は1週間くらいでできる 住民票の変更届を出す 最寄りの警察署で免許とか帰る 新しいハンコ 郵便物の届け出先も変更 社会保険の変更:会社に住民票をもってくだけでよい? 届け出以外は姓が変わる側のみの仕事 24:やまささん スマートフォンでライブストリーミング
自転車にくくりつけ ライブチャットもおk いろんなことができる 25:昇日 FormとReflection
Formの遷移がループしてる場合参照もループ Webのリンクみたいにできないか:Reflection;PGの中でPGの情報を得ること クラス名でNew 欠点;コンパイルの時にチェックが入らない 若干重い 26:mxbさん ASP.NET開発標準化を考えてみよう2
1はBLogで公開中 ネーミングルール、コーディングルール、CSSのコーディングルール、HTMLの、JavaScriptの これらにAjaxのコーディングルール追加 さまざまな現場の声もいれるが… 27:割と普通さん:型付言語で作るマッシュアップサイト .NET vs Java
マッシュアップサイトとは:WebAPIと連携し独自のサービスを公開しているサイト まだまだビジネスロジック(BL)は.NET、Javaが現役… COBOLはさておき Java(JBossSeam) マッシュアップサイト>IIS>ASP.NET→ぐるなびAPIやVirtual Earth Javaはめんどい:しかしクロスプラットフォーム アプリサーバーもいっぱい さまざまなWebあぷりの構築方法がある .NET:JavaScript連携が容易 デバッグ簡単 IDEからのアプリ起動が高速 マッシュアップサイトは… Javaはあんまり向かないかも .NETはそこそこよさそう Webアプリ作成そのものは… Java:OSS系ソフト連携が強み .NET:MS系で固めるなら最強 しかしPythonなどでやったほうがいい 28:fnyaさん 派生開発プロセス XDDPのすすめ
派生開発とは:既存システムの修正や機能追加開発など 保守よりも概念は広い 開発現場の7割が派生開発といわれている 規模に対して開発期間が短いのが特徴:あせって失敗する傾向 XDDPとは:極端な派生開発専用プロセス プロセス改善コンサルタントの清水吉男氏が提唱 要求仕様をベースにした開発プロセス 氏が20年かけて構築 差分に特化し不要なプロセスを徹底的んい排除 ソースの修正は最後に1度だけ→ドキュメントのない派生開発にも対応 取り組み方:要求→ユーザが望む状態want 仕様→PGとして実装するものwhat ドキュメントテンプレの用意:USDMというエクセル用書式あり 29:ちゃっぴさん Coding以外のセキュリティ対策
どんな脆弱性があるか:バッファオーバーフロー SQLインジェクションなどなど 対象範囲:Coding関連:SQLインジェクション Directory SQL:渡すパラメータ内に特殊な文字列が入ることで想定外のSQL directory trabasal:同じディレクトリを複数のパスであらわすことが可能なため扱うパスによって 制限をかけるコードかいてるときにおこる 利用できてはいけないユーザーが利用できることが問題 バッファオーバーフロー:予約サイズ外にまでメモリを書き込むこと Codingのみで対策を行うとテストが面倒 30:Rさん:3分でWCF
SOA構築のためのMSの統一PGモデル サービス志向アークテクチャ:大規模なシステムをサービスの集まりとして考えよう 分散処理が簡単に構築できる Using System.ServiceModel 31:初音さん Oracle Enterprises Manager リカバリ機能の紹介 ThinkPad メモリ3GB Vistaビジネス VirtualPC2007にOracle EnterpriseLinux VirtualPC:壊れてもコピーあればはりつけで データベースファイルOSレベルで削除 起動するとエラー リカバリ実行: 32:yukiyukkiさん もやしもんで学ぼう!風邪対策 代理でHarunyanさん 風邪ウィルス:ライノウィルス:37度前後の熱と鼻かぜ 親戚は100種ほど 生姜に弱い RNAウィルス インフルエンザウィルス;風邪とは別物 これから活発 乾燥してるとこ大好き RNA 予防注射 33:匠さん フリーランスってどうですか?
自己紹介 できないことをできるといわない:しかしこれによって火消しの方法とか 契約内容を軽視しない 非こみゅ系になるなかれ 34:skylab13さん 天文学とは何か
観測、理論:計算シミュレーションとか、装置開発の3つ 観測天文学とは何か:宇宙望遠鏡または地上望遠鏡で観測 分光観測:星にスリットをあててそこか漏れた光をスペクトルで分ける わかること:温度、物質、速度、距離(ドップラー法みたいな)などなど 天文学者は何を見るか:銀河 星団 星 天文学でわかること;宇宙の進化、天体の進化、物質の進化、生命の進化などなど 第2の地球はあるのか、そこに生命があるのか 35:ぶらっくさん WSHと自作PG(VB)でクラスタサーバのリブート
何をするものか;クラスタサーバーをリブートさせます 安価で管理ソフトいらず サポート問い合わせ時の問題を回避 何かしらの不具合が発生した時の「サーバ負荷が高いと…」 難しい技術不要 ログファイル退避とか 注意;作成OSがウィンドウズ2000 WS2003で使えてたみたいだけど 2008は不明 36:SAN_Morishiさん 生クリームについて
痛んぶらー クリームの定義:乳脂肪率18%以上0.2%以下 生乳をほっとくと脂肪分が浮く→そこをクリーム ホイップ:35%~45% 純乳脂肪:クリーム(乳製品):風味がよい。そのまま飲んでもほんのり牛乳味保持期限が短い 製造から1週間でダメになる 乳脂肪+植物脂肪分 38:luxionさん iPhone開発
納税者番号 39:凪瀬さん:JSPでウィルスもどきを作る
定義:自己伝染機能、潜伏機能、発病機能のうちどれか1つ以上有するもの 今回は自己伝染機能で。 「感染するとテキストが増える」 バイナリと違いテキストファイルに記憶するだけで簡単に感染することができる 感染を防ぐには:JSPプリコンパイル ファイルおくフォルダに対して権限もたせない 40:mihochannelさん ネットワークの無い環境でセキュリティパッチ適用を行う
WindowsUpdateを客先で パッチをだうそしとく リンク先の技術文書をまず確認 本当にそのパッチが必要なのか確認 一括だうそはまだ非対応 台数がおおい場合やsyspreb直後のマシンが大量にある場合とかに有効 41:guichengさん ロケット
固体ロケットと液体ロケット 東大の教授が中心になって30年以上前から国産ロケットの計画 中島飛行機→解体→富士精密工業(自動車のエンジンとか)→プリンス自動車工業と合併 →プリンス自動車工業に名称変更→日産に吸収→宇宙部門が日産へ 日産は70年代から打ち上げ:しかしその分負債も。。。。 42:かずさのすけさん 車載動画をやってみよう
車やバイクで走りながら景色を撮影 等倍速で生で流したりBGMやテロップをつけたり うpするには?:ビデオカメラ ビデオカメラを固定する方法、PCへ取り込む方法、編集方法 吸盤でフロントガラスに固定・ダッシュボード、クランプ、三脚、つっぱり棒etc どの車にもつけられる・吸盤はしっかりしたものを ダッシュボード:うまく三脚がはまるものもある 両面テープで固定 43:まーるさん RAID
HDDの特徴:ガラスまたはアルミの円盤を回して金属製のヘッドで円盤状の磁気記録を読み取ったり 書き込んだりする 機械稼働部品がおおいため半導体部品に比べて故障率高い 安価な冗長ディスクアレイ:RAID直訳 安いディスクを複数うまく組んでアクセス処理 RAID0:並列 ディスク1本しぬとだめ RAID1:N本構成の場合、HDDがN-1になっても大丈夫 RAID5:元データから復元可能 書き込み遅い DBのデータには使わない方がいい バックアップは必ず 44:岩永さん C#4をさっそく逆コンパイルしてみた
動的型付変数 dynamicキーワード スクリプト言語とかの連携 オプション引数名前付き引数 共変性反変性 ↓ダイナミック属性がついたオブジェクト Static dynamic GetX(dynamic x) { return x.X; CallSiteクラスを通した動的アクセス } オプション引数:属性つくだけ。現状のVBの実装と同じ [Optional コンパイル時に引数んおデフォルト値を展開:メタデータは呼び出し側には残らない ILの仕様上はIL2.0の辞典で共変性、反変性に対応済み 45:goyokiさん 開発言語マネジメント
C言語のイメージ:あまりよくない 総合的な機能安全の認証規格「推奨しない」車開発「使うな」 使えない言語をどうするか:使える言語を自分らで作る→サブセット作る Cの言語仕様を満たす独自言語 サブセット=言語仕様としてのコーディング規約 レビュー依存はなるべく避ける:自動検出できるようにする 解析ツールが検出可能なルールから選んでサブセットを作る 既存サブセットを使うのも手 MISRA-Cが最も成功しているCのサブセットの1つ サブセットのサブセットもあり 既存資産を活かしつつ、言語の特製をカスタマイズ可能に マネジメントでなんとかなる 46:ymonさん WPFのメモリリークについて
長時間運用の場合は特に危険 TextBox:undo機能使った時に危険 ComboBoxをNewしただけでもメモリリークが発生 めげずにひとつひとつ対処 IMEも 47:長月葵さん パースの基本とお手軽テクニック
遠近法:心理遠近法:画面上に物があればそれ以外は背景とみなしたりする心理的効果に基づく遠近法 重なり遠近法:重なったものがあるとき後ろとみなすものを隠すことによって感じる奥行に基づく遠近法 隈どり遠近法 鳥瞰図遠近法 大小遠近法 透視図法 空気遠近法:遠くのものほど淡く見えることを利用 消失遠近法:遠くにあるほどディテールが見えないことを利用 色彩遠近法 透視図法(パースペクティブ):消失点
48:TAKESAKOさん HTML 2.0 Binary Hacks
11/11はHappy Binary Day JavaScript.gif バイナリの中にJavaScriptと読めるものがはいっちゃう 49:花子さん Ocamlくんと友達になろう
事前にしっかりチェック:Objective Caml 推測型付 最新は3.10.2 コンパイルも可能だがインタプリンタもおk #print_string"Hello";;←;;で終了をしめす #1+2;; -:int=3 #0.1+0.2;;→floatとして認識:桁数多い OCamlは単精度ではなく倍精度 # let a=1::
Val s :int = 1 #a + 2 ;;
-:int=3 #let b ;; ←初期化必須。どの値に名前つければいいかわからずエラーになる
参照型を使う:定数の前に「ref」 := で代入 関数;# fun x -> x + 1;; # let add = fun x-> x + 1;; ↑この関数に名前をつける 50:ぽぴ王子さん タイマーを作ってみた
セッション中の時間調整は難しいので自分用タイマーを作ってみた 11月2日 【@IT】データベース勉強会 簡単に実現できるDB開発カイゼン術今日初めて、@ITの勉強会に参加してきた。
MSはもちろん、あとはわんくまやCodeseek(←私の場合は大抵こちらがメイン)はよく参加するのだけど。
プログラマーになって3年。
ヒトの少ないプロジェクトにいるせいもあり、いろいろなことに携わるようになってきた。
データベースもその一つ。
正直、名前とSQLだけちょこっと知っていて、深い仕組みや事情はさっぱりなのだが、
いわゆる「参加することに意義がある」ということで & 無料なので勢いで申し込んでみた。
以下今日のまとめ。
元々データベースの知識も開発経験も浅いので、聞き違い勘違いも多数あると思われます。
そのときは是非つっこみよろしくです。
また、これらの文章は正確に登壇者の方の言葉を反映したものではなく、講演、ディスカッションを聞いて
私なりに理解した結果を書いているものです。御了承下さい。
あと、記憶違いも結構あるかも…。
---------------------------------------------------
<1>基調講演:富士通ソーシアルサイエンスラボラトリ 福岡寿和氏
「データベース開発の品質向上と生産性はどう向上出来るのか その実践型開発スタイルとは?」
・今回の前提:
クライアントOS…Windows 2000、XP、Vista
開発ツール…VS2005、2008
データベース…Oracle 10g R2、11g R1
サーバーOS…該当DBが稼働すればなんでもよし
・開発側にとって、データベースが動けばなんでもよい。が、実際のお客さんなんかは
「SQL ServerだったらWindows系じゃないといけない」
といった固定観念を持っている人も多く結構驚かれる
・「自分たちのシステムに本当に必要な(データベースの)機能とは?」を考えないままただただ
「全機能使えるから」などといった理由で非常に高い = コストのかかるEnterPriseを選んでいるところがとても多い
→本来はStandard Editionで十分な場合も多く、このEditionが使われるべき
・最近の方針として、機能面はすでに飽和状態にある。よって、いかに運用しやすくするかに力と目が向けられている
また、障害耐性の向上もテーマの一つ。これはどこも一緒。
<2>パネルディスカッション:福岡寿和氏、わんくま同盟 えムナウ氏(児玉宏之氏)、モデレータに ブレインハーツ株式会社 取締役 谷川 耕一氏
※サイトには掲載されていないが、当日は日本Oracleの方が1名参加されていた。大変失礼ながら名前を失念。。。。。 <最近のニーズの動向は?開発環境は?>
・ 福岡氏:自分の場合は中規模が多く、全くの新規でというよりは現在の環境を生かしたうえで品質を上げたい、という注文が多い
運用面ではログを重視するなど「見える」システムづくりに力を入れる
テストをしやすいようにロジックを分離
新人など、システムや開発方法が全くわからない人には「作らせない」:教育等にもコストがかかるから
.NET上で独自にフレームワークを作ると、.NETと独自フレームワークの両方の知識がないといけない→よって.NETのみで開発
コーディング規約はだいたい6Pくらいにしておく。そのくらいでないと読まない覚えられない
運用管理を重視した設計、開発を行う。ログは必須。エラーが出たときのトラブル対応の仕方など
→一部はOracle(データベース)の機能として既に実装されている場合もある
・えムナウ氏:4,5人の店舗といった小規模~中規模物件が多い。最近は同じく全くの新規よりはアップグレードや改善などが多い。新規は新規でもリプレイスなど。
見た目 = UIのみ変更も多い
問題発見にはやっぱりログ。何レベルも用意しておく。実行環境を変えずにログが出せるようにする
モジュール化、部品化によって効率化を図る
.NETの上に独自のフレームワークをつくり、共通部品を多めにする
御客さんで、出現したエラーの内容を正確に教えてくれる、教えられる人というのはまずいないので、ログに出たエラーの詳細も含めておく
<DB開発環境:規模や用途別の切り替えはどのポイントで見極めるべきか>
・ 福岡氏:基本的に動けばなんでもよいので、サーバーOSにWindowsが使える、などと提案すると驚かれることがある
おおもとのコードがあるから直る、というのは幻想
ADO.NETはDB2やSQLiteも接続可能
.NETはデータベースと親和性の高いフレームワーク
データベースにはどこまでやらせるべきか?例:Viewを作ってレポーティングシステムを利用することでノンプログラミング
昔は帳票というと「このフォーマットじゃないとダメ」というのが多かったが、今は「このシステムを使うとこんなことができる」と提案すると割とすんなり受け入れてくれる
・日本Oracle:開発系の機能は10gでほぼ完成。11gでは運用のしやすさに重点を置いている。従って11gで新たな開発系新機能は少ない
・えムナウ氏:開発はもっぱらVSで。データベースはSQL Server
小規模なところだと、Express版を使ってコストを下げる、ということも
VSのTeam Suite Database Edition(後々Developer Editionに統合)は結構ストアドのバグやゴミを見つけてくれて便利
使用言語を分ける基準:元々アセンブラからC言語、C++、C#と経験したこともあり、自分に選択権がある場合はC#。
VBは昔、ホビーユースから仕事向けに変わった時代に使ってみたら、お客から「遅い」といわれそれ以来基本はC#。
また、VBはガベージコレクト時にやたら深くもぐってしまう
<DBを取り巻くテクノロジー>
・ 福岡氏:予測をうまくつかった運用の仕方が今後のキーポイント
アドバイスの仕方の研究
突如使い勝手がよくなったEnterpriseManager:以前はJavaベースのクライアントで、そのマシンでうまくJavaアプリが動くかどうかという問題があった
今はWebベースになり、応答もはやいしリロード機能付き、UIも良くなった。インストーラが1枚におさまった
マルチコアが主体になるなら、環境が勝手に処理してくれるくらいのレベルになるまでは危険というか面倒→いかにモノをつくらずに済ませるか
CPU余ってたら仮想化
データは企業の財産。従って、しっかりしたデータセンター以外の他のところ(例えばアマゾン)に預けるのはいかがなものか。→アマゾンのはいつ何に使うのか
特に日本は他社に財産を預けることを嫌う(銀行かタンスか)
銀行はデータセンター。クラウドはまた別。データベースとアマゾンは全く別モノ
・日本Oracle:実は10gのときに開発担当らが変わった。彼らの方針が開発効率よりもまず「良いものを作る」ということだったためあのように方針や開発方法が改善された
Oracle(現時点では米国)でVMテンプレートを出している。仮想化ソフトに既にセットアップ済みのソフト。営業系SEがよく使ってる。日本でも近々出す予定
・えムナウ氏:最近のSQL Serverは大規模物件に主眼を置いている
DSL、モデリング関連が今アメリカで熱い
これからはマルチコア。インテルは昔から進めていたがMSはまだ実験段階
.NET:マルチコア用のクラスが増えたり、ちょっとしたマルチコア用キーワードが必須になる?
客の要求と資産はデータベースの行・列とはまた違うことを念頭に置く
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|