The document discusses YouView's efforts to support HTML5 development for their platform. It outlines their process for allowing local development on production devices, tests of popular JavaScript frameworks for performance, and best practices for optimizing loading times such as lazy loading, modular code, and build tools. Test results showed underscore.js had the best performance and loading code in modular bundles helped speed up loading times by 2x.
Continuous Integration, the minimum viable productJulian Simpson
What does it mean to 'do' Continuous Integration? It used to be enough to execute your unit tests in CI. But the bar is steadily raising for engineering practices. In the last decade we've seen tremendous improvements inacceptance testing. JavaScript is now a platform in it's own right. Cloudcomputing is now vital. There's growing interest in deployment to prod.So Continuous Integration is under more pressure than ever. As the bar slowly raises for engineering practices, we ll present 2011's minimum viable feature set for Continuous Integration
It is a presentation to help software developers get started with a testing platform Cypress. I have created it personally and given the most basics of explanation regarding the new concepts.
Flex on Grails - Rich Internet Applications With Rapid Application DevelopmentTalentica Software
Flex on Grails lets you combine the processes and technologies of rapid application development to the creation of Rich Internet Applications (RIAs).
This session provides an introduction to Flex on Grails and benefits of Flex over an Ajax based web application. Learn how to build / debug and run an application using Flex on Grails. The session is based on the experience gained while building an internal CRM application which took us days instead of weeks to develop!
Introduction to Integration Testing With CypressErez Cohen
A quick overview over Cypress, a front end testing library, going over the motivation to incorporate it for integration tests and some best practices of how to use it.
Continuous Integration, the minimum viable productJulian Simpson
What does it mean to 'do' Continuous Integration? It used to be enough to execute your unit tests in CI. But the bar is steadily raising for engineering practices. In the last decade we've seen tremendous improvements inacceptance testing. JavaScript is now a platform in it's own right. Cloudcomputing is now vital. There's growing interest in deployment to prod.So Continuous Integration is under more pressure than ever. As the bar slowly raises for engineering practices, we ll present 2011's minimum viable feature set for Continuous Integration
It is a presentation to help software developers get started with a testing platform Cypress. I have created it personally and given the most basics of explanation regarding the new concepts.
Flex on Grails - Rich Internet Applications With Rapid Application DevelopmentTalentica Software
Flex on Grails lets you combine the processes and technologies of rapid application development to the creation of Rich Internet Applications (RIAs).
This session provides an introduction to Flex on Grails and benefits of Flex over an Ajax based web application. Learn how to build / debug and run an application using Flex on Grails. The session is based on the experience gained while building an internal CRM application which took us days instead of weeks to develop!
Introduction to Integration Testing With CypressErez Cohen
A quick overview over Cypress, a front end testing library, going over the motivation to incorporate it for integration tests and some best practices of how to use it.
Jun Heider - Flex Application Profiling By Example360|Conferences
This session will be light on slides and heavy on demonstration. The session will start with a brief explanation of the concepts that will be discussed and then kick into high gear with demonstrations and live profiling with the Flex Builder Profiler. During the session the features of the Flex Builder Profiler will be illustrated and light will be shed on how to analyze the data collected by the Profiler. The goal of this session will be to arm the attendee with the ability to use the Flex Builder Profiler to help increase the responsiveness and decrease the memory consumed by their applications.
We covered basics of using a predefined readymade test automation framework. Configuring it using build tool (Gradle) in IDE (Eclipse/IntelliJ). Run tests and explore reports and test management concepts.
Docker в последняя время набрал огромную популярность как инструмент разработчиков и DevOps-специалистов, но все ещё не так активно используется для автоматизированного тестирования. Во время воркшопа я поделюсь несколькими сценариями, когда Docker может помочь автоматизировать то что ранее считалось непригодным к автоматизации. Также, мы попробуем создать свой собственный образ и запустить несколько контейнеров используя docker-compose.
Continuous integration / continuous delivery of web applications, Eugen Kuzmi...Evgeniy Kuzmin
What will be discussed:
- Building the process of continuous integration/delivery on the example of a Laravel application;
- The structure of the auto-testing organization;
- Integration of running tests and deploy on Jenkins CI server;
- Employment of Docker in conjunction with AWS ElasticBeanstalk for blue-green deployment.
Continuous Integration/ Continuous Delivery of web applicationsEvgeniy Kuzmin
Smart Gamma use case of implementation Continuous Integration/ Continuous Delivery for Laravel web app, tested by phpunit and Behat, build automation with Jenkins, blue-green deploy on AWS Beanstalk
** DevOps Training: https://www.edureka.co/devops **
This Docker Jenkins Tutorial PPT will help you understand how to run an entire software development workflow by integrating Docker and Jenkins. Below are the topics covered in the tutorial:
1. What is Jenkins?
2. What is Docker?
3. What are Microservices?
4. Use case
5. Hands-On
Check our complete DevOps playlist here (includes all the videos mentioned in the video): http://goo.gl/O2vo13
Continuous Delivery with Jenkins: the Good, the Bad and the Ugly - JAX DevOps...Tommy Tynjä
Jenkins is one of the most popular tools for Continuous Integration and Continuous Delivery today. It’s easy to set up and get started with. But what are the best practices for building delivery pipelines with Jenkins? Should you use the traditional build jobs or opt for the new Jenkins pipelines? What options are there for, e.g. visualization or infrastructure as code support? How do I structure my shared libraries so that they’re easy to maintain?
In this talk, I’ll share my many years of experiences from working with Jenkins for Continuous Delivery. We’ll take a look at pros and cons of different approaches but also how Jenkins compares to its competitors, where it shines, and where it leaves room for improvement.
Presented at JAX DevOps & Finance, London, United Kingdom on April 10th 2018.
Javascript Frameworks (and How to Learn Them)All Things Open
Presented at: All Things Open RTP Meetup
Presented by: Peter Elbaum, Praxent
Abstract:
There are countless blog posts and tweets given to the topic of whether to choose Vue, React or Angular. We spend a lot of time debating the difference between the frameworks, but we often overlook the reasons that front-end frameworks were created in the first place. This talk will address how front-end development was done before frameworks existed and discuss the main problem that frameworks solve. Through grasping the reason for frameworks, attendees of this talk will be able to accelerate the process of learning a new front-end framework. Specifically, this talk with address component-based architecture, application state management, and component interaction. We'll cover what to look for when learning a new framework and strategies for internalizing the nuances of the various framework ecosystems. Seeing the commonalities among these frameworks allows for grasping the bigger picture.
Build your first DApp using Substrate Framework - Part IKnoldus Inc.
Substrate is a development framework for creating blockchains, offering different levels of abstraction depending on developer needs. It dramatically reduces the time, energy, and money required to create a new blockchain.
Substrate provides a much larger canvas for developers to experiment on, as compared to smart contract platforms like Ethereum. It allows for full control of the underlying storage, consensus, economics, and state transition rules of the blockchain, things which you generally cannot modify on a standard smart contract platform.
~ First, it reduces the burden on parachain builders by providing security-as-a-service from the relay chain. This shared security simplification lowers friction for builders and simplifies the process of launching a new parachain.
~ Second, shared security provides a framework for parachains to talk to each other, which ultimately allows parachains to specialize.
In this session you will explore how to build decentralized apps (dApps) directly into your own blockchain using the Substrate development framework and module library.
Доклад Евгения Кузьмина для "Съесть собаку" #14: PHP, 20/092018
Тезисы:
Построение процесса continuous integration/delivery на примере Laravel-приложения;
Структура организации авто-тестирования;
Интеграция запуска тестов и деплоя на CI сервере Jenkins;
Применение Docker в связке с AWS ElasticBeanstalk для blue-green деплоя.
What is Continuous Integration? | Continuous Integration with Jenkins | DevOp...Edureka!
** DevOps Training: https://www.edureka.co/devops **
This Edureka tutorial on Continuous Integration explains the concept of Continuous Integration, its benefits and its Tools (Jenkins). Below are the topics covered in the tutorial:
1. Traditional Integration and its Problems
2. What is Continuous Integration
3. Benefits of Continuous Integration
4. Requirements for CI System
5. Jenkins – The Ultimate CI Tool
6. Jenkins Plugins
7. Hands-On
Check our complete DevOps playlist here: http://goo.gl/O2vo13
Over time, the software industry has come up with many ways to deliver code. Why is it so important to be in production as much as possible? What advantages and disadvantages do we have in rapid releases? Let’s talk about how to be faster, safer, and with better quality.
This is an introduction to BDD and the Gherkin syntax. It aims to explain:
* What's Gherkin. Why it's used. An example of all the keywords in Gherkin
* How Gherkin fits into BDD (features files, writing tests first etc)
What do the terms serverless, containers, and virtual machines mean? Which should I use to build my app? The answer (as always) is "it depends." In this session learn the tradeoffs between these different approaches, whether you're building your app from scratch or want to move an existing web or mobile application to the cloud. We'll discuss open source tools such as Kubernetes, Istio, and Knative, and we'll discuss Google Cloud Platform tools like Compute Engine, Google Kubernetes Engine (GKE), App Engine, and Cloud Functions.
Jun Heider - Flex Application Profiling By Example360|Conferences
This session will be light on slides and heavy on demonstration. The session will start with a brief explanation of the concepts that will be discussed and then kick into high gear with demonstrations and live profiling with the Flex Builder Profiler. During the session the features of the Flex Builder Profiler will be illustrated and light will be shed on how to analyze the data collected by the Profiler. The goal of this session will be to arm the attendee with the ability to use the Flex Builder Profiler to help increase the responsiveness and decrease the memory consumed by their applications.
We covered basics of using a predefined readymade test automation framework. Configuring it using build tool (Gradle) in IDE (Eclipse/IntelliJ). Run tests and explore reports and test management concepts.
Docker в последняя время набрал огромную популярность как инструмент разработчиков и DevOps-специалистов, но все ещё не так активно используется для автоматизированного тестирования. Во время воркшопа я поделюсь несколькими сценариями, когда Docker может помочь автоматизировать то что ранее считалось непригодным к автоматизации. Также, мы попробуем создать свой собственный образ и запустить несколько контейнеров используя docker-compose.
Continuous integration / continuous delivery of web applications, Eugen Kuzmi...Evgeniy Kuzmin
What will be discussed:
- Building the process of continuous integration/delivery on the example of a Laravel application;
- The structure of the auto-testing organization;
- Integration of running tests and deploy on Jenkins CI server;
- Employment of Docker in conjunction with AWS ElasticBeanstalk for blue-green deployment.
Continuous Integration/ Continuous Delivery of web applicationsEvgeniy Kuzmin
Smart Gamma use case of implementation Continuous Integration/ Continuous Delivery for Laravel web app, tested by phpunit and Behat, build automation with Jenkins, blue-green deploy on AWS Beanstalk
** DevOps Training: https://www.edureka.co/devops **
This Docker Jenkins Tutorial PPT will help you understand how to run an entire software development workflow by integrating Docker and Jenkins. Below are the topics covered in the tutorial:
1. What is Jenkins?
2. What is Docker?
3. What are Microservices?
4. Use case
5. Hands-On
Check our complete DevOps playlist here (includes all the videos mentioned in the video): http://goo.gl/O2vo13
Continuous Delivery with Jenkins: the Good, the Bad and the Ugly - JAX DevOps...Tommy Tynjä
Jenkins is one of the most popular tools for Continuous Integration and Continuous Delivery today. It’s easy to set up and get started with. But what are the best practices for building delivery pipelines with Jenkins? Should you use the traditional build jobs or opt for the new Jenkins pipelines? What options are there for, e.g. visualization or infrastructure as code support? How do I structure my shared libraries so that they’re easy to maintain?
In this talk, I’ll share my many years of experiences from working with Jenkins for Continuous Delivery. We’ll take a look at pros and cons of different approaches but also how Jenkins compares to its competitors, where it shines, and where it leaves room for improvement.
Presented at JAX DevOps & Finance, London, United Kingdom on April 10th 2018.
Javascript Frameworks (and How to Learn Them)All Things Open
Presented at: All Things Open RTP Meetup
Presented by: Peter Elbaum, Praxent
Abstract:
There are countless blog posts and tweets given to the topic of whether to choose Vue, React or Angular. We spend a lot of time debating the difference between the frameworks, but we often overlook the reasons that front-end frameworks were created in the first place. This talk will address how front-end development was done before frameworks existed and discuss the main problem that frameworks solve. Through grasping the reason for frameworks, attendees of this talk will be able to accelerate the process of learning a new front-end framework. Specifically, this talk with address component-based architecture, application state management, and component interaction. We'll cover what to look for when learning a new framework and strategies for internalizing the nuances of the various framework ecosystems. Seeing the commonalities among these frameworks allows for grasping the bigger picture.
Build your first DApp using Substrate Framework - Part IKnoldus Inc.
Substrate is a development framework for creating blockchains, offering different levels of abstraction depending on developer needs. It dramatically reduces the time, energy, and money required to create a new blockchain.
Substrate provides a much larger canvas for developers to experiment on, as compared to smart contract platforms like Ethereum. It allows for full control of the underlying storage, consensus, economics, and state transition rules of the blockchain, things which you generally cannot modify on a standard smart contract platform.
~ First, it reduces the burden on parachain builders by providing security-as-a-service from the relay chain. This shared security simplification lowers friction for builders and simplifies the process of launching a new parachain.
~ Second, shared security provides a framework for parachains to talk to each other, which ultimately allows parachains to specialize.
In this session you will explore how to build decentralized apps (dApps) directly into your own blockchain using the Substrate development framework and module library.
Доклад Евгения Кузьмина для "Съесть собаку" #14: PHP, 20/092018
Тезисы:
Построение процесса continuous integration/delivery на примере Laravel-приложения;
Структура организации авто-тестирования;
Интеграция запуска тестов и деплоя на CI сервере Jenkins;
Применение Docker в связке с AWS ElasticBeanstalk для blue-green деплоя.
What is Continuous Integration? | Continuous Integration with Jenkins | DevOp...Edureka!
** DevOps Training: https://www.edureka.co/devops **
This Edureka tutorial on Continuous Integration explains the concept of Continuous Integration, its benefits and its Tools (Jenkins). Below are the topics covered in the tutorial:
1. Traditional Integration and its Problems
2. What is Continuous Integration
3. Benefits of Continuous Integration
4. Requirements for CI System
5. Jenkins – The Ultimate CI Tool
6. Jenkins Plugins
7. Hands-On
Check our complete DevOps playlist here: http://goo.gl/O2vo13
Over time, the software industry has come up with many ways to deliver code. Why is it so important to be in production as much as possible? What advantages and disadvantages do we have in rapid releases? Let’s talk about how to be faster, safer, and with better quality.
This is an introduction to BDD and the Gherkin syntax. It aims to explain:
* What's Gherkin. Why it's used. An example of all the keywords in Gherkin
* How Gherkin fits into BDD (features files, writing tests first etc)
What do the terms serverless, containers, and virtual machines mean? Which should I use to build my app? The answer (as always) is "it depends." In this session learn the tradeoffs between these different approaches, whether you're building your app from scratch or want to move an existing web or mobile application to the cloud. We'll discuss open source tools such as Kubernetes, Istio, and Knative, and we'll discuss Google Cloud Platform tools like Compute Engine, Google Kubernetes Engine (GKE), App Engine, and Cloud Functions.
Enterprise-Grade DevOps Solutions for a Start Up BudgetDevOps.com
Even though you’re a small startup or medium-sized business and just beginning your product journey, it doesn’t mean you can’t have a robust and scalable DevOps environment like the enterprise experts. It is always a good practice when building a startup or a new company to have a solid foundation and start implementing efficient and scalable solutions early. Join and learn how having a limited budget doesn’t mean you can’t have enterprise quality tools.
ShowNTell: An easy-to-use tool for answering students’ questions with voice-o...Anand Bhojan
The use of recording applications for teaching is increasingly popular, with tools such as Ink2Go and ShowMe being available on many platforms and at reasonable cost. However, most recording applications available are typically native applications and do not work within the web browser. In this work, we study the feasibility of implementing a recording solution in the web browser environment.
The design details of ShowNTell can be found in the paper (http://www.comp.nus.edu.sg/~bhojan/papers/ShowNTell15.pdf) published in IEEE ASEE 45th Frontiers In Education 2015 Conference. Please use it for all the references of this ShowNTell project.
Poster: http://www.comp.nus.edu.sg/~bhojan/papers/showNtell15.png
Details and Demo @ www.sntboard.com
NB:- There are new features such as real-time collaborative drawing and non-linear editing are added in the latest versions. Register at www.sntboard.com to get regular updates.
"The greatest challenge of education in the digital world is to train the mind to focus with a strong feeling of purpose where the time shrinks and to re-focus at will" - Dr Bhojan Anand
Talk presented at DevOpsDays in Auckland (2017) discussing how DevOps applies to Embedded Software Development. This talk discusses the approaches Navico have taken in the past and are planning to do going forward.
Greens Technology is a leading Training and Placement company in Chennai. We are
known for our practical approach towards trainings that enable students to gain real-
time exposure on competitive technologies. Trainings are offered by employees from
MNCs to give a real corporate exposure.
DockerCon Europe 2018 Monitoring & Logging WorkshopBrian Christner
This is the Docker Logging & Monitoring workshop completed during DockerCon 2018 Europe. We cover how to build native tools in Docker, deploy an ELK stack, and Prometheus with cAdvisor, node-exporter, Prometheus, and Grafana stack
Announcing AWS CodeBuild - January 2017 Online Teck TalksAmazon Web Services
Today’s cutting edge companies have software release cycles measured in days instead of months. This agility is enabled by the DevOps practice of continuous integration and delivery, which automates building, testing, and deploying all code changes. This automation helps you catch bugs sooner and accelerates developer productivity. In this session, we’ll share the processes followed by Amazon engineers and discuss how you can bring them to your company by using a set of application lifecycle management tools from AWS: the newly announced AWS CodeBuild service, AWS CodePipeline, and AWS CodeDeploy.
Learning Objectives:
• Understand the concepts of DevOps, continuous integration, and continuous delivery
• Learn about Amazon’s DevOps practices
• Hear an overview of how to build a continuous integration and continuous delivery workflow using the combination of CodeBuild, CodePipeline, and CodeDeploy
Software release cycles are now measured in days instead of months. Cutting edge companies are continuously delivering high quality software at a fast pace. In this session, we cover how you can begin your DevOps journey by sharing best practices and tools used by engineering teams at Amazon. We showcase how you can accelerate developer productivity by implementing continuous integration and delivery workflows. In addition, we introduce AWS CodeStar, AWS CodeCommit, AWS CodeBuild, AWS CodePipeline, AWS CodeDeploy, and AWS X-Ray, the services inspired by Amazon's internal developer tools and DevOps practices.
A Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer ToolsAmazon Web Services
Software release cycles are now measured in days instead of months. Cutting-edge companies are continuously delivering high-quality software at a fast pace. In this session, we will cover how you begin your DevOps journey by sharing best practices and tools by the "two pizza" engineering teams at Amazon. We will showcase how you can accelerate developer productivity by implementing continuous integration and delivery workflows. Here to share their story is FamilySearch, a large nonprofit customer, deploys 1700 code implementations a day using native AWS tools. This allows them to improve feature sets, provide better member experience, and improve their ability to deliver improved functionality quickly. FamilySearch has been doing DevOps in the cloud longer than any of our PS customers and their expertise in this field is unmatched. In this session, they'll provide deep insight into managing the challenges of migrating to a DevOps model, using cloud services to differentiate a business, and improving an organization's ability to do more with less.
Our presentation from the DevOps CTO Masterclass
Businesses can drive many benefits from adopting DevOps – from streamlining timely tasks, to improving the stability of development and deployment. But you can only secure these through implementing the right strategy. Only that exercise can inspire your dev team towards success.
8. Why
● Greater availability.
● Lower cost to entry.
● Don’t need to support multiple content
environments, test dev on live.
9. Development Process
Contact YouView
content operations
team and complete
the on boarding
process*
Receive access to
developer portal,
Developer signing
credentials and
developer tools
Develop and
deploy to a
production device
*(Ts&Cs may apply)
11. Local Application Environment
- Device DNS
points to Hosting
server IP.
- Developer mode
enabled on the
device.
- Local PC hosts signed
application that can be
launched, replicating YouView
metadata environment locally.
13. Libraries and Frameworks
Test strategy:
● simple text application
● first generation device
● limited number of test iterations
● test for application loading time
● and memory consumption
20. Areas to Optimise
App Bootstrapping
LCD Test Bench by xunil96 (CC BY-SA)
Download Weight
The Computing Scale Co by Kenny Louie (CC BY)
Network Requests
Switchboard by christopher_brown (CC BY)
Worked around performance of HTML apps and with the BBC recently to improve performance of their apps on YouView devices.
Involved with the Sony project to bring YouView to their 2015 Bravia models.
Today, we’re going to talk about how we are lowering the barriers to entry by enabling development on production devices and a couple of areas around the performance of HTML apps on YouView boxes.
YouView is an on demand TV service with over 70 live free-to-air digital TV and radio channels.
We work with most of the major broadcasters and on demand services in the UK.
Where are we with HTML5?
YouView launched in 2012 with apps based on Adobe Air for TV.
Last autumn we launched HTML apps with 2 content providers.
We’re actively working with our other content providers to migrate their apps from Air to HTML.
Historically, development boxes have been used for app development. But these only being available in limited numbers and more content providers coming onboard, this is less practical.
Rather than having to request boxes from YouView, they can be purchased in Currys or John Lewis.
Boxes are available at Currys & John Lewis and cheaper than development boxes.
Do not need to request from YouView.
No need to deploy app packages signed for two different environments.
DUID - Device Unique ID.
C5D development production certificate
Most used libraries/frameworks, investigated these specific ones because these are the most widely used across content providers
Due to the time to perform testing of this kind the results are based on a simple application over a limited number of test iterations
add logos instead of names for different frameworks
point out that the loading time of frameworks with dependencies is the net time, so not including the time required to load jquery
User experience is really important and the user wants to get to content, so we need to keep our launch time as fast as possible.
We’ve investigated approaches to reducing loading times for apps and I’m going to run through some of our findings.
Some time will be taken up in loading WebKit. This is something we’re working on improving, but we’re going to focus on what’s within the control of the app itself to optimise here.
Remote HTTP requests to the network.
Download weight of the code base.
Execution of initialisation code for the app.
These apply to any web apps, but are particularly pronounced on devices which have more constrained resources like a set top box.
Apps on YouView can be launched from several different contexts:
Players - Long form and scheduled catch up content.
Apps - Short form video or other non-scheduled content.
Deep Linking - Usually launching straight into a piece of content, but could be another area of the app.
Red Button - Launched from a linear channel.
If our one app covers all these areas, how do we make sure we can get into the required context as quickly as possible?
We found that taking a modular approach to app architecture gave us good results.
Functionality is organised into modules with small discrete functionality.
Related modules are then concatenated together into bundle files which will be loaded together.
This shows the framework and playback functionality, but there will be several more within the app.
These modules & bundles can be used to optimise the loading order of your app, determining the next step at each stage.
In this diagram, each column is loaded in sequence, with each step determining the requirements for the next.
The framework & routing determines which modules will be required for the required context.
The Playback module loads with it’s dependencies.
The video asset is buffered.
At this point playback can start and we can start to anticipate what the user might want to do next and lazy load further functionality.
In the playback example, this could include any functionality that we’d like to defer until after playback has started.
For example, transport and scrub bar functionality and any forward journeys are unlikely to be needed until after the video has started playing.
Other areas of the app can also be loaded here to speed up navigation into those.
This could include a home screen, category menus and search functionality.
We built a basic app to test these approaches against an app based on an off the shelf framework.
The original app is on the left and our optimised app is on the right.
After loading now screen disappears, the control is with the app itself.
Over multiple tests on our first generation YouView hardware, we saw app load times to be up to twice as fast with these optimisations.
8 seconds -> 3.5 seconds.
On newer, more powerful hardware, the launch time is even faster.
So what tools have we used to achieve this?
None of this uses any YouView specific magic, so these approaches can be used in cross platform apps.
We use Gulp and several plugins to build and manage the module bundles. Once a new module is added to a bundle config, the rest of the process is automated.
All of our apps currently run on every YouView box going back to our first generation devices from 2012.
Apps on our first generation device only end up with about 100Mb usable memory.
Lazy loading speeds up launch times.
Micro libraries, rather than large frameworks can improve launch time and memory use.
In other areas, that we’ve not touched on:
Sprite sheets can reduce network requests.
CSS translations and requestAnimationFrame both produced good results for animation.
Moving templating logic to the server can improve performance on the device.
We’ve got a few minutes for questions now.
We can be found in all the usual places online.
Come and find us later if you have any more questions or if you’re interested in working with YouView.