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:

However, Carin Meier’s Living Clojure is excellent in many ways. Get it from O’Reilly (we’re an affiliate):
Living Clojure

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. Hope you like it and/or find it useful!

 

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. Myös aineiston lajittelu tehdään eri kielialueilla hyvin vaihtelevin tavoin. Monilla ohjelmistoilla on edelleen haasteita siinä miten muita kuin tuttuja latinalaisia aakkosia syötetään ohjelmaan ja käsitellään.

Internationalisointi eli ohjelmiston kansainvälistäminen ei ole vaikeaa, mutta se pitää tehdä jo varhaisessa vaiheessa ohjelmistoprojektia, jotta vältytään tekemästä isoja osia uudelleen. Ei taloakaan tehdessä aleta pystyttää seiniä ennen kuin pohja on kunnossa.

Conifer Productions Oy:n ohjelmiston kansainvälistämisarvio auttaa löytämään piilevät ongelmat, jotka tulevat esiin kun on tarpeen saada ohjelmisto lokalisoitua. Teemme arvion siitä mitä pitää korjata, ja tarvittaessa myös opastamme ja koulutamme.

Tunnemme niin mobiiliohjelmistot kuin perinteiset pöytäkoneiden käyttöjärjestelmät ja Internet-sovelluksetkin. Hallitsemme käyttöliittymät ja asiakasohjelmistot, mutta tiedon liike päätelaitteen ja pilven välillä on meille myös hyvin tuttua.

Lue lisää Services-sivulta, ja ota yhteyttä!

 

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.
Continue reading

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.