Architecte et expert technique freelance

Il aura fallu un peu plus de 3 ans pour que la solution de la « serrure connectée » soit autonome, et je la laisse entre de bonnes mains.

Il est temps pour moi de proposer mes services à de nouvelles structures. Avec 10 d’expériences de conception et de développement et 10 ans d’architecture applicative et système ; mes connaissances couvrent un spectre assez large : analyse et conception (IAF), développement backend (Java, PHP), développement mobile (Android et IOS), définition et mise en œuvre d’infrastructure cloud (AWS, python), sécurisation (TLS, X509…), expertise système linux (debian, ubuntu), cryptographie (AES, RSA), conception de protocole et contrat d’interface (M2M), customisation d’Android (AOSP), amélioration des performances des systèmes existants (Mysql, MariaDB, nginx, analyse de complexité…).

 

Je suis joignable par email : chrystophe.vergnaud [at] gmail.com pour discuter de votre futur projet ou d’une problématique en production.

Générer une CSR pour une paire de clé/certificat existante via le terminal sur IOS

Cette note peut être utile si vous devez renouveler votre certificat de push ou de distribution sur Apple et que l’outil Keychain rejette la demande de création de CSR sur le certificat existant.

Le contournement est d’utiliser le terminal et les bonnes vieilles commandes classiques :

  • exporter la clé privé dans un fichier p12 : depuis l’outil keychain, faireun click droit sur la clé ou le certificat et sélectionner « exporter », on considère le p12 s’appellera ma_cle.p12
  • Basculer le p12 en pem:
    openssl pkcs12 -in ma_cle.p12 -out ma_cle.pem
  • Générer la csr:
    openssl req -new -key ma_cle.pem -out ma_cle.csr
  • et voila, il suffit d’importer la CSR sur apple developper.

IOS – background task and precise geolocation

When trying to work in background with IOS, things get tricky particularly when it requires a good precision update (when the significant update stuff is not enough).

first thing to do : start a background task :

- (void)applicationDidEnterBackground:(UIApplication *)application

{

    bgTask = [application beginBackgroundTaskWithName:@"MyTask" expirationHandler:^{

        // Clean up any unfinished task business by marking where you

        // stopped or ending the task outright.

        [application endBackgroundTask:bgTask];

        bgTask = UIBackgroundTaskInvalid;

    }];

 

    // Start the long-running task and return immediately.

    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

 

        // Do the work associated with the task, preferably in chunks.

 

        [application endBackgroundTask:bgTask];

        bgTask = UIBackgroundTaskInvalid;

    });

}

Extracted from apple dev center: https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html

while the task is running the didUpdateLocation event is correctly handle by the application.

you have only 180 seconds to finish the task before being killed by the OS. use the backgroundTimeRemaining to see how much time is left. Make sure you have finite task and you have the correct background mode setup to avoid being killed before.