The Time Constant Of Computing Science

Moore’s Law be damned, my upgrade/compile/download times remain more or less constant.

I was musing about that while upgrading my 2 main computers to 10.11 and my 2 main iOS devices to version 9 (9.0.1 soon followed): my Retina Macbook Pro may be faster than all my old computers rolled into one, it still takes me roughly a day to upgrade to a new major release. Between the system itself, the apps to update, the various libraries to check etc, it is a huge time sink.

And the same goes for compilation times. It used to take me 2-5 minutes to compile my biggest project on my old clamshell iBook (time enough to fix myself a cup of coffee), and it’s still the same in 2015.

We always tend to use our devices to capacity. Drives are full (who’s ever going to need more than a gigabyte?), networks are “too slow”, projects are complex enough to take forever to build,…

I taught Android development for a week recently and the need for instantaneous results is omnipresent, even though mobile development is kind of a reset in that way : small capacities, shoddy connectivity, lack of space in general. We are so used to manipulating 40MB gifs and 1GB video files that we forget these things were science-fiction only 10 years ago. And don’t get me started on Swift compile times…


[WWDC14] Thoughts

I won’t go into details, the WWDC keynote has been covered far and wide.

  • New Look : √
  • New APIs : √
  • New ways to do old things : √
  • New Language : errrrr √

Response among the community was unanimous, this is xmas come early. And it’s true that for us developers, there a lot to be excited about. The new “official” way to communicate with other apps through the extensions mechanism is awesome, the integration of TestFlight will make a lot of things easier, especially for us small teams, and the new language will hopefully make us more productive (yay, less code to write).

There are some blurry or grey areas about these changes that will probably cause some problems, but hey, we’re Da Dream Team, right? We’ll manage.

The only thing that struck me as a slight cognitive dissonance is the fact that outwardly, Apple publicly recognizes our role in the success of the platform (huge), but kind of changes nothing in the way we are treated. I am definitely not asking for exclusive access to the thought process of Apple regarding what’s secretly being working on, I think opening up betas to pretty much everyone defuses the rumor mill, and might help get better .0 releases.

Since we are the people who make the “normals” want to get an iPhone/iPad, why is it so hard to have any handle on how we do it?

Xcode tends to get better, but there is still no way to expand its capabilities, or adapt it slightly to the way our brains handle code-writing. Third party IDEs (like AppCode for instance) that may not be perfect by any stretch of the imagination, yet still give us more flexibility, have a hard time adapting to the internals of the build process. We still have proprietary/opaque file formats for vital parts of the development (I’m looking at you XIBs and CoreData models). Cocoapods have become mainstream, but are still iffy to integrate (and might break).

For the social side of things, since WWDC is harder to get to than a Prince concert, same deal, it’s Apple’s campus, or community based (read no help from Apple whatsoever) things. Kitchens? Local dev events? Access to labs? If you’re not in California, tough luck.

So, yes. We are the main booster for the success of the platform, but we have absolutely no handle on things, in any way, shape, or form.

Am I excited that we get shiny new things to play with? Sure. Is my head buzzing with ideas? Yup.

But I am also a bit bitter that, sometimes, it feels like we’re not working together.


Time? Time? Who’s Got The Time?

As I sat down at my desk, with the clear objective to update WordPress here, I had a few revelations:

1/ I can’t update WordPress. The  PHP version on that server is too old. Half an hour wasted. And each time I try doing something with this corner of the World Wide Web, I realize it’s been almost ten years I have decided to do something worthwhile with it, and never quite found time enough to do so.

Of course, I want to project a decent image as a technophile (which I am), a cool guy (which I may be), and a somewhat successful business guy (results may vary). I also obviously want to be able to disclose information, in long form (as I’ve done here for a while, with sporadic energy), or in short form (mostly via Twitter). Combining that with information about what I could do for potential customers, what I have done for low-and-high-profile customers is something you have to do in the current Web2.0 bonanza, and something most companies, and even indies, have no trouble doing.

But I find myself facing a conundrum: I want complete control (so I need to be able to edit the pages, the CRM, and whatever else might be on the site), and I am utterly incompetent at deciding what’s best.

This is why, every time I decide to spend half a day looking around for technical solutions to my “needs”, I end up lost in unfamiliar territory. There are 3 dozens CRM systems, all requiring a boatload of dependancies. There is a plethora of CSS and whatnot design styles, none of which I could fine-tune if my life depended on it (and it doesn’t).

Sure, there are services that would do it all for me, but it would be worse, to my mind: I wouldn’t understand how it does what it does, which to any self-styled developer feels extremely weird.

At least I understand the underpinnings of wordpress pretty well. I can (and have) modified it to suit my needs. But now that this PHP requirement prevents me from upgrading, I will have to do another weird “let me play!” session. And the end result will probably be the same in the end, which is a little depressing.

Over the years, a bunch of people asked me why I had such a reluctance with web interface, and truth be told, I don’t know for sure. That might be the topic of another post sometime in the future.

Which brings us to…

2/ I have 5 blog drafts I have started and never finished. That’s right. 5 pieces of 500-1000 words I have written but was never satisfied of enough to hit the publish button.

Some geeky analysis of a book, a piece of reusable code I’m proud of, and a somewhat heartfelt eulogy that have been sitting in my (virtual) out-tray for 6 months.

I guess that speaks volumes about a definite flaw: When it concerns only me, I am not a closing kind of guy. Making prototypes and brainstorming commando-style? pschhhhhh easy. Spending 4h navigating ARM-assembly to find a bug that prevents some obscure piece of software from working? stroll in the park. Spending the necessary 4h for a personal project of mine to be finished and released? Apparently can’t be done… If you guys have any motivational tips and tricks for that, I’m all ears.

3/ However…

I am currently working on 2 projects that I really really want to see through. Unfortunately, they are time consuming, at roughly the same level as my paid gigs. That means every hour I’m working on these pet projects, I’m stealing from a customer. And given that I’m at ~120% capacity due mostly to “not enough pressuring the customers to give me what I need to move forward”, these stolen hours are just really hard to pull off.

But I’m still announcing that these two projects (an iOS application that interfaces with RT for bug/incident tracking, and a podcast with Dam and Marc) will see the light of day before the end of Q1-2012. Because we all know the end of the world at the end of aliens who think we are pathetic comes around the 2012 equinox or somesuch.

Happy holidays to everyone!


Kafka Had It Right

For people who like a twisty and completely unbelievable — and nevertheless absolutely true, I can prove it — story:

Last saturday, I got my credit card stolen. Between that time and the moment I could reach my bank to cancel the card, the thieves managed to empty my bank account to the very last cent.

On sunday, I manage to get a hold of someone in the banking system telling me they can’t do anything, including releasing confidential information such as my credit card number (no… I don’t have it… it’s printed on the CARD!) until I give them a copy of my police complaint.

I therefore go to the police, who tell me I can’t file a complaint till I have the credit card number and the offending operations on my account.

Sunday being sunday, and banks taking their time, the update of my bank statements cannot be complete before… Tuesday morning.

No problem… I don’t have a credit card, and even if I had one, I had nothing on my bank account to spend. But some things you cannot rush.

Tuesday morning, I go to the bank, get my bank statement, sweet talk someone into giving me my credit card number (apparently they are not allowed to do that), and go file a police complaint.

Armed with that piece of paper, I file the complaint with the bank, so that the insurance can kick in. Of course, no one’s making any promises as to delays.

Now, fast forward to Thursday. No worries, everything is supposedly going smoothly, all I can now do is wait for someone to take a decision, an action, or hopefully both.

And… I got a letter from the bank. I open it up expectantly, hoping for some good news.

It’s a sharp reminder that I am not allowed to have negative funds on my account and that I have to fill it up quickly, or some legal action will be taken.

That kind of a week…


Blender Memory

(this shot is when I quit the application, hence the relatively low count… it was freeing memory)

memory usage on my mac
memory usage on my mac

One word: impressive. 100 000 blades of grass + 20 000 particles of smoke on a 30 000 polys model (with a bit of subsurfacing)

It actually climbed to 3GB of RM / 16GB of virtual memory but when it’s that high, impossible to take a snapshot.

Kudos to the team for making it 64bits!