Friday, December 12, 2008

Quotations for Software Developpers

"Excessive or irrational schedules are probably the most destructive force in SW"
-- Capers Jones

"I love deadlines! I like the 'whooshing' sound they make as the fly by."
-- Douglas Adams

Software gets late one day at a time - Freb Brooks.

Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.
-- Antoine de Saint-Exupery (1900 - 1944)

"A truly great computer programmer is lazy, impatient and full of hubris"
-- Larry Wall

"No Silver Bullets - Essence and Accident in Software Engineering" - Fred Brooks
- essential attributes (high level - design)
- accidental attributes (code - implementation)

"The esscence of system design is interface design" - Stroustrup

"... as a rule of thumb, I can suggest that more resources, time, effort and talent should be spent testing a system than on constructing the initial implementation"
-- Stroustrup B.; The C++ Programming Language

~The fundamental motivation in defining a new type is to separate the incidental from the essential
-- Stroustrup

Programming is understanding - Kristen Nygaard

"Making the simple complex is easy. Making the complex simple, awesomely simple, now THAT is genius."
--Charles Mingus

"There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult."
-- C.A.R. Hoare

Key concept of MMM(Brooks) :
Essential problem with large systems is to maintain their conceptual integrity

"Plan to throw one away, you will anyway" - 1975 Brooks (MMM)

"If you plan to throw one away, you'll throw two!" - Zerounti

"Software is not written, or grown, or farmed. The best analogy is constructed or built" - McConnell (91)

"Don't comment tricky code - rewrite it" - McConnell (91)

"90% of code deals with exceptional or error cases, 10% with nominal cases"
-- Shaw in Bentley(82)

"When in doubt, use brute force" - Lampson

"Informal review procedures were passed from person to person in the general culture of computing for many years before they were acknoledged in print. The need for reviews was
so obvious to the best programmers that they rarely mentioned it in print, while the worst programmers thought that their work was so good that _their_ work didn't need reviewing.
-- Freedman/Weinberg

"Debugging is anticipated with distaste, performed with reluctance, and bragged about
forever."
-- Anon.

"Never debug standing up" - Weinberg(Psycology of a CP)

"More computing sins are committed in the name of efficiency (without necessarily achieving it) than for any other single reason - including blind stupidity."
-- W.A.Wulf.

Rules of Optimization: -- M.A. Jackson
Rule 1: Don't do it.
Rule 2 (for experts only): Don't do it yet.

"We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil." -- Donald Knuth

Program-testing can be used very effectively to show the presence of bugs; but never to show their absence. (Dijkstra)

"Programming can be fun, so can cryptography, however they shouldn't be mixed"
- Kreitzberg & Schneiderman

Computer Science is no more about computers than astronomy is about telescopes.
E. W. Dijkstra

The question of whether a computer can think is no more interesting than the question of whether a submarine can swim.
Edsger W. Dijkstra

Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.
Rick Cook, The Wizardry Compiled

If debugging is the art of removing bugs, then programming must be the art of inserting them.
- unknown

“…documentation is a love letter that you write to your future self.” – Damian Conway

Computers make it easier to do a lot of things, but most of the things they make it easier to do don't need to be done.
Andy Rooney (1919 - )

Project Management Cookies

General Project Quotations


"If it is developed thoughtlessly and applied mindlessly, process can become the death of common sense" - Philip K. Howard

A leader knows where to go, and goes - J Erskine

"Do, or do not, there is no try." - Yoda

"Failure to prepare is preparing to fail" - Ben Franklin

Management Myopia : The subconscious tells you that anything you don't understand must be easy.

"Risk management is project management for adults" - Tim Lister

So much of what we call management consists in making it difficult for people to work.
Peter Drucker (1909 - 2005)

Management is doing things right; leadership is doing the right things.
Peter Drucker (1909 - 2005)

Not everything that can be counted counts, and not everything that counts can be counted"
- Einstein

"Not every group is a team and not every team is effective."

At Group L, Stoffel oversees six first-rate programmers, a managerial challenge roughly
comparable to herding cats. -- The Washington Post Magazine, 1985

"It must be remembered that there is nothing more difficult to plan,
more doubtful of success, more dangerous to manage, than the creation of a new system.
For the initiator has the enmity of all who would profit by the preservation of the old
institutions and merely lukewarm defenders in those who would gain by the new ones."
-- Machiavelli

"Any fool can defend his/her mistakes, most fools do!" - Dale Carnegie

"The moral virtues, then, are engendered in us neither by nor contrary to nature ... their full development is in us due to habit ... Anything that we have to learn to do we learn by the actual doing of it. Men will become good builders as a result of building well and bad ones as a results of building badly ... so it is a matter of no little importance what sort of habits we form from the earliest age - it makes a vast difference, or rather, all the difference in the world."
-- Aristotle

Why waste time learning, when ignorance is instantaneous
- (Bill Waterson) - Calvin / Hobbes.

Experience is largely non-transferrable.

"The best is the enemy of the good." Voltaire

Confidence is contagious. So is lack of confidence. Michael O'Brien

Judge a leader by his followers.

"If you can't explain something to a six year old, you don't really understand it" - Einstein

Albert Einstein, three rules of work
1. Out of clutter, find simplicity.
2. From discord, find harmony.
3. In the middle of difficulty lies opportunity.

"When I am working on a problem I never think about beauty. I only think about how to
solve the problem. But when I have finished, if the solution is not beautiful, I know
it is wrong." -- Buckminster Fuller

"You cannot apply a technological solution to a sociological problem."
- Edwards' Law

Language shapes the way we think and determines what we can think about
-- Benjamin Lee Whorf (engineer and linguist).

"All buildings are predictions. All predictions are wrong."
-- Stewart Brand, How Buildings Learn, p. 178.

A leader is best when people barely know he exists. Not so good when people acclaim him.
Worse when they despise him. But of a good leader who talks little when his work is done,
his aim fullfilled, they will say, "we did it ourselves."
-- Lao-Tzu, c. 550 BC

Big jobs usually go to those who prove their ability to outgrow small ones.
--Ralph Waldo Emerson

"The best executive is the one who has sense enough to pick good men to do what he wants, and the self-restraint to keep from meddling with them while their doing it."
--Theodore Roosevelt.

There is no necessary connection between the desire to lead and the ability to lead, and even less the ability to lead somewhere that will be to the advantage of the led...
--Bergen Evans.

OFFICE ARITHMETIC
Smart boss + smart employee = profit
Smart boss + dumb employee = production
Dumb boss + smart employee = promotion
Dumb boss + dumb employee = overtime

By working faithfully 8 hours a day, you may get eventually get to be a boss and work 12
hours a day.

-Robert Frost

Tuesday, December 2, 2008

Doxygen

This seems really quite nice.  I've used Javadoc before, and found Doxygen really easy to set up on a large code base ...and the results (html option) look real nice. Javadoc was nice too.

However, it just doesn't add up.  The compiler knowns the linkages of everything. A good IDE will jump around the code from reference to definition, and literate coding permits easy reading.

Why mess with these commenting props? Are they not defunct?  My number one rule for comments is: "Is this needed?"  This is not an aloof minimalism, but a pragmatism born of being a slow but careful reader.  If a name can adaqutely describe thedefinition, consider a redesign with smaller responsibility!

As an note - when attempting to read-into code for the first overview, there is an old tool that answers all the questions : cscope. This  was added (still available) to the programmers tool-chest way back and it beats these shiny new toys hands down.

Learning how to comment may be helped by reading the tagging methods of Doxygen and other "automatic documentation tools", but it's a deeper and more valuable lesson when gleaned from reading good code.  As more and more code is made available online, the only issue is telling the wheat from the chaff. 

Asimov - for the Big Screen

/. have a rumour that New Line cimema are going to make some Foundation films ... How they'll handle the timeline will be interesting... but isn't it mean the way they tell us so early !! We'll have to wait sooo long !

Airports

Why are airports so slow?

I recently travelled from Dublin to Newcastle-Upon-Tyne.  The time in the air for the aircraft is 50 minutes.  Door-to-Door, the trip took over 5 hours.  If everyone was payed for their time queuing in this system, how much would it cost ?  

That is 300 minutes or 500% overhead on the the required flying time.

Who will look at these overheads and attempt to start shaving some of the fat off? How much would it be worth to do so?  There were over 10 million outward journeys in 2006, if the overage time wasted is 4 hours, at a low wage of 15 euros per hour, that 600 million euros in wasted opportunity per year (2006 numbers) !

The only meaningful answer, of course, is I'll look at these overheads and decide that drivingto Belfast instead is better. For an "Island Nation" however, shouldn't some body with power in the area, the IAA perhaps, look at these problems and propose some improvements ?

If not the IAA, could Ryanair perhaps see some profits to shaving the overheads ? Probably they'd follow their tradition and blame the Dublin Aiport Authority. Perhaps they'd be right !

How to tackle the problem, in my humble opinion:

  1. All airports should be size limited, perhaps no airport greater than 3 million passengers per year in either direction
  2. An airport on the south side of the city, perhaps on the Tallaght light rail line
  3. Reliable frequent rail links to the airports,
  4. Consider zero car parking spaces for travellers
  5. Aircraft HAVE to get more accurate timetables.  I find it very hard to swallow that weather is so bad that it effects a modern aircraft every day!
  6. Security permits the services to run, OK. Now what can be done there ? Couldn't the gates have the required equipment to scan people at the gates, and the crew could be trained to use the equipment?  This delegates the security of the aircraft to those who own and operate the aircraft.  The captain is responsible again for the security of his/her passengers.

Ok - so I'm griping... and beggars can't be choosers.  How much would a train tunnel between Ireland and England cost ?  Well - as the chanel tunnel will probably never return it's cost, I can write that idea off !