Thursday, February 10, 2011

An explanation of The Cathedral vs. the Bazaar.

The following is an explanation of The Cathedral vs. the Bazaar.

The Cathedral vs. the Bazaar (or Cathedral and the Bazaar, abbreviated CatB), is an essay by Eric S. Raymond about methods of software engineering, based on his experiences developing the Linux kernel and managing the open source project, fetchmail. It contrasts the Cathedral and Bazaar models of software development.

The Cathedral method is where a small number of developers wok to develop a program in private. This process is not very efficient, however its advantage is that it allows a company to develop a product, market it, and make a profit, keeping their code proprietary. The profit motive encourages the development of limited use programs, which might otherwise never get written.

The Bazaar model is where a large number of programmers work together, publicly, to develop programs solely out of their own interest in doing so. The only way to do this is to use open source freeware. All of the programming is by necessity available to anyone, and none can be proprietary. The essay's argument is that "given enough eyeballs, all bugs are shallow" (Linus's Law). This simply means that the more programmers working on developing a certain program, the more efficient will be the development of the program.

One of the side effects of the Bazaar model is that it will almost certainly eliminate many private companies from the field, with the resulting economic effects. As Microsoft's "Halloween Document" illustrates, even the industry giant is worried about this. It will also greatly expand the library of free software, and make it impossibly for companies to charge excessive prices, or use monopolistic practices, for their software.

According to Eric Raymond there are 19 guidelines for creating open source software:
(Quoted from Eric S. Raymond (1999). The Cathedral & the Bazaar. O'Reilly. ISBN 1-56592-724-9. http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/: )
1. Every good work of software starts by scratching a developer's personal itch.
2. Good programmers know what to write. Great ones know what to rewrite (and reuse).
3. Plan to throw one away; you will, anyhow.
4. If you have the right attitude, interesting problems will find you.
5. When you lose interest in a program, your last duty to it is to hand it off to a competent successor.
6. Treating your users as co-developers is your least-hassle route to rapid code improvement and effective debugging.
7. Release early. Release often. And listen to your customers.
8. Given a large enough beta-tester and co-developer base, almost every problem will be characterized quickly and the fix obvious to someone.
9. Smart data structures and dumb code works a lot better than the other way around.
10. If you treat your beta-testers as if they're your most valuable resource, they will respond by becoming your most valuable resource.
11. The next best thing to having good ideas is recognizing good ideas from your users. Sometimes the latter is better.
12. Often, the most striking and innovative solutions come from realizing that your concept of the problem was wrong.
13. Perfection (in design) is achieved not when there is nothing more to add, but rather when there is nothing more to take away.
14. Any tool should be useful in the expected way, but a truly great tool lends itself to uses you never expected.
15. When writing gateway software of any kind, take pains to disturb the data stream as little as possible—and never throw away information unless the recipient forces you to!
16. When your language is nowhere near Turing-complete, syntactic sugar can be your friend.
17. A security system is only as secure as its secret. Beware of pseudo-secrets.
18. To solve an interesting problem, start by finding a problem that is interesting to you.
19. Provided the development coordinator has a communications medium at least as good as the Internet, and knows how to lead without coercion, many heads are inevitably better than one.

Sources:
http://en.wikipedia.org/wiki/Halloween_Documents

The Cathedral and the Bazaar: Musings on Linux and Open Source by an Accidental Revolutionary (O'Reilly Linux) (Hardcover) by Donald Mitchell

http://www.ite.poly.edu/chapel_printable.htm

http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/

http://en.wikipedia.org/wiki/The_Cathedral_and_the_Bazaar

Eric S. Raymond (1999). The Cathedral & the Bazaar. O'Reilly. ISBN 1-56592-724-9. http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/

Friday, February 4, 2011

CIT 128, Blog # 2, This is a short description of the Linux kernel.

This is a short description of the Linux kernel.

The Linux kernel is the core of the Linux operating system. It is an enormous mass of software (over 6,000,000 lines of code), that allows different applications to be run at the same time, on the same computer. Although the Linux kernel can be considered one large system, and does occupy a single address space on the hard drive, in reality it is made up of many subsystems that manage different processes, such as memory management, communication management or device drivers. Before the development of the Linux kernel (or similar operating systems) it was necessary for programmers to develop only in the particular machines language, with only one user or application being run at a time. This was particularly cumbersome, difficult and inefficient.

Friday, January 28, 2011

Cit 114 Blog #1

Hi Kathy,
This is Curtis Klein. I am using the same blog I used for the last class I took with you. I hope this is OK. I look forward to studying with you again. Below are 7 things you do not need to know about me.

1. I am rapidly going bald.
2. I am a Real Estate Broker.
3. I greatly prefer warm weather to cold weather.
4. I have worked in Thailand, I India, and Honduras.
5. I do not like peas.
6. I am a very good cook.
7. I like hiking, but not driving.

Monday, May 10, 2010

Blog 14

Blog 14

Your mother has written you an email wondering about viruses. Search the Internet to find a "new" virus you wish to warn her about. Tell her about the virus, what is does, and more importantly, how to remove it. Don't use technical terms, she won't understand it. Tell her what to watch out for in general and how to prevent getting any type of virus.

Hi Mom;

Ther is an update to a “Conficker”, a virus that first appeared in November 2008. Conficker, also known as Kido, Downadup, Downadup, and Downup, has gotten its latest upgrade in April 2009, to make it much more dangerous. Conficker works by infecting websites, and then passing itself on to computers when they connect to the website. The new version checks out 5000 website addresses at a time, instead of the 500 that the old version did. This greatly increases the chance of finding a website that is not as fully protected as it should be. Microsoft has designed a fix for the problem in its Windows programming, but it has to be used by the web hosts, and with this many targeted it is likely some will not get the upgrade. McAfee (the anti-virus company) has also released a fix for this virus for home computers, so make sure to keep your virus protection up to date!

Conficker will cause Windows to continually restart, lose internet connections, and drop your toolbar.

With more than 7,000,000 computers now infected, Microsoft is offering $250,000 for information leading to the arrest and convictions of the people who wrote or use Conficker. It is believed that the origin of Conficker is probably the Ukraine.


Sources:

http://en.wikipedia.org/wiki/Conficker
www.microsoft.com/security/worms/conficker.aspx
www.symantec.com
vil.nai.com/vil/content/v
http://www.thetechherald.com/article.php/200911/3157/Conficker-Worm-fighting-back-a-new-variant-discovered-disables-security-measures

Sunday, May 2, 2010

Blog 13, Curtis Klein

Pick a legislator, a govenor, a vice president, a senator,a president, or someone in power and tell me where they stand on technology.

Harry Reid does not seem to be extremely technology oriented, although he does claim to be. I say this because there is not much he actually does with it. He is a member of the Congressional Internet Caucus, which is a group of 150 Congress people and Senators trying to educate each other about using the internet, and promoting growth and use of the internet.(1) He was also instrumental in getting 122 acres of land for UNLV to be used for their Harry Reid Research and Technology Park.(2) UNLV has a research center on the park to support technological and economic growth.
Senator Reid recently said that with its climate “Nevada is poised to be a leader in the clean energy revolution.”(3)
In what is probably Harry Reid’s strongest stance on any technology issue, he came out very adamantly in favor of stem cell research. The following is a direct quote from Harry Reid’s website (or at least what appears to genuinely be his website.
“Democrats will not give up the fight for stem cell research. It is a fight America must win. We're going to press Republicans to override this veto--just as we pressed to get it to the Senate floor and just as we pressed to get this bill passed.

This should have been a day of hope for millions of Americans. Democrats listened to the American people, and through our persistence overcame Republican delays to pass critical stem cell legislation.”(4)

Personal note: Although I tried to keep this essay as non-political as possible, it is impossible to write about any political figure without reflecting their views

References:
(1)http://www.harryreid.com/page/community/post_group/VIPs/Vjxhttp://en.wikipedia.org/wiki/Political_positions_of_Harry_Reid
(2) http://www.unlvresearchpark.com/park-
(3) history.htmlhttp://www.ontheissues.org/Background_Technology.htm
(4) http://www.ontheissues.org/Economic/Harry_Reid_Technology.htm

Sunday, April 25, 2010

Google’s new operating system

This is an essay on the NPR speech about Google’s new operating system.

Google’s new OS “Chrome” is coming to market next year. Google already has an operating system for smart phones called “android”, however moving into the PC operating field will pt them in direct competition with Microsoft. Whether Google will be successful may be in doubt, due to Microsoft’s advantage in already providing OSs for 90% of the worlds PCs. There is always inertia that helps prevent companies that have a system that works move to another system.

Goggle may counter this by making their profit off the added value having their own operating system will give advertising on their search engine. However if they give away their system entirely, or undercut Mycroft’s price too drastically, I would expect some lawsuits concerning antitrust violations and unfair business practices.

It will be nice to see a bit more competition in the OS field.

Sunday, April 18, 2010

Blog 11, Curtis Klein

What is Linux and who would use it? Would you? Keep in mind this is worth 10 points so it will be graded accordingly. Also, remember to use your own thoughts and ideas.
The following is a direct quote from http://www.linux.org/ :
“Linux is a free Unix-type operating system originally created by Linux Torvalds with the assistance of developers around the world. Developed under the GNU General Public License , the source code for Linux is freely available to everyone.”

What this means is that Linux is an operating system for computers (or computer like devices) similar to Windows, however it has some important differences from windows. Probably the most important difference is that Linux is free and Microsoft charges fees for using Windows. This makes a big difference if you are writg a program for your own use, running a business and need to watch your bottom line, or simply a philanthropist who wants to give away his work. Also: Microsoft has a very bad reputation for limiting it’s applications to working only with Microsoft products, a policy that many consider an antitrust law violation. As nothing is ever perfect it is necessary to keep in mind that Linux also has some problems. There are often compatibility problems between Microsoft products and programs written in Linux: for instance you may not be able to copy and paste from Microsoft Word to a Linux based system. Also there are license based rule that apply to those using Linux. For instance: If you are a company writing proprietary software for your products in Linux, you are required to release your source code to anyone that asks for it. This leaves you open to having your work copied, and knockoffs sold. Technically speaking, software is not written in Linux. Linux is the operating system, and UNIX is the programming language it is written in.