Should You Learn More Programming Languages?

In the book Pragmatic Programmers, the authors made a sensible recommendation: learn a new programming language every year. Each new programming language is a new perspective of solving problems. Adding more under your toolbox helps you gain different perspectives. It sharpens your technical judgment. But is it the best use of your time?

Deliberate Constraints

Two weeks ago, we removed the television in the house. The television, one of the staple appliance in every family where planners assumed that it was present in every house. It was the center of the living room. My children was spending too much time on the television for their parent’s liking. It has been 2 weeks. In the past during meal times, I see two zombies with eyes transfixed on the television; now they play with each other. Does having more things, means we lead a better quality of life?

Everday XPath - Operators

This blog post is part of a series on XPath. The content comes from my ebook EverydayXPath. Part of the content from the book will be released to the public as blog posts. In this post, we explain what XPath does. We disect the components of an XPath expression. And why the context is the key to forming the expression.

Everday XPath - Node Test

This blog post is part of a series on XPath. The content comes from my ebook EverydayXPath. Part of the content from the book will be released to the public as blog posts. In this post, we learn about the only mandatory part of the XPath expression: Node Test.

Everday XPath - the Expression

This blog post is part of a series on XPath. The content comes from my ebook EverydayXPath. Part of the content from the book will be released to the public as blog posts. In this post, we explain what XPath does. We disect the components of an XPath expression. And why the context is the key to forming the expression.

Writing an Ebook

I spent the past 3 months writing an ebook: EverydayXPath. The idea came as I needed to write a Selenium script. Naturally I needed to use XPath for selecting nodes on the web page. As I was googling for solutions, documentation on XPath felt inadequate. I needed good examples and coherent explanations for the various operators. XPath and CSS are the two common query languages for querying XML/HTML documents. I felt there is a opportunity for a niche product. Let me share the setup I used for writing the ebook.

A Firing

I was hooked by the documentary series: Chef’s table. Each episode is about a famous chef. What hooked me was how human each of them was. They are not famous by default. Everyone of them had their struggles. Each of their journey to the zenith was hard. Perhaps it is cultural. We are taught to portray ourselves as successful, taught to hide our own imperfections. If Chef’s table is angled to show how good the chef was, how talented they are, I wonder, would the viewer relate personally to the chef? It is because they are imperfect and everyone is, that they connect.

Likewise, I am hardly perfect. I’d like to share a story of one of my failures. I’m seeing some of the people around me making the same mistakes. In my naive thinking, my stories might prevent the reader from falling in the same pothole. We should learn to celebrate failures. What failure is worse than being fired?

How Does FreedomVPN Work

I just watched the Champion’s League Final streamed live on my laptop. I watched it on PPTV in Singapore. This is made possible by FreedomVPN(Which amazingly, does not have a landing page of its own where I can link to). Recently, I switched my ISP(Internet Service Provider) to Viewqwest. This far, so good. Their product FreedomVPN, has opened the door to enjoying Internet TV from most of the popular content sites of the world. To many, it is like voodoo. Let me try to explain in broad strokes how they did it. Disclaimer: these are my conjectures and has not been validated with Viewqwest.

How to Set Up a Remote VPN Using Sophos UTM

My office has a Sophos UTM. It acts as a firewall for the office network. We also use it as a VPN server. It allows us to access the machines in the office network. More importantly, it allows remote users to access the servers. Our servers have access restricted to a white listed list of IP addresses. This way, we only open up the white list to the office network. This allows our people to work from anywhere. We don’t have to keep updating the white list of IP addresses. When I tried setting it up, I could not find articles documenting how to do it. Hopefully it will point you in the right direction.