<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Jay R. Wren - lazy dawg evarlast &#187; Programming</title>
	<atom:link href="http://jrwren.wrenfam.com/blog/category/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://jrwren.wrenfam.com/blog</link>
	<description>babblings of a computer loving fool</description>
	<lastBuildDate>Wed, 01 Feb 2012 19:08:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Storyboard Custom Segue For Custom PushViewController Animation</title>
		<link>http://jrwren.wrenfam.com/blog/2012/02/01/storyboard-custom-segue-for-custom-pushviewcontroller-animation/</link>
		<comments>http://jrwren.wrenfam.com/blog/2012/02/01/storyboard-custom-segue-for-custom-pushviewcontroller-animation/#comments</comments>
		<pubDate>Wed, 01 Feb 2012 19:08:22 +0000</pubDate>
		<dc:creator>jrwren</dc:creator>
				<category><![CDATA[iOS]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://jrwren.wrenfam.com/blog/?p=1045</guid>
		<description><![CDATA[While there are a lot of google hits when searching for custom pushViewController Animation, I found nothing regarding use of a Custom Segue to make it reusable and I also found a lot of misinformation like &#8220;it can&#8217;t be done &#8230; <a href="http://jrwren.wrenfam.com/blog/2012/02/01/storyboard-custom-segue-for-custom-pushviewcontroller-animation/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>While there are a lot of google hits when searching for custom pushViewController Animation, I found nothing regarding use of a Custom Segue to make it reusable and I also found a lot of misinformation like &#8220;it can&#8217;t be done with the default UINavigationController.&#8221; It can.</p>
<p>From your Button, View, Gesture Recognizer or whatever, instead of dragging from Push, drag from Custom.</p>
<p><a href="http://jrwren.wrenfam.com/blog/wp-content/uploads/2012/01/StoryBoardSegues-2012-01-27_14-25-24.png"><img class="alignnone size-full wp-image-1046" title="StoryBoardSegues-2012-01-27_14-25-24" src="http://jrwren.wrenfam.com/blog/wp-content/uploads/2012/01/StoryBoardSegues-2012-01-27_14-25-24.png" alt="" width="259" height="94" /></a></p>
<p>Then select the Segue that is created and type in a class name the custom Segue.</p>
<p><a href="http://jrwren.wrenfam.com/blog/wp-content/uploads/2012/01/StoryBoardSegue2012-01-27_14-28-43.png"><img class="alignnone size-full wp-image-1047" title="StoryBoardSegue2012-01-27_14-28-43" src="http://jrwren.wrenfam.com/blog/wp-content/uploads/2012/01/StoryBoardSegue2012-01-27_14-28-43.png" alt="" width="259" height="100" /></a></p>
<p>Now we can create the FromTopReplaceSegue class. Use Add File or however you like to create new classes in XCode.</p>
<blockquote><p>//FromTypeReplaceSegue.h</p>
<p>#import &lt;UIKit/UIKit.h&gt;<br />
@interface FromTopReplaceSegue : UIStoryboardSegue<br />
@end</p>
<p>//FromTypeReplaceSegue.m</p>
<p>#import &#8220;FromTopReplaceSegue.h&#8221;<br />
@implementation FromTopReplaceSegue<br />
-(void)perform{<br />
UIViewController *dst = [self destinationViewController];<br />
UIViewController *src = [self sourceViewController];<br />
[dst viewWillAppear:NO];<br />
[dst viewDidAppear:NO];</p>
<p>[src retain];</p>
<p>[src.view addSubview:dst.view];</p>
<p>CGRect original = dst.view.frame;</p>
<p>dst.view.frame = CGRectMake(dst.view.frame.origin.x, 0-dst.view.frame.size.height, dst.view.frame.size.width, dst.view.frame.size.height);</p>
<p>[UIView beginAnimations:nil context:nil];<br />
dst.view.frame = CGRectMake(original.origin.x, original.origin.y, original.size.height, original.size.width);<br />
[UIView commitAnimations];</p>
<p>[self performSelector:@selector(animationDone:) withObject:dst afterDelay:0.2f];<br />
}<br />
- (void)animationDone:(id)vc{<br />
UIViewController *dst = (UIViewController*)vc;<br />
UINavigationController *nav = [[self sourceViewController] navigationController];<br />
[nav popViewControllerAnimated:NO];<br />
[nav pushViewController:dst animated:NO];<br />
[[self sourceViewController] release];<br />
}<br />
@end</p></blockquote>
<p>In this CustomSegue not only are we doing custom animation from Top to Bottom (just like the default push navigation of Right to Left) but instead of pushing, we are replacing the top view controller.</p>
<p>In my current project I have a nearly identical FromButtomReplaceSegue that does the replace but animates from Button. I hope for a library of these with varying animation transitions and Push/Replace variants of each. Then anytime you want to use a different animation you can simply use a Custom Segue instead of writing a bunch of code in ViewDidLoad or wherever. Hurray Storyboard!</p>
<ol>
<li>http://stackoverflow.com/questions/2215672/how-to-change-the-push-and-pop-animations-in-a-navigation-based-app</li>
<li>http://stackoverflow.com/questions/5878732/how-to-create-uinavigationcontroller-animation-top-to-bottom</li>
<li>http://dmunsie.wordpress.com/2009/08/07/custom-animations-between-uiviewcontrollers/</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://jrwren.wrenfam.com/blog/2012/02/01/storyboard-custom-segue-for-custom-pushviewcontroller-animation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Build MVVM Applications in F#&#8230; or C#</title>
		<link>http://jrwren.wrenfam.com/blog/2011/10/11/build-mvvm-applications-in-f-or-c/</link>
		<comments>http://jrwren.wrenfam.com/blog/2011/10/11/build-mvvm-applications-in-f-or-c/#comments</comments>
		<pubDate>Tue, 11 Oct 2011 23:57:58 +0000</pubDate>
		<dc:creator>jrwren</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[F#]]></category>
		<category><![CDATA[INPC]]></category>
		<category><![CDATA[MVVM]]></category>

		<guid isPermaLink="false">http://jrwren.wrenfam.com/blog/2011/10/11/build-mvvm-applications-in-f-or-c/</guid>
		<description><![CDATA[Last month Chris Marinos had an article in MSDN Magazine titled “Build MVVM Applications in F#” I liked it a lot. I jotted down some notes as I read it. My learning processed amused me as I went from WTF… &#8230; <a href="http://jrwren.wrenfam.com/blog/2011/10/11/build-mvvm-applications-in-f-or-c/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Last month Chris Marinos had an article in MSDN Magazine titled “Build MVVM Applications in F#”</p>
<p>I liked it a lot. I jotted down some notes as I read it. My learning processed amused me as I went from WTF… to Hrm… to Oh I see… in a period of about 15 minutes or so. </p>
<p>It went something like this:</p>
<p>&gt; My first thought on skimming the first 3 pages&#8230;   <br />&gt;     <br />&gt; Ok, no offense&#8230; but&#8230; Dude! Really?!?    <br />&gt;     <br />&gt; PM&gt; Install-Package NotifyPropertyWeaver    <br />&gt;     <br />&gt; and my &quot;viewmodel&quot; can be class MovieVieModelCSharp { public string Name    <br />&gt; {get;set;} public string Genre { get;set;} public int Rating {get;set;}    <br />&gt; public MovieVieModelCSharp(Movie movie) { Name=movie.Name;    <br />&gt; Genre=movie.Genre; if(OptionModule.IsSome(movie.Rating)    <br />&gt; Rating=movie.Rating.Value; else Rating=0;} }    <br />&gt;     <br />&gt; But then I realize that isn&#8217;t the point of that part of the article.    <br />&gt;     <br />&gt; Everything looks cool. I&#8217;m wondering if NotifyPropertyWeaver would work    <br />&gt; with the Dummy F# view model in Figure 7.    <br />&gt;     <br />&gt; Then I see in Figure 9 you use the ViewModelBase. That is cool I guess,    <br />&gt; but I think NPW might allow for writing WAY less code.    <br />&gt;     <br />&gt; &#8230;    <br />&gt; OK&#8230; i spent some time exploring these idea and realized I&#8217;m clueless.    <br />&gt; F# has no concept of autoproperites (WART!) and its A LOT of code to    <br />&gt; write a mutable property (warts!). NPW sure isn&#8217;t going to work with    <br />&gt; non-autoproperties (it picks up on C#/VB autoproperty naming convention    <br />&gt; of the compiler IIRC).    <br />&gt;     <br />&gt; So all that said&#8230; I think your article is great.    <br />&gt;     <br />&gt; It challenged me to investigate some things. It shows me that F# really    <br />&gt; sucks for WPF. It makes me really appreciate C# autoproperties and NPW.    <br />&gt; Damn that is some ugly ass code in that last &quot;all F#&quot; section.</p>
<p>&#160;</p>
<p>Now some interesting parts to this is that NotifyPropertyWeaver apparently DOES support weaving PropertyChanged into non-autoproperties. That is pretty cool, but even with that, I think that this is a case where C# is actually more appropriate than F#.</p>
]]></content:encoded>
			<wfw:commentRss>http://jrwren.wrenfam.com/blog/2011/10/11/build-mvvm-applications-in-f-or-c/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Where Windows Is Going</title>
		<link>http://jrwren.wrenfam.com/blog/2011/09/16/where-windows-is-going/</link>
		<comments>http://jrwren.wrenfam.com/blog/2011/09/16/where-windows-is-going/#comments</comments>
		<pubDate>Sat, 17 Sep 2011 02:23:59 +0000</pubDate>
		<dc:creator>jrwren</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[bldwin]]></category>

		<guid isPermaLink="false">http://jrwren.wrenfam.com/blog/2011/09/16/where-windows-is-going/</guid>
		<description><![CDATA[I’ve been stewing for about a day. I did not go to Build Conference. Once I figured out that WinRT is for Metro style apps and ONLY Metro style apps, and I tried to make a call from a .NET &#8230; <a href="http://jrwren.wrenfam.com/blog/2011/09/16/where-windows-is-going/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I’ve been stewing for about a day.</p>
<p>I did not go to Build Conference.</p>
<p>Once I figured out that WinRT is for Metro style apps and ONLY Metro style apps, and I tried to make a call from a .NET 4.5 app into a very simple “GetUserInfo” WinRT API and it threw an Access Denied Exception, I was upset.</p>
<p>Then I realized something.</p>
<p>This is not just a new way to program on Windows.</p>
<p>It is also not THE new way to program on Windows.</p>
<p>Microsoft is segregating their application types on purpose. Metro style apps and WinRT is not about “the next windows”. What was shown with the hybrid classic desktop and the new Metro UI is NOT the future vision that MSFT has for Windows. It is a transition.</p>
<p>Microsoft is posing Metro style and ONLY metro style to be the next development platform of a version of Windows that will not have the classic desktop. Some future version of Windows that won’t have Win32 and won’t have .NET. It will be WinRT on top of a Windows kernel and THAT IS ALL.</p>
<p>This is why that line between WinRT and .NET/Win32 has to stay thick and hard. There will be no hybrid apps. That ruins the vision.</p>
<p><a href="http://jrwren.wrenfam.com/blog/wp-content/uploads/2011/09/win8-platform-and-tools1.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="win8-platform-and-tools" border="0" alt="win8-platform-and-tools" src="http://jrwren.wrenfam.com/blog/wp-content/uploads/2011/09/win8-platform-and-tools_thumb1.jpg" width="604" height="341" /></a> Imagine a thick wall between the light blue and green.</p>
<p>Microsoft knows that it has to participate in a segregated market. They won’t be selling $100 Windows Professional licenses to OEMs of $300 tablet devices. The $10 license of Windows Started Edition is more like it. (I’m guessing at OEM costs.) </p>
<p>The operating system has to run fast on low power hardware. Any applications which run on it have to run on all the better and faster hardware, right on up to $5000 laptops. The Metro style along side classic desktop fits this mold.</p>
<p>I’m a little bit sad that they wouldn’t just come right out and say this. Come right out and say: “Hey! Our phones are going to run Windows 8! There will be 7”, 8”, 9”, 10”, 11”, 12” tablets all running Windows! But its not like any Windows that you’ve ever known!”</p>
<p><a href="http://jrwren.wrenfam.com/blog/wp-content/uploads/2011/09/samsung-galaxy-tab-10-1-side-2-small-2.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="samsung-galaxy-tab-10-1-side-2-small-2" border="0" alt="samsung-galaxy-tab-10-1-side-2-small-2" src="http://jrwren.wrenfam.com/blog/wp-content/uploads/2011/09/samsung-galaxy-tab-10-1-side-2-small-2_thumb.jpg" width="369" height="170" /></a></p>
<p>Talk about shaking things up! What if that were the first 3 sentences of the Build keynote?</p>
<p>I’m less angry about not being able to call WinRT from my .NET apps. But I’m a .NET developer. I’m not a Windows developer. I’m not a Silverlight developer. I’m not a WinRT developer.</p>
<p>I think in what I’m most disappointed is all that awesome stuff that WinRT makes easy, and out in .NET land, talking to a webcam for photos and video is still painful. Transcoding video is still painful. (Did you see how easy it is to transcode with WinRT? That is SWEET!)</p>
]]></content:encoded>
			<wfw:commentRss>http://jrwren.wrenfam.com/blog/2011/09/16/where-windows-is-going/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Build Windows Day 2 From Afar: WTF is WinRT</title>
		<link>http://jrwren.wrenfam.com/blog/2011/09/15/build-windows-day-2-from-afar-wtf-is-winrt/</link>
		<comments>http://jrwren.wrenfam.com/blog/2011/09/15/build-windows-day-2-from-afar-wtf-is-winrt/#comments</comments>
		<pubDate>Thu, 15 Sep 2011 13:11:22 +0000</pubDate>
		<dc:creator>jrwren</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[bldwin]]></category>

		<guid isPermaLink="false">http://jrwren.wrenfam.com/blog/2011/09/15/build-windows-day-2-from-afar-wtf-is-winrt/</guid>
		<description><![CDATA[Watching the developer reaction to Metro style and WinRT has been both depressing and comical. I suppose its like watching anyone else learn something from nothing. We can get it very wrong at first. It is part of our learning &#8230; <a href="http://jrwren.wrenfam.com/blog/2011/09/15/build-windows-day-2-from-afar-wtf-is-winrt/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Watching the developer reaction to Metro style and WinRT has been both depressing and comical. I suppose its like watching anyone else learn something from nothing. We can get it very wrong at first. It is part of our learning process.</p>
<p>I know I’ve not figured what the existence of WinRT means for .NET or what I can and cannot do between WinRT and.NET4.5. I’m also not sure what the difference is between Metro style and WinRT. It sure seems like there are some cool non-UI APIs in WinRT that I might want to use from .NET. I sure hope that I can.</p>
<p>At first glance it feels like Metro style apps aren’t .NET. At least not really. It feels like Metro style apps run in a different CLR. They feel like Silverlight on the desktop since they have no direct access to file system and the types available for use are limited.</p>
<p>I’ve read that it is not a different CLR. I’ve read that it is .NET but that the verifier and other tools in the chain of building a Metro style app enforce the restrictions. I’ll have to wait and see how the pieces fit together.</p>
<p>Missing the APIs can be a challenge: <a title="http://winmd.tumblr.com/post/10211942442/missing-net-apis" href="http://winmd.tumblr.com/post/10211942442/missing-net-apis">http://winmd.tumblr.com/post/10211942442/missing-net-apis</a></p>
<p>Looks like I can do the above when I say use some WinRT from .NET4.5. Cool, because those file pickers sure are pretty. <a title="http://ermau.com/using-winrt-from-net/" href="http://ermau.com/using-winrt-from-net/">http://ermau.com/using-winrt-from-net/</a></p>
<p>Doug Seven has an excellent post detailing what is being released and how it fits: <a title="http://dougseven.com/2011/09/14/i-know-what-youre-thinking-and-youre-wrong/" href="http://dougseven.com/2011/09/14/i-know-what-youre-thinking-and-youre-wrong/">http://dougseven.com/2011/09/14/i-know-what-youre-thinking-and-youre-wrong/</a></p>
<p>Take a look at this slide from the keynote:</p>
<p><a href="http://jrwren.wrenfam.com/blog/wp-content/uploads/2011/09/win8-platform-and-tools.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="win8-platform-and-tools" border="0" alt="win8-platform-and-tools" src="http://jrwren.wrenfam.com/blog/wp-content/uploads/2011/09/win8-platform-and-tools_thumb.jpg" width="604" height="341" /></a></p>
<p>I’d like to speculate about a couple things related to this picture.</p>
<ol>
<li>This is not in the scale of overall importance to all developers. It is in the scale of what is new.</li>
<li>All of the things in blue are still there and still supported.</li>
</ol>
<p>Consider an alternative pitch for Metro style apps. Metro style apps, like all apps, are all launched from the new “Start Screen”. The start screen replaces the start menu. Metro style apps keep the look and feel of the start screen. It is as if you are never leaving the start screen. Metro style apps are apps that you program into the start screen. Imagine being able to program apps into the start menu. It sounds crazy. Now that your start menu is full screen and interactive, those metro tiles (they have a different name) are programmable by you. I can think of another little square in windows that is programmable: Sidebar Widgets. When was the last time you wrote a sidebar widget? (Mike Ward, you are the only one I know.)</p>
<p>Considered from the point of view, very few of us Line of Business app developers will be writing Metro style apps. They are not meant to replace all desktop apps. You will not see Office apps like Word, Excel or Powerpoint built as Metro style apps. They will likely get some theming that is Metro influenced, but they will still run on the traditional Windows desktop and not in the Start Screen. That said, there might be augmentations in the Metro style apps. After all, Windows on a tablet is far more usable with Office. So I think you will see stripped down, touch optimized, Metro versions of Word, Excel and Powerpoint. The use case for these will be “when you aren’t at your desktop or laptop&quot;. </p>
<p>Believe it or not, there was actually announcements around Azure and ASP.NET yesterday. You’d never know it given all the focus on WinRT. I’m super excited about the new async support for controller actions in MVC4. I also think Azure’s replication story around tables and blobs is pretty sweet now.</p>
<p>So much more to come. Its an exciting time be a developer. Just try to remember that ships often look like they are sinking when you see them far off the horizon <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://jrwren.wrenfam.com/blog/wp-content/uploads/2011/09/wlEmoticon-smile.png" /></p>
]]></content:encoded>
			<wfw:commentRss>http://jrwren.wrenfam.com/blog/2011/09/15/build-windows-day-2-from-afar-wtf-is-winrt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Thoughts after the Build Windows keynote: This changes nothing</title>
		<link>http://jrwren.wrenfam.com/blog/2011/09/14/thoughts-after-the-build-windows-keynote-this-changes-nothing/</link>
		<comments>http://jrwren.wrenfam.com/blog/2011/09/14/thoughts-after-the-build-windows-keynote-this-changes-nothing/#comments</comments>
		<pubDate>Wed, 14 Sep 2011 12:40:16 +0000</pubDate>
		<dc:creator>jrwren</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[bldwin]]></category>

		<guid isPermaLink="false">http://jrwren.wrenfam.com/blog/2011/09/14/thoughts-after-the-build-windows-keynote-this-changes-nothing/</guid>
		<description><![CDATA[Nothing has changed, and this is a good thing. Here is what I took away from yesterdays keynote: Everything I’m doing today with Windows desktop apps will work on Windows 8. No surprise there. If I want to write these &#8230; <a href="http://jrwren.wrenfam.com/blog/2011/09/14/thoughts-after-the-build-windows-keynote-this-changes-nothing/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Nothing has changed, and this is a good thing.</p>
<p>Here is what I took away from yesterdays keynote:</p>
<ul>
<li>Everything I’m doing today with Windows desktop apps will work on Windows 8. No surprise there.</li>
<li>If I want to write these new WinRT apps I’ll have to leave Winforms or WPF behind and use what looks like some kind of desktop Silverlight UI control library which has been enhanced with some more controls. (The GridView was shown in the keynote.)</li>
<li>There is nothing else to say about the developer story. Everything else shown in the keynote was about consumer experience.</li>
</ul>
<p>Watching my own twitter feed was rather comical. Everyone seemed to be hearing exactly what they wanted to hear. Sometimes it was the opposite of what I thought I just heard.</p>
<p>There are still lots of unanswered questions, but I’m sure that in the next few days these will all be answered via sessions and blog posts containing the content of the sessions. I’m surprised people aren’t more patient. I’m actually seeing a bit of FUD email and tweets asking questions that should be answered by the end of the week. Be patient.</p>
]]></content:encoded>
			<wfw:commentRss>http://jrwren.wrenfam.com/blog/2011/09/14/thoughts-after-the-build-windows-keynote-this-changes-nothing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Writing Software is not Comparable to Using a Hammer</title>
		<link>http://jrwren.wrenfam.com/blog/2011/08/24/writing-software-is-not-comparable-to-using-a-hammer/</link>
		<comments>http://jrwren.wrenfam.com/blog/2011/08/24/writing-software-is-not-comparable-to-using-a-hammer/#comments</comments>
		<pubDate>Wed, 24 Aug 2011 15:43:35 +0000</pubDate>
		<dc:creator>jrwren</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://jrwren.wrenfam.com/blog/2011/08/24/writing-software-is-not-comparable-to-using-a-hammer/</guid>
		<description><![CDATA[I’m going to rant. Take a look at the first two paragraphs and bullet list here: http://www.peteonsoftware.com/index.php/2011/08/23/programming-language-skills/ Which part of programming is as simple as using a hammer, a manual saw, a table saw, a router, a clamp? I’d argue &#8230; <a href="http://jrwren.wrenfam.com/blog/2011/08/24/writing-software-is-not-comparable-to-using-a-hammer/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I’m going to rant.</p>
<p>Take a look at the first two paragraphs and bullet list here: <a title="http://www.peteonsoftware.com/index.php/2011/08/23/programming-language-skills/" href="http://www.peteonsoftware.com/index.php/2011/08/23/programming-language-skills/">http://www.peteonsoftware.com/index.php/2011/08/23/programming-language-skills/</a></p>
<p>Which part of programming is as simple as using a hammer, a manual saw, a table saw, a router, a clamp?</p>
<p>I’d argue that these are fundamentals. If you want to compare, compare them to programmer fundamentals.</p>
<ul>
<li>using the if statement – 20 years experience</li>
<li>using the for statement – 20 years experience</li>
<li>using recursion – 20 years experience</li>
<li>writing functions – 20 years experience</li>
<li>using variable assignment – 20 years experience</li>
<li>using math operators – 20 years experience</li>
<li>doing string manipulation – 20 years experience</li>
</ul>
<p>Just as the <u>Programming Language “Skiills”</u> post says, you never really need to put this on your resume.</p>
<p>You can have many years of carpentry experience and just as in programming, maybe you have repeated the same one year many times, or maybe you have done something new every year.</p>
<p>A quick search for Cabinet Maker at monster.com shows a job posting: <a title="http://jobview.monster.com/Cabinet-Maker-Job-Rome-GA-101712507.aspx" href="http://jobview.monster.com/Cabinet-Maker-Job-Rome-GA-101712507.aspx">http://jobview.monster.com/Cabinet-Maker-Job-Rome-GA-101712507.aspx</a></p>
<p>Notice how the requirements are nothing like “we want 20 years experience using a hammer&#8217;” ?</p>
<p>Its because metaphor does not work.</p>
<p>Can we as programmers please stop using this metaphor?</p>
]]></content:encoded>
			<wfw:commentRss>http://jrwren.wrenfam.com/blog/2011/08/24/writing-software-is-not-comparable-to-using-a-hammer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Are Access Modifiers Antiquated?</title>
		<link>http://jrwren.wrenfam.com/blog/2011/07/12/are-access-modifiers-antiquated/</link>
		<comments>http://jrwren.wrenfam.com/blog/2011/07/12/are-access-modifiers-antiquated/#comments</comments>
		<pubDate>Wed, 13 Jul 2011 02:14:50 +0000</pubDate>
		<dc:creator>jrwren</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://jrwren.wrenfam.com/blog/2011/07/12/are-access-modifiers-antiquated/</guid>
		<description><![CDATA[I just wrote a rather lengthy reply to a Programmers StackExchange question which I’d summarize as “why are the types and or methods I want to extend often sealed in common Java and .NET frameworks and libraries?” Its actually titled &#8230; <a href="http://jrwren.wrenfam.com/blog/2011/07/12/are-access-modifiers-antiquated/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p align="left">I just wrote a rather lengthy reply to a Programmers StackExchange question which I’d summarize as “why are the types and or methods I want to extend often sealed in common Java and .NET frameworks and libraries?” Its actually titled <a href="http://programmers.stackexchange.com/questions/92380/why-shouldnt-classes-be-designed-to-be-open/92457#92457">“Why shouldn’t classes be designed to be ‘open’?&#8217;”</a></p>
<p>My reply is here:</p>
<p>Because they don&#8217;t know any better.</p>
<p>The original authors are probably clinging to a misunderstanding of SOLID principles which originated in a confused and complicated C++ world.</p>
<p>I hope you will notice that the ruby, python, and perl worlds don&#8217;t have the problems that the answers here claim to be the reason for sealing. Note that its orthogonal to dynamic typing. Access modifiers are easy to work in most (all?) languages. C++ fields can be mucked with by casting to some other type (C++ is more weak). Java and C# can use reflection. Access modifiers make things just difficult enough to prevent you from doing it unless you REALLY want to.</p>
<p>Sealing classes and marking any members private explicitly violates the principle that simple things should be simple and hard things should be possible. Suddenly things that should be simple, aren&#8217;t.</p>
<p>I&#8217;d encourage you to try to understand the viewpoint of the original authors. Much of it is from an academic idea of encapsulation that has never demonstrated absolute success in the real world. I&#8217;ve never seen a framework or library where some developer somewhere didn&#8217;t wish it worked slightly differently and didn&#8217;t have good reason to change it. There are two possibilities that may have plagued the original software developers which sealed and made members private. </p>
<p> 1. Arrogance &#8211; they really did believe they were open for extension and closed for modification   <br /> 2. Complacence &#8211; they knew there might be other use cases but decided not to write for those use cases</p>
<p>I think in the corporate framework world, #2 is probably the case. Those C++, Java and .NET frameworks have to be &quot;done&quot; and they have to follow certain guidelines. Those guidelines usually mean sealed types unless the type was explicitly designed as part of a type hierarchy and private members for many things which might be useful for others use.. but since they don&#8217;t directly relate to that class, they aren&#8217;t exposed. Extracting a new type would be too expensive to support, document, etc&#8230;</p>
<p>The entire idea behind access modifiers is that programmers should be protected from themselves. &quot;C programming is bad because it lets you shoot yourself in the foot.&quot; It is not a philosophy that I agree with as a programmer.</p>
<p>I much prefer python&#8217;s name mangling approach. You can easily (much easier than reflection) replace privates if you need. A great write up on it is available here: <a href="http://bytebaker.com/2009/03/31/python-properties-vs-java-access-modifiers/">http://bytebaker.com/2009/03/31/python-properties-vs-java-access-modifiers/</a></p>
<p>Ruby&#8217;s private modifier is actually more like protected in C# and doesn&#8217;t have a private as C# modifier. Protected is a little different. There is great explanation here: <a href="http://www.ruby-lang.org/en/documentation/ruby-from-other-languages/">http://www.ruby-lang.org/en/documentation/ruby-from-other-languages/</a></p>
<p>Remember, your static language doesn&#8217;t have to conform to the antiquated styles of the code written in that language past.</p>
]]></content:encoded>
			<wfw:commentRss>http://jrwren.wrenfam.com/blog/2011/07/12/are-access-modifiers-antiquated/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Nuget could be more usable outside of visual studio</title>
		<link>http://jrwren.wrenfam.com/blog/2011/06/01/nuget-could-be-more-usable-outside-of-visual-studio/</link>
		<comments>http://jrwren.wrenfam.com/blog/2011/06/01/nuget-could-be-more-usable-outside-of-visual-studio/#comments</comments>
		<pubDate>Wed, 01 Jun 2011 16:53:07 +0000</pubDate>
		<dc:creator>jrwren</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[nuget]]></category>
		<category><![CDATA[visual studio]]></category>

		<guid isPermaLink="false">http://jrwren.wrenfam.com/blog/2011/06/01/nuget-could-be-more-usable-outside-of-visual-studio/</guid>
		<description><![CDATA[This is a reply to http://blog.davidebbo.com/2011/05/thoughts-on-installing-and-updating.html &#160; I think you are wrong. Everything in this post points out that you were wrong to base nuget on DTE. The points here do explain &#34;why this isn&#8217;t supported today&#34; but it sounds &#8230; <a href="http://jrwren.wrenfam.com/blog/2011/06/01/nuget-could-be-more-usable-outside-of-visual-studio/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>This is a reply to <a href="http://blog.davidebbo.com/2011/05/thoughts-on-installing-and-updating.html">http://blog.davidebbo.com/2011/05/thoughts-on-installing-and-updating.html</a></p>
<p>&#160;</p>
<p>I think you are wrong.</p>
<p>Everything in this post points out that you were wrong to base nuget on DTE.</p>
<p>The points here do explain &quot;why this isn&#8217;t supported today&quot; but it sounds like they are defending the lack of features as a good thing. It is not a good thing.</p>
<p>I sympathize with the lack of a strong foundation upon which to build. (limits of DTE) However, the idea of updating the csproj outside of visual studio point 1-3 and 7 in your post, is a sound idea.</p>
<p>The fact that #7 allows arbitrary code execution is something you will never overcome. As a packager might also automate something which is prevented by a GPO in a corporate environment, or utilize a COM object that doesn&#8217;t exist. You cannot solve all problems.   </p>
]]></content:encoded>
			<wfw:commentRss>http://jrwren.wrenfam.com/blog/2011/06/01/nuget-could-be-more-usable-outside-of-visual-studio/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XAML Comments in Attributes.</title>
		<link>http://jrwren.wrenfam.com/blog/2011/03/31/xaml-comments-in-attributes/</link>
		<comments>http://jrwren.wrenfam.com/blog/2011/03/31/xaml-comments-in-attributes/#comments</comments>
		<pubDate>Thu, 31 Mar 2011 18:53:55 +0000</pubDate>
		<dc:creator>jrwren</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[WPF]]></category>
		<category><![CDATA[XAML]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://jrwren.wrenfam.com/blog/2011/03/31/xaml-comments-in-attributes/</guid>
		<description><![CDATA[Sometimes I wish that XML supported comments in attributes instead of just &#60;!—style. Almost always this is a XAML file that I wish had this. Today I realized just how silly I was being. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"  xmlns:d="http://schemas.microsoft.com/expression/blend/2008"  mc:Ignorable="d" And now I &#8230; <a href="http://jrwren.wrenfam.com/blog/2011/03/31/xaml-comments-in-attributes/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Sometimes I wish that XML supported comments in attributes instead of just &lt;!—style.</p>
<p>Almost always this is a XAML file that I wish had this.</p>
<p>Today I realized just how silly I was being.</p>
<p><code>xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"  xmlns:d="http://schemas.microsoft.com/expression/blend/2008"  mc:Ignorable="d" </code></p>
<p>And now I can just d:Anything=”any comment”.</p>
<p>Sure, I can’t nest my quotes there, but this is good enough for a lot of things.</p>
<p>&lt;Grid d:Purpose=”this is the grid that contains the other grid that contains the things”&gt;…</p>
]]></content:encoded>
			<wfw:commentRss>http://jrwren.wrenfam.com/blog/2011/03/31/xaml-comments-in-attributes/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>CodeRush test runner for NUnit25 without NUnit installed.</title>
		<link>http://jrwren.wrenfam.com/blog/2011/03/31/coderush-test-runner-for-nunit25-without-nunit-installed/</link>
		<comments>http://jrwren.wrenfam.com/blog/2011/03/31/coderush-test-runner-for-nunit25-without-nunit-installed/#comments</comments>
		<pubDate>Thu, 31 Mar 2011 17:43:33 +0000</pubDate>
		<dc:creator>jrwren</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[CodeRush]]></category>
		<category><![CDATA[NUnit]]></category>

		<guid isPermaLink="false">http://jrwren.wrenfam.com/blog/2011/03/31/coderush-test-runner-for-nunit25-without-nunit-installed/</guid>
		<description><![CDATA[What path is the Unit Testing\Test Runner options page expecting? I have NUnit 2.5.9 downloaded from zip file, not installed from MSI and I try these paths and none of them work. C:\Users\jrwren\Downloads\NUnit-2.5.9.10348 C:\Users\jrwren\Downloads\NUnit-2.5.9.10348\bin C:\Users\jrwren\Downloads\NUnit-2.5.9.10348\bin\net-2.0 C:\Users\jrwren\Downloads\NUnit-2.5.9.10348\bin\net-2.0\framework &#160; I get an &#8230; <a href="http://jrwren.wrenfam.com/blog/2011/03/31/coderush-test-runner-for-nunit25-without-nunit-installed/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>What path is the Unit Testing\Test Runner options page expecting?   <br />I have NUnit 2.5.9 downloaded from zip file, not installed from MSI and I try these paths and none of them work.    <br />C:\Users\jrwren\Downloads\NUnit-2.5.9.10348    <br />C:\Users\jrwren\Downloads\NUnit-2.5.9.10348\bin    <br />C:\Users\jrwren\Downloads\NUnit-2.5.9.10348\bin\net-2.0    <br />C:\Users\jrwren\Downloads\NUnit-2.5.9.10348\bin\net-2.0\framework</p>
<p>&#160;</p>
<p>I get an error that says    <br />&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;    <br />Error    <br />&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;    <br />Test Provider &#8216;NUnit25&#8242; can&#8217;t find required assemblies in this path    <br />&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;    <br />OK&#160;&#160; <br />&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;    <br />I finally tried C:\Users\jrwren\Downloads\NUnit-2.5.9.10348\bin\net-2.0\lib and it worked.</p>
<p>I didn’t see this documented anywhere. It is now. (here)</p>
]]></content:encoded>
			<wfw:commentRss>http://jrwren.wrenfam.com/blog/2011/03/31/coderush-test-runner-for-nunit25-without-nunit-installed/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

