This course teaches you the concepts of Angular. You will learn how to utilize Components, Annotations, Views, Event Handlers, Directives and more. In Angular everything is a Component and this course takes a component-centric approach. We will use Components as the main point of discussion and you will learn about other concepts in Angular in the context of Components.
This presentation is dedicated to studying the fundamentals of Angular 2.
To follow along with the presentation, watch this 3-part YouTube Series here: http://bit.ly/2mnLZNz
You can also download Traversy's Spotify App here: http://bit.ly/2m1TxI3
Learn all the essentials of building Angular 2 applications right here.
https://www.udemy.com/angular-2-training/?couponCode=UANGULAR2
This is a beginner level course aimed at those new to Angular 2 and Typescript. No previous knowledge of either is required before starting this course.
This course combines slides, projects and quizzes in a clear, concise and engaging way to guide you through the core concepts of Angular 2 and Typescript.
You will gain a solid foundation for building real-world applications following best practices and the Angular 2 style guide. This includes how to build components, create shared services, navigate between views, manage data, and managing user and system events.
AngularJS 1.3 is by far the best version of Angular available today. It was just released a few weeks ago. It's chock full of bug fixes, feature enhancements and performance improvements.
YouTube link: - https://youtu.be/bghVyCbxj6g
The aim of these series is exploring Angular 2 and it's amazing features. with the simplest way and the meaningful examples and labs to be practiced. Good Luck in Exploring :D
The Angular framework is great for building large-scale web applications that can be maintained and enhanced. When you're building enterprise-level apps, testing is vital to the development process. Testing improves the quality of code and reduces maintenance, saving both time and money. Developers who know how to build and leverage tests are highly valued by their clients and companies.
In this Episode of this series we will introduce some template awesome syntax of the angular 2. We will know about the life cycle of the component and when to use or not to use its life hooks. Also We will introduce the directives and it's types. We will introduce about Forms with the Angular way. I hope enjoy learning these stuff :D.
eact is a library for building HTML user interfaces. It is the "view" in a Model-View-Controller application. Created by the UI wizards at Facebook, top websites like Instagram, Netflix, Airbnb, Bleacher Report and Feedly use it. React is the 6th most starred project on GitHub and grows more popular every day.
In this two-day workshop, we will introduce you to React. On the first day, we will work through a series of increasingly more complicated tutorial exercises. Along the way, we will explain concepts like JSX, immutability, statefulness, one-way data flow, components, and virtual DOM.
With the basics out of the way, we will spend the second-day building a complex application which will put React through its paces and give us a chance to explore most of its features. Then we will learn how to think in React. We will show you how to go from design to components to working application. We will wrap the weekend with a quick preview of React Native, which allows you to use your React skills to create cross-platform mobile apps.
This presentation is dedicated to studying the fundamentals of Angular 2.
To follow along with the presentation, watch this 3-part YouTube Series here: http://bit.ly/2mnLZNz
You can also download Traversy's Spotify App here: http://bit.ly/2m1TxI3
Learn all the essentials of building Angular 2 applications right here.
https://www.udemy.com/angular-2-training/?couponCode=UANGULAR2
This is a beginner level course aimed at those new to Angular 2 and Typescript. No previous knowledge of either is required before starting this course.
This course combines slides, projects and quizzes in a clear, concise and engaging way to guide you through the core concepts of Angular 2 and Typescript.
You will gain a solid foundation for building real-world applications following best practices and the Angular 2 style guide. This includes how to build components, create shared services, navigate between views, manage data, and managing user and system events.
AngularJS 1.3 is by far the best version of Angular available today. It was just released a few weeks ago. It's chock full of bug fixes, feature enhancements and performance improvements.
YouTube link: - https://youtu.be/bghVyCbxj6g
The aim of these series is exploring Angular 2 and it's amazing features. with the simplest way and the meaningful examples and labs to be practiced. Good Luck in Exploring :D
The Angular framework is great for building large-scale web applications that can be maintained and enhanced. When you're building enterprise-level apps, testing is vital to the development process. Testing improves the quality of code and reduces maintenance, saving both time and money. Developers who know how to build and leverage tests are highly valued by their clients and companies.
In this Episode of this series we will introduce some template awesome syntax of the angular 2. We will know about the life cycle of the component and when to use or not to use its life hooks. Also We will introduce the directives and it's types. We will introduce about Forms with the Angular way. I hope enjoy learning these stuff :D.
eact is a library for building HTML user interfaces. It is the "view" in a Model-View-Controller application. Created by the UI wizards at Facebook, top websites like Instagram, Netflix, Airbnb, Bleacher Report and Feedly use it. React is the 6th most starred project on GitHub and grows more popular every day.
In this two-day workshop, we will introduce you to React. On the first day, we will work through a series of increasingly more complicated tutorial exercises. Along the way, we will explain concepts like JSX, immutability, statefulness, one-way data flow, components, and virtual DOM.
With the basics out of the way, we will spend the second-day building a complex application which will put React through its paces and give us a chance to explore most of its features. Then we will learn how to think in React. We will show you how to go from design to components to working application. We will wrap the weekend with a quick preview of React Native, which allows you to use your React skills to create cross-platform mobile apps.
Understanding Angular 2 - Shmuela Jacobs - Codemotion Milan 2016Codemotion
Angular 2 is a complete rewrite of the AngularJS framework, which introduces new approaches and leverages the latest technologies. Simplifying and generalizing core concepts, the performance is improved and the range of capabilities is broadened. In this session Shmuela will help you understand the core concepts of Angular 2 apps: the component-based architecture, dependency injection, change detection, and more.
The evolution of Angular 2 @ AngularJS Munich Meetup #5Johannes Weber
The evolution of Angular 2
Angular 1 was born in 2009. Since that a lot of web standards are born and supported by most of the browsers natively. So it's time to use the new possibilities. That's how Angular 2 started. It's not just a major update. It's a whole rewrite!
The key theme of this talk it to get an overview of Angular 2. I’ll walk you through what you need to know to stay up to date, explain the main concepts behind A2 and the current state.
It is rounded off with some practical suggestions on how to proceed today - to make the transition from Angular 1.x to Angular 2.x easier.
Original slides with animated gifs can be found here: https://docs.google.com/presentation/d/122ptcLESkfSw8omK9ekG8FksD_zvegGrqOL2GR5PE80/edit?usp=sharing
"Reactive Programming with JavaScript" by Giorgio Natili
JavaScript is an asynchronous and almost single-thread language. Learning how to manage its asynchronous nature is perhaps the most important part of becoming an effective JavaScript programmer. Reactive programming tools in JavaScript provide a powerful way of “wrapping” the asynchronous callbacks into a more readable and maintainable code base. In this talk, I'll highlight the pros and cons of different reactive programming approaches and practices by demonstrating how to use Redux and Angular 2.x as the building blocks of a scalable architecture for your web app.
Probabilmente il framework javascript più atteso di sempre, evoluzione di uno dei framework più longevi ed usati nello sviluppo front end. Si vedranno alcune delle novità introdotte e delle scelte radicali fatte da Google per la nuova versione di Angular
Building Universal Applications with Angular 2Minko Gechev
Angular is one of the most popular frameworks for the development of Single-Page Applications (SPA). Recently Google announced its second major version, which brings some brand new ideas and improvements. For instance, Angular 2 is written in TypeScript, has much faster change detection and allows development of universal (isomorphic) applications.
In this talk we're going to introduce the motivation behind the new design decisions and the improvements in Angular 2. We'll take a look at the building blocks the framework provides for the development of professional single-page applications.
This full day course will give you a hands-on, deep dive into React Native. In this course, you will learn how to build cross-platform mobile applications from scratch using Facebook's React Native.
Migrating an application from Angular 1 to Angular 2 Ross Dederer
Learn how to make the jump to Angular 2 with Wijmo’s JavaScript UI controls!
With the recent release of the Angular 2 Beta, you’re probably asking if it’s worth it to make the jump from Angular 1. During this talk, we’ll share some tips and tricks on migration, as well as concepts that we learned along the way when migrating from Angular 1 to Angular 2. Wijmo has been developing controls in Angular 1 for quite some time now, and migrating our controls to the new Angular 2 beta was a pretty straightforward process.
You’ll learn:
Introduction to TypeScript and Angular 2.0 beta
The process of converting a Microsoft MVVM-featured application (the Microsoft DataServices QuickStart sample) from Angular 1.x to Angular 2.0, including:
How to convert business logic from JavaScript to the more C#-like TypeScript language
About the component and companion template role syntax using plain HTML and Wijmo controls (including Angular 2 FlexGrid and Input controls)
Additional tips and tricks to enhance your experience in Visual Studio
He will start you at the beginning and cover prerequisites; setting up your development environment first. Afterward, you will use npm to install react-native-cli. The CLI is our go to tool. We use it to create and deploy our app.
Next, you will explore the code. React Native will look familiar to all React developers since it is React. The main difference between React on the browser and a mobile device is the lack of a DOM. We take a look a many of the different UI components that are available.
With React Native you have access to all of the devices hardware features like cameras, GPS, fingerprint reader and more. So we'll show some JavaScript code samples demonstrating it. We will wrap up the evening by deploying our app to both iOS and Android devices and with tips on getting ready for both devices stores.
React is a different way to write JavaScript apps. When it was introduced at JSConf US in May, the audience was shocked by some of its design principles. One sarcastic tweet from an audience member ended up describing React’s philosophy quite accurately: https://twitter.com/cowboy/status/339858717451362304
We’re trying to push the limits of what’s possible on the web with React. My talk will start with a brief introduction to the framework, and then dive into three controversial topics: Throwing out the notion of templates and building views with JavaScript, “re-rendering” your entire application when your data changes, and a lightweight implementation of the DOM and events.
Understanding Angular 2 - Shmuela Jacobs - Codemotion Milan 2016Codemotion
Angular 2 is a complete rewrite of the AngularJS framework, which introduces new approaches and leverages the latest technologies. Simplifying and generalizing core concepts, the performance is improved and the range of capabilities is broadened. In this session Shmuela will help you understand the core concepts of Angular 2 apps: the component-based architecture, dependency injection, change detection, and more.
The evolution of Angular 2 @ AngularJS Munich Meetup #5Johannes Weber
The evolution of Angular 2
Angular 1 was born in 2009. Since that a lot of web standards are born and supported by most of the browsers natively. So it's time to use the new possibilities. That's how Angular 2 started. It's not just a major update. It's a whole rewrite!
The key theme of this talk it to get an overview of Angular 2. I’ll walk you through what you need to know to stay up to date, explain the main concepts behind A2 and the current state.
It is rounded off with some practical suggestions on how to proceed today - to make the transition from Angular 1.x to Angular 2.x easier.
Original slides with animated gifs can be found here: https://docs.google.com/presentation/d/122ptcLESkfSw8omK9ekG8FksD_zvegGrqOL2GR5PE80/edit?usp=sharing
"Reactive Programming with JavaScript" by Giorgio Natili
JavaScript is an asynchronous and almost single-thread language. Learning how to manage its asynchronous nature is perhaps the most important part of becoming an effective JavaScript programmer. Reactive programming tools in JavaScript provide a powerful way of “wrapping” the asynchronous callbacks into a more readable and maintainable code base. In this talk, I'll highlight the pros and cons of different reactive programming approaches and practices by demonstrating how to use Redux and Angular 2.x as the building blocks of a scalable architecture for your web app.
Probabilmente il framework javascript più atteso di sempre, evoluzione di uno dei framework più longevi ed usati nello sviluppo front end. Si vedranno alcune delle novità introdotte e delle scelte radicali fatte da Google per la nuova versione di Angular
Building Universal Applications with Angular 2Minko Gechev
Angular is one of the most popular frameworks for the development of Single-Page Applications (SPA). Recently Google announced its second major version, which brings some brand new ideas and improvements. For instance, Angular 2 is written in TypeScript, has much faster change detection and allows development of universal (isomorphic) applications.
In this talk we're going to introduce the motivation behind the new design decisions and the improvements in Angular 2. We'll take a look at the building blocks the framework provides for the development of professional single-page applications.
This full day course will give you a hands-on, deep dive into React Native. In this course, you will learn how to build cross-platform mobile applications from scratch using Facebook's React Native.
Migrating an application from Angular 1 to Angular 2 Ross Dederer
Learn how to make the jump to Angular 2 with Wijmo’s JavaScript UI controls!
With the recent release of the Angular 2 Beta, you’re probably asking if it’s worth it to make the jump from Angular 1. During this talk, we’ll share some tips and tricks on migration, as well as concepts that we learned along the way when migrating from Angular 1 to Angular 2. Wijmo has been developing controls in Angular 1 for quite some time now, and migrating our controls to the new Angular 2 beta was a pretty straightforward process.
You’ll learn:
Introduction to TypeScript and Angular 2.0 beta
The process of converting a Microsoft MVVM-featured application (the Microsoft DataServices QuickStart sample) from Angular 1.x to Angular 2.0, including:
How to convert business logic from JavaScript to the more C#-like TypeScript language
About the component and companion template role syntax using plain HTML and Wijmo controls (including Angular 2 FlexGrid and Input controls)
Additional tips and tricks to enhance your experience in Visual Studio
He will start you at the beginning and cover prerequisites; setting up your development environment first. Afterward, you will use npm to install react-native-cli. The CLI is our go to tool. We use it to create and deploy our app.
Next, you will explore the code. React Native will look familiar to all React developers since it is React. The main difference between React on the browser and a mobile device is the lack of a DOM. We take a look a many of the different UI components that are available.
With React Native you have access to all of the devices hardware features like cameras, GPS, fingerprint reader and more. So we'll show some JavaScript code samples demonstrating it. We will wrap up the evening by deploying our app to both iOS and Android devices and with tips on getting ready for both devices stores.
React is a different way to write JavaScript apps. When it was introduced at JSConf US in May, the audience was shocked by some of its design principles. One sarcastic tweet from an audience member ended up describing React’s philosophy quite accurately: https://twitter.com/cowboy/status/339858717451362304
We’re trying to push the limits of what’s possible on the web with React. My talk will start with a brief introduction to the framework, and then dive into three controversial topics: Throwing out the notion of templates and building views with JavaScript, “re-rendering” your entire application when your data changes, and a lightweight implementation of the DOM and events.
FITC events. For digital creators.
Save 10% off ANY FITC event with discount code 'slideshare'
See our upcoming events at www.fitc.ca
Getting Started with Angular 2
with Rob McDiarmid
OVERVIEW
Angular 2 is a powerful framework that lets you create fast and scalable web apps with clean and readable code. With the lessons learned from previous web frameworks and the advantages of modern web technologies, the Angular team has created a framework that will push the limits of what SPAs are capable of.
In this session we’ll go through building an Angular 2.0 app from the ground up. In the process, you will learn how it handles core concepts like components, templates, services, and routing. You’ll also see how angular takes advantage of ES6 modules, Web Components, and TypeScript. By the end of the session, you’ll have a good understanding of why you might want to use Angular 2 for your next project and how to get started.
OBJECTIVE
Demonstrate what Angular 2 has to offer and reduce the barrier to entry.
TARGET AUDIENCE
Web Developers interested in learning Angular 2.
ASSUMED AUDIENCE KNOWLEDGE
Intermediate experience with JavaScript.
FIVE THINGS AUDIENCE MEMBERS WILL LEARN
1. Core concepts of the Angular 2 framework
2. How to use ES6 modules
3. The benefits of TypeScript annotations
4. How to setup an Angular 2 project from scratch
5. The ecosystem of tools that Angular 2 apps will be built on
Angular 2 interview questions and answersAnil Singh
angular 2 interview questions and answers, Angular 2 tutorials, Angular 2 docs, angular 2 interview, Angular, What is Angular 2, angular 2 vs react, What are the fundamentals concepts of Angular 2?,
Angular 2 vs React. What to chose in 2017?TechMagic
The number of web development frameworks and libraries based on JavaScript continue increasing. The most popular client-side technologies are Angular and React, but you might ask - What should I use?
Slides del taller de Angular 2 realizado en el Campus Madrid de Google el 26 de Septiembre de 2016. Actualizado con la versión final de Angular 2.
Grabación del taller: https://www.youtube.com/watch?v=YVVjXpquzBE
Repositorio de código: https://github.com/codeurjc/ng2-campusmadrid
Angular 2 Seminar_(December 7/12/2015)Haim Michael
The slides I was using for the Angular 2 seminar that was delivered in Expert Days (2015).
More information about the Angular course I deliver can be found at angular.course.lifemichael.com
What is the difference between Angular 1 and Angular 2.
Content:
Where Angular 1.x is going?
Angular 2 - motivations and themes
Open-source culture in Angular team
Video: https://youtu.be/c_YVA-Aa7gA
New language, new framework, new tools and new concepts. Angular 2 beta is ready and gives developers a solid ground to build their applications.
This talk will go through the core concepts of Angular 2 including components, directives, observables and more!
[JDV_TechTalk] Make a Heroku-like Server in Digital OceanYanuar W
TechTalk about how to make auto deploy on push server like Heroku but at our own server in Digital Ocean.
Arranged by Qiscus, supported by Jogja Digital Valley
We Will learn about:
What is AngularJs?
Key Points
Core Features of AngularJS
How is it works?
AngularJs Terminologies
AngularJs directives
How we start work on AngularJs?
AngularJs Tags
How we use Yeoman?
Advantages and Disadvantages
Angular 2 has finally hit the shelves and it is not just an upgrade. The producers of Angular have issued Angular 2 and it stands miles apart from the original framework. The new Angular 2 is a modern and robust framework that is faster, more expressive and flexible in nature. Here are a few interesting facts about Angular 2 that you may need to get started with this brilliant framework.
How we built a job board in one week with JHipsterKile Niklawski
@KileNiklawski with @IpponUSA presents on how we built a job board in one week using JHipster.
About JHipster:
Our goal is to generate for you a complete and modern Web app, unifying:
- A high-performance and robust Java stack on the server side with Spring Boot
- A sleek, modern, mobile-first front-end with AngularJS and Bootstrap
- A powerful workflow to build your application with Yeoman, Bower, Grunt and Maven
Presented by Andrej Gasteovski at SkopjeTechMeetup 8.
Building a modern web (or mobile) application requires a lot of tools, frameworks and techniques. Java Hipster a.k.a. JHipster is a free and open-source Yeoman generator that can develop a modern web application using Spring Boot and AngularJS with tons of options in just a few clicks. We will see the full stack that JHipster is using, what can be done, pros and cons and a simple application generated by JHipster.
ave time learning on your own. Start Building with React, MongoDB, Express, & Node. The MERN Stack.
Learning a new JavaScript framework is difficult. You can spend weeks learning new concepts. If an online example doesn’t work, you may spend countless hours Googling, searching Stack Overflow and blogs for the solution.
Take the fast track and learn from an experienced Senior Software Engineer and professional instructor!
About this Course
This highly interactive course features a large amount of student labs and hands-on coding. You will be taught how to assemble the complete stack required to build a modern web app using React.js, MongoDB (a NoSQL database) and Express (a framework for web application servers). This course will also cover many other tools that go into building a complete web application: React Router, React-Bootstrap, Redux, Babel, and Webpack.
What You Will Learn
• How to use modern JavaScript features
• Webpack
• Node & Express
• Reading and writing data to a MongoDB database
• Babel
• React
• State Management with Redux
• Mongoose
• And More!
The fundamentals and advance application of Node will be covered. We will explore the design choices that make Node.js unique, how this changes the way applications are built and how systems of applications work most effectively in this model. You will learn how to create modular code that’s robust, expressive and clear. Understand when to use callbacks, event emitters and streams.
Inside the JVM - Follow the white rabbit! / Breizh JUGSylvain Wallez
Presentation given at the Rennes (FR) Java User Group in Feb 2019.
How do we go from your Java code to the CPU assembly that actually runs it? Using high level constructs has made us forget what happens behind the scenes, which is however key to write efficient code.
Starting from a few lines of Java, we explore the different layers that constribute to running your code: JRE, byte code, structure of the OpenJDK virtual machine, HotSpot, intrinsic methds, benchmarking.
An introductory presentation to these low-level concerns, based on the practical use case of optimizing 6 lines of code, so that hopefully you to want to explore further!
How do we go from your Java code to the CPU assembly that actually runs it? Using high level constructs has made us forget what happens behind the scenes, which is however key to write efficient code.
Starting from a few lines of Java, we explore the different layers that constribute to running your code: JRE, byte code, structure of the OpenJDK virtual machine, HotSpot, intrinsic methds, benchmarking.
An introductory presentation to these low-level concerns, based on the practical use case of optimizing 6 lines of code, so that hopefully you to want to explore further!
Presentation given at the Toulouse (FR) Java User Group.
Video (in french) at https://www.youtube.com/watch?v=rB0ElXf05nU
Slideshow with animations at https://docs.google.com/presentation/d/1eIcROfLpdTU2_Z_IKiMG-AwqZGZgbN1Bs2E0nGShpbk/pub?start=true&loop=false&delayms=60000
ASTs are an incredibly powerful tool for understanding and manipulating JavaScript. We'll explore this topic by looking at examples from ESLint, a pluggable static analysis tool, and Browserify, a client-side module bundler. Through these examples we'll see how ASTs can be great for analyzing and even for modifying your JavaScript. This talk should be interesting to anyone that regularly builds apps in JavaScript either on the client-side or on the server-side.
Kotlin is a language from the tool gurus at JetBrains. In 2016, after about six years of development, Kotlin reached version 1.0. In 2017 it won the hearts of developers and became an officially supported language for Android.
Kotlin, like Java, is for more than creating Android applications. It can replace or enhance Java most places it is used today including on AWS. AWS Lambda functions sometimes called Serverless Computing, is a service which lets us developers build web services without worrying about configuring servers.
In this session, we will create a lambda service on AWS using Kotlin. Along the way, we will learn what a makes Kotlin an excellent replacement for Java and how simple it is to construct an AWS Lambda function.
React is a JavaScript library for building user interfaces. It comes from the UI experts at Facebook. It is currently the fourth most starred repository on GitHub, ranking higher than AngularJS.
C# developers using ASP.NET might feel left out but shouldn't. Facebook has developed a companion library for .NET developers, ReactJS.NET. That's right devs; you can enjoy all of the hotness of React and JSX all from rock-solid .NET Framework using ASP.NET MVC as your back-end.
In this session, we will create a sample website using React and powered by ASP.NET Core. We will demo some of the most important features of React and syntax of JSX. Our sample will also push and pull data via HTTP. Finally, if time permits we write some code to use Redux, a state container, which while not part React is often used with it.
Angular continues to be one of the most popular frameworks for building modern web applications. The impending release of Angular version 4 has many developers in a panic. What is Angular version 4? What happened to version 3? Do I have to learn a bunch of new stuff? Will my code break?
Well, fear not Angular fans. We have answers and more. In this mini-session, we'll explain where we came from and where we are going. And more importantly, we have code samples. We will show you some of the latest cool stuff including the new *ngIf, animations, TypeScript 2.2 support, and the revised router. And prove to you most of the changes to Angular are pretty modest and shouldn't require much if any code changes.
Replace Angular with React. Make the move from the MEAN stack to the powerful MERN Stack!
Come and learn about the MERN stack. No, that isn't a typo. The MERN stack is Mongo, Express, and Node, with React instead of Angular. While both React and Angular are remarkable JavaScript technologies, React comes with less baggage. There is no TypeScript, no annotations, no bossy framework telling you how to do everything.
JavaScript is arguably the most popular language in the world. It runs in the browser, on the server, on mobile devices, and even powers the Internet of things. In spite of being completely ubiquitous, JavaScript is also the most hated language on the planet.
Unlike other programming languages, JavaScript straddles the line between imperative, object-oriented languages and functional ones. It was originally designed to be a version of the Scheme language for the browser. Which begs the questions, what if we programmed JavaScript functionally?
In this session, we will take a well-known programming problem and first implemented imperatively, then progressively make it more functional. Along the way, we will discuss what makes a language functional.
Best of all we will just use the latest version of JavaScript, ES-2015. No need for any additional libraries. So if you are looking for a different way to code JS, or only curious to learn a bit more about FP, please join us.
Paul Graham, the founder of startup incubator YCombinator, put it best when he described LISP as his old company's secret weapon. Think about, if you use all of the same tools as everyone else, how do you expect to achieve better results?
Clojure is a LISP language created in 2009 by Rich Hickey. Built initially on the Java Virtual Machine (JVM) it has since been ported to run on Microsoft and JavaScript. (That's right the browser). Clojure gives you all of the power and stability of the JVM without the clunkiness of Java.
Most developers have never worked with a functional language before and many who have found the use of parenthesis instead of braces intimidating. Don't worry. Once it is broken down to you, I think you will see the beauty of it.
In this fast and fun session, we will build an app using Clojure. We will enhance it, test it and explore why functional is a better programming model than OOPs. We will even explore why such programs are better at multitasking than object oriented ones.
The MEAN stack allows you to build fast, responsive, and maintainable full-stack websites using JavaScript. The stack uses four innovative frameworks: MongoDB for rapid data access, Express for simplified web development, Angular for componentized and fluid UI, and Node for speed.
Not sure if the MEAN stack is for you? Then come to this free warm-up session. We give you a quick tour of all of the pieces of the stack. How to get you machine ready. And show you what it is like to build a site using it.
This session is for both front and backend developers. We'll show you how JavaScript, the world's most ubiquitous language, can help you to master the web.
JavaScript is the one language that most developers never bother to formally learn, and that is a shame. While it looks like Java and C#, it behaves very differently.
In this session, we will walk through some features of JavaScript you may have seen and wished you knew. Using working code, we will explore what "use strict" actually does. We will also look at the ES5 array methods, slice vs. splice and which one to avoid, the new features of ES2015 and ES2016. To use the new JavaScript, we will look at how to use TypeScript and Babel.
And if you ever wonder what's the difference between call and apply? Or what the heck is bind? And how they relate to the new operator, you must attend this FREE talk.
Game Design and Development Workshop Day 1Troy Miles
This course teaches you how to build awesome video games using Cocos2Dx. Cocos2Dx is a feature packed, free game development engine. It is cross platform, high performance, and supports three languages: C++, Lua and JavaScript. With it, you can write games for iOS, Android, Windows, Mac, and the Web. It is nothing short of amazing and this course teaches you how to use it. We will program Cocos2Dx in JavaScript, but this is not a programming class. If you don't know how to write code in JavaScript or some other curly brace language, this is not the course for you. For those whose JavaScript is rusty, we will do quick language overview. Don't let the JavaScript part fool you. Cocos2Dx is built from highly optimized C++ and OpenGL, JavaScript is used for game logic, not graphics. Our games will run at a super fast, 60 frames a second.
Is it hard to build games? No, at least not with Cocos2D-x, the free, cross-platform framework that makes it easy to create high-performance games in JavaScript. How easy? Come and watch me make a simple, but complete old school platformer in 60 minutes.
I will show you how to get started. Installation is the worst part of Cocos2D-x, but it isn't too tough. Then we'll put the app together, running it on my laptop as we go. We will also add music, sound, and show you where to find cheap sources for both. Once our game is running, I will blow your minds by porting the game to both iOS and the web. That's right, one app running on a laptop, an iPhone, and on a web page.
As I build, I will talk about all of the things that make Cocos2D-x magical. Things like graphic layers, sprite animation, collision detection, resource management and physics. I'll also demo debugging since bugs are an inevitable part of programming. While made especially for games, you can build any app, which needs to be fast or cross-platform,
Please keep in mind, that Cocos2D-x makes it easy for programmers to create games. If you know JavaScript excellent, but you should be okay so long as you know a curly brace language, like C, Java, or C#. If you don't know how to program, take a programming class first.
In this workshop we will deploy a pre-built Node website to Heroku, then hook it up to an mLabs MongoDB instance. We will then use both the Mongo Shell and a GUI based app to import and export data, save and modify documents, and run queries. Finally, we'll use our knowledge of Mongo queries to create a RESTful api for the Node app.
This is a workshop designed for experienced JavaScript developers. You must already be familiar with the following: JavaScript, Git, using a programming editor, running commands from the terminal, and launching a web server on your own machine.
The Internet is asynchronous, people are asynchronous, the universe is asynchronous. They are now and they always will be. Writing applications which deal correctly with asynchronous data is difficult. Or at least it was. Microsoft open sourced ReactiveX in 2010 to make what used to be some of the hairiest kinds of coding almost easy.
The project was so well received that it has been ported to nearly every major programming language. Versions of ReactiveX exists for .NET, JavaScript, Java, Scala, Clojure, C++, Ruby, Python, Groovy, JRuby, Kotlin, and Swift. The project is open source and community maintain with corporate backing from the likes of Microsoft and Netflix.
Microsoft created the ReactiveX, then called reactive extensions, from the burnt out remains of Project Volta. Project Volta's goal was to extend .NET's to run both on the server and in the browser. A compiler would decide which parts were best to put where. It essentially was the Meteor framework in 2007.
In this talk we will take a deep look at ReactiveX. We will use code samples to show how things are done before and after ReactiveX. The code will be in C# and JavaScript. We will see how ReactiveX makes our lives as developers easier and our code more reactive.
A full weekend of hands-on instruction from a senior software engineer. Over 6 past classes instructed!
AngularJS is a modern Javascript MVC application framework which provides features such as dependency injection, unit-testable components, templates, view routing, easy access to REST-based resources, and much more. This weekend workshop focuses on teaching you the fundamentals and the advanced application of AngularJS. All weekend you will dig into AngularJS hands-on and work through labs and exercises designed to give you a full understanding of AngularJS.
PhoneGap (aka Cordova) is a cross-platform framework for developing mobile apps using standard web development tools like HTML, CSS, and JavaScript. Join Troy Miles to learn how to create mobile apps with PhoneGap by building a simple but full-featured app during this hands-on class. Troy explores PhoneGap’s important capabilities, including GPS, camera, and audio recordings. Because JavaScript has a reputation as a somewhat difficult language, Troy teaches techniques for keeping your code robust and clean. To give your app the appropriate look and feel for the device on which it is running, the class will use the open source Chocolate Chip UI framework for testing. Troy shares ways to debug the code by running it as a web app, using browser development tools, or as a phone app, using the Chrome browser’s remote debugging features. Leave with the basics you need to start building your own cross-platform mobile apps.
Cross Platform Game Programming with Cocos2d-jsTroy Miles
In this talk we will examine Cocos2d-JS, an open source, cross-platform, game development engine in JavaScript. Don't let the JavaScript part fool you. While your games logic is written in JavaScript, the graphics core runs in supercharged C++ and takes advantage of OpenGL when running on desktops and devices. When your game runs on the web, it takes advantage of everything HTML5 has to offer to produce amazingly fluid games for the web.
JavaScript, like it or not, has become the most important language on the web. Nearly every developer who builds Internet apps has to use it. But JavaScript can be tough to write and even tougher to read. So here are ten tips to help you get groovy with JavaScript.
Cross Platform Mobile Apps with the Ionic FrameworkTroy Miles
What happens when you combine Google's AngularJS, the super cool JavaScript MVC Framework with Apache Cordova, the cross platform mobile framework using web technology? You get the Ionic Framework.
With Ionic you build mobile apps using the web technology you already know. Think the apps will be slow and clunky? Think again, Ionic comes out of the box with well design CSS3 classes to make beautiful and fluid apps. Using Cordova and jQuery Mobile already? Well, with Ionic you will learn to love mobile development again. No more write-only spaghetti code, Ionic makes it easy to create clean, testable, logical mobile apps. Need to support tablet and phone in the same app? Ionic has you covered. You can create one app which uses responsive design to change its look based on the device's screen dimensions.
In this session, we will build an app together to show many of Ionic's major features including CollectionRepeat, UI Widgets, Modals, and Slide Boxes. We will also discuss development workflow, debugging and which tools we use.
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar
The European Union Agency for Law Enforcement Cooperation (Europol) has suffered an alleged data breach after a notorious threat actor claimed to have exfiltrated data from its systems. Infamous data leaker IntelBroker posted on the even more infamous BreachForums hacking forum, saying that Europol suffered a data breach this month.
The alleged breach affected Europol agencies CCSE, EC3, Europol Platform for Experts, Law Enforcement Forum, and SIRIUS. Infiltration of these entities can disrupt ongoing investigations and compromise sensitive intelligence shared among international law enforcement agencies.
However, this is neither the first nor the last activity of IntekBroker. We have compiled for you what happened in the last few days. To track such hacker activities on dark web sources like hacker forums, private Telegram channels, and other hidden platforms where cyber threats often originate, you can check SOCRadar’s Dark Web News.
Stay Informed on Threat Actors’ Activity on the Dark Web with SOCRadar!
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Anthony Dahanne
Les Buildpacks existent depuis plus de 10 ans ! D’abord, ils étaient utilisés pour détecter et construire une application avant de la déployer sur certains PaaS. Ensuite, nous avons pu créer des images Docker (OCI) avec leur dernière génération, les Cloud Native Buildpacks (CNCF en incubation). Sont-ils une bonne alternative au Dockerfile ? Que sont les buildpacks Paketo ? Quelles communautés les soutiennent et comment ?
Venez le découvrir lors de cette session ignite
Designing for Privacy in Amazon Web ServicesKrzysztofKkol1
Data privacy is one of the most critical issues that businesses face. This presentation shares insights on the principles and best practices for ensuring the resilience and security of your workload.
Drawing on a real-life project from the HR industry, the various challenges will be demonstrated: data protection, self-healing, business continuity, security, and transparency of data processing. This systematized approach allowed to create a secure AWS cloud infrastructure that not only met strict compliance rules but also exceeded the client's expectations.
Into the Box Keynote Day 2: Unveiling amazing updates and announcements for modern CFML developers! Get ready for exciting releases and updates on Ortus tools and products. Stay tuned for cutting-edge innovations designed to boost your productivity.
Strategies for Successful Data Migration Tools.pptxvarshanayak241
Data migration is a complex but essential task for organizations aiming to modernize their IT infrastructure and leverage new technologies. By understanding common challenges and implementing these strategies, businesses can achieve a successful migration with minimal disruption. Data Migration Tool like Ask On Data play a pivotal role in this journey, offering features that streamline the process, ensure data integrity, and maintain security. With the right approach and tools, organizations can turn the challenge of data migration into an opportunity for growth and innovation.
Listen to the keynote address and hear about the latest developments from Rachana Ananthakrishnan and Ian Foster who review the updates to the Globus Platform and Service, and the relevance of Globus to the scientific community as an automation platform to accelerate scientific discovery.
Accelerate Enterprise Software Engineering with PlatformlessWSO2
Key takeaways:
Challenges of building platforms and the benefits of platformless.
Key principles of platformless, including API-first, cloud-native middleware, platform engineering, and developer experience.
How Choreo enables the platformless experience.
How key concepts like application architecture, domain-driven design, zero trust, and cell-based architecture are inherently a part of Choreo.
Demo of an end-to-end app built and deployed on Choreo.
Large Language Models and the End of ProgrammingMatt Welsh
Talk by Matt Welsh at Craft Conference 2024 on the impact that Large Language Models will have on the future of software development. In this talk, I discuss the ways in which LLMs will impact the software industry, from replacing human software developers with AI, to replacing conventional software with models that perform reasoning, computation, and problem-solving.
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Globus
The Earth System Grid Federation (ESGF) is a global network of data servers that archives and distributes the planet’s largest collection of Earth system model output for thousands of climate and environmental scientists worldwide. Many of these petabyte-scale data archives are located in proximity to large high-performance computing (HPC) or cloud computing resources, but the primary workflow for data users consists of transferring data, and applying computations on a different system. As a part of the ESGF 2.0 US project (funded by the United States Department of Energy Office of Science), we developed pre-defined data workflows, which can be run on-demand, capable of applying many data reduction and data analysis to the large ESGF data archives, transferring only the resultant analysis (ex. visualizations, smaller data files). In this talk, we will showcase a few of these workflows, highlighting how Globus Flows can be used for petabyte-scale climate analysis.
Unleash Unlimited Potential with One-Time Purchase
BoxLang is more than just a language; it's a community. By choosing a Visionary License, you're not just investing in your success, you're actively contributing to the ongoing development and support of BoxLang.
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...Hivelance Technology
Cryptocurrency trading bots are computer programs designed to automate buying, selling, and managing cryptocurrency transactions. These bots utilize advanced algorithms and machine learning techniques to analyze market data, identify trading opportunities, and execute trades on behalf of their users. By automating the decision-making process, crypto trading bots can react to market changes faster than human traders
Hivelance, a leading provider of cryptocurrency trading bot development services, stands out as the premier choice for crypto traders and developers. Hivelance boasts a team of seasoned cryptocurrency experts and software engineers who deeply understand the crypto market and the latest trends in automated trading, Hivelance leverages the latest technologies and tools in the industry, including advanced AI and machine learning algorithms, to create highly efficient and adaptable crypto trading bots
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus
As part of the DOE Integrated Research Infrastructure (IRI) program, NERSC at Lawrence Berkeley National Lab and ALCF at Argonne National Lab are working closely with General Atomics on accelerating the computing requirements of the DIII-D experiment. As part of the work the team is investigating ways to speedup the time to solution for many different parts of the DIII-D workflow including how they run jobs on HPC systems. One of these routes is looking at Globus Compute as a way to replace the current method for managing tasks and we describe a brief proof of concept showing how Globus Compute could help to schedule jobs and be a tool to connect compute at different facilities.
Code reviews are vital for ensuring good code quality. They serve as one of our last lines of defense against bugs and subpar code reaching production.
Yet, they often turn into annoying tasks riddled with frustration, hostility, unclear feedback and lack of standards. How can we improve this crucial process?
In this session we will cover:
- The Art of Effective Code Reviews
- Streamlining the Review Process
- Elevating Reviews with Automated Tools
By the end of this presentation, you'll have the knowledge on how to organize and improve your code review proces
Understanding Globus Data Transfers with NetSageGlobus
NetSage is an open privacy-aware network measurement, analysis, and visualization service designed to help end-users visualize and reason about large data transfers. NetSage traditionally has used a combination of passive measurements, including SNMP and flow data, as well as active measurements, mainly perfSONAR, to provide longitudinal network performance data visualization. It has been deployed by dozens of networks world wide, and is supported domestically by the Engagement and Performance Operations Center (EPOC), NSF #2328479. We have recently expanded the NetSage data sources to include logs for Globus data transfers, following the same privacy-preserving approach as for Flow data. Using the logs for the Texas Advanced Computing Center (TACC) as an example, this talk will walk through several different example use cases that NetSage can answer, including: Who is using Globus to share data with my institution, and what kind of performance are they able to achieve? How many transfers has Globus supported for us? Which sites are we sharing the most data with, and how is that changing over time? How is my site using Globus to move data internally, and what kind of performance do we see for those transfers? What percentage of data transfers at my institution used Globus, and how did the overall data transfer performance compare to the Globus users?
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...informapgpstrackings
Keep tabs on your field staff effortlessly with Informap Technology Centre LLC. Real-time tracking, task assignment, and smart features for efficient management. Request a live demo today!
For more details, visit us : https://informapuae.com/field-staff-tracking/
Your Digital Assistant.
Making complex approach simple. Straightforward process saves time. No more waiting to connect with people that matter to you. Safety first is not a cliché - Securely protect information in cloud storage to prevent any third party from accessing data.
Would you rather make your visitors feel burdened by making them wait? Or choose VizMan for a stress-free experience? VizMan is an automated visitor management system that works for any industries not limited to factories, societies, government institutes, and warehouses. A new age contactless way of logging information of visitors, employees, packages, and vehicles. VizMan is a digital logbook so it deters unnecessary use of paper or space since there is no requirement of bundles of registers that is left to collect dust in a corner of a room. Visitor’s essential details, helps in scheduling meetings for visitors and employees, and assists in supervising the attendance of the employees. With VizMan, visitors don’t need to wait for hours in long queues. VizMan handles visitors with the value they deserve because we know time is important to you.
Feasible Features
One Subscription, Four Modules – Admin, Employee, Receptionist, and Gatekeeper ensures confidentiality and prevents data from being manipulated
User Friendly – can be easily used on Android, iOS, and Web Interface
Multiple Accessibility – Log in through any device from any place at any time
One app for all industries – a Visitor Management System that works for any organisation.
Stress-free Sign-up
Visitor is registered and checked-in by the Receptionist
Host gets a notification, where they opt to Approve the meeting
Host notifies the Receptionist of the end of the meeting
Visitor is checked-out by the Receptionist
Host enters notes and remarks of the meeting
Customizable Components
Scheduling Meetings – Host can invite visitors for meetings and also approve, reject and reschedule meetings
Single/Bulk invites – Invitations can be sent individually to a visitor or collectively to many visitors
VIP Visitors – Additional security of data for VIP visitors to avoid misuse of information
Courier Management – Keeps a check on deliveries like commodities being delivered in and out of establishments
Alerts & Notifications – Get notified on SMS, email, and application
Parking Management – Manage availability of parking space
Individual log-in – Every user has their own log-in id
Visitor/Meeting Analytics – Evaluate notes and remarks of the meeting stored in the system
Visitor Management System is a secure and user friendly database manager that records, filters, tracks the visitors to your organization.
"Secure Your Premises with VizMan (VMS) – Get It Now"
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamtakuyayamamoto1800
In this slide, we show the simulation example and the way to compile this solver.
In this solver, the Helmholtz equation can be solved by helmholtzFoam. Also, the Helmholtz equation with uniformly dispersed bubbles can be simulated by helmholtzBubbleFoam.
Globus Connect Server Deep Dive - GlobusWorld 2024Globus
We explore the Globus Connect Server (GCS) architecture and experiment with advanced configuration options and use cases. This content is targeted at system administrators who are familiar with GCS and currently operate—or are planning to operate—broader deployments at their institution.
3. Troy Miles
• Troy Miles aka the RocknCoder
• Over 38 years of programming
experience
• Speaker and author
• bit.ly/rc-jquerybook
• rockncoder@gmail.com
• @therockncoder
• lynda.com Author!
9. Check Versions
app command my version
git git —version 2.12.2
node.js node -v v7.9.0
npm npm —v 5.3.0
@angular/cli ng -v 1.2.3
firebase firebase version 3.3.0
10. Application Root Directory
• All of the commands, for all of the tools are
designed work on the application root directory
• If used anywhere else bad things will happen
• be sure you are in the app root
• double check that you are in the app root
11. Angular CLI
Tool Command
New App ng new <app-name>
Web Server ng serve
Unit Test ng test
End to End Test ng e2e
Dev Build ng build dev
Production Build ng build prod
12. Create New Components
Component Command
Class ng g class my-new-class
Component ng g component my-new-component
Directive ng g directive my-new-directive
Enum ng g enum my-new-enum
Interface ng g interface my-new-interface
Module ng g module my-module
Pipe ng g pipe my-new-pipe
Service ng g service my-new-service
13. CLI naming convention
• Angular apps are usually built using lowercase
kebab naming convention
• words are lowercase, dash as separator
• final word is the thing’s type, a dot is its separator
• if the thing is a class, no final word
• contact-details.component.ts
16. npm
• The package manager for JavaScript
• npm requires a file, package.json, in the app root
• requires node.js because it is written in JavaScript
• doesn’t officially stand for anything
• https://www.npmjs.com/
17. package.json
• name - what this app is called, for npm it must be
• version - the current version number
• description - what this package is all about
• author - who wrote it
• repository - where it lives
18. package.json
• license - type of license granted to users of the
package
• scripts - commands
• dependencies - packages for production
• devDependencies - packages for development
19. version definitions
• “^1.8.9"
• 1 - is the major number
• 8 - is the minor number
• 9 - is the patch number
• patch number is not required
20. version symbols
• "1.8.9" - must exactly match version
• ">1.8.9" - must be greater than version
• ">=1.8.9", "<1.8.9", "<=1.8.9"
• "^1.8.9"- allows changes to the minor & patch
• "~1.8.9" - allows changes to the patch
• "1.8.*" - a wild card which stands for any value here
21. install
• The install adds a package to your app
• npm install <package name> [—save | —save-
dev]
• npm i <package name> [-d | -D]
• —save: saves info to dependencies
• —save-dev: saves info to devDependencies
22. run-script
• npm run-script <command> <args>
• or npm run <command> <args>
• to abort use control-c
• start and test commands don’t need “run”
• npm start OR npm test
23. What’s in our package.json?
• @angular - Angular components
• core-js - Modular standard library for JavaScript
• rxjs - Reactive extensions library
• zone.js - Implements Zones for JavaScript
25. Webpack
• Module bundler
• A dependency of @angular/cli
• Replaces System.JS, Browserify, and others
• Works with JS, CSS, and HTML
• Minifies, concatenates, and bundles
26. How?
• Webpack starts at your app’s entry point
• It makes a graph of all dependencies
• It then bundles them together into an output file
• (Directed Acyclic Graph or DAG for short)
27. Loaders
• Goal: Webpack handler loading of all of your app’s
assets
• Every file is a module
• Webpack only understands only JavaScript
• Loaders transform files into modules
32. ECMAScript Versions
Version Date
ES1 June 1997
ES2 June 1998
ES3 December 1999
ES4 DOA 2006
ES5 December 2009
ES2015 / ES6 June 2015
ES2016 / ES7 2016
34. map
let junk = [1, 2, 3, 4, 'Alpha', 5, {name: 'Jason'}];
let letters = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K'];
let nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20];
console.log(nums);
// map iterates over all of the elements and returns a new array with the same
// number of elements
let nums2 = nums.map((elem) => elem * 2);
console.log(nums2);
/// [2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40]
35. filter
let junk = [1, 2, 3, 4, 'Alpha', 5, {name: 'Jason'}];
let letters = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K'];
let nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20];
console.log(nums);
// filter iterates over the array and returns a new array with only the elements
// that pass the test
let nums3 = nums.filter((elem) => !!(elem % 2));
console.log(nums3);
/// [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
36. reduce
let junk = [1, 2, 3, 4, 'Alpha', 5, {name: 'Jason'}];
let letters = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K'];
let nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20];
console.log(nums);
// reduce iterates over the array passing the previous value and the current
// element it is up to you what the reduction does, let's concatenate the strings
let letters2 = letters.reduce((previous, current) => previous + current);
console.log(letters2);
/// ABCDEFGHIJK
// reduceRight does the same but goes from right to left
let letters3 = letters.reduceRight((previous, current) => previous + current);
console.log(letters3);
/// KJIHGFEDCBA
37. let
• let allows us to create a block scoped variables
• they live and die within their curly braces
• var is considered deprecated
• best practice is to use let instead of var
38. let
// let allows us to create block scoped variables
// they live and die within the curly braces
let val = 2;
console.info(`val = ${val}`);
{
let val = 59;
console.info(`val = ${val}`);
}
console.info(`val = ${val}`);
39. const
• const creates a variable that can't be changed
• best practice is to make any variable that should
not change a constant
• does not apply to object properties or array
elements
40. const
const name = 'Troy';
console.info(`My name is ${name}`);
// the line below triggers a type error
name = 'Miles';
41. Template strings
• Defined by using opening & closing back ticks
• Templates defined by ${JavaScript value}
• The value can be any simple JavaScript expression
• Allows multi-line strings (return is pass thru)
42. Template strings
let state = 'California';
let city = 'Long Beach';
console.info(`This weekend's workshop is in ${city}, ${state}.`);
// template strings can run simple expressions like addition
let cup_coffee = 4.5;
let cup_tea = 2.5;
console.info(`coffee: $${cup_coffee} + tea: $${cup_tea} = $$
{cup_coffee + cup_tea}.`);
// they can allow us to create multi-line strings
console.info(`This is line #1.
this is line #2.`);
43. Arrow functions
• Succinct syntax
• Doesn’t bind its own this, arguments, or super
• Facilitate a more functional style of coding
• Can’t be used as constructors
44. Arrow functions
• When only one parameter, parenthesis optional
• When zero or more than one parameter,
parenthesis required
45. Arrow function
let anon_func = function (num1, num2) {
return num1 + num2;
};
console.info(`Anonymous func: ${anon_func(1, 2)}`);
let arrow_func = (num1, num2) => num1 + num2;
console.info(`Arrow func: ${arrow_func(3, 4)}`);
46. this
• this is handled different in arrow functions
• In anonymous function this is bound to the global
object
• In arrow function this is what it was in the outer
scope
47. Destructuring
• Maps the data on the right side of the equals sign
to the variables on the left
• The data type decides the way values are mapped
• It is either object or array destructuring
48. Object Destructuring
16// this is a demo of the power of destructuring
17// we have two objects with the same 3 properties
18 const binary = {kb: 1024, mb: 1048576, gb: 1073741824};
19 const digital = {kb: 1000, mb: 1000000, gb: 1000000000};
20// We use a ternary statement to choose which object
21// assign properties based on their property names
22 const {kb, mb, gb} = (useBinary) ? binary : digital;
50. Spread syntax
• Expands an expression in places where multiple
arguments, elements, or variables are expected
51. The spread operator
11
12 // the spread operator
13 const myArray = ['Bob', 'Sue', 'Fido'];
14 function printFamily(person1, person2, pet) {
15 console.info(`Person 1: ${person1}, Person 2: ${person2}, and their pet: ${pet}`);
16 }
17 printFamily(...myArray);
18 // Person 1: Bob, Person 2: Sue, and their pet: Fido
19
52. Class
• Syntactic sugar over JavaScript use of function
constructors
• JavaScript uses proto-typical inheritance
• If a class extends another, it must include super()
as first instruction in its constructor
• Only create a constructor if it does something
53. Class
• Syntactic sugar over JavaScript use of function
constructors
• JavaScript uses proto-typical inheritance
• If a class extends another, it must include super()
as first instruction in its constructor
• Only create a constructor if it does something
54. import
• Imports functions, objects, or primitives from other
files
• import <name> from “<module name>”;
• import {name } from “<module name>”;
• import * as Greetings from “<module name>”;
• relative path indicates not an npm package
59. How to use modern JS now?
• Use only the latest browsers
• Use Node.js
• Use a transpiler: Closure, Babel, TypeScript
• (https://kangax.github.io/compat-table/es6/)
61. JavaScript Problems
• No modules, only files
• No linkage
• No static checking
• Hard to refactor
• So Google created AtScript
62. The death of AtScript
• Google forked TypeScript,
• Called it AtScript for @ signed used annotations
• Google and Microsoft engineers met
• Microsoft added some desired functionality to
TypeScript
• TypeScript is the preferred language of Angular
68. Modules
• Any file containing a top-level import or export is
considered a module
• Modules are executed within their own scope
• Modules are declarative
• Modules import one another using a module loader
70. tsconfig.json
• target: compile to this version of JS
• module: module system to use
• moduleResolution: where modules are loaded
• sourceMap: should a source map be generated
71. tsconfig.json
• emitDecoratorMetadata: set true to include the
decorator metadata, required for Angular
• experimentalDecorators: should we use ES7 style
decorators
• removeComments: should comments be deleted
• noImplicitAny: set true if you want super strict
typing, (you probably don’t want this)
72. AngularJS
• Created by Miško Hevery and
Adam Abrons in 2009
• JavaScript MVC
• Declarative programming for
UI
• Imperative programming for
business logic
74. Since 2009
• New versions of JavaScript (ES5, ES6, ES2016)
• Lots of new browser capabilities
• Transpilers like TypeScript and Babel
• Cool libraries like RxJS and Zone
• No longer necessary for Angular to do everything
76. Deleted from Angular
• $scope
• Data Definition Object
• angular module
• controllers
• jqLite / jQuery
77. Main Parts
• Module
• Component
• Template
• Data binding
• Metadata
• Service
• Directive
• Dependency Injection
78. Bootstrapping
• Angular apps built with components
• One component is chosen to kick off the app
• This process is known as bootstrapping
• Our app begins in file main.ts
79. Metadata
• Metadata is extra information which gives angular
more info
• @Component tells angular the class is a
component
• @Directive tells angular the class is a directive
80. Component
• A class with component metadata
• Responsible for a piece of the screen referred to as
view.
• Template is a form HTML that tells angular how to
render the component.
• Metadata tells Angular how to process a class
82. Template/View
• Is a way to describe a view using HTML
• Templates can be included with the component
• Or as an URL link to an HTML file
• Best practice is to use an HTML file
• The moduleId: module.id property sets the base for
module-relative loading of the templateUrl.
83. moduleId
• The moduleId: module.id
• Sets the base for module-relative loading of the
templateUrl.
84. Service
• “Substitutable objects that are wired together using
dependency injection (DI)”
• Used to share code across app
• Lazily instantiated
85. Directive
• A class with directive metadata
• Two kinds: attribute & structural
• Attribute directives alter the look or behavior of an existing
element
• Structural directives alter the layout by adding, removing,
and replacing elements in the DOM
• All structural directives begin with “*”
• A component is a directive with a view
89. Dependency Injection
• A way to supply a new instance of a class with the
fully-formed dependencies it needs
• Most dependencies are services
• Angular know which services a components by
looking at the types of its constructor parameters
• Services are injected by an Injector which uses a
Provider to create the service
90. Dependency Injection is not
Magic
• Dependency Injection (DI) is a core component of
Angular
• It only means objects are instantiated somewhere
else
• And supplied to your code when it needs them
• Angular calls DI a provider
92. Module Initialization
Key Value
imports Modules (array)
declarations Components (array)
providers Services and other DI objects (array)
bootstrap the launch component
95. Data Binding
C/D Attribute Binding type
—> {{ value }} one-way
—> [property] = “value” property
<— (event) = “handler” event
<—> [(ng-model)] = “property” two-way
96. Using Forms
• Forms module must imported
• Forms use two-way binding via [(ngModel)]
• name attribute is required on form tags
97. NgForm
• Added to the form element automatically
• Holds the forms controls and their validity state
• Also has it own validity
98. ngModel Change-State
Control State If true If false
Visited ng-touched ng-untouched
Changed ng-dirty ng-pristine
Valid ng-valid ng-invalid
99. Control Classes
• *.pristine - true if the user has not touched the
control
• *.touched - true if the user has left the control
• *.valid - true if the control is valid
100. template reference variable
• #<name>=“ngModel” (template ref. variable)
• ngModel is required here
• creates a variable named, <name>
• (it relates to the directive’s exportAs property)
103. Installing Firebase
• npm i -S firebase angularfire2
• Add to app module and initialize
• Import into code
• Using firebase is different than hosting on it
104. Firebase settings
• Go to the Firebase console
• Click on Overview
• Click on “Add Firebase to your web app”
• Copy your config settings
105. Firebase commands
Command What?
firebase login logins into your firebase account
firebase init sets up a new firebase project
firebase deploy deploys your app to firebase hosting
firebase list lists all your firebase projects
firebase open open project resources
firebase use —add adds the current
106. Firebase Steps
1. Create project in Firebase
2. Go to application root in terminal/ cmd prompt
3. firebase login
4. firebase init (connects app to firebase project)
5. ng build prod (creates “dist" directory)
6. firebase deploy
7. Refresh cache (Chrome: cmd+shift+R / ctrl+shift+R )
109. Reactive Extensions
• A library for building async and event-based
programs using observable data streams
• Data streams can be from a file, web service, or
user input
110. Use Rx for…
• UI events like mouse move, button click
• Domain events like property changed, collection
updated, etc.
• Infrastructure events like from file watcher, system
and WMI events
• Integration events like a broadcast from a message
bus or a push event from WebSockets API
111. Observable
• Emit the next element
• Throw an error
• Send a signal that streaming is finished
112. Observer
• Handle the next emitted element
• Handle errors
• Handle the end of streaming
113.
114. Angular Material
• npm i -S @angular/material
• npm i -S hammerjs
• Add to app.module.ts
import { MaterialModule } from '@angular/material';
import ‘hammerjs';
(add to imports)
• Add to global css
@import '~@angular/material/core/theming/prebuilt/
deeppurple-amber.css';
116. Jasmine
• Created by Pivotal Labs in 2010
• Current version 2.5.3
• JavaScript testing framework
• The default unit test for Angular
• Can test client and server code
117. describe() - Test Suite
• describe() is a global Jasmine function
• Takes to parameters
• name of the test suite (string)
• implementation of the suite (function)
• Can be nested
119. it() - Test Spec
• it() is a global Jasmine function
• Takes two parameters
• name of the spec (string)
• implementation of the spec (function)
120. it()
it(`should have as title 'Quizzer'`, async(() => {
let fixture = TestBed.createComponent(AppComponent);
let app = fixture.debugElement.componentInstance;
expect(app.title).toEqual('Quizzer');
}));
121. expect() - Expectation
• expect() is a global Jasmine function
• Jasmine’s version of assert()
• Takes one parameter
• The actual - value generated by code under test
• Is chained to a Matcher
122. Matcher
• Takes the output of the expect() function
• Takes one parameter
• The expected value
• Compares the expect and actual value using the
logic of the matcher
123. expect()
let app = fixture.debugElement.componentInstance;
expect(app).toBeTruthy();
expect(app).not.toBeUndefined();
expect(app.title).toEqual('Quizzer');
124. Matchers (part 1)
Matcher Comparison
toBe() compares using ===
toEqual() works for literal variables and objects
toMatch() for regular expressions
toBeDefined() compares against 'undefined'
toBeUndefined() also compares against ‘undefined'
125. Matchers (part 2)
Matcher Comparison
toBeNull() compares against null
toBeTruthy() truthy boolean casting
toBeFalsy() falsy boolean casting
toContain() finds an item in array
126. Matchers (part 3)
Matcher Comparison
toBeLessThan() mathematical comparison
toBeGreaterThan() mathematical comparison
toBeCloseTo() precision math comparison
toThrow() should throw an exception
127. Angular’s Matchers
Matcher Comparison
toBePromise() the value is a promise
toBeAnInstanceOf() an instance of an object
toHaveText() the element has the given text
toHaveCssClass() the element has the given CSS class
toHaveCssStyle() the element has the given CSS styles
toImplement() the class implements the given interface
128. Custom Matchers
var customMatchers = {
toBeGoofy: function (util, customEqualityTesters) {
return {
compare: function (actual, expected) {
if (expected === undefined) {
expected = '';
}
var result = {};
result.pass = util.equals(actual.hyuk, "gawrsh" + expected,
customEqualityTesters);
result.message = result.pass ?
"Expected " + actual + " not to be quite so goofy" :
"Expected " + actual + " to be goofy, but it was not very goofy";
return result;
}
};
}
};
131. this
• beforeEach sets the this construct to any empty
object
• It is passed to each it() and afterEach()
• The modified this doesn’t flow thru from one it() to
the next
133. Disabling suites & specs
• prepend an ‘x’
• to disable a suite change describe() to xdescribe()
• to disable a spec change it() to xit()
• They are not execute but appear in reporting
134. Unit Test & DI
• When unit testing your app you ask Angular for just
enough parts to make it work
• Angular uses DI to do this
139. src/styles.css
styles.css
/* You can add global styles to this file, and also import other style files */
body {
font-family: Roboto, sans-serif;
font-size: 18px;
}
141. Material Icons
• Simple, modern, friendly, sometimes quirky icons
• Created using Google’s design guidelines
• Depict universal concepts in minimal form
• Legible in both large and small sizes
• Optimized for beauty
142. Licensing
• Licensed under Apache License Version 2.0
• You are free to remix and re-share
• You may give attribution, but not required
• You are not allowed to sell them
143. Downloading
• Download the latest from archive (~60mb)
• git clone http://github.com/google/material-design-
icons/
• npm install material-design-icons
144. Google Web Fonts
• Self-host (load fonts & setup CSS rules)
• Use Google Web Fonts
• <link href="https://fonts.googleapis.com/icon?
family=Material+Icons" rel="stylesheet">
147. Rendering
• Best to copy the Unicode character 😼
• Browsers can’t render Unicode (U+1F63C)
• Browser can usually only render 4 digit hex codes
so the above code won’t display
152. Installation
• npm install --save @angular/material @angular/cdk
• npm install --save @angular/animations
• Import either BrowserAnimation or NoopAnimation
module
• Import component modules
• Include a theme
153. hammer.js
• Adds support for touch gestures
• Removes 300ms delay from clicks
• npm install --save hammerjs
• Import hammerjs in app.module.ts
154. Themes
• Add one to your styles.css
• @import '~@angular/material/core/theming/prebuilt/
deeppurple-amber.css';
• @import '~@angular/material/core/theming/prebuilt/indigo-
pink.css';
• @import '~@angular/material/core/theming/prebuilt/pink-
bluegrey.css';
• @import '~@angular/material/core/theming/prebuilt/purple-
green.css';
155. Feature Status
Feature Status
button available
cards available
checkbox available
radio available
input available
sidenav available
toolbar available
156. Feature Status
Feature Status
list available
grid-list available
icon available
progress-spinner available
progress-bar available
tabs available
slide-toggle available
158. Feature Status
Feature Status
select available
textarea available
autocomplete available
chips available
theming available
typography not started
159. Feature Status
Feature Status
fab speed-dial not started
fab toolbar not started
bottom-sheet not started
bottom-nav not started
virtual repeat Q4 2017
datepicker available
data-table available