Conifer Productions

From ideas to apps. From mobile to global.

Learning Clojure

About one year ago I wrote a multi-part tutorial on Clojure programming, describing how I wrote a small utility called ucdump (available on GitHub). Here are links to all the parts: Part 1: The Clojure REPL Part 2: Definitions Part 3: Higher-order functions Part 4: Logic Part 5: Project However, Carin Meier’s Living Clojure is excellent in many ways. Get it from O’Reilly (we’re an affiliate): My little tutorial started with part zero, in which I lamented how functional programming is made to appear unlearnable by mere mortals, and it kind of snowballed from there. Read more →

Ohjelmistot monilla kielillä

Ohjelmistoyrittäjä, tiedetäänkö sinun yrityksessäsi miten tehdä sovelluksia, jotka on helppo sovittaa eri kielille ja kulttuureille? Lokalisointi on ohjelman käyttöliittymässä esiintyvien tekstien ja kuvien sovittamista eri kielille. Sen tekevät yleensä käännöstoimistot eri toimeksiannosta kun ohjelma alkaa olla valmis julkaisuun. Pelkkä tekstien käännättäminen ei kuitenkaan riitä, vaan ohjelmisto pitäisi laatia alusta pitäen sellaiseksi, että käännösten hallinnointi on luonteva ja toimiva osa ohjelmistoprosessia. Lisäksi ohjelmiston sovittaminen moniin eri kulttuureihin vaatii muutakin kuin sisällön kääntämistä: esimerkiksi päiväykset ja kellonajat sekä luvut ja rahasummat pitää esittää kohdemaan tavalla. Read more →

Formatting numbers is easy

When you have some numbers that you need to show in your user interface, you shouldn’t just stick them in a string using whatever old library function you happen to have. Especially printf in C, toString in Java, and others like these are only suitable for debugging, because they have no idea about how to format numbers properly according to the user’s regional settings. The ways to write numbers have differences across languages and countries, especially with the characters used to separate the whole part and the decimal part, and also with regard to how large numbers are grouped to make them easier to read. Luckily you don’t have to figure out the details yourself.

Instead of traditional programmer-style functions, use the convenient API methods provided by your platform. They do all the heavy lifting and work out the details for you. For example, in iOS you use NSNumberFormatter class from the Foundation framework. Since iOS 4.0 it has offered a very nice way to get a locale-specific representation of a number so that it honors the current user settings. NSNumberFormatter has a class method called localizedStringFromNumber:numberStyle:, so you can use it without even creating an instance of the class.

Read more →

Summer Specials 2012

It’s summer in the Northern Hemisphere, and at Mobile Monday Tampere tonight we are launching our Summer Specials 2012 offer for developers: Free one-hour visit to your application project Free half-day introduction to internationalization Get either one or both! See our Summer Specials 2012 page for terms and conditions. For more information, to schedule a time and to secure your seat, contact us. The theme of tonight’s Mobile Monday Tampere is multi-platform development, which is exactly what we do: if your project is based on iOS, Android or Windows Phone, we can advise you on how to make it world-ready. Read more →