Quick References

As a constant learner, I get to touch upon many ideas in different areas. This category is for me to capture those ideas which I felt people may reference to get ahead of their tasks. Most of the time, I do come back to this section of my blog to remember what I had learnt in the past.

Understanding Graham Wallas’ four stages of creativity

When I am not sitting on my couch watching movies from my Raspberry Pi TV box, there is a good chance that I am in the midst of creating something new.

Whether it is coding a new functionality or writing a new blog post, I would inherently follow through four stages to bring about my creation. These four stages of creativity process became apparent to me through a lecture on how to manage creativity in an organisation.

According to Graham Wallas, the four stages of creativity :

  1. Preparation
  2. Incubation
  3. Illumination
  4. Verification

In this post, I document the Graham Wallas’ four stages of creativity so that I can be more productive during the creation of new things.

Terms relating to Innovation

Through reading MT5007 Management of Technological Innovation conducted by Professor Annapoornima, I was introduced to some terms relating to Innovation which I found useful as a technology person.

I document those terms alongside some of my thoughts in this post.

Understanding Porter’s five forces model

At some point in life, there can be situations that we have to decide whether to invest effort into a product/service that we will bring to a market to sell. Michael E. Porter came up with a framework in 1979 that helps us analyse the market situation so that we can decide whether it is worthwhile for us to enter the market with a product/service that we have in mind. This post documents my understanding of Porter’s five forces for my future references.

The Nginx configurations that I had created to serve only robots.txt and sitemap-index.xml over http

I had initially configured a set of Nginx rules that will redirect every single request made over http to https. However, that breaks my doing so breaks my reference on how to send HTTP GET request with Java without using any external libraries.

Since the robots.txt is not sensitive data, I had decided to allow it to be retrieved via http as well. And since my robots.txt points to sitemap-index.xml via http, I also allowed sitemap-index.xml to be retrieved via http as well.

This post documents the changes that I had made to my Nginx configurations to serve only robots.txt and sitemap-index.xml over the http protocol.

How I make my Java programs run faster on my Raspberry Pi 3

When my first attempt to install GitBucket on my Raspberry Pi 3 highlighted to me that it was the JVM that caused GitBucket to have sluggish performance, I did not invest more time to improve the performance of the JVM that I had installed on my Raspberry Pi 3. Instead, I went on to install Go Git Service on my Raspberry Pi 3 to act as the Git server to manage the source codes of my hobby projects.

However, I just couldn’t get over my belief that Java programs would perform badly on my Raspberry Pi 3; after all Java was the first programming language that I learnt and I often use it to build software at work. Furthermore, with an Ubuntu Server 15.10.3 setup on my Raspberry Pi 3, I could use my Raspberry Pi 3 as an integration server for my Java hobby projects and be pretty sure that if my Java hobby projects run on my Raspberry Pi 3, they will most probably run on a Ubuntu Server 15.10.3 DigitalOcean droplet as well.

After spending some time researching the topic, I did manage to make my Java programs run around 10 times faster on my Raspberry Pi 3. This post documents the steps that I went through to speed up my Java programs on my Raspberry Pi 3.

Setting up Go Git Service on a Ubuntu Server 15.10.3 image on my Raspberry Pi 3

My quest in searching for a suitable self hosted Git Service didn’t stop at GitBucket. While GitBucket is easy to setup, running it on a Raspberry Pi 3 had not been ideal for me. If I had set it up on a more powerful computer / VM, I would have stuck with it.

To get a second opinion, I decided to give Go Git Service a try. This post documents my attempt in setting up Go Git Service on a Ubuntu 15.10.3 image on my Raspberry Pi 3. To make this post complete, the first eight steps are taken from previous posts.

Setting up GitBucket on Raspberry Pi 3 with an Ubuntu Server 15.10.3 image

With multiple Raspberry Pis around the house, it was time for me to setup a Git server to synchronise the source codes residing on my development laptop with those that are deployed on my Raspberry Pi servers.

As I am using GitHub at my workplace, I seek to emulate similar development operations at home. GitBucket seems to be an ideal candidate for my home Git server since it comes as a war file having API compatibility with GitHub.

Since I had created a LEMP server on my Raspberry Pi 3 with on Ubuntu Server 15.10.3, it makes sense for me to setup my GitBucket server on it.

This post describes how I setup GitBucket on my Raspberry Pi 3 with an Ubuntu Server 15.10.3 image. To make this post complete, the first seven steps are taken from previous posts.

How I make INFOLINKS_ON and INFOLINKS_OFF work on my website

Many bloggers use Infolinks as a monetization tool for their websites. Since it is easy to implement, I had Infolinks enabled on my website as well.

Out of the box, the javascript codes from Infolinks scan an entire webpage for opportunities to create links to advertisers’ website.

However, there can be areas of your website that you do not want Infolinks to convert into links. Examples could be the paragraph that describes your page or the paragraph that talks about a product that you are selling from your website.

This post describes what I did on my website to control Infolinks inText ads generation.

How I built my Raspberry Pi 3 CCTV using a motionEyeOS image for home surveillance

When I bought my Raspberry Pi 2, I also bought the first version of the Raspberry Camera Module just for the fun of it. After setting up my Raspberry Pi 2 as a TV box for my wife, that camera module became an ornament. Feeling bad about such wastage, I bought another Raspberry Pi 3 to utilise the camera module in performing home surveillance.

This post documents the steps that I took to build my Raspberry Pi 3 CCTV via a MotionEyeOS image for home surveillance.