Why Do We Work?

When I was around 6 or 7 years old I wanted to become a pilot. Some kids want to become doctors, firefighter or…

Are we programming our kids from early ages that they have to work? Or it’s something intrinsic to human psyche?

Scientists have tracked bartering to 40,000 years ago; that is making direct deals between two parties of desirable objects. Those days people only worked to stay safe, feed themselves, survive or to have companionship. The concept of currency and money came a bit later around 2000 BC.

But why do we work? Why we have to work? And a better question might be, are we working for the right reasons?

Most of us work for money. Working for money has a bit of negative connotation to it but does it matter?!

Many people work for money to live comfortably. In the modern civilisation we have progressed to higher needs; we no longer only work to feed ourselves or to have a shelter but to live comfortably. Although there are still many people in Africa and other places dying of hunger but we try to ignore them unfortunately.

Many people work for money because they are forced to work in order to pay back their debts. We live in a debt based system. Humans are the only species that pay to live on the earth! When we are born we do not get a share of land by default. We have to buy it from the governments for some reason.

Many people work for money in order to increase their social status. It gives them identity. We pay ridiculous amounts of money to universities in order to have them stamp us with a seal of approval for work. Housewives may find it difficult to confirm their value in the society, no matter how much their work is appreciated within the family.

Many people work for money to gain freedom. My wife has gone back to workforce after caring for our kids for 4 years and she is happier than ever. She has financial freedom, and more socially engaged.

But sometimes work becomes the dominant force in our lives; it’s not a shortage of income that shackles us, but a shortage of time.

Apart from money is there a better reason to be working? Is money the core of why we do it? Is there a reason to be working other than money?

Fulfilment is a combination of accomplishment and purpose. Once we met our basic needs we move on to more exclusive psychological needs.

We might work to become an expert in a subject, discover our talents. It gives us pride.

We might work to do what we love and enjoy. Some people lose themselves in their work. Artists and scientists for example.

But according to a massive report published in 2013 by Gallup, more than 50% of american workers are dis-engaged or suffer from work related physical and psychological illnesses, so sometimes work is a shackle and a burden.

We might work to create a positive impact, to make other people’s lives better or make them happy or serve people.

We might believe in spiritual views of work. Embracing the notion that each of us is unique, precious, and possess something different and here to do something special.

So there are other reasons except money that might wake us up in the morning.

What about the future? What is the future of work? Will technology enable us to work from home or remotely all the time? What will happen to our social side then? Will robots take most of our jobs in 20 year as predicted by experts?

What do we do then?

For now just remember that we are here to live not to work.

Advertisements

First City2Surf

I always loved running. My little 5 year old Kian also loves running. I think we get a great sense of self satisfaction when we run!

Three years ago I was preparing for 14k City2surf. Although a bit overweight at around 93 kg but I was able to finish 7k.

June 2nd 2014 was my first day at a new job. I was starting at Cubic Transportation Systems as a senior developer.  On the way to work I had a little bike accident and torn a ligament on right knee. There is nothing worst that could possibly happen on your first day at work!

The whole dream of running was gone up in the smoke. I had to undergo a surgery and go through physio, etc…

Early 2017, three years after the accident I decided to give it a try again. Went on a diet, lost around 10 kg and managed to run my first City2surf in 1 hour 25 minutes with pace 6:09. I had to stop for a toilet break and lost a good 2-3 minutes but overall not a bad result for a person like me who was suffering from laziness and some extra baggage since I remember!

I have been on numerous diets, tried many methods but was never able to lose any weight. I was carrying extra weight since maybe 2004 after uni graduation!

Having a goal such as this race was the only motivation/stimulation that could force me eat less and healthy. I track my diet through MyfitnessPal and running through Runkeeper.

20170813_140959
The treat after the race!

Next target: half-marathon!

AWS Certifications

Last December (12/16) I decided to give AWS a try. I didn’t have much experience with cloud already. In search of a good training course I found aCloudGuru which was also really cheap. Their training courses have a reasonably good coverage and depth for the exam topics.

I was able to knock out 3 associate exams from 0 knowledge to a good pass mark in less than 7 months. I had dedicated about 3-6 hours weekly to practice and study. It also depends on your background and IT experience. Being a developer with many years of experience I was already familiar with almost all the concepts and had a good foundation.

If you really want to learn and not just pass the exam, then you need to go through the training courses, read relevant whitepapers, study FAQs, go through bits of the online manuals and do some hands on development and practices.

The best way to gain more experience if you are not working with AWS on your day job like me is to define personal projects for yourself or get some side projects as a freelancer.AWS_Certified_Logo_SAA_1176x600_Color

Our Ansible Journey

We have been missing automated deployments all along.

Recently we looked at Ansible, Chef, Puppet and picked Ansible for out deployment automation.

It has the advantage of being agent-less which means you do not need an agent on the destination machines in order to manage them. Everything is done remotely via ssh.

Although having agents is not necessarily a bad thing and that will became part of the fabric of your provisioning but agent-less tools enable you to hit the ground faster.

I think the main advantage of Ansible is that it’s easy to learn and apply. We were able to automate the deployment of a relatively complex project in just few weeks.

It has numerous modules to do anything you might think of, such as yum, copy, run command, git, etc.

I am going to use it for my personal projects as well replacing bash scripts…

In Search of a Perfect Development Environment!

Like many developers I am also in search of a perfect development environment!

I understand this might not be true for everyone. If you are a .Net developer who has a good laptop loaded with the latest Windows then I assume you already have a perfect development environment. But if you are a Java/Python developer writing code destined to a Linux server, stuck with a Windows laptop then there is a problem.

Many corporate environments are tied to Microsoft technologies for Office, chat, email, VPN, Windows, etc.

I mainly write Java, Haskell and Python these days. As a Linux guy I obviously don’t like to work on Windows but at work we are forced to use Windows 7 and BYOD or booting any other OS is not allowed.

Although my laptop has an i7 CPU with 32 GB of ram but still it’s a Windows!

No offence to MS fans but it doesn’t make any sense to develop and test on one platform and deploy to another.

We have had many instances where things behaved differently on different OSes and wasted hours to troubleshoot. But this is very hard to explain to some managers and IT people! A minimum development machine for someone like me must be a Mac or a Linux.

In absence of any other choice I decided to run Linux on a VM so installed Fedora on Virtualbox and gave it 160 GB disk, 24 GB ram and 2 monitors. It is working like a charm and I am really happy about the setup. I have loaded all my development tools such as IDE, Docker, etc. into the VM and use Window host for VPN, some email checking and Office document editing  only when difficult in the VM.

So far this is working really good although I had few issues initially with setting up the networking right but at the end I have a polished development environment and I can use a real bash natively (Not a Window 10 cheat bash!)

Being a VM with UI there is definitely a bit of lag but haven’t been a serious issue so far. I would suggest Xfce in order to have a smoother experience rather than default Gnome.

Capture.PNG
Fedora+Gnome
Capture
Fedora+Xfce4

 

Microservices

Microservices or Micro Service Architecture (MSA) is being advertised heavily these days mostly by Thoughtworks.

At first it looks like a great idea, in fact it is a great idea if you look at this this way:

  • There are boundaries between services.
  • Each service is small enough to understand, to be re-written, etc.
  • Each service is supposed to do only one thing.
  • Each service can be so fine grained that it can even correspond to a single database table (extreme?)
  • etc.

I would like to call it a “pattern” as it has its own pro’s and con’s. But none of these are new concepts or best practices on their own. To me MSA at its core seems like a style (or part) of SOA since services are the “things” you work with.

On the other hand there are few areas where the current articles and enthusiasts are not very clear about:

  • How do we orchestrate a ton of services? In all videos and articles they diminish ESBs. I am not a fan of ESBs but they do a fine job of orchestration but MSA is not clear about it. I have seen suggestions on using a thin layer of orchestration, using messaging or RESTful styles, etc but if you have a million of microservice then it would be a nightmare.
  • If we create too restricted boundaries around our services and they become so isolated then how do they communicate from a database perspective? How sales database can be so separate from ordering database?
  • Lots of small services makes transaction management a big job.
  •  etc

Given these concerns you have to be very careful when you use MSA. I feel this is an old concept with a new name which is not yet mature to become a full fledged style of architecture. Probably it is good in smaller applications with mostly read-only services or services which are inherently separable….Time will tell…

Nexus 7 Screen Replacement

If you have little ones around you know they love to play with tablets. Our 14 months boy Kian is used to watching Baby Einstein series on my Nexus 7 while having a meal on his high chair. After the meal he sometimes takes the tablet and keeps watching on the floor. The other day he put the tablet on a chair but it dropped face down on the stone surface. Although the distance was less than 50 cm and it has a chunky cover on but I was shocked that the screen just trashed.

On ebay some there are separate screens and digitizer but I suggest buying both together. It is around AUD 60. This video tells how to open it up.  To remove the cracked screen from the bezel I just put it under the sun for about an hour. The video is not very clear on how to attach the new screen to the bezel. For that I used Loctite Super Glue for Glass. It all went very smooth and I have a brand new Nexus again. I suggest affixing a screen protector as well…

Image
After disassembly
Image
The new screen is on top