May 2013
5 posts
Terra: A low-level counterpart to Lua →
Terra is a new low-level system programming language that is designed to interoperate seamlessly with the Lua programming language:
Like C, Terra is a simple, statically-typed, compiled language with manual memory management. But unlike C, it is designed from the beginning to interoperate with Lua. Terra functions are first-class Lua values created using the terra keyword. When needed they...
Go 1.1 is released →
Go 1.1 includes many improvements over 1.0.
The most significant improvements are performance-related. We have made optimizations in the compiler and linker, garbage collector, goroutine scheduler, map implementation, and parts of the standard library. It is likely that your Go code will run noticeably faster when built with Go 1.1.
There are some minor changes to the language itself,...
April 2013
1 post
March 2013
3 posts
Mistitled: The Gathering Storm: Our Travails with... →
rms2:
Preface Recently, and with increasing frequency, developers have been speaking out about the difficulties they’ve had trying to implement support for iCloud in their products, and journalists have been reporting the news. I told our story to Ars Technica, and they’ve made their own report….
2 tags
How To Build An RSS Sync System: A Brain-Dump
Problem Statement: Google pulled the plug on Reader, but you still want a way to keep the news-reader apps on your various devices in sync, so they all know what feeds you’re subscribed to and which articles you’ve already read.
Here’s what you do. I’ve built this before, as part of the OS X Syndication and PubSub frameworks. (It wasn’t identical to what I’m...
February 2013
1 post
ojmason asked: Hi Jens, I believe in Couchbase you had an embedded Erlang RT suitable for iOS; is this still the case in Touchbase? Thanks, Oliver
January 2013
1 post
1 tag
spam tip
Want to cut down on email spam? Add a filter to your email program that will trash any messages whose From address starts with “contact@”.
I set up such a filter two weeks ago, and so far it’s caught about 90% of the junk that otherwise makes it through even my ISP’s and Apple Mail.app’s spam blockers. (I think there may have been one false positive, but not more. Apparently almost no one sends...
December 2012
3 posts
There are only two hard things in computer science: cache invalidation, naming...
– Martin Fowler, intentionally misquoting Phil Karlton
iTunes 11 and Colors →
“iTunes 11 is a radical departure from previous versions and nothing illustrates this more than the new album display mode. The headlining feature of this display is the new view style that visually matches the track listing to the album’s cover art. The result is an attractive display of textual information that seamlessly integrates with the album’s artwork.
“After using iTunes for...
IDEKit is a framework designed to make it easy to add programmer friendly...
– CodaFi/IDEKit · GitHub
October 2012
4 posts
Old blog archive at last →
I exported the old Thought Palace WordPress blog posts from MySQL and wrote a little Ruby script to massage them into Jekyll format so I can host them on Github. Here they are — yes, even the apricot jam recipe.
The theme is kind of lame, and there are probably some formatting glitches and definitely some missing graphics, but the text is there.
futureperfectindustries asked: Any chance you'll be uploading your archive to this site? "The Lost Lesson of Instant Typing" was a great piece and I was looking for it again to share with someone.
Galuca Icons Project →
Galuca is a special project to develop FREE high-quality, high-resolution icons for iOS, Android and Windows Phone apps.
Galuca is aimed at helping professional and freelance developers when designing and choosing stunning icons for their apps with minimum time and no cost.
All Galuca project’s icons are designed, developed and distributed freely according to Creative Commons...
September 2012
1 post
August 2012
6 posts
A successful Git branching model » nvie.com →
In this post I present the development model that I’ve introduced for all of my projects (both at work and private) about a year ago, and which has turned out to be very successful. I’ve been meaning to write about it for a while now, but I’ve never really found the time to do so thoroughly, until now. I won’t talk about any of the projects’ details, merely about the branching strategy and...
I took a quick look at the Tent docs.
My first thought: if we didn’t have...
– Brent Simmons
It's Not A "Country Club"
I guess it was time for Twitter to remind app developers once again who their daddy is, or something like that. I find that this year I don’t have much left to say about the slow-moving ongoing #twitpocalypse. This time it’s pushed me into another of my periodic purges where I stop using Twitter altogether. Maybe this time it’ll be permanent.
I’m unsure how to feel about...
Commit Message Generator →
Suggested usage:
git commit -m `curl -s http://whatthecommit.com/index.txt`
TouchDB/iOS beta 4 candidate →
After all the fixes of the past two weeks (and a few new features too), it’s time to release a new beta of TouchDB. Here’s a candidate build, including a new build of CouchCocoa to go along with it.
https://github.com/downloads/couchbaselabs/TouchDB-iOS/TouchDB-0.931.zip
https://github.com/downloads/couchbaselabs/CouchCocoa/CouchCocoa-0.931.zip
Notable improvements since beta...
Interesting new UNIX commands/binaries in OS X... →
“pgrep” in particular is really useful; I will have to remember it.
July 2012
6 posts
TouchDB In A Nutshell →
I’ve started writing a comprehensive guide to TouchDB. It will be suitable for newbies, assuming no experience with CouchDB, and going all the way from database principles, to linking the frameworks into your app, to writing code using CouchCocoa (or Ektorp, if someone wants to write the Android sections!)
It’s still very incomplete: right now it only goes as far as initializing the...
Latency: The New Web Performance Bottleneck... →
If we want a faster browsing experience then reducing the round trip time (RTT) should be near the top of our list. Or, as Mike Belshe put it: more bandwidth doesn’t matter (much).
Great article. We have enough bandwidth for most stuff, even on mobile devices; it’s latency that hurts (especially on mobile devices.) This is a great argument for apps that cache data locally — the...
There is one clear lesson from Digg’s sale: the technology that powered a...
– Alexis Madrigal, in The Atlantic
the eero programming language →
Eero is a fully binary- and header-compatible dialect of Objective-C, implemented with a modified version of the Apple-sponsored LLVM/clang open-source compiler. It features a streamlined syntax, Python-like indentation, and other features that improve readability and code safety. It is inspired by languages such as Smalltalk, Python, and Ruby.
FUCK YEAH.
I will be checking this out for...
June 2012
5 posts
Falsehoods programmers believe about time →
infiniteundo:
I have repeatedly been confounded to discover just how many mistakes in both test and application code stem from misunderstandings or misconceptions about time. By this I mean both the interesting way in which computers handle time, and the fundamental gotchas inherent in how we humans have constructed our calendar — daylight savings being just the tip of the iceberg.
In fact I...
Conduit (an open-source library for iOS) →
JS to Objective-C… and back again
DIYConduit was created to address three pain points present within many iOS applications that rely on UIWebView:
Communication from Javascript to Objective-C
Communication from Objective-C to Javascript
Handling custom HTTP headers between multiple requests
DIYConduit simply wraps these three pieces of functionality into a nice little...
CUDA/OpenCL implementations of password crackers can leverage the massive amount...
– Coda Hale, How To Safely Store A Password
Apricot Jam Recipe →
People are still looking for the apricot jam recipe I had on my old WordPress blog. I do still hope to resurrect all of its content, but for now I can link to a snapshot of the recipe. (I had to look it up myself, as I’m about to make some jam today…)
Here’s my family recipe for apricot jam, handed down through generations. One generation, really — my mom got it from a pamphlet put...
May 2012
7 posts
Damien Katz: Stabilizing Couchbase Server 2.0 →
My coworker (and CouchDB architect) Damien Katz writes about recent progress on Couchbase Server 2.0. I’ve been helping out on this a bit lately, primarily with optimizing and cleaning up the new “CouchStore” engine. CouchStore is basically the core B-tree infrastructure of CouchDB, rewritten in C. It’s been fun learning my way around the code (mostly written by Aaron...
Essentially everyone, when they first build a distributed application, makes the...
– Peter Deutsch, The Eight Fallacies of Distributed Computing
(I see a lot of mobile app developers falling prey to #1 and #2 especially, building apps that block on HTTP requests (at startup, even) and/or won’t work at all when their server is unreachable.)
Peer to peer synching with TouchDB →
Sven A. Schmidt wrote a nice blog post showing how to do peer-to-peer syncing with TouchDB, by enabling the HTTP listener and using Bonjour to advertise it and discover other devices to sync with.
MYCrypto on GitHub →
FYI, I cleaned up MYCrypto a bit (enough to get it to build successfully in Xcode 4.3) and mirrored it to GitHub.
Looking at Go again →
I’m taking another look at the Go programming language, especially now that there’s a very nice interactive tutorial on the website. I read some of the docs when it was first announced in 2009(?) and thought it had some nice features but the lack of real OOP turned me off. Nor did I feel that the world needed yet another programming language.
I’m revisiting it because Dustin...
MYNetwork is now on GitHub too →
Thanks to Hg-Git, there is now a Git mirror of the MYNetwork repository. It’s got the whole revision history and everything! It’s trivially easy to push to GitHub as well as Bitbucket, so I’ll be keeping both of these up to date.
Speaking of which, I just checked in some minor cleanup to keep up with the times, such as fixes for compile issues that the newer Clang compilers...
Hg-Git Mercurial Plugin →
Mercurial plugin that lets you pull from and push to Git repositories. This will be handy for mirroring my Bitbucket repos (MYNetwork, etc.) to GitHub.
April 2012
6 posts
Apple Computers [sic] is a famous example: it was founded by (mostly Republican)...
– David Graeber, “Debt: The First 5,000 Years” (chapter 5)
Um … wow. This is one of the most jaw-droppingly factually wrong statements I’ve seen in a long time. It’s easier to list what’s right about it — ”Apple”, “computer engineers”,...
it should be a syntax error to define method names that can’t colon-align...
– @rentzsch
[Forget namespaces — this is what Objective-C really needs!!!1]
I can’t even say what’s wrong with PHP, because— okay. Imagine you have uh, a...
– “Eevee”, PHP: a fractal of bad design
4 tags
Wanted: A Sane Subset Of C++
TL;DR
I want there to be a well-defined small subset of C++ that is sufficient for writing large maintainable structured code (i.e. it has features like classes and exceptions), but does not allow all the bells and whistles that tempt C++ programmers into writing unreadable, unmaintainable and inefficient code (i.e. pretty much everything else.)
C SUCKS!
At the moment my work project...
How to tell if your Mac is infected with Flashback →
Basically just two “defaults” commands to verify that you’re clean. Although if you use WebKit based apps other than Safari to browse, like NetNewsWire, it’d be good to check those two in the same way as you check Safari in step 1.
March 2012
12 posts
iExplorer →
Mac/Windows app that lets you browse the filesystem of a docked iOS device. This is really useful for looking at the data files of an app you’re developing (all of them, not just the Documents folder), but it also lets you access media like the music and photo libraries. Useful, and free!