星期三, 12月 27, 2006

[WPF] Demo from YouTube

說了許多的技術或是文章 不如直接看Demo

從YouTube找到這一個 還不錯的綜合demo

可以一次看完最近這一二年內所有cool demos :P


不過前幾個星期我到一個用Mac電腦的朋友家 他demo他們平常用的keynoter(就是我們的PowerPoint),結果效果超炫的...........

我想WPF雖然是蠻炫的 但是我這些東西 在蘋果電腦的使用者看來 應該只能覺得還好而已 :p

[WPF] Flexible Application

VS Template: Flexible Application

在Scorbs的blog看到這個Visual Studio的Template,這個Template主要能夠幫你自動切換Project Type,即EXE與XBAP之間的切換。

另外Scrobes上還有Screen Saver的Template,不過我有特別去看,可參考WPF Screen Saver Template!

另外,因為在XBAP上 不能任意開啟Windows or Popup(由於Security issues,XBAP run在sandbox裡) 所以這裡有一個有趣的解決方案可以參考 :P

WPF/E --> WPF Everywhere

什麼是WPF/E呢? 可以從官方的FAQ得到答案
"WPF/E" is the codename for a cross-platform presentation technology for rich Web applications that enable browsers to render XAML (eXtensible Application Markup Language) in addition to HTML

From WPE/E FAQ

也就是一種可以讓XAML在網頁上可以run的技術~~ 可以把他想成是另外一種的Flash
也有人說WPF是Flash Killer~~

前幾天看了一些文章研究起來,發現WPF跟WPF/E分二條路了~~
WPF是一套UI Framework,在.Net Framework 3.0裡 .... 要能執行的話 要灌的runtime要5xMB
WPF/E是一套Lightweight的Library,所需要的Runtime 好像不到2MB,可以從這裡Download到,所以WPF/E只有一部分WPF的功能~~ 甚至連Button都沒有~~~ 主要我是是vector方面的東西,但是WPF也是可以直接run在browser裡的,叫做XBAP, Web applications,可以透過ClickOnce的技術,從Server Download程式在Browser端執行.....

現在看來~ 除了AJAX, Flash, Java Applet之外,另一波的WPF-related技術來勢洶洶
而且未來的Windows Vista都是內建.Net Framework 3.0 (including WPF),好像之後Ship出去的Windows XP (sp2)也都內建.Net Framework 3.0。未來一二年內 可預見會愈來愈普級....


相關的所有軟體,可以從這裡找到

另外官網也有一大堆現成可以demo的samples,所以有興趣的話,你可灌WPF/E runtime之後
就可以在browser上直接run這些WPF/E的程式在你的瀏覽器裡.....


可以參考WPE/E微軟官方網頁

[WPF] Snoop, a WPF utility

現在WPF的網路資源愈來愈多了,本來想要自己寫一套Debug的library來用

結果在網路上發現這個東西,已經做掉我想做的事情了~~~ :p

主要我想要能runtime看所有UI元件的Visual Tree長怎樣 然後看property & value

這些Snoop都具備了,還有其它蠻炫的功能

還可以看RoutedEvent, 可以Preview, 還有Zoom View

真的很炫~~ 有開發WPF的人建議可以來使用 :D

http://www.blois.us/Snoop/

星期二, 12月 19, 2006

Image Filter & Pixel Shader

前一陣子用C#試寫了幾支Image Filters,雖然效果是ok~~ 但是其實performance並沒有很好...

如果用C++寫的話 應該可以更快~~~ (尤其C#沒有inline or macro,所以用procedure會變慢)

然後如果還是不夠 就只好用assembly或是SSE/MMX來加速~~ 雖然這方面我沒試過.....


如果要作Interative Arts之類的東西 所有的Image Processing必須要real-time

也就是一秒最好是能跑在15~25個Frame之中最好....

我隨手寫的Blur超級慢的...... 剛又試寫一個overlay大概也會慢了一些....

所以如果想要real-time看特效結果的話~~~ 特效中間又串了七八個filters.....

真的很不容易 更何況我用的video source只是320x240.... @@

DVD(720x480)都快要過時了......如果用HD的source 我看電腦就不用跑了.....


然後這時候就突然有種領悟.... 咦?可以用Pixel Shader做呀....

如果電腦有附很好的顯卡,為什麼不利用GPU的Power呢....

當然如果要推出Image or Video Editing的軟體用這個的話.... 會有一些問題產生

除了不同顯卡有不同能力,要考量不用的Shader version語法,還要考慮不同顯卡出來效果不同

但是如果能同時support兩組filters 一組是pixel shader-base用GPU,另一組用CPU

或許processing的時間可以變的很快 ( @@ 不過不知道可不可以serializtion出來 我想應該可以吧)


嗯 上網找了一些Pixel Shader的文章.... 從來沒寫過這些東西 希望剛剛的猜想可以試試看

可以從下面的links看一些samples
http://www.riemers.net/eng/Tutorials/DirectX/Csharp/Series3/Vertex_Shader.php
http://www.steelskies.com/article/4/directx-shader-effects#
http://www.codesampler.com/dx9src/dx9src_8.htm#dx9_hlsl_fx_simple
http://dev.gameres.com/Program/Visual/DirectX/ManagedDirectX9_21.htm
http://www.flipcode.com/articles/article_ps20tut.shtml

有高手對這方面比較了解的話 也可以指教或是補充囉 ^^

星期六, 12月 16, 2006

Real-time Glow

最近寫些程式,突然想要做些特效....... 像是暈光或是很特別的東西

但是我又是希望能是realtime的... 所以直接用image filter似乎有點困難..

不過還是值得一試..... 剛好看到Gamasutra有一篇文章,是用vertex shader達成....

最近也跟幾個朋友在研究這方面的東西.... 發現還蠻好玩的...

可以從http://www.gamasutra.com/features/20040526/james_pfv.htm看到一些相關的資料


雖然早就知道這個網站,但是每次有問題的時候,還是不知道從何找起....

現在知道了,以後一些realtime or game programming的時候,就可以從這邊開始找了

可以從http://www.gamasutra.com/features/ 看到一些最近的一些文章....

:D

星期四, 12月 14, 2006

Top Coder [http://www.topcoder.com/]

最近看新聞....然後發現了這一家公司... 可以online跟全界的Programmer比賽

結果我當下就註冊了一個帳號 看大家比賽 ^^

感覺很好玩~~ 所以今天的時候我也去比比看...

只要灌好JRE (Java Runtime Environement)就可以用Java Applet or Java Web Start來遠端寫程式比賽

比賽可以使用C++/C#/VB/Java四種語言~~~ 上線submit程式後,遠端會幫你自動編譯程式...



結果今天的比賽我的表現很慘 @@ 三題有一題被challenged,另外一題沒過System Testing,然第一題又多用了一陶迴圈

一次迴圈就足夠讓我是那一區裡過那一題中最低分 @@

TopCoder裡有很多比賽,像Algorthms, Software Design, Software Developement

所以不必一定要成為比賽ACM那程式怪物....也可以寫些real world case的一樣比賽

然後最後要交文件來說明自己的開發設計與使用方法..

比Algorithm的規則很不錯~~ 以我今天比賽為例的話....

9:00(?)開始報名 10:00開始比賽 三題 (各250,450,1000分,共1800分)於11:15前,共75分鐘做完....

11:20進入Challenge階段.... 就是大家互相看各位的程式有沒有問題,

如果有問題可以輸入challenge的input,challenge成功自己可以多獲得50分(?),而別人就會歸零...... 如果challenge失敗的話,自己會扣75分(?)

結果我的第三題就是被別人一下子challenge成功 ><....

20分的challenge之後 是第三階段,就是System Testing,系統再做最後一次最嚴謹的測試,

如果過了就真的得到分數了 沒過的話又是歸零... 過了三階段之後就是比賽之後真正的排名了...

^^ 結果第一次的結果很慘~~ 不過覺得還是蠻好玩的 :p 以後繼續努力...


可到http://www.topcoder.com/註冊帳號~

星期五, 12月 01, 2006

using DirectShow in C# - DirectShow.Net

這一年來都在用C#開發程式,其實已經上癮了 不會想要回去使用C/C++
如果寫UI的話 更會直接跳過SDK/MFC,用Windows Forms or WPF
前陣子需要用DirectShow寫一些程式~~ 想說如果能直接用C#開發多好

Direct3D部分似乎有Managed的環境,但是DirectShow似乎就是沒有官方的Solution
結果上網找,結真就有到不少套Mangned的DirectShow

後來我是選用SourceForge那套,除了DLL外,還有完整的Example可以參考

還真不錯 :p 現在開發起來就快多了......

Links
http://sourceforge.net/projects/directshownet/

星期二, 11月 28, 2006

[DSP] Image Processing

前幾天用C#試寫一個Image Processing的Filter 覺得還蠻好玩的

主要是用System.Drawing.Bitmap那一個class,然後取出RGB Array

然後逐一對每一個pixel作處理,然後順便計算FPS (Frame per second)

不過算完還是覺的performance有待加強~~ 畢竟不是native code,許多function想用inline or macro都沒辦法做到

另外就是也發現許多image filter天性的特性,所以可能要演化出不同的filter的type

如invert這種只要需要逐點數作process,但是有些是需要經過分析,有些是需要original pixel

如自動對比是需要事先分析完整張圖,有些是blur或是mosaic是需要鄰近的點,所以需要cached一份附近的pixel @@ 我是這方面的新手 很多東西其實還不是很懂

這方面也可以好好研究一下 ...........

Gmail Manager on Firefox

最近C朋友推薦我使用這套在firefox上的plugin
可以同時監控管理多個gmail的email account
試用的結果真的很不錯~~~

所以建議大家可以試試 ^^


p.s. 先灌firefox之後,然後再用firefox開gmail manager那個網頁,直接按install即可
p.s.2 然後再到firefox的工具/下載管理員 裡去setup你的gmail帳號密碼..
Firefox Download --> http://www.moztw.org/firefox/
Gmail Manager --> https://addons.mozilla.org/firefox/1320/

[VS 2005] Visual Studio Project Templates

這幾天花了不少時間研究Visual Studio 2005裡的Project Template的功能

在VC6的時代,我就一直想要寫自己用的Templates,但是好像不太好弄,在C#一切都容易多了

一個Menu動作(Export Template),就很容易匯出Templates (Item or Project)

今天我又試出了用程式寫Wizard的方法,也是很容易

只是有點小麻煩的是 要先把寫好的Wizard(assembly)放在GAC(Global Assembly Cache)裡,

其實也很容易 就拉進去而已,只是覺得如果能在local端load assembly可能更方便 @@

完整的Document可以從msdn看 -->
http://msdn2.microsoft.com/en-us/library/6db0hwky(vs.80).aspx

有機會放再把一些Sample share出來 ^^

[Game Developement, Link] XNA : Game Studio Express (Beta 2)

最近發現XNA有一個Game Studio Express版可以Download
我就花了點時間Download且Install,感覺還蠻好玩的.....

感覺比開發DirectX/3D容易多了 不過還沒有開始研究

XNA Game Studio Express Homepage --> http://msdn.microsoft.com/directx/xna/gse/
可以從這裡Download --> http://www.microsoft.com/downloads/details.aspx?FamilyId=AADBB141-D28F-4ED0-9673-DF4D16DE3AFA&displaylang=en
要先灌Visual Studio C# Express -->
http://msdn.microsoft.com/vstudio/express/visualcsharp/download/

^^ 有什麼心得再寫上來吧...

星期五, 11月 10, 2006

[Links]Windows Presentatin Foundation

這一年來 我都專注在研究與開發WPF相關的程式 也累積了許多的網路資源可以參考
尤其Windows Vista今年底才會RTM (2006/12 ~ 2007/1) 所以其.net Framework 3.0(WinFx)
也在最近才Release出來。 .Net framework 3.0包括了WPF, WCF, WF及CardSpace。

一年其實從2005年先灌了11月版CTP (Nov CTP, CTP指的是Community Technical Preview)
到Jan CTP, Feb CTP, March CTP, May CTP, June CTP到最近的Sep CTP。
吃的苦頭還真不少~~ 尤其是前幾版的,可能改語法也改許多函式庫的類別與function

一年來的MSDN的document也都一直在補齊,所以能得到最新的資料,只能從MS裡面的人寫的Blog得知
再來就是Forum... 所以我也post了不少的文章在上面發問......

我列了一下一些blog的link給大家參考
http://www.wpf-graphics.com/ --> WPF 3D
http://blogs.msdn.com/danlehen/default.aspx --> WPF 3D
http://www.interact-sw.co.uk/iangblog/
http://blogs.msdn.com/karstenj/default.aspx
http://www.sellsbrothers.com/ --> 這個人也很有名
http://www.charlespetzold.com/ --> Applications = Code + Markup的作者 很有名
http://blogs.msdn.com/jfoscoding/default.aspx
http://blogs.msdn.com/nickkramer/ --> 有許多Interpo的例子
http://blogs.msdn.com/seema/default.aspx

另外.Net Framework 3.0也Release 可以從以下link下載
http://msdn.microsoft.com/windowsvista/support/relnotes/netfx3/default.aspx

Microsoft Expression可以從參考
http://www.microsoft.com/products/expression/en/default.mspx

Forum可以從google group找的話
http://groups.google.com.tw/group/microsoft.public.windows.developer.winfx.avalon?lnk=li&hl=zh-TW --> Avalon Forum
http://groups.google.com.tw/group/microsoft.public.expression.interactivedesigner?lnk=li&hl=zh-TW --> Interactive Designer Forum
http://groups.google.com.tw/group/microsoft.public.expression.discussion?lnk=li&hl=zh-TW --> Microsoft Expression Forum


有缺再來補齊吧 ^^

星期三, 11月 08, 2006

[.Net Software] .Net Obfuscator Survey

最近在Survey Obfuscation的工具
由於用C#撰寫出來的.Net assembly,很容易被反組譯 (such as .Net Reflector)
所以跟Member們一起研究了七八套Tools

目前Survey的有
Preemptive's DotFuscator
SmartAssembly
Remotesoft.Net Obfuscator
Spices.Obfuscator
.Net Reactor

有興趣的人都可以從google找到Trival來試用
主要試用的結果,其實大多發現大同小異....

最主要混淆的功能有二個
1. Renaming: 將class, function, namespace更名。 另外通常都會support一種叫libary mode
就是當這支assembly是當library的時候,我們並不希望public class or function也被更名。
選了library mode之後,混淆器自動保留原名

2. Control Flow: 就是將MSIL的程式再重新作些編排。這一點不是所有obfuscator都有支援。
但這點卻是蠻重要的,目前都是拿.Net Reflector作驗證會發現,不混淆的話,source code幾乎都可以
反組譯的回來.... 中間有幾套還不錯,像DotFuscator跟.Net Reactor都可以作Control Flow
還有幾套因為Trial版 沒辦法用.... 但這點應該是蠻重要的....

其它的像是Pruncing, compact, Optimization, ...etc
不過其實並沒有真的那麼確切的需要....

另外為了混淆.Net 3.0(WinFx or WPF)的程式 中間也遇了不少問題....@@
感覺未來極有可 能還是會遇到混淆之間 程式跑不起來或是出現bug的問題.....


可能還是從之中選出二三套多試用久一點..... 再來決定採購與否...

星期二, 10月 31, 2006

[Software] Free version control tool - perforce

這幾天發現HiNet有提供固定ip的服務 我很想setup一台server
剛好有一個需求 要setup一個version control的server

用google找了一陣子 看了一些 決定用perforce
在公司幾年來 我用過三個version control軟體

第一個是Visual Studio附的VisualSourceSafe
第二個是Borland的StarTeam
第三個就是Perforce 在不得已的情況得用....

三個用起來的結果是 StarTeam >> Perforce >> VisualSourceSafe (90 vs. 70 vs. 50)
但是StarTeam好像沒有免費的版本
最後還是決定用Perforce了


http://www.perforce.com/
http://www.perforce.com/perforce/loadprog.html <-- select platform
http://www.perforce.com/perforce/downloads/ntx86_64.html <-- x86 platform

灌起來用了一下 搞了十分鐘 終於上手了~~
感覺是還不錯~ 還可以用browser來做

:D

[Link] Code 4 Fun from Microsoft

Game Learning and Tutorial :p
http://msdn.microsoft.com/coding4fun/gamedevelopment/default.aspx


DirectX October Release
http://msdn.microsoft.com/directx/sdk/
http://www.microsoft.com/downloads/details.aspx?FamilyId=D625324C-59B4-4951-849E-640B508DC442&displaylang=en

^^

星期一, 10月 30, 2006

[Link] Game Developement

Terrain and Collision Detection Introduction

http://msdn.microsoft.com/coding4fun/gamedevelopment/beginning7/default.aspx

之前我有寫過類似的 不知跟他比起來怎麼樣

:p 希望有空能研究一下~~

星期五, 10月 13, 2006

My New Start

試著開始寫一些偏重技術性的文章

比較方便以後的查詢

也提供了一個環境跟大家一起討論吧

希望效果很好 也能持續下去囉.......

我想主題就著重在Software上吧.....