// caseydunham.net

Wednesday, October 21, 2009

Microsoft Code Camp 12 Review

I know this is a bit late, but I was very busy after Microsoft’s Code Camp 12 last Saturday in Waltham, MA and this is the first chance that I have had to sit down and do a write up on it.

This was the first Code Camp I have attended and didn’t know what to expect. The format of the Code Camps are basically like a mini conference. They consist of a number of presentations packed into about an eight hour day. All the presentations are developer focused so they usually contain a decent amount of code which I wasn’t expecting but was very happy with. Registration is free and for the most part, a community effort for developers, by developers.

Code Camp 12 had about 45 presentations tracked to seven different conference rooms! That’s a lot of information to take in a short amount of time. I am not actively involved in a lot of the technologies that the talks were about, most on the topic of Silverlight, C# and Azure, but it was very interesting to see what everyone else is up too. Now onto some notes about the presentations that I have attended.

Presentation 1: So, You Want to Give a Code Camp Talk?
Presenter: Bill Wilder

Even though this particular presentation wasn’t about programming, I jump at any opportunity to better myself at public speaking. I meet a lot of students in the Computer Science department at my school, both new and old, who don’t quite grasp how important communication really is. Bill Wilder also talked specifically about giving presentations that are code or technology heavy, which was great, because not many books or sites that you read give much thought to it. It definitely changes your presentation style. The attendance was small at this one, which was great because we were able to get into a few discussions that greatly benefited myself and I think the others in the room as well.

Presentation 2: Dysfunctional programming with F#
Presenter: Talbott Crowell

I only had a vague notion of what F# was before this presentation. For those who haven’t heard of it, F# is a functional language for the .NET environment that is inspired in part by OCaml. Talbott Crowell, a beginner in the language himself, talked about some of the differences in F# compared to other languages and most importantly, why use F# at all? One big difference in functional languages is that the functions have no side effects, everything is immutable. In F#, if you want to be able to change a variable after it is created it has to be declared with the mutable keyword. This sounds like a big drawback, but I didn’t realize how much of a benefit this actually was until this presentation. The big gains that F# provides over other .NET languages, is when faced with heavy multi-thread use and multi core, multi processor programming. Anyone who has done a decent amount of multi threaded programming knows how aggravating it can be when you run into deadlock or concurrent variable modifications that weren’t supposed to happen. Even with the new frameworks for C++ and C# designed to make this an easier problem to deal with, it is still very hard to take advantage of.. This is going to get worse as more computers are shipping with quad core CPUS and with operating systems having the ability to offload tasks to the GPU, this problem is going to be a major hurdle to some of these other languages.

Talbot also demonstrated how easy it is to prototype and develop GUI’s in the language. Since the language is interpreted it can be executed on the fly through an interactive prompt just like Python, Ruby and other interpreted languages. This allows you the ability to build a GUI or run other programs dynamically and watch them execute as you code. Visual Studio 2010 is also going to provide even more built in support for F# upon its release, so I wouldn’t be surprised to see this becoming more popular over the upcoming year.

This was a very good presentation and would encourage everyone to check out F# a bit more.

Presentation 3: 7 on 7
Presenter: Jim O’Neil

This was mostly a recap of the entire New Efficiency event that I attended a couple of weeks ago, but I went to anyways to see if anything was explored in more depth. There were a few interesting points about the Federated Search functionality in Windows 7 that got glossed over at the New Efficiency, but for the most part I could have sat this one out.

(Lunch)

Presentation 4: Behavior Driven Development
Presenter: Tom Cooley

This one was a bit over my head as I am still working on developing my Test Driven Development mindset, but Behavior Driven Development is a natural next step for those who have attained a level of proficiency with TDD. While TDD is about ensuring that the code you are writing is correct, BDD aims to make the language that tests are written in as close to the domain as possible, making the transition from Use Cases, or User Stories, to actual code much easier than it can be in real life. The presentation itself was in a small room that was very well attended so I wasn’t able to take part in the discussions too much, but there were a lot of very knowledgeable people in this one. I had a chance to talk to Tom Cooley after his presentation and managed to get good answers to some of my TDD issues.
Presentation 5 and 6:

I skipped the presentations slated for these two slots as I was hanging out talking to some of the other Code Campers and presenters. My one big suggestion for this whole event would be to allow a bit more time for networking and conversation. There was only about 10 minutes or so between presentations and lunch was only about 30 minutes so it didn’t leave a whole lot of time to meet and network.

Presentation 7: Getting your game published on XBox Live Indie Games
Presenter: Michael Cummings

This was probably my favorite presentation of the day. It was very informative and has made me very interested in Indy Game development for the XBox. Michael Cummings talked about the XNA Creator’s Club in general, the review process games undergo and why they might fail or be rejected. He also presented solutions to many of the gotcha type of problems that people don’t think about, but aren’t too complicated to deal with (controller issues, differences between the PC monitors and television screens for starters).

He also presented a statistical summary of about fifty games from various income categories, some barely making any money and others that grossed a significant amount all over the last year or so. I really can’t wait to start working on a few XBox games so I think I might be seeing an XBox 360 in my near future.

Overall I had a good time especially for a free event. The drive down only took about two hours and while I was unable to stay long after the event to go the after party, I hope to make it to the next Code Camp, which I believe is going to be sometime near April since they attempt to do these every six months or so.

If you are a Windows developer or at all interested, I would definitely recommend checking this out.

posted by Casey at 11:14 pm  

Friday, October 9, 2009

Windows 7 First Impressions

I’ve been using Windows 7 Ultimate for about two days now and have to admit that so far I really like it. It seems that most of the minor nit picky things that have been really annoying to me in prior versions of Windows, have been fixed or at least aren’t as annoying. Some of these things may seem trivial and some should have been in Windows a long time ago, but they are consistent annoyances in my use of Windows and while I use Linux operating systems just about as much as I do Windows, I am glad that Windows is starting to catch up in some areas.

First on the list is the speed. I have it installed on my laptop with 2Gb of Ram and an AMD Turion 64 X2 processor and it is speedy, even with all of the fancy GUI settings.  This most likely has a lot to do with the new Windows 7 graphics stack which has brought with it a much needed drop memory usage in the Desktop Windows Manager (DWM) which I tested by opening a lot of applications, playing videos and watching Syfy in Firefox and IE at the same time. The memory taken up by the DWM was about half that of Firefox while playing an episode of Ghost Hunters (by the way, IE on my setup actually consumed less memory doing this same task than Firefox did). I’ve been watching performance on various applications throughout the last couple of days and most of the Windows processes seem to be well behaved.

Next on my list has been a constant annoyance, probably going back all the way to Windows 95, is the lack of my ability to rearrange the icons on the taskbar that represent open programs. I find myself opening up applications in a certain order, as I usually keep longer running applications, or those that I use a lot throughout my day, to the left of the taskbar and since every Linux window manager I have ever used has allowed me to rearrange where those icons get placed, the annoyance on Windows had grown even more. The ability to do this now, makes me very happy.

Still on the topic of the taskbar is something that I haven’t quite gotten used to yet, is the removal of the quick launch taskbar (it can still be turned back on, directions here). I haven’t turned mine back on even though I have used it for years for my most frequently used applications, because I wanted to first see if the new way had any gain. In Windows 7, the taskbar rolls the quick launch bar along with the running programs into one. The difference now is that the items on the taskbar that are pinned to it (shortcuts that remain there) have jumplists that can be accessed with a right click (or left click and move the mouse upwards) that presents an application defined menu of quick links. I haven’t quite gotten used to the new feature yet but am going to play around with it for a bit more. I think it will definitely be interesting to see how applications take advantage of it (such as maybe providing a list of recent saved games and being able to run the game and load that saved game without having to go through a series of menus).

Another notable and much needed inclusion was native support for burning .iso files. Finally, I no longer have to download another program or switch to my Linux system to burn an image.  All I need to do now is to double click the image file and Windows pops open a small window and I can start burning. I’ve burned a few applications that I needed to install this way and it seems to work quite well.

One last minor irritation has always been the built in calculator. At my last job I often had to do a lot of bit manipulation or masking while programming and I always wished I had a Gnome’s calculator on my Windows box which allowed me to do not only do conversions between different bases, but I also could do right and left bit shifts and rotations. Now I have a built in application to do this.

My only real irritation with Windows 7 right now is the ribbon menu system that they introduced with Office 2007 and is now the standard for Microsoft’s applications on Windows7. I didn’t like it in Office and I am not a big fan of it right now in Windows 7. I am sure to get more comfortable with it over the next few weeks, but I don’t think I am ever going to really like it. I don’t like bloated windows and really don’t like a lot of toolbars and extra things floating around, but we’ll see.

posted by Casey at 11:03 pm  

Powered by WordPress