David Walsh Tutorials
![JavaScript Battery API]()
JavaScript Battery API
Mozilla Aurora 11 was recently released with a bevy of new features. One of those great new features is their initial implementation of the Battery Status API. This simple API provides you information about the battery's current charge level, its...
![PHP Text Messaging with TextMagic]()
PHP Text Messaging with TextMagic
A few months back I wrote a shocking expose about how sending text messages with PHP was as simple as a simple call to mail(). The only drawback to using the mail method is that you need know the carrier for a given phone...
![JavaScript CDN Fallbacks]()
JavaScript CDN Fallbacks
CDNs are great for pulling shared resources from, especially JavaScript libraries. The advantage in the likelihood that a file is already cached before the user gets to our site is huge. The only problem with using a CDN is that it's out of control;...
![CSS Circles]()
CSS Circles
A while back I shared a clever technique for creating triangles with only CSS. Over the past year, I've found CSS triangles incredibly effective, especially when looking to create tooltips or design elements with a likewise pointer pattern. There's another common shape...
![Interesting -moz CSS Properties]()
Interesting -moz CSS Properties
I'm always on the lookout for interesting vendor-specific features and prefixes. The beauty in them is that they allow developers to enhance where possible; they aren't taken into account as core design, but provide nice little touches. I was poking around Mozilla's MDN...
![CSS Filters]()
CSS Filters
CSS filter support recently landed within WebKit nightlies. CSS filters provide a method for modifying the rendering of a basic DOM element, image, or video. CSS filters allow for blurring, warping, and modifying the color intensity of elements. Let's have...
![December 2011 Mailbag]()
December 2011 Mailbag
I get loads of questions each day so I decided to take a few moments to answer your questions about JavaScript, Dojo, MooTools, jQuery, and more. How did you get so good at everything you do? How did you practice without feeling like you wasted time? I'm the...
![PHP Advent 2011: Cross-Origin Ajax with CORS]()
PHP Advent 2011: Cross-Origin Ajax with CORS
I've had the honor of writing for this year's PHP Advent, blessing you all about Cross-Origin Requests with CORS: There's no doubt that Ajax is one of the most exciting, useful, and necessary web technologies available to front-end developers. Unfortunately, it's also one of the most restrictive — especially...
![DOM Events in JavaScript]()
DOM Events in JavaScript
Mozilla Firefox 7 introduced CSS' useful
text-overflow: ellipsis, an outstanding method of dynamically and elegantly concatenating strings within their parent elements. Firefox was late to thetext-overflowparty, so the Dojo Toolkit offereddojox.ellipsis, a resource that would shim ellipsis functionality with an iFrame. When...![#FreeDavidWalshDotName: Mission Accomplished]()
#FreeDavidWalshDotName: Mission Accomplished
As you must certainly know by now, my domain name was stolen. After weeks of pressuring domain registrars to give me the domain back, DAVIDWALSH.NAME is finally in my name again. It was a wild few weeks so this post will attempt to...









