All posts filed under “Technology

Flocking icons

When I was a kid, and because I was that sort of kid, I remember watching an Open University programme that explained emergent behaviour: that huge whirling flocks of birds and impossibly dazzling, twisting shoals of fish might seem complex, but each individual was following a couple of deeply simple rules about movement and maintaining a particular distance from others. I was particularly struck when some crude computer graphics demonstrated this; the simple points following these rules and moving through a 3D volume, big white pixels on a bulging CRT, did indeed look exactly like flocking animals as they wheeled and bunched and flowed round obstacles. The idea of emergence is one that I kept thinking about in the decades since, that from very simple rules awesome and seemingly unknowable complexity can arise. viagra no rx

Anyway; I was thinking about it again yesterday as I was using the iPhone’s turn-by-turn directions when driving; it’s not an example of emergence as such, but it suddenly occurred to me that the algorithm by which Maps decides when to hide and show labels and details – which are constantly shifting and changing as you move – probably has at its heart a flocking behaviour that governs optimal information density and stops labels crashing into each other. can buy viagra over counter boots

<img class="alignnone size-full wp-image-554" src="" alt="" width="1334" height="750" srcset=" 1334w,×169.jpg 300w, http://chrisphin prix de viagra×432.jpg 768w,×576.jpg 1024w” sizes=”(max-width: 1334px) 100vw, 1334px” /> where to buy viagra in sydney

cialis 20 mg 12 compresse


I tried a VR headset for the first time the other day. It was ‘just’ a Gear VR, and the scenes I was shown (by Keith, whose it was) weren’t even especially dramatic; the first was a pano shot outside the LCC. And I could totally see the pixels of the screen a few centimetres from my eyes. And I was aware there was dust and hairs on the lenses, which of course stayed in the same place no matter where I pointed my head. And yet.

Within five, ten seconds, the real world had dissolved almost completely away. Keith, in meatspace, said something and I turned to reply, and was hit with a quietly vertiginous feeling when of course he wasn’t there in my field of view. He then loaded a virtual art gallery, and again, that vertiginous feeling as I turned, saw a doorway, and started to walk towards it. I didn’t actually even take a step, but I’m completely sure, had I been strapped to monitors, that you would have seen subvocalisation-style indicators – a muscle twitch here, a slight inclination there as my body prepared to shift its weight – that I had for a split second started the process of propelling myself towards the completely fictional doorway.

In other words: I was struck – really quite viscerally struck – that while simultaneously I had all the usual cues that told me I was using a computer, and that I was looking at something not real, something about the fluidity of the head tracking and the particular gullibility of the mind when it comes to this kind of simulation made me override those instantly. It was a strange experience, and one that made me think: if this is what VR looks like now – now when you can see the edges and when you can’t move and when what I tried is still pretty low-end and niche – and yet even in this comparatively nascent state it can remove you so convincingly from the real world, then by all the gods VR is going to be deeply seductive by the time my six month-old daughter is grown up.

Calculating appointment slots using Numbers

I have the honour of being an associate lecturer at the LCC, and a job I had to do yesterday was work out one-to-one tutorial slots for my class of 32 students. We have a total of six hours for these, and I needed to divide the time up equally between them and generate a list of times for the appointments. Rather than mucking about with bits of paper or manual calculation, here’s how I did it in Numbers; it’s likely Excel is similar,* but I haven’t tried it. In the screenshots for the guide below, I’ve hidden the first couple of columns, as they contain sensitive data – the one name showing in the formula is fake – but otherwise this is live.

Appointment slots tutorial 01

01: In cell C2, I enter the start time, 13:00, and set the format for columns C and D to time. Then click in cell D2 and type ‘=’ to switch to formula mode, click in C2 to say you want to use the value from whatever’s there, then type ‘+’ because you want to add time to it, then start typing ‘DURATION’.

Appointment slots tutorial 02

02: Because we know we have six hours and 32 pupils, I can have Numbers do the maths for me rather than having to work out how many minutes that is for each, dealing with fractional minutes and rounding errors. Click the Hours lozenge and type ‘(6/32)’ so the calculation is done for you – Numbers replaces the slash with a proper division symbol 😍 – and leave the other lozenges. You could replace them all with ‘0’, but there’s no need to.

Appointment slots tutorial 03

03: Now since we know when the first appointment ends, we know when the second starts. Click in cell C3 and type ‘=’ and then just click in D2. (You could get fancy and introduce buffers here with additional duration values, but I didn’t need to.)

Appointment slots tutorial 04

04: Now click D2 and hover over the bottom edge of the cell. Note the little yellow blob that appears halfway along, then drag this down the full length of your To column. Release, and it will populate them all with duration values based on the value in the cell immediately to their left, in column C; they’ll all just be duration values at this stage rather than times because they don’t have a start time to calculate from, but we’re about to change that.

Appointment slots tutorial 05


05: Now do the same thing in cell C3, which will fill down the formula that says ‘for this cell’s value, look at the cell one to the right and one up’. This will give the formulas you copied into column D a figure to calculate from, and so those time values will now complete as well.

There you go. Quick, easy, exportable. You could probably get even smarter with the ‘(6÷32)’ bit if you wanted to keep thing more dynamic, holding the value for the number of hours in another cell and referencing it, and calculating the 32 automatically with a Count formula, but this was enough for me.

* Numbers’ formulae operators tend to work almost identically to Excel’s, which is handy when trying to work out how to do something through Googling, in part because there’s far more material for Excel, but also because dear god, Apple, calling your spreadsheet app Numbers is not SEO-friendly.

Yo’ Watch’s so slow it thinks it’s last Thursday

Using apps on the Apple Watch, even with native watchOS 2 apps, is so slow that I have time to launch an app on the Watch, grow bored waiting for it to show the information I want, pull my iPhone out of my pocket, launch the same app, get the info, tap around a bit for more info, get distracted by the telly, put phone down, glance at Watch to see the time, and have to quit out of the still mutely spinning app I launched in the first place.

And yet I still love it – because for me at least it’s not about ‘launching apps and doing things with them’ like on the iPhone, but about glancing at the time and other useful snippets of information, rich and timely notifications, and short, Siri-issued commands. Sure, I’d like it to be faster for apps, but the fact that it’s not doesn’t make it a bad product – for me.

How and why I use the text expander system built into iOS and OS X

Built into OS X and iOS for a while now has been the ability to define text expander shortcuts, so that if you type ‘omw’, for example, the system will replace it with ‘On my way’. It’s handy, and what’s more so long as you’re signed in with iCloud, all the shortcuts you define will be available on all your Mac and iOS devices. I use it a lot, often as a way of easily typing emoji and Unicode; yes, you can use the character palette in OS X and the emoji keyboard in iOS for this, but they are slow compared to just bashing in a short string of characters, and with the latter you don’t get access to Unicode characters at all. Here are some of the shortcuts I have set up:

Text expander shortcuts

One thing you’ll notice is that all the ones on this screen start with two slashes. That’s to make the string unique to this task, so that if I just type ‘no’ for example, I won’t find it’s been autocorrected to №. Of course, I could instead have chosen a different string to trigger the replacement, one which I wouldn’t ordinarily type such as ‘nosymbol’, say, but I want always to keep the trigger string short and easy to remember, otherwise what’s the point?

The choice of a double slash is deliberate. I got the idea originally from Craig Grannell, but if I remember correctly he leads with ‘[[’, and while that’s fine, the bracket symbol is two levels down in the iOS keyboard, and since I want to use these shortcuts everywhere – and since this is all about saving time – I’ve found this to be a more useful solution.

I don’t just use these shortcuts for typing symbols, though. As you can see, I use them as a quick way of typing out my email address or phone number – useful in forms if AutoFill is playing up – and there are some phrases I use often which have shortcuts that are hidden off the bottom of the list; because for these I can easily use trigger strings that aren’t real words, they don’t have to have the leading double slash.

You could go even further. If, for example, you do a tech support job, rather than typing hurried and terse emails to users, then, because of course we all know that most problems are solved with a handful of solutions, you could set up ‘tioaoa’ to expand to “In many cases, problems like this can be solved simply by restarting the computer; try choosing Restart from the Apple menu at the top left and see if that fixes it. Of course, if it doesn’t, please do let me know”. You could construct complete template emails or Slack messages this way, or just create a few jigsaw piece-like phrases that you can stitch together to save yourself tens of thousands of keystrokes.

So that these phrases do autocomplete in OS X, make sure in Edit ▸ Substitutions ▸ Text Replacement is checked in whatever app you’re using to enter text. Oh, and I’ve just added ‘//submenu’ to my list so that I can easily type ‘▸’; this is an always-evolving process!

Comparing the iPhone 6 and 6s as cameras

Macworld asked me to write about how the iPhone 6s compares to the iPhone 6 considered solely as cameras. In other words, how much better is the 6s’s camera than the 6’s?

It was a hugely fun thing to write. Well, it was logistically a complete pain in the arse as it had to be turned around quickly, and on a weekend when I thought I’d be able to give my wife a break from wrangling our sometimes fractious baby daughter I was instead haring all over town taking photos then locking myself away for snatches of time in my office to try to analyse the shots and marshal my thoughts into a coherent narrative.

But when I eventually turned in at 2am early on Sunday morning, having completed a first draft, I was buzzing. It’s a really simple thing, but it was so lovely to have the opportunity – thanks, Susie! – to set out with an open mind, take a bunch of carefully-planned sample shots and footage, and then sit down, sort through it all dispassionately, and have the rewarding experience of seeing original conclusions and judgements emerge which I’m confident in and which I think are genuinely useful.

It’s quite long – and boy, do I fret about writing flabby prose; I hope my editor friends won’t be secretly thinking I could easily have cut it in half – but there’s a tl;dr version at the end if you want to skip straight to that. Set aside 10–20 minutes and have a read; I’m proud of this one.

Another reason to buy Apple’s ‘s’-generation iPhones

I am sometimes quite dim, and so it took me a while to realise that Apple’s focus on the strength of the “7000 Series aluminium” used in the iPhone 6s was probably tacitly – not explicitly; never explicitly – addressing ‘bendgate’. This, the discovery shortly after launch that the iPhone 6 could deform with enough pressure applied along its length, was mostly a PR problem for Apple rather than an actual problem for its customers, but that’s why using PR to counter it this time round makes sense.

This, though, prompted another thought, building on what John Gruber recently wrote about how the every-two-years ‘s’-generation iPhones are the ones to buy, and it’s this: s-gen buyers effectively have had their phone’s design beta tested by millions of users, over trillions of hours of use, generating tens of thousands of data points in Apple’s support infrastructure, and this means that Apple has the opportunity to correct flaws in the original, non-s variant of that design.

You could argue that there shouldn’t be flaws in the first place, and you can be damned sure Apple tests thoroughly, exhaustively, both in the real world and with mechanisms designed to mimic extended periods of use, but I suspect there’s just no substitute for millions of users actually, really, properly using a product when it comes to revealing areas of weakness.

Here’s another example: some iPhone 6 users have been affected by the front-facing camera gradually moving – or presumably more accurately, being knocked and nudged – off centre, revealing a (harmless) crescent moon shape off to the side. That’s exactly the sort of thing that I can imagine easily fails to surface during internal, prerelease testing, but now Apple has enough reports of it, it can in theory use that information to correct it with the iPhone 6s.

This whole theory is bunk, mind you, if the lead times for design and manufacture are so short as to make it impossible to incorporate changes within the annual cycle Apple releases phones on. I just don’t know; it seems really short to me, but, from a position of ignorance, it strikes me as not out of the question, if a revealed flaw is sufficiently severe.

Hyper-personal watchOS 2 apps

Imagine you were immensely rich, and you lived a hundred years ago. Imagine you wanted to be able to know, at a glance, at any time, how immensely rich you were – your net worth. I could be wrong, but I think it probably couldn’t be done; merely gathering never mind collating the data would take, what, hours? Days? Imagine you wanted to have that data available on your wristwatch. Imagine the infrastructure that would have to be developed, never mind the mechanical machinations involved in displaying it. Your immense wealth literally – probably – couldn’t buy you what you wanted.

If today you are immensely rich and want to know, at a glance, at any time, how immensely rich you are, you could have a developer create a bespoke Apple Watch app just for you that gathers information in real time, collates it, and presents it as a complication.

And the thing is that you don’t even have to be immensely rich. If you have a strong and unique enough need for a small snippet of information to be always updated and always available, it’s not ridiculous to commission a dev to create a Watch app for you that does so. What a hundred years ago no amount of money could buy, today a small amount of money can easily buy.

A Watch is a less weird thing to strap to your body than a watch

Watching – lol – a TV programme last night, I clocked – lol – that the presenter was wearing a regular watch. And in the way of things, like when you say a word over and over and it starts to sound utterly alien, my mind started thinking how odd it was that we spent hundreds of years with the time – and only the time – strapped to our bodies. Yes, it was and is useful, and I know the story of train travel forcing standardisation of time and so on, but it’s one of those ‘if an alien came to Earth’ things; why is knowing the exact time – for a given value of ‘exact’ – so important to you Earthlings that you strap it to your body so it’s with you at all, as it were, times?

Contrast this with the Apple Watch, which, yes, tells you the time. But also tells you if it’s going to rain, when to take your pizza out of the oven, what your friend thinks of your new haircut, where your nearest hairdresser is, when your next haircut is, and so on. It’s so much less weird of a thing to have strapped to your body, so much less weird of a thing to glance at, simply because it’s so much more capable and flexible.

(Now the phrase ‘strapped to your body’ is now starting to sound weird.)

How to set the size of Finder windows, and other tips

John Gruber draws my attention to a post on Macworld by the redoubtable Glenn Fleishman wherein he tries to solve a reader’s problem about getting Finder windows to open at a consistent size and location.

I read the trick for doing this many years ago (though where I can’t remember), and it’s always worked; it’s a little simpler than the suggestion Glenn follows. (And yes, you could argue as Gruber does that the fact that no less a man than Glenn doesn’t know this suggests it’s far too hidden and therefore broken a behaviour, but I’m here to solve this problem for you rather than bellyache.)

To have Finder windows in OS X open at a consistent size and location, open a new Finder window, resize it to how you want, then, and this is the important bit, close it again before you do anything else. Just open the window, resize and reposition it, then close it. Don’t click icons inside it. Now, subsequent new windows will be at the same size and position.

Here are a couple of bonus tips I always use. The first is that as well as resizing and repositioning the Finder window itself, you can also change the width of the Sidebar and the columns in column view – I always default to column view – and these will be remembered too. The Sidebar will actually snap to width of the widest thing listed, which can be handy. To adjust the column size, hover over one of the vertical dividers and drag; so far, so obvious. The extra little tip is that if you hold ⌥ then all columns resize at once. You can do both these adjustments on the new window you open above to set the default size and position.

Second, because I am the way I am, I like my windows to be neat and central. You can do this by, when you open your new Finder window to set the position, first dragging it up to the top left corner of the screen, allowing it to be as high up as possible and actually overlapping the left edge of the screen a little. Now click the green button at the top left of the window while holding ⌥ so that the window snaps to the top left of the screen, drag the bottom right corner right down to the bottom right of the screen, then grab one edge of the window while holding ⌥ and ⇧ to resize it down proportionally; you might need to release ⇧ at some point to get a nicely balanced window, but the joy is that it will now be right in the middle of the screen, every time.

Finally, remember that you can set which folder a new Finder window opens with in the General tab of Finder’s Preferences. I have this currently set to my main work folder, containing sub-folders for all my clients, but when I worked on a magazine I had it set to a particular folder into which I’d drag aliases for all the current stuff I was working with. Some aliases – to folders on the server, say – never changed, but some were replaced every month as I’d turn my focus to a new issue. This approach meant – and means – that whenever I hit ⌘N in Finder, I get immediately shown the most relevant current stuff, and because I’d have followed the earlier advice above, the window is in the right position, is the right size, and is perfectly centred.