Apple Watch par Benoit Capallere et Joeffrey BocquetCocoaHeads France
La montre sera disponible en précommande le 10 avril (soit le lendemain de cette édition CocoaHeads Paris) mais Benoit et Joeffrey sont déjà sur le coup pour nous présenter ce que l’on peut faire avec une Apple Watch, son architecture logicielle et les différences avec le développement d’une application iOS. Nous aurons aussi un retour d’expérience sur la phase de test qui a eu lieu chez Apple à Londres.
Nous parlerons de 3D Touch. Fonctionnalité empruntée à l'Apple Watch et rebaptisée lors de l'introduction de l'iPhone 6s. Jérome Morissard et Victor Carmouze nous présentera en détail le bénéfice apporté par ces nouveaux usages et comment fonctionnent ces nouvelles APIs.
CodeFlow permet de développer de façon interactive sur iOS. Le live-coding proposé par l'outil ressemble à la magie de l’injection de code par DyCI qui a été présentée à la session d’avril, mais pousse le concept largement plus loin. Jean-Luc Jumpertz, son auteur, viendra de Rennes pour nous présenter cette solution.
Apple Watch par Benoit Capallere et Joeffrey BocquetCocoaHeads France
La montre sera disponible en précommande le 10 avril (soit le lendemain de cette édition CocoaHeads Paris) mais Benoit et Joeffrey sont déjà sur le coup pour nous présenter ce que l’on peut faire avec une Apple Watch, son architecture logicielle et les différences avec le développement d’une application iOS. Nous aurons aussi un retour d’expérience sur la phase de test qui a eu lieu chez Apple à Londres.
Nous parlerons de 3D Touch. Fonctionnalité empruntée à l'Apple Watch et rebaptisée lors de l'introduction de l'iPhone 6s. Jérome Morissard et Victor Carmouze nous présentera en détail le bénéfice apporté par ces nouveaux usages et comment fonctionnent ces nouvelles APIs.
CodeFlow permet de développer de façon interactive sur iOS. Le live-coding proposé par l'outil ressemble à la magie de l’injection de code par DyCI qui a été présentée à la session d’avril, mais pousse le concept largement plus loin. Jean-Luc Jumpertz, son auteur, viendra de Rennes pour nous présenter cette solution.
Présentation par Dimitri Dupuis Latour.
Comment enrichir Xcode en fonctionnalités ? Présentation d’une petite sélection de plug-in cool et dans une seconde partie on abordera la création de son propre plugin.
La promesse de Xcode Server est de permettre de mettre en place un serveur d’intégration continue de manière très simple et rapide. Une fois en route, des tests unitaires peuvent être ajoutés très simplement. Jeffrey Macko nous expliquera comment tout cela fonctionne et ce que cela peut apporter à la qualité de votre code.
How javascript core helped PAW to move from a small app to an extensible toolCocoaHeads France
Nous avons pour volonté de donner la parole à des créateurs d'applications et nous sommes donc ravis d'accueillir ce mois-ci le créateur de Paw. Pour ceux qui ne connaissent pas encore, c'est l'outil indispensable pour tester, spécifier et vérifier des webservices. Micha Mazaheri viendra nous expliquer comment JavaScript Core Framework a permit à Paw de passer d'une petite app à un outil extensible.
Présentation et retour d'expérieuce sur node.js + AngularJS au journal Le Monde, novembre 2014.
Présenté dans le cadre d'un « apéro techno » chez Omnilog.
Le Groupe BPCE affiche de solides performances en 2013, avec un profil de risque modéré et une forte amélioration de la solvabilité.
Découvrez en détail les résultats financiers 2013 dans cette présentation.
SunTseu, evenement SalesCloud chez Oracle, Automatisez vos Ventes grâce au CRMSunTseu
Le 13 mars dernier, notre partenaire Oracle nous a ouvert ses portes et nous a fait le privilège de nous présenter en avant-première sa nouvelle offre CRM. Voici la présentation utilisée pour la nouvelle offre de marketing et sales automation.
Présentation par Dimitri Dupuis Latour.
Comment enrichir Xcode en fonctionnalités ? Présentation d’une petite sélection de plug-in cool et dans une seconde partie on abordera la création de son propre plugin.
La promesse de Xcode Server est de permettre de mettre en place un serveur d’intégration continue de manière très simple et rapide. Une fois en route, des tests unitaires peuvent être ajoutés très simplement. Jeffrey Macko nous expliquera comment tout cela fonctionne et ce que cela peut apporter à la qualité de votre code.
How javascript core helped PAW to move from a small app to an extensible toolCocoaHeads France
Nous avons pour volonté de donner la parole à des créateurs d'applications et nous sommes donc ravis d'accueillir ce mois-ci le créateur de Paw. Pour ceux qui ne connaissent pas encore, c'est l'outil indispensable pour tester, spécifier et vérifier des webservices. Micha Mazaheri viendra nous expliquer comment JavaScript Core Framework a permit à Paw de passer d'une petite app à un outil extensible.
Présentation et retour d'expérieuce sur node.js + AngularJS au journal Le Monde, novembre 2014.
Présenté dans le cadre d'un « apéro techno » chez Omnilog.
Le Groupe BPCE affiche de solides performances en 2013, avec un profil de risque modéré et une forte amélioration de la solvabilité.
Découvrez en détail les résultats financiers 2013 dans cette présentation.
SunTseu, evenement SalesCloud chez Oracle, Automatisez vos Ventes grâce au CRMSunTseu
Le 13 mars dernier, notre partenaire Oracle nous a ouvert ses portes et nous a fait le privilège de nous présenter en avant-première sa nouvelle offre CRM. Voici la présentation utilisée pour la nouvelle offre de marketing et sales automation.
Indicateur FW Invest - 2e trimestre 2016FrenchWeb.fr
Après un premier trimestre 2016 très prometteur, les investissements dans des entreprises de la Tech française ont connu une légère baisse au deuxième trimestre, avec 399,1 millions d'euros investis entre avril et juin, soit -7,7% comparé au T1. En revanche comparé à la même période en 2015, les montants investis dans des entreprises de la Tech ont augmenté de 53%.
The importation and exportation of foods by jimmy stepanianJimmy Stepanian
Has your brokerage started a new branch?? Then Send an Internet press release to reporters. These can be sent over company e-mail, mixing another elements of traditional press releases like ..preapproved quotes, with technology rich features like links to your company beautiful logo, a video
How to Break the Barriers of Office ErgonomicsFocal Upright
Discover what can happen when you challenge traditional ergonomic wisdom in your office. Designing a healthier, more engaging office is easier than you think.
The drivers of consumer value appear to have fundamentally changed, with far reaching implications for the food and beverage industry. This infographic examines these consumer-led disruptions and how they represent an opportunity, even an imperative, for manufacturers and retailers to reposition themselves with consumers and shoppers. http://www2.deloitte.com/us/en/pages/consumer-business/articles/us-food-industry-consumer-trends-report.html
Frenchweb 500 - Le classement des 500 premières entreprises de la Tech frança...FrenchWeb.fr
En 1995, un premier flot de nouveaux acteurs se confronte à des acteurs historiques, à des régulations qui visent à protéger la rente de ces derniers… le temps d'opérer leurs propres transformations. Trente ans plus tard, quelles sont les principales entreprises de la FrenchTech qui dominent dans cet écosystème ? C’est la question à laquelle nous avons voulu répondre au travers de ce Frenchweb 500.
Productivity Facts Every Employee Should KnowRobert Half
These productivity tips from Accountemps can empower you to take control of your time. Find out why your small business should save your most important tasks for Tuesdays.
Symfony2 - Un Framework PHP 5 PerformantHugo Hamon
L’arrivée de PHP 5.3 en milieu d’année 2009 a bouleversé la manière de développer des applications web. En effet, cette nouvelle version a apporté de nouveaux outils au langage tels que les espaces de nommage qui favorisent la réutilisabilité du code lorsqu’ils sont employés à bon escient. Les nouveaux frameworks de développement rapide ont aussi suivi le mouvement et reposent sur la base de PHP 5.3. C’est le cas de Symfony2 dont la version stable est prévue prochainement.
Cette présentation offre un tour d’horizon de la nouvelle architecture du framework qui s’articule autour de “bundles”, de librairies externes et de nombreux composants indépendants tels que le conteneur d’injection de dépendances. Nous dresserons un panorama des principales fonctionnalités offertes par le framework telles que la couche d’ORM Doctrine 2, le moteur de templating Twig et la gestion des formulaires. Nous nous intéresserons également à la gestion du cache HTTP, à la couche de sécurité ainsi qu’aux outils de débogage destinés à améliorer la productivité du développeur et la maintenance de l’application.
ACRA est une librairie open source, légère, facile à mettre en oeuvre et très configurable permettant aux développeurs android de recevoir des rapports d'erreur de leurs applications dans un spreadsheet GoogleDocs.
Conférence donnée à la Droidcon Tunisia 2015.
Les mises à jour OTA sont partout sur nos téléphones (ok, presque partout) mais comment fonctionnent-elles ?
Au cours de cette présentation, nous verrons :
Ce qu’est une MàJ OTA
Comment l’implémenter (exploration de code : intent, permission système, recovery, etc.)
Quelle architecture backend pour mettre en place une solution d’OTA
Windows Azure est une plateforme IaaS qui n'est pas réservée exclusivement aux application .NET. Cette session explore et explique comment déployer le serveur d'application JOnAS sur le cloud de Microsoft
Vous allez voir comment collecter des informations JSON (ou autre) venant de différentes instances d’applications mobiles sur une ferme Web, agréger ces données sous formes de fichiers dans le nuage (blobs). Vous allez également voir comment créer par script un cluster Hadoop en tant que service, comment lui soumettre un script à la SQL (HIVE) pour analyser les données ainsi collectées avant de détruire le cluster. Enfin, vous alllez voir comment récupérer les résultats (sans que le cluster Hadoop ait besoin d’être allumé) dans Excel Power Query, pour alimenter un modèle Power Pivot et visualiser le résultat sur une carte dans Power View.
Ces différentes parties sont relativement indépendantes. Elles peuvent être réutilisées indépendamment les unes des autres. Ensemble, elles constituent une solution de type cloud hybride, où des applications mobiles situées par définition à des endroits très divers envoient des données dans le cloud pour analyse avant visualisation dans les murs de l’entreprise (Excel).
Le cloud hybride, cela peut correspondre à des solutions aussi concrètes que cela !
Manuel des TP - Atelier de développement web (PHP)
Niveau : Licence informatique - L2
Auteur : Houda TOUKABRI
Bibliothèque ISET Kélibia [TPI11 : 02-01-2018]
Java dans Windows Azure: l'exemple de JonasMicrosoft
Jonas, serveur d'application J2EE, a récemment été porté par Bull, avec l'aide de Microsoft, sur Windows Azure. Au-delà de la mixité des environnements Java et Microsoft, cette session démontrera par l'exemple la grande ouverture de Windows Azure à des technologies peu habituées à s'éxécuter en environnement Windows.
Bien que Docker soit facile d'utilisation, construire une image reste un exercice compliqué.
Optimisation, layers, et sécurité nécessitent de s'abstraire des Dockerfile basiques qu'on peut trouver sur internet.
Dans ce BBL, nous verrons comment bien packager une application Spring Boot dans une image Docker/OCI.
Nous allons parcourir les bonnes pratiques préconisées par Spring, les pièges à éviter, comment bien écrire un Dockerfile pour optimiser la construction et l'image finale pour une exécution dans Kubernetes et nous verrons aussi des moyens alternatifs de construction d'images Spring Boot et l'outillage d'analyse à ajouter à votre toolbox.
Session donnée lors du Drupal Camp Lyon 2012. Présentant les différentes alternatives pour gérer la mobilité avec Drupal.
- Responsive Design
- Contextes mobiles (themes mobiles)
- Applications Natives et intégrations en Web Services ou HTML5
Thomas Levy-Mouisset (Meetic) - La puissance de débugging des app groups
Avez-vous déjà livré votre menu debug en Prod ? Nous oui, et nous avons trouvé une solution originale basée sur les App groups pour que cela n'arrive plus jamais.
Jordhan Léoture (Octo) - Asynchronous Swift
Comment simplifier et améliorer l’asynchronisme dans nos applications ?
Je vous présenterai quelques astuces afin d’exploiter au mieux GCD.
1. Statistiques de ventes des
Applications AppStore et
MacAppStore
Frank Lefebvre & Jacques Foucry
Cocoaheads Paris 14/03/2013
2. L’existant
iTunesConnect : site web et application iOS
Données agrégées après 15 jours
C’est beau mais bon...
Les applications dans le cloud
Obligation de laisser un login/mot de passe
Non sérieux, le cloud...
Récupération des données
Solution fournie par Apple (même s’ils ne sont pas
au courant)
3. Autoingestion.class
C’est une classe Java fournie par Apple
Documentation
iTunes Connect Sales and Trends Guide
Limitations
... Et si on refaisait le truc ?
4. Reverse engineering
...
String body = "USERNAME=" + URLEncoder.encode(paramArrayOfString[0], "UTF-8");
body = body + "&PASSWORD=" + URLEncoder.encode(paramArrayOfString[1], "UTF-8");
body = body + "&VNDNUMBER=" + URLEncoder.encode(paramArrayOfString[2], "UTF-8");
body = body + "&TYPEOFREPORT=" + URLEncoder.encode(paramArrayOfString[3], "UTF-8");
body = body + "&DATETYPE=" + URLEncoder.encode(paramArrayOfString[4], "UTF-8");
body = body + "&REPORTTYPE=" + URLEncoder.encode(paramArrayOfString[5], "UTF-8");
body = body + "&REPORTDATE=" + URLEncoder.encode(str1, "UTF-8");
URL url = new URL("https://reportingitc.apple.com/autoingestion.tft?");
HttpsURLConnection connection = url.openConnection();
connection.setRequestMethod("POST");
connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
connection.setDoOutput(true);
OutputStreamWriter localOutputStreamWriter = new
OutputStreamWriter(connection.getOutputStream());
localOutputStreamWriter.write(body);
localOutputStreamWriter.flush();
localOutputStreamWriter.close();
...
5. Que nous envoie Apple ?
Daily summary avec différenciation des ventes, des
mises à jour, des in-app purchases
NewsStand : abonnements et données personnelles
Données iOS et MacAppStore
Apple ne fournit que deux semaines de données
Obligation de récupérer tous les jours et de
stocker localement (+backup)
6. Format du fichier
C’est du texte Gzippé
Tab delimited
Avec les entêtes
Attention, les dates sont au format US (mm/dd/yyyy)
7. Un compte spécifique
Dans iTunesConnect, il est possible de créer des
comptes avec des droits restreints
Cela va faciliter l’automatisation
Et surtout sécuriser l’accès au compte
15. Stockage
Archivage (et backup) des fichier txt.gz
une base données sqlite3
Disponible directement sous OSX
Facile à installer sur d’autres environnements
16. Schéma de la base
product daily_summary report_date
product_id product_version date
apple_product_id transaction_type
product_sku units
iap_parent_sku customer_country
product_name customer_currency
developer payment_currency
customer_price
payment_price
promo_code
subscription_type
subscription_period
17. Le script Python
Pourquoi Python ?
Parce que pas perl !
Simple à mettre en œuvre, présent sur toutes les
plateformes
Intégration sqlite3
18. Dépendances
Python 2.7
Dispo sans problème sur OSX, ça peut être
amusant sur d’autres OS (par exemple CentOS)
Mako, pour les gabarits
Flotr2, pour le rendu
20. Ligne de commande
iTunesStats
--download config_file [--date yyyy-mm-dd]
--download-import config_file [--date yyyy-mm-dd]
--import config_file path
--report config_file
21. Fichier de configuration
Trois sections :
[iTunes] : les informations nécessaires à la
connection à iTunesConnect
[data] : les informations de stockage (fichiers tgz
et base de données)
[report] : l’emplacement des templates et le
répertoire où son stockés les rapports
22. Fichier de configuration, un
exemple
[iTunes]
username = sales@foucry.net
password = Tucroyaisquejelaisseraismonmotdepasse
vendor = 12345678
[data]
archive = /Users/jacques/its/sales
history = /Users/jacques/its/itc-history
database = /Users/jacques/its/sales/itunes-stats.db
[report]
templates = /Users/jacques/its/templates
output = /Users/jacques/its/output
23. Automatisation
Quelle est la meilleure heure pour lancer la
récupération des stats ?
La plupart du temps, c’est 14h30 UTC
Parfois il y a des ratés (serveurs surchargés par
exemple)
Et pourquoi pas toutes les heures ?
S’il n’y a rien à récupérer, on ne fait rien
24. Sur OSX
launchd
une plist qui décrit au daemon launchd comment
lancer le script et quand
26. Emplacement des fichiers
Fichier Launchd
à mettre dans /Library/LaunchDaemons
Fichier de paramètres
par exemple dans /etc/itc (ou /Library/Application
Support/its)
Les scripts
j’aime bien mettre mes scripts dans /usr/local/
scripts
27. Prise en compte par launchd
et vérification
sudo launchctl load -w /Library/LaunchDaemons/
net.correze-software.its.plist
sudo launchctl list
28. Sur un autre unix like (linux,
*BSD, Aix, Solaris, sco...)
cron/crontab
Deux posibilités :
éditer la crontab
utiliser le répertoire /etc/cron.hourly
29. Éditer la crontab
$ crontab -e
25! *! *! *! /usr/local/scripts/iTunesStats --
*!
download-import /home/jacques/its-param 1> /dev/null
2> /var/log/its_download.log
(Lancement toutes les heures de tous les jours,
tous les mois... à 25 minutes)
30. Utiliser /etc/cron.hourly
Il suffit de déposer dans ce répertoire un petit script
shell qui lancera notre script avec les paramètres
nécessaires
#!/bin/sh
if [ -x /usr/local/scripts/iTunesStats]
then
! /usr/local/scripts/iTunesStats --download-import /home/jacques/
its-param 1> /dev/null 2>/var/log/its_download.log
fi
31. Le rendu
Assuré par Flotr2 <http://humblesoftware.com/
flotr2/>
du json
un template mako
32. le json
Généré par le script its_report.py (requête sur la
base et écriture du résultat sous forme de json)
33. Le template Mako
Pour intégrer le json à du HTML++ (avec des
boucles, des variables, etc)
Génére le fichier HTML