For over a decade, most of us built web UIs operating under the assumption that servers would render mostly-static HTML, and we’d boil the ocean and free all client-side memory with every page load. This was a simple world, where the server-side was aware of the user’s intent and context.
Enter the Single Page Application (SPA) - there are all sorts of usability and performance, and scalability benefits that come along with building a web app this way, but there are also some serious challenges. There are some implicit assumptions that our users make about how apps should work, and we must work a bit harder in order to keep them intact. Take the “Back” and “Refresh” buttons, for example: in order for this to work as our users expect, we must keep certain elements of state serialized in the URL in order to avoid “breaking” this as we simulate a multi-page experience in a SPA.
Add in the concept of “server-side rendering”, where our asset serving layer sometimes needs browser details (i.e. viewport dimensions) in order to render the correct content, and state decisions become even more consequential and complex.
In this talk, I’ll outline four types of state
Navigation state
Persisted state
UI state
“Will be persisted” state
and provide examples for each. Along the way, we’ll start to assemble a framework of questions that you can ask yourself when encountering new pieces of state, to lead you down the right path(s).
A Debugging Adventure: Journey through Ember.js GlueMike North
In this talk, we'll first look at a couple areas of the Ember framework that we typically don't end up touching. We'll first take a trip through the application and registry objects, touching on the changes around the recently-added Ember.getOwner API. We'll discuss initializers and instance initializers -- the most common place to make an adjustment to these kinds of objects. We'll leave listeners with a methodical process for debugging container-related issues
Next, we'll take a look at how Ember finds ES6 modules in particular places using the Resolver. If you get a "module not found" error, where can you look to see all registered modules in your app? How can we add a new ES6 module to our project? How can we ES6-ify a global or a named AMD module?
Finally, we'll look at Broccoli Ember-CLI's asset pipeline. We'll build a simple broccoli plugin that adds a copyright notice and a "build date" comment to the top of your production JavaScript assets, in less than 10 lines of code. We'll use broccoli-stew to get some visibility into what's going on in our app's build pipeline.
React For Vikings
with Mikko Haapoja
OVERVIEW
React For Vikings will be a somewhat hairy but totally barbaric look into building the behind the scenes site “Vikings – A World Revealed” for the History Channel. This talk will cover real world examples of how to use React to build performant, animation heavy, responsive sites while even getting designers involved on the development fun.
OBJECTIVE
To explain how Jam3 works with React in animation heavy sites
TARGET AUDIENCE
Developers interested in animation with React
ASSUMED AUDIENCE KNOWLEDGE
Some knowledge of React
FIVE THINGS AUDIENCE MEMBERS WILL LEARN
How to work with animations in React
How to create modularized UI components during a project
How to give designers the ability to work alongside developers
How to create performant animations in React
How to structure/architect highly animated sites
Software projects are rarely on-spec, on-time and on-budget, and the primary cause is miscommunication. As Martin Fowler says, there is a "yawning crevasse of doom" between stakeholders and developers, full of misunderstanding. How do you make sure that you're building something that adds value? How do you know you're building the thing that was asked for? How does your bottom line affect user experience?
Into the fray leaps Cucumber, a business-readable DSL combined with an awesome Ruby library that lets domain experts express business requirements as executable user stories. We'll cover outside-in, story-driven development with Cucumber, how to write effective stories, and how to make Cucumber work for your project.
(as given to CharlotteRuby on Jan 6, 2010)
A Debugging Adventure: Journey through Ember.js GlueMike North
In this talk, we'll first look at a couple areas of the Ember framework that we typically don't end up touching. We'll first take a trip through the application and registry objects, touching on the changes around the recently-added Ember.getOwner API. We'll discuss initializers and instance initializers -- the most common place to make an adjustment to these kinds of objects. We'll leave listeners with a methodical process for debugging container-related issues
Next, we'll take a look at how Ember finds ES6 modules in particular places using the Resolver. If you get a "module not found" error, where can you look to see all registered modules in your app? How can we add a new ES6 module to our project? How can we ES6-ify a global or a named AMD module?
Finally, we'll look at Broccoli Ember-CLI's asset pipeline. We'll build a simple broccoli plugin that adds a copyright notice and a "build date" comment to the top of your production JavaScript assets, in less than 10 lines of code. We'll use broccoli-stew to get some visibility into what's going on in our app's build pipeline.
React For Vikings
with Mikko Haapoja
OVERVIEW
React For Vikings will be a somewhat hairy but totally barbaric look into building the behind the scenes site “Vikings – A World Revealed” for the History Channel. This talk will cover real world examples of how to use React to build performant, animation heavy, responsive sites while even getting designers involved on the development fun.
OBJECTIVE
To explain how Jam3 works with React in animation heavy sites
TARGET AUDIENCE
Developers interested in animation with React
ASSUMED AUDIENCE KNOWLEDGE
Some knowledge of React
FIVE THINGS AUDIENCE MEMBERS WILL LEARN
How to work with animations in React
How to create modularized UI components during a project
How to give designers the ability to work alongside developers
How to create performant animations in React
How to structure/architect highly animated sites
Software projects are rarely on-spec, on-time and on-budget, and the primary cause is miscommunication. As Martin Fowler says, there is a "yawning crevasse of doom" between stakeholders and developers, full of misunderstanding. How do you make sure that you're building something that adds value? How do you know you're building the thing that was asked for? How does your bottom line affect user experience?
Into the fray leaps Cucumber, a business-readable DSL combined with an awesome Ruby library that lets domain experts express business requirements as executable user stories. We'll cover outside-in, story-driven development with Cucumber, how to write effective stories, and how to make Cucumber work for your project.
(as given to CharlotteRuby on Jan 6, 2010)
Paul Ruescher's Slide deck from the first Ember.js Meetup - Vancouver. (#EmberYVR) May 14th 2014 at CodeCore Bootcamp.
Ember.js is a framework for creating ambitious web applications. What does an "ambitious web application" even mean? What if I’m not working on an ambitious web application? In this talk, Paul will put you through an Ember Bootcamp on your way to $$$.
Overview of Spring Boot for the rapid development of Java Applications and Microservices. More information can be found at : https://www.spiraltrain.nl/course-spring-boot-development/?lang=en
Jab14 exemple of integration of Joomla and slim Framework
http://jandbeyond.org/program/sessions/dont-worry-be-api-best-practices-and-implementatio.html
In the context of a website or web application, an application-programming interface or API allows software developers to interact with and build upon the data and/or services delivered by your website. Thus, APIs provide limitless flexibility, reach and innovative potential for any website, service or application.
During the last few months, Pierre-André has performed extensive research and development to discover effective ways of adding an API to a Joomla website. In this interactive session, he will share his findings.
Attendees can expect to learn, why you need an API for your web site, the pros and cons of various API solutions, and why a RESTful API is a good fit for Joomla. Best practices for implementing a well-documented, pragmatic, and RESTful API will be discussed, along with useful tools and sample code for using the com_api component as well as Slim Framework.
Spring boot is a great and relatively a new project from Spring.io. The presentation discusses about basics of spring boot to advance topics. Sample demo apps are available here : https://github.com/bhagwat/spring-boot-samples
Getting Started with Test Automation: Introduction to Cucumber with Lapis LazuliRebecca Eloise Hogg
Introduction to web testing with Cucumber using spriteCloud's Lapis Lazuli Cucumber helper.
This presentation will take you through the steps needed to set up a test automation project using Cucumber - a software tool that runs automated tests in the BBD style - in combination with Lapis Lazuli, a gem that provides Cucumber helper functions and scaffolding for easier web test automation suite development.
To do this you will need to have installed Ruby with some drivers and libraries. You can find detailed notes on how to do this here: http://www.testautomation.info/Getting_Started
To successfully follow this tutorial, prior knowledge of test automation isn’t needed, but knowledge of scripting - especially Ruby - and HTML skills are recommended.
Lapus Lazuli's GitHub depository: https://github.com/spriteCloud/lapis-lazuli
For more information about everything test automation, whether you need someone to help you set up TA in your organisation or want to find out more about our Test Automation as a Service options, email: info@spritecloud.com.
Dans cette session vous apprendrez tout sur Ruby. Le langage, les frameworks, la communauté, mais surtout un esprit. Passé le teaser, Nicolas Ledez vous présentera comment Ruby peut vous apporter tous les jours une méthodologie dans votre travail, et des outils pour réaliser un prototype rapidement. Quel que soit votre langage d'origine, Ruby complète parfaitement votre boite à outils de développeur/administrateur système.
Vancouver AngularJS using $resource in your application Sachin Agrawal
AngularJS $resource is a great tool for quickly connecting to RESTful services. Unfortunately the docs and examples quickly lead you to bad design.
This presentation is a short set of design patterns for using the $resource service. It focuses on how to use promises and callbacks in your application for error handling, API isolation and extensibility.
I skip the details on the $resource syntax. The AngularJS docs do a great job there.
This tutorial is about Spring Boot.
The tutorial includes an introduction to Spring Boot, key features of Spring Boot, prototyping using CLI, managing profiles aka environment in Grails, using GORM and using GSP. The tutorial begins with a section which is an introduction to Spring Boot. It includes an introduction to Spring Boot, the benefits of using Spring Boot.
Following is a features section which includes the key features of Spring Boot like embedded servers, security, metrics etc. Next is a section about prototyping. It includes prototyping using CLI, getting started, the things that happen during prototyping, starter POMs and a demo, building Gradle, using plugin and adding dependencies, and hot reloading.
Consecutively there is a section about managing profiles. It includes managing profiles aka managing environment in Grails like binding properties and its examples, using spring data to add dependency. Moreover, there's also a section which includes using GORM for next level persistence and also includes server side view template libraries like JSP, velocity, tiles, GSP etc.
The last section of this tutorial is about GSP. It includes using GSP with Spring Boot as it has limited tags, adds dependency and helps in packaging executable JAR and WAR files.
Cowboy dating with big data TechDays at Lohika-2020b0ris_1
The story about things that happen if data platforms are developed not by data engineers, what pitfalls and mistakes can be made.
This will help you to understand what data engineering is about.
Like many others, WordPress has been my personal blogging tool for a long time. A powerful tool for easy publishing! That is what everyone wants.
Large sites like TechCrunch and TheNextWeb use it exactly for that reason. And more enterprises seem to discover it as good solution to their too-expensive publication tools. But keeping those WordPress instances running requires skills and knowledge.
Because of WordPress extendibility and its very active community, you can do this too. This tutorial will teach you how use Ansible, Composer, WP-CLI, WP REST API, and Elasticsearch can push WordPress from a personal blogging tool into an enterprise-worthy level application. Out with FTP based SCM ... in with automated deployment, dependency management, and utterly fast search.
Paul Ruescher's Slide deck from the first Ember.js Meetup - Vancouver. (#EmberYVR) May 14th 2014 at CodeCore Bootcamp.
Ember.js is a framework for creating ambitious web applications. What does an "ambitious web application" even mean? What if I’m not working on an ambitious web application? In this talk, Paul will put you through an Ember Bootcamp on your way to $$$.
Overview of Spring Boot for the rapid development of Java Applications and Microservices. More information can be found at : https://www.spiraltrain.nl/course-spring-boot-development/?lang=en
Jab14 exemple of integration of Joomla and slim Framework
http://jandbeyond.org/program/sessions/dont-worry-be-api-best-practices-and-implementatio.html
In the context of a website or web application, an application-programming interface or API allows software developers to interact with and build upon the data and/or services delivered by your website. Thus, APIs provide limitless flexibility, reach and innovative potential for any website, service or application.
During the last few months, Pierre-André has performed extensive research and development to discover effective ways of adding an API to a Joomla website. In this interactive session, he will share his findings.
Attendees can expect to learn, why you need an API for your web site, the pros and cons of various API solutions, and why a RESTful API is a good fit for Joomla. Best practices for implementing a well-documented, pragmatic, and RESTful API will be discussed, along with useful tools and sample code for using the com_api component as well as Slim Framework.
Spring boot is a great and relatively a new project from Spring.io. The presentation discusses about basics of spring boot to advance topics. Sample demo apps are available here : https://github.com/bhagwat/spring-boot-samples
Getting Started with Test Automation: Introduction to Cucumber with Lapis LazuliRebecca Eloise Hogg
Introduction to web testing with Cucumber using spriteCloud's Lapis Lazuli Cucumber helper.
This presentation will take you through the steps needed to set up a test automation project using Cucumber - a software tool that runs automated tests in the BBD style - in combination with Lapis Lazuli, a gem that provides Cucumber helper functions and scaffolding for easier web test automation suite development.
To do this you will need to have installed Ruby with some drivers and libraries. You can find detailed notes on how to do this here: http://www.testautomation.info/Getting_Started
To successfully follow this tutorial, prior knowledge of test automation isn’t needed, but knowledge of scripting - especially Ruby - and HTML skills are recommended.
Lapus Lazuli's GitHub depository: https://github.com/spriteCloud/lapis-lazuli
For more information about everything test automation, whether you need someone to help you set up TA in your organisation or want to find out more about our Test Automation as a Service options, email: info@spritecloud.com.
Dans cette session vous apprendrez tout sur Ruby. Le langage, les frameworks, la communauté, mais surtout un esprit. Passé le teaser, Nicolas Ledez vous présentera comment Ruby peut vous apporter tous les jours une méthodologie dans votre travail, et des outils pour réaliser un prototype rapidement. Quel que soit votre langage d'origine, Ruby complète parfaitement votre boite à outils de développeur/administrateur système.
Vancouver AngularJS using $resource in your application Sachin Agrawal
AngularJS $resource is a great tool for quickly connecting to RESTful services. Unfortunately the docs and examples quickly lead you to bad design.
This presentation is a short set of design patterns for using the $resource service. It focuses on how to use promises and callbacks in your application for error handling, API isolation and extensibility.
I skip the details on the $resource syntax. The AngularJS docs do a great job there.
This tutorial is about Spring Boot.
The tutorial includes an introduction to Spring Boot, key features of Spring Boot, prototyping using CLI, managing profiles aka environment in Grails, using GORM and using GSP. The tutorial begins with a section which is an introduction to Spring Boot. It includes an introduction to Spring Boot, the benefits of using Spring Boot.
Following is a features section which includes the key features of Spring Boot like embedded servers, security, metrics etc. Next is a section about prototyping. It includes prototyping using CLI, getting started, the things that happen during prototyping, starter POMs and a demo, building Gradle, using plugin and adding dependencies, and hot reloading.
Consecutively there is a section about managing profiles. It includes managing profiles aka managing environment in Grails like binding properties and its examples, using spring data to add dependency. Moreover, there's also a section which includes using GORM for next level persistence and also includes server side view template libraries like JSP, velocity, tiles, GSP etc.
The last section of this tutorial is about GSP. It includes using GSP with Spring Boot as it has limited tags, adds dependency and helps in packaging executable JAR and WAR files.
Cowboy dating with big data TechDays at Lohika-2020b0ris_1
The story about things that happen if data platforms are developed not by data engineers, what pitfalls and mistakes can be made.
This will help you to understand what data engineering is about.
Like many others, WordPress has been my personal blogging tool for a long time. A powerful tool for easy publishing! That is what everyone wants.
Large sites like TechCrunch and TheNextWeb use it exactly for that reason. And more enterprises seem to discover it as good solution to their too-expensive publication tools. But keeping those WordPress instances running requires skills and knowledge.
Because of WordPress extendibility and its very active community, you can do this too. This tutorial will teach you how use Ansible, Composer, WP-CLI, WP REST API, and Elasticsearch can push WordPress from a personal blogging tool into an enterprise-worthy level application. Out with FTP based SCM ... in with automated deployment, dependency management, and utterly fast search.
Building a full-stack app with Golang and Google Cloud Platform in one weekDr. Felix Raab
The talk will cover how to effectively build a production-ready, full-stack app with Golang and GCP under time constraints. I'll discuss how to approach making quick and sound technical decisions and how to apply modern software engineering practices for end-to-end apps. The presentation shows, in an opinionated and "meme-ful" way, various lessons learned, tools, and key takeaways for cloud environments.
This talk is about how to build a cluster to run a python or ruby (ruby on rails) application. We'll have a look at how the procedure of building such a cluster could look like and what you should take into consideration.
We'll look at issues like: datacenter, networking, load balancing, storage, database replication, ....
The story about things that happen if data platforms are developed not by data engineers, what pitfalls and mistakes can be made.
This will help you to understand what data engineering is about.
Like many others, WordPress has been my personal blogging tool for a long time. A powerful tool for easy publishing! That is what everyone wants.
Large sites like TechCrunch and TheNextWeb use it exactly for that reason. And more enterprises seem to discover it as good solution to their too-expensive publication tools. But keeping those WordPress instances running requires skills and knowledge.
Because of WordPress extendibility and its very active community, you can do this too. This tutorial will teach you how use Ansible, Composer, WP-CLI, WP REST API, and Elasticsearch can push WordPress from a personal blogging tool into an enterprise-worthy level application. Out with FTP based SCM ... in with automated deployment, dependency management, and utterly fast search.
While everyone is talking about ‘stateless’ services as a way to achieve scalability and high availability, the truth is that they are about as real as the unicorns. Building applications and services that way simply pushes the problem further down the stack, which only makes it worse and more difficult to solve (although, on the upside, it might make it somebody else’s problem). This is painfully obvious when building microservices, where each service must truly own its state.
The reality is that you don’t need ‘stateless’ services to either scale out or be fault tolerant — what you really need is a scalable, fault tolerant state management solution that you can build your services around.
In this talk we will discuss how some of the popular microservices frameworks are tackling this problem, and will look at technologies available today that make it possible to build scalable, highly available systems without ‘stateless’ service layers, whether you are building microservices or good ol’ monoliths.
Ultimate journey towards realtime data platform with 2.5M events per secb0ris_1
The story is about pain and enjoy or how we built realtime data platform with 2.5M events per second. What challenges we faced and which lessons were learned. Step by step we will introduce technologies we use like Spark, Presto, Kafka, AWS and EMR and best practices we come up to like monitoring, deployment and scaling.
Today's Cloud environments poses new challenges for application developers: Hiding Cloud infrastructure from business logic, assembling components on heterogeneous and distributed Cloud environment, optimizing the provisioning of the required Cloud resources and moving application components around to recompose the application. This presentation will demonstrate how to use Apache Tuscany and the Service Component Architecture (SCA) to assemble an application composed of several service components (written in Java, Python and C++) and deploy it to a distributed Cloud (EC2, Eucalyptus, Google AppEngine). We will show how to take the SCA assembly and automate the provisioning and configuration of the cloud platform services required by the application components on each platform, using Apache Libcloud and Apache Deltacloud. We will also illustrate how to encapsulate Cloud infrastructure services (Data store, queueing etc) as SCA components to simplify the construction and assembly of the application, and how to move components around, rewire the application to adjust to new business and Cloud deployment conditions.
Обход проверки безопасности в магазинах мобильных приложений при помощи платф...Positive Hack Days
В докладе описывается новый вектор атак на магазины приложений с обходом проверки безопасности, которая проводится при публикации приложения в любом магазине приложений. Обычно после публикации мобильного приложения магазины запускают песочницу или проводят тестирование вручную и решают, является ли оно легитимным. Используя платформу Hybrid (например, Cordova), можно обновлять мобильные приложения без согласия пользователя и уведомления магазинов.
The WordPress REST API is a powerful tool that can enhance your web development projects. In this presentation, attendees will learn how to leverage WordPress's existing endpoints and create custom ones using PHP without needing plugins. Attendees will also learn how to use their endpoints to power their front-end React apps, web apps or even entirely separate websites. Finally, attendees will learn about security concerns and how to lock down the REST API. Time permitting, attendees can have a Q&A period to ask questions.
The WordPress REST API was introduced in 2016 in version 4.7. It has been part of the WordPress ecosystem for about seven years and is well-documented. With the introduction of React and Gutenberg blocks, the REST API can take on a new life to help developers create complex apps with relative ease. Where once it was primarily used for basic integrations, now developers are harnessing its full capabilities for ambitious projects. The WordPress REST API can power modern web applications and custom blocks, showing that it remains highly relevant for building on the web today. Even after years of existence, the REST API remains a cornerstone of the WordPress framework.
Put a little Backbone in your WordPress vs. 3adamsilverstein
Backbone (and Underscore!) are bundled with WordPress – explore how you can leverage their power to deliver complex user experiences while keeping your code organized and maintainable. When and why should you use Backbone? How can WordPress help?
An Introduction to ReactJS, A JS Library for building user interfaces developed by Facebook Team, also this presentation introduce what is the ReduxJS Library and how we can use it with ReactJS.
Your users are almost certainly vulnerable in one way or another. Mike North explores a series of common web app security pitfalls, first demonstrating how to exploit the vulnerability and then recommending a pragmatic and effective defense against the attack. Buckle up, because Mike's about to take some things you love and depend on and smash them to bits.
Growth of mobile web traffic has been outpacing desktop web traffic for years, and data reveals that users are likely to abandon experiences that too long to load.
Progressive web apps aim to be reliable, fast and engaging, regardless of form factor or quality of internet connection. We'll walk through several key aspects of PWAs, illustrating performance and usability improvements by showing quantitative comparisons to an equivalent "classic SPA".
With each passing year, JavaScript becomes a more and more suitable language for mobile development. Regardless of whether you use Cordova to run a locally-hosted web app on the device, or a framework like React Native to generate native views from JavaScript, there's a common challenge: tapping into native device functionality with plugins.
We'll set our sights on iteratively building simple Cordova and React Native plugins, which provide a JavaScript facade to access iOS or Android SDK functionality. As our plugins evolve, our understanding of best practices for "bridging the gap" -- and indeed our understanding of how these tools work internally will become more accurate and comprehensive.
After this talk, developers will think of technologies like Cordova and React Native as less of a temperamental black box, and will feel more confident in the prospect of debugging, contributing to or authoring a native plugin of their own.
One of the major challenges of building rich applications for the web, is that our foundation (JavaScript in the browser) is a document viewer, not an application platform. In fact, if you show a mobile or desktop app developer the primitives we are given to start with, the typical reaction is that we’re missing many important building blocks.
All of the tools we rely on like Angular 2, React, Ember, Polymer, etc... all are, essentially, shims and hacks that we make use of while we wait for things like the W3C Web Component spec to be completed and implemented in browsers. As it becomes more feasible to build on the standards instead of a framework, it becomes important for developers to have awareness of what those standards are, what’s missing from the official spec, and how well of a job our favorite libraries do with establishing alignment.
We’ll take a close look at the W3C component spec, and compare it to the concept of a Component in the React.js library, the and the Ember.js 2 and Angular 2 frameworks. We’ll try to do a few things using native web components, involving rendering and styling an encapsulated piece of interactive UI. Along the way, we will highlight the things that we’re waiting in the W3C spec, which we’d need to land before we can start decoupling our apps from a specific third party tool, and rely on “Native Web Components”
Phoenix for Rubyists - Rubyconf Brazil 2016Mike North
Phoenix, an opinionated web framework built with Elixir, is taking the web dev world by storm. Like Rails, it's focused on productivity, but because it is built on the foundation of Erlang and the BEAM (Erlang Virtual Machine), it can be strong in the areas where Rails tends to struggle a bit.
First, I'll provide a quick intro to Elixir & Phoenix, oriented toward developers who are used to Ruby & Rails conventions. We'll cover routing, the handling of incoming requests (this is done quite differently in Phoenix compared to Rails) and the model layer -- comparing ActiveRecord to Ecto.
Next, we’ll set up a couple of simple CRUD resources in Phoenix, and try two approaches of running it side-by-side with Rails. Knowing how to do this is important if you aim to incrementally migrate from one framework to the other, over some period of time.
Finally, I'll provide a few patterns as to how you could start migrating key pieces of your app over to elixir gradually, using Rails as thin REST API layer, and relying on Elixir & Phoenix as a powerful background job processor. Attendees will be left with a general understanding of how Elixir & Phoenix work, and how to leverage the awesome concurrency, without rewriting their whole Rails app.
Because Elixir and Phoenix borrow so many good ideas from the Rails ecosystem, it’s astoundingly easy for Ruby developers to become proficient in this powerful new set of tools. First, I’ll introduce Phoenix from a Rails POV, and then show two ways it can be used in conjunction with Rails.
Write Once, Run Everywhere - Ember.js MunichMike North
Ember.js is an opinionated web framework, that allows developers to focus less on boilerplate, and focus more on what makes their app unique. We’ll go over some of the best practices of using Ember for cross-device development, introduce Cordova and NW.js, and then discuss modular design, testing, encapsulation of native functionality in the context of an open source case study project.
In a distributed system, the complexity and challenges that accompany asynchrony, consistency, connectivity and concurrency make it particularly difficult to build a user experience that “wows” your users. Desktop and mobile developers have been wrestling problems like these for years, and finally web apps are catching up!
I’ll go over some UI and software architecture patterns involving long-running proceses, concurrent editing, and operations that require user intervention, to show that with a small adjustment in how one thinks about these things, building a UI for a distributed system is not a herculean task.
Modern, Scalable, Ambitious apps with Ember.jsMike North
Emberjs is an opinionated web UI framework focused on developer productivity. I will introduce the basics of the framework, and provide several examples of where ember saves an unprecedented amount of time for dev teams. Additionally, I'll cover ember-cli, the extensible build tool that the Emberjs and Angular communities are depending on for code generation, asset compilation, and running tests
A discussion of three types of ember addons: one that makes components available to consuming apps, one that modifies the asset pipeline of consuming app, and one that adds a new command to ember-cli
CI/CD and Asset Serving for Single Page AppsMike North
A journey through best practices and technology for the modern build/deploy pipeline that your modern web app deserves! Also, an introduction to the concept and architecture of a new open source turnkey asset serving layer "Banker".
Modern Web UI 9/29 @ LinkedIn Sunnvale. A presentation on the user perception of web app performance, along with pro tips from my experience building large-scale single-page apps
User Percieved Performance @ San Francisco Ember.js Meetup - 8/25/2015.
The perception of performance is as important as performance its self. In this talk I'll cover some aspects of user perception, talk about performance instrumentation, and then share some UX tips to keep your users more engaged -- even when they're waiting
Ember.js is an opinionated web framework, that allows developers to focus less on boilerplate, and focus more on what makes their app unique. We'll go over some of the best practices of using Ember for cross-device development, and then build an app from a single codebase that produces a standalone desktop app, an in-browser web app and an iOS/Android app.
Along the way we'll cover:
* A high level overview of the Ember.js ecosystem, including build tools and "add-ons"
* Recent improvements to Ember's view layer, and the ramifications on mobile performance
* Best practices for tooling & build pipelines, to maintain your cross-device compatibility
Compose all the things (Wicked Good Ember 2015)Mike North
At Wicked Good Ember 2015, I discuss composability patterns in Ember.js and modern web development in general. Detailed case studies are examined in the areas of CSS, Computed Properties, Components and Testing
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
Generating a custom Ruby SDK for your web service or Rails API using Smithyg2nightmarescribd
Have you ever wanted a Ruby client API to communicate with your web service? Smithy is a protocol-agnostic language for defining services and SDKs. Smithy Ruby is an implementation of Smithy that generates a Ruby SDK using a Smithy model. In this talk, we will explore Smithy and Smithy Ruby to learn how to generate custom feature-rich SDKs that can communicate with any web service, such as a Rails JSON API.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
2. WHOIS MIKE-NORTHI’ve taught thousands of developers, how to win with
I used to be the UI Architect for Ads & Data at
I’ve consulted/trained for companies with gnarly apps,
and have noticed a common challenge…
17. ADDRESSABLE STATE
HOW TO IDENTIFY ADDRESSABLE STATE
‣ Affects GET API calls
‣ A perspective on a record or collection of records
‣ Useful when shared
‣ Mismanaged when - back button breaks
18. ADDRESSABLE STATE
CONTRACT: USERS AND THE WEB
▸ Refresh: never destructive by surprise
▸ Bookmarks: get back to where I was
▸ Back: previous major thing
▸ Back a lot: leave the app
19. keyUp
refresh
debounce
ADDRESSABLE STATE
ENHANCING OUR BASIC APP
▸ Filter by a name fragment
▸ Bookmark & Share
▸ Don’t abuse our API
▸ Data Down, Actions Up PostsController
PostsRoute
{{input}}
queryParams: {
search: { replace: true }
}
30. ADDRESSABLE STATE
GOTCHAS AND COMMON ISSUES
▸ Trapping users
▸ Deleting useful history
▸ Unimportant history states
▸ Some Route queryParam options
are mutually exclusive (right now)
(replace vs refreshModel)
▸ Tricky: Add to Home Screen
⚠
33. DRAFT STATE
EXAMPLES
‣ A reply to an email
message
‣ The body of a huge GitHub
comment
‣ In-flight records
HOW TO IDENTIFY
‣ Will turn into persisted state
‣ High user effort
‣ Survives transitions
‣ Detrimental to UX if lost
40. DRAFT STATE
CONCEPTUAL MODEL - KEY CONCEPT WEAK MAP
If an object that is being used as the key
of a WeakMap key/value pair is only
reachable by following a chain of
references that start within that
WeakMap, that key/value pair is
inaccessible and is automatically
removed from the WeakMap.
http://www.ecma-international.org/ecma-262/6.0/#sec-weakmap-objects
41. DRAFT STATE
CONCEPTUAL MODEL - KEY CONCEPT WEAK MAP
If an object that is being used as the key
of a WeakMap key/value pair is only
reachable by following a chain of
references that start within that
WeakMap, that key/value pair is
inaccessible and is automatically
removed from the WeakMap.
http://www.ecma-international.org/ecma-262/6.0/#sec-weakmap-objects
42. If an object that is being used as the key
of a WeakMap key/value pair is only
reachable by following a chain of
references that start within that
WeakMap, that key/value pair is
inaccessible and is automatically
removed from the WeakMap.
DRAFT STATE
CONCEPTUAL MODEL - KEY CONCEPT WEAK MAP
http://www.ecma-international.org/ecma-262/6.0/#sec-weakmap-objects
43. DRAFT STATE
CONCEPTUAL MODEL - KEY CONCEPT
WEAK MAP*
📄A Post
💬
A Comment
// Store the value on the key
post._some_random_property_name = comment;
// Access the value, given the key
WeakMap.prototype.get = function(key) {
return key._some_random_property_name;
};
44. DRAFT STATE
THE SOLUTION FOR EMBER APPS
▸ ember-state-services
▸ Built on top of WeakMap
▸ StateFactory - creates draft state objects
▸ stateFor - computed property that returns a particular
state
@stefanpenner@thoov
45. DRAFT STATE
ENHANCING OUR APP
▸ They must “stick” with the
post they’re commenting on
▸ If we delete a post, the draft
must be deleted as well
▸ No leaks
{{POST-FULL}}
POST-INFO STATES
MODELS
46. DRAFT STATE
ENHANCING OUR APP
▸ They must “stick” with the
post they’re commenting on
▸ If we delete a post, the draft
must be deleted as well
▸ No leaks
{{POST-FULL}}
POST-INFO STATES
MODELS
47. DRAFT STATE
ENHANCING OUR APP
▸ They must “stick” with the
post they’re commenting on
▸ If we delete a post, the draft
must be deleted as well
▸ No leaks
{{POST-FULL}}
POST-INFO STATES
MODELS
60. STORED IN A LONG-LIVING
MEDIUM FOR A LONG TIME
Core Concept - Persisted State
PERSISTED STATE
61. PERSISTED STATE
EXAMPLES
‣ Anything stored in/on a…
‣ Database/Disk
‣ Local storage
‣ Third party API
HOW TO IDENTIFY
▸ Lives longer than a session
▸ Tracked over time
▸ Seen by many users
62. POST/SHOW
PERSISTED STATE
ENHANCING OUR BASIC APP
▸ POST to API for create
▸ Draft cleared if successful
▸ DELETE to API for delete
▸ Must work in high-latency
{{ POST-FULL }}
{{ POST-COMMENT }}
{{ POST-COMMENT }}
81. PERSISTED STATE
PERSISTED STATE - BEST PRACTICES
▸ Consider that things may change during async
▸ Build simple objects and then createRecord
▸ Consider in-flight records
106. THANKS!
I’ve taught thousands of developers how to win with
Want me to whip your team into shape?
I’d love to talk to you!
michael.l.north@gmail.com
@MichaelLNorth
bit.ly/ef16-stateSlides