Sufficeth to say, I work for Omniture and I’m enjoying it very much ðŸ˜‰
In honor of the holiday season, and in true i-have-nothing-original-to-blog-about-so-i’ll-do-a-top-X-list-post style, here are my favorite internet memes from days yonder. From my tubes to yours (there’s a joke about an surrogate motherhood in there somewhere), enjoy:
5. The Rick-Roll (a family favorite). Have you ever been tricked into clicking a link that led to a video clip of the Rick Astley video “Never Gonna Give You Up”? If so, then you’ve been Rick Roll’d! Why anyone would ever be annoyed by this is beyond me…I love Rick Astley and that song is an anthem to my youth.
More after the jump… Continue reading
I run Apache on my local machine so I can develop web applications in a self-contained environment. I encountered a strange problem the other day when tried to start the Apache service:
First of all, what an incredibly un-helpful message. The details also proved less-than-enlightening:
Mmmkay. Thanks for that. I know exactly what the problem is now and I can easily go about fixing it…NOT. msvcr71.dll is the C++ runtime library so it’s not like that narrows down my problem at all. I do know however…that it has something to do with the C++ code. Gee thanks.
Well if anyone is experiencing the same problem, let me save you the hours of fruitless Googling that I had to endure and just tell you what the problem was. I had a VirtualHost whose DocumentRoot pointed to a networked drive that was not currently connected. All I had to do was re-connect the network drive and bingo! Apache started up without a complaint.
A plea to application developers everywhere: Please, for the love of Blaise Pascal, write more informative error messages! How hard would it have been to say: “Hey idiot, you’re trying to use a network drive that isn’t currently connected!”. Instead I get all sorts of useless (but awesome) information about ModVer’s, AppVer’s and Offsets! I love geeky error dumps as much as the next guy…but for crying out loud…toss me at least one piece of useful debugging information along the way.
I realized today that I am very dependent on a few really nifty tools to get my work done. As a developer I am inherently lazy so I need tools that let me get things done quickly and efficiently. I assume many of you are also developers and lazy so today I’m going to open up my web developer’s toolbox and show you what’s inside in hopes that I can inspire you to reach your full laze potential.
If you’re not developing your web sites in Firefox, you should be.
Everyone has their list of “best Firefox addons ever”. I’m no different from them except I’m way cooler. So here is my list:
Need a complete WAMP solution without all the hassle of multiple packages, configuration woes and perhaps even *horror* compiling stuff? Look no further than XAMPP from Apache Friends. Their package contains the latest and greatest Apache, MySQL and PHP (both v4 and v5 support) all in an easy-to-use installable package. They also throw in some other goodies like an FTP server and PHPMyAdmin. Ever since I discovered XAMPP I do all of my testing and development locally before deploying to a staging server.
What do you mean you don’t have one of these yet? Any good web developer needs to edit his/her HOSTS file frequently. Why are you still doing it the hard way: Explorer > C:/ > C:/WINDOWS > C:/WINDOWS/SYSTEM32 > C:/WINDOWS/SYSTEM32/drivers > C:/WINDOWS/SYSTEM32/drivers/etc > Right-click hosts > Open With > Notepad. Whew! Instead try something like this:
Double click that baby and your off and editing! BTW I use gvim instead of notepad because it makes me feel good. If you’re confused about what you’re seeing above, do this: Go to your Desktop. Right click > New > Shortcut. Enter “notepad c:/windows/system32/drivers/etc/hosts” as the location then click Next. Give it a name and you’re done! Double-click when you need to edit your HOSTS file.
I use Zend Studio but I wouldn’t hold it against anyone for using Eclipse. The point is you need a good IDE to develop quickly! There are probably some purists out there that will extol the virtues of “Notepad coding” — or typing everything by hand. This is complete crap. Get an editor that does auto-completion, tag insight, tag highlighting and sports a full debugger.
You need screenshots! You need them in your documentation, you need them to attach to emails, you need them to post on your blog, you need them to corroborate your stories. ScreenHunter is an unobtrusive screen capture utility that sports full-screen capture, area capture, timed capture, JPG, GIF and BMP support amidst a whole slew of other features. Did I mention it’s free?
Nevermind…I’ve decided I don’t like Launchy all that well.
So there you have it. My toolbox opened for the world to see. I hope this post spawns an army of eager web developers ready to code the next killer web two-point-oh site.
Jon Gale is currently employed by nextSTAT and spends his days looking for tools and tricks that will let him express his inner slackitude. He enjoys rousing games of badmitton and has had a goatee for over 10 years.
<disclaimer>I work for NextSTAT. I am NOT an impartial bystander</disclaimer>
For a company whose unofficial slogan is “don’t be evil” Google has just made their most evil, diabolical move to date. THEY STOLE MY (employer’s) TAGLINE! So what gives Goog? I let slide the fact that your cookies don’t expire until 2038. I turned a blind eye when you purchased Urchin and gave away the service for free (future blog post incoming on this one). I pretended I didn’t hear the news that you wanted to buy DoubleClick. But this…this has gone too far!
Allow me to introduce my evidence:
Exhibit A: The NextSTAT logo that has been around for at least 2 years. Note the TM appearing next to the logo and tagline.
Exhibit B: A screenshot from the Google Analytics product tour.
“the next generation web analytics tool”? I cry foul! That’s my line…and you stole it! I demand justice! Can you tell from my excessive use of exclamation marks that I’m morally outraged?
Google, as much as I enjoy your well-engineered products (especially Google Reader <3 <3), I can no longer remain silent in the face of your evil deeds. My blog, and the 13 people who have ever read it, will fight you to the bitter end**.
That is all.
** Jon Gale has not received the support of his blog audience in his crusade against the evil-doings of Google.
At work last week I set up some MRTG reports to monitor our MySQL servers. I used the handy mrtg-mysql-load utility to get queries/slow queries information but I also needed to monitor the number of records in a particular table and graph it using MRTG. For those unfamiliar with MRTG, graphing “custom” data is very simple. All you need to do is write a script that outputs 4 lines:
Line 1 -current state of the first variable, normally ‘incoming bytes count’
Line 2 -current state of the second variable, normally ‘outgoing bytes count’
Line 3 -string (in any human readable format), telling the uptime of the target.
Line 4 -string, telling the name of the target.
So I created a simple script to get the record count from a particular table:
#!/bin/sh echo 0 mysql -h $1 -uwww -e "SELECT COUNT(*) from injector" nextstat_injector | tail -1 echo 0 echo "Queued Records"
Which I would call passing the MySQL database host as the first argument. Once I had the script I added a new MRTG target like this:
Target[injector]: `/etc/mrtg/injector-stat 192.168.1.121` + `/etc/mrtg/injector-stat 192.168.1.122` + `/etc/mrtg/injector-stat 192.168.1.123` MaxBytes[injector]: 500000 Options[injector]: nopercent,growright,nobanner,nolegend,noinfo,gauge,integer,transparent,noi Title[injector]: Injector Records Queued PageTop[injector]:<h3>Injector Records</h3> YLegend[injector]: records ShortLegend[injector]: LegendI[injector]: LegendO[injector]: records
You’ll notice that I’m adding the totals from 3 different servers to graph a single sum value in MRTG. Any mathematical expression can be used to generate your graph values. From the manual:
You can also combine several target definitions in a mathematical expression. Any syntactically correct expression that the Perl interpreter can evaluate to will work. An expression could be used, for example, to aggregate both B channels in an ISDN connection or to calculate the percentage hard disk utilization of a server from the absolute used space and total capacity.
For a graph like this you’ll want to use similar options to the ones I used above. nopercent disables percentage display, growright tells the graph to read from left to right instead of the default right to left, gauge tell MRTG that the data points are “current status” measurements rather than ever-increasing counters, noi tells MRTG there is no “input” data to compare against “output” data and a few cosmetic display options. The resulting graph looks something like this:
So there you go…a quick and easy way to monitor entries in a MySQL table using MRTG.
There’s quite a little uproar going on about the release of a certain hex key that can be used to decrypt HD DVD movies. Apparently the AACS doesn’t like it when you publish that particular key on your blog. Desperate for anything to drive some attention and traffic to my blog, I have decided to post that key here; however, I’m going to disguise it as a poem so no one will recognize it for what it really is!
Oh Nine, Eff Nine
One one zero two!
Nine Dee Seven Four,
Ee Three Five Bee.
Five Six, See Five?
Sicks Three Five Six,
Eight eight See ZERO.
So welcome AACS, MPAA and other industry watchdogs! Hope you enjoyed my poem.
My wife started blogging. I’m not sure how I feel about it just yet…on the one hand, the internet needs more blogs. On the other hand, what if more people read her blog than mine? Does that make me less of a man?
The truth of the matter is, more people should read her blog because she’s a much better writer than I am. So here’s the deal…if you have enough time to read two more blogs, read us both. If you only have enough internet tube-width for one more blog, choose wisely.
And by “go to college” I mean you can go to a college campus and ALMOST purchase a candy bar from the cafeteria vending machine.
Check out this little gem that arrived in my INBOX today:
Never one to look a gift
horse 63 cents in the mouth…let me be the first to say: Bob, ICANN…thank you! That $0.63 (or 1/14th of a domain name registration) of GoDaddy store credit is truly a generous gesture.