Archive for the 'Microsoft' Category

Windows 7… So what?

Saturday, October 24th, 2009

Microsoft released Windows Seven (7) on Oct 22, 2009.

Here are the things you need to know about it.

First, it does improve Vista. But, if it did not, how retarded would that be? An idiot could tell you what was wrong with Vista. Vista was a RAM and CPU pig. It was sluggish when it came to starting applications and even slower when copying files to and from. Not, to mention Vista had a terribly bad navigation problem, when trying to location options to configure your system.

Windows 7 does reduce the ‘fat’. It requires less memory and made minor improvements to the ’snappyness’ of the Operating System.

However, these comparisons are against Vista, the PIG. Any improvements, can be regarded as an improvement, no matter how small, because Vista was really that bad. (Sure after a year or two and SP2 Vista was stable and usable). But, if you compare Windows 7 to XP, Windows 7 is still a PIG. It still consumes triple the RAM, Disk and CPU power, not to mention Graphics memory.

So, comparing Windows 7 to Vista is not fair. The reason comparisons should be with Vista, Yes, but still compared with XP. XP is still used by 70+% of Windows users and corporations.

If you are planning on ‘upgrading’ XP to Windows 7… well you can’t! You have to do a full reinstall. Which means you have to back up ALL your pictures, music and files than reinstall them on Windows 7. Vista users can upgrade, but if your a Vista user already, you are probably a die hard MS fan willing to put up with anything Microsoft decides to be ‘quality’ releases for you to install and use.

But, for those still sticking to XP for so many reasons, there is STILL little incentive to go out and install Windows 7.

Concidering the economy is in the gutter, and millions do not have jobs. What makes Windows 7 so great? Especially, when you will need to buy a new computer to run it? Your still going to be running the same Firefox, Chrome or IE browser you where before. If you play games, most games will have to run in virtual mode, which comes with Windows 7.

A word about visualization to run XP in Windows 7. When you get Windows 7, you will be able to download a copy of XP, that you can run in a window while running Windows 7. Why do you have to run XP when you have the latest Microsoft WIndows 7 Operating System? Because, XP games and or major software will not run on Windows 7! And the XP mode will be as slow as a snail. Why? Well it is easy to imagine that if your computer has to run both Windows 7 AND XP and the XP software you are trying to run, will slow even dual/quad core CPU’s with 2+ gigs of RAM to a crawl.

Which concludes with what type of graphics card you will need. I hope you plan to pay for a new graphics card in the hundreds, because that is what Microsoft wants you to spend just to run their bare minimum software! Because, I promise you will need the extra horse power.

Google enters the Operating System Market

Wednesday, August 26th, 2009

Suprised?

You shouldn’t be! Many have seen this coming for years. Why? Google is a massive multi-billion dollar Publicly Traded Company. Googles has Billions of dollars just sitting around in bank accounts.

Google is evolving fast. Faster than Microsoft has or is…

The reason Google can evolve faster, is by leveraging Open Source. Google did not have to invent their platform from scratch. Not by a long shot. Google leverages Linux and Open source. Google as we all know is huge. What is interesting about Google as a software technology company, is that it makes none of it’s profits from direct software sales. In fact, everything Google developes, for the most part gives away for free.

Gmail
Google Docs
Google Search
Google Maps
Google Earth and on and on…

What is interesting, and going to be, what Google has called, “A Game Changer”, is that it has decided to enter into the Operating System Market. Look out Apple and Microsoft!

What Google is trying to do, is to make your Web Browser (as well as others like Firefox, Safari and Opera) a super powerdul Browser. A Browser capable of running 3D Video games, MultiMedia software programs and other highly intensive and complex Applications that was not previously possible in a traditional Web Browser.

Introducing, Native Client… “This is a game Changer.”

More to come… Google OS coming soon.

Oh, and it will be FREE of Charge to use and leverage yourself.

Microsoft to a Dinosaur, as Linux to a Mammal

Saturday, January 3rd, 2009

A Long, LONG time ago, there was this Operating System called, WINDOWS. It was created by a monolithic software company named, Microsoft. Microsoft once commanded all corporations AND home users (business and pleasure) to run Windows. Windows 95, to the harped upon Vista Operating System.

Microsoft Windows was all people used. All around the world. Rich or poor.

Than one day… people started working together. First, the nerds and geeks, than Corporate Businesses. All talking about SOFTWARE CODE, using this new invention called, THE INTERNET.

Over time, the geeks and nerds attracted the attention of business folk. Business folk want money. Money employs people, brings people together to form Corporations, JUST LIKE MICROSOFT!

Microsoft, being the big ol Dinosaur, gets scared!

Oh no!

Someone…

Wait MILLIONS?! All contributing to a common code base and evolving into something LIKE Windows?!

Impossible! This can not be!

Microsoft felt threatened.

After all, Linux was Free, Open Software, built by Millions of Human Minds.

Linux is Free and Open.

Free, allowed not just one Corporation to ‘get rich’, but MULTIPLE corporations!

Open, as in, easy for masses of geeks to contribute to a common Code base, using this new ‘Internet Thing’. It allowed them to custom build Web Sites, create opinionated BLOGS, and Servers to run it all. What scared Microsoft about all this ‘activity’, was that it was completely NOT related to Micro-saurus!

Over time, Microsoft fought, tooth and nail, to convince Corporations running Windows to NOT, please DO NOT INSTALL Linux! But, Linux was FREE OF CHARGE, and the nerds loved it, because the code was Open to read and write.

Microsoft, hired programmers at discounted rates from India, Russia, China and other countries pawing for a US Dollar.

Micro-saurus had one problem. It was based on years and years of OLD code, which Microsoft had BILLIONS upon BILLIONS invested in. The malware and viruses threatened Corporate secret files from hackers obtaining them and selling to competitors, as well as, all the Windows home users getting ‘fed up’ with viruses and Internet Porn pop up Ads.

There was no turning back for Micro-saurus. It had just too much time and money INVESTED in their virus ridden Operating System to rewrite a completely virus free Windows.

OK, that is the end of my, ‘long time ago’ story.

Unlike the quick and nasty extinction of the Dino’s, Microsoft was slowly eroded away. Linux just kept improving, over time. Multi-Corporate and Millions of ‘tinkering geeks’, eventually create something everyday masses of casual users could use. This attracted Game Publishers, as well.

The Mammals inherited the earth. The once, seemingly MEEK Mammals, small compared to the tromping and stomping Dino’s, suddenly inherited the Earth. My analogy is that Linux is somehow (in my own way) related to the Mammals and Microsoft to a Dinosaur.

Cloud Computing is Where and What?

Saturday, October 11th, 2008

I love Linux and the Open Source Community. Smart, funny and best of breed.

Getting lost in the technical aspects, is how everything gets invented. All answers, lay in the details, of which, there are mountains of details, that can sum up a product, point or condition.

Terms like Web 2.0. First, there was confusion over this term and what it really meant. Fact of the matter, Web 2.0 is still a tough concept or notion to crack.

But, the latest term, to hit the streets, Cloud Computing.

The technical brain would say, “Cloud Computing is a term based mostly on hype, because if you have an email address, use the Internet or upload any personal data, you are using the Computing Cloud.”.

This is completely true, from a technical stand point. But, the term was coined by a Business Thinker, rather than a CTO or programmer. Cloud Computing, is directly related to Google. Google Docs to be exact, and with Microsoft’s Office software.

There is huge debate, over whether it is better to run your Office locally, by running Open Office or MS Office, on each computer. Or, use an Internet Application, such as, Google Docs to do the same work.

Hence, Cloud Computing is born.

I guarantee you, that a technical person did not, and never would, come up with a term like, “Cloud Computing”. Just the thought of it alone is vague and, yes, Cloudy. But, it is a perfect term to sum up what Google Docs, could mean, from a non-technical point of view. The term will, of course, expand to other Web Businesses, that sell similar products and services.

In fact, Dell, tried to win the patent on Cloud Computing, which they did not receive. Too obvious a patent, for one party to have the rights to. Also, Microsoft’s next Operating System is rumored to being known as, get this, Cloud OS.

In fact, wasn’t Cloud Computing once called SaaS? Or, Software as a Service?

Maybe I am wrong and “Cloud Computing” is hype. But, it does sound more hip than SaaS or Software as a Service.

You decide.

Linux, Apple and Microsoft and the Unknown

Thursday, September 18th, 2008

When I make a title of an Article, I try to grab your interest. When I refer to, ‘The Unknown’, I am referring to the future of Vista, Linux, Apple, Windows 7 (aka Vista 2) and even API’s like Direct X and OpenGL and The Web.

The situation has become very interesting, to say the least, regarding 3 giants, in the Computer Industry.

  • Microsoft
  • Linux
  • Apple

All of them are fighting on all battle fronts. The battle fronts include;

  • Desktops
  • Servers
  • Mobile Devices
  • Laptops / Netbooks
  • HPC - High Performance Computing
  • Data centers and Cloud Computing
  • Web Browsers
  • Internet Standards and Protocols
  • Developer Mind share
  • Media Formats
  • Social Networks
  • Search Engines (Ad Networks)

and on and on and on…

To sanely attempt to grasp all of this, I will describe each of the 3 giant tech companies, in relation to the listed areas of computer, above. This is going to be quite a load of information draw, so grab a cup ‘o joe.

Apple

Apple has a very strong platform. It has a stable Desktop and even Servers based off a striped down Desktop. Macintosh was reinvented when Steve Jobs decided to go drastic and switch from RISC chips to Intel based CISC chips. But, more balls to the wall, was his accomplishment of taking an existing Operating system called BSD, a direct descendant of AT and T’s Unix Operating system, and slapping a GUI shell on top, calling it Darwin.

Needless to say, this was a brillant move, because now Apple is aligned with Linux, an up and coming Desktop, leveraging software already designed, stable and secure. OS X is a master piece mixture of beautiful Desktop integration, that just works, using a proven solid as a rock core, called Unix.

However, Apple does not seem to have let this get to it’s head, because Steve Job’s is clearly thinking in other areas of consumer electronics that no one else was, and apparently still is.

First came the iMac. Perfectly, in time to save Apple Computer from going bankrupt, by leveraging the Internet and delivering a Computer that was easy to use as 1 - 2 - 3, literally. Plugin the power, Plug in the Internet cable and turn the damn iMac on. How brain dead, yet brillantly simple is that? Sheer genius, which has always been a trademark of Steve Job’s thought process. Add in a splash of colors, bright as a happy go lucky gay rainbow and you have yourself a product posed to sell in the millions, which it did. You dont, see the iMac much any more, because of the G’s serious of Computers, which is just a serious player in the Video and Audio Media markets.

Get yourself a G5 running Pro tools for digital music multi track editing and Final Cut Pro for full blown professional video editing. Not to mention iLife for all out multimedia publishing on a professional level, unmatched by Microsoft or Linux. All major movie and music studios use Apple as their only choice for this type of Multimedia Publishing, hands down.

Next, Steve Jobs, comes up with the iPod, that catches the hair on fire of every teenager in America and the world. Multicolors and essentially just a cool, hip mp3 player at first, then evolving into playing small videos, downloaded from Youtube. To add firepower to the iPod, Apple opened a fully Web Based Internet Music Download store called iTunes. For .99 cents a song, you could have it, without having to buy the entire album. This little wonder from Apple again, kept Apple in the mainstream, regardless of a convicted Monopolist, which happen to be stealing every Desktop feature Apple came up with.

At this point Apple Computer, changed to just Apple. Sure, Apple had a kick ass Desktop running Unix under the hood, but it was far more successful selling iPods, iMacs, Pro Software for serious Movie and Music Industries and the best was yet to come.

Enter, the iPhone. Before, everyone was running around on a Blackberry, which was a very cool hand held PC, essentially, Internet ready. But, the iPhone, in Apple’s own style, did away with any buttons on the device, about the size of a Blackberry and made it appear HIP, by making everything touch screen enabled.

It is no surprise why Apple, years before, released their very own Web Browser, called Safari. Safari would than be installed on the up and coming iPhone. Safari, is essentially, took the same approach as OS X, there by, using KHTML — an Open Source HTML Render Engine — which they retooled and called WebKit. Apple then took WebKit and wrapped a decent GUI around it and Apple’s first Web Browser was born. Seemingly, out of the blue.

With the success of the iPhone, Apple opened the iStore to sell applications that would run on the iPhone. It is a huge success.

Apple is also working on something called Apple TV, which I do not know much about, but is sure to be just as a hit as everything else ‘i’Steve ‘i’Jobs has thought up. Not, one of his ideas has flopped. yet, each one a major risk in heavy investment, which if at anytime failed, would put the already treading deep water, that Apple was in. Yet, Apple management to execute each one, in rapid succession, with utter success to phone home about.

Simply amazing, the turn around that Apple has achieved, since the return of Steve Jobs as CEO in 1999.

Apples Achilles heel.

Steve Jobs is Apple. Apple is Steve Jobs. Therefore, if something were to happen to Steve Jobs, you can assume Apple, as a company, would be in serious trouble. All the gadgets and toys Apple has come up with was a direct result of one man’s main driving force, Steve Jobs. In fact, Steve did leave Apple for a long time, only to return in 1999 to save the company. It is rumored, that Steve Jobs knows how important he is to Apple, that many view him as a major a**hole. This is not good, if you think about it.

Linux

Linux is something you can look at in awe and sheer wonder, mostly as to, how in the hell could something like Linux even happen? Linux is truely a weird evolutionary human experiment, that seems to defy all preconceived notions of Traditional Business, Models of Software Development and managing to find itself creeping into every little nook and cranny imaginable.

Linux is really a symbol of many larger ideas. Ideas like Free Software, Open Source, Copy Left, Open Collaboration, unrestricted and almost hippy like in it’s Revolutionary way of working with Computers. It is almost impossible to know where to begin with this monster called The Linux Free and Open Source Movement. When I say movement and revolutionary, I really do mean what those words deeply mean.

Software, everywhere was closed, private and proprietary. The only way to get any market share was to have a business plan built to support it. Yet, the creation of Linux the Kernel and Operating Systems renaming themselves as a Distribution is the beginnings of me attempting to describe something unique, unexpected, yet obvious all at the same time.

A quick note about 2 men that seeded the Revolution. Keep in mind, these two men are really just symbols of a movement that actually includes millions of other people, almost cult like as followers.

Richard M. Stallman, or RMS as he liked to be called is a long haired, bearded hippy, obviously still recoving from Woodstock and all that happened in the 60’s. (Well, not exactly, but this is what I am reminded of, when I see him speak.) He is essentially, a programmer that became fed up with how Software, in particular Operating Systems were being locked down by a company called A T and T. He decided, to start his own software company, but in his own way. Instead of going down to your town hall and applying for Copy Rights and Business Licenses, RMS, decides to do everything backwards and opposite to what you would normally expect a Business man to do.

  • In 1985, RMS founded the Free Software Foundation.
  • Wrote the first draft, of the General Public License or GPLv1.
  • Invented a new copyright methodology, called copyleft.

He then set out to gain followers of his movement be called GNU. Which stands for Gnu is Not Unix. His mission was to completely rewrite Unix from scratch, including the compiler, editors, linker, kernel and all the software programs necessary to built an Operating system. The GNU Operating system, would be free as in Free to use and modify it’s source code, as outlined by its copyleft License called the GPL.

The GPL would ensure that anyone entering into the GNU project, gave up all rights to any code contributed to the project and that it would all be software not for profit. Building Software for Software’s sake. Mind you, all of this was before Microsoft took over the world with Windows.

Richard M. Stallman, is a brilliant software programmer. He write the GCC or Gnu C Compiler, which is the standard compiler that Linux Kernel and all of it’s software is built with. He wrote his own text editing software, called Emacs, which gained a cult like following of programmers to use to write the software and libraries needed to construct the GNU Operating System.

Things where going well, with a major snag to over come. Stallman’s Software Foundation could not come up with some of the final pieces to the GNU Operating System, called a Kernel. They also needed drivers for the floppy and hard disks and networking.

Linus Torvalds in 1991 sent an email to the Minix Kernel Usenet Group that he was working on a Unix like Operating system. He already had the beginnings of a kernel and drivers for the disk drives. Linus decided to adopt the FSF’s GPL and GNU Tool chain and was able to get a shell terminal up and running called bash.

Linus uploaded his software, all as free software so that others could look at the code and he could than get user feedback on what they wanted to see added or made better. Originally, Linus called his Operating System Freax, but was later renamed by the FTP Admin, calling it Linux instead.

After the integration of Stallman’s software and GPL, Uploading of the source code with instructions on how to get it working for would be users and finally posted the Email of where people could get the code, Linux as a project, simply exploded with interest from all around the world.

Kernel developers began to submit patches while Linus Torvalds managed the process, while attending his Helsinki College Education in Computer Science. His college allowed him to work there as an assistant in the computer lab, at the same time manage his new pet project, called Linux.

By, 1993 Linux was making headlines in the Computer Industry. Just as the Internet was also taking off. The timing could not have been perfect. The pieces just seemed to all fall into place. Linux and GNU are the two foundations of what would eventually become Linux Distributions like Slackware, Debian, Red hat, Caldara, SUSE and many more.

With each new Linux Distribution, came improvements which all the other existing Distributions could implement. The reason, was because the GPL requires all derived works that originate under the GPL, inherited those same Licensing rules. The GPL is simple. Keep the Source Code Open, make it available for download by anyone and allow anyone interested the rights to modify to than submit patches to Linus for inclusion into Linux.

Linus became the maintainer of Linux and is still so today. Just as there were maintainers for the GCC compiler, and all the other drivers and programs that were actively being developed.

What set Linux apart from all previous Unix or Unix like operatinh systems before than, was that there was always some License that got in the way of further development. AT and T are classic examples of trying to soly own the rights to the code, which only caused programmers grief when trying to submit patches to improve the damn thing. Linux adopted the FSF’s GPL from the get go so, this prevented anyone from trying to take the project and dictate what to do with it.

Linus Torvalds is the perfect man for the job as Maintainer of the Linux Kernel. The way he dealt with issues both technically and socially was used as a base for how all the other GPL’ed software projects should conduct themselves. If you had good code to contribute, most likely it would get excepted into the project’s, of which there were many.

Keep in mind that thousands of Free Software Projects Licensed under this Revolutionary way of writing software among thousands of programmers, where all happening at once. In one area, a group was tackling the issue of Linux Drivers, in another a sendmail system, still in another Networking code and so on. The number of projects was enormous.

To facilitate a way to centrally host and manage all the thousands of Free Software Projects, SourceForge, Inc. (NASDAQ: LNUX), formerly VA Software Corporation, VA Linux Systems, and VA Research, is the provider of the SourceForge Development Intelligence application.

SourceForge, Inc. owns several well-known websites, including ThinkGeek and Slashdot.

VA Software is notable because of its IPO on December 9, 1999. The shares for the IPO were offered at $30, but the traders held back the opening trade until the offers hit $299. LNUX later popped up to $320, and closed their first day of trading at $239.25, a 698% return. However, this high-flying success was short-lived, and within a year the stock was selling at well below the initial offer price. As of 2005, this is still the most “successful” IPO of all time. The stock price reached an intra-day nadir of 54 cents on July 24, 2002. It then soared more than 1000% to an intra-day high of $6.38 on September 11, 2003. As of November 26, 2006, the stock closed at $4.64.

As, we get deeper and deeper into this incredible story of how a group of programmers could build their own Platform, under their own terms, in such a way as to never stiffle software innovation in favor of profit and greed. The whole movements intentions were created by geeks for geeks to be able to control their own destiny, to never repeat the A T and T disaster that happened to the original Unix.

Ken Thompson and Dennis Ritchie are considered the inventors of Unix. Stallman and Torvalds just created a Unix like system they called GNU/Linux.

Today, the FSF — Free Software Foundation — was over run, so to speak, by a new term for the Movement they dubbed, Open Source. To Eric S. Raymond, the author of The Cathedral and the Bazaar, Free Software had the word Free in there that can confused the Business World, wanting to leverage Free Software. Was it Free as in Free Beer? Or Free as in Freedom’s and rights to do with the code what once wished, as long as it adhered to the GPL, now at version 2. — GPLv2 —

So, a new foundation was formed in 1999, spear headed by Eric S. Raymond, called the OSI or Open Source Initiative. Or simply, Open Source Software. This created many disagreements between the FSF.org and OSI, so many call the movement Free and Open Source Software (FOSS) or Free Libre Open Source Software (FLOSS).

Yet another argument is whether to call the Open Source Operating System, Linux or GNU/Linux. Since, GNU represents the compiler and core server software tools created by the GNU Foundation under the FSF, Stallman insists Linux include this rather tacky add on to what can be simply called Linux.

Either way, is correct and in the end, does not matter a terrible amount. But, to RMS is does. :)

So, what has happened now that it is September 2008, to this Revolutionary Software Movement? Well an absolute crap load, which I have written many an article about. You are free to read those which I will list as references at the end of this article.

But, essentially, Linux now has a dominate Distribution called Ubuntu, based on Debian Distribution, that aims to be a Microsoft Windows and Apple OS X, competitor. Linux has grown up a lot ever since a man by the name of Mark Shuttleworth decided to fork Debian Linux, to allow a 6 month release and update cycle, called Ubuntu.

Ubuntu, is what I am running right now to write this article. Ubuntu is marketed as Linux for Human Beings. It has fixed a lot of interoperability problems that plagued the Free and Open Source Software model for years. The challenge is this.

How do we get all the little pieces of Open Source Software to communicate, in order to work together to create a unified, stable and user friendly Linux Desktop?

The challenge has taken 4 years to get to it’s current release, dubbed, Ubuntu Hardy Heroin version 8.04. And I have to say that it is a beautiful piece of software engineering. It truly is stable, immune from all known Internet Viruses and as point and click ably easy to use as Microsoft Windows XP or Apple OS X.

Linux, however, started as a headless server, meaning no GUI anything. This meant everything was done using shell commands. Linux has a stack called the LAMP stack, standing for, Linux Apache, MySQL and PHP, which has become the #1 solution for Web Servers, Mail, File and Print Servers. Linux has been ported to more hardware architectures there any other Operating System.

Linux runs the NYSE - New York Stock Exchange –, commands the Mars Rovers and can also be found in microwaves and refrigerators. It is also entering into the mobile space of cell phones, PDAs and an iPhone clone called Android.

Linux powers French parliment using Ubuntu as it’s Desktop of choice. Did I mention Linux was used to build 97% of all the currently top rated Super Computers, known as HPC or High Performance Computing?

The list goes on and on. Linux also includes programming languages like Python, Ruby, PHP, Perl and more, as I better stop before my head explodes.

To top all this off, the user applications number in the ten’s of thousands. Ranging from Audio, Video, Image editors, to Games Free and Commercial. Endless server utilities and a powerful shell scripting language called bash. Linux also leads the way in super innovative Desktop Effects like the 3D Cubed Desktop and compositing FX to make your Windows wobble and contort, for the art of it all.

Linux, also commands the choice of up to over 500 different Distribution choices. All of them can be reviewed and downloaded from the well organized site called DistroWatch. The sheer amount of choices is mind boggling, but there is a top 10 list to keep you sane, until you get brave enough to try the others.

Linus is so viral in the way it spreads into every area of computing that most of the software that runs on Linux will also run on Windows and the Mac. And if that were not enough, it is possible to install and execute native Windows binary programs, like Adobe Photoshop to run on Linux using the amazing Wine project.

Let’s not forget that Google, Facebook, Yahoo!, Flickr, Twitter and so many more endless web sites run Linux Servers and Services like Apache and Postfix for Mail. My god can I go on?

Yes, IBM sponsored and released Eclipse, which is an IDE framework to build any type of IDE by using its revolutionary plug in system. All build using the now Open Sourced Java Virtual Machine, which allows Eclipse to run on the Mac and Windows as well. Making Eclipse, fast becoming the programmers IDE of choice for every programming language Eclipse has a plug in for, of which, just about no language is left out!

Linux and Open Sources Achilles heel.

There is none. If Linus were to get hit by a Bus, there are plenty of programmers waiting in line to take his place. Even, if multiple Linus replacements were to step forward, natural selection would find the right one. This is the nature of all Open Free Software Projects. If Open Free Software runs out of money, well, is irrelevant. Open Source is not funded by any one. There are corporations that leverage Open Source to turn a profit from, but this does not mean money or any business sustains Open Source. The community sustains Open Source and Linux. The only way for Open Free Software to die, is if the entire community loses interest. Therefore, I think the biggest threat to Open Source Software is something like Global Warming, a killer Comet or Asteroid or a major natural or unnatural disaster, such as a nuclear war, resulting in the death of most the human race. Even then, I think geeks would find some way to keep coding and their passion alive, even in a nuclear fallout. :)

Microsoft

Now, I save the best (or worse, in some people’s view) for last.

Microsoft, I like to think of as a Mix between Apple and Linux. On the Apple side MS just seems to take every idea, innovation, GUI tweak, OS feature and anything else they thought looked cool from Apple OS X and changed it a little to look like the MS way. Let’s just say Apple hates MS with a passion, and for good reason.

The same thing goes for MS steal (sorry, borrowing) innovations and ideas from Linux and the Open Source world, including Unix. In fact, every OS has taken something, usually asbolutely fundementally core about how a computer works. Unfortunately, MS decided to not borrow key security features of Unix, which Apple and Linux did, which has now rendered MS powerless to stop the floods of viruses coming from all directions via Email and Web Sites.

Now, that is not a very good way to start off with MS. We do have to give credit for a lot of MS innovations. But, most of those innovations were taken from Apple or Linux and extended to work a little better. This is how I view MS as a whole. MS is a company that watches the Industry, like a hawk, appearing to seem more interested in other companies ideas, at the same time finding ways to integrate them into their own MS way to end up with something that is just one step ahead of the companies they, borrowed from. This method of innovation is certainly not illegal, and is common, but MS takes the idea to a whole new level.

Here is a short list of innovations MS did contribute that really are key:

  • Ajax was a MS technology first used in 1999, called HTTPXMLRequest.

Sorry, that is really all I have! Just about everything else, from GUI Windows that over lap, instead of tile, mouse and GUIs to click and manipulate a menu system, and core fundamentals how how a Kernel and shell works, are all taken from either Apple or Linux / Unix.

What MS is truely credited with was pulling through the mess that was computer hardware compatibility, or lack there of, and still making MS-DOS and Windows 1.0-3.1 able to run on these IBM-PC Compatibles. They were smart enough to build their platform on commoditized hardware, which allowed OEMs to build similar enough computers to run MS software. This in comparison to Apple strictly sticking to their own custom hardware, which locked out OEMs from partnering and distributing Apple computers. Sun Microsoft systems did the same thing with their SPARC hardware.

Microsoft exploded as the primary OS, was directly attributed to using hardware that was becoming more and more compatible and distributable on a mass scale. But, all is not rosy. Microsoft, in this process of making these OEM deals did do illegal things. like force all OEM’s to only preinstall Windows and no other OS, else MS would cut the OEM’s contract to distribute MS Operating Systems.

After MS secure the ports, so to speak, effectively blocking any other software company from using IBM-PC hardware as a platform, that was literally run by MS based on extortionist tactics. All MS has to do now, was sit back, observe what Apple and Linux / Unix were doing, and simply coping those same ideas, adding MS marketing logos and twists, to be easily digestable by the mass market.

MS had it make, and to this day, still has contracts with all the major OEM’s (Dell, HP and Acer to name a few) based on the scare tactics MS uses to ensure only Windows ever gets majority distribution percentages. Why the government has yet to step up and put an end to this illegal Monopolist way? Is anyone’s guess.

My guess, is that these contracts as under strict company confidentiality and therefore the bigger governments, like the Supreme Court, does not have juristition to obtain anytype of warrant for investigations to obtain and review MS / OEM contract agreements. But, I will stop there, before I get into too deep of water.

OK, the nasty mean stuff aside, lets begin to look at what MS is doing, on the battle fronts of the computer industry.

Internet Explorer, which Microsoft built as a direct result of Netscape. Now this is another long and nasty story, in itself. Here is what happened.

  • netscape released the first commrecial Web Browser, to take 90+% marketshare.
  • Netscape partnered with Sun to include Java built into Netscape.
  • Netscape was building a Web Platform, independant of Mac, Linux or MS.
  • MS released Internet Explorer, cloning Netscape, feature for feature.
  • After a few rounds, IE version 4, MS decides to Integrate IE into Windows.
  • Netscape goes bankrupt within months of IE and MS inegration.
  • MS is sues by the U.S. Government for using it’s monopoly to undermine Netscape.
  • MS is ordered to break the company into 2 parts, one for Applications the other for Windows.
  • Bill Gates and lawyers appealed and the split was over turned, MS was saved, but fined millions.

That is the story of the first browser war, in a nut shell. But, in 1999 Mozilla, company befind Netscape, decides to do something revolutionary. They Open Source Netscape, ultimately re branding and rewriting the code base and calling it Firefox 1.0. Since, this is about MS technology, I will leave this final note. Now in 2008, Firefox 3.1 has 45+% market share and Internet Explorer 8.0 only 50+% and losing ground month after month. Also, with the entrance of Google’s Chromium Browser, IE’s days are numbered.

Zune, is Microsoft’s clone of the iPod. To make this one short and easy. Zune is a complete failure, commanding little to no market interest. The iPod is simply too hip to compete with.

Xbox gaming console. Now, I was surprised when MS decided to enter the Gaming Console Industry. After all, Sony, Nintendo and a few others had this market under control. But, the XBox inspired gamers, particularly with one of Microsoft’s biggest success stories, Halo. Halo is a first person shooter, but taking the genre to a whole new level. Halo is action packed, uses realistic physicals and actually has a deep and engaging story line. Microsoft did well with Halo, releasing the final installment of Halo 3, which was better than the previous two, In turn, Halo 2 was better than Halo 1 and the original Halo was amazing in itself, to begin with.

Halo cemented the XBox as a console to easily be valued by gamers and many were sold.

Xbox 360, on the other hand, has mixed results. Xbox 360 is Xbox v2. Yes, the 360 was awesome, in terms of more graphics and better sound and more CPU power. But, it had one major flaw, it over heated, to the point you could smell the burning solder as it melted from the heat the console generated. Xbox 360’s red ring of death was a set of circular led lights that gave status indications about the health of the console. Millions of units had to be shipped back to Microsoft for repair. MS did a great job at accommodating the customers, but it cost MS all the revenue’s the Xbox generated, in order to fix all the recalled over heated 360’s.

The reason this happened, was because MS decided to built the entire Xbox, from the hardware chassis, motherboard, power supply and controllers and games, at Microsoft’s campus. MS is a software company, not an experienced hardware company, and they had to learn this the hard way. As of now, you can attach an external fan to the 360, along with the repairs MS did, and his fixed the over heating problem. But, like I said, at a huge cost to MS. Not, to mention the unit is very loud and easily generates enough heat to warm a master bedroom, on it’s own.

Mobile Windows CE, has been around for a long time. But, it has never really taken off, not because of MS, but because of how fragmented the cell phone industry is. I don’t know many details about Windows Mobile CE, so you will have to Google this on your own. But, I do know, the iPhone, Blackberries and up and coming Google Android are clearly winning the battle on the mobile front.

Now I want to get into MS Servers. This battle front can be divided into two parts. One which is the Small Business Server and the other are Server’s used by Corporations to centrally manage ten’s of thousands of Workstations, within a companies Corporate Intranet.

Small Business Server from Microsoft for use on the Internet, was created to compete with Linux’s overwhelming encroachment of Servers built for Web, Mail, File and Database facilities. However, SBS is reported to be very limited in terms of customization, scalability and price point. Linux has what is known as their LAMP stack, which is highly stable, configurable to do Web, Mail, File, Print and Database Serving on the Internet. And Linux has no License fee, unlimited user seats and no restrictions on how many Linux LAMP servers you want to have on your Network. MS SBS on the other hand is restrictive in every way possible. This is because MS wants to sell their full blown Windows Server 2003 / 2008 Servers, costing into the ten’s of thousands of dollars.

Windows Server 2000-2008 are designed as the best of what MS has to offer, to compete with Linux LAMP and friends server lines. Windows 2008, boasts a few interesting changes. MS traditioanlly, tried to keep out of the command line as much as possible, instead opting to use GUI tools to do all the server configurations. This is highly inefficent, because you have to have a good way to compress the graphics to be responsive enough for remote adminitration. GUI controls add a lot of over head, in terms of, CPU, RAM and Disk usage.

The headless version of Windows 2008, in which everything is configured via the command line, just like Linux has always done. They did this due to customer demands. It is ironic that MS do a backward two step, back into the command line and away from the GUI. Windows 2008 also boasts a powerful shell called PowerShell.

PowerShell is essentially .NET all wrapped up and accessible via PowerShell. It has been reviewed as being very powerful. However, the move to a headless server, only solidifies the fact that Linux / Unix had it right all along. So, if I am now going to be working in the Command line shell anyways, companies might as well choice Linux servers, which has no limited on anything. Linux also boasts more tools and options and Server applications.

Databases available to a Linux Server. Postgre, MySQL, SQLite, Berkeley Database, LDAP and more. Microsoft, boasts MS SQL 2000-2008, which is not nearly as configurable, scalable and faster as the Linux choices.

Mail Servers, that Linux offers include; Sendmail, Postfix, Exim, Qmail and many more. The choice of IMAP and POP mail management software are numerous. What MS has going for it’s Server is MS Exchange, which is a full blown Enterprise level application using Active Directory to centrally manage user accounts, their mail and policies for each user.

Alternative Linux options that try to integrate with MS Exchange Server, are still not 100% compatible. MS Exchange and Active Directory is a very strong selling point. Also, 90% of Corporations, already have MS Exchange installed, which means MS Exchange is deeply entrenched in that aspect of Corporate Business. Migrating away means downtime, cost to ensure the migration goes smoothly and retraining staff to use the Linux Alternative. I believe, in the long run, it will be worth it.

Windows Desktop and Workstations are Microsoft’s number one cash cow. With 90+% market share in both the corporate and home markets, Microsoft definitely has a massive advantage. Owning the platform, also means being able to dictate what can run on that Platform and dictate which communication Protocols and API’s Independent Software Vendors to use, like messaging between Exchange and Domain Controllers. file system network sharing, printer sharing and authentication and encryption protocols like IPsec.

Proprietary protocols, usually overly complex and in binary format, makes it very hard to reverse engineer, and enables MS Windows Platform to easily lock out competitors. An example of Protocol Lock out/in, is if another company wants to offer an alternative to MS Exchange Server, Microsoft can simply prohibit the use of Exchange’s Proprietary Protocol and if they do decide to make an agreement, would enable MS complete control over Licensing fees or any other fine print. In many cases, MS makes the fee is so huge, that the company trying to arrange an agreement simply backs out and made a laughing stock.

In recent news, the European Commission has ordered Microsoft to share the specifications of key MS proprietary protocols, but only a very small group is allowed to review. This was ordered, as a result, of many anti-trust law suit convictions. In the past MS was punished by having to pay Millions or even Billions in fines, which MS simply considered pocket change.

Search Engines called Live Search is Microsoft’s attempt to compete with Google, Yahoo, Ask and all other Search Engines. A Search Engine is very expensive to set up and maintain. They require enourmous data centers comprising of thousands of servers, raid arrays and network switches. All this computer power is required to do the following;

  • Visit as many Web Sites as possible.
  • Index all Web site data and store it in a Database.
  • Have some kind of page rank system to make search results relavant as possible.
  • Create a way to track user behavior using browser cookies.

A search engine is a bit deceptive, in that, in order to support the enormous data centers required to crawl the Internet, store the Peta bytes or more of data and servers with massive processing power to process the collected data, sort it all and make presentable for human consumption. Finally, if the Search Engine is popular, it will need to query the Indexed Search data and serve it up using Web servers.

In order to pay the bills for all this hardware and rack space + bandwidth required to run a successful Search engine needs to come from somewhere. The way Google does it, is by providing a responsive and effective Ad Network, called Ad Sense and Ad Words. Microsoft Live follows this same Business model as well as Yahoo! Search.

Let’s just say that Microsoft’s Search Engine market share is dismally small compared to Google and Yahoo!. Yet, Microsoft can easily afford to maintain the data centers necessary to make it all run. Microsoft, got into the Search Game too late in the game.

Social Networks, Windows Live Spaces (formerly known as MSN Spaces). Microsoft does not appear in any top 10 Social Network Lists. While other Top 100 Social Network Sites, rank MS Live Spaces as number 3. So, you may need to do some specific reason on this yourself.

Social Networks are much like Search Engines, in that they are created as a place to than make money by Advertising to the users of the Social Network. Unlike Search Engines, a Social Network requires much much less data center server power.

Media Codecs that are under MS patent control include; WMV3, WMVA and WVC1. The good news, is that there are all alternatives to these formats which are Open Source.

Microsoft developers are very well equipped. Since MS is a Closed Source Platform, MS API’s are very important, and MS has done an excellent job at providing them, as well as, Documenting them. It is a well known fact, that if not for Microsoft’s extensive support promotion of it’s API’s would render MS a useless Platform. Without an API, it would be impossible to create software on a Closed Source Platform. But, this also includes an Open Source Platform like Linux.

A complete list of Active and depreciate MS APIs.

.NET Framework. Microsoft, may not have invented the idea of a cross platform language. Java is famous for that. But, that does not stop MS from cloning the idea and calling it something different. Microsoft’s .NET Framework really is cool. It is a framework, in that, it allows any .NET language or API the ability to allow the Programmer to easily integrate code from one type of .NET language and including it. In other words, it is possible to base your Application on C#, than easily link to a VB Library to access those function available in the VB library. This includes any .NET language, of which there are many.

The idea of a cross platform language is not new. Sun Microsystems, invented Java and it’s Virtual Runtime Machine to allow the programmer to write a Java program on Windows that will also execute on a Mac or Linux, with no code modifications required. MS took this concept a step further by making the runtime, Cross Language as well as cross platform.

Microsoft’s Achilles Heel.

Money and reputation. Microsoft needs capitol and loads of it. MS is being sued left and right. MS is in court, currently fighting multiple court battles. And the law suits do not appear to be slowing down, but instead, picking up steam. If you can believe that. MS has more than 70,000+ employees to feed and a massive campus to sustain. Clearly, money is Microsoft’s, bottom line. Reputation is just as important and tied directly with profits. Vista, for instance, was deemed a failure. People are losing faith in MS and it’s products. As a result, alternative methods of computing are being sought after, not only by other businesses, but also by entire governments. Microsoft, I would say has a lot at stake, therefore, a lot to loss. But, unlike Apple, Bill Gates is not a major influence anymore. MS has a massive talent pool of employees it can tap into. MS is also very deverse and able to adapt and play hardball if they have to. Microsoft may have seen it’s glory years and will decrease in size, unless they figure out a way to fix the Vista OS mess. But, MS has seemingly unbreakable sales teams will to do anything to keep Microsoft the #1 software company in the world, for decades to come.

Hybrid Software to Rule the World

Wednesday, September 17th, 2008

If it wasn’t for Microsoft putting a PC on every Desktop where possible, the Internet would not have exploded into the size it is today. In turn, the Internet sold more PC’s, because more and more people wanted to get on the Internet. The two technological concepts really are meant for each other.

So, in essence, your Desktop PC is really an Internet PC. Apple knew this soon enough with it’s release of their iMac’s, which literally saved Apple from going under, to a large degree.

Imagine not having your Internet Connection up and running when you sit down at your computer! Most would not want to use it, until the Internet Connection was up again. Sure, your PC would still function, but not being able to check Email, Chat, Blog and Surf the Web for the latest News and Gossip, literally makes your PC feel different. A sort of loneliness sets in, for those that have become dependent on the Internet, for Work and Play. This is exactly my case, with my Computer. When my Internet is lost, for whatever reason, priority one is to get it back up, asap.

The marriage of all these Computers with the Internet, has also changed the way software is created, sold and distributed. Traditionally, we would take a trip over to your local computer shop, and buy a box that contained the software we needed. Then, huge outlet stores emerged like CompUSA, Circuit City and Best Buy to fill the demands of the PC and Internet Age. Software companies make Billions and Billions of dollars annually in software sales. The sale of proprietary software like Microsoft Windows, Adobe Photoshop and Games, to name just a fraction, of what is on the selves of these huge stores.

But, as time marches on, things began to slowly, but drastically change. It was suddenly hip to be a geek and no longer looked upon as something you didn’t want to become known for, in fear of becoming socially ridiculed. The geek, became cool. Geek Squad, a computer tech support company, is proud to wear their pocket protectors and thick black glasses, running around in white shirts and black ties first made popular at IBM.

With this new attitude towards computers, teenagers and old a like, began to embrace the Computer age. They turned this lifeless and dry piece of machinery, which was connected to the Internet, into a deep, broad and far reaching set of Social Networks on a Global Scale.

Sites like MySpace, Facebook, Flickr, Digg, WordPress, Twitter, del.ico.us, Ning, Hi5, Match, eHarmony, Millionaire Match and countless other Social Sites began to spring up everywhere.

Along with them, came personal Web Pages made by the, now hip geeks, proudly displaying their coding tricks and solutions to technical problems, in the form of HowTo’s and Tutorials or just quick and dirty instructions to show invisible peers, what they could do with their Computers. A sort of bragging rights.

Scratching your Own Itch

Instead of waiting for some Corporation or Business to bring the geeks the software they urned for, decided to band together and create it for themselves. Often times, merely to scratch an itch and other times out of necessity either for a small business or from programmers working in a large Corporation.

A new way of creating complex software was born, called Free and Open Source. This new way of making computer programs, threw established software companies into a frenzy. No longer did titan software Corporations, like Microsoft, have absolute control of what we could do with our Computer Hardware. In fact, many disagreed with how these mammoth Software Companies were conducting themselves, by abusing their power, in ways that would put enormous cost on it’s End Users.

The Geeks, now considered Hip, were forming the next Computer Revolution, since the release of the Personal Computer itself. It was the geeks that formed the Committees and Foundations, that created the standards that all Internet based technology is based on. These Foundations were assembled on a volunteer basis to create standards like HTTP, TCP/IP, HTML, CSS, JavaScript and all the things that make the Internet work, as it existed today. This meant that the technology was not controlled by for profit organizations, but rather, to address the challenges of making the Internet easy to use.

These Open Standards are the hallmarks of what made the Internet and Computer Revolution become accessible to many non geeks. Had these same standards been formed under a single Corporation, would certainly have certainly been formulated with the selfish interest for that Corporation.

That is why HTML, HTTP and all the Protocols, that make the Internet work, are all plain text Protocols, making them very easy to read and understand. There are no special software tools required to examine Web Pages, for example. Anyone, can easily View the Source from a Web Browser and inspect the HTML, CSS and JavaScript that make the Web Site work!

Traditional Software vs Revolutionary Software

As mentioned previously, software was traditionally created by for profit corporations, like Microsoft, Adobe, Real Networks, Apple and many more. This type of software was most always created in house, and under tight lock and key, in order to keep trade secrets from falling into the hands of competitors. This type of Software creation model is known as, Closed Source Software, in that, the human readable code is kept as intellectual property and out of the public domain. The only entity capable of benefiting from this approach to software development is the Business that created it. This allowed the owners to dictate the Licenses, prices and all terms, regarding the use of their software, which is always delivered in Binary format. Binary software, is software that is not in it’s human readable state.

On the flip side, is the Revolutionary Software Model. Created by the same individuals that formed the standards that the Internet uses. This also includes, just about anyone with the skills to participate. These programmers, known as Open Source Programmers, initially grew out of hobbyist groups, dating way back in the 60’s.

In other words, Open Source is simply a way for programmers to collaborate, and form Software Projects. Some projects are as simple as a text based calculator, maintained by a single individual. While other Software Projects, like Gnome or KDE, which are Desktop Environments can include thousands of participating programmers, all doing various tasks, like Documentation, creating artwork like icons and desktop themes to programming the code.

What are the motivations of Open Source Programmers?

Essentially, being a programmer and having the ability to instruct a machine to do exactly what you want it to do, is empowering and rewarding and motivating. Other motivations come from being able to work with other like minded people on a common mission, which is the project. Many times, it is hard for other programmers to locate one another, but the Internet erases all barriers and allows the programmers to build their own communication methods, either using Email, Live Chat or Web Page Forums.
The motivation to connect with others and compete as friendly peers to see who can come up with a solution to a problem.

There are many motivations as to why Open Source Programers work together, but probably the number one reason can be considered a self one. Scratching ones own Itch. If you are someone that wants a program or some way to get your computer to do a task, be it simple or complex, drives that programmer to see if they can create it. This simple little quirk of human nature is probably at the heart of anything that results completely free from monetary influence.

Much like why artists paint, or musicians write songs. Programmers fall in this same group, because there are near limitless angles a person can tackle a programming challenge, means that it is up to the creativity of the programmer to choose how they go about making a solution to the challenge. There by, scratching their own Itch and then moving on to the next annoying Itch!

The DRY Principle

The DRY principle stands for Don’t Repeat Yourself.

It is also considered redundant to constantly reinvent things that are already exist. Reinventing the wheel, is a common analogy. Why do it? Same thing applies to building software. However, the only way to properly use the DRY principle, is to make all Source Code Open for anyone that wishes to review and perhaps contribute. In fact, Open Source programmers often start a project on their own, only later to Open Source it, in order to gain some peer review, gain ideas and expand their own project. All programmers know that there are smarter programmers out there, willing to review your work and contribute a better solution. To Open Source programmers, if you build something and hide it away in some folder, where no one will ever see it, let alone use it, voids most the reasoning for creating the program, in the first place.

In other words, Programmers are not complete isolationists. They want others to see what they are up to and therefore share their projects, often times, including code from others, that may have found a better way to do it. It feels good and is normal human behavior to want to share and be open.

What is an Operating System?

Each and every piece of software created can, in some way, contribute to the creation of the ultimate software project, known as an Operating System.

An Operating System is a program in itself, that manages other programs, allowing them to be managed by a Human User. An Operating System is really just a collection of thousands of smaller programs, all working in unison or on standby, to in turned allow Human Beings to benefit, by using the computational power that a computer can deliver, in a way Human Beings can understand and make useful.

How could a mostly Volunteer Process Produce a High Quality Operating System?

Traditional Software companies like Apple and Microsoft never dreamed, in a thousands years, that a purely volunteer based Operating System, such as Linux and Ubuntu, could ever become a real possibility. It was always assumed, that the sheer complexity of organizing all the little programs needed to form an Operating System, was simply not possible, without direct supervision that only a Business under Management, could provide.

The reason an Operating System like Linux and Ubuntu became a reality, has to do with the idea, that software does not degrade or spoil as time passes. Once a piece of software is written, it stays that way, until someone changes it, in most cases for the better. Software, given enough time and quality contributions no matter how small, can only get better and more useful. It may take a longer for an Open Source Operating System to become as easy to use as a Proprietary, Closed Source Operating System, like Apple or Windows. But, give it enough time and attention, eventually it will be built.

Software does not spoil or degrade, as time passes.

Closed Source and Open Source Software is Merging

First, software was built under the crack of the corporate whip and everything had a strict deadline for mission accomplished. At the same time, programmers that felt unchallenged, under a Corporate whip, worked at home, with other programmers in an Open and Revolutionary way.

Since, a Corporation’s sole foundation is trying to achieve a the bottom line in terms of profits, is met with a flip side to that, with the idea that Open Source Software is Free of Charge and Free to utilize.

Companies like Microsoft and Sun Microsystems have had to take a hard look at the direction Open Source or this Revolutionary way of building software is effecting their Industry. It has changed to rules of business, forever.

In order to stay in business, closed source software companies, once completely under lock and key, have begun to Open Source their software in hopes they can sell support or additional features. It is either that, or consumers will simply not buy anything and use what is available for free from the Open Source Community.

At first, Software Companies did not know what to do. They were literally scared, that one day, bankruptcy was a real possibility. Open Source was considered a cancer to Microsoft, as an example. But, what Open Source forces all of the Software Industry Leaders to do, is to become honest. The playing field is beginning to level out. And companies like Microsoft, are forced to take a new approach to their Business practices.

Open Source empowers anyone willing to learn the Open Source platform. Software that costs nothing, in terms of Money, and complete freedom to personalize Open Source, because it is highly customizable.

Only 15 years ago, there were very few options, a new small business could turn to, for their computer technology needs. The shortage of choices lead to unfair and exaggerated price points for software and hardware. Need a Web, Mail, Print or File Server? In the past this could cost you ten’s of thousands of dollars. Why? Because, the only businesses capable of providing these extremely complex programs, had little to no competition. No competition means, the sole provider can set any price they want, resulting in them getting very very rich and all others left to pay the high prices.

Why Sustained Monopolies are Bad for Everyone

There is nothing wrong with pricing your products and services really high, if you are the only kid on the block capable of producing the products and services others need. The problem with a sustained Monopoly situation, is that, the Monopolist is much like a dictator over seeing a country. A single, all powerful Monopoly, can easily choose to abuse this power, by practicing unfair business, that only kills everything, but the Monopoly.

I believe, that to become a sustained Monopoly, is a direct indication of some sort of malpractice going on. Otherwise, how could the Monopoly, sustain it’s position for a long period of time? In order for a Monopoly to sustain itself for an unnatural amount of time, is to use it’s established power to undermine any attempts for competitive forces to emerge, and take that initial, yet crucial first foot hold, it needs in order to allow time for the competitor to grow.

A monopoly that is playing fair, can only sustain it’s position for a limited amount of time, before another competitor decides they too wish to join the same or similar lucrative business. This results in creating a healthy competitive business model that aides in the evolution of the products and services. It also results in lower and competitive prices and makes the resulting products and services more accessible to a large consumer base.

That is why the Open Source Software Model is often referred to as a Revolutionary Model. A revolution is a fundamental change in power or organizational structures that takes place in a relatively short period of time. This describes, exactly, what Open Source means. If software corporations insist on trampling on would be competitors, by using their already entrenched Monopolies money, marketing and man power, to make it impossible for competitors to keep a foot hold in long enough to grow and become competitive, are in fact, committing anti-trust laws.

Getting a Foot Hold in a Software Monopoly

First, make the Source Code Open, because the Monopoly operates on a Closed Source model.

Second, make the product and services Free of Charge, because the Monopoly depends on continuous revenue to continue to be organized.

Finally, create Licenses that effectively make obsolete any current ones, because the Monopoly will then become burdened by their own License model.

Results of the Dispersion of a Monolithic Monopoly Within a Market

Once, the Monopoly has been penetrated and begins to disperse, will allow the new models to begin to compete in the same arena the Monopolist once had complete control of over. This forces the Monopoly to adapt or risk becoming obsoleted. The customers of the Monopoly benefit, in the case of Software, with drastically lower prices, more flexibility and choice in how the software is configured to behave, allowing a more innovative economy to evolve.

Many other benefits result after a Monopoly is forced to adapt or risk becoming obsoleted like, patching once unnoticed security holes that made vulnerable the entire market the Monopoly once controlled. If the Monopoly decides not to patch these massive security holes, risk losing customers to businesses that do patch the security holes.

More competition means more choices, lower prices and expanded possibilities, in that particular market. Some examples include; Smaller Businesses, relative to the mammoth Monopoly business can now utilize competitor software, which may be more configurable and flexable than what the Monopoly was offering. This results in these Smaller Businesses to customize servers to suit their particular needs and making the price competitive therefore with in the means of the smaller businesses.

Once the Monopoly has been forced to allow cheaper, more customizable server technology and server tools, will result in untold variety, some becoming niche markets to form. These variety and niche markets, could generate unmeasurable economic gains to the market as a whole, at the same time, allowing Freedom to Innovate and evolve, due to competition, as of yet, unknown technologies.

Conclusive Thoughts

Open Source and Closed Source will — and currently are — mixing together, to find ways to coexist. After all, programmers do not want to put themselves out of business, by writing all the software imaginable and releasing it Free of Charge. But, there is software that should become commoditized and accessible to everyone, to allow common services to flurish.

Closed Software has it’s place and will not become obsoleted. Closed Software is a form of privacy that must exist, just like our basic rights to privacy in our homes.

But, the point of software is to allow the creation of services. Anyone is free to create any type of computer program from scratch. No one should own the rights to any ideas made possible by writing software. Trademarking names, logos and such should be legally protected, but not a common idea like Software compression or encryption. Anything too broad in terms of it’s usage scope should not be possible to patent, else it makes it impossible for bigger more important ideas to come about, known as innovation.

Hybrid Software to Rule the World

Finally, I come to the point of this article.

The two worlds, Closed and Open, Proprietary and Free will continue to morph and mix themselves into a new entity. It is already happening. Companies like Sun Microsystems have Open Sourced nearly every technology they have invented. They now consider themselves an Open Source Software Company.

The reason for doing this is, because Linux was taking all their business away. Sun demanded enormous sums of cash from their customers to License their products and services. Linux is just as stable as Sun’s Servers and more customizable, and Free of Charge. In order for Sun to compete, they Opened their technology, which allowed others to modify and expand, resulting in a better Sun offering in terms of fixed bugs and optimized performance. Sun makes it’s money by selling support to those that need it as well as Licensing useful and Proprietary Software they have not Open Sourced that they feel will add value to key areas of services.

Microsoft, is a big fish. And that word monopoly we have been using throughout this article was directly referring to Microsoft. They are approaching Open Source very cautiously. Like a terrified diver slowly working his/her way into shark infested water, fully dawning a chain mail shark suit, spears and all. Microsoft, can not simply Open Source everything they have created, like Sun Microsystems has. Microsoft has a very unique Kernel, which has some heritage to Unix, but not like Sun’s Solaris — openSolaris now — as well as Microsoft’s Office Suite and Visual Studio IDE tools. They also have their own Database (MS SQL), Web Server (IIS) and a myriad of programming languages and run times which include; C++, C#, JScript, VBScript, VB and all .NET and finally the entire .NET frame work itself.

It does’nt stop there. The Xbox and all their games, Direct X, Silverlight — Adobe Flash Clone — as well as an iPod clone, complete with a music store like iTunes. How about Microsoft Active Directory, Exchange Mail Server, Internet Explorer, their own search engine called live.com. Finally, the entire family of Desktop, Workstation and Servers ranging from MS-DOS to Vista and NT 3.5 to Windows server 2008.

The list goes on and on. Microsoft, truly has built an empire, based on software plus services. They are their own Universe of software. Huge amounts of stocks, that their shareholders would not think twice about suing Microsoft over, had Microsoft done anything drastic. — Remember, what happen to Yahoo! when they did not sell out to Microsoft? –

Instead of Open Sourcing much of anything, they instead apply for their own OSI Licenses two of which have been approved to be Open Source compatible Licenses, which they have not used yet. They invent their own term for Open Source, called Shared Source, which isn’t much like Open Source. They try to appear to create and utilize their version of an open Protocol, called Open XML, which to so, weaseled their way in by paying off many countries to vote it in as an Open Standard.

The most controversial thing they have done, in reaction to Open Source, is threaten the entire Open Source Community with 280 some patents, which they have yet to clarify what those patents violate. This was purely done to scare businesses from using Open Source or any business providing Support for it. To a some degree it worked, but not by much, and a specially with what I am about to describe, on top of Linux Red hat’s year over year increased annual profits selling Linux Servers and Support packages and Linux training.

Then in 2006, after annoying their 280 plus patent violation claims, forced Novell (SUSE Linux), Linspire Linux and Xandros Linux to sign into a very controversial agreement. The agreement was essentially, they have to buy Microsoft Certifications for each Linux they roll out, which ensures to those Linux Companies and their customers Microsoft will not sue them. This has been referred to as a form of extortion.

What makes these controversial deals a confirmed extortionist plan, was when Microsoft decided to support the Apache Foundation, by becoming an Official partner, by paying a $100,000 membership fee. Microsoft also released their very first small bits of Open Source code. Microsoft clearly benefits from this Apache deal far more than the Open Source side does, because the software technology Microsoft released, known as ADO database integration with Apache, is basically useless, because Open Source alreay has their own superior versions called the LAMP stack. — Linux Apache MySQL (Postgre and SQLite) Perl, Python PHP — Not to mention a myriad of other technologies, all of which work natively on the Windows Platform.

Now back to the Novell Patent law suit threats. It would seem that they would then void them, since Microsoft is clearing support Open Source Foundations now, no less. However, Novell just extended their agreement with Microsoft for a few more years! Also note that Mandriva Linux — a French Linux Company — the famous Red hat Enterprise Linux, Canonical and Ubuntu have all, turned their heads, to signing any such deal with Microsoft. This includes big blue, IBM, which invested the historic, 1 Billion dollars, in Linux research, years past.

The situation has yet to resolve itself, this Open vs Closed Source thing.

My prediction is that Microsoft will be forced into working with, and not against, Open Source and what it stands for. It will reveal many of Microsoft’s anti-laws to more and more businesses, which is already open and available in detail at Groklaw’s Web site. This may not bee good for Microsoft, because many of the things it did as a Corporation were against the law, particularly with ISV’s and OEM’s to stifle any incoming competition from forming, which Microsoft always look at as an unhealthy threat, rather than healthy competition, which always results in better products and fair prices for the End User.

The future look bright for Open Source as well as Microsoft, if they would only see that supporting their customers is better than trying to force feed them.

Entering the World of Linux (Open Source)

Thursday, September 11th, 2008

This article will be all about how you can begin your journey into the Linux World of Software that powers Servers and Desktops and newer ideas like NetBooks.

After all Linux does power MySpace, Google, Yahoo!, Bloggers, Flickr, Twitter, YouTube, FaceBook and countless other ultra popular Web Sites.

Why did they all decide to use Linux and not a Microsoft Windows Server? If Microsoft Windows is so easy to use and set up, as they claim, why not?

Did you know that the NYSE — New York Stock Exchange — is running Linux Software? You can see now that any claims that Linux software is not to be used for serious things is completely said only to deter the uninformed, by instead, tricking them into buying expensive and in many cases, restrictive and inflexible Microsoft ‘Business’ Software.

After using computers, both on the Microsoft and Linux side, for over 10 years, I have come to a simple analogy of the Microsoft vs Linux mentality.

Microsoft is like that damn vacuum sales person that knocks on your door and tries to sell you a $2000 dollar vacuum. Claiming the vacuum is so great that you simply have to have it. Yet, you can go down to your local Wal-Mart or similar outlet store and buy a similar machine ‘the sucks on carpet’, for only $100-$200 dollars.

Linux, on the other hand, has not one sales person, not one single advert on any medium — that I have seen — yet is Microsoft’s number one competitor. The reason? Word of mouth and the Internet. People will use what works and fits the bill. They than tell all their friends about it. Linux is advertised in this manner, if you like. But, the difference is, getting advice from your colleeges, friends or family about what technology you should use, goes much further with people, than any door to door sales idiot or silly advert on TV.

I started in the Windows World.

I was there for the Windows 2000 release party for the new millennium, because I worked at Microsoft at that time. I was raised on programming using Visual Studio. I worked on Vista’s firewall as a paid beta tester and test code developer. Microsoft has done a decent job, seeing how it is a single company able to pull off all these enormously technical and complicated feats.

Even the anti-Microsoft Open Source advocates, have to give Microsoft credit for that. The idea, that one corporation could do all this, is mind blowing in itself. This is because of one man’s drive and vision, that only he understood, Bill Gates.

Bill Gates is a Business Genius. He is not a coding Genius. He is a master at putting pieces of very large and complicated puzzles together. He is genius at finding where he needs to be in order to make business deals at the right place and time and with whom. But, he is getting old and tired and burnt out.

He retired himself from Microsoft in 2008. Microsoft is only going to go down hill from there on out. And that is OK! Microsoft, at this point, has more lawsuits and monkeys on it’s back, than any company in history, and for good reason. I personally, think Mr. Gates would have stick it out longer, had it not been for the disappointment of Vista and the never ending appointments, not to his office in Redmond, but to the court rooms across the country!

Microsoft has reached a saturation point. It has completed it’s initial mission, set by Bill Gates, “To put a Computer on every Desktop in every household in America and on Earth.”.

Microsoft, did this! They won, long ago. Perhaps, with Windows 95 and 98.

Unfortunately, Microsoft is losing to Linux, because in the process of becoming so huge, employing over 70,000 people in many countries is beginning to bend under it’s own weight. They put so many of their chips in Windows and their Office Products. The problem is that you can only add so many features and glossiness to any computer program, until you have to realistically say, ‘Project is Complete’.

What Microsoft is trying to do, is continuously release sub prime features for Microsoft Windows and Office Suite Software, to make people want to upgrade. People are no longer buying into senseless ‘upgrades’. These upgrades are becoming so bad, that they are more about added complexity and add to the already bloated software.

People are not stupid. People know when they are being fooled. Yet, People still haven’t excepted the reality that there are alternatives out there. In time they will find those alternatives. This is when Microsoft really starts to get scary. Continue reading to see what Microsoft has already resorted to doing in 2007.

Click here to SKIP and HIDE the nasty, dirty, however sad but true part.

Extortion, because of Greed lead by Fear

This is now leading Microsoft, a huge corporation, consisting of enormous campuses, hundreds of buildings and tens of thousands of employees, fear that one day they will not be able to sustain it anymore. Greed is something we all know Microsoft has.

But, now for the first time in it’s history, it is fearful of it’s future sustainability. Microsoft Executives are a smart group of people, as well as most people that work there. They analyze and plan for the future. They know they have to sell X amount of Windows and X amount of Office or they start to sink.

This has lead to real fear, inside the company.

Fear and Greed mixed together, is a truly an unreal state of mind to be in. It can drive people to criminal and corrupt actions. Want to save the Microsoft Monopoly? Yet, still drink free milk and coke for all employees with free parking? Enjoying great stock options and benefits? These are greedy things. Not all companies of that size can supply such luxuries. Now mix in the fear that Microsoft can not be king of the hill anymore?

Microsoft, is committing everything from extortion to lying in court.

Extortion is a strong word, I know. It is often associated with, The Mob.

But, Microsoft is extorting many Linux Companies. Let me give you an example.

The SUSE (Novell) vs Microsoft lawsuit. Microsoft claims that Novell — SUSE Linux Distribution — is violating Microsoft Software Patents. They threatened to sue SUSE and SUSE customers, if they did not agree to buy Microsoft Certificates. These Certificates give SUSE and their customers immunity from any Microsoft attack, in the form of a law suite.

Below is the definition of the word ‘Extortion’.

EXTORTION - The use, or the express or implicit threat of the use, of violence or other criminal means to cause harm to person, reputation, or property as a means to obtain property from someone else with his consent. USC 18

The Hobbs Act defines “extortion” as “the obtaining of property from another, with his consent, induced by wrongful use of actual or threatened force, violence, or fear, or under color of official right.” 18 U.S.C. S 1951(b)(2).

SUSE Linux must buy protection from Microsoft or Microsoft threatens to sue. That is extortion. Microsoft has not released which patents SUSE violates. SUSE doesn’t even know which patents Microsoft is threatening with. Even though Microsoft has been asked many times to supply proof and which patents, they refused.

You have to ask why SUSE would sign such a deal, when they did not know if any patents where being violated. Well, folks, the reason is because SUSE is a small company, the reformation of Novell trying to rebuild it’s dead company. They don’t have the money for a long drawn out court battle with a Multi-Billion Dollar corporation, like Microsoft. So, the best bet was to just pay for Microsoft Cetificates and move on. However, the point still stands. Extortion is the point.

The software patent threats are useless, because there are dozens of other Linux Companies that did not fall into Microsoft’s extortion plan like; Red hat, Ubuntu and Mandriva to name just a few. Why hasn’t Microsoft not sued any of them? Mandriva, for example, is a small company. Smaller than SUSE, in fact. Well, once again folks, Microsoft does not want to take Mandriva or any other that did not fall into their extortion trap, because than Microsoft would have to reveal which patents they thought violated Microsoft’s and Novell and the others paying for Microsoft Certificates could see the lies and would not be able to stand up in court.

If Microsoft were to reveal which patents they are using as their bullets in the guns place against Novell’s head, would reveal the bullets to be blanks or duds. Novell could than counter suit for wrongful business practices, nothing new for Microsoft.

See, Microsoft is no longer an innocent Software Company out to create ‘Great Software’, as Bill Gates always put it to all his employees. Microsoft has turned into a criminal company, out to keep any ground it has managed to gain, and at any cost necessary.

It is sad, really.

Where can a fair player with real talent go?

A lone ‘rock star’ developer has little chance of making much difference in such a huge corporation. So, many of these genius innovators go the only other route available to them, to unleash their creative outlet. That other route is the Open Source route, which happens to use Linux and GNU tools to work from. Open Solaris and many BSD Unix flavors, are also under the Open Source banner!

Now anyone that has a brilliant idea can release their ideas to millions of other, like minded people, with no resistance from corporate policy. This is why Linux is the Hip new heaven for Geeks. In fact, Linux and Open Free Software is nothing new. It is only in the last decade, or so, that Linux and Open Source has been recognized as a real driving force in the economy of whole countries. Thanks to the Internet.

So, if you are beginning to feel the Microsoft Oppression, and you need a new creative outlet, come join your new friends in the Open Source World.

Where to start?

I will show you all the common places you need to visit, as a baseline, to get started. Also, the transition does not have to be all or nothing. I expect Windows to be with us for many years to come, so dropping your Windows dependencies is not entirely required. However, you will find all the programs you once needed as being replaced by Open Source tools.

I know Visual Studio seems untouchable. But, Open Source has some amazing specialty tools as well as a big one, called Eclipse.

After working in the Open Source and Linux World for a few months, the mere thought of going back to Windows gives you this immediate feeling of Oppression and Limitation. You can’t peek into the Windows Kernel code, you have to pay for Licensing fees that break your bank, and when you can do it better using Linux and free of charge gives you a feeling of stupidity.

All of these things I personally experience. After using Linux for a while, looking back only depressed me.

Communication Channels

It’s kind of funny to hear the critics complain that Linux and the Open Source World is so disperse, and a maze of choices, making it impossible to know where to start. In fact, Linux and Open Source follow a core set of principles, that are there, only because they are logical.

Every program in the Open Source world has a Website dedicated to it. This includes the Linux Distributions themselves. This is different from Windows, in that, most everything Microsoft related is located on Microsoft’s Developer Network Website. MSDN is a nice resource for looking up what you need. But, it also has become a daunting website to navigate. The menu system is overloaded with endless categories and subcategories.

Linux and Open Source does things differently. Each tool or program has its own dedicated Website and in most cases, domain name! How about that for separation for organizations sake.

We will start with the Distros. From now on, I will refer to a Linux Distribution as a Distro.

Every Distro, in existence, can be centrally found at one convenient Web Site.

DistroWatch.com

DistroWatch is a fascinating site in itself. It has a top 100 most popular Linux Distro listing. It also will provide details on any Distro you want to learn about, providing links to Download the software and their Official Web Site. DistroWatch is a must Bookmark website. You are going to want to use this site to learn about Distros, which ones are the most popular, why that is and finally how to get them once you decide what you want to try. Also, keep an open mind. It may take a few Distro Installs and usage periods to decide which one is best for you.

Packages

After you have your Distro, you can learn about all the programs that are packaged with the Distro or Linux Operating System. Each program is collected into what is known as a Package. Unlike in the Windows world, a program is not simply an .exe file and a configuration file you never touch.

A Linux program also comes with docs, man pages, examples, config files, support scripts and the executables. When installing packages all these different parts are places inside specific directories on your Linux Distro.

Example:
docs usually go into /usr/share/docs/[program_name]
man pages (manual pages) usually go into /usr/share/man/[program_name]
examples (scripts or whatever) usually go into /usr/share/[program_name]/examples
configuration files usually go into /etc/[program_name]
executables end up in /usr/bin or /bin or /lib depending on the role the software plays

You need to shift your idea of a ‘program’ by expanding it to think of programs as Packages, for the reasons just described. But, another more important reason has to do with code sharing.

It is a long standing Unix Tradition to share code and as to not reinvent the wheel, if you will. In the Windows World, sharing of code is done in the form of DLL’s. In Linux they are called shared objects or Linkable files. Whatever you want to call the idea of allowing programs to share code, Linux has a system too. Linux also has never suffered from any form of DLL hell.

This is where the Packages concept is so important. Some Packages depend on other Packages, such as a Shared Library. If you try to install a Package and that Package does not know which shared Libraries it also needs in order to function, would render the Package useless.

However, Packages are smarter than that! They contain what is known as Meta data that contains information the Package needs in order to ensure everything gets installed and everything works smoothly. Think of it as a food chain. A Lion is dependent on the Zebra, the Zebra on the grass, the grass on the rain and sun. If I try to install the ‘Lion Package’ than my package and package installer better be smart enough to know it also needs to install the ‘Zebra Package’ in turn it knows to install the ‘Grass Package’ and so on all the way down the dependency tree or chain until all dependencies are satisfied. Only then will the Lion Package be installed, knowing it will operate, now that all dependencies are installed.

Linux has a very sophisticated packaging system, that has over time, become extremely reliable and robust. It is a core feature of Linux Distro that allow it to patch security holes quickly and update software on a continuous relentless pace! It truly is amazing.

A Package is now this ball of information that entails the executables, docs, meta data, samples and support files. This is one of the great achievements of software design, that lends itself to allowing collaboration. Not only does this save development time, by using what others are sharing or have already written but it also saves, disk space and is one of the reasons why a Linux Install is so small. We only need to install what we need.

A Packages Official Web Site

Having a place to goto about a software package is very important. But, how does ones find that Web Site. The best answer is Google. If we are, for example, looking for the Web Site for the package Postfix, one of the many Mail servers available on Linux, we would goto Google.com and type in

Linux postfix

The reason I did not just enter postfix in Google, it to ensure that we are associating the word postfix with Linux. There are many Linux Packages that use animal names or names that may relate to things other than Linux. By placing Linux as a keyword, ensures we will most always find the results we want.

We see that postfix.org is the official web site for this awesome and popular mail server, which I personally use. Going to the site we are welcomed with information about the Maintainer, right away.

Side note here: Most projects will have a .org top level domain. Remember, that Open Source is normally not related to commercial or .com’s, but rather an Organization of people that build the software.

At postfix.org we will find everything we need, regarding Postfix. Download sources, joining their mailing lists, documentation, add ons and information about who is currently the maintainer of the Project Package. It is all there.

Note, Sometimes the maintainers spend a lot of time on the presentation, look and feel of the site, while others just put up a black and white web page with the most basic links. What is important is that the information is there and accessible. In fact, if you have a problem with how a web site looks, you can contact the maintainer and offer to vamp up the site and make it look pretty! That is what the Open Source world is all about, my friends. Doing pro bono work is also a great way to build a portfolio if you are looking to show proof that you do have the skills you claim to have to future employers. That is what I did.

Project Maintainers

Every project has a maintainer. Sometimes more than one. Most the time, the maintainer is the inventor or originator of the project. They started the projected, contribute the most code, so naturally have the most say in the whole thing. You will find that Open Source, even though it is Open, it does have structure and organization to it’s madness. In fact, there is no madness to any of it’s methods.

But, what happens if the original maintainer dies or quits? In many cases, projects have a long list of former maintainers. Projects get passed around and change hands. This is very common. Not to worry, if the project has enough value and developers working on it, they will find a new project lead or maintainer and appoint them, update the site and all is back to normal.

Sometimes, you will use an Open Source Project that really is ‘dead’. Dead as in no one has updated the site, code or anything for a year or more. In cases like this a few things can happen. First of all, the software is perfectly fine and usable. You just might not get any bugs fixed. But, if the software project is usable, then by all means use it!

If you are competent at the language the project is using and you know how to operate an Open Source Project, than you may be able to adopt it.

If the project is important to other projects, as in their depend on it as a shared library, they can adopt it, to become it’s Maintainer. After all, the code is all there. No fork is needed.

It’s a perfect and beautiful way to make software and a perfect example of why chaos is not the result, but rather the opposite.

If this was a proprietary software company that suddenly disappeared or changed it’s name, many things would happen.

First the legal aspects, in fact everything is the cause of legality reasons. Trademark names, copyrights and fights over who gets the rights to the code. All of which would be fought in court, costing thousands of dollars in bullshit legal squandering.

Open Source is immune to this, because Open Source programmers are smarter than your average bears. They care about the software and how it can be integrated into the Open Source World. They don’t care about the legalities, since all of it can be resolved internally between themselves. All they care about is that the software get’s preserved so that the march can continue.

Mailing Lists

The best thing about all Open Source Projects is that they almost always have a Mailing List. Anyone can join the conversation and you can get to know the maintainer and all the participants. You can get to know how the project works and how they actually do things. Everything is Open and out there.

Also, there are usually multiple mailing lists, which are meant to keep certain discussions from needlessly drowning out others. The most common are Discussion and Developer Mailing lists. You may have no desire to help develop and contribute code to the project. But, you may want to know what new features are coming or ask general questions as a ‘User’ of the program. You need to join the right mailing list.

There is no one stopping you from joining the developer list, if only to silently read and see what the hell they are talking about, out of your own curiosity. This is completely acceptable and can be interesting. Just remember, don’t blabber mouth out a comment or question to the the wrong list!

All decisions happen right there in the mailing list. New features and even the occasional flame wars. Yes, it is not always cheery with rainbows and butterflies on these mailing lists. The people on them are professional passionate programmers. Depending on the friendliness factor of the project, if you ask a stupid question, that they deem stupid, could get you a response that may scare you and prompt you to unsubscribe from the list, never to return. While other lists are more forgiving to new comers and are happy to help you out.

One thing is for sure, regarding the mailing lists, they are moderated and it is best you say what you need to say in a clear and intelligent way. This will earn you karma and respect points. If other developers find your responses thoughtful, intelligent and formated well, they will reciprocate with code secrets of their own and may even result in making a friend or two.

There are entire docs written on the subject of proper mailing list ethics and procedures. I am not going to reiterate all that stuff. I will provide a link or two below, which you can book mark for your reference.

Open Source Mailing List Ethics

Maintainers of all Types

I kind of lead you on by saying that all Open Source Programs were packages. Did you ask yourself who does all the packaging work? Someone has to do it.

Open Source software is always distributed in Source Code form, when delivered by Upstream.

Upstream

Upstream is a term you must familarize yourself with and know what it means in the Open Source World. Upstream refers to the developers that created the Software Project, which also might maintain the Office web site, as well. Upstream can be thought of as a mountain stream where rain water collects and begins to flow down the mountains. The Software is the run off, or stream and he mountain is what is making the water flow downward. All software is destined to one of the many available Linux Distributions, out there. Upstream can be thought of as the top of the mountain or where the software is created which then trickles it’s way down the stream to the base of the mountain, which is the entire Linux Distro.

If you go from the base of this mountain, called Mount Distro, and claim upstream to the source of say the Postfix software project, then we say Postfix upstream is the location of where the Postfix developers are.

The reason there needs to be a distinction between Upstream and Downstream and ‘the base of the mountain’ is because of Bug Reporting and fixing. What happens if the Linux Distro finds a bug and needs it fixed? Typically the bug is reported to ‘Upstream’ or to the guys that develop the software with the bug. Unfortunately, upstream developers do not immediately fix bugs that are filed. A Distro may not want to wait for the upstream developers to fix the problem, so the Distro fixes it themselves. However, this creates a small, temporary fork of the code. One fork of the code with the bug in it and one with the bug fixed.

The situation can get complex and messy. It is up to the Distro that fixed the bug to maintain the patch and any others so that upstream can get a hold of them to then us them to fix the bugs.

Compiling from Source

The great thing about having Source Code you can compile, instead of installing precompiled packages, is that you can take advantage of your hardwares strong points. An example is AMD processors have differences from that of Intel processors. 32 and 64 bit machines also benefit if the source code is compiled for their architecture. It is up to the user to compile the software on whatever hardware they happen to be using. Linux software works on more hardware types than any other software in the world. Also, some may want this or that feature while others may not, in order to make the software run faster. The only way to satisfy these needs, is to distribute the software in Source form.

Package Maintainers

Not everyone is able to compile source code. Especially, mom or grandma. That is where Packages once again come in to play. Packages are precompile, have worked out all the dependency issues and can be easily installed and managed with a package manager.

Someone has to make a package of a software project. Making packages is actually a skill in itself. Also, just like everything in the Open Source World, there are choices in types of Package Formats. The two most common are DEB and RPM package formats. My personal choice is DEB packages or Debian.

In turn, DEB or .deb packages are maintaned by the software program apt-get or just apt.

An example in installing a Web Server with a single command is as follows.

apt-get install apache2

With that one command we install dozens of other packages ( .deb files ) that apache2 depends on, which are installed first, which apt than finally installs apache2. Apache2 is the package for the Apache version 2.2 Web Server, which happened to also be the most used Web Server on the Planet, at the time of this writing.

That is about as far as I will go with the package manager. Just know that each Linux Distro will use either DEB or RPM based packages. Easy enough? Only two to worry about.

The point of this article’s section is that for every task that needs to be done, there is a maintainer.

  • Maintainer of an Open Source Project
  • Maintainer of a DEB package for a Specific Linux Distro like Ubuntu
  • Maintainer of documentation for a specific Open Source Project
  • Maintainer of a project’s Web Site
  • Maintainer of a project’s mailing lists
  • Maintainer of a projects artwork
  • Maintainer of a projects server hosting plan or hardware

As you can see, a Maintainer can mean any task that needs to be done. The work load is divided up this way. So, if you have extra time on your hands, chances are there is a need for someone to step up as a maintainer of something. This is how Open Source is made, this is how we end up with entire projects like Ubuntu, a fully user friendly Operating System that is putting Microsoft’s underwear on fire!

it is almost too amazing to be true. But, if you figure in the number of people on the planet (9 billion plus), all the diversity of interests there are (everything imaginable) and people’s social desire to connect with others that enjoy similar things (if you are human you need to collab with other human beings), and a way for them all to communicate (the internet) and the big picture as to how and why this can happen, becomes apparent!

Linux and Open Free Software truly is a global project completely free to join, free to leave, free to take a break, free to spent every waking moment thinking about or whatever. It is nature and software is the result. Beautiful software that sings to us, restriction free and accessible to anyone that wants to contribute or use it.

Stop, hold on, I’m literally going to cry.

What now?

So, I’ve introduced you to how the Open Source World works. Depending on your skills, desire and how well you can ‘google’ will tell you what to do next. I can not tell you what to do next. If I could i would be Open Source God and of which there is not one, at least not one that I personally know.

The best advise I can give you is this.

Open a Browser. Dont matter which, could be Firefox, Opera, Safari or OK OK Internet Explorer.
Goto google.com or yahoo.com or OK OK live.com
Use your fingers guided by your brain and begin exploring where YOU want to go next…

Enjoy and Best Wishes.

Before you think about becoming a Hacker…

Friday, September 5th, 2008

Anyone aspiring to take on the mythical task of becoming a Computer Programmer, Hacker, Coder, Computer Engineer, Scientist or whatever you want to call us, often asks themselves, “What programming Languages should I learn first?”.

This simple, yet important question is one that is often hard to find the answer to. You can ask current Programmers what they recommend and they all might give you a different answer. You could consult your college counselor of the Computer Science Department, but they often return biased answers because of the College they work at.

There are so many different Computer Languages, no different from the hundreds of Spoken and Written Human Languages.

The following is my take on trying to answer this for you. I will first tell you strait up what you should learn and in what order, depending on what General Subject you want to begin to study.

Step 1 - Decide which Platform you want to Program in.

  • Windows - Win32 Platform
  • Unix / Linux Platform
  • Macintosh or Apple’s Platform

There are many many more platforms, but it really comes down to these 3 Platforms. In fact, the line between two of the three platforms I mention are very blurry, because Apple Macintosh is actually derived from a Unix flavor, called BSD. In turn, Linux was greatly inspired by Unix, so many of the idioms and programming jargon intertwine.

I personally started on the Microsoft Windows (win32) platform. But, I easily took the knowledge I learned about programming in C++ on Windows and translating it to C++ on Linux, with little effort. Thankfully, Computer Languages tend to not change, too much, from Platform to Platform. C++ on Windows is a bit different from C++ on Linux, but not to the extent that they are so different they are indistinguishable.

So, what this comes down to is that which Platform you choose really should be the Platform you mainly use on a day to day basis. This may be due to your job only using Windows or all your friends using Linux or Apple OS X. I recommend you just pick the Platform you are currently most comfortable with. After a few years, you will branch out, due to curiosity, to other Platforms, if you like Programming and actually get something out of it.

Step 2 - Decide what area of Computing you want to begin learning.

  • Web Development
  • Game Development
  • Server Administration
  • Systems Development

There are many sub systems of a Computer System. If you get tired of Web Programming, you have freedom to move to another sub system of the Computer.

What I recommend, is to pick Web Development. The reason I recommend this to first time Programmers, are two fold.

1) Web Development involves lighter topics then say, Kernel or Device Driver programming. Web Dev uses Languages that are actually Mark up languages that do not require compiling your code every time you want to see what it does. Also, a debugger is not necessary. This is perfect for getting your feet wet in the World of Programming Computers.

2) Has to do with the notion that you are networked from the start with other Programmers, Tutorials and Guides that the Internet offers. If you are Programming and you need help, your already on the Web and Programming it. Vast amounts of resources in terms of People, Documentation, Guides and Tutorials are all at your finger tips.

Now, the same can be said of choosing any other sub system, you can get on the Web and Google Search, ‘How to program Drivers for Windows or Linux.’, as you could for Web Dev. So, it is up to you. It is also up to how comfortable you are with Logic, Problem Solving, Arithmetic and getting quite a bit Geeky.

A final reason why I recommend Web Dev over more heavy subjects like Kernel Driver Programming is that you need to first see if you “Have what it takes.” to even begin to think of yourself as a Computer Programmer. Programming is not for everyone. I have seen many of my past fellow classmates drop out after the first ‘dose’ of what was to come! Web Dev, I believe, slowly gets your feet wet, without potentially scaring you away. Later, after you have determined this is something you want to do and can do, you can just as easily go down the path of Systems Development and becoming a heavy hitter or a Hacker. Not to be confused with malicious behavior like a Cracker.

Step 3 - Choosing your Computer Language

This choice depends on what Platform and Sub system you choose earlier. You are lucky that most Computer Languages translate from Platform to Platform very easily. Many of the languages, mostly Open Source, were not Cross Platform friendly, as they are today.

Languages from the two major schools of thought are Closed Source vs Open Source. You will find you can program C#, a Microsoft Language, on Linux using Mono. I believe every major Open Source computer programming language has been ported to work on Windows! So, be thankful of that.

The following is a list of languages that I will assign 3 traits to, after the name of the language.

Example:
Language Name
- Platform best suited for.
- Main purpose the language is used in.
- Compiled, Interpreted, Scripted or Mark up

The last trait — Compiled, Interpreted, Scripted or Mark up — each of which I describe below.

  • Compiled - Languages that must be compiled, by a compiler, before they can be executed.
  • Interpreted - Languages that do not need to be compiled manually, instead they are compiled on-the-fly.
  • Scripted - Languages that are mostly Platform specific and do not need to be compiled to execute.
  • Mark up - Arguable not an actual Language, but in our case is and did not require compilation.

Don’t worry too much, about the list above. It is not important, as much as, just diving in and learning. But, you will, in time, learn what all of this actually means. I describe it here, only so I can include the trait in my list of Languages below.

C
- Any platform
- Systems Programming, Kernel, Driver and low level Programming.
- Compiled

C is what I like to call, a foundation language. C is the basis for which other languages were derived from. In fact, some languages are really just C programs, but with a new syntax to make writing C easier. Many argue that learning C should be the first language you learn, because once you learn C you can easily learn any other language from there going forward. However, C is a very anal, if you will, language. It does not hold your hand, it is not tolerant of typos or even the slightest error. In fact, this is what makes C so powerful and the most widely used Cross Platform language to ever exist.

C++
- Any Platform
- Systems Programming, Kernel, Driver and low and high level Programming.
- Compiled.

C++ is a derivative of C. Put simply, C++ is the OOP — Object Orientated Programming — addition to regard C. C++ introduces the concept of OOP, which is a deal breaker for a lot of aspiring programmers. I say, deal breaker, because many programmers that start out just fine in their studies, until they hit the OOP block. OOP is a programming style, of which, many do not understand and therefore quit programming, altogether. OOP is beyond the scope of this article. C++ is just like C, only with added features that make programming large and complex software programs easier to read and maintain. Some programs are basic, like a basic Calculator, but a 3D Graphics program like 3D Studio Max or a photo editing one like Adobe Photoshop are enormously complex. These enormously complex programs can be made possible, with languages like C++.

PHP
- Windows, but was originally derived on Linux
- Web development, arguably the best language for this task.
- Interpreted

PHP has become the, de facto, programming language of choice for Web Development on the ‘back end’ of Web sites. ASP is Microsoft’s answer to PHP, but PHP is now over shadowing ASP, even on the Windows platform! PHP is a cross between C and Perl. PHP uses C syntax and logic, because it was originally created to make C programs, but using PHP syntax to make writing the C program easier and with the focus on replacing Perl as the back end language. PHP is really just a wrapper around C. As I mentioned in the C language summary earlier, C is very unforgiving to even the simplest mistake. PHP on the other hand allows for a much easier to read and write programming language. In particular when it comes to mixing HTML with PHP. If you want to focus on Web Development, on the back end, PHP is really the only sane choice. There are other choices, but if you want to save yourself time, PHP is the language for such a task. It allows you to easily connect to all types of Databases, process HTML and create dynamic Web Sites that rely heavily on a Database to store content. Examples of Web sites that use PHP and heavy use of a Database would be News Content portals, Social Networks and Blogs or Web Logs.

JavaScript
- Any Platform
- Web Browser logic
- Interpreted

JavaScript is the language all Browsers use to control them, pragmatically. It is possible to use VB Script, but even Microsoft’s Internet Explorer defaults to JavaScript. It is a loosely typed language with basic classes and functions for easy string manipulation, walking the DOM and Ajax. If you want to be a Web 2.0 programmer, you need to know JavaScript. Chances are you will be using a JavaScript Library or Toolkit, like Dojo or JQuery. JavaScript can turn your plain old Web Browser into an interactive GUI application. Now more than ever, programming is moving off the Operating Systems and into the Web Browsers. Gmail, Yahoo! Mail, Google Docs and more are all software programs that invented a new type of programming known as Software as a Service or SaaS.

HTML
- Any Platform
- Web pages
- Mark up

HTML is the structure of all Web Pages. It is not technically a programming language, but for our purposes it will be. The definition of a Programming Language is one were you have code that executes line by line and able to create logic flow based on the state of variables within the program. HTML has no logic control, that is what JavaScript is for. So, HTML although not a Programming Language is a Mark up Language or Protocol transmitted using HTTP on top of TCP/IP. HTML will help to train your mind to think like a programmer, without it being too intense. Learning HTML tags and attributes is a good seeding point to get your brain cells aligned and the wheels spinning in time to learn to Program.

CSS
- Any Platform
- Web Browser styling
- Mark up

CSS stands for Cascading Style Sheets. It is a way to stylize Web Pages. It is also a way to theme Web Sites by placing all the styling instructions into a seperate file or location make it easy to swap different CSS files for different theming or stylizing effects, without having to update the HTML. CSS was invented to make stylization of many many Web pages easy to change and without having to rewrite entire HTML web pages. CSS like HTML is not a Programming Language, although there are some attempts by Microsoft to add some logic control code. But, just because Microsoft tries to allow this, does not mean that is the standard.

Perl
- Windows, but originally derived on Unix and Linux.
- All purpose, multi-capable, no definitive purpose
- Interpreted

Perl is one of those languages, I find fascinating. That is not to say, I like Perl though! Perl has been around for a very very long time. It is the original Web Dev language, until PHP put an end to that. Some would argue, that Perl has become too complex. You can do more tasks, in one line of Perl code, than any other language. This results in code that looks almost unreadable. Perl is truly, the Geekiest of any language, ever conceived. As a result, many gravitate toward it. It can do anything from acting as a simple shell script to a full blown GUI application. Perl is also referred to as, a duct tape language, in that, it is so versatile and complex, you really can do anything with it. But, like I said, it is very geeky and very hard to learn, read and program with. The creator of Perl, Larry Wall, 100% reflects in his personality the personality of Perl. Love it or hate it, Perl is one of those languages you ought to know, at least a little about, but are not expected, by any means, to feel unworthy if you find it overwhelming!

Python
- Linux, but has been ported to Windows, as well.
- GUI Applications
- Interpreted

Python is a new comer as a Computer Language. Yet, Python has exploded in popularity. What Perl is to unreadable code, Python is to very readable code! Python has one of the cleanest syntax of most any language. It does this by using tabs and indentation, which you should be using already, to structure your code. There are no curly braces to indicate new code blocks like class, functions and logic control statements. It is a pure Object Orientated Programming language. It’s main usage has been application programming, but is capable of just about anything. Shell scripting, Web Dev and more. This is due to it’s modular design. If there is a function that Python can not perform, it is relatively easy to write a module to make it happen. Perl, PHP and any other Programming language is capable of the same. Some call the modules, libraries, but is essentially the same thing. It is simply a matter of how many are willing to contribute to the building of these modules or libraries that make a Programming Language powerful in different areas of the Computer System. People love Python’s easy to read syntax, which results in a lot of people writing the modules and libraries.

Java
- Any Platform
- GUI Applications
- Compiled

Java was the first language to try to be truly, cross platform. This means if you write a program for a platform like Windows, it will also run, with no modification (porting), to run on another platform, like Linux. It is also a truly and completely Object Orientated Programming language. Everything, even main(), must reside in a Class. Java also made programming easier with the removal of pointers. Pointers are powerful, but also error prone making memory leaks easily possible. Java also has a Garbage Collector. A garbage collector is a mini program routine, that periodically runs to prevent or remove entirely, memory leaks. Many argue that Java does not teach a programmer how to properly think like a programmer, because of all the hand holding it does. Java did have the potential and expectation of becoming the language of choice for everything and on every platform. But, for many reasons, this never happened and Java has now become over rated. Java is taught as an Introductory Computer Language. But, I tend to agree, Java may not truly make you understand the inner workings of a computer. What I got from Java was the ability to understand OOP (Object Orientated Programming). OOP is a very important concept to learn and Java, since everything must be an object/class, forces you to learn OOP.

C# - pronounce ’sea sharp’
- Windows, but recently ported to Linux
- GUI applications
- Compiled

C# is Microsoft’s answer to Java. In fact, C# looks identical to Java. C# also uses a virtual machine to allow it to be Cross Platform. C# is also Microsoft’s answer to the gripes that C++ Programmers had. The removal of pointers and a Garbage Collector also exists to aide the Programmer. C# expands on Java by also allowing points, if the programmer wants to use them. But, C# is a part of a greater idea, being it is a .NET language. A .NET (pronounce dot net) entails any programming language that has been ported as a .NET language. Visual Basic .NET, C++ .NET, Jscript .NET, IronPython .NET and many more are all apart of the Microsoft .NET framework. Microsoft got it right, with their .NET frame work idea. It is possible to write a C# program that also includes Visual Basic .NET code or any .NET language! The idea of allowing dozens of languages to act as one, is a powerful way to program.

.NET is a Microsoft framework, that allows any .NET enabled language to intertwine. This is possible, because of an Intermediate language byte code that is produced by all .NET languages. This intermediate code is than executed by the CLR or virtual machine. This virtual machine ran run any .NET code, resulting in the ability to easily use a VB function or class in a C# program and vice versa. .NET really is exciting, from a programmers stand point.

A Linux ‘rock star’ programmer by the name of Miguel de Icaza, ported C# to the Linux platform and called it Mono. Mono is one of the most controversial Linux projects ever created, because many view Microsoft as an Evil corporation and the idea of programming anything on Linux using Microsoft technology, is frowned upon. Even though Microsoft essentially ripped off Java and called it C# as well as, Java’s virtual machine that executes intermediate byte code and called it .NET.

Never the less, if you are going to program on the Windows platform, .NET is what you will be using.

Download the Express (free) version of Visual Studio .NET

Step 4 - Deciding what Tools to Program with.

You are going to need a text editor, at the very least. A more powerful type of editor, designed for programming is known as an IDE. Integrated Development Environment. The difference between a text editor and an IDE, is that, an IDE can code assist, debug, fold/unfold code, navigate multiple files via functions and class methods. A text editor may include code highlighting and maybe code folding, but that is about it. The advantage of a good old text editor, is that it is responsive, light weight and perfect for quick edits.

The Windows Platform will most likely result in the use of Microsoft’s Visual Studio. You can get the Express (free) version or the Professional / Enterprise paid version. If you are just starting out, using the Express version is recommended, because the versions you pay for can cost upwards to a $1000 or more. Working for a company? Getting them to buy you the Professional / Enterprise Edition is your next bet.

The Apple OS X Platform is essentially Unix at the core. A Macintosh shell terminal runs vi, emacs. Xcode is Apple’s programming IDE that comes included on the install CD/DVD. However, Eclipse is also widely encouraged for use on a Mac, just as it is on Linux. I have never programmed a thing on any Mac, but since Apple OS X is just Unix, with a pretty GUI, makes it very Linux / Unix like.

The Linux / Unix Platform comes packed with numerous options. The closest thing Linux has to Visual Studio is Eclipse, also capable of running on Windows. The range of choices can become daunting, for the Linux new comer. My best advice is to start using the following two tools. You can experiment with the others in due time.

Eclipse and gEdit.

Eclipse is the mother IDE of them all. It is modular and capable of literally morphing itself into any programming IDE. This includes; PHP, Python, C, C++, Java, HTML, JavaScript, CSS, Ruby and even C#. It can also act as an FTP client, team collaboration, version control client and more. Eclipse is a framework for building and IDE with companion tools, all integrated together. In many ways, Eclipse puts Visual Studio to shame. And that is no small claim, because MS Visual Studio is awesome in it’s own right.

gEdit is a feature full text editor. gEdit can highlight just about any programming language, includes built-in FTP, secure remote editing and tabbed windows. gEdit is also very light weight and responsive. gEdit, like Eclipse, is also modular. If you want the code folding feature, there is a plug in you can easily install to make it happen. gEdit, however, was meant to be small and light weight, so if you want debugging and code assist, use Eclipse.

Do you really need code completion or code assist?

Code assist/completion is a feature where a text pop up or menu attempts to understand what function or variable you are trying to type. For example, if you start typing,

function mysql_

al pop up or menu of all the functions beginning with mysql_ will be listed. This allows you to select the remainder of the function. In other words, you could end up with the following,

function mysql_connect(param, parm, parm …

It assists and completes code you are typing. It also will list possible arguments the function may allow, and may even include a small summary of what the function does. It is like having a manual of all the functions and possible arguments, built right into the editor or IDE.

But, is it really necessary? Is this lazy programming? Can’t the programmer just look up the functions from the manual and learn that way?

These are all good arguments. In someways code assist/completion can get in your way. It can be annoying to constantly have something pop up and suggest things. It can also slow down how fast you are able to type code, because the code assist analyses every key stroke while trying to determine what your typing. I believe, you will become a better programmer, that knows the language better, if you manually look up functions and study the possibilities yourself.

It is really up to you.

I think at first, it is OK.

But, try to study the manual as well. Don’t entirely rely on code assist/completion to be there for you.

How I learned PHP so well, was because I used the editor called Ultra Edit 32, which is much like gEdit. It had no code assist, no code folding and nothing fancy. I relied on the CHM version of the PHP manual to look up functions, resulting in an intimate understanding of the general functionality of PHP.

Granted, it is not possible to memorize every little function and argument and their order. Nor will any good programmer tell you that you should. But, it is good for the learning experience, to not rely on your editor or IDE to do too much of the thinking and typing for you!

Do you need code folding?

Code folding is simply the ability to roll up a function so only one line of code represents the entire function. A plus sign little icon is usual next to the folded function to allow you to expand or unfold the code so you can view it. This is a wonderful feature to have if you have dozens or hundreds of functions in a single file. It is nice to see a listing of all your functions, line by line, instead of having to search or scroll the entire length of the file.

However, code folding has to work well in your editor or IDE. If it doesn’t fold and unfold code quickly or causes little glitches, in some cases can even insert random bits of data, than you should either get a new editor or turn off the code folding.

Do I need a debugger?

A debugger allows you to execute your program line by line or jump to than stop an break points that you may have set. You can also observe the state of all your program variables. A debugger really is essential when programming in C or C++ or any project that is huge. But, if your programming a Web site using HTML and a little PHP, perhaps even some JavaScript, a debugger may be over kill.

If you do not have an IDE or editor with a built in debugger, it is quite easy to debug the code by adding code that dumps the contents of specific variables to a file or screen. Especially when doing Web Development, it is almost always not necessary to have a built in debugger, since PHP scripts tend to be quick and to the point. I usually echo() or print() variables to the Web Browser in parts of the code I am trying to debug. There are so many editors and IDE tools out there for Web Dev that make a big deal about debuggers, when it is all just more distraction and complication to deal with. Using a debugger can be a complicated process itself, on top of having to keep in your head the program your writing.

So, my advice about debuggers is this. If your Web Deving, using PHP, HTML, CSS and JavaScript, no debugger is needed and in fact is added complication and more distraction. Just use echo() for PHP and alert() for JavaScript. All of the languages just mentioned are Interpreted and not compiled, so tend to not require a full blown debugger to isolate and troubleshoot problem code.

If your programming a C or C++ even C# project, chances are a debugger won’t hurt. This is because these languages are compiled languages which means you have to compile than execute/run your code. These types of languages also are used in more complex GUI applications with a lot of functions, buttons, menus and widget controls to build and add logic to. A full featured debugger complete with break points and stack and register views for observing memory maps and such, become beneficial to you at this point.

So, if coding Interpreted Languages, No, Debugger not Needed.

If, coding Compiled Languages, Yes, Debugger is Recommended.