How Not to Hire a Programmer on Dice (or Monster, or…)

Recently I received the worst job inquiry I have ever seen. I’ve had my resume floating around on job sites like Dice and Monster.com since the last time I was actively looking, more than three years ago, so I periodically get emails from keyword-searching recruiters. But nothing like this. This is a masterpiece:

HI, GREETINGS!!! WE ARE LOOKING FOR UI DEVELOPER SPECIALIST WITH BELOW SKILLS TITLE: UI DEVELOPER SPECIALIST Ø LOCATION: CULVER CITY, CA Ø TAX TERM: CON_CORP CON_IND CON_W2 Ø PAY RATE: ALL INCL Ø LENGTH: 12 MONTHS SKILLS: AJAX CSS PHOTOSHOP JSP HTML JOB DESCRIPTION: A MINIMUM OF 5 YEARS OF EXPERIENCE WORKING IN A TEAM ON A COMPLEX-PHASED NEW TECHNOLOGY MEDIUM SIZED WEB PROJECTS UNDERSTAND SOFTWARE DEVELOPMENT METHODOLOGY (PREFERABLY RUP) ABILITY/DESIRE TO UNDERSTAND BUSINESS PROBLEM THAT THE APPLICATION IS TRYING TO FIX/SOLVE RESPONSIBLE FOR DEVELOPING THE USER INTERFACE FOR A COMPLEX WEB APPLICATION WITH A LOT OF DATA ENTRY SCREENS, WORKFLOWS, VIEWS AND REPORTS EXPERIENCE USING TOOLS SUCH AS PHOTOSHOP OR ILLUSTRATOR TO PRESENT DESIGN COMPS, UI OPTIONS PARTICIPATED ON PROJECT WITH EXTENSIVE UI REVIEW PROCESSES AND CHANGES CAN PRESENT AND IDENTIFY USABILITY CHALLENGES AND SUGGESTIONS FOR IMPROVEMENT. CAN DESIGN PAGES WITH USABILITY IN MIND EXPERIENCE USING TECHNOLOGIES SUCH AS HTML, CSS, JAVASCRIPT AND XML EXPERIENCE WITH BLEEDING EDGE TECHNOLOGIES SUCH AS AJAX AND FLEX (ACTION SCRIPT) EXPERIENCE WORKING ON SITES THAT HAVE A JAVA BACK-END; WORKING KNOWLEDGE OF JSP EXPERIENCE WORKING ON PORTAL BASED SITES (NICE TO HAVE) EXPERIENCE ON PROJECTS WHERE SLICK UI**S AND HIGH PERFORMANCE PAGES ARE A KEY CAN UNDERSTAND AND EXPLAIN CROSS BROWSER CHALLENGES, PERFORMANCE CHALLENGES BASED ON UI DECISIONS ETC. MUST BE ABLE TO PROVIDE EXAMPLES DELIVERABLES WILL INCLUDE: LOW-TECH MOCKUPS USING PHOTOSHOP, ILLUSTRATOR, EXCEL OR VISIO HTML PROTOTYPES WITH FUNCTIONING JAVASCRIPT AND DATA INTERACTIONS FLEX APPLICATION DEVELOPMENT TO SUPPORT THE BACK-END DEVELOPMENT TEAM JSP DEVELOPMENT TO SUPPORT THE BACK-END DEVELOPMENT TEAM .PLEASE RESPONDS WITH YOUR UPDATED RESUME AND THE FOLLOWING DETAILS RATE EXPECTATIONS | IMMIGRATION | AVAILABILITY | CURRENT LOCATION| CONTACT NUMBER ——————————————————————————– WARM REGARDS, JOHN ADAMS | SIERRA INFOSYS | [ed: removed] PHONE: [ed: removed] (OR) [ed: removed] | [ed: removed] ——————————————————————————–
—-

(more…)

A Dirty Hack to Fix the Disappearing Tags Problem in Ultimate Tag Warrior

Ultimate Tag Warrior is a great Wordpress plugin that lets you add tagging to your blog and build your own folksonomy. You can use it to show related posts or a nifty tag cloud.

As of version 2.3, though, Worpdress has tagging built right in. That means that development on UTW has stopped, leaving us with a very nasty bug in the final version. After someone comments on a post (and the comment is approved), all the non-category tags are deleted.

This is a known bug in UTW 3.1415926. I’m not quite ready to take the plunge into Wordpress 2.3, digging up new plugins to add the features I want and changing our theme. So in the mean time, I found an ugly hack to stop our tags from vanshing into thin air.

  1. Go to your ultimate-tag-warrior-core.php file.
  2. Find the SaveTags function.
  3. Comment out the code that removes tags that are no longer associated with the post.

The end of the SaveTags function should look like this:

// Remove any tags that are no longer associated with the post.
/*
if ($taglist == “”) {
// since “not in ()” doesn’t play nice.
$q = “delete from $tablepost2tag where post_id = $postID”;
} else {
// lop off the trailing space+comma
$taglist = substr($taglist, 0 ,-2);

$q = “delete from $tablepost2tag where post_id = $postID and tag_id not in ($taglist)”;
}
$wpdb->query($q);
*/
$this->ClearTagPostMeta($postID);
}

Please note that this is an ugly hack.  It makes it much more difficult to remove tags from a post when you want to.  I find that we get comments on posts way more often than we ever want to remove tags, so it’s a god tradeoff for the time being.

Got a better solution?  Post it in the comment below.

Put Related Tags in Category Pages with Ultimate Tag Warrior

Blogs are an integral part of whole “web 2.0″ business, so it’s not too surprising that bloggers like adding tags to their posts. If you are using Wordpress, one of the best ways to add tagging functionality to your site is with a plugin called the Ultimate Tag Warrior.

This article won’t go into all the great features included with Ultimate Tag Warrior (UTW). If you are new to the plugin, I suggest reading this great article by Lorelle. You can use it to show related posts, tags related to a particular post, and a bunch of other stuff. But there’s no easy way to show tags related to a particular tag or category.

If you take a look at one of our category page, for example the Environment category page, you notice a list of related tags. Here’s how I did it.

(more…)

The Best Firefox Plugins and Extensions

Firefox is a great web browser. If nothing else, the large number of people switching from Internet Explorer to Firefox convinced Microsoft to finally update IE. When Firefox added inline spell checking with version 2.0 they boosted the writing quality of every blogger, wiki contributor, and forum post on the Internet. What more can you ask for?

Actually, the best thing about Firefox is its extensibility. Anyone with some programming skill and some free time can add features and functionality by building plugins and extensions. There are well over 2000 extensions listed at Mozilla.org, so where do you start? You can find a lot of “top 10″ lists around the web, but I thought I’d add my two cents as well. Here is a list of some of the best Firefox extensions.

1. Adblock Plus - Adblock is a controversial choice because it allows users to block out the advertisements that many websites rely on for income. This website, for example. But again and again I find myself thanking the Flying Spaghetti Monster for Adblock. Some sites fill their pages with flash-based ads that flash, flutter, crawl across the pages, etc. And those are the ads I inevitably block.

2. StumbleUpon - StumbleUpon lets you channel surf the web. Click on the Stumble button and you’ll get a new web site - give it a thumbs-up or a thumbs-down and StumbleUpon will suggest sites more to your liking. I should warn you, though, that this extension is very addictive and a terrible time-waster.

3. Procrastato - Now that I’ve ruined your productivity with StumbleUpon, I’ll give you a little bit back. Procrastato watches for notorious time-wasting sites like Digg, MySapce, and YouTube and reminds you every few minutes to get back to work.

(more…)

A Horrible, but Amazing, Abuse of HTML

This goes out to all y’all web developers out there.  You know who you are.  In 1999 while others partied like it was…  1999, you slaved away trying to get your table-based layout working on Netscape and IE.  Thank goodness it’s now 2007, and you can just grab CSS-based layouts from A List Apart.

But off all the possible abuses of old-skool HTML, I bet you never thought of this one:  using table cells and bgcolor to build an image, one pixel at a time!
YouTube Preview Image

Link to video for those of you on RSS.

Brought to you by Japan and cutesy anime chicks.

Taking Web Stats to the Next Level (of Weirdness) with Google Analytics

If you have ever run a web site, you’ve been exposed to the addictive, number-crunching fun provided by web stats. Any web site that’s worth it’s pixels will have, at the very least, a freeware program like AWStats parsing through the server logs and putting together colorful charts and reports. Our host, Q5media, are kind enough to provide us with LiveStats by Deepmetrix.

Web stats can be really useful for blogs. They can tell you all sorts of interesting things about your readership, for example, last month 55 people found the site while searching for Yakety Sax, no doubt landing on our article about how Yakety Sax makes anything funny. Other top searches included guys kissing, how youtube works, and once you go black. Hopefully everyone found what they were looking for.

(more…)

I Can’t get Enough of Mr T.

I had to post this video: Mr T. busts through a wall, alarmed by the jibber-jabber of a fat-headed consultant. He proceeds to show the consultant that Mr. T puts the “T” in IT.

YouTube Preview Image

Best lines:

“You know you got a lot of mouth, and I’ve got a lot of fist for your mouth!”

“Intelligence in the network? That’s for suckas. That’s for routing stuff, not data, fool!”

This is a video for Hitachi, but that last quote could also be seen as an argument for net neutrality. Somebody call up Mr. T. and get him in front of Congress.

And in all seriousness, Mr. T. is a really interesting guy - check out his profile on IMDB.

“I think about my father being called ‘boy’, my uncle being called ‘boy’, my brother, coming back from Vietnam and being called ‘boy’. So I questioned myself: ‘What does a black man have to do before he’s given the respect as a man?’ So when I was 18 years old, when I was old enough to fight and die for my country, old enough to drink, old enough to vote, I said I was old enough to be called a man. I self-ordained myself Mr. T so the first word out of everybody’s mouth is ‘Mr.’ That’s a sign of respect that my father didn’t get, that my brother didn’t get, that my mother didn’t get.”

Fighting Spam on a Diet - How to fix Akismet Performance Problems

Running into strange WordPress performance problems and database errors?  Akismet could be the culprit, but we’re in luck, it’s an easy fix.

Earlier I wrote a bit about our encounter with vicious, robotic Chinese comment spammers.  Since then we’ve had a few further issues, and I think I’ve found the culprit - Akismet, the plugin we’ve been using to fight the spam.

(more…)

Comment Spam Deluge - Did our Captcha get Hacked?

Have you been having trouble reading Unsought Input lately? You’re in good company – I’ve been having trouble writing for it.

We’ve been having issues with MySQL to the point of hanging connections and pleasant, but not very helpful WordPress error messages. It’s nice that user-friendly errors are built-in to WordPress, since you never want to give users cryptic, blue-screen-of-death style errors. But I needed to get to the root of the problem.

(more…)

Weird Errors - Fix Timeout Issues in CURL, PHP, and Apache.

Hitting strange errors when trying to execute long-running PHP processes, like large file reads, generating static HTML pages, file uploads, or CURL calls? It might not be just bugs in your code.

Are you getting pages that seem to load, but then nothing shows up in the browser? When you go to a page, does your browser sometimes ask, “You have chosen to open something.php which is a : PHP file. What should Firefox do with this file” or possibly “File name: something.php File type: PHP File Would you like to open the file or save it to your computer” Do you get internal server errors at random intervals?

Depending on what you are trying to, you could be running into timeout issues, either in PHP, in a particular library, in Apache (or IIS or whatever web server you use), or even in the browser. Timeout issues can be a real pain because you don’t run into them very often and they don’t result in clear error messages.

(more…)

Wordpress Tutorial: Using WP-Cache on Windows / IIS

Is your blog starting to bog down? Getting nasty emails from your ISP about overloading the database server? Since most blogs are read far more often than they are updated, caching your pages can result in a real performance improvement.

Wordpress has some very basic object caching, but you really need to be able to cache whole pages to see a big benefit. Luckily there is a very good page-caching plugin, WP-Cache.

If you are on a Linux or Unix host, installation is pretty straightforward.

Now, what if you are on a Windows/ IIS host and using ‘date and name based’, almost-pretty permalinks? No sweat. Okay, a little bit of sweat.

(more…)