This document discusses continuous integration from unit tests to hardware. It describes how continuous integration helps ensure quality by automatically building and testing software anytime code changes are committed. The speaker's company Forget Box uses Jenkins for continuous integration to build and test their iOS app daily. Plugins and scripts can be used in Jenkins to run unit tests, compute code coverage, package apps, and deploy to test devices. Continuous integration helps developers catch bugs early and "never break the build again."
1) Parse provides a backend as a service that allows developers to easily add features like push notifications, user authentication, file storage, and a database to mobile apps.
2) It offers an easy to use SDK for iOS and Android apps to connect to the Parse backend and manage data through a REST API or local SDK methods.
3) Parse's free tier supports basic usage, while paid plans provide more storage, requests, and features like scheduling and analytics for $199/month or less depending on usage.
Il existe de plus en plus de composants et librairies de qualité pour iOS, mais les récupérer, les configurer et les mettre à jour prend un temps fou.
Thomas Dupont (Co-organisateur des CocoaHeads Rennes) nous as présenté CocoaPods: un outils de gestion de dépendance qui va vous simplifier la vie !
Dimitri Dupuis-Latour, suite à son intervention au Istanbul Tech Talks dans un thème beaucoup plus large, intitulé "Mastering Interface Builder", viendra nous parler des fonctionnalités et autres astuces autour d'Unwind Segue. Un mécanisme d'Interface Builder trop peu exploité, mais qui permet de simplifier largement les flows.
Spec et test agile sur mobile @airfrance #at lille & cocoaheads tlsekito
The document discusses using Cucumber and Calabash for behavior-driven development (BDD) testing on mobile projects. It provides examples of good and bad Cucumber feature files and predefined step definitions. It also recommends allocating a person to focus 100% on testing using Cucumber and Calabash.
This document discusses background capabilities in iOS 7. It summarizes the three new background modes available: background fetching, remote notifications, and background transfers. Background tasks now run for 3 minutes instead of 10 minutes. Apps can now download content in the background in response to push notifications or on a scheduled basis using background fetch APIs. Developers have close control while Apple prioritizes battery life and network usage.
Fastlane - Automation and Continuous Delivery for iOS AppsSarath C
Automation and Continuous Delivery for iOS Apps using Fastlane tools. This was presented at FAYA, Technopark, Trivandrum on 01-Jun-2016.
Fastlane is a collection of utilities that work beautifully together without friction. It's now part of Fabric, Twitter's developer tools and development lead by Felix Krause (Twitter: @krausefx) and many other amazing developers.
iOS developers typically spend several times managing provision files, certificates and so many mundane and boring stuffs they've to do with Apple Developer portal and tools. Fastlane tools can help you to right from creating a project to deploy your app to AppStore.
Fastlane has an amazing ability to pass the result of data around each of the utilities in your pipeline. Also the actions helps you to customize and extend your fastlane utilities.
Fastlane often come pre-installed with popular continuous integration servers like CricleCI. Utilities like match can help you a lot to manage your certificates and provision files by securely shari across computers. This works quite handy with with CI servers as well.
LLVM is a collection of modular compiler and toolchain technologies including a backend, assembly code generator for over 10 CPUs, the LLDB debugger, and the Clang C/C++/Objective-C frontend and static analyzer. It originated in the 2000s and was adopted by Apple in 2011 as it is more modular than GCC, integrates better into IDEs, and was more suitable for improving Objective-C support. Compilation involves transforming source code into a lower level representation like assembly, and LLVM's design with frontend, optimized intermediate representation, and backend makes it easier to add new languages and CPU targets compared to GCC.
This document discusses continuous integration from unit tests to hardware. It describes how continuous integration helps ensure quality by automatically building and testing software anytime code changes are committed. The speaker's company Forget Box uses Jenkins for continuous integration to build and test their iOS app daily. Plugins and scripts can be used in Jenkins to run unit tests, compute code coverage, package apps, and deploy to test devices. Continuous integration helps developers catch bugs early and "never break the build again."
1) Parse provides a backend as a service that allows developers to easily add features like push notifications, user authentication, file storage, and a database to mobile apps.
2) It offers an easy to use SDK for iOS and Android apps to connect to the Parse backend and manage data through a REST API or local SDK methods.
3) Parse's free tier supports basic usage, while paid plans provide more storage, requests, and features like scheduling and analytics for $199/month or less depending on usage.
Il existe de plus en plus de composants et librairies de qualité pour iOS, mais les récupérer, les configurer et les mettre à jour prend un temps fou.
Thomas Dupont (Co-organisateur des CocoaHeads Rennes) nous as présenté CocoaPods: un outils de gestion de dépendance qui va vous simplifier la vie !
Dimitri Dupuis-Latour, suite à son intervention au Istanbul Tech Talks dans un thème beaucoup plus large, intitulé "Mastering Interface Builder", viendra nous parler des fonctionnalités et autres astuces autour d'Unwind Segue. Un mécanisme d'Interface Builder trop peu exploité, mais qui permet de simplifier largement les flows.
Spec et test agile sur mobile @airfrance #at lille & cocoaheads tlsekito
The document discusses using Cucumber and Calabash for behavior-driven development (BDD) testing on mobile projects. It provides examples of good and bad Cucumber feature files and predefined step definitions. It also recommends allocating a person to focus 100% on testing using Cucumber and Calabash.
This document discusses background capabilities in iOS 7. It summarizes the three new background modes available: background fetching, remote notifications, and background transfers. Background tasks now run for 3 minutes instead of 10 minutes. Apps can now download content in the background in response to push notifications or on a scheduled basis using background fetch APIs. Developers have close control while Apple prioritizes battery life and network usage.
Fastlane - Automation and Continuous Delivery for iOS AppsSarath C
Automation and Continuous Delivery for iOS Apps using Fastlane tools. This was presented at FAYA, Technopark, Trivandrum on 01-Jun-2016.
Fastlane is a collection of utilities that work beautifully together without friction. It's now part of Fabric, Twitter's developer tools and development lead by Felix Krause (Twitter: @krausefx) and many other amazing developers.
iOS developers typically spend several times managing provision files, certificates and so many mundane and boring stuffs they've to do with Apple Developer portal and tools. Fastlane tools can help you to right from creating a project to deploy your app to AppStore.
Fastlane has an amazing ability to pass the result of data around each of the utilities in your pipeline. Also the actions helps you to customize and extend your fastlane utilities.
Fastlane often come pre-installed with popular continuous integration servers like CricleCI. Utilities like match can help you a lot to manage your certificates and provision files by securely shari across computers. This works quite handy with with CI servers as well.
LLVM is a collection of modular compiler and toolchain technologies including a backend, assembly code generator for over 10 CPUs, the LLDB debugger, and the Clang C/C++/Objective-C frontend and static analyzer. It originated in the 2000s and was adopted by Apple in 2011 as it is more modular than GCC, integrates better into IDEs, and was more suitable for improving Objective-C support. Compilation involves transforming source code into a lower level representation like assembly, and LLVM's design with frontend, optimized intermediate representation, and backend makes it easier to add new languages and CPU targets compared to GCC.
Deploy your app with one Slack commandFabio Milano
See how I created a setup that allows developers to create and upload builds with one Slack command. I will introduce Fastlane and share how I created an advanced setup from starting from scratch.
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.
"I have a framework idea" - Repeat less, share more.Fabio Milano
macOS, tvOS, iOS, watchOS, Extensions. In such a dense ecosystem, creating a framework enables us to easily share code between components of our universal applications and with the open-source community.
In this talk, we will learn about processes and tools that help create, 'ship' and maintain a multi platform framework. Throughout all steps, we will see how to use CocoaPods and Carthage, integrate CI tools to keep our code robust, see best practices for authoring frameworks. We'll show how frameworks could change our way of designing an application infrastructure and how you can contribute to the open-source community by turning your idea into a framework.
This document compares the build tools Apache Ant and Apache Maven. It outlines that Ant is more procedural while Maven follows a standardized lifecycle approach. Maven enforces project conventions, manages dependencies automatically, and allows building complex products with minimal configuration. While Ant provides more flexibility, Maven scales better to larger projects through its standardization and automation.
The document discusses CocoaPods, an open-source library manager for Swift and Objective-C Cocoa projects. It notes that integrating a new framework traditionally involved adding files to a project and dependencies manually, which is more complicated than using CocoaPods. With CocoaPods, developers can add a pod to their Podfile, run an update command, and the pod and its dependencies will be automatically installed without additional steps. The document encourages developers to install CocoaPods and check the list of available pods on its website, and contributes to the project if possible.
BlaBlaCar et la mise en place d'une fonctionnalité FlagFeatureCocoaHeads France
Erwan Robin viendra nous expliquer comment l’entreprise arrive à pousser et mettre à jour à distance une configuration permettant de modifier le comportement d’une application publiée sur l’App Store. Le système était précédemment utilisé pour mettre à jour les localisations, il est désormais également exploité pour modifier les paramètres de l’app pour activer ou désactiver des fonctionnalité, à distance, en fonction des pays.
User.getUser(Long id) and User.getUsers(Long page, int cnt) methods retrieve data from the cache using different keys. So modifying and saving an object retrieved by getUser does not update the cached collection returned by getUsers, leading to inconsistencies. Play's caching at the model level does not consider relationships between entities.
Integration tests test multiple components together by using dependencies like databases, services, and APIs. They are useful for testing typical workflows and ensuring components interact smoothly but can be hard to write, maintain, and localize errors. UI tests with Selenium automate interactions with a web application like users do in order to detect errors not found by other test types, but take more time and setup compared to unit tests.
This is a presentation I prepared for a local meetup. The audience is a mix of web designers and developers who have a wide range of development experience.
Titanium - Making the most of your single threadRonald Treur
The native app development environments support multiple threads. Titanium however does not (out of the box), it only supports a single thread. In this presentaton, Ronald Treur will shortly explain how threading works and why this knowledge matters. But more important, he will show you how to keep heavy duty processes from blocking others.
Best Practices in apps development with Titanium Appcelerator Alessio Ricco
This document provides best practices for developing apps using Titanium Appcelerator. It discusses software quality characteristics from both the user and developer perspectives. Key aspects of a good software project are stability, performance, rapid development, and readability. Specific practices covered include avoiding global scope, nulling object references, using namespaces, lazy script loading, avoiding memory leaks with event listeners, optimizing images, and best practices for databases.
- The document discusses deploying JHipster microservices. It begins by generating a JHipster microservices application and configuring options like the application name, database, and authentication.
- The application is then generated, creating all necessary files and scaffolding for the microservices architecture.
- Options selected include PostgreSQL for the production database, JWT authentication, and HazelCast for caching.
The document provides an overview of the Play framework, a stateless and non-blocking web application framework for Java and Scala. It discusses key aspects of Play including its goals of being developer-friendly, fully compiled and type-safe, integration of JSON and other features. It also contrasts stateful versus stateless web application architectures and threaded versus event-driven web servers. Finally, it covers setting up a new Play project, project structure and running a Play application.
This document summarizes tools in the React ecosystem, including developer tools like React DevTools and Redux DevTools, testing utilities like Enzyme, routing libraries like React Router, and other helpers like Classnames and React Modal. It provides links to GitHub repositories for these tools.
Using Play Framework 2 in production
- Play Framework 2 is a web framework for Scala that embraces HTTP and allows codebases to stay readable and DRY as they grow large.
- As a startup, Play Framework 2 and Scala can attract developers who want to learn and find better ways to develop for the web using a powerful yet stable language and bleeding edge yet stable framework.
- Some early mistakes included slow CSS compilation, not properly configuring for asynchronous code like Slick, and not managing JavaScript, but Play is forgiving and allows replacing pieces as needs become more advanced.
The document discusses the Play framework, an agile web development framework created by Guillaume Bort in 2007. It provides an overview of Play's main concepts including its stateless MVC architecture, ability to fix bugs and reload code without restarting, efficient templating, and support for test-driven development. The document also covers getting started with Play and using modules to add additional functionality.
Telosys tutorial - Code generation for a Python web application based on Bott...Laurent Guérin
Telosys CLI tutorial - How to generate a Python web application based on Bottle, SQLAlchemy and SQLite
Installation, model setup, bundles of templates, code generation and tests
This document discusses F5's automation toolchain for application services, including the AS3 declarative API. It provides an overview of tools like the App Services extension for deploying application services on BIG-IP using declarative REST APIs, the Declarative Onboarding extension for initial BIG-IP configuration, and templates for starting BIG-IP instances in public and private clouds. It also discusses the AS3 API for a single declarative endpoint to interface with common L4-L7 application services using a JSON document. Examples are provided of AS3 declarations for basic HTTP applications and firewall policies. Links are included to documentation, examples on GitHub, and resources for learning more.
La traditionnelle mise à jour annuelle de nos petits bijoux de poche est moins discrète cette année avec une remise à plat de son design … Mais il y a aussi de très nombreuses nouveautés pour les développeurs. UIKit Dynamics, les motions events et les custom transitions en font partie. Elles renouvellent notre expérience des interfaces UIKit.
David Bonnet (créateur de CarMusic) est venu nous parler des custom transitions. Après une courte introduction et quelques exemples, vous devriez repartir avec plein d’idées pour personnaliser votre app…
Deploy your app with one Slack commandFabio Milano
See how I created a setup that allows developers to create and upload builds with one Slack command. I will introduce Fastlane and share how I created an advanced setup from starting from scratch.
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.
"I have a framework idea" - Repeat less, share more.Fabio Milano
macOS, tvOS, iOS, watchOS, Extensions. In such a dense ecosystem, creating a framework enables us to easily share code between components of our universal applications and with the open-source community.
In this talk, we will learn about processes and tools that help create, 'ship' and maintain a multi platform framework. Throughout all steps, we will see how to use CocoaPods and Carthage, integrate CI tools to keep our code robust, see best practices for authoring frameworks. We'll show how frameworks could change our way of designing an application infrastructure and how you can contribute to the open-source community by turning your idea into a framework.
This document compares the build tools Apache Ant and Apache Maven. It outlines that Ant is more procedural while Maven follows a standardized lifecycle approach. Maven enforces project conventions, manages dependencies automatically, and allows building complex products with minimal configuration. While Ant provides more flexibility, Maven scales better to larger projects through its standardization and automation.
The document discusses CocoaPods, an open-source library manager for Swift and Objective-C Cocoa projects. It notes that integrating a new framework traditionally involved adding files to a project and dependencies manually, which is more complicated than using CocoaPods. With CocoaPods, developers can add a pod to their Podfile, run an update command, and the pod and its dependencies will be automatically installed without additional steps. The document encourages developers to install CocoaPods and check the list of available pods on its website, and contributes to the project if possible.
BlaBlaCar et la mise en place d'une fonctionnalité FlagFeatureCocoaHeads France
Erwan Robin viendra nous expliquer comment l’entreprise arrive à pousser et mettre à jour à distance une configuration permettant de modifier le comportement d’une application publiée sur l’App Store. Le système était précédemment utilisé pour mettre à jour les localisations, il est désormais également exploité pour modifier les paramètres de l’app pour activer ou désactiver des fonctionnalité, à distance, en fonction des pays.
User.getUser(Long id) and User.getUsers(Long page, int cnt) methods retrieve data from the cache using different keys. So modifying and saving an object retrieved by getUser does not update the cached collection returned by getUsers, leading to inconsistencies. Play's caching at the model level does not consider relationships between entities.
Integration tests test multiple components together by using dependencies like databases, services, and APIs. They are useful for testing typical workflows and ensuring components interact smoothly but can be hard to write, maintain, and localize errors. UI tests with Selenium automate interactions with a web application like users do in order to detect errors not found by other test types, but take more time and setup compared to unit tests.
This is a presentation I prepared for a local meetup. The audience is a mix of web designers and developers who have a wide range of development experience.
Titanium - Making the most of your single threadRonald Treur
The native app development environments support multiple threads. Titanium however does not (out of the box), it only supports a single thread. In this presentaton, Ronald Treur will shortly explain how threading works and why this knowledge matters. But more important, he will show you how to keep heavy duty processes from blocking others.
Best Practices in apps development with Titanium Appcelerator Alessio Ricco
This document provides best practices for developing apps using Titanium Appcelerator. It discusses software quality characteristics from both the user and developer perspectives. Key aspects of a good software project are stability, performance, rapid development, and readability. Specific practices covered include avoiding global scope, nulling object references, using namespaces, lazy script loading, avoiding memory leaks with event listeners, optimizing images, and best practices for databases.
- The document discusses deploying JHipster microservices. It begins by generating a JHipster microservices application and configuring options like the application name, database, and authentication.
- The application is then generated, creating all necessary files and scaffolding for the microservices architecture.
- Options selected include PostgreSQL for the production database, JWT authentication, and HazelCast for caching.
The document provides an overview of the Play framework, a stateless and non-blocking web application framework for Java and Scala. It discusses key aspects of Play including its goals of being developer-friendly, fully compiled and type-safe, integration of JSON and other features. It also contrasts stateful versus stateless web application architectures and threaded versus event-driven web servers. Finally, it covers setting up a new Play project, project structure and running a Play application.
This document summarizes tools in the React ecosystem, including developer tools like React DevTools and Redux DevTools, testing utilities like Enzyme, routing libraries like React Router, and other helpers like Classnames and React Modal. It provides links to GitHub repositories for these tools.
Using Play Framework 2 in production
- Play Framework 2 is a web framework for Scala that embraces HTTP and allows codebases to stay readable and DRY as they grow large.
- As a startup, Play Framework 2 and Scala can attract developers who want to learn and find better ways to develop for the web using a powerful yet stable language and bleeding edge yet stable framework.
- Some early mistakes included slow CSS compilation, not properly configuring for asynchronous code like Slick, and not managing JavaScript, but Play is forgiving and allows replacing pieces as needs become more advanced.
The document discusses the Play framework, an agile web development framework created by Guillaume Bort in 2007. It provides an overview of Play's main concepts including its stateless MVC architecture, ability to fix bugs and reload code without restarting, efficient templating, and support for test-driven development. The document also covers getting started with Play and using modules to add additional functionality.
Telosys tutorial - Code generation for a Python web application based on Bott...Laurent Guérin
Telosys CLI tutorial - How to generate a Python web application based on Bottle, SQLAlchemy and SQLite
Installation, model setup, bundles of templates, code generation and tests
This document discusses F5's automation toolchain for application services, including the AS3 declarative API. It provides an overview of tools like the App Services extension for deploying application services on BIG-IP using declarative REST APIs, the Declarative Onboarding extension for initial BIG-IP configuration, and templates for starting BIG-IP instances in public and private clouds. It also discusses the AS3 API for a single declarative endpoint to interface with common L4-L7 application services using a JSON document. Examples are provided of AS3 declarations for basic HTTP applications and firewall policies. Links are included to documentation, examples on GitHub, and resources for learning more.
La traditionnelle mise à jour annuelle de nos petits bijoux de poche est moins discrète cette année avec une remise à plat de son design … Mais il y a aussi de très nombreuses nouveautés pour les développeurs. UIKit Dynamics, les motions events et les custom transitions en font partie. Elles renouvellent notre expérience des interfaces UIKit.
David Bonnet (créateur de CarMusic) est venu nous parler des custom transitions. Après une courte introduction et quelques exemples, vous devriez repartir avec plein d’idées pour personnaliser votre app…
This document discusses Placeit, a web application that allows users to take screenshots and place them into device templates like iPhones and iPads for marketing purposes. Key features highlighted include a large library of device templates to choose from, the ability to drag and drop screenshots directly onto devices, and options to save or share the final images online. Limitations mentioned include making sure screenshots fit the pixel dimensions of the chosen device template.
This document describes a responsive design bookmarklet tool that allows users to view how a website would be displayed on different devices like iPad and iPhone. The bookmarklet adds a top bar to websites showing layout options for landscape and portrait views of tablets and phones. It can help test responsive design but is limited as it only crops non-responsive sites rather than fully adapting them for different screens.
CoreData vous tente mais vous fait peur ? Vous trouvez le framework un peu dur à prendre en main ? Ou vous en avez marre d’écrire autant de ligne à chaque fois juste pour faire une simple récupération de vos données ?
Olivier Halligon (développeur de FoodReporter) vous offrira une découverte de MagicalRecord, le framework qui va drastiquement simplifier votre code CoreData, en apportant le Design Pattern ActiveRecord (comme utilisé en Ruby) sur Objective-C.
This document discusses using a Cocoapods library called NMPaginator to handle pagination in an iOS app. It notes that pagination can require over 100 lines of code in a view controller without a library. NMPaginator simplifies pagination by keeping track of the current page number and total pages, and indicating whether there is a next page of results. It also handles displaying new results versus old ones and resetting the pagination. The document encourages using Cocoapods to add the library rather than reinventing the wheel, and includes a link to the library's Cocoapods page.
This document is licensed under a Creative Commons Attribution 3.0 Unported License. It describes an icon preview tool that allows uploading PNG icon files to a web server using FTP. The tool then displays the icons on a test page for previewing and sharing directly to a phone. There are some limitations around wallpapers and timestamps of PNG files.
The document discusses the benefits of exercise for mental health. Regular physical activity can help reduce anxiety and depression and improve mood and cognitive function. Exercise causes chemical changes in the brain that may help protect against mental illness and improve symptoms.
CocoaHeads Rennes #14: Programmation Responsive par CeledevCocoaHeadsRNS
Xcode, c’est très puissant, mais devoir recompiler, charger et relancer son application à chaque fois qu’on fait une modification dans le code, ça devient vite fastidieux. Si les changements dans le code pouvaient s’appliquer en temps réel dans l’application, on gagnerait pas mal de temps qu’on pourrait consacrer à expérimenter des idées nouvelles et à améliorer nos apps. Un rêve ? Plus vraiment.
Celedev, une startup rennaise, a développé un environnement de développement pour iOS entièrement conçu autour de cette idée de Programmation Responsive. Jean-Luc Jumpertz (créateur de Celedev) est venu nous présenter cet outil et nous faire une petite démo.
1. The document discusses object-oriented programming concepts like abstraction, encapsulation, inheritance, polymorphism, and dynamic binding.
2. It then provides details on the history and features of Java, including how Java code is compiled and run on the Java Virtual Machine.
3. Core object-oriented features of Java like classes, objects, constructors, and method overloading are explained.
Comment développer une application mobile en 8 semaines - Meetup PAUG 24-01-2023Nicolas HAAN
À l'automne dernier, nous avons eu la chance de développer une nouvelle app pour un de nos clients en partant de zéro.
L'objectif ? Créer une application minimale à mettre entre les mains de dizaines de beta testeurs, en 8 semaines et avec 2 développeurs. Partant d'une feuille blanche, nous avons pu mettre en œuvre les dernières avancées de la stack Android sans être contraints par l'existant.
Développeurs débutants comme expérimentés, vous repartirez de ce talk avec nos apprentissages clés sur l'architecture ainsi que sur les bibliothèques et astuces pour faciliter la maintenance et la stabilité de l'application. En bonus, nous répondrons à la question : "Une app full-compose, est-ce que c'est cool ?"
Application Security from the Inside - OWASPSqreen
Presentation at the OWASP (Open Web Application Security Project) on how to make apps secure by protecting them from the inside.
Detecting and protecting from
1. SQL injection
2. Cross Site Scripting (XSS)
3. Third party components vulnerabilities
4. Shell injection
etc.
Konstantin will tell us about challenges his team faced during this app development, about decisions on frameworks, libraries, patterns, analytics. It's always interesting to know how mobile development for different mobile platforms goes in large corporations like Microsoft.
Connect me: https://www.linkedin.com/profile/view?id=60116085
This document discusses dependency injection and context in Java EE applications. It begins by demonstrating how to explicitly set dependencies through constructors or factories without dependency injection. It then shows how dependency injection frameworks like JSR-330 and JSR-299/CDI can provide type-safe dependency injection through annotations to simplify construction and testing. The rest of the document provides more details on the capabilities and specifications of JSR-330 and JSR-299, including their support for contexts, events, qualifiers, and extensions.
original (better quality) on https://docs.google.com/presentation/d/1bnwj8CrFGo5KekONYSeIHySdkoXZiewJxkHcZjXnzkQ/
slides from OpenDaylight Summit Oct 2016 Seattle
Method, Constructor, Method Overloading, Method Overriding, Inheritance In JavaJamsher bhanbhro
In the PowerPoint presentation "Method, Constructor, Method Overloading, Overriding in Java," I have described key concepts in Java programming, including methods, constructors, method overloading, and method overriding. Each concept is detailed with definitions, explanations, and practical examples to demonstrate its application in Java. The presentation aims to provide a clear and concise understanding of these essential Java programming concepts, making it an effective educational resource for learners and programmers.
iPhone development from a Java perspective (Jazoon '09)Netcetera
Based on experience gained in developing the popular Zurich train/tram/bus/ship timeplan transport application, wemlin, senior software engineer Ognen Ivanovski describes development for the iPhone from the perspective of an Enterprise Java developer - covering aspects about differences in the language, the architecture, the user experience, the tools, and the market.
Getting start Java EE Action-Based MVC with ThymeleafMasatoshi Tada
This document discusses Java EE action-based MVC frameworks and getting started with the Java EE 8 MVC 1.0 specification. It covers:
1. What is action-based MVC and how it differs from component-based MVC.
2. An overview of getting started with the MVC 1.0 specification, including using Thymeleaf as the view technology.
3. How to use Jersey MVC and RESTEasy HTML in Java EE 7 as alternatives since MVC 1.0 is a Java EE 8 feature.
Use Eclipse technologies to build a modern embedded IDEBenjamin Cabé
This document discusses requirements for developing an embedded integrated development environment (IDE) using Eclipse technologies. It describes using Eclipse Modeling Framework (EMF) to model embedded projects. It also discusses using EMF validation, Graphical Modeling Framework (GMF) editors, Xpand for code generation, and the CDT and DLTK plugins for code editing. The IDE will integrate model and code editing with compilation, communication with targets via the Target Communication Framework (TCF) and Remote System Explorer (RSE). The goal is to leverage the Eclipse ecosystem to quickly create a complex IDE environment focused on embedded development.
A Cocktail of Guice and Seam, the missing ingredients for Java EE 6Saltmarch Media
JSR-299 (the JSR formerly known as "WebBeans") has recently turned into "Contexts and Dependency Injection for the Java EE platform". Accompanied by Last Minute JEE 6 candidate JSR-330 ("Dependency Injection for Java") the two go hand in hand while one almost seems to rip a little bit of the concept of "WebBeans" apart further. We’ll take a look their synergies and how they fit in with the rest of Java SE as well as EE.
The document discusses and compares two popular ActionScript frameworks: PureMVC and Robotlegs. It provides an overview of why frameworks are used, describes some common design patterns implemented in frameworks, and highlights key features and strengths/weaknesses of PureMVC and Robotlegs.
Pentesting iOS Apps - Runtime Analysis and ManipulationAndreas Kurtz
Apple iOS Apps are primarily developed in Objective-C, an object-oriented extension and strict superset of the C programming language. Objective-C supports the concepts of reflection, also known as introspection. This describes the ability to examine and modify the structure and behavior (specifically the values, meta-data, properties and functions) of an object at runtime.
This talk discusses the background, techniques, problems and solutions to Objective-C runtime analysis and manipulation. It will be discussed how running applications can be extended with additional debugging and runtime tracing capabilities, and how this can be used to modify instance variables and to execute or replace arbitrary object methods of an App.
Moreover, a new framework to assist dynamic analysis and security assessments of iOS Apps will be introduced and demonstrated.
Native Cloud-Native: Building Agile Microservices with the Micronaut FrameworkZachary Klein
This talk is a fast-paced introduction to the Micronaut framework, from creating the first app to orchestrating a microservice federation and deploying to the cloud. We will cover the basics of writing Micronaut apps, communication between services, building for resiliency, managing configuration, and deploying to a cloud provider. By the time we’re finished, you’ll have a good understanding of both the distinctives and features of the framework and be ready to start building and deploying your own apps with Micronaut. Buckle up!
Sample code: https://github.com/ZacharyKlein/hello-devnexus23
This document provides an overview of common object-oriented programming best practices and design patterns for iOS developers. It discusses obvious best practices in Objective-C like method naming conventions and notation. It also explains several classic design patterns like MVC, Singleton, Strategy, Decorator, and Delegate. Examples are given for how to implement patterns like Singleton, Strategy, and Decorator in Objective-C. The document aims to help iOS developers write code that is easy to understand, reuse, and change by using these practices and patterns.
This deck provides an overview of key concepts in Objective-C including MVC architecture, classes, instances, methods, properties, delegates and protocols, Xcode IDE, and common classes and terms. It explains that MVC separates applications into modular and replaceable models, views, and controllers. Classes define properties and methods while instances contain property values. Methods are messages sent to objects. Properties use accessor methods. Header files define public interfaces while implementation files contain private code. Delegates and protocols allow communication between decoupled components.
Testing is fundamental in software development. Quality gates demand high coverage levels, pull requests need sufficient tests, leading to teams spending considerable time writing and maintaining them. But are we using our tests to their full potential?
'If code is hard to test, the design can be improved'. Starting from this mantra, this deep-dive session unveils hints to simplify code, break-down complexity, and effectively use functional programming. We'll delve into topics like fixture creep, partial mocks, onion architecture, and pure functions, providing numerous best practices and practical tips for your testing.
Be warned: This session may significantly disrupt your work routine and will likely change how you see testing. Attend at your own risk.
The primary focus of this presentation is approaching the migration of a large, legacy data store into a new schema built with Django. Includes discussion of how to structure a migration script so that it will run efficiently and scale. Learn how to recognize and evaluate trouble spots.
Also discusses some general tips and tricks for working with data and establishing a productive workflow.
The document discusses strategies for migrating large amounts of legacy data from an old database into a new Django application. Some key points:
- Migrating data in batches and minimizing database queries per row processed can improve performance for large datasets.
- Tools like SQLAlchemy and Maatkit can help optimize the migration process.
- It's important to profile queries, enable logging/debugging, and design migrations that can resume/restart after failures or pause for maintenance.
- Preserving some legacy metadata like IDs on the new models allows mapping data between the systems. Declarative and modular code helps scale the migration tasks.
Similar to Accessors Vs Direct access to properties & Design Pattern (20)
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 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.
GraphRAG for Life Science to increase LLM accuracyTomaz Bratanic
GraphRAG for life science domain, where you retriever information from biomedical knowledge graphs using LLMs to increase the accuracy and performance of generated answers
“An Outlook of the Ongoing and Future Relationship between Blockchain Technologies and Process-aware Information Systems.” Invited talk at the joint workshop on Blockchain for Information Systems (BC4IS) and Blockchain for Trusted Data Sharing (B4TDS), co-located with with the 36th International Conference on Advanced Information Systems Engineering (CAiSE), 3 June 2024, Limassol, Cyprus.
Removing Uninteresting Bytes in Software FuzzingAftab Hussain
Imagine a world where software fuzzing, the process of mutating bytes in test seeds to uncover hidden and erroneous program behaviors, becomes faster and more effective. A lot depends on the initial seeds, which can significantly dictate the trajectory of a fuzzing campaign, particularly in terms of how long it takes to uncover interesting behaviour in your code. We introduce DIAR, a technique designed to speedup fuzzing campaigns by pinpointing and eliminating those uninteresting bytes in the seeds. Picture this: instead of wasting valuable resources on meaningless mutations in large, bloated seeds, DIAR removes the unnecessary bytes, streamlining the entire process.
In this work, we equipped AFL, a popular fuzzer, with DIAR and examined two critical Linux libraries -- Libxml's xmllint, a tool for parsing xml documents, and Binutil's readelf, an essential debugging and security analysis command-line tool used to display detailed information about ELF (Executable and Linkable Format). Our preliminary results show that AFL+DIAR does not only discover new paths more quickly but also achieves higher coverage overall. This work thus showcases how starting with lean and optimized seeds can lead to faster, more comprehensive fuzzing campaigns -- and DIAR helps you find such seeds.
- These are slides of the talk given at IEEE International Conference on Software Testing Verification and Validation Workshop, ICSTW 2022.
OpenID AuthZEN Interop Read Out - AuthorizationDavid Brossard
During Identiverse 2024 and EIC 2024, members of the OpenID AuthZEN WG got together and demoed their authorization endpoints conforming to the AuthZEN API
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
Generating privacy-protected synthetic data using Secludy and MilvusZilliz
During this demo, the founders of Secludy will demonstrate how their system utilizes Milvus to store and manipulate embeddings for generating privacy-protected synthetic data. Their approach not only maintains the confidentiality of the original data but also enhances the utility and scalability of LLMs under privacy constraints. Attendees, including machine learning engineers, data scientists, and data managers, will witness first-hand how Secludy's integration with Milvus empowers organizations to harness the power of LLMs securely and efficiently.
Taking AI to the Next Level in Manufacturing.pdfssuserfac0301
Read Taking AI to the Next Level in Manufacturing to gain insights on AI adoption in the manufacturing industry, such as:
1. How quickly AI is being implemented in manufacturing.
2. Which barriers stand in the way of AI adoption.
3. How data quality and governance form the backbone of AI.
4. Organizational processes and structures that may inhibit effective AI adoption.
6. Ideas and approaches to help build your organization's AI strategy.
Building Production Ready Search Pipelines with Spark and MilvusZilliz
Spark is the widely used ETL tool for processing, indexing and ingesting data to serving stack for search. Milvus is the production-ready open-source vector database. In this talk we will show how to use Spark to process unstructured data to extract vector representations, and push the vectors to Milvus vector database for search serving.
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceIndexBug
Imagine a world where machines not only perform tasks but also learn, adapt, and make decisions. This is the promise of Artificial Intelligence (AI), a technology that's not just enhancing our lives but revolutionizing entire industries.
Monitoring and Managing Anomaly Detection on OpenShift.pdfTosin Akinosho
Monitoring and Managing Anomaly Detection on OpenShift
Overview
Dive into the world of anomaly detection on edge devices with our comprehensive hands-on tutorial. This SlideShare presentation will guide you through the entire process, from data collection and model training to edge deployment and real-time monitoring. Perfect for those looking to implement robust anomaly detection systems on resource-constrained IoT/edge devices.
Key Topics Covered
1. Introduction to Anomaly Detection
- Understand the fundamentals of anomaly detection and its importance in identifying unusual behavior or failures in systems.
2. Understanding Edge (IoT)
- Learn about edge computing and IoT, and how they enable real-time data processing and decision-making at the source.
3. What is ArgoCD?
- Discover ArgoCD, a declarative, GitOps continuous delivery tool for Kubernetes, and its role in deploying applications on edge devices.
4. Deployment Using ArgoCD for Edge Devices
- Step-by-step guide on deploying anomaly detection models on edge devices using ArgoCD.
5. Introduction to Apache Kafka and S3
- Explore Apache Kafka for real-time data streaming and Amazon S3 for scalable storage solutions.
6. Viewing Kafka Messages in the Data Lake
- Learn how to view and analyze Kafka messages stored in a data lake for better insights.
7. What is Prometheus?
- Get to know Prometheus, an open-source monitoring and alerting toolkit, and its application in monitoring edge devices.
8. Monitoring Application Metrics with Prometheus
- Detailed instructions on setting up Prometheus to monitor the performance and health of your anomaly detection system.
9. What is Camel K?
- Introduction to Camel K, a lightweight integration framework built on Apache Camel, designed for Kubernetes.
10. Configuring Camel K Integrations for Data Pipelines
- Learn how to configure Camel K for seamless data pipeline integrations in your anomaly detection workflow.
11. What is a Jupyter Notebook?
- Overview of Jupyter Notebooks, an open-source web application for creating and sharing documents with live code, equations, visualizations, and narrative text.
12. Jupyter Notebooks with Code Examples
- Hands-on examples and code snippets in Jupyter Notebooks to help you implement and test anomaly detection models.
HCL Notes and Domino License Cost Reduction in the World of DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-and-domino-license-cost-reduction-in-the-world-of-dlau/
The introduction of DLAU and the CCB & CCX licensing model caused quite a stir in the HCL community. As a Notes and Domino customer, you may have faced challenges with unexpected user counts and license costs. You probably have questions on how this new licensing approach works and how to benefit from it. Most importantly, you likely have budget constraints and want to save money where possible. Don’t worry, we can help with all of this!
We’ll show you how to fix common misconfigurations that cause higher-than-expected user counts, and how to identify accounts which you can deactivate to save money. There are also frequent patterns that can cause unnecessary cost, like using a person document instead of a mail-in for shared mailboxes. We’ll provide examples and solutions for those as well. And naturally we’ll explain the new licensing model.
Join HCL Ambassador Marc Thomas in this webinar with a special guest appearance from Franz Walder. It will give you the tools and know-how to stay on top of what is going on with Domino licensing. You will be able lower your cost through an optimized configuration and keep it low going forward.
These topics will be covered
- Reducing license cost by finding and fixing misconfigurations and superfluous accounts
- How do CCB and CCX licenses really work?
- Understanding the DLAU tool and how to best utilize it
- Tips for common problem areas, like team mailboxes, functional/test users, etc
- Practical examples and best practices to implement right away
Programming Foundation Models with DSPy - Meetup SlidesZilliz
Prompting language models is hard, while programming language models is easy. In this talk, I will discuss the state-of-the-art framework DSPy for programming foundation models with its powerful optimizers and runtime constraint system.
3. Au programme
• Accessors Vs Direct access to properties
• Design Pattern : Categories
• Design Pattern : Associative Storage
• La chaine Météo!
mardi 28 mai 13
5. property Using setter (ms)
Using Direct Access
(ms)
strong + nonatomic 9 6
weak + nonatomic 30 30
unsafe_unretained +
nonatomic
0,8 0,2
strong + atomic 9 6
iPhone 3GS/iOS5 + 10,000 affectactions. (average based
on several tests.)
iVar : Accessors/Direct access
Performance?
mardi 28 mai 13
6. • Direct affectation don’t use the property
attributes (atomic)
• KVO/KVC needs accessors,
• Don’t use accessor methods in init methods
and dealloc (You may have override your
accessors)
iVar : Accessors/Direct access
Risk / Limits?
mardi 28 mai 13
9. Design Pattern: Categories
• Makes easy to support multiple OS versions
@interface UITableView (BkUICore)
- (void) bkRegisterNibName:(NSString *)nibName forCellReuseIdentifier:
(NSString *)identifier;
- (id) bkDequeueReusableCellWithIdentifier:(NSString *)identifier;
@end
@interface UIViewController (BkUICore)
- (void) bkDismissModalViewControllerAnimated:(BOOL)animated;
- (void) bkPresentViewController:(UIViewController *)controller
animated:(BOOL)animated;
@end
mardi 28 mai 13
10. Design Pattern: Categories
• Categories can be used to declare either instance
methods or class methods but are not usually
suitable for declaring additional properties.
One other design pattern can help us !
Associated storage
@interface UITableView (BkUICore)
- (void) bkRegisterNibName:(NSString *)nibName forCellReuseIdentifier:
(NSString *)identifier;
- (id) bkDequeueReusableCellWithIdentifier:(NSString *)identifier;
@end
mardi 28 mai 13
11. Design Pattern: Associative references
http://developer.apple.com/library/mac/#documentation/
Cocoa/Conceptual/ObjCRuntimeGuide/Introduction/
Introduction.html#//apple_ref/doc/uid/TP40008048
Objective-C programs interact with the runtime system at three distinct
levels: through Objective-C source code; through methods defined in the
NSObject class of the Foundation framework; and through direct calls to
runtime functions.
mardi 28 mai 13
12. Design Pattern: Associative references
//nsobjet.h
@interface NSObject
+ (Class)superclass;
+ (Class)class;
- (BOOL)respondsToSelector:(SEL)aSelector;
+ (BOOL)conformsToProtocol:(Protocol *)protocol;
//runtime.h
OBJC_EXPORT Class class_getSuperclass(Class cls)
OBJC_EXPORT Class object_getClass(id obj)
OBJC_EXPORT BOOL class_respondsToSelector(Class cls, SEL sel)
OBJC_EXPORT BOOL class_conformsToProtocol(Class cls, Protocol *protocol)
Some of the NSObject methods simply query the runtime system for information.
These methods allow objects to perform introspection.
mardi 28 mai 13
13. • A way to add simulate new properties to an
existing class !
Design Pattern: Associative references
static const char nibsAssocKey;
@implementation UITableView (BkUICore)
- (void) bkRegisterNibName:(NSString *)nibName forCellReuseIdentifier:(NSString
*)identifier
{
if ([self respondsToSelector:@selector(registerNib:forCellReuseIdentifier:)]) {
[self registerNib:[UINib nibWithNibName:nibName bundle:[NSBundle mainBundle]]
forCellReuseIdentifier:identifier]; //NS_AVAILABLE_IOS(5_0)
} else {
NSMutableDictionary *nibs = objc_getAssociatedObject(self, &nibsAssocKey);
if (nil == nibs) {
nibs = [NSMutableDictionary dictionary];
objc_setAssociatedObject(self, &nibsAssocKey,
nibs, OBJC_ASSOCIATION_RETAIN);
}
[nibs setValue:nibName forKey:identifier];
}
}
@end
mardi 28 mai 13
14. La chaine meteo
Issue : How to add a new property on UINavigationBar
• Subclass UINavigationBar, dumbass !
• Use associated storage !
mardi 28 mai 13