You have reached the blog of Keith Elder. Thank you for visiting! Feel free to click the twitter icon to the right and follow me on twitter.

Deep Fried Bytes Episode #65: What does Open Source have to do with Windows Azure?

Posted by Keith Elder | Posted in .Net, Azure, Open Source, Podcast | Posted on 22-02-2011

Tags: , , ,




In this episode Woody catches up with Robert Duffner of Microsoft to discuss the future of Windows Azure and how Open Source software fits into the vision for Azure.

Sample .gitignore or exclude for .NET / Visual Studio / C#

Posted by Keith Elder | Posted in .Net, Open Source | Posted on 29-01-2011


Yesterday late in the evening after an incredibly long day I had a brain fart and twittered this.


Literally a few seconds later I was bombarded with “update your .gitignore” file. 

I literally slapped my forehead and said DUH!


Why? Well it is typical for version control systems such as GIT or CVS or SVN to have ignore files, I was just being lazy and not using my brain. Probably because it had been all but used up for that day.  Anyway there were some sample .gitignore files my fellow twitters sent me to but really they didn’t do the job so I am posting a sample file to help someone else out. 

Actually this is a sample “exclude” file which is in .git/info/exclude.  The exclude file is local to the repository it is in and isn’t global.  See http://help.github.com/git-ignore/ for more details on how this works.  Here is my current file which I will keep up-to-date as I go.

#git ls-files –others –exclude-from=.git/info/exclude
# Lines that start with ‘#’ are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~

# there are two bins here because apparently Silverlight calls the folder Bin instead of bin
# these folders should never be checked in as this contains the compiled code for configurations

# this is a Visual Studio user solution file, it contains your personal settings and should not be checked in
# if sharing the repo with other people, if it is just your repo you can remove this

# this folder is created when using RIA Services with a Silverlight application, the code from one project
# is copied here, thus it shouldn’t be checked into source control

# Projects can also have user settings so this ignores those files as well

This probably isn’t all inclusive just yet but as I find more things I’ll update this post.  Thanks.

Deep Fried Bytes Episode #17: Discussions about Gnome, Linux and Software Development with Luis Villa – Part 2

Posted by Keith Elder | Posted in Linux, Open Source, Podcast | Posted on 07-11-2008


 Listen To This Episode 



This is part two of a conversation we had with Luis Villa.  In the second part of this conversation we talk to Luis about all sorts of things including open source licenses, Google, Apple, Microsoft, Office and more.  We even have a war stories segment in this episode.  This is a continuation of part one, but honestly, we think it is the best part.  Enjoy.

Ways To Listen To The Show

There are several ways to listen to Deep Fried Bytes.

1. Directly From The Web Site (or click the link above)

When you visit the site look for this:

Clicking the triangle will launch the Yahoo! media player and automatically start playing the show for you. As long as you leave the browser window open the player will stay open. Clicking off the page WILL stop the player!

2. Subscribe via iTunes and Zune

If you have iTunes or Zune installed on your computer you can subscribe to our show. In iTunes open the Music Store and search for “Deep Fried Bytes”. In the Zune software, go to the MarketPlace select Podcast and search for “Deep Fried Bytes” to subscribe to the show. You can also click either of the two icons below to automatically subscribe to the show if you have iTunes or Zune installed.

Subscribe via iTunes Store Subcribe via Zune Market Place

3. Subscribe to RSS Feed

To stay current and up to date with the show, subscribe to the site’s RSS Feed. If you don’t know about RSS feeds you can read more here: http://en.wikipedia.org/wiki/RSS_(file_format)

If you already have an RSS reader installed and setup, click the feed icon below to grab our news feed.

Subscribe to our podcast!

Mono Less Than One Year Later

Posted by Keith Elder | Posted in .Net, Open Source | Posted on 01-03-2008


Last April I did a real world test with Mono which is an open source project to run .Net applications on various platforms by Miquel de Icaza.  I took an enterprise application that was built from scratch in .Net 2.0 and analyzed the application.  There were 1878 methods within the application that were missing.  Let’s see how far Mono has come using the same application.

Review From Last April

There is an easy tool available to test .Net applications if they are compatible with Mono.  It is called the Mono Migration Analyzer (MoMA).  Using MoMA last year yielded these results.

Methods that are still missing in Mono: 1878
P/Invokes called : 10
Methods called that throw NotImplementedException: 168
Methods called marked with [MonoTodo]: 831
Version:  1.1.1

There is no doubt with these many methods missing the application is not Mono ready.  Let’s re-run these tests on the same application to check the progress.

Same Application Different Results

The same application less than a year later shows tremendous progress.  Keep in mind I didn’t use the exact same version of the application, I used the latest version from source control of the application.  There have been thousands of lines of code added to the application since last April.  Even with constant change the results today fair very well.  Here is the same screen.


Methods that are still missing in Mono: 181
P/Invokes called : 10
Methods called that throw NotImplementedException: 159
Methods called marked with [MonoTodo]: 108
Version:  1.2.6

Very promising indeed.

Other Mono Happenings

Open Source to .Net Transition – Mac or PC?

Posted by Keith Elder | Posted in .Net, Linux, Open Source, PHP | Posted on 23-10-2007


It seems that an article I wrote a while back is making its way around the Internet once again.  It never fails that once a year or every 6 months it pokes it’s head up from the ashes, dusts itself off and finds new readers.  The article I’m talking about is this one:

How an Open Source Developer Transitioned to .Net

It is an interesting read and if you haven’t read it, check it out.

I started getting lots of emails from readers last night and this morning as the article was passed around.  One person emailed me a question that was particular interesting after reading it:

Thanks for sharing your story on your transition from .php to .net. My main question is; did you also change from working on Macs to the inferior PC’s?

Obviously by the reference of “inferior PC’s” in the question we know where this reader stands.  It is sort of like one of those interview questions you get that is completely loaded.  For example, “So Mr. Person Wanting a Job…. things around here are really busy.  A lot of the times you have to switch tasks very quickly.  How would it make you feel if you were working on a project and then your manager asked you to stop it and move onto something else?”  Obviously the question has already been answered.  Or rather loaded up for you to respond in the way the person asking the question wants to hear.  By the way, if you ask these type of interview questions, stop.  They get you no where.  I digress though. 

I don’t know if this question is the same loaded type of question but my first reaction was, wait, aren’t Macs made up of the same parts that are in PCs?  It is a hard drive, processor, video card and memory.  Apple looks at various vendors and plugs in the best deal / bang for the buck just like any other PC manufacturer.  Are PCs really inferior just because Apple has a better looking plastic cover than most PCs?  I don’t think so since they are essentially made up of the same parts.  Case in point I recently upgraded the wife from an aging iBook to a HP notebook.  I think she got a far superior product for a whole lot less money compared to a Mac.  That’s another post that I’m working on though. 

Maybe he was talking about the PC operating system being inferior?  What if I am running FreeBSD on my PC, does that make it more superior to the Mac since OS X is really just FreeBSD under-the-hood?  Or what if I’m running an Intel version of BEOS?  Maybe it was a OS X vs Windows comment?  The reader didn’t say so I am totally speculating on what he’s “really” trying to ask and also infer.

Here is the bottom line folks.  When you chose a technology you ultimately chose a platform.  We all do it and to say we don’t is just wrong.  When I was writing PHP/MySQL I used Linux for years since I thought it was important to develop applications on the same OS the application was going to run on the server.  I knew the Linux platform inside and out.  Even enough to teach it at the college level.  Today I write .Net code and I write that on Windows for Windows.  Again, I think it is important to write software on the same platform it is going to run on.  The difference is when you chose .Net you are married to the Windows platform, at least today.

Whether you want it to be or not, there is a huge platform investment made as a developer to understand the full potential of our applications.  I have a buddy at work that has been doing Windows IT infrastructure related stuff for years.  He understands a lot of things under the hood of Windows that I don’t even understand.  For me he is a resource I use often to pick his brain to solve a problem.  More times than not, he has an easier way to solve a problem than I was thinking just because he knows the platform.   For .Net development it means that those of us doing .Net development are married to the platform of Windows.  That is not a bad thing though since from a business standpoint the platform as a whole provides a lot of value.  

Yes, I use PCs today as opposed to Macs.  I’d be completely non-productive and probably lacking brain cells to development enterprise applications on a Mac and boot Visual Studio in a virtual machine.  I’d also be completely non-productive trying to write .Net code using Mono with VI.   I’ve seen lots of Macs at conferences and even friends of mine that are fellow MVPs have purchased Macs and run Visual Studio in a VM or just run Windows on the Mac 100% of the time because they like the Apple notebook better.   For those running Windows on an Apple, if you want to pay the Apple tax and spend a lot more money for your shiny toy fine, at least you understand that you are ultimately writing .Net on Windows.   For those that boot virtual machines and do .Net development God bless you, you must have the patience of Job.  I’ve done it and ultimately I came to the conclusion of:  Damn this slow and non-productive.  BTW, if you are a client of a consultant and he/she walks in with a Mac and is doing .Net development for you.  Run!  They just doubled your billable hours haha!  I poke fun in jest obviously but hey, it is something to think about if you are footing the bill no?

The thing is I still like OS X.  Notice I didn’t say Apple, because I don’t like the Apple hardware tax having built computers for years.  The operating system I like, nay, completely admire still to this day.  I’ve spent many hours looking at XCode on Mac OS X wishing it could be my development platform of choice.  Wishfully thinking that I could get a job as an Enterprise OS X developer at one time.  I wrote a few programs for Mac OS X and found it to be 5-10 steps and way more complicated than it needed to be just to do something simple like put a button on a form using Cocoa.  Compared to Visual Studio dragging and dropping a button onto a form and double clicking to wire up an event is apples and oranges (pun intended).  I’m sorry, but Apple spends all their time on making their OS shiny and adding features for end users but doesn’t do a damn thing to help developers embrace their platform at all.  At least that is how I see it.  If you don’t agree, then feel free to shine some light on my short sightedness, I’m all ears.

So yes, I use PCs today, not a Mac, and I don’t feel when I wake up in the morning and sit down at my computer I’m using an inferior product.  As a matter of fact I feel I have more options using the Windows Platform than I do using a Mac, especially since there isn’t an Apple store within 300 miles from me.  Not only that but professionally I have all sorts of nice haves that run and are supported with the Windows platform such as integrated authentication for applications, SQL Server, Biztalk, Windows Presentation Foundation, Winforms, Asp.Net, Windows Communication Foundation, Workflow Foundation, Silverlight, Visual Studio, Ado.Net, Windows Mobile, Office (Word, Powerpoint, Excel, Infopath, Publisher), Sharepoint, built-in analysis and data mining features, OLAP, Report Services and much more.  Based on all of that reader, which platform seems inferior now?