Positive life changes can only happen when I am able to choose when and how I work, what I work on, and who I work with.
Making a micro web service for processing and resizing images.
Algorithms are thoughts, chainsaws are tools, and the triumph of the cyborg composer.
Treating the entire visual interface of a program as data input to another program that modifies the original behavior.
Found this waiting in a Textmate buffer...
ditaa is a small command-line utility written in Java, that can convert diagrams drawn using ascii art into proper bitmap graphics.
Why do we call programming languages “languages”? What is missing from the literary traditions of programming?
A quote from Raganwald: “The correct response is not calling arbitrary features ‘magic’. It’s programming. That’s all.”
After recently discussing the widely underestimated importance of visual programming, it’s great to see research like Visual Programming Environments For Kids.
Software development is hard. A lot of people like the idea of couching this difficulty in a form of explanation by analogy. The most common comparisons are generally the most facile and glib, and…
The world wide web has led to a massive day-to-day proliferation of crap jokes that would have been unthinkable 30 years ago, and the programming culture is no exception. Interestingly enough though,…
Interesting research is emerging that explores new programming models for mesh connected mobile devices. The experimental language called AmbientTalk is a prototype based object oriented language…
In the last 30 years neuroscience has given us great insight into the workings of the human brain and as more information emerges, it becomes clear just how out of step with reality conventional attitudes…
Unit testing can have productive side-effects that manifest in the emergent design of classes and API's. Testing objects in isolation from their interactions in the larger code-base pushes you to…
Refactoring reveals purpose. It sets you up to be ready for the next move.
"Agile" has balkanized, and the individual cults have - in some cases - become religions that are just as bad as the things they intended to replace. But at the outset, the interesting thing about…
For many years, Object Oriented discourse has been far too constrained by language oriented thinking.
It just wouldn't be fair to ask where are the women in open source and criticize open source usability without providing some kind of summary of how we can do something about it. Humanized…
Python 3.0a1 release hits the network, with significant backwards incompatible changes. The best way to describe this is a shedding of the snake's skin, sloughing off a whole bunch of weird ambiguities…
Raganwald dissects the misguided metaphor from a software process perspective. I have come to believe that these kinds of problems are even more prevalent in the web development world than in…
There's a tide of opinion suggesting that PHP is threatened with extinction as standard hardware begins to favour widening multicore processors. This would be a fair argument if PHP was a general…
It's not a showdown between Javascript and Ruby, it's a race towards bioware. Language oriented programming is not a new idea, but it has taken a long time to become a significant influence on…
“The only thing that everyone seems to agree upon is how stupid all the other programmers are.”
The playing-field of Twitter annotations and the challenge to the developer community.
A new skillset for interactive designers, who must now take direct evidence into account with every design variation that affects user flows.
There’s still a lot of important dialogue about the standard features of modern programming languages that hasn’t happened yet.
The Twitter API Wiki has one of the most practical explanations I’ve seen of some of the issues involving Unicode normalization.
I feel like my web skills have been swept out from underneath me. You go away for a few months, and come back, and everything has changed so much.
Results of a survey of over 3000 developers, regarding their approach to OO software design.
Donald Kunth – “I remain convinced that the patent policy most fair and most suitable for the world will regard mathematical ideas (such as algorithms) to be not subject to proprietary patent rights.”
If crap code is an unavoidable problem for the software industry, maybe the solution lies in trying to change the nature of the code, rather than trying to change the people who write the code.
People think that it is strange that someone like me who knows so much about programming languages chooses to program in PHP so frequently. They're probably right, and I appreciate where…
Simpletest is quite possibly my all time favorite PHP library. The way it's put together greatly appeals to my sense of object oriented design symmetry and the high level API is absolutely fantastic…
This is an introductory guide to the theory and praxis of parsing and lexical analysis. All this material is a necessary basic foundation to the study of parsing.
Y-Combinator has published a list of ideas they'd like to see new startups tackle. Aside from obvious criticisms (we're already well familar with Paul Graham's penchant for proselytizing certain forms…
For quick and dirty programs... Paul Graham has released an early version of Arc, his ongoing project to develop a Lisp dialect suiting a minimalist taste in programming style. Never one to shirk…
Learning how to forget the properties of programming languages themselves, and think about the context of what is actually written in these languages.
I fear that I'm beginning to sound like a stuck record by now, but I can't help attempting to push back against that particular form of inertia that has infected our discipline. First I saw this,…
MQL must be one of the most overused acronyms in todays technology field, including (but definitely not limited to) such specificities as search/analytics, automated trading, and molecular substructure…
Builder is a completely declarative library which makes it easy to generate XML from a cascade of Ruby method calls. But it's not completely smooth sending: working on an Atom feed, I ran into a…
Why is one person who cares about children learning to program, if Cut Holes In Shoes And Get A Mask is anything to go by. Many people would think this is completely insane, or merely reinventing…
I hate to agree with grouchy old Dijkstra, but unfortunately now it's impossible to deny: BASIC is what killed my ability to be a truly great programmer. Dijkstra was right, GOTO completely rots your…
John Rose talks about implementing support for tail call optimization in the JVM. I've been waiting for this one, as in my mind, it has long been one of the biggest holes in the leaky dike of…
Finalists for the New Zealand FullCodePress team have been selected, and I'm one of them! Final selection is tomorrow. Good luck to everyone who has been nominated, especially the other two selected…
The real reason why nobody is right, even when they are.
“Lots of unit tests are a symptom of an architecture with complex and highly stateful abstractions, which, in turn, are a sign of a low quality architecture.”
It’s hard to explain the collision of forces and events that has occurred over the past several months.
Jon Udell’s literary appreciation of the Olson/Zoneinfo/tz database is flush with small details that will delight history geeks.
Watch the cascade from Ruby is Unix to Python is Unix to Perl is Unix.
_why has gone. Left the intarwebs. And in the process, he tore down the house, and leveled the garden.
Software industry zealots focus far too much effort on debating methodology for methodologies sake.
Many people have wondered about the lack of support for nested URLs in a basic install of the SilverStripe CMS. There is a forthcoming module that will enable nested URLs as plugin functionality,…
Usually when I write spontaneously here, it's because a topic or idea has been percolating in my mind for a while, and I will stumble across a reference or blog post that provides the necessary…
Dog Bites Man Month. Or does it? The criticism is sharp, but I'm not sure how deep it cuts. Anecdotal evidence is no less valid than statistical reasoning if it is widely understood to be advice that…
I always enjoy reading interviews and discussions with Larry Wall - a brilliant language designer whose unconventional wisdom and humor makes his explanations of complex and chaotic issues seem…
How can we close the perceptional gap that lies between two dimensional maps and the surrounding three dimensional reality? Enkin is a technology aimed at the Google Android platform that…
Frameworks are the shining stars of this current era of web development and there are many benefits for designers and programmers to focus technical solutions around a given framework as a platform…
Equality is a mathematical concept, not an object concept. It's contextual. So, what is the correct implementation of equals? Sometimes it's no implementation at all. On the Beautiful Code…
Ruby programs can be written in unicode, meaning that you can label a real lambda. Once, when working on a school assignment to build a simple regular expression interpreter, I had a similar flash…
PHP is flawed. Deeply, immensely so. I first discovered this over a year ago, when I made the naive assumption that PHP 5.1 had fixed a lot of the language level failings of its predecessor. Because…
Since Ali posted 20 things I learned at FullCodePress, I thought I'd chime in with my own observations from the perspective of being programmer for the Code Blacks.
In Hearing without listening, 37Signals screws up, then admits what they did wrong and how they fixed it. In the end, it's just a matter of several weeks downtime before the application is working…
Not for the weak of heart, but the prospect of wrangling the call database with Django is a tantalizing hint of things to come...
As I am now starting to discover, many of these ideas were originally considered by Alan Kay, and summarized at OOPSLA in 1997. If the true shape of object oriented programming is qualitatively…
Forget Everything You Ever Knew about Date-Time Handling in PHP...