Paris Tech Meetup talk : Troubles start at version 1.0Laurent Cerveau
Presentation given at the Paris Tech Meetup 2013. A checklist (with code example for iOS development) to anticipate potential problems that can happen during the upgrade process of an application.
Core Data allows developers to work with Swift objects and persist them to storage like SQLite. It provides an object graph and change tracking system so objects can be saved, retrieved, and queried. The Core Data stack includes managed objects, managed object contexts, and a persistent store coordinator that interacts with the backend store. Entities in a data model define the structure and relationships of persisted objects.
SenchaCon 2016: Building a Faceted Catalog of Video Game Assets Using Ext JS ...Sencha
At Ubisoft Technology Group, we've created a platform for video game production to share game assets, in-game footage, and animations across the entire company. Ease of search and good UX were incredibly important for an audience of artists and creative types. This is where the Web and a powerful JavaScript framework came in; we chose Ext JS for its robustness and scalability. In this session, we'll showcase two different applications and dive into the technical aspects of designing the UI for a faceted search based on Elasticsearch.
Introduction to CQRS - command and query responsibility segregationAndrew Siemer
A high level introduction to CQRS (command and query responsibility segregation), CQS (command query separation), DDD (domain driven design), DDD-D ...with distributed, and how all those weave together.
This document discusses Node.js as an enterprise middleware platform. It provides context on soft real-time applications and cloud computing needs. Node.js uses an event-driven, non-blocking I/O model with callbacks to achieve high concurrency levels. Its use of JavaScript and modular package ecosystem allow for rapid development. Key benefits highlighted include performance, scalability, agility, and cost savings. Success stories from companies like PayPal, LinkedIn, and Yahoo adopting Node.js are also mentioned.
DDD, CQRS and testing with ASP.Net MVCAndy Butland
This document provides an overview of a presentation on Domain Driven Design (DDD), Command Query Responsibility Segregation (CQRS), and testing with ASP.Net MVC. It introduces the presenter and gives an outline of the topics to be covered, including implementing DDD with ASP.Net MVC and Entity Framework, using a mediator pattern for CQRS, and unit testing models, queries, and commands. References are given to other authors and resources that influenced the approaches and implementations discussed in the presentation.
NSURLSession is the main networking API provided by Foundation that allows issuing HTTP requests and handling responses. Popular third party libraries like Alamofire and Moya provide abstractions over NSURLSession to simplify networking code. JSON parsing in Swift requires using third party libraries like Gloss to implement type checking and avoid callback hell when handling JSON responses.
How to implements the infra-structure for micro services? In this session, we'll compare building it with Spring Cloud vs. using Docker swarm/Kubernetes support.
This talk lays out the elements of an extension including the content model, JS API, Web Scripts, Content Policies, Action Executors, Web Scripts and more. This will draw on years of experience delivering extensions to various projects.
There is a code sample in github: https://github.com/rmknightstar/devcon2018
You can see the presentation as given at the Alfresco Developer Conference here : https://youtu.be/CKRswhh-jHE?list=PLyJdWuUHM3igOUt49uiFqs-6DCQAgJ1vs&t=0
Multi-threading in the modern era: Vertx Akka and QuasarGal Marder
Everybody wants scalable systems. However, writing non-blocking applications in Java is not an easy task. In this session, we'll go over 3 different frameworks for managing multi-treading and concurrency support (Akka, Vertx and Quasar).
Windows 8 apps can access data from services in several ways:
- They can call ASMX, WCF, and REST services asynchronously using HttpClient and retrieve responses.
- They can access oData services using the oData client library.
- They can retrieve RSS feeds using SyndicationClient and parse the responses.
- They can perform background transfers using BackgroundDownloader.
- They can update tiles periodically by polling a service and setting updates.
SenchaCon 2016: Ext JS + React: A Match Made in UX Heaven - Mark BrocatoSencha
The document discusses using React with Ext JS by leveraging the @extjs/reactor library. It covers how Ext JS components can be used as JSX tags in React, how to handle events, access component refs, configure complex props, handle updates, and use the @extjs/reactor-webpack-plugin to set up a React app for Ext JS.
Mobile devices are so useful because they can get on the net with their built-in wi-fi or cellular data radios. But how does this work? In iOS, we have a slew of networking APIs, each appropriate in different situations. From decades-old BSD sockets to the new-in-iOS-5 iCloud, there are a wide range of networking calls available to your app, and an equally wide range of semantics in how to use them. In this talk, we'll start with high-level abstractions like iCloud and other objects that can either load from or save to a URL, then progress down through the stack, grabbing arbitrary content from URLs, self-networking with Bonjour and Game Kit, and finally accessing the socket layer with CFNetwork and BSD sockets.
iCloud sample code at: http://dl.dropbox.com/u/12216224/conferences/codemash12/bonjour-icloud/CloudNotes.zip
The document discusses emerging web technologies including WeakMap, Object.observe, MutationObserver, and Web Components. It describes how these new APIs enable features like associating data with DOM elements without modifying them, observing changes to objects and DOM nodes, and creating reusable custom elements with encapsulated styling and behavior. A library called Polymer is presented as a way to start using these new features across browsers through polyfills. Examples of custom Web Components for file uploading and AJAX forms are provided.
Terracotta (an open source technology) provides a clustered, durable virtual heap. Terracotta's goal is to make Java apps scale with as little effort as possible. If you are using Hibernate, there are several patterns that can be used to leverage Terracotta and reduce the load on your database so your app can scale.
First, you can use the Terracotta clustered Hibernate cache. This is a high-performance clustered cache and allows you to avoid hitting the database on all nodes in your cluster. It's suitable, not just for read-only, but also for read-mostly and read-write use cases, which traditionally have not been viewed as good use cases for Hibernate second level cache.
Another high performance option is to disconnect your POJOs from their Hibernate session and manage them entirely in Terracotta shared heap instead. This is a great option for conversational data where the conversational data is not of long-term interest but must be persistent and highly-available. This pattern can significantly reduce your database load but does require more changes to your application than using second-level cache.
This talk will examine the basics of what Terracotta provides and examples of how you can scale your Hibernate application with both clustered second level cache and detached clustered state. Also, we'll take a look at Terracotta's Hibernate-specific monitoring tools.
This document discusses reactive software systems and programming paradigms like functional programming. It introduces concepts like actors, futures, and message passing from frameworks like Akka that help build responsive and resilient reactive applications. The document also covers Scala features for functional programming like immutability, pattern matching, and actors from the Akka framework in Scala.
This document provides an introduction to AJAX (Asynchronous JavaScript and XML) technologies. It defines AJAX as using JavaScript asynchronously behind the scenes to load additional data without reloading the entire web page. Benefits of AJAX include a rich user interface experience and efficient loading of dynamic data. The document outlines how to use the XMLHttpRequest object to make asynchronous requests for data from the server. Examples and demos of AJAX applications are also referenced.
This document provides an overview of Platform as a Service (PaaS) options for Java applications, including Amazon Elastic Beanstalk, Red Hat OpenShift, CloudFoundry, and Google App Engine. It discusses features of PaaS like quick deployment, automatic scaling, and reduced maintenance compared to Infrastructure as a Service (IaaS). Specific PaaS products covered include their supported languages, frameworks, and cloud integration. Questions around capabilities like databases, monitoring, and custom domains are also addressed.
This talk demonstrates how to develop single page apps with the new angular2 framework and TypeScript. We show the new concepts of angular2 not only in theory, but using a real application. To this end, we develop a real-time angular2 website, for users to to ask and upvote questions during a talk identified by a hash tag. The session chair can ask the most popular questions at the end of the talk.
Dieser Vortrag zeigt, wie man mit dem neuen Angular2 Framework und TypeScript schnelle Single Page Apps entwickelt. Die neuen Konzepte von Angular2 zeigen wir dabei nicht nur in der Theorie, sondern ganz praktisch. Dazu entwickeln wir live eine Real-Time Angular2 App, mit der Zuhörer während eines Vortrags – identifiziert durch einen Hash-Tag - Fragen stellen und gegenseitig upvoten können. Der Session Chair kann so am Ende eines Vortrags die bestbewertesten Fragen an den Speaker stellen.
Anatomy of a Modern Node.js Application Architecture AppDynamics
This document provides an overview of the typical components and architecture of a modern Node.js application, including web and application servers, a queue, worker servers, databases, caches, and how to monitor transactions as they flow through the distributed system. It also describes how to configure AppDynamics to monitor errors, transactions, hardware resources, calls to external services and databases, and end user experience for Node.js applications.
Lessons Learned from Building a Multi-Tenant Saas Content Management System o...MongoDB
The document introduces Kevin Wright and Jonathan Roeder, who both have experience with MongoDB. It then provides information about their company, which has been in business since 1999 and processes $2.8 billion annually on its ecommerce platform. It goes on to describe their multi-tenant CMS application built with .NET and MongoDB, including approaches taken for schema design, sharding implementation, and best practices.
Arnaud vous propose de découvrir le framework Spring Batch: du Hello World! jusqu'à l'exécution multi-threadée de batch, en passant par la lecture de fichiers CSV et la reprise sur erreur. Les techniques qu'utilise le framework pour lire et écrire efficacement de grands volumes de données e vous seront pas non plus épargnées ! La présentation se base sur une approche problème/solution, avec de nombreux exemples de code et des démos. A la suite de cette présentation, vous saurez si Spring Batch convient à vos problématiques et aurez toutes les cartes en mains pour l'intégrer à vos applications batch.
Atlanta JUG - Integrating Spring Batch and Spring IntegrationGunnar Hillert
This document provides an overview and introduction to Spring Batch, Spring Integration, and Spring XD. It discusses key concepts and features of Spring Batch for batch processing and Spring Integration for enterprise integration. It also demonstrates how Spring Batch and Spring Integration can be used together for batch integration use cases. Finally, it introduces Spring XD for unified data ingestion, analytics, and export capabilities using existing Spring projects. The presentation includes code samples and links to documentation and GitHub repositories for further information.
The document discusses the architecture of Dropwizard (DW), a Java web framework. DW builds on top of Jetty by adding the InstrumentedHandler. Resources are defined using Jersey and dispatched via a RequestDispatcher chain. Metrics are captured using classes annotated with @Timed and @Metered and exported to Graphite for long-term storage and visualization. Providers are interfaces that customize DW's behavior at runtime, such as defining how arguments are injected into resource methods.
Couchbase is an open source NoSQL database that provides scalability, high performance, and a flexible data model. It originated from Membase and merged with CouchOne, combining Memcached interfaces for data management with CouchDB's indexing and querying capabilities. Couchbase 2.0 introduced a new JSON document store with indexing, querying, and cross-datacenter replication. The speaker uses Couchbase at his company GetGoing to cache search results, store user data, and store hotel documents across 3 EC2 instances for scalability, replication, and integration with ElasticSearch.
Managing Files with GIT is a document about using the version control system Git. It discusses how Git helps keep track of file changes, allows easy sharing of work, and provides tools to manage diverging code streams through features like branching and merging. The key aspects of using Git covered are initializing repositories, adding and committing files, branching, merging, resolving conflicts, and best practices for collaborative work.
Spring Data provides a unified model for data access and management across different data access technologies such as relational, non-relational and cloud data stores. It includes utilities such as repository support, object mapping and templating to simplify data access layers. Spring Data MongoDB provides specific support for MongoDB including configuration, mapping, querying and integration with Spring MVC. It simplifies MongoDB access through MongoTemplate and provides a repository abstraction layer.
This document provides an overview of the Meteor JavaScript web application framework. It discusses key Meteor concepts like Blaze for creating reactive UIs, Tracker for transparent reactive programming, and data contexts that are set implicitly through template tags and passed between templates. The document also covers Spacebars templating syntax and how data contexts work in templates, template helpers, and with Iron Router.
How to implements the infra-structure for micro services? In this session, we'll compare building it with Spring Cloud vs. using Docker swarm/Kubernetes support.
This talk lays out the elements of an extension including the content model, JS API, Web Scripts, Content Policies, Action Executors, Web Scripts and more. This will draw on years of experience delivering extensions to various projects.
There is a code sample in github: https://github.com/rmknightstar/devcon2018
You can see the presentation as given at the Alfresco Developer Conference here : https://youtu.be/CKRswhh-jHE?list=PLyJdWuUHM3igOUt49uiFqs-6DCQAgJ1vs&t=0
Multi-threading in the modern era: Vertx Akka and QuasarGal Marder
Everybody wants scalable systems. However, writing non-blocking applications in Java is not an easy task. In this session, we'll go over 3 different frameworks for managing multi-treading and concurrency support (Akka, Vertx and Quasar).
Windows 8 apps can access data from services in several ways:
- They can call ASMX, WCF, and REST services asynchronously using HttpClient and retrieve responses.
- They can access oData services using the oData client library.
- They can retrieve RSS feeds using SyndicationClient and parse the responses.
- They can perform background transfers using BackgroundDownloader.
- They can update tiles periodically by polling a service and setting updates.
SenchaCon 2016: Ext JS + React: A Match Made in UX Heaven - Mark BrocatoSencha
The document discusses using React with Ext JS by leveraging the @extjs/reactor library. It covers how Ext JS components can be used as JSX tags in React, how to handle events, access component refs, configure complex props, handle updates, and use the @extjs/reactor-webpack-plugin to set up a React app for Ext JS.
Mobile devices are so useful because they can get on the net with their built-in wi-fi or cellular data radios. But how does this work? In iOS, we have a slew of networking APIs, each appropriate in different situations. From decades-old BSD sockets to the new-in-iOS-5 iCloud, there are a wide range of networking calls available to your app, and an equally wide range of semantics in how to use them. In this talk, we'll start with high-level abstractions like iCloud and other objects that can either load from or save to a URL, then progress down through the stack, grabbing arbitrary content from URLs, self-networking with Bonjour and Game Kit, and finally accessing the socket layer with CFNetwork and BSD sockets.
iCloud sample code at: http://dl.dropbox.com/u/12216224/conferences/codemash12/bonjour-icloud/CloudNotes.zip
The document discusses emerging web technologies including WeakMap, Object.observe, MutationObserver, and Web Components. It describes how these new APIs enable features like associating data with DOM elements without modifying them, observing changes to objects and DOM nodes, and creating reusable custom elements with encapsulated styling and behavior. A library called Polymer is presented as a way to start using these new features across browsers through polyfills. Examples of custom Web Components for file uploading and AJAX forms are provided.
Terracotta (an open source technology) provides a clustered, durable virtual heap. Terracotta's goal is to make Java apps scale with as little effort as possible. If you are using Hibernate, there are several patterns that can be used to leverage Terracotta and reduce the load on your database so your app can scale.
First, you can use the Terracotta clustered Hibernate cache. This is a high-performance clustered cache and allows you to avoid hitting the database on all nodes in your cluster. It's suitable, not just for read-only, but also for read-mostly and read-write use cases, which traditionally have not been viewed as good use cases for Hibernate second level cache.
Another high performance option is to disconnect your POJOs from their Hibernate session and manage them entirely in Terracotta shared heap instead. This is a great option for conversational data where the conversational data is not of long-term interest but must be persistent and highly-available. This pattern can significantly reduce your database load but does require more changes to your application than using second-level cache.
This talk will examine the basics of what Terracotta provides and examples of how you can scale your Hibernate application with both clustered second level cache and detached clustered state. Also, we'll take a look at Terracotta's Hibernate-specific monitoring tools.
This document discusses reactive software systems and programming paradigms like functional programming. It introduces concepts like actors, futures, and message passing from frameworks like Akka that help build responsive and resilient reactive applications. The document also covers Scala features for functional programming like immutability, pattern matching, and actors from the Akka framework in Scala.
This document provides an introduction to AJAX (Asynchronous JavaScript and XML) technologies. It defines AJAX as using JavaScript asynchronously behind the scenes to load additional data without reloading the entire web page. Benefits of AJAX include a rich user interface experience and efficient loading of dynamic data. The document outlines how to use the XMLHttpRequest object to make asynchronous requests for data from the server. Examples and demos of AJAX applications are also referenced.
This document provides an overview of Platform as a Service (PaaS) options for Java applications, including Amazon Elastic Beanstalk, Red Hat OpenShift, CloudFoundry, and Google App Engine. It discusses features of PaaS like quick deployment, automatic scaling, and reduced maintenance compared to Infrastructure as a Service (IaaS). Specific PaaS products covered include their supported languages, frameworks, and cloud integration. Questions around capabilities like databases, monitoring, and custom domains are also addressed.
This talk demonstrates how to develop single page apps with the new angular2 framework and TypeScript. We show the new concepts of angular2 not only in theory, but using a real application. To this end, we develop a real-time angular2 website, for users to to ask and upvote questions during a talk identified by a hash tag. The session chair can ask the most popular questions at the end of the talk.
Dieser Vortrag zeigt, wie man mit dem neuen Angular2 Framework und TypeScript schnelle Single Page Apps entwickelt. Die neuen Konzepte von Angular2 zeigen wir dabei nicht nur in der Theorie, sondern ganz praktisch. Dazu entwickeln wir live eine Real-Time Angular2 App, mit der Zuhörer während eines Vortrags – identifiziert durch einen Hash-Tag - Fragen stellen und gegenseitig upvoten können. Der Session Chair kann so am Ende eines Vortrags die bestbewertesten Fragen an den Speaker stellen.
Anatomy of a Modern Node.js Application Architecture AppDynamics
This document provides an overview of the typical components and architecture of a modern Node.js application, including web and application servers, a queue, worker servers, databases, caches, and how to monitor transactions as they flow through the distributed system. It also describes how to configure AppDynamics to monitor errors, transactions, hardware resources, calls to external services and databases, and end user experience for Node.js applications.
Lessons Learned from Building a Multi-Tenant Saas Content Management System o...MongoDB
The document introduces Kevin Wright and Jonathan Roeder, who both have experience with MongoDB. It then provides information about their company, which has been in business since 1999 and processes $2.8 billion annually on its ecommerce platform. It goes on to describe their multi-tenant CMS application built with .NET and MongoDB, including approaches taken for schema design, sharding implementation, and best practices.
Arnaud vous propose de découvrir le framework Spring Batch: du Hello World! jusqu'à l'exécution multi-threadée de batch, en passant par la lecture de fichiers CSV et la reprise sur erreur. Les techniques qu'utilise le framework pour lire et écrire efficacement de grands volumes de données e vous seront pas non plus épargnées ! La présentation se base sur une approche problème/solution, avec de nombreux exemples de code et des démos. A la suite de cette présentation, vous saurez si Spring Batch convient à vos problématiques et aurez toutes les cartes en mains pour l'intégrer à vos applications batch.
Atlanta JUG - Integrating Spring Batch and Spring IntegrationGunnar Hillert
This document provides an overview and introduction to Spring Batch, Spring Integration, and Spring XD. It discusses key concepts and features of Spring Batch for batch processing and Spring Integration for enterprise integration. It also demonstrates how Spring Batch and Spring Integration can be used together for batch integration use cases. Finally, it introduces Spring XD for unified data ingestion, analytics, and export capabilities using existing Spring projects. The presentation includes code samples and links to documentation and GitHub repositories for further information.
The document discusses the architecture of Dropwizard (DW), a Java web framework. DW builds on top of Jetty by adding the InstrumentedHandler. Resources are defined using Jersey and dispatched via a RequestDispatcher chain. Metrics are captured using classes annotated with @Timed and @Metered and exported to Graphite for long-term storage and visualization. Providers are interfaces that customize DW's behavior at runtime, such as defining how arguments are injected into resource methods.
Couchbase is an open source NoSQL database that provides scalability, high performance, and a flexible data model. It originated from Membase and merged with CouchOne, combining Memcached interfaces for data management with CouchDB's indexing and querying capabilities. Couchbase 2.0 introduced a new JSON document store with indexing, querying, and cross-datacenter replication. The speaker uses Couchbase at his company GetGoing to cache search results, store user data, and store hotel documents across 3 EC2 instances for scalability, replication, and integration with ElasticSearch.
Managing Files with GIT is a document about using the version control system Git. It discusses how Git helps keep track of file changes, allows easy sharing of work, and provides tools to manage diverging code streams through features like branching and merging. The key aspects of using Git covered are initializing repositories, adding and committing files, branching, merging, resolving conflicts, and best practices for collaborative work.
Spring Data provides a unified model for data access and management across different data access technologies such as relational, non-relational and cloud data stores. It includes utilities such as repository support, object mapping and templating to simplify data access layers. Spring Data MongoDB provides specific support for MongoDB including configuration, mapping, querying and integration with Spring MVC. It simplifies MongoDB access through MongoTemplate and provides a repository abstraction layer.
This document provides an overview of the Meteor JavaScript web application framework. It discusses key Meteor concepts like Blaze for creating reactive UIs, Tracker for transparent reactive programming, and data contexts that are set implicitly through template tags and passed between templates. The document also covers Spacebars templating syntax and how data contexts work in templates, template helpers, and with Iron Router.
The document discusses Cloudify, an open source platform for deploying, managing, and scaling complex multi-tier applications on cloud infrastructures. It introduces key concepts of Cloudify including topologies defined using TOSCA, workflows written in Python, policies defined in YAML, and how Cloudify ties various automation tools together across the deployment continuum. The document also provides demonstrations of uploading a blueprint to Cloudify and installing an application using workflows, and discusses how Cloudify collects logs, metrics and handles events during workflow execution.
The document provides an overview of 14 topics related to Oracle Autonomous Database. It begins with how to get started with the Autonomous Database free tier and Oracle Machine Learning. It then discusses cross region data guard, exporting data as JSON to object storage, wallet rotation, partitions with external tables in cloud, set patch level when cloning, performance monitoring, data safe audit retention time increase, change concurrency limits via console, SQL monitor report, ASH analytics in performance hub, workload metrics on performance hub, and customer managed keys.
This document discusses web application architecture and frameworks. It argues that frameworks should not dictate project structure, and that the code should separate domain logic from infrastructure logic. This allows focusing on the core problem domain without concerning itself with technical details like databases or web requests. It also advocates splitting code into ports that define intentions like persistence, and adapters that provide framework-specific implementations, allowing for independence of the domain logic from any particular framework or technology. This architecture, known as hexagonal or ports and adapters, facilitates testing, replacement of parts, and future-proofing of the application.
Adding Support for Networking and Web Technologies to an Embedded SystemJohn Efstathiades
These are the slides for a presentation we gave at Device Developer Conference 2014 in the UK. The presentation discusses the work done, experiences, and lessons learnt from adding an open source TCP/IP network stack and web server to an existing industrial control system running on an ARM Cortex M3-based processor from TI.
The presentation covers the following:
· Integrating the network stack into the existing software base
· Configuring and using the network stack and web server
· Adding support for HTTP basic authentication to restrict user access
· Using HTTP to remotely access the target system and retrieve operational data
· Debugging hints and tips
· Pitfalls to avoid and other lessons learnt
This document provides tips and best practices for staying sane as a Drupal developer. It discusses that 80% of building Drupal sites is configuration, while the remaining 20% requires customization. It emphasizes using Drupal APIs and hooks, playing well with contributed modules, and following coding standards and best practices like version control, automated testing and deployment, and documentation.
Integration Monday - BizTalk Migrator Deep DiveBizTalk360
Join Dan Probert as we take you on a deep dive of Microsoft’s BizTalk Migrator tool. Learn what all the moving parts do, how to modify the configuration, how to improve performance, how to create your scenarios, how to debug the tool when it runs, and how to view the model built behind the scenes. If you have questions, then this is the place to be, as we’ll also have a Q&A session towards the end. In fact, there is so much content, we probably won’t cover everything in one session!
This document provides a summary of a presentation about Full Stack Reactivity using the Meteor framework. It includes a definition of full-stack reactivity as allowing every level of a web application's stack to respond in real-time to changes. The presentation demonstrates a sample Meteor application, discusses key Meteor concepts like publications and subscriptions, and argues that Meteor's approach could help transform how Plone applications are developed. The goal is to integrate Meteor's Distributed Data Protocol into Plone to provide real-time reactivity across the stack using ZODB events.
Struts is an open-source MVC framework that makes it easier to develop Java web applications by providing common functionality out of the box. While the Model 2 pattern provides a basic structure, frameworks like Struts standardize development and provide features like validation, tag libraries, and simplified configuration. For large applications, frameworks save development time compared to manually implementing common functionality in each application. Struts uses the Model 2 pattern with interceptors, actions, and results to simplify request processing and forwarding.
Exploring Twitter's Finagle technology stack for microservices💡 Tomasz Kogut
This document summarizes a presentation about Finagle, Twitter's microservices technology stack. It discusses how Finagle addresses challenges with microservices like service discovery, load balancing, and request tracing across services. It presents Finagle's core abstractions like Futures, Services, and Filters. Services represent both clients and servers, and Filters can add functionality like retries and timeouts. The document also mentions Twitter Server, a framework for building Finagle-based servers that handles flags, logging, metrics and admin interfaces. Finally, it briefly introduces Finatra, which builds on Finagle and Twitter Server and adds features like dependency injection and routing.
Apache Cayenne is an open source object-relational mapping framework for Java. It has been an Apache project since 2006 and has over 17 committers and 9 project management committee members. Cayenne provides tools for mapping database schemas to Java objects and vice versa, as well as tools for querying, caching query results, and handling object lifecycles. It aims to simplify working with relational databases for Java developers in a similar way to how Enterprise Objects Framework simplified it for Objective-C developers.
Orchestrating Cloud Applications With TOSCAArthur Berezin
This document summarizes a presentation about orchestrating cloud applications with TOSCA (Topology and Orchestration Specification for Cloud Applications). It introduces TOSCA, which aims to provide cross-cloud portability for describing application topologies, workflows, policies, and orchestration. Key components of a TOSCA topology are described, including node types, relationships, requirements and capabilities, inputs and outputs. The document also discusses Cloudify, an open-source TOSCA orchestrator that can deploy and manage applications using TOSCA blueprints.
This document discusses using Django for enterprise web applications. It begins with a brief overview of Django's core features like models, views, templates and forms. It then discusses aspects of enterprise applications including multi-tier architectures, web services, transactions, security and asynchronous messaging. The document argues that many enterprise needs can be met with Django and other Python tools while keeping things simple. It addresses potential concerns about scalability, deployments and monitoring Python applications in production.
AngularJS 1.x - your first application (problems and solutions)Igor Talevski
We will talk about all aspects of building a single page application with AngularJS, and we will discuss real examples from day-to-day work. We will also cover a large amount of theory about general web development, best practices, and today's client demands. We will focus on three (3) main points: architecture, security, and real time notification.
This document provides an overview of querying and manipulating data using Entity Framework in .NET. It discusses Entity Framework concepts like Entity Data Models, Code First development, inheritance hierarchies, and querying. The document also covers ADO.NET connections, Entity Framework performance, and transactions. Key topics include creating EF data models, implementing POCO objects, querying with DbContext, and loading related data using lazy and eager loading.
This document provides an overview of the PMIx reference implementation and server initialization process. It describes the different process types in PMIx including clients, servers, and tools. It details the functions and options used to initialize a PMIx server, including specifying the server type and setting up structures. It also outlines the various functions that can be implemented in the server's backend module to provide host-level services and interactions with non-PMIx systems.
The document provides an agenda for a two-day training workshop on Struts 2 and Hibernate. Day 1 covers understanding Struts 2 architecture, configuration, and features. It includes lectures on MVC design pattern, request lifecycle, and practical labs. Day 2 focuses on Hibernate, including its architecture, core classes, configuration, object states, and caching. The workshop also introduces Spring framework concepts like dependency injection and AOP. It concludes with a demo of a sample project architecture integrating Struts 2, Hibernate and Spring.
Data Abstraction for Large Web Applicationsbrandonsavage
This document discusses data abstraction for large web applications. It recommends separating the use of data from how it is retrieved by using data models. Applications should be built to be storage agnostic by using a standard data format and avoiding dependencies on specific databases. The correct data storage medium should be used based on factors like the type of data, availability needs, and performance requirements. Thinking in terms of domain-specific actions rather than database queries helps achieve this separation and flexibility.
The document discusses session tracking techniques in servlets. It describes four main techniques: cookies, hidden form fields, URL rewriting, and HTTP sessions. Cookies are the simplest technique and involve assigning a unique session ID to each client as a cookie. Hidden form fields maintain state by storing information in hidden form fields and transmitting it across requests. URL rewriting appends a session ID to the URL. HTTP sessions involve saving client-specific information on the server side in an HTTP session object.
The role of the lexical analyzer
Specification of tokens
Finite state machines
From a regular expressions to an NFA
Convert NFA to DFA
Transforming grammars and regular expressions
Transforming automata to grammars
Language for specifying lexical analyzers
ELectronics Boards & Product Testing_Shiju.pdfShiju Jacob
This presentation provides a high level insight about DFT analysis and test coverage calculation, finalizing test strategy, and types of tests at different levels of the product.
Analysis of reinforced concrete deep beam is based on simplified approximate method due to the complexity of the exact analysis. The complexity is due to a number of parameters affecting its response. To evaluate some of this parameters, finite element study of the structural behavior of the reinforced self-compacting concrete deep beam was carried out using Abaqus finite element modeling tool. The model was validated against experimental data from the literature. The parametric effects of varied concrete compressive strength, vertical web reinforcement ratio and horizontal web reinforcement ratio on the beam were tested on eight (8) different specimens under four points loads. The results of the validation work showed good agreement with the experimental studies. The parametric study revealed that the concrete compressive strength most significantly influenced the specimens’ response with the average of 41.1% and 49 % increment in the diagonal cracking and ultimate load respectively due to doubling of concrete compressive strength. Although the increase in horizontal web reinforcement ratio from 0.31 % to 0.63 % lead to average of 6.24 % increment on the diagonal cracking load, it does not influence the ultimate strength and the load-deflection response of the beams. Similar variation in vertical web reinforcement ratio leads to an average of 2.4 % and 15 % increment in cracking and ultimate load respectively with no appreciable effect on the load-deflection response.
Lidar for Autonomous Driving, LiDAR Mapping for Driverless Cars.pptxRishavKumar530754
LiDAR-Based System for Autonomous Cars
Autonomous Driving with LiDAR Tech
LiDAR Integration in Self-Driving Cars
Self-Driving Vehicles Using LiDAR
LiDAR Mapping for Driverless Cars
Concept of Problem Solving, Introduction to Algorithms, Characteristics of Algorithms, Introduction to Data Structure, Data Structure Classification (Linear and Non-linear, Static and Dynamic, Persistent and Ephemeral data structures), Time complexity and Space complexity, Asymptotic Notation - The Big-O, Omega and Theta notation, Algorithmic upper bounds, lower bounds, Best, Worst and Average case analysis of an Algorithm, Abstract Data Types (ADT)
This paper proposes a shoulder inverse kinematics (IK) technique. Shoulder complex is comprised of the sternum, clavicle, ribs, scapula, humerus, and four joints.
Sorting Order and Stability in Sorting.
Concept of Internal and External Sorting.
Bubble Sort,
Insertion Sort,
Selection Sort,
Quick Sort and
Merge Sort,
Radix Sort, and
Shell Sort,
External Sorting, Time complexity analysis of Sorting Algorithms.
"Feed Water Heaters in Thermal Power Plants: Types, Working, and Efficiency G...Infopitaara
A feed water heater is a device used in power plants to preheat water before it enters the boiler. It plays a critical role in improving the overall efficiency of the power generation process, especially in thermal power plants.
🔧 Function of a Feed Water Heater:
It uses steam extracted from the turbine to preheat the feed water.
This reduces the fuel required to convert water into steam in the boiler.
It supports Regenerative Rankine Cycle, increasing plant efficiency.
🔍 Types of Feed Water Heaters:
Open Feed Water Heater (Direct Contact)
Steam and water come into direct contact.
Mixing occurs, and heat is transferred directly.
Common in low-pressure stages.
Closed Feed Water Heater (Surface Type)
Steam and water are separated by tubes.
Heat is transferred through tube walls.
Common in high-pressure systems.
⚙️ Advantages:
Improves thermal efficiency.
Reduces fuel consumption.
Lowers thermal stress on boiler components.
Minimizes corrosion by removing dissolved gases.
Value Stream Mapping Worskshops for Intelligent Continuous SecurityMarc Hornbeek
This presentation provides detailed guidance and tools for conducting Current State and Future State Value Stream Mapping workshops for Intelligent Continuous Security.
2. • This talk follows the one about API Design and
starts from its principle
• Although it is mainly focused on iOS (and code
example will be), principles can be applied to
other environment. In particular for modern JS
framework like Angular (and the creation of a
service)
• Configuration: a client talks to a server
Foreword
4. !
• Make sure the client can talk to the server and
fetch/display data
• Why the world fetch data each time????? We
should start faster
• Did you think about Facebook login?
• Offline usage is a must
The marketing requirement road
5. !
• Client side is usually determined on a “pane”
basis. In iOS wording: “view controllers”
• At first fetch is done on a per pane basis with
simple network calls
• When it evolves it is good to have a backend
managing all
Consequences
7. Backend Roles
!
• User management : switch, registration
• Network state management : online/offline
• Data fetch in the context of one user
• Communication backend frontend
8. Global Application
!
• May be good to have a special objects
managing the navigation (Pane Manager)
• This one can be triggered from anywhere (e.g
also with an application special URL)
• Let the view controllers have a view controller
logic
9. Reminder: API prerequisite
!
• Each returned object is having
• an unique identifier : uuid
• an self describing type : __class_name
11. Talk & code
!
• Follows Obj-C/Apple conventions
• Use MM as an example prefix
• For now, no sample code available, contact me
for further questions
• Example uses only Apple API calls, no third
parties components (but they may be worth be
looked at)
13. Storage
!
• At first separate data for each user. Do not try to
optimize by saying some data is common
• Store in “Application Support” or “Documents”
folder, Complement with a storage in Cache for
data that can be lost, with same structure
14. One user - one provider
• Let’s define an object “doing all for a user” as a
MMDataProvider. An entry point to manage all
data for a user
• Let’s define an object managing
MMDataProvider as MMDataProviderManager.
It holds the main server endpoint
• The manager will also be responsible for user
switch as well as network state listening
(SCNetworkReachability). If the app features
elements like location services, they should be
here also
16. Session management
• Users will be created as session are started and
linked to possible already existing storage
• The MMDataProviderManager is the only one
storing the last save user, which can be read at start
for direct login
• Special userID can be defined to keep the front end
code light : kMMCurrentUser, kMMLastUser,
kMMAnonymousUser….
• The manager will be the main point to manage
session and internally ask each provider to start/
stop itself
17. Registration
• As no user/provider exists before registration, the
manager is the one handling the process
• In terms of implementation, one must take care of
possible “network cookies” side effect.
• Usually multiple registration methods should exists :
login/password, token, Facebook, Anonymous (boils
down to one user with a device linked UUID)
18. A note about Facebook login
• The iOS Facebook SDK is easy to put in place but
usually stores its data inside the preferences
• It may be necessary to push tokens to the server.
This should be done by subclassing the
FBSessionTokenCachingStrategy that will read and
write data to a server
• Development tokens behaves differently than
production ones
22. Local and remote
• There may be differences in local objects than
remote one. Runtime versus Persistent
• As a consequence thinking about “let’s sync
everything” should be done in a cautious way
• Remote __class_name and uuid will drive
instantiations
23. Base class: MMBaseObject
• Holds as class variables the matching between
local class and server __class_name
• Useful to have additionally a local object type as int
for fast comparison
• Default implementation method may do nothing, or
even be forbidden (use of abstract class). For
exemple local storage in a DB
• At the base level : handling of UUID, present fields,
instantiation with JSON Data, storage creation
24. Objective-C implementation
/* Registration of MMXXX class at load time */
+ (void)load
{
[MMBaseObject registerClass:NSStringFromClass([self
class]) forType:kMMObjectTypeUser JSONClassName:@"user"
persistentDBType:@"USER"];;
}
/* Main object instantiation entry point */
[MMBaseObject createMMObjectsFromJSONResult:tmpJSON
parsedTypes:&tmpbjectTypes context:(void *)context];
!
/* Abstract method for Storage creation */
+ (char *)persistentSQLCreateStatement;
25. Objective-C implementation
/* To be implemented by subclass */
- (id)initWithJSONContent:(id) JSONContent;
!
/* To be implemented by subclass */
- (void)updateWithJSONContent:(id) JSONContent;
!
/* Write to SQL Database */
- (BOOL)writeToDatabaseWithHandle:(sqlite3 *)dbHandle;
!
/* remove to SQL Database */
- (BOOL)removeFromDataBaseWithHandle:(sqlite3 *)dbHandle;
!
/* Create with init dictionary SQL Database */
- (id)initWithDatabaseInformation:(NSDictionary *)information;
26. Collections
• An additionnel object should exist storing list of
items. We call it a collection, it is purely local
• Will be useful for handling of slices
• In addition to its UUID it should have a secondary
identifier, describing what it is linked too (e.g a slice
endpoint, an HTTP request)
• It should be able to hold multiple orders, which may
be more or less complete
• It should be KVO/KVC compliant
27. Parsing
• Having declared a base class, parsing can be
generic
• The parser is called with the result of every request
• A context should be provided to the parser. For
example if a sliced endpoint is queried, this can be
the collection class in order to enhance it
• The parser itself is recursive.
• It can contain a preparing phase to “fix/enhance/
modify” objects from coming from the backend
28. Parsing implementation
/* Entry point for JSON parsing and MMObject instantiations */
+ (void)createMMObjectsFromJSONResult:(id)jsonResult parsedTypes:
(MMObjectType *)parsedTypes contextProvider:(MMDataProvider
*)provider contextTask:(MMHTTPTask*)task parsingContext:(void
*)context
{
MMObjectType allParsedType =
_ParseAPIObjectWithExecutionBlock(jsonResult, provider, task);
if (parsedTypes) { *parsedTypes = allParsedType; }
return ;
}
30. API goodies : fields, version
• Use a NSSet to hold and manage present fields
• Define field sets that can be used to find what is
missing
• User server object versioning to avoid unneeded
parsing
• One point to pay attention : date parsing is costly,
use per thread date formatter caching
31. Offline storage (problems)
• After a few versions it is always cool to have it
• This is an heavy testing field!!!!!
• You can use CoreData but you should never believe
it is simple
• Simple SQLite 3 may be a good compromise
• Great benefits are also in startup times
33. Abstract or not abstract
• Abstract: the front end simply says “get me those
objects and if not here the are fetched”
• Non abstract: the front end check if there are
needed objects, and if not decide to fetch them
• Non abstract: network calls need to be launched
manually which is a good way of learning an API
I prefer not abstract
34. Abstract or not abstract
• Abstract: the front end simply says “get me those
objects and if not here the are fetched”
• Non abstract: the front end check if there are
needed objects, and if not decide to fetch them
• Non abstract: network calls need to be launched
manually which is a good way of learning an API
I prefer not abstract
35. Implementation
• One unique interface
/* Main interface to do queries and all */
- (NSString *)launchRequestToEndPointPath:(NSString
*)endPointPath andHTTPMethod:(NSString *)HTTPMethod
useSecureConnection:(BOOL)isSecure inBackground:(BOOL)background
withBody:(NSString *)body preparsingBlock:
(MMPreparseBlock)preparsingBlock completionBlock:
(MMCompletionBlock)completionBlock
• Endpoint path : the API path minus server. Learn
the API!!!
• Use of blocks avoid to spread code in all places
36. Technology
• iOS 7 has made a lot of network progress. IMHO no
need for a third party library
• Learn NSURLSession!
• Background modes can be difficult. You are usually
not the owner of time. Never try to go against the OS
all is here to be understood. But clearly it takes time
38. Communication Back Front
• Give a role to different way of communication
• To avoid definitely : NSNotification for everything.
This easily becomes unmanageable (more than 130
notifications)
• Personal rules :
• Notifications are for application important
changes (Network, User session start and stop)
• KVO is king for data transmission. Be careful of
threading
• Use block to mark end of network operation
39. Upgrade management
• Dedicate one object to version management
• First usage, first usage for current version,
• Mange data upgrade in an incremental way
40. Upgrade management
/* Use the Objective-C runtime */
- (BOOL) runUpgradeScenario
{
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Warc-performSelector-leaks"
__block BOOL result = NO;
!
if(NO == self.firstTimeForCurrentVersion && NO == self.firstTime)
return result;
!
!
}
NSMutableDictionary *allUpgrades= [NSMutableDictionary dictionary];
NSMutableDictionary *allStarts= [NSMutableDictionary dictionary];
//Find all upgrade methods
unsigned int outCount;
Method * allMethods = class_copyMethodList([self class], &outCount);
for(unsigned int idx = 0; idx < outCount; idx++) {
Method aMethod = allMethods[idx];
NSString *aMethodName = NSStringFromSelector(method_getName(aMethod));
if([aMethodName hasPrefix:@"_upgradeFrom"]) {
NSString *upgradeVersionString = [aMethodName substringWithRange:NSMakeRange([@"_upgradeFrom" length], 3)];
[allUpgrades setObject:aMethodName forKey:upgradeVersionString];
} else if ([aMethodName hasPrefix:@"_startAt"]) {
NSString *startVersionString = [aMethodName substringWithRange:NSMakeRange([@"_startAt" length], 3)];
[allStarts setObject:aMethodName forKey:startVersionString];
}
}
if(allMethods) free(allMethods);
if(self.firstTime) {
//sort them and perform the most "recent" one
SEL startSelector = NSSelectorFromString([allStarts[[[allStarts keysSortedByValueUsingSelector:@selector(compare:)]lastObject]]]);
[self performSelector:startSelector withObject:nil];
result = YES;
} else if(self.firstTimeForCurrentVersion) {
//Sort them and apply the one that needs to be applied
[[allUpgrades keysSortedByValueUsingSelector:@selector(compare:)] enumerateObjectsUsingBlock:^(NSString *obj, NSUInteger idx, BOOL
*stop) {
if([obj intValue] > _previous3DigitVersion) {
result = YES;
[self performSelector:NSSelectorFromString([allUpgrades objectForKey:obj]) withObject:nil];
}
}];
}
#pragma clang diagnostic pop
return result;