Blog Tags: 

Why I love programming: a crude theory of mind

I've been programming a bit today and I am enjoying myself and focusing for hours at end, which has lately been next to impossible for me when working on other things (e.g., website design).

It's made me think about why I'm having such a hard to reproducing the focus and satisfaction I feel when I'm programming when I'm doing non-programming stuff.

Fact is, I've noticed I find it much more difficult to get in the zone when I'm not programming. I feel slow and unproductive (compared with development) and that leads to low morale and avoidance/procrastination feedback loops.

Why parallel programming is hard

Implementing Cloudtask took more time than I had planned due mainly to the challenges of parallel programming, which I hadn't done that much of before. Also, parallel programming really is inherently far more difficult than serial programming.

In my mind there are three major challenges:

Blog Tags: 

How to get the bone

Sometimes working on big projects can be frustrating. I think that's mainly because it's easy to get so immersed in detail that you lose sight of the big picture. A big project tends to break down recursively into sub-projects, and sub-sub-projects that you only realize are necessary after the "direct approach" turns out to be not a shortcut but an illusion, something that starts out looking like a shortcut and turns out to be a dead-end or actually a very long way around (e.g., fast short term results that are unsustainable in the long run). Then you have to turn back.

Blog Tags: 

Drupal Rules in a nutshell

In a nutshell, Rules is a visual programming tool. Instead of writing code as a block of text, you configure the desired behavior via a GUI that guides you through the setup of "rule sets" which are basically stored procedures that define conditionals and actions to execute, and triggering those rulesets from various canned events.

Rules sets can can call each other immediately (watch out for infinite loops), schedule each other (or themselves) to be called later, etc.

Blog Tags: 

Some spam bots are human

Out of curiosity I've taken a look at what kind of spam is now getting through our automated defenses. I did a little digging and confirmed a long held suspicion.

In a nutshell, I've caught a 100% human spammer and thus verified that indeed there are people in China who's job it is to post comment spam on random websites.

The attack came from 120.43.13.81, a Chinese IP.

On Jan 12th 8:53:02 he first came to our site from Google. He was searching for:

"post new comment Create new account site:.org"

Landing page:

Parallelize - a simple yet powerful high-level interface to multiprocessing

When I was developing Cloudtask, I discovered none of the interfaces in the Python multiprocessing module were powerful enough for my needs so I had to roll my own. The result is the generically useful multiprocessing_utils module in turnkey-pylib which from my totally subjective perspective provides a far superior interface to parallelization than the built-in multiprocessing interfaces.

Blog Tags: 

Basic self-documenting ReStructured Text example

For a few years now I've been using ReStructured Text for nearly all of my documentation needs and I'm loving it.

It was originally invented for Python documentation which is how I originally discovered it. As devoted fans we use it for pretty much everything. Documentation, e-mails, even legal documents!

In fact, most of our blog posts, including this one was originally written as e-mails in ReStructured text which can be automatically converted into HTML.

Blog Tags: 

Negotiating payment as a contractor (issues, tips)

Last week I shared the advice I gave to a friend who was quitting his day job and wanted to do more freelance/contract work. This week I'll share a bit of practical wisdom on negotiating payment that I figured might be useful those of you who are just getting into contracting.

The problem: contracting clients will often ask you to quote fixed bids for contracts.

Potential issues:

Blog Tags: 

Self-experimenting with Nootropics (AKA smart drugs)

A month ago I posted a summary of my Nootropics meta-research. Today I'll share some subjective results from my self-experimentation so far.

Blog Tags: 

Advice on breaking into freelance consulting, contract work, standard rates, wages and billing practices

Not too long ago, a friend told me he was quiting his day job to try going out on his own as a freelance consultant/contractor and asked for some friendly advice regarding wages and billing practices.

I may not have been the ideal person to ask, as I had never worked in the exact market my friend was going into. On the other hand, in my twenties, a few years back I did work as a computer security consultant.

Pages