Sunday, September 14, 2008

Macro photos of a mayfly's exoskeleton; shopping therapy

Malaysia is not a natural habitat of mayflies, so for most of us, the most likely exposure to mayflies comes from Thumbelina.

My office is located near a sizable artificial lake, and is subjected to occasional mayfly intrusions. I recently found the remnants of a mayfly that had died clinging to a wall. All of the soft tissue, including most of the head and eyes, the wings and the innards had disappeared, and only a translucent skeleton was left. This called for some macro photography:

Click here for large size image

Ghost Hunter

Click here for large size image

Mayflies are best known for their “short” lifespan – adult mayflies have lifespans between several hours to a few days, depending on species. In fact, most of the mayflies’ lives are spent in the immature nymph stage, typically for one year.

The adult stage of a mayfly (when the creature matures into the distinctive mayfly appearance with large, upright forewings and 2/3 very long tails) is primarily for reproductive purposes. Interestingly, the mouthparts of mayflies are vestigial (meaning they have lost their original functionality, like the appendix in humans) and the digestive tract is filled with air. The adult mayfly is incapable of eating.

There was also a living and intact mayfly in a darker area, thus resulting in the less than idea image quality below.


Earlier today, I stumbled upon a trading area within a shopping complex for used goods, including mobile phones, computers and electronic goods. It was a wide open floor with rows and rows of stalls. Most of the trading was in mobile phones and notebook computers, but there was also a decent market for computer peripherals, audio equipment, photography equipment, video cameras and projectors, portable music players and a host of other bits and pieces.

Interesting sights include:
3 Hasselblad medium-format cameras
2 Asahi-Pentax 55mm f/1.8 lenses (but with less than perfect optics, a pity)
Sony MiniDisc players
Audio amplifiers and equalisers

On impulse, I got myself a nice pair of Sony headphones. They were going for only 35 RMB (17.50 MYR); a brand new pair’s recommended retail price is 78.00 MYR.

Sony MDR-V150

Click here for large size image

And the audio detail is fantastic. Best 35 RMB I’ve ever spent; now looking out for a 35 RMB 105mm M42 lens.


Saturday, September 13, 2008

He what on the restaurant’s floor?!

I usually do not mind eating at less classy restaurants as it usually means I can get more nutrition for the same price.
Consider the difference between KFC and the cheap, dingy little joint where I had dinner today:
A burger set at KFC costs approximately 20 RMB, and consists of a burger (bread, piece of fried chicken patty, lettuce fragments, dressing), deep fried potato sticks and carbonated syrup.
At the dingy joint, a bowl of rice and a massive dish costs approximately 12 RMB. The dish would be a stir fried mix of vegetables and meat slivers.

For both instances, the bulk of the nutrition comes from:
Chicken patty and lettuce fragments in the burger
Massive dish of vegetables and meat slivers
The rest (burger bun, deep fried potato sticks, carbonated syrup, rice) is merely filler.
The result is clear: I can get more useful stuff for a lower price at the dingy little restaurant.

Of course, there is no such thing as a free lunch. The downside to dining at a dingy little joint is that you share the dining hall with less classy people (now isn’t that pretentious). Today’s incident is the most memorable to date.


Among the diners at the table next to mine was a couple with their spawn, probably 2 to 3 years old. He was a pesky little brat, the kind prone to emitting screechy little whines when he wanted to be carried, when he wanted to be let down, when he wanted to eat, when he wanted a drink…

So everything was progressing along smoothly – him sitting in his mother’s lap, the mother feeding him dinner – when all of a sudden he went into a minor coughing and whining fit.

Must have choked on something, so the mother swings him a little to lean out of the chair’s footprint and pats his back. The child successfully clears the offending piece of food from his mouth, and spits it on the floor. She continues patting to ensure that nothing remains, and he ejected more semi-masticated food onto the floor.

Not more than five minutes later, I heard something splattering and I turned around. The child was still sitting on his mother’s lap, but this time he was turned to one side. The mother was holding the slit of his pants* open, his young penis bathing in the soft glow of the overhead fluorescent tubes.

And from this penis, a stream of yellowish liquid flowed out and splattered onto the restaurant’s floor. Not more than 1.5 m from where I sat.


When met with strange circumstances (circumcised or otherwise), the best thing to do would be to tell everyone about it.

I sent a text message to several people:
At a restaurant now. The toddler at the next table just peed on the floor. The mother pulled out his penis and there he goes! Uncultured brutes… die!

D replied, asking if it was big.

I replied:
Haha, no. It was so tiny I initially thought the parents had cross-dressed a girl into a boy. Upon closer inspection, I found the unruly little squirting penguin.

* pants with slits are very common for young children in China. It’s like a normal pair of pants but with the crotch not sewn up, leaving a slit running from the front to the rear. It makes waste discharge a simpler affair, but looks extremely crass.

Labels: , ,

Thursday, September 11, 2008

Traffic modelling hack - how to modify your traffic modelling software to simulate traffic conditions in Tianjin

If there is a need to model traffic in Tianjin using agent-based modelling, the following characteristics are recommended for the agents:
  1. No long term foresight
  2. No adherence to lane rules
  3. No adherence to right-of-way rules

Below are several verifying tests you can perform to check that your model has captured the essence of Tianjin traffic:

Railway level-crossing

Create a single carriageway with two lanes – one north bound and the other south bound. Ensure that there is no physical divider between the lanes, and that double continuous lines separate the lanes, indicating that drivers may neither overtake nor encroach into the opposing lane.

Set the traffic density to a moderate level. To create the level-crossing, create a temporary obstruction across the road, to model the crossing being closed for the passage of a train.

Upon creation of this barrier, cars should start to accumulate and form a queue behind the obstruction (see figure 1a). When the queue length reaches approximately 5 cars, some cars will attempt to jump the queue by lining up on the opposite lane. Shortly after, you will observe that approximately 3 indistinctive queues have formed across the entire road. This happens on both sides (see figure 1b).

Figure 1.

When the obstruction is removed (when the train has passed without incident), the resulting blockage will take a significant time to clear (see figure 1c). This typically ranges from 2 to 5 minutes.

If your model recreates this scenario, it suggests you have successfully incorporated “no long term foresight” and “no adherence to lane rules” into your model. The first is demonstrated when agents insist on piling up on the wrong lane just to be ahead by several metres, but resulting in massive delays. The second is also demonstrated when agents pile up on the wrong lane.


Create a T junction be connecting the end of a single carriageway to the middle of another single carriageway.

Create an agent (red) travelling along the tributary road to the main road, such that the agent’s destination is to turn left. Populate the main road with other agents (green), and set their destinations to be straight ahead (see figure 2a).
The red agent will approach the junction and proceed without stopping. On seeing the red vehicle entering their lane, the green agents will slow down (or stop) to avoid colliding into the red agent (see figure 2b).

Figure 2.

If your model recreates this scenario, it suggests you have successfully incorporated “no adherence to right-of-way rules” into your model. This is demonstrated when the red agent obnoxiously enters the main road without giving way or stopping, and relying on others to see it and react accordingly.

Multi-lane expressway

Create an expressway with 2 or 3 lanes going in each direction. Populate the expressway with a variety of vehicles, such as heavy good vehicles, trucks and passenger vehicles with a variety preferred travelling speeds.

Observe that vehicles will travel on arbitrary lanes, irrespective of speed. Also observe a proportion of vehicles will drift between two lanes. If your model recreates this scenario, it suggests you have successfully incorporated “no adherence to lane rules” into your model.

A corollary of this is that vehicles with a faster preferred speed will need to weave between lanes to overtake slow vehicles that occupy various lanes. Also, when traffic density increases slightly, the expressway quickly becomes congested as clusters of slow-moving vehicles prevent other vehicles from travelling at their desired speed.

If your model is able to predict all three phenomenon, congratulations, you have set up your traffic modelling package to simulate Tianjin traffic behaviours.

Labels: , ,

Monday, September 01, 2008

Something of mind-blowing awesomeness