Trying the ELK Stack Locally on Ubuntu 14.04

Trying the ELK (ElasticSearch, LogStash, Kibana) stack locally on my laptop, I took some notes while following the excellent instructions and scripts provided by DIgitalOcean:

This was for a local install not exposed to the web on a 32-bit install of Ubuntu 14.04. Here is my steps were different than those provided by DigitalOcean:

  1. Java OpenJDK 7 works fine (openjdk-7-jre), so I did not install Java 8
  2. Kibana
    1. Use the 32-bit package if needed, the tutorial uses the 64-bit package.
    2. There’s no need to modify the ‘kibana.yml’ configuration file for a local install.
    3. Kibana process log files are located in /var/log/kibana/
  3. Nginx for a reverse proxy – skip this for local install
  4. All sections, skip the update-rc.d commands if you do not want the services to run at boot on your machine

What Does it Mean to Have Experience Working Globally – Knowing the Time


When it comes to what the value of having global experience really means, this is my breakdown of what this actually means. After working in my first enterprise job, I realized this isn’t something that is typically taught or trained on.

Clocks Point to Different Times

The most fundamental aspect of global awareness is: their time is different than yours

The 3 most important times of the day for anyone working a day-job are, in order of significance:

  1. The time people are allowed to leave the office
  2. Lunch time
  3. The time people get into the office

There has to be a time awareness when sending emails, booking meeting, or initiating chats with people. When they do not pick up the phone, you want to make sure you are not going to wake them up at 3 AM in the dead middle of the night. With ‘bring your own device’ enterprise culture in full swing, you might not only be waking them up, but their entire family once you dial that number.

Generally, avoid engaging people towards the end of their workday and also during their lunch time. It gets easy to forget the importance of this when their clocks are different than yours.

Daylight Savings Make it Complicated

Having lived in Toronto for most of my life, I knew that the clocks move twice a year. What I didn’t know was that daylight savings in different time-zones actually occur on different dates. Compounded with the fact that the day on which daylight savings changes every year, this is cause for a lot of confusion becoming even more critical to know during professional settings and for software application operations.

The best source to look up when a daylight savings time is going to occur is probably Wikipedia:

Otherwise you also want to be using a time-zone converter like this very good one:

This was most evident with my work in the financial sector dealing with Asian, European, and North American exchange timings. I actually didn’t realize the United Kingdom also changes their clocks due to daylight savings between BST and GMT. This resulted in 4 separate days which we had to be on alert for when the clocks would move.

Time-zone Conventions for North Americans

I’m never going to bother to memorize this, but basically there’s this:

  • EDT = Eastern daylight time for sunny days
  • EST = Eastern standard time for everything else
  • EDT is ahead of EST by 1 hour

I’ve found that people never ever learn the difference between EDT and EST even with years of experience. This is also why I always tend to just use ET (Eastern time) instead, to keep consistent. The convention can apply for Pacific Time as well (PT/PDT/PST). It’s just too easy to screw up.

If you are not from North America, I’m sorry I don’t have any tips for you.

Port Configuration for ElasticSearch in Docker

The current Docker hub image for ElasticSearch for version 2 is configured to only listen to loopback devices by default, ignoring non-loopback devices. This makes it difficult to use the container for development.

If your Docker VM is running on, with port-forwarding set to port 3278 (use ‘docker inspect’ to verify this), when checking for connectivity from outside of the container, you will end up with the following:

curl: (7) Failed to connect to port 3278: Connection refused

One workaround is to force ElasticSearch to mount to non-loopback devices: _non_loopback_

A configuration file for the container is expected to be created and named elasticsearch.yml, located at /usr/share/elasticsearch/config

Either a bind-mount location for the configuration file (docker run -d -v), or add a configuration elasticsearch.yml file directly into the filesystem.

For example, to write to the filesystem from the container’s command shell:
echo ' _non_loopback_' > /usr/share/elasticsearch/config/elasticsearch.yml

Restart service or container and it will take effect.


Support for VP9/HEVC Video Decoding in Modern Computing Platforms (March 15 2015)

Edit: Anandtech has a much better article up now specifically for HEVC

I put this together with the intention of figuring out if the next computing device is going to be future proof.

Similar to the transition to H264, VP9 and HEVC bring a new level of video encoding that allow for higher compression ratios, allowing for more efficient data transfer needed for 4K UHD and beyond.It’s still going to be a years before all the content is in one of these formats. There’s really no clear winner as to which one of these codecs will end up on top yet.

VP9 Support in Hardware

Intel – since Broadwell/BayTrail source

Nvidia SoC – K1 source

H265/HEVC Support in Hardware

Nvidia GPU – partial for Maxwell source

Nvidia SoC – partial for K1 source

Qualcomm – Snapdragon 410, 615, 805 source

Intel – since Broadwell/BayTrail source

AMD SoC – Carrizo source

Software Support

It appears that drivers aren’t quite capable yet. Here’s Intel’s driver support from their January 2015 drivers:


HEVC 10 bit

(GPU accelerated)

HEVC 8 bit

(GPU Accelerated)


(GPU Accelerated)

5th Generation Intel Core Processors w/ HD graphics 5500, HD graphics 6000, Iris graphics 6100




Intel Core M with HD graphics 5300




Pentium/Celeron 3805U 3755U 3205U




4th Generation Intel Core Processors with HD graphics 5000/4600/4400, Iris graphics 5100, Iris Pro graphics 5200




4th Generation Intel Core Processors with HD graphics 4200




Other Pentium/Celeron supported with this driver




Confusing Intel Consumer Processor Branding in 2015


Intel has added few more new naming schemes this year with their processor lineup, and it has been confusing to keep track of what exactly is what. I’m putting this together to set the record straight.

Intel has two main processor families:

  • Core processor family (go faster)
    • Core i3/i5/i7
    • Core M (ultra-low power, fanless, newly available in Q4 2014/Q1 2015)
  • Atom processor family (less power hungry, possibly fanless)
    • Atom x3/x5/x7

They have recently rebranded Rockchip processors into the Atom processor family as of 2015:

  • Atom branded Rockchip processors in the Atom processor family
    • Atom x3 ‘RK’ series

Celeron and Pentium Don’t Mean Anything


Celeron and Pentium CPUs can below to either of these Intel Core or Atom processor families, ever since 2013, rendering these brands useless. The only way to tell what is what is to lookup the CPU model on Intel ARK and CPU World.

For example:

  • Celeron N2820 – dual-core Atom processor family
  • Celeron 2955U – dual-core Core processor family
  • Pentium N3540 – qual-core Atom processor family
  • Pentium G2020T – dual-core Core processor family

This also means that you have two Celeron branded devices that perform very differently despite being at similar price points. This has been going on for a while now, but apparently not everyone is aware of this.

Atom Branded Rockchip Processors – 2015

As of MWC2015 (source Anandtech), they’ve also announced an Atom branded processor family of rebranded Rockchip processors within the Atom x3 lineup. These are low-end inexpensive processors for mobile devices mostly running Android that generally perform worse than and are less power efficient than their true Intel Atom equivalents.

Slide 7


Turning off the Camera Swipe after Lolipop

I was recently asked this question about Lockscreen Policy working on Lolipop.

With Lolipop, lockscreen widgets are deprecated. However, lockscreen policy enforcement should still work, but it’s has gotten a lot more complicated. The disable widgets flag is no longer valid.

Trying to run lockscreen policy results in the following error in logcat:
12-17 14:36:02.622: W/DevicePolicyManagerService(545): admin com.wordpress.chislonchow.deviceadminkeyguard has null trust agent feature set; all will be disabled

Trust agents provide automatic unlock capability to Android, such as face, bluetooth or proximity unlock. I haven’t looked more deeply into it, but it is going to take more work to understand the new lockscreen flags and the trust agent integration to set the flags to disable the lockscreen camera, which does look like it is possible to do, even if it as as drastic as turing off trust agents in the lockscreen altogether (setting KEYGUARD_DISABLE_TRUST_AGENTS to 0 bypasses this logic).

For more reading, see the Android developer reference docs for DevicePolicyManager.

2014 – The Year Android Manufacturers Forgot to Make Good One-Handed Smartphones


Image generated from MobileDeviceSize

2014 is coming to a close, and that also means time for X’mas and gift giving, and maybe time to upgrade from an older phone. If you are an iPhone user, your choices are simple – the iPhone 6, or the 6 Plus? By now most people have figured out that the 6 Plus is too large for them, mostly because they can’t use it in one hand.

If you are an Android user, the choices are abundant as always. You have a lot of phones between the size of the iPhone 6 and the 6 Plus this year. Surely we can choose a flagship Android device this year that is passable for one handed use that compares to the iPhone 6, or can we? Well…

There are almost no new flagship phones available for one-hand use for the 2014 holiday season (in Canada, anyway)

One question everyone should ask is ‘how big do I want to go’. The bigger the screen, the more content it shows. Apple also picked their the mainstream model to be at 4.7″. But past this 4.7″ ‘ish’ screen, it is going to change the way you can use your phone. You are going to find that you will need to use the phone with two hands, because the on-screen elements are going to start to become out of reach.

If you pick a phone bigger than 4.7″ ‘ish’, prepare to give up being able to use the phone in one-hand. This is the threshold for one handed use. 

The top/bottom bezels of the iPhone 6 dominate the front of the phone much more so than the Nexus 5, and as a result the Nexus 5 squeezes in almost .3″ worth of screen estate without making the device significantly larger. Yes, it’s that hardware button. So I still would call everything up to the Galaxy S5 as a phone in this category.

So, up to around 5″ is still ‘okay’ for one-handed use

I have moderately large hands, and currently use a LG G2 with a 5.2″ display and very thin bezels. This is the largest I’d be comfortable with using in one hand – I’d even say it’s somewhat of a bit of a stretch for me.

What’s available this year for Android flagship phones at this size anyways?

When it comes down to what’s available, if you are going to get a carrier subsidized one-hand usable phone on the big 3 carriers. Well what sucks is that you have JUST TWO phones you can pick that are flagship devices at this size:

Samsung Galaxy S5 or Motorola Moto X (2014)


Generated by from PhoneArena

Effectively we have no-shows from the likes of LG, Sony and HTC. The Moto X for some reason is ONLY available in the 16 GB variant with no memory expansion capability, which makes it tough to recommend. Samsung is crazy for putting hardware front buttons on a flagship Android phone.

So what if I don’t like the Moto X or the S5? 

Well, either get the last year’s flagship LG Nexus 5. Or the alternative is to go for one of the bigger phones, but at what cost?

The HTC One M8 and Xperia Z3 don’t have much larger screens than the Nexus 5 or the Galaxy S5, but they put more bezel at the bottom of the device. This means you have to stretch further to get to the top edge to the display.

Phones with curved edges and curved backs let you wrap your hand around them more ergonomically. Softer rubbery plastics are also more grippy than aluminum or glass, examples being the back material on the soft touch plastic Nexus 5 versus the slippery aluminum HTC One M8. The flatness of the Xperia Z1/Z2/Z3 can result in hand fatigue after a short time.

Phone bottom bezels being thick, edges being sharp, back being flat, and having a slippery material make the phone more difficult to use in one handed use.

Here is a neat study on how people typically deal with larger screen sizes, and the different hand grips people use. You are going to be sliding your hand on the back of the phone to reach for the different parts of the screen, which can be tricky. You can alleviate this a bit by putting on a non-slip case, but then you are adding bulk to the device, so be careful not to pick a really thick case if you can help it.

Getting a case can help you adjust to having to use a bigger phone

Ending words: Hopefully the manufacturers and carriers will come to their senses and start giving consumers viable choices for 4.7″ ‘ish’ sized phones with good specifications. 2014 has been somewhat of a disappointment.