Notebook

All posts

Really, all of it. (207)
Post Date Description Categories
Choosing the Right Database for Your Startup 2/5/2022 A database is one of the most critical decisions a technology startup will make. Here's how to get it less wrong. development startups
The Psychology of Computer Programming 1/9/2022 Fifty years later, Gerald Weinberg's book remains a goldmine of insight into programmers, management, and of course the computers themselves. books reviews
Writing Team Charters 1/8/2022 Projects start as proposals. Companies start as business plans. For teams, charters. Let’s make it a good one. management teams
The Year of the Tiger 1/1/2022 I don't know about you, but me? I'm ready for the New Year. illustrations
Managing Application State with Algebraic Effects 12/26/2021 Even without explicit language support, algebraic effects are a useful conceptual tool for managing application state programming typescript
EventTarget with TypeScript 6/18/2021 Use TypeScript with the EventTarget DOM API to add type safety to event-driven user interfaces. typescript howto
A Toy Algorithm 4/6/2020 Toys beguile and entertain through their resemblance to some real thing. Yet playing with them is instructive for the truths they reveal about larger, not-toy concepts. development algorithms
Killing it: an Education 12/15/2019 You might read a book about meat because you're curious about how to prepare it, where it comes from, or whether you should be eating it at all books reviews
Let's Talk About the Future 11/24/2019 And other polite ways to ruin Thanksgiving dinner personal essay
Principles of High-Value Software Testing 11/5/2019 Tests secure the value that software creates. Here are practical principles for getting the most from them. development testing
Event Emitters in TypeScript 10/20/2019 TypeScript enables safer, more maintainable event emitters. Here's how to add type safety to the pattern you know and love. typescript howto
The Model and its Limits 10/19/2019 No matter how convenient or apparently complete, every model has its limits. process essay
More Value, Less Impact: Traveling on a Carbon Budget 10/5/2019 Nothing screams ‘millennial guilt’ quite like a nice flight across the ocean. If you’re still going to travel, how do you make it count? personal process
Baking loves static types 5/29/2019 Working in languages like JavaScript, Python, or Ruby, you get a little tired of your colleagues... development process
Is TypeScript worth it? Making the case to your team 5/18/2019 Here's a letter to share with your manager, your team, or the developer across the way at the pub. development typescript
Cheatsheet: Analyzing Data from the UNIX Command Line 5/11/2019 Here's a scarcely-comprehensive list of tools for parsing, transforming, and formatting data from the command line. development bash jq
On Demand, but When? 5/4/2019 The long, steady march towards managed infrastructure is fantastic. Less time configuring... development
Damage Control in Distributed Systems 4/24/2019 Grid operators, systems thinkers, and grey-beard sysadmins will tell you: systems are hard. development typescript howto
The Web Developer's Guide to DNS 4/8/2019 Every developer should know the basics of DNS, the critical protocol at the heart of the web. development dns protocols
Some Type of City 3/18/2019 The child couldn’t sleep. Stories usually helped, though, and so the woman began. “In a faraway... stories
7 Commandments for Event-Driven Architecture 3/9/2019 The critical rules to keep in mind when designing an event-driven architecture development microservices serverless
Don’t Do Crazy: A Programming Lesson from the Shipping Industry 2/24/2019 What’s the best way to move cargo the “last mile” from a lumbering, seagoing behemoth to your door? development philosophy
A Quieter Place 2/13/2019 Just you, you and your thoughts, old friends with everything long since said. philosophy
On a Rainy Night in Portland 2/11/2019 Two models, two forecasts, and one rainy night in Portland machine-learning pdx weather
React is Changing How We Think, Again 2/10/2019 React reinvented how interfaces are built. Where does the future lead? essays development react
Using React Hooks with TypeScript 1/27/2019 Use TypeScript and React Hooks like useReducer and useState to create typesafe, maintainable state containers. Here’s how to do it. typescript react howto
Dear Founder 1/27/2019 Maynard Webb’s Dear Founder is a different kind of startup story, told through the letters an... books reviews
Software's Code Problem 1/13/2019 The industry's mystique is misguided. development philosophy essays
A day in the life of a Software Developer 1/5/2019 Chatting about the wide and woolly world of software development with a high school honor society ... development philosophy
Happy Holidays! 12/29/2018 It’s that time of year again—time to consign 2018 to the history books and discover what... illustrations
Notevember 10/31/2018 The sort of thing that makes it worth opening the mailbox, just to see what's inside. personal
Simple Tools 10/28/2018 Does the benefit in a specialized tool outweigh the time to learn it? development
Thinking in Systems: A Primer 10/27/2018 Donella Meadows' book is a gentle introduction to recognizing and effecting change in complex systems. books
Event Handlers and Logic Don't Mix 10/20/2018 Handling events safely and applying business logic are separate concerns. javascript
TypeScript Event Handlers 10/17/2018 Event handling in TypeScript is a story of expectations, tradeoffs, and the challenge of trying to type a dynamic language like JavaScript. typescript react
Turn The Ship Around 9/22/2018 Responsibility, initiative, authority: David Marquet's book is about giving it back. books
The Honest Question That Gets More Done 9/13/2018 Ever put something off? One simple self-reflection will get it back on track. personal
Why it's Worth Learning Go 9/5/2018 Go is a simple, robust programming language that deserves a look from novices and veterans alike. Here's why. essay development golang
Creating a CLI with TypeScript 8/12/2018 The same statically-typed goodness for web applications is just as helpful for building command-line interfaces. typescript howto react
React Render Props with TypeScript 8/11/2018 Using render props with TypeScript makes it easy to safely sharing logic across React components. typescript howto react
Thinking Fast and Slow 8/10/2018 I'm a relative latecomer to the pop-science subgenre of behavioral economics books
Specialization 8/7/2018 Do one thing and do it well. But in web development? development
Using React Context with TypeScript 5/24/2018 Use TypeScript and React Contexts to safely share state across React components—or an entire Application. typescript howto react
Before You Go Paperless 5/16/2018 The oldest productivity tool is still one of the best personal essays
3 Good Reasons to Start a Blog 4/29/2018 I’m still clinging to the old-fashioned notion that there’s value in writing things down. essays personal
Five Better Ways to Comment Code 4/13/2018 Comments just sit there—why not put them to work instead? development process
Should You Finally Learn How to Program? 4/4/2018 You could take up baking to nourish your body, or physics to nourish your mind. Either is worth learning if it interests you. But programming? development
Testing with TypeScript, Enzyme, and React 3/23/2018 Testing with TypeScript and Enzyme offers a friendly, typesafe alternative to React's built-in test facilities. typescript react testing howto
The Skeptical Developer 3/14/2018 What do epidemiologists and programmers have in common? development essays
High Output Management 3/11/2018 An essential framework for getting the most from management books reviews
Generic Redux Actions with TypeScript 3/1/2018 Have the cake and eat it, too: dispatch asynchronous redux actions with all the benefits of TypeScript's type system and only minimal boilerplate typescript react redux howto
This is the Month to Learn HTTP 2/28/2018 If you develop software for the web, a deep dive into HTTP is well worth your time. learn-one-thing
Recognizing Your Enablers 2/22/2018 Recognition is critical to your team's engagement, but important contributions go unseen. Here's how to start recognizing them. management process
Mocking HTTPS Services in Node.js for Fun and Profit 2/11/2018 Mocks can simplify testing of 3rd-party services, but not when someone else owns the TLS keys. Here's how to work around it. development process
This is the Month to Learn File Streams 1/29/2018 Streams provide a radically simple interface for many of Unix's best-loved utilities. Learning to use may even inspire simpler interfaces of your own! learn-one-thing development linux bash
Keeping Git Hooks in Sync 1/26/2018 Sharing git hooks with your team makes it easy to automate expectation and workflows. Here are three ways to do it. howto process git bash
Taking Pretty Screenshots on Linux 1/21/2018 One short command to step up the screenshot game. linux tools bash
Node.js Module Patterns 1/19/2018 Never mind dependency injection, factories, singletons, or service providers: in node.js, it all comes down to the module pattern. development node javascript
So You Think You're Programming? 1/14/2018 We software developers tend to imagine our job is programming. Coffee in. Code out. Dev in the middle. development process
This is the Month to Learn jq 1/4/2018 JSON is the language of web APIs, and jq is the easiest way to explore and transform it. learn-one-thing jq
The Hierarchy of Better Management 12/10/2017 First, do the easy stuff. management illustrations
The Information 12/4/2017 A thought-provoking ride through mathematics, language, and time that chronicles information's centrality to both society and the natural world books reviews
Thinking in Types 12/3/2017 Even in weakly-typed languages, consistent typing can yield better code. Here's how to start thinking in types.. development typescript
This is the Month to Learn Application Logging 12/1/2017 Logs shine light on the dark corners of an application, revealing smoke before production can burst into flames. learn-one-thing development process ops
Coyote’s User Story 11/19/2017 The one thing ACME’s customer needs isn’t a crazy contraption. It’s dinner. product process
Any Color You Like 11/16/2017 Declarative interfaces can stop complexity in its tracks—but only if their prescription fits the problem at hand. development process
code2png 11/6/2017 Create beautiful snapshots of code from the comfort of the command line development projects node
Banishing Impostor Syndrome: How Managers Can Help 11/1/2017 We've all been there, struggling to keep a good face on a project that feels anything but. management teams
This is the Month to Learn Git 10/29/2017 System of record, automation tool, and the ultimate undo button for bad ideas. There's no better time to _really_ learn git. learn-one-thing development process git
You're Still Using jQuery? 10/28/2017 “You’re still using jQuery?” Incredulity: the byword of a bygone era. An anachronism from the bad... essays development jquery
The Hard Thing About Hard Things 10/7/2017 Life is a panoply of unexpected challenges, no-win scenarios, and choices between bad and worse. This story is about that. books reviews
AMP, Quick and Dirty 9/25/2017 Accelerated Mobile Pages trade JavaScript for lightning-fast load times. For content-focused sites, they're well worth a look amp mobile optimization
Composing Higher-Order React Components in TypeScript 9/24/2017 Higher-order components are powerful tools for encapsulating behavior. Here's how to glue them together. typescript react
Reducing Typescript and Redux Boilerplate with Partial Actions 9/4/2017 Static typing is meaningless if boilerplate precludes its use. Partial actions can minimize repetition while still retaining safety and ease-of-use. typescript redux howto
Books Worth Reading 9/4/2017 If a story's worth finishing, it's worth taking a moment to mull over--and share--its big ideas. essays books reviews
The Essential Drucker 9/3/2017 An eminently quotable collection of advice and philosophy for the knowledge economy. books reviews
React Higher Order Components with TypeScript 8/19/2017 React HOCs are good for encapsulation; even better with their contents secured by TypeScript. typescript howto react
This Theme is Free 7/7/2017 Ask, ask, and ask again; you'll receive. This site's theme is now available free for use. freebies
Radical Candor 6/25/2017 Kim Scott's book puts relationships--caring, communication, and respect--at the heart of managing effective teams. books reviews
The Improbability Principle 6/10/2017 The Improbability Principle leans on principle, anecdote, and mathematics to underscore what... books
There's Always a Customer 6/3/2017 Everyone wins when we stop treating tools as 'internal-only'. development process essays
Integrating TypeScript and redux-thunk 1/21/2017 Thunk middleware and async action-creators help clarify the logic of Redux applications. Here's how to bring them into TypeScript. typescript howto redux
Testing TypeScript with Jest 12/11/2016 Jest and TypeScript make it easy to write maintainable, strongly-typed unit tests. typescript jest testing howto
TypeScript and Async Redux Actions 9/26/2016 TypeScript brings strong assurances to async actions in Redux applications. typescript redux howto
Woodpecker 9/20/2016 A vector woodpecker, that's all. illustrations
Rocking the Whiteboard 9/7/2016 Live programming exercises don't have to be useless. Here's how to turn a miserable test into a meaningful conversation. scene
Bug Collection 8/25/2016 Bugs are as much a part of software as developers and hardware. Collecting them can help ensure they don't happen again.
Tutorial: TypeScript, React, and Redux 8/17/2016 It's easy to connect a TypeScript / Redux application to a typesafe React.js UI. Here's how they fit together. typescript redux react howto
Tutorial: Getting Started with Redux and TypeScript 8/16/2016 In this short guide, we'll use TypeScript to make a Redux project that's safe, consistent, and accessible. howto typescript redux
About Those Bootcamp Graduates... 8/15/2016 It's a rare conversation with bootcamp instructors or (prospective) students that doesn't touch on the stigma around hiring bootcamp graduates. scene essays
How Things Get Done 7/14/2016 Trips, projects, gatherings, clubs--the possibilities are endless. Time is not.
Introduction to Git Hooks 7/5/2016 git hooks are a powerful tool for workflow automation howto git bash
How to Ruin Code Review 6/17/2016 Ten guaranteed strategies for raining misery down on code review howto process development
That's Technical Debt 6/12/2016 Technical debt. Can't outrun it, can't run without it. Here's how to keep it under control. development process essays product
The Best Code You'll Never Write 6/6/2016 No development is often the best development of all development philosophy
Command-line Configuration with confab and yargs 3/2/2016 confab is a great tool for configuring node.js applications, but it doesn’t ship with support for...
Evolution Over Revolution 2/6/2016 What every product team can learn from Porsche development process essays
Confab: Simple Node.js Configurations 9/5/2015 Node.js configuration logic can be simple, transparent, and reusable, and the confab package can help.
Circular Queue 8/5/2015 When data loss is a fully-underwritten feature of the system, consider the circular queue.
Bring your production environment home with Vagrant and Ansible 7/28/2015 Use Vagrant and Ansible to create reproducible dev environments based on multi-machine production deploys.
Using Ansible with Vagrant 7/5/2015 Scaling development environments beyond 'it works on my machine'
Testing API Requests From window.fetch 6/5/2015 Using Sinon to stub `window.fetch` with mock API requests simplifies client testing and development. Here's how to do it. howto javascript sinon testing
Testing API Requests with XHR and sinon.js 5/31/2015 Testing API behaviors with XHR and sinon enables portable, straightforward specifications. Here's how to do it. howto javascript sinon testing
The Documentation You've Been Looking For 5/12/2015 If we don't want prose, and we can't tell our complete story with code alone, it's time to consider our supplemental documentation. development process essays
Analyzing JSON from the command line 3/8/2015 Sometimes we don't want to fire up a spreadsheet just to take a peek at our data. Thanks to the command line, we don't have to. howto jq
Testing Around CSRF Protection 2/21/2015 Requests that had slid through easily before became unauthorized, and a cheerful green test suite glowed an angry red.
Putting React Custom PropTypes to Work 1/21/2015 React Custom PropTypes help clarify component interfaces. Here's how to put them to work. howto react javascript
Exception handling in node.js 1/16/2015 The ins and outs of asynchronous exception handling development javascript
JavaScript is swallowing your errors 1/15/2015 Who ships a language with error-handling optional? development javascript
Quick start: profiling node.js on linux 12/29/2014 Generate and review node.js CPU profiles on linux using Chrome node javascript
Disabling JavaScript Object Extensions 3/31/2014 As restrictive data types go, JavaScript objects are settlers on the far edge of the wild west. If...
Naming JavaScript Functions 3/9/2014 Remember that anonymous function? Probably not. After all, if it wasn’t worth a name, it probably...
Declarative Specs for JavaScript 2/26/2014 The last thing a lazy software developer wants to do is write code. The shorter and simpler a...
Trimming the Callback Tree 11/17/2013 Node.js approaches asynchrony by passing around continuations–callbacks used to resume program flow...
Validating javascript objects 7/5/2013 Validation is an important piece of an effective user interface. It reduces error rates, supports...
Managing JSON with jq 6/25/2013 Update: I’ve released a workshopper-style interactive tutorial covering the basics of jq. Just... howto jq
Patch requests in Backbone 6/2/2013 Backbone recently added support for patch requests—great news for developers working with small...
Composition in Javascript 3/16/2013 Last week offered some fairly esoteric notes on dependency injection. This week, it’s time to put...
Javascript dependency injection: what you should know 2/26/2013 Dependency injection might be the best technique you didn’t know you were already using. For...
Tiny model relations with Backbone.associate 2/16/2013 Several months ago I outlined a minimal implementation for model associations in Backbone. As my...
Parameterized testing in Javascript 1/21/2013 Why describe in code what you can capture in a variable? If I had my way I would have stopped...
Why listenTo in Backbone 0.9.9 1/12/2013 One of Backbone’s great advantages is that it changes very little. Up until the release of 0.9.9...
A year for the designer 12/31/2012 To the reflective posts and predictions that invariably define a new year in the blogosphere, add...
CoffeeScript Sucks 12/29/2012 Or: How I learned to stop worrying and love the drip. Javascript and I didn’t get off to a good...
Initializing Backbone Applications 12/9/2012 For one moment, forget the Models, the Controllers, the Routers and think about how they come to...
Filtering Backbone Collections 12/9/2012 Some data-heavier Backbone projects have gotten me to thinking a bit about how Backbone collections...
Scaling images for Retina displays 11/25/2012 There are several off-the-shelf solutions for providing super-sized images to devices using Apple’s...
Dollar Democracy 11/23/2012 It’s Black Friday here in the States, and now that last night’s gala of gluttony has worn off we...
On bad eggs 11/13/2012 There comes a time in every application’s life when the optimism of early development is eclipsed...
Integrating maps and Formtastic forms with Geous.js 10/23/2012 The fabulous Formtastic gem provides a tidy DSL for presenting Rails models in user input forms...
Geous.js grows up 10/16/2012 Geous.js is a tiny javascript library that makes geocoding and geolocation tasks a snap… …and for...
Developing Rails Gems with Git 9/30/2012 Take a gem that provides shared functionality to a number of under-development projects. Gem...
Catch-all routes in Backbone 9/18/2012 Sooner or later, every Backbone application will encounter a route gone wrong. Handling mistyped...
Where's the Water? 9/17/2012 Here's where the water's coming from in Bozeman, Montana. illustrations
Home Baker’s Illustrated Guides 9/10/2012 A few work-in-progress frames from the cookbook. Infographic: an illustrated guide to starter... illustrations
Coffeescript jQuery plugin template 9/6/2012 Repetition is the last thing on coffeescript’s mind. Alan Hogan posted a great base template for...
GetSimple Plugin Boilerplate 9/2/2012 I just pushed a small repository to github that provides an object-oriented approach to authoring...
Filtering Backbone Routes 8/16/2012 A Backbone application needs to perform a login redirect whenever an unauthenticated user tries to...
Select box hinting 8/12/2012 Selectboxes aren’t my favorite part of the user-interface toolkit. Even before being subjected to a...
The Small Business Website is Dead 8/6/2012 Lately, I’ve been unselling as many websites as I’ve shipped. It’s not a compatibility issue—on the...
Forge: Template generators for Node.js 7/28/2012 One of the Rails-isms I miss most when developing in Node.js is easy access to repetition-quashing...
A Message in the Pins 7/9/2012 To me, at least, the spector of litigation looming over Pinterest’s Palo Alto headquarters seems as...
Testing with Node, Jasmine, and Require.JS, part II 7/2/2012 With some serious interface revisions headed down the pipeline, last week’s dive into the realm of...
Stepping Back 6/26/2012 Every new project begins with both a seemingly limitless pool of creative energy and a siren’s song...
Jasmine, Coffeescript, and Require.js, Part I. 6/20/2012 Having spent the better part of an afternoon wrangling a jasmine test suite written in coffeescript...
Javascript Bootstrapping for Rails 6/16/2012 Javascript without bootstrapping is like a drive-in without roller skates. Even though dinner...
Some custom mixins for underscore 6/7/2012 I recently published several of the more useful underscore mixins in my development toolkit over to...
Simple Model Relationships with Backbone.js 6/4/2012
Update: [Backbone.associate](https://rjzaworski.com/2013/02/tiny-model-relations-w...
Watch, coffee, node, and make 5/30/2012 Watchers such as nodemon are great tools for easing the pain of testing, but they tend to be...
Free Map UI Mockup Elements 5/27/2012 Get ‘em while they’re hot: two styles of SVG map elements, released for free under the auspices of...
Adding Map Tooltips to Bootstrap 5/14/2012 Twitter’s Bootstrap is one of the best tools to crash the concept-development party in quite some...
Storing data in the DOM 5/9/2012 One common strategy in progressive enhancement is to use the static content on a page as an initial...
PHP Library for the Posterous API 5/5/2012 Posterous is no more This note retained for historical purposes only I recently coughed up a PHP...
Testing protected methods with PHP 4/29/2012 Testing private and protected methods in PHP isn’t a trivial task. Consider a very simple class: A...
E-mail, beautiful e-mail. 4/17/2012 As much as I try to avoid letting the presentation of the e-mail that arrives in my inbox affect my...
A Monkey Puzzle Pattern 4/16/2012 One of the persistent challenges in user interface design involves separating legitimate input from...
A Privacy Bill of Rights 3/14/2012 Even if last month’s revelation of data leaks in two popular iPhone applications didn’t come as...
Organizing Backbone.js Applications 3/6/2012 When it comes to organizing applications, Backbone.js doesn’t come with an exhaustive list of “thou...
Backbone.js object inheritance 2/28/2012 If you’ve ever wondered if the basic classes in Backbone.js could be inherited by other, related...
Idling functions 2/6/2012 One of the (very few) functions missing from the singularly useful Underscore.js toolkit is _.idle...
Don't fear the G 1/31/2012 With all the hubbub surrounding Google’s new privacy policy, you’d almost think the end times were...
A Wordpress Plugin Boilerplate 1/30/2012 WordPress’s decision to provide only minimal guidelines for third party developers has had two...
Parsing forms with Backbone.js 1/30/2012 Take a form that’s indexed in the Rails vogue. Wouldn’t it be nice to be able to manipulate its...
Optimizing textured graphics 12/19/2011 From rgba colors to the box-shadow attribute, the CSS standard tends to evolve in response to...
Regex routing with Backbone.js 12/9/2011 Routing is an application’s way of saying, “there would be something good at that URL, but since...
Meet Achilles 12/8/2011 Achilles is a tool that sets out to solve a daily problem in web development: how can a site offer...
Illustrated Guide to Sourdough 12/7/2011 Here’s take #1 at The Illustrated Guide to Sourdough. (Infographic) Illustrated Guide to Sourdough...
Fit text to element with inflateText.js 11/17/2011 InflateText.js began as these things often do: with a problem. One of my projects required...
Developing with REST 11/8/2011 The application’s released, the userbase is growing, and the company inbox is filling up with...
Gmail Limits & the Population Bomb 11/2/2011 Sometime yesterday, the UN officially declared the birth of the world’s 7 billionth baby. Once all...
Verifying Geolocation 10/24/2011 The internet is all about data, but figuring out where that data resides in the...
Out of the Wild 10/17/2011 The Geous.js geolocation library exposes simple interfaces for locating users and performing...
Javascript Validation 9/30/2011 Take a form that collects user comments for use in a Javascript application. Once submitted, the...
Javascript Template Management 9/21/2011 To the time strapped application developer, templating systems are a godsend. By moving content...
The Good License 9/20/2011 Whenever I release an open-source project, its code invariably ends up under the auspices of the...
Pirana: feeds for the reader 9/18/2011 When the announcement of the “Responsive Edition” of An Event Apart’s 10k Apart showcase coincided...
Geous.js: Geolocation made easy 9/8/2011 In terms of potential and controversy, HTML5’s location-awareness is about as hot as its gets. On...
Baffin: a SASS-y little style 8/31/2011 Just because a project is custom doesn’t mean that it can’t recycle code, and nothing screams...
A Time for Learning 8/31/2011 Personal projects aren’t just a chance to build something awesome—they’re a chance to learn...
CSS3 transition class 8/23/2011 As CSS3 continues its tentative march towards widespread implementation, I’ve noticed a slightly...
Objects, Arrays, and Local Storage 8/19/2011 HTML5′s local storage system is an incredibly useful feature, but I’m not the biggest fan of having...
Responsive images without Javascript 8/17/2011 Responsive development owes its roots to the mobile-age challenge of scaling content onto handheld...
Bookmarklet: load local test script 8/11/2011 Working on a data-loading application for a client, I got involved in some debugging work more...
Detect when a stylesheet finishes loading 8/9/2011 Sometimes it’s nice to be able to trigger an action when a resource is loaded, usually by simply...
What, no phone? 8/3/2011 Last March, I traded in the undeniable convenience of the cell grid for a Google Voice number and a...
Welcome Adobe Edge 7/31/2011 Adobe just announced a new tool (“Edge”) for helping developers produce interactive content based...
Designing javascript for accessibility 7/26/2011 Since the dawn of asynchronous content retrieval, javascript has played an increasingly important...
Google+ at three (weeks) 7/20/2011 By now, you can’t have missed hearing about Google+, the latest not-quite-Facebook horse in...
Trench Warfare 7/16/2011 Running bamboos are legendary expansionists. To stop their rhizomes from overwhelming the yard...
Javascript micro-loader 7/13/2011 Several recent projects have left me wishing for a way to keep track of asnychronous scripts and...
New Fonts at Google Font API 5/7/2011 Looks like a raft of new fonts are available over at the Google Font Directory. Get ’em while...
Find an input label in jQuery 5/4/2011 Find the label wrapping a user-input control...
Stomping CSRF attacks 4/19/2011 Cross-site request forgery (CSRF) attacks have gained increasing notoriety as websites have grown...
Printing the week 4/12/2011 No summary available
vim: first impressions 4/7/2011 I’m a huge fan of my keyboard, the terminal, and generally keeping my hands off the mouse as much...
Show number of results on Wordpress search page 4/5/2011 If you haven’t already read it, Michael Martin’s article on improving the wordpress search page is...
Rank SQL full text query by relevance in boolean mode 3/31/2011 Assuming that $keywords holds the query keywords, a table containing the indexed columns title and...
Masking images with CSS and jQuery 3/14/2011 Ever wanted to add a pretty frame or porthole effect to images uploaded through a content...
Including page content in Wordpress blog index page 3/2/2011 Even when a WordPress post index page is pinned to a static page, it’s sometimes nice to allow a...
Euclid's algorithm 2/22/2011 Just for fun: var _gcd = function(a, b) { return ( b == 0 ) ? a : _gcd( b, a%b ); }...
Hooking Wordpress media uploading in plugins 2/14/2011 WordPress features a user-friendly media management system that takes all the mystery of FTP out of...
Let Google serve your Wordpress theme. 1/24/2011 Each WordPress version comes complete with the most latest versions of a number of JavaScript...
Including a random custom post in your Wordpress Theme 1/5/2011 The addition of custom post types in WP3+ allows theme designers to include random post types...
jQuery + CodeIgniter 12/28/2010 While working on streamlining the back end of our soon-to-be-launched Laborinth application, I went...
Sort Wordpress custom posts alphabetically 11/11/2010 I recently used WordPress’s new custom post type functionality (WP3+) to get biographies and...
Typography Grows Up 10/12/2010 With @font-face now supported by all the major browsers, everyone wants to get in on a piece of the...
Get children from navigation in WP3+ 10/7/2010 Even though I love WordPress’s new menu management system (WP3+), there are times it would be nice...