The Programming World

Software development is a rapidly changing profession — and you gotta keep evolving

Silhouetee of man on a plane.
Silhouetee of man on a plane.
Photo by Joshua Sukoff on Unsplash

If someone asks which jobs will be obsolete in the next decade, the jobs that come to mind are those that could be replaced by machines and software, e.g. professions like driver, broadcaster, travel agent, sports official, and many more.

To many, software development is never on the list. Software is the future, hence it is the most secured job. Really?

Well, it makes sense but it’s not always true. Here’s why:

Software Development Is the Most Changed Profession

Hardware architected to last;
Software architected to change
Change is the only thing that last;
Software wins.

Assembly programming was considered software. Then C language became the norm…

For when coffee isn’t enough to bring a smile to your face

Image for post
Image for post
Photo by Ben White on Unsplash

As I was looking for some useful coding quotes, I discovered many funny ones. Enjoy reading them — I thought these should be compiled together.

Most are from other sources (as per linked), with the exception of a handful that are my own.

I have separated them down into:

1. The Programming Life 
2. Software Engineering
3. Languages and Logic
4. Platform, Tools, and Administration
5. General

Hope you enjoy at least some of them!

The Programming Life

  1. “Programmer: A machine that turns coffee into code.” (source)
  2. “Computers are fast; programmers keep it slow.” (source)
  3. “When I wrote this code, only God and…

Learning Software Development

Get a quick feel of what Elasticsearch is like without hassle

Image for post
Image for post
Photo by Rawan Yasser on Unsplash

When I first heard about Elasticsearch, I understood it was a new database system that is flexible for search by keyword on its content. It is not using the traditional SQL to query its data.

Glad to have an opportunity to get a peek of it, without messing up my machine. Hence, sharing my learning here, so that I will not forget.

Setting Elasticsearch and Kibana on local machine

Historically, when we want to learn any tool, we’ll need to install it. But now docker came to the rescue. …

The Programmer World

Perfection can become an impediment in software development

Image of mural with female’s face
Image of mural with female’s face
Photo by Timon Klauser on Unsplash

Engineering is a discipline that demands perfection. To obtain the optimum result, it needs to have a complete, comprehensive, thorough, consistent, and exhaustive process in place. Software development was viewed as a field spawn from within engineering.

Software development, in its infancy, tries to follow the engineering principle as much as possible. However, we have learned much, and realize software development is a much different field from its sibling engineering fields.

Here is how it has changed and preferred these days.

Prefer Minimal Over Complete Requirement Gathering

“Walking on water and developing software from a specification are easy if both are frozen.”
— Edward V. Berard

Past practice

Learning Software System

Up and down a software system easily with docker-compose

Image for post
Image for post
Photo by Federico Beccari on Unsplash

Having a temporary setup on our computer to test a service locally has been made easy with Docker. We can set it up and tear it down any time.

We can have a Linux or Ubuntu or any OS system, and have any database or Software running on it, and serve what we need, without polluting our actual machine environment. That’s the power of Docker, as shared below.

But if there’s multiple local service (docker container) that we are running, and we need them to communicate, how is that possible?

The more complex docker setup

Yes, it is possible to set up to allow the…

Learning Android Development

Make View Pager 2 scroll forward or backward over and over

Image for post
Image for post
Photo by sept commercial on Unsplash

Previously I share how we can make ViewPager 2 beyond what it could do in my blog below. But nothing was mentioned about how to make a bi-directional infinite scrolling ViewPager 2.

In this write-up, I will share how can this be made possible.

The problem statement

In normal RecyclerView and ViewPager, we can scroll it forward and backward. However, for the first view, it cannot scroll back to the last view directly, and when it is at the last view, it cannot scroll forward to reach the first view directly.

Learning Android Development

Create Navigation Component from Scratch without using Navigation Editor

Image for post
Image for post
Photo by Josue Isai Ramos Figueroa on Unsplash

The Google team introduced Navigation Component for ease of navigating between fragments. The main way to use it is by using Navigation Editor, a UI tool.

One of the things I dislike about iOS development is the need to use Storyboard and Interface Builder, which generated non-human readable XML codes. Hence I have a phobia of using the editor to generate XML code.

Unfortunately, when I want to learn Navigation Component, all tutorials I found will point me to use the Navigation Editor.

So I came up with this, direct coding, and understand how it works to get my Navigation…

Learning Android Development

How to load image bitmap, vector, or from URL in Jetpack Compose

Image for post
Image for post
Photo by Raychan on Unsplash

Jetpack Compose is the future of UI in Android as explained in this article. Learning how one can draw and design with it is fun. One can make animation and games as Flappy Bird below.

Nonetheless, it is still essential for us to learn how to get a real image loaded into our design, to make them aesthetically pleasing.

Here, I provide the basic simple understanding of loading an image into Jetpack Compose.

Image in Jetpack Compose

Similar to XML, Jetpack Compose provides an interface to load the image, which is a composable function name Image. Actually, there are 3 different composable functions that…

Learning Android Development

Automation took over my mundane Android Developer Work

Image for post
Image for post
Photo by Simon Migaj on Unsplash

Five years ago, I took up Android Development as a profession. Other than coding, I thoroughly fulfill all required works to ensure good code, maintain the app to keep it up to date and follow through with the process to deploy the App.

Today, when I look back, below are the 3 things I no longer do manually

Manually Update the Apps Library Dependencies

When was the last time you look at your build.gradle file and notice some version is dated when you see the line as shown in the diagram below.

When you mouse over it, a message will show, and you’ll need to type…

Learning Android Development

Easily determine which image scale type you need

Image for post
Image for post
Photo by Stephen Kraakmo on Unsplash

In Android XML Image, we are given various scaling modes one can apply to an image against the view size it will be put into. How the scaling behaves depends on the size of the image too, which at times makes it quite confusing. Below is the article that describes them in detail.

In Jetpack Compose, the slight differences…

In Jetpack Compose through, the Image now has a slightly different way of defining the Scale. Instead of having a single attribute, it now split into 2 attributes, which are alignment, and contentScale as shown in the code below.

Image(imagePicture, contentDescription = null, modifier = Modifier.fillMaxSize(), alignment…


Passionate about learning, and sharing mobile development and others

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store