Every day there is a new post decrying Apple's tasteless use of skeuomorphism (you know, making
calculator programs look like calculators and note-taking apps look like notepads?).

I totally agree that skeuomorphic apps are ugly and stupid. I said that in 2-thousand-freaking-four.
But just looking at the latest abomination (it seems to be a sound recorder that looks like a ree-to-reel, of all things) and
sneering is worse, because that means you don't have any ideas of where design comes from, and
I say this being a person with as much taste as a walrus.

Design comes from people. There is a grander design behind that specific design, which you could
call a guideline, or a philosophy, or in some cases a zeitgeist. For 50 years,
there has existed a consensus about cleanliness of design being a good thing. It
started in some specific niches while others went in other directions (car fins!) and later
each area of design has moved, like a pendulum, towards cleanliness or "specialness".

Once you go "clean", and everyone goes "clean" there is very little you can do to
make your product distinctive, and a tension is created to make it less clean and
more "special".

Google's entry page used to be absolutely clean. A place to enter text, and two buttons. Now
it has a menu with 11+ items, 3 buttons, and an icon. Apple's OS9 was ascetic, and now
OSX is a sea of bouncy colorful things shouting at you.

The skeuomorphism and other indications of overdesign, of complication, in apple's apps
is not unintentional, it's an intentional attempt at making the applications special,
appealing, and distinctive. It is ugly and awful, but it is so intentionally, because
the very concepts of ugliness and awfulness are just a vague consensus among the users,
and Apple surely felt confidence that users, accostumed to Apple's role as kings of
taste, would change their taste to fit. And as far as I can see that is exactly
what has happened.

Users are not the ones complaining about Apple's design style, other designers are
complaining. That signals, to me, a disconnect between the taste of designers and the
taste of users. And honestly, the taste of designers is only of vague academic
interest to companies trying to sell product.

Apple's hardware stays minimalistic because they have successfully branded it. If
you see a squarish slab of black glass with a button, you think iPad or iPhone depending
on size, not "generic minimalistic touch device". On software, that did not work. There
was nothing interesting or innovative, or distinctive in minimalistic design for applications.

So they started with colorful gumdrops, moved onto brushed metal, and then into fake
stitched leather, because they are trying to find something that can be as successfully
and powerfully branded as "silvery slim wedge with black keys" is now.

Designers apparently seem to believe there is certain specific "cleanliness" that is
the hallmark of "good" design, and that ripped paper and other skeuomorphic
affectations are signs of bad taste. That is silly and ahistoric. Cleanliness
is just a fashion, reel-to-reel digital recorders are an attempt at creating
a taste. It's ambitious, and respectable.

If I were to describe the plot, it would make me sound insane, which
is a good thing. So, I will just let the book trailer do the work:

Have you ever read Douglas Adams and wished the plot started making some
sense? Have you ever read Terry Pratchett and wished there was more than
one excruciatingly stretched joke per book? [1]

Well, if you have, I recommend you give Year Zero
a try. It's hilarious, it has a plot of sorts, and has at least three
different jokes in it. A working knowledge of lame 80s (and 70s) music
helps but is not horribly necessary.

Since I decided to stop being a troll (I am trying!) I noticed that people
take what I write waaaaay too seriously. This post is a gentle reminder that I have posted more about
silly stuff than about serious stuff. MUCH more.

So, if you ever find yourself thinking "Hey, Roberto seems to be making an interesting point", first
think about the twin bananas. If what I wrote still looks interesting, proceed.

This may cause some palpitations in some friends of mine who laugh at me
for using kwrite, but it really is not. Any time you spend configuring,
choosing, adjusting, tweaking, changing, improving, patching or
getting used to your editor is time invested, for which you need to show
a benefit, or else it's time wasted.

Let's look at SLOC, which while discredited as a measure of programmer's
productivity, surely does work as a measure of how much a programmer
types, right?

Well, estimates of total code production across the lifetime of a product
vary (just take the SLOC of the product, divide by men/days spent),
but they are usually something between 10 and 100 SLOC per programmer
per day. Let's be generous and say 200.

So, 200 lines in eight hours. That's roughly one line every two minutes, and
the average line of code is about 45 characters. Since I assume you are a
competent typist (if you are not, shame on you!), it takes less than 20 seconds
to type that.

So, typing, which is what you often tweak in your editor, takes less than
15% of your time. And how much faster can it get? Can you get a line
written in 10 seconds? Then you just saved 8% of your day. And really,
does your editor isave you half the typing time?

How much time do you lose having your eyes wonder over the sidebars, buttons,
toolbars, etc?

So while yes, typing faster and more efficiently is an optimization, it may
also be premature, in that, what the hell are we doing the other 80%
of the time? Isn't there something we can do to make that huge chunck of
time more efficient instead of the smaller chunk?

Well, I think we spent most of that time doing three things:

Reading code

Thinking about what code to write

Fixing what we wrote in that other 20%

The first is easy: we need better code readers not editors. It's a pity that
the main interface we get for looking at code is an editor, with its constant
lure towards just changing stuff. I think there is a lost opportunity there
somewhere, for an app where you can look at the code in original or
interesting ways, so that you understand the code better.

The second is harder, because it's personal. I walk. If you see me walking while
my editor is open, I am thinking. After I think, I write. Your mileage may vary.

The third is by far the hardest of the three. For example,
autocomplete helps there, because you won't mistype things, which is interesting,
but more powerful approaches exist, like constant running of tests suites while you
edit. Every time you leave a line, trigger the affected parts of the suite.

That's much harder than it sounds, since it means your tools need to correlate your
test suite to your code very tightly, so that you will see you are breaking stuff
the second you break it, not minutes later.

Also, it should enable you to jump to the test with a keystroke, so that you can
fix those tests if you are changing behaviour in your code. And of course it will
mean you need tests ;-)

Which brings me to a pet peeve of mine, that editors still treat the file
as the unit of work, which makes no sense at all. You never want to edit
a file, you want to edit a function, or a class, or a method, or a constant
but never a file. Knowing this was the sheer genius of ancient Visual Basic,
which was completely ignored by all the snobs looking down at it.

So, instead of tweaking your editor, get me a tool that does what I need please.
I have been waiting for it since VB 1.0. And a sandwich.

warning

This post is 99% lies, but I want to hear the arguments against it. If I tell
you now it doesn't count as a real lie, I have learned from financial press ;-)

As I have mentioned in half a dozen posts already, I spent the last weekend at PyCamp 2012.
But what I have not written about is what exactly it was, and why anyone would want to attend
one, or maybe organize one. So that's what this post is about.

PyCamp was organized by PyAr, the Python Argentina community. PyAr is a very special bunch
of people, who are completely amateur, and do everything for love and fun. Since PyAr
is a very special group of people, the things PyAr causes, inspires or creates are
special as well.

So, since a few years ago, what happens is someone finds a place with bunk beds, a large
room, perhaps somewhat isolated, that provides meals, and is cheap (it's as hard as it sounds)
and rents it for a long weekend. Then everyone is invited to chip in for the rent money.

This year, 4-days, all inclusive, costed roughly U$S 100. Sure, it's not exactly luxury
accomodations, but it does what it has to do, which is give us shelter and protect us
from wild animals.

Thus, you end up with a few dozen nerds with computers, one of them is great at setting
up wireless (Joac!), one is the MC (Alecu!), one helps around (Facundo!) one is the
liaison with the location (Pindonga!) and so on, the work is spread around, and
we have time and company to hack.

So, on the first morning, everyone proposes what he would like to work on. Those proposals
are voted by the public, and those with more votes are assigned slots (5 a day), where they
will be the main focus of attention.

So, what happens if your proposal is not voted? Well, you either find a proposal you like,
and join it, or you just do your thing. Because this is not a democracy, this is anarchy,
the votes are just a way for everyone to know what people will be doing, and to find
places to fit in if you want (BTW, there is a situation in LeGuin's The Disposessed which is
so much like this, it's scary).

After that, you just do what you want. You can put your headset on, and code, or mingle and chat,
or join a group, or do a bit of everything. Since meals are catered, you don't have to worry
about breaks. When the meal is ready, everyone breaks at the same time and socializes in
communitary tables.

Does all this sound as strange to you as it does to me? A bunch of grown professionals
acting like hippies. Well, it feels strange too, but that doesn't mean it doesn't feel
great. It even works great. Once you see what the others are doing, things you wouldn't
expect start looking like fun (Celery!?! Juggernaut! Android!) and the sheer excitement of people
telling you "look, I did this!" is infectious, and exhilarating.

Also, RC cars, kinect hacking, android hacking, electric guitar hacking, juggling,
monocycle lessons, a firepit, alcohol, coffee, mate, boardgames, cardgames, music,
jokes, adrenaline, huge spiders, asado, cold, vim, ninja, ping pong, robot spaceships,
people you see only twice a year if that, questions, not knowing the answers,
figuring things out on the run, getting help in that thing you have been stuck
for weeks, having the piece someone else has been stuck on for weeks, feeling
like some sort of bearded buddha and a total ignoramus in 5 minutes...

And at least I, at least this year, had a very productive weekend. I got help
from a bunch of people in things I was daunted by, I felt like an active
programmer instead of a suit, which is always nice, since I don't own a suit,
and had a great time. Laughed a lot. Made a couple new friends. Saw a bunch of
old ones. Helped a few people.

So, I would like other people to have as great a time as I had. Of course coming
to Argentina is probably not a great idea. It's an expensive trip, if you don't
speak spanish you will miss a lot, and if PyCamp gets too big it may stop being
fun at all.

But why not do something similar? Doesn't have to be about Python, you can do it
about making stuff, about programming in general, whatever. Just get a
somewhat comfortable, somewhat isolated place with a reasonable catering and
get your 50 nearest geeks there, and have a ton of fun.

I spent a long weeked at PyCamp. It was awesome. How could spending 4 days with 50
geeks hacking things and programming python not be awesome. But I was alone, because
really, my wife (a lawyer) and son (too young to code yet) would have been bored
to tears.

And I know something similar happened to a bunch of others there. Let's face it, we
geeks are getting older. While there is still an influx of young people, we old ones
are refusing to go away, and we are now married, and have kids, and leaving for
days is unfair to our families.

So, I wish there was an event where I could go and do this, while my wife could go
as well, and my son too, and there would be something for everyone. Maybe we would
not hack all day long, but just half a day. Maybe we wuold hack more games and then
beta test them on the kids.

One good thing about kids is that once you cross a certain threshold, in a controlled
environment, the need for adult monitoring decreases. In m experience, 1 kid needs
1 adult, 2 kids need 1.5, and 5 kids need .5 adults.

The board games at night would be inclusive (my wife likes role games, for example),
the juggling classes could include kids, people could work on artwork... I don't know,
do things that are not exclusively hacking. I love hacking but it's a smaller part of
my life than it was in the past.