bitwix

Tangential comments about Software Development

Friday, August 26, 2016

How to avoid pair-programming

I always hope to find ways to help my colleagues enjoy their working day. I know that sometimes, some of them wish not to pair-program with me. Here's a helpful checklist of gentle ways to stop that happening, for those who don't wish to just tell me.

  • Be left handed - it's too inefficient to move the mouse from one side to another all the time
  • Don't use a mouse - any other pointing gadget will do, as I hate them all
  • Use a dark colour scheme - I can't read that navy blue on black look
  • Upgrade your IDE - if F12 or Ctrl-Shift-F10 don't work for me, I'm off
  • Work from home - never been know to fail

How to avoid pair-programming

I always hope to find ways to help my colleagues enjoy their working day. I know that sometimes, some of them wish not to pair-program with me. Here's a helpful checklist of gentle ways to stop that happening, for those who don't wish to just tell me.

  • Be left handed - it's too inefficient to move the mouse from one side to another all the time
  • Don't use a mouse - any other pointing gadget will do, as I hate them all
  • Use a dark colour scheme - I can't read that dark blue on black look
  • Upgrade your IDE - if F12 or Ctrl-Shift-F10 don't work for me, I'm off
  • Work from home - never been know to fail

Friday, July 29, 2016

A new way to delete code

It's a complicated set-up to the punchline, but stay with me.

We have several iOS frameworks now, and use Carthage to update a dependent project.

The Carthage update takes ten minutes (why?).

We need to work on four related projects, so someone has the clever idea of a symbolic link of each project's Carthage folder to a shared one.

All is well. So we add shared project code to the shared location, with its own GitHub repo. Xcode neatly pushes and pulls from both.

We work on project A, including the shared code, while having project B open to check it still compiles.

After a long morning, just before lunch, we notice that project B has uncommitted changes. Assuming they're just fiddles, we discard all changes.

If you get the joke, insert your sound effect here. I favour the mechanised EH-EHH from the Family Fortunes TV show.

If you aren't sure what happened: the discard was on the shared code, being the morning's changes on project A.

TLDR: to err is human, to really screw things up needs a computer

Monday, June 27, 2016

Why my three-ball juggling is improving

Back in the day, when compiling and linking C programs took a couple of minutes, everyone in my company was able to juggle three balls competently. A neurologist I met found this interesting - she said it was a deliberate exercise of a different part of the brain.

Then for a few years computers were fast enough that there wasn't time to juggle.

Now, Apple's Xcode and Swift are reintroducing the need for juggling. The AppStore requires screenshots in multiple formats. Kudos to the fastlane.tools for snapshot, which automates it. But it's not exactly instant. Here are screenshots from the beginning and end of the process:




8 minutes and 10 seconds, for one screenshot across six devices.

Or maybe Apple just want me to buy a faster Mac?

Tuesday, May 31, 2016

A day without learning

Normally, I take the view it's all about learning. If a colleague asks "what would happen if?" my response is "let's find out".

Recently, a day before a client demonstration, we had an idea for an app, and realised we could probably build it in a day. Sleeves were rolled up, the spike investigation was completed, and we started building. Suddenly, I became intolerant of tangents and digressions. With an eye on the clock, I just announced that such fripperies could wait for another day.

And we built our app. 11am to 4:30pm, fully functional all the way down to the icon. I was delighted.

On reflection, I realised that we had learned something important: that we could build that, "soup to nuts", in a day. Counter-intuitive conclusion: you can learn by banning learning.

Saturday, April 30, 2016

GitHub: ugly name, beautiful concept

With each passing month, I like GitHub more and more.

I  like the three clicks of Project > Source Control > Commit, but also the command line to see the state exactly.

Releases and Carthage play well together for me.

I love the searching of project code. It's much faster than doing the same on my Mac Mini.

Heavens, I even nearly created a branch the other day. I prefer to work in small steps so branches aren't needed, but I've heard that GitHub does them well. So the time isn't far away.

The only problem is the name. What's its cute diminutive, do you think? Hubby? Gitbo?

Thursday, March 31, 2016

Saved by the yellow bar

First, let's remind ourselves that XCode can't hold a candle to Visual Studio. Agreed? Good.

But praise where praise is due. The other day the little yellow warning bar did pick up an error that might have escaped me. Here's the screenshot:


Nice one, Cupertino.

Monday, February 29, 2016

My bookshelf


In chronological order:

The Hunting of the SnarkLewis Carroll1876
The Mythical Man MonthFrederick P. Brooks, Jr.1975
PeoplewareTom DeMarco & Timothy Lister1987
SPIN-SellingNeil Rackham1987
The Design of Everyday ThingsDonald A. Norman1988
Code CompleteSteve McConnell1993
Data MiningIan H. Witten, Eibe Frank & Mark A. Hall1999
Extreme Programming ExplainedKent Beck2000
Why Not?Barry Nalebuff & Ian Ayres2003
Extreme Programming Explained 2nd EditionKent Beck & Cynthia Andres2005
JavaScript: The Good PartsDouglas Crockford2008
The Art of Agile ProgrammingJames Shore & Shane Warden2008
Information is BeautifulDavid McCandless2009
ReWorkJason Fried & David Heinemeier Hansson2010
R CookbookPaul Teetor2011
The Lean StartupEric Ries2011

All recommended. 

The bookcase itself is a 1960 design by Vitsoe. Also recommended.