Public/Private Key Encryption for Noobs

A great colleague of mine described the Public/Private key encryption process in a way that is very hard to forget. I thought I’d share this with everyone, as it makes it very clear how the concept works.

Imagine Alice has a box with a “secret” in it, for example a bar of gold. (The object that acts as a secret is actually irrelevant, it’s just important to know that there is one and a bar of gold makes it easier to imagine.)

She then puts a lock onto the box with the bar of gold in it. This is then sent to her good friend Bob.

Bob also puts a lock on the box and sends it back to Alice immediately afterwards.

Alice happily sees that Bob received the box and removes her own lock from the box. And sends it to Bob once again.

Now that there is only Bobs lock left on the box he can easily open it and access the bar of gold.

The “secret” has now been successfully shared and secure communication can commence using the shared secret!

As you can see this is a short and easy way to explain the encryption process. The locks of each person acts as the public key, the keys matching the locks as private key and the bar of gold as the secret allowing secure communication.

 

 

Socializing on Conferences

A few weeks ago I had the great opportunity to attend a technical conference with my company. It was supposed to be a great chance to socialise, get to know amazing people in the tech industry and bond with my colleagues. Unfortunately I wasn’t able to make the best out of the event.

Since I believe that I shouldn’t forget my mistakes and that I should consider what I can change to be more successful in such environment, I thought it would be best to write my musings down.

Continue reading

Getting started with Swagger – A Rest API framework

As part of my work I had to get acquainted with Swagger and found that, while there is a lot of documentation it seems a bit difficult to find the right starting point.

A few things to consider before getting started:

  • If you are situated behind a corporate firewall which prevents maven from working, I heavily suggest downloading the dependencies using maven in some private network and then referring to the local copy of the dependencies using mavens local repository capabilities.

To begin with a short summary on what Swagger actually is:

Technically speaking – Swagger is a formal specification surrounded by a large ecosystem of tools, which includes everything from front-end user interfaces, low-level code libraries and commercial API management solutions.

Quoted from http://swagger.io/getting-started/

There are two sides of Swagger, “the front” and “the back”. The back, would be an API provider which wants to use Swagger to describe APIs and the front is an API consumer who would like to get some client code to integrate with a provided API.

In both cases Swagger has a solution, both are described in the “Getting Started guide“.

Now one of the things I found lacking was an actual description of the different parts of swagger seperated into git repositories, which is why I will list them here:

Swagger Core
As the name implies Swagger Core is an implementation of the Swagger Spec in Java. It currently has an integration with JAX-RS and generates a Swagger compliant Json which can be used for the Swagger UI.

The corresponding core repositories for other languages are:
Swagger js  –  for Javascript
swagger-node – for Node.js

Swagger Spec
Contains the Swagger Specification, if one wants to have a look at examples of how the swagger api should look like, they should look into here. On the webpage this information described in this repository is nicely formatted and provides a good reference.

Swagger UI
This repository contains the information and source needed to generate a UI as shown inn the live demo. It takes in a Swagger API compliant Json and generates the UI using either the default look or a customised one. The default can be useed without needing to build the repo, but the custom one needs some copilations, which are described on the git repo.

Swagger Codegen
Provides an engine which can create client code from Swagger Spec compliant data.

Swagger Editor 
Provides a browser based editor in which Swagger definitions can be created.

The remaining repositories are validator-badgeswagger-tools and swagger-parser, which are useful utilities.

Continue reading

Favourite Japanese learning Resources

I thought I’d share my favourite resources for learning Japanese. Most of these are aimed at beginners but some are also useful for more advanced students.

Learning Hiragana & Katakana

Learning Kanji

Learning Grammar

Reading Practice

Listening Practice

Writing Practice

  • Lang-8 !Simply the best, active community and helpful advice!
  • italki good alternative to lang-8
  • HelloTalk great for chatting

Dictionaries

I hope this is helpful to some.

Learning Japanese – The Plan: Week 1 (24.08 – 30.08)

So as I mentioned on my previous post where I announced my YouTube channel, I am getting serious with my Japanese language studies now.

So this is my plan for the following week 24th – 30th August.

The reason why every three days is because I need those days to process the vocabulary and grammar noted. The vocabulary will be listed in my vocab notebook and revised once a week.

  • Read Chapter 2 of “Minna no Nihongo” as prep for my study group
  • 10min a day hiragana / katakana drill, for revision.
  • Create a Kanji notebook for the new Kanji I learn and learn 3 properly.
  • Record 1 video with basic Japanese. E.g. Introducing myself.

This should get me started on the road to fluent Japanese.

I have a lot of time before I start working in September so I need to get used to studying regularly, which is why I’ll hopefully be doing a lot.

UK Studen Loan Repayment as a EU Student

So I finally completed my degree and am soon going to start my first Job after graduation, so all should be well right? No! This is unfortunately not the case.

So when I started my degree I was unfortunately misinformed of a very important fact about student loans. Interest. Yes, I was told that student loans are interest free and never questioned it. I spent 4 years thinking that and never thought about checking for actual facts. Now my dear readers I want to inform you properly so that you wont get the same shock I did.

In the UK student loans are practically unavoidable and as an EU student it is a very novel idea to take a loan for education. When I started my degree the loan was about 3500£ per year which is now around 9000£ per year. Either way the one thing you should know about is that you won’t just have to pay back this value * years of study. You also have to pay interest from the day your first loan is paid.

The current interest rate is 1.5% for students pre 2012 (Source), and RPI, plus 3% for the later students (Source). This interest rate is applied annually from the first instalment of your loan.

What I am trying to covey is that if you don’t pay back your loan it is actually increasing every year! But not all hope is lost: If you are ok with living in debt for a while there is a write off condition for the student loan. As stated here, for pre 2012 students the loan is written off 25 years after Graduation and for post 2012 30 years later.

As for the repayment process:

Pre 2012 EU students should look at this table to check if they exceed the payment threshold and post 2012 students at this table. Either way you only need to pay back some amount if your income, without tax deductions, exceeds the value listed in the table.

If your income does exceed that value then you have to pay back 9% of the amount exceeding the threshold. E.g. If I was earning 25000£ per year I’d be exceeding my threshold by 7665£. Of this 9% are 689.85£, which is the amount I would have to pay back per year.

Honestly the whole process seems to be very manual and requires oneself to be responsible.

  1. The overseas income assessment form has to be completed yearly.
  2. The money has to be transferred appropriately via english bank account.
  3. One has to keep track of the payments made and the amount left to keep from overpaying.

It certainly makes sense why there are so many news articles stating that EU students in the UK don’t pay back their loans. It’s because the system just makes it really hard.

I hope this introduction to student loan repayments made sense and will be of help to any of you EU students. I got very confused when I started to research on the topic.

Final Year in Computer Science

It finally begins, my (hopefully) last year as an Undergraduate in Computer Science. This year will most likely be the most stressful and challenging year of my studies, so I’ll have to give my all right from the start. No procrastination, no slacking off and well structured studying will be my aim for this year.

The most challenging bit of the year will certainly be my final year project. With my subject of choice being Photogrammetry.

Photogrammetry is the science of obtaining reliable information about the properties of surfaces and objects without physical contact with the objects, and of measuring and interpreting this information. (Source: http://www.mat.uc.pt/~gil/downloads/IntroPhoto.pdf)

My aim is to create an application – I am unsure if it will be a smartphone app or just a desktop application – that takes digital photographs as input and returns a 3D object containing measurements of the object and can be used for CAD.

Currently known process / timeline for the project:

  1. Research Java tool-kits for Photogrammetry
    1. If one exists
      1. choose to create a smart-phone app
      2. learn to program android applications
      3. familiarise yourself with the toolkit
    2. If there isn’t one
      1. create a toolkit
        1. this may end up as enough work for a final year project
      2. choose a different Programming language (Matlab / C / etc.)

Now then let’s get it started.

thoughtCloud

IBM Placement Retrospective

I’ve finally completed my 12-month placement at IBM. When I look back I do feel that I’ve learned quite a bit although I can only confidently say that it was worth it after I start my final year. Only then will I be able to tell if I am actually able to apply some of the skills I’ve learned at work or if I’ve gotten too used to the different work culture at my placement.

Pros of doing a placement:

  • Experiencing the differences between Uni life and Work life
  • Gaining valuable experience for future Jobs
  • Learning about the necessary skill sets at work
  • Earning Money towards University expenses
  • A chance to learn about your own weaknesses and strengths

Cons of doing a placement:

  • It takes 1 more year to complete University
  • It is very easy to get out of touch with continuous learning required at University
  • Having to make new friends at University when coming back

One of the things I learned about myself is that I have real trouble judging the acceptable social distance at work and come across as “shy” because of it. t University there are clear lines, students & lecturers that’s it no problem whatsoever. But at work there may be team mates, that are 3 levels above you hierarchy wise and others that are on the same level or just one above. What is acceptable then? I was constantly asking myself if I was being rude. It did get better after time, especially once I got to know them personally. But I still feel like this is a weakness of mine, I will be working on remedying this.

That’s it for now.

Placement/Internship applications guide: Interview preparation

I’ve been asked by one of my juniors to write a guide for interview preparation, and I am happy to oblige! It’s amazing that there actually exist people that are interested in what I write.

First of all you need to know that Interview preparation is all about research. You need to know about to company, you should know what to expect in the interview, the process, etc.

So if you’d split the research you need to do, you’d end up with 3 big components: Continue reading

Placement/Internship applications guide: Preparation – 5 simple Steps

It’s been a while.
A few of my friends have asked me to write up a guide on how to approach applications for internships or placements. To be honest I am really happy that I reached a point in which I am acknowledged as a reliable source of information. So I did my best to compile a concise list of steps and tips to simplify the application process for you as much as I can.

I’m sure all of you are stressed out of your minds because of lecturers and parents pressuring you into getting an internship or even because you yourself feel that it is an absolute must for you to succeed in getting one. May it be because of money or something else. Continue reading