<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" gd:etag="W/&quot;CEQCRnozfSp7ImA9WhRRFEk.&quot;"><id>tag:blogger.com,1999:blog-393124041810056508</id><updated>2011-11-27T20:06:07.485-05:00</updated><category term="Algorithm" /><category term="Digital" /><category term="Triangle" /><category term="Slideshow" /><category term="Flip-flop" /><category term="Sierpinski" /><category term="Curve" /><category term="Logic" /><category term="Iterative" /><category term="Snowflake" /><category term="Simulator" /><category term="lolcats" /><category term="Fractal" /><category term="Koch" /><category term="Gates" /><category term="Silverlight" /><title>Ken's Blog</title><subtitle type="html" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://kenwatts.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://kenwatts.blogspot.com/" /><author><name>Ken</name><uri>http://www.blogger.com/profile/07198236296257807925</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/_AKmH7P_FOwA/SM8ZWUq64oI/AAAAAAAAAAw/J63D4UY6Yqg/S220/kpw_avatar_square.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>11</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/KensSilverlightWpfAndCTechieBlog" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="kenssilverlightwpfandctechieblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;A0EHQnYycCp7ImA9Wx9QFkk.&quot;"><id>tag:blogger.com,1999:blog-393124041810056508.post-7081857983297528578</id><published>2010-09-20T09:41:00.006-04:00</published><updated>2010-12-29T14:07:13.898-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-12-29T14:07:13.898-05:00</app:edited><title>Introducing BlogoRadio!</title><content type="html">My brother Clif writes a music blog called &lt;a href="http://thedadada.wordpress.com/"&gt;The Dadada Music Blog&lt;/a&gt; where he compiles a series of mixes called Blogophilia, which is a mix of new music from a wide variety of artists ranging from up-and-comers to well established acts.  I suggested that it would be cool to have an option to play the content on-line for people like me who don't want to take the time to download the content and load it into a local media player.  So I put together the BlogoRadio app using Silverlight 4.  Enjoy!&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;iframe style="WIDTH: 824px; HEIGHT: 400px" src="http://kenwatts.net/kenwatts/BlogoRadio/BlogoRadio.html" frameborder="0" scrolling="yes"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/393124041810056508-7081857983297528578?l=kenwatts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://kenwatts.blogspot.com/feeds/7081857983297528578/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=393124041810056508&amp;postID=7081857983297528578" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/393124041810056508/posts/default/7081857983297528578?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/393124041810056508/posts/default/7081857983297528578?v=2" /><link rel="alternate" type="text/html" href="http://kenwatts.blogspot.com/2010/09/introducing-blogoradio.html" title="Introducing BlogoRadio!" /><author><name>Ken</name><uri>http://www.blogger.com/profile/07198236296257807925</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/_AKmH7P_FOwA/SM8ZWUq64oI/AAAAAAAAAAw/J63D4UY6Yqg/S220/kpw_avatar_square.jpg" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DkMNQHg5cSp7ImA9Wx5XFEQ.&quot;"><id>tag:blogger.com,1999:blog-393124041810056508.post-5216516409786334129</id><published>2010-09-14T15:52:00.002-04:00</published><updated>2010-09-14T16:01:31.629-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-09-14T16:01:31.629-04:00</app:edited><title>Using WCF Services with Silverlight in a Cross Domain Way</title><content type="html">&lt;p class="MsoNormal"&gt;&lt;br /&gt;One of the useful features available for developingSilverlight applications is its ability to interact with server side datathrough the use of a conduit such as Windows Communication Foundation (WCF)services.&lt;span&gt;  &lt;/span&gt;Visual studio enablesapplication developers to easily connect to a service using “Project-&amp;gt;Add ServiceReference”, then providing the address for the service.&lt;span&gt;  &lt;/span&gt;The various operations and data structuresmade public by that service are then exposed in the solution and can be viewedusing the object browser.&lt;span&gt;  &lt;/span&gt;When accessingthe service from a different domain, as in trying to access the service fromwithin a development running on the local machine and the service is notrunning on localhost, there is the potential for your Silverlight applicationto throw an exception if the server hosting your service has not explicitlyenabled a cross-domain access policy.&lt;span&gt;  &lt;/span&gt;Ifthis happens, the application exception may look something like this:&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 8pt; line-height: 115%; font-family: 'Courier New'"&gt;An error occurred while trying to make a request to URI 'http://kenwatts.net/Service.svc'. This could be due to attempting toaccess a service in a cross-domain way without a proper cross-domain policy inplace, or a policy that is unsuitable for SOAP services. You may need tocontact the owner of the service to publish a cross-domain policy file and toensure it allows SOAP-related HTTP headers to be sent. This error may also becaused by using internal types in the web service proxy without using theInternalsVisibleToAttribute attribute. Please see the inner exception for moredetails.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;In order to get around this issue, a file named “clientaccesspolicy.xml”needs to be added to the root of the server where the service is running.&lt;span&gt;  &lt;/span&gt;This file can have the following contents toenable services from any subdirectory:&lt;/p&gt;&lt;p style="margin-bottom: 0.0001pt; line-height: normal" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif; color: blue"&gt;&lt;span class="Apple-tab-span" style="white-space: pre"&gt; &lt;/span&gt;&amp;lt;?xml version="1.0"encoding="utf-8" ?&amp;gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif; color: blue"&gt;&lt;span class="Apple-tab-span" style="white-space: pre"&gt; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif; color: #990000"&gt;access-policy&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif; color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif; color: blue"&gt;&lt;span class="Apple-tab-span" style="white-space: pre"&gt;  &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif; color: #990000"&gt;cross-domain-access&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif; color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif; color: blue"&gt;&lt;span class="Apple-tab-span" style="white-space: pre"&gt;   &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif; color: #990000"&gt;policy&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif; color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif; color: blue"&gt;&lt;span class="Apple-tab-span" style="white-space: pre"&gt;    &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif; color: #990000"&gt;allow-fromhttp-request-headers&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif; color: blue"&gt;="&lt;/span&gt;&lt;strong&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif"&gt;*&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif; color: blue"&gt;"&amp;gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif; color: blue"&gt;&lt;span class="Apple-tab-span" style="white-space: pre"&gt;     &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif; color: #990000"&gt;domain&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif; color: #990000"&gt;uri&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif; color: blue"&gt;="&lt;/span&gt;&lt;strong&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif"&gt;*&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif; color: blue"&gt;" /&amp;gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif"&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; color: red"&gt;&lt;span class="Apple-tab-span" style="white-space: pre"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif"&gt; &lt;span&gt;                   &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif; color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif; color: #990000"&gt;allow-from&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif; color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif; color: blue"&gt;&lt;span class="Apple-tab-span" style="white-space: pre"&gt;    &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif; color: #990000"&gt;grant-to&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif; color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif"&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; color: red"&gt; &lt;/span&gt;&lt;/strong&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif"&gt;&lt;span&gt;                            &lt;/span&gt;&lt;span&gt;          &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif; color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif; color: #990000"&gt;resource&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif"&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif; color: #990000"&gt;path&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif; color: blue"&gt;="&lt;/span&gt;&lt;strong&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif"&gt;/&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif; color: blue"&gt;"&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif; color: #990000"&gt; include-subpaths&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif; color: blue"&gt;="&lt;/span&gt;&lt;strong&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif"&gt;true&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif; color: blue"&gt;" /&amp;gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif; color: blue"&gt;&lt;span class="Apple-tab-span" style="white-space: pre"&gt;    &lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif; color: #990000"&gt;grant-to&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif; color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif"&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; color: red"&gt; &lt;/span&gt;&lt;/strong&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif"&gt; &lt;span&gt;              &lt;span class="Apple-tab-span" style="white-space: pre"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif; color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif; color: #990000"&gt;policy&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif; color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif; color: blue"&gt;&lt;span class="Apple-tab-span" style="white-space: pre"&gt;  &lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif; color: #990000"&gt;cross-domain-access&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif; color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif; color: blue"&gt;&lt;span class="Apple-tab-span" style="white-space: pre"&gt; &lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif; color: #990000"&gt;access-policy&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana, sans-serif; color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;It’s important to point out that this file needs to belocated in the root of the server where the service is hosted.&lt;span&gt;  &lt;/span&gt;So if the Silverlight application is tryingto access this service:&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;strong&gt;http://www.mydomain.com/MyWcfService/MyWcfService.svc&lt;/strong&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;Then the file “clientaccesspolicy.xml” needs to be locatedhere:&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;strong&gt;http://www.mydomain.com/clientaccesspolicy.xml&lt;/strong&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;By enabling the cross-domain policy in this way, developerscan avoid this cross-domain exception when deploying a Silverlight applicationon a server that is different from the server hosting the data providingservice.&lt;span&gt;  &lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;For more information about cross-domain access policiesrelated to Silverlight and WCF, check these links:&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc645032"&gt;http://msdn.microsoft.com/en-us/library/cc645032&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;a href="http://blogs.msdn.com/b/carlosfigueira/archive/2008/03/07/enabling-cross-domain-calls-for-silverlight-apps-on-self-hosted-web-services.aspx"&gt;http://blogs.msdn.com/b/carlosfigueira/archive/2008/03/07/enabling-cross-domain-calls-for-silverlight-apps-on-self-hosted-web-services.aspx&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;a href="http://forums.silverlight.net/forums/t/43293.aspx"&gt;http://forums.silverlight.net/forums/t/43293.aspx&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/393124041810056508-5216516409786334129?l=kenwatts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://kenwatts.blogspot.com/feeds/5216516409786334129/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=393124041810056508&amp;postID=5216516409786334129" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/393124041810056508/posts/default/5216516409786334129?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/393124041810056508/posts/default/5216516409786334129?v=2" /><link rel="alternate" type="text/html" href="http://kenwatts.blogspot.com/2010/09/using-wcf-services-with-silverlight-in.html" title="Using WCF Services with Silverlight in a Cross Domain Way" /><author><name>Ken</name><uri>http://www.blogger.com/profile/07198236296257807925</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/_AKmH7P_FOwA/SM8ZWUq64oI/AAAAAAAAAAw/J63D4UY6Yqg/S220/kpw_avatar_square.jpg" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DEUDQXc7eyp7ImA9WxBXFEo.&quot;"><id>tag:blogger.com,1999:blog-393124041810056508.post-1269983281838222066</id><published>2010-01-25T22:21:00.002-05:00</published><updated>2010-01-25T22:24:30.903-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-25T22:24:30.903-05:00</app:edited><title>PC Surveilance Software: How to spy on your computer using free software</title><content type="html">There may be certain cases where one may want to limit the type of activity that takes place on their PC for a variety of reasons.  Many solutions, both free and for a cost, exist for these kinds of problem.  One approach may be to limit the websites that can be accessed on the network by using an alternative Domain Name Server like opendns.org.  Also, limiting administrative privileges to only users that can be trusted with them is a good way to prevent your PC from being infected by malicious software.  But such solutions are not perfect and do not always guarantee that your PC will be safe from any undesired behavior.&lt;br /&gt;&lt;br /&gt;Async Monitor is a free utility that can be used to monitor activity on your PC asynchronously from any web browser.  It's a low-overhead utility meaning it does not use very much of the system's resources when it is running.  It also runs in the background, so it won't be seen by users of the PC when it's running.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;How it works&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Async Monitor can be downloaded for free here:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://asm.pixelhat.com/"&gt;http://asm.pixelhat.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Sign up for a free account using your e-mail address.  An account is required in order to use the software since your account will be used to upload screen captures to the web.  After downloading and installing AsycMonitor, you will need to set it up by providing the e-mail address and password that was used to create your free on-line account.  From this point, AsyncMonitor will run in the background, and it will automatically upload screen grabs to the web whenever anything on the screen changes.  You can then log-in to your account at &lt;a href="http://asm.pixelhat.com/"&gt;asm.pixelhat.com&lt;/a&gt; from any web browser on any other PC or web-enabled device and view images of what programs are being run on your PC.&lt;br /&gt;&lt;br /&gt;In summary, Async Monitor offers a free solution to monitor activity on your PC in almost real-time.  It could be a handy utility for security minded people.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/393124041810056508-1269983281838222066?l=kenwatts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://kenwatts.blogspot.com/feeds/1269983281838222066/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=393124041810056508&amp;postID=1269983281838222066" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/393124041810056508/posts/default/1269983281838222066?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/393124041810056508/posts/default/1269983281838222066?v=2" /><link rel="alternate" type="text/html" href="http://kenwatts.blogspot.com/2010/01/pc-surveilance-software-how-to-spy-on.html" title="PC Surveilance Software: How to spy on your computer using free software" /><author><name>Ken</name><uri>http://www.blogger.com/profile/07198236296257807925</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/_AKmH7P_FOwA/SM8ZWUq64oI/AAAAAAAAAAw/J63D4UY6Yqg/S220/kpw_avatar_square.jpg" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;C0QAQH0_cSp7ImA9WxVbEE0.&quot;"><id>tag:blogger.com,1999:blog-393124041810056508.post-8210993907603317396</id><published>2009-03-25T13:10:00.003-04:00</published><updated>2009-03-25T13:15:41.349-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-03-25T13:15:41.349-04:00</app:edited><title>Silverlight Market Penetration</title><content type="html">Here's a nice Flash application put together by RIA Stats that is tracking the market penetration of various rich internet application clients.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.riastats.com/"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 202px;" src="http://4.bp.blogspot.com/_AKmH7P_FOwA/ScplwXueUEI/AAAAAAAAABU/KNW6q2yagtk/s320/riastats.JPG" alt="" id="BLOGGER_PHOTO_ID_5317174191741358146" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This will come in handy for those of us interested in watching the rate at which the market penetration for Silverlight will grow after the official launch of Silverlight 2.&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/393124041810056508-8210993907603317396?l=kenwatts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://kenwatts.blogspot.com/feeds/8210993907603317396/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=393124041810056508&amp;postID=8210993907603317396" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/393124041810056508/posts/default/8210993907603317396?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/393124041810056508/posts/default/8210993907603317396?v=2" /><link rel="alternate" type="text/html" href="http://kenwatts.blogspot.com/2009/03/silverlight-market-penetration.html" title="Silverlight Market Penetration" /><author><name>Ken</name><uri>http://www.blogger.com/profile/07198236296257807925</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/_AKmH7P_FOwA/SM8ZWUq64oI/AAAAAAAAAAw/J63D4UY6Yqg/S220/kpw_avatar_square.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_AKmH7P_FOwA/ScplwXueUEI/AAAAAAAAABU/KNW6q2yagtk/s72-c/riastats.JPG" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DU4GRH09eCp7ImA9WxVTF0g.&quot;"><id>tag:blogger.com,1999:blog-393124041810056508.post-5587407596173777952</id><published>2008-12-30T11:07:00.004-05:00</published><updated>2008-12-31T16:12:05.360-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-12-31T16:12:05.360-05:00</app:edited><title>Designing and Implementing the Silverlight Digital Logic Simulator, Part 1</title><content type="html">It's been a while since I posted my first Silverlight application, a Digital Logic Simulator.  Since I've posted this project, many people have asked for and I've promised to put together a tutorial that explains the design and implementation of this tool.  Now that things are beginning to wind down as the holiday season comes to an end, I have some free time to begin working on this long awaited tutorial.  So this will be the first in a multi-part series to document the design and implementation process employed for this project.  I'll be sure to include sample code and detailed explanations as needed, but for those who are interested in diving right into the code, you can download the complete source code for this project from CodePlex.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Part 1: Defining a class for logic devices&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I'd like to point out that this particular project is one that I've been thinking about since I was an undergrad studying Computer Science many years ago.  My inspiration was a great program for the Mac (OS 8 era), the name of this program escapes me but I'll be sure to insert it here along with a screen shot if I do manage to figure out what this program was called.  But in short, it was great because it allowed the student to very easily connect various gates together in order to verify that a simple digital logic circuit worked as expected, according to its truth table.  I always thought that this program was nicely done and I was also disappointed that an equivalent PC version was not available.  At one point, I considered developing a program like this in Java so that it would be portable, but Java turned out to be a disappointment on many levels (which is a topic for another blog article).  In any case, when I first started learning about Silverlight, I almost immediately realized that it would be the perfect platform for implementing a simulator like the one for the mac.  On a side note, there was also a great Turing Machine emulator for the mac that had no good PC equivalent, and I think that this could be another great little project to work on in the future.&lt;br /&gt;&lt;br /&gt;Going back to that old mac program and thinking about how it was designed, what I really liked about it was how intuitive it was to use.  You could simply drag various logic devices onto the screen and position them however you wanted, and connect the devices by dragging the output of one device to the input of one or more other devices.  When trying to decide how best to replicate this behavior from an object-oriented perspective, it makes sense to identify all of the properties and behaviors that are common to all digital logic devices that will be used in the simulator.  After identifying as many of these that come to mind, they can be defined and generalized in a super-class from which specific logic devices, such as gates, can be derived.  For this digital logic simulator, I defined a "Device" class which fulfills this purpose.&lt;br /&gt;&lt;br /&gt;(To Be Continued...)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/393124041810056508-5587407596173777952?l=kenwatts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://kenwatts.blogspot.com/feeds/5587407596173777952/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=393124041810056508&amp;postID=5587407596173777952" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/393124041810056508/posts/default/5587407596173777952?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/393124041810056508/posts/default/5587407596173777952?v=2" /><link rel="alternate" type="text/html" href="http://kenwatts.blogspot.com/2008/12/designing-and-implementing-silverlight.html" title="Designing and Implementing the Silverlight Digital Logic Simulator, Part 1" /><author><name>Ken</name><uri>http://www.blogger.com/profile/07198236296257807925</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/_AKmH7P_FOwA/SM8ZWUq64oI/AAAAAAAAAAw/J63D4UY6Yqg/S220/kpw_avatar_square.jpg" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;AkMGQ3kzeip7ImA9WxRaFkQ.&quot;"><id>tag:blogger.com,1999:blog-393124041810056508.post-2122544566478971830</id><published>2008-11-26T10:27:00.005-05:00</published><updated>2008-12-19T09:53:42.782-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-12-19T09:53:42.782-05:00</app:edited><title>Silverlight Drum Pad</title><content type="html">&lt;center&gt;&lt;br /&gt;&lt;iframe style="width: 400px; height: 160px;" src="http://kenwatts.net/kenwatts/DrumPad/DrumPad.html" scrolling="no" frameborder="0"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;/center&gt;&lt;br /&gt;This is a simple drum pad.  I wanted to test out Silverlight's sound sample playback capability and this seemed like a great project for doing that.&lt;br /&gt;&lt;p&gt;&lt;br /&gt;The corresponding keyboard keys are listed on each pad:&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Toms - A, S, D&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Crash - C&lt;/li&gt;&lt;li&gt;Kick - Z&lt;/li&gt;&lt;li&gt;Snare - X&lt;/li&gt;&lt;li&gt;Hi-Hat - Open: K; Closed: M&lt;/li&gt;&lt;/ul&gt;The source code is available for download at &lt;a href="http://www.codeplex.com/sldrumpad"&gt;CodePlex&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Feel free to comment.  Enjoy!&lt;br /&gt;&lt;br /&gt;-Ken&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/393124041810056508-2122544566478971830?l=kenwatts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://kenwatts.blogspot.com/feeds/2122544566478971830/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=393124041810056508&amp;postID=2122544566478971830" title="5 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/393124041810056508/posts/default/2122544566478971830?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/393124041810056508/posts/default/2122544566478971830?v=2" /><link rel="alternate" type="text/html" href="http://kenwatts.blogspot.com/2008/11/silverlight-drum-pad.html" title="Silverlight Drum Pad" /><author><name>Ken</name><uri>http://www.blogger.com/profile/07198236296257807925</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/_AKmH7P_FOwA/SM8ZWUq64oI/AAAAAAAAAAw/J63D4UY6Yqg/S220/kpw_avatar_square.jpg" /></author><thr:total>5</thr:total></entry><entry gd:etag="W/&quot;CkAESXw4cSp7ImA9WxRXFU4.&quot;"><id>tag:blogger.com,1999:blog-393124041810056508.post-568682021040599015</id><published>2008-10-20T14:46:00.004-04:00</published><updated>2008-10-20T15:25:08.239-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-20T15:25:08.239-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Slideshow" /><category scheme="http://www.blogger.com/atom/ns#" term="lolcats" /><category scheme="http://www.blogger.com/atom/ns#" term="Silverlight" /><title>LOLCats Slide Show in Silverlight</title><content type="html">&lt;center&gt;&lt;br /&gt;&lt;iframe style="WIDTH: 320px; HEIGHT: 240px" src="http://kenwatts.net/kenwatts/LOLCatsSlideShow/SlideShowViewer.html" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;/center&gt;&lt;br /&gt;This is a simple slide show viewer written in Silverlight, currently featuring some lolcats images.  The slide show viewer can be configured to view any images, I chose lolcats for this example just because of their popularity.  Currently, this slide show viewer only supports a cross-fade style transition.  In the future, I plan on added enhancements which will include a variety of transition types.  This initial version serves as a decent baseline that can easily be built upon.&lt;br /&gt;&lt;br /&gt;In this example, slides will automatically transition after being displayed for 5 seconds.  In order to force a transition, simply click on the image.&lt;br /&gt;&lt;br /&gt;The source code for the project can be found &lt;a href="http://www.codeplex.com/slslideshow"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Feel free to comment!&lt;br /&gt;&lt;br /&gt;-Ken&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/393124041810056508-568682021040599015?l=kenwatts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://kenwatts.blogspot.com/feeds/568682021040599015/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=393124041810056508&amp;postID=568682021040599015" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/393124041810056508/posts/default/568682021040599015?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/393124041810056508/posts/default/568682021040599015?v=2" /><link rel="alternate" type="text/html" href="http://kenwatts.blogspot.com/2008/10/lolcats-slide-show-in-silverlight.html" title="LOLCats Slide Show in Silverlight" /><author><name>Ken</name><uri>http://www.blogger.com/profile/07198236296257807925</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/_AKmH7P_FOwA/SM8ZWUq64oI/AAAAAAAAAAw/J63D4UY6Yqg/S220/kpw_avatar_square.jpg" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;Ck8ESHYyfip7ImA9WxRXFU4.&quot;"><id>tag:blogger.com,1999:blog-393124041810056508.post-1074096469001121312</id><published>2008-09-21T09:01:00.006-04:00</published><updated>2008-10-20T15:26:49.896-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-20T15:26:49.896-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Snowflake" /><category scheme="http://www.blogger.com/atom/ns#" term="Fractal" /><category scheme="http://www.blogger.com/atom/ns#" term="Algorithm" /><category scheme="http://www.blogger.com/atom/ns#" term="Iterative" /><category scheme="http://www.blogger.com/atom/ns#" term="Silverlight" /><category scheme="http://www.blogger.com/atom/ns#" term="Koch" /><title>Koch Snowflake in Silverlight</title><content type="html">&lt;center&gt;&lt;br /&gt;&lt;iframe style="WIDTH: 500px; HEIGHT: 550px" src="http://kenwatts.net/kenwatts/KochSnowflake/KochSnowflake.html" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;/center&gt;&lt;br /&gt;This program builds on the &lt;a href="http://kenwatts.blogspot.com/2008/09/koch-curve-in-silverlight.html"&gt;Koch curve&lt;/a&gt;, with the key difference being the initial state contains an equilateral triangle instead of a single line segment, and the snowflake is constructed by generating the Koch curve on each side of the triangle.&lt;br /&gt;&lt;br /&gt;The source code is available at &lt;a href="http://www.codeplex.com/slkochsnowflake"&gt;CodePlex&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Feel free to comment!&lt;br /&gt;&lt;br /&gt;-Ken&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/393124041810056508-1074096469001121312?l=kenwatts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://kenwatts.blogspot.com/feeds/1074096469001121312/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=393124041810056508&amp;postID=1074096469001121312" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/393124041810056508/posts/default/1074096469001121312?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/393124041810056508/posts/default/1074096469001121312?v=2" /><link rel="alternate" type="text/html" href="http://kenwatts.blogspot.com/2008/09/koch-snowflake-in-silverlight.html" title="Koch Snowflake in Silverlight" /><author><name>Ken</name><uri>http://www.blogger.com/profile/07198236296257807925</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/_AKmH7P_FOwA/SM8ZWUq64oI/AAAAAAAAAAw/J63D4UY6Yqg/S220/kpw_avatar_square.jpg" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;Ck8HQX8zeCp7ImA9WxRXFU4.&quot;"><id>tag:blogger.com,1999:blog-393124041810056508.post-4833560889050857502</id><published>2008-09-20T11:11:00.004-04:00</published><updated>2008-10-20T15:27:10.180-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-20T15:27:10.180-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Fractal" /><category scheme="http://www.blogger.com/atom/ns#" term="Algorithm" /><category scheme="http://www.blogger.com/atom/ns#" term="Iterative" /><category scheme="http://www.blogger.com/atom/ns#" term="Curve" /><category scheme="http://www.blogger.com/atom/ns#" term="Silverlight" /><category scheme="http://www.blogger.com/atom/ns#" term="Koch" /><title>Koch Curve in Silverlight</title><content type="html">&lt;center&gt;&lt;br /&gt;&lt;iframe style="WIDTH: 300px; HEIGHT: 200px" src="http://kenwatts.net/kenwatts/KochCurve/KochCurve.html" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;/center&gt;&lt;p&gt;&lt;br /&gt;Here's another one of my favorite fractals, the Koch curve! Generating this is simple:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Start with a straight line segment&lt;/li&gt;&lt;li&gt;Insert an equilateral triangle in the center of the line segment&lt;/li&gt;&lt;li&gt;Repeat this process for each new line segment&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The source code is available at &lt;a href="http://www.codeplex.com/slkochcurve"&gt;CodePlex&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Feel free to comment!&lt;/p&gt;&lt;p&gt;-Ken&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/393124041810056508-4833560889050857502?l=kenwatts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://kenwatts.blogspot.com/feeds/4833560889050857502/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=393124041810056508&amp;postID=4833560889050857502" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/393124041810056508/posts/default/4833560889050857502?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/393124041810056508/posts/default/4833560889050857502?v=2" /><link rel="alternate" type="text/html" href="http://kenwatts.blogspot.com/2008/09/koch-curve-in-silverlight.html" title="Koch Curve in Silverlight" /><author><name>Ken</name><uri>http://www.blogger.com/profile/07198236296257807925</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/_AKmH7P_FOwA/SM8ZWUq64oI/AAAAAAAAAAw/J63D4UY6Yqg/S220/kpw_avatar_square.jpg" /></author><thr:total>1</thr:total></entry><entry gd:etag="W/&quot;CkACQ3c-eSp7ImA9WxRXFU4.&quot;"><id>tag:blogger.com,1999:blog-393124041810056508.post-3225923988703550829</id><published>2008-09-15T22:26:00.005-04:00</published><updated>2008-10-20T15:26:02.951-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-20T15:26:02.951-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Fractal" /><category scheme="http://www.blogger.com/atom/ns#" term="Algorithm" /><category scheme="http://www.blogger.com/atom/ns#" term="Triangle" /><category scheme="http://www.blogger.com/atom/ns#" term="Iterative" /><category scheme="http://www.blogger.com/atom/ns#" term="Silverlight" /><category scheme="http://www.blogger.com/atom/ns#" term="Sierpinski" /><title>Sierpinski's Triangle in Silverlight</title><content type="html">&lt;center&gt;&lt;br /&gt;&lt;iframe style="WIDTH: 300px; HEIGHT: 300px" src="http://kenwatts.net/kenwatts/SierpinskiTriangle/SierpinskiTriangle.html" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;/center&gt;&lt;p&gt;&lt;br /&gt;Here's a fractal gem that's stuck with me since my discrete math days. Generating this fractal is simple:&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Pick a random point.&lt;/li&gt;&lt;li&gt;Choose a random number from 1 to 3, each representing a point on a triangle.&lt;/li&gt;&lt;li&gt;Plot the midpoint between the first chosen point and the randomly selected point on the triangle. The color of the point can be different for each of the three points on the triangle.&lt;/li&gt;&lt;li&gt;Choose another random point on the triangle (1-3) and plot the midpoint between it and the previous point plotted.&lt;/li&gt;&lt;li&gt;Repeat the previous step (forever!)&lt;/li&gt;&lt;/ul&gt;The result is Sierpinski's Triangle! Click on the Silverlight app to clear the plotted points.&lt;br /&gt;&lt;br /&gt;Note that the EditableImage class from Joe Stegman's Silverlight.Samples module was used in this project since it provides an efficient way to plot points on a 2-D plane. You can read more about it &lt;a href="http://blogs.msdn.com/jstegman/archive/2008/04/21/dynamic-image-generation-in-silverlight.aspx"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The source code for this project is also available for download at &lt;a href="http://www.codeplex.com/slsierpinski/SourceControl/DownloadSourceCode.aspx?changeSetId=908"&gt;CodePlex&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Feel free to comment!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/393124041810056508-3225923988703550829?l=kenwatts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://kenwatts.blogspot.com/feeds/3225923988703550829/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=393124041810056508&amp;postID=3225923988703550829" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/393124041810056508/posts/default/3225923988703550829?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/393124041810056508/posts/default/3225923988703550829?v=2" /><link rel="alternate" type="text/html" href="http://kenwatts.blogspot.com/2008/09/sierpinskis-triangle-in-silverlight.html" title="Sierpinski's Triangle in Silverlight" /><author><name>Ken</name><uri>http://www.blogger.com/profile/07198236296257807925</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/_AKmH7P_FOwA/SM8ZWUq64oI/AAAAAAAAAAw/J63D4UY6Yqg/S220/kpw_avatar_square.jpg" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DEQDQ3s_fCp7ImA9WxRQF04.&quot;"><id>tag:blogger.com,1999:blog-393124041810056508.post-1829884149646625834</id><published>2008-08-18T10:07:00.003-04:00</published><updated>2008-10-11T10:46:12.544-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-11T10:46:12.544-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Digital" /><category scheme="http://www.blogger.com/atom/ns#" term="Simulator" /><category scheme="http://www.blogger.com/atom/ns#" term="Gates" /><category scheme="http://www.blogger.com/atom/ns#" term="Logic" /><category scheme="http://www.blogger.com/atom/ns#" term="Flip-flop" /><title>Digital Logic Simulator in Silverlight</title><content type="html">&lt;iframe style="WIDTH: 640px; HEIGHT: 480px" src="http://kenwatts.net/kenwatts/DigitalLogicSimulator/DigitalLogicSimulator.html" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Press "F" for full screen mode&lt;/li&gt;&lt;li&gt;Click and drag digital logic devices onto the graph paper&lt;/li&gt;&lt;li&gt;Connect devices by clicking and dragging from the output of one device to the input(s) of other devices.&lt;/li&gt;&lt;li&gt;Double-click a device to select it for deletion&lt;/li&gt;&lt;li&gt;Clicking "Delete" will delete any and all selected devices.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Motivation&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The reasons behind creating this application are basically:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;This seemed like it would be a fun project to get started with learning about Silverlight.&lt;/li&gt;&lt;li&gt;There are not any good digital logic simulators on the web, or at least I couldn't find anything that I thought was decent.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;Feel free to comment. Enjoy! &lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt; - 9/16/2008: I've posted the source code at &lt;a href="http://www.codeplex.com/sldigitallogicsim/SourceControl/ListDownloadableCommits.aspx"&gt;CodePlex&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/393124041810056508-1829884149646625834?l=kenwatts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://kenwatts.blogspot.com/feeds/1829884149646625834/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=393124041810056508&amp;postID=1829884149646625834" title="38 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/393124041810056508/posts/default/1829884149646625834?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/393124041810056508/posts/default/1829884149646625834?v=2" /><link rel="alternate" type="text/html" href="http://kenwatts.blogspot.com/2008/08/digital-logic-simulator-in-silverlight.html" title="Digital Logic Simulator in Silverlight" /><author><name>Ken</name><uri>http://www.blogger.com/profile/07198236296257807925</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/_AKmH7P_FOwA/SM8ZWUq64oI/AAAAAAAAAAw/J63D4UY6Yqg/S220/kpw_avatar_square.jpg" /></author><thr:total>38</thr:total></entry></feed>

