What’s the best way to start a new year for a geek other than coding at night? Tonight I practised coding in Python by tackling a problems that I got from Project Euler’s archives. You can view the first 2 problems I solved in my Github.
Since it’s already a new year, so what’s my wishes this year?
Well, I have some wishes such as:
I wish to build and have my own simple SaaS running
Yep. It is possible for Kotlin and Java to live side by side inside the same app. That’s what I did with rider’s app for Karhoo Courier. For the purpose of learning, I only use it in one of the activity. As I said before, the best way to learn is by using what you want to learn with what you have to do.
If you can combine them, you can learn while achieving your objective of the day (for me, it is to let the riders view the consignment note details).
For example, I don’t know the difference between Bootstrap 3 and 4.
So I created a project based on Bootstrap 4.
A simple dictionary website for people to find meaning of a word.
Basically it’s a place for people to search for meaning of a word in Malay.
To make it better, I also use Google Translate API to grab meaning in English and insert it into the DB. So it doesn’t have to query Google Translate all the time. It only query it one time and then I insert it into the DB.
The second time people visit the same page, the page won’t call Google Translate API again. Just have to query the database. I use MySQL for this project.
I originally use Vue with Axios for this website. Vue is after all the hottest thing right now. I first used it in one of the take-home coding interview and it seems quite interesting to use.
But the moment I saw the website in Google Index, it seems that Google doesn’t really crawl all the links inside.
So I turned back to using vanilla HTML website again.
At the website I also implemented a simple search suggestion using Bootstrap Typeahead so people can know what’s in the database before they click Cari.
As you can see, there are a lot of things that I am doing on the website under the hood. It’s pretty simple website, sure. But it means that I can learn how to use Bootstrap 4, Vue and Axios.
That’s how we can learn how to use a new programming framework — by using it. Every framework is a little bit different and the best way to learn about it is to implement it yourself.
In the past 2 weeks I was so busy with many things. Had an interview with a well known media company. It was the longest interview process that I ever had. and I was busy finishing a system I’m developing and collecting data for the green system here.
Right now, at AiU, I have to think a lot about how to implement IoT solution. How the overall of the architecture looks like.
Microservices – also known as the microservice architecture – is an architectural style that structures an application as a collection of loosely coupled services, which implement business capabilities. The microservice architecture enables the continuous delivery/deployment of large, complex applications. It also enables an organization to evolve its technology stack.
Why do I choose microservices architecture?
At AIU, I won’t be connecting just one type of device (the switch), but I’ll be connecting with the door and the solar, the battery and the grid.
I don’t like a single point of failure even though using just one system may make the system easier to make.
Another challenge that I have is that all these devices “speak” different languages. One is Java, another is C++ and another… Microsoft Access.
Since I have to connect to multiple types of devices with multiple languages at the same time, I doubt that a monolithic architecture is a good way to integrate all these devices.
In software engineering, a monolithic application describes a single-tiered software application in which the user interface and data access code are combined into a single program from a single platform.
Drawbacks of Microservices Architecture
To debug is quite hard. You have to write all the loggings for all the different services and it may have different languages
Consumes more time to develop than a monolithic one. Each type of devices has its own so-called “controllers”. Instead of one big one that manages everything.
Pros of Microservices Architecture
Easier to add new functions. If I wanted to add new function to the smart switch like scheduling, I just whip open the smart switch controller’s project, I can add that function.
Know exactly what’s going on – instead of guessing, I know which device caused problem. Can’t get the data from solar panel, OK it’s autoswitch controller’s problem. I can debug from there.
Microservices is not a silver bullet to me. It’s just that I felt that using this architecture is the best for this situation of mine.