Masterclass: React component patterns

Date: 9-10 May 2018, Iasi
Days: 2 (16 hours)

Target audience: Intermediate developers (basic React and Redux knowledge
required)

Training fee: €330/participant plus VAT, only 15 seats available
To book your seats, please contact us by email ([email protected]) or phone (+40 741 103 133).

 

AGENDA
1. Stateless functions
a. What are stateless functions?
b. When to use
c. Drawbacks
2. JSX spread attributes
3. Destructuring arguments
4. Conditional rendering
a. If
b. Unless
c. If / Else block
5. Arrays as children
a. Usage with functional methods (mapfilter, etc.)
b. Explanation of React keys
6. Controlled vs. uncontrolled components
a. What are controlled components?
b. What are uncontrolled components?
c. Dealing with controlled vs. uncontrolled
d. When to use controlled vs. uncontrolled
e. Drawbacks
7. Container vs. presentational components
a. What are container components?
b. What are presentational components?
c. Reasons behind the split
d. Practice with container vs. presentational in simple React
e. Practice with container vs. presentational in React + Redux
8. State hoisting
a. Advantages of hoisting state
b. Drawbacks and possible gotchas
9. Provider / Consumer pattern
a. New context API in React 16
b. When to use Provider / Consumer pattern
c. Drawbacks
10. Higher Order Components
a. What are HOCs?
b. Practice with HOCs
c. Example of HOCs in the wild (withRouter, connect, etc.)
d. When to use HOCs
e. Drawbacks
11. Functions as child components
a. What are functions as child components?
b. Practice with functions as child components
c. Differences between functions as child components and HOCs
d. When to use functions as child components
e. Drawbacks
12. Short recap

Mentions
This agenda represents the contents for a 2 days (16 hours) based training, covering a great number of React related concepts, knowledge and practical applications. Although the training content can be tweaked on a per case by case basis, for maximum results we recommend sticking with the complete agenda.

Prerequisites
1. Every student will have his/her own laptop. For best results, it is not advisable to multiple people working on the same machine
2. Node v8.9.4 or greater installed (https://nodejs.org/en/download/)
3. Git v2.16.0 installed (https://git-scm.com/downloads)
4. An IDE/code editor of choice (Sublime Text, Atom, Visual Studio Code,
WebStorm, etc.)

Expectations
This training assumes the participants are already familiar with ES6 concepts
(classes, destructuring, default parameters, arrow functions, let/const, etc.), basic JavaScript knowledge and syntax, npm (interacting with the npm ecosystem, package.json), Git (basic commands) and that they have basic React and Redux knowledge (JSX, VDOM, state, props, event management, component lifecycle hooks, actions, reducers, store, mapStateToProps, mapDispatchToProps etc.). Thus, the aforementioned concepts will not be discussed or detailed during the training.

This training targets intermediate developers who would like to upgrade their
React knowledge by finding out more about React component patterns, when
and how to apply them and gain architectural knowledge useful in scaling
applications based on this technical stack.

The trainer
Vlad is a pragmatic software engineer, Google Developer Expert and an avid caffeine consumer. He loves surrounding himself with ever smiling people and he’s constantly pushing his limits in order to become a better professional. He always keeps an eye opened to the ever-changing landscape of technologies he’s interested in. A true believer in the power of sharing your knowledge and becoming a better individual through collaboration and feedback, Vlad regularly speaks at conferences and meetups where he shares his passion for everything tech related.

Vlad is co-organizer of CluJSers, being actively involved in the development of several tech communities and acting as an advisor for a couple of well known
Romanian conferences such as Codecamp and JSHeroes. In October 2016 he
joined the Google Developer Experts group as the second professional in the world with knowledge revolving around the React ecosystem. Shortly after, he founded KRAK3N, his own consultancy company and has been, since then, helping clients and individuals build amazing products, deliver business value, solve complex JavaScript challenges, learn and apply React and embrace Agile methodologies in their work environments.

His teaching experience is vast, Vlad being responsible for mentoring over 100 people while working for companies such as Yonder, 3PillarGlobal or acting as a Fullstack JavaScript Instructor for Viking Code School. For more information about him, feel free to follow him on Twitter, read his personal website, consult his company website or explore a short list of talks he has given so far.

 

Training fee: €330/participant plus VAT, only 15 seats available
To book your seats, please contact us by email ([email protected]) or phone (+40 741 103 133).

 

Browse more masterclasses here.

See how Artificial Intelligence is changing the way we live our lives

AI as a strategic area of investment in order to stand out from the crowd. For instance, a survey conducted by Vanson Bourne, a research firm on behalf of Teradata on 260 IT and business decision-makers, reveals that more than 80% of companies are investing in AI.

Industries impacted by AI

Even if AI has an impact on all industries, there are several areas that will be revolutionized by it. The above-mentioned survey also shows that 59% of companies from IT and telecommunication expect to take advantages from AI, followed by 43% business and professional services and 32% of customer services and financial services.

AI will revolutionize medicine

2018 it’s considered the year when AI will expand more to medical diagnostics. “By the end of next year, I think around half of leading healthcare systems will have adopted some form of AI within their diagnostic groups. In 2018, we’ll begin the adoption of a technology that may truly transform the way providers work, and the way patients experience healthcare, on a global scale”, explains Mark Michalski, executive director, “Massachusetts General Hospital” and “Brigham and Women’s Hospital Center” for Clinical Data Science.

AI in everyday life

AI has changed so much our daily life that soon we will ask ourselves how we were able to live without it. 2018 is expected to be the year in which voice-based gadgets will work together and have personalized media – from reports to music playlists, according to our taste and interests.

AI will create new jobs

AI also seems to bring changes in the labor market. People are concerned that their jobs will be replaced with robots in the future. According to a Gartner report from December 2017, AI will replace only low-level, routine work. Besides this, AI is expected to generate more new jobs – 2.3 million by 2020, while eliminating only 1.8 million jobs.

Read this article and learn more about this topic.

How to create simple apps using Unity 3D and Parse Server

If you want to create an app faster, and you do not have knowledge from the backend area, but you require your app to interact with a database, one accessible solution is to use Parse Server. Parse Server is an open source Back-as-a Service (BaaS) framework initially developed by Facebook which uses web-based, all-in-one Dashboard. From here, you can create classes and manage your data, to view analytics, and send push notifications.

 

As you know, the Parse Service was shut down in January 30, 2017 (I hope you have migrated to other backend service you decided to).

An easy solution for this problem is using Back4app, which is an open source backend that already uses framework and helps developers to build their apps scalable and extensible at a much faster speed. Back4app is great for developers if they are looking for flexibility, customization on source code and the capability to integrate their app with other cloud services.

Read this article and learn how to create simple apps using Unity 3D and Parse Server.

About ASSIST Software

ASSIST Software is a software outsourcing company based in Suceava, the largest city in the North-East of Romania. Founded in 1992, ASSIST Software is present on the international market, as a supplier of innovative solutions, being a reliable and trustworthy outsourcing partner for more than 230 clients worldwide.

Focusing the activities toward developing complex software products, we provide consistent results in emerging fields such as mobile and web-based custom business applications, IoT, e-commerce, e-payment, e-security, e-health and enterprise & resource planning, entertainment and gaming industry

Our teams can adapt to our clients’ demands, being able to support complete software development life cycle (requirements-development-deployment-maintenance), project management, quality assurance and consulting services.

Our Microsoft Certified Partner status is recognition for our performances and competences. These competences are greatly supported by the software development team. The partnership with IBM, Intel, CISCO and HP are testament to our ability to design and deliver quality hardware and software solutions optimized for any platform.

 

Masterclass: Functional Programming on the JVM with Scala & Clojure

Most programming languages are gaining functional programming constructs, and the JVM remains a rock-solid base on which to build a wide variety of applications; however, the legacy ties to OOP in the Java programming language itself make many of the more interesting and useful aspects of functional programming difficult to achieve.

Date:

23 March 2018, IASI

Training fee: €250/participant plus VAT, only 25 seats available

To book your seats, please contact us by email ([email protected]) or phone (+40 741 103 133).

About the training

In this course we’ll dive into two popular FP languages for the JVM: Scala and Clojure. You’ll learn about the critical features designed into these languages that can take your software to the next level. Both languages have great strengths, but we’ll also talk about the most significant problems that you’ll face when adopting either.

The hands-on portion of the course will concentrate on some of the most significant benefits of working with each.

Prerequisites

The content is approachable for all levels of developers. Experience working with Java, Javascript, or C# is recommended.

Course Outline

  • Scala 
    • First-class persistent data structures
    • Improved type system
    • Type inference, call-by-name, extended argument lists, implicits
    • Libraries of interest
    • Weaknesses and Challenges
    • Scala.js (browser-based scala)
    • Lab: Some tractable code examples you can run/modify
  • Clojure 
    • Dramatically simpler syntax
    • Language concerns at a library layer
    • Code as data
    • Ad-hoc polymorphism
    • First-class treatment of time as a programming concern
    • Spec vs Type systems
    • Dynamic development
    • Libraries of interest
    • Weaknesses and Challenges
    • Clojurescript (browser-based Clojure)
    • Lab: Some tractable code examples you can run/modify.
  • Summary
    • A review of pros/cons, naming specific use-cases for each language
    • Objective comparison: How to talk to others about the pros/cons

The trainer

Tony Kay is a seasoned developer with over 30 years of experience. He’s been working with Java since its initial public release, and designed and wrote curriculum for a company in the 90’s that was purchased by Sun Microsystems based on the quality of his Java courses. He spent many years refining his testing skills on the JVM platform, and has taught those techniques professionally for a number of years. He currently runs the consulting company Fulcrologic, LLC in the United States and does a lot of work using the functional programming language Clojure.

Date:

23 March 2018, IASI

Training fee: €250/participant plus VAT, only 25 seats available

To book your seats, please contact us by email ([email protected]) or phone (+40 741 103 133).

Browse more masterclasses here.

 

Masterclass – Effective Testing in Java

We all know that testing is important, but most of us have had little education about the different approaches to testing and are left to teach ourselves. Unfortunately, it takes most people years to learn good habits and techniques, and the mistakes we make when learning are often costly, frustrating, and counter-productive. We end up with slow tests, tests that break for bad reasons, and tests that are impossible to reason about when they fail.  In other words: useless tests.

Date:

22  March 2018, Iasi

Training fee: €250/participant plus VAT, only 25 seats available

To book your seats, please contact us by email ([email protected]) or phone (+40 741 103 133).

About the training

Many people simply return to the well-known technique of our self-taught days: code it, play with it, move on. In this workshop we’ll concentrate on helping you create tests that are effective: test that run quickly, only fail for good reasons, give you clear information when they break, and are easy to understand when you have to read them (which should be rarely).

This is a hands-on workshop where we’ll actively work through the methods of testing using the Java programming language. If you complete the labs you will have a completely working application that is fully covered, and demonstrates most of the topics covered in the course.

Prerequisites

Participants should already know the Java programming language. At least a year of experience is recommend. The course contains material that even senior develops should find useful. Each participant that wishes to participate in the lab should come with a laptop that has their favorite IDE and git already installed and working. Labs will be done as a git fork of a maven-based Java project that participants will push to in order to share work. IntelliJ will be used by the instructor, but any IDE that can run JUnit tests and load Maven projects is fine.

Course Outline

Lecture 1 – The Basics

  • Demonstration of an effective test suite
  • Criteria of a good test
  • Identifying good tests
  • Why test coverage statistics are nearly useless
  • Test “code smells”: spotting bad tests
  • A summary of helpful rules

Lab 1 – Covering the Basics

  • In this lab you’ll write some simple unit tests that meet the criteria taught in the lesson.
  • Solutions to Lab 1 – Forum for discussion challenges and solutions.

Lecture 2 – The Spectrum of Tests

  • Cost/benefit analysis of manual vs. automated testing
  • Testing in the presence of side-effects
  • Dealing with I/O, Databases, and other “external” systems
  • System Integration Testing

Lab 2 – Dealing with I/O

  • In this lab you’ll write tests that cover the I/O concerns of the lab project.
  • Solutions to Lab 2 – Forum for discussion challenges and solutions.

Lecture 3 – Controlling the Layers

  • Writing Testable Code: Techniques that improve your ability to reason
  • The role of mocking and injection
  • An overview of injection techniques
  • Pros and Cons
  • Mocking code smells
  • Design patterns that can help
  • Language-specific workarounds

Lab 3 – Layered Testing

  • In this lab you’ll see how injection and mocking can make otherwise untestable things easy to test.
  • Solutions to Lab 3 – Forum for discussion challenges and solutions.

Lecture 4 – Managing Complexity

  • Design and Agile practices
  • Separating real complexity from incidental complexity
  • Techniques that leverage testing to enable evolving design over time
  • Some Case Studies as Examples

Lab 4 – Complete the Project

  • In this lab participants will complete the lab project.
  • Final Solution – Forum for discussion about the completed project.

Lecture 5 – Verification, Refactoring, and Code Hygiene

  • Spot-checking the test suite
  • When/why do you refactor?
  • Evolving the specification
  • Continuous Integration

Final Lab – Spot checking and CI

  • Get your tests running in CirclCI
  • Have another participant spot-check review your tests

 

The trainer

Tony Kay is a seasoned developer with over 30 years of experience. He’s been working with Java since its initial public release, and designed and wrote curriculum for a company in the 90’s that was purchased by Sun Microsystems based on the quality of his Java courses. He spent many years refining his testing skills on the JVM platform, and has taught those techniques professionally for a number of years. He currently runs the consulting company Fulcrologic, LLC in the United States and does a lot of work using the functional programming language Clojure.

Date:

22  March 2018, Iasi

Training fee: €250/participant plus VAT, only 25 seats available

To book your seats, please contact us by email ([email protected]) or phone (+40 741 103 133).

Browse more masterclasses here.

HARMAN – A Samsung Company

Were you aware that Harman designs, manufactures and markets a wide range of audio, lighting and infotainment solutions for the automotive, consumer and professional markets?
For example, did you know they engineer the infotainments systems for BMW (iDrive), Mercedes-Benz (COMMAND), Audi (MMI), Chrysler (Uconnect) and many more?
Harman is a recognized world leader across its customer segments with premium brands including AKG, Harman Kardon, Infinity, JBL, Lexicon and Mark Levinson.
The company is admired by audiophiles across multiple generations and supports leading professional entertainers and the venues where they perform.
More than 25 million automobiles on the road today are equipped with Harman audio and infotainment systems.
More than 80 percent of the world’s luxury cars are equipped with our premium audio and infotainment systems.
Your favorite music, movie or television show was likely recorded or broadcast with our help. We share the stage with talented performing artists from every genre, and we fill the world’s premier sporting and entertainment venues with great sound and light.
But HARMAN stands for more than just great sound. We help create great lifestyle experiences for today’s connected generation.
Updates and enhancements are automatically downloaded as they become available, and real-time diagnostics alert you when routing services or repairs are indicated.
For more about our automotive cloud offerings, visit the Connected Services section of our website.
HARMAN’s innovative and highly integrated infotainment technologies offer automakers the most complete solutions for advanced navigation, intuitive user interfaces, integrated audio, device connectivity, cyber security, and connected safety, just to name a few. From Boston to Berlin to Bangalore, HARMAN is delivering a dynamic in-car experience for an increasingly connected world.

berg COMPUTERS – an IT company that brings enthusiasm among programmers

There are many cool IT firms in Timisoara, but berg COMPUTERS believes that its charm is the one that attracts more and more developers to be part of its team. berg COMPUTERS is one of the fastest growing IT companies in the region, specializing in technology consulting, software development and software outsourcing. Its team of software developers successfully implements complex and innovative projects for its global clients, since 1991.

The fact that berg COMPUTERS office is just outside the city makes it a perfect workplace for programmers who want a job in a relaxing and creative workspace. One of the attractions that impress all new colleagues is surely the company’s terrace where employees spend lunch breaks. Even the coffee tastes better when you enjoy it with your team in the crisp cool morning air.

The offices are invaded by natural light and the open space is perfect for sharing with your teammates assignment details or gossip about the last night’s movie. berg COMPUTERS works with technologies like Java, .Net, PHP, JavaScript on challenging global projects. Meetings are extremely creative because at berg COMPUTERS people use design thinking methods by which they gather their ideas on post-its on the board, then brainstorm and find together the best way to solve a problem.

Sometimes, in order to disconnect for a few minutes, employees enjoy a little friendly competition in the company’s ping-pong championship. Whoever wins the championship delegates bugs to other programmers. 😉 And because they are foodies, many of their internal events revolve around food.

Every month one of their teams takes control of the kitchen and cooks for everyone. They enjoy fresh fruit at the office and traditional delicacies from local producers. They’ve come to know each other very well in team buildings, at their summer/winter parties, themed events and outings at the cinema, bowling, karting, and more.

If you are motivated to work with international clients, on innovative projects, and you are good at programming, you can become their colleague. Go to berg-computers.com and learn more about them!

Externalized Configuration with Spring Cloud Config and Vault

You start a new project. In the beginning, it’s mostly prototyping; you try out ideas and nothing is fixed yet, so you are very pragmatic when it comes to the configuration of your application. Some property files are stored next to the source code – at least you are not using hard-coded URLs and credentials! When you first deploy the application to a dev or demo environment, you simply copy and modify the property files. The prototype turns into production code, yet the configuration is still managed in an ad-hoc manner. Does this sound familiar to you? It was, at any rate, the situation I found myself in with one my of current projects somewhat more than a year ago.

Maintaining separate copies of the configuration files in different environments was probably never the best approach, even when we used to deploy onto few long-running snowflake servers. Given that we more and more learn to take advantage of cloud offerings, therefore often create short-lived application environments for, e.g., tests, and deploy even our production systems as phoenix servers, we need to do better.

Read this article if you want to find out how Haufe approached this issue in one of their Spring Boot-based projects using Spring Cloud Config and Spring Cloud Vault and how they customized these libraries to meet their needs.

Automate Amazon Machine Images(AMI’s) with Packer

What is an AMI?

An Amazon Machine Image (AMI) provides the information required to launch an instance, which is a virtual server in the cloud. You specify an AMI when you launch an instance, and you can launch as many instances from the AMI as you need. You can also launch instances from as many different AMIs as you need.

Let’s see what Packer is:

Packer is an open source tool for creating identical machine images for multiple platforms from a single source configuration. A machine image is a single static unit that contains a pre-configured operating system and installed software which is used to quickly create new running machines. Machine image format changes for each platform like: AMIs for EC2, VMDK/VMX files for VMware, OVF exports for VirtualBox, etc.”

The reason Packer is used to create our instances, instead of already existing AMI’s tools, provided by Amazon, is that we want to have the full control for our images creation, choosing how we want to install only the packages we need. Having full control on your AMI’s creation, will be more secure.

You can find out here how to create an AMI from scratch starting from an .iso you want, using your favorite OS.

Masterclass: Leading, following, or managing? Efficient and effective ways to help your group thrive

We work in teams. Teams that have goals, that work together to solve problems, that sometimes squabble and make up. How people in the group behave depends on the styles of leadership, management and followership adopted in the group, and on each of our individual behaviours.

Date: 23 March 2018, IASI
Training fee: €250/participant plus VAT, only 25 seats available

To book your seats, please contact us by email ([email protected]) or phone (+40 741 103 133).

About the training

Do we have a mentoring, coaching, managing or leadership role towards others? Are we following or learning from others? Do we influence our colleagues and organisations in public or behind the scenes? Are these interactions built into a formal hierarchy in our group? Have we informally adopted an interaction role? Or have we even been forced into a particular interaction role?

In order that we work together as efficiently and effectively as possible, we need to understand the range of approaches or styles for leadership and management, what styles we feel most comfortable with, and how we react to both being leaders and being led.

It’s not just humans who work in groups. Other animals can tell us about how we interact with individuals, teams, and groups both as leaders and followers. Isabel discusses animal behaviour, predators, animal groups, parasites and epiphytes, and the richness of symbiotic partnership.

We’ll use techniques such as influence diagramming to help us understand behaviour during change, and we’ll look at leadership models to see which ones are appropriate for us.

Regardless of the project model/software life cycle model you use, you’ll need to understand these interactions, and when to adopt a leadership, mentoring, coaching, following, or learning attitude in order to help your group thrive.

Three key points to take away:

  • Gain an understanding of leadership styles and how you react to them;
  • Learn how the team organization and leadership style affects its effectiveness;
  • Understand when to use these approaches most effectively and efficiently.

The trainer

Independent quality and testing consultant Isabel Evans has more than thirty years of IT experience in quality management and testing in the financial, communications, and software sectors. Her quality management work focuses on encouraging IT teams and customers to work together via flexible processes designed and tailored by the teams that use them. Isabel authored Achieving Software Quality Through Teamwork and chapters in Agile Testing: How to Succeed in an eXtreme Testing Environment; The Testing Practitioner; and Foundations of Software Testing. A popular speaker at software conferences worldwide, Isabel is a Chartered IT Professional and Fellow of the British Computer Society, and has been a member of software industry improvement working groups.

Date: 23 March 2018, IASI
Training fee: €250/participant plus VAT, only 25 seats available

To book your seats, please contact us by email ([email protected]) or phone (+40 741 103 133).

Browse more masterclasses here.