Should anyone ask, I only manage 2km at the pool

Imagine swimming 5269 kilometres down the worlds most deadly river.

1) What were the biggest challenges you faced on the Amazon swim?

The biggest challenges were:

—Dealing with pirates; trying to not come into their hands.
We tried to go through their territories unnoticed, and use local people and their knowledge to help us.

—Piranhas, snakes, spiders, candirú, bull shark or other animals which make unpredictable attack; you have to be ready all the time if any piranha attack you. We had some buckets of blood ready in case of emergency, to distract the piranha and get them away from me if necessary. We saw a deadly bushmaster snake, but luckily I didn’t step on it. If I had stepped on it I would have been dead in less than an hour.

—Malaria, dengue and other unknown infections I could easily get in such a water/jungle environment. It looks like I have an “iron” body and very good immune system.

—Floating debris; I tried not to touch any of the debris floating downstream as it might carry a snake, spider, red ants or any other poisonous animals

—Peeing; I didn’t pee into the water straight as this attracts a very dangerous fish called the candirú, which lodges up human orifices with a razor-like spike and then sucks your blood. I was peeing all the time through the wetsuit.

More on Tim Ferris’ site.

Should anyone ask, I am spending more time on the phone

I was just checking out my network’s traffic prioritization this morning and realised I spent most of yesterday on the phone. VOIP traffic is marked as red on the graph:

Most of these are also international calls from my mobile phone. My monthly phone bill comes in at around 30€. (rental, some SMSs, 100 minutes and 10€ for internet access).

I’ve setup my mobile to, by default, make all calls via VOIP. These calls then go out via the cheapest provider for each route. The simplest of which are my family calls. Extension 103 reaches my mother in Chelmsford, 106, my sister in Scotland and, 108 my brother in South Korea. Other calls are then sent either via a VoipCheap trunk or through a Truphone trunk that I have terminated on my VOIP server.

For inbound calls, I have the following numbers that will reach me, where ever I am:

US: +1 425 906 3145
UK: +44 20 7043 6756
Germany: +49 894 2095 5854

I went through a lot of teething pain at the start setting everything up but, after a year or so, things just work. At some point I’d like to add ENUM peering to the setup so that voip nodes stay voip nodes and voice traffic never touches the legacy PSTN.

Should anyone ask, I am spending more time on the phone

I was just checking out my network’s traffic prioritization this morning and realised I spent most of yesterday on the phone. VOIP traffic is marked as red on the graph:

Most of these are also international calls from my mobile phone. My monthly phone bill comes in at around 30€. (rental, some SMSs, 100 minutes and 10€ for internet access).

I’ve setup my mobile to, by default, make all calls via VOIP. These calls then go out via the cheapest provider for each route. The simplest of which are my family calls. Extension 103 reaches my mother in Chelmsford, 106, my sister in Scotland and, 108 my brother in South Korea. Other calls are then sent either via a VoipCheap trunk or through a Truphone trunk that I have terminated on my VOIP server.

For inbound calls, I have the following numbers that will reach me, where ever I am:

US: +1 425 906 3145
UK: +44 20 7043 6756
Germany: +49 894 2095 5854

I went through a lot of teething pain at the start setting everything up but, after a year or so, things just work. At some point I’d like to add ENUM peering to the setup so that voip nodes stay voip nodes and voice traffic never touches the legacy PSTN.

Should anyone ask, Twitter can’t blame Ruby on Rails

Twitter has been having scalability problems. No surprise. Their architecture is based around pumping all data into a DB and then polling the DB. This is nuts. They are asking a DB to act like a router, something that it is pretty bad at doing. Putting a DB into the flow IS THE PROBLEM. It’s not the language, it’s not politics, it’s not even about friendships or past contributions to a community.

Remove the DB and rewrite, using a messaging protocol like XMPP. Send the messages directly to the correct nodes or clients and *only* if the nodes are off-line, store in a DB.

There is an O(n^n) problem here when users send messages to every other user through a database. If you replace that with the idea of subscriptions and use a decent messaging protocol, the problem goes away.

Relational databases are not the solution to all problems. And if necessary stick with Ruby for the presentation layer.

Should anyone ask, Twitter can’t blame Ruby on Rails

[[post-media:eyFEwfFmygnzDuGoltEj]]Twitter has been having scalability problems. No surprise. Their architecture is based around pumping all data into a DB and then polling the DB. This is nuts. They are asking a DB to act like a router, something that it is pretty bad at doing. Putting a DB into the flow IS THE PROBLEM. It’s not the language, it’s not politics, it’s not even about friendships or past contributions to a community.

Remove the DB and rewrite, using a messaging protocol like XMPP. Send the messages directly to the correct nodes or clients and *only* if the nodes are off-line, store in a DB.

There is an O(n^n) problem here when users send messages to every other user through a database. If you replace that with the idea of subscriptions and use a decent messaging protocol, the problem goes away.

Relational databases are not the solution to all problems. And if necessary stick with Ruby for the presentation layer.