Automagic Asset Generation For Apps

Between the iPhone (non retina, retina, 3x), iPad (non retina, retina, and pro), and Watch (2 sizes), generating an icon for all those things necessitates no less than 26 images. I have been using a custom Automator script to generate them all through a service that accepts any image as an input, which grew quite big.

As I was updating it, I thought it might be a nice thing to do to let my fellow sufferers have it. So, if that is something you think you might have a use for, feel free to grab it. As a matter of course, it works for me, but I make no promises for your workflow. Just drop me a line if you want to say thanks, make modifications you think might be useful for others, or throw curses at me for having released that just as you finished yours.

It uses no dependancies on libraries or custom applications, by the way.

Download XCAsset Automagic Generator right here!

Mood : working
Music : Griffin House

[Rant] Collaboration on Code

It so happens that we just found a bug that plagued us for 6 months, in the form of a commit that ignored completely the existing code in favor of a copy/paste from an internet source (I assume).

Now, let’s get one thing out first. I really really don’t mind having stack overflow code in my source. It has, over the years, established itself as a reliable way to fix thorny issues, or at least find pointers, and is probably todays numero uno origin of most code written by new programmers. That’s fine. Better than fine, it’s totally rad to have a community help students and people exploring new fields of our wonderful pitfall-laden world.

The second thing I want to point out is that I have worked freelance for 16 years. That should tell you my teamwork leaves a lot to be desired. I know that.

Now, every now and again, I still have to work with existing code, being updated while I work on the project. That’s fine too. However, successful collaboration, especially on code, relies heavily on communication, and prepwork.

So, without further ado, the Cardinal Rules of Team Code Editing (at least when I’m involved):

  • Thou shalt have a clearly defined “ownership” system. What parts of the code are you responsible for? What parts has someone else in charge?
  • Thou shalt have a clear way to communicate the changes thou art making. No, commit logs aren’t enough. At least not on their own.
  • Thou shalt always check thrice as much when changing code thou doth not have ownership thereof. If you “fix” something in someone else’s code, you’d better be pretty bloody sure you understood how the owner made that piece work.
  • Thou shalt notify the owner of the code of thy changes. Email, Slack, IM, Skype, I don’t care how.
  • Thou shalt make sure your changes art reversible. Possibly by having separate commits for each piece of the project that is owned by a different author.
  • Thou shalt not update critical pieces of thy project that are tied to a specific setup. Kind of an off the cuff unrelated item, but next time I have someone update the friggin project file with their own heavily personal paths, I’ll ‘git rm -rf’ everything. Be warned.

I know it sounds like a rant from a totally pissed lunatic, but beyond the anger, I actually believe these are sensible (and scalable, even if you have different layers of ownership) rules that would make everybody’s life better if thoroughly applied.

Feel free to add your own in the comments.


I have professed my love for BBEdit multiple times, and to this day I have never seen a better tech support.

@krugazor Happy Monday! Were you able to sort this out? We’d still love to hear from you: .


It started with an innocuous question on Twitter, and as usual, BBEdit’s team answers everything, with simple, clear and sometimes humoristic answers.

May Barebones live forever.


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…

%d bloggers like this: