I’m putting my Norbert CCSF Rails site to rest. There’s nothing wrong with Rails, or Ruby; they work fine. The problem is that my server has been under constant attack for the last 6 months and I’m tired of putting out fires. Checking the server logs I see that there are about 12,000 attempts to log in every day. The log files show that the attack is very nicely distributed, and runs the same set of bogus names through my system nightly. Since I’m the only user on the site, and I’ve got a secure password, I’m not concerned that someone will be able to hack in. But I am concerned that I’ll be done in by a DOS attack.
Today I couldn’t connect to the web server. When I logged in and checked the network stats, I could see that the there were several thousand hanging connections. After doing some fiddling, I found that top no longer worked and I get a bad feeling. When I tried to restart the machine, zilch. My first thought was ROOTKIT. So, I disconnected Norbert from the network.
Then a light went on. I realized I should chuck the whole kettle of fish into /dev/null. The heartless, relentless bots were doing a good job of pummeling my little server. Since I’m not paid to administer that system, I couldn’t seen the point wasting my time in a battle that I could never win. So, I turned out the lights, not that anyone outside of CCSF will notice.
There’s the question of what I’ll do with the content I’ve accumulated on that server. I spent thousands of hours creating sample code (both PHP and Ruby), and a hundred hours of screencasts and Keynote presentations. Some of them are dated and no longer relevant, but there’s some good stuff in there. I’ll recycle it, melt it down, and pour it into new bottles.
Adios, Norbert! I’ll miss your hard-working 400MHz heart. You did good.
Here’s a example of some typical Blogspot XHTML:
<span class="Apple-style-span" style="font-family:'trebuchetms';"><span class="Apple-style-span" style="font-size:small;">Some books bring out my </span></span><i><span class="Apple-style-span" style="font-family:'trebuchet ms';"><span class="Apple-style-span" style="font-size:small;">dark side.</span></span></i>
to say
Some books bring out my dark side.
Some books bring out my dark side. Practical Web 2.0 Applications with PHP
did it for me today. So, I have to slip on my PHPTheGoodParts.com persona, the skin I wear when I’m going to get out the hammer and tongs and make someone bleed. This book has earned a well-deserved coup de grâce.
Target
Review
This book is about nothing except using the Zend Framework to build a blog. Excruciatingly boring, period. Can someone do something besides build a blog? It pains me to see anyone wasting their precious allotment of Time—and mine—beating that poor dead blog horse one more time. This book was supposed to be about Web 2.0, but it’s not. Period. It’s about the Zend Framework. Apress titles are big fat liars.
There’s another problem: the book is a waste of your hard-earned (or ill-gotten) money. If you’ve used one web framework (cakePHP, codeIgniter, ROR, Django, etc. ad infinitum), you already know what’s in this book. This may be an OK book about the Zend Framework (in which I have not one scintilla of interest). But, is it any better than the online documentation from Zend? I doubt it. In any case, why should we pay $39.95 for something we can get for free? I can’t think of a good reason, unless you’re like me, and just have a lot of unread books filling your bookshelves.
One Word Summary: UNDISTINGUISHED
This book is an Absolute Waste of My Precious Time. The 20 long minutes I spent flipping through this book from cover to cover (on the train ride to Palo Alto) have been deducted from my lifespan twice. Thank you Apress.
I will now add this book to the recycling pile along with some other quickie Apress books that didn’t live up to their titles:
You gotta love that Expert’s Voice in the last title.
My Gratuitous Apress Rant
Why can’t Apress give their books titles that are at least half-connected to reality? In this case, how about including the words Zend Framework in the title? If I had seen those two words, I never would have bought this book. And, I would never have compounded my folly by spending more time writing this review. Bad Apress!
Other Apress titles are no better. There are too many of the Beginning (LANGUAGE GOES HERE) from Novice to Professional titles. I can envision the perfect Apress mathematics book: Beginning Mathematics from Addition to Fourier Transformations. One little math book to cover it all, from beginner to expert. I’ll be the first in line to buy that one.
I don’t care if the world can find me on Facebook. I really don’t. Why not?
Well, for starters, I don’t I want you guys beating a path to my door. Your beseeching and groveling is repellent. Besides, don’t you know that Fame has become passé? If I were to use your trite phrase, I would say “Fame has left the building.”
Ah, yes. I’ve had my fill of adoring strangers, preening seekers looking for answers, naïve acolytes seeking the truth. Keep your accolades and praise for others less deserving. I’m bored with you, Fame. A fig for you. I’m going to eschew your banal charm and empty promises. I’m not even going to try to claim www.facebook.com/DouglasPutnam.
If you want to find me, you don’t have to say anything, and you don’t have to do anything. Not a thing. Oh, maybe just whistle. You know how to whistle, don’t you? You just put your lips together and… blow.
As the proud owner of a set of RapidoGraph drawing pens, I respect this doodle. For more go to Gapingvoid.com.

We were doing a thumbs-up/thumbs-down feature at YourVersion and our QA Ninja Commando asked incredulously, “Who in the world would bother to vote on an ad?” I said that I would, and had. I explained it this way.
While we were working on some Facebook features, I set up an FB account to see what the Big Deal was. To play the game, I sent out invitations to my former students, and about 50 signed up. I caught FB fever and every day I logged in to see if I had made more new “friends”. I was on my Facebook Honeymoon, and feeling the love.
Then one day I ran into one of my PHP students on the street. As we chatted she kept casting quizzical looks at me, then out of nowhere, she blurted, “I can’t get over it! I never would have thought you were gay!”
“Why do you say that?” I asked, startled. She just giggled.
Later that day, as I was surfing FB it dawned on me that I was getting 100% gay ads, and that I had been getting them all along. I had blithely assumed that my San Francisco location had tilted the ads in that direction, explaining the ads for gay cruises, gay dating clubs, and a multitude Facebook “suggestions” that I would enjoy being friends with many shirtless, hairy, bearish men.
At the same time, I was assaulted by obnoxious intelligence tests that challenged me to count the number of overlapping triangles in a drawing. I was told that 95% of Americans had proven too stupid to count them correctly; would I prove to be stupid too?
It was at this point that I began to vote “irrelevant” on all ads to make them go away. Nothing helped, and I got annoyed and started bad-mouthing FB whenever I could. Then one day I looked at my profile, and a light went on. Right there in black and white it said, “Interests: men”.
I changed my profile and the ads changed immediately—now Facebook doesn’t think I’m gay…it thinks I’m old. So I get age-related ads for life/death insurance, teeth whitening miracles, convenient burial service, and AARP ads. Facebook ads are just what I don’t need: a memento mori.
It’s good to know that I do have options. If I ever get tired of looking Death in the eye, I can always change my preferences to “men”, and switch back to the gay ads. They were a lot more fun.