About Duffbert...

Duffbert's Random Musings is a blog where I talk about whatever happens to be running through my head at any given moment... I'm Thomas Duff, and you can find out more about me here...

Email Me!

Search This Site!

Custom Search

I'm published!

Co-author of the book IBM Lotus Sametime 8 Essentials: A User's Guide

Purchase on Amazon

Co-author of the book IBM Sametime 8.5.2 Administration Guide

Purchase on Amazon


Visitor Count...

View My Stats


Book Review - Essential C# 2.0 by Mark Michaelis

Category Book Reviews
If and when I ever get around to learning C# (after Ruby and Ajax and ...), this book would appeal to me on many different levels...  Essential C# 2.0 by Mark Michaelis.  It sets out to do a lot, and it actually delivers...

Contents: Introducing C#; Data Types; Operators and Control Flow; Methods and Parameters; Classes; Inheritance; Interfaces; Value Types; Well-Formed Types; Exception Handling; Generics; Collections; Delegates and Events; Reflection and Attributes; Multithreading; Multithreading Patterns; Platform Interoperability and Unsafe Code; The Common Language Infrastructure; Download and Installing the C# Compiler and the CLI Platform; Complete Source Code Listings; C# 2.0 Topics; Index

When you get a book that focuses on being a tutorial for a language, you can pretty much plan on it not appealing much to the intermediate coder.  In most cases, that person already knows the basics of the language.  As a result, the value of the entire package is pretty much limited.  Michaelis tries to go beyond that, to give the "beyond beginner" a reason to keep reading.  He includes a number of "sidebar" insets that are labeled "Beginner Topic" and "Advanced Topic".  These advanced tips are things that aren't normally spelled out for beginners, nor are they necessarily flagged in the documentation.  For instance, have you ever given any thought as to whether the increment and decrement operators are thread-safe?  You might be surprised, and there are ways to make sure you don't get bit by an error that would be very hard to find.  He also starts out each chapter with a mindmap diagram to show the topic and the mental branches that will be covered in the material.  I like the idea of knowing visually where you are going before you start reading.  It helps me to put everything in some sort of mental framework, to "know what I don't know", so to speak...  Finally, he also deals with syntax and structured flow programming before diving into object-oriented stuff.  For someone like me who came from a procedural language background, this is far more comfortable for me than to try and solve both syntax and OO concepts at once.

This is definitely one of the more solid learning tools to a language that I've come across.  Plenty of code, the promise of on-going value over time, and a few references to the movie "The Princess Bride" thrown in for good measure.  How can you *not* like a book like that?  :)


So close to my book reviewing goal I can taste it...

Category Book Reviews
Image:Duffbert's Random Musings - So close to my book reviewing goal I can taste it...


As of today, I'm tied for 101 with someone who hasn't actively reviewed in months.  So I'll pass him up and hold 101 all to myself in the next day or two.  Then hopefully I'll make the jump to 100 before I leave on vacation!

Just a few more Helpful review votes, and I'll break into the top 100!  :)


Book Review - The Lenovo Affair by Ling Zhijun

Category Book Reviews
When Lenovo bought the IBM PC division, I think many Americans saw it as an ominous sign of increasing dominance by a foreign juggernaut.  In reality, Lenovo has just as many problems as any other international firm.  The story is laid out pretty well in the book The Lenovo Affair - The growth of China's computer giant and its takeover of IBM-PC by Ling Zhijun (translated by Martha Avery).

The book covers the history of Lenovo, or Lianxiang as it is known in China, and its founder Liu Chuanzhi.  The history goes back to 1984 when a small group of people from the academy got permission to start a business enterprise.  This is the first major mind-shift you'll undergo as you read the story, as the Chinese culture and government make for vastly different rules in the business world.  During their formative years, there was a tight connection between the academy and the business, so much so that workers in both areas could go back and forth between the two groups, drawing salaries from both.  While it may sound like the government backing would guarantee success, the reality is that you have far more expectations and political gamesmanship to account for.  And if you fall out of favor with the ruling party, your demise is pretty much assured.

As the years unfolded, up to and through the internet bubble, Lenovo earned the reputation of a company having nine lives.  On numerous occasions, personality issues could have torn the company apart (and nearly did).  Supply and cost considerations, along with foreign competition, almost caused the company to go bankrupt a number of times.  The same business forces at work in the West (profit margins, competition, labor costs, etc.) also affect Chinese companies.  You realize that the mere fact of being a Chinese company with government support doesn't automatically pave the way to success.  The chapter on the IBM purchase is almost dealt with as an after-thought in the book.  There's not much ink devoted to that particular event, but the rest of the book does a good job in setting the stage for what something like that means to a company like Lenovo.

This isn't a particularly easy read for a westerner.  My unfamiliarity with Chinese names made it hard to follow the cast of characters.  I'm sure the translation factor also comes into play in terms of readability.  But it's a book I'd recommend for a number of reasons.  You'll see how China's communist, war-driven history flavors business strategy at all levels.  Companies looking to operate in China will start to understand how the culture is so very much different than ours, and how ignoring that fact dooms you to failure before you even start.  But most of all, you'll see that it *is* possible to compete with companies like Lenovo, because they are just as human and prone to misjudgements as any other business...


Book Review - Waking Lazarus by T. L. Hines

Category Book Reviews
One of the last "recreational reads" I had on my shelf was the debut novel by T. L Hines titled Waking Lazarus.  I heard about it during the writing process, and quickly put myself on the hold list at the library.  It was well worth the wait...

Jude Allman has lived a number of lives...  literally.  He's died three times and come back to life after all efforts to resuscitate him were abandoned.  You do that often enough, and you become quite a celebrity.  But Allman didn't want that.  In fact, he moved away, changed his name, and developed some rather strange psychotic behavior.  He also fathered a child during a one-night stand, but he's never been able to be there for the kid.  His self-imposed isolation starts to crumble when a woman shows up at his door, asking about his purpose after having died so many times.  While he wants to just get rid of her, things start to change.  He begins to experience an unusual ability to foresee death around him, and can visualize the process by touching the person.  The mother of his child wants to chalk it up to seizures, but the fact remains that the foreshadowings are accurate.  This coincides with a string of child kidnappings that are occurring in the local area, and Allman has to use his new-found powers in solving this mystery when it's his kid who's been taken.  This is a position and power he doesn't want, but he now has little choice but to exercise its use...

For a debut novel, this is very well done.  Any book that starts off with "The first time Jude Allman died, he was eight years old." is enough to catch your interest, and Hines doesn't give you much chance to put the book down after that.  The interplay between his mental illness and his desire to be a real father to his child is an interesting conflict, and you can understand why he'd want to just make it all go away (both reality and his constructed existence).  And while I thought I had the plot figured out a number of times, it turns out that things took off in a direction I didn't expect...

An entertaining read that engaged my mind a bit more than usual...  


Nothing like seven day work weeks to make you appreciate weekends...

Category Everything Else
While I'm not ready to drop yet, these seven day work weeks are starting to wear on me.  The last "I'm not logging on and it's not expected" was the July 4th holiday.  Things start to return to a semblance of normalacy starting in August, and I also have a couple vacations coming up between now and the week of Labor Day (first week in September).  My wife and I are taking an Alaskan cruise in less than two weeks, followed by a week down at DisneyWorld in September.  The cruise was a point of contention when my wife first booked it back in January (long story), but now the anticipation of a week away is the only thing keeping me sane...  :)


This Lotus Notes "assessment" offer from INS looks like a predetermined outcome...

Category IBM/Lotus
I ran across a press release for a firm called INS that is offering an assessment of your Notes/Domino environment.  Here's their Lotus Notes Assessment and Migration pitch:

INS’ Lotus Notes Assessment and Migration solutions help you reduce the total cost of ownership involved in managing and maintaining your collaborative environment, while ensuring that your employees have intuitive, highly functional applications.

Many organizations are relying more and more on the efficiency and usability of their collaboration environments to improve productivity and time-to-market. Using efficient, scalable, collaborative application platforms that have the ability to integrate with a variety of applications is a high priority for many forward-thinking organizations today. Many companies have found that their Lotus Notes/Domino–based environments are constrained by technical complexities and limitations, resulting in high management and maintenance costs, non-intuitive user interfaces and challenges that deter enterprise integration.

Now, right off it sounds like a bundled Microsoft offering from a business partner.  And if you had any doubts about how their assessment will turn out, just look at the "benefits" in their PDF attachment:

Realize the Results

• Save money by finding and purging unused and duplicate Notes applications, eliminating IBM Lotus annual maintenance renewal costs and fully utilizing Microsoft licenses that you may already own

• Enable compliance by consolidating directory services for easy validation of applications

• Enhance security by placing security administration in a single directory service

• Reduce ongoing training costs by migrating users to a more intuitive, familiar environment for messaging and collaborative applications

• Move toward modular enterprise application development using standards-based development products like the Microsoft .NET Framework

• Increase administrative efficiency by consolidating the network directory infrastructures of Notes and Active Directory

• Improving systems accountability and support by working with a single vendor on a single platform throughout your organization

Don't you just love when the consultants already know the answer before they talk about your problem?  Especially when statements like "standards-based development products like .NET" mean that you're locked into their standards, not open standards?


Nice evening at the O'Reilly Open Source Conference (OSCON) meeting two key people...

Category Everything Else
After some late afternoon appointments, I dropped by the O'Reilly Open Source conference being held here in Portland Oregon.  They have a Wednesday night reception that's free, and you can wander the exhibit hall.  The main reason I go is to meet up with my publishing contacts at O'Reilly and Apress.  Marsee from O'Reilly wasn't able to make it this year, but Julie Miller from Apress was there.  As usual, I had a great time talking with her and commenting about the (at least!) 10 to 1 ratio of men to women at this event...  *really geeky* men...

But a big surprise was getting the chance to finally meet Kathy Sierra (of Head First fame) in person.  We've emailed each other a number of times, but we've never been able to meet up.  I knew she was going to be speaking and attending Monday and Tuesday, but I really didn't expect her to be there this evening.  Much to my astonishment, I saw a short blonde lady in the lobby, talking to a couple of other women about horses, standing next to someone who looked like Bert Bates.  I was able to read her name tag, confirm it *was* her, and I just stood off to the side of the small group until there was a break.  She looked over, read the name tag, and said "TOM!"  :)  They were off to the airport to catch their flight home, but it was a nice 15 minutes of chatting.  Rather cool when a virtual friend finally is able to bridge the gap to "f2f"...

And after a long day of work, networking, errands and appointments, and taking the other car in for service, I'm all tuckered out...  Off to bed...


Expanding/Collaping all sections on a Domino web page... bwahahahaha!

Category IBM/Lotus
It's times like this that all the book reviewing pays off...  :)

In a number of the Domino web apps I maintain, the user has the opportunity to create pages with sections in the Rich Text area.  And of course, when displayed on the web, they can open and close each of the sections.  But they wanted the ability to expand and collapse ALL the sections on the page at once.  And for the life of me, I couldn't find a Notes formula command that would do that and that was supported on the web.

The prior solution (coded by a friendly runt who will remain unnamed here  (joe)) was to use a JavaScript routine that would build a Domino URL using the ExpandSection parameter followed by a number of section numbers (1, 1.1, 1.1.1, etc.).  It didn't matter if you named more sections than necessary...  everything would still expand.  Worked OK for smaller numbers of sections on a form, but it got ugly when you had sections in sections or a large number of sections.  A URL can only be so long...

So...  The user today had an example with 45 sections on the document.  That pretty much destroyed the URL hack.  I've been sticking my toe in the DOM scripting waters of late, and I wondered if I could, via JavaScript, get all the sections of a Domino web page (regardless of the number of them), and apply a CSS style to them to expand and collapse them.  It's the same concept as the code that Domino automatically adds to the page when you have sections.  I just wanted to do them all at once instead of a section at a time.

And I was able to!!!  With my DOM Scripting book open, I was able to code the following expandAll and collapseAll functions for inclusion in a JavaScript library, and then I link to them on my web page...

function expandAll () {
    sections = document.getElementsByTagName("span");
    for (var i = 0; i < sections.length; i++) {
        var idName = sections[i].getAttribute("id");
        if (idName.substr(0,4) == "xSec") {
            sections[i].style.display = "block";
        } else if (idName.substr(0,4) == "cSec") {
            sections[i].style.display = "none";

function collapseAll () {
    sections = document.getElementsByTagName("span");
    for (var i = 0; i < sections.length; i++) {
        var idName = sections[i].getAttribute("id");
        if (idName.substr(0,4) == "xSec") {
            sections[i].style.display = "none";
        } else if (idName.substr(0,4) == "cSec") {
            sections[i].style.display = "block";

Yes, I probably could have made just one function and passed parameters, but I was flat out thrilled to get *this* much working!  The collapseAll does leave a blank line between each section on the form, so I'll have to see if I can fix that.  But the functionality works, regardless of how many sections you have on the form.  I don't care *what* the user does now...  :)

Now, I'll probably receive my first "why didn't you just use this command?" email/comment minutes after posting this, but for right now I'm feeling like a coding stud...  And after all the documentation stuff I've been doing of late, I needed something like this.


Book Review - The Traitor by Stephen Coonts

Category Book Reviews
A little recreational reading in the spy genre...  The Traitor by Stephen Coonts.  Not outstanding, but solid entertainment...

Tommy Carmellini has been sucked back into the spy game by Jake Grafton, when Grafton is appointed the new CIA officer in charge of the European operations.  There's a suspicion that the French have a mole within the al Queda organization, and Grafton wants access to him.  But there's no chance that's going to happen, so Carmellini is brought in to attempt to dig out the source.  His cover is quickly blown, and a number of people are trailing him (or trying to kill him).  Neither Carmellini or Grafton know exactly which group is following them, and the answer makes a large difference as to who they can and can't trust.  The ticking clock in this whole story is the upcoming G8 meeting in France, which appears to be the next terror attack target.  Unless Carmellini and Grafton find the mole and learn the story, the leadership of the economic powerhouse countries may not make it out of the conference alive...

This is a fun read...  Written in first-person style from Carmellini's perspective, the dialogue and mental gyrations are clever and engaging.  I also enjoyed the interplay between him and his (former?) love interest.  She dumped him before, and now they are thrown back together to pull off a con.  The plot seems to be a little slow and murky at times, and I'm still not quite sure I fully understood the twist at the end.  Still, if you're looking for a spy yarn to kill off a few hours, you could do far worse.


Book Review - From Java to Ruby by Bruce Tate

Category Book Reviews
It's not a difficult sell to get a technology geek to understand and try out a new language.  But getting your management to buy into it can be nearly impossible.  Bruce Tate makes a convincing case for moving to Ruby in the book From Java to Ruby - Things Every Manager Should Know.

Contents: Introduction; Pain; Establishing Your Reward; Pilot; On An Island; Bridges; Ramping Up; Risk; Bibliography

While a proponent of the Ruby language, Tate doesn't approach this from a "rah-rah" standpoint.  It's written from a practical, pragmatic standpoint, one that is designed to show the pros and cons of using this tool over the "normal" option of Java.  He talks about his journey from being a Java evangelist to becoming sold on the benefits that Ruby offers.  He doesn't shy away from where Ruby still doesn't measure up.  It's more a case of using the right tool for a job, and he feels that Java is an elephant gun being used to kill small rodents in far too many cases.  There is always the risk that Ruby won't "cross the chasm", but he feels that Ruby has reached that critical mass that ensures it won't stagnate and die.  I personally have wanted to learn Ruby, and this only whets my appetite all the more.  I've been trying to learn Perl (in my lack of spare time) for use as a utility tool.  But apparently Ruby can do that kind of data manipulation just as well, so I'll probably be reassessing my time spent in that area...

If you're someone who has seen the benefit of Ruby and you want to get your management on board, this might well be the sales tool you need...  An excellent read...


Book Review - Pattern Languages of Program Design 5

Category Book Reviews
For those who are very into design patterns, here's a book that explores some new specialized patterns by industry players...  Pattern Languages of Program Design 5, edited by Dragos Manolescu, Markus Voelter, and James Noble.

Part 1 - Design Patterns: Dynamic Object Model; Domain Object Manager; Encapsulated Context
Part 2 - Concurrent, Network, and Real-Time Patterns: A Pattern Language for Efficient, Predictable, and Scalable Dispatching Components; "Triple -T" - A System of Patterns for Reliable Communication in Hard Real-Time Systems; Real Time and Resource Overload Language
Part 3- Distributed Systems: Decentralized Locking; The Comparand Pattern - Cheap Identity Testing Using Dedicated Values; Pattern Language for Service Discovery
Part 4 - Domain-Specific Patterns: MoRaR - A Pattern Language for Mobility and Radio Resource Management; Content Conversation and Generation on the Web - A Pattern Language
Part 5 - Architecture Patterns: Patterns for Plug-ins; The Grid Architectural Pattern - Leveraging Distributed Processing Capabilities; Patterns of Component and Language Integration; Patterns for Successful Framework Development
Part 6 - Meta-Patterns: Advanced Pattern Writing; A Language Designer's Pattern Language; The Language of Shepherding; Patterns of the Prairie Houses
About the Authors; Index

By no means were the 23 original patterns first published over a decade ago in the Gang of Four book meant to be the definitive list of patterns.  They are the most common and applicable to general development.  But over that decade, technology and software development has progressed, and new situations that have patterns have emerged.  This book is a series of papers published as part of the Pattern Languages of Programming (PLoP) conferences.  They've been edited and compiled into a standard format and offered in this single volume.  On the positive side, the tight editing means that you have a fair amount of consistency in terms of style and formatting.  You get sections for examples, context, problem, solution, implementation, consequences, known uses, related patterns, conclusion, acknowledgements, and references.  I like the layout, in that it's easy to quickly determine what the pattern is attempting to solve, and whether it's something you could use...

The negative on compilation books is that your needs may not mesh up with the content chosen for inclusion.  In this case, you may find the entire Part 2 section is irrelevant since you don't program or develop in those domains.  Still, this compilation is better than most in that it's presented in a reference style which could be kept around for potential use down the road.  It's not as if it's the ramblings of someone's thoughts that might not age well...

Solid material for those who have already grasped the pattern concept, and even better if you see something in here that sparks an interest...


Book Review - Big Winners And Big Losers by Alfred A. Marcus

Category Book Reviews
Alfred A. Marcus explores the reasons why some companies win big and some fail dismally in the book Big Winners And Big Losers - The 4 Secrets Of Long-Term Business Success And Failure.  Worth adding to your business bookshelf if this is an area of interest to you, but it's not the easiest read...

Part 1 - Introduction: Persistent Winning And Losing; Companies That Hit And Missed The Mark;
Part 2 - Winners: Companies That Keep Winning; Sweet Spots; Agility; Discipline; Focus
Part 3 - Losers: Companies That Keep Losing; Sour Spots; Rigidity; Ineptness; Diffuseness
Part 4 - Conclusion: Winning And Losing Practices; Turnarounds
Appendixes: Best Sellers Compared; Using The Stock Market As An Indicator Of Performance; Additional Data On The Companies; Patterns Of Winning And Losing Companies
Acknowledgements; Sources; Endnotes; Index

Using stock performance over a period of time, Marcus examines the traits of companies that significantly outperformed and underperformed their peers.  On the "winners" side, you have Amphenol, SPX, Fiserv, Dreyer's, Forest Labs, Ball, Brown & Brown, Family Dollar, and Activision.  The "losers" are LSI Logic, Snap-On, Parametric Technology, Campbell Soup, IMC Global, Goodyear, Safeco, The Gap, and Hasbro.  For each trait he identifies, there's a list of how each of the winning/losing companies shows that characteristic, along with examples of actual steps and scenarios that illustrate it.  To be sure, there's a lot of good material on how you can adjust your business to take advantage of these positive behaviors (and avoid the negative ones)...

The only thing I have against books like this is the "retrospect" nature.  Moves that were made by losing companies for good (at the time) reasons are examined in the light of how it all turned out.  That's a perspective that no one has when the decision has to be made.  As a result, it's far too easy to say " well, they should have known better" when writing a book.  Another common problem is that the winning companies can often turn into losing companies, making the reader wonder where things went wrong.  To the author's credit, he covers two of these reversals at the end of the book.  Again, in hindsight it's easy to see where things went wrong, but it's harder to make that same statement during the heat of the moment.  

The style of writing is very factual and list-driven.  I wasn't really drawn into the style of writing in such a way that I wanted to keep turning the pages.  Still, running a business is not easy, and learning from the mistakes of others is far easier than blazing your own trails.  Worth reading, but be prepared to work for it all...


Book Review - Rapture by Tim LaHaye and Jerry B. Jenkins

Category Book Reviews
While I was a fan of many of the Left Behind series, I've not been as thrilled with the prequels.  They almost seemed like an after-thought, a way to grab a few more dollars off the concept.  The Rapture: In The Twinkling Of An Eye, Countdown To The Earth's Last Days by Tim LaHaye and Jerry B. Jenkins is the last one before the real start of the series, and it's the first of the prequels. that seemed to actually contribute (in my opinion).

The story tracks the deteriorating marriage of Rayford Steele, and his likely-to-happen affair with Hattie Durham, a flight attendant who works the trips that Steele flies.  We also have Buck Williams, who was in Israel when the all-out war started, and witnessed the miraculous destruction of the attacking force by supernatural means.  And finally, there's Nicolae Carpathia...  He's taking the steps and scheming to make his move from Romanian government official to worldwide leader.  The actual Rapture occurs about halfway through the book, and then the remainder is split between action on earth and events in Heaven.

This book could have easily been cut in half and been the real start of the Left Behind series.  The characters undergo significant development which explains much of what was going on in the first installment.  From a pure story perspective, the last half was a bit fluffy.  The scenes in Heaven spend quite a bit of time reviewing the stories of Christians throughout the ages.  While interesting (and inspirational for Christians), it didn't do anything for the storyline.  That's not necessarily bad, depending on the reason you're reading the book.  It's just not essential to the plot.

Of any of the prequels. this was the best.  I'm glad that we're finally to the point where the series can be put to bed.  It's been a great run, but trying to go anywhere else from this point on would be difficult to imagine...


Book Review - Direct Action by John Weisman

Category Book Reviews
A friend recommended a novel to me that I probably would have overlooked without his advice...  Direct Action by John Weisman.  A good espionage thriller...

Tom Stafford is a former CIA officer who quit the agency when things became far too bureaucratic for his liking.  The private firm he works for has uncovered an al-Qaida terrorist who has been a mystery figure to everyone who has tried to find him in the past.  When they bring this to the attention of the CIA, they are inexplicitly told to back off.  What makes this even more frustrating is that the terrorist is launching a suicide bombing plot involving designer backpacks and undetectable explosives.  Unless this is stopped and the explosives analyzed, all the preventative measures in place around the world will be rendered moot.  An unusual mix of private contractors with shadowy pasts and mixed loyalties have to come together to flush out the terrorist, find the explosives, and steer clear of whatever powers in the CIA are preventing them from doing what's right...

Weisman writes with the perspective of someone who has spent plenty of time in the world of covert actions.  The plotline of the story is meshed into real CIA personalities and activities, so it's often a little difficult to draw the line between what's story and what's actual history.  He also blacks out certain names and activities in the book, much like you'd see in a declassified document.  It may sound a little hokey, but it works well to make the writing feel even more real.  

Prior to this read, I hadn't even heard of Weisman.  Now he's moved into my "so what else has he written" list...  A good read to allow you to escape for a few hours...


Book Review - Design Patterns In Java

Category Book Reviews
If you're a Java programmer and want to approach the subject of design patterns from that perspective, this book is very well done...  Design Patterns In Java by Steven John Metsker and William C. Wake.

Contents: Introduction
Part 1 - Interface Patterns: Introducing Interfaces; Adapter; Facade; Composite; Bridge
Part 2 - Responsibility Patterns: Introducing Responsibility; Singleton; Observer; Mediator; Proxy; Chain of Responsibility; Flyweight
Part 3 - Construction Patterns: Introducing Construction; Builder; Factory Method; Abstract Factory; Prototype; Memento
Part 4 - Operation Patterns: Introducing Operations; Template Method; State; Strategy; Command; Interpreter
Part 5 - Extension Patterns: Introducing Extensions; Decorator; Iterator; Visitor
Part 6 - Appendixes: Directions; Solutions; Oozinoz Source; UML At A Glance; Glossary; Bibliography; Index

Wake and Metsker use the same standard patterns that have been popularized in the Gang Of Four patterns book.  But the main difference between that book and this one is in the application of the material.  After you get a very clear understanding of the goals of a certain pattern set, they explore the implementation of that pattern using Java coding examples.  That's the value that sticks out for me.  Rather than dealing with general abstract coding philosophy, you end up with concrete examples, real business scenarios, and working code that illustrates the concept.  Granted, the "real business scenarios" are most applicable to running a fireworks factory, but it's better than "dog is a object of class mammal" fluff that doesn't bridge well to where we live on a daily basis...

This book can definitely stand alone when it comes to learning all about design patterns.  But if you've read the classic and still don't "get it", this book will tie it all together for you...  From the Java perspective, it'd be hard to go wrong here...


Book Review - Web Engineering

Category Book Reviews
This is one of those books that has value, but it's not the style of writing that appeals to me...  Web Engineering edited by Gerti Kappel, Birgit Proll, Siegfried Reich, and Werner Retschitzegger.  Let me explain...

Contents: An Introduction to Web Engineering; Requirements Engineering for Web Applications; Modeling Web Applications; Web Application Architectures; Technology-aware Web Application Design; Technologies for Web Applications; Testing Web Applications; Operation and Maintenance of Web Applications; Web Project Management; The Web Application Development Process; Usability of Web Applications; Performance of Web Applications; Security for Web Applications; The Semantic Web - The Network of Meanings in the Network of Documents; Glossary; Author Biographies; Bibliography; Credits; Index

This is set up as a compilation of chapters written by a number of contributors.  It's better than most compilations, in that it's not a "best of" grab bag of writing styles and approaches.  There is an overall structure, and all the subject matter conforms to that structure.  It reminds me a lot of a text book that would be used in a college level course.  And in fact, that's one of the target audiences.  They also aim for the people in the real world of web software development, but the appeal would seem to be for those who are *very* structured in their approach.  They aim to bring a structured software development methodology to the world of web development, complete with formal requirement gathering, modeling, etc.  Considering how often you get fly-by-the-seat-of-your-pants applications at the web level, there is definite benefit to bringing engineering processes to that style of application development.  But the type of quick development/rapid iteration development you often see targeted for web applications is more in tune with agile methodologies that are lighter on process and documentation.  Your view on the material here will be influenced greatly by your feelings and attitudes towards structured program development processes...

Yes, the quality of web applications can definitely be improved, and the material in this book would help.  But to me, there was a bit too much methodology and process coupled with not enough practicality.  But maybe if you get your readers in college before we old-timers can corrupt them, this could work...  :)


Can someone explain world events to me?

Category Everything Else
A few months ago, OPEC was unable to control prices as there was no excess capacity to be had.  Their official statements were that they were concerned about the prices, but were unable to do anything about it.  Now yesterday one of the oil ministers expressed the same concern, but stated that they were ready to increase the supply to help control prices, as there is plenty of capacity.  When oil prices shot up to over $60 a barrel, gas prices climbed to well over $3 a gallon.  Oil is now setting new records around $78 a barrel, and gas is about 15 to 20 cents a gallon cheaper...

Which is it, folks?

And in the Middle East...  The US is blamed (and probably fairly) for invading Iraq, for imposing its will in the region, and for generally being somewhere where they aren't wanted and don't belong.  But yet, what's the first thing that's called for after the Israel/Lebanon conflict breaks out?  For the US to send over troops and/or to help broker a cease-fire...

‘We played the flute for you,
And you did not dance;
We mourned to you,
And you did not lament.’

Bonus points for source and citation...  :)

Now, I realize that we're probably considered to be one of the few countries who backs Israel and who might be able to influence that country's actions.  I don't think we're being asked because of our stellar track record in the region over the last decade.  But look at our leadership...  He's already said, quite colorfully, that this isn't Israel's fault, and that Hizbollah (or insert your favorite spelling variation) is to blame for it all.  You think we're going to be the most unbiased source for a peace agreement?  Or are you looking for an additional scapegoat?


Book Review - Mind Set! by John Naisbitt

Category Book Reviews
I just had the pleasure of reading an advance copy of John Naisbitt's Mind Set!: Reset Your Thinking and See the Future.  There's a lot in this book that I'd like to recommend for those who think everything is "the next big thing"...  It's really not.

Part 1 - Mindsets: Most Things Remain Constant; The Future Is Embedded In The Present; Focus On The Score Of The Game; Understand How Powerful It Is Not To Have To Be Right; See The Future As A Picture Puzzle; Don't Get So Far Ahead Of The Parade That They Don't Know You Are In It; Resistance To Change Falls For Benefits; Things That We Expect To Happen Always Happen More Slowly; You Don't Get Results By Solving Problems, But By Exploiting Opportunities; Don't Add Unless You Subtract; Consider The Ecology Of Technology
Part 2 - Pictures Of The Future: Culture - A Visual Culture Is Taking Over The World; Economics - From Nation-State To Economic Domains; China - Will The Dragon Devour Us Or Will It Be The Dragon We Ride?; Europe - Metamorphosis To History Theme Park; Our Evolutionary Era - No Next Big Thing
End Notes; Index

Naisbitt, the author of Megatrends, came up with a number of mindsets that can help someone understand where things are going in the future.  From that initial list, he pared down the items until he came up with what he felt are the most important eleven items that matter.  These mindsets, if understood, directly affect how you view current events and interpret your surroundings.  For instance, it's easy to look at each new technology and think that it will change everything.  But in reality, the same underlying forces continue to drive people's lives.  Business is in a constant state of flux, but it still ends up being all about buying and selling.  In sports, the one-handed jump shot in basketball completely changed the look of the game in 1936, but the game itself was still the same...  score a basket.  Once you strip away the fluff and hype, it's easier to understand where the general flow of life is going.  Or my favorite...  don't add something unless you subtract something.  Setting a cap on a situation (be it a sports roster or a number of menu items in a restaurant) forces you to weigh the merits of each item, keeping only the things that return value and dropping items that no longer measure up to the others.  Something to remember before you make yet another commitment...

Part 2 of the book applies a number of these mindsets to different current events and situations.  Personally, I found this part of the book a bit more unfocused than the first.  While I understand that the visual is becoming more important in today's society, I had a hard time staying focused on where the chapter was going.  He does tie the mindsets into the conclusions he draws, but I found the mindsets themselves to be more personally useful for my own life.

Definitely worth reading, even if you don't necessarily agree with him on how the mindsets play out.  I'll be revisiting the mindsets a number of times to get them firmly embedded in my brain.  And don't be surprised if I turn down some "adds" because I'm not ready to "subtract" something...


Lotus Notes Deleted Mail Recipient Security Issue

Category IBM/Lotus
Just in case you haven't seen it...

Lotus Notes Deleted Mail Recipient Security Issue

And the Lotus response...

Replies to email messages from/to alternate name users may be sent to recipients deleted from the To, cc and bcc fields and show names of users to whom the message was not delivered


What a great idea! Collaboration University

Category IBM/Lotus
Rob Novak has put together a great concept for in-depth coverage of Quickplace and Sametime...  Collaboration University.

Compared to the vast amount of knowledge available for Notes/Domino, there's comparatively little for QP and ST.  Once you venture outside of the available documentation, things get pretty sparse.  There's just not the developer base that is asking questions and building solutions on these two platforms.  Novak's company has vast experience in this area, and he's drawn together *the* experts in the Lotus community to offer this conference.

If this makes a reappearance next year, I think I'll be hounding my management to go...

Nice job, Rob!


Book Review - SharePoint Office Pocket Guide by Jeff Webb

Category Book Reviews
Microsoft is banking on SharePoint being a major selling point of the new version of Office.  But you might be struggling to get your mind around what exactly SharePoint Office.  Jeff Webb has written a pocket guide that helps give a structure to that task...  SharePoint Office Pocket Guide.

Contents: Why Use SharePoint?; Start with SharePoint; Share Meetings with Outlook; Workplaces with Excel; Document Libraries with Word; Gather Data with Lists or InfoPath; Office Version Compatibility; Online Resources; Index

A little disclosure up front... I make my living doing software development on the IBM Lotus Notes/Domino platform.  This is the same ground that SharePoint is trying to stake out for their own...  collaboration software.  As such, I just *may* be a bit biased about the software itself.  But from a book perspective, Webb does a pretty good job highlighting what SharePoint can offer.  After going through the book, I at least have a mental framework as to how SharePoint works and what it takes to modify the software.  I don't know how useful the book would be as a regular reference point once you've started to use the software.  Some of the material seems to be high-level coverage (like the InfoPath information) that wouldn't be used once you've gone beyond the basics.  And after seeing all the additional software you need to span the entire spectrum of SharePoint (FrontPage 2003, Office 2003, InfoPath 2003, Office Reader, Visual Studio.NET), it seems like you'd quickly outgrow this book.  But giving it to an end-user as initial training could definitely fulfill a need...

As a quick way to figure out what it is you don't know, this book works well...


Book Review - HTML And XHTML Pocket Reference (3rd Edition) by Jennifer Niederst Robbins

Category Book Reviews
My bookshelf at work just got about five pounds lighter with the addition of this book...  HTML & XHTML Pocket Reference (3rd Edition) by Jennifer Niederst Robbins.

Contents: HTML and XHTML Fundamentals; Alphabetical List of Elements; Character Entities; Specifying Color

This is a great pocket guide, and exactly what I look for in this type of book.  No fluff, just well-documented information that's easy to find, with a small number of examples to show you the format.  I really appreciated the documentation on which elements and parameters are deprecated.  This comes in really handy if you're looking to code strict XHTML, but you're unsure as to whether a certain feature is going to be supported or not.  In most cases, I know the general tag I want to use, but I might be a bit confused as to the exact format of the different arguments.  With the pocket guide, I can find that tag in seconds, see the options, and move on.  I love it.

The book I've been keeping on my shelf at work for HTML reference is one of those five pound doorstops that covers absolutely everything.  The problem is that I have to check the index to find what I need, and I end up using a different book for CSS information.  With this pocket guide, I can retire that book, gain more room for other titles, and give my poor shelf a bit of a rest...  :)


Book Review - Ajax Hacks by Bruce W. Perry

Category Book Reviews
Once you have the basics of Ajax down, you might be looking for some ideas of how to apply it to your own applications.  Ajax Hacks by Bruce W. Perry fills that particular niche pretty well.

Contents:  Ajax Basics; Web Forms; Validation; Power Hacks for Web Developers; Direct Web Remoting (DWR) for Java Jocks; Hack Ajax with the Prototype and Rico Libraries; Work with Ajax and Ruby on Rails; Savor the script.aculo.us JavaScript Library; Options and Efficiencies; Index

Perry collects 80 "hacks" in this volume, which is focused on different techniques for applying Ajax in various ways.  The Basics section contains things that you probably will pick up in most Ajax books and tutorials, such as how to check for errors and how to detect which browser is being used.  But the dynamic CSS generation ideas were pretty cool.  From then on, you get a variety of hacks and code that show you how to do a number of things, such as populating dropdown lists, building mash-ups, and even how to do a drag-and-drop interface without round-tripping to the server with each action.  This is one of those books that you probably won't buy with a particular need in mind, but after reading through the material you'll have some ideas that you want to explore further.  

Similar to most Hacks titles, it's also not a book you'd buy to learn Ajax.  But given the assumption that you know the basics, this book makes a nice addition to your bookshelf for practicality and application purposes...


The ILUG videos are here!

Category Ireland User Group Meeting
Warren has them posted now...

I have no idea of how goofy or dorky I look, as I haven't had time to view any of them yet.  But feel free to offer your own opinions...  :)


Book Review - Fiddlers by Ed McBain

Category Book Reviews
I'm sad to see the 87th Precinct series draw down to a close...  This is (I believe) the first 87th Precinct novel released after Ed McBain's death...  Fiddlers.

Carella's group draws a case where a blind violin player was found shot twice in the head behind the restaurant where he worked.  This quickly becomes more than "just another murder" when a sales rep for a cosmetic company is found dead in her home, same killing wound, and same murder weapon.  Five murders in two weeks, all the same modus operandi, all the same gun, means they have a serial killer on their hands.  But how do you tie together victims that have little in common except for the fact they're all over 50?  All of the detectives of the 87th Precinct are tracking the murders, trying to find the common thread that will point to the killer.  Meanwhile, the killer is on a mission to correct errors that only he knows and understands...

As with all other 87th Precinct novels, I enjoyed this one quite a bit.  I did find it a bit bittersweet, however.  McBain passed away recently, so there's not much hope for too many more episodes.  I've heard it rumored that he had one last novel "in the can" to be released upon his death.  I'll have to keep an eye open for that, and for any other episodes that happened between this release and now.  McBain is a true master of the police procedural, and his passing is a sad event for many of us.  Fiddlers is a quick page turner that draws you into the life of the killer, as you try and figure out his motive and story.  

Classic McBain, and one to savor...


Book Review - The Frumious Bandersnatch by Ed McBain

Category Book Reviews
A good friend of mine gave me a couple books as I was passing through New York a couple weeks back.  One of them was Ed McBain's The Frumious Bandersnatch.  I really like these 87th Precinct novels...

Tamar Valparaiso is the next hot pop sensation, and she's getting ready to perform her breakout hit from the album "Bandersnatch".  It's on a yacht that's been chartered for a party, and there's a lot riding on this publicity event.  And it definitely generates publicity, when two people board the boat and kidnap her at gunpoint in front of guests and news cameras.  Carella and the 87th Precinct draw the call and start to go to work on solving the crime.  But the FBI also wants a piece of it, and the inevitable turf war develops.  Carella stays on the case when the record producer specifically requests his involvement.  The ransom call comes in, and the $250,000 is packaged and delivered.  But of course, things aren't always that simple, and things quickly spiral out of control when the next call comes from the kidnappers.  

I'll admit that I sort of saw how the plot was going to turn out, but it still didn't detract from the enjoyment of the read.  These novels are like "watching" a weekly crime series on network TV.  Things get wrapped up in a fairly condensed period of time, and the personality of the characters flow from book to book.  The subplot here is Ollie Weeks' budding romance with another cop of Hispanic descent.  Watching him overcome his bigotry and still not have a clue as to what's going on never fails to amuse me.  Too much like some people I know...

Fans of McBain and the 87th Precinct series will know what to expect here, and it'll be like spending a few hours with a good friend.


Question about "out of the box" Notes searching options...

Category IBM/Lotus
I had this question posed to me the other day.  I think I know the answer, but I wanted to see if I was overlooking something obvious.  It *does* happen all too often...  :)

Web-enabled database "X" is full-text indexed and allows searching through a normal search function.  The particular view that's used for the search includes all of the documents that should be eligible for searching.  Included on each document are standard administrative fields like author, when created, etc...

The user would like to be able to exclude certain fields from being included in the search results.  So for instance, if the author of 100 documents was Jane Doe, and a user does a search for "Jane Doe", the user shouldn't see those documents that have "Jane Doe" in the author field.  If the name shows up in the body of the document, it should be returned.  Just ignore the author field...

I told them I can't exclude fields in the search like that using just plain vanilla searching...

Any far-out ideas I'm missing?  Any painfully obvious ideas I'm missing?


*This* doesn't happen very often...

Category Everything Else
I dropped Sue off at the airport, and she's going to DisneyWorld for a week with friends from work.

Ian is in New York visiting his girlfriend.

Cam decided to go camping with friends.

So I have the house all to myself, all weekend long...

What am I going to do?

Work...  :(


For those who wonder how I find the time for everything...

Category Everything Else
... you may be pleased to know that Duffbert is mortal after all!

I kept telling you all that I was, but you just didn't listen...  :)

Anyway, the month of July promises to be one long push at work for some technical spec writing projects.  You know you're in for it when the work week is officially defined as seven days a week, and availability for the process goes into the evening.  Fortunately, I can work the evenings from the home location in most cases (and hopefully on weekends), so it's not quite as bad as it could be.

Still...  If you see a drop in posts or a lag before I respond to an email, that's why...

I'm here, but just using all 30 hours a day that you all seem to think I was blessed with...  :)


Book Review - It's Never Done That Before by John Ross

Category Book Reviews
I can think of a number of times over the past few years I could have used this book...  It's Never Done That Before! - A Guide To Troubleshooting Windows XP by John Ross.  This is a solid volume on figuring out what just happened to your computer...

Contents: Troubleshooting Methods and Tools; Types of Windows Problems and Failures; What to Do When Windows Won't Start; Black Screens and Blue Screens; Solving Device Driver Problems; Using the Microsoft Knowledge Base and Other Online Resources; Using System Restore and Other Rollback Techniques; Underneath It All - The BIOS; The Windows Registry - Here Be Demons; Dealing with Individual Programs and Files; Service Packs, Patches, and Other Updates; Viruses, Spyware, and Other Nasties; Internet Connection Problems; Local Network Problems; Dealing with Hardware Problems; Troubleshooting and Replacing Hard Drives; Troubleshooting and Replacing Other Hardware; If All Else Fails... Call Tech Support; Cutting Your Losses - What to Do When Nothing Else Works; Things to Do Now, Before Your Computer Crashes; Device Manager Error Codes and BIOS POST Beep Codes; Free and Inexpensive Security Programs for Windows XP; Index

The nice thing about this book is that it's completely focused on fixing problems.  It's not just an add-on to a larger book on how Windows works.  As such, you end up getting much more troubleshooting detail that you might see in other books.  Ross writes in a conversational style, so you end up with information that doesn't intimidate at the same point in time that you're already stressed out to start with.  Even better, it's enjoyable enough to read *before* you end up with problems that bring your computer to it's knees.  There's good defensive information contained in there, such as how to back up data and create restore disks (which I still need to do).  This can help you minimize the damage in case things go completely south...

I've rebuilt my Windows OS enough times now that I'm not quite as freaked out as I used to be when things went wrong.  But a book like this would have been a lifesaver the first time I got a blue screen of death that wouldn't go away.  If you don't have any Windows troubleshooting titles in your bookshelf, this might be a good place to start.


Book Review - The Hard Way by Lee Child

Category Book Reviews
This is a book I've looked forward to for awhile...  The latest Jack Reacher novel.  The Hard Way by Lee Child is as good as I expected, and my only disappointment is that I have to wait for the next one...

Reacher is sitting quietly having a cup of coffee when he sees a car being driven off across the street.  Only Reacher would notice it and be able to recite the details when a stranger asks him what he saw.  This leads to him being taken to meet the leader of a mercenary group who makes him an offer...  His wife has been kidnapped, and he needs Reacher to find out who is responsible.  Reacher decides to look into it, but quickly finds out that the kidnapping may not be all that it appears.  In fact, it may be a scam to cover up a murder.  Rather than walk away, he decides to find out the truth for the sake of the murdered wife and child, regardless of who's responsible.  He teams up with an ex-FBI special agent who also has an axe to grind with the mercenary for a killing years ago.  Just when Reacher thinks he's got the situation scoped out and is about to collect his fee, he realizes that his entire take was wrong...  Now can he recover from his mistake and keep innocent people from dying?

Reacher is one of the most enjoyable main characters of any novelist I follow.  He's one of those invincible guys who has no problems doling out justice to those who work outside the law, but also has an air of vulnerability which makes you think that there's the off-chance that things might not turn out the way they should.  This probably wouldn't be the best "first Reacher" novel for someone, as you don't get much insight into his background.  Some of the quirks he has, like being able to keep exact time without a watch, don't make much sense unless you've come to know the character over time.  But even *if* this was your first exposure to Jack Reacher, you'd probably want to go back and read the rest.  For those of us who are already addicted, it's a great installment...


Book Review - Firefox For Dummies by Blake Ross

Category Book Reviews
I'll confess...  I didn't expect much from this book.  Firefox For Dummies by Blake Ross was, in my opinion, going to be a "me too" book about the joys of using Firefox over Internet Explorer.  But much to my surprise, this may be one of my favorite Firefox books now...

Part 1 - Getting Fired Up: Why You Should Fire Your Old Browser; Finding Your Way Around Firefox; Setting Up Firefox
Part 2 - Ready, Aim, Firefox: Finding Information Online; Bookmarking Great Sites; Returning to Sites You've Visited; Browsing With Tabs; Filling In Forms Quickly; Blocking Popup Ads; E-Mailing with Thunderbird; Downloading and Saving Files; Printing Web Pages; Finding Additional Help
Part 3 - Outfoxing Hackers: Clearing Your Tracks; Staying Safe Online
Part 4 - Dressing Up the Fox: Setting Your Options; Finding Your Dream Theme; Tailoring Your Toolbars; Controlling the Way Web Sites Look; Extending Firefox
Part 5 - The Part of Tens: Ten Secrets to a Foxier Web; The Ten Best Firefox Extensions;
Appendices: Firefox Menu Reference; Firefox Keyboard Reference; Firefox Drag-and-Drop Reference

First off, this isn't a book for the alpha geeks or the people who have already dived deeply into Firefox.  It's best suited for someone who uses IE because "it's there", but is open to learning more about alternative browsing options which are more secure and powerful.  Even if you've switched to Firefox, there may be a number of features or options that you haven't yet checked out.  For instance, I didn't know that you can set your "home page" to actually be multiple home pages that all open in tabs.  So instead of just opening My Yahoo when I launch Firefox, I can have My Yahoo, Google Home Page, Google Calendar, and both web email sites all open automatically!  That alone was worth my time investment of reading.  But it gets better...

The author, Blake Ross, is a co-creator of Firefox, so he knows the subject *really* well.  Many of the sidebars go into some of the thoughts behind certain design decisions.  They probably aren't to the depth that most geeks would like, but I found it really interesting to see why they took one path over another.  For instance, toolbars were a hot topic knowing they had but one shot to get it right.  The camps of "show maximum" vs. "show minimum" duked it out, and "show minimum" ended up becoming the choice because they found that's really what people wanted.  But you can modify the toolbar to show more if you want, so you're not locked out based on how someone else thinks you should surf the web...

This is definitely a book to give Uncle Joe if you're tired of cleaning up viruses based on the latest vulnerability to hit IE.  And while you may not learn as much as he does, reading it yourself is worth the time for the insight and reminders of just how powerful this browser is...


Book Review - Proof Positive by Phillip Margolin

Category Book Reviews
So what happens when a forensics expert decides to become the judge and jury instead of just reporting the facts?  That's the premise of Phillip Margolin's latest novel, Proof Positive.  Definitely makes you think...

A homeless person, suffering from mental issues, is accused of a rather gruesome murder that nearly appears to be an open-and-shut case.  His attorney has that small voice that says she believes that he didn't do it, but the evidence is overwhelming.  Meanwhile, her father is defending a crime boss's muscle who's been accused of murdering a junkie tied to a rival.  Again, the evidence points directly to the accused, but there's still the insistence that he didn't do it.  When they start comparing notes and poking at the few open issues, they discover a common thread... the same forensic expert for the State is involved in all the cases.  When an additional lawyer brings in a case that bears the same characteristics, the pressure starts to build and people start dying to cover up the truth...  whatever it may be.

I like Margolin's writing a lot...  The pacing in Proof was good, and the premise was a bit different than stories I've read of late.  What *would* happen if a criminologist went bad and started determining who should and shouldn't be innocent or guilty?  I'll also confess to a certain bias towards his novels because they are all set in my home town of Portland Oregon.  Reading a story and visualizing each location exactly as it exists always adds an element of enjoyment for me...

A great summer read, and one that should appeal to anyone who is hooked on the CSI-style shows currently in vogue on network TV.


Book Review - The JavaScript Anthology by James Edwards and Cameron Adams

Category Book Reviews
OK...  this book is going under lock and key at my work desk...  The JavaScript Anthology : 101 Essential Tips, Tricks & Hacks by James Edwards and Cameron Adams.

Contents:  Getting Started with JavaScript; Working with Numbers; Working with Strings; Working with Arrays; Navigating the Document Object Model; Processing and Validating Forms; Working with Windows and Frames; Working with Cookies; Working with Dates and Times; Working with Images; Detecting Browser Differences; Using JavaScript with CSS; Basic Dynamic HTML; Time and Motion; DHTML Menus and Navigation; JavaScript and Accessibility; Using JavaScript with Flash; Building Web Applications with JavaScript; Object Orientation in JavaScript; Keeping up the Pace; Index

The book is made up just like the title indicates...  101 tips and tricks related to JavaScript usage on your web pages.  If you have read any of the "Recipe"-type books, you'll recognize the format right away.  Each tip is titled appropriately, followed by a solution and discussion.  There's also a number of sidebar entries that expand a bit on the concept or explain a "gotcha" that might bite you if you're unaware.  The writing style is conversational and direct, with *loads* of examples to look at.  It's one of those books that you find yourself spending more time with than you expect, because it's tempting to read the tip that follows the one you were interested in...

One of the reasons I probably like this book so much is my weakness for coding samples I can "appropriate".  If I'm not completely comfortable with a language (like JavaScript), I often need a quick hint or example that I can see in order to formulate my particular solution.  Just reading the raw documentation usually isn't as helpful as seeing something that is close to what I need, and that *works*!  As I was going through this book, I saw some tips that immediately addressed a couple of applications I'm working on.  I also saw some menuing code that will likely make an appearance in a few more applications.

Bottom line is that I like this book a lot.  It's going into my backpack right now for transportation into work, and this one may end up in my drawer rather than my shelf.  I want to keep tabs on it...


I'll show my soccer ignorance here...

Category Everything Else
Why was the inclusion of Rooney such a big deal to the England side?

Want to support this blog or just say thanks?

When you shop Amazon, start your shopping experience here.

When you do that, all your purchases during that session earn me an affiliate commission via the Amazon Affiliate program. You don't have to buy the book I linked you to (although I wouldn't complain!). Simply use that as your starting point.


Thomas "Duffbert" Duff

Ads of Relevance...

Monthly Archives