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 - Data Jujitsu: The Art of Turning Data into Product by DJ Patil

Category Book Review DJ Patil Data Jujitsu: The Art of Turning Data into Product
Data Jujitsu: The Art of Turning Data into Product

O'Reilly recently released one of their free Radar Reports titled Data Jujitsu: The Art of Turning Data into Product by DJ Patil.  This short (24 pages) report is packed with interesting insights and actionable information that will change the way you look at your next project.  It's very much worth the minimal investment in time to download and read.  

Data Jujitsu; Use Product Design; When In Doubt, Use Humans; Be Opportunistic For Wins; Ground Your Product In The Real World; Give Data Back To The User To Create Additional Value; No Data Vomit; Expect Unforeseen Side Effects; Improving Precision And Recall; Subjectivity; Enlisting Other Users; Ask And You Shall Receive; Anticipate Failure; Putting Data Jujitsu Into Practice; About The Author

The author thoroughly knows his topic, as he is a data scientist with real-world experience working on well-known sites such as LinkedIn.  That is an example of a site that is driven heavily by data and connections between data.  Observing what the site is actually used for, as well as what people attempt to accomplish, is what adds the additional value over time.

Given that this is a report rather than a "book", I found that the ideas and actionable content could be found on nearly every page.  I thought his approach to solving the data issue prior to solving the application problem both refreshing and insightful.  Why spend a fortune (both time and money) to create a product only to find out that no one has the problem you want to solve?  Or worse, you spend far too much time solving the wrong problem (usually the more complex and "interesting" one) rather than the one that people would spend money to have solved.  A cheap and usually non-scalable approach to collecting the data is preferable, as it allows you to figure out what needs to be the focus and what can be ignored.  An example of that approach is Amazon's Mechanical Turk. MT can be a quick way to use humans to solve a problem (such as visual recognition) instead of spending untold amounts of time building a computer-based visual recognition system that may be tangential to the actual problem you're trying to solve.  

Another interesting point was to have a conversation with the user instead of just having them fill in data.  If you can design the interface to help the user enter "clean" and relevant data, while at the same time giving them feedback and value, they become your partner in finding answers and relevant links between data points.  

Finally, I can't let my favorite title for a chapter/section go unmentioned... Data Vomit. It's what happens when you decide to focus on the amount of data coming back instead of focusing on what people are doing with it.  Focus on actions, not volume of data returned.  This hits home as it's very common to have users ask if we can generate data in formats x, y, and z.  When you ask *why* they want that feature, the answer is often "I just thought it might be nice to have."  Instead, I need to focus on what they actually want to accomplish, not on how many different contortions we can twist the data into...

Go ahead and download the report from either Amazon or O'Reilly.  It'll take less than an hour to read, and you'll get far more than that in return.

Obtained From: Publisher
Payment: Free


Book Review - Kill Decision by Daniel Suarez

Category Book Review Daniel Suarez Kill Decision
A picture named M2

I'm a fan of Daniel Suarez's novels, as I like how he can take advanced technology and push it to the edge to create a nightmare scenario.  In Kill Decision, Suarez takes the topic of unmanned aerial drones, combines them with software to make autonomous decisions, and you get a form of warfare that has few defenses.  Even worse, you have some powerful vested interests who want to make sure that the public has the correct "opinion" of these drones.  Suarez paints a picture that is both scary and not all that implausible in the next few years.

The story centers around a black ops military group that is sent in under cover to take care of less-than-legal situations.  They rescue a researcher from her compound in Africa before a drone strike destroys the area.  Her study of insect hive behavior has apparently been used in drone programming to allow a large number of small autonomous drones to attack an area and make decisions based on the conditions they face.  It's a good bet that foreign governments are making these cheap weapons and planning a strike that will render regular military defense impotent against mass drone swarms.  It may also be possible that elements in our own government are willing to incur some damage to sway public opinion in a direction that would allow more domestic use of drones to "protect" us.  Even though the black ops group has been told to stand down in their mission to find and destroy the drones, they aren't convinced that their orders are coming from the people who *should* be concerned about what's happening.  They have to find answers quickly before the very thing they're trying to destroy ends up destroying them.

This novel, like the others that Suarez wrote, was easy to get into, and I was in a "don't want to stop reading" mode within a chapter or two.  In my mind, the characters took a bit of a back seat to the technology of drone warfare, both for where it is right now, and for what it could easily become.  While it might be easy to brush off some of the drone possibilities as fantasy, I didn't see it that way.  That whole topic is shrouded in secrecy, and it's not a huge leap from unmanned drones to drones making decisions on their own.  Couple cheap single-purpose drones with insect-like behavior algorithms, and the possibilities become rather scary.  It's certain that "mass" and "cheap" have already been mastered...

I really liked Kill Decision.  Certain parts of the story (such as groups that have seemingly unlimited resources to run deception operations) might be pushing the edges of credibility, but the way the story weaves around how unmanned drones can (and will) obliterate traditional warfare strategy makes up for it.

Obtained From: Publisher
Payment: Free


Book Review - Ron Paul's rEVOLution: The Man and the Movement He Inspired by Brian Doherty

Category Book Review Brian Doherty Ron Paul's rEVOLution: The Man and the Movement He Inspired
Ron Paul's rEVOLution: The Man and the Movement He Inspired

It seems like today's politicians will pretty much say and do anything to get elected these days.  If it's convenient to flip-flop on a position to gain a few more votes, count them in.  One of the few people who seems to have a set of beliefs that don't change a whole lot is Ron Paul.  You may not *like* them, but at least he's consistent.  To find out a bit more about Paul, I picked up the book Ron Paul's rEVOLution: The Man and the Movement He Inspired by Brian Doherty at the library.  While it did fill in some gaps in my understanding of the man and his positions, I was expecting something a bit more balanced in the pros and cons of his policies and career.  This book is tilted firmly in the direction of the "pros" side of the equation.  It *is* a well-written book... just don't take it as everything you need to make an intelligence choice.

If I had paid a bit more attention to the author's bio, I would have been able to adjust my expectations accordingly.  Doherty's writings and appearances on TV are solidly in the conservative/libertarian camp.  That would have given me a clue that this book would be very sympathetic to the Paul movement.  He uses the 2012 campaign for President as the framework for much of the narrative, using incidents and people to fill in the history of Paul and his major policy beliefs.  Because the media largely ignored Paul, Doherty has room to show parts of the 2012 campaign that 99.5% of the public knows nothing about.  That's one of the main takeaways for me in the book... If a candidate can't be slotted into a convenient stereotype or category, they are written off as not relevant.

What I was looking for when I picked up the book was more of an exploration of how certain ideas and policies would play out if Paul was elected.  For instance, it's one thing to say that a return to the gold standard would "fix" the problem with our massive debt and unchecked government growth.  In reality, what would it mean for a leading world economy to go against how every other nation manages money supply?  One set of problems would be solved, but another whole set would be introduced.  In addition, a President can do little without the support of Congress.  Would a President with the policies of a Ron Paul be so out of sync with both the Republican and Democratic parties that *neither* side would support him?  No easy, simple, or consistent answers exist any longer to our problems.

Paul fans will love this book, as it will reinforce the view that Ron Paul has answers that resonate with the American public once they have a chance to hear them.  If you're part of the majority of people who haven't had the chance to hear what Paul stands for due to marginalization by the media, rEVOLution will help you get the basics about the man and his message.  Just remember this book is very Paul-friendly, and you need to take this information and weigh it against other views to get a full picture of what a true Libertarian agenda would bring to the country.

Obtained From: Library
Payment: Borrowed


An adjustment...

Category Everything else
Based on an email exchange I had this evening with someone whose input is important, I've decided that talking about GBS is something I'm going to shelve.  I haven't changed the way I feel about GBS as a company or the direction it's headed.  What I feel *was* a valid point is how my comments were interpreted.

To be clear... I do not wish ill will on the employees of GBS, nor will I be (nor am I) happy that the company is having financial difficulties.  

I went through the Enron debacle, had part of my severance pay tied up in court bankruptcy proceedings, and I got laid off 11 days before September 11th.  Emotionally, I was convinced I would never get another job again.  I would not wish that hell on anyone.  I was fortunate in that things worked out well, and the changes I had to make put me on a path that was far better than what I ever dreamed.  Many others didn't end up that way.  That experience is why I started tweeting about Lotus job openings and why I update and post the lotusjobs.wordpress.com site.  I'm not looking for Lotus jobs, and I'm very happy with what I'm doing and learning with my current employer.  I do this because being unemployed and feeling like you have no options is one of the worst experiences I've ever had.  If I can help one person avoid or escape that, then the time I spend posting those jobs is worth it.

One of the few things I've figured out about myself is that when I take a shot at someone or something, quite often it's because someone or something I care about about is being threatened in some way.  In this particular case, many people I know and respect will end up getting hurt if GBS has to take drastic steps to change their situation.  I bristle when corporate happy-talk about exciting opportunities in the market ignores the fact that the bottom line tells a completely different story.  If the livelihood of people I care about is threatened, I push back.  

I commented on Volker's blog about the announcement today regarding the change in GBS leadership.  I was told that there *are* personal reasons for the change, and that I was wrong in calling it corporate-speak for resigning instead of getting fired.  After thinking about that, I realize I *do* owe Mr. Ott an apology.  I don't know him or the situation, and my comment was based on far too many corporate press releases where "personal reasons" is a general phrase that means someone left not of their own accord.  I know I would be furious if I left to deal with medical issues in my family (not a stretch) or something similar, and it was suggested that I was forced to leave.  I'm sorry for that comment.  

The reason I'm shelving the GBS topic is that when it comes to the bottom line, the ultimate success or failure of GBS as a company doesn't affect what I do.  I'm not converting Notes applications to XPages, I'm not a business partner, and I'm never going to be working for GBS in any of those capacities.  I still care deeply about my friends and colleagues who *are* affected by the company, and I'll always be there to help them in any way that I can regardless of where they work and who they work for.  Others who are more inclined and qualified to dig through the financials can analyze and offer opinions.  The numbers are what they are, and time will tell as to how it all unfolds.  In my case, this really is one more area and topic that I can eliminate from my circle of distraction.

So... to the person who emailed me, thank you for the input.  I may well appear to be and act like an @$$ at times, but I *will* listen to feedback (in most cases).  You were right, and I was wrong.


Book Review - F My Life World Tour: Life's Crappiest Moments from Around the Globe

Category Book Review F My Life World Tour: Life's Crappiest Moments from Around the Globe
F My Life World Tour: Life's Crappiest Moments from Around the Globe

This is the book you need to read if you think you're having a bad day... F My Life World Tour: Life's Crappiest Moments from Around the Globe by Maxime Valette, Guillaume Passaglia, and Didier Gudej.  It won't change what happened to cause your bad day, but you *should* end up laughing at others who haven't exactly enjoyed their day either.  I finally had to leave the room as I kept interrupting my wife with "let me read you just one more..."  

F My Life (yes, it's the F word, but the acronym commonly used is FML) is a web site where people can send in their FML gems that prove that people (and life) can often be cruel... and funny for those reading about it.  Each page in this book has from four to six FML moments from around the globe.  Some are embarrassing, such as "Today, I broke my little toe. It got stuck in my underwear as I struggled to get a leg through. FML".  Some are sad, such as "Today, I got stuck in a hospital elevator from 10:30 to 11:45. I'm now the proud father of a daughter named Maria. She was born at 10:55. FML."  Many are cruel, like "Today, it's been three days since I ran into my boyfriend's scantily clad sister in his apartment. Today, I realized that he doesn't have a sister. FML"  But nearly all of them are laugh-worthy, for instance... "Today, my girlfriend looked through the contents of my refrigerator and started with her usual 'You're a pig, you never clean up' routine. She said, 'Look at this egg, it makes me want to throw up, it's black, covered in fur, AND THERE'S EVEN HAIR ON IT!' I took a look: It was a kiwi. FML"

I realize it's not nice to laugh at other peoples' misfortune, and you definitely don't want to laugh at them in their presence.  But if they shared it online, I think it's fair game, and F My Life World Tour is perfect for plenty of laughs.  It may also be pretty cheap therapy to help you realize that Life pretty much dumps on everyone at some point. :)

Obtained From: Library
Payment: Borrowed


Book Review - Subduction by Todd Shimoda

Category Book Review Todd Shimoda Subduction

I picked up Subduction by Todd Shimoda from the library earlier this month, expecting something different than what I ended up getting.  I don't recall where I first noticed the book, but the description was along the lines of a seismological murder mystery.  At its core, that's technically accurate.  In reality, it's more a story of how a person's actions from the past continue to cause tremors in the lives of others over the years.  Add in the cultural aspect of the story being set on a tiny Japanese island, and I experienced a bit of a jolt (pun somewhat intended) in terms of pacing and motivations.

The story revolves around three individuals who find themselves on a Japanese island where the small fishing village has seen better days.  The government would like to move the aging population off the island due to the danger of earthquakes in the area, but the villagers would prefer to simply be left alone.  They don't trust the newcomers, and that trust factor colors everything that happens.  

Mari Sasaki is on the island to record the stories of the islanders for a potential documentary.  She's done a relatively good job getting people to open up to her, and she knows how many of the lives interconnect on the island.  Aki Ishikawa is the seismologist trying to develop an early warning system for the earthquakes that plague the island.  He left a wife and child to pursue his research, but he's not very open as to why he felt compelled to do this.  Jun Endo is the primary character, and he's stuck on the island for the next four years.  He was a first year intern who took the fall for a mistake by the head resident that resulted in the death of a patient.  The island exile is his punishment.  

Due to curiosity and boredom, Endo tries to befriend Sasaki and Ishikawa.  He senses that there's more than meets the eye when it comes to a possible history between the two, and it may be that Ishikawa is jealous over the time he's spending with Sasaki.  Endo's also trying to understand the open hostility from various islanders, and whether those feelings might be responsible for deadly actions, both past and present.  Each new revelation twists the story in another direction, and it becomes increasingly difficult to know who to trust... if anyone.

I think my confusion about how I view this novel is based on expectations.  As a murder mystery, it moves very slow.  In fact, the actual crime could be viewed as secondary to the real purpose of the writer.  As a story about people and motivation, it's layered and intricate.  Endo draws you into his world of obligation and frustration over how he ended up in such a lifeless location.  The other characters are more difficult to get to know, as you are working from the same lack of knowledge as Endo.  Patience is the key in letting things emerge at their own pace.

While Subduction isn't a bad book in any sense, I probably would not have been so quick to read it had I known a bit more about the style.  Shimoda is a very good writer, but the book wasn't what I would normally move to the top of my recreational reading list.

Obtained From: Library
Payment: Borrowed


Book Review - Let's Pretend This Never Happened: A Mostly True Memoir) by Jenny Lawson

Category Book Review Jenny Lawson Let's Pretend This Never Happened: A Mostly True Memoir
Let's Pretend This Never Happened: (A Mostly True Memoir)

In terms of bizarre, "I-have-to-read-this-to-you", laugh-out-loud funny, it doesn't get much better than this... Let's Pretend This Never Happened: (A Mostly True Memoir) by Jenny Lawson, a.k.a "The Bloggess".  Generally when I read material I consider humorous, I'll smile as I go along, not disturbing anyone around me.  With Let's Pretend, I wasn't ten pages into the book before my wife had to ask me what was so funny and what was I reading.  I don't know what parts were "mostly true" and I'm sure there's an amount of artistic license taken in the stories, but it really doesn't matter.  It's fun any way you look at it.

I'm late to the Bloggess fan club, so I didn't come into the book with much in the way of pre-conceived notions or background history of who Lawson is.  After a couple of blog articles I read about her and the book, the concept sounded interesting and I added the book to my library hold list.  Good decision on my part...  Her book is generally a "memoir" of her life to date (she's not very old) with liberal doses of random insanity along the way.  She had an... interesting family and childhood, complete with a wacky father who was disturbingly fascinated with animals (live, dead, stuffed... didn't matter).  Add in the fact that she lived in Wall, Texas (*very* rural), and the unimaginable becomes reality.  Never one to fit in with the normal or popular kids, she wasn't helped by incidents such as a "pet" turkey (her father insisted it was a quail) that stalked her occasionally on the way to school.  What happens one day when the turkey brings along some "friends" and explores the school shouldn't happen to any child... but you have to laugh anyway.

Based on her blog and the book, it's clear she suffers from social anxiety and a few other emotional imbalances.  It's a common theme in her stories, and her long-suffering husband Victor must wonder what he did in three previous lives that he's having to atone for here.  But instead of withdrawing into a shell and "suffering", she's turned her fears and quirks into stories that leave you in tears from laughing so hard.  Without going into details, her story about overdosing on chocolate Ex-Lax in an effort to improve her anti-depressant medications is unforgettable... literally. :)

If you're easily offended by crude language, don't read Let's Pretend This Never Happened.  You won't like it at all.  It's also probably not a good idea to read it if you're not entertained by extreme snarkiness or if you're unable to laugh with someone who is looking at life through her own unique set of glasses... not sure what the tint color is on her pair... it's definitely not rose. :)  But if neither of those warnings put you off, get a copy of Let's Pretend and clear out a few hours.  You probably won't be getting much else done once you get started.

Obtained From: Library
Payment: Borrowed


Looking for advice/input...Does anyone have experience in sponsoring a cycling team?

Category Everything Else
So here's the deal... If you've followed my blog/Facebook/Twitter account, you might know that Cameron (my 24 year old son) is an avid bike racer.  His speciality is track racing, and in the three or four years since he's been racing as part of various teams, he's worked his way up to being a highly competitive category 3 rider.  There are three other riders who are constants on the team, comprising a mix of gender and racial diversity.  All of them are committed and continue to move up the ranks, and I'm a proud dad when I look at how hard he's worked and on some of the decision he's had to make to stand up for others.

But's here's the rub... he and the team have done most everything on a self-funded basis.  They buy their own bikes, pay their own fees, design and buy their own skinsuits, etc.  Cycling isn't a cheap sport, and what Cam and his team have accomplished with 2nd-hand equipment while also trying to live on his own as a delivery person (on a bike, naturally) is nothing short of amazing to me.  However, they've reached a point where to make the jump to the next level, they really do need to get sponsorship at some level.  Many of the local teams here in Portland Oregon have sponsors that provide new bikes (*that* isn't cheap).  Sponsors can also cover race fees, provide outfits and kit, and so on...  Some sponsors are local (like local pubs and restaurants), some are tied to the sport (various bike shops), and some are even names that would be known internationally (like being sponsored by Guinness, but likely through a local distributor).  Even the local power company here in Portland sponsors a bike team.

I would love to work with Cam's team to try and secure solid and tangible sponsorship.  On the other hand, publicity and marketing are not my forte.  On top of that, I can't sit down right now and rattle off a sponsorship plan of what it would cost, how many levels, what that would be used for, and how the team would promote the name.  That's the stuff I have to learn if I want to help him out at all.

I know there are a number of people who read my writings who are cyclers and/or who are part of teams with sponsorship.  I'd be very interested in getting some feedback on your experiences in this area, and any recommendations on how to test the waters.  If you want to drop me an email using my duffbert AT gmail.com account to start a conversation, I'd be forever grateful for the education.

And while it wasn't the *main* idea of this post, if you own or work for a company who would love to have a cycling team that you could hug and squeeze and call George, *please* get in touch with me.  

Their need for sponsorship is very real.  My role is helping them secure some part of it may or may not work out.  But in this case (biased as I am), I'd love to see all their hard work, effort, and commitment take them up to the levels I know they're capable of.



This is why I reject *both* parties in American politics... (rant coming... change the channel if you'd like)

Category Everything Else
Politics is one of those topics you're not supposed to discuss in polite company because it's divisive and often generates more smoke than heat.  It's also right up there next to religion in terms of beliefs that people will adhere to and identify with regardless of whether a particular element makes sense or has been shown to be completely false.  It's why we can have a thousand cable and satellite channels of programming... people will do anything to get their daily dose of confirmation bias.

However, now that I'm into my second half-century of life on earth, I'd like to think that I'm finally questioning more and blindly following less.  I know there are still values and beliefs I hold true, but I'm more open to realizing that no one group has the right, adequate, or practical answers to everything.  There are times when you have to admit and accept that answers that address the "greater good" can come from anywhere, even from the groups that you claim to despise and that you decry as idiots.

I've been feeling this for a while now, but it clobbered me over the head this evening when I read this:

PolitiFact's Lie of the Year: 'A government takeover of health care'

Let's get some housekeeping out of the way first... I'm registered as "non-affiliated" as an Oregon voter.  It used to be "independent", until someone had the bright idea to create an official Independent Party in Oregon, and the government thought it'd be a good idea to let people think that non-affiliated and independent were synonymous terms.  I work for a health insurance company.  I think the current system is horribly broken and unsustainable.  I have a son with a life-threatening condition who will be uninsured in a few weeks unless I find something to replace his coverage on our insurance.  And finally, I believe that a certain baseline level of universal coverage is a moral obligation of a society... not "I deserve access to have access to $100K treatments to survive three more months", but "someone shouldn't die because they can't afford insurance for type 1 diabetes *and* buy food".  Also, spare me the libertarian "pull yourself up by your bootstraps" crap.  Sometimes life deals someone a really shitty hand through no fault of their own, and "too bad, I guess you die" isn't what this country was morally founded upon.  I realize there's a line that needs to be drawn somewhere in that "baseline universal coverage" belief.  No, I don't know where it is, nor whether it's stationary and doesn't ever shift.  I'm also not sure I trust anyone to be wise enough to determine the line's placement.  Sometimes decisions are like that...

Now, back to the topic at hand...

Read the article I linked to (since you chose to read this blog entry in the first place).  Read the whole thing.  It's more than 140 characters, but hang in there.

Get down toward the end to this part:

"When Obama proposed his health plan in the spring of 2009, Luntz, a Republican strategist famous for his research on effective phrases, met with focus groups to determine which messages would work best for the Republicans. He did not respond to calls and e-mails from PolitiFact asking him to discuss the phrase.

The 28-page memo he wrote after those sessions, "The Language of Healthcare 2009," provides a rare glimpse into the art of finding words and phrases that strike a responsive chord with voters."

The paragraphs following that are mind-boggling to me.  Republican (and I'll argue that you can generalize this to "Political") leadership is not trying to solve the issue of health care.  They're not trying to do what's best for the country or for society.  They're focusing on one frickin' thing... getting elected in order to stay in power.  Mind you, it's not an attempt to get elected (or stay elected) so that they can *then* focus on the larger problems.  To them, the only larger problem is how to stay in power and keep their jobs.

I'm sure there are Republican (and political) officials who truly believe the lies (yes, *lies*) that were exposed in this article.  It's not as if we haven't seen plenty of examples of stunning stupidity from city, state, and federal senators and representatives from *both* parties this year.  Unfortunately, that means we either have sheeple (sheep people) leading sheeple and doing what they're told by *their* leaders, or we have leaders who will lie at any and every opportunity to have power and the money that comes with it.  I'll be drastic and let you amputate a finger of mine for every honest and selfless politician you can find who is doing that job because they are willing to sacrifice and labor to better their constituency.  I'm guessing I'll still be able to use my keyboard quite well when you're finished.

And in case it appears that I'm beating up on Republicans for sport, let me offer the following in counterpoint:

Obama says under Mitt Romney, "Medicare could end as we know it, leaving Julia with nothing but a voucher to buy insurance, which means $6,350 extra per year for a similar plan." (FALSE)

"Under the Romney/Ryan budget, interest rates on federal student loans would be allowed to double." (FALSE)

I could keep going, but hopefully you get the idea.  And if you want to argue that PolitiFact.com is biased (in which case you missed the *entire* point of this post), then check out FactCheck.org (they also don't trust either side).

Bottom line... this "politicians lie" is not a new revelation for me.  It's just appearing much more pervasive and blatant now (thank you, Internet).  And I don't want any sympathy over insurance woes that I may have.  Ultimately, it *is* my crap to deal with.

If I could wish for anything good to come from this post, it's simply that you stop parroting stories and statements from Democrats, Republicans, Fox, MSNBC, CNN, or any other source that condenses an intricate and complicated issue into 300 words, 3 minutes, and a sound bite for a 30 second story on the radio.  THINK FOR YOURSELVES!  These are problems and issues that will determine the world that you and your children live in for the rest of your lives.  Do you really not think that deserves more than 60 seconds of thought and effort on your part before you form an opinion and take action?

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