Why is Indonesian telcom firm Telkomsel hijacking websites?

Update, added a couple of links below with previous coverage on this scabby behaviour.

Indonesian telcom firm Telkomsel have for a while been injecting crappy little banners above websites without the website owner’s permission. This happens if you’re using their prepaid 3G simcards. This has for years been regarded as a particularly crappy parasitical practice, but Telkomsel take it to an extra level by coding it so badly that the sites they are injecting the ads onto (including mine) get broken.

Here are some screenshots:

Travelfish homepage
This is a “best case” usage as the injected ad (the “weplay” leaderboard up top) doesn’t actually break the site.

Example 1

Example 1

Travelfish forum page
This is a “bad case” usage, where, because their crappily coded stylesheet uses the same element names we do, it breaks the form on this page (it overly widens it) making it impossible to read the screen.

Example 2

Example 2

Agoda booking form
This is a “worst case” usage, where the crappy Telkomsel code makes the Agoda page unusable. I’d imagine Agoda and Priceline’s legal departments would find this of considerable interest.

Example 3

Example 3

Here’s the code Telkomsel are using to inject the ads — they are clearly hosting it. I’ve wrapped it for legibility and bolded a couple of the ad serving URLs.

For websites that are transactional, like Agoda, there is a clear revenue affect here where the ad code Telkomsel is inserting is making Agoda’s website unusable. For other sites, like ours, it is just a PITA.

&lt;meta http-equiv="refresh"content="0;
<link href="http://ads.telkomsel.com:8004/COMMON/css/ibn.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="http://ads.telkomsel.com/ads-request?t=3&amp;i=174559005&amp;j=2&amp;
<script type="text/javascript" id="placeholder-script"

<meta content="minimum-scale=1.0, width=device-width,
maximum-scale=0.6667, user-scalable=yes" name="viewport">
<meta content="yes" name="apple-mobile-web-app-capable">
<title>What's the most famous attraction in Hong Kong? :
Travelfish Hong Kong travel forum</title>
<script type="text/javascript"

<div id="container">
<div id="top-banner">
<div id="offdeck-ads-div"
style="height: 69px; padding-top: 2px; padding-bottom: 0px;
margin: 0px auto; background-color: rgb(221, 221, 221);
position: relative; box-shadow: rgb(0, 0, 0) 0px 2px 3px;
-webkit-box-shadow: rgb(0, 0, 0) 0px 2px 3px; z-index: 50;
clear: both; background-position: initial initial;
background-repeat: initial initial;">
<div id="ads" style="width:100%;text-align:center;">
<div align="center">
<a href="http://telkomselprod.amobee.com/upsteed/actionpage?as=15353&amp;t=1411104155737
&amp;acc=4040581&amp;monitor=0&amp;n=http%3A%2F%2F&amp;a=85733636&amp;data=" accesskey="">
<img src="http://telkomselprod.amobee.com/content/4040581/85733630/85733629.gif" alt=""></a>
<img src="http://telkomselprod.amobee.com/upsteed/notification?event=3
height="1" width="1" alt="" style="display:none">
<hr style="margin-top:2px; padding-top:0px; padding-bottom:0; margin-bottom:1px;">
<div id="toolbar" style="width:100%; text-align: center;">
<div style="width:300px; margin: 0px auto;">
<div style="text-align:right; width: 295px; display:inline-block; height:12px; vertical-align: top;">
<img id="btn-hide" class="ibn-ads-button" src="http://ads.telkomsel.com:8004/COMMON/images/hide.jpg"
style="cursor: pointer; height:10px; width: 50px; vertical-align: top;">&nbsp;
<img id="btn-close" class="ibn-ads-button" src="http://ads.telkomsel.com:8004/COMMON/images/close.jpg"
style="cursor: pointer; height:10px; width: 50px; vertical-align: top;">
<div id="middle">
<div id="left-banner">

<div id="content">
<iframe id="main-frame" scrolling="no"
height="5015" style="height: 5015px;">

<div id="right-banner">

<div id="bottom-banner">

<script type="text/javascript">
p={'t':'3', 'i':'174559005'};
<script type="text/javascript">
var b=location;
if(typeof window.iframe=='undefined'){
<script src="http://ads.telkomsel.com:8004/COMMON/js/if_20140604.min.js"></script>
<script src="http://ads.telkomsel.com:8004/COMMON/js/ibn_20140223.min.js"></script>

<div id="showbutton" class="sh-div sh-div-top-bottom sh-div-top " style="display: none;">
<span class="showbar">
<a id="btn-show" href="javascript:void(0)" style="padding: 5px; font-size: 10px; font-family:
verdana; color: black; text-align: center; font-weight: bold; text-decoration: none;">show ad</a>

So Telkomsel, could you stop doing this please?


Update 20 September 2014, seems I’m very late to the party on this issue. Here’s some others who are equally displeased with the situation.

On similar practises by another Indonesian Telco, XL, Batista Harahap says: “I can’t agree with these kind of practices. Period.”

Aulia Masna in October last year for Daily Social: “There is a concern that XL’s employees or anyone with access to this practice will be able to capture people’s login details for various websites.

I liked your post so much I didn’t read it

Last week, as a part of our “giving back in Southeast Asia” series we published a piece profiling the Soi Dog Foundation. They’re a group in Thailand doing great work helping stray dogs (and other animals) and are funded totally by donations. Nice work!

The charity pieces tend to get very few reads on Travelfish and this was no exception. But, as you can see from the screenshot below, the story got quite a few likes — 3,894 according to Facebook.

Likes all over the place!

Likes all over the place!

It wasn’t till the author of the piece let me know that the Soi Dog Foundation had shared the piece on their Facebook page, that this made more sense. Afterall, they have around half a million “fans” on Facebook. Sure enough, when I look at the piece on their Facebook page, there are the bulk of the likes — 3,580 of them.

How can you not like that dog?

How can you not like that dog?

I got all excited, expecting a tonne of (well 3.5 tonnes to be exact) readers on the story on our site. But, it seems I was barking up the wrong tree.

A bit of a dog.

A bit of a dog.

The above screenshot is from Google Analytics and shows ALL traffic to the story — not just from Facebook. The busiest day saw 313 reads.

What does this mean?

It means that one shouldn’t see Facebook likes as some kind of proxy for web traffic.

It indicates, that at least in this case, the vast majority of readers (90%) liked the post without reading it.

Perhaps most importantly, it means that a story displaying a badge saying it has x number of likes is largely meaningless. (We’re removing them in the redesign).

Lastly it means all stories you publish to Facebook should include a photo of a cute dog.

You can learn more about the great work the foundation is doing here.

How to speed up your website

The easiest way to speed up your website is to invest in a better server.

The second best way to speed up your website is to not have 3 meg GIFs of cats on the page.

But what about after that?

I took a typical Travelfish feature story page, with a standard Adload and went through a series of steps to see just how quickly I could get it to load. You’ll see that the problem of a lagging load are quickly taken out of your hands.

All results are via the smart cookies at Pingdom

Grade 77
Requests 107
Load time 2.43 seconds
Pagesize 1.2 meg

Step 1: Remove all social sharing buttons
Theoretically effects ability of readers to share content on other networks.
Grade 80
Requests 81
Load time 3.54 seconds
Pagesize 1.1 meg

Step 2: Switch Adsense ads to async
No downside I’m aware of. That the code wasn’t already async was my oversight.
Grade 79
Requests 89
Load time 3.53 seconds
Pagesize 1.0 meg

Step 3: Reduce Jpg images from 80% to 60%
Slight change to image quality. More noticeably on retina screens. This was the biggest single improvement.
Grade 79
Requests 91
Load time 2.05 seconds
Pagesize .915 meg

Step 4: Split images across four S3 subdomains
This would have more of an effect if I had say a dozen images as there could be more parallel downloading. In this case a bit of a non issue.
Grade 78
Requests 91
Load time 2.01 seconds
Pagesize .916 meg

Step 5: Remove GAM to basic Adsense code
Removes ability for me to set an artificial floor on the ads displayed. Immediately started seeing weightloss ads. This change would have a revenue implication.
Grade 80
Requests 84
Load time 1.79 seconds
Pagesize 1.0 meg

Step 6: Dump to a plain HTML page
Removes ability to serve dynamic content.
Grade 80
Requests 82
Load time 1.15 seconds
Pagesize .918 meg

Step 7: Remove all ads
Obvious revenue implication!
Grade 85
Requests 37
Load time 0.715 seconds
Pagesize .614 meg

Step 8: Remove Facebook like code
Ego/social proof buttons no longer shown – this should have gone in step 1 – I forgot.
Grade 92
Requests 26
Load time 0.647 seconds
Pagesize .466 meg

Step 9: Remove Google search suggestion from the search box
Readers lose search suggestion.
Grade 97
Requests 19
Load time .416 seconds
Pagesize .361 meg

Step 10: Remove Google Analytics
Obvious loss of traffic measurements.
Grade 98
Requests 17
Load time 0.357 seconds
Pagesize .345 meg

So in ten steps I’ve improved load time from 2.43 seconds to .357 seconds — not too shabby. In the process though, I’ve removed all sharing, tracking and revenue opportunities. This is not exactly a win win situation.

Off the top of my head takeaways.
1) Any changes while still serving Adsense are difficult to measure as Adsense can serve wildly varying ads that will impact the Pingdom results. On one load I saw an Adsense cumulative load of around 700meg!

2) The “easiest” improvement was reducing the image quality. But there seems little point in doing this when Adsense can dump something massive in. The second easiest way is to remove ads. Great for readers — not so hot for the bottom line.

3) Google (and Facebook to a lesser extent) really need to consider adopting some of the “best practises” they keep advising everyone else to.

Request for link removal

A Saturday morning exchange with a Phuket villa operation that has been slammed by Google for dodgy link building aka spamming. Start from the bottom.


So what you’re trying to say is something along the lines of:

“We’re sorry for spamming Travelfish in a boneheaded attempt to try and game Google. To be honest, we’re not actually sorry at all, but, as Google caught us at it and busted our chops we’re feigning sorrow. You can tell we’re not actually sorry at all as we imply in the email that Travelfish added the link themselves rather than fessing up that it was our moronic link building actions that saw it there in the first place.”

When what you really should be saying is:

“We spammed Travelfish in order to try and game Google. Google caught us. Please remove our filthy spam and we’re truly sorry for any inconvenience this caused and it most certainly will not happen again.”

Let me know


On 3/22/14 5:43 AM, XXX wrote:
> Dear Webmaster,
> I am contacting you on behalf of XXX. We noticed that you
> have links to our website XXX on the following
> pages:
> While we appreciate the links, we are currently attempting to recover
> from penalization by Google Penguin. I am respectfully requesting that
> you remove these links to our website, as they are no longer in line
> with our Internet marketing goals.
> Please do not hesitate to contact me should you have any questions about
> removing these links.
> Thank You,
> XXX on behalf of XXX

Stuart McDonald

Travelfish — the website other travel writers use
email: stuartmcdonald@travelfish.org

Twitter: http://twitter.com/travelfish
Facebook: http://www.facebook.com/travelfish
Flickr: http://flickr.com/groups/travelfish/

We want travellers to love Southeast Asia as much as we do.

Cheap hotel in Istanbul

Very quick rant here as have to dash for P&T night, but spurned by a piece on ianditravelmedia regarding Google softening Panda stuff, I went and googled “Cheap Istanbul hotel” (note the singular).

Here’s the result:

I'm an artist at heart.

I’m an artist at heart.

The top few are, as we have come to expect, blended in ads., as is the stuff at the bottom, you know, just before the organic listings.

But in between, look at the other listings. These used to go to Google Places, which I assume Google has along with everything else rolled into +. Over half of them go to travel agents.

I Googled “hotel” not “hotels”. With a plural, yes an OTA may be a reasonable result as I’m looking for a selection, but with the singular, absolutely not.

And really, when people have come to expect “places” to be in “places” listing travel agents in a location map for a query on hotels seems well off the bat.

Think some Istanbul travel agencies are taking the piss here. Try your home town – do you get a result for a single property?

The parasites of travel

So this afternoon I received an email from a very well funded US travel startup called Hopper, titled “We shared your blog on Hopper”. It caught my attention because a week or so ago I’d called them a parasite on Twitter because of their practise of scraping other site’s content into their system, without permission and then “nofollowing” the links back to the source material (they do appear to have stopped this though). Anyone who knows anything about good link practises will agree this is scabby behaviour — perfected in fact by Wikipedia (but I’ll save that rant for another day).

So I was surprised to receive the email. As you can see from the screen shot below, the email had a prominent call to action, asking me to “See your featured post”. The link actually led to: http://www.hopper.com/x/x/E/2WoX?utm_source=blogger-email-a-bulleted-benefits&utm_medium=email&utm_content=experience-page-email-a-bulleted-benefits&utm_campaign=blogger-onboarding

Must click on the yellow box.

Must click on the yellow box.

From the URL I guess (a) they think I’m a blogger and (b) I’m being “onboarded”. Yay!

So of course, idiot that I am, I clicked on the link. Here is where I ended up.

Wow I'm a Hopper member!

Wow I’m a Hopper member!

There’s a few interesting things on this page.

a) There’s no mention, anywhere, of the Hopper Member who actually submitted this content.
b) The Blank headshot icon and “travelfish” near top left implies it was submitted by a member called “travelfish”.
c) Image is still pulled from our Amazon imagebank — so we’re paying. (this is a minor issue, but I’m feeling pedantic).
d) The image is credited to travelfish.org with a dofollow link, below the image. Image actually belongs to Penang Global Tourism who gave us permission to use it on Travelfish.org. We forgot to ask permission for Hopper as well.

Moving on.

If you click on the “travelfish” link near the top you get to the following page:

Us be parasites absolut.

Us be parasites absolut.

Wow. You know, I didn’t know I had an account named Travelfish. Well, I don’t actually. I guess perhaps someone else started up an account called travelfish… But hang on, who is this Matthew dude?

Now I’m guessing here, I’ll be generous and assume Matthew is a real person and not a bot scraping websites… but it seems he was the one who actually submitted the photo. That’s a bit surprising really as “Travelfish” is mentioned at least five times on the page and hell, if you ask me, with that prominent blank head shot and Travelfish up top, this really looks a lot like Travelfish’s member page — I guess they must be submitting their stuff to Hopper because they think Hopper is a shit hot site.

Actually we think Hopper is just shit.

It’s a fab example of the breed of funded travel startups who feel no need to, well, travel. Instead, they take a leaf out of Wikipedia’s book and hoover up, rewrite and nofollow.

The most ridiculous thing is, the photo used isn’t even ours. If our mate Matthew had even bothered to read to the bottom of the post rather than just act on a hoovering alert for “Hey it is Chinese New Year, go find some dragon images from somewhere to rip off” he’d have noted that the image wasn’t actually from Travelfish, but in fact from a tourism org who gave us explicit permission to use the image.

You know Hopper, you can do that — you ask people — or organisations — before you take.

But image use aside, I’m very curious about the “travelfish” account as it certainly appears to have been set up as a result of me clicking on the link in the email. Assuming that is the case, while it’s a clever little tech pirouette, nowhere in the email did it say that in clicking on this link I’d be setting up an account on Hopper, nor implying that I approved having an image that we were using under permission.

So, I’d appreciate it if Hopper could remove the Travelfish username and also blacklist the addition of any Travelfish content to their site, because, well, their site sucks and we don’t want to have anything to do with it whatsoever.

Thanks and have a great day!

Received the following email from Jess Petersen, VP Product at Hopper this morning.

“Hi Stuart,

I just wanted to let you know that we’ve removed your content from Hopper as you requested, and added your site to our blacklist so that no more content can be shared from your site.

I’m very sorry that we upset you by sharing your content on Hopper. We are big fans of travelfish; in fact, one of our developers mentioned he got a lot of great advice from you guys on his 3-month trip though Asia last year.

Ultimately we are trying to build a site that benefits both travelers and bloggers, but we understand completely if you don’t want to be a part of it right now. We’ll keep working on making the site better, and we welcome your feedback along the way.

Hope you have a good day, and safe travels,

Jess Petersen
VP Product, Hopper”

So a thanks from me for acting quickly on this. Cheers

Escape from Gorontalo

It’s not often you meet a plane crash survivor in a hotel lobby, but that’s what happened to me last week, in the foyer of the New Melati Hotel in Gorontalo, northern Sulawesi. “Good morning,” I said, as I sidled up next to her, waiting for her to finish with the receptionist. She turned, smiled and blurted out, “I was in a plane crash last night. Our plane hit a cow.” [Story updated at end with apology from Garuda]

Indonesia: where the unexpected is to be expected.

The woman and her family had been on the Lionair flight from Jakarta to Gorontalo via Makassar on Tuesday, 7 August. Upon landing the aircraft either hit a cow “idling” on the runway and skidded off into the grass or skidded off the runway, then hit a cow. Both are perfectly credible as Lionair pilots do sometimes have trouble finding the runway, and as we later saw, plenty of animals hang out around the runway at Gorontalo airport thanks to gaping holes in the fences.

Not a cow in sight.

Not a cow in sight.

While uninjured, the woman I spoke with was still visibly shaken — she had only just found out that they had hit a cow (via media reports online). Lionair had told her and other passengers nothing at the time. She said it felt like the plane had hit something before it bumpily halted; passengers opened the emergency exits, but the crew told people to stay where they were, even though they could smell something burning. When they finally got off, they saw it was the grass the plane had stopped on.

But I’m not going to write too much about Lionair today. Instead I’m writing about Garuda: Indonesia’s flag carrier and, according to Skytrax, the World’s Best Regional Airline. Why? Because we had a flight out of Gorontalo to Makassar, then a connecting flight with Lionair the next day from Makassar to Bali. We were due to be leaving the morning I met the cowcrash survivor, on Wednesday 8 August.

No we're probably not flying anywhere today.

No, we’re probably not flying anywhere today.

We had booked back in May two legs: Gorontalo to Makassar with Garuda and Makassar to Bali with Lionair. A month after purchasing the tickets, Garuda advised us by email of a change in the time of the Gorontalo flight, which meant we would now miss the original connecting Lionair flight. When I contacted Garuda to explain the problem, they suggested we change the flights to the previous day — at a cost of 111,000 rupiah per ticket. So even though we were changing the tickets in response to a change Garuda made, we still had to pay the fee. We sucked it up and paid, and were thus also forced to have an overnight stay in Makassar.

Then on Monday 5 August (two days before departure) I received an email, this time from the Garuda office in Gorontalo (which, by the way uses a Yahoo email account), notifying us of another schedule change. The flight was again being shifted from morning to afternoon.

Then, on the Tuesday, Lionair crashed into that cow, closing the airport to 737s (smaller aircraft, used by for example Air Wings and Sriwijaya, apparently used it the following day).

Gorontalo airport cow-gate.

Gorontalo airport cow-gate.

After meeting the cowcrash survivor, we asked the receptionist at our hotel to see whether the airport was open or not. It was closed; so I hoofed it over (geddit?!) to the Garuda office in Gorontalo for clearer information. There I was told the airport was closed, but that we were all confirmed on a Garuda flight the next day, which would allow us to still make our Lionair connection out of Makassar.

Early in the morning on Thursday August 8 (3:17AM!!!) I received an SMS from Gorontalo Garuda notifying a flight schedule change, with flight now departing at 13:50, with a note to call (0435) 830444 for more info. This number didn’t work.

At Garuda allowed our kids to sleep on the terminal floor.

Waiting for… Garuda.

We decided to be conservative and so headed to the airport early. Cost: 280,000 rupiah. Arriving at 11:00, we were first in line and Garuda staff at the ticket told us the flight was “on time”. We then tried to change our Lionair ticket onwards to Bali but were told by the Lionair staff that there would be a cancellation charge of 90%, as “there’s no problem in Makassar”. Cost: almost 3 million rupiah.

As time wore on, we expected Garuda check-in staff to appear. No. At no time did ANY Garuda staff come to address the passengers lined up waiting to check in. Then, at 12:35, Gorontalo Garuda texted to advise that the flight was cancelled (an hour and 15 minutes before ETD from Gorontalo). I asked Garuda staff at the ticket office at the airport what was going on, but they said they didn’t know. Other passengers were told by other staff that there would be a flight at 14:00, then at 16:00. No staff mentioned that the Lionair aircraft had still not been moved and this was why we couldn’t get out. The airport reportedly lacked the equipment to move it — we heard later they tried to move it with an excavator a bulldozer.

Happy Garuda customers.

Happy Garuda customers.

As the number provided by Garuda didn’t work, and the ticket office was a madhouse, I called Garuda in Jakarta at my own expense, spending 30 minutes trying to get advice on what we should do. They were unable to tell me whether any flight was happening that day or the next. With two tired children — and thanks to it being Idul Fitri, not a single shop open at the airport where we could buy water or snacks when our own supplies were finished — we gave up and returned to Gorontalo (cost 200,000 rupiah).

The check-in counter: We're all about service.

The check-in counter: We’re all about service.

Later, back at a hotel in Gorontalo — Garuda didn’t offer transport back into town, accommodation or meals — we spent another half an hour on the phone with Jakarta Garuda. Finally, they told us we had a confirmed reservation on Friday August 9. We then purchased connecting flights (with Garuda) to Bali for Sam and the kids (I was heading to KL). Cost: another 3 million rupiah.

What, do I need to spell it out for you?

What, do I need to spell it out for you?

Other friends who were also hoping to fly on August 9 (with Lionair) head to the airport earlier than us. Upon arrival, staff told the airport was closed to jets; they called the hotel to tell us. We then spent a full 80 minutes in total (across a series of calls) with Garuda Indonesia in Jakarta trying to shift change our departure city from Gorontalo to Manado, a nine-hour drive away. In the middle of this, we received an SMS from Garuda Gorontalo advising the flight is cancelled. Despite being on a confirmed flight on Friday from Makassar to Bali, we were now pushed to Saturday’s flight — which is full, so we were waitlisted.

Though on the first call we were told that charges will be waived if we shift to Manado, as the call dropped out we need to call back — again and again and again. And the final person, to whom we explained the entire scenario again, refused to waive the fee. We would have to pay an additional 2 million rupiah. (At the start of each call, we asked the Garuda agent answering whether, if the call drops out, they can call us back, and gave two mobile numbers. Each time, nobody called back. On the final call the agent told us that actually they are not permitted to call back clients.)

Trying to get a straight answer out of Garuda in Jakarta.

Trying to get a straight answer out of Garuda in Jakarta.

We then chartered a car for the drive to Manado (that’ll be another 1.2 million rupiah — we wonder whether the thought of putting a bus on for the scores of other passengers like us on the first day occurred to Garuda?). One of the kids was now coming down with tonsilitis, but that’s probably the one thing we can’t blame Garuda for. Though if we had been home by now, nobody would have been vomiting during the first hour of the drive, right?

Roughly five hours into the drive, at 18:57, we received an SMS from Garuda Gorontalo advising that a flight from Gorontalo to Makassar was due to depart Gorontalo at 20:10. We had to laugh. It was pretty hilarious after all. Check in is supposed to be one hour before departure; we were given 13 minutes to check in, and Gorontalo airport itself is a 45 minute drive from downtown. We ignore the text as we’re closer to Manado.

Gorontalo airport then called at 20:33 advising that the flight would indeed be departing soon (from Gorontalo). I explained that we were on the way to Manado.

The next morning, the gracious staff at Manado agreed to waive the change fee on the tickets and 1.5 hours later we were, finally, in Makassar. Sam and the kids however were still waitlisted on the flight to get back to Bali. The child with tonsilitis had a high fever return; we couldn’t sit outside the airport for four hours to see whether we would make the flight. Business class seats were available. We called it a minor emergency; the kids were starting school on Monday. We bought the upgrade. Ka-ching — another 3 million rupiah.

What could have been done better?

Nobody expects an airline to use a Twitter or Facebook account to move an aircraft. They do expect it to be used to assist in customer support.
Suggestion: @indonesiagaruda “We’re working with Gorontalo airport to get the Lionair aircraft off the runway ASAP.”

A timely tweet from Garuda in the midst of the drama

A timely tweet from Garuda in the midst of the drama.

While we understand this whole drama was caused by either Lionair or Gorontalo airport’s incompetence, Garuda and its passengers were directly affected and Garuda was in complete control of how it responded to the situation. At no stage did Garuda use social media to address our concerns. We did get one message from an account we hadn’t actually tweeted to, telling us that they were trying to get confirmation of whether a flight would leave Gorontalo. But they never tweeted us again.
Suggestion: @indonesiagaruda “We apologise to our passengers stranded at Gorontalo airport and are working to rectify the situation ASAP.”

Pay attention
In ignoring our tweets, Garuda demonstrated a flagrant disregard for the wellbeing of their passengers. Why was international media able to pick up and respond to our tweets and photos while Garuda was unable to even acknowledge them?
Suggestion: @indonesiagaruda@sagabrown We’re sorry, the flight has been cancelled. Please return to Gorontalo and stay at the Quality Hotel — we’ll fix you up for it.”

Supply updates
In 2012, Indonesia had the fifth largest number of Twitter accounts in the world. Garuda has a Twitter account — one with almost a quarter of a million followers in fact. Why didn’t Garuda use its highly visible account to notify passengers of updates? Why did they pointedly ignore customers who were actively trying to contact them?
Suggestion: @indonesiagaruda “We’ll be running a courtesy bus to Manado for those who want to change their flights (free of charge). Contact the Gorontalo Garuda office for more information.” This was their chance to also supply a corrected phone number.

What did Garuda do instead?

Absolutely nothing.

We think this might make a rather good case study for carriers generally in how NOT to behave when flights are cancelled/delayed. We’d be happy to hear what Garuda thinks — so we’ve left the comments open.

We’re looking at tickets from Denpasar to Rome in September… but not with Garuda.

This one is for you LionAir (Pic http://borborigmus.wordpress.com/ )

This one is for you LionAir (Pic http://borborigmus.wordpress.com/ )

Final note
If you’re looking for a good argument for travel insurance (which we didn’t have because our preferred travel insurance provider World Nomads unfortunately doesn’t cover us in the country we live) this should be it.

Update: 19 August
I just received the following apology from the Social Media at Garuda Indonesia.
Dear Helpdesk Admin

following up the posting of “Escape from Gorontalo” listed on august 17th,2013, about cowcrush accident at august 6th,2013 in Gorontalo airport that caused cancellation of flight schedule. For the flight cancellation on that moment and airport service were not all Garuda Indonesia responsibility ,however,from the side of Garuda Indonesia, we would like to say sorry for the inconvenience and would like to say thak you for critic and suggestion.And we would hope and try for the best services in the future that apply very well to customer.


Travelfish turns 9 today

It probably strikes some as a bit odd that Travelfish’s “birthday” is the same as mine, but given it sometimes feels like an extra appendage, it seems appropriate — and it does save me one date to remember.

Another day, another year, soon another decade… But what has the last year brought us? Well first and foremost it has seen our slowly growing membership continue to work to make the site the great resource it is. Thank you — every single one of you — even those who drive me a little mad.

Separately, we’ve seen a dramatic deepening of our content in some areas, while others remain badly out of date. It’s a perennial juggling game, but with 18 excellent writers in the region we’re very well placed to address the out-of-date issue and we are working on it. Really.

We’re on a seemingly more solid financial footing — with 17 paid correspondents filing once or twice a week, one full-time writer based in Bangkok, plus, in the last few months (FINALLY) a programmer to assist me with the site’s tech needs — and Sam and I on the case pretty much around the clock, we seem to be just about there. It’s only taken almost a decade — but we’ve an excellent rounded team we are proud of. Travelfish writers, take a bow.

The site is still growing, both in membership and traffic, although both seem to be levelling off somewhat. We’ve never had a hockey-stick style growth — rather slow and more or less steady. Now, with a programming assistant on board, we’ll be adding a lot of new features to the site — some have been popped on already — that we hope will help our already dedicated readers become even more so. It should also help some drive-by visitors slow down a little more to take a good look at us.

So what’s on the cards?

As regulars will already know, we commenced research on Burma at the start of the year. Content will start to come online in the coming weeks. We also continue to expand our Indonesia and Malaysia coverage, and there’ll be a lot happening with some of our now quite dated Vietnam coverage in the coming year.

We’ve renamed our blogs to “wires” and they too are growing in readership — they do have a way to go before they start really earning their keep, but they’re certainly moving in the right direction.

We released our first iBook a month or so back, for Flores in Indonesia, and we’ve got a few more in the pipeline. We’ve phased out our well regarded iPhone apps in favour of iBooks, as we feel the latter are a superior planning tool. In a step that sets Travelfish aside from most in the travel publishing industry, there’s no DRM involved in our guides and they are 100% free.

This coming year is also going to see wholesale changes to our mapping system as we drop Google Maps in favour of MapBox and, in a step back to our humble beginnings, printable PDF maps. We believe both will prove to be considerably more useful than our existing offerings.

One of our first features with MapBox has been our “Where I’ve been map” that allows Travelfish members to mark where they have been in the region. This is the first step in a bit of a stroll we have planned.

We’ll also be shortly implementing a system to better reward Travelfish regulars for the contributions to the site — more on that soon — we just need a few more rainy days to finish it off.

Talking about the weather, our entire weather section is about to be relaunched with a complete reworking from the ground up. You’ll love it. Really.

We’ve also worked to make the forum a more useful platform for Travelfish members. We’ve improved the PM system and added more countries, for example, and have more planned for the coming months. For many Travelfish regulars, the forum is the core part of their site experience, and we want to help them get as much out of it they can.

Lastly, we’ll be reworking our entire transportation system so it will be easier for readers to compare different ways of getting from A to B, so they can choose what works best for them. We had something like this years ago but it fell over because we couldn’t get it to work properly — that is no longer the case and we hope to have it up and running before the end of Q3.

Well, that’s a bit of a wrap! Hopefully we’ll be able to pull most of the above off and we’ll recap a year from now — when we turn 10.

Thanks for reading!

Stuart & Sam

Do travel website landing page download sizes matter?

Catchy title I know. In another bout of procrastination I ran the homepages of a bunch of travel websites and blogs through the “Speed test” tool at Pingdom. I did this primarily because Travelfish.org has a rather chunky homepage and I was wondering if I should spend time re-assessing it to reduce the size so it would load faster. So I ran our homepage along with a bunch of other travel websites and it seems that in most cases, travel websites are not all that worried about having a homepage over one meg in size.

The notable outlier was Travellerspoint, which manages to run a homepage a fraction of the size of any of the others I tested, but their load time was only in the middle of the range — get more hamsters into that server!

TP aside, it does seem that everyone else reckons the readers will wait while they bulk out the homepage with big images, Facebook and Google plugins and so on — isn’t anybody reading Jakob Nielsen?

Some of the websites mentioned obviously will have far higher traffic numbers and I assume server load, but likewise I assume TripAdvisor has a few more hamsters in their server than some of the smaller sites listed. Because of this I ordered them by Pingdom’s “Performance grade” which takes into account a number of features in deriving a final score.

As traffic levels to these sites will vary over time through the day, I’ve linked to the actual Pingdom results are after the image. Through those links you can access Pingdom’s history tool to see historic results for a domain (in some cases I had to run the test a couple of times to get a usable result).

Pass the nachos.

Pass the nachos.

Pingdom results

2018 update! The Travelfish newsletter: The good, the bad and the ugly

Regular Travelfish readers may know that we have a regular newsletter that we send out every Monday (well sometimes Tuesday if things get out of hand). It’s a wrap on what is happening both at Travelfish HQ and on the Travelfish.org website along with a roundup on interesting news and writing on the region. You can read a previous issues here.

We’ve thousands of subscribers and thankfully have new people subscribing daily.

Not surprisingly we also have people unsubscribing (luckily not on a daily basis). After all, we’re a travel website focused on a single part of the world and for some people, once they complete their trip, the newsletter loses an element of its relevance. But there do seem to be many armchair travellers or repeat Asia visitors out there — which is great to know!

When people unsubscribe, they’re given the option to let us know why they’re unsubscribing. We thought what better way to help you decide if you should subscribe was to let you know why people unsubscribe.

So here’s a selection of the Good, the Bad and the Ugly. While this is just a selection, it is roughly in proportion to the total numbers of unsubscribes we get.

The Good
“My fiancé and I loved the website of Travelfish when traveling around in SE Asia for four months. The newsletter gave some fun and handy insights and ideas on topics we otherwise wouldn’t have thought to look into. We want to extend our warmest thanks for all of it. So much appreciation for your work. Keep it up! Wished we would have met in person. ”

“You’ve been very helpful and informative but I am in India now and going home in May and after that I don’t know when I will travel. Thank you for the useful info you keep providing. Best wishes.”

“This website was fantastic and it was very useful throughout our travels in Vietnam and Cambodia….no need for further information as we will not be in that area as we are travelling other world areas in the future. Will certainly recommend this website to others who are heading to Southeast Asia. Good job and thank you”

“Trips cancelled!! Toooooooo many travel emails. be back!!”

“I’m not travelling for a while and it’s too hard to read about all your adventures! I’ll resubscribe down the track :)”

“I think Travelfish is fantastic but I just have no time to read right now. thank you for your great newsletters – they make me want to head back to the east ASAP!!”

“Can’t afford to go anywhere for awhile so will stop tormenting myself :(”

“It’s too upsetting to read about Southeast now I am no longer able to go.”

“I’m leaving SE Asia in a couple of days, and I fear reading your blog will not help my withdrawal. Give me a couple months and I’ll be back. Travelfish is an excellent resource.”

“Not travelling at the moment or in the near future and its sad to read everything!”

“Loved reading your travel news but we are going away in a few days time and will not have internet access (apart from spasmodic visits to Maccas!) for some months – will be back to subscribe when we have finished travelling, as your info is excellent – can relate to so many of the articles. Thanks very much, and great to know you are expanding.”

“Your newsletter was great, but my times of travelling are over now.”

“Finished 4 years of travelling Awesome site!!!!!!!! Used it always on our trip”

“No travel plans for some time. Great help for my recent trip to Thailand though…”

“Great site…..going to South America – I will subscribe when SE Asia is on my radar again”

“I am unlikely to be travelling again for a long period. However the emails were very interesting and useful when I needed them!”

“Not in Asia anymore! Brilliant website though and will be back!”

“We came back from travelling and it’s depressing me having to read about all these wonderful places.”

“I have completed my travels of Southeast Asia for a few years. I’ll start up again when i decide to go back to SE Asia. I really enjoyed the newsletters.”

“Fantastic read when I was planning my trip to SE Asia. Thank you!”

“Not currently planning a trip as I just got back from Vietnam and Cambodia but will be subscribing when I go again. Great newsletter, thanks.:) was very useful and insightful”

“No longer relevant as traveling in Europe – loved the letter/website though and will use the website again for future Asian travels.”

“Loved your newsletters. Found them interesting and informative. Not able to travel in near future now.”

“Very helpful newsletter! We went to SE Asia for 3 months last year. planning next trip now to different part of the world… thanks for your info.”

“You have developed a great website and I have used it wisely. My Asia travels are over for the next few years. Many thanks for your services.”

“Love it. Travelfish was amazing in helping to plan for our trip to Cambodia/Vietnam in Nov/Dec 2011. But now planning to go somewhere other than SE Asia. Thank you!”

“No more travel planned for the next year or so. Thanks for an excellent service . Love your regular newsletters!! Best wishes for the future. I’m spreading the word!”

“All of information I received was extremely useful. We completed our trip in April, jet lag was everlasting on return to the states, but worth it.”

“No trips planned to Southeast Asia for awhile – however – found Travelfish to be a terrific resource!!!!”

“We don’t need the information any more as we came back from our holiday a while ago. But it is a great newsletter, thank you.”

“I’ve finished travelling for the moment! But travelfish was extremely helpful!”

“Finished my trip to Asia. Now focusing on South America. Your site/newsletter is awesome and I will use it again and recommend it.”

“I have just been away and it’s too depressing to see such amazing places right now! I’ll re-subscribe for the next time. Brilliant site though.”

“It’s just that I won’t be going back to SE Asia in the near future — and seeing this every week makes me envious of those who are there! I still subscribe to you on Facebook.”

“Not planning to travel to Asia soon, but will definitely connect again when I plan to travel to that part of the world.”

“I am no longer traveling to SE Asia. If I plan another trip, I will plan on subscribing again.”

“I have stopped travelling for now and will subscribe when I need it again. Many thanks!”

The Bad
“you’re sending people to unspolied locations, and they’re ruining them”

“never read it”

“can not read englis”



“Trivial content.”

“too commercial”

“It was not an interesting read for us. Probably the writings are aimed at a different, less experienced audience.”

“Not that interesting”

“No time to read”

“Not relevant. Thanks.”

“Good info on Travelfish, but the newsletter not so good.”

“I don’t like to be pushed I like to choose who I deal with thank you.”

“Too many emails; once a month or so would be fine but not several a week.” [THE EMAIL IS ONCE A WEEK]
The Ugly

“Your site is a coplete bag of shit and I wish you were did in a ditch like the people you ridicule on Twitter **** you”

“The owner of this site is a complete ****”


“Basically, Southeast Asia as a whole and especially Thailand are just jam-packed with rude, lewd, corrupt, slimy, putrid, sleazy, cheating ****. I have traveled far and abroad and in my well-travelled opinion, most of Asia and Southeast Asia should be widely avoided at all cost!” [**** added by us]

In conclusion
If you’ve read through the above and the newsletter sounds like your kind of thing (note you can read previous editions AND SIGN UP, GO ON YOU WANT TO, here to get a feel for what we’re doing), feel free to signup via the form below.

You can unsubscribe at any time and, as we’ve probably illustrated up top, we do read every single unsubscribe we receive!

Good travels.