Featured Post

Brinly 42inch Lawn Sweeper Review

Last year after purchasing our new home I spent 3 days during Thanksgiving raking and blowing leaves. I vowed then and there that I wouldn’t be doing again. Several weeks ago I achieved man hood by purchasing a John Deere Lawn Tractor. As a result, I started investigating lawn sweepers to assist...

Read More

Apple and open source, state of Linux

Posted by Keith Elder | Posted in Open Source, PC Software | Posted on 29-06-2006

2

Joe Stagner posted on his blog about the 10 people who don’t matter that was spurred by an article on CNN.  Joe’s post got me to thinking about open and commercial software and how the two mix.  It also got me to thinking about why one fails and another succeeds.  I’m not sure where this is going to wind up but here are some thoughts.

Apple has already found a way to use open source in a commercial business. I think they have a great blend of commercial and open source software.  For example, Mac OSX was built out of the open source operating system BSD.  We know this effort today as the open source project Darwin.  So yes, if you are using a Mac, your operating system is open source based.  Apple chose BSD over Linux for the OS primarily because the license that Linux used wasn’t condusive for a business.  If you read the GPL license and compare it to the BSD license you’ll understand.

Apple also took the foundation for Konqueror, the web browser integrated with the KDE environment, and turned it into Safari.  Well, sorta took, let me clarify that.  Apple primarily took the rendering engine just to be clear.  There have been some rumblings in the KDE community about Apple “not giving back” and the Firefox guys have had some issues as well , just checkout some of the newsgroups.  Time will tell if this relationship will work or not.

There are tons of other examples as to how Apple has embraced open source software.  Two more examples come to mind that I think other companies could learn from are:  OpenLDAP and Samba.  OpenLDAP is the open source equilvalent to Active Directory if you want to think of it in those terms.  Samba is the tool used to allow Unix operating systems to connect to Windows computer shares or printers.  The problem with these two packages is it would take a novice 6 months or an expert the good part of a day or maybe even more reading howtos to figure out how they work.  It’s not sometehing you are going to install by clicking next, next, next, next.  LDAP would probably take a month, it’s a beast.  What Apple did though is take these two projects and incorporate them into the OS so users could easily connect to a Windows PC or join and Active Directory domain.   Kinda smart if you think about it because they didn’t have to write it from scratch.

Now stop and think about it for a second.  Apple built their Mac OS X on an already existing open source operating system, built their browser on an already existing engine, and utilized standard protocols that were built by the open source community and incorporated those into their OS.  Hmmm.  Do you see a pattern?  I do.  What Apple is doing is taking the best of breed open source projects in certain areas and then providing a much needed feature to those projects so the average end-user can use them which is an Interface.  This is important and I’ll give some more insight to this down the road.

I’ve said this over and over again when I taught Linux certification classes at the college level.

“The open source community is great at building things based on a protocol or an RFC.  If you don’t give them a spec, you never know what you’ll get.”

That’s a bold statement I know, but allow me to give a few samples.  The main reason this occurs is the developers don’t have to think about what they are building.  The spec is already written so all they have to do is write their code to the spec.  Anyone that’s a developer will tell you this is some one of the easiest programming tasks in the world to do.  If all of the hard “engineering” has already been done for you, you are simply converting english sentences into code.  I like to call it translation programming.  If you have ever wondered what the difference is between a “Developer” and a “Software Engineer”, this is it.

This is why Apache, Sendmail, OpenLDAP, IMAP, POP3, OpenSSL, OpenSSH and other programs based on standard protocols and specs work very well in the open source world.  When you move away from these documented protocols and into something less tangible that businesses really want, like the ability to have a single application that does calendering, scheduling, email, etc (you know.. Outlook?), the open source community fails to produce anything.  To this day there is no equilvalent to Exchange in the open source community.  Why is that?  More on why later.  The only thing out there currently is Evolution which is an Outlook client knock off written for the Gnome Desktop that looks 15 years old (yes I am not a fan of the GTK interface).   Suse Linux has tried to “piece the puzzle” together by offering a web based version of Exchange using open source tools derived from standard protocols such as LDAP, IMAP, ICAL, etc.  I’ve demoed the product and it doesn’t work.  Sorry but: Microsoft 1, Suse 0. 

Let me answer my own question as to why the open source community hasn’t produced an Exchange equilvalent.    The simple answer:  There isn’t a spec.  Tell me how  the open source community is going to do user testing, gather wants and needs from businesses around the world and role that into an open source product?  The answer is they are not!  This is where things unravel for the open source advocate that preaches all software should be open source.  Open source projects (normally run by geeks) don’t specialize in interacting with businesses, end users, user testing, and usability.   Aha!  So now you see why Apple providing the missing piece to the open source products they’ve added into their OS works.  Notice I haven’t said one bad thing about open source projects.  Honestly, the ones built around protocols and existings RFCs are great but they lack that vital last piece, Interface.  Apple and Micrsoft for this matter shine in this area.  Microsoft to take this one step further shines at the collecting of business wants and needs and then rolling it into a product.  Businesses need to do word processing so they created Office.  Businesses want to do calendaring and email so they created Exchange.  Businesses wanted to share information across different boundaries in the Enterprise so they created Sharepoint.  Where is Apple in all of this?  Well they are hardware focused and simply use software to sell their hardware so they could care less what the Enterprise wants or needs.  But they’ll sell all of your employees an Ipod though!

Something else you should take note of is the correlation of successful open source projects that have a true “leader” to those that don’t.  For example:  linux, perl, php, python, ruby just to name a few.  I bet most open source advocates could name you the person behind each of those projects.  Perl has been around for years and if you don’t know of Larry Wall then I can’t help you.  The reason these projects are successful is they didn’t adhere to the full “bazaar” concept as outlined by Eric Raymond.  Instead, there was one guy making the final decision, not the bazaar.  Even if that decision was wrong, one person ultimately said what was going to happen or be in the release of the product.  What about Steve Jobs or the Program Manager for Exchange? This is no different.  At some point, you have to have someone at the end of the Lifecycle of development to say, “Yes” or “No”.  Whether this is your PM or the guy who started the project in the first place it doesn’t matter.  If you let people program wildly on your project you are going to wind up with extreme inconsistencies.  Some great examples of this can be found in an open source prorgramming language that I’ve used extensively called PHP.  Even PHP programmers are disgruntled because of inconsistencies.  Is it str_replace() or strreplace() just as a quick example.

Everyone looks at Linux as the open source defacto standard but honestly after having used it for years the whole thing is just a mess in my opinion.  There are over 10 prominent versions of Linux in the wild each with their own way of doing things and their own packages.  Why is that?  Well, Linus just focuses on the kernel, but who is the “go to guy” that says Yes or No for the rest of it?  The answer is he/she doesn’t exist.  If you install the various versions of Linux you’ll find files in different places, different versions of software bundled with each system and different packaging systems.  From a developer standpoint developers can’t even write to a standard interface API.  Should they write their app so it works in KDE, or Gnome, or Enlighenment, or FVWM, or whatever?  How are vendors suppose to write programs to all of this?  Most of the time they don’t.  They choose one vendor’s project like Redhat and write to it.  This fact has made me mad on one or more occassions when I had a server running something other than Redhat that I needed to install a commercial product on.  After all wouldn’t you think the open source community would want vendors to write stuff for their platform to give it more market share?  It appears they don’t because there is so much effort going into creating new ways of doing things.  Release early and often they say and if we break something in the process for someone else who cares. 

My point to all of this is Linux is a mess because of the “bazaar”.  Sure Linux is great for a web server and I use it for that to this day.  Why is it such a great web server?  Easy.  Because there was a spec on how to build the web server.  Anything other than a web server and I’m not interested.  I want to dabble in open source software that’s been polished I’ll turn on my Powerbook and play.  This probably explains why a lot of fellow linux advocates that were disgruntled like myself switched to Mac OS X.

So you see there are problems with open source software.   The open source world isn’t a perfect little bubble where everything is all dandy with penguins jumping around hither and tither.  To get the results from the open source community into the hands of end users  the open source projects need commericial interaction.  The project needs the “guy” to say whether or not something is going to get put into the product.  The project needs a lot of TLC spent on it to polish documentation, make things “Forrest Gump” and easy to use.  Look at MySQL as another example of a company who’s product is open source and the difference between it and PostGreSQL.  If you didn’t know anything about either one, which would you rather use?  More than likely MySQL because it has better documentation is easier to setup and configure, has a better interface etc. 

Companies like Microsoft, Apple, Sun, IBM and others can get ahead of the competition if they choose to add that missing piece and use open source effectively.  The question now is, which one besides Apple is going to do it?

Sidekick 3 now available but is it as good as the 8125 Windows Mobile Phone?

Posted by Keith Elder | Posted in Mobile Devices | Posted on 29-06-2006

0

Remember 2002 in terms of what was available for Smart Phones? Not a whole lot to be honest. Palm was just starting to add phones to their PDA line up and about the only other phones available were Java based. I bought one of the first Sidekicks and used it for awhile. I loved the flip around keyboard and the ability to check email on it and surf the web but I ultimately gave it up for the T68i because I wanted to use Bluetooth with my new Mac. The Sidekick was a fun device but it didn’t take me long to outgrow it and get frustrated. I think I had it what, 2 months? Today the Sidekick 3 was introduced to T-Mobile subscribers and will be available officially on July 10th. The new Sidekick offers a 1.3 megapixel camera, Bluetooth, color screen and a built-in MP3 player. It also comes with a mini SD memory slot. You can checkout a video of the Sidekick on YouTube. Is it just me or does this device make too much freanking noise? There are tons of blurps, bleeps, wangs and ticks in the video. Watch it and you’ll see what I mean. Obviously the Sidekick has gotten better over time but my big beefs with it were

  • battery life
  • had a weird proxy system for checking email that wasn’t secure
  • locked up a lot
  • didn’t support good integration with various contact and calendar programs ( I remember having to login to a web site to add contacts for example)
  • no touch screen
  • lack of API support for developers

Anyway, it is kinda cool to see it survive and the really weird thing is the phone I have today pretty much has the exact same form factor. Talking about coming back full circle! I still prefer my 8125 over the Sidekick. The 8125 is just capable of much more. Plus I can write my own apps for it by just firing up Visual Studio. I am in the process of writing an RSS Reader for it in my spare time. In terms of form factor the Sidekick still spins out as the 8125 slides out but they are very similar. Here they are side beside: Cingular 8125
Sidekick 3 A few comparative thoughts So what’s the bottom line? Well for starters the Sidekick doesn’t have Wifi and you can’t touch the screen. For me this is hugh. I love navigating with a stylus. I do like the jog wheel on the Sidekick but the Sidekick suffers on the software side of the house. I don’t see any companies rushing out to buy 1,000 devices and deploy them to their sales force. The Sidekick is just not an enterprise device. More of a teeny bopper device. The 8125 also supports direct push email with Exchange which is a huge plus. Both have 1.3 mega pixel cameras and MP3 players. Big difference here is the 8125 syncs automatically with Media Player and can also play videos. Have a Media Center PC? With a third party tool you can save a show you recorded to your phone and watch it whenever. Another big difference is the Office tools bundled with the 8125. Reading word, excel and watching power point slides on windows mobile 5 is now native. In other words however the document looks and renders on the desktop, it will appear the same on the phone (even power point transitions). I guess the bottom line is this: Teen who wants to look cool: Sidekick Power User, Professional, Enterprise Customer: 8125