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.

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?

Glad I dropped Tivo for Media Center

Posted by Keith Elder | Posted in Computer Hardware, Internet, Man Toys, PC Gaming, PC Software | Posted on 09-03-2006

0

It was December 2001 when my wife bought me a Tivo for Christmas (see tivo review). At the time I loved it. It was the best thing since electricity. I decided to not purchase the lifeline subscription because I knew something better was going to come out with more hard drive space, ethernet etc. As it turns out I was right. Back then I think it was soemthing like $9.95 per month. Not too bad really. I remember walking around the office after returning from Christmas break selling Tivo to everyone. One of my co-workers at the time, Mike Kimsal listened to how things worked and in true Mike fashion researched it to death and when he decided he wanted one, like a true geek he wanted it RIGHT THEN! It’s funny because he called me on Super Bowl Sunday during the game wondering where he could get a Tivo in Ann Arbor. Luckily I had Tivo so I could pause the game otherwise he would have been in big trouble. I kept the Tivo around and kept selling them to anyone that asked and that would listen. By now they were becoming main stream. Sorta like Google where you hear people say “google for it” you started hearing people say I “Tivoed” so and so show last night. Probably a year or so after we owned the Tivo they released a newer version which could get its listings via wireless download. We upgraded ours and continued to use Tivo. By this time the price had gone up to $12.95 a month though. Where am I going with this posting you ask? Well, earlier this week Tivo announced new pricing plans. They’ve gotten rid of the lifeline subscription and instead charge you $19.95 a month or $224 prepaid if you want to buy a year in advance. Thanks but no thanks Tivo! shuttle xpcI haven’t posted about it to the blog but I took my Shuttle PC I purchased back in 2003 and converted it to run Windows Media Center several months ago, Novemeber 2005 to be exact. The only thing I had to do to convert it to media center was purchase a Haupaugge MCE 500 tuner. It has two tuners on it which allow you to record two shows at once or watch one and record one. As a side note about MCE you could even add two MCE 500 cards and record 4 shows at once, how cool is that? So for about a $100.00 I took an existing PC and converted it to Media Center and don’t have to pay Tivo a DIME every month. You can do your own research about media center but its a very cool platform and there are tons of hacks and even a complete API to develop custom plugins for it. After several months MCE is still running and recording shows all for the low low price of $0.00 per month. Besides the fact you have a computer and can do WAY more with it than the Tivo I call it a win. Wake up Tivo, you are approaching having to be put into the budget with your pricing and there are cheaper ways to get the same thing.

Vonage Click 2 Call Feature

Posted by Keith Elder | Posted in Internet, PC Software | Posted on 02-10-2005

2

vonage click to callI’ve have to be honest, I’ve been a little behind on all the features Vonage is offering these days. After moving to Mississippi, I had to change phone numbers, fax numbers, etc with Vonage to local numbers. To change a number you just go online, login and click on change my number. You then pick an area code you wish to have your telephone number relocated to and within a few minutes you’ll have a new phone number in your chosen area. Pretty cool stuff. While I was getting everything setup, I decided to change my plan to the “all you can eat” $24.99 plan since I am working out of my home office. As I was reading what was included in the plan I noticed a new feature called “Click-2-Call”. The feature integrates with Outlook by placing an additional menu bar on the contacts screen allowing you to simply click a button to call someone. Another nice benefit is you can highlight whatever text you want, press F6 and it will auto dial that number for you. I am pretty sure this is the final release of a feature that got posted to the Vonage forums one of the developers was playing with awhile back. It is a simple concept where you submit a phone number via a web post to their web server and it will auto dial a number for you. I played with it some and even integrated it into the Adressbook on my Mac. Now if they would just publish an API for it that would be great.

Raid MySQL Tables

Posted by Keith Elder | Posted in Linux, Open Source, PC Software, Programming | Posted on 15-05-2004

0

The following was taken from Linux Magazine from an article written by Jeremy Zawodny. It talks about a litlte known feature of the MyISAM tables in MySQL which allows you to create raid tables. The snippet of the article is publised below.

RAID Tables The final variety of MyISAM tables isn’t widely known, but can be useful in some circumstances. RAID tables are simply MyISAM tables whose data (.MYD) files have been broken into multiple files. CREATE TABLE mytable … TYPE=MyISAM RAID_TYPE=STRIPED RAID_CHUNKS=4 RAID_CHUNKSIZE=8 Running that SQL command breaks the MyISAM table into 4 separate files (chunks) that are written to in a round-robin fashion in 8 KB stripes. Why do that? If you’re using a filesystem that places a limit on how large a file can be (2 GB or 4 GB), RAID tables work around that limitation. (However, file size limits are becoming more and more rare, as recent Linux kernels don’t have size limits anywhere near that low.) Performance is another reason for RAID tables. By putting each chunk on a separate physical disk, you can spread the I/O work out more evenly. In most MySQL installations, the main bottleneck is disk I/O, so this isn’t very far fetched. However, if you have the option of using hardware RAID or even software RAID at the OS level, you’re probably better off doing so.

Reference: LAMP Post, by Jeremy Zawodny

M$ releases CD and DVD copy protection

Posted by Keith Elder | Posted in Internet, PC Software | Posted on 22-01-2003

0

It seems Microsoft has released a new CD and DVD copyright protection tool which lets recording companies restrict how CDs and DVDs are used on computers. A few companies have already announced they have adopted it. Of course this is built around the windows media player (like anyone uses it). They cliam to be able to limit the number of times a user can play the content on a PC and also claim to be able to restrict copying the content to various removeable media devices (mp3 players etc). I can see the press release from the RIAA now. “We have been working hard with Microsoft to produce a solid way for content providers to protect content and …..” (two weeks later on slashdot) “H4x0R writes, I just cracked the Windows Media DRM technology. It wasn’t that hard actually since the key to unlock the CD or DVD is a MD5 check sum of the song or movie title”.