Wednesday, October 24, 2012

iPad Mini thoughts

Yesterday, Apple unveiled the long rumored and hyped iPad Mini to much fanfare and some criticism. I am not an Apple fanboy or hater. Neither am I an Android fanboy or hater. I use and like both platforms and here are my thoughts.

I love my iPhone. I have used a 3GS for over 2 years and recently upgraded to the 4S when the iPhone 5 was released. It is easily the most capable and stable phone I've ever had. But I also recently purchased a Samsung Galaxy Tab 2 7" tablet and really like that device as well. It's the perfect size for me to bring along because it fits into the back pocket of my jeans and also in my coat pockets without getting in the way. While I can pretty much do the the same things on both devices, having a larger screen that is still comfortable to hold and use makes things like watching Netflix movies or playing Angry Birds more enjoyable.

My wife has a work provided iPad 1 that we have been using for over a year. While the bigger display and longer battery life are nice to have, it's simply too big size wise to casually carry around everywhere.

While the iPad mini will fill the gap the Apple had in the tablet market (I believe the 7" tablet is the fastest rising/selling form factor), I agree with the analysts and think they over priced it by about $80. Had they priced it at $249 or had better hardware than basically an outdated iPad 2, I think it would have made the decision to get an Apple tablet versus an Android tablet easier; especially for people already entrenched in the Apple ecosystem. That would have certainly been the case for me. Almost everything purchased for an iPhone could be re-downloaded and used on the tablet without having to buy new versions as I currently have to do for my Android tablet.

I'm sure they will sell a lot of the iPad mini's, especially to people who already have an iPhone and have so far resisted the (fanboy) urge to buy an iPad. I just won't be one of them.

I am, however, impressed by the newly designed iMac though! If only they had made the screen touch-capable and allowed you to run iOS applications on it... now that would have been really interesting and made for a great 'one more thing' moment!

Wednesday, October 10, 2012

New Source Code Font

As a developer show spends an aweful lot of time looking at and reading text that is not proper English (programming terms, variable names, etc.) I have tried many different fonts over the years to make reading code easier. For the past few years my favorite has been Consolas with attempts at using Droid Mono, Courier, Arial, etc.

A few weeks ago, Adobe release a new series of fonts called Source Code Pro that has very quickly taken over as my choice font for all of my text/code editors. It has very good design, spacing, letter representation, and takes into account often confused characters (like the number one and a lower-case 'l', zero and upper-case 'O', etc.). These differences have quickly made things in my editor look a lot nicer.

Do yourself a favor and download the fonts and give them a try for a day or so. I think you'll like it... a lot!

More details here:  http://blogs.adobe.com/typblography/2012/09/source-code-pro.html

Tuesday, October 09, 2012

TypeScript

So, it's been a little while since Microsoft release a preview of their new language... TypeScript.

My first reaction was "Aren't there already a bunch of replacements for JavaScript (Dart, CoffeeScript, Kotlin, etc.) that just compile to JavaScript anyway? Why would Microsoft create yet another variant?" After looking at it a little deeper, it became clear that it isn't a replacement for JavaScript (vanilla JS is valid TypeScript), but an enhancement on top of the existing language to support static type checking at development time, (arguably) better syntax for creating closures/'classes', etc., while producing ECMAScript 5 compliant output that can be used in any browser/host/OS combination already in existence today (no plugins required).

After reading more, I found an article that sums up my thoughts nicely: Thoughts on TypeScript

It'll be interesting to see how this progresses. If nothing else, perhaps it will spur the adoption of the ECMAScript 6 proposals into the full spec sooner rather than later!

Wednesday, May 09, 2012

Visual Studio 2011 RC Changes

Looks like Microsoft got an awful lot of feedback regarding the UI changes made to the Beta version of Visual Studio 2011... and I'm guessing that most of it was not that positive.

I'm not talking about features in Visual Studio 2011, those changes seem to have been universally accepted (either as 'It's about time!' or 'Wow, that will help alot!'). I'm talking about the changes made to the User Interface and the strict following of the Metro Style Guildelines. The blogging world was mostly negative about the 'dulling' down (lack of color/contrast), the use of all caps for titles to all sections, and the extreme simplicity of the icons (coupled with the lack of color/contrast). I myself found it a little tough at times to navigate around and be sure I was using the right icon (most use keyboard shortcuts anyway) or selecting a class versus some other file type.

Looks like Microsoft really took this feedback to heart and has made several UI updates for the Release Candidate that (for me) seems to have addressed most of these concerns. I will have to give it a spin once I have some more spare time, but my first reaction to the screenshots was positive. Color is back, but only where it helped bring clarity and not color everywhere (which really is distracting).

More details about the changes here:  http://blogs.msdn.com/b/visualstudio/archive/2012/05/08/visual-studio-11-user-interface-updates-coming-in-rc.aspx

Monday, April 23, 2012

Changes to Microsoft SkyDrive

As part of the SkyDrive integration with Windows 8, Microsoft is making changes to how SkyDrive works. Most of the changes are around making it work more seamlessly (in the background with minimal interruption) as well as making it easier to install, configure, and use.

They are also increasing the amount of free storage per account from 2GB to 7GB for new users. However, if you are an existing SkyDrive user and you login into your account within the next few days you will be presented with the option of upgrading your account to 25GB for free as a 'loyalty' reward!

More details here:  http://blogs.msdn.com/b/b8/archive/2012/04/23/the-next-chapter-for-skydrive-personal-cloud-storage-for-windows-available-anywhere.aspx

Thursday, April 19, 2012

Free SQL Server 2012 eBook

SQL Server 2012 shipped a little while ago and Microsoft has published an eBook titled "Introducing Microsoft SQL Server 2012" that they are giving away for free.

Details of the book and contents can be found in this blog post:  Introducing Microsoft SQL Server 2012

Direct links to the different versions:

Wednesday, April 18, 2012

Windows 8 Editions

Thanks to this blog post from Microsoft, we now know how many editions of 'Windows 8' there will be, and yes, it will be called Windows 8 officially. How novel!

While it is refreshing to see that there isn't a buffet of versions to choose from anymore, one option in the comparison chart for the 3 editions struck me as odd. There will be no support for Windows Media Player in the WinRT (ARM processors) edition. Is there some other application that will provide this functionality out of the box? For many people, especially the 'regular consumers' that just use whatever comes pre-installed, this could be an issue. Installing a 3rd party app from the App Store makes this easy to solve, but I find it hard to imagine that there would not be native support for common media file types.

If I walked into a store and tried to play a media file on a WinRT device that didn't work, I wouldn't buy it no matter how compelling the interface was. Media consumption is a core usage scenario for these devices and a native capability supported by every other tablet on the market since it became a market.

Is there an alternative to the traditional Windows Media Player for the Windows RT edition?

Wednesday, February 29, 2012

Visual Studio 2011 Beta Available

The first Beta of Visual Studio 2011 is now available... more details on the Visual Studio team blog.

I'm a little anxious to see whether I like the new User Interface compared to 2010 (which I really liked). Bring on the download!

Monday, February 27, 2012

Visual Studio 2011 UI Changes

I just saw a post about the changes to the User Interface of Visual Studio 2011 (http://blogs.msdn.com/b/visualstudio/archive/2012/02/23/introducing-the-new-developer-experience.aspx).

My first reaction is that it almost feels like Visual Studio .NET 2003! Everything has a very flat look and feel and most of the backgrounds/gradients have been removed as well. From the small screen shots in the post, it is hard to get a feel for what the actual experience will be. While I'm not against what has been done (I've configured a slate gray Theme for the VS Chrome), it is a bit of a change from the polished gradients that were a part of the 2010 release and definitely looks a bit retro.

I wonder if part of the reason for the 'simplifying' of the interface is performance. In VS 2010, a good portion of the UI was re-written to use WPF. During the course of dog-fooding their own technology, they made a ton of performance improvements in order to maintain the same level of performance as previous versions (a win for WPF developers everywhere). However, there were still instances when things just felt slow. Perhaps these changes will make things feel faster, even if they aren't.

Hopefully they will look at the scrolling performance of the Solution Navigator when there is a Database Project loaded. I have experienced this in multiple solutions, big and small, where the only commonality between them is the fact that they have a DB Pro project loaded. This happens regardless of the number of tables, etc.

Wednesday, January 18, 2012

Using a Global AssemblyInfo File

I’ve been meaning to post this for a long time, but for some reason it always seems to fall off the radar. Not anymore…

For all but the most trivial applications, you will most likely separate your solution into multiple projects that each have their own responsibility. This allows for better code re-use and better separation of concerns.

An issue that you might end up facing is that each project contains it’s own AssemblyInfo.cs file and several of the assembly directives in these have values that are repeated. For instance:

// General Information about an assembly is controlled through the following 
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyCompany( "KyKoSoft" )]
[assembly: AssemblyProduct( "KyKoSoft Application Foo" )]
[assembly: AssemblyCopyright( "COPYRIGHT © 2012 KyKoSoft.  All Rights Reserved." )]
[assembly: AssemblyTrademark( "" )]
[assembly: AssemblyCulture( "en-US" )]

The values for AssemblyCompany, AssemblyProduct, AssemblyCopyright, etc. will most likely have the exact same values for each project in the solution. Would you want to manually update the AssemblyCopyright setting in each project on January 1st every year? What if your company is bought out or your product gets renamed?


In order to keep things DRY (Don’t Repeat Yourself) and make updates easier, a real simple solution is to extract the repeated/common values into a new file (say GlobalAssemblyInfo.cs) located at the root of your solution. Then, right-click each project and select Add | Existing Item… and navigate to the root of your solution and select the GlobalAssemblyInfo.cs file.


But wait! Instead of just clicking the Add button (or double clicking on the file), use the little down arrow on the Add button and select the Add As Link option. This will ‘link’ the file into the project instead of copying it into the project directory (remember, we want to maintain this information only once).


If you tried to compile the project at this point, you will get a compilation error stating that there were duplicate Assembly directives defined. This is because your original AssemblyInfo.cs file (located in the Properties folder) still has these directives in it. Simply open it up and remove the duplicated (global) entries and recompile.


Presto! No more duplication!