Archive for the 'Uncategorized' Category

Good Customer Service is Refreshing

Thursday, May 8th, 2008

I recently moved out of my old house and into my new one, which is much closer to downtown. Of course this meant I had to change my address on all my credit cards, my bank account, bills and of course I had to get my new internet connection setup.

I dread moving my internet because the last time I moved into a new house I was originally planning on getting a Rogers high speed cable, but the guy who was supposed to install it never showed up. It turned out they called me the next week to confirm my appointment — they had scheduled it a week to late. But by that time I had already booked an appointment for another ISP called 3Web to install the almost identical cable high speed internet.

Finally after 21 days, my internet connection was active and I could get back to IRC, MSN and all surfing when I am bored. I lived in that house for two years and I kept 3Web service the entire time. The connection went out for about a day one time, but otherwise I had no problems with it. It was decent, but it wasn’t spectacular or impressive. Nothing to blog about.

Now two weeks before I moved, I called 3Web to let them know. They asked me what day I would like the service at the new house to be working. I said the first of May and they said okay. I thought, “That was too easy”. But on the day I moved, by the time I had a chance to open up the laptop and try it out, it was already working.

Contast this wonderful example of flawless service with my phone line. Bell recommends that you use the moving form on their site. So I did. However I got no response, no call to confirm from them or anything. When I got to my new house, the phone line was dead and I was still paying for the phone at my old house. As punishment I have decided I will no longer have a home phone. Right now I’m doing perfectly fine using Skype for outbound calls, but I still haven’t found a good provider of incoming VoIP lines for a 613 Ottawa number. I would be nice if SkypeIn was available in Canada. Maybe in the future I will get a cellphone, but it won’t be one from Bell.

There are certain companies which have such terrible service you dread dealing with them, and try anything to avoid it. Unfortunetly in Canada many of the monopolies are these kinds of companies, and these monopolies are so pervasive that everyone forgets what good service is like, or at least assumed there was no possible business model that would allow good support and cheap prices at the same company. My experience with 3Web, and flying with WestJet reminded me that is possible, so now I am voting with my wallet.

New Website

Sunday, August 12th, 2007

I now own http://laszlopandy.com, and my old blogspot blog redirects to here. All the old posts and comments have been imported. Everything should be exactly the same with the exception of the much nicer Wordpress theme which I stole from http://jokosher.org/. Hopefully redirecting my old page to this one will not cause my new XML feed to mess up the planet.

It is nice to finally have a server to put my own programs on and have it accessible from anywhere through my domain name. I originally thought that I would be using Python for all my web stuff, but do far I have found PHP to be really simple to use. This is mostly because in Python you have to put all your HTML in doc-strings, which prevents you from having syntax highlighting, and breaking up the string when you need to insert a variable is not elegant. I find PHP method of allowing you to jump in and out of HTML mode to be a much nicer solution.

Right now I’m only playing with Wordpress and few PHP web apps that I wrote myself. Maybe one day I’ll get around to trying out Django and all that jazz, but currently I like 99% of what Wordpress does and I therefore only have to spent time tweaking the remaining 1%.

Speaking of time, because of work and generally being lazy, I haven’t put a lot towards Jokosher lately. Summer is almost over and I will soon be revving everyone to get ready for our unit testing and our beta releases in the fall. Otherwise everything is gonna slip past Christmas. Let us hope it doesn’t come to that.

Laszlo’s Law of Urban Transportation

Thursday, March 22nd, 2007

Behind programming and linguistics/syntax, planning urban transportation is my third favourite intellectual activity. This is of course why a spend a few days last year researching and designing a subway system for Ottawa. In no way is there sufficient population density in this field of urban sprawl they call the nation’s capital to make a subway cost effective, but it is still an exercise I enjoy. Trying to find the optimal routes for a number of subway lines it kind of like solving the travelling salesman problem. There are many close-to-perfect answers that are easy to find and only one perfect answer that is impossible to find, but the challenge of trying to get as close as possible is fun.

This week I have been researching flights and train voyages to get to LugRadio Live in Wolverhampton this summer. The trick is finding the fastest and cheapest route from Ottawa to Wolverhampton. Even though Ottawa is the capital, it is quite small and so the only direct flights to the UK from here go to London Heathrow. That would mean I would have to get off the plane after a 7 hour flight and get on the train for another 2.5 hours. If I want to get a plane to Birmingham or Manchester I will have to transfer in Toronto, Montreal or London Heathrow.

For $50 I could take the bus to Toronto, but the bus terminal is downtown, and the airport is 30 minutes west of the city with no rail links. Also for $20 I could take the bus to Montreal - at least there they have rail access to the airport. If I decide to transfer in London I would be able to easily take the tube to any train station which would lead me to Wolverhampton. I love the Tube. Travelling to London scores high on my list because of it as you’ll see below.

Okay finally on to the real reason for this article. I present Laszlo’s Law of Urban Transportation:

“The quality of urban transportation planning in any given city is directly proportional to the time it takes to get from the main passenger airport, to the main passenger train station, and from there to the city centre and back to the airport.”

In the paragraph above, train station can be replaced by bus/coach terminal and the law will still hold. You should notice that I didn’t specify the distance but instead it should be measured by time. This is because for big cities there is no option. The new Hong Kong airport is really far away from the city because with mountains on one side and the ocean on another, there isn’t much room. However there is a high speed train which will still get you to the airport in 24 minutes. This is about the same or maybe even less than Ottawa who’s airport is quite close to the city.

You should also notice that I didn’t exclude taxis or even specify that it must be public transportation. You could probably increase the ranking of a particular city by taking a taxi and shortening the time it takes to complete the airport-train-downtown loop. This is only because in some cities this is the only way. In Prague there are three subway lines that go north, south-west and south-east. Unfortunately the airport is a 20-30 minute taxi ride due east.

From what I have seen and guestimated so far, the cities that have the shortest airport-train-downtown loop are Geneva, Switzerland and Sydney, Australia. I have been to Geneva and I remember that the train station is a short walk from downtown and for a few Euros you can take a 5 minute train ride to the airport. Of course they had to put the airport close because of all the damn mountains. I suspect the same is true with Sydney but I have never been there. Based on looking at Google Maps, it seems that the airport is 4km from the train station and the train is only 1 km downtown. Way to go Sydney.

iRiver T10

Friday, July 14th, 2006

I bought a new MP3 player a few days ago. Its one of those Windows Media Player “Plays for sure” devices which uses Microsoft’s media transfer protocol. On Linux there is libmtp but I would much rather have a USB mass storage devices that I can copy files to and from on any computer. Luckily the iRiver lets you change to UMS (USB mass storage) through a firmware upgrade. Of course the firmware updater program requires a Windows XP machine with WMP 10 installed. Once the firmware update is complete, its back to Linux.

The main reason I bought this player is because it has long (45 hour) battery life and Ogg support. I wonder why iRiver makes the default firmware require WMP 10 when that terrible program doesn’t even support Ogg? I mean if someone was really going to make use of the Ogg support, they won’t be the kind of person who uses WMP.

One problem I had with the player — and all other UMS players is that you — can put files in folders, but within each folder the songs are not listed alphabetically. Instead they are listed in the order you copied them to the player (presumably is just grabs the lowest disk address first). This is a problem because now all my albums play in the wrong order, unless I meticulously add them in the correct order.

As a UMS, this iRiver T10 does not support any regular playlist formats. I’m pretty sure on Windows using MTP you can add playlists, but on Linux using UMS you’re kinda stuck. No m3u or pls or any other kind of XML. However it does have this “QuickList” feature which lets you hold down a button and add the currently playing song to a playlist, like the iPod’s “On-The-Go” playlist.

So after making one of these I got the idea that I could make playlists and put all my songs in the correct order. But that would mean using the T10 interface then stopping, plugging in and transferring the playlist data somewhere else on the drive so I could create another one. Instead I just opened the playlist up in my trusty hex editor and reverse engineered it.

Luckily the iRiver playlists (*.pla) are not difficult to understand. They have a 512 byte header, followed by the paths for each song relative to the root of the drive. Each path takes up 512 bytes (the ascii data followed by null characters). For some reason every second byte throughout the whole file is 0×00. Is this UTF-16 and I am just using non-complex characters?

Anyway, I put it all in a python script. To make a playlist of the entire folder in alphabetical order just do:

ls | ./iRiverPlaMaker.py MyPlaylist.pla

You should run this on the iRiver disk so all the paths are correct and correspond to the root of the disk.

Why I Love Libglade

Friday, July 7th, 2006

The family computer in the living room (of the house that I am now moving out of) was recently converted to an Ubuntu machine. For about the last three years I have been trying different ways to keep it running smoothly. The last configuration was Windows 2000 with a limited account and a software firewall, but even on dial-up, the spyware and the worms got to it.

This computer is mainly used by my younger sister and younger brother for homework and surfing the internet. The three most used programs are Word, MSN, and Limewire. So I thought this would be a perfect use case for Ubuntu — and it is. It’s working flawlessly so far, even with sleep, but that’s because it has apm not acpi.

Anyway I’m not here to tell you my Ubuntu success story since everyone knows how it ends; the computer never has to be reinstalled or rebooted ever again!

I’m here to tell you about why I love libglade. Everyone knows how it is good for creating GUIs, even though the interface sucks, and how it takes a lot of the work out of programming. But in my case it was the XML that saved the day since it is easily readable to humans and does not need to be compiled.

The above is a screenshot of gnome-ppp when it is connecting (like I said the computer uses dial-up). My younger sister will sit at the computer and think, “Oh, ‘Log’ as in ‘Log-on’”, and will click the log button. But instead it brings up a window showing the log of all the modem commands sent during the connect process. Now she is confused, and we don’t want the user to ever be confused.

For some reason she can’t remember not to click on this button. So I opened up the glade file using this command:

gedit `locate gnome-ppp.glade`

I then searched for the gtkButton with the text “_Log”, edited, saved, and voila!

This particular program has instantly become much more usable for her — something that could never be done on Windows or MacOSX. Score for open source!

Hello Planet Gstreamer

Friday, June 30th, 2006

As you can see, I am now on planet Gstreamer. I am another one of those Jokosher guys who also write about a lot of stuff which has nothing to do with Gstreamer. I’ll try my best to keep it interesting :).

So following GUADEC which I did not attend, and could not watch because of the semi-functional streams, Jokosher is entering its first feature freeze. This saturday (also Canada Day!) we are frozen. Which is bad since we have picked up momentum from the GUADEC demo and Jono putting in some real-world testing. But alas the freeze is good cause we have lots of bugs and we need to release soon to get more users onboard.

Jokosher has come to the point where I need to actually do some real C hacking and not just the Python stuff to fix the bugs. Maybe I’ll have time for this if I can finish cleaning up some code, hastily committed on wednesday trying desperately to make the freeze. Uug! I hate it when people mix tabs and spaces!

One Week Until…

Thursday, June 8th, 2006

That’s this is the official reminder for all those who don’t know and those who don’t remember. In one week (that June 15th) it is my 19th birthday. After this event, I will be finally able to purchase alcohol and cigarettes, however I’m not sure I will exercise this right any time soon :).

I finally listened to that last LugRadio and was quite surprised to hear my name mentioned and Jono explain that I was a “Jokosher Hacker”. This of course was quickly followed by Matt making a few quips about how I was from “canadia” (sic), and whether I will be let “oot” of the country. I can’t really take this seriously coming from Matthew “the gnome” Revell. There’s an inside LugRadio joke for you :).

On the Jokosher front, I have now implemented exporting to ogg. This has not yet been committed to svn as I am still working on it, but you will be able to try it out before the end of the week. Next up will be a nice progress dialog, and exporting for mp3, wav and possibly flac.

Programmers writing documentation?

Monday, June 5th, 2006

I feel compelled to post an update although there isn’t much to say. Last Thursday, I lost power in my house for 24 hours, after the storm in Toronto. It was totally the fault of hydro one, cause we are always last to get our power back after an outage.

Needless to say having no power hampered my efforts at getting something done on Jokosher. And of course I couldn’t download the Ubuntu Dapper Drake CD until friday.

Over the weekend we made some good progress on Jokosher documentation. Jono put together a hacking guide, and I wrote a page about our file format. My goal (which I think I have achieved) is to have it detailed enough for someone else to implement some code that can read/convert our files for some other program. Although I’m not sure who else would want to use our files :). Many open source projects get bad press about having no documentation; hopefully if this keeps up Jokosher won’t.

Finally I have to post a link to this song (Kate by Sambassadeur) I got from one of my Jokosher friend’s blog. It is from a Swedish band, free to download, and definitely worth checking out.

Adder Bug: Act Two

Wednesday, May 31st, 2006

In the first act Jono did an excellent job at tracking down, reporting and getting his bug in the adder fixed. This allowed Jokosher to stop and play more than once. Now prepare yourself for the continuation!

It was quite the puzzler. We could record audio, but not while something else was playing. So I decided to get my hands dirty and track it down. After looking through the neighbourhood, my prime suspect was the one with the history of problems: the adder. He is the best in the business at making non-linear pipelines, but sometimes things go wrong.

This time it was his pad. It wouldn’t remove itself when it was unlinked. Even worse was that there was no way to make him remove it. Time was running out. I had to put in a call to the Feds. Luckily they answered with a nice patch applied to CVS early this morning. Now we can remove all the pads we want to, no problem. The adder is under control. Laszlo saves the day once again.

Thanks to wtay in #gstreamer for fixing our problem so quickly, even though compilation problems prevented me from realizing it had been fixed until much later.

I have finally caved and actually got a dynamic bl…

Saturday, May 27th, 2006

I have finally caved and actually got a dynamic blog. This means I no longer get to hand-write all the HTML, but now everyone can post comments, and get RSS feeds. I can actually see if I have an audience, and get some feedback.