This page contains the latest news from Virtual Pair Programmers. To keep up to date with our views on the industry, what we're doing, and other thoughts from our trainers, you might also want to check out:
Hopefully all should be well now!
Our latest course, covering how to build responsive javascript front-ends in React is now available.
Full details hereWe've completely re-written and updated our Java Fundamentals training course... get a solid foundation in the Java programming language, now updated for Java 17 (but equally good for users of Java 8 and 11 too!)
Full details hereThere was a minor problem with the "Introducing Helm" video - the picture was frozen for the last 5 minutes or so.
We think this is corrected now, do let us know if there are any more problems with the course - and sorry for any inconvenience!
We've just released a new 4 hour mini course on Helm!
This is a follow on module from the Kubernetes series of videos, but as long as you know basic Kubernetes you can dive straight into this course.
The course files for the Istio course have been upgraded for Istio 1.10.
This is an important update because the previous files would not work on later versions of Kubernetes - many thanks for all those who have reported this to us
Our latest course, Practical Akka Http and Microservices has just been released.
This course, which is available today, contains over 10 hours of video, and covers how to connect your akka system (both actors and reactive streams) to the outside world, using the Akka Http libraries. If you have an active subscription then it's ready to watch - you'll find it in the Akka track.
We've just released a new edition of the Istio course, to cover the changes that have been made over the past year.
The main changes are to the Installing/Customizing section, and we've added coverage on how to Upgrade a running Istio cluster.
All previous purchases of the course have been upgraded to the new edition - visit your downloads page to get the new version. As always, subscribers can stream directly from the course page.
More updates to come next year!
We're pleased to announce that our latest course is now live on the website - "Practical Reactive Streams with Akka".
This course builds on our Practical Concurrency with Akka course and covers how to build asynchronous, non-blocking reactive streams, with backpressure, using Java and Akka. If that sentence is full of terms that you don't understand, then you need this course!
With 8.5 hours of video and more great case studies (including an extension to the block chain mining example we built in the earlier course) this course is available to stream now for our subscribers!
Istio 1.5 has resulted in some breaking changes - the old Pilot, Citadel, Galley control plane components have now been merged into a single component called Istiod.
The course has now been updated to reflect this.
A new video, called "Getting Istio Running (Updated for Istio 1.5)" has been added to the course.
The video called "Enabling mTLS Policies" has been updated to reflect the new 1.5 defaults.
A new video called "STRICT vs PERMISSIVE mTLS" has been added.
A new section called "Customizing Istio with Istioctl" has been added.
The old section on Installing (using Helm) has been marked as deprecated but we will leave it in place in case anyone needs it.
There is still one further video to add, but we are awaiting a bug fix to Istio before adding this - we will update when this is ready.
Practical concurrency with Akka is now available! This course covers the fundamentals of creating robust multi-threaded applications in Java using the Actor Model, with Akka.
Istio Hands on is now available! There will be some further chapters added soon, but for now this is a great 11 hour course which aims to make Istio understandable!
The last of our new modules in our "Angular for Java Developers" series is now available!
In this module we learn all about how to implement security in Angular, including protecting the rest api with bearer authentication using JSON Web Tokens (JWT).
The fourth of 5 new modules in our "Angular for Java Developers" series is now available!
In this module we set up development and production configurations, connect to the rest back-end, deal with the complexities of CORS (Cross Origin Resource Sharing), learn how to correctly pre-process data received via REST, deal with slow and unavialable connections and see how to pre-fectch data with a resolver.
In this module we build a real reactive, responsive and functioning website.
The third of 5 new modules in our "Angular for Java Developers" series is now available! In this module we build a real reactive, responsive and functioning website.
The second of 5 new modules in our "Angular for Java Developers" series is now available! This covers the Typescript programming language.
The first of 5 new modules in our "Angular for Java Developers" series is now available! This covers an introduction to Angular and creating a first simple site. Modules 2 to 5 will be released in September and October.
We have today updated our popular Test Driven Development course - the revised version covers JUnit 5 as well as JUnit4, and is compatible with Java 7, 8 and 11+.
We're reworking the subtitles and these will be added to the course within the next 2 days.
The third module in the Kubernetes series is out now - and it's 10 hours of advanced topics! You can watch each section in any order and most of the work can be done on minikube.
The latest episode of VPP trainers Richard and Matt's podcast is now live. This time we discuss Java Versions (again), what we've been working on, and what's coming up at Virtual Pair Programmers.
Listen now at All Things Java.
You can also subscribe / listen through iTunes, TuneIn and Stitcher - there are links to the podcasts on the All Things Java site.
Our latest course, Optimising Application Performance has just been released. In this course, you'll learn how to tune the JVM in various ways to squeeze the best possible performance for your applications, as well as how to make good coding choices for performance.
The new module in our "Spark for Java Developers" series is now available! This covers Streaming with Spark and Apache Kafka.
The new module in our "Spark for Java Developers" series is now available! This covers Machine Learning. There will be one more module in the series covering Streaming, due by the end of the year.
The latest episode of VPP trainers Richard and Matt's podcast is now live. This time we discuss Apache Spark - the recent release of our SparkSQL module, and the forthcoming Spark ML (machine learning) module.
Listen now at All Things Java.
You can also subscribe / listen through iTunes, TuneIn and Stitcher - there are links to the podcasts on the All Things Java site.
The new module in our "Spark for Java Developers" series is now available! This covers SparkSQL and the DataFrames API. There will be a follow on module covering SparkML
The latest episode of VPP trainers Richard and Matt's podcast is now live. This time we discuss the recent release of Java 11, and ask questions like "should I rush to upgrade?" and "is it worth paying for?". We also mention what we're working on (SparkSQL and SparkML)
Listen now at All Things Java.
You can also subscribe / listen through iTunes, TuneIn and Stitcher - there are links to the podcasts on the All Things Java site.
The second module of Kubernetes has now been released.
We have just released our latest course, covering the Kotlin programming language. Kotlin is a JVM language created by JetBrains - the company behind the IntelliJ IDE. It offers a number of enhancements over Java, including that it's less verbose, has immutable variables, and almost always gets rid of the NullPointerException. Java developers will find Kotlin a pleasure to use, and compared to some other JVM languages, it's an easy transition from Java to Kotlin.
In this course we learn the fundamentals of the Kotlin language, and how to use it to build Spring Boot applications with Kotlin.
You can now watch the first of our 2 planned modules on Kubernetes - the tool for orchestrating workloads. This first module covers the fundamentals - workloads (Pods, RelicaSets, Deployments) and Services.JavaEE / Wildfly series. A second module will follow in the next few weeks covering covering microservices, networking, helm, mongodb, AWS deployment with Kops, and (the best bit) monitoring, logging and alerting using ELK (aka ElasticStack).
The latest episode of VPP trainers Richard and Matt's podcast is now live. This time we round up some of the latest Java news, including the release of Java 10, the rebranding of JavaEE, and a survey of trends in Java usage.
Listen now at All Things Java.
You can also subscribe / listen through iTunes, TuneIn and Stitcher - there are links to the podcasts on the All Things Java site.
The latest episode of VPP trainers Richard and Matt's podcast is now live. Richard was locked away developing courses, so Matt took the opportunity to talk to special guest Jon Humble from Sky Betting and gaming, about the technology stack they use, and how they decide whether Java or Scala is the right language for each project.
Listen now at All Things Java.
You can also subscribe / listen through iTunes, TuneIn and Stitcher - there are links to the podcasts on the All Things Java site.
EC2 instances now have an updated version of Ansible installed by default.
This has caused serveral breakages on the Microservice Deployment course
Richard Chesterwood has just uploaded a set of errata videos - if you've had any problems do take the time to review these short videos - and do report if you have any further problems with the course!
We've made an update to our Cloud Deployment with AWS Training course
Recent changes to the Tomcat which is installed by default on EC2 have meant that it is impossible to access the manager application without making some config changes.
We've added some extra material at around 51min40s to Chapter 2 of the course.
Thanks to all those who reported this problem - we're sorry if you got stuck here!
We think the problems with our login module are now fixed - please do contact us if you have problems logging in, or if you don't have a secure https connection with the site.
If, in the next chapter on "Mapping" (or any future chapters) you experience a NotSerializableException, it is because your CPU architecture is sophisticated enough for Spark to treat each CPU as a node in a cluster!
But this causes a crash with System.out.println (any functions run against an RDD have to be serializable in a multinode architecture).
We have added an update video to the course which describes the problem and a simple solution.
You can now watch the new module in the JavaEE / Wildfly series. This module covers how to build component driven web applications using JSF. Subtitles will be added in the next day or so.
Subtitles are now available for Apache Spark - just click the "CC" button on the video player. If you've bought the course the titles can be downloaded as a ZIP file for use in a player such as VLC.
The final chapter of Spark is now available. A deeper exploration of the internals, and how to analyse performance. Subtitles will be added in the next day or so.
Eagerly awaited! The new Spark for Java Developers course is now available! There is one further chapter to be released (Chapter 14) which will be uploaded to the site on 19 February.
The latest episode of VPP trainers Richard and Matt's podcast, where they talk about the state of the Java / JVM job market is now live. With special Guest Matt Wood from Fruition IT we talk about the state of the market, what skills are most in demand, and even what you should wear to the job interview!
Listen now at All Things Java.
You can also subscribe / listen through iTunes, TuneIn and Stitcher - there are links to the podcasts on the All Things Java site.
We've released module 2 of our Java Web Development course, 2nd edition. This second edition includes a refreshed version of the MVC and JSP material, but we've also added extra material on Ajax and Websockets.
If you previously bought the first edition of the course, you will find the new edition has been added to your account automatically. We've now retired the first edition from the site.
The latest episode of VPP trainers Richard and Matt's podcast, where they talk about anemic domain models, is now available at All Things Java.
In this episode Richard attempts to break the world record for the uses of the word "exactly" within an hour. He won't be saying it again next time around.
You can also subscribe / listen through iTunes, TuneIn and Stitcher - there are links to the podcasts on the All Things Java site.
The latest episode of VPP trainers Richard and Matt's podcast, where they talk about design patterns, is now available at All Things Java.
In this episode, Richard and Matt talk about their previous experience with UML and wonder if it still has a relevance for modern Agile projects.
Despite Matt's valiant attempts, Richard fails to have a rant this week. But, he does manage to somehow squeeze in a reference to the "Comprehensive Super Mario Bros. Disassembly" which is quite an achievement on a UML talk (gist.github.com/1wErt3r/4048722).
You can also subscribe / listen through iTunes, TuneIn and Stitcher - there are links to the podcasts on the All Things Java site.
We've just uploaded the subtitles/captions for Java Web Development Second Edition. We're sorry for the delay! Just click the "CC" button on the player to view them.
The latest episode of VPP trainers Richard and Matt's podcast, where they talk about design patterns, is now available at All Things Java.
In this episode Matt and Rich run through what they think are the exciting features of Java 9, but they're not allowed to mention Jigsaw.
What will Richard find to moan and rant about most this week? Java's new genius numbering system? Or people who want to keep their lists mutable?
You can also subscribe / listen through iTunes, TuneIn and Stitcher - there are links to the podcasts on the All Things Java site.
We've released module 1 of our Java Web Development course, 2nd edition. The original course is now over 7 years old, so we though it was time for an update. The new version is refreshed and updated, with some additional material in too.
We'll be releasing the 2nd module in mid November, and will keep the original course live until module 2 is available.
Upgrade your Docker skills to production standard with the new Docker Module 2. You'll be using a Docker Swarm to deploy a multi container system to real production hardware!
Get the full course outline here.
Subtitles will be available in a few days.
The latest episode of Richard and Matt's podcast, where they talk about design patterns, is available here:
https://allthingsjava.io/pages/podcast/design-patterns
You can also subscribe / listen through iTunes, TuneIn and Stitcher - there are links to the podcasts on the All Things Java site.
In June we recorded an interview with Ian Massingham, Worldwide Lead, AWS Technical Evangelism at Amazon Web Services.
Listen now (or read the transcript if you prefer) at All Things Java
In this podcast we muse about Reactive. What is it, and what courses should VirtualPairProgrammers do? We talk about Spring's upcoming WebFlux framework. Also news on the recent Docker release, and what's going to be in the new Web Development course.
The first module in the Docker series introduces Docker, especially for Java/JVM developers. Learn all about the power of Docker, how to manage containers, images and how to work with DockerHub.
Subtitles will be available in a day or so!
A second module will follow in late August, covering Networking, Jenkins/Maven integration, Docker Swarm, Stacks and Compose. We'll be deploying a full microservice architecture.
In this episode Richard and Matt discuss Kotlin and what it can offer to the full stack Java developer. Plus updates on the progress with course development.
(Episode 4 is an interview with Amazon, which is currently undergoing their approval - we hope this will be released eventually)
Matt and Richard discuss the thrilling subject of "Who Owns Java?". Is it Open Source? And why do Oracle think that Google owes them $8billion.
Also, progress on upcoming courses and some musing about the future direction of VPP's support process.
In this second podcast, Richard and Matt talk about the upcoming JavaEE 8, what it is to be a full stack developer, langauges such as Kotlin and updates on progress with Thymeleaf and Docker courses
Many of our courses that use the Tomcat web server were written with Java 7, and we include Tomcat versions 7 or 8 in the practicals and code files. Unfortunately these versions of Tomcat are not compatible with Java 8. If you try to deploy a WAR file built Java 8 to Tomcat 6.0, you're likely to get an exception which will look something like this:
java.lang.UnsupportedClassVersionError: com/package/myClass: Unsupported major.minor version 52.0
To get around this problem, you can either upgrade to Tomcat version 9 (which you can download from http://tomcat.apache.org/download-90.cgi) or you can compile your web application with Java 7 compliance. This second option is very easy to do - simply open your project properties (right click on the project folder and choose properties from the menu) and in the pop up window, select Java Compiler and change the "Compiler compliance level" from 1.8 to 1.7.
Trainers Matt and Richard have been debating recording a podcast for some time. Inspired by The Stack Exchange podcasts (that sadly finished in 2014) and The Java Posse (whose last podcast was 2 years ago), we think it's time for someone to come along and fill the gap, and so we've decided to give the challenge a go!
We discuss the current state of Java 9, and Jigsaw in particular, plus we touch on thymeleaf, JSF, and there's an update on what we're working on too.
In case you’ve not been following the progress of the next release of Java SE, Java 9, we thought we should let you know what the current status is (or at least our current understanding of it!).
As you might expect, the next version of Java will have some changes in it from the earlier versions. By far the biggest, is the introduction of Jigsaw, an API for building modular applications. Some have described this as a bigger change for Java than when generics were introduced back in Java 5.Read more
This will be of relevance if you've done (or are interested in) our Spring Security series of training modules: it has long been known that SHA-1 is theoretically broken, but it has now been actually broken.
shattered.io shows how it is now possible to create two materially different files which generate the same SHA-1 hash.
Of particular note is that GitHub uses SHA-1 to generate names for every object you store; there's a commentary on how this affects them here.