This is my first update after completing seven days of 100DaysOfCode so I want to talk about the progress I’ve made and goals for the next seven days!
(I hope to make a post like this every week.)

I’ve found following along with the #100DaysOfCode community on Twitter very enjoyable and motivating. It is great to have the daily goal of posting a tweet about the work you have completed and encouragement from others in a similar spot. I’d recommend any beginner like me to take it up to help you build up good habits!

My Progress -

Spring Boot

For the past week I’ve focused a good deal of my time into learning Spring Boot. I’m following along with a tutorial by JavaBrains. I had some technical issues while following along as some code he completes behind the scenes or due to differences in versions but overall I’ve found it to be a great tutorial.

He runs through the basics of setting up microservices using Spring Boot, having them interact using a discovery server and how to setup fault tolerance for your microservice.

He does a great job explaining what is going on and how it works, also discusses interesting design patterns like the circuit breaker pattern and bulkhead pattern.

Circuit breaker pattern

Is like the physical circuit breaker in your house. The idea behind it is blocking off the problem service so the other services can still continue to function.

Like if your toaster has a fault your power might go for the kitchen but your lights are still powered as they are behind a different circuit.

With circuit breakers in code you can have an even better case where your toaster failing would only mean the toaster doesn’t work and the rest of the kitchen applications work.

Bulkhead pattern

It is named after bulkheads in ships. In large ships they have water tight section along the hull of the ship, which if they are pierced only one compartment fails meaning the ship won’t sink.

In micro services it is about splitting up how many threads each microservice can use so even if one service has an issue the other won’t be slowed down due to one service eating up more and more threads.

Issues Explained

One of the issues I had was he uses code that he never mentions writing so you might find after a break in the videos he now has code you don’t have. You can either figure out the missing code yourself or visit his github or mine.

Another issue I found was not being able to get a connection the Hystrix dashboard (This is in part 2 of the videos).
I found changing the version for the spring_cloud.version from Greenwich.Release to Hoxton.SR3 worked. (Found in your pom.xml file) It might have been something to do with the version the Eureka server I was using as it was using Hoxton.SR4.

Oh and Hystrix is deprecated but I think it doesn’t really reduce the usefulness of the tutorial by much as the general ideas are the same.

First Exam

Since my last post had my Data Structures and Algorithms exam it was on linked lists, binary trees, recursion and using interfaces. Went pretty well I feel.

I’ll be uploading my solutions after my exam results come out as I don’t want them to think I plagiarised my own github code! Until then I’ve examples of code that answered similar questions on my github. Might be of interest if you are a future NCI student.

Java Examples

My Goals -

Exam

My first goal is to cover all the material I need for my Advanced Programming exam (I know priorities!).

  • Big O

  • Graphs

  • Dijkstra’s algorithm

  • Breadth First Search & Depth First Search

  • Exceptions

  • IO Serialization

  • Storage and IO

  • Threads

  • Sockets

  • Factory Pattern

  • Decorator Pattern

  • Observer Pattern

Spring Boot

I want to continue on and complete the third and final part of the Javabrains tutorial on spring boot which covers Microservice configuration. I haven’t worked through them yet, so I can’t tell you what that Microservice configuration really means yet!

Project

I have a project due on the 19th for my Server Side Development module.

I have to use ruby on rails to setup a web application with the following functional criteria:

  1. Users should be able to sign in/sign up by email and password.
  2. Users should be able to add/update/delete records of the entity relationship.
  3. Both Parent and Child elements in the entity relationship should contain at least three attributes of your choice.

I’ve made a bit of start on it already after finding a tutorial by Stefan Wintermeyer to setup my login/Authentication. Very nice simple, short tutorial which works.

Overall it shouldn’t take too long and I’ll probably 3-4 days on it.

This Blog

For sure this blog needs a big update so actually looks nice and feels a bit better. I’ve added a Projects page but I won’t be working on the blog design much until after my exams!

Anyway good luck have nice day!