Categories
Programming

Intro to Flutter – for Fun

So somehow I started playing with Flutter in 2018 and I actually recorded it the first time I play with it!

Here’s the video:

Maybe I should just record me talking about Flutter and all in much, much more detailed. It might be the future language of Android, after all.

Categories
Programming

How to remove unwanted .idea file from git

Sometimes you accidentally committed .idea files (different on each computer) and you want to remove it. So here’s the command needed to remove the unwanted file from git your git’s cache:

git rm --cached -r .idea/.

That’s all. Happy playing with git!

Categories
Programming

How to Install PIP and CodeIntel on Mac OS Mojave

Mojave has its own  Python installed already. Just run this inside your Terminal :

python --version 

and you will see that there is a version installed.

So all you had to do to install PIP if you already have installed Python is by typing this:

sudo easy_install pip

and you will have installed PIP after that. I use PIP to Install CodeIntel.

To Install CodeIntel, remember to put Sudo in front of the command.

sudo pip install -U CodeIntel

Categories
Programming

What’s The Best Way to Learn New Framework?

By doing.

As simple as that.

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.

I need to figure out a way how to make a Google-friendly Javascript-based website before I use Vue 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.

So have a look at Makna Perkataan and tell me what you think!

Categories
Programming

Playing Around Creating Tinder Swipe Effect

This is just me trying to play around creating a swipe effect like Tinder.

Categories
Programming

First Time Live Coding

So I’ve uploaded a video of me coding. The first time I have ever recorded it. You can see the video below.

Well it’s not really “live”, but rather, me recording it and then upload it to YouTube.

Categories
Programming

Thinking About Microservices Architecture

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.

And I chose microservice architecture.

From microservices.io:

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.

From Wikipedia, monolithic applications are:

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

  1. To debug is quite hard. You have to write all the loggings for all the different services and it may have different languages
  2. 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

  1. 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.
  2. 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.