18
Jan 12

Stop SOPA protests will have a day of productivity side-effect

With numerous time-sink sites going down (e.g. reddit, slickdeals, xda, fark, xkcd, wordpress, boingboing) after internet peoples contact their congress person(s) will have little choice but to get to work. And or post on their own blogs. Ahem. Venturebeat has handily captured screenshots of many of the stop-sopa participants homepages.

Also, who doesn’t love theoatmeal:

…As someone who creates content for the web, earns a living from it, and has had his content pirated, I do feel that we need better legislation against online piracy.
I do not, however, think that SOPA or PIPA are the legislation we need.

Want to help in the fight against SOPA / PIPA? First, go learn about the bills. After that go contact your elected officials. Wikipedia has a handy-dandy page set up which allows you to locate your state representative.

Hugs and jet skis,
-The Oatmeal

Continue reading →


13
Jun 10

Take a break .. take a break .. take a break …

If you’re a white-collar, soft hands clean clothes information-worker, you sit on your ass day in and day out and probably, at night too.  Using the computer is your work and play.  By now, you probably have decent desk ergonomics and understand the importance of them.  Carpul-tunnel and RSI are real, no matter who you are. 

Hell, I bet you’ve had some strange aching pains in your shoulder, arm, elbow, wrist, and or hands at some point.  An early warning of what could come and enough to motivate you to make some positive, preventative changes. Let’s assess the basic ergonomics of a healthy desk:

  • Screen is at arms length from your face and at eye level.
  • Keyboard is parallel or slightly lower than where your arms rest on the desk. Your wrists should not be higher than your elbows.
  • Mouse easily accessible, moves effortlessly, requiring little to no movement of your arm.
  • You’re sitting up straight.  Shoulders back and not hunched over.  If it hurts, you probably need a better chair – get one with good lumbar support. Or, baring the new chair option, one of these inflatable cushions.
  • Feet flat on the ground or better yet, on a foot rest that promotes upright sitting (not slouching!).
  • Check this out for illustrations of an ideal workspace configuration.

Now, on to the meat of the meal: taking breaks.  
Continue reading →


12
Jun 10

Introducing the Countdown Timer gadget

The Countdown timer gadget was created as a learning project and because I needed something to remind me to take breaks throughout the day. I wanted something that had a tiny footprint both in appearance and function, similar to the gnome-timer applet (for Linux desktops).

5 minute countdown underway

The concept is very basic – countdown from a preset time (in minutes) and alert when time is up. This gadget is more akin to a kitchen timer than a countdown-until-my-birthday type timer. However, the gadget will happily countdown 135971947923 minutes in case that amount of time happens to be of value to you.

the settings dialog box

As with any quality gadget or applet, this one is configurable. The Custom Countdown setting (in minutes), if set, will override the default of 30 minutes and any Preset Timers selection (also in minutes). Lastly, the Number of Alarm Sounds option defines how many times the audible alarm will sound when time is up. Putting a 0 in this option field disables it.

The Countdown Timer gadget was designed to work with Windows 7 but there should be no problem running it in Vista. I’ve committed the code to my github account where you can follow along for nitty gritty details.

Download it now

See the included README for installation instructions and additional info. Post questions and comments to this entry and I hope you find it as useful as I have.

Last Updated: July 1st, 2010


09
Jun 10

PHP released 15 years ago today

PHP version 1, by Rasmus Lerdorf, was released into the world on June 8, 1995. It’s original name of Personal Home Page was renamed, with a heavy nod to recursion, to “PHP: Hypertext Preprocessor” in 1998 with the launch of version 3.


I owe a great deal of my professional success to this language, it is the one that truly sold me on programming.

<?php
/**
* June 9, 2010
*/

echo<<<HAPPY15THBIRTHDAYPHP
* May your future be full of fantastic features and ever greater efficiencies.
* You've powered the dynamic web from yahoo to facebook.
* May you continue to enthrall and encourage programmers young and old.
* You've come a long way, be sure to have lots and lots of cake today.
* May your full fledged Unicode support be your gift to us sooner rather than later.
* You've got your problems, but then don't we all.
* May you survive and thrive another 15 years.
HAPPY15THBIRTHDAYPHP;
?>

Bonus: here’s some cool PHP usage statistics and trend graphs.


23
Apr 10

Do not underestimate the need for Multi-Browser testing

No matter what the trending statistics tell, people do use alternative browsers. If something totally doesn’t work, these users are going to complain about it and rightfully so.

test all of these

Technical (javascript) lesson learned: do not use setTimeout() for making an external script call such as document.write(); If the result happens to contain an iframe tag, all your caller pages will be overwritten. Only seems to affect Opera and to some degree IE. Safari, Chrome and Firefox are immune (and as it happens, the three browsers I originally tested against).


25
Mar 10

What the FEFF?

Since I’ve been thinking I ought to write about my work more often, and inspired by the strangeness of this incident, here goes.



Visual of the Culprit

I’d been trying to debug how a few ?s came to be in an ad banner tag submission. I’d dug into change logs and other points where we log transactions to no avail. Since we’d never seen anything like it before, I’d basically decided I’d spent enough time on it and was about to resort to a “it was caused by network ghosts” type explanation. I figured the ?s came from some erroneous network transmission.

On our system, there was nothing strange in the tag field whatsoever. On the adserver though, there appeared some question marks, looking like this:

???<iframe src=”http://view.atdmt.com/M0N/…” frameborder=”0″ scrolling=”no” marginheight=”0″ marginwidth=”0″ topmargin=”0″ leftmargin=”0″ allowtransparency=”true” width=”500″ height=”250″><script language=”JavaScript” type=”text/java …

Then, though when I don’t really know, it hit me. I should view that offending code in a more verbose setting, don x-ray specs if you will – my first choice was VI. Lo & behold, the offending characters appeared before my eyes.

Continue reading →