Too Cool for Internet Explorer

Saturday, December 27, 2008

Rails 3.0 – LIVE, released!

Or: How to NOT kill a brand.

WTF: a Play Station 3! What is this article about? Something I hope will NOT see in the near future.

Sometimes it is difficult a great brand to stay on top. And if that brand is an Open Source one…

Open Source philosophy is sometimes dangerous. Some people out there believe Open Source means “truly software democracy at work”, if you don’t like it, choose another one, or do it for yourself. Well; it is OK thinking that way if you have no serious business attached to an Open Source technology. Did someone asked how many production projects are running Rails 2.2.2? Or even Rails 2.0? Or Merb 1.0.5? Or even Merb 1.0? Why so many releases? Why so close?

Look at this Merb – Rails, so called “merge”. In between the lines we can Read: Rails “eats” Merb. But that is not necessary a bad thing. I think we are just on a high level of WTFs per hour on this subject. BTW, the best “merge” definition I have got is: “To blend gradually into something else”.

I’m a newbie here, I’m focusing on Rails, just because a newbie need to focus on something, but I have made a fast incursion on Merb at RubyLearning (beta course), and I need to say: I like what I have seen there. The only drawback was it wasn’t working fine on Windows, but I think they have fixed this on a later version, so…

Now back to the point: I don’t care if they call it Merb or Rails, but it is fair to keep the bigger market share brand, so, we can say the brand Rails “eats” the brand “Merb”. May be it is time to find a new real OPEN SOURCE logo (that is for DHH) and improve the brand into something like “Rails 3.0 – LIVE”, to celebrate that.

But the same COULD NOT be applied to the teams, they MUST be merged. That is what I really care about.

The way they will move from now on, will make history (or not). They have established the brand: “Rails 3.0” it is, but which is the strategy?

I think they must have a common focusing point on Rails 3.0, two in fact:

  • Convince Merb users that they can upgrade to Rails 3.0 and their project will remain almost the same, and they will not need to “rely on Mack, Waves, Sinatra and others to fill in the gap”.
  • Convince Rails users that the new options and technologies available will not necessary change their projects a bit, will not introduce new bugs and if they want Rails will remain as opinionated as it is now.

There must be a mission: “No pain, plenty of gain” for both current brands users.

I have read that “Merb will keep on living and be supported for a very long time. (we will keep on fixing major bugs even after rails 3.0/merb 2.0)”.

To be honest, I think it is a bad idea. It means the newcomers on the Rails core are still attached with their old brand, and if that is the point, they will be a team inside a team, not a merged team with a common objective.

So people from the Rails core: the older ones and the newcomers, PLEASE, THIMK.

The users, THE CUSTOMERS, don’t need two brands for so long IF the remaining one gives the options they need, so, keep in mind the two focusing point mentioned above and MOVE ON.

A real and complete team merge MUST be done when Rails 3.0 get released.

And Merb support MUST be ended with Rails 3.1 or Rails 3.2 at least.

Or, you can remember the classic: “How to kill your brand”. Coincidentally or not, they were talking about version 3 at that time too.

I hope there will be a time in the future we can say: we believe they two become one.

Tuesday, December 23, 2008

Merb is DEAD

Well, I don’t think so, in fact I think Merb is now immortalized, just because it twist a fundamental concept on Rails World, which is: “Rails is an opinionated Framework”.

You can see all sort of reasons, why people adopt Merb or Ramaze instead of Rails and use other alternatives on the full stack like Rack and Thin, all over the place.

Since Rails could now dress all Merb good features, reasons to start developing a “new” framework against Rails, will start to diminish from now on.

Here are the basics on Rails 3.0 prototype on the table:

"Rails is a full-stack framework and will remain so, but there’s no reason we shouldn’t also make it possible to run with less than the full monty (“rails myapp --core” and “rails myapp --flat”)."

"Merb has a lot of Rails pieces rewritten to be faster. We’ll be bringing all that good stuff over."

"Rails will always have a default answer to every question within the stack. But you will have the option of your choice on: TESTING, ORM, TEMPLATING, AJAX. Yes, we’ll have a default, but we shouldn’t have any form of discrimination against alternatives."

"Too many plugins break when Rails is updated. The Merb guys committed to a public API with tests to ensure that it wouldn’t break. They’ll bring over that line of thinking and give Rails 3 a tested and documented API for extensions that won’t break willy-nilly with upgrades."

"The probably-overly-optimistic goal is to have at least a beta version ready for RailsConf 2009 (May 4 to 7) in Las Vegas."

On the other hand, there are some side effects over the earlier adopters of Merb: speeches, keynotes, courses and books and even applications, are now on the spot. What to do?

Rails’ official blog announcement.
Rails’ official site announcement.
Yehuda’s blog announcement.
Ezra’s blog announcement.
Matt Aimonetti's blog announcement.
Carl Lerche’s blog announcement.
Lori Holden's reply.
EngineYard’s blog announcement.

Well, that is it.

Marry Christmas!

Monday, December 15, 2008

Test on color code

This is a test on posting colorized code here on Blogger:

def creditcard?(type = nil)
number = self.to_s.gsub(/[^\d]/, "")
return false unless number.length >= 13

if type
return false unless creditcard_type == type

sum = 0
for i in 0..number.length
weight = number[-1*(i+2), 1].to_i * (2 - (i%2))
sum += (weight < 10) ? weight : weight - 9

return true if number[-1,1].to_i == (10 - sum%10)%10
return false

After that I have edited the post to check the consequences...

And then edited another time to fix it... Very fast.

And here is the source: A Brent Sowers' article.

Saturday, October 18, 2008

Rails Summit Latin America Unplugged

Why unplugged? Well, just like a few other guys on this event (I have counted six on the same situation), I have no notebook, no iPhone, and I was not connected to the Web the four days I get there.

But to be honest, I feel good at the end. Why? Well, I’m a speaker too, and I will never be caught accessing the Web when a presentation is taking place. So, looking this way it was good. I give these fantastic guys my FULL attention.

Stand up: Fabio Kung, David Chelimsky, Obie Fernandes, Phillippe Hanrigou, Dr. Nic Williams and Chad Fowler.
Seated: Fabio Akita, Hongli Lai, Gilberto Mautner, Carlos Brando, Danilo Sato and Luis Lavena.

Stand up: Obie Fernandes, Phillippe Hanrigou, Dr. Nic Williams, Chad Fowler, Chris Wanstrath and Manoel Lemos.
Seated: Carlos Brando, Danilo Sato, Luis Lavena, Vinícius M. Teles and Carl Youngblood.
Laid down: Gilberto Mautner.

Anyway, this event was really really awesome! It will be a mark on Latin America’s Rails Community. Not only Brazil, but other neighborhood countries where present on the audience.

About the 1st day, there were two very short and special moments:

At the beginning when Gregg Pollack and Jason Seifer from RailsEnvy and EnvyCasts bring us a new video about the event. Very Funny ! Thanks to Carlos Brando.

And at the end, another good surprise at the Birds of a Feather session. The name: Elomar França a 17 years old guy from Rio Grande do Norte state, talking about how to create a studying group, on the same style of The infamous "identity 2.0" presentation from OSCON 2005.

Elomar França keynoting and a surprised Fabio Akita.

Good work Elomar !

Ah! And he speaks in Portuguese twice as fast as Dr. Nic does in English !

You can see more photos from Rails Summit Latin America here.

And a Video from the Happy End here.

Thursday, October 9, 2008

Who cares about Git ? Or Mercurial ?

I do of course, most of you do I know, but that is not the point.

Why are Git and Mercurial being so popular ?

Why is so important where the code is, if it is inaccessible anyway.

Inaccessible here means you can’t easily access the code you need just because it is on this or on that repository.

There is an interesting article about Git and Mercurial in Technological Wasteland.

The current situation is: I’m learning Rails, in fact, more: I’m learning all this web application development stuff, having chosen Ruby as a language and Rails as a framework.

I was just trying to follow the 14th lesson from LearningRails, thanks to the BuildingWebApps guys, when this subject, about DVCS (Distributed Version Control System), comes up.

Why ? Just because one of the plugins I need to accomplish that lesson (“acts_as_textiled”) changed from SVN, which is a Centralized Version Control System, to GIT.

Well, I’m one of these members of the dumb majority who uses Windows.

Yes I have used it for years developing in VB, then more recently don’t need to change when developing in Java, and see no reason to change now (OK, OK, may be I see some reasons, but I’m a lazy 50 years old developer, Windows will be).

The point is: I use Windows and I use Netbeans, and none of them give nice and easy support for Git.

That was the first point of changing my mind, installing a Rails plugin into a Rails project through Netbeans, is ease, you just need to right click the project, open the plugins pane add the plugin project URL and install it.

It works fine for SVN stored plugins, but what the hell, appears to me now, every single project in the world is going into Git !

Planned support for Git in Netbeans ? Yes, but may take a while.

Support for Git in Windows, Yes, but you need to install Cygwin which was the first reason I give up from e-Editor, because it needs Cygwin for “advanced features”.

To be honest I’m not a command line fan, but since the changes on this Rails Web App community are so fast, you must be an agnostic IDE guy, or turn yourself into a command line fan.

Anyway, I give a Try on “Komodo Edit”, which appears to be a good option to Windows users.

After a full day of research about how to install an already downloaded Rails plugin through Netbeans, I give up; I just copied the plugin into the project vendor folder, restart the IDE and it appear to work. I will see soon.

After a few months using Netbeans, I start thinking I’m becoming productive on this Windows environment. But now, I’m not so sure…

I need to start testing some “command line” + “simple program editor” options on Windows environment.

Monday, October 6, 2008

How does this wide “Web World” works ?

The first and obvious step: the user connects to the internet. OK, everybody knows that, but this means, he is now able to connect his computer to others around the globe (or outside it I guess).

Each computer (like any other device), connected to the WWW has a unique address, this is called an IP address, like this: “”.

Since each connected computer is identified, we just need they talk to each other.

To send and receive packages of information between them, they use a common suite of two protocols named the TCP/IP protocol for short.

There are two basic kind of computers connected to the internet: Clients like ourselves, and Servers, where the data and applications we need are stored.

Since the computers are connected they need a higher level protocol and a program on each one to establish a “conversation”.

This high level protocol is the HTTP, and the programs are: a Web browser on the client side and a Web server on the server side.

Most of the time we are sending and receiving files trough the internet, so, we will use the internet to send a file like this: “file:///C:/MySfuff/Pictures/Christmas/PIC002_20071225.jpg” to another computer, or ask for a file like this: “”, from another one.

The strings above, completely identifies a resource. A resource here is anything that can be identified, named, addressed or handled, in any kind of networked information system. These strings are called URI - Uniform Resource Identifier, and the popular URL - Uniform Resource Locator, is just a sub-set of it.

The language that let’s the client and the server really establish a “conversation” is the Hyper Text Markup Language (HTML for short), most of the time.

That is the language the web browsers understand, so, that is what the web servers delivers for their clients: HTML files on the first instance and all the associated files, like images, sounds, animations, videos, etc.

Wrapped around the HTML language, there are many operations that could be done. And any kind of these operations must be supplied by different kinds of servers. For instance, if you want to send or receive emails you will need an e-mail server, if you want to download or upload files, you may need a FTP server (short for File Transfer Protocol).

Now, we can establish a conversation, between the Client and the Server through the browser, here is an example:

A user types a URL into his browser and click ENTER, or simply clicks on a link addressed to it:

The browser will translate this URL into an HTTP request, like this:

GET //pages/business/index.html HTTP/1.1 Host:

The browser wraps this request into the TCP/IP protocol and sends it.

When the web server on, receives it, it will append the given path to the path of its root directory, “/nyp/www/”, by instance. The result is the local file system resource path:


At this moment there are a few alternatives to the web server, but the common action is trying to find the file locally and sends a response back to the client’s web browser.

It sounds a bit simpler to be true. OK it is a simplification here; it could be true on the early days of internet with just a few static pages, but now, with all that interactivity, no way. We need to add more elements to the equation.

And besides the browser evolved a lot all this years, the big difference is on the server side.

Let’s take a look on another example, accessing an interactive (application) page, like this:

As you can see, there is no file name at the end. What will be happening on this case?

The browser will translate this URL into an HTTP request, like this:

POST /mastercamp/forums.rb HTTP/1.0 From: User-Agent: HTTPTool/1.0 Content-Type: application/x-www-form-urlencoded Content-Length: 32 home=forum=1

The browser wraps this request into the TCP/IP protocol and sends it through the internet (1).

Now we need to go deeply into the server side. On this case, there is no file with the content you need on the web server itself. That is a situation where the web server needs help from other servers.

This is what we call a dynamic page. In fact, there is not an HTML file on the web server that simply could be returned to you in response. The file containing your response will be created “on the fly” in this case.

There is a three tier structure (not necessary three different machines), that will be used to give you the answer. There is a Web Server, which receives the request, depicts it, and tries to find an answer to it; this is the first tier (2).

In case the Web Server couldn’t find an answer to the request, it sends the request to an Application Server, the second tier, which in turn tries to find an application and functionality to send the request (3).

In this example, “mastercamp/forums”are respectively the application and functionality to be used.

There is an application called “mastercamp”, and there is a “forums” functionality on it that will be called.

The last parameter, “1”, will be used to pick information (data) from the Database Server, the third tier (4).

So, the “forums” functionality gatherers information from the database (5) and prepares it, the “mastercamp” application, transforms it into an HTML file, and send it back to the Web Server (6).

The Web Server then generates an HTTP response, like this:

HTTP/1.1 200 OK Server: Apache/2.2.9 Date: Wed, 14 Jul 2007 09:48:04 GMT Content-type: text/html X-Powered-By: Ruby/1.8.6 Set-Cookie: rbrd2mysql_data=a%3A0%3A%7B%7D; expires=Thu, 14-Jul-2007 09:48:04 GMT; path=/ Set-Cookie: rbrd2mysql_sid=b389d63f8226cc6c8ad349b3aadf41f3; path=/ Refresh: 0; URL=http://SERVER/rbrd2foobar Content-Length: 0 HTTP/1.0 200 OK Content-Length: 7

Wrap this response into the TCP/IP protocol and send it back to the internet (7) to get it back to the client (8).

Here is “The Big Picture”:

That is a short description on “How the Internet works”.

I do not go deep in any details but all the basic points are here, with links to more detailed explanation.

Saturday, October 4, 2008

Rails, what happens to you ?

Hey man, four weeks focused on my regular work (problems, problems, problems) and a lot of new versions are available !

Rails is now 2.1.1, Ruby is now 1.8.7-P72 or 1.8.6-287. Not to mention gems and plugins.

So many changes, but let’s continue the journey…

By the way, some answers I can give to my team mates about being productive using Rails on Windows.

To be honest I’m not that kind of a “command line guy” I like to use an IDE, but I need to admit if you choose the right tools and like that “command line way”, YOU CAN BE AS PRODUCTIVE ON WINDOWS AS ON OS/X.

I will tell you about it on a later article.

Back to web applications, now we have the whole history, you can access it from here.

Next step will be to understand how the internet really works.

If we pretend to create a web application, the first step, of course, is to know how all that stuff works.

On the last month I have unsuccessfully tried to find a real basic guide to developing Web application using Rails, but when I say “basic” I mean really basic.

A guide to someone that has NEVER ever, developed a Web application: could be a COBOL programmer for instance.

I’m still planning to publish Ruby related articles, but from now on I will start to publish a sequence of Web and Rails related articles, and will call it “WEB on Rails from A to Z” (you will see this on the subheadings).

So, on a future article I will explore the basics on publishing a static page on the Web, using the very raw Web and Ruby / Rails resources.

The reason ?

That is simple, I’m learning from the raw basics myself, I’m not a COBOL programmer anymore (nothing against it), but still dealing with VB client-server applications(nothing against it too), and was dropped into the Java / J2EE (Ooops) jungle last year.

My knowledge on Web applications was limited to a couple of HTML / Java script courses in the past, so, you can imagine the suffering.

And about that WEB thing take care of it !

Tuesday, August 5, 2008

Bitwising Ruby

This week some students come up with solutions using or appropriate to use bitwise operations, so, it is time to refresh the memory about that subject.

Binary numbers are just a bunch of Zeroes and Ones.

Representing: true / false; on / off, the base of the computer science.

Some Powers of Two:

power of 2 base-10 base-2 (binary)
20 1 1
21 2 10
22 4 100
23 8 1000
29 512 1000000000
210 1024 10000000000
211 2048 100000000000
212 4096 1000000000000

Binary numbers:

23 = 16 + 0 + 4 + 2 + 1
1 0 1 1 1 = 10111

252 = 128 + 64 + 32 + 16 + 8 + 4 + 0 + 0
1 1 1 1 1 1 0 0 = 11111100

Binary numbers in Ruby:

bin_num1 = 0b10111
bin_num1 = 0b11111100

The bitwise operations in Ruby:

bin1 = 0b100011010101
bin2 = 0b101010000010
puts '- - - - - - - - - - - - - - - - - - - - - - - - -'
puts ' = the bitwise or operation ='
puts '100011010101 <- bin1'
puts '101010000010 <- bin2'
puts '------------------ |'
bin_result = bin1 | bin2
puts sprintf("%12b", bin_result)

puts '- - - - - - - - - - - - - - - - - - - - - - - - -'
puts ' = the bitwise and operation ='
puts '100011010101 <- bin1'
puts '101010000010 <- bin2'
puts '------------------ &'
bin_result = bin1 & bin2
puts sprintf("%12b", bin_result)

puts '- - - - - - - - - - - - - - - - - - - - - - - - -'
puts '= the bitwise exclusive or operation ='
puts '100011010101 <- bin1'
puts '101010000010 <- bin2'
puts '------------------ ^'
bin_result = bin1 ^ bin2
puts sprintf("%12b", bin_result)

puts '- - - - - - - - - - - - - - - - - - - - - - - - -'
puts '= the bitwise negation operation ='
puts '100011010101 <- bin1'
puts '------------------ ~'
bin_result = ~bin1
puts sprintf("%12b", bin_result)
puts '^'
puts '|'
puts '+----- Ruby would like to print 1s forever here'

puts '- - - - - - - - - - - - - - - - - - - - - - - - -'
puts '= the bitwise left shift operation ='
puts '101010000010 <- bin2'
puts '------------------ <<'
bin_result = bin2 << 3
puts sprintf("%12b", bin_result)

puts '- - - - - - - - - - - - - - - - - - - - - - - - -'
puts '= the bitwise right shift operation ='
puts '101010000010 <- bin2'
puts '------------------ >>'
bin_result = bin2 >> 5
puts sprintf("%12b", bin_result)

Parity Check:

It is the easiest way to check if a number is odd or even.

Check the least-significant bit (one's place) in the binary representation:
If it is 0 then the number is even
If it is 1 then the number is odd

def odd_even(number)
puts "#{number.to_s} is #{number & 1 == 1 ? 'odd' : 'even'}"


“Powerful” Bit Operations:


11 00001011

22 00010110

44 00101100

If we “shift” the bits one place to the left, and add a 0 at the last place, we double the number.

A final example:

We want to know if a string has just words and spaces, no numbers or special characters:

class String
def are_just_words?
is_false = 0b0
self.split('').collect { |character|
is_false = is_false | ((' '.eql? character or
(65..90).include? eval("?#{character}") or
(97..122).include? eval("?#{character}") or
(192..255).include? eval("?#{character}"))? 0b0 : 0b1)
is_false == 0b0 ? true : false

puts 'Atenção eloqüente ortográfico filosófico'.are_just_words?

Returns true

Now try to include numbers and / or special characters and see what happens.

Friday, July 25, 2008

The World Wide Web unofficial History 3/3

Here and now

1997, second preview release of Netscape Communicator 4: CSS/JSS support. Third preview of NC 4: Improvements to the CSS support. Fourth and fifth preview release: Minor HTML improvements in Beta 4, introduction of the Netcaster push technology.

HTML 4.0 was released.

Netscape Communicator 4 Final released with: More CSS support (much, but not all of CSS1), minimal dynamic font and OBJECT element support.

Netscape announces an initiative to retain its browser share by forming 100 industry partnerships. The streamlined Navigator 4.0 includes Netcaster, basic email, and calendar software. Netscape unveils the Netcenter Web site, transforming the corporate into a site featuring news, software, and chat groups.

Internet Explorer 4.0 was released in September, with the latest beta version of Windows 98.

1998, Netscape announces that all future Netscape browsers will be free of charge and also that the development of the browser will be open-source. is found. Grommit aka Netscape 5.0 announced based on Communicator code, soon to be cancelled in favor of Gecko. website launches. A dedicated internal team and the Web site guide the open source code to developers.

Netscape releases programming source code for its Communicator software. This is the first code source release, still based on the Classic Communicator. Mozilla Classic is still available on the site.

The US Justice Department and 20 state attorneys general file an antitrust case alleging Microsoft abuses its market power to thwart competition, including Netscape.

In a legal case brought by the US Department of Justice and twenty U.S. states, Microsoft was accused of breaking an earlier consent decree, by bundling Internet Explorer with its operating system software. The department took issue with Microsoft's contract with OEM computer manufacturers that bound the manufacturers to include Internet Explorer with the copies of Microsoft Windows they installed on systems they shipped.

Allegedly, it would not allow the manufacturer to put an icon for any other web browser on the default desktop in place of Internet Explorer. Microsoft maintained that integration of its web browser into its operating system was in the interests of consumers.

Microsoft asserted in court that IE was integrated with Windows 98, and that Windows 98 could not be made to operate without it. Australian computer scientist Shane Brooks later demonstrated that Windows 98 could in fact run with IE files removed. Brooks went on to develop software designed to customize Windows by removing "undesired components", which is now known as LitePC. Microsoft has claimed that the software did not remove all components of Internet Explorer, leaving many dynamic link library files behind.

According to a study by a market researcher, Netscape cedes browser-share lead to Microsoft's Internet Explorer. Netscape Communicator 4.5 released. Various functionality improvements, but no new HTML or CSS support. Only Bug fixing. Netscape 5.0 cancelled in favor of a completely new product, based on new technology (Gecko aka Raptor).

AOL buys Netscape, Netscape as an independent company ceases to exist. posts the following two statements regarding Mozillas position after the merger: "fear and loathing on the merger trail" and "Steve Case on Mozilla". Also: Thanks Mozilla (Wired).

Mozilla is not a web browser. Mozilla is a framework for building web applications using web standards like CSS, XML and RDF. The Mozilla Application Suite is a complete set of web applications (browser, email client, news client, chat client and more).

Mozilla code is used in Netscape 6 and 7, and in other web browsers such as Firefox and Camino, chat clients, news clients, email clients, games, and other types of web applications for Windows, Linux, and Mac.

Mozilla is an open-source web development project developing the program code used in the Mozilla Application Suite (also known as SeaMonkey).

Browsers based on Mozilla code (Mozilla, Firefox, & Camino) is the second largest browser family on the Internet today, representing about 30% of the Internet community. Mozilla browsers are known to have very good web standards support.

1999, HTML 4.0.1 was released, introducing Cascading Style Sheets.

Internet Explorer 5.0 was released.

2000, Netscape 6.0 "Final" released, based on Mozilla 0.6 - regarded by many as the biggest mistake in Netscape history. Many old users finally switch to Internet Explorer. Market share is dropping even more.

2001, Netscape 6.01 was released, based on Mozilla 0.6. Netscape's homepage gets a facelift, almost complete shift to entertainment and news portal. now runs on AOL servers, not on Netscape servers. Netscape 6.1 was released, based on Mozilla 0.9.2.

Netscape 6.2 released, based on Mozilla 0.9.4 - it's finally time to switch to Netscape 6. Netscape 6.2.1 was released, based on Mozilla 0.9.4.

Rumors of the next major Netscape release surface. Codename "Mach V", probably Netscape 7.

August 27: Internet Explorer 6.0 was released with Windows XP.

2002, Netscape 6.2.2 was released. Yet another minor release based on Mozilla 0.9.4. Preparations took place for Mozilla's major 1.0 release. Release Candidate 1 is available for download.

Mozilla Phoenix 0.1 was released.

Netscape 6.2.3 was released, based on Mozilla 0.9.4. Netscape 7.0 Preview Release was released, based on Mozilla RC2.

Netscape Communicator 4.8 released.

Netscape 7.0 Final released, based on Mozilla 1.0.1 - Netscape deactivates the Mozilla Popup-Blocker.

Netscape 7.01 was released, based on Mozilla 1.0.2 - Netscape learned the lesson and reinstates the Popup-Blocker.

December: "Black Wednesday". Mayor layoffs at Netscape headquarters. From the approx. 75 programmers working on Netscape and Mozilla browser software only 6 programmers are left to directly work on Netscape. The rest is either fired or relocated with AOL to work on other things, for example Gecko (HTML rendering engine) or AOL Communicator (Standalone email client).

2003, Steve Case resigns as AOL chairman, but will remain a member of the AOL board.

Netscape releases an AOL-free version of Netscape 7.01 (i.e. without the usual add-ons).

Netscape releases Netscape 7.02, based on Mozilla 1.0.2 - a minor release aimed to fix stability and security problems. The next major Netscape version is currently under development. Codenamed Buffy, Netscape 7.1 (based on Mozilla 1.4) will probably be released in July or August 2003.

May 7: Microsoft online chat, Brian Countryman, Internet Explorer Program Manager, declared that on Microsoft Windows, Internet Explorer would cease to be distributed separately from the operating system (IE 6 being the last standalone version); it would, however, be continued as a part of the evolution of the operating system, with updates coming bundled in operating system upgrades. Thus, Internet Explorer and Windows itself would be kept more in sync. However, a new standalone version, IE 7 was released since then.

May 29: Microsoft is paying $750 million to AOL Time Warner as part of a wide-ranging settlement that also calls for the companies to jointly cooperate on software distribution and digital media. As part of the deal announced Thursday, the companies will drop pending litigation, including an antitrust complaint filed by AOL Time Warner's Netscape Communications unit in January 2002 against Microsoft. AOL also agreed to a seven-year royalty-free license of Microsoft's Internet Explorer browser. You don't have to be an expert to see that this could basically be the last nail to Netscape's coffin.

June 23: Safari 1.0 Web browser was released by Apple Inc, based on the Konqueror rendering engine.

June 30: Netscape 7.1 was released.

July 15: gets a new home: The Mozilla Foundation.

"The Mozilla Foundation" is a new non-profit organization that will serve as the home for

As before, will coordinate and encourage the development and testing of Mozilla code. The Mozilla Foundation will also promote the distribution and adoption of our flagship applications based on that code. AOL, IBM, Sun Microsystems, Red Hat, and other companies will continue to support Mozilla through the Foundation.

What this means for the Mozilla browser and other products and technologies: more innovation from the open source developers and a greater focus on end users.

Netscape (the company) is dead. Long live Mozilla. Major layoffs at Netscape. The company logo gets removed from the Netscape building. There is no Netscape company anymore, only the brand name is left and in the hands of AOL.

A few of the Netscape programmers join the AOL team, but most are fired. This was a disaster for Mozilla, because many programmers working on Mozilla were paid by Netscape.

Netscape 7.1 will probably be the last release.

2004, Netscape has mutated into an Internet Service provider. It supposedly ships with Internet Explorer. AOL stops selling Netscape CDs and handbooks. Somebody please turn off the lights!

March: According to AOL is going to release a new Netscape version.

This is the End of Netscape? Not the End of Netscape? What's on AOL's mind these days?

There will be a new version of the Netscape Suite. Based on Mozilla 1.7, Netscape 7.2 will feature the usual AOL add-ons. Mozilla 1.7 was released on June 18th 2004.

The Netscape 7.2 was released. This new version, was based on Mozilla 1.7.2 and featuring the usual AOL add-ons. Sadly, only the English language version was available. What's more: shortly after its release some serious security problems were detected in Mozilla 1.7.2 and therefore also Netscape 7.2.

Those security bugs were fixed with Mozilla 1.7.3, but so far (September 2004) no update of Netscape 7.2 has been made available. That means, using Netscape 7.2 can not be recommended, which makes Netscape 7.2 the literal dead fish in the water only days after its release. To create Netscape, AOL had to hire external Contractors to do the work (some of them ex-Netscape programmers).

September 30: AOL sells the old Netscape server software (Enterprise servers) to Redhat. Redhat plan to release them as Open Source and incorporate the software into its Linux. It looks to me as if Redhat are trying to gain some profit from the name Netscape, which still sounds good to many people on the internet. As a consequence, AOL now has only the rights for the Netscape browser, the portal in their possession.

October 12: AOL shuts down, a site which has been a great source for HTML and JavaScript programming over the years. is now trying to get the contents of the server to publish them on their site. Interestingly enough, AOL is celebrating Netscape's 10th birthday this week as well. How ironic.

Mozilla Firefox 1.0 was released.

Netscape updates their browser with a program based on Firefox.

2005, after a release based on Firefox 0.9.3 a second prototype was released. This new browser, by now known as Netscape 8, is supposed to feature special security enhancements, such as anti-fishing mechanisms.

Version 2.0 of Safari, was released on April 29, and runs only on Mac OS X 10.4.x (Tiger) or later.

Netscape 8.0 was released on May 19th 2005. It is largely based on Firefox 1.0.3, but has also the ability to switch to IE's rendering engine ("Trident"). Netscape 8 is produced by a company in Canada for AOL.

July 2005: Following's step to discontinue the MozillaSuite, a small group of free developers announces to continue working on the Suite. The new project is codenamed "Seamonkey".

August 8th, 2005: The Mozilla Foundation has announced the creation of the Mozilla Corporation, a wholly-owned subsidiary that will continue the development, distribution and marketing of Mozilla Firefox and Mozilla Thunderbird.

After finding security problems with the new Netscape 8 browser, AOL/Netscape releases updates.

September 2005: Rumors about Netscape 9.0 surface.

December 19: Microsoft announced that it would no longer support Internet Explorer for the Macintosh, and recommended using other Macintosh browsers such as Safari.

2006, Crazy stuff is going on at AOL headquarters, and of course, more lay-offs.

Mozilla Firefox 2.0 was released.

2007, Netscape is reportedly working on a new version of Netscape, dubbed "Netscape 9". This new version of the browser will once again be a standalone product (i.e. lacking an e-mail/news component such as Netscape used to have up to version 7.x) and will be using Firefox as its core.

Netscape 9 will be tightly integrated into the user-based website Contrary to Netscape 8.x, which was developed by a third-party company, the new browser was being developed "in-house", i.e. there were actually Netscape programmers working on it.

June 22: Apple released Safari 3.0.2 for Windows.

October 2007: Netscape 9.0RC1 has been released. The new splash screen sports a classic Netscape 2/3 logo (a good sign?):

The winner of the splash screen design contests.

Internet Explorer 7.0 was released.

In other news: The "social" has been re-launched as a classic news portal.

December 28: Netscape (the browser) is dead. AOL has finally shut down Netscape for good. Browser development will seize on February 1st, 2008. The glory that once was Netscape will survive in the name of an internet portal only.

2008, Mozilla Firefox 3.0 was released.

Web Browsers and Operating Systems Today:

Latest Web Browsers Releases:


Internet Explorer



Monday, July 21, 2008

The World Wide Web unofficial History 2/3

The Browsers War

1994, MCC changed its name to Netscape in April, and the Mosaic browser was developed further as Netscape Navigator. The company wisely hires the best young Web programmers of the world.

Arena web browser was released. It was developed by Dave Raggett at Hewlett-Packard in Bristol, England, with powerful features for positioning tables and graphics. It was first implemented to render documents conforming to the HTML+ (now known as HTML3).

Next year, Arena Web Browser becomes the W3C testbed until its final release in late 1998.

Despite its time of development, Arena is in certain areas a relatively modern browser; because it functioned as a testbed, it saw the implementation of new technologies long before they became mainstream, i.e. CSS.

First WWW Conferences took place on Europe (Geneva) and USA (Chicago). IW3C2 (International WWW Conference Committee), has been founded.

The Microsoft Internet Explorer project was started, leveraging source code from Spyglass, Inc. which delivered two versions of the Mosaic browser to Microsoft, one wholly based on the NCSA source code, and another engineered from scratch but conceptually modeled on the NCSA browser. Internet Explorer was initially built using the Spyglass, not the NCSA, source code the license to Microsoft provided Spyglass (and thus NCSA) with a quarterly fee plus a percentage of Microsoft's revenues for the software.

The IBM Web Browser was presented with OS/2 Warp (v3); it was hailed as the best browser by Internet Magazine in their November issue, and leveraged its position as the only native browser in OS/2 at that time.

The Opera browser was developed by a team of researchers at a telecommunication company called Telenor in Oslo, Norway.

May 31: MacWeb 0.98 browser was released.

CERN as a physics lab cannot continue to invest effort in an informatics project without help. Tim Berners-Lee and the Laboratory for Computer Science (LCS) of MIT (Massachusetts Institute of Technology) start the W3C Consortium in the US. Tim Berners-Lee leaves CERN for MIT (December). The world has 2,500 Web Servers then.

1995, CERN and the European Commission invite INRIA (Institut National de Recherche en Informatique et en Automatique), to continue the European involvement. INRIA has five sites in France and is heavily involved in European projects and collaborations with similar institutes in Europe and the world.

Netscape 1.1 was released.

Jon Stephenson von Tetzchner and Geir Ivarsøy -- left Telenor to establish Opera Software to develop the Opera browser commercially.

WWW surpasses ftp-data in March as the service with greatest traffic on NSFNet based on packet count, and in April based on byte count.

Traditional online dial-up systems (Compuserve, American Online, Prodigy) begin to provide Internet access.

Registration of domain names is no longer free. Beginning 14 September, a $50 annual fee has been imposed, which up until now was subsidized by NSF. NSF continues to pay for “.edu” registration and on an interim basis for “.gov”.

Technologies of the Year: WWW, Search engines.

Emerging Technologies were: Mobile code (JAVA, JavaScript), Virtual environments (VRML), and Collaborative tools.

Sun Microsystems produces HotJava, a browser which incorporates interactive objects.

To give individuals a voice, a user-group type organization is needed. This leads to the founding of the Web Society in Graz (Austria).

Internet Explorer 1.0, released in August. The Internet Explorer team began with about half a dozen people in early development. At one point in that year, the W3C register 700 new servers per day! Internet Explorer 2.0 was released for Windows 95, Windows NT 3.5, and NT 4.0 in November.

Traditional online dial-up systems (CompuServe, America Online, Prodigy) begin to provide Internet access. A number of Net related companies go public, with Netscape leading the pack.

Registration of domain names is no longer free. Technologies of the Year: WWW, Search engines (WAIS development).

The world has 73,500 Web Servers then.

1996, the Browser Wars begins.

Netscape Navigator 2 was released with: frames, JavaScript, and Plugins. With the Netscape 2 release Netscape successfully battled the MS giant. The Browser Wars begin: AOL bundles IE with its AOL software.

Netscape Navigator 3 released with: new plugins, background colors in tables, support for underlining, frame border control, font face styles.

Also new elements to layout (multicolumn) and spacing control (spacer). Also new: the ARCHIVE attribute and the APPLET element.

Opera 2.1 Web browser was released.

Internet Explorer 3.0 was released free of charge in August. By bundling it with Windows 95, Microsoft thus made no direct revenues on IE and was liable to pay Spyglass only the minimum quarterly fee.

This version includes: Internet Mail and News 1.0 and Windows Address Book. It also brought the browser much closer to the bar that had been set by Netscape, including support of Netscape's plugins technology (NPAPI), ActiveX, frames, and a reverse-engineered version of JavaScript named Jscript. Later, Microsoft NetMeeting and Media Player were integrated and thus helper applications became not as necessary as they once were. Cascading Style Sheets (CSS) were also introduced.

Netscape becomes enterprise-software purveyor, rolling out intranet- and Internet-server software packages. Microsoft and Netscape battle for the WWW and its users. Preview of Netscape Communicator 4.0 available. It adds the new LAYER element.

The World Wide Web Consortium (W3C), which had taken over HTML development, issued a consensus version, HTML 3.2.

IBM Web Browser was released with OS/2 Warp 4, based on the Mozilla Application Suite.

The world has more then 100,000 Web Servers then.

Saturday, July 12, 2008

The World Wide Web unofficial History 1/3

The early days

1858, was the year for the very first try on Cable, carrying instantaneous communications across the ocean. 1866 marks the very first success. It remained in use for almost 100 years.

1876, was the year of the Telephone official (patented) birth. Telephones still provide the backbone of Internet connections today.

1957 (October, 4th), USSR launches the Sputnik, the first artificial earth satellite.

1958 (February, 7th), in response, US Department of Defense, establishes the Advanced Research Projects Agency (ARPA), fitting together some of the America’s most brilliant people, who developed the first US successful satellite in 18 months. Years later ARPA changed the focus on computer networking and communications technology.

1962, Joseph Carl Robnett Licklider (Lick), one of the most important figures in computer science, was chosen to head ARPA’s research in improving the military’s use of computer technology. He contributes in conceiving, funding and managing the research that led to modern personal computers and Internet. He sought the need to move ARPA’s contracts from the private sector to universities. His office developed into a far-reaching basic research program in advanced technology, and was renamed to Information Processing Techniques (IPT or IPTO) to reflect that change. Paul Baran of RAND Corporation publishes the paper “On Distributed Communications Networks” which introduces Packet-switching (PS) networks; no single outage point.

1965, ARPA sponsors study on “cooperative network of time-sharing computers” -- TX-2 at MIT Lincoln Lab and Q-32 at System Development Corporation (Santa Monica, CA) are directly linked (without packet switches). The e-mail was invented, and still the main way of inter-person communication on the Internet today.

1967, ARPA held its yearly meeting, results from the previous year's research was summarized and future research was discussed, Networking was one of the topics brought up at this meeting. After one draft and additional work on this communications position paper report, a two-day meeting was scheduled in early October 1967 by ARPA to "discuss the protocol paper and specifications for the Interface Message Processor (IMP)."

1968, the specification of for the Interface Message Processor (IMP), was completed, the ARPANET procurement officially started. The first meeting of the Network Working Group occurs, with programmers from several of the first hosts to be connected to the network. First packet-switching network was operational and in-place at the National Physical Laboratories in the UK. Parallel efforts in France also resulted in an early packet-switching network at Societe Internationale de Telecommunications Aeronautiques.

1969, is “officially” considered the Birth of Internet. First node at UCLA (Los Angeles) closely followed by nodes at Stanford Research Institute, UCSB (Santa Barbara) and U of Utah (4 Nodes). Information Message Processors (IMP) was developed by BBN Technologies (originally Bolt Beranek and Newman on a ruggedized Honeywell DDP 516 “minicomputer”. The system delivered messages between the 4 nodes network above. It was the first generation of what is known as a router today.

The first LOGIN, on a four-node network (University of California, Los Angeles – Stanford Research Institute – University of California, Santa Barbara – University of Utah in Salt Lake City), the folks from UCLA hope to log onto the Stanford computer and try to send some data. They would start by typing “login”, and seeing the letters appeared on the far-off monitor.

Typed “L” (ok) – typed “O” (ok) – typed “G” – The system crashed, and a revolution had begun…

There is at least one report that indicates experimental inter-system e-mail transfers at ARPA.

1970, Norman Abrahamson develops ALOHAnet at University of Hawaii. ALOHAnet provided the background for the work which later becam e Ethernet. ARPANET hosts start using Network Control Protocol (NCP). This protocol was used until 1982 at which time it was replaced with TCP/IP.

1971, ARPANET had grown to 15 nodes which included 26 hosts: UCLA, SRI, UCSB, University of Utah, BBN, MIT, RAND, SDC, Harvard, Lincoln Lab, Stanford, UIUC, CWRU, CMU, and NASA(Ames). Ray Tomlinson initiated the use of the @ sign to separate the names of the user and their machines in e-mails. The e-mail popularity significantly increased, and it became the killer app of the ARPANET.

All the basic protocols were established and teste d. The first ARPANET successful tests took place.

1972, first public demonstration of ARPANET (between 40 machines) in the basement of the Washington Hilton hotel, letting the public come in and use the ARPANET, running applications all over the U.S. With the name changed into DARPA (Defense Advanced Research Projects Agency), start working on a number of other data transmission technologies, like the NCP and IP protocols, which later becomes the TCP/IP ptotocol.

1973, First international connections to the ARPANET: University College of London (England) and Royal Radar Establishment (Norway). First published outline for the idea of Ethernet: Bob Metcalfe's Harvard PhD Thesis. -- this how local networks are basically connected today. Gateway architecture sketched on back of enve lo pe in hotel lobby in San Francisco. Gateways define how large networks (maybe of different architecture) can be connected together.

1974, the design of TCP was given in "A Protocol for Packet Network Internetworking" by Vinton Cerf and Bob Kahn. -- how computers send and receive data. DARPA then contracted with BBN Technologies, Stanford University, and the University College London to develop operational versions of the TCP protocol on different hardware platforms. Telenet, a commercial version of ARPANET, opened -- the first public packet data service.

1975, a two-network TCP/IP communications test was performed between Stanford and University College London (UCL).

1976, UUCP (Unix to Unix Copy Program) is developed at AT&T Bell Labs and distributed with UNIX the following year. Queen Elizabeth sends out an e-mail. – Networking comes to many.

1977, Number of hosts breaks 100. A three-network TCP/IP test was conducted between the U.S., UK, and Norway. THEORYNET provides electronic mail to over 100 researchers in computer science (using a locally developed E- mail system and TELENET for access to server). Mail specification was released. First demonstration of ARPANET/Packet Radio Net/SATNET operation of Internet protocols over gateways.

1978-1983, several other TCP/IP prototypes were developed at multiple research centers. Many Networking groups have been created, like: USENET, PRNET, BITNET and CSNET.

1980, physicist Tim Berners-Lee, who was an independent contractor at CERN (Centre European pour la Recherche Nucleaire), proposed and prototyped ENQUIRE, a system for CERN researchers to use and share documents. Rather than a web browser, ENQUIRE was closer to a wiki.

1982, the term “Internet” was created by Vinton Celf.

1983, a Data Communications (DC) Group was set up in the CERN computing division. Berkeley releases new version of UNIX 4.2BSD incorporating TCP/IP. Name Server was developed at University of Wisconsin.

1984, TCP/IP protocol, was introduced at CERN on some key non-Unix machines at CERN including the central IBM-VM mainframe and a VAX VMS system.

Domain Name Server (DNS) was introduced.
  • instead of 123.456.789.10
  • it is easier to remember something like www.myuniversity.mydept.mynetwork.mycountry
  • e.g.

1986, NSF (National Science Foundation – U.S.) establishes 5 super-computing centers to provide high-computing power for all -- This allows an explosion of connections, especially from universities. NSFNET (National Science Foundation network) was created with a backbone speed of 56 Kbps.

1987, Commercialization of Internet was Born. UUNET is founded with Usenix funds to provide commercial UUCP and Usenet access. NSF and Merit Network, Inc. agree to manage the NSFNET backbone.

1988, NSFNET backbone upgraded to T1 (1.544 Mbps) Internet Relay Chat (IRC) developed. Canada, Denmark, Finland, France, Iceland, Norway, Sweden are on NSFNET.

1989, Tim Berners-Lee, wrote a large hypertext database with typed links, with little interest. His boss, Mike Sendall, encouraged Berners-Lee to begin implementing his system on a newly acquired NeXT workstation. After considering several names, he settled on World Wide Web. First relays between a commercial electronic mail carrier and the Internet. Australia, Germany, Israel, Italy, Japan, Mexico, Netherlands, New Zealand, Puerto Rico, UK on NSFNET

1990, Tim Berners-Lee, found an enthusiastic collaborator in Robert Cailliau, who rewrote Tim’s proposal (re-published on November 12, 1990) and sought resources within CERN. Berners-Lee and Cailliau pitched their ideas to the European Conference on Hypertext Technology in September 1990, but found no vendors who could appreciate their vision of marrying hypertext with the Internet.

ARPANET ceases to exist.

CERN had become the largest Internet site in Europe. A Joint proposal for a hypertext system is presented to the management. The first web browser, named “World Wide Web editor”, has been created.

The World comes on-line (, becoming the first commercial provider of Internet dial-up access. NSFNET replaces ARPANET. Argentina, Austria, Belgium, Brazil, Chile, Greece, India, Ireland, South Korea, Spain, Switzerland on NSFNET. Gopher, a Text based, menu-driven interface to access internet resources, was released by Paul Lindner and Mark P. McCahill from the University of Minnesota.

1991, At CERN, the first website went on-line. Based on the concept of hypertext, the project was aimed at facilitating sharing information among researchers. First server outside of Europe was created at SLAC (Stanford Linear Accelerator Center) by Paul Kunz, who visited CERN and brought the NeXT software back to SLAC, where librarian Louise Addis adapted it for the VM/CMS operating system on the IBM mainframe as a way to display SLAC’s catalog of online documents.

1992, Berners-Lee and the CERN team released the first draft HTML 1.0. It was a document called “HTML Tags”, first mentioned on the Internet by Berners-Lee in late 1991. It describes 22 elements comprising the initial, relatively simple design of HTML. Thirteen of these elements still exist in HTML 4. The first two line mode multi platforms (other then NeXTcube) browsers stable versions get released.

The Libwww Line Mode Browser, written by Nicola Pellow, an intern working at CERN, and Lynx web browser at University of Kansas. Its ability to provide hypertext links within documents that could reach into documents anywhere on the Internet, has contributed a lot to the creation of the web on the Internet. The world has 50 Web Servers then.

ViolaWWW was created by Pei-Yuan Wei, who at the time was a student at the University of California, Berkeley. It was the first browser to use authoring technology such as embedded scriptable objects, stylesheets, and tables.

Midas, a third browser for Unix systems, was developed during the summer of this year by Tony Johnson at SLAC,to help distribute information to colleagues about his physics research.

MacWWW, also known as Samba, was meant to run on Macintosh computers. Written by Robert Cailliau at CERN, it was the first web browser for the Mac platform, and the first for any non-Unix OS.

Unlike modern browsers it opens each link in a new window. It was a commercial software, and costs 50 ECU (European Currency Units). The source code was also available.

1993, CERN announced that the World Wide Web would be free to anyone. A copy of the original first webpage, created by Berners-Lee, is kept here.

The “World Wide Web editor” was written using the Next computer, using the “application builder”, and Objective-C.

Later in 1993, Mosaic web browser was released by the National Center for Supercomputing Applications (NCSA) at the University of Illinois. The intention was to supplement the two existing web browsers: one that ran only on NeXTSTEP, and one that was only minimally user-friendly. It could display and link graphics as well as text to anchor hypertext links, and quickly became the replacement for Lynx.

The Mosaic Web browser, may be considered “The turning point of the World Wide Web”, the project begun in 1992 when NCSA established a website. Marc Andreessen and Eric Bina began work on Mosaic, which was released in February 1993.

After Andreessen’s graduation, he and James H. Clark, former CEO of Silicon Graphics, met and formed Mosaic Communications Corporation (MCC) to develop the Mosaic browser commercially.

You can see the original MCC page from here.

The first Microsoft Windows browser was Cello, written by Thomas R. Bruce for the Legal Information Institute at Cornell Law School to provide legal information, since most lawyers had access to Windows but not to Unix. Cello was released in June 1993.

The World has 250 Web Server then.

Monday, July 7, 2008

The World Wide Web unofficial History

Since I’m a newbie on this Web Application development field: first things first.

I need to know the history, the facts that bring us to current WWW status.

So, for my practical and objective learning interests, I have compiled my unofficial WWW history, and I will publish it here in three parts:

  1. The early days
  2. The Browsers War
  3. Here and now

The idea is to keep all the objective WWW historical information together, on a single place.

By now, some things you should know:

The logo at the header of this article is the original WWW logo created by Robert Cailliau, the author of the term “World Wide Web”, the logo is now released into the public domain.

At that time 50-60ies, the cold war was on an escalation process, and military interest fires up the research into a way to avoid that a single enemy bomb break any command or control between the Pentagon and U.S. military bases around the World.

The answer: An integrated net of computers, in which each node will have the same importance, and information, would be transmitted in any direction, unordered, turning the data destruction or loss virtually impossible.

Years later, in 1969 this project becomes the ARPANET.

Some key names (and faces) to start reading about, chronologically:

Joseph Carl Robnett Licklider

Leonard Kleinrock

Robert Cailliau

Timothy John Berners-Lee

Saturday, July 5, 2008

Will Ruby Tracks knock out DHH’s Ruby on Rails?

Since I decide to get into this “Ruby on Web framework”, I need to go into some pre-learning tasks, about the Web it self, about Web applications, about this “Ruby on Web framework” community and so on.

First of all, if I will write about this framework and my process on learning it, I will need to use its logo a lot on my posts and any other material I produce in the process.

Soon I realized that the use of this framework original logo is almost prohibited by DHH, on any material he hasn’t personally approved. In Fact the word “Rails” and the term “Ruby on Rails” are under the same condition (are trademarked by DHH).

There are a lot of complains about that since last year over the net, you can see some of them here, here and here.

Since I they are all busy, I start thinking: to avoid any future problem, perhaps a legal issue, I will for now on use the word “Tracks”.

So, from now on, when you see the term “Ruby Tracks” on my posts, you know that I’m talking about that cool “Ruby on web framework”.

I just see the term “Ruby Tracks” been used on some musical subjects, and hope nobody has trademarked It until now.

By the way, I have created my own “Ruby Tracks” logo, as you can see above.

And if some one else want to use the words “Tracks”, “Ruby Tracks”, or the logo I have created, let me say: all of these are under the WTF Public License.

Which means: feel free to use, improve or modify it the way you want.


Now I get conscious that the “Ruby on Rails” term is now free to be used. But to be honest, I really like the “Ruby Tracks” idea.

Sunday, June 1, 2008

Rails: Learning to learn it #1

Since I think it was time to kick off my learning rails task, how to start ?

A book ? I don’t think so.

Having read a lot about this, I think I will pick a book later, but need to explore a bit of Rails first.

Having studied Ruby with Satish Talin’s “Free Online Ruby Programming Course”, why not do the same with Rails ?

So, Sunil Kelkar’s “Free Online Course on Ruby on Rails”, would be the answer.

This course was planned on a four week basis; so, appear to be a fast way to get introduced to web development in general using RoR as a framework.

It looks perfect to me.

Unfortunately, due to some personal problems, Sunil was not able to go on with the course, since the second week, and now I’m trying to keep the course online using a wiki approach, so, each student could contribute to the course completion.

Supporting me on this thread are: Satish Talim on administrative tasks, and Fabio Akita as a teacher.

If you, reading this, think could help us, take a look on, and send me an email.

"The Rails Logo was created by Kevin Milden and is distributed under the BY-ND Creative Commons License."

Monday, April 21, 2008

Shift Happens

Today I give myself a break.

I have seen this video Shift Happens 2.0 few days ago, and it impressed me a lot.

Now I have found a collection of versions on it (some serious others not so much).

Take a look.

Make your choice.

Sunday, April 6, 2008

I have tried a fast delivery, but…

I'm following Amy Hoy as much as I can, since last year, when I hear a podcast about her learning Rails process.

Now I have a testimony about her "Just ship. Seriously" article. We have a popular statement here in Brazil to summarize the idea:

The better is good’s enemy.

Delivering “the good” to achieve “the better”; if you try to deliver the better on the first try, you risk delivering nothing.

I try, as much as I can, persuade my bosses to forget about these HUGE projects, which will take months or years.

Ho Gosh, the testimony please! OK here it is: A few weeks ago, I get a mission:

“There is a user, in trouble getting data from this legacy client server application to pick some thing like 20 lines of information on a daily basis worksheet, I don’t want to involve the business-technology department on this, just go there and bring me a Java based solution”.

Here is the situation: The user takes 40 to 50 minutes, every single day, filtering information at two different pending flags on a supervisor level. There are 10 supervisors, so, 20 filtering actions on the system, counting grid lines returned by each, and put that value on a worksheet cell. Ridiculous! Yes, but that is the situation.

Mocking up the solution:

Execute two queries to get the proper grouped and counted information, and show the results.

My first option becomes: a night shift service, executing these poor performance queries and sending an email with the desired data to the user.

Some problems with the “web servers’ support” department and with the “job scheduler” application let us to another option.

The adopted option: improve the query performance (with specific indexes) and implement an intranet based application, where the user simply gets the information needed any time he wants.

All fine, this is a very simple application, so let me guess, to put it on production status on this BIG full of burocracy company, nothing less then a week, so that is it, my first shot, A WEEK to deliver this very simple application to the user.

Now the facts:

March, 12

I get the queries and specification done, and send it to a third part partner (Java factory) to get things done.

On my side, I start the HUGE burocratic process to get a new intranet application on production status. So, I started three different threads:

To the Data Administration department, create the necessary indexes, improving queries performance.

To the Logical Security department, to create the necessary user, with the necessary privileges to be used by the application.

To the Operations department to get the new application registered like an intranet one.

First problems:

The “partner” (Java factory), ask for a month to get the application done, two days after everyone agree that a week will be.

A week after I received the application, tested it, and figure they (the partners) changed the queries, and don’t get the behavior desired, which was: execute two different queries and show the result. I ask for a new version, with original queries and specified behavior.

Any way to get the burocracy done in advance, I have started another thread to the Systems Architecture department to check this non working version, just to verify if all necessary patterns and good practices where used.

March, 21

I get the final version ready and tested, by me and by the user, on my local development machine; so, I start a new thread to the Pre-Production department to get this new application ready on the Pre-Production environment, to the user evaluation.

Now you could say: well everything possible was done, the burocracy in advance and in parallel, so you have the application delivered and accepted by the user…

NO, not yet. We have more problems:

People from the Development and Pre-production departments do not create the database users on each environment at time (lack of communication between departments).

People from the Data administration department spent too much time to create the indexes on the right way on each environment (lack of competence here).

The procedures and forms to get a new intranet application registered, has changed since the last time I have done, so, I need to start this thread again with the new forms.

With these problems we miss the first chance to get this new application thru the weekly forum. Ooops, I forgot any new application to get into production status, need to be approved by the user department’s manager and get into the weekly technical forum.

When everything was fine, there was some technical problem with the data access configuration on the pre-production environment. Another wasted day…

Now we are close, the user tested the application on the pre-production environment, I get the approvement of the user department’s manager, so, next Wednesday we go thru the forum and finally next Thursday we will get this delivery done.

May be at April, 10, the user will be ready to use it I HOPE !

We know from the beginning the user will love this SIMPLE application, even more if we could deliver it in a WEEK as expected by developers.

There are some cases where you know that you try to deliver it fast…

But; there is always a “but”…