Last time we discussed the Fetch API in general, taking a look at how it differed from the XMLHttpRequest API, and some of its advantages. Today, we’re going to take a look at a little library that you can include in your projects today that offers you localStorage caching for the Fetch API.read more
Software is a serious business. Fatal bugs have been around since at least the 1980s, and a decade-old report estimated the annual cost of bugs at $60 billion. Tech companies spend millions on political lobbying. Opponents argue over labor shortages and H-1B visas.
So how about we take some time out to give three cheers for a little levity?read more
Long ago, we briefly brushed upon the topic of what has made jQuery such a valuable part of the web developer’s toolset for such a long time – namely, a cleaner interface for interacting with the DOM, and the $.ajax abstraction over XMLHttpRequest.
These days, I would go a step farther and discuss how it has positively influenced browser APIs. jQuery offered a way to find elements using their css selectors, and this eventually gave us document.querySelector and document.querySelectorAll. More recently, browser developers have taken another page from jQuery’s playbook and introduced a new, Promise-based API for making asynchronous requests, and so much more – Fetch.
Why go Fetch? Let’s take a look.read more
Book Review: Let’s look at a pair of books that contain deep critiques of the world where more and more of our devices’ functionality is exposed only through interfaces on screens, and lay out a path to a more human-centered technological future filled with devices that engage us more richly in a wide variety of ways instead of asking us to keep poking at black glass rectangles with our stubby fingers.read more
Handling color spaces in Cocoa and Quartz just takes a little familiarity to be done properly.read more
Someday, you’ll be sitting at your desk, minding your own business.
Your boss, or a client, will come in and start explaining this cool new IoT project you’ll be working on. As you listen, the timeline splits:
In the Darkest Timeline, no one on your team knows about what’s discussed in this book. Your boss/client starts specifying requirements that sound cool to them, but are really bad ideas in ways that aren’t immediately evident. Your team builds the project as it was specified, and it fails in the marketplace because of mistakes that could have been avoided.
In the Prime Timeline, you’ve read this book.read more
At WWDC this year Apple engineers gave a talk about their new Unified Logging and Activity Tracing APIs which is definitely worth checking out. I know logging isn’t exactly going to steal the headlines away from Siri integration or watchOS 3, but as a developer it’s a valuable debugging tool and the changes in these APIs look to save some significant time while debugging crashes and squashing bugs.read more
Here are some papers, articles, and blog posts that I’ve found especially interesting recently. Check them out.read more
A few months ago I stumbled across across an interesting open source project created by Katrina Owen called exercism.io that provides a collection of programming practice problems in over 30 languages. On the surface, it’s a great resource for learning to code or learning a new language. I’ve found however that as you dig deeper it has much more to offer on a number of levels.read more
There’s been a lot of talk this year about bots and conversational interfaces becoming an increasingly important tool for software developers. A few years ago I wrote about a twitterbot that I created, and I’ve just pulled out all of the common logic into a Python framework that you can use to quickly create your own twitterbots by focusing on just the bits that make your bot unique.
Check out ‘nanobot’.read more
Last time, we decided to embark on a brave new adventure and give our Django framework a big upgrade with the inclusion of Django Channels. We got just far enough to get the development server running, but while this may be an *adequate* start, it’s better to develop against something like what we intend to deploy, right?
So, let’s go the rest of the way and get ready to develop against something that at least resembles a standard production-ready environment with Django Channels.read more
You stare mournfully into the mass of code you’ve inherited. At some point, it’s clear, the requirements called for the server to push information to the client, because there’s an unholy mix of Server-Side Events, long-polling, hidden iframes and even a Java applet in there, all supporting some level of long-term connectivity with the server. It’s almost fascinating in its barely functional hideousness, and you would be inclined to leave well enough alone… except for the *new* feature specifications you’ve been assigned, which require the client to be able to send data back to the server in response to the received events, in as close to real-time as you can get.
It’s time for a major overhaul.read more
Filtering tables of data is the central task of many a business web-app. This is the first of a series of tutorials on using Bootstrap radio buttons in the wild to filter real datasets in concert with other commonly-used UI components like DataTables and jQuery UI.read more
A long time ago, asynchronous programming was an exotic practice. Not many people were doing it, and their code was punctuated with things like assembly language and processor interrupts. Less anciently, preemptive multitasking OS’s made asynchronous programming more accessible, albeit often still with arcane and unnatural boilerplate, not to mention hazards of sharing mutable data. (read more…)read more
Recently, I’ve been working on a project for a long-time client who came to us with a request that we haven’t seen in a while–we were tasked with taking their existing application written in C++ using the JUCE application framework into two separate...read more
In the early years of Art & Logic, my wife and I liked to visit a small inn in Palm Springs called Villa Royale. It was lovely. Each room was decorated in a different European country theme. The proprietors traveled frequently and brought back regional artifacts...
One of our developers was recently talking about a personal milestone that happened to mark both his 20th year at Art & Logic as well as his son’s 20th birthday. That got me thinking about how much parenting and software actually have in common. For...