<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress.com" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>design-patterns &amp;laquo; WordPress.com Tag Feed</title>
	<link>http://wordpress.com/tag/design-patterns/</link>
	<description>Feed of posts on WordPress.com tagged "design-patterns"</description>
	<pubDate>Mon, 13 Oct 2008 14:58:00 +0000</pubDate>

	<generator>http://wordpress.com/tags/</generator>
	<language>en</language>

<item>
<title><![CDATA[2008 October 13 - Links for today]]></title>
<link>http://mgalinks.wordpress.com/?p=103</link>
<pubDate>Mon, 13 Oct 2008 05:43:51 +0000</pubDate>
<dc:creator>mga guy</dc:creator>
<guid>http://mgalinks.it.wordpress.com/2008/10/13/2008-october-13-links-for-today/</guid>
<description><![CDATA[jQuery
Jeffrey Jordan Way continues his series with Why Aren&#8217;t You Using jQuery: PART 3
Tero ]]></description>
<content:encoded><![CDATA[<h1>jQuery</h1>
<p>Jeffrey Jordan Way continues his series with <a href="http://www.detacheddesigns.com/blog/blogSpecific.aspx?BlogId=62">Why Aren't You Using jQuery: PART 3</a></p>
<p>Tero Piirainen details usage of a <a href="http://www.flowplayer.org/tools/scrollable.html">jQuery Plugin To Scroll Content</a></p>
<h1>Other</h1>
<p>Jacob Gube's article outlining <a href="http://sixrevisions.com/tools/tools_monitoring_website_popularity/">15 Tools for Monitoring a Website’s Popularity</a></p>
<p>Matt Berseth continues his Site Traffic analysis tooling with <a href="http://mattberseth.com/blog/2008/10/creating_a_live_traffic_page_f.html">Creating a Live Traffic Page from my PageView/Visit Database</a></p>
<p>Mike Foskett on a very nice <a href="http://websemantics.co.uk/resources/cross-fading_disjointed_image_rollover/">Cross fading disjointed image rollover</a></p>
<h1>Patterns &#38; Practices</h1>
<p>Omar Al Zabir diagrams <a href="http://msmvps.com/blogs/omar/archive/2008/10/11/an-agile-developer-s-workflow-when-scrum-is-used.aspx">An Agile Developer's workflow when SCRUM is used</a></p>
<h1>Silverlight</h1>
<p>Laurence Moroney updates some of his book samples from <a href="http://blogs.msdn.com/webnext/archive/2008/10/09/introducing-silverlight-2-code-updates-for-rc0-rtm.aspx">Introducing Silverlight 2 – Code updates for RC0/RTM</a></p>
<p>Adam J Cooper on <a href="http://www.adamjcooper.com/blog/post/Why-I-Abandoned-Silverlight-for-ASPNET-MVC.aspx">Why I Abandoned Silverlight for ASP.NET MVC</a> - really interesting read, well worth digesting in which he links to Shaun Wildermuth’s insightful article <a href="http://wildermuth.com/2008/06/26/Silverlight_and_Line_of_Business_Applications">Silverlight and Line of Business Applications</a></p>
<p>The Silverlight SDK Team have released a doc detailing <a href="http://blogs.msdn.com/silverlight_sdk/archive/2008/10/10/silverlight-breaking-changes-between-beta-2-and-release-updated-document.aspx">Silverlight Breaking Changes Between Beta 2 and Release (Updated Document)</a></p>
<p>Page Brooks on <a title="Title of this entry." href="http://pagebrooks.com/archive/2008/10/11/sharing-code-between-.net-and-silverlight-platforms.aspx">Sharing Code Between .NET and Silverlight Platforms</a></p>
<p>Jesse Liberty still has more to say following his dramatic finalisation in <a href="http://silverlight.net/blogs/jesseliberty/archive/2008/10/11/data-binding-margin-notes.aspx">Data Binding – Margin Notes</a> and <a href="http://silverlight.net/blogs/jesseliberty/archive/2008/10/12/data-binding-data-conversion.aspx">Data Binding – Data Conversion</a></p>
<p>Mike Snow keeps churning them out with <a href="http://silverlight.net/blogs/msnow/archive/2008/10/09/silverlight-tip-of-the-day-60-how-to-load-a-control-straight-from-xaml.aspx">How to load a XAML Control From a File or String</a></p>
<p>Corey Schuman has an <a title="Permanent Link to Video Slider update for RC0" href="http://www.85turns.com/2008/10/10/video-slider-update-for-rc0/">Video Slider update for RC0</a></p>
<p>Tim Heuer <a title="Title of this entry." href="http://timheuer.com/blog/archive/2008/10/10/where-is-chiron-in-silverlight-2-release.aspx">Hey, who took my Chiron?</a> and if your not sure what he is talking about, it is definately worth reading :)</p>
<p><strong><span style="font-weight:normal;">David Anson fixes a bug which was <a href="http://blogs.msdn.com/delay/archive/2008/10/09/just-a-little-too-eager-with-the-clicking-updated-binaries-and-source-for-mousebuttonclicker.aspx">Just a little too eager with the clicking... [Updated binaries and source for MouseButtonClicker]</a></span></strong></p>
<p>Rick Code on a <a href="http://www.codeproject.com/KB/silverlight/NavigableGrid.aspx">Navigable Grid in Silverlight, supporting Page Navigation for List Controls such as Data Grid (RC0)</a></p>
<p>Martin Mihaylov on <a href="http://www.silverlightshow.net/items/Page-navigation-and-browser-history-in-Silverlight.aspx">Page navigation and browser history in Silverlight</a></p>
<p>Bill Reiss details some <a href="http://www.bluerosegames.com/SilverlightBrassTacks/post/Great-freeware-fonts-for-PathTextBlock-and-Silverlight.aspx">Great freeware fonts for PathTextBlock and Silverlight</a></p>
<p>Tom breaks down the <a href="http://blogs.msdn.com/tom/archive/2008/10/10/xperf-a-cpu-sampler.aspx">XPerf: A CPU Sampler</a></p>
<p>Rob Eisenberg announces <a href="http://devlicio.us/blogs/rob_eisenberg/archive/2008/10/12/caliburn-alpha-for-wpf-and-silverlight-is-here.aspx" target="_blank">Caliburn Alpha for WPF AND Silverlight is Here!</a></p>
<h1>SQL</h1>
<p>Jacob Sebastian on <a href="http://www.sqlserverandxml.com/2008/10/understanding-sql-server-set-options-3.html">Understanding SQL Server SET Options 3 - SET ANSI_PADDING ON &#124; OFF</a> and <a href="http://www.sqlserverandxml.com/2008/10/unpivot-example-2.html">UNPIVOT Example 2</a></p>
<p>Mika Wendelius on <a href="http://www.codeproject.com/KB/database/SQLDBRowVersioning.aspx">Data versioning in SQL Server using row versions</a></p>
<p>Brad McGehee on <a href="http://www.simple-talk.com/sql/learn-sql-server/sql-server-2008-the-new-data-types/">SQL Server 2008: The New Data Types</a></p>
<h1>TDD</h1>
<p>Roy Osherove announces the <a href="http://weblogs.asp.net/rosherove/archive/2008/10/11/art-of-unit-testing-book-done-wiki-ready.aspx">Art Of Unit Testing – Book done, Wiki ready</a></p>
<h1>WPF</h1>
<p>Sacha Barber's<strong> </strong><a title="Permalink to  WPF Screen Saver" href="http://sachabarber.net/?p=337">WPF Screen Saver</a></p>
<p>Josh Smith <a title="Showing an Ellipsis for Clipped Text in a ComboBox" href="http://joshsmithonwpf.wordpress.com/2008/10/11/showing-an-ellipsis-for-clipped-text-in-a-combobox/">Showing an Ellipsis for Clipped Text in a ComboBox</a></p>
<p>Brian Noyes releases <a href="http://www.softinsight.com/bnoyes/2008/10/11/SDCDay2CompositeWPFAndWPFDataBinding.aspx">Composite WPF and WPF Data Binding</a><a href="http://www.softinsight.com/bnoyes/2008/10/11/SDCDay2CompositeWPFAndWPFDataBinding.aspx"> slides and code</a> from Day 2<strong> </strong>at the Software Developers Network conference (aka SDC) in Netherlands</p>
<p>Paul Stovell on <a title="DelayBinding" href="http://www.paulstovell.com/blog/delaybinding-for-wpf">WPF: DelayBinding</a> and <a title="Dependency Injection in XAML" href="http://www.paulstovell.com/blog/wpf-dependency-injection-in-xaml">WPF: Dependency Injection in XAML</a></p>
<p>Thomas Gerber gives us another bar control with the <a href="http://www.codeproject.com/KB/WPF/WPFOutlookBar.aspx">WPF OutlookBar control</a></p>
<p>Karl Shifflett reduces time to develop once more with <a title="Viewing Design Time Data in Visual Studio 2008 Cider Designer in WPF and Silverlight Projects" href="http://karlshifflett.wordpress.com/2008/10/11/viewing-design-time-data-in-visual-studio-2008-cider-designer-in-wpf-and-silverlight-projects/">Viewing Design Time Data in Visual Studio 2008 Cider Designer in WPF and Silverlight Projects</a></p>
<p>Jgoldb announces <a href="http://blogs.msdn.com/jgoldb/archive/2008/10/10/fixes-to-wpfperf-performance-profiling-tool.aspx">Fixes to WpfPerf Performance Profiling Tool</a></p>
<p>Colin Eberhardt has a really nice article on <a href="http://www.codeproject.com/KB/WPF/WpfWinFormsBulletGraphs.aspx">Bullet Graphs; A Custom Control - WPF vs. Windows Forms</a></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Strategy Design Pattern]]></title>
<link>http://thegame28.wordpress.com/?p=50</link>
<pubDate>Sun, 12 Oct 2008 17:53:44 +0000</pubDate>
<dc:creator>thegame28</dc:creator>
<guid>http://thegame28.it.wordpress.com/2008/10/12/strategy-design-pattern/</guid>
<description><![CDATA[
 
note: base class doTask(), perform some task
code has change frequently from derived classes.
- t]]></description>
<content:encoded><![CDATA[<pre><a href="http://thegame28.files.wordpress.com/2008/10/figure1.jpg"><img class="alignnone size-full wp-image-94" title="figure1" src="http://thegame28.wordpress.com/files/2008/10/figure1.jpg" alt="" width="242" height="453" /></a>
<span style="font-size:11pt;"> </span>
<span style="font-size:11pt;">note: base class doTask(), perform some task</span>
<span style="font-size:11pt;">code has change frequently from derived classes.</span>
<span style="font-size:11pt;">- thats the problem bcoz when u have a inherited</span>
<span style="font-size:11pt;">classes that write there own code all the time, you have</span>
<span style="font-size:11pt;">maintenance problem. u need to change for many</span>
<span style="font-size:11pt;">generation of all inherited classes. designed to fix that spreading ur codes.</span>
<span style="font-size:11pt;"> </span>
<a href="http://thegame28.files.wordpress.com/2008/10/figure25.jpg"><img class="alignnone size-large wp-image-103" title="figure25" src="http://thegame28.wordpress.com/files/2008/10/figure25.jpg?w=500" alt="" width="500" height="147" /></a>
<span style="font-size:11pt;"> </span>
<span style="font-size:11pt;">note: this algorithms place in algorithm variable,</span>
<span style="font-size:11pt;">run different code depending on object,</span>
<span style="font-size:11pt;">the idea is seperate , allow ur algo object inside var that</span>
<span style="font-size:11pt;">lets u supply different version</span>
<span style="font-size:11pt;">of doTask method. polymorphism. </span>
<span style="font-size:11pt;"> </span>
<span style="font-size:11pt;">Has a inheritance, allows u to have algorithm.</span>
<span style="font-size:11pt;">&#60;</span>
<code><span style="font-size:11pt;">&#60;?php</span></code>
<code><span style="font-size:11pt;">/**</span></code>
<code><span style="font-size:11pt;"> * File name: Strategy.php</span></code>
<code><span style="font-size:11pt;"> * Created by: Charles Claver / charles.claver@gmail.com</span></code>
<code><span style="font-size:11pt;"> * Created Date: Sept 1, 2008</span></code>
<code><span style="font-size:11pt;"> *</span></code>
<code><span style="font-size:11pt;"> * Strategy Design Pattern</span></code>
<code><span style="font-size:11pt;"> *</span></code>
<code><span style="font-size:11pt;"> */</span></code>
<code><span style="font-size:11pt;"> </span></code>
<code><span style="font-size:11pt;">//interface GoAlgorithm</span></code>
<code><span style="font-size:11pt;">interface GoAlgorithm {</span></code>
<code><span style="font-size:11pt;"><span>       </span>public function go();</span></code>
<code><span style="font-size:11pt;">}</span></code>
<code><span style="font-size:11pt;"> </span></code>
<code><span style="font-size:11pt;">class GoByDrivingAlgorithm</span></code>
<code><span style="font-size:11pt;">{</span></code>
<code><span style="font-size:11pt;"><span>  </span>public function go()</span></code>
<code><span style="font-size:11pt;"><span>  </span>{</span></code>
<code><span style="font-size:11pt;"><span>    </span>echo "Now I'm driving.&#60;br&#62;";</span></code>
<code><span style="font-size:11pt;"><span>  </span>}</span></code>
<code><span style="font-size:11pt;">}</span></code>
<code><span style="font-size:11pt;"> </span></code>
<code><span style="font-size:11pt;">class GoByFlyingAlgorithm implements GoAlgorithm</span></code>
<code><span style="font-size:11pt;">{</span></code>
<code><span style="font-size:11pt;"><span>  </span>public function go() {</span></code>
<code><span style="font-size:11pt;"><span>    </span>echo "Now I'm flying.&#60;br&#62;";</span></code>
<code><span style="font-size:11pt;"><span>  </span>}</span></code>
<code><span style="font-size:11pt;">}</span></code>
<code><span style="font-size:11pt;"> </span></code>
<code><span style="font-size:11pt;">class GoByFlyingFastAlgorithm implements GoAlgorithm</span></code>
<code><span style="font-size:11pt;">{</span></code>
<code><span style="font-size:11pt;"><span>  </span>public function go()</span></code>
<code><span style="font-size:11pt;"><span>  </span>{</span></code>
<code><span style="font-size:11pt;"><span>    </span>echo "Now I'm flying fast.&#60;br&#62;";</span></code>
<code><span style="font-size:11pt;"><span>  </span>}</span></code>
<code><span style="font-size:11pt;">}</span></code>
<code><span style="font-size:11pt;"> </span></code>
<code><span style="font-size:11pt;">abstract class Vehicle</span></code>
<code><span style="font-size:11pt;">{</span></code>
<code><span style="font-size:11pt;"><span>  </span>private $goAlgorithm;</span></code>
<code><span style="font-size:11pt;"> </span></code>
<code><span style="font-size:11pt;"><span>  </span>function Vehicle() {</span></code>
<code><span style="font-size:11pt;"><span>  </span>}</span></code>
<code><span style="font-size:11pt;"> </span></code>
<code><span style="font-size:11pt;"><span>  </span>public function setGoAlgorithm ($algorithm)</span></code>
<code><span style="font-size:11pt;"><span>  </span>{</span></code>
<code><span style="font-size:11pt;"><span>    </span>$this-&#62;goAlgorithm = $algorithm;</span></code>
<code><span style="font-size:11pt;"><span>  </span>}</span></code>
<code><span style="font-size:11pt;"> </span></code>
<code><span style="font-size:11pt;"><span>  </span>public function go() {</span></code>
<code><span style="font-size:11pt;"><span>  </span><span>     </span><span> </span>$this-&#62;goAlgorithm-&#62;go();</span></code>
<code><span style="font-size:11pt;"><span>  </span>}</span></code>
<code><span style="font-size:11pt;">}</span></code>
<code><span style="font-size:11pt;"> </span></code>
<code><span style="font-size:11pt;">class StreetRacer extends Vehicle</span></code>
<code><span style="font-size:11pt;">{</span></code>
<code><span style="font-size:11pt;"><span>       </span>public function StreetRacer() {</span></code>
<code><span style="font-size:11pt;"><span>              </span>$this-&#62;setGoAlgorithm(new GoByDrivingAlgorithm());</span></code>
<code><span style="font-size:11pt;"><span>       </span>}</span></code>
<code><span style="font-size:11pt;">}</span></code>
<code><span style="font-size:11pt;"> </span></code>
<code><span style="font-size:11pt;">class FormulaOne extends Vehicle</span></code>
<code><span style="font-size:11pt;">{</span></code>
<code><span style="font-size:11pt;"><span>       </span>public function FormulaOne() {</span></code>
<code><span style="font-size:11pt;"><span>              </span>$this-&#62;setGoAlgorithm(new GoByDrivingAlgorithm());</span></code>
<code><span style="font-size:11pt;"><span>       </span>}</span></code>
<code><span style="font-size:11pt;">}</span></code>
<code><span style="font-size:11pt;"> </span></code>
<code><span style="font-size:11pt;">class Helicopter extends Vehicle</span></code>
<code><span style="font-size:11pt;">{</span></code>
<code><span style="font-size:11pt;"><span>       </span>public function Helicopter() {</span></code>
<code><span style="font-size:11pt;"><span>              </span>$this-&#62;setGoAlgorithm(new GoByFlyingAlgorithm());</span></code>
<code><span style="font-size:11pt;"><span>       </span>}</span></code>
<code><span style="font-size:11pt;">}</span></code>
<code><span style="font-size:11pt;"> </span></code>
<code><span style="font-size:11pt;">class Jet extends Vehicle</span></code>
<code><span style="font-size:11pt;">{</span></code>
<code><span style="font-size:11pt;"><span>       </span>public function Jet() {</span></code>
<code><span style="font-size:11pt;"><span>              </span>$this-&#62;setGoAlgorithm(new GoByFlyingFastAlgorithm());</span></code>
<code><span style="font-size:11pt;"><span>       </span>}</span></code>
<code><span style="font-size:11pt;">}</span></code>
<code><span style="font-size:11pt;"> </span></code>
<code><span style="font-size:11pt;">//execute</span></code>
<code><span style="font-size:11pt;">$sr = new StreetRacer();</span></code>
<code><span style="font-size:11pt;">$fo = new FormulaOne();</span></code>
<code><span style="font-size:11pt;">$h = new Helicopter();</span></code>
<code><span style="font-size:11pt;">$j = new Jet();</span></code>
<code><span style="font-size:11pt;"> </span></code>
<code><span style="font-size:11pt;">$sr-&#62;go();</span></code>
<code><span style="font-size:11pt;">$fo-&#62;go();</span></code>
<code><span style="font-size:11pt;">$h-&#62;go();</span></code>
<code><span style="font-size:11pt;">$j-&#62;go();</span></code>
<code><span style="font-size:11pt;"> </span></code>
<code><span style="font-size:11pt;">?&#62;</span></code></pre>
<p class="MsoNormal"><span style="font-size:11pt;"> </span></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Command Pattern-2]]></title>
<link>http://yahyakoc.wordpress.com/?p=418</link>
<pubDate>Sun, 12 Oct 2008 10:43:25 +0000</pubDate>
<dc:creator>Yahya KOÇ</dc:creator>
<guid>http://yahyakoc.it.wordpress.com/2008/10/12/command-pattern-2/</guid>
<description><![CDATA[Konuyla ilgili önceki yazılar:

Command Pattern-1

&#8220;Pdf Okuyucu&#8221; örneğimizi genişle]]></description>
<content:encoded><![CDATA[<p>Konuyla ilgili önceki yazılar:</p>
<ul>
<li><a href="http://yahyakoc.wordpress.com/2008/10/11/command-pattern/">Command Pattern-1</a></li>
</ul>
<p>"Pdf Okuyucu" örneğimizi genişleterek devam ediyoruz.PdfPager adında sayfaları ileri-geri çevirmemize yardım eden bir sınıfımız vardı.Şimdi de sayfalar üzerinde not almamızı sağlayacak bir PdfWriter sınıfımız olsun.Bu sınıf yardımı ile sayfalar üzerinde not alabilelim ya da aldığımız önceki notları silebilelim.<br />
<!--more--><br />
Önce ReadCommand sınıfımızı hatırlayalım:<br />
[sourcecode language="csharp"]<br />
public class ReadCommand:ICommand<br />
{<br />
    public PdfPager pdfPager { get; set; }<br />
    public char IslemTipi { get; set; }<br />
    public int Miktar { get; set; }   </p>
<p>    public void Execute()<br />
    {<br />
        pdfPager.Read(IslemTipi, Miktar);<br />
    }<br />
    public void Undo()<br />
    {<br />
        ChangeIslemTipi();<br />
        Execute();<br />
    }<br />
    public void Redo()<br />
    {<br />
        ChangeIslemTipi();<br />
        Execute();<br />
    }<br />
    public void ChangeIslemTipi()<br />
    {<br />
        IslemTipi = IslemTipi == '+' ? '-' : '+';<br />
    }<br />
}<br />
[/sourcecode]<br />
Command arayüzünü hatırlayalım.<br />
[sourcecode language="csharp"]<br />
public interface ICommand<br />
{<br />
    void Execute();<br />
    void Undo();<br />
    void Redo();<br />
}<br />
[/sourcecode]<br />
Yeni komut sınıfımız olan WriteCommand sınıfımızda da IslemTipi alanına(not ekle,not sil) ihtiyacımız olacak.Undo ve  Redo metodları da önce işlem tipini değiştirip sonra execute metodunu çağıracak.Öyleyse ortak kod bloklarımız var.Bu durumda arayüzü soyut sınıfa çeviriyoruz.Yeni command soyut sınıfımızı  inceleyelim:<br />
[sourcecode language="csharp"]<br />
public abstract class Command<br />
    {<br />
        public abstract void Execute();<br />
        public  void Undo()<br />
        {<br />
            ChangeIslemTipi();<br />
            Execute();<br />
        }<br />
        public  void Redo()<br />
        {<br />
            ChangeIslemTipi();<br />
            Execute();<br />
        }<br />
        public void ChangeIslemTipi()<br />
        {<br />
            IslemTipi = IslemTipi == '+' ? '-' : '+';<br />
        }<br />
        public abstract char IslemTipi { get; set; }<br />
    }<br />
[/sourcecode]<br />
Şimdi de ReadCommad ve WriteCommand sınıfılarımızın son haline bakalım.<br />
[sourcecode language="csharp"]<br />
    public class ReadCommand:Command<br />
    {<br />
        public PdfPager pdfPager { get; set; }<br />
        public override char IslemTipi { get; set; }<br />
        public int Miktar { get; set; }<br />
        public override void Execute()<br />
        {<br />
            pdfPager.Read(IslemTipi, Miktar);<br />
        }<br />
    }<br />
[/sourcecode]<br />
[sourcecode language="csharp"]<br />
public class WriteCommand:Command<br />
    {<br />
       public override void Execute()<br />
        {<br />
            pdfWriter.PdfNotlariniYonet(IslemTipi,Not);<br />
        }<br />
        public override char IslemTipi { get; set; }<br />
        public string Not { get; set; }<br />
        public PdfWriter pdfWriter { get; set; }<br />
    }<br />
[/sourcecode]<br />
PdfPager sınıfında hangi sayfada olduğumuzu gösteren CurrentPageIndex adında bir alanımız vardı.Yeni sınıfımız PdfWriter için de hangi sayfaya not aldığımızı gösterecek böyle bir alana ihtiyaç var.Aslında CurrentPageIndex alanının bu iki sınıfa da ait olmadığını direk Book sınıfının bir özelliği olduğunu görüyoruz.Öyleyse bu özelliği, Book sınıfına taşıyoruz.</p>
<p>Book sınıfının son durumu şöyle:<br />
[sourcecode language="csharp"]<br />
 public class Book<br />
    {<br />
        private readonly List<Command> commands = new List<Command>();<br />
        public readonly PdfPager pager=new PdfPager();<br />
        public readonly PdfWriter writer = new PdfWriter();<br />
        private int CurrentCommandIndex { get; set; }<br />
        public int CurrentPageIndex { get; set; }</p>
<p>        public Book()<br />
        {<br />
            CurrentCommandIndex = -1;<br />
            writer.book = this;<br />
            pager.book = this;<br />
        }<br />
        public void Oku(char IslemTipi, int Miktar)<br />
        {<br />
            ReadCommand readCommand = new ReadCommand { IslemTipi = IslemTipi, Miktar = Miktar, pdfPager = pager};<br />
            commands.Add(readCommand);<br />
            CurrentCommandIndex++;<br />
            readCommand.Execute();<br />
        }<br />
        public void IslemleriGeriAl(int times)<br />
        {<br />
            for (int i = 0; i < times; i++)<br />
            {<br />
                commands[CurrentCommandIndex].Undo();<br />
                CurrentCommandIndex--;<br />
            }<br />
        }<br />
        public void IslemleriIleriAl(int times)<br />
        {<br />
            for (int i = 0; i < times; i++)<br />
            {<br />
                CurrentCommandIndex++;<br />
                commands[CurrentCommandIndex].Redo();<br />
            }<br />
        }<br />
        public void NotAl(char IslemTipi,string not)<br />
        {<br />
            WriteCommand writeCommand = new WriteCommand { IslemTipi = IslemTipi, Not = not, pdfWriter = writer };<br />
            commands.Add(writeCommand);<br />
            CurrentCommandIndex++;<br />
            writeCommand.Execute();<br />
        }<br />
    }<br />
[/sourcecode]<br />
PdfWriter sınıfımız:<br />
[sourcecode language="csharp"]<br />
 public  class PdfWriter<br />
    {<br />
      public Book book { get; set; }<br />
      readonly IDictionary<int,string> NotList=new Dictionary<int, string>();<br />
      public void  PdfUzerineNotKaydet(string not)<br />
      {<br />
           NotList.Add(book.CurrentPageIndex,not);<br />
      }<br />
      public void PdfUzerineNotSil(string not)<br />
      {<br />
          FindAndDeleteNot(not);<br />
      }<br />
      private void FindAndDeleteNot(string not)<br />
        {<br />
           foreach(KeyValuePair<int,string> pair in NotList)<br />
           {<br />
               if(pair.Value==not)<br />
               {<br />
                   NotList.Remove(pair.Key);<br />
                   break;<br />
               }<br />
           }<br />
        }<br />
        public void PdfNotlariniYonet(char IslemTipi, string not)<br />
        {<br />
            switch (IslemTipi)<br />
            {<br />
                case '+':<br />
                    PdfUzerineNotKaydet(not);<br />
                    break;<br />
                case '-':<br />
                    PdfUzerineNotSil(not);<br />
                    break;<br />
            }<br />
        }<br />
    }<br />
[/sourcecode]<br />
ve nihayet Musteri sınıfı:<br />
[sourcecode langugae="csharp"]<br />
 public class Musteri<br />
    {<br />
        public static void Oku()<br />
        {<br />
            Book book = new Book();<br />
            book.CurrentPageIndex = 28;</p>
<p>            book.NotAl('+',"deneme");<br />
            book.Oku('+', 5);<br />
            book.NotAl('+', "deneme2");<br />
            book.Oku('+', 7);<br />
            book.NotAl('+', "deneme3");<br />
            book.Oku('+', 8);<br />
            book.NotAl('-', "deneme");<br />
            book.IslemleriGeriAl(2);<br />
            int sayfaNumarasi = book.CurrentPageIndex;<br />
        }<br />
    }<br />
[/sourcecode]</p>
<p>book.IslemleriGeriAl(2); satırına gelindiğinde sayfa numarası 48,book nesnesinin içinde yer alan writer nesnesi üzerinde tuttuğumuz NotList alanı: (33,deneme2),(40,deneme3) değerlerini gösterir.<br />
book.IslemleriGeriAl(2); satırını da çalıştırdığımzıda önce book.NotAl('-', "deneme"); komutumuz tersine çalışıp sildiğimiz "deneme" notunu geri yazacağız.Sonra da  book.Oku('+', 8); komutunu tersine çalıştırıp 8 sayfa geri gideceğiz.Son durumda sayfa numarası 40,book nesnesinin içinde yer alan writer nesnesi üzerinde tuttuğumuz NotList alanı: (33,deneme2),(40,deneme3),(48,deneme) değerlerini gösterir.</p>
<p>Temel iş mantığında hatalar,mantıksızlar olabilir.Sonuçta bu bir örnek.Önemli olan command pattern desenin işleyiş mantığını anlamak.<br />
Tasarım desenleri ile alakalı bir kaç şey söylerek bu yazıyı tamamlamak istiyorum.Tasarım desenleri uygulanması zorunlu metodolojiler değildir.Çözüm getirdiği iddia edilen durumlar için uygunluğu daha önceden birçok kez tescil edilmiş,genelleşmiş yöntemlerdir.Her geliştiricinin kendine has durumları için kendine özel çözümleri,tasarım desenleri olabilir.Yazılımcının tasarım deseni ezberlemesi çok mantıksız ve gereksiz geliyor bana..Ben command Pattern'i ezbere bilmiyorum.Bu kodu yazdıktan sonra bile ezberimde değil<img src="http://yahyakoc.wordpress.com/files/2008/09/icon_smile.gif" alt="" title="icon_smile" width="15" height="15" class="alignnone size-full wp-image-80" />.İhtiyacım olduğunda daha önceden yazılmış kodu inceleyerek kendi durumuma göre özelleştirip kullanıyorum.Bazı durumlarda "illa da tasarım deseni kullanarak yapacağım(overengineering)" diye basit bir kodu karmaşıklaştırmanın hiç bir anlamı yok.Yazılım geliştirme, deneme-yanılma yöntemine dayalı(heuristic) bir iştir.Yukarıda yazılan kod, yeni yeni deneme-yanılma yöntemleri kullanılarak daha iyi bir duruma getirilebilir.<br />
Sağlıcakla kalın.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Command Pattern]]></title>
<link>http://yahyakoc.wordpress.com/?p=400</link>
<pubDate>Sat, 11 Oct 2008 22:53:55 +0000</pubDate>
<dc:creator>Yahya KOÇ</dc:creator>
<guid>http://yahyakoc.it.wordpress.com/2008/10/11/command-pattern/</guid>
<description><![CDATA[Nesnelerimizin üzerinde çalışacak komutları birer nesne olarak sarmalıyoruz(Encapsulation).Yan]]></description>
<content:encoded><![CDATA[<p>Nesnelerimizin üzerinde çalışacak komutları birer nesne olarak sarmalıyoruz(Encapsulation).Yani metodlarımızı birer nesne haline getiriyoruz.Böylece çalıştırdığımız metodları ve parametlerini bir yerlerde saklamış oluyoruz.Bu komut nesnelerini, bir arayüz ya da soyut bir sınıftan türütüyoruz.Böylece örneğin "Run" gibi çok genel anlamı olan bir metod içerisinde farklı farklı işlemler yapabileceğiz.<br />
<!--more--><br />
Örneğin<br />
[sourcecode language="csharp"]<br />
public class EkleCommand:ICommand<br />
{<br />
  public void Run()<br />
  {<br />
   //Veritabanına Ekle<br />
  }<br />
}<br />
public class UyarCommand:ICommand<br />
{<br />
  public void Run()<br />
  {<br />
   //MailAt<br />
  }<br />
}<br />
public interface ICommand<br />
{<br />
  void Run();<br />
}<br />
[/sourcecode]</p>
<p>Şöyle de bir kodumuz olsun<br />
[sourcecode language="csharp"]<br />
private readonly List<ICommand> commands = new List<ICommand>();<br />
ICommand command1=new EkleCommand ();<br />
ICommand command2=new UyarCommand();<br />
commands.Add(command1);<br />
commands.Add(command2);<br />
.......<br />
foreach(ICommand cmd in commands)<br />
{<br />
  cmd.Run();<br />
}<br />
[/sourcecode]</p>
<p>Gördüğümüz gibi çalışacak komutlarımızı bir köşede saklıyoruz.Zamanı gelince de sırayla çalıştırabiliyoruz.Bu tür kullanım genelde içerisinde Undo-Redo metodları olan uygulamalar içindir.Örneğin Microsoft Word Geri Al(Ctrl+Z).....</p>
<p>Şöyle bir uygulama tasarlayalım.Bir Müşteri web sitemize girip Elektronik kitap üzerinde okuma yapabilsin.Sayfalar arasında dolaşabilsin.Sonra yaptığı işlemleri geri alabilsin.<br />
Önce yazdığımız kodun sequence diagramına bakalım:<br />
<img src="http://yahyakoc.wordpress.com/files/2008/10/commandpattern.jpg" alt="" title="commandpattern" width="771" height="544" class="alignnone size-full wp-image-402" /></p>
<p>Öncelikle ICommand arayüzünü inceleyelim.<br />
[sourcecode language="csharp"]<br />
    public interface ICommand<br />
    {<br />
        void Execute();<br />
        void Undo();<br />
        void Redo();<br />
    }<br />
[/sourcecode]<br />
Üç temel metodumuz var.Bunları uygulayabilecek farklı farklı command nesneleri oluşturabiliriz.<br />
PdfPager adındaki sınıfımız sayfalar arasında geçiş yapmamıza yardım etsin.</p>
<p>[sourcecode language="csharp"]<br />
public class PdfPager<br />
    {<br />
        public  int CurrentPageIndex { get; set; }<br />
        public  void Read(char IslemTipi, int Miktar)<br />
        {<br />
            switch (IslemTipi)<br />
            {<br />
                case '+':<br />
                     IleriDogruCevir(Miktar);<br />
                    break;<br />
                case '-':<br />
                     GeriDogruCevir(Miktar);<br />
                     break;<br />
            }<br />
        }<br />
        private void GeriDogruCevir(int miktar)<br />
        {<br />
            CurrentPageIndex+=( - 1 * miktar);<br />
        }<br />
        private void IleriDogruCevir(int miktar)<br />
        {<br />
            CurrentPageIndex+=miktar;<br />
        }<br />
    }<br />
[/sourcecode]<br />
PdfPager sınıfındaki Read metodu yardımıyla sayfalarımızı ileri yada geri çevirebiliyoruz.<br />
Şimdi asıl işimizi görecek ReadCommand sınıfını inceleyelim:<br />
[sourcecode language="csharp"]<br />
    public class ReadCommand:ICommand<br />
    {<br />
        public PdfPager pdfPager { get; set; }<br />
        public char IslemTipi { get; set; }<br />
        public int Miktar { get; set; }</p>
<p>        public void Execute()<br />
        {<br />
            pdfPager.Read(IslemTipi, Miktar);<br />
        }<br />
        public void Undo()<br />
        {<br />
            ChangeIslemTipi();<br />
            Execute();<br />
        }<br />
        public void Redo()<br />
        {<br />
            ChangeIslemTipi();<br />
            Execute();<br />
        }<br />
        public void ChangeIslemTipi()<br />
        {<br />
            IslemTipi = IslemTipi == '+' ? '-' : '+';<br />
        }<br />
    }<br />
[/sourcecode]<br />
Bu komut sınıfımızda Execute,Undo,Redo metodlarının içini dolduruyoruz.</p>
<p>Şimdi de Book ve Musteri sınıflarımıza bakalım.<br />
[sourcecode language="csharp"]<br />
 public class Musteri<br />
    {<br />
        public static void Oku()<br />
        {<br />
            Book book = new Book();<br />
            book.pager.CurrentPageIndex = 28;<br />
            book.Oku('+', 2);<br />
            book.Oku('-', 1);<br />
            book.Oku('+', 11);<br />
            book.IslemleriGeriAl(3);<br />
            book.IslemleriIleriAl(2);<br />
            int sayfaNumarasi = book.pager.CurrentPageIndex;<br />
        }<br />
    }<br />
 public class Book<br />
    {<br />
        private readonly List<ICommand> commands = new List<ICommand>();<br />
        public readonly PdfPager pager=new PdfPager();<br />
        private int CurrentCommandIndex { get; set; }<br />
        public Book()<br />
        {<br />
            CurrentCommandIndex = -1;<br />
        }<br />
        public void Oku(char IslemTipi, int Miktar)<br />
        {<br />
            ReadCommand readCommand = new ReadCommand { IslemTipi = IslemTipi, Miktar = Miktar, pdfPager = pager};<br />
            commands.Add(readCommand);<br />
            CurrentCommandIndex++;<br />
            readCommand.Execute();<br />
        }<br />
        public void IslemleriGeriAl(int times)<br />
        {<br />
            for (int i = 0; i < times; i++)<br />
            {<br />
                commands[CurrentCommandIndex].Undo();<br />
                CurrentCommandIndex--;<br />
            }<br />
        }<br />
        public void IslemleriIleriAl(int times)<br />
        {<br />
            for (int i = 0; i < times; i++)<br />
            {<br />
                CurrentCommandIndex++;<br />
                commands[CurrentCommandIndex].Redo();<br />
            }<br />
        }<br />
    }<br />
[/sourcecode]<br />
Kitap sınıfımızda ICommand tipinde commands adında bir listemiz var.Çalışacak komutlarımızı burada tutuyoruz.(Stack de kullanılabilir).CurrentPageIndex müşterinin o anda okuduğu sayfa numarasını,currentCommandIndex o anda çalışan komut sırasını göstersin.<br />
IslemleriGeriAl metodunda ICommand tipindeki komutlarımızın Undo metodunu çalıştırıyoruz. Böylece yapılan işlemi geri alabiliyoruz.Üç sayfa ileri gitmişsek üç sayfa geri gidiyoruz.Beş sayfa geri gitmişsek beş sayfa ileri gidiyoruz.<br />
[sourcecode language="csharp"]<br />
Book book = new Book();<br />
book.pager.CurrentPageIndex = 28;<br />
book.Oku('+', 2);<br />
[/sourcecode]<br />
Bu kod bloğu sonunda CurrentPageIndex 30'u gösterecektir.(İki sayfa ilerledik)<br />
[sourcecode language="csharp"]<br />
Book book = new Book();<br />
book.pager.CurrentPageIndex = 28;<br />
book.Oku('+', 2);<br />
book.Oku('-', 1);<br />
book.Oku('+', 11);<br />
[/sourcecode]<br />
Bu kod bloğu sonunda CurrentPageIndex 40'ı gösterecektir.(28+2-1+11)<br />
[sourcecode language="csharp"]<br />
book.IslemleriGeriAl(3);<br />
[/sourcecode]<br />
IslemleriGeriAl metodunda üç defa <strong>Undo </strong> işlemi çalışacaktır.Bu işlemler sırasında daha önce çalıştırdığımız son üç metodun işlem tipi değiştirilerek sonuca gidilecektir.<br />
40-11+1-2=28 Tekrar başladığımız yere döndük.<br />
[sourcecode language="csharp"]<br />
book.IslemleriIleriiAl(2);<br />
[/sourcecode]<br />
IslemleriGeriAl metodunda üç defa <strong>Redo </strong>işlemi çalışacaktır.Daha önce çalıştırdığımız metodlardan kaldığımız sırada işlem tipi değiştirilerek sonuca gidilecektir.<br />
En son 28.sayfada kalmıştık.<br />
28+2-1=29<br />
İşlemler sonucunda 29.sayfaya konumlandığımızı gördük.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Singletons in Python]]></title>
<link>http://codething.wordpress.com/?p=5</link>
<pubDate>Fri, 10 Oct 2008 18:23:26 +0000</pubDate>
<dc:creator>lukef</dc:creator>
<guid>http://codething.it.wordpress.com/2008/10/10/singletons-in-python/</guid>
<description><![CDATA[So I&#8217;ve been getting back into python. I have always been a dabbler when it comes to scripting]]></description>
<content:encoded><![CDATA[<p>So I've been getting back into python. I have always been a dabbler when it comes to scripting languages. I mean, every chance I get I try to convince whichever employer I am working for that they are good to have around, but alas it doesn't always work out perfectly.</p>
<p>Anyhow, I started writing a little mail checker application for gnome, something that there are 100's of, sure, but something that I think has never been done well enough for me to use them. When handling application-wide configuration for said application, I thought "Singleton!". So I browsed the web, condensed what was what, and came up with the following snippet.</p>
<p>It is based heavily off a code snippet i found on activestate code [<a href="http://code.activestate.com/recipes/52558/">link</a>]. I guess I just prettied it up a little and swapped a few things about.</p>
<p>It's not thread safe, in this instance, so you'll want to read the comments for a pointer on implementing locking.</p>
<p>Here is the basic template code:</p>
<div>
<pre><code>class Singleton(object):

    __instance = None            # single instance
    __test = ""

    def __new__(cls, *args, **keywords):
        return cls.getInstance(cls, *args, **keywords)

    def __init__(self):
        pass

    @classmethod
    def getInstance(cls, *args, **keywords):
        if cls.__instance is None:
            cls.__instance = object.__new__(cls, *args, **keywords)
        return cls.__instance

    # attribute accessors
    def get_test(self):
        return Singleton.__instance.__test

    def set_test(self, test):
        Singleton.__instance.__test = test

    test = property(get_test, set_test)</code></pre>
</div>
]]></content:encoded>
</item>
<item>
<title><![CDATA[2008 October 10 - Links for today]]></title>
<link>http://mgalinks.wordpress.com/?p=101</link>
<pubDate>Fri, 10 Oct 2008 08:03:41 +0000</pubDate>
<dc:creator>mga guy</dc:creator>
<guid>http://mgalinks.it.wordpress.com/2008/10/10/2008-october-10-links-for-today/</guid>
<description><![CDATA[ASP.Net
A work colleague pointed me at Lightweight Test Automation Framework for ASP.NET Samples tod]]></description>
<content:encoded><![CDATA[<h1>ASP.Net</h1>
<p>A work colleague pointed me at <a href="http://www.codeplex.com/aspnet/Wiki/View.aspx?title=ASP.NET%20QA">Lightweight Test Automation Framework for ASP.NET Samples</a> today. Looks promising but got me thinking again about UI functionality testing. So I started wondering if you could use jQuery to write a bunch of functionality tests for any kind of pages? i.e. Load a page, have jQuery check for expected page elements, manipulate given elements and check form / page interaction. I may even get time to try that out one day.</p>
<h1>jQuery</h1>
<p>Dave M Bush on <a href="http://blog.dmbcllc.com/2008/10/08/jquery-the-man-the-myth-the-legend/">jQuery - The Man, The Myth, The Legend</a></p>
<p>Casey Charlton points out a <a href="http://devlicio.us/blogs/casey/archive/2008/10/09/jquery-gotcha-functions-in-events.aspx">jQuery Gotcha - Functions in Events</a></p>
<h1>Patterns &#38; Practices</h1>
<p>Dave M Bush again with Friday Books - <a href="http://blog.dmbcllc.com/2008/10/03/friday-books-agile-software-development-with-scrum/">Agile Software Development with Scrum</a> and <a href="http://blog.dmbcllc.com/2008/10/01/automatic-implementation-of-interfaces/">Automatic Implementation of Interfaces</a></p>
<p>pbielicki reckons <a href="http://agilesoftwaredevelopment.com/blog/pbielicki/premature-optimization-root-all-evil-not-only-agile-world">Premature optimization is the root of all evil - not only in the Agile world</a></p>
<p>Kevin Hazzard presents <a href="http://gotnet.biz/Blog/post/A-Survey-of-Popular-dotNET-Inversion-of-Control-Containers.aspx">A Survey of Popular .NET Inversion of Control Containers</a> with slide decks and code :) thanks Kevin.</p>
<h1>Other</h1>
<p>David Yack discusses the <a href="http://blog.davidyack.com/journal/2008/10/9/net-35-enhancements-training-kit.html">.NET 3.5 Enhancements Training Kit</a></p>
<p>Mike Wasserman has done a bunch of work on <a href="http://communityclips.officelabs.com/Video.aspx?videoId=a89a217b-fc38-4a6c-87f8-ab59a2028391">Multitouch applications with a web cam</a>??? source code <a href="http://www.codeplex.com/touchless with Mikes site at http://vimeo.com/user811925">also available</a></p>
<p>Shahar Y presents an article on <a href="http://www.dev102.com/2008/10/09/measure-string-size-in-pixels-c/">Measure String Size In Pixels (C#)</a></p>
<p>Possibly the <a href="http://stackoverflow.com/questions/84556">best collection of geek related cartoons ever</a></p>
<p>Tina Holmboe illuminates with <a href="http://www.dev-archive.net/articles/xhtml.html">XHTML — myths and reality</a></p>
<p>37 Signals with an <a href="http://gettingreal.37signals.com/ch06_Done.php">extremely simple, effective and important exert on getting stuff done</a> with a line I simply love - <q>Be an Executioner</q></p>
<h1>Silverlight</h1>
<p>Laurence Moroney explains <a href="http://blogs.msdn.com/webnext/archive/2008/10/09/why-don-t-beta-2-sites-work-on-rc0-question-of-the-day.aspx">Why don't Beta 2 sites work on RC0</a> </p>
<p>Seema Ramchandani on <a href="http://blogs.msdn.com/seema/archive/2008/10/08/xperf-a-cpu-sampler-for-silverlight.aspx">XPerf: A CPU Sampler for Silverlight</a></p>
<p>Jesse Liberty goes into <a href="http://silverlight.net/blogs/jesseliberty/archive/2008/10/09/custom-controls-the-denouement.aspx">Custom Controls – The Dénouement</a></p>
<p>Manish Dalal offers <a href="http://weblogs.asp.net/manishdalal/archive/2008/10/09/stealth-paging-datagrid.aspx">stealth paging in the datagrid</a>. </p>
<p>Mike Snow keeps 'em comin' with <a href="http://silverlight.net/blogs/msnow/archive/2008/10/09/silverlight-tip-of-the-day-58-text-wrapping-and-line-breaks-in-textblocks.aspx">Text Wrapping and Line Breaks in TextBlocks</a> and <a href="http://silverlight.net/blogs/msnow/archive/2008/10/09/silverlight-tip-of-the-day-59-how-to-display-special-characters-in-xaml.aspx">How to Display Special Characters in XAML</a></p>
<p>While Jeff Handley posts a <a href="http://blog.jeffhandley.com/archive/2008/10/09/silverlight-2-gotcha---tab-navigation-in-a-popup-take.aspx">follow up to yesterdays post Tab Navigation in a Popup, Take 2</a> </p>
<h1>SQL</h1>
<p><a href="http://www.amazon.com/gp/product/1593271905">Possibly the best book ever on Database Design</a> (Place tongue firmly in cheek) </p>
<p>and Alex Kozak delves into <a href="http://www.simple-talk.com/sql/t-sql-programming/the-bejeweled-puzzle-in-sql/">The Bejeweled Puzzle in SQL</a> </p>
<h1>UX</h1>
<p>Peter Durand does a great job of an <a href="http://graphicfacilitation.blogs.com/pages/2005/02/edward_tufte_re.html">Edward Tufte Redux</a> </p>
<p>The guys at BulletProofBox have written up an <a href="http://bulletproofbox.com/web-based-rich-text-editors-compared/">excellent article on Web-Based Rich Text Editors Compared</a></p>
<p>David Engfer lets it all out with a <a href="http://www.engfers.com/2008/10/07/case-study-poor-web-usability-and-design/">Case Study of Poor Web Usability and Design</a></p>
<h1>WPF</h1>
<p>WindowsClient.Net present <a href="http://windowsclient.net/wpf/perf/wpf-perf-tool.aspx">What's New for Performance Profiling Tools for WPF</a></p>
<p>Todd Miranda <a href="http://windowsclient.net/learn/video.aspx?v=70654">Builds a Custom GridLength Animation</a></p>
<p>Dr WPF examines <a href="http://wpfdisciples.wordpress.com/2008/10/09/frameworkelement-vs-frameworkcontentelement/">FrameworkElement vs. FrameworkContentElement</a></p>
<p>Sacha Barber – I think I love you, how shallow I am, it really is all about the candy - <a href="http://www.codeproject.com/KB/WPF/StickyNotes.aspx">WPF : Sticky Notes ListBox</a></p>
<p>Rudi Grobler - <a href="http://dotnet.org.za/rudi/archive/2008/10/08/validation-in-wpf-using-postsharp-aop.aspx">Validation in WPF using PostSharp/AOP</a></p>
<p>Laurent Bugnion on <a href="http://blog.galasoft.ch/archive/2008/10/10/converting-and-customizing-xaml-to-png-with-server-side-wpf.aspx">Converting and customizing XAML to PNG with server-side WPF</a></p>
<p>Adam Kinney looks at <a href="http://adamkinney.com/blog/370/default.aspx">WPF Effects and Transitions Library Applied</a></p>
<p>Karl Shifflett gives us a <a href="http://karlshifflett.wordpress.com/2008/10/09/cool-usage-tip-for-xaml-power-toys/">Cool Usage Tip For XAML Power Toys</a></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Software Engineer - 2 to 3 Years - Java, J2EE - Zenith Software - Bangalore ]]></title>
<link>http://jobs4umate.wordpress.com/?p=1921</link>
<pubDate>Fri, 10 Oct 2008 05:30:57 +0000</pubDate>
<dc:creator>Talentty</dc:creator>
<guid>http://jobs4umate.it.wordpress.com/2008/10/10/software-engineer-2-to-3-years-java-j2ee-zenith-software-bangalore/</guid>
<description><![CDATA[Zenith Software - Bangalore
Our world-class software solutions and support services are tailored to ]]></description>
<content:encoded><![CDATA[<p class="style6" align="justify"><strong><a href="http://www.zenithsoft.com/" target="_blank">Zenith Software </a>- Bangalore</strong></p>
<p class="style6" align="justify">Our world-class software solutions and support services are tailored to your unique requirements. We do this by leveraging a decade of experience partnering organizations across the world. Our offshore model delivers maximum benefits to our clients.</p>
<p>Located in Bangalore, Zenith Software is an established company with the nimbleness and agility of a growing organization. Over 10 dedicated development centers for clients stand testimony to this fact.</p>
<p class="style6" align="justify">
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td class="style6" height="19" align="left" valign="top">
<p class="style45" align="justify"><strong>Designation: </strong>Software Engineer</p>
</td>
</tr>
<tr>
<td height="9" align="left" valign="top"> </td>
</tr>
<tr>
<td height="19" align="left" valign="top">
<p class="style6"><strong>Experience: </strong>2 - 3 Years</p>
</td>
</tr>
<tr>
<td align="left" valign="middle"> </td>
</tr>
<tr>
<td class="style6" height="10" align="left" valign="middle"> </td>
</tr>
<tr>
<td class="style6" height="15" align="left" valign="middle">
<p class="style45" align="justify"><strong>Skill Sets Required:</strong></p>
</td>
</tr>
<tr>
<td class="style6" height="9" align="left" valign="middle"> </td>
</tr>
<tr>
<td class="style6" height="25" align="left" valign="top">
<ul>
<li>Good Communication</li>
<li>Core Java</li>
<li>J2EE, MVC Architecture, Design Patterns </li>
<li>Struts / Spring / Hibernate </li>
<li>EJB </li>
<li>MySQL / Oracle / SQL Server   </li>
</ul>
<p>Please mail your resumes to <a href="mailto:harshan@zenithsoft.com">harshan@zenithsoft.com</a></td>
</tr>
</tbody>
</table>
<p>This Job is posted in <a href="http://www.zenithsoft.com/">http://www.zenithsoft.com/</a> for more details visit <a href="http://www.zenithsoft.com/Openings%20in%20IT%20Services.html">http://www.zenithsoft.com/Openings%20in%20IT%20Services.html</a></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[2008 October 09 - Links for today]]></title>
<link>http://mgalinks.wordpress.com/?p=99</link>
<pubDate>Thu, 09 Oct 2008 06:38:36 +0000</pubDate>
<dc:creator>mga guy</dc:creator>
<guid>http://mgalinks.it.wordpress.com/2008/10/09/2008-october-09-links-for-today/</guid>
<description><![CDATA[ASP.Net
Bertrand Le Roy on New AJAX Support For Data-Driven Web Apps 
CSS
Dmitry illustrates How to]]></description>
<content:encoded><![CDATA[<h1>ASP.Net</h1>
<p>Bertrand Le Roy on <a href="http://msdn.microsoft.com/en-us/magazine/cc972638.aspx">New AJAX Support For Data-Driven Web Apps </a></p>
<h1>CSS</h1>
<p>Dmitry illustrates <a href="http://www.usabilitypost.com/2008/08/25/how-to-add-drop-shadows-to-menus-or-windows-with-css/">How to Add Drop Shadows to Menus or Windows with CSS</a></p>
<h1>jQuery</h1>
<p>Stan Lemon introduces <a href="http://stanlemon.net/projects/jgrowl.htm">jGrowl</a> “jGrowl is a jQuery plugin that raises unobtrusive messages within the browser, similar to the way that OS X's Growl Framework works” with an update also available - <a href="http://plugins.jquery.com/files/jgrowl-1.1.1.zip">jGrowl 1.1.1</a></p>
<h1>Other</h1>
<p>Smashing Magazine illuminates with <a href="http://www.smashingmagazine.com/2008/10/08/adobe-illustrator-tutorials-best-of-part-2/">Adobe Illustrator Tutorials - Best Of: Part 2</a><br />
Paul Stovell with more on <a href="http://www.paulstovell.com/blog/bindable-linq-dependencies">Bindable LINQ: Dependencies</a> and <a href="http://www.paulstovell.com/blog/architecture-five-tips-for-low-friction-projects">Architecture: Five tips for Low Friction Projects</a><br />
Ramky asks <a href="http://ramcrishna.blogspot.com/2008/10/what-are-good-developer-qualities.html">What are the Good Qualities of a Developer??</a><br />
Tim Ferris reprints 2600’s article: <a href="http://www.fourhourworkweek.com/blog/2008/10/08/from-tesla-motors-to-the-patriot-hack-martin-eberhard-on-protecting-your-privacy-online/">From Tesla Motors to the “Patriot Hack” - Martin Eberhard on Protecting Your Privacy Online</a></p>
<h1>Patterns &#38; Practices</h1>
<p>Shawn Burke gets truly TLA rich with <a href="http://blogs.msdn.com/sburke/archive/2008/10/03/mef-n-ioc.aspx">MEF 'n IoC</a> <br />
Patrick Smacchia explains <a href="http://codebetter.com/blogs/patricksmacchia/archive/2008/10/08/some-unexpected-code-dependency-issues.aspx">Some Unexpected Code Dependency Issues</a> in NDepend<br />
Matt grommes continues a really good series in <a href="http://agilesoftwaredevelopment.com/blog/mattgrommes/my-first-agile-project-part-6-first-end-our-project">My First Agile Project Part 6: The First End Of Our Project</a></p>
<h1>Silverlight</h1>
<p>Kirk Allen Evans on <a href="http://blogs.msdn.com/kaevans/archive/2008/10/08/hosting-silverlight-in-a-sharepoint-webpart.aspx">Hosting Silverlight in a SharePoint Webpart</a><br />
Andy Nogueira's <a href="http://rialight.net/2008/07/14/thoughts-on-the-application-of-siverlight-and-its-direction/">Thoughts on the application of Siverlight and its direction…</a><br />
Corey Schuman's  <a href="http://www.85turns.com/2008/10/07/overview-of-databinding-in-silverlight/">Overview of Databinding in Silverlight</a><br />
Laurence Moroney on running <a href="http://blogs.msdn.com/webnext/archive/2008/10/08/silverlight-rc0-and-beta-2-side-by-side-question-of-the-day.aspx">Silverlight RC0 and Beta 2 Side by Side: Question of the Day</a><br />
Mike Snow shows us <a href="http://silverlight.net/blogs/msnow/archive/2008/10/08/silverlight-tip-of-the-day-57-how-to-dynamically-load-a-silverlight-control-within-another-silverlight-control.aspx">How to Dynamically Load a Silverlight Control within another Silverlight Control</a><br />
David Hill’s first in a series of articles on <a href="http://blogs.msdn.com/dphill/archive/2008/10/07/silverlight-navigation-part-1.aspx">Silverlight Navigation - Part 1</a> <br />
Jonas Follesø on <a href="http://jonas.follesoe.no/EfficientTestingInSilverlight2UsingTags.aspx">Efficient testing in Silverlight 2 using tags</a></p>
<h1>SQL</h1>
<p>Kevin Kline makes a large claim indeed with <a href="http://www.sqlmag.com/articles/index.cfm?articleid=100503&#38;">How to Improve Application and Database Performance up to 40% in One Easy Step</a><br />
Chad Miller continues with <a href="http://www.sqlservercentral.com/articles/powershell/64350/">SQL Server PowerShell Extensions (SQLPSX) Part 2</a><br />
Brian Walker guides with <a href="http://searchsqlserver.techtarget.com/tip/0,289483,sid87_gci1330404,00.html">SQL Server database design disasters: What not to do</a></p>
<h1>UX</h1>
<p>Janko Jovanovic  another great article on <a href="http://www.jankoatwarpspeed.com/post/2008/10/08/Building-better-web-forms-Validation-best-practices.aspx">Building better web forms: Validation best practices</a></p>
<h1>WPF</h1>
<p>John Bowen details <a href="http://team.interknowlogy.com/blogs/johnbowen/archive/2008/10/08/syntax-for-nested-attached-properties.aspx">Syntax for Nested Attached Properties</a><br />
Josh Smith on <a href="http://joshsmithonwpf.wordpress.com/2008/10/08/binding-to-validationerrors0-without-creating-debug-spew/">Binding to (Validation.Errors)[0] without Creating Debug Spew</a><br />
Pavan Podila notes <a href="http://blog.pixelingene.com/?p=315">Generic.xaml must have a build action of Page</a><br />
Rudi Grobler documents <a href="http://dotnet.org.za/rudi/archive/2008/10/08/learning-prism-getting-started.aspx">Learning PRISM – Getting Started…</a> and <a href="http://dotnet.org.za/rudi/archive/2008/10/08/validation-in-wpf-using-postsharp-aop.aspx">Validation in WPF using PostSharp/AOP</a></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[2008 October 08 - Links for today]]></title>
<link>http://mgalinks.wordpress.com/?p=97</link>
<pubDate>Wed, 08 Oct 2008 08:59:37 +0000</pubDate>
<dc:creator>mga guy</dc:creator>
<guid>http://mgalinks.it.wordpress.com/2008/10/08/2008-october-08-links-for-today/</guid>
<description><![CDATA[ASP.Net
Suprotim Agarwal&#8217;s Top 5 ASP.NET AJAX Articles You Must Read
C#
Matthew Podwysocki  g]]></description>
<content:encoded><![CDATA[<h1>ASP.Net</h1>
<p>Suprotim Agarwal's <a href="http://www.dotnetcurry.com/ShowArticle.aspx?ID=210">Top 5 ASP.NET AJAX Articles You Must Read</a></p>
<h1>C#</h1>
<p>Matthew Podwysocki  gives us a <a href="http://codebetter.com/blogs/matthew.podwysocki/archive/2008/10/07/richmond-code-camp-2008-2-recap.aspx">HUGE list of resources at Richmond Code Camp 2008.2 - Functional C# Recap</a></p>
<p>Vani Kulkarni does a nice job showing <a href="http://www.codeproject.com/KB/web-image/Web_App_Funnel_Charts.aspx">How to create and display funnel charts on a web page with C# and ASP.NET</a>.</p>
<h1>jQuery</h1>
<p>Dave Ward on <a href="http://encosia.com/2008/10/04/using-jquery-to-enhance-aspnet-ajax-progress-indication/">Using jQuery to enhance ASP.NET AJAX progress indication</a></p>
<h1>Other</h1>
<p>Joe Stagner reckons <a href="http://www.misfitgeek.com/Artinsoft+Aggiorno+Fixes+Your+Web+Pages.aspx">Artinsoft Aggiorno fixes your web pages</a> with the software available at <a href="http://www.aggiorno.com/">http://www.aggiorno.com/</a> - there is <a href="http://www.aggiorno.com/learn/aggiornoexpress.aspx">a free version for IE8 too</a></p>
<p>Kevin Pang notes the <a href="http://www.kevinwilliampang.com/post/Programming-Proverbs.aspx">10 Programming Proverbs Every Developer Should Know</a></p>
<p>Lindsey Lake is having a <a href="http://www.cssgirl.com/resources/2008/08/18/my-love-affair-with-woopra/">Love Affair With Woopra</a> which looks totally awesome by the way, she also presents some <a href="http://www.cssgirl.com/resources/2008/08/03/typography-essentials-free-fonts-tools-and-tutorials/">Typography Essentials - Free Fonts, Tools and Tutorials</a> and <a href="http://www.cssgirl.com/resources/2008/06/22/how-to-use-css-sprites-with-son-of-suckerfish-drop-downs/">How to Use CSS Sprites With Son of Suckerfish Drop Downs</a> and <a href="http://www.cssgirl.com/resources/2008/07/27/even-more-obscure-photoshop-essentials-the-free-photoshop-brushes-edition/">Even More Obscure Photoshop Essentials! The Free Photoshop Brushes Edition</a></p>
<h1>Patterns &#38; Practices</h1>
<p>Shivprasad Koirala presents a fair body of work with <a href="http://www.eggheadcafe.com/tutorials/aspnet/4ec5abf1-5956-4ffa-8fff-33ea933f5bf7/net-design-pattern-inter.aspx">.NET Design Pattern Interview Questions Part 4</a>, <a href="http://www.eggheadcafe.com/tutorials/aspnet/aaac8095-90a1-49c1-8484-70948cdfa6b2/design-pattern-interview.aspx">Part 3,</a> <a href="http://www.eggheadcafe.com/tutorials/aspnet/5867c955-638f-435f-b720-2d3c3c35fb66/design-pattern-interview.aspx">Part 2</a> and <a href="http://www.eggheadcafe.com/tutorials/aspnet/280ee727-00a7-497a-84d2-6ebb16df4140/design-pattern-interview.aspx">Part 1</a></p>
<h1>Silverlight</h1>
<p>Peter Bromberg has been sneakily doing a whole series on Doing Data with Silverlight 2 Silverlight 2 RC0. <a href="http://www.eggheadcafe.com/tutorials/aspnet/0eb26c26-3104-4e99-9534-e7c3d0508052/silverlight-2-rc0-doing-d.aspx">Part VIII : Using the Threadpool</a>, <a href="http://www.eggheadcafe.com/tutorials/aspnet/03c16f90-6745-44c6-8d83-f768d09949de/silverlight-2-beta-2-doi.aspx">Part VII: Custom Binary Serialization</a>, <a href="http://www.eggheadcafe.com/tutorials/aspnet/0b1e34fd-f73c-43dc-bbcb-8778386d32b5/silverlight-2-beta-2-doi.aspx">Part VI: A Generic Request WebService</a>, <a href="http://www.eggheadcafe.com/tutorials/aspnet/576c2f4c-7131-4664-853f-49825833c8db/silverlight-2-beta-2--do.aspx">Part V: Realtime StockQuotes / Scrolling Display</a>, <a href="http://www.eggheadcafe.com/tutorials/aspnet/9fea2d46-f10a-4152-92e0-4d6f4f5f7063/silverlight-2-beta-2---d.aspx">Part IV: Browser / Cookie Interaction</a>, <a href="http://www.eggheadcafe.com/tutorials/aspnet/d566463d-83bd-486a-8633-53aa54f405bf/silverlight-2-beta-2-doi.aspx">Part III: Extract and decompress resources from your SilverLight xap file on demand</a>, <a href="http://www.eggheadcafe.com/tutorials/aspnet/74e6d04f-7d50-4efe-8c82-69ba695d7e5d/silverlight-2-beta-2-doi.aspx">Part II: Data via ASMX and WCF web service, WebClient, and other modalities</a> and <a href="http://www.eggheadcafe.com/tutorials/aspnet/5091fa75-2e9b-40d4-88cc-58558a7e83f8/silverlight-2-beta-2--do.aspx">Part I: Data and Databinding with Silverlight 2</a>. Along with articles on <a href="http://www.eggheadcafe.com/tutorials/aspnet/633fc8fd-7da5-4ba8-a932-5abbfd5fa67d/silverlight-crossdomain.aspx">Silverlight Cross-Domain / ClientAccessPolicy File checker</a> and <a href="http://www.eggheadcafe.com/tutorials/aspnet/7830a01d-1b73-4912-a30c-b803af13982c/silverlight-dynamically.aspx">Silverlight: Dynamically add "favorites" bookmark link to Page</a> Peter has been once seriously busy wee bee. Keep 'em coming Peter. We can't get enough :)</p>
<p>Karen Corby on the <a href="http://scorbs.com/2008/04/05/silverlight-http-networking-stack-part-1-site-of-origin-communication">Silverlight HTTP Networking Stack – Part 1 (Site of Origin Communication)</a></p>
<p>Yavor Georgiev and his take on <a href="http://blogs.msdn.com/silverlightws/archive/2008/04/20/databinding-and-the-syndicationfeed-class.aspx">Databinding and the SyndicationFeed class</a></p>
<p>Rob Houweling has a couple of nifty articles on <a href="http://web-snippets.blogspot.com/2008/06/creating-sketch-application-in_23.html">Creating a sketch application in Silverlight - Part 2, Saving the sketch on the server</a> and <a href="http://web-snippets.blogspot.com/2008/08/authentication-in-silverlight-using.html">Authentication in Silverlight using ASP.NET FormsAuthentication</a></p>
<p>Laurence Moroney with some pretty good reasons as to the how and why you might want to <a href="http://blogs.msdn.com/webnext/archive/2008/10/06/deepzoom-your-office-documents.aspx">DeepZoom your Office Documents!</a></p>
<p>Martin Mihaylov presents his findings on <a href="http://www.silverlightshow.net/items/The-ProgressBar-control-in-Silverlight-2.aspx">The ProgressBar control in Silverlight 2</a></p>
<p>Karl Shifflett announces <a href="http://karlshifflett.wordpress.com/2008/10/05/xaml-power-toys-3102-has-silverlight-2-support/">XAML Powertoys 3.1.0.2 with Silverlight support</a></p>
<p>Jonas Folleso and his <a href="http://jonas.follesoe.no/YouCardDiveLogAndWebcamPOCUpdatedForSilverlight2RC0.aspx">YouCard, DiveLog and WebcamPOC updated</a> for Silverlight 2 RC0</p>
<p>Bill Reiss announces <a href="http://www.bluerosesystems.com/SilverlightBrassTacks/post/Latest-version-of-Silverlight-Streaming-helper-classes-and-SLSExplorer.aspx">Latest version of Silverlight Streaming helper classes</a> and SLSExplorer and updates on a <a href="http://www.bluerosesystems.com/SilverlightBrassTacks/post/Breaking-change-to-font-embedding-for-Silverlight-2-RC0.aspx">Breaking change to font embedding for Silverlight 2 RC0</a> and also gives a possible fix if you have <a href="http://www.bluerosesystems.com/SilverlightBrassTacks/post/Updated-to-Silverlight-RC0-and-now-its-broke.aspx">Updated to Silverlight RC0 and now it's broke?</a> Cheers Bill.</p>
<p>Koen Zwikstra announces <a href="http://firstfloorsoftware.com/blog/silverlight-spy-updated/">Silverlight Spy updated</a></p>
<h1>SQL</h1>
<p>Michael Coles and his take on <a href="http://www.sqlservercentral.com/articles/Full-Text+Search+(2008)/64248/">A Google-like Full Text Search</a></p>
<p>Brian Knight's <a href="http://www.sqlservercentral.com/articles/Video/64385/">Parameterizing SSRS Reports - SQL School Video</a></p>
<p>Samuel Vanga discusses <a href="http://www.mssqltips.com/tip.asp?tip=1591">Disabling a Trigger for a Specific SQL Statement or Session</a></p>
<p>Matt Berseth presents v0.2 of his <a href="http://mattberseth.com/blog/2008/10/v02_of_my_visitpageview_cube_c.html">Visit/PageView Cube - Creating a Hierarchy for the Source Dimension</a></p>
<h1>UX</h1>
<p>Glen Stansberry summarises <a href="http://nettuts.com/web-roundups/20-excellent-ajax-effects-you-should-know/">20 Excellent AJAX Effects You Should Know</a></p>
<p>Smashing Magazine look at <a href="http://www.smashingmagazine.com/2008/10/07/retro-and-vintage-in-modern-web-design/">Retro and Vintage In Modern Web Design</a></p>
<h1>WPF</h1>
<p>Robbe Morris <a href="http://www.eggheadcafe.com/tutorials/aspnet/fb496607-14b3-4f0a-af9c-71731557c486/wpf--xaml-change-binding.aspx">WPF - XAML Change Binding Attributes At Runtime</a></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Technology Research Highlights: C5, YIIHAW, and MemJet]]></title>
<link>http://dvanderboom.wordpress.com/2008/10/07/technology-research-highlights-c5-yiihaw-and-memjet/</link>
<pubDate>Tue, 07 Oct 2008 19:31:11 +0000</pubDate>
<dc:creator>Dan Vanderboom</dc:creator>
<guid>http://dvanderboom.it.wordpress.com/2008/10/07/technology-research-highlights-c5-yiihaw-and-memjet/</guid>
<description><![CDATA[When I’m not designing or writing code, I’m usually doing some kind of research.&#160; Looking f]]></description>
<content:encoded><![CDATA[<p>When I’m not designing or writing code, I’m usually doing some kind of research.&#160; Looking for new gadgets, toys, technologies, groundbreaking research, or following my favorite blogs and podcasts.&#160; Because I haven’t been highly focused on any single project lately, I thought I’d share some of the more interesting things I’ve come across.</p>
<h2>Peter Sestoft, C5 Generics Collection Library, and YIIHAW</h2>
<p>Peter Sestoft is a brilliant professor at the very old (founded 1479) <a href="http://www.ku.dk/English/">Copenhagen IT University</a> in Denmark, which actually has a student body consisting of a female majority (59%)!&#160; I discovered Sestoft’s works while doing research for some new, more powerful collection class I was working on (Tree&#60;T&#62; and Set&#60;T&#62;).&#160; He was <a href="http://channel9.msdn.com/shows/Going+Deep/Peter-Sestoft-C5-Generic-Collection-Library-for-C-and-CLI/">featured on Channel 9</a> back in January on a show primarily about the C5 Collection Library.</p>
<h3></h3>
<h4>C5 Generics Collection Library</h4>
<p>The <a href="http://www.itu.dk/research/c5/">C5 Collection Library</a> is an extremely powerful and well-designed library, based on earlier Java and Smalltalk collection library designs, and completely blows away the standard collection classes delivered as part of the .NET Framework.&#160; An earlier version was covered well in a <a href="http://www.ddj.com/windows/199902700?pgno=1">Dr. Dobb’s article</a>, but to summarize: C5 is interface-based, provides convenient but hard-to-implement functionality (such as persistent sorted collections and sublist views), provides useful abstractions such as lists, sets, bags, priority queues, double-ended queues, stacks, dictionaries, and optimizes access of these data structures for <a href="http://en.wikipedia.org/wiki/Asymptotic_analysis">asymptotic complexity</a>.</p>
<p>Unless you’re an expert—as with encryption—if you find yourself creating your own complex data structures, chances are you’re going to do it wrong.&#160; So it’s nice to know that the mathematical experts have taken the time to very carefully design and construct a wide assortment of useful data structures for the rest of us to use, complete with unit tests.&#160; And the best part, in the spirit of true science, C5 has a very liberal open source license, so it can be used in open source and commercial software alike.&#160; It’s reportedly being used by the military, video game shops, web server software, and more.</p>
<p>Sestoft and his colleagues have the excellent habit of providing copious documentation: a book’s worth, in fact!&#160; It can be <a href="http://www.itu.dk/research/c5/Release1.1/ITU-TR-2006-76.pdf">found online here</a>.</p>
<p>I think it’s an excellent candidate for being included in the .NET Framework itself, and I highly recommend that you check it out the next time you need a fancy data structure and are tempted to write it yourself, and to consider for optimizing performance of existing code that relies heavily on data structures (which is almost everywhere).</p>
<p>Getting the fundamentals right is probably the hardest thing to do.&#160; It’s easy (and tempting) to build as tall as we can, but getting a firm foundation in place is much more important.&#160; That’s why the C5 Collections Library is so amazing.&#160; So what are you waiting for?&#160; <a href="http://www.itu.dk/research/c5/Release1.1/C5.src.zip">Go download it!</a></p>
<h4>YIIHAW Is an Intelligent and High-performing Aspect Weaver</h4>
<p>What really gets me excited is Sestoft’s <a href="http://yiihaw.tigris.org/">YIIHAW</a>, a high-performance static aspect weaver for .NET.</p>
<p>Aspect Oriented Programming (AOP) is a paradigm for addressing cross-cutting concerns in software.&#160; That is, logic that operates orthogonally to business logic, such as logging, security, configuration, and more.&#160; There are a number of open source aspect weavers available today, and they generally fall into two camps: static or compile-time weavers, and dynamic or runtime weavers.</p>
<p>While incredibly useful, several factors have kept AOP from entering the mainstream.&#160; For one, a good set of tools hasn’t yet emerged to enable easy debugging of aspects.&#160; When we step through lines of code in Visual Studio, the debugger has no way of knowing if or when some other injected piece of code should pick up the thread of execution, since weaving isn’t a natively recognized and supported activity within the debugger.</p>
<p>Another hindrance is performance: aspect weavers typically inject logic (called advices) in the form of method calls at the beginning and/or ending of existing methods (the locations are called join points) which are selected with special selector statements (called pointcuts).&#160; The typical trick, as I just alluded to, is to include a new method in the class (called an introduction) and then insert method invocation statements at the beginning and end of the methods to be modified.&#160; This isn’t a big deal in many cases, but in performance-critical sections of calls, the additional method calls and the stack manipulations that accompany them prevent these techniques from being practical in performance-critical scenarios.</p>
<p>Data structures play a pivotal role in high-performance algorithms, of course, and Sestoft’s experience in building the C5 Collections Library provided the perfect context in which to consider how some of the specific features of his data structures might adversely affect performance.&#160; For example: his collections fire events to inform any interested parties that a collection had an item inserted, deleted, or modified in some other way, eliminating the need for defining specialized collections that trigger specific actions outside of that collection (see <a href="http://dvanderboom.wordpress.com/2008/03/15/treet-implementing-a-non-binary-tree-in-c/">my article on a Tree&#60;T&#62; structure</a> I created that makes use of this).</p>
<p>If the C5 library could start with the basic, slimmed down, super high-performant data structures, and then “weave in” aspects to include features such as event notifications only when needed, the problem might be solved.&#160; The problem with the typical approach, however, is that insertion of method calls provides as much or more overhead than the simple checks to activate those features to begin with (<em>if not null, then invoke event),</em> so he knew he’d have to go with a different approach.</p>
<p>After evaluating the capabilities and performance number of existing open source aspect weavers, they were all found to be inadequate, and the YIIHAW thesis project was born.&#160; You can find the fascinating thesis (which I just finished reading) <a href="http://www.google.com/url?sa=t&#38;source=web&#38;ct=res&#38;cd=1&#38;url=http%3A%2F%2Fwww.itu.dk%2F~sestoft%2Fitu%2FJohansenSpangenberg-Aspects-2007.pdf&#38;ei=oaPrSL_XI5uKvAWYmdD0Cg&#38;usg=AFQjCNHu-rVRXv9YYrQ978TyxrvSuIWTbg&#38;sig2=XHWNozN0rZeHHVCJAF6lFw">here</a>.&#160; In a nutshell, YIIHAW employs an advanced technique called <strong>advice inlining</strong>, in which <u>CIL instructions are woven directly into their target methods</u>.&#160; There are a surprising number of challenges to this approach, including the need to convert the original methods RET (return) instructions to jumps, remapping jump addresses, updating the method stack size, and much more.&#160; The students who worked on this thesis (Rasmus Johansen and Stephan Spangenberg), under Sestoft’s direction, did a masterful job of overcoming all of these challenges, the result of which is a highly-capable static aspect weaver with <strong>no performance penalty</strong>!</p>
<p>This is truly amazing, and it enables aspects to be woven into an assembly repeatedly: one for feature A, another for feature B, etc., all with the assurance of type safety and performance equivalent to writing the code by hand with all features included in the first place.</p>
<p>Another positive of YIIHAW thesis is the light it shines on CIL instructions, their organization and function.&#160; The advice inlining techniques provide a great tutorial for those wanting a deeper understanding of how to manipulate things at the CIL level.&#160; Many who have attempted AOP have either not considered this approach, or else turned away from this path due to the complexity and challenge.&#160; Not so with the YIIHAW team, who faced the problem head on and accomplished something great as a result.&#160; The fantastic <a href="http://www.mono-project.com/Cecil">Mono.Cecil</a> library, despite being poorly documented, is used for analysis and manipulation of CIL code, and several other ideas came to mind as I saw how this tool was put to use.</p>
<p>My only criticism of their application of this technology for the generation of specialized data structures at compile time is that you may find yourself needing different versions of the same data structure in different parts of your application.&#160; In a class that performs analysis of visual data for extracting spatial cues, you may need a Tree with as little overhead as possible (i.e., no event notifications, no serialization capability), and in the user interface, you may need another Tree with those additional characteristics.&#160; By making a single decision at weave time, your options will be limited.</p>
<p>There’s also the issue of supporting the debugging process, which can’t be dismissed lightly.&#160; But YIIHAW has gone to extreme measures to overcome some of AOP’s largest obstacles; and in addition to interceptions (weaving logic into existing methods), YIIHAW also supports introductions (adding new types and members), and typestructure modifications (changing a class’s base class, or making a class implement an interface).</p>
<p>Overall, YIIHAW’s potential is huge, and I believe that it won’t be long before the tooling catches up to the point where AOP becomes a mainstream approach to complex cross-cutting systems problems, simplifying designs and the engineering process overall.</p>
<h2>Memjet Printer</h2>
<p>Color printing is about to get a whole lot faster.&#160; At 60 pages per minute (ppm), the <a href="http://www.memjet.com/pages.aspx?id=technology">Memjet</a> printer, developed by Kia Silverbrook, a prolific inventor with over 1400 patents.&#160; Check out the <a href="http://www.memjet.com/pages.aspx?id=technology">YouTube video</a> to see it in action.</p>
<p>I’ve seen a lot of speculation that Memjet is a hoax, and a technological leap forward this large certainly warrants skepticism.&#160; However, the technology was written about in a very respectable science magazine, one of my favorites: Scientific American, in <a href="http://www.sciamdigital.com/index.cfm?fa=Products.ViewIssuePreview&#38;ARTICLEID_CHAR=76FE57F2-2B35-221B-6F69FD83D88F5B60">June 2007</a>.&#160; It’s also been covered in several articles by PC Magazine, for example <a href="http://www.pcmag.com/article2/0,2817,2123907,00.asp">in May 2007</a>, which mentions the Memjet appearing at the 2007 Global Ink Jet Printing Conference.&#160; (Talk about specific conferences!)</p>
<p>The print heads are page-width, so they don’t have to move back and forth across the page.&#160; The “MEM” in Memjet stands for microelectromechanical, and refers to the fabrication process that involves CMOS chips on a silicon wafer for precision layout.</p>
<p>With ink spraying at 900 million 1-2 picoliter drops per second, drop size small enough to dry within a second, and an estimated price tag under $200 (compared to the comparable HP Edgeline at $16,000), waiting around for long documents to print will soon be a thing of the past for everyone.&#160; The first devices are expected to appear in 2009.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Using The 'curb cuts' Principle to reboot computing ]]></title>
<link>http://asyourworldchanges.wordpress.com/?p=75</link>
<pubDate>Mon, 06 Oct 2008 18:06:59 +0000</pubDate>
<dc:creator>slger</dc:creator>
<guid>http://asyourworldchanges.it.wordpress.com/2008/10/06/using-the-curb-cuts-principle-to-reboot-computing/</guid>
<description><![CDATA[ 
summary:
  
curb cuts for wheelchairs also guide blind persons into street crossings and prevent a]]></description>
<content:encoded><![CDATA[<p> <P><br />
summary:<br />
 <br><br />
curb cuts for wheelchairs also guide blind persons into street crossings and prevent accidents for baby strollers, bicyclists, skateboarders, and inattentive walkers. The "curb cuts" principle is that removing a barrier for persons with disabilities improves the situation for everybody. This hypothesis suggests erasing the line that labels some technologies as assistive and certain practices as accessibility to maximize the benefits for future users of all computer-enabled devices. This paradigm requires a new theory of design that recognizes accessibility flaws as unexplored areas of the design space, potential harbingers of complexity and quality loss, plus opportunities for innovation in architectures and interfaces. Besides the general acceptance of computing curb cuts as a social good at an acceptable price, the traditional computing culture will benefit from a dose of understanding of the technology communities, institutions and visionaries that drive a vibrant world of persons who overcome disabilities. </p>
<p><img src="http://safety.fhwa.dot.gov/PED_BIKE/univcourse/images/17_4_0001.jpg" ALT="cross walk by curb cut to assist wheelchair"> </p>
<p><P><br />
<em> Background: </em><br />
 <br> </p>
<p>As I lost vision due to myopic degeneration, My computer use modes switched to audio. I was swept into a world of rich information resources and innovative mobile devices that rejuvenated my personal interests in computing. Learning to use assistive technology while studying the practices of accessibility motivated me to write my personal experiences in the "As Your world changes" blog.  I seek to create a framework of concepts that integrate the lessons and techniques of what is customarily considered deficient abilities into the mainstream of computing for the betterment of all based on the "curb cuts" principle.   The physical world 'curb cut' analogy flows over into computing in the following ways.</p>
<h3> 1. End Users benefit from alternative and new uses of computing.<br />
 </h3>
<p> <P><br />
So-called assistive technologies today expand the way computers are used in an essential sense, incidently overcoming some human deficiencies. Better designed ways of using only a keyboard without a mouse offers power shortcuts to everybody. Consistent displays in high contrast modes offer more relaxing viewing that cut the glare that causes natural photosensitivity and mental stress across a wide range of eyesight conditions.  Text to speech from screen readers offers eyes-free reading of long web pages for audio adapted multi-tasking individuals while also providing GUI interactions for the visually impaired. Digital talking books and newspapers will eventually be available commodities for sighted readers as they have been for years to qualified print-disabled individuals. </p>
<p> <P><br />
Because there is now an artificial line that views such technologies ass assistive rather than normal options, products are designed for or against certain users.  Emphasis on the GUI has restricted advances in speech-enabled applications with the potential for many new innovations and wider markets. Studies on the plasticity of the brain suggest that more satisfying and productive  use of computers  flows from integration of visual, audio, and tactile modes of processing information.</p>
<p> <P><br />
Erasing the artificial lines and labels of assistive as separate and remedial technology offers a chance to revitalize the visual dominated modes of computing that no longer apply within a marketplace of diverse hardware and software components. Integration of so-called assistive technologies and accessibility practices will show the flaws of products developed only for an assumed fully enabled user.</p>
<h3>
2. Accessibility concerns lead into productive unexplored design regions.<br />
 </h3>
<p> <P><br />
Accessibility and usability are well defined if underused principles of product quality.  The 'curb cuts' principle suggests that a defect with respect to these qualities is in a poorly understood or unexplored area of a design. Often  a problem that presents only a little trouble for the expected "normal" user is a major hassle or show stopper for those with certain physical or cognitive deficiencies.   However, those flaws compound and often invisibly reduce productivity for all users.  Increasingly, these deficiencies arise from ambient environmental conditions such as glare, noise, and potential damage to users or devices. </p>
<p> <P><br />
Moreover, these problems may also indicate major flaws related to the integrity of a design and long term maintainability of the product. An example is the omission of Headings on an HTML page that makes it difficult to find content and navigation divisions with a screen reader. This flaw usually reveals an underlying lack of clarity about the purpose and structure of the website and page.  Complexity and difficult usability often arise from missing and muddled use cases. Attitudes opposing checklist standards often lead to perpetuating poor practices such as the silly link label "click here".</p>
<p> <P><br />
The 'curb cuts' principle leads toward a theory of design that  requires remedy of accessibility problems not as a kindness to users nor to meet a governmental regulation but rather to force exploration through difficult or novel parts of the design terrain. The paradigm of "universal design" demands attention to principles that should influence requirements, choice of technical frameworks, and attention to different aesthetics and other qualities.   For example, design principles may address  where responsibilities lie for speech information to a user, thus questioning whether alternative architectures should be considered. Applying this principle early and thoroughly potentially removes many warts of the product that now require clumsy and expensive accessibility grafts or do-overs. </p>
<p> <P><br />
Just as the design patterns movement grew from the architectural interests of Christopher Alexander, attention to universal design should help mature the fields for software and hardware. The "curb cuts" principle motivates designers to think beyond the trim looking curb to consider the functionality to really serve and attract ever more populations of end users.</p>
<h3>
3. The social value of curb cuts ennobles computing.<br />
 </h3>
<p> <P><br />
Computer professionals are often shocked when they see how difficult their products are to use, reaching levels of excruciating pain for persons with disabilities.  Professional pride is a motivating factor for many individuals attracted to the computing field, e.g. women and games  that truly enhance their views of human potential and  relationships.</p>
<p> <P><br />
The market motive is obvious with many millions of persons with disabilities to be included in the mainstream rather than being totally excluded or segregated into the higher priced rehabilitation industrial complex. Especially as the U.S. population ages, the social services are simply not there to smooth their transition and maintain their purchasing influence. Services of all kinds work more efficiently with fewer exceptions  due to individuals requiring special processing.</p>
<p> <P><br />
There are so many genuinely innovative products designed by the blind, e.g. a screenless Linux PDA that rivals the Kindle with book, news, and RSS access and reading. An international open source project driven by energetic  Australians is producing a free screen reader for global use with synthetic voices in dozens of languages. A standard camera-phone can now read menus and transactions items, even currency. A $5 audio device is being designed to bridge the literacy gap in impoverished societies. some people are also drawn into a futuristic world of open source hardware for designing gadgets  that will speak what they are doing, how to use them, and their location, orientation, and other physical properties.</p>
<p> <P><br />
for many The social good of enabling equal access to computing is an attractor to a field renowned for nerds and greed. Social entrepreneurs offer an expansive sense of opening doors to not only education and entertainment but also employment, that now stands around 20% for disabled persons. Many innovative nonprofit organizations take  advantage of copyright exemptions building libraries and  technology aids for alternatives to print and traditional reading.    </p>
<p><P><br />
The computing curb cuts principle can motivate professionals, services, and end users to achieve the potential beauty and magic of computing in everyday life, globally, and for everybody who will eventually make the transition into some form of sensory, motor, or mental deficiency. But, first, mainstream computing must open its knowledge and career paths to encompass the visionaries and advances now segregated. All too often persons with disabilities are more advanced, diversified, and skill full in ways that could benefit not yet disabled people.</p>
<p> <P><br />
The "curb cuts" metaphor offers a compelling and, well, concrete way of motivating new attitudes toward computing. Walk down any American street and the reminders are at each intersection. Every computer professional will be on the hook to deliver universally usable products, not wait three years as happened with iTunes and only under legal threats, as may come soon with Google's Chrome and Google Book Search or the Amazon and Target websites. Failing to universally design a computing product  is as much a social  menace as a missing or poorly designed concrete curb. The computing curb cut provides a metaphor to tell the public about new ways for improving their lives and the value of innovations that will follow from obliterating the artificial border with accessibility.</p>
<p>  &#60;img src="http://www.ada.gov/images/flaredramp1.jpg" ALT="curb cut schematic from ADA.gov"  </img> </p>
<h3> Notes and References on the 'Curb Cuts' principle </h3>
<ol>
<li>  <a href="http://en.wikipedia.org/wiki/Universal_design"> 'Universal Design' paradigm (from Wikipedia) </a>  integrates concepts from physical, architectural, and information design.  <a href="http://www.design.ncsu.edu/cud/about_ud/udprincipleshtmlformat.html#top"> Detailed principles (from NCSU design center) </a>  include equitable use, flexibility, simplicity, intuitiveness, tolerance for error, low physical effort,...  <a href="http://www.icdri.org/technology/ecceff.htm"> A chronology of inventions for electronic curb cuts </a>  illustrates how hearing, seeing, and learning disabilities have influenced the modern communications world.  <a href="http://www.lowes.com/lowes/lkn?action=howTo&#38;p=CommLib/UnivDesDef.html"> Universal design as a business principle (from Lowes corporation) </a>  brings the principles into everyday life.
<li> The 'curb cut' symbolism is widely used in the accessibility world, e.g.  <a href="http://curbcut.net"> 'curbcuts.net', an accessibility consultancy </a> . The site kindly provides a  <a href="http://curbcut.net/general/how-to-build-an-accessible-curb-cut/"> guide to concrete curb cuts </a> .  <a href="http://www.museotech.com/?page_id=29"> Background on accessibility in the context of "curb cuts" </a>  covers the essential role of considering the full range of human abilities in design.  <a href="http://www.aect.org/Divisions/roberts.htm"> Analysis of the "curb cut" metaphor in computing </a>  suggests many problems in its usage.
<li> 'curb cuts' are technically complex as described in  <a href="http://www.ada.gov/pcatoolkit/chap6toolkit.htm"> the A.D.A. guidelines on curb ramps </a> .
<li>  <a href="http://www.amazon.com/gp/blog/post/PLNK3916UJMECC77L"> Mark Guzdial's blog on principles of computing </a>  introduces many of the issues of professional soul searching and educational concerns that motivate the  <a href="http://www.nps.edu/News/ReadNews.aspx?id=3873&#38;role=pao&#38;area=media">   "rebooting computing" movement lead by NPS Professor Peter Denning </a> <a href="http://benetech.blogspot.com/">Beneblog from Benetech.org on 'Technology meets Society'</a> illustrates non-profit effectiveness and innovation..
<li> Innovative assistive tools for visually impaired users include:
<ul>
<li>  <a href="http://bookshare.org"> Digital Talking books from Bookshare.org </a>
<li>  <a href="http://nextup.com"> TextAloud reader and mp3 converter </a><br />
 &#60;li &#60; <a href="http://nvaccess.org"> free, open source, international screen reader NVDA (non-visual desktop access) </a> </p>
<li><a href="http://webanywhere.cs.washington.edu">WebAnywhere reader from U. Washington</a>
<li>  <a href="http://levelstar.com"> audio-driven PDA, RSS, newspaper and book reader from Levelstar.com </a>
<li>  <a href="http://knfbreader.com"> Kurzweil NFB mobile reader phone </a>
<li>   <a href="http://literacybridge.org"> Literary Bridge low-cost audio device  </a>
  </ul>
<li> Use the  <a href="http://apodder.org/ControversyDiscoveryEngine.html">  Controversy Discovery Engine </a>  to search for articles on accessibility and usability. Use terms like "curb cut" then choose controversy synonyms and forms of support to drill down into the Analytic Web.
<li>   <a href="http://apodder.org/blog/orations.html#curbs"> Listen to this post (mp3)  <a>
  </ol>
<p>  <img src="http://www.bikexprt.com/massfacil/boston/images/DSCF0127curb.jpg" ALT="complex intersection with bicycle, crossing, and curb cut"> </p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[2008 October 06 - Links for today]]></title>
<link>http://mgalinks.wordpress.com/?p=93</link>
<pubDate>Mon, 06 Oct 2008 09:36:56 +0000</pubDate>
<dc:creator>mga guy</dc:creator>
<guid>http://mgalinks.it.wordpress.com/2008/10/06/2008-october-06-links-for-today/</guid>
<description><![CDATA[ASP.Net
Omar Al Zabir - Create REST API using ASP.NET MVC that speaks both Json and plain Xml and B]]></description>
<content:encoded><![CDATA[<h1>ASP.Net</h1>
<p class="MsoNormal"><span lang="EN-NZ">Omar Al Zabir - </span><span><span lang="EN-GB"><a href="http://msmvps.com/blogs/omar/archive/2008/10/03/create-rest-api-using-asp-net-mvc-that-speaks-both-json-and-plain-xml.aspx" target="_blank">Create REST API using ASP.NET MVC that speaks both Json and plain Xml</a></span></span><span lang="EN-GB"> and </span><span><span lang="EN-GB"><a href="http://msmvps.com/blogs/omar/archive/2008/10/04/best-practices-for-creating-websites-in-iis-6-0.aspx">Best practices for creating websites in IIS 6.0</a></span></span></p>
<h1>C#</h1>
<p>Daniel Grunwald helps us out with <a href="http://www.codeproject.com/KB/cs/WeakEvents.aspx" target="_blank">Weak Events in C#</a></p>
<h1><a id="ctl00_AboutAuthorRptr_ctl00_AboutAuthor_memberProfileLink" href="http://www.codeproject.com/script/Membership/Profiles.aspx?mid=476847"></a>jQuery</h1>
<p>Rick Strahl laments the fact there is <a href="http://west-wind.com/weblog/posts/499259.aspx" target="_blank">No Empty Selector in jQuery</a></p>
<p>OK So this one isn't just jQuery but it is predominantly and it's really <a href="http://bulletproofbox.com/35-essential-jquery-tutorials-code-chunks-and-plugins-for-designers/" target="_blank">a great list of jQuery resources</a> so who's gonna quibble (I don't get a chance to say that word often enough, note to self, use the word quibble more in every day conversation :)).</p>
<h1>Other</h1>
<p>Paul Stovell's introduction to <a title="Getting Started" rel="bookmark" href="http://www.paulstovell.com/blog/bindable-linq-getting-started" target="_blank"><span style="text-decoration:underline;">Bindable LINQ: Getting Started</span></a></p>
<p>Steve Michelotti introduces us to the <a id="viewpost_ascx_TitleUrl" title="Title of this entry." href="http://geekswithblogs.net/michelotti/archive/2008/10/04/enterprise-library-validation-application-block-with-asp.net-mvc.aspx" target="_blank">Enterprise Library Validation Application Block with ASP.NET MVC</a></p>
<p>Stephen Forte announces a change to WCF and WF in <a href="http://www.stephenforte.net/PermaLink,guid,99fbf34a-232e-413f-8acd-09ae3147443c.aspx" target="_blank">Get Ready for Dublin</a></p>
<p>Roy Osherove list of tools and frameworks you should care about: <a href="http://weblogs.asp.net/rosherove/archive/2008/10/03/agile-testing-tools-list.aspx" target="_blank">Agile Testing tools List</a></p>
<p>Smashing magazine gives us <a title="7 Version Control Systems Reviewed" rel="bookmark" href="http://www.smashingmagazine.com/2008/09/18/the-top-7-open-source-version-control-systems/">7 Version Control Systems Reviewed</a></p>
<h1>Patterns and Practices</h1>
<p>Shivprasad koirala presents his overview of <a href="http://www.codeproject.com/KB/aspnet/AgilePart2.aspx" target="_blank">Agile Development Part 2</a></p>
<h1>Silverlight</h1>
<p>Lee's take on <a href="http://leeontech.wordpress.com/2008/10/05/changing-foreground-of-cells-that-are-modified-in-datagrid/" target="_blank">Changing Foreground of cells that are modified in DataGrid</a></p>
<p>Bill Reiss seems to be happier with font outlining in the latest SL2 release and says so in <a href="http://www.bluerosegames.com/SilverlightBrassTacks/post/Finally2c-outlining-text-in-Silverlight-good-enough-for-now.aspx" target="_blank">Finally, outlining text in Silverlight good enough for now</a></p>
<p>Martin Mihaylov brings more datagrid goodness with <a href="http://www.silverlightshow.net/items/DataGrid-and-row-details-in-Silverlight-2.aspx" target="_blank">DataGrid and row details in Silverlight 2</a></p>
<p>David Anson sets out on <a href="http://blogs.msdn.com/delay/archive/2008/09/26/preserving-access-to-silverlight-2-s-generic-xaml-resources-silverlightdefaultstylebrowser-updated-for-the-silverlight-2-rc.aspx" target="_blank">Preserving access to Silverlight 2's generic.xaml resources [SilverlightDefaultStyleBrowser updated for the Silverlight 2 RC!]</a></p>
<p>Jeff Wilcox produces a great article on the <a href="http://www.jeff.wilcox.name/2008/09/30/rc0-new-test-features/">Microsoft Silverlight Unit Test Framework</a> which is available at the <a href="http://code.msdn.microsoft.com/silverlightut" target="_blank">MSDN Code Gallery</a></p>
<h1>SQL</h1>
<p>Robert Sheldon discusses <a href="http://www.simple-talk.com/sql/sql-tools/using-powershell-to-generate-table-creation-scripts/" target="_blank">Using Powershell to Generate Table-Creation Scripts</a></p>
<p>Jacob Sebastian on <a href="http://www.sqlserverandxml.com/2008/10/ordering-hierarchical-data.html" target="_blank">Recursive CTE and Ordering of the hierarchical result</a></p>
<h1>TDD</h1>
<p>Jason Yip gives his hint with <a href="http://jchyip.blogspot.com/2008/10/test-enough-to-be-confident-vs-complete.html">Test enough to be confident vs Complete testing in time</a></p>
<h1>UX</h1>
<p>Jacob Gube brings us his <a href="http://sixrevisions.com/web_design/30_beautifully_blue_web_designs/" target="_blank">30 Beautifully Blue Web Designs</a></p>
<p>Jared Spool points us at browsewr compatibility development with <a href="http://www.uie.com/brainsparks/2008/10/04/browser-compatibility-asked-answered/" target="_blank">Browser Compatibility: Asked &#38; Answered</a></p>
<h1>WPF </h1>
<p>Brian Noyes presents <a href="http://msdn.microsoft.com/en-us/magazine/cc785480.aspx" target="_blank">Understanding Routed Events and Commands In WPF</a></p>
<p>Thomas Gerber presents his implementation of a <a href="http://www.codeproject.com/KB/WPF/WPFExplorerBar.aspx" target="_blank">WPF Explorer Bar</a></p>
<p><span><span lang="EN-GB"><span>Tamir Khason reports on <a href="http://blogs.microsoft.co.il/blogs/tamir/archive/2008/10/04/free-microsoft-expression-series-video-training-catalogs.aspx" target="_blank">Free MS Expression video training</a><a href="http://blogs.microsoft.co.il/blogs/tamir/archive/2008/10/04/free-microsoft-expression-series-video-training-catalogs.aspx"> </a></span></span></span><span lang="EN-GB">and </span><span><span lang="EN-GB"><a href="http://blogs.microsoft.co.il/blogs/tamir/archive/2008/10/05/silverlight-bidi-controls-library-rc0-and-movement-from-beta-2-to-rc0.aspx" target="_blank">SILVERLIGHT BIDI CONTROLS LIBRARY RC0 AND MOVEMENT FROM BETA 2 TO RC0</a></span></span></p>
<p class="MsoNormal"><span><span lang="EN-GB"><span>Jaime Rodriguez details the </span></span></span><span><span lang="EN-GB"><a href="http://blogs.msdn.com/jaimer/archive/2008/10/03/announcement-wpf-shader-effects-library-on-codeplex.aspx" target="_blank">WPF pixel shader effects library on Codeplex.</a></span></span></p>
<p class="MsoNormal"><span><span lang="EN-GB">Adam Kinney does a <span><a href="http://channel9.msdn.com/shows/Continuum/WPFFX/" target="_blank">WPF Effects Library</a></span></span></span><span><span lang="EN-GB"><a href="http://channel9.msdn.com/shows/Continuum/WPFFX/" target="_blank"> Interview with David Teitlebaum</a> and details <a href="http://channel9.msdn.com/shows/Continuum/WPFFXDemo/" target="_blank">some other effects Left out of the interview </a></span></span></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Decorator Pattern]]></title>
<link>http://denniszeng2008.wordpress.com/?p=46</link>
<pubDate>Mon, 06 Oct 2008 08:09:58 +0000</pubDate>
<dc:creator>denniszeng2008</dc:creator>
<guid>http://denniszeng2008.it.wordpress.com/2008/10/06/decorator-pattern/</guid>
<description><![CDATA[Once you know the techniques of decorating, you’ll be able to give your (or someone else’s) obje]]></description>
<content:encoded><![CDATA[<p>Once you know the techniques of decorating, you’ll be able to give your (or someone else’s) objects new responsibilities without making any code changes to the underlying classes.</p>
<p>Design Principle: Classes should be open for extension, but closed for modification.</p>
<p>So the key point is find out the varies and then encapsulate them.</p>
<p>Q: How can I make every part of my design follow the Open-Closed Principle?</p>
<p>A: Usually, you can’t. Making OO design flexible and open to extension without the modification of existing code takes time and effort. In general, we don’t have the luxury of tying down every part of our designs (and it would probably be wastefu). Following the Open-Closed Principle usually introduces new levels of abstraction, which adds complexity to our code. You want to concentrate on those areas that are most likely to change in your designs and apply the principles there.</p>
<p>Be careful when choosing the areas of code that need to be extended; applying the Open-Closed Principle EVERYWHERE is wasteful, unnecessary, and can lead to complex, hard to understand code.</p>
<p>Inherience ------------------code reuse!!!</p>
<p>The Decorator Pattern: attaches additional responsibilities to an object dynamically. Decorators provide a flexible alternative to subclassing for extending functionality.</p>
<p>Okay, so we’re subclassing the abstract class Beverage in order to have the correct type,<br />
not to inherit its behavior. The behavior comes in through the composition of decorators with<br />
the base components as well as other decorators.</p>
<p>Yes, if we rely on inheritance, then our behavior can only be determined statically at<br />
compile time. In other words, we get only whatever behavior the superclass gives us or that we<br />
override. With composition, we can mix and match decorators any way we like... at runtime.</p>
<p>And as I understand it, we can implement new decorators at any time to add new<br />
behavior. If we relied on inheritance, we’d have to go in and change existing code any time we<br />
wanted new behavior.</p>
<p>I just have one more question. If all we need to inherit is the type of the component,<br />
how come we didn’t use an interface instead of an abstract class for the Beverage class?<br />
Sue: Well, remember, when we got this code, Starbuzz already had an abstract Beverage class.<br />
Traditionally the Decorator Pattern does specify an abstract component, but in Java, obviously,<br />
we could use an interface. But we always try to avoid altering existing code, so don’t “fix” it if<br />
the abstract class will work just fine.</p>
<p>public class LowerCaseInputStream extends FilterInputStream {<br />
public LowerCaseInputStream(InputStream in) {<br />
super(in);<br />
}<br />
public int read() throws IOException {<br />
int c = super.read();<br />
return (c == -1 ? c : Character.toLowerCase((char)c));<br />
}<br />
public int read(byte[] b, int offset, int len) throws IOException {<br />
int result = super.read(b, offset, len);<br />
for (int i = offset; i &#60; offset+result; i++) {<br />
b[i] = (byte)Character.toLowerCase((char)b[i]);<br />
}<br />
return result;<br />
}<br />
}</p>
<p>//base on super class we create some new functions</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Observer Pattern - Design Patterns]]></title>
<link>http://denniszeng2008.wordpress.com/?p=41</link>
<pubDate>Sun, 05 Oct 2008 13:34:02 +0000</pubDate>
<dc:creator>denniszeng2008</dc:creator>
<guid>http://denniszeng2008.it.wordpress.com/2008/10/05/observer-pattern-design-patterns/</guid>
<description><![CDATA[OO Principles :

Encapsulate what varies.


vary1: The number of observers may change.  === use Com]]></description>
<content:encoded><![CDATA[<p>OO Principles :</p>
<ol>
<li>Encapsulate what varies.</li>
</ol>
<ul>
<li>vary1: The number of observers may change.  === use Composition and interface to encapsulate this change</li>
<li>vary2: The number of subject 's states may change. ===</li>
</ul>
<p>          a. You can pull or push the data. === pull: use the get***() method to get the data.  push: the publisher send the data via function parameters: update(object ***);</p>
<p>          update(observerable o, object arg); (use such method you can utilize push and pull at the same time. o is the sender of message, and arg is the message. You can directly get the message from arg, or use the get***() methods of o the retrieve the information you want.</p>
<p>    2.Favor composition over inheritance.</p>
<p>       The Observer Pattern use composition to compose any number of observers with their subjects, These relationship aren't set up by some kind of inheritance hierarchy, NO! They are set up at runtime by composition.</p>
<p>    3.Program to interfaces, not implementations.</p>
<p>    4.Strive for loosely coupled design between object that interact.</p>
<p><em><span style="color:#ff00ff;">When two objects are loosely coupled, they have little knowledge about each other.</span></em></p>
<p><em><span style="color:#ff00ff;">Then only one thing the subject know about the other is that it implements a certain interface.</span></em></p>
<p><em><span style="color:#ff00ff;">We can add observers at any time.</span></em></p>
<p><em><span style="color:#ff00ff;">We never need to modify the subject to add new types of observers.</span></em></p>
<p><em><span style="color:#ff00ff;">we can reuse subjects and observers indepentently  of each other.</span></em></p>
<p><em><span style="color:#ff00ff;">Changes to either subjects or observers will not affect the other.</span></em></p>
<p><strong><span style="color:#ff00ff;">Loosely coupled design allows us to design flexible OO systems that can handle changes because they minimize the interdependency between objects.</span></strong></p>
<p><strong><span style="color:#ff00ff;">The subjects and observers connect upon interface, which use composition. In observers , they (has a)(dependency) subject, and subjects only know the knowledge about the interface, and call the method in the interface with aware of the implementation of the interface. </span></strong></p>
<p>Observer Pattern:</p>
<p>    Designs a one to many dependency between objects so that when one object changes state, all its dependents are notified and updated automatically.</p>
<p>Java buildin Observer Pattern:</p>
<p>java.util.observerable          a class</p>
<p>java.util.observer                a interface</p>
<p>Make use of these two struct can help you. But there are also dark side!</p>
<p>ActionListener &#38; EventHandler , they are all use observer pattern.</p>
<p>Point:</p>
<p>    Patterns just make well use of the OO principles!</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Wrapping Session State]]></title>
<link>http://aidenleech.wordpress.com/?p=10</link>
<pubDate>Sat, 04 Oct 2008 16:23:43 +0000</pubDate>
<dc:creator>aidenleech</dc:creator>
<guid>http://aidenleech.it.wordpress.com/2008/10/04/wrapping-session-state/</guid>
<description><![CDATA[A good design practise when developing an ASP.NET application that uses Session state is to wrap up ]]></description>
<content:encoded><![CDATA[<p>A good design practise when developing an ASP.NET application that uses Session state is to wrap up access to your session variables. This means they are accessed from a single location and avoids scattered access to hardcoded variable names that float around your application. </p>
<div><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;"></p>
<div></div>
<p></span></p>
<div><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;">public sealed</span></span><span style="font-size:x-small;"> </span><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;">class</span></span><span style="font-size:x-small;"> </span><span style="font-size:x-small;color:#2b91af;"><span style="font-size:x-small;color:#2b91af;">SessionManager</span></span></span></div>
<p> </p>
<p></span></div>
<div><span style="font-size:x-small;">{</span></div>
<p><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;">private </span></span><span style="font-size:x-small;">SessionManager()</span></p>
<div><span style="font-size:x-small;">{}</span></div>
<p><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;">public</span></span><span style="font-size:x-small;"> </span><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;">static int </span></span><span style="font-size:x-small;">UserID</span></p>
<div><span style="font-size:x-small;">{ </span></div>
<p><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;">get </span></span><span style="font-size:x-small;">{ </span><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;">return</span></span><span style="font-size:x-small;"> </span><span style="font-size:x-small;color:#2b91af;"><span style="font-size:x-small;color:#2b91af;">HttpContext</span></span><span style="font-size:x-small;">.Current.Session[</span><span style="font-size:x-small;color:#a31515;"><span style="font-size:x-small;color:#a31515;">"UserID"</span></span><span style="font-size:x-small;">] != </span><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;">null</span></span><span style="font-size:x-small;"> ? (<span style="color:#0000ff;">int</span>)</span><span style="font-size:x-small;color:#2b91af;"><span style="font-size:x-small;color:#2b91af;">HttpContext</span></span><span style="font-size:x-small;">.Current.Session[</span><span style="font-size:x-small;color:#a31515;"><span style="font-size:x-small;color:#a31515;">"UserID"</span></span><span style="font-size:x-small;">] : 0</span></p>
<div><span style="font-size:x-small;">; }</span></div>
<p><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;">set </span></span><span style="font-size:x-small;">{ </span><span style="font-size:x-small;color:#2b91af;"><span style="font-size:x-small;color:#2b91af;">HttpContext</span></span><span style="font-size:x-small;">.Current.Session[</span><span style="font-size:x-small;color:#a31515;"><span style="font-size:x-small;color:#a31515;">"UserID"</span></span><span style="font-size:x-small;">] = </span><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;">value</span></span><span style="font-size:x-small;">; </span>}</p>
<p>}</p>
<p>I have researched whether this is thread-safe and found it to be fine. The get accessors on the static properties access the internal Session object that belongs to the current Context, protected by the ASP.NET framework. Each user on your application will access their own Session object and the properties will not share the same values.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Using Enum To Implement Singleton Pattern]]></title>
<link>http://doquocduy.wordpress.com/?p=94</link>
<pubDate>Fri, 03 Oct 2008 19:10:18 +0000</pubDate>
<dc:creator>Duy Do</dc:creator>
<guid>http://doquocduy.it.wordpress.com/2008/10/04/using-enum-to-implement-single-pattern/</guid>
<description><![CDATA[In the previous post Singleton Pattern: When and How to use it effectively, we have 4 ways to implem]]></description>
<content:encoded><![CDATA[<p>In the previous post <a href="http://doquocduy.wordpress.com/2008/09/28/singleton-pattern-when-and-how-use-it-effectively/">Singleton Pattern: When and How to use it effectively</a>, we have 4 ways to implement  Singleton Pattern. Today, I share with you another way to implement it with Enum. This way was provided by Joshua Bloch in his 2nd Effective Java book.<br />
<!--more--></p>
<pre style="border:1px inset;overflow:auto;text-align:left;font-size:13px;margin:0;padding:6px;">public enum Singleton {
	INSTANCE;
	public void foo() {
		System.out.println("FOO");
	}
}</pre>
<p>This approach is functionally equivalent to the public field approach, except that it is more concise, provides the serialization machinery for free, and provides an ironclad guarantee against multiple instantiation, even in the face of sophisticated serialization or reflection attacks. While this approach has yet to be widely adopted, a single-element <strong>enum</strong> type is the best way to implement a singleton.</p>
<p>Big thank to Ruben, who let me know.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[2008 October 03 - Links for today]]></title>
<link>http://mgalinks.wordpress.com/?p=88</link>
<pubDate>Fri, 03 Oct 2008 08:18:23 +0000</pubDate>
<dc:creator>mga guy</dc:creator>
<guid>http://mgalinks.it.wordpress.com/2008/10/03/2008-october-03-links-for-today/</guid>
<description><![CDATA[C#
I got this link from a good colleague of mine who pointed me at Steven van Deursen&#8217;s Intro]]></description>
<content:encoded><![CDATA[<h1>C#</h1>
<p>I got this link from a good colleague of mine who pointed me at Steven van Deursen's <a href="http://www.cuttingedge.it/blogs/steven/pivot/entry.php?id=38" target="_blank">Introducing CuttingEdge.Conditions.</a>A library that helps developers to write pre- and postcondition validations and <a href="http://www.cuttingedge.it/blogs/steven/pivot/entry.php?id=39" target="_blank">more here</a> - really useful stuff, Cheers Rich and Steven.</p>
<h1><strong>jQuery</strong></h1>
<p>DotNetSlackers keep on going with their series on <a href="http://dotnetslackers.com/Community/blogs/xun/archive/2008/10/02/jquery-the-very-very-basics-lesson-4.aspx" target="_blank">JQuery, the very very basics - Lesson 4</a></p>
<h1>Patterns &#38; Practices</h1>
<p>Kevin Hazzard points us at <a href="http://www.gotnet.biz/Blog/post/A-Survey-of-Popular-dotNET-Inversion-of-Control-Containers.aspx" target="_blank">A Survey of Popular .NET Inversion of Control Containers</a></p>
<h1>Other</h1>
<p>Greg Low on <a href="http://sqlblog.com/blogs/greg_low/archive/2008/10/01/presenting-at-large-events-lessons-learned.aspx" target="_blank">Presenting at Large Events (Lessons learned) </a></p>
<p>What with Live Mesh causing a few security holes and by-passes and subsequently being blocked by companies, I got recommended <a href="http://www.syncplicity.com/" target="_blank">syncplicity</a> for folder synching. Gotta be worth a look. See the <a href="http://www.pcworld.com/article/149049/article.html" target="_blank">PCWorld article</a> for more and a comparison with other similar sites.</p>
<p>The great wee CMS that is Umbraco is now even easier to learn now thanks to the <a href="http://umbraco.tv/" target="_blank">video tutorials just released</a>.</p>
<p>A really important message from Sitepoint in an interview by Kevin Yank with Derek Featherstone, <a href="http://www.sitepoint.com/article/interview-derek-featherstone/" target="_blank">Accessibility is More Than Compliance</a></p>
<blockquote><p>I would want to find a way to have every web developer and designer experience what various people with disabilities would experience through whatever means, and in person if possible. Because that experience of seeing people and experiencing what shortcomings there are in our work when a person with a disability is using them … that’s a transformative experience</p></blockquote>
<h1>Silverlight</h1>
<p>Tim Heuer on <a href="http://timheuer.com/blog/archive/2008/09/29/install-silverlight-2-rc0-offline.aspx" target="_blank">Installing Silverlight RC0 Offline</a> and some hardcore media stuff in <a href="http://timheuer.com/blog/archive/2008/10/01/mediastreamsource-sample-with-source-code.aspx" target="_blank">MediaStreamSource sample for Silverlight</a> <q>a piece of the Silverlight runtime that removes the influence of a media file's container, giving developers direct access to APIs for manipulating encoded elementary audio and video streams</q> and <a href="http://timheuer.com/blog/archive/2008/10/01/silverlight-and-web-service-wcf-error-exceptions.aspx" target="_blank">Silverlight and Web Service Errors</a></p>
<p>Jesse Liberty with more on his <a href="http://silverlight.net/blogs/jesseliberty/archive/2008/10/02/dependency-properties-precedence.aspx" target="_blank">Dependency Properties – Precedence</a> series</p>
<p>Jeff Paries’ <a href="http://designwithsilverlight.com/2008/10/02/filmstrip-gallery/" target="_blank">film strip gallery</a> - really, check this one out.</p>
<p>Mike Snow on <a href="http://silverlight.net/blogs/msnow/archive/2008/10/02/silverlight-tip-of-the-day-55-how-to-apply-styles-in-silverlight-part-i.aspx" target="_blank">How to Apply Styles in Silverlight – Part I</a></p>
<p>Bill Reiss announces <a href="http://www.bluerosegames.com/SilverlightBrassTacks/post/Hello!-Silverlight-2-coming-to-a-bookstore-near-you.aspx" target="_blank">Hello! Silverlight 2</a> coming to a bookstore near you</p>
<p>Mark Smith posts his <a href="http://www.julmar.com/blog/mark/PermaLink,guid,3c68e467-d5cf-4624-8566-f849026444b6.aspx" target="_blank">demos from his 2-day binding + network Silverlight2 training</a> in Boston   </p>
<h1>SQL</h1>
<p>Jacob Sebastian <a href="http://www.sqlserverandxml.com/2008/10/bottom-to-top-recursion.html" target="_blank">TSQL Lab 20 - Performing recursive updates using a BOTTOM to TOP recursive CTE</a></p>
<h1>TDD</h1>
<p>Ben Scheirman  presents a great tip on <a href="http://flux88.com/UsingExtensionMethodsToCleanUpTests.aspx" target="_blank">Using Extension Methods to Clean Up Tests</a></p>
<p>Tim Barcz follows on from his great post yesterday to discuss a really fundamental yet basic <a href="http://devlicio.us/blogs/tim_barcz/archive/2008/10/02/testing-pre-requisite-care-about-your-code.aspx" target="_blank">Testing Pre-Requisite - Care About Your Code</a> - once more, I completely agree Tim, nicely put.</p>
<h1>UX</h1>
<p>Nathan Moody gives a great look at pressure based input with <a href="http://stimulant.io/wp/index.php/2008/10/from-the-labs-pressure-sensitive-surface/" target="_blank">From the Labs: Microsoft Surface + Nintendo Wii Mashup</a></p>
<p>Dmitry Fadeyev reckons we should <a href="http://www.usabilitypost.com/2008/10/02/forget-the-wireframes-throw-away-your-boxy-layouts-design-big/" target="_blank">Forget the Wireframes, Throw Away Your Boxy Layouts — Design BIG!</a> and I love this post on <a href="http://www.usabilitypost.com/2008/10/02/manage-focus-effectively-using-contrast/" target="_blank">Manage Focus Effectively Using Contrast</a>. It definitely aids in guiding the user to key pieces of information, now we just need to figure out what they <em>actually</em> want highlighted and not necessarily what we think they want :)</p>
<p>Jared Spool on <a href="http://www.uie.com/brainsparks/2008/10/02/uie-virtual-seminar-the-quick-the-cheap-and-the-insightful-conducting-usability-tests-in-the-wild/" target="_blank">Conducting Usability Tests in the Wild</a></p>
<p>Anthony J. Zinni rounds up <a href="http://www.positivespaceblog.com/archives/amazing-websites-ten-september-2008/" target="_blank">AMAZING WEBSITES TEN: SEPTEMBER 2008</a></p>
<h1><strong>WPF</strong></h1>
<p>Rudi Grobler on <a href="http://dotnet.org.za/rudi/archive/2008/10/02/binding-to-enum-s.aspx" target="_blank">Binding to enum’s</a></p>
<p>Rajesh Pillai continues with <a href="http://www.codeproject.com/KB/WPF/wpfchartlib2.aspx" target="_blank">Simple WPF BarChart (Horizontal and Vertical) - Part II</a></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[2008 October 01 - Links for today]]></title>
<link>http://mgalinks.wordpress.com/?p=84</link>
<pubDate>Wed, 01 Oct 2008 07:55:32 +0000</pubDate>
<dc:creator>mga guy</dc:creator>
<guid>http://mgalinks.it.wordpress.com/2008/10/01/2008-october-01-links-for-today/</guid>
<description><![CDATA[Other
Michael C Kennedy on Unit Testing Coming to a Workflow Near You
Zakir Hoosen on Extension cla]]></description>
<content:encoded><![CDATA[<h1>Other</h1>
<p>Michael C Kennedy on <a href="http://www.michaelckennedy.net/blog/2008/09/30/UnitTestingComingToAWorkflowNearYou.aspx" target="_blank">Unit Testing Coming to a Workflow Near You</a></p>
<p>Zakir Hoosen on <a href="http://www.codeproject.com/KB/cs/ExtensionsAndAlog.aspx" target="_blank">Extension classes</a></p>
<h1>Patterns &#38; Practices</h1>
<p>Bill Kratochvil  on the <a href="http://www.global-webnet.net/BlogEngine/post/2008/09/29/MEF-CompositeWPF-under-one-roof.aspx" target="_blank">MEF &#38; CompositeWPF under one roof</a></p>
<p>Jeremy D Millar has a great rant on how <a href="http://codebetter.com/blogs/jeremy.miller/archive/2008/09/30/separate-assemblies-loose-coupling.aspx" target="_blank">Separate Assemblies != Loose Coupling</a></p>
<p>David Hayden embelishes on the <a href="http://www.codeproject.com/KB/cs/ExtensionsAndAlog.aspx" target="_blank">Decorator Pattern</a></p>
<h1>SQL <br />
<a href="http://www.codeproject.com/KB/cs/ExtensionsAndAlog.aspx" target="_blank"></a></h1>
<p>MAK over at Sql Server Central continues his <a href="http://www.sqlservercentral.com/articles/Backup+/+Restore/64353/" target="_blank">DBA Bread and butter series</a></p>
<p><a href="http://www.sqlservercentral.com/articles/Backup+/+Restore/64353/" target="_blank"></a>Ron Dameron on <a href="http://www.simple-talk.com/sql/database-administration/why-this-sql-server-dba-is-learning-powershell/" target="_blank">Why This SQL Server DBA is Learning Powershell</a></p>
<h1><a href="http://www.simple-talk.com/sql/database-administration/why-this-sql-server-dba-is-learning-powershell/" target="_blank"></a>Silverlight  </h1>
<p>Lawrence Moroney on <a href="http://blogs.msdn.com/webnext/archive/2008/09/30/how-to-use-silverlight-rc0-and-some-code-updates-for-my-silverlight-2-book.aspx" target="_blank">How to use Silverlight RC0 and some code updates for his Silverlight 2 book</a>. </p>
<p>Mike Snow goes multi blog postal again withposts on <a href="http://silverlight.net/blogs/msnow/archive/2008/09/30/silverlight-tip-of-the-day-53-messagebox-is-now-available-in-silverlight-2.aspx" target="_blank">MessageBox is now Available in Silverlight 2</a>, <a href="http://silverlight.net/blogs/msnow/archive/2008/09/30/silverlight-tip-of-the-day-52-how-to-popup-a-browser-window.aspx" target="_blank">How to Popup a Browser Window</a> and <a href="http://silverlight.net/blogs/msnow/archive/2008/09/30/silverlight-tip-of-the-day-51-how-to-enable-and-disable-controls.aspx" target="_blank">How to Enable and Disable Controls</a>.</p>
<p>Jesse Liberty delves into the <a href="http://silverlight.net/blogs/jesseliberty/archive/2008/09/30/dependency-property-system-deeper-dive-part-1.aspx" target="_blank">Dependency Property System – Deeper Dive Part 1</a></p>
<p><a href="http://silverlight.net/blogs/jesseliberty/archive/2008/09/30/dependency-property-system-deeper-dive-part-1.aspx" target="_blank"></a>Pete Brown details <a href="http://community.irritatedvowel.com/blogs/pete_browns_blog/archive/2008/09/30/3d-Rendering-with-Texture-Mapping-in-Silverlight-_2D00_-Quake.aspx" target="_blank">3d Rendering with Texture Mapping in Silverlight – Quake</a></p>
<p><a href="http://www.michaelckennedy.net/blog/2008/09/30/UnitTestingComingToAWorkflowNearYou.aspx" target="_blank"></a>Mike Hillberg has twitchy fingers with <a href="http://blogs.msdn.com/mikehillberg/archive/2008/09/30/ComparableDataTrigger.aspx" target="_blank">A Comparable DataTrigger </a></p>
<p><a href="http://blogs.msdn.com/mikehillberg/archive/2008/09/30/ComparableDataTrigger.aspx" target="_blank"></a>Bart Czernicki brings us his <a href="http://silverlighthack.com/post/2008/09/29/Silverlight-2-(RC0-RTM)-Dynamic-Assembly-Loading.aspx" target="_blank">Silverlight 2 (RC0 / RTM) - Dynamic Assembly Loading Fix</a></p>
<p>Jeff Wilcox reckons <a href="http://www.jeff.wilcox.name/2008/09/28/do-it-in-js-and-cs/" target="_blank">If you can do it in JavaScript, you can do it in managed Silverlight .NET code</a></p>
<p>David shows us his <a href="http://www.silverlightshow.net/items/Silverlight-Stock-Portfolio-.aspx" target="_blank">Silverlight Stock Portfolio</a> </p>
<p>Shawn Wildermuth has <a href="http://wildermuth.com/2008/09/28/New_Information_on_WebClient_in_Silverlight_2" target="_blank">New Information on WebClient in Silverlight 2</a></p>
<p>Harsh Bardhan at DotNetCurry gives us a Step By Step guide on <a href="http://www.dotnetcurry.com/ShowArticle.aspx?ID=208" target="_blank">Using Silverlight to Access a WCF Service Hosted In a Console Application</a></p>
<p>Tim Heuer details some <a href="http://timheuer.com/blog/archive/2008/09/29/silverlight-multi-file-upload-control.aspx" target="_blank">Silverlight multi-file upload controls and patterns</a></p>
<p>priti_sisodia at Codeplex highlights <a href="http://www.codeproject.com/KB/silverlight/SilverlightFonts.aspx" target="_blank">Using Custom Fonts in Silverlight</a></p>
<p>Martin Mihaylov gets my vote with his <a href="http://www.silverlightshow.net/items/Creating-a-simple-Voting-control-in-Silverlight-2.aspx" target="_blank">Voting Control code</a></p>
<p>Peter McGrattan's on his <a href="http://petermcg.wordpress.com/2008/09/30/silverlight-2-rc0-polling-duplex-evolution/" target="_blank">Silverlight 2 RC0 Polling Duplex Evolution</a> (also check out <a href="http://petermcg.wordpress.com/2008/09/03/silverlight-polling-duplex-part-3-the-client/" target="_blank">Silverlight 2 WCF Polling Duplex Support - Part 3: The Client</a>)</p>
<p>Gerard LeBlanc has a lovely page turner at <a href="http://www.gleblanc.eu/Blog/post/Turn-the-page-!.aspx" target="_blank">Turn the page</a>!</p>
<h1>WPF</h1>
<p>Jani Järvinen helps us <a href="http://www.developer.com/design/article.php/3774351" target="_blank">Getting Up and Running with the Composite UI Application Block for WPF</a></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[2008 September 30 - Links for today]]></title>
<link>http://mgalinks.wordpress.com/?p=82</link>
<pubDate>Tue, 30 Sep 2008 07:51:52 +0000</pubDate>
<dc:creator>mga guy</dc:creator>
<guid>http://mgalinks.it.wordpress.com/2008/09/30/2008-september-30-links-for-today/</guid>
<description><![CDATA[Patterns &amp; Practices
Brad Abrams has written a really good Simple Introduction to Extensible App]]></description>
<content:encoded><![CDATA[<h1>Patterns &#38; Practices</h1>
<p>Brad Abrams has written a really good <a href="http://blogs.msdn.com/brada/archive/2008/09/29/simple-introduction-to-composite-applications-with-the-managed-extensions-framework.aspx">Simple Introduction to Extensible Applications with the Managed Extensions Framework</a> - well worth checking out.</p>
<h1>Silverlight</h1>
<p>Mike Snow has been really busy once more with multiple posts since the release of RC0, including <a href="http://silverlight.net/blogs/msnow/archive/2008/09/29/silverlight-tip-of-the-day-47-how-to-implement-a-password-box.aspx">How to Implement a Password Box</a>, <a href="http://silverlight.net/blogs/msnow/archive/2008/09/29/silverlight-tip-of-the-day-48-how-to-implement-a-combobox.aspx">How to Implement a Combobox</a>, <a href="http://silverlight.net/blogs/msnow/archive/2008/09/29/silverlight-tip-of-the-day-49-how-to-implement-a-progress-bar.aspx">How to Implement a Progress Bar</a> and <a href="http://silverlight.net/blogs/msnow/archive/2008/09/29/silverlight-tip-of-the-day-50-main-game-loop-revisited.aspx">Main Game Loop Revisited!</a></p>
<p>Pete Brown also goes with multiple posts with <a href="http://community.irritatedvowel.com/blogs/pete_browns_blog/archive/2008/09/29/Silverlight-2-Per_2D00_Frame-Rendering-Callback-_1320_-CompositionTarget.Rendering-Event.aspx">Silverlight 2 Per-Frame Rendering Callback – CompositionTarget.Rendering Event</a> and <a href="http://community.irritatedvowel.com/blogs/pete_browns_blog/archive/2008/09/29/MSDN-geekSpeak-_3A00_-Building-Facebook-Applications-with-Silverlight-2.aspx">Building Facebook Applications with Silverlight 2</a></p>
<p>Jesse Liberty points out that <a href="http://silverlight.net/blogs/jesseliberty/archive/2008/09/29/isolated-storage-actually-it-s-easy.aspx">Isolated Storage – Might Be Easier Than You Think</a></p>
<p>Manish Dalal helps out with <a href="http://weblogs.asp.net/manishdalal/archive/2008/09/28/combobox-in-datagrid.aspx">usage of ComboBox in DataGrid</a></p>
<p>Matt Serbinski on <a href="http://www.silverlightshow.net/items/Silverlight-and-Drupal-Syndication.aspx">Silverlight and Drupal: Syndication</a></p>
<p>Chris Anderson on <a href="http://www.silverlightshow.net/items/Building-a-Framework-for-Silverlight-Line-Of-Business-Applications.aspx">Building a Framework for Silverlight Line-Of-Business Applications</a></p>
<p>Karl Shifflett brings us another update on <a href="http://karlshifflett.wordpress.com/2008/09/29/xaml-power-toys-300-released-code-name-refactored/">XAML Power Toys 3.0.0 Released - Code Name: Refactored</a></p>
<p>Delay goes over <a href="http://blogs.msdn.com/delay/archive/2008/09/29/maintaining-pretenses-with-the-layout-system-layouttransform-functionality-updated-for-silverlight-2.aspx">Maintaining pretenses with the layout system [LayoutTransform functionality updated for Silverlight 2!] </a></p>
<p>The Expression Blend Team gives us an update with <a href="http://blogs.msdn.com/expression/archive/2008/09/27/silverlight-2-rc-compatible-deep-zoom-project-templates.aspx">Silverlight 2 RC compatible Deep Zoom project templates</a></p>
<p>Matthias Shapiro follows up on yesterday with <a href="http://www.designerwpf.com/2008/09/29/color-picker-in-action-in-the-silverlight-particle-project/">Color Picker In Action (In The Silverlight Particle Project)</a></p>
<p>Adam Kinney lets us know about <a href="http://adamkinney.com/blog/367/default.aspx">3D Views for WPF from Xceed</a></p>
<p>Oh and there is a new <a href="http://www.microsoft.com/click/artandtechnology/Home.aspx">MS Arts and technology site</a> to inspire next web based projects.</p>
<h1>SQL</h1>
<p>Nidal Arabi on <a href="http://aspalliance.com/1730_SQL_Server_Analysis_Services__Dimensional_Modeling_Concepts">SQL Server Analysis Services - Dimensional Modeling Concepts</a></p>
<p>Joe Webb goes over <a href="http://www.simple-talk.com/sql/learn-sql-server/using-covering-indexes-to-improve-query-performance/">Using Covering Indexes to Improve Query Performance</a></p>
<p>Jacob Sebastian brings us <a href="http://www.sqlserverandxml.com/2008/09/pivot-cross-tab-sql-server-2005.html">TSQL Lab 15 - Another PIVOT Query Example</a></p>
<h1>TDD</h1>
<p>Littletutorials request you use <a href="http://littletutorials.com/2008/09/29/thought-driven-development/">Thought Driven Development</a> - <q>don’t pass the responsibility of thinking to the process. It will not do it for you</q> - <span style="font-style:italic;">love the trucks and bridge bits and would definitely consider certifying as an abile consultant :)</span></p>
<h1>UX</h1>
<p>Jared Spool on <a href="http://www.uie.com/brainsparks/2008/09/29/asking-participants-to-pretend-in-user-studies/">Asking Participants to “Pretend” in User Studies</a> and a <a href="http://www.uie.com/brainsparks/2008/09/30/seeing-red-smartmoneycoms-map-of-the-market/">great data visualization from SmartMoney.com</a></p>
<h1>WPF</h1>
<p>Finally for today Rajesh Pillai shows us <a href="http://www.codeproject.com/KB/WPF/wpfchartslib.aspx">his Simple WPF Bar Chart Control</a></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[2008 September 29 - Links for today]]></title>
<link>http://mgalinks.wordpress.com/?p=80</link>
<pubDate>Mon, 29 Sep 2008 06:50:57 +0000</pubDate>
<dc:creator>mga guy</dc:creator>
<guid>http://mgalinks.it.wordpress.com/2008/09/29/2008-september-2-links-for-today/</guid>
<description><![CDATA[ASP.Net
DotNetCurry on Using the ASP.NET Repeater Control to Group Data and Add Totals
Lalith B prov]]></description>
<content:encoded><![CDATA[<h1>ASP.Net</h1>
<p>DotNetCurry on <a href="http://www.dotnetcurry.com/ShowArticle.aspx?ID=206">Using the ASP.NET Repeater Control to Group Data and Add Totals</a></p>
<p>Lalith B provides a <a href="http://www.codeproject.com/KB/aspnet/ajax_net_process.aspx">Simple Ajax, ASP.NET and C# implementation for a page wait or process screen</a></p>
<p>Leo Stableford presents an article on <a href="http://www.codeproject.com/KB/aspnet/RestServicesInASPNET2.aspx">REST Web Services in ASP.Net 2.0</a></p>
<h1>jQuery</h1>
<p>Huge news from <a href="http://weblogs.asp.net/scottgu/archive/2008/09/28/jquery-and-microsoft.aspx">ScottGu</a> and <a href="http://www.hanselman.com/blog/jQueryToShipWithASPNETMVCAndVisualStudio.aspx">Scott Hanselman</a> onMS teaming up jQuery with ASP.Net AJAX. You guys ROCK! - <q>Microsoft will be shipping jQuery with Visual Studio going forward</q></p>
<p>Best brush up then :)</p>
<p>DotNetSlackers continue their series on <a href="http://dotnetslackers.com/Community/blogs/xun/archive/2008/09/26/jquery-the-very-very-basics-lesson-3.aspx">JQuery, the very very basics - Lesson 3</a></p>
<p>And Rick Strahl joins the fray with <a href="http://www.west-wind.com/presentations/jQuery/default.aspx">An introduction to jQuery Part 1: The Client Side</a></p>
<h1>Patterns &#38; Practices</h1>
<p>Glenn Block answers <a href="http://codebetter.com/blogs/glenn.block/archive/2008/09/25/what-is-the-managed-extensibility-framework.aspx">What is the Managed Extensibility Framework?</a></p>
<h1>Silver