Posts

The Android Activity Lifecycle

Image
Everything has a lifecycle. You have to believe it's going to change. - Les Wexner Source: https://www.famouslogos.us/android-logo/ An activity is the backbone of most Android development work and its lifecycle is something an Android developer encounters every day of his life. Being well aware of these and understanding them well will definitely help solve many problems an Android developer encounters. This blog post gives a brief introduction about what an activity is and the lifecycle it goes through. ACTIVITY Before we go about understanding what and how the Android activity lifecycle functions, we must first know what an activity is. Activity is actually a class and is a fundamental component of an Android application as the code is initiated in an instance of the Activity class by invoking callback methods which will be touched upon shortly. The different callback methods correspond to the different activity lifecycle stages. The activities thus serve a...

Simple is the New Difficult

Image
Sometimes simple things are the most difficult things to achieve - Keanu Reeves Making simple things difficult is very simple but making difficult things simple is really difficult. The best way to make this process simpler is doing one thing really well at any point in time. There are a few best practices which we are supposed to follow as we join on the floor at Go-Jek Engineering and following those simple ones itself seem to be so difficult.  I realized that following these practices would be an arduous task but then when I was pondering about how this difficult task can be made simple, the only thing that gave me the courage to at least think about being able to achieve what I was set out to do is to do one thing properly without even thinking about the rest of practices. This would be my gameplan for the next few set of weeks so as to be able to achieve the objective of following the practices and in turn being able to bring about a change by setting an exampl...

Argumentum Ad Verecundiam (Appeal To Authority)

Image
"Appeal to Authority" , also called an "Argument from Authority" or the "Argumentum ad Verecundiam" is a type of argument which uses an authority's support as evidence for supporting one's point of view or statement. This is something all of us at the Go-Jek Engineering Bootcamp are guilty of using as an argumentative technique.  When someone used themselves as a figure of authority, it is known as "Ipse Dixit"  which means that "he himself has said it". This is thus an "appeal to self-authority". An "Argument to Veneration"  is when someone appeals to a respected authoritative figure but they have authority only due to the amount of respect they have. Falling prey to such argumentative techniques may lead to disastrous results as even though you may be correct technically but taking help of such techniques to prove so may lead to you not being able to justify your point. There also are some va...

Learning Linux The Hard Way (LLTHW)

Image
One of the things that scares most new Linux users is being able to get around within Linux on the command line. One very useful tool I found which can be used to learn linux is  Learn Linux The Hard Way  which is indeed as the title states. It makes you go through the process of discovering all the important and frequently used commands, tricks and methods in Linux. The way the entire set of tutorials has been structured is really informative as it primarily has 3 sections in each exercise namely the introduction, the commands along with its explanations and the extra credits. The extra credit section is something which everyone should try out necessarily as it provides you those 'Aha!'  moments which will make you even more interested in Linux. The set of tutorials is filled with interesting information and at the same time really fun to solve and learn from. One can safely say that there is no easy way to learn Linux than just trying out the different func...

Reductio Ad Absurdum

Image
"The reductio ad absurdum is god's favourite argument" - George Tyrrell This is a phrase which is used so often during the bootcamp at Go-Jek Engineering, that it has become one of the strongest tools in my arsenal while arguing about anything. It is also known as "reduce to absurdity". It is a mode of argumentation in which a proposition is disproven by following its implications logically to an absurd conclusion. The fallacy is in the argument that could be reduced to absurdity and "reductio ad absurdum" is a technique to expose the fallacy. This form of argumentation has roots in the Socratic method and has been used throughout history in formal mathematics, philosophical reasoning, debating, etc. One of the classic examples is the argument - "The earth cannot be flat, otherwise people would be falling off the edge.". This shows that it would be absurd to argue that the earth is flat. "Reductio ad absurdum" is o...

Touch Typing

Image
"Keep typing until it turns into writing - David Carr" Touch typing is the ability to type without using the sense of sight to find and identify the keys. Muscle memory is used by the touch typist to know the location of the keys on the keyboard. It can be of both types - two-handed and one-handed. This is something that I am being made to practice at the boot camp at Go-Jek Engineering. It helps improve an individual's typing speed and accuracy which is very essential for programmers as every fraction of time saved helps improve ones own efficiency. It was invented in 1888 by Frank Edward McGurrin, a court stenographer from Salt Lake City, Utah. It involves placing your eight fingers excluding the thumbs in a horizontal row along the middle row of the keyboard, which is known as the home row and then reaching out to the other keys accordingly when needed. On the most common type of keyboard for English i.e. the "QWERTY" layout, the keys "...

The Pomodoro Technique

Image
"If you want to be more productive, you need to become the master of your minutes" - Crystal Paine Can you really, and I mean REALLY focus for 25 minutes? This is what the Pomodoro technique of time management which was developed by Francesco Cirillo in the late 1980s is all about. Pomodoro means a tomato in Italian and this method is named after the pomodoro-shaped kitchen timer which Francesco used when he was a university student. It uses a timer to break down the work into small intervals called pomodoros separated by short breaks. It has been widely adopted in pair programming technique. It is based on the concepts of timeboxing and iterative and incremental development. There are basically six steps in this technique: Decide on the task to be done. Set the pomodoro timer (traditionally to 25 minutes). Work on the task until the timer rings. After the timer rings, put a checkmark on a piece of paper. If you have fewer than four checkmarks, take a short br...

Software Semantic Versioning

Image
The quote "Be the best version of yourself" holds true for a software too as software is a working entity which has its own properties and behaviour. Software is a great combination of artistry and engineering. So why should one not be artful to version that engineered piece of software. Semantic versioning or SemVer is a versioning system which provides a universal way of versioning software development projects. This helps us keep track of what's going on in the development process of the software. SemVer is a three component system which has a format of x.y.z where   'x' stands for a major  version, 'y'  stands for a  minor  version and 'z'  stands for a patch . Thus, we have major.minor.patch . The patch is bumped up, if it is just the bugs which have been fixed while keeping the contract same (refactoring). If some functionality is added or new features are implemented in a backwards compatible way, then minor  is bumped up. F...

Ruby and Her Gems

Image
Ruby depends on many of her friends which she lovingly refers to as her precious little "gems" . A gem is nothing but a ruby code which we extract for later use. "Gemfiles" are the files which we create and use for describing the dependencies of a ruby program on the gems. This Gemfile in turn is treated and evaluated as a ruby code. Ruby likes to keep her friends close and Gemfiles help her do that. The gemfile must always be present in the root of the project directory. "Bundler"  is a manager for Ruby which installs the exact gems and their versions when required. All one needs to do is execute just one commands  bundle install from the root of the project directory and voila!, Ruby has been reunited with her gems. Once this is done, a file named "Gemfile.lock"  gets created which records the exact versions of the gems which were installed. This file can then be reused later to conform to the same specifications. The first thi...

The Day I Met Ruby

Image
It was indeed a really memorable day having met Ruby formally for the first time and boy it was good. I never imagined that I would become comfortable with a new acquaintance in such a short span of time. There were of course a few hiccups on the way of getting acquainted but the way the transition from mere acquaintances to friends happened was really unimaginable. Here, I talk about the programming language of Ruby that I was introduced to as a part of the Boot Camp here at Go-Jek 😋 It was after a long time indeed that I found a programming language so easy to code and that is because Ruby is so close to the English language. All that one needs to do is just form an idea about what needs to be done in one's mind, translate it to English and hey presto, we get the resultant working code for the same. Ruby is an imperative scripting language which has inherited a lot from functional programming.  I believe that to be perfect in every sense is very r...