Categories
General blog entries

Converting sequential algorithms to parallel algorithms

Like I mentioned before, I started my thesis for my Computer Science degree. And without getting into too much detail at this point, one of the problems we are trying to tackle is the conversion from sequential programs to parallel programs.

The target architecture is not really of importance although we are stuffing it in a multi-core chip which is programmed into a Virtex 6 FPGA.

The thing that strikes me as odd is that an insane amount of work is being put into creating new applications for multi-core environments using tool-kits and various paradigms like tasks, task graphs, Khan Networks – whatever.

After years of development, the mainstream development tools come with tools to help the programmer to design multi-core programs without having to specify each and every thread and communication channels – a drawback which prevents most programmers to easily write parallel programs.

But most software these days is based on monolithic code meant to be running on a single core. Slowly parts are rewritten to exploit the surplus cores modern computers have but even then, most software scales poorly to more cores.

Since most ‘fixes’ involve a complete rewrite, this shift to actually write multi-threaded programs instead of having a hand full of manually designed partitions within a program to appear to be multi-core is finally beginning.

In a way, my research area is barely explored as I attempt to rewrite a decoder application to be converted from a single core program to something which can run on at least 8 cores… Hows that for multi-threading…

Categories
General blog entries

Radio silence

Visitors dwindling to my site, I decided it was time to write something again after 3 months. Its not that I stopped working with computers but rather that my attention moved from working with computers to studying Computer Science. Something that is hard to combine if you are making a dash to the finish line.

In other words: I am finishing my last courses in the coming days and will begin on my thesis. I haven’t decided yet if I will post things from my thesis yet (as extra content). Not so much because of the extra time but also because not everything is interesting and some information is classified – making other things inexplicable or incomplete if I were to post it online.

On to more important things: KDE 4.4 is about to hit the virtual shelves! Besides more polishing and some other features, it finally comes with a full blogging client (as part of the base system).

“What”, you say, “they fixed KBlogger?” Heck no, KBlogger is still dead as a door nail and as buggy as it has been forever. It seems that someone got the bright idea to actually replace KBlogger altogether with Bilbo – the tool I talked about before. One of the major issues Bilbo had, was that fact that nobody knew it. Personally, I think this comes from the name: Bilbo – as it is also the name from one of Tolkiens books. If you now think “Lord of the Rings”, you should be ashamed: Bilbo is part of the story *before* LOTR, he just happens to be alive in the epic story afterwards…

But I digress.

The fact remains that finding the program (even if you know that it exists) becomes hard because all search engines will refer you to hits about the wrong topic. Also, as you might imagine, some folks (*cough*copyright holders*cough*) might have issues with the naming. So it was renamed from Bilbo to Blogilo a while back and as such can now be part of the whole KDE experience. Hurray!

Next time I will probably explain about a project (formal model checker, based on the Promela language) I have been working on and the surprisingly bad hash functions I found on the internet…

Categories
General blog entries

VoIP providers

In my quest for VoIP support in the Netherlands I found a lot of providers. Most of them seem to be catering the consumer needs rather than the prosumer or even business needs. Most providers fall under one of 3 categories: consumer (“free” landline calls but usually not unlimited call time resulting in paid minutes after a certain time), prosumer (better defined call rates, subscriptions, professional level support) and corporate (meant for large businesses, lots of trunks, hosted PBX and so on).

Note that I omit the service providers that only provide services for their own customers. For example, Tele2 has a business oriented VoIP division but also provides VoIP telephony to their DSL customers.

Known ISPs with a VoIP service for their customers: KPN, Tele2, XS4all, @Home (Ziggo).

Note: the listing above is incomplete and based upon results I found in my search online.

Consumer

VoIP Goedkoop

This is a handy site containing links to multiple “free” VoIP providers. These are fine for consumer usage, normally are not suited for business usage (free equals no quality guarantee, no subscriptions) and usually do not come with DID services.

http://voipgoedkoop.nl/

VoIPBuster

As one of the more wide known service providers, VoIPBuster advertises with free calls. The “free” here is relative as not all destinations are actually free and for example land line calling in the Netherlands is “free” for a minute (they call that a “Superdeal”, a choice of words which is not reflected by their meaning), after which an unspecified fee is charged. Also, every 120 days, a user needs to reactivate their account by paying 10 Euros, which is converted into 10 Euros credit. Also, mobile numbers cost 25 cpm, which is twice as much as every other VoIP provider I found, not a bargain at all…

www.voipbuster.com

Prosumer

VoipQ

VoipQ supports subscriptions, clear call rates and supports DID services as well.

www.voipq.nl

SpeakUp

SpeakUp also provides subscriptions, DIDs and clear calling rates. The also offer hosted PBX or just trunk services.

www.speakup.nl

Voys Telecom

Supports VoIP subscriptions from one to multiple lines and everything that comes with it. Does not seem to be the cheapest provider but they seem to have a good reputation.

www.voys.nl

Corporate

KPN

KPN is the leading Dutch telecom company for decades. Slowly they start to move from POTS solutions to VoIP, for example for their DSL and fibre customers. For the corporate markt they only aim for the big players, as only the start fee is 2000 Euros at the time of writing and subscriptions are expressed in 3 digit monthly fees for the smallest packages. Great for huge corporations and call centers, but useless for everyone else.

http://zakelijk.kpn.com/business/voip.htm

Categories
General blog entries

Asterisk PBX ramblings

As I am playing with AsteriskNow in a virtual machine to see how I can extend our current PBX (old, analogue, missing lots of options and has zero flexibility) to use the power of a virtual PBX and all its options.

First off I want to explain some terms, you will find these plastered over guides and they confused me as first. This is what I distilled from all that.

VoIP – Voice over IP, internet telephony. Everyone is talking about it and while the name is accurate (you send voice or phone data over a switched IP network, the internet or LAN), it does not describe how this is done. Most people assume VoIP is a technology on its own, it is not.
SIP – SIP stands for Session Initiation Protocol. This is an actual implementation of VoIP. Although SIP has a lot of advanced features (deterring new users to dive in and understanding how it works, like it did me), most people will only use a very, very small subset. See below for more information.
FXO – Foreign eXchange Office, in a nutshell this is an adapter to hook up to a phone line or PTSN (it acts as a client on a line).
FXS – Foreign eXchange Station, this is an (internal) line used to run to a phone or fax machine. The FXS port powers the line, enabling phones to function as well as provide the dial tone and ringing features.
PTSN – Public Switched Telephone Network, this means a phone line. Either a line to a PBX or to the outside world. Also called a trunk.
POTS – Plain Old Telephone System, the old analogue phone system as we know it. The counterpart of this is of course VoIP.
Trunk – A trunk is a phone line, usually only used to denote lines to the outside world. These days a SIP account allowing you to call to the outside world is called a trunk (as it has the same usage as the old physical lines that were connected to a PBX).
DID – Direct Inward Dialling usually denotes the service that connects the POTS telephony system to the digital world of the internet. In other words, it allows you to have a normal phone number which is converted into a VoIP number, which in turn can be hooked up to a VoIP phone or PBX. Usually this is nothing more than a SIP account at a service provider, making usage pretty simple.
Presence – SIP Presence is a technique where a phone tells the PBX it would like to monitor a certain extension or trunk. Normally this is used to light up LEDs on the phone if an extension or trunk is busy. Asterisk has full support for this but most entry-level phones do not sport this feature (more expensive phones targeted for corporate usage have this).

The biggest downside to the VOIP hype is the confusion that it creates in its wake. Like I said, everyone has heard of the phrase internet telephony and most know the term VoIP. Most people there for buy products with big labels on them, marking them as “VoIP phones” and such. The problem is that not always all products work together.

The upside is that most systems fully support SIP which in turn is pretty much a global standard. SIP works by connecting a client to a server, where the client is usually the phone and the server usually is a PBX. The phones are full computer systems on their own, working on the LAN most offices already use. After a phone registered itself with the server using its name and password (a SIP account), the server can reach the phone and vice versa when needed.

When the user picks up the horn and starts dialing, the phone generates a fake dial tone (there is no dial tone as this is a digital system) and waits for the user to start pressing buttons. Every status change (pick up, press number etc) is passed to the server/PBX and is processed to determine who the user is attempting to call. The PBX will then forward the call to another extension or to a trunk and the sound data is transmitted between caller and callee as soon as the connection is complete.

The reverse also holds. After the extension is registered at the server, the PBX can let it ring and after the user picks up the horn, the audio connection is made in order to complete the calling sequence.

So far, this is a simple client-server setup and the only choices one has to make is to determine which audio compression is chosen. The rule of thumb here is that better audio quality comes at a higher bandwidth cost. Most PBX-es like Asterisk convert audio codecs on the fly if for example the remote SIP trunk not supports a certain encoding.

Finally there is the option to call directly to a SIP server or PBX. For example, you hook up your server to the DNS name sip.myoffice.com. This has to be a valid domain and accessible from the outside world. You then open port 5060 for protocol UDP (very important, this is NOT the same as TCP!) on your outside firewall or server and connect that to the virtual PBX. This allows telephones to register themselves from remote locations such as home or a 2nd office but also allows you to call straight into the office.

The details of this I still have to work out (I’ll update this article as I go) but it comes down to this: the caller calls 1234@sip.myoffice.com. His PBX will know that it has to connect to sip.myoffice.com on port 5060 and ask the PBX at that address to ring up number 1234. The office PBX recognises that the incoming call request is not from a registered internal extension and determines how the call should be handled. If all goes well, the right trunk will be activated which in turn will ring the extensions you have linked to that line. This way, the POTS system is not used at all, and as another benefit, the call is absolutely free as only the internet is used.

I hope this helps others out there to determine which hardware they should buy and how most things fit together. Most devices marketed as “VoIP adapters” are not quite accurate labelled as they normally have a small SIP server (making it in fact a mini-PBX) and one or more FXS and FXO ports. The type of ports restrict you to their usage and it is very important to decide what you need. If you want to hook up a number of old telephones you need FXS ports, if you want to connect your physical telephone line to your virtual PBX, you need an FXO port.

In another article I will continue my findings as I just ordered some VoIP hardware to start experimenting with it.

Categories
General blog entries

Upgrading Windows 7 RC1 Ultimate to Windows 7 Professional RTM

Of course you can upgrade RC1 to RTM for Windows 7, except when you are running different versions of Windows…. but of course…

After browsing a bit I figured out that the switching between Windows 7 versions can only go in one direction: up. So when I installed Windows 7 RC 1 to replace my broken Windows Vista installation, I didn’t know which version I would get when the RTM was released so I did what everyone did: install Ultimate.

Fast forward 6 months and I am starting to miss the fixed features from the final version which us poor testers will not receive unless we go for the full monty and get the paid version.

So here I am, downloading all my programs and drivers again, hoping I am not forgetting a key component and just finishing my system backup in case things don’t work out as planned…

On a side note: I am doing this on a Dell XPS M1530 which came with a 32-bit version of Home Premium and which does not officially support Windows 7 (32 or 64-bit). Unofficially, everything works like a charm on Windows 7 RC 1 (build 7100) including the webcam, fingerprint scanner and the Intel 4950AGN card. I will report if the reinstallation to the final version went as flawless as the original installation.

Categories
General blog entries

HTC Magic and Android 1.5: epic fail…

After following the news around Google Android 1.0, I decided to wait for the next generation of phones so the small problems would be ironed out. Besides, the HTC Dream or G1 had some small disadvantages – for example the short battery life and the ugly design.

After the release of Cupcake (Google Android 1.5), HTC quickly announced the release date for their 2nd generation Android phone: the HTC Magic which would be sold by Vodafone in June 2009 (in the Netherlands). I was pleasantly surprised that I got an email from a webshop telling me they are now selling the HTC Magic, even without a subscription!

After toiling about it for 2 days I decided to give in and order my first Android phone. The next day it arrived and after taking care to open the box without damaging anything (so it could be returned if needed) I ran into the first bump on the road: it is locked to Vodafone.

A quick call to the shop I ordered it from didn’t help either: “…but it is obvious that it is locked to Vodafone, the brand is stamped on it!”. Apparently, making it possible to order without a subscription is not a hint that it can be used with any sim card. But I even called them before placing an order and the bloke that ‘helped’ me did not seem to find it worth mentioning that if I asked if it was sim locked (which it wasn’t) I probably would not want to know that it was provider locked instead…

After borrowing a Vodafone sim card I finally managed to start the phone and the first thing I tried was testing if the Bluetooth voice-dial and file transfer were fixed. File transfer did not work but I can live with that.

Next came the voice dial: I paired the phone to my car kit and pressed the button. The car kit showed “No voicedial” and broke the connection. So my new shiny, 400 euro costing phone that can play music over Bluetooth with a press of a button can’t voice-dial anybody…

After searching on the internet, it became obvious that the current voice dialer in Android 1.5 is cripple (it requires interaction with the screen) making actual voice dialing (while in a car for example) impossible. So Vodafone just stripped it out completely…

Needless to say, I called the shop where I bought it, explained why I did not want the phone any more and sent it back the next day by mail.

Shame on you Google for not even supporting basic Bluetooth features in the ‘big’ update for Android and shame on you Vodafone/HTC for not clearly pointing out that the would-be ‘iPhone killer’ is in fact crippled…

Categories
General blog entries

Bilbo, the new blogging program for KDE4

The experimental ebuild for Gentoo worked like a charm: I am typing this on Bilbo. The editor seems to Just Work ™, the previews are functioning (both rich text and the website preview) and the account creation worked out of the box.

The only thing that took some time to figure out is the fact that the auto-config option did not configure my site. In fact it started looking for a xmlrpc.php file to talk to, which results in a 404 as Joomla! does not have a file but rather a folder with that name. So after setting it to the correct location and switching to the metaWeblog API in the Advanced settings I hit ‘Fetch blog ID’ and voila, we are up and running.

Well, kind of: the plugin I use to provide the blog API on the site is incomplete. I have been tweaking it for months now, adding missing functions as I went. So when I wanted to select a category, I got an error stating that the XMLRPC function was not found.

After enabling the debug info on my server, I saw that Bilbo tried to access metaWeblog.getCategories – which is unimplemented in the original version of the plugin. So after adding the missing function, everything came to live and here we are…

Now if you excuse me, I have a virtual machine to dispose of as I can retire Windows Live Writer now ^^

Categories
General blog entries

Power Consumption

Because now and then I wind up in a discussion about power consumption of random electronics I decided to measure the power needs of some random appliances around the house. These are the results:

  On / Powered Standby / Sleep
19” CRT monitor 85W 0W
17” CRT monitor 37W 1W
@Home Digital Cable Decoder 6W 6W
CRT TV 59cm (23”) 60W 6W
LCD TV 26” (66cm) 112W 1W

Please note that these are just an indication, a similar device you own might have different power needs but this gives you an idea at least. Also the TV’s I measured are relatively old (CRT, 15 years, the LCD 7 years) and modern LCD TV’s use less power but are bigger (so the Watts per inch are lower but the total power usage is larger).

Categories
General blog entries

Autoupdate for Joomla 1.5.x

One of the annoying things about Joomla sites it the fact you have to manually upload any update for the system. The result is painfully obvious: uncountable websites running unsafe installations because nobody feels the urge to upgrade (unless stuff goes wrong ofcourse).

It seems that Joomla 1.6 is getting auto-update support which means that updating a website is a mere press of a button. It looks like they wan’t to make it even fancies to allow plugins and components to check for updates to be sure that you are running the latest version of everything.

For those who can’t wait for fancy features like that by the end of 2009, you can get Advanced Tools for 1.5 now. This component has some cool tools but the real candy here is the Updater which auto-updates Joomla itself .

Note that you need to have write access to your entire Joomla site for this to work or you could use a small script to temporarily change ownership.

Categories
General blog entries

KBlogger moved to KDE 4.3

And yet another epic fail for KBlogger, the new blogging tool that was supposed to be in KDE 4.0. After KDE-PIM was not ready for the 4.0 launch, it was postponed to KDE 4.1 – understandable but as anyone running a blog and a PC using KDE4 knows, we don’t have any decent blogging tool on linux.

After an early alpha (which was a step in the right direction) is became very quiet around KBlogger. So when KDE 4.1 was released I was surprised to see the lack of info about the new blogging tool.

When I found KBlogger on the KDE 4.2 release schedule I sighed – another half year to wait on a decent replacement for Windows Live Writer (which is still – in my opinion – one of the best blogging tool out there, even when used in VirtualBox).

Now, at the dawn of 2009 and the coming of KDE 4.2 I found it weird that the beta of 4.2 lacked a preview of KBlogger.

I just found these mail conversations on the KDE mailing list pushing KBlogger to KDE 4.3…. which is supposed to come out end 2009. Once again a huge let down for the KDE fans.

Despite the statements that KDE 4 is feature complete it keeps lacking vital programs: KDE PIM has a screwed up Kitchsync support (which in itself is half broken if you ask me), power management just arrived in 4.2 (Powerdevil) and KBlogger is still not here (even though its core component KBlog – a WYSIWYG editor – is working pretty well for some time now). I am still using KDE 4.x but so far the thrill has become quiet the waiting game. Yay for open source I suppose…