Selected

Later Ctrl + ↑

Correcting the capture time of your photos

I prefer my photos’ metadata to include the correct capture time, regardless of which timezone it was taken in. But I would never spend time to figure out how to adjust the built-in clock on my camera. And even if that was easy, I would always forget to do it anyway.

So when I travel, I just take photos of clocks and then use those to adjust the capture time of the whole set. Usually there are plenty of clocks on transport systems, and, as you know, photos I take mainly have to do with transport. This one is from the London Tube:

Correcting the capture time of your photos

In Lightroom, I select the whole set of photos from some trip, then choose a photo of a clock (this does not void the selection), and then I set the photo’s capture time to whatever the clock displays. This makes Lightroom adjust the capture time of all selected photos accordingly.

This method is great because it does not require any discipline: you can adjust time whenever you want. A couple of days ago I needed a photo from 2005, and it had the wrong capture time. I just found a photo of a clock in that set and corrected the whole set in a matter of seconds.

Sometimes І would notice an accidental clock or watch in some photo and just glance at the capture time. Yep, it is all right with this one from Trafalgar Square:

Obviously, the ideal camera should know the time without any action on my part, as the iPhone does. Or, better, the camera should be just an iPhone dock. But this is unfortunately not the case with my Canon.

Ångström Style System for Cocoa

While developing Ångström, the unit converter for the iPhone (check it out!), Alex Babaev and I have come up with the Ångström Style System.

ÅSS (hey, why not) is a JSON-driven styling engine for Cocoa with Dropbox synchronization and shake-to-refresh. It is a great way to separate the code of the app from its look and feel. It helped me try out different aspects of the color scheme, the fonts, the spacings and, most importantly the animations, without making Alex rebuild the app every time I wanted to change something.

Playing with the text caret

One of the many things we were obsessing over in Ångström was the text caret animation:

This is an animated gif, make sure to download the app and look at the real thing.

I wanted the caret to stick out much below and above the text. I wanted it to move like an elastic and bouncy string (whatever that is). I wanted to make it stretch and squeeze, not just blink. There was no way I could explain this in technical terms to Alex. How far the line should stretch? How fast the animations should be? Who knows. I needed a way to play with all the parameters until it felt right.

So I wrote Alex a letter explaining my idea in vague terms. I asked for a way to control the length and the opacity of both the long and the short states of the caret and the transition times between them. After having played with this parameters for some time I figured out I could not make the caret behave exactly as I wanted. Six variables were not enough. We have gradually added the variables for animation easing, the delays and the caret width.

This is the final “stylesheet” for the caret, after hours of tweaking:

"cursor": {
  "showTime": 0.2,
  "hideTime": 0.2,

  "color": "@colors.textNumberColor",

  "period12": 0.4,
  "timingType12": "linear",

  "period21": 0.2,
  "timingType21": "easeOut",

  "height1": 48.0,
  "width1": 2.0,
  "delay1": 0.3,
  "alpha1": 1.0,

  "height2": 78.0,
  "width2": 1.0,
  "delay2": 0.1,
  "alpha2": 0.33
},

This fragment is actually about 3% of the whole Ångström’s stylesheet.

Dropbox sync and shake-to-refresh

The two things that make ÅSS particularly awesome are Dropbox sync and shake-to-refresh.

Moving the style variables from the code to an external file is a useful idea all by itself: I could have been playing with the parameters and rebuilding the app having no clue about Objective-C. As far as I understand, this is how Brent Simmons’s DB5 works.

But we wanted to make ÅSS a real pleasure to use (no pun intended), eliminating the need not only to rebuild, but even to restart the app. Here is how the process of refining something looked for me thanks to ÅSS:

  1. Open the app on my iPhone and go to the screen I want to adjust.
  2. Open the app’s ÅSS stylesheet from the Dropbox folder with Sublime Text on my Mac.
  3. Change the parameters in the file and save it.
  4. Shake my iPhone to see the change immediately.

So this is literally live tuning of a running app.

There is a different approach to styling: put sliders with the parameters to the Settings app during development. While this may look nice, we think it is very counter-productive. You don’t want to be constantly switching between the app you are designing and the Settings app. You don’t want to be scrolling through tens or hundreds of variables on the iPhone screen. You don’t want to struggle entering a color’s #rrggbb value on the iPhone keyboard. Sublime Text on a computer synced with the iPhone via Dropbox works so much better.

Alex has written a post on the internals of the system, check it out. It explains the architecture and features some code examples.

Left and right

One of the most used wayfinding method is a phone call. A person calls their friend and gets some voice instructions on how to get somewhere. For this to work, the person should know the left from the right.

Some people have a hard time figuring this out. Here is a sign to help them:

Ångström, the unit and currency converter

My friend and a great iOS developer Alex Babaev approached me with an idea to make a unit converter for the iPhone. What? Aren’t there hundreds of them on the App Store already? But after a short discussion it became clear to me that none of the ones that existed were good.

All the converters had stupid menus with categories and icons, as if the designers were thinking about a nice Dribble shots instead of the utility of their apps. By the time you make it through the user interface and set it up for the conversion, you forget what you wanted to convert in the first place.

So we did it our way. Our product is called Ångström:

We have started from scratch. You have a number in your head, you want it converted stat. You do not want an endless list of categories distracting you.

We ask you for a number and strive to give you the answer with as little taps as possible. Ideally, with zero taps. That is why we check out your clipboard first. We use the units from the previous convertion before you change them. We show you your unit history before you have started typing the unit. We try to guess the target unit i. e. we know that it is natural to convert feet to meters, but miles to kilometers. We learn what you convert to make better guesses over time. We keep currency rates updated, but show you approximate values when offline. We support alternative spelling of many units.

The version 1.1 has just been released. We invite you to have a look at what we have done. Ångström has been “In Review” for five days. Presumably, Apple employees were playing with the equals sign and just could not stop.

Yep, we have had lots of fun with the animations and transitions. If nothing else, this alone is a good reason to test drive Ångström. Every tap is welcome. And if you don’t feel like tapping, you can just run the app and enjoy our text caret animation for hours. For some reason, I, personally, particularly love it.

Download in the App Store for free

The free version includes most units for daily use. An advanced unit pack is available as an In-App Purchase.

London Underground voice announcements: update

Following my original post with London Underground voice announcements, reader Yaroslav Eremenko and another reader who preferred anonymity have sent me several other recordings. Now I have announcements from the Northern line, which I did not have before.

A recording of a train operator explaining a delay with a red signal, the quality is very poor:

Central line

District line

Northern line

First, trains to Edgware:

Euston, both branches:

More Bank branch to Morden. This one is at King’s Cross, the beginning is omitted:

It is notable that on the Northern line, they say “this train terminates at S” instead of “this is a L line service / train to S”. I also like the expression “This train terminates at Morden via Bank” as a shorthand for “This is a Bank branch train and it terminates at Morden”.

Piccadilly line

Victoria line

National Rail

I have updated the original post with the new recordings, make sure to check it out for my whole collection.

By the way, still no Bakerloo, Jubilee, Metropolitan, Waterloo & City lines and DLR. If you have any recording in your collection or would like to make some, do not hesitate to share them with me. Thank you!

Footnotes make blogs hard to read

Some authors use footnotes too much. This usually takes the following form:

An exciting story on a subject 1, blah-blah.


  1. Another exciting story on the same subject. Or the boring details on the subject. Or an explanation on why some of the details are not actually true and how it does not matter.

How am I supposed to read this? Does the author want me to scroll down every time I see a superscripted number to read the footnote? Or should I ignore it?

When I follow a footnote, I lose track of the main narrative. This is no surprise, for if the footnote’s content fitted the main line, it would not have ended up in a footnote, and I would not have to scroll back and forth. So when I return from the footnote, I back up a bit to get back on track. When I encounter the same footnote again, I can finally connect the dots. Not exactly a smooth reading experience.

When I ignore a footnote, I feel I am missing something. And many writers prove me right: when I finish reading and glance over the footnotes, I often find them worth reading. This makes me re-read the parts of the main text to figure out how the footnote is related to it. Then I can finally connect the dots. Not a smooth reading experience either.

Galileo Galilei’s book, a scan from the Edward Tufte forums.

In a book, where no scrolling is involved, footnotes are not as irritating as on the web. But a good designer will still avoid them, prefering sidenotes, as on the spread above. They require no meaningless numbers, you just place them beside the relevant text. This design helps a reader quickly check out whether a note is worth his attention and continue reading practically uninterrupted.

If you use the parallel narrative often, this is what you should look into. However, most of the time footnotes on the web are a sign of inconsistent writing.

Uvildy ice

Uvildy is a lake about 100 km from my home city of Chelyabinsk, Russia. In winter, it freezes over. Where there is no snow on the surface, the transparent ice looks stunning.

I have made a video today:

And also took several pictures (original size; right-click to save and use as wallpaper, if you like):

Camera: iPhone 5s.

Promo mix: Locket Rauncher

Check out my new dark psytrance / new school hard goa mix, Locket Rauncher.

I am not a huge fan of dark psy in general, but these fourty-two pieces are really great. This is very fast music, by which I mean that there is a lot going on at any given moment. So you need to concentrate to get it. If you play it in background, it will be just noise (for an unprepared ear at least).

The tracklist is:

  1. Cactus: We Love Radio
  2. Jaws Underground: Algorythme
  3. Penta: Tollkorn
  4. Skazi: Are You Still There
  5. Rev: Locket Rauncher
  6. Digital Talk: New Age Surf
  7. Benza: Duck And Cover
  8. Ocelot: Disappear
  9. Ninth Of Kin: Gravity Breaker (Inverse Axiomatics, 2012)
  10. Audiosex: Virtual Medicine
  11. Derango: Confusion is Next
  12. Gappeq: The Torque
  13. Mubali: Spacial Distortion
  14. Ocelot: Upward Spiral
  15. Toï Doï: Fonction d’onde
  16. Flyh: Sputnik
  17. Baal: No Window
  18. Syntax Error: Bitmap Bugs
  19. Kashyyyk: Charly And Ervin
  20. Gappeq: Tower Of Babel
  21. Phi: Everything Never Can’t Stop Us, Dude
  22. Jaws Underground: Johnny Got Is Gun
  23. Gappeq: Mobius Strip
  24. Slum: Sneak, Beneath My Notice
  25. Highko & Looping: Chillout (Beloochi Remix by Psykovsky)
  26. Sienis: Phinary
  27. Time Lock: Flying
  28. Crownick: Petrified
  29. Toï Doï: Saturnday
  30. Sienis: High Frequency Science
  31. Crownick: Acoustical Veins
  32. Scorb: Mutoid (Extended Version)
  33. Tamlin: Fjaqek
  34. CCL: LF-Ants
  35. Meteloids: 48 Krunchy
  36. Psykovsky: Suddenly
  37. Fungus Funk: Metropolis (Robot Empire) (Propaganda Remix by Psykovsky)
  38. Tutankhamon 9000: Lost In Luxor
  39. Psyside: Hysteria
  40. CCL: Unleash The Beast
  41. Digital Talk: Abyss
  42. Sabretooth: Smooth Hound

Enjoy the music.

No privacy in the future, deal with it

There will be no privacy in the future.

It does not matter whether you think it is good or bad. Maybe you truly believe that privacy is a basic human right and should be respected and protected. But who cares about your beliefs? I like privacy myself, so what? Technology will make this concept obsolete: there will just be no such thing soon.

When technology makes possible something people want but has side effects, first it happens, then people learn to deal with side effects. People pirate music and videos, even if copyright owners disagree. Kids watch porn, even if their parents would prefer them not to. Terrorists plan attacks online, even if others object.

Freaked out about Google Glass? Yes, it is ugly and people who think it is the future are crazy. In reality, future is when what Glass does today will be happening without Glass. People will be constantly recording live video of everything they see. The video will be instantly made available to everyone. The software will be able to do face recognition on that video (by the way, the delivery drones will also be recording video). You will not be able to stop the spread of private information. Basically, at some point you will have a 3D model of the whole world where you will be able to look at anything at any angle or distance, live. And you will be able to search it and run any analysis on it.

Everyone will be able to learn where you are and what you are doing at any moment. And where you have been. And with whom. Everyone will be able to see you taking shower and shaving your balls. They will be able to capture a video clip and share with others. You do not like it, I do not like it, but it will happen.

If you spend time trying to protect privacy with the law, you are as stupid as copyright owners spending the time to shut down torrent trackers. Future is inevitable, and you are just being in denial. When you stop technology with law, this means that you restrict access to that technology to governments and grant them the right to use violence to everyone else who tries to use it. If you let governments enforce privacy on your behalf, they will do their best to make sure you do not have access to private data, but they do. NSA will be happy.

Protecting privacy with the law is a bad idea.

Now suppose there is technology that lets your friend spy upon you having sex. Then there should also be technology to check out who has been spying. Thus, while you cannot stop someone from spying, they will think twice before risking to ruin your relationship.

To adapt to the new world, first you make sure the new rules are for everyone, then you think how to use them in your own self-interest.

You should follow me on Twitter, here

Earlier Ctrl + ↓