Lessons Learned from Kathmandu

My first trip to Kathmandu is now over, so there are some lessons learned I should scribe. Some of these are obvious, and which I abide by whenever travelling, and some I simply forgot in my (very) impromptu trip to Nepal.

  • When agreeing on a price, make 100% sure the other person states the price back to you. I thought a price had been agreed to when the other person responded “ok ok, you are a lucky man”, but this does not count. As they say, reconfirm, reconfirm, reconfirm.
  • When arriving at the airport, make sure you have small bills, too. I had 3x 100RS, 1x 10RS, and then a few 500RS. The price I negotiated was 440RS, and it would have been nice to have paid the exact amount.
  • Kathmandu is polluted and dirty. I cannot emphasise this enough. It is dirtier than probably any other city I have been to. If I come back, I will be bringing masks. I know this sounds silly, to wear a mask, but any local on a motorbike or in a taxi wears a mask, and many just walking around. Instead of the normal cloth masks that many people use, I would probably bring a make with finer grained material - probably N95. I ultimately tried to avoid walking on main roads, but having some activated carbon absorb something would have made it a little less unpleasant.
  • Bring old cloths, and throw them away after the trip. Or just bring black. If you have nice jackets or clothing they will likely come back pretty dirty.
  • Bring some toilet paper. Similar to other parts of Asia, the bathrooms don’t have any.
  • Bring a flashlight. The load shedding makes the city dark, and if you go out, you will want a flashlight. There aren’t any lights. I only used it a few times, but I am really glad I brought two flashlights with us.
  • Bring vitamin C and lots of hand sanitizer. I did, like I always do when I travel, and I’m really glad I did. Everybody is coughing or sick, and everybody spits. It is similar to the situation in China, i.e. everyone spits. Then everybody gets sick. Bring hand sanitizer.
  • If you take a bus somewhere, try to ask when you buy tickets to sit on the left side in the middle. The front is a no-go for me. I typically had seats in the rear right, but on the curvy roads I think the left middle would be safer, as oncoming buses won’t hit you. One bus on the way back had the left side decimated. If you do a search on “nepal bus crashes” in images.google.com, you will quickly see why you don’t want to be in the front row.
  • My hotel rooms all typically had just one power outlet. If you bring multiple electronic devices, bring some way to  charge more than one at a time.
  • Bring clothing to stay warm at night. I travelled to Nepal in winter, and all my rooms got pretty cold at night.

Enjoy!

Goodbye Facebook

I seldom used Facebook, and felt some kind of negative emotion after logging on each time. I don’t know if I am alone in feeling this way, but each time still felt a bit like a secret contest. A bit, not a lot, but sort of subconsciously. Honestly, though, even at an involuntary subconscious level, I don’t like this sort of negative feeling. I would rather be sharing ideas or creating something. Wish me luck.

EDIT 12-05-2025: Still off Facebook, and generally all other social media. I try to chase my dopamine through other means.

131500trains Updates to GTalk

Here’s a little hack I thought I’d share. There are maybe other ways to do this, but this way took all of two minutes, which suits me. My daily routine has me taking a train along the Inner West Line (here in Sydney), and I wanted to know in advance if there was any issues with the line. 131500 provides weekely emails about upcoming trackwork, and there’s an RSS feed of delays; this is what you’d see in many of the Sydney transport-related apps. Another information source is through Twitter. For all of these sources I only really care about the one line I take every day - the quickest answer would seem to be if I could only get updates on Twitter for my line

Luckily this is all quick to do using an only service called ifttt. What I needed to do was create a task searching Twitter for “Inner West from:131500trains”, and if any new items are located it sends me a message on GTalk. This is one example of what I like about having some mostly open data - I can consume it how I want it. Let’s just say I’m looking forward to GovHack 2012

This example could be extended for other purposes, e.g. searching for the word “discount” on some suppliers Twitter stream.

Lessons Learned: Losing Parts

I don’t know how many times I’ve lost tiny parts and had to spend time trying to find them. I realized after removing the back of my monitor that I’m starting to learn from those mistakes; instead of just sticking the screws in a box with other screws, and then having to dig them out, I taped them to the back of the monitor.

This sounds small, but after doing it I realised how many times I had to hunt through a box of screws trying to find the exact one that fit. Lesson learned.

Fusion Tables and 131500 Stops

A short while ago I wrote about visualizing transport by using 131500’s TDX data, converted to GTFS, and served by GeoServer. Because I’ve started playing around with Google’s Fusion table, I thought it would be interesting to see what all the transit stops in Sydney look like in FT. So, voila!

Visualizing Transport

I’ve had several conversations with neighbors and co-workers about the “lack” of forward thinking, or at least the lack of forward action. Of course, I keep in the back of my mind that we aren’t “experts”, and the more I learn about transport the more I learn how complex it is. Dr. Sussman’s CLIOS process (Complex, Large-
Scale, Integrated, Open Systems) appears more and more true the longer I work in and study transport. There is a plethora of excuses that can be made, but the general conclusion was that the earlier we prepare the better. I can remember working near Zhongshan 7-8 years ago and driving around on huge roads in the middle of empty fields. There weren’t even stoplights at every intersection. It was then that I had an epiphany of how smart the planning was to build the infrastructure before the masses arrived.

Sydney is estimated to increase by some 1.7 million people by 2036, and I can tell you, from a transportation (private and public) standpoint, that sort of scares me. When people ask me why transport is so difficult I justify it by with my uneducated guess that the CBD is next to the ocean, so everybody travels in from just 180 degrees instead of 360. Maybe this is why the NSW government created the “City of Cities” strategy. I realized this within the first few weeks: most people live west but work east.

Tonight (a Saturday) I was bored, and should have been studying, but wanted to create a few visualizations first.

The below maps were created using TDX data released from 131500. After converting it to GTFS I imported it into PostGIS using GTFSDB, and then could serve it via GeoServer. Finally, I could access it via WMS in QGIS. I added the stops into a map of Sydney and added some boundaries, and added the Growth Zones. The result was a map with every bus/train/ferry stop. Darker areas have stops that are closer (not necessarily more frequent service).

One of the first things I noticed is that there isn’t much physical infrastructure in these areas. There also aren’t many transit stops; I suppose this is why the South West Rail Link is going to be so important. I don’t know all of the political ramifications, but let’s hope the North West Rail Link is built as well?

Stock Android and Postfix

I was having some issues with my personal mail server (Postfix) and my phone (Android). The logs depicted the below issue:

Jan  9 09:19:53 ip-11-222-23-223 postfix/smtpd[12345]: NOQUEUE: reject: RCPT from 12-13-14-15.abc.com.au[12.13.14.15]: 504 5.5.2 <localhost>: Helo command rejected: need fully-qualified hostname; from=<emailaddr kelvinism.com="kelvinism.com"> to=<emailaddr gmail.com="gmail.com"> proto=ESMTP helo=<localhost>
</localhost></emailaddr></emailaddr></localhost>

We can see here that the stock Android email client is doing a ‘helo localhost’. One part of my main.cf file specifies this:

smtpd_helo_required = yes
smtpd_helo_restrictions =
    permit_mynetworks,
    reject_non_fqdn_helo_hostname,
    reject_invalid_helo_hostname,
    permit_sasl_authenticated,
    permit

To resolve, unfortunately, just change the order to authenticated clients are permitted earlier:

smtpd_helo_required = yes
smtpd_helo_restrictions =
    permit_mynetworks,
    permit_sasl_authenticated,
    reject_non_fqdn_helo_hostname,
    reject_invalid_helo_hostname,
    permit

You also may need to do the same for smtpd_recipient_restrictions and/or smtpd_sender_restrictions (i.e. put permit_sasl_authenticated above the reject lines).

Hacking Splunk with Python

A few weeks ago I saw an opening to give a 5-10 minute lightening talk at SyPy (Sydney Python), and with two nights to prepare, decided it would be interesting to explore Splunk’s usage of Python. You can see it here

Retiring Another Site

After much consideration, I’ve decided to retire yet another website: Colddirt. This site was created as an example of how to use the different parts of Django, mostly in just one afternoon. I’ve decided it is time to just take a few screenshots and retire the site - the domain is expiring, and honestly, I don’t want to spend $10 to renew the domain. So, here are the screenshots.

RIP Old Sites

Over the years I’ve created several websites, some with the hope of becoming big and popular. Naturally, I’m still waiting to create a site that becomes big and popular. In the meantime, it seems appropriate to retire some of the older sites and ideas. The truth is, I’m moving all my little sites from MySQL on a mediocre VPS to Postgresql on EC2.

Because I put some sweat and blood into these sites, I thought it would be only appropriate to record how the sites looked for future sentimental value. I downloaded a small plug-in for Firefox to take full-length pictures, and I thus post them here.

Back in Taiwan I created a site to demo blogs. The idea certainly wasn’t revolutionary, but I thought that somebody would find it useful. Nope.

The second idea was to send a bunch of little ducks around the world and track their progress. My friend Jamie took one to Europe, but besides that, I don’t think most people really understood that they were supposed to hand the duck off to somebody else. I’ll re-brand and launch it again if I can find a little twitter logo to send around, because hopefully people on twitter will understand to pass the duck onwards.

So photos for nostalgic sake.

It is always a bit rough retiring old sites, but looking back I learned a little, had some hope, and that’s all I can ask for.