<?xml version="1.0" encoding="UTF-8" standalone="no"?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:gd="http://schemas.google.com/g/2005" xmlns:georss="http://www.georss.org/georss" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:thr="http://purl.org/syndication/thread/1.0"><id>tag:blogger.com,1999:blog-4428930216417783699</id><updated>2025-02-26T21:23:01.551+02:00</updated><category term=".NET"/><category term="Tools"/><category term="General"/><category term="Programming"/><category term="Silverlight"/><category term="Security"/><category term="Tutorial"/><category term="Web"/><category term="OS General"/><category term="SQL"/><category term="Download"/><category term="Android"/><category term="Web-programming"/><category term="Free"/><category term="Linux"/><category term="Visual Studio"/><category term="WCF"/><category term="WPF"/><category term="ASP .NET"/><category term="C++"/><category term="Google"/><category term="C#"/><category term="Debug"/><category term="Mobile"/><category term="Microsoft"/><category term="Career"/><category term="Javascript"/><category term="Network"/><category term="IIS"/><category term="Relax"/><category term="Windows Phone"/><category term="Games"/><category term="Hack"/><category term="Mono"/><category term="UI"/><category term="MVC"/><category term="NHibernate"/><category term="Videos"/><category term="XAML"/><category term="Java"/><category term="Application"/><category term="Facebook"/><category term="Internet Explorer"/><category term="Kinect"/><category term="HTML5"/><category term="Office"/><category term="Hardware"/><category term="Chrome"/><category term="Python"/><category term="Virtual Machine"/><category term="Subversion"/><category term="Cloud"/><category term="XML"/><category term="Apache"/><category term="MVVM"/><category term="COM"/><category term="USB"/><category term="Firefox"/><category term="MSBuild"/><category term="Cryptography"/><category term="Twitter"/><category term="Browser Helper Object (BHO)"/><category term="Database"/><category term="DirectX"/><category term="VoIP"/><category term="eBook"/><category term="F#"/><category term="Flash"/><category term="Git"/><category term="UnitTest"/><category term="VirtualBox"/><category term="QA"/><category term="YouTube"/><category term="Mac"/><category term="Objective C"/><category term="XNA"/><category term="Adobe"/><category term="Media Service"/><category term="PHP"/><category term="VB"/><category term="Blog"/><category term="LightSwitch"/><category term="Monodroid"/><category term="Flex"/><category term="Mercurial"/><category term="OpenGL"/><category term="Oracle"/><category term="PDC"/><category term="VHD"/><category term="WIF"/><category term="Xbox"/><category term="CLR"/><category term="MEF"/><category term="MSDN Magazine"/><category term="PayPal"/><category term="Shaders"/><category term="Spring.NET"/><category term="DLR"/><category term="DRM"/><category term="Drupal"/><category term="Lync"/><category term="MSMQ"/><category term="Microsoft Surface"/><category term="Monodevelop"/><category term="NUnit"/><category term="Natal"/><category term="Script#"/><category term="Smartcard"/><category term="WBF"/><category term="Wii"/><category term="Windows Biometric Framework"/><category term="Windows CE"/><category term="XPS (XML Paper Specification)"/><title type="text"/><subtitle type="html">Interesting articles about .NET, C#, general programming, new programs and everything else. Enjoy !</subtitle><link href="http://jasper-net.blogspot.com/feeds/posts/default" rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/4428930216417783699/posts/default?redirect=false" rel="self" type="application/atom+xml"/><link href="http://jasper-net.blogspot.com/" rel="alternate" type="text/html"/><link href="http://pubsubhubbub.appspot.com/" rel="hub"/><link href="http://www.blogger.com/feeds/4428930216417783699/posts/default?start-index=26&amp;max-results=25&amp;redirect=false" rel="next" type="application/atom+xml"/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><generator uri="http://www.blogger.com" version="7.00">Blogger</generator><openSearch:totalResults>9618</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4428930216417783699.post-1580027073432535900</id><published>2015-01-15T15:08:00.001+02:00</published><updated>2015-01-15T15:08:06.120+02:00</updated><title type="text">Serve up Debug Symbols for your NuGet packages? Heck yeah!</title><content type="html">&lt;div&gt;BOO-YAH!&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;When you want to push to the symbol servers you need to use the command shown here. When you want to use the Symbol Server in Visual Studio, you need to use the debugging URL shown here in your Visual Studio's Source Symbol Server setup like so:&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Now, test this bad boy out by:&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;Upload a NuGet package to your own symbol server (as outlined in my previous post)&lt;br&gt;&lt;/li&gt;&lt;li&gt;Push its corresponding Symbols package (created by packaging with symbols via '-symbols' switch) using the push command shown on your new symbol server's page&lt;br&gt;&lt;/li&gt;&lt;li&gt;Create a new project to use the NuGet package published in #1&lt;br&gt;&lt;/li&gt;&lt;li&gt;Add NuGet package to project&lt;br&gt;&lt;/li&gt;&lt;li&gt;Run Project&lt;br&gt;&lt;/li&gt;&lt;li&gt;F11 in to code that utilizes the NuGet project&lt;br&gt;&lt;/li&gt;&lt;li&gt;Watch the magic. You should step in to source, but see that the "file" is coming from a super wacky temp location.&lt;br&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;That's it, you're all set! Since you're using this for your own NuGet packages, I can't really see a reason *not* to publish symbol packages with your binary ones. Enjoy!&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Read more: &lt;a href="http://www.codeproject.com/Articles/864724/Serve-up-Debug-Symbols-for-your-NuGet-packages-Hec"&gt;Codeproject&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;  </content><link href="http://www.blogger.com/feeds/4428930216417783699/posts/default/1580027073432535900" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/4428930216417783699/posts/default/1580027073432535900" rel="self" type="application/atom+xml"/><link href="http://jasper-net.blogspot.com/2015/01/serve-up-debug-symbols-for-your-nuget.html" rel="alternate" title="Serve up Debug Symbols for your NuGet packages? Heck yeah!" type="text/html"/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author></entry><entry><id>tag:blogger.com,1999:blog-4428930216417783699.post-2329779398170546941</id><published>2014-11-19T15:31:00.001+02:00</published><updated>2014-11-19T15:31:53.136+02:00</updated><title type="text">Mono for Unreal Engine</title><content type="html">&lt;div dir="ltr"&gt;&lt;div class="gmail_default" style="text-align:center;font-family:tahoma,sans-serif"&gt;&lt;img src="http://tirania.org/pictures/mono-unreal.png" width="498" height="446"&gt;&lt;br&gt;&lt;br&gt;&lt;/div&gt;&lt;div class="gmail_default" style="font-family:tahoma,sans-serif"&gt;&lt;br&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;Earlier this year, both Epic Games and CryTech made their Unreal Engine and CryEngine available under an affordable subscription model. These are both very sophisticated game engines that power some high end and popular games.&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;We had previously helped Unity bring Mono as the scripting language used in their engine and we now had a chance to do this over again.&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;Today I am happy to introduce Mono for Unreal Engine.&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;This is a project that allows Unreal Engine users to build their game code in C# or F#.&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;Read more: &lt;a href="http://tirania.org/blog/archive/2014/Oct-23.html"&gt;Personal blog of Miguel de Icaza&lt;/a&gt;&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;  &lt;/div&gt;  </content><link href="http://www.blogger.com/feeds/4428930216417783699/posts/default/2329779398170546941" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/4428930216417783699/posts/default/2329779398170546941" rel="self" type="application/atom+xml"/><link href="http://jasper-net.blogspot.com/2014/11/mono-for-unreal-engine.html" rel="alternate" title="Mono for Unreal Engine" type="text/html"/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author></entry><entry><id>tag:blogger.com,1999:blog-4428930216417783699.post-4807149285339112958</id><published>2014-11-16T14:52:00.001+02:00</published><updated>2014-11-16T14:52:47.220+02:00</updated><title type="text">Migrating from Silverlight to AngularJS</title><content type="html">&lt;div dir="ltr"&gt;&lt;div class="gmail_default" style="text-align:center;font-family:tahoma,sans-serif"&gt;&lt;img src="http://www.codeproject.com/KB/showcase/841700/image001.png" width="437" height="354"&gt;&lt;br&gt;&lt;br&gt;&lt;/div&gt;&lt;div class="gmail_default" style="font-family:tahoma,sans-serif"&gt;&lt;br&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;Introduction&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;What attracted many developers to Silverlight starting back in 2007, was that it allowed us to write maintainable web applications quickly and easily. This was largely due to MVVM, a pattern that separates logic from presentation. The ViewModel portion of the app, written in C# or VB, contains all of the logic, which makes it easy to test and maintain. The View portion of the app is written in XAML, using a rich library of supporting classes and controls.&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;When Microsoft decided to stop investing in Silverlight, many developers were faced with a tough decision. How could they migrate to modern web platforms and not throw away all the benefits of MVVM and the knowledge they gained by using Silverlight?&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;At ComponentOne, a division of GrapeCity, we faced this challenge ourselves. We studied the alternatives and concluded that HTML5 and application frameworks such as AngularJS seemed like the best option going forward. AngularJS provides the key ingredients: a solid framework for single-page applications, a templating mechanism, and basic support for MVVM. All it was missing were the controls and a few essential classes required to create traditional MVVM apps.&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;Well, we know how to write controls. So we decided to add what was missing.&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;The result is Wijmo 5, our latest control library for HTML5 and JavaScript development. Wijmo 5 is a true HTML5 solution, based on JavaScript and CSS. It includes all of the controls commonly used in LOB (line of business) applications, as well as JavaScript implementations of the ICollectionView interface and a concrete CollectionView class.&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;Together with AngularJS, Wijmo 5 provides a great platform for porting existing Silverlight applications and also for creating brand new web applications faster than you ever thought possible.&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;Read more: &lt;a href="http://www.codeproject.com/Articles/841700/Migrating-from-Silverlight-to-AngularJS"&gt;Codeproject&lt;/a&gt;&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;  &lt;/div&gt;  </content><link href="http://www.blogger.com/feeds/4428930216417783699/posts/default/4807149285339112958" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/4428930216417783699/posts/default/4807149285339112958" rel="self" type="application/atom+xml"/><link href="http://jasper-net.blogspot.com/2014/11/migrating-from-silverlight-to-angularjs.html" rel="alternate" title="Migrating from Silverlight to AngularJS" type="text/html"/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author></entry><entry><id>tag:blogger.com,1999:blog-4428930216417783699.post-7391426213795382742</id><published>2014-11-16T14:18:00.000+02:00</published><updated>2014-11-16T14:19:21.530+02:00</updated><title type="text">Visual Studio 2015 Preview Features – Part 1</title><content type="html">&lt;div dir="ltr"&gt;&lt;div class="gmail_default" style="text-align:center;font-family:tahoma,sans-serif"&gt;&lt;img src="http://www.learnxpress.com/images/2014/11/Visual-Studio-2015-Android-Emulator-182x300.png" width="182" height="300"&gt; &lt;img src="http://cdn.filipekberg.se/fekberg-blog/visual-studio-2015-preview-and-open-sourcing-dotnet-announced/LambdasInTheWatchWindow.png" width="544" height="352"&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/div&gt;&lt;div class="gmail_default" style="font-family:tahoma,sans-serif"&gt;&lt;br&gt;&lt;/div&gt;&lt;div class="gmail_default" style="font-family:tahoma,sans-serif"&gt;&lt;br&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;Visual Studio 2015 Preview has been released with support for cross platform device development in C++ in addition to an Android emulator, updated tooling for Apache Cordova, the open source .NET compiler platform, support for &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; 5. The preview also includes many new updates and improvements.&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;Visual Studio 2015 adds support for cross-platform mobile development using C++ leveraging the open source Clang and LLVM toolchain. It enables developers to share, reuse, build, deploy and debug libraries for other operating systems in Visual Studio.&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;With the help of Visual Studio 2015 Preview, you will be able to create projects from templates for Android Native Activity apps or for shared code libraries that you can use on multiple platforms and in Xamarin hybrid apps. It is also possible to set breakpoints, watch variables, view the stack and step through code in the Visual Studio debugger.&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;In addition to the currently available emulator for Windows Phone, Visual Studio 2015 includes a powerful emulator for Android. This means that you will be able to test Android apps from within Visual Studio.&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;Read more: &lt;a href="http://java.dzone.com/articles/visual-studio-2015-preview"&gt;DZone&lt;/a&gt;&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;  &lt;/div&gt;  </content><link href="http://www.blogger.com/feeds/4428930216417783699/posts/default/7391426213795382742" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/4428930216417783699/posts/default/7391426213795382742" rel="self" type="application/atom+xml"/><link href="http://jasper-net.blogspot.com/2014/11/visual-studio-2015-preview-features.html" rel="alternate" title="Visual Studio 2015 Preview Features – Part 1" type="text/html"/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author></entry><entry><id>tag:blogger.com,1999:blog-4428930216417783699.post-2557732812791377066</id><published>2014-11-16T10:19:00.001+02:00</published><updated>2014-11-16T10:19:39.731+02:00</updated><title type="text">Microsoft Open Sources .NET and Mono</title><content type="html">&lt;div dir="ltr"&gt;&lt;div class="gmail_default" style&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;Today, Scott Guthrie announced that Microsoft is open sourcing .NET. This is a momentous occasion, and one that I have advocated for many years.&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;.NET is being open sourced under the MIT license. Not only is the code being released under this very permissive license, but Microsoft is providing a patent promise to ensure that .NET will get the adoption it deserves.&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;The code is being hosted at the .NET Foundation&amp;#39;s github repository.&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;This patent promise addresses the historical concerns that the open source, Unix and free software communities have raised over the years.&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;.NET Components&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;There are three components being open sourced: the .NET Framework Libraries, .NET Core Framework Libraries and the RyuJit VM. More details below.&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;.NET Framework Class Libraries&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;These are the class libraries that power the .NET framework as it ships on windows. The ones that Mono has historically implemented in an open source fashion.&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;The code is available today from &lt;a href="http://github.com/Microsoft/referencesource"&gt;http://github.com/Microsoft/referencesource&lt;/a&gt;. Mono will be able to use as much a it wants from this project.&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;We have a project underway that already does this. We are replacing chunks of Mono code that was either incomplete, buggy, or not as fully featured as it should be with Microsoft&amp;#39;s code.&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;Read more: &lt;a href="http://tirania.org/blog/archive/2014/Nov-12.html"&gt;Personal blog of Miguel de Icaza&lt;/a&gt;&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;  &lt;/div&gt;  </content><link href="http://www.blogger.com/feeds/4428930216417783699/posts/default/2557732812791377066" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/4428930216417783699/posts/default/2557732812791377066" rel="self" type="application/atom+xml"/><link href="http://jasper-net.blogspot.com/2014/11/microsoft-open-sources-net-and-mono.html" rel="alternate" title="Microsoft Open Sources .NET and Mono" type="text/html"/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author></entry><entry><id>tag:blogger.com,1999:blog-4428930216417783699.post-1482839304159119959</id><published>2014-11-11T13:57:00.000+02:00</published><updated>2014-11-11T13:58:20.031+02:00</updated><title type="text">XAML Organization</title><content type="html">&lt;div dir="ltr"&gt;&lt;div class="gmail_default" style="text-align:center;font-family:tahoma,sans-serif"&gt;&lt;img src="http://www.projekt202.com/wp-content/uploads/2010/11/XAMLOrganization01.gif" width="544" height="235"&gt;&lt;br&gt;&lt;br&gt;&lt;/div&gt;&lt;div class="gmail_default" style="font-family:tahoma,sans-serif"&gt;&lt;br&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;We've worked on countless WPF and Silverlight projects over the past several years and throughout that time, we've refined both our process and the organization of our solutions.  We pass off front-end code to our client developers.  So clean, understandable organization is extremely important for an effective transfer of knowledge.&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;Most of the development teams that we work with are well versed with c# code, programming methodologies, and best practices.  But typically we find that XAML is not something that they care much about.  Due to this lack of interest folks tend to not put much up-front thought into how their Resource Dictionaries are organized, nor is there much in the way of guidance from Microsoft.  So then 3 months into their development cycle the application looks great from a code perspective, especially if the Model View ViewModel (MVVM) paradigm is followed, but digging into the various styles, templates, brush resources, etc… reveal a lot of problems.&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;...&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;...&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;div class="gmail_default"&gt;Rule#1: One Style per Resource Dictionary&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;br&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;For all but the smallest, apps, you will want to follow this rule.  It is much easier to find a style within a directory than if it is buried deep inside of a gigantic "catch-all" Resource Dictionary.  It is very similar to the c# rule of one class per file.  Now there are exceptions to rule #1,  we do occasionally package up more than one style in a Resource Dictionary, but only if there is a tight pairing between styles such as a small supporting style that the main style needs.  A good example of this is the button style that a scrollBar uses for "Line up"/"Line Down" buttons.  We would package these styles together.&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;br&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;Rule #2: Resource Dictionary named to match contained style&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;br&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;Simple enough, if you have a named style called "HelpButtonStyle", name the Resource Directory "HelpButtonStyle.xaml".  If you have a nameless style that acts as the default for a control, name the Resource Dictionary the same as the TargetType, for example "ComboBoxStyle.xaml"&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;br&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;Rule #3: No resources directly in App.xaml (only ResourceDirectory merging)&lt;/div&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;Read more: &lt;a href="http://projekt202.com/blog/2010/xaml-organization/"&gt;Projekt202&lt;/a&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;  &lt;/div&gt;  </content><link href="http://www.blogger.com/feeds/4428930216417783699/posts/default/1482839304159119959" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/4428930216417783699/posts/default/1482839304159119959" rel="self" type="application/atom+xml"/><link href="http://jasper-net.blogspot.com/2014/11/xaml-organization.html" rel="alternate" title="XAML Organization" type="text/html"/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author></entry><entry><id>tag:blogger.com,1999:blog-4428930216417783699.post-6004658471363262618</id><published>2014-11-10T16:52:00.001+02:00</published><updated>2014-11-10T16:52:35.790+02:00</updated><title type="text">ILSpy, the Visual Studio Extension</title><content type="html">&lt;div dir="ltr"&gt;&lt;div class="gmail_default" style="text-align:center;font-family:tahoma,sans-serif"&gt;&lt;img src="https://i1.visualstudiogallery.msdn.s-msft.com/8ef1d688-f80c-4380-8004-2ec7f814e7de/image/file/146136/1/ilspyext_openviareferences.png" width="544" height="216"&gt;&lt;br&gt;&lt;br&gt;&lt;/div&gt;&lt;div class="gmail_default" style="font-family:tahoma,sans-serif"&gt;&lt;br&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;Today&amp;#39;s Visual Studio Extension is one that can and will come in handy and is a must tool belt have...&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;Sometimes you&amp;#39;ve got an assembly, but no PDB or Source, and you just need to peek at how it works. Years ago, we highlighted the open source decompiler ILSpy, I spy with my little eye... ILSpy.&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;Today we&amp;#39;re highlighting a Visual Studio Extension that makes ILSpy that much easier to use, almost too easy (insert &amp;quot;With great power, comes...&amp;quot; here)&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;Read more: &lt;a href="http://channel9.msdn.com/coding4fun/blog/ILSpy-the-Visual-Studio-Extension"&gt;Channel9&lt;/a&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;Read more: &lt;a href="https://visualstudiogallery.msdn.microsoft.com/8ef1d688-f80c-4380-8004-2ec7f814e7de"&gt;Visual Studio extensions&lt;/a&gt;&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;  &lt;/div&gt;  </content><link href="http://www.blogger.com/feeds/4428930216417783699/posts/default/6004658471363262618" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/4428930216417783699/posts/default/6004658471363262618" rel="self" type="application/atom+xml"/><link href="http://jasper-net.blogspot.com/2014/11/ilspy-visual-studio-extension.html" rel="alternate" title="ILSpy, the Visual Studio Extension" type="text/html"/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author></entry><entry><id>tag:blogger.com,1999:blog-4428930216417783699.post-5669548757237856026</id><published>2014-11-06T14:52:00.001+02:00</published><updated>2014-11-06T14:52:38.196+02:00</updated><title type="text">Differences between nanomsg and ZeroMQ</title><content type="html">&lt;div dir="ltr"&gt;&lt;div class="gmail_default" style&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;Differences between nanomsg and ZeroMQ&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;Licensing&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;nanomsg library is MIT-licensed. What it means is that, unlike with ZeroMQ, you can modify the source code and re-release it under a different license, as a proprietary product, etc. More reasoning about the licensing can be found here.&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;POSIX Compliance&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;ZeroMQ API, while modeled on BSD socket API, doesn&amp;#39;t match the API fully. nanomsg aims for full POSIX compliance.&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:tahoma,sans-serif"&gt;Sockets are represented as ints, not void pointers.&lt;/span&gt;&lt;br&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:tahoma,sans-serif"&gt;Contexts, as known in ZeroMQ, don&amp;#39;t exist in nanomsg. This means simpler API (sockets can be created in a single step) as well as the possibility of using the library for communication between different modules in a single process (think of plugins implemented in different languages speaking each to another). More discussion can be found here.&lt;/span&gt;&lt;br&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:tahoma,sans-serif"&gt;Sending and receiving functions (nn_send, nn_sendmsg, nn_recv and nn_recvmsg) fully match POSIX syntax and semantics.&lt;/span&gt;&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;Implementation Language&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;The library is implemented in C instead of C++.&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:tahoma,sans-serif"&gt;From user&amp;#39;s point of view it means that there&amp;#39;s no dependency on C++ runtime (libstdc++ or similar) which may be handy in constrained and embedded environments.&lt;/span&gt;&lt;br&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:tahoma,sans-serif"&gt;From nanomsg developer&amp;#39;s point of view it makes life easier.&lt;/span&gt;&lt;br&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:tahoma,sans-serif"&gt;Number of memory allocations is drastically reduced as intrusive containers are used instead of C++ STL containers.&lt;/span&gt;&lt;br&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:tahoma,sans-serif"&gt;The above also means less memory fragmentation, less cache misses, etc.&lt;/span&gt;&lt;br&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:tahoma,sans-serif"&gt;More discussion on the C vs. C++ topic can be found here and here.&lt;/span&gt;&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;Pluggable Transports and Protocols&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;In ZeroMQ there was no formal API for plugging in new transports (think WebSockets, DCCP, SCTP) and new protocols (counterparts to REQ/REP, PUB/SUB, etc.) As a consequence there were no new transports added since 2008. No new protocols were implemented either. The formal internal transport API (see transport.h and protocol.h) are meant to mitigate the problem and serve as a base for creating and experimenting with new transports and protocols.&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;Please, be aware that the two APIs are still new and may experience some tweaking in the future to make them usable in wide variety of scenarios.&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:tahoma,sans-serif"&gt;nanomsg implements a new SURVEY protocol. The idea is to send a message (&amp;quot;survey&amp;quot;) to multiple peers and wait for responses from all of them. For more details check the article here. Also look here.&lt;/span&gt;&lt;br&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:tahoma,sans-serif"&gt;In financial services it is quite common to use &amp;quot;deliver messages from anyone to everyone else&amp;quot; kind of messaging. To address this use case, there&amp;#39;s a new BUS protocol implemented in nanomsg. Check the details here.&lt;/span&gt;&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;Threading Model&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;One of the big architectural blunders I&amp;#39;ve done in ZeroMQ is its threading model. Each individual object is managed exclusively by a single thread. That works well for async objects handled by worker threads, however, it becomes a trouble for objects managed by user threads. The thread may be used to do unrelated work for arbitrary time span, e.g. an hour, and during that time the object being managed by it is completely stuck. Some unfortunate consequences are: inability to implement request resending in REQ/REP protocol, PUB/SUB subscriptions not being applied while application is doing other work, and similar. In nanomsg the objects are not tightly bound to particular threads and thus these problems don&amp;#39;t exist.&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:tahoma,sans-serif"&gt;REQ socket in ZeroMQ cannot be really used in real-world environments, as they get stuck if message is lost due to service failure or similar. Users have to use XREQ instead and implement the request re-trying themselves. With nanomsg, the re-try functionality is built into REQ socket.&lt;/span&gt;&lt;br&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:tahoma,sans-serif"&gt;In nanomsg, both REQ and REP support cancelling the ongoing processing. Simply send a new request without waiting for a reply (in the case of REQ socket) or grab a new request without replying to the previous one (in the case of REP socket).&lt;/span&gt;&lt;br&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:tahoma,sans-serif"&gt;In ZeroMQ, due to its threading model, bind-first-then-connect-second scenario doesn&amp;#39;t work for inproc transport. It is fixed in nanomsg.&lt;/span&gt;&lt;br&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:tahoma,sans-serif"&gt;For similar reasons auto-reconnect doesn&amp;#39;t work for inproc transport in ZeroMQ. This problem is fixed in nanomsg as well.&lt;/span&gt;&lt;br&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:tahoma,sans-serif"&gt;Finally, nanomsg attempts to make nanomsg sockets thread-safe. While using a single socket from multiple threads in parallel is still discouraged, the way in which ZeroMQ sockets failed randomly in such circumstances proved to be painful and hard to debug.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;font face="tahoma, sans-serif"&gt;(+more)&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;Read more: &lt;a href="http://nanomsg.org/documentation-zeromq.html"&gt;nanomsg.org&lt;/a&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;  &lt;/div&gt;  </content><link href="http://www.blogger.com/feeds/4428930216417783699/posts/default/5669548757237856026" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/4428930216417783699/posts/default/5669548757237856026" rel="self" type="application/atom+xml"/><link href="http://jasper-net.blogspot.com/2014/11/differences-between-nanomsg-and-zeromq.html" rel="alternate" title="Differences between nanomsg and ZeroMQ" type="text/html"/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author></entry><entry><id>tag:blogger.com,1999:blog-4428930216417783699.post-1471056386132851586</id><published>2014-11-03T13:27:00.000+02:00</published><updated>2014-11-03T13:28:08.269+02:00</updated><title type="text">dot42 - C# for Android</title><content type="html">&lt;div dir="ltr"&gt;&lt;div class="gmail_default" style="font-family:tahoma,sans-serif"&gt;&lt;img src="https://www.dot42.com/dot42/img/logo.png" width="246" height="118"&gt;&lt;br&gt;&lt;br&gt;&lt;/div&gt;&lt;div class="gmail_default" style="font-family:tahoma,sans-serif"&gt;&lt;br&gt;&lt;/div&gt;&lt;div class="gmail_default" style="font-family:tahoma,sans-serif"&gt;&lt;br&gt;&lt;/div&gt;&lt;div class="gmail_default" style="font-family:tahoma,sans-serif"&gt;&lt;div class="gmail_default"&gt;In a nutshell&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;br&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;Write Android apps in C# without any runtime requirements such as Mono, resulting in small packages. &lt;/div&gt;&lt;div class="gmail_default"&gt;Run, deploy and debug right from Visual Studio or SharpDevelop. &lt;/div&gt;&lt;div class="gmail_default"&gt;By design, all Android devices are supported.&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;br&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;Read more: &lt;a href="https://www.dot42.com/"&gt;dot42&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;  &lt;/div&gt;  </content><link href="http://www.blogger.com/feeds/4428930216417783699/posts/default/1471056386132851586" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/4428930216417783699/posts/default/1471056386132851586" rel="self" type="application/atom+xml"/><link href="http://jasper-net.blogspot.com/2014/11/dot42-c-for-android.html" rel="alternate" title="dot42 - C# for Android" type="text/html"/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author></entry><entry><id>tag:blogger.com,1999:blog-4428930216417783699.post-2376213844895362622</id><published>2014-10-22T15:39:00.001+03:00</published><updated>2014-10-22T15:39:56.161+03:00</updated><title type="text">#1,185 – ItemsControl Customization Summary</title><content type="html">&lt;div dir="ltr"&gt;&lt;div class="gmail_default" style="font-family:tahoma,sans-serif"&gt;&lt;div class="gmail_default"&gt;You can can customize an ItemsControl, or any of the controls that derive from it (ComboBox, DataGrid, ListBox, TabControl, TreeView et al), in a number of ways.  The various customization mechanisms are summarized below.&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;ul&gt;&lt;li&gt;Set Style to apply a set of property values for the main control&lt;br&gt;&lt;/li&gt;&lt;li&gt;Set Template to change the control template of the control.&lt;br&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;This changing the highest level of the control (e.g. for a ListBox, a Border wrapping a ScrollViewer, in turn wrapping an ItemsPresenter)&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Set ItemsPanel to change the panel used to lay out the individual items&lt;br&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;E.g. User horizontally oriented StackPanel to lay out ListBox items horizontally, rather than vertically&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Set ItemContainerStyle to set properties that apply to the container for each item&lt;br&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;E.g. Properties that apply to each ListBoxItem within a ListBox&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Set ItemTemplate to change the data template used to render each item in the list&lt;br&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;E.g. Create a custom layout for each item in a ListBox&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;br&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;Read more: &lt;a href="http://wpf.2000things.com/2014/10/22/1185-itemscontrol-customization-summary/"&gt;2,000 Things You Should Know About WPF&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;  &lt;/div&gt;  </content><link href="http://www.blogger.com/feeds/4428930216417783699/posts/default/2376213844895362622" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/4428930216417783699/posts/default/2376213844895362622" rel="self" type="application/atom+xml"/><link href="http://jasper-net.blogspot.com/2014/10/1185-itemscontrol-customization-summary.html" rel="alternate" title="#1,185 – ItemsControl Customization Summary" type="text/html"/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author></entry><entry><id>tag:blogger.com,1999:blog-4428930216417783699.post-6145990394482662048</id><published>2014-10-22T11:31:00.000+03:00</published><updated>2014-10-22T11:32:21.845+03:00</updated><title type="text">Visual Studio 2013 Update 4 RC now Available</title><content type="html">&lt;div dir="ltr"&gt;&lt;div class="gmail_default" style&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;Visual Studio 2013 Update 4 RC is now available to download. This release has lots of small features and fixes for &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; and web platform, Team Foundation Server, Visual C++, JavaScript Editor, Testing Tools, and some other areas. Specifically for updates to the web development tools checkout this new features announcement on .NET web development and tools blog.&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;The release notes have the complete list of features and fixes included in this release.&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;Read more: &lt;a href="http://www.microsoft.com/en-us/download/details.aspx?id=44545"&gt;MS Download&lt;/a&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;Read more: &lt;a href="http://blogs.msdn.com/b/visualstudio/archive/2014/10/16/visual-studio-2013-update-4-rc-now-available.aspx"&gt;The Visual Studio Blog&lt;/a&gt;&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;  &lt;/div&gt;  </content><link href="http://www.blogger.com/feeds/4428930216417783699/posts/default/6145990394482662048" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/4428930216417783699/posts/default/6145990394482662048" rel="self" type="application/atom+xml"/><link href="http://jasper-net.blogspot.com/2014/10/visual-studio-2013-update-4-rc-now.html" rel="alternate" title="Visual Studio 2013 Update 4 RC now Available" type="text/html"/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author></entry><entry><id>tag:blogger.com,1999:blog-4428930216417783699.post-6728712176999768251</id><published>2014-10-21T18:32:00.001+03:00</published><updated>2014-10-21T18:32:39.671+03:00</updated><title type="text">Батники против эксплойтов</title><content type="html">&lt;div dir="ltr"&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;Я понимаю, что для всех батники выглядят как нечто очень простое и со времен AUTOEXEC.BAT уже практически забытое, в то же время эксплойты, если вы конечно не профессиональный исследователь уязвимостей, выглядят очень сложно и практически неправдоподобно, особенно для некоторых разработчиков. Но! В данном посте я постараюсь перевернуть эти представления и рассказать, что всё как будто наоборот. Батники чуть легче и сильнее по функционалу brainfuck&amp;#39;а, а эксплойты не страшнее сортировки пузырьком на basic&amp;#39;е. &lt;/font&gt;&lt;br&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;div class="gmail_default"&gt;Как я до этого дошел?&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;br&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;Мне тут на глаза попалась коробка с Windows 7 x64 c минимальными системными требованиями в 2 ГБ оперативной памяти! И я тут подумал, неужели во всех этих гигабайтах не найдётся пары килобайт кода, которые могли бы защитить пользователей от такой напасти, как эксплойты и Drive-by? Это бич всех ОС от MS уже лет пять! Должны быть там средства для хоть какой-то защиты? Но как их заюзать, да еще и стандартными средствами? С помощью батников. А как? Чтобы это понять, нужно прочитать эту простыню до конца. 8) &lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;br&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;Теория&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;br&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;В упрощенной теории срабатывания эксплойтов всё выглядит так: «что-то где-то посмотрели, что-то где-то послали, что-то где-то запустилось». В реальной жизни это часто выглядит так: пользователь, гуляя по интернетам, попадает на честно взломанный сайт, где ему вместе с полезной информацией отдают или JavaScript или редирект на JavaScript, который, анализируя USER-AGENT, информацию о плагинах и т.д. выдаёт пользователю эксплойт, который точно у пользователя сработает. После этого на машину пользователя сгружается троянец, запускается, прописывается в системе и начинает делать свои грязные дела. &lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;br&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;Read more: &lt;a href="http://habrahabr.ru/company/kaspersky/blog/137304/"&gt;Habrahabr.ru&lt;/a&gt;&lt;/div&gt;&lt;/font&gt;&lt;/div&gt;  &lt;/div&gt;  </content><link href="http://www.blogger.com/feeds/4428930216417783699/posts/default/6728712176999768251" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/4428930216417783699/posts/default/6728712176999768251" rel="self" type="application/atom+xml"/><link href="http://jasper-net.blogspot.com/2014/10/blog-post.html" rel="alternate" title="Батники против эксплойтов" type="text/html"/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author></entry><entry><id>tag:blogger.com,1999:blog-4428930216417783699.post-3982776551987215266</id><published>2014-06-05T09:13:00.001+03:00</published><updated>2014-06-05T09:13:34.398+03:00</updated><title type="text">Visual Studio "14" CTP</title><content type="html">&lt;div dir="ltr"&gt;&lt;div class="gmail_default"&gt;&lt;div class="gmail_default" style="text-align:center"&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;div&gt;&lt;img src="https://h70tha.dm2302.livefilestore.com/y2p7CSiUm6EafvCyduT8WdYKS9ybwahVSKQzwl7B0TDzBTu4Idt_clftk93UOvxM8qcyLxFiY875NXSp514JIkZ6aPg6dbHvDHmGKd2wpE5pO8/roslynrefac.png?psid=1" width="544" height="220.8237037037037"&gt;&lt;br&gt;    &lt;/div&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;  Today, we are making available a first community technology preview of the next version of Visual Studio, codenamed Visual Studio "14".  This early build is focused on enabling feedback and testing from the Visual Studio community.  Visual Studio &amp;quot;14&amp;quot; will most likely be available sometime in 2015, with a more complete preview release and final naming available later this year.  Given that this is a very early build, please install in a test environment with no earlier versions of Visual Studio installed.&lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;You can read about the new features and known issues in this first Visual Studio "14" CTP, and also download today.&lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;Over the last 3 months, we&amp;#39;ve announced many exciting technologies that will be important parts of Visual Studio &amp;quot;14&amp;quot; - including the &amp;quot;Roslyn&amp;quot; .NET compiler platform, &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; vNext and Apache Cordova tooling.  The Visual Studio &amp;quot;14&amp;quot; CTP 1 includes a few of these tools, as well as many additional improvements across Visual Studio, including an early look at some new C++ 11 support that will be part of Visual Studio &amp;quot;14&amp;quot;.&lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;C# and VB with the .NET Compiler Platform (&amp;quot;Roslyn&amp;quot;)&lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;In Visual Studio &amp;quot;14&amp;quot;, the C# and VB compilers and IDE support are fully built on the .NET Compiler Platform (&amp;quot;Roslyn&amp;quot;).  This open-source compiler as a service now sits behind dozens of developer experiences in Visual Studio &amp;quot;14&amp;quot;, powering build, IntelliSense, refactoring, CodeLens, debugging and many more features developers use every day.  In most places the experiences are unchanged, but there have also been many small improvements across the entire development experience as part of the new compiler platform.&lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;Read more: &lt;/font&gt;&lt;a href="http://blogs.msdn.com/b/somasegar/archive/2014/06/03/first-preview-of-visual-studio-quot-14-quot-available-now.aspx"&gt;Somasegar's blog&lt;/a&gt;&lt;/div&gt;    &lt;div class="gmail_default" style&gt;Read more: &lt;a href="http://www.visualstudio.com/en-us/downloads/visual-studio-14-ctp-vs"&gt;Visual Studio&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;  &lt;/div&gt;  </content><link href="http://www.blogger.com/feeds/4428930216417783699/posts/default/3982776551987215266" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/4428930216417783699/posts/default/3982776551987215266" rel="self" type="application/atom+xml"/><link href="http://jasper-net.blogspot.com/2014/06/visual-studio-14-ctp.html" rel="alternate" title="Visual Studio &quot;14&quot; CTP" type="text/html"/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author></entry><entry><id>tag:blogger.com,1999:blog-4428930216417783699.post-788394242511596375</id><published>2014-05-19T09:46:00.001+03:00</published><updated>2014-05-19T09:46:57.834+03:00</updated><title type="text">#466 – Using a GridSplitter in Conjunction with a SharedSizeGroup</title><content type="html">&lt;div dir="ltr"&gt;&lt;div class="gmail_default" style="font-family:tahoma,sans-serif"&gt;&lt;div style="text-align:center"&gt;&lt;img src="http://2000thingswpf.files.wordpress.com/2012/01/466-001.png" width="361" height="228"&gt;&lt;/div&gt;&lt;br&gt;&lt;/div&gt;    &lt;div class="gmail_default" style="font-family:tahoma,sans-serif"&gt;&lt;br&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;A GridSplitter allows a user to change the size of a row or column by dragging a visual splitter.  A SharedSizeGroup allows two rows or columns to automatically have the same size.  You can combine these concepts, allowing a user to change the size of one column and have another column automatically have the same size.&lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;In the example below, the user can drag either splitter, but when dragging, the width of both left and right columns changes at the same time.&lt;/font&gt;&lt;/div&gt;  &lt;div class="gmail_default" style&gt;  &lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;div class="gmail_default"&gt;&amp;lt;Grid Grid.IsSharedSizeScope=&amp;quot;True&amp;quot;&amp;gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;        &amp;lt;Grid.ColumnDefinitions&amp;gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;        &amp;lt;ColumnDefinition SharedSizeGroup=&amp;quot;A&amp;quot; Width=&amp;quot;Auto&amp;quot;/&amp;gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;        &amp;lt;ColumnDefinition Width=&amp;quot;Auto&amp;quot;/&amp;gt;&lt;/div&gt;    &lt;div class="gmail_default"&gt;        &amp;lt;ColumnDefinition/&amp;gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;        &amp;lt;ColumnDefinition Width=&amp;quot;Auto&amp;quot;/&amp;gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;        &amp;lt;ColumnDefinition SharedSizeGroup=&amp;quot;A&amp;quot; Width=&amp;quot;Auto&amp;quot;/&amp;gt;&lt;/div&gt;    &lt;div class="gmail_default"&gt;    &amp;lt;/Grid.ColumnDefinitions&amp;gt;&lt;/div&gt;&lt;div class="gmail_default"&gt; &lt;/div&gt;&lt;div class="gmail_default"&gt;    &amp;lt;Label Content=&amp;quot;Left&amp;quot; Background=&amp;quot;Azure&amp;quot; Grid.Column=&amp;quot;0&amp;quot;/&amp;gt;&lt;/div&gt;    &lt;div class="gmail_default"&gt;    &amp;lt;Label Content=&amp;quot;Middle&amp;quot; Background=&amp;quot;Lavender&amp;quot; Grid.Column=&amp;quot;2&amp;quot;/&amp;gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;    &amp;lt;Label Content=&amp;quot;Right&amp;quot; Background=&amp;quot;Moccasin&amp;quot; Grid.Column=&amp;quot;4&amp;quot;/&amp;gt;&lt;/div&gt;    &lt;div class="gmail_default"&gt; &lt;/div&gt;&lt;div class="gmail_default"&gt;    &amp;lt;GridSplitter Grid.Column=&amp;quot;1&amp;quot; Width=&amp;quot;8&amp;quot; Background=&amp;quot;DarkSlateBlue&amp;quot;&lt;/div&gt;&lt;div class="gmail_default"&gt;                    HorizontalAlignment=&amp;quot;Center&amp;quot; VerticalAlignment=&amp;quot;Stretch&amp;quot;/&amp;gt;&lt;/div&gt;    &lt;div class="gmail_default"&gt;    &amp;lt;GridSplitter Grid.Column=&amp;quot;3&amp;quot; Width=&amp;quot;8&amp;quot; Background=&amp;quot;DarkSlateBlue&amp;quot;&lt;/div&gt;&lt;div class="gmail_default"&gt;                    HorizontalAlignment=&amp;quot;Center&amp;quot; VerticalAlignment=&amp;quot;Stretch&amp;quot;/&amp;gt;&lt;/div&gt;    &lt;div class="gmail_default"&gt;&amp;lt;/Grid&amp;gt;&lt;/div&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;span style="font-family:tahoma,sans-serif"&gt;Read more: &lt;/span&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;a href="http://wpf.2000things.com/tag/sharedsizegroup/"&gt;2,000 Things You Should Know About WPF&lt;/a&gt;&lt;/font&gt;&lt;br&gt;    &lt;/div&gt;&lt;/div&gt;  &lt;/div&gt;  </content><link href="http://www.blogger.com/feeds/4428930216417783699/posts/default/788394242511596375" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/4428930216417783699/posts/default/788394242511596375" rel="self" type="application/atom+xml"/><link href="http://jasper-net.blogspot.com/2014/05/466-using-gridsplitter-in-conjunction.html" rel="alternate" title="#466 – Using a GridSplitter in Conjunction with a SharedSizeGroup" type="text/html"/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author></entry><entry><id>tag:blogger.com,1999:blog-4428930216417783699.post-8174703299306122251</id><published>2014-05-13T10:36:00.001+03:00</published><updated>2014-05-13T10:36:41.324+03:00</updated><title type="text">#575 – PropertyMetadata vs. FrameworkPropertyMetadata</title><content type="html">&lt;div dir="ltr"&gt;&lt;div class="gmail_default" style&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;     When you implement a custom dependency property and you register the property by calling DependencyProperty.Register, you specify some metadata for the property by passing it an instance of PropertyMetadata.  This can be an instance of the PropertyMetadata class or an instance of one of its subclasses.  The differences are shown below.&lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;PropertyMetadata – Basic metadata relating to dependency properties&lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default" style&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:tahoma,sans-serif"&gt;CoerceValueCallback – coerce the value when being set&lt;/span&gt;&lt;br&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:tahoma,sans-serif"&gt;DefaultValue – a default value for the property&lt;/span&gt;&lt;br&gt;    &lt;/li&gt;&lt;li&gt;&lt;span style="font-family:tahoma,sans-serif"&gt;PropertyChangedCallback – respond to new effective value for the property&lt;/span&gt;&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;    &lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;UIPropertyMetadata – derives from PropertyMetadata and adds:&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:tahoma,sans-serif"&gt;IsAnimationProhibited – disable animations for this property?&lt;/span&gt;&lt;br&gt;    &lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;FrameworkPropertyMetadata – derives from UIPropertyMetadata and adds:&lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default" style&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:tahoma,sans-serif"&gt;AffectsArrange, AffectsMeasure, AffectsParentArrange, AffectsParentMeasure, AffectsRender – Should layout calculations be re-run after property value changes?&lt;/span&gt;&lt;br&gt;    &lt;/li&gt;&lt;li&gt;&lt;span style="font-family:tahoma,sans-serif"&gt;BindsTwoWayByDefault, DefaultUpdateSourceTrigger, IsDataBindingAllowed, IsNotDataBindable – Dictates how property participates in data binding&lt;/span&gt;&lt;br&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:tahoma,sans-serif"&gt;Inherits, OverridesInheritanceBehavior – Does inheritance work for this property?&lt;/span&gt;&lt;br&gt;    &lt;/li&gt;&lt;li&gt;&lt;span style="font-family:tahoma,sans-serif"&gt;Journal – Store this value when journaling?&lt;/span&gt;&lt;br&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:tahoma,sans-serif"&gt;SubPropertiesDoNotAffectRender – Check properties of this object when layout changes?&lt;/span&gt;&lt;br&gt;    &lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;Read more: &lt;a href="http://wpf.2000things.com/tag/frameworkpropertymetadata/"&gt;2,000 Things You Should Know About WPF&lt;/a&gt;&lt;/font&gt;&lt;/div&gt;    &lt;/div&gt;  &lt;/div&gt;  </content><link href="http://www.blogger.com/feeds/4428930216417783699/posts/default/8174703299306122251" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/4428930216417783699/posts/default/8174703299306122251" rel="self" type="application/atom+xml"/><link href="http://jasper-net.blogspot.com/2014/05/575-propertymetadata-vs.html" rel="alternate" title="#575 – PropertyMetadata vs. FrameworkPropertyMetadata" type="text/html"/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author></entry><entry><id>tag:blogger.com,1999:blog-4428930216417783699.post-3068731111812044835</id><published>2014-05-12T10:11:00.000+03:00</published><updated>2014-05-12T10:12:07.296+03:00</updated><title type="text">How to build Mono 3.4.0 / 3.4.1 on Windows</title><content type="html">&lt;div dir="ltr"&gt;&lt;div class="gmail_default" style&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;Introduction&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;    &lt;font face="tahoma, sans-serif"&gt;This article builds on and updates a number of existing articles which attempt to describe the build process for Mono on Windows.&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;    &lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;If you are just looking for Mono 3.4.0 binaries to use, I have provided the resulting binaries from this walk-through here.&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;    &lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;The baseline instructions from the Mono project can be found here.&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;    &lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;In theory these should be enough to get Mono compiled but, as ever in the real world, things are slightly more complex. As a result others have written pieces on how to build Mono, and I have found &amp;quot;Building Mono on Windows: The Final Battle&amp;quot; particularly useful.&lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;That said, these articles are now a few years old and I ran into various issues building Mono which I have attempted to address with the walk-through below,&lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;We are going to look both at building from the current, at the time of writing, Mono release tarball (3.4.0) and then at building the &amp;quot;latest and greatest&amp;quot; directory out of the git repository&lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;The sequence of events is as follows,&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;    &lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;Install pre-compiled Mono&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;Install &amp;amp; configure Cygwin&lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;Retrieve and extract tarball Mono Sources&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;Build and Mono&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;    &lt;font face="tahoma, sans-serif"&gt;Modify Cygwin/Mono to address any build failures&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;Install Mono and modify installation&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;    &lt;font face="tahoma, sans-serif"&gt;Fix-ups/workarounds for Xamarin Studio&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;Retrieve and build git Mono Sources&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;    &lt;font face="tahoma, sans-serif"&gt;This walk-through has been tested on an x64 machine running Windows 8.1.&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;Install pre-compiled Mono binaries&lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;A stable, pre-compiled build of Mono 3.2.3 can be downloaded here. Download and install this.&lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;Check that it runs by opening a Mono command prompt from the start bar and typing&lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;span style="font-family:tahoma,sans-serif"&gt;mono --version &lt;/span&gt;&lt;br&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;    &lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;You should see Mono come up and the 3.2.3 version shown&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;    &lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;span style="font-family:tahoma,sans-serif"&gt;C:\Program Files (x86)\Mono-3.2.3&amp;gt;mono --version&lt;/span&gt;&lt;br&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;Mono JIT compiler version 2.10.9 (tarball)&lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;Copyright (C) 2002-2011 Novell, Inc, Xamarin, Inc and Contributors. www.mono-pro&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;a href="http://ject.com"&gt;ject.com&lt;/a&gt;&lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;        TLS:           normal&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;        SIGSEGV:       normal&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;    &lt;font face="tahoma, sans-serif"&gt;        Notification:  Thread + polling&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;        Architecture:  x86&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;    &lt;font face="tahoma, sans-serif"&gt;        Disabled:      none&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;        Misc:          softdebug&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;        LLVM:          supported, not enabled.&lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;        GC:            Included Boehm (with typed GC and Parallel Mark)&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;C:\Program Files (x86)\Mono-3.2.3&amp;gt; &lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;Read more: &lt;a href="http://www.codeproject.com/Articles/769292/How-to-build-Mono-on-Windows"&gt;Codeproject&lt;/a&gt;&lt;/font&gt;&lt;/div&gt;    &lt;/div&gt;  &lt;/div&gt;  </content><link href="http://www.blogger.com/feeds/4428930216417783699/posts/default/3068731111812044835" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/4428930216417783699/posts/default/3068731111812044835" rel="self" type="application/atom+xml"/><link href="http://jasper-net.blogspot.com/2014/05/how-to-build-mono-340-341-on-windows.html" rel="alternate" title="How to build Mono 3.4.0 / 3.4.1 on Windows" type="text/html"/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author></entry><entry><id>tag:blogger.com,1999:blog-4428930216417783699.post-7301935505121335081</id><published>2014-05-07T18:28:00.001+03:00</published><updated>2014-05-07T18:28:37.251+03:00</updated><title type="text">Visual Studio 2013 Update 2 RC</title><content type="html">&lt;div dir="ltr"&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;This is a release candidate (RC) for Visual Studio 2013 Update 2.&lt;/font&gt;&lt;br&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;    &lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;Read more: &lt;a href="http://www.microsoft.com/en-us/download/details.aspx?id=42307"&gt;MS Downloads&lt;/a&gt;&lt;/font&gt;&lt;/div&gt;  &lt;/div&gt;  </content><link href="http://www.blogger.com/feeds/4428930216417783699/posts/default/7301935505121335081" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/4428930216417783699/posts/default/7301935505121335081" rel="self" type="application/atom+xml"/><link href="http://jasper-net.blogspot.com/2014/05/visual-studio-2013-update-2-rc.html" rel="alternate" title="Visual Studio 2013 Update 2 RC" type="text/html"/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author></entry><entry><id>tag:blogger.com,1999:blog-4428930216417783699.post-3867626691880619545</id><published>2014-05-01T18:06:00.001+03:00</published><updated>2014-05-01T18:06:35.104+03:00</updated><title type="text">Lowering in language design, part one</title><content type="html">&lt;div dir="ltr"&gt;&lt;div class="gmail_default" style&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;Programming language designers and users talk a lot about the "height" of language features; some languages are considered to be very "high level" and some are considered to be very "low level". A "high level" language is generally speaking one which emphasizes the business concerns of the program, and a low-level language is one that emphasizes the mechanisms of the underlying hardware. As two extreme examples, here's a program fragment in my favourite high-level language, Inform7:&lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;Overlying relates one thing to various things. The verb to&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;    &lt;font face="tahoma, sans-serif"&gt;overlie (it overlies, they overlie, it is overlying) implies &lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;the overlying relation. &lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;    &lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;The jacket overlies the shirt. The shoes overlie the socks. &lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;  &lt;font face="tahoma, sans-serif"&gt;The slacks overlie the undershorts. The shirt overlies the&lt;/font&gt;&lt;/div&gt;  &lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;undershirt.&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;Before wearing something when something (called the impediment)&lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;which overlies the noun is worn by the player: try taking off&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;the impediment; if the player is wearing the impediment, stop &lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;the action.&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;This is part of the source code of a game;1 specifically, this is the code that adds a rule to the game that describes what happens when a player attempts to put on a pair of socks while wearing shoes. Note that the function which takes two objects and returns a Boolean indicating whether one overlies the other is not written as a function but rather as a relation associated with a verb, and that the language even allows you to provide a conjugation for a non-standard verb so that you can use it in any natural English form in your program. It is hard to imagine a language getting closer to the business domain.&lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;By contrast, x86 assembler is a very low-level language:&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;    &lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;add ebx, eax&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;neg ebx &lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;add eax, ebx&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;dec ecx&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;    &lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;In one sense we know exactly what this fragment is doing; adding, negating and decrementing the values in registers eax, ebx and ecx. Why? Hard to say. The business domain is nowhere found here; this is all mechanism.&lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;Read more: &lt;a href="http://ericlippert.com/2014/04/28/lowering-in-language-design-part-one/"&gt;Fabulous adventures in coding&lt;/a&gt;&lt;/font&gt;&lt;/div&gt;    &lt;/div&gt;  &lt;/div&gt;  </content><link href="http://www.blogger.com/feeds/4428930216417783699/posts/default/3867626691880619545" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/4428930216417783699/posts/default/3867626691880619545" rel="self" type="application/atom+xml"/><link href="http://jasper-net.blogspot.com/2014/05/lowering-in-language-design-part-one.html" rel="alternate" title="Lowering in language design, part one" type="text/html"/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author></entry><entry><id>tag:blogger.com,1999:blog-4428930216417783699.post-6439996636061655936</id><published>2014-04-23T17:49:00.001+03:00</published><updated>2014-04-23T17:49:54.469+03:00</updated><title type="text">WPF: Inheriting from custom class instead of Window</title><content type="html">&lt;div dir="ltr"&gt;&lt;div class="gmail_default" style&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;In &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt;, we learned that it is often interesting to inherit from another class than from System.Web.UI.Page. This allows to define common methods, such as utilities, etc... which are used by a set of web pages throughout an application.&lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;In WPF, it&amp;#39;s also possible to do the same, and to inherit from a custom class instead of System.Windows.Window, of System.Windows.Controls.Page, or of System.Windows.Controls.UserControl for example.&lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;When you add a Window (or Page, or UserControl...) to a WPF project, the chain of inheritance is as follows:&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;    &lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style="text-align:center"&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;img src="http://www.galasoft-lb.ch/blogs-all/2007030201.png" width="316" height="286"&gt;&lt;br&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;    &lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;If you have a special method &amp;quot;doSomething()&amp;quot; which you want to reuse in every Window in the application, then you can store it in an abstract class GalaSoftLb.Wpf.WindowBase and modify the inheritance as follows:&lt;br&gt;    &lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style="text-align:center"&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;img src="http://www.galasoft-lb.ch/blogs-all/2007030202.png" width="309" height="394"&gt;&lt;br&gt;    &lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;div class="gmail_default"&gt;In the diagrams above, the Window class is the framework&amp;#39;s one, and the class GalaSoftLb.Wpf.WindowBase is abstract.&lt;/div&gt;    &lt;div class="gmail_default"&gt;In order to get the new Windows to derive from this abstract class, not only the C# code must be modified, but also the XAML code. This is a little tricky, because a special syntax must be used. Instead of the usual:&lt;/div&gt;    &lt;div class="gmail_default"&gt;&lt;br&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&amp;lt;Window x:Class=&amp;quot;WindowsApplication1.Window1&amp;quot;&lt;/div&gt;&lt;div class="gmail_default"&gt;  xmlns=&amp;quot;&lt;a href="http://schemas.microsoft.com/winfx/2006/xaml/presentation"&gt;http://schemas.microsoft.com/winfx/2006/xaml/presentation&lt;/a&gt;&amp;quot;&lt;/div&gt;    &lt;div class="gmail_default"&gt;  xmlns:x=&amp;quot;&lt;a href="http://schemas.microsoft.com/winfx/2006/xaml"&gt;http://schemas.microsoft.com/winfx/2006/xaml&lt;/a&gt;&amp;quot;&lt;/div&gt;&lt;div class="gmail_default"&gt;  Title=&amp;quot;WindowsApplication1&amp;quot; Height=&amp;quot;300&amp;quot; Width=&amp;quot;300&amp;quot;&lt;/div&gt;    &lt;div class="gmail_default"&gt;  &amp;gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;  &amp;lt;Grid&amp;gt;        &lt;/div&gt;&lt;div class="gmail_default"&gt;  &amp;lt;/Grid&amp;gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&amp;lt;/Window&amp;gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;br&gt;    &lt;/div&gt;&lt;div class="gmail_default"&gt;We have instead:&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;br&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&amp;lt;&lt;b&gt;src:WindowBase&lt;/b&gt; x:Class=&amp;quot;WindowsApplication1.Window1&amp;quot;&lt;/div&gt;&lt;div class="gmail_default"&gt;      xmlns=&amp;quot;&lt;a href="http://schemas.microsoft.com/winfx/2006/xaml/presentation"&gt;http://schemas.microsoft.com/winfx/2006/xaml/presentation&lt;/a&gt;&amp;quot;&lt;/div&gt;&lt;div class="gmail_default"&gt;  xmlns:x=&amp;quot;&lt;a href="http://schemas.microsoft.com/winfx/2006/xaml"&gt;http://schemas.microsoft.com/winfx/2006/xaml&lt;/a&gt;&amp;quot;&lt;/div&gt;    &lt;div class="gmail_default"&gt; &lt;b&gt; xmlns:src=&amp;quot;clr-namespace:GalaSoftLb.Wpf&amp;quot; &lt;/b&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;  Title=&amp;quot;WindowsApplication1&amp;quot; Height=&amp;quot;300&amp;quot; Width=&amp;quot;300&amp;quot;&lt;/div&gt;&lt;div class="gmail_default"&gt;      &amp;gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;  &amp;lt;Grid&amp;gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;  &amp;lt;/Grid&amp;gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&amp;lt;/src:WindowBase&amp;gt;&lt;/div&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;    &lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;Read more: &lt;a href="http://geekswithblogs.net/lbugnion/archive/2007/03/02/107747.aspx"&gt;Laurent Bugnion (GalaSoft)&lt;/a&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;    &lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;  &lt;/div&gt;  </content><link href="http://www.blogger.com/feeds/4428930216417783699/posts/default/6439996636061655936" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/4428930216417783699/posts/default/6439996636061655936" rel="self" type="application/atom+xml"/><link href="http://jasper-net.blogspot.com/2014/04/wpf-inheriting-from-custom-class.html" rel="alternate" title="WPF: Inheriting from custom class instead of Window" type="text/html"/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author></entry><entry><id>tag:blogger.com,1999:blog-4428930216417783699.post-2859938812807056793</id><published>2014-04-16T18:03:00.000+03:00</published><updated>2014-04-16T18:04:07.165+03:00</updated><title type="text">Dart on Raspberry Pi.</title><content type="html">&lt;div dir="ltr"&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;Building Dart VM for the Raspberry Pi.&lt;/font&gt;&lt;br&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;    &lt;font face="tahoma, sans-serif"&gt;&lt;div class="gmail_default"&gt;Introduction&lt;/div&gt;&lt;div class="gmail_default"&gt;These instructions will let you build and run the Dart standalone VM for a Raspberry Pi device running the Raspbian distribution of Linux. For now, this process will likely only work on a Linux machine.&lt;/div&gt;    &lt;div class="gmail_default"&gt;&lt;br&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;Build&lt;/div&gt;&lt;div class="gmail_default"&gt;First, grab the Dart source as described in PreparingYourMachine and GettingTheSource.&lt;/div&gt;&lt;div class="gmail_default"&gt;    &lt;br&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;Cross-compile&lt;/div&gt;&lt;div class="gmail_default"&gt;This build will require a cross-compiler that you can obtain by cloning this repository from github.&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;br&gt;  &lt;/div&gt;  &lt;div class="gmail_default"&gt;You can specify the cross-compiler to the build.py command using the --toolchain argument, as follows. From your Dart checkout:&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;br&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;    $ ./tools/build.py -m release -a arm \&lt;/div&gt;&lt;div class="gmail_default"&gt;  --toolchain=/path/to/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf \&lt;/div&gt;&lt;div class="gmail_default"&gt;  runtime&lt;/div&gt;    &lt;div class="gmail_default"&gt;You&amp;#39;ll find the build products under out/ReleaseXARM/. You can optionally strip the dart binary to make it smaller:&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;br&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;$ /path/to/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf-strip \&lt;/div&gt;    &lt;div class="gmail_default"&gt;  out/ReleaseXARM/dart&lt;/div&gt;&lt;div class="gmail_default"&gt;Run on Hardware&lt;/div&gt;&lt;div class="gmail_default"&gt;To run Dart programs on the Pi, we&amp;#39;ll need to create a dart-sdk using the host toolchain:&lt;/div&gt;    &lt;div class="gmail_default"&gt;&lt;br&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;$ ./tools/build.py -m release -a ia32 runtime create_sdk&lt;/div&gt;&lt;div class="gmail_default"&gt;Then, we&amp;#39;ll upload this sdk to the device:&lt;/div&gt;&lt;div class="gmail_default"&gt;    &lt;br&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;$ scp -r out/ReleaseIA32/dart-sdk pi@[raspberry pi ip address]:./dart-sdk&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;br&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;Read more: &lt;a href="https://code.google.com/p/dart/wiki/RaspberryPi"&gt;Dart [Google code]&lt;/a&gt;&lt;/div&gt;    &lt;/font&gt;&lt;/div&gt;  &lt;/div&gt;  </content><link href="http://www.blogger.com/feeds/4428930216417783699/posts/default/2859938812807056793" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/4428930216417783699/posts/default/2859938812807056793" rel="self" type="application/atom+xml"/><link href="http://jasper-net.blogspot.com/2014/04/dart-on-raspberry-pi.html" rel="alternate" title="Dart on Raspberry Pi." type="text/html"/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author></entry><entry><id>tag:blogger.com,1999:blog-4428930216417783699.post-8285181878527127076</id><published>2014-04-14T10:00:00.001+03:00</published><updated>2014-04-14T10:00:58.501+03:00</updated><title type="text">#153 – Returning a Subset of Array Elements Matching a Particular Criteria</title><content type="html">&lt;div dir="ltr"&gt;&lt;div class="gmail_default" style&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;   Because System.Array implements the IEnumerable interface and because LINQ extends IEnumerable, you can use the IEnumerable.Where method on arrays to find a subset of elements that match a particular criteria.&lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;   The Where method accepts a delegate to a function that takes a single element of the same type as the array and returns a boolean value, indicating whether a match is found.  Where returns an IEnumerable collection, which can be iterated on to get the elements in the subset.&lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;Here's an example, finding the set of passing scores in a set of scores.&lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default" style&gt;&lt;span style="font-family:tahoma,sans-serif"&gt;&lt;br&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;span style="font-family:tahoma,sans-serif"&gt;int[] scores = { 89, 98, 72, 100, 68 };&lt;/span&gt;&lt;br&gt;    &lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;span style="font-family:tahoma,sans-serif"&gt;// Count number of passing grades&lt;/span&gt;&lt;br&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;int numPassed = scores.Where((Func&amp;lt;int,bool&amp;gt;)IsPassingGrade).Count();&lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;Here's the implementation of IsPassingGrade.&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;    &lt;span style="font-family:tahoma,sans-serif"&gt;&lt;br&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;span style="font-family:tahoma,sans-serif"&gt;static bool IsPassingGrade(int score)&lt;/span&gt;&lt;br&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;    &lt;font face="tahoma, sans-serif"&gt;{&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;    return (score &amp;gt;= 75);&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;}&lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;You can avoid defining a separate function by using a lamba expression.&lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style&gt;&lt;font face="tahoma, sans-serif"&gt;Read more: &lt;a href="http://csharp.2000things.com/tag/ienumerable-where/"&gt;2,000 Things You Should Know About C#&lt;/a&gt;&lt;/font&gt;&lt;/div&gt;    &lt;/div&gt;  &lt;/div&gt;  </content><link href="http://www.blogger.com/feeds/4428930216417783699/posts/default/8285181878527127076" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/4428930216417783699/posts/default/8285181878527127076" rel="self" type="application/atom+xml"/><link href="http://jasper-net.blogspot.com/2014/04/153-returning-subset-of-array-elements.html" rel="alternate" title="#153 – Returning a Subset of Array Elements Matching a Particular Criteria" type="text/html"/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author></entry><entry><id>tag:blogger.com,1999:blog-4428930216417783699.post-2412656393069231642</id><published>2014-04-01T18:19:00.001+03:00</published><updated>2014-04-01T18:19:36.038+03:00</updated><title type="text">Intel(R) Atom™ x86 Image for Android* KitKat 4.4 Installation Instructions - Recommended</title><content type="html">&lt;div dir="ltr"&gt;&lt;div class="gmail_default"&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;Introduction&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;This document will guide you through installing the Intel® Atom™ x86 image for Android* KitKat, which can be used for development on Intel's x86 architecture.&lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;Prerequisites&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;The Android x86 Emulator Image requires the Android SDK to be installed. For instructions on installing and configuring the Android SDK, refer to the Android developer website (&lt;a href="http://developer.android.com/sdk/"&gt;http://developer.android.com/sdk/&lt;/a&gt;).&lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;Optional: The x86 Emulator Image for Android can be accelerated using Intel Hardware Accelerated Execution Manager (HAXM). For more information, refer to the &amp;quot;Optimization&amp;quot; section of this document.&lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;Installation&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;Downloading through Android SDK Manager&lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;Start the Android SDK Manager.&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;Under &amp;quot;Android 4.4 (API 19)&amp;quot;, select &amp;quot;Intel x86 Atom System Image&amp;quot;:&lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default" style="text-align:center"&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;img src="http://www.codeproject.com/KB/android/734115/installrecommendedkitkat1.jpg.png" alt="Inline image 1" width="420" height="333"&gt;&lt;br&gt;    &lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;Read more: &lt;a href="http://www.codeproject.com/Articles/734115/Intel-Atom-x-Image-for-Android-KitKat-Instal"&gt;Codeproject&lt;/a&gt;&lt;/font&gt;&lt;/div&gt;    &lt;/div&gt;  &lt;/div&gt;  </content><link href="http://www.blogger.com/feeds/4428930216417783699/posts/default/2412656393069231642" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/4428930216417783699/posts/default/2412656393069231642" rel="self" type="application/atom+xml"/><link href="http://jasper-net.blogspot.com/2014/04/intelr-atom-x86-image-for-android.html" rel="alternate" title="Intel(R) Atom™ x86 Image for Android* KitKat 4.4 Installation Instructions - Recommended" type="text/html"/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author></entry><entry><id>tag:blogger.com,1999:blog-4428930216417783699.post-7229748117927300089</id><published>2014-04-01T18:18:00.001+03:00</published><updated>2014-04-01T18:18:49.431+03:00</updated><title type="text">Creating your first HTML5 spaceship game for the Android* OS on Intel(R) Architecture</title><content type="html">&lt;div dir="ltr"&gt;&lt;div class="gmail_default"&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;Introduction&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;I&amp;#39;m certain most of us have some insane or not so insane video game plans in mind. The majority of these thoughts are never acted on as many people think game coding is exceptionally hard to do. Indeed that is true to a degree, but it is not as hard as you may think.&lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;If you have a fundamental understanding of HTML, CSS, and JavaScript*, you have all the requisites to start a straightforward project.&lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;Adding a Canvas element to a web page&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;    &lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;One of the most exciting features of HTML5 is the &amp;lt;canvas&amp;gt; element that can be used to draw vector graphics and engender astonishing effects, interactive games, and animations The web defines canvas, as a rectangular area that allows for dynamic, scriptable rendering of 2D shapes and bitmap images. The HTML5 Canvas is perfect for creating great visual results that augment UIs, diagrams, photo albums, charts, graphs, animations, and embedded drawing applications. HTML5 Canvas works with JavaScript libraries and CSS3 enabling you to create interactive web-based games and animations.&lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;The elementary code for using and setting a canvas looks like this:&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;    &lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;span style="font-family:tahoma,sans-serif"&gt;&amp;lt;body onload=&amp;quot;spaceShipGame()&amp;quot;&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;    &amp;lt;h1&amp;gt;&lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;      SpaceShipGame&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;    &amp;lt;/h1&amp;gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;    &amp;lt;canvas id=&amp;quot;spaceCanvas&amp;quot; width=&amp;quot;300&amp;quot; height=&amp;quot;300&amp;quot;&amp;gt;&lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;    &amp;lt;/canvas&amp;gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt; &amp;lt;/body&amp;gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;    &lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;This looks very similar to the &amp;lt;img&amp;gt; element, the difference being that it doesn&amp;#39;t have the src and alt attributes. The &amp;lt;canvas&amp;gt; element has only two characteristics, width and height. If your renderings seem inaccurate, try designating your width and height attributes explicitly in the &amp;lt;canvas&amp;gt; attributes, instead of CSS. The width and height attributes default to 300 and 300, respectively. The id will be acclimated to initialize the canvas using JavaScript, and the text next to the equal to sign will be used as a call back when the mobile browser doesn't support it.&lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;Drawing the background and spaceship for a game using HTML5 canvas and JavaScript&lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;span style="font-family:tahoma,sans-serif"&gt;canvas = document.getElementById(&amp;quot;spaceCanvas&amp;quot;);&lt;/span&gt;&lt;br&gt;&lt;/div&gt;    &lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;ctx = canvas.getContext(&amp;quot;2d&amp;quot;);&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;The variable canvas creates the canvas that we need to draw graphics objects, and ctx holds the rendering context. In this case it is a 2d graphics object.&lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;This context contains the elementary methods for drawing on the canvas such as arc(), lineto(), and fill().&lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;Next we paint the background black, place shiny asteroids on it, and draw the spaceship using the context object.&lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;span style="font-family:tahoma,sans-serif"&gt;// Paint it black&lt;/span&gt;&lt;br&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;          ctx.fillStyle = &amp;quot;black&amp;quot;;&lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;          ctx.rect(0, 0, 300, 300);&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;          ctx.fill();&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;    &lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;         // Draw 100 stars.&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;         for (i = 0; i &amp;lt;= 100; i++) {&lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;         // Get random positions for stars.&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;         var x = Math.floor(Math.random() * 299)&lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;         var y = Math.floor(Math.random() * 299)&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;    &lt;font face="tahoma, sans-serif"&gt;          // Make the stars white&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;          ctx.fillStyle = &amp;quot;white&amp;quot;;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;    &lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;          // Give the spaceship some room.&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;          if (x &amp;lt; 20 || y &amp;lt; 20) ctx.fillStyle = &amp;quot;black&amp;quot;;&lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;          // Draw an individual star.&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;          ctx.beginPath();&lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;          ctx.arc(x, y, 3, 0, Math.PI * 2, true);&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;          ctx.closePath();&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;    &lt;font face="tahoma, sans-serif"&gt;          ctx.fill();&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;        }&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;Read more: &lt;a href="http://www.codeproject.com/Articles/734112/Creating-your-first-HTML-spaceship-game-for-the-A"&gt;Codeproject&lt;/a&gt;&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;  &lt;/div&gt;  </content><link href="http://www.blogger.com/feeds/4428930216417783699/posts/default/7229748117927300089" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/4428930216417783699/posts/default/7229748117927300089" rel="self" type="application/atom+xml"/><link href="http://jasper-net.blogspot.com/2014/04/creating-your-first-html5-spaceship.html" rel="alternate" title="Creating your first HTML5 spaceship game for the Android* OS on Intel(R) Architecture" type="text/html"/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author></entry><entry><id>tag:blogger.com,1999:blog-4428930216417783699.post-8528642647809128484</id><published>2014-04-01T18:17:00.000+03:00</published><updated>2014-04-01T18:18:02.017+03:00</updated><title type="text">Дружим Git с Putty</title><content type="html">&lt;div dir="ltr"&gt;&lt;div class="gmail_default"&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;img src="http://habrastorage.org/getpro/habr/post_images/cbc/f79/6f8/cbcf796f8393c8c61c693b8a8e3cae32.png" alt="Inline image 1" width="420" height="407"&gt;  &lt;img src="http://habrastorage.org/getpro/habr/post_images/5ab/4fd/f57/5ab4fdf57166f086eac79162d057ef33.png" alt="Inline image 2" width="420" height="290"&gt;&lt;br&gt;    &lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;Итак, представим, что у нас девственно чистая система, в которой нет ни Putty, ни msysgit. Приступим к настройке нашего рабочего окружения.&lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;Установка Putty&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;    &lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;Качаем, устанавливаем, генерим и настраиваем ключ c Pagent (инструкция, ?).&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;    &lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;Добавляем ключ на git-сервер&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;Копируем публичный OpenSSH ключ из Putty-ключа&lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;Открываем страницу с SSH ключами и добавляем из буфера наш ключ&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;    &lt;font face="tahoma, sans-serif"&gt;В картинках (на примере GitHub)&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;Создаём и сохраняем в Putty профиль «&lt;a href="mailto:git@github.com"&gt;git@github.com&lt;/a&gt;» и проверяем, что удаётся зайти по ключу – должна открыться и сразу закрыться консоль.&lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;Read more: &lt;a href="http://habrahabr.ru/post/217869/"&gt;Habrahabr.ru&lt;/a&gt;&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;      &lt;/div&gt;  </content><link href="http://www.blogger.com/feeds/4428930216417783699/posts/default/8528642647809128484" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/4428930216417783699/posts/default/8528642647809128484" rel="self" type="application/atom+xml"/><link href="http://jasper-net.blogspot.com/2014/04/git-putty.html" rel="alternate" title="Дружим Git с Putty" type="text/html"/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author></entry><entry><id>tag:blogger.com,1999:blog-4428930216417783699.post-2518777129976231420</id><published>2014-04-01T13:08:00.001+03:00</published><updated>2014-04-01T13:08:36.523+03:00</updated><title type="text">Rhino Mocks 4.0.0 Alpha Released</title><content type="html">&lt;div dir="ltr"&gt;&lt;div class="gmail_default"&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;It has been a little longer than expected but the latest version of Rhino Mocks has been released and is available from NuGet. You can download the package from here:&lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;a href="https://www.nuget.org/packages/RhinoMocks/4.0.0-alpha"&gt;https://www.nuget.org/packages/RhinoMocks/4.0.0-alpha&lt;/a&gt;&lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;This is an "alpha" release since there are more than likely going to be a few things that come up. As a matter of fact, there are two things that I am already thinking about changing.&lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;One is to be a little more explicit with arranging expectations against properties. Right now when you arrange an expectation against a property the intent is inferred. Instead I think it would be better to be explicit by adding ExpectPropertyGet and ExpectPropertySet.&lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;The other is more of an internal modification to help track expectations easier. Currently an expectation is stored in a single data structure which includes the method, arguments, constraints and return values. When a method is intercepted all of the expectations have to be checked to find a match (clearly there are short circuits but… you get the idea). This modification will help account for how many times a method has (or hasn't) be called and increase performance.&lt;/font&gt;&lt;/div&gt;    &lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="gmail_default"&gt;&lt;font face="tahoma, sans-serif"&gt;Read more: &lt;a href="http://meisinger2.wordpress.com/2014/03/31/rhino-mocks-4-0-0-alpha-released/"&gt;Refactoring… Me&lt;/a&gt;&lt;/font&gt;&lt;/div&gt;    &lt;/div&gt;  &lt;/div&gt;  </content><link href="http://www.blogger.com/feeds/4428930216417783699/posts/default/2518777129976231420" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/4428930216417783699/posts/default/2518777129976231420" rel="self" type="application/atom+xml"/><link href="http://jasper-net.blogspot.com/2014/04/rhino-mocks-400-alpha-released.html" rel="alternate" title="Rhino Mocks 4.0.0 Alpha Released" type="text/html"/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author></entry></feed>