Pilihan FM Online Streaming – Part 2

So after the ‘failure’ in Part 1 the next step was to roll my own solution. I’ve been listening to the TWiT.tv network since Leo Laporte started it many years back and I noticed that they were running an Icecast server at TWiT.am that streams their audio. Perfect, a great place to start off so do a simple search for icecast on my Ubuntu box which gave the following results.

Went ahead and installed icecast2 and ices2 and after Google searching and fussing about I managed to get Icecast running and went on to configuring ices2. It took me some time to understand that Icecast streaming involves 2 components: the Icecast server (which is the machine people connect to in order to listen) and a source client which connects to the server and provides the audio source to the server to be streamed out. Started off with the typical playlist configuration as I did not have a radio at hand. Managed to get OGG streaming to work but then tried it on my sister’s iPad and was reminded that Apple doesn’t really like OGG and would probably only work with an MP3 or AAC stream. So I started fussing around with MP3 files and only to find out that ices2 didn’t support MP3 streaming (I tend to skip over things in my brain’s weird attempt to speed read and thus glossed over this fact: it’s even stated in the screenshot above that it is for “Ogg Vorbis streaming”). Oh well. Then for a reason I thought that I’d try a solution on Windows (I think I blame my possible ADDnes).

It was during this adventure in WIndows Icecast server setup that I discovered ezStream via the Icecast forum’s “Common Source Client List” and was able to configure MP3 re-enconding. The problem I ran here was that I could not hook the line-in input from my phone acting as a radio. I switched back to Linux and managed to get ezStream working but did not find a way to get it to stream from the line-in audio port as perhaps my Linux / gstreamer fu is not good enough yet. In a stroke of luck (or proper research and reading) I finally found darkice which solved my Linux streaming (for those who don’t like the command line there is darksnow that provides a good GUI interface for the darkice source client).

On yet another whim, I decided to tried setting up an Icecast server in OSX (I think it’s one of those ‘because-I-can’ syndromes, that I tried doing this). I managed to get Icecast running easily thanks to
MacPorts using a simple “sudo port install icecast2” but getting a source client was a bit more troublesome. I started with trying darkice due to my success using it in Linux. The problem? It required JACK audio connection kit which I could not get working in OS X. I have to say that JACK documentation seems severely lacking and I’m still left wondering how to use it. There is an OS X implementation of JACK called Jack OS X. I tried to understand how it works and how to use it using this YouTube video embedded below (turn on close captions, CC, for English subtitles) but new interfaces did not show up when starting applications so still no dice.

There was also a darkice Mac OS X branch build that I got the source (svn checkout http://darkice.googlecode.com/svn/darkice/branches/darkice-macosx darkice-macosx) for, but it seems that I do not have the necessary tools to compile it . So finally I found LadioCast which was the same saviour for OS X as darkice was for Linux. So I managed to get a Linux and OS X implementation running and there goes @mfirdaus managing to get it all working on his N900 with some gstreamer magic of “gst-launch pulsesrc ! audioconvert ! lame quality=9 ! shout2send mount=/listen.mp3 port=8000 password=password ip=”.

Now while the reception on the N900 wasn’t fantastic, it is a great self-contained solution: no external radio or external monitor / keyboard to for configuration. So right now we have 3 implementations but still no proper Windows stand alone solution. I know there is Winamp with a shoutcast plugin, but I’m not sure how to pipe audio from a line-in port into Winamp.

So as I tinker and try to get a proper Windows configuration, I have set up an Icecast server at whose playlist can be accessed at http://bit.ly/pilihan. This URL should work for all platforms (tested with iOS, Android and VLC). You can just click the link and open the m3u file in the default player. This is my own server so may not be up all the time if there is some weird configuration issue / power outage, but hope it helps those who want to listen when they don’t have a radio at hand or for those overseas. Trying to get MFN to get a hold of the IT people at RTB to see if they can implement this on their own servers, but in the meantime self-hosting

TLDR: Click http://bit.ly/pilihan and listen to my server streaming Pilihan FM


This Week in the Life of a Tech Curious Guy: Pilihan FM Online Streaming – Part 1

Hearing the calls of people wondering how to listen online to Pilihan FM 95.9, a national news radio station. Previously there was an online streaming feature but it seems to have broke. I managed to track down the website page that I presumed used to stream online but it just gave a Flash player that did nothing after pressing the “Play Radio” button. So being curious as I am, I took a look at the source of the page to see if there was any hints of the URL that they used for streaming. Sadly there was nothing, just the .swf Flash file, meaning that the Flash file itself has the necessary information to start the stream. What I needed was a Flash decompiler.

A quick Google search and I found flash-decompiler on Google code, which so conveniently is an Adobe Air application and thus is cross platform. Typically tools such as these are built for Linux or Windows, but I’m running OS X so at least I didn’t have to use another computer or boot up a Virtual Machine to use the tool. The decompiler was easy enough to use: just supply the location of the Flash file and click “Parse” and it greeted me with 3 tabs: “Header Section”, “Tags” and “AS3 Classes”. The “Tags” tab seemed to have quite a bit of information so slowly I took a look at it, trying to find what the play button did and if there was any URL that it processed. After a bit of search viola! mms:// was found!

I tried to load the stream, but there was no response. So it seemed that this was a dead stream that no longer exists or that the streaming device / configuration just died. So this round 1 of exploration is deemed as a failure results-wise as the goal of being able to stream the radio online was not met.

So what do you do, when services provided by others don’t work? Well you roll your own solution! In the continuation post we shall learn how to stream audio from a device to the World thanks to the wonders of the Internet. Stay tuned!

B$30+ Spectacles/Eyeglasses

After wearing my pair of specs for about 5 I decided it was time for me to get a new pair. So where do I go to find them? To the world wide web of course! I read somewhere that you could get a great deal on glasses if you buy them online and true enough I found Zenni Optical which offered frames + lens starting at US$8.00. The only thing you needed was your prescription. The shopping experience couldn’t be simpler:

  1. Pick a set of frames
  2. Customize your glasses with
    • Colour
    • Anti-Reflection Coating
    • Lens Tint
    • Clip On Sunshades
    • Lens Type
    • Prescription
  3. Add to cart
  4. Checkout!

They will ship it from different locations depending on where you are and so for me, they shipped from Hong Kong and it came within 2 weeks!

Price Breakdown
Prescription: B$5.00
Frames + Lens: US$8.00
Clip-on Sunshade: US$3.95
Shipping cost: US$9.00
Total: ~B$37.50


Milestone Dates
Purchased: 11th March
Left Hong Kong: 19th March
Arrived in Brunei post office: 25th March

My $30+ glasses complete with case, cloth and clip-on shades. Sweet!

My B$30 Glasses

I had the glasses checked with an optician and the glasses’ prescription is indeed correct and my only complaint is that my head is too big so the end pieces are slightly pressing against the sides of my head and I’ve had that with one of my older pairs of glasses. In face these frames have are wider than my old ones, just that the old frames end pieces were designed to curve out and in vs the straight of these from Zenni Optical. So if you have a big head you may want to take note (the pair I got is listed here and has a frame with of 137mm). But all in all I highly recommend Zenni Optical and will definitely shop there in the future!

Brunei’s Online Shopping Experience – Part 1

I was really encouraged when I first heard of QQeStore several years back. They pioneered the field of online shopping on a local stage and they brought it with a nicely designed website too. Not sure how long after that a rival was born in Shopping.com.bn (I won’t and can’t link to them due to their ridiculous terms of use). I’ve been a customer of QQeStore for several purchases ranging from my old phone (Nokia 3110c) to a Sony Ericsson charger to a hard drive and I was please with the experience but I thought I was time to take a look at these 2 shopping stores and pit them head to head in different features and functionality and tell you which store you should shop at. I recently made purchases from both online stores and document my experiences with them in the following sections.

Covered in this art:

  • Design
  • Usability
  • Product Selection



QQ: Design WIN

Shopping.com.bn: Design FAIL

Hands down QQeStore has a great eye pleasing design and is a joy to use: clean, simplistic and functional. Shopping.com.bn is using way too many different colours and

Round 1: QQeStore





QQ: Typical page Shopping.com.bn: Typical page

Typical page

QQ: item selection Shopping.com.bn: item selection

Item Selection

QQ: Item Page Shopping.com.bn:Item Page 1/2

Shopping.com.bn:Item Page 2/2

Item Page

QQ: Pagination WIN Shopping.com.bn: Pagination FAIL


Browsing through the catalogue as you decide to window shop or what item to buy, both stores offer a similar experience but QQeStore stands out by having more product information: “Product Details” and “Specifications” while also offering a section on “Other Products In This Category”, a great way to discover other products that may better suite your needs. The product details is an ideal way to introduce unfamiliar customers with the product and is a great way to give an idea to the customers of what the product does, as to some specifications alone may be complete gibberish. Chalk another point for QQeStore with their “next” and “previous” pagination buttons as both offer small hard to click page numbers, these next and previous links help the process of jumping page to page.

Round 2: QQeStore


Product Selection



QQ: Product Selection

Shopping.com.bn: Product Selection

Both stores are very IT and home electronics related but they other things such as jewelry, wedding rings on Shopping.com.bn and some interesting toys and thinga-majigs on QQeStore

Round 3: Tie (No clear winner)


Part 1 Conclusion

After 3 round QQeStore has the upper hand with 2 wins over 0 for Shopping.com.bn. In the following parts, topics such as the shopping process, hidden charges, security and price will be covered so stay tuned