Welcome

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 6: Talking Domain-Driven Design with David Laribee – Part 1

Posted by Keith Elder | Posted in Podcast | Posted on 22-07-2008

Last week we recorded our 6th episode of Deep Fried Bytes with guest David Laribee.  We started talking to David and before we knew it was two hours later!  To say time flew by would be an understatement.  There was so much good material that we broke the show up into two parts.  The first part released on July 16th is about 35 minutes in length.  Yeah, kind of short but it was the best place to stop the conversation and pick it back up.  The second part will be at least 45 minutes or longer. 

The topic was domain driven design.  It was great to talk to David who has studied the concept at length.  We really tried to dig down into the various aspects of DDD and look at it from a real world perspective. 

I’m a little late posting this but I’ve been speaking and traveling the past few days and thus not at a computer for a great length of time.  If you haven’t listened to the show yet, dive in.

Oh, by the way, in this show we changed up the format a bit.  So for those of you who think you know our format and love to fast forwarding through the intro I recommend you don’t on this episode.    We love to keep our listeners on their toes!  Enjoy.

Ways To Listen To The Show

There are several ways to listen to Deep Fried Bytes.

1. Directly From The Web Site

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!

What You Should Know About the 3G iPhone Before You Sync It With Your Exchange Server

Posted by Keith Elder | Posted in Apple | Posted on 11-07-2008

Today Apple launched their new iPhone.  Countless users are upgrading everywhere looking forward to playing with the new features of the 3G iPhone.  Before you connect your new iPhone toy to your enterprise exchange server there are a few things you need to be aware of.  For some of you these may be complete show stoppers.

I would have entertained the idea of getting an iPhone until I read this, thus I thought I’d pass it along.

Only Sync With One Computer

When you enable Exchange syncing on your iPhone to get emails from work, the phone will no longer sync contacts and calendars with another desktop computer using iTunes.  Windows Mobile allows users to sync with exchange and with another computer pretty seamlessly.  For example, I am able to sync my calendar and contacts with my work via Exchange but I’m also able to open up my home computer and add a new contacts and have it synced with my phone.  Updating the phone, updates Exchange.  The iPhone only gives you one option.  It makes me wonder what setting up the iPhone does with the new MobileMe service.  I guess we’ll find out.  If you know, comment below.

Lose Existing Contacts / Calendar

If you have an existing iPhone and you upgrade it to the new software be careful. When you setup Exchange support on the phone your old personal contacts and calendar items will be deleted from your iPhone and overwritten with your information.

Unsupported Exchange Features Heavy Email Users Need

For those that have Blackberries and or Windows Mobile apps there are some things the new iPhone will not do (at least at the last time this was tested which may have changed with the release today).

Not supported features of Exchange:

  • Folder management
  • Syncing tasks
  • Setting an “out-of-office” auto reply message
  • Create meeting invitations
  • Flagging messages for follow-up (of course this is an unsupported feature for any email on the iPhone)
  • Setting or seeing ‘high importance” emails (you don’t see the red in the inbox), of course this is an unsupported feature for any email on the iPhone

Are any of these major show stoppers?  For those of us that organize lots of email the folder management is a big one.  Especially if you are monitoring different email folders for system alerts and things.  Syncing tasks is not huge but something I use a lot myself.  The biggest one to me is creating meeting invitations.  To me, this one is a show stopper.

Additional Costs

On top of the existing fees you will have to pay an extra $15 for the “Enterprise Day Plan for iPhone” which puts the monthly cost at $45.00.  It makes sense with the amount of data going back and forth for email but that is still very pricey considering.  Information is here:

http://www.wireless.att.com/businesscenter/iPhone3G/index.jsp 

Disclaimer

Let me say up that I have not tested these myself.  These were some of the things that were discovered during testing a pre-release of the iPhone at work.  Thus, some of these *may* have changed since then.  If you find some discrepancies in anything here, don’t get bent out of shape, just politely leave a comment with a correction.

My Infatuation With the Word "Bytes"

Posted by Keith Elder | Posted in Funny Stuff | Posted on 11-07-2008

I just noticed something this morning. I have an infatuation with the word “bytes”.  Yep. I just recognized that.  I had a #TwitterTribe member visiting from Tennessee last night and after we migrated to the computer we started talking about past blogs and other stuff.  We were discussing redirects and combining blogs and that’s when I pulled up my old ZorKa blog (which isn’t available for viewing anymore so no link).  After switching back and forth between my old site and this site I realized something that I hadn’t noticed before.  My old blog title had the word “Bytes” in it and our new podcast has the word “Bytes” in it as well.

There is obviously something going on in the universe.  Coincidence?  I THINK NOT!

Previous Blog Name

image

Our Podcast

deepfried_text_300px

By the way, if you haven’t listened to the show check it out!  http://deepfriedbytes.com

Installing Ubuntu Linux – Is It As Perfect As They Say?

Posted by Keith Elder | Posted in Linux | Posted on 08-07-2008

It has probably been four years since I last installed Linux from scratch.  It isn’t that I haven’t touched a Linux command prompt or system in four years, it just that all of my installs are on my servers which just get updates applied.  I decided to install Ubuntu Linux the other morning on an older Dell laptop I have replacing Windows.  All this laptop is used for is surfing the web around the house.  It lives next to my man chair (recliner) in the living room.  The purpose of this exercise was twofold.  From a usability point of view I wanted to see how easy the install of Linux had gotten and document my experience.  And two I know there are a lot of people that have never even attempted to install Linux and I hope this helps those people at least play around.  I will probably also use this install as a basis for some future topics as well as learning some new languages.  Thus, you’ll probably see some new material coming out down the road. 

The version of Ubuntu I downloaded was 8.04.1.  After installing Ubuntu on my Dell I wanted to capture the install experience so I created a virtual machine using VMware Workstation and did another install.  After getting presented with the initial boot screen I started capturing screen shots.  Here is a walk through of installing Ubuntu along with some, man, that was cool, or wow that was stupid moments.

Installing Ubuntu

Step 0

The very first screen a user is presented with when installing Ubuntu is the language screen.  I’ll point out this screen doesn’t tell a user anything to do.  I guess we are all suppose to know to press enter. 

image

After selecting a language you are brought to this screen.  Again it is missing that finer touch of UI polish by not telling the user what to do.  The text in red is what I put in using Snagit so don’t think that was already there.  I put it in to point out what was missing.  I wanted to do an install so I pressed the down arrow on the keyboard (again not mentioned in the screen) and pressed enter.

Am I being picky?  Not really.  I can tell you right now any average computer user would question what to do next at this point.

image

The next screen, while aesthetically pleasing, doesn’t tell me anything that is going on.  What is my computer doing right now?  Is it formatting my hard drive or what?  This screen needs something to indicate to the user what the program is doing. I’m guessing it is loading the kernel in the background.  This is much more pleasing to view than the kernel spit message after message but it still needs some type of interaction with the user.

image

Knowing Linux the way I do I am sure this screen is loading necessary services Linux needs to load.  Again, there is nothing to tell the user what is going on.  Think about this for a minute.  What if  a user had to call into a support line and tell someone on the other end their computer locked up installing Linux?  There are two screens that look very similar in nature.  How would that be diagnosed?

image

Pretty.  I dig the background of a penguin that looked like it got shot with a 12 gauge repeatedly.  Seriously I like it.  At this point we are in XWindows and we are going to start using the mouse to configure and setup the system.  Linux has been moving to GUI based installers for years and it is nice to see some extra polish at this point, even if it is just the background.

image

Step 1

Thus far I have had to press enter to select a language and then enter to kick off the installer.  If you recall, the first thing it asked me for was to select my language.  Well guess what?  It is going to ask AGAIN!  Why, I have no idea since I had already selected it earlier during step 0.  It looks like this would have already been done for me.  There is also something on this screen that bugged me.  I’m not really sure why but the word “Forward” in the bottom right is the name of the button to move through the setup process.  This just hit me as absolutely weird.  It is like the developers are trying to be so different as to not put the word “Next->” there that it looses the meaning.  Sorry guys I just don’t get that.  When you tell me I am in step 1 of 7, I immediately don’t think of the word “Forward” to go to the forward step, I mean next step.  See, it doesn’t even make sense when trying to explain it.  This is yet another example of developers not calling a kettle a kettle ( see past forrest gump article).  

image

Step 2

This is the worst screen to deal with in the entire setup.  This screen has been around for awhile and I didn’t like it then and I don’t like it now.  Why?  The whole select a city is absolutely horrible.  Why the standard time zones aren’t printed here I have no idea.  I can’t begin to describe how frustrating it is to find a city with the proper time zone.  Not to mention there are literally hundreds of options in the menu. It is not easy to navigate.  I just looked at the time zone selector on Windows and there are 1/20th of the options available comparatively speaking when one just displays standard time zones.

There is an option of clicking the little itty bitty tiny very small ever so miniscule yellow dots with the hopes and prayers you select the right one too.

image

Step 3

This screen is easy.  The nice thing that was done is the ability to select an option and see if it still works.  Let’s go forward, I mean next.

image

Step 4

If you are setting up a machine and having Linux take up the entire drive this is pretty simple but still not very gump.  With some minor UI work this could be simplified.  I’m not really sure why the word “Guided” is even there.  Why not just say “Use the entire disk” ?  There is nothing guided about it since we are at step 4 and as we see the next step asks us for information.

image

Step 5

This is pretty simple.  Fill out the form and move on.  Easy and simple.

image

Step 7

Somehow step 6 doesn’t exist.  I don’t know where it went.  Maybe it was a step that didn’t have a user interface, who knows.  We went from 5 to 7 get over it and let’s move on.  It is driving me crazy too!

Step 7 is basically a review screen, not really enough to warrant a step.  I think it could be eliminated.

image

Step 7.1

I couldn’t resist to see what was behind the curtain of the “Advanced…” button.  Turns out it was just asking if we wanted to change the boot loader option.  I think this should have been asked back in step 4.  It seems out of place having it here.

image

After pressing install the installation goes really quickly.  On my Dell I think it was installed in like 5 maybe 10 minutes.

image 

 

image

image

First Boot Up

After the system boots for the first time you are presented with a login screen that is really nice.

image

After logging in you are brought to the initial desktop for Ubuntu 8.04.1.  At the top are the Gnome menus and the bottom is used as a task tray to switch between open applications.

image

Updates

A few minutes after being booted the first time Ubuntu went into action and prompted me about new updates for the operating system. 

image

When pressing “Install Updates” the administrator or root password is needed.  This is the password created for the account account back in Step 5.  For users who don’t know about how Linux uses permissions this may not be that obvious.  It would be nice to see this explained the first time a user is asked.

image

image

image

image

Installing Additional Software in Ubuntu

Ubuntu is based on Debian Linux and uses the same packaging system called apt.  If this is your first Linux install you will want to open a terminal or use the Synaptic package manager application to install additional software.  For example if you want to install the Eclipse IDE open a Terminal window and type the following:

sudo apt-get install eclipse

The word “sudo” is used to execute commands with evaluated privileges in Unix if it has been configured.  Unix systems refer to this as “root” whereby Windows refers to it as “Administrator”.   The rest of the command “apt-get install eclipse” will go out and download and install Eclipse.  If you want to see what additional plugins Ubuntu supports then search the package management system using apt-cache.  Here’s is how.

apt-cache search eclipse

This command will print all of the packages that have the word eclipse in them as shown here.

image 

Those are the basic commands you need to know to install and find software to play with.  Read and learn apt, it is your friend.

Thanks Ubuntu For Just Working

One of the really nice things Ubuntu did after being installed was do something I never got to work on Linux back in the day and that was wireless networking.  I almost cried when I clicked in the upper right of the screen and saw my home wireless network.   I selected it and I was online wirelessly!  I remember spending countless hours trying to compile a wireless driver for another Dell I had before surrendering to defeat.  Needless to say I was shocked at just being able to select a wireless location and it work.  I’m still shocked.

Another thing Ubuntu did after being installed on my Dell was to tell me my battery may have been recalled and there was a non-free video driver that I could use. I downloaded the driver and restarted.  I immediately saw a difference in speed.

For my Dell that sits in my living room Ubuntu is an easy choice.  It comes with Firefox 3, Evolution for email as well as Open Office.  That’s about all I really need for leisure browsing after work.  I’ve already been playing around with Mono, Python and a few other things that I wanted to catch up on and it is a great feeling to be back at a real command prompt.

Creating Event Handlers in C# The Definitive Guide

Posted by Keith Elder | Posted in .Net, Visual Studio | Posted on 07-07-2008

Ok Chris Love, this one’s for you.  Here is how you create an event handler in C# using Visual Studio.

Here is a form I built in a matter of seconds.  I know, we’ll discuss my mad design skills later.

image

Let’s pretend I was in the code behind and wanted to create a Form Load event.  In the code behind within the constructor start typing until you find the event you want to create as shown here:

image

Once located press <Enter> to auto complete the name.  Here is the step that a lot of people miss.  Type the operator += and watch what happens.

image

Visual Studio will give you a notification to press TAB to insert the EventHandler.

Pressing TAB will then give you this:

image

It is at this point if you press TAB again, the callback method will be generated.  Thus when you do += press TAB TAB (2 tabs).

image

How many key strokes was that?  Let’s see.  I had to type in my form the characters:  this.Lo <enter> += TAB TAB.  Easy quick and simple.