Archive for the 'Rant' Category

Google Chrome

The Browser War is flaring up once again with the release of Google Chrome. Google Chrome is a new browser based on many freely available open source components such as WebKit and Firefox. Chrome is bare bones, chromeless, browser with very little UI fluff and decoration. It is interesting to note that the UI for the Google browser took a note from the companies colorful logo, the Chrome UI is very cartoon-like with a blue pastel color scheme.

Many of the features that are high lighted in Chrome are not necessarily revolutionary, instead I would say that the Google browser is retro-evolutionary. Chrome basically reduced the browser to the location bar, tabs, and content page.

The most touted features in Chrome are its crash control, incognito mode, and safe browsing. Chrome runs each web page on its own process so that if one page fails only that page is effected. Incognito mode is like Safari’s Private Browsing, aka Porn Mode, it allows you to surf the web without caching cookies and history of the sites you visit on your local computer. It’s safe browsing feature will help you to identify web sites with malicious code or applications. Many of these features are not entirely novel, so why would Google go to the efforts of creating a new browser?

What I think is novel is that Google decided to release yet another browser. The browser space is already crowded with Firefox, IE, Safari, Opera, Konqueror, and Flock to name just a few. It is clear that Google will align Chrome with its properties, search, applications, development tools, and user generated content sites. Seeing Google take this approach I wonder if other companies follow suit and release internet browsers that compliment their business. Can you imagine a custom browser from Adobe, Mcaffee, Oracle, Amazon, or EBay?

Chrome Web Development Disturbance
Via Noise to Signal

Technorati Tags: , , , , , ,

Juixe TechKnow Software Quotes 2008

Here is a pile of quotes and anti-anecdotes relating to software development and programming in general. The quotes where compiled by digging through the mining the rants from Juixe TechKnow. The collection of programming quotes is available as a PDF document and can be found on scribd.

Anonymous Code Monkey

Your code does not start at the compiler nor does it stop at the JVM.

One lesson that most developers don’t learn is to debug outside the debugger. As an engineer there are times when you need to troubleshot, problem solve, and debug not just your software from the comforts of your favorite IDE but the whole software stack, network, hardware, user’s environment, and even the user himself.

You can unit test and statically analysis software, but you can’t probe your users.

Every problem, issue, and bug experienced by the end user directly and indirectly with your software eventually needs to be implicitly and explicitly dealt with by your software development team.

I wish development teams spend more time streamlining their process rather than prematurely optimizing their code.

It is OK to have software with bugs, bugs can be fixed. It is not OK to have software with excuses!

Learn, plan, design, code, integrate, build, release, rinse, and repeat.

Management has a way of over emphasizing the blatantly obvious.

I’m a lazy loading type of programmer.

I’ve discovered that Windows security is an oxymoron!

I know that techies, myself included, are always bragging about how their code is poetry but I have never meet a poet laureate in a development team.

Remixing and mashing up Google Maps and Flickr is like the ‘Hello, World’ first program of Web 2.0 mashups.

Open Source code equals community.

As a rule of thumb, I never cache, pool, or use as singleton mutable objects.

Bugs by nature are out of the box, as a developer, you need to expand the box.

WWGD: What would Google do?

At some companies, the term Spec stands for Speculation.

I went to school to learn how to program software applications, which inevitably have bug defects. There was no course at my university on testing, debugging, profiling, or optimization. These things you have to learn on your own, usually in a tight deadline.

To most Java developers, Ruby/Rails is like a mistress. Ruby/Rails is young, new, and exciting; but eventually we go back to old faithful, dependable, and employable Java with some new tricks and idioms and we are the better programmer for it.

You might as well hire your your customers and pay them 50K/year because they are your new QA.

There is a saying, those who can, do; those who can’t, teach. It can be said that in software engineering, those who can, code, those who can’t, manage.

The greatest thing about Ruby on Rails is neither Ruby nor Rails, the best aspect of Rails is that it questioned the ‘best practices’ (and worst nightmares) of the current state of web development with its philosophy of Convention over Configuration and Don’t Repeat Yourself principle.

Read more »

Hug a Developer

Devshop has created a satirical video of developers in tough times. The video is of software developers standing on street intersections or sitting on the floor outside coffee shops holding up small cardboard signs. Here is some of the text from the cardboard signs.

We’re 4 months into a 5 month schedule and I just received the final requirements yesterday. (and they’ve changed again!).

I spend half my days in meetings about how to get more work done. (instead of working).

My boss read in a magazine that developers using “____” programming language are twice as productive. So he bought us a copy and cut our schedule in half.

This is funny because it is true.

Technorati Tags: , ,

Favorite Programming Quotes

The first 90 percent of the code accounts for the first 90 percent of the development time…The remaining 10 percent of the code accounts for the other 90 percent of the development time.
Tom Cargill

Most of you are familiar with the virtues of a programmer. There are three, of course: laziness, impatience, and hubris.
Larry Wall

Measuring programming progress by lines of code is like measuring aircraft building progress by weight.
Bill Gates

Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.
Brian W. Kernighan

Once a new technology starts rolling, if you’re not part of the steamroller, you’re part of the road.
Stewart Brand

In theory, there is no difference between theory and practice. But, in practice, there is.
Jan L. A. van de Snepscheut

The hardest part of design … is keeping features out.
Donald Norman

Before software can be reusable it first has to be usable.
Ralph Johnson

If debugging is the process of removing bugs, then programming must be the process of putting them in.
Edsger Dijkstra

Software and cathedrals are much the same - first we build them, then we pray.
Anonymous Preacher

The goal of Computer Science is to build something that will last at least until we’ve finished building it.
Anonymous Consultant

The software isn’t finished until the last user is dead.
Anonymous Support Group Member

Better train people and risk they leave - than do nothing and risk they stay.
Anonymous Technical Trainer

Programming is 10% science, 20% ingenuity, and 70% getting the ingenuity to work with the science.
Anonymous Scientist

All programmers are playwrights and all computers are lousy actors.
Anonymous Hack Actor

Bad code isn’t bad, its just misunderstood.
Anonymous Code Behaviorist

It is easier to measure something than to understand what you have measured.
Anonymous Analyst

The sooner you get behind in your work, the more time you have to catch up.
Anonymous Scheduler

When a programming language is created that allows programmers to program in simple English, it will be discovered that programmers cannot speak English.
Anonymous Linguist

Benchmarks don’t lie, but liars do benchmarks.
Anonymous Tester

Why do we never have time to do it right, but always have time to do it over?
Anonymous Code Monkey

Technorati Tags: , , , , , ,

Get That Raise

I was recently asked for a few tips for negotiate a pay raise. There is not much to asking for a raise, the key is to ask at the right time. Ask for a raise when the company is on a high note, an up swing such as having recently closing a big deal or accomplished a critical milestone. Before asking for a raise you should get a good sense of the current job market and the value you add to the company. If you want a 10% raise ask for 15%, if you want 15% ask for 25%. In addition to just a 25% raise, I would ask for a new title, more training, higher team leadership and management role. When asking for a raise you will have a better chance if you also step up and ask for more responsibility, not just money but a bigger and more visible role in the team. Just to make sure you make every point in asking for a raise, print out a one to two page document which highlights your accomplishments for the past year, take some initiate and make some objects for yourself for the coming year, and also detail your request for a pay raise, new title, additional responsibilities, and other fringe benefits.

Some manager have canned answers for when employees ask for a raise, such as the pay structure is pretty flat in the company, or that you don’t have a required skill or degree required for a given salary range. No matter what, do not walk away with nothing, negotiate either for concessions of other benefits, perhaps educational reimbursements or corporate training.

So go ahead, get that raise, you deserve it.

If you have any tips that worked for you in getting a raise, feel free to comment on them.

Technorati Tags: , , , , , ,

Java 6 and JDBC 4.0

I just migrated a 4,000+ Java class project from Java 1.4.2 to Java 6. I’ve already mentioned some of the issues to be aware of when migrating a large code base to Java 6. In Java 6, enum is a reserved keyword so I had to renaming variables that had that name, I also had to upgrade to a more recent version of Apache Commons Lang for a similar reason. I also had minor issues compilation issues, such as the removal of compareTo(Object obj) method was removed from the String class, and Apache classes that once shipped with the JRE 1.4.2 where removed.

But what irked me the most about Java 6 was recent changes to JDBC 4.0. The ResultSet interface, in Java 6, has 197 methods that need be be implemented if you are working with custom ResultSet implementation. I am just shocked at the sheer number of methods required for a basic ResultSet, most of which are not used, or will ever be used by our custom implementation! This is what is wrong with Java. The good thing is that Eclipse auto code generation features saved me from typing all of those methods but I wished there was a basic ‘do nothing’ abstract adapter like WindowAdapter.

Technorati Tags: , , , , , ,

Next Page »