<rss xmlns:a10="http://www.w3.org/2005/Atom" version="2.0"><channel xml:base="http://www.benjbauer.com/"><title>Ben.J.Bauer</title><description>Latest blog posts</description><a10:link href="http://www.benjbauer.com/" /><item><guid isPermaLink="true">http://www.benjbauer.com/post/media-streaming--the-beginning</guid><link>http://www.benjbauer.com/post/media-streaming--the-beginning</link><a10:author><a10:name /></a10:author><title>Media Streaming – The Beginning</title><description>&lt;p&gt;The “app gap” is something you hear about constantly with Windows Phone, that I start to wonder if it’s just the easy go-to explaination for why Windows Phone is only holding 2% of the market. There are a few other bigger reasons that I can think of, but I have yet to hit a single app that I’ve “needed” other than your typical mom-and-pop shop app. &lt;/p&gt; &lt;p&gt;That is… until now. &lt;/p&gt; &lt;p&gt;There is not a single, generic, media streaming app in the Windows Phone store for Windows 10 Mobile. Sure, you’ve got &lt;a href="https://www.microsoft.com/en-us/store/apps/plex/9wzdncrfj3q8" target="_blank"&gt;Plex&lt;/a&gt;, but that requires a Plex server and account. There’s also &lt;a href="https://www.microsoft.com/en-us/store/apps/emby/9wzdncrdmktm" target="_blank"&gt;Emby&lt;/a&gt; and &lt;a href="https://www.microsoft.com/en-us/store/apps/subsonic8/9wzdncrdnlcn" target="_blank"&gt;Subsonic8&lt;/a&gt;, but again those require a dedicated Emby or Subsonic server.&lt;/p&gt; &lt;p&gt;I want a generic DNLA media player, and I just can’t seem to find one. &lt;/p&gt; &lt;p&gt;So what does a developer do when he can’t find what he wants? He makes his own. &lt;/p&gt; &lt;p&gt;That’s what I’m going to do – and what’s worse is I know NOTHING about DNLA or media streaming or if it’s even possible. I also haven’t started going down the path of building Universal Windows Apps yet. I’ve only worked on Silverlight/WP8.1 apps. &lt;/p&gt; &lt;p&gt;Since I’m going to be learning how to do this from the ground up, why not blog about it in the mean time? This will be good motivation to keep the blog alive and we’ll hopefully get a decent app out of it in the end. &lt;/p&gt; &lt;p&gt;Whelp… here we go.&lt;/p&gt;</description><a10:updated>2015-12-30T21:23:33Z</a10:updated></item><item><guid isPermaLink="true">http://www.benjbauer.com/post/a-kick-in-the-right-direction</guid><link>http://www.benjbauer.com/post/a-kick-in-the-right-direction</link><a10:author><a10:name /></a10:author><title>A kick in the right direction</title><description>&lt;p&gt;I realize that I haven’t posted in a good long while. This isn’t going to be one of those “I’m coming back!” because I don’t want to make empty promises. &lt;/p&gt; &lt;p&gt;However, Microsoft just open-sourced their Windows Live Writer and a &lt;a href="http://www.hanselman.com/blog/AnnouncingOpenLiveWriterAnOpenSourceForkOfWindowsLiveWriter.aspx" target="_blank"&gt;group of enthusiasts&lt;/a&gt; forked it and create Open Live Writer. I didn’t think it would work with my blog tech since it’s a custom app by &lt;a href="http://madskristensen.net/" target="_blank"&gt;Mads Kristensen&lt;/a&gt; yet here I am writing this post in &lt;a href="http://openlivewriter.org/" target="_blank"&gt;Open Live Writer&lt;/a&gt;. &lt;/p&gt; &lt;p&gt;There are items that they are still working on so I only expect this app to get better. Certainly beats heading out to multiple websites to write blog posts. &lt;/p&gt; &lt;p&gt;&lt;a href="http://openlivewriter.org/" target="_blank"&gt;Check it out&lt;/a&gt; and let me know how well it works with your blogging software.&lt;/p&gt;</description><a10:updated>2015-12-10T17:13:54Z</a10:updated></item><item><guid isPermaLink="true">http://www.benjbauer.com/post/surfacepro-3</guid><link>http://www.benjbauer.com/post/surfacepro-3</link><a10:author><a10:name>benjbauer</a10:name></a10:author><title>Surface Pro 3</title><description>&lt;p&gt;There are already a lot of opinions out in the wild about the new Surface Pro 3, but I just picked one up and thought I'd throw together a quick list of awesome and not-so-awesome things about the device. &lt;/p&gt;&lt;p&gt;This list&amp;nbsp;specifically&amp;nbsp;was generated&amp;nbsp;from using&amp;nbsp;the i5/8gb version of the Surface Pro 3 with a fabulous purple type cover.&lt;/p&gt;&lt;p&gt;Perhaps you're on the fence about buying one and these little tidbits will sway you one way or another in whether you purchase one. More opinions about a device are better than none at all. &lt;/p&gt;&lt;p&gt;Behold! Ben.J.Bauer's list of awesome and no-so-awesome things about the Surface Pro 3. &lt;/p&gt;&lt;p&gt;&lt;strong&gt;The Awesome&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;u&gt;The Screen&lt;/u&gt;&lt;br&gt;Rocking in at 2160x1440 crammed into a 12in screen&amp;nbsp;means&amp;nbsp;easy font readability while browsing the web or reading books through the Kindle app. The colors, by no professional tests at all,&amp;nbsp;are rich and properly fill the visible spectrum (read: my eyes are happy). &amp;nbsp;&lt;br&gt;&lt;br&gt;&lt;/li&gt;&lt;li&gt;&lt;u&gt;The Pen&lt;br&gt;&lt;/u&gt;You wouldn't believe the fluidity of the pen that comes with the base package. It feels natural and real. The tip glides across the face of the Surface but offers enough resistance to feel like a real pen. Two buttons on the side proved quick access to right click and erase functionality and a top button offers quick launch of OneNote. The thing that impresses me most about the pen is its weight. It feels like a solid, well crafted pen, not some crappy stylist.&lt;br&gt;&lt;br&gt;&lt;/li&gt;&lt;li&gt;&lt;u&gt;The Versatility&lt;br&gt;&lt;/u&gt;It's all over the advertisements for the Surface Pro 3, but it needs to be said here: it really is a replacement for your tablet, laptop, and dare I say, desktop as well (pending you don't need a beefy graphics card). Find yourself with a docking station and you only need this one device. I find myself switching back and forth with ease between tablet-friendly apps like Tweetium, Reddit2Go, Kindle, and FL Studio Groove, to desktop friendly apps like Visual Studio 2013 and Adobe Photoshop. &lt;br&gt;&lt;br&gt;It doesn't feel awkward or forced because I let the position of the type keyboard dictate what I'm going to focus on. When it's in front, the Surface is my desktop, when it's wrapped around the back, the Surface is my tablet.&lt;br&gt; &lt;br&gt;&lt;/li&gt;&lt;li&gt;&lt;u&gt;The OneNote&lt;br&gt;&lt;/u&gt;It's such a simple application, but it's also a key part of the experience with this device. I've read other reviews that said OneNote &lt;em&gt;makes&lt;/em&gt; the Surface Pro 3, and I don't blame them. Tap the purple button on the pen and the device wakes up with OneNote ready to go. Scribble notes, draw, collaborate, but the device back to sleep. It almost makes note taking &lt;em&gt;"sexy".&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;The Not-So-Awesome&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;u&gt;The Windows 8&lt;br&gt;&lt;/u&gt;You may be thinking that I'm going to launch into the usual diatribe of how the big start screen is annoying, how powering off the device or rebooting makes no sense, how the "charms bar" is the dumbest design ever, how the touch interaction is awesome but the mouse interaction is horrible. But I'm not. That's not what I hate about Windows 8.&lt;br&gt;&lt;br&gt;What I hate about Windows 8 is that, out of the box, it works&lt;em&gt;-ish&lt;/em&gt;. That's right, it works to the point that it functions but not quite but almost. Did the device boot up? Yes! Did it allow me to login and sync with my account settings? Yes! Did everything work flawlessly? ... No.&lt;br&gt;&lt;br&gt;The drivers that came on the device weren't the latest and then Windows Update hosed the install so I had to manually download and install the drivers from their .infs. The network driver wouldn't recover properly from a sleep state, the pen didn't quite work when it lost its Bluetooth connection, and installing Hyper-V for my local Windows Phone images completely hosed the sleep state which I then uninstalled because having to cold boot a "tablet" is ridiculous. &lt;br&gt;&lt;br&gt;Every time I re-install Windows 8 on any device I'm reminded that I have to be a power user to get it back to the state of "working" as opposed to "work-ish".&lt;br&gt;&lt;br&gt;&lt;/li&gt;&lt;li&gt;&lt;u&gt;The Weight&lt;br&gt;&lt;/u&gt;You shouldn't really expect a tablet/laptop replacement to be the weight of a tablet only, but I'm demanding and I expected it to be a little lighter. It's a very solid build of a machine but it's no spring chicken when it comes to its heft. Compare it to the Apple MacBook Air all you want, but Air doesn't tout itself as a tablet.&lt;br&gt;&lt;br&gt;&lt;/li&gt;&lt;li&gt;&lt;u&gt;The Heat&lt;br&gt;&lt;/u&gt;When you throw an i5 (or any Intel "i" processor) into a small form factor you have to be ready to deal with the heat that it generates. The Surface Pro 3 is no exception. The fan does its best to keep the device cool when you're running graphic intensive applications, but the device can get to the "uh oh, is this ok?" state. It's not going to burn you, but it will make you question how long you should be running that application continuously for.&lt;br&gt;&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;There you have it. My Awesomes and Not-So-Awesomes of the Surface Pro 3. If I had to make a blanket recommendation I would say that if you're in the market for a new tablet &lt;em&gt;or&lt;/em&gt; a new laptop then you should really consider this device. It's a work and play machine that I now take with me everywhere. &lt;/p&gt;&lt;p&gt;Have any other Awesomes or No-So-Awesomes that you think should be in this list? Leave a comment below and let me know.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;</description><a10:updated>2014-09-30T20:08:58Z</a10:updated></item><item><guid isPermaLink="true">http://www.benjbauer.com/post/announcing-wootinator</guid><link>http://www.benjbauer.com/post/announcing-wootinator</link><a10:author><a10:name>benjbauer</a10:name></a10:author><title>Announcing: Wootinator</title><description>&lt;p&gt;I love deal-a-day sites. It gives me a quick break from the day to see some ridiculous deal on a ridiculous item that I don't need yet feel the need to buy. &lt;/p&gt;&lt;p&gt;Probably the biggest and well known deal-a-day site is woot.com. Although, to be fair, since they were bought out by Amazon, they're more of a one-hundred-deals-per-day-but-sometimes-a-week-or-until-sold-out site. &lt;/p&gt;&lt;p&gt;Either way, checking the daily deals is my thing and figured that since woot just released a beta API, I'd take a crack and creating a Windows Phone app to feed my daily deal-a-day fix satisfied. It's a no-frills, no-ads, give-it-to-you-straight kind of app.&lt;/p&gt;&lt;p&gt;Announcing: &lt;a href="http://www.windowsphone.com/s?appid=97a14145-d8d8-4969-b467-19c8277921d5"&gt;&lt;strong&gt;Wootinator &lt;/strong&gt;v1.0.0.0&lt;/a&gt;&lt;/p&gt;&lt;p&gt;This version simply lists the daily deals from each of the main woot sub-sites (home, wine, kids, tools, etc), shows you details on the product, and gives you the option to buy. &lt;/p&gt;&lt;p&gt;It's not fancy by any means, but it works and works for what I want. &lt;/p&gt;&lt;p&gt;In the near future I plan to add support for push notifications for woot-offs and live tile support. &lt;/p&gt;&lt;p&gt;Give it a download, let me know what you think. &lt;/p&gt;</description><a10:updated>2014-08-18T06:22:22Z</a10:updated></item><item><guid isPermaLink="true">http://www.benjbauer.com/post/ihate-tuple</guid><link>http://www.benjbauer.com/post/ihate-tuple</link><a10:author><a10:name>BenJBauer</a10:name></a10:author><title>I Hate Tuple</title><description>&amp;nbsp; &amp;nbsp; &lt;meta charset="utf-8"&gt;&amp;nbsp; &amp;nbsp; &lt;title&gt;&lt;/title&gt;&amp;nbsp; &amp;nbsp; A &lt;a href="https://twitter.com/kuehnd96"&gt;friend &lt;/a&gt;of mine recently &lt;a href="https://twitter.com/kuehnd96/status/494866229513830401"&gt;tweeted &lt;/a&gt;a list of &lt;a href="http://www.developer.com/net/top-10-tips-for-c-programmers.html"&gt;10 "great" C# developer tips&lt;/a&gt;. I put purposely put the word great in quotes because, while there are some useful tips presented in this post, there is one that gets under my skin whenever anyone mentions it:&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;br&gt;&amp;nbsp; &amp;nbsp; The dreaded &lt;i&gt;Tuple&lt;/i&gt;.&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;br&gt;The Tuple was first introduced in .Net 4.0 and was meant to be a quick helper/replacement to creating very light-weight POCO classes (for those of you who hate acronyms, POCO stands for "Plain Old C# Object").&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;br&gt;Say you have a method that needs to return an object with 2 string properties and 1 int property. You would create an object like this:&lt;div style="font-family: Courier New; font-size: .8em;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public class Employee&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public string FirstName { get; set; }&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public string LastName { get; set; }&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public int YearsEmployed { get; set; }&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br&gt;&lt;/div&gt;Then your method signature would look like:&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;div style="font-family: Courier New; font-size: .8em;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public Employee GetEmployee(int employeeId) { ... }&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br&gt;&lt;/div&gt;As an answer to creating all of these little classes everywhere, the Tuple was created. Instead of creating tens to hundreds of POCO classes for your application, you could simply have a method signature like this:&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;div style="font-family: Courier New; font-size: .8em;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public Tuple&amp;lt;string, string, int&amp;gt; GetEmployee(int employeeId) { ... }&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;/div&gt;Awesome, right?!&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;br&gt;NO. NEVER!&lt;br&gt;&amp;nbsp; &amp;nbsp;&lt;br&gt;Here are the top 3 reasons I &lt;b&gt;HATE &lt;/b&gt;Tuples and you should too:&lt;br&gt;&lt;h2&gt;1. It promotes laziness.&lt;/h2&gt;The only reason you are using the Tuple is because you're lazy. You don't want to have to right click -&amp;gt; Add... -&amp;gt; Class... give it a name, type in your property names, reference it in your other projects, properly create an n-tier architecture, or, god forbid, think about IOC or DI (inversion of control and dependency injection for you initialism haters). Explicit coding be damned, you're better then having to do that. Laziness is good, if the output of it is faster or better... but in this case it's not either... leading me to:&lt;br&gt;&lt;h2&gt;2. It is a pain for consumers of your code.&lt;/h2&gt;&lt;div&gt;Pop quiz: Given the following property in this class definition, tell me what the 3 items of the tuple represent.&lt;/div&gt;&lt;div style="font-family: Courier New; font-size: .8em;"&gt;&lt;br&gt;&lt;/div&gt;&lt;div style="font-family: Courier New; font-size: .8em;"&gt;public class Dog&amp;nbsp; &amp;nbsp; &lt;div&gt;{&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; public Tuple&amp;lt;string, string, string&amp;gt; Owner { get; set; }&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I'll give you a minute... go ahead... ... got your answer?&lt;/div&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;div&gt;If you said, "First Name", "Last Name", "Address" - you're wrong. I meant for it to be "Last Name", "First Name", "Eye Color". How could you have possibly known that? If you start using the Dog class with your assumption, but all the code I've written is on my intent, then we have a horrible data conflict. By saving yourself 30 seconds in not creating an explicit class, you have wasted at least 2 minutes of ever other developers' time. Which leads me to my last point...&lt;/div&gt;&lt;h2&gt;3. You have to over document for it to be useful&lt;/h2&gt;&lt;div&gt;Fine, you don't want to listen to me and you still want to use the Tuple. Hopefully you are documenting your code given your horrible choice so that when I, as a consumer of your code, come along and see Tuple&amp;lt;string, string&amp;gt;, I at least see some comments like:&lt;/div&gt;&lt;div style="font-family: Courier New; font-size: .8em;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;div&gt;///&amp;lt;summary&amp;gt;&lt;/div&gt;&lt;div&gt;///An owner where the Tuple has Item1: First Name and Item2: Last Name&lt;/div&gt;&lt;div&gt;///&amp;lt;/summary&amp;gt;&lt;/div&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/div&gt;However, I am a big fan of self-documenting code because it saves me time. There is no reason to add a comment like this:&amp;nbsp; &amp;nbsp; &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 0.8em; line-height: 1.5;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;br&gt;&lt;/div&gt;&lt;div style="font-family: Courier New; font-size: .8em;"&gt;&lt;div&gt;///&amp;lt;summary&amp;gt;&lt;/div&gt;&lt;div&gt;/// The first name&lt;/div&gt;&lt;div&gt;///&amp;lt;/summary&amp;gt;&lt;/div&gt;&lt;div&gt;public string FirstName { get; set; }&lt;/div&gt;&lt;div style="font-family: Courier New; font-size: .8em;"&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;But with your decision to use the Tuple, you now have to document EVERYTHING in order for it to make sense. Have you really saved yourself any time?&amp;nbsp; &amp;nbsp; &lt;h2&gt;Where are Tuples helpful?&lt;/h2&gt;&lt;div&gt;Tuples are really helpful in prototype code. Sometimes you just need a quick way to represent related data in a code base you know you're not going to ship anywhere. Tuple it up wherever you want, just make sure that when it comes to actually writing the code, you get rid of them.&lt;/div&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;div&gt;Tuples are also helpful in locally scoped code. If inside of a single method you want to use a Tuple to load up some data from a file before shoving it into a different return object, by all means. If I can see the local definition in my code window and its assignments, then I'm not lost.&amp;nbsp;&lt;/div&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;div&gt;I'd love to hear what you think on the topic. Feel free to leave a comment here or on my &lt;a href="https://twitter.com/shankrabbit"&gt;twitter account.&lt;/a&gt;&lt;/div&gt;</description><a10:updated>2014-07-31T21:52:51Z</a10:updated></item><item><guid isPermaLink="true">http://www.benjbauer.com/post/double-semicolon-of-speed</guid><link>http://www.benjbauer.com/post/double-semicolon-of-speed</link><a10:author><a10:name>BenJBauer</a10:name></a10:author><title>Double Semicolon of Speed</title><description>I have a long running joke with a friend about how when developing in C# you should add an extra semicolon to the end of the line... because it increases performance.&amp;nbsp;&lt;br&gt;&lt;br&gt;Well, after digging into some IL, it turns out I wasn't wrong.&amp;nbsp;&lt;br&gt;&lt;br&gt;&lt;img src="/posts/files/d1446ccc-da82-4710-ace2-3ccaa2dc635e.png" alt="" /&gt;&lt;br&gt;&lt;span style="font-size:.6em;"&gt;no, i'm not serious&lt;/span&gt;&lt;br&gt;&lt;br&gt;Moral of the story, always make fun of your simple programming mistakes. If you get too caught up in being perfect, being a developer will stop being exciting.&lt;br&gt;</description><a10:updated>2013-12-05T21:28:42Z</a10:updated></item><item><guid isPermaLink="true">http://www.benjbauer.com/post/an-inspired-smash-of-parody</guid><link>http://www.benjbauer.com/post/an-inspired-smash-of-parody</link><a10:author><a10:name>BenJBauer</a10:name></a10:author><title>An inspired smash of parody</title><description>&lt;div style="text-align:center;"&gt;&lt;div&gt;i read you on the wire back in '92&lt;/div&gt;&lt;div&gt;lying awake intently IM-ing with you&lt;/div&gt;&lt;div&gt;and there was no stopping "you got mail" coming through&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;oh-a oh&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;they took the credit for your web log codery&lt;/div&gt;&lt;div&gt;rewritten in the cloud on new technology&lt;/div&gt;&lt;div&gt;and now i understand the problems you can see&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;oh-a oh&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;i met your children&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;oh-a oh&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;what did you tweet them?&lt;/div&gt;&lt;div&gt;social media killed the blogosphere&lt;/div&gt;&lt;div&gt;social media killed the blogosphere&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;hashtags came and broke your heart&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;oh-a-a-a-oh&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;and now we meet in bbs or icq&lt;/div&gt;&lt;div&gt;we read our posts and it all seems so long ago&lt;/div&gt;&lt;div&gt;and you remember the comments used to flow&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;oh-a oh&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;they weren't the first ones&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;oh-a oh&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;they won't be last ones&lt;/div&gt;&lt;div&gt;social media killed the blogosphere&lt;/div&gt;&lt;div&gt;social media killed the blogosphere&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;on my phone and on my pad, we can't delete we are a fad&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;oh-a aho oh oh&lt;/div&gt;&lt;div&gt;oh-a aho oh oh&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;social media killed the blogosphere&lt;/div&gt;&lt;div&gt;social media killed the blogosphere&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;on my phone and on my pad, we can't delete we are a fad&lt;/div&gt;&lt;div&gt;hashtags came and broke your heart&lt;/div&gt;&lt;div&gt;put the blame on &lt;a href="http://investing.money.msn.com/investments/stock-price?symbol=US%3aTWTR&amp;amp;ocid=en-us_bingiaquotebtn"&gt;TWTR&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;div style="text-align:right;font-size:.8em;"&gt;inspired by &lt;a href="http://www.bradygaster.com/"&gt;Brady Gaster&lt;/a&gt; on the &lt;a href="https://twitter.com/bradygaster/status/405726567298383873"&gt;medium that killed the blogosphere&lt;/a&gt;&lt;/div&gt;</description><a10:updated>2013-11-27T18:23:40Z</a10:updated></item><item><guid isPermaLink="true">http://www.benjbauer.com/post/visual-studio-online--cloudsize-to-downsize</guid><link>http://www.benjbauer.com/post/visual-studio-online--cloudsize-to-downsize</link><a10:author><a10:name>BenJBauer</a10:name></a10:author><title>Visual Studio Online - Cloudsize to Downsize</title><description>&lt;p&gt;By now you've hopefully heard about and understood the new features launched today by the Visual Studio team at the Visual Studio 2013 launch event. Among time savers like sync'd environment across machines, live preview scrolling (though, why is your class that big to begin with), and peek into definition, you probably heard the most about Visual Studio Online. &lt;/p&gt;&lt;h3&gt;Productivity = Yay!&lt;/h3&gt;&lt;p&gt;Getting light weight&amp;nbsp;apps into the cloud is not a new trend. Google did it with their Google&amp;nbsp;Apps, Microsoft did it with Office365 and now Visual Studio Online. With this move, Microsoft will be taking development shops to a whole new level, both with convenience and cost savings. &lt;/p&gt;&lt;p&gt;Have you ever found yourself with a production level issue on your site that required you to wake up in the middle of the night? Groggy and sleepy you head for your desktop computer, wait for it to power on, VPN into your corporate network, RDP into your work computer or Azure instance, check on some logs, hop into your Visual Studio, make the changes, and fire off a hot fix. We've been there... and there stinks. &lt;/p&gt;&lt;p&gt;In comes Visual Studio Online and the potential it brings. Let's take that same scenario. You're still groggy and sleep, but this time you lean over and grab your tablet which, if you're like me, is right next to the bed. A few logins later and you've got the problem and the fix all through your browser. &lt;/p&gt;&lt;h3&gt;Downsize = Yay!&lt;/h3&gt;&lt;p&gt;There is one thing about being a developer that I hate - the size of my laptop. It's not even a laptop anymore, it's a portable desktop. I need the power. I'm a spoiled little brat with the amazing dev desktop machines that I have and I expect nothing less than when I sit down at my laptop to write code. &lt;/p&gt;&lt;p&gt;The laptop is huge and heavy, and now that I travel more I hate it! You ever try to crack open a 17" laptop in an airplane? Don't.&lt;/p&gt;&lt;p&gt;One specific tool stood out to me from the VS2013 online announcement. Online IDE. This means that I don't need a powerhouse of a laptop for fast compile times anymore, because I'll just compile it in the cloud. If I want to pick up my tablet and start cracking away at some code, I can! &lt;/p&gt;&lt;p&gt;I went to school to get a bachelors degree in art. Every professor I had encouraged us to keep a sketchbook with us all the time because you'll never know when an idea will hit you, or a burst of creativity will consume you. Is software development really that much different? A cloud based IDE gives us the ability to keep our sketch pads light and always with us.&lt;/p&gt;</description><a10:updated>2013-11-26T22:18:02Z</a10:updated></item><item><guid isPermaLink="true">http://www.benjbauer.com/post/why-testing-matters</guid><link>http://www.benjbauer.com/post/why-testing-matters</link><a10:author><a10:name>benjbauer</a10:name></a10:author><title>why test strategies matter: a lesson from healthcare.gov</title><description>&lt;p&gt;There's a general aura about testing in software development. The tests themselves can be arduous and painful. The people who create them can be stuffy and sometimes pompous. The results that they generate can be demeaning and bring you to your knees. &lt;/p&gt;&lt;p&gt;Very few software engineers would actually take bug fixing over being able to create new and exciting things. There's something to be said for the adrenaline that get's pumping as you are smashing keys to pump out something that no one has seen or done before... that moment when you throw your hands in the air and clench your jaw to hold back the "I'M A GENIUS" yell though the office. It's what we, as engineers, live for. &lt;/p&gt;&lt;p&gt;Testing forces you to put your arms down, tuck your tail between your legs, and, if you haven't bought on to TDD, start plunking out unit tests to prove you're a genius. Why should you have to prove it? It's right there in the code. &lt;/p&gt;&lt;p&gt;Then, if you're ever so unlucky, you've got to hand your code off to the tester who was just good enough to write code to cobble together some automated&amp;nbsp;tests, but not as good as&amp;nbsp;you, the&amp;nbsp;almighty developer. At best you'll get a few bugs about a random race condition and at worse you'll get a handful of "bugs" which is really just the tester being an idiot. &lt;/p&gt;&lt;p&gt;&lt;strong&gt;I bet that's how some of the developers working on healthcare.gov thought.&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;If you've stayed on top of any of the news around the healthcare.gov failed launch, you'll see two reoccurring themes. &lt;/p&gt;&lt;blockquote style="margin-right: 0px;" dir="ltr"&gt;&lt;p&gt;1. A lack of testing&lt;br&gt;2. Last minute design changes&lt;/p&gt;&lt;/blockquote&gt;&lt;p dir="ltr"&gt;There are a lot of moving pieces to this web app with multiple intregration points into a lot of archaic systems. No doubt thin access layers had to be built on top of these archaic systems to even get the site to be able to talk to them at all but then when you start trying to manipulate the data on those systems, you're just asking for trouble. &lt;/p&gt;&lt;p dir="ltr"&gt;Of the two themes mentioned above, I'm a firm believer that last minute design changes should never be a reason for a lack of testing. Whenever you hear "we didn't get enough testing because of these last minute changes" it purely means that your testing strategy was flawed or non-existent&amp;nbsp;to begin with. The private contractors knew what the overall goal of the site was supposed to be. A proper test strategy should have been agreed upon even before development work started. The governing body (HHS and CMS)&amp;nbsp;who was overseeing this gargantuan effort should have&amp;nbsp;been completely aware and comfortable&amp;nbsp;on that strategy as viable and all inclusive to their goals. &lt;/p&gt;&lt;p dir="ltr"&gt;When you have a well thought out test strategy, these "last minute design changes" become mere tweaks to the already implemented test strategy. Yes, there is some effort to tweak the strategy, but it certainly won't be to the level of&amp;nbsp;avoiding testing all together. &lt;/p&gt;&lt;p dir="ltr"&gt;I'm floored by the statements from the contractors&amp;nbsp;that they started testing just days before the rollout and that "the HHS and CMS were responsible for end to end testing"&lt;/p&gt;&lt;p dir="ltr"&gt;What?! Since when in the time of software development EVER has the client been responsible for end to end testing of the application YOU wrote? This is a clear sign that there was no test strategy created by the contractor... which is a clear oversight on their end. Unfortunately, instead of admitting that they botched testing from the start, they resorted to the blame game. &lt;/p&gt;&lt;p&gt;Would it have been different if the end to end test strategy was in place early? I'm convinced that October 1, 2013 would have been a much different launch date if it was. At least it could have handled more than 200 users. &lt;/p&gt;&lt;p&gt;I wrote my first web app as a 12 year old that handled more than 200 users.&lt;/p&gt;</description><a10:updated>2013-11-04T05:22:55Z</a10:updated></item></channel></rss>