Wednesday, October 31, 2007

Technological advances continue...

Technological advances continue to amaze me.

I remember setting up my first token ring network.  Huge cables, not very user friendly configuration (why would everyone want to run a cable to a network box like that), everything really big, really slow.

That was almost twenty years ago.

Today, we see things like this. An SD card with enough hardware to be a wi-fi device and store 2gb of stuff.  Or, if you are cheap like me - a 1gb normal SD card for $10 (yes, I had to buy it just because - it was $10)  Now I have lots of room for pictures.

Things are moving scary fast sometimes.  Hard to keep up with everything.

About 10 years ago (ok, 10 years and a month ago), I was asked to review a new PC configuration for a friend, this is the document they sent me from the vendor:

This machine would take about 2 weeks to deliver from the date of purchase.
Gateway 2000 G6-233

Basic Machine
• Processor: Intel 233MHz Pentium II Processor w/ MMX Technology
• Memory: 64MB SDRAM
• Cache: Internal 512K L2 secondary write-back cache
• Monitor: CrystalScan700 17" color monitor
• Graphics Accelerator: nVidia 4MB AGP Graphics Accelerator
• Hard Drive: 4.0GB Ultra ATA hard drive
• Floppy Drive: 3.5" 1.44MB diskette drive
• CD-ROM: 12X min./24X max. CD-ROM drive
• Multimedia Package: Ensoniq wavetable sound card & Boston Acoustics Micromedia Speaker System
• Fax/Modem: TelePath 33.6 Data / 14.4 Fax Modem
• Case: G-Series Mid Tower
• Keyboard: 104+ Keyboard
• Mouse: MS IntelliPoint Mouse

Bundled Software

• MS Money 97 & Quicken SE
• MMX Technology Bundle
• Microsoft Windows 95
• Application Software: MS Office 97, Professional Edition

• Service Program: Gateway Gold Premium Service and Support (3yrs. Onsite) added: US$99

Additional Peripheral Hardware
This hardware is highly recommended.

The scanner, in conjunction with the fax/modem above, replaces the need for a separate fax machine (to fax outbound, you would scan and ‘print’, to receive faxes, the computer would just be turned on). Additionally, the scanner allows you to digitally store press releases, magazine articles, photographs an so on.

The digital camera allows you to capture electronically what it not printed in the papers.

The tape backup unit is a must if you are going to store items you wish to keep for a lifetime. The hard disk will fail at some point. If you go to the trouble of scanning and storing keepsake items, you do not want to lose them in a hard disk failure. The tape device is large enough to backup the entire system overnight, an operation you would want to do once a week/every other week.

We investigated color LCD monitors (space savings, an LCD monitor would be about 2 inches thick, the CRT above is about 17 inches deep) but feel that at this time they are still too new and not readily in supply. The cost of the LCD screen would be as much as the base system itself ($3,500-$4,000 for a 14 inch LCD display). We are not recommending this at this time.

• Scanner: Hewlett-Packard ScanJet 5Pse Scanner
• Digital Camera: Epson Photo PC 500
• Tape Backup Unit: TR4 SCSI TBU and tape (w/SCSI controller)

Total Price: US $4200

What cost $4200 in 1997 would cost $5218.48 in 2006.  10 years ago - state of the art was 64mb of RAM, 4gb hard disk.  And cost five times what you would expect to pay today.

Nothing to add to that, just find it amazing sometimes.

Tuesday, October 30, 2007

We have a winner...

Robert from Canada was able to identify the version each of the 33 features were released in.  Congratulations :)

Back to school...

Not really, but sort of.  I was emailing with my friend Professor Melander again and she asked my opinion on a statement made in a blog by one of her students.  The quote was:

Someone will always steer an employer towards a candidate that they know personally over one that they just know online.

Well, I think that statement would need a ton of qualification before I said "I can agree with that".  (as an aside, I have a saying I put in my seminars from time to time - it goes:

Never say Never
Never say Always
I Always say...

so statements that include always or never - beware of them)

I personally "know" of many people I would recommend without reservation - that I have never met.  I personally know of many people I have had face to face contact with - that I would not recommend.

Now, if all other things were equal - if I considered both candidates "equal" technically speaking - but I had met one of them face to face, knew them from meeting with them - that would give them an edge (or not actually, think about it, they might have turned me off in person).  That steering statement above might be true in this special case - but only because I have more information about one of them than the other.

On the other hand if the "electronically socially networked" person outshone the person I knew in the flesh in the area the job was to be in - I would likely recommend the person I had not met - with the caveat that you have to interview them and make sure you like them (but that would be true about the candidate I met face to face).

The other point I think they might be missing out on is that online you can network with a much larger congregation of people than you can in real life - from all over the place.  I don't mean just on linkedin (it took forever but I finally got out of linkedin, ugh) - I mean in forums, industry special areas, special interest places.  You never know who you are going to meet there or what they might be able to do for you sometime in the future (and vice versa of course).  You are establishing your reputation in a large forum, documented, there forever (so be careful how you act!!)

And - over time - you might find you get to meet many of these people you only know from the online world.  I have, many times.  And I am quite sure that if I hadn't been involved in the online community - I would not have met them (nor would I be doing day to day what I do!!!). 

When you do meet these people face to face, one of two things becomes apparent every time, either

  1. They are exactly like what you thought they would be
  2. They are nothing like what you expected

And for #2, one of two things can come from that - either you like them better than you did before, or you decide you didn't really like them after all.

In my experience, the former happens much more than the latter - but it is a function of the company you keep.

In short, all networking is relevant.  None of it is "better" or infinitely "superior" to another. 

A challenge...

A challenge for you all.  Good luck :)

Monday, October 22, 2007


Sound that out like the Road Runner cartoon - with Wiley E. Coyote, Suuuupppper Genius.

Got an email and then read on Doug's blog about MEEP... Maybe an interesting idea.  It'll be interested in hearing from a neophyte about how it all goes.  Whether they ultimately find it useful.

I'll be interested in their feedback - to see what goes on in their head. (wish they had an RSS feed on the blog.... hint hint...)

Hope this entry was not too dull, not too much like a wet Wednesday afternoon...

Thursday, October 18, 2007

Education, Intelligence...

Funny how things seem to happen in threes sometimes

  1. I read this blog entry by Seth Godin last night, it summed up lots of things I had been thinking about.
  2. That was after I spoke at American University, at their Social Networking and Business class.  It went well - we talked about (among many other things) Seth's blog, interviewing, knowledge (smarts, intelligence).
  3. And that was after I wrote this about interviewing

and then last night, Nicole Melander (the professor of the class) sent me a link pointing to a trailer for a movie a friend of hers is making about (sad state of) education in the US.  And they are all related - around the theme of:

How to get ahead and be successful.

In the AskTom interview question referenced above, I basically said "I don't have a checklist of factoids one needs to have remembered when interviewing".  Rather, I'd like to see them be "smart", conversant, generally intelligent, engaging, sharp - creative.  If they can dryly regurgitate factoids about the database, a programming language, a software package - whatever, not interesting.  If they are conversant and are creative, the conversation will flow and their ideas and thoughts will impress (or not, that's the point).

I might fail some peoples interview (the ones that want to have factoids spit back at them) - simply because I haven't remembered the factoid they thought was most important.  Never mind that I know how to find that factoid out (really fast).  I believe people should understand how things work - and then be able to derive from that lots of specific solutions, or at least be able to hypothesize how something will work - and then be able to construct a simple test (benchmark) to test that idea out.

When I was talking to Nicole's class - I basically said the same thing, they had questions about the interview process and how much the resume counted, how much the interview counted.  My response was that the resume is needed to get past the check list people, the human resources recruiter who is not knowledgeable in the field they are recruiting for - but rather has a checklist to satisfy.  After that, the resume was a piece of paper the interviewer would scan before the interview to generate a list of talking points.  After that, the resume was just a piece of paper - it was all about the interview and being "sharp".

And that was exactly the crux of Seth's blog:

I don't know about you, but when I hire someone, or go to the doctor or the architect or an engineer, I could care less about how good they are at memorizing or looking up facts. I want them to be great at synthesizing ideas, the faster and more insightfully, the better

I agreed with Seth that tools like Wikipedia should not only be permitted in schooling, they should be encouraged.  But, as a good friend wrote me while talking about this:

The only thing I can think of that MIGHT be the reason - and I'm not defending the reason ... just trying to understand the ban, per se - is that people automatically look at encyclopedias as facts.  Wikipedia ... cut and paste ... and presto ... your term paper's done the teachers probably got tired of it.

But that goes back to what Seth and I were saying/thinking - Seth's blog said it nice and succinctly:

I want them to be great at synthesizing ideas, the faster and more insightfully, the better

Wikipedia is just a single tool, one of thousands.  The students should be taught to use as many tools as possible, simultaneously.  They should not be prevented from using any.  They should be challenged to prove that what they 'synthesize' is true - via attribution in their write up, as well as good old fashioned fact checking.

When I'm writing something technical - I use many 'tools' to get it right.  I take the ideas, concepts, facts - from many sources and put them all together in a different way (add value).  And check the facts

That is what it is all about

Monday, October 15, 2007

A new policy of sorts...

Over time, the 'review followup' section on asktom turned into "let me ask you a new question here" section.  I found I spend almost all of my time doing nothing but review/followups (about 100 per day).

I've decided to change that.  I'm going to start ignoring (or deleting - haven't decided) review/followups that are not relevant to the original question that was asked:


That is what pops up now if you click on the review link.  My goal is to take 10 new questions almost every day during the week.  I work in various time zones and at various times - so the time of day the "I'll take new questions" will vary - but mostly expect to see it sometime between 6am and midnight - US East Coast time.

Hopefully, over time, I'll build of an archive of more "time relevant" questions as the review/followup bits drop off and new content is constantly added.

Saturday, October 13, 2007

Building a better Website and Logic...

I read this article on 19 things NOT to do when building a website.  I pretty much agree - I mostly avoid websites that do many of those things (although I find pull down menus annoying, I don't think they should be outlawed entirely - if they work correctly - meaning they work just like tabs and the menus can be ignored ;) ).  Do not resize or move my window, do not make me sit there thinking the slow loading home page is the home page only to discover it is some animated graphic you find amazing (and I find to be a yawn), don't try to impress me with your flash capabilities (you are presenting your site to a guy that has disabled animated gifs in the browser - I don't like pages that "move"), don't play music for me - I'm already playing music and mine is better than yours, if you don't work in Firefox - I'll use IE tab to see if there is a form to complain - but that is about it!

In short, a pretty good collection of "things not to do" - sort of like "worst practices".  I do a worst practices talk about databases, it is much easier to do than a "best practices" - for the simple reason that worst practices are pretty much universally wrong - whereas a best practice applies just a little more than 50% of the time; in many or most cases - but not all.  With best practices you have to do more work and caveat them - describing when not to use them as well as when to use them.  Worst practices, so much easier!

I stumbled upon this fake motivational poster shortly after reading the 19 things article.  The two seem to go together!  Do many of those 19 things and you should just get that poster framed and hang it above your monitor.

 Onto logic and false conclusions... I was reading this Dilbert blog entry which points to this NY Times article.  Just because a set of experts in a field say something is true, you might still want to ask about the science.  I thought the analogy to "Who wants to be a millionaire" with the "ask the audience" question was excellent.  When the audience is polled at the same time for what they think to be true - they generally get the right answer.  But, what if we polled the audience one by one asking for their opinion, what would happen then...  It is highly likely that the slowly building consensus would take over and sway the audiences answer as each in turn spoke theirs out loud.  Makes you question the "but everyone knows" statements - or at least it should :)

I'm still dumfounded at how many times people still say "separate indexes from tables into separate tablespaces for performance".  Sigh, but everyone knows you should... So, there you go.

Wednesday, October 10, 2007

Just for fun...

Someone posted a comment on another blog entry.  It pointed me to a cartoon they thought I could relate to.  It was pretty funny :)

Last week, a friend of mine sent me a link.  He sent me a URL to a restaurant so we could meet there.  Thunderbird broke the URL in half for some reason and when I clicked on the link, I received an error page that contained in part this text:

 Element RESTAURANT is undefined in URL.

The error occurred in /........../something.cfm: line 7

5 : select SectionName, Words
6 : from restaurants
7 : where Restaurant='#url.Restaurant#'
8 : and Section='#url.Section#'
9 :

Interesting I thought... I had some fun with that - discovered that restaurant was not only SQL injectable but HTML injectable as well (they used the text in SQL and in their generated HTML - you can do some interesting things with that)...

If you do not know what SQL Injection is - please read this.  And then get rid of string concatention in your code where ever you can!

Just to close on a sadly funny note - (warning, not entirely safe for work language is on this page) check this out

Thursday, October 04, 2007

A great article...

In order to be good, you have to realize how bad you are.

Interesting concept.  I believe it to be 100% accurate.  Everyone makes mistakes, all of the time.  I like his overall approach, lots of assertions (now waiting for the emails/comments asking "what's an assertion" :) ), pick a language that makes sense - not one that is "just so cool", and as he says "be a testing masochist".

I would add one thing: make every other line of developed code some sort of debug/trace output, instrument to death. And keep it in for production - they do not actually let you drop in a debug version of your code there, you need to always be running the debug version (just like the Oracle database does...)

I really enjoyed his talk on exception handling.  It drives me utterly nuts how people abuse (not use, abuse) error handling.  He talks of a team that was plagued by runtime errors, so - what did they do?

... I’d joined a development project where the original developers had so many problems with run-time exceptions that they simply starting including “null exception handlers”, i.e., catch all unexpected exceptions, suppress them, and keep on going. Needless to say, the system would run fine for awhile, sometimes hours, and then slowly start to...hmm..."veer off". ...

Oh, if I could get them to remove "when others" from PL/SQL - I'd be a happy camper (at least in 11g, if you have a when others that is NOT followed by RAISE or RAISE_APPLICATION_ERROR(), the compiler will WARN YOU).  You know how many times I've found bugs simply by looking for when others in code?  If I had a nickel....

I'll join the chorus of comments on that article - My name is Tom and I'm a terrible programmer :)

(read the comments on that link, it is funny how many people did not get it.)

Just 50 years...

It was 50 years ago today that Sputnik was placed into orbit.  Only 50 years ago were the bits put into place that make much of what we take for granted possible.  10 years after Sputnik - there were enough satellites out there to allow for the first worldwide satellite TV program (the Beatles performing "All You Need is Love" on June 25th, 1967).

I've relied on satellite technology for my internet connection.  I listen pretty much exclusively to music broadcast over satellite - be it at home or in the car.  Our telecommunications, weather forecasting, so many things rely on that.

And 50 years plus a day ago, none of it existed.  It still boggles my mind how fast technology is advancing.  I think my car has more computing horsepower today than existed in total back when that satellite was launched.  My phone (treo 700p) is more powerful than my first computer was (a tandy 1000ex) - and it provides me with an EVDO broadband connection pretty much anywhere in North America.

And just a short 105 years ago - a technology that perhaps changed more things day to day than anything else - the air conditioner.  So - question to you all - what do you think is the most revolutionary invention in the last hundred or so years (and why).  I vote for the air conditioner - at least in the US, without it - summer would be very different.

Wednesday, October 03, 2007

It's all about the data...

I've said many times - go ahead, erase all of my .exe files, but don't you dare touch my data.  Take word away from me, leave me my .doc files.  I'll be able to find something that can process the data eventually.

It is all about the data, applications are sugar on top of them to make them look prettier, but are not the end goal. 

Funny though, in most organizations, the thought process runs the opposite direction - for many people it is all about the application.  That is totally backwards.  Applications come, applications go.  They are secondary.  The instant an application is production - we are looking to replace it already.  Be it with version 2.0 of the application, or be it with another application entirely.

It is all about the data.

Even non-technical people understand that :)  I've always enjoyed Seth Godin's blog entries - short, and sweet and to the point.  That one, from a marketing guy, was good to hear.