This document discusses mutation testing as a way to test code and test quality. Mutation testing involves intentionally breaking code in small ways (e.g. changing + to *) and ensuring tests catch these "mutant" versions. While code coverage measures how much code is executed, mutation testing checks that tests are thorough by breaking the code in multiple ways. The document provides examples of mutation testing and operators as well as a brief history of the technique. It notes that while time consuming, mutation testing can help identify faults that may cascade and ensure tests are comprehensive.
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.
This document discusses visual accessibility features for blind and visually impaired users such as voice over, color filters, color inversion, and dynamic types. It provides demos of these features and recommends using smart color inversion to support users with visual impairments in apps. The document was presented by David Bonnet and discusses accessibility options for the CocoHeads Nantes conference on February 15, 2018.
This document discusses how to test push notifications in UI tests, including: sending notifications through a testing library called NWPusher; handling interactions on received notifications; and targeting multiple apps like the Springboard. It provides code examples for getting a device token, sending a notification, and testing different interaction types. While useful for testing analytics and notification workflows, the document notes UI testing push notifications has limitations in only working on real devices and potential stability issues.
This document is from a talk about using Fastlane, a tool for mobile app deployment. It discusses how Fastlane can be used to continuously integrate and deliver mobile apps by automating tasks like syncing certificates and profiles, taking screenshots, uploading metadata and builds, and starting the app review process. The talk encourages contacting the organizers to participate in their weekly Wednesday tech talks on various mobile development topics.
This document discusses mutation testing as a way to test code and test quality. Mutation testing involves intentionally breaking code in small ways (e.g. changing + to *) and ensuring tests catch these "mutant" versions. While code coverage measures how much code is executed, mutation testing checks that tests are thorough by breaking the code in multiple ways. The document provides examples of mutation testing and operators as well as a brief history of the technique. It notes that while time consuming, mutation testing can help identify faults that may cascade and ensure tests are comprehensive.
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.
This document discusses visual accessibility features for blind and visually impaired users such as voice over, color filters, color inversion, and dynamic types. It provides demos of these features and recommends using smart color inversion to support users with visual impairments in apps. The document was presented by David Bonnet and discusses accessibility options for the CocoHeads Nantes conference on February 15, 2018.
This document discusses how to test push notifications in UI tests, including: sending notifications through a testing library called NWPusher; handling interactions on received notifications; and targeting multiple apps like the Springboard. It provides code examples for getting a device token, sending a notification, and testing different interaction types. While useful for testing analytics and notification workflows, the document notes UI testing push notifications has limitations in only working on real devices and potential stability issues.
This document is from a talk about using Fastlane, a tool for mobile app deployment. It discusses how Fastlane can be used to continuously integrate and deliver mobile apps by automating tasks like syncing certificates and profiles, taking screenshots, uploading metadata and builds, and starting the app review process. The talk encourages contacting the organizers to participate in their weekly Wednesday tech talks on various mobile development topics.
This document introduces SuperCombinators, a parser combinator framework for Swift that aims to provide a declarative and memory-safe API. It discusses existing parser combinator solutions that had downsides like custom operators or memory leaks. The framework takes an approach of defining parsers as strings that are transformed into closures. It distinguishes between patterns that traverse strings and parsers that extract values, allowing for useful extensions and simplification of composition operators. Recursive parsers are handled by lazily generating parsing functions with unowned references to avoid reference cycles. An example demonstrates parsing integers and sums recursively in a declarative manner.
This document discusses errors in Swift. It covers topics like:
- Any type can adopt the Error protocol in Swift
- Functions, computed properties, and subscripts can throw errors
- catch blocks can match patterns to catch errors
- Common errors include ignoring errors or not handling them properly
- Advanced topics include rethrowing errors, result equivalency, and different strategies for handling and responding to errors.
This document provides lessons learned about developing Internet of Things (IoT) applications. It discusses using unit tests to debug IoT applications, implementing a data transformation layer to convert between data formats, and unit testing models. It also recommends simulating Bluetooth Low Energy (BLE) functionality on iOS simulators using wrappers and protocols. The document emphasizes simulating functionality as much as possible and applying server-side development principles to IoT apps.
This document provides instructions for setting up Swift programming on a Raspberry Pi, including downloading Swift binaries, installing dependencies, and using the SwiftyGPIO library to access GPIO pins. Key steps include installing Ubuntu Core or Raspbian on an SD card, installing Swift binaries from a URL or building from source, installing dependencies like libxml2 and clang, and using SwiftyGPIO to configure pin directions and read/write values to control an output pin based on an input pin. Tools like SourceKitten and rsub enable using the Swift compiler and debugger remotely over SSH.
The document discusses the HomeKit framework which allows controlling home accessories like thermostats, lights, and sensors from iOS devices and Siri. It covers setting up accessories by discovering them on the local network, adding them to rooms in the HomeKit home database, and naming their services. It also explains how to control accessories by reading and writing characteristic values, setting up notifications for changes, and creating automations with triggers and scenes. Security features like end-to-end encryption using keys stored locally are highlighted.
This document discusses communication methods for smart things and their requirements. It lists requirements like low energy, mobility, proximity detection, and security. Potential communication mediums are then presented, including Bluetooth, BLE, WiFi, Zigbee, LPWAN networks, mobile networks, NFC/RFID, ultrasound, and voice. Examples of smart devices and the communication methods they use are provided, such as Philips Hue lights using Zigbee, iBeacons using BLE, WiFi scales, smartwatches using BLE/WiFi/BT, and Alexa using WiFi. Bluetooth iAP is described as allowing only accessory and user connection through BLE, with iOS app connection, energy efficiency,
This document discusses using CocoaPods to build a modular iOS application with reusable components. It outlines slicing an app into modular "bricks", extracting them into separate CocoaPod libraries, and then rebuilding the app by linking the bricks together through the Podfile. Key steps include identifying app domains to extract, separating each domain into its own pod, and then reconstructing the main app through CocoaPods dependencies. The benefits of this approach include modularity, reusability, and the ability to develop components independently through their own projects and tests.
This document discusses strategies for migrating code from Swift 2.x to Swift 3.0. It recommends first migrating dependencies using tools like CocoaPods and Carthage. It then recommends using Xcode's migration assistant to fix issues, while also preparing code templates beforehand using tools like SwiftGen. Some challenges discussed include changes made automatically by the migrator, optional comparators being removed, and Grand Central Dispatch API changes. References for further information on the Swift 3 migration are provided.
iOS 9 introduced several new features including split screen multitasking on iPad, search APIs, app thinning technologies like bitcode and app slicing, keyboard shortcuts, 3D Touch features, updated UI components like UIAlertController and SFSafariViewController, on demand resources, and the new Contacts framework. It also improved existing technologies like Auto Layout with new syntax and components like UIStackView.
This document discusses using BitTorrent on iOS. It provides an overview of BitTorrent, including its history, usage statistics, and technical details. It then discusses challenges with using BitTorrent on iOS and potential solutions, including using the libtorrent C++ library. It covers how to build and configure libtorrent for iOS, and how to interface it with Swift. It also describes how to implement an event loop to fetch torrent updates and progress. Some caveats mentioned are the need for fine-tuning to avoid heavy battery usage and lack of background session support on iOS.
This document discusses CloudKit, Apple's backend as a service (BaaS) that provides a turnkey backend solution for mobile apps. CloudKit allows developers to store and sync data across devices without needing backend server experience. It features fields for common data types, querying, sorting, pagination and push notifications. While providing a more user-friendly dashboard than manual coding, CloudKit's image bandwidth is limited and the public database had bugs in early iOS 10 versions. The document also answers questions about CloudKit's capabilities and limitations.
This document discusses the problems with using the Alamofire library for making HTTP requests and proposes an alternative called Nikka. It outlines issues with Alamofire like being difficult to understand and extend. Nikka is presented as a simpler solution that provides base functionality for networking, supports different APIs, and allows for extensions. The implementation of Nikka using classes for providers and routes is demonstrated along with examples of requesting data and extensions for JSON parsing and futures/Rx support.
L'IA connaît une croissance rapide et son intégration dans le domaine éducatif soulève de nombreuses questions. Aujourd'hui, nous explorerons comment les étudiants utilisent l'IA, les perceptions des enseignants à ce sujet, et les mesures possibles pour encadrer ces usages.
Constat Actuel
L'IA est de plus en plus présente dans notre quotidien, y compris dans l'éducation. Certaines universités, comme Science Po en janvier 2023, ont interdit l'utilisation de l'IA, tandis que d'autres, comme l'Université de Prague, la considèrent comme du plagiat. Cette diversité de positions souligne la nécessité urgente d'une réponse institutionnelle pour encadrer ces usages et prévenir les risques de triche et de plagiat.
Enquête Nationale
Pour mieux comprendre ces dynamiques, une enquête nationale intitulée "L'IA dans l'enseignement" a été réalisée. Les auteurs de cette enquête sont Le Sphynx (sondage) et Compilatio (fraude académique). Elle a été diffusée dans les universités de Lyon et d'Aix-Marseille entre le 21 juin et le 15 août 2023, touchant 1242 enseignants et 4443 étudiants. Les questionnaires, conçus pour étudier les usages de l'IA et les représentations de ces usages, abordaient des thèmes comme les craintes, les opportunités et l'acceptabilité.
Résultats de l'Enquête
Les résultats montrent que 55 % des étudiants utilisent l'IA de manière occasionnelle ou fréquente, contre 34 % des enseignants. Cependant, 88 % des enseignants pensent que leurs étudiants utilisent l'IA, ce qui pourrait indiquer une surestimation des usages. Les usages identifiés incluent la recherche d'informations et la rédaction de textes, bien que ces réponses ne puissent pas être cumulées dans les choix proposés.
Analyse Critique
Une analyse plus approfondie révèle que les enseignants peinent à percevoir les bénéfices de l'IA pour l'apprentissage, contrairement aux étudiants. La question de savoir si l'IA améliore les notes sans développer les compétences reste débattue. Est-ce un dopage académique ou une opportunité pour un apprentissage plus efficace ?
Acceptabilité et Éthique
L'enquête révèle que beaucoup d'étudiants jugent acceptable d'utiliser l'IA pour rédiger leurs devoirs, et même un quart des enseignants partagent cet avis. Cela pose des questions éthiques cruciales : copier-coller est-il tricher ? Utiliser l'IA sous supervision ou pour des traductions est-il acceptable ? La réponse n'est pas simple et nécessite un débat ouvert.
Propositions et Solutions
Pour encadrer ces usages, plusieurs solutions sont proposées. Plutôt que d'interdire l'IA, il est suggéré de fixer des règles pour une utilisation responsable. Des innovations pédagogiques peuvent également être explorées, comme la création de situations de concurrence professionnelle ou l'utilisation de détecteurs d'IA.
Conclusion
En conclusion, bien que l'étude présente des limites, elle souligne un besoin urgent de régulation. Une charte institutionnelle pourrait fournir un cadre pour une utilisation éthique.
This document introduces SuperCombinators, a parser combinator framework for Swift that aims to provide a declarative and memory-safe API. It discusses existing parser combinator solutions that had downsides like custom operators or memory leaks. The framework takes an approach of defining parsers as strings that are transformed into closures. It distinguishes between patterns that traverse strings and parsers that extract values, allowing for useful extensions and simplification of composition operators. Recursive parsers are handled by lazily generating parsing functions with unowned references to avoid reference cycles. An example demonstrates parsing integers and sums recursively in a declarative manner.
This document discusses errors in Swift. It covers topics like:
- Any type can adopt the Error protocol in Swift
- Functions, computed properties, and subscripts can throw errors
- catch blocks can match patterns to catch errors
- Common errors include ignoring errors or not handling them properly
- Advanced topics include rethrowing errors, result equivalency, and different strategies for handling and responding to errors.
This document provides lessons learned about developing Internet of Things (IoT) applications. It discusses using unit tests to debug IoT applications, implementing a data transformation layer to convert between data formats, and unit testing models. It also recommends simulating Bluetooth Low Energy (BLE) functionality on iOS simulators using wrappers and protocols. The document emphasizes simulating functionality as much as possible and applying server-side development principles to IoT apps.
This document provides instructions for setting up Swift programming on a Raspberry Pi, including downloading Swift binaries, installing dependencies, and using the SwiftyGPIO library to access GPIO pins. Key steps include installing Ubuntu Core or Raspbian on an SD card, installing Swift binaries from a URL or building from source, installing dependencies like libxml2 and clang, and using SwiftyGPIO to configure pin directions and read/write values to control an output pin based on an input pin. Tools like SourceKitten and rsub enable using the Swift compiler and debugger remotely over SSH.
The document discusses the HomeKit framework which allows controlling home accessories like thermostats, lights, and sensors from iOS devices and Siri. It covers setting up accessories by discovering them on the local network, adding them to rooms in the HomeKit home database, and naming their services. It also explains how to control accessories by reading and writing characteristic values, setting up notifications for changes, and creating automations with triggers and scenes. Security features like end-to-end encryption using keys stored locally are highlighted.
This document discusses communication methods for smart things and their requirements. It lists requirements like low energy, mobility, proximity detection, and security. Potential communication mediums are then presented, including Bluetooth, BLE, WiFi, Zigbee, LPWAN networks, mobile networks, NFC/RFID, ultrasound, and voice. Examples of smart devices and the communication methods they use are provided, such as Philips Hue lights using Zigbee, iBeacons using BLE, WiFi scales, smartwatches using BLE/WiFi/BT, and Alexa using WiFi. Bluetooth iAP is described as allowing only accessory and user connection through BLE, with iOS app connection, energy efficiency,
This document discusses using CocoaPods to build a modular iOS application with reusable components. It outlines slicing an app into modular "bricks", extracting them into separate CocoaPod libraries, and then rebuilding the app by linking the bricks together through the Podfile. Key steps include identifying app domains to extract, separating each domain into its own pod, and then reconstructing the main app through CocoaPods dependencies. The benefits of this approach include modularity, reusability, and the ability to develop components independently through their own projects and tests.
This document discusses strategies for migrating code from Swift 2.x to Swift 3.0. It recommends first migrating dependencies using tools like CocoaPods and Carthage. It then recommends using Xcode's migration assistant to fix issues, while also preparing code templates beforehand using tools like SwiftGen. Some challenges discussed include changes made automatically by the migrator, optional comparators being removed, and Grand Central Dispatch API changes. References for further information on the Swift 3 migration are provided.
iOS 9 introduced several new features including split screen multitasking on iPad, search APIs, app thinning technologies like bitcode and app slicing, keyboard shortcuts, 3D Touch features, updated UI components like UIAlertController and SFSafariViewController, on demand resources, and the new Contacts framework. It also improved existing technologies like Auto Layout with new syntax and components like UIStackView.
This document discusses using BitTorrent on iOS. It provides an overview of BitTorrent, including its history, usage statistics, and technical details. It then discusses challenges with using BitTorrent on iOS and potential solutions, including using the libtorrent C++ library. It covers how to build and configure libtorrent for iOS, and how to interface it with Swift. It also describes how to implement an event loop to fetch torrent updates and progress. Some caveats mentioned are the need for fine-tuning to avoid heavy battery usage and lack of background session support on iOS.
This document discusses CloudKit, Apple's backend as a service (BaaS) that provides a turnkey backend solution for mobile apps. CloudKit allows developers to store and sync data across devices without needing backend server experience. It features fields for common data types, querying, sorting, pagination and push notifications. While providing a more user-friendly dashboard than manual coding, CloudKit's image bandwidth is limited and the public database had bugs in early iOS 10 versions. The document also answers questions about CloudKit's capabilities and limitations.
This document discusses the problems with using the Alamofire library for making HTTP requests and proposes an alternative called Nikka. It outlines issues with Alamofire like being difficult to understand and extend. Nikka is presented as a simpler solution that provides base functionality for networking, supports different APIs, and allows for extensions. The implementation of Nikka using classes for providers and routes is demonstrated along with examples of requesting data and extensions for JSON parsing and futures/Rx support.
L'IA connaît une croissance rapide et son intégration dans le domaine éducatif soulève de nombreuses questions. Aujourd'hui, nous explorerons comment les étudiants utilisent l'IA, les perceptions des enseignants à ce sujet, et les mesures possibles pour encadrer ces usages.
Constat Actuel
L'IA est de plus en plus présente dans notre quotidien, y compris dans l'éducation. Certaines universités, comme Science Po en janvier 2023, ont interdit l'utilisation de l'IA, tandis que d'autres, comme l'Université de Prague, la considèrent comme du plagiat. Cette diversité de positions souligne la nécessité urgente d'une réponse institutionnelle pour encadrer ces usages et prévenir les risques de triche et de plagiat.
Enquête Nationale
Pour mieux comprendre ces dynamiques, une enquête nationale intitulée "L'IA dans l'enseignement" a été réalisée. Les auteurs de cette enquête sont Le Sphynx (sondage) et Compilatio (fraude académique). Elle a été diffusée dans les universités de Lyon et d'Aix-Marseille entre le 21 juin et le 15 août 2023, touchant 1242 enseignants et 4443 étudiants. Les questionnaires, conçus pour étudier les usages de l'IA et les représentations de ces usages, abordaient des thèmes comme les craintes, les opportunités et l'acceptabilité.
Résultats de l'Enquête
Les résultats montrent que 55 % des étudiants utilisent l'IA de manière occasionnelle ou fréquente, contre 34 % des enseignants. Cependant, 88 % des enseignants pensent que leurs étudiants utilisent l'IA, ce qui pourrait indiquer une surestimation des usages. Les usages identifiés incluent la recherche d'informations et la rédaction de textes, bien que ces réponses ne puissent pas être cumulées dans les choix proposés.
Analyse Critique
Une analyse plus approfondie révèle que les enseignants peinent à percevoir les bénéfices de l'IA pour l'apprentissage, contrairement aux étudiants. La question de savoir si l'IA améliore les notes sans développer les compétences reste débattue. Est-ce un dopage académique ou une opportunité pour un apprentissage plus efficace ?
Acceptabilité et Éthique
L'enquête révèle que beaucoup d'étudiants jugent acceptable d'utiliser l'IA pour rédiger leurs devoirs, et même un quart des enseignants partagent cet avis. Cela pose des questions éthiques cruciales : copier-coller est-il tricher ? Utiliser l'IA sous supervision ou pour des traductions est-il acceptable ? La réponse n'est pas simple et nécessite un débat ouvert.
Propositions et Solutions
Pour encadrer ces usages, plusieurs solutions sont proposées. Plutôt que d'interdire l'IA, il est suggéré de fixer des règles pour une utilisation responsable. Des innovations pédagogiques peuvent également être explorées, comme la création de situations de concurrence professionnelle ou l'utilisation de détecteurs d'IA.
Conclusion
En conclusion, bien que l'étude présente des limites, elle souligne un besoin urgent de régulation. Une charte institutionnelle pourrait fournir un cadre pour une utilisation éthique.
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)Laurent Speyser
(Conférence dessinée)
Vous êtes certainement à l’origine, ou impliqué, dans un changement au sein de votre organisation. Et peut être que cela ne se passe pas aussi bien qu’attendu…
Depuis plusieurs années, je fais régulièrement le constat de l’échec de l’adoption de l’Agilité, et plus globalement de grands changements, dans les organisations. Je vais tenter de vous expliquer pourquoi ils suscitent peu d'adhésion, peu d’engagement, et ils ne tiennent pas dans le temps.
Heureusement, il existe un autre chemin. Pour l'emprunter il s'agira de cultiver l'invitation, l'intelligence collective , la mécanique des jeux, les rites de passages, .... afin que l'agilité prenne racine.
Vous repartirez de cette conférence en ayant pris du recul sur le changement tel qu‘il est généralement opéré aujourd’hui, et en ayant découvert (ou redécouvert) le seul guide valable à suivre, à mon sens, pour un changement authentique, durable, et respectueux des individus! Et en bonus, 2 ou 3 trucs pratiques!
OCTO TALKS : 4 Tech Trends du Software Engineering.pdfOCTO Technology
En cette année 2024 qui s’annonce sous le signe de la complexité, avec :
- L’explosion de la Gen AI
-Un contexte socio-économique sous tensions
- De forts enjeux sur le Sustainable et la régulation IT
- Une archipélisation des lieux de travail post-Covid
Découvrez les Tech trends incontournables pour délivrer vos produits stratégiques.
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...OCTO Technology
Par Nicolas Bordier (Consultant numérique responsable @OCTO Technology) et Alaric Rougnon-Glasson (Sustainable Tech Consultant @OCTO Technology)
Sur un exemple très concret d’audit d’éco-conception de l’outil de bilan carbone C’Bilan développé par ICDC (Caisse des dépôts et consignations) nous allons expliquer en quoi l’ACV (analyse de cycle de vie) a été déterminante pour identifier les pistes d’actions pour réduire jusqu'à 82% de l’empreinte environnementale du service.
Vidéo Youtube : https://www.youtube.com/watch?v=7R8oL2P_DkU
Compte-rendu :
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...OCTO Technology
par Claude Camus (Coach agile d'organisation @OCTO Technology) et Gilles Masy (Organizational Coach @OCTO Technology)
Les équipes infrastructure, sécurité, production, ou cloud, doivent consacrer du temps à la modernisation de leurs outils (automatisation, cloud, etc) et de leurs pratiques (DevOps, SRE, etc). Dans le même temps, elles doivent répondre à une avalanche croissante de demandes, tout en maintenant un niveau de qualité de service optimal.
Habitué des environnements développeurs, les transformations agiles négligent les particularités des équipes OPS. Lors de ce comptoir, nous vous partagerons notre proposition de valeur de l'agilité@OPS, qui embarquera vos équipes OPS en Classe Business (Agility), et leur fera dire : "nous ne reviendrons pas en arrière".