Oak For Life
Elke 3 minuten sterft een kind aan de gevolgen van diarree. Malaria, aids en mazelen samen eisen zelfs een minder hoge tol. Daar krijgen wij het schijt van en daarom storten we de december-opbrengst van Oak gewoon door naar Music For Life.
Het jaareinde nadert, hoog tijd weer voor de gezamenlijke strijd van Studio Brussel en het Rode Kruis. Dit jaar binden ze met de opbrengst de strijd aan tegen diarree, wereldwijd doodsoorzaak nummer 1 bij kinderen jonger dan vijf.
Met drie glazen huizen wordt dit een memorabele editie waar veel over gepraat zal worden, IRL en op de social media. En net daar kunnen we helpen!
Oak is de snelste en eenvoudigste manier om een Tweet te versturen vanop je iPhone. Elke cent die Oak in december opbrengt gaat integraal naar Music For Life.
Download Oak in de App Store en Tweet sneller dan ooit tevoren. Handig als je dringend naar het toilet moet. Of beter: kan.
Leuke Deals
Samen met Countdown ontwikkelden we Leuke Deals en de Franstalige tegenhanger Chouettes Affaires, websites die je interessante kortingen en aanbiedingen laten ontdekken.
Countdown is een gevestigde waarde als aanbieder van loyaliteitsprogramma’s, op Leuke Deals verzamelen ze de beste promoties in verschillende categorieën. Ben je steeds op zoek naar koopkrachtverhoging? Blijf dan als eerste op de hoogte van actuele deals via e-mail, RSS, Facebook of Twitter.
De meest recente deals springen meteen in het oog op de homepage. De redactie van Leuke Deals zet steeds enkele aanbiedingen in de kijker en stelt ze wat uitgebreider voor. Wie op zoek is naar specifieke kortingen kan bovenaan een categorie kiezen of het zoekvak gebruiken.
De redactie voorziet via de back end elke aanbieding van een woordje uitleg en een afbeelding. Elke deal beschrijft hoe je van de korting gebruik kan maken.
Als je op een aanbieding wil ingaan klik je onderaan op de ‘Vind ik leuk’-button. Vervolgens vul je je naam en je e-mailadres in, en tenslotte ontvang je een persoonlijke voucher.
Door de integratie met Facebook hoef je je niet apart te registreren bij Leuke Deals: je meldt je gewoon aan op je Facebook-account om een voucher te kunnen genereren. De aanbieding verschijnt dan ook op je profiel en kan zo opgepikt worden door je vrienden.
We zijn bij 10to1 nogal fan van social media, de combinatie met Facebook maakte het voor ons dus extra leuk om onze tanden hier in te zetten.
Het team van 10to1 dacht met ons mee om de beste technische keuzes te maken voor het project. We kwamen tijdens het traject een aantal moeilijkheden tegen die steeds met de nodige creativiteit werden opgelost.
Voor ons was het een Leuke Deal: de samenwerking verliep vlot, de communicatie was steeds open en constructief, en de prijs was correct voor de geleverde kwaliteit.
Peter Plettinckx, Countdown
Core Data Versioning
Every time I have to do a small (read: very simple) migration in an iOS-project I have to dive into Google to find out how it works. I practically never get to it anymore, but I finally decided to write a post about it on this blog.
Migrating what and when?
I only use migrations and version models when an application is already used in production. Core Data will not automatically update its database when you change something in it. The app will just crash… And I don’t think that’s what the user wants. The app won’t always crash: sometimes the changes just aren’t executed and there will occur a problem when you try to call a method related to the changes.
A new version
Go to Editor > Model Version in order to create a new version of your Core Data Model. Choose a name and select the Model you want to use as the starting point, this will be the database you currently use in the production app.

Now that we’ve created a new version we can just apply some changes to it. It’s just a copy of our old xcdatamodel file.
The last thing we have to do is set this version of the Core Data Model as our default version. In your project navigator select the .xcdatamodeld container in which the 2 versions reside. Open the Utilities pane on the left and select the File Inspector. Here you can change your Current version of your model.

Simple mapping
The mapping model is the place where you tell Core Data how to handle model changes between 2 versions. You don’t always need a mapping model, when you add or remove a column/model for example. But when you want to do more complex migrations like renaming a column or filling the added columns with new values, then this is the way to go.
Add a new “Mapping Model” file to your project, and follow the steps to complete the creation.

In this model you can see all the Entity Mappings with the changes between the 2 versions.
Here is an example on how you rename a field (name to fullName) and connect the data between the 2 Core Data Models:

After the migration the field will be renamed, and the data will be preserved.
Custom mapping
When we want to do a bit more advanced mapping, we’ll have to subclass NSEntityMigrationPolicy in order to get the result we want.
In the next example we will autofill the newly added field (companyName) with a default value ‘10to1’.
Create a new file called CustomPhotoMigration that subclasses from NSEntityMigrationPolicy and add the following code to the implementation class. You can choose the name of the file, doesn’t really matter.
- (BOOL)createDestinationInstancesForSourceInstance:(NSManagedObject *)instance
entityMapping:(NSEntityMapping *)mapping
manager:(NSMigrationManager *)manager
error:(NSError **)error {
NSArray *_properties = [mapping attributeMappings];
for (NSPropertyMapping *_property in _properties) {
if ([[_property name] isEqualToString:@"companyName"]) {
NSExpression *_expression = [NSExpression expressionForConstantValue:@"10to1"];
[_property setValueExpression:_expression];
}
}
return [super createDestinationInstancesForSourceInstance:instance
entityMapping:mapping
manager:manager
error:error];
}
Once the file is created you’ll have to tell the mapping model to use our custom policy. Go to your .xcmappingmodel file and click on the entity mapping you would like to customize. In the Mapping Model Inspector pane on the right, just fill in the class name of your custom policy. In our case this will be CustomPhotoMigration.

This should auto fill the companyName field on every existing record with “10to1” the next time you run the app.
For the record: you don’t have to run a script or something like that to perform the migration. Just run your application and it will be executed for you.
10to1 stelt voor... Bob!
Hoe lang ben je al bij 10to1?
Sinds 17 januari 2011, ik ben hier begonnen zodra ik afgestudeerd was.
Wat is je rol hier?
Tot nu toe heb ik het vaakst gewerkt aan projecten in Ruby, maar ik develop ook voor Android en iOS.
Waar heb je al ervaring opgedaan?
Dit is mijn eerste job, mijn stage heb ik gelopen bij een hostingbedrijf. Ergens halfweg mijn middelbare schoolcarrière ben ik beginnen programmeren en toen ik twee jaar geleden met Ruby on Rails begon wist ik: “Dit wil ik gaan doen.”.
Wat is het leukste dat je al hebt gedaan tot nu toe?
Ik mocht al twee keer naar het buitenland voor een project, dat was heel leuk. De teamdrinks op vrijdag zijn de max. En algemeen is het geweldig dat we hier de kans en de tijd krijgen om nieuwe dingen te leren.
Welke 3 blogs check je regelmatig?
Daring Fireball en PeepCode bekijk ik geregeld, maar sinds ik gestopt ben met RSS-feeds te volgen lees ik vooral dingen die ik op Twitter zie voorbijkomen.
Wanneer is je werkdag of -week geslaagd?
Als er goede feedback van de klant komt. En als aan het einde van de week alles op mijn ToDo-lijst klaar is en vlot werkt zoals het moet.
Waarom werk je eigenlijk bij 10to1?
Omdat 10to1 doet wat ik wil doen.
Welke vraag had je hier nog willen beantwoorden?
Ja zeg, vragen bedenken is jouw job he!
Wat is je favoriete film-quote?
“Rustig aan jonge, zo doe ik altijd TV’s optille.” uit New Kids Turbo.
Wat zou je geworden zijn als je geen developer was geworden?
Tot voor kort was ik er rotsvast van overtuigd dat ik F1-piloot zou worden.
Wat is je favoriete keyboard shortcut?
CMD-alt-eject.
Werkvormm
Type: webapplicatie
Opdrachtgever: Werkvormm vzw biedt laagdrempelige trajecten aan om mensen toe te leiden naar de arbeidsmarkt.
Omschrijving: Deelnemers kunnen gereedschap ontlenen uit een centraal magazijn om te gebruiken tijdens hun opleiding of werkervaringstraject. Het registreren en beheren van al dan niet uitgeleend gereedschap verliep moeizaam en niet altijd even foutloos.
De inventaris van het magazijn kan efficiënt beheerd worden via een webinterface. Het ontleenproces wordt geautomatiseerd zodat het vlotter loopt en minder ruimte voor fouten laat.
De applicatie
Werkvormm kan via de webapplicatie alle items beheren die de deelnemers in het magazijn kunnen ontlenen. Als er een nieuw item wordt toegevoegd aan de databank, krijgt dat een uniek identificatienummer. Per item wordt er een barcode gegenereerd die op dat stuk gereedschap geplakt wordt.
Als een deelnemer gereedschap wil ontlenen of terugbrengen naar het magazijn, hoeft de magazijnverantwoordelijke enkel de barcode te scannen, en het systeem registreert of het item ontleend/teruggebracht is en door wie.
De applicatie kan rapporten genereren, en de status van elk stuk in het magazijn is op elk moment op te vragen.
Reactie van Werkvormm vzw
Werkvormm werkt met laaggeschoolde en anderstalige medewerkers. We waren dan ook op zoek naar een heel gebruiksvriendelijk uitleensysteem. De ploeg van 10to1 is volledig in dit opzet geslaagd.
Meer nog, de samenwerking verliep op een zeer leuke en efficiënte manier en geheel volgens de opgestelde offerte. We kloppen zeker terug aan voor een volgend ICT project.
Erwin Lauriks, Werkvormm vzw
- Page 4 of 16
- Newest articles
- Newer articles
- Oldest articles
- Older articles




