Charl van Niekerk » Blog

Main

Latest

Archives

Powered by Blogger

ISDSL Stats

I needed a little script just to get the current month's use of my ISDSL account. This is far from a proper script but at least it's a start.

<?php
if (isset($_REQUEST['username']) && isset($_REQUEST['password']) && $_REQUEST['username'] && $_REQUEST['password']) {
  $curl = curl_init();
  curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($curl, CURLOPT_COOKIEJAR, 'cookie.txt');
  curl_setopt($curl, CURLOPT_COOKIEFILE, 'cookie.txt');
  curl_setopt($curl, CURLOPT_URL, 'http://users.isdsl.net/index.php?action=login');
  curl_setopt($curl, CURLOPT_POSTFIELDS, 'UserName=' . urlencode($_REQUEST['username']) . '&Password=' . urlencode($_REQUEST['password']));
  curl_exec($curl);
  curl_setopt($curl, CURLOPT_URL, 'http://users.isdsl.net/loginhistoryuid.php');
  $return = curl_exec($curl);
  curl_close($curl);
  preg_match_all("#<td>[0-9\.]+</td>#i", $return, $r);
  echo trim($r[0][count($r[0])-1], '<>td/');
} else {
  ?>
    <form method="post">
      <p>Username: <input type="text" name="username"></p>
      <p>Password: <input type="password" name="password"></p>
      <p><input type="submit" value="Login"></p>
    </form>
  <?php
}

Twitter Pwned Again

Screenshot of Twitter getting pwned

By now probably everybody at least heard about the various troubles that Twitter is currently experiencing. Actually this has been going on for a really long time but they generally do not seem to be making a solution; if they are then at least we're not seeing it.

I strongly believe that solutions that take off on this kind of scale should be as distributed as the web itself. The guys from Twitter should not be sitting back and blaming their own platform. They are just suffering the very typical issues of massive world-wide adoption. Their fault is not in their servers, their fault has been there right from the start: in their initial conception.

Just imagine all the e-mails of the world going through one server. They would have been much worse off than Twitter, I'm sure!

Microblogging should be just as distributed as blogging is currently. And standards can make it happen.

Jabber ID Change

Yes I know, I have been stuffing around a lot between different Jabber servers over the last few years. I had accounts on jabber.org, jabber.obsidian.co.za, muti.mobi, jabber.co.za, etc. There were also some other ones I used privately but let's not even go there. Then there was also charlvn@charlvn.za.net although that was actually Google Talk and I never set up Jabber federation properly due to my limited DNS provider.

I was mainly using jabber.co.za for the last few months. To my knowledge, it's the only remaining public Jabber server hosted in South Africa. Although it's generally pretty fast and reliable in comparison to most public overseas servers, I have been getting a little frustrated due to high latency between jabber.co.za and overseas servers during (local) daytime hours (after hours it seems to be much better).

There also seems to be some problems with communication to many other servers (including Google Talk), particularly concerning status changes of my contacts that are not being reflected in my roster. I know some people that run their own Jabber servers that claim that they are discovering many errors generated during communication between their servers and jabber.co.za but I do not have the specifics.

Don't get me wrong, I don't want to bash jabber.co.za at all, I think it's fantastic that they are running a public Jabber server on the South African internet backbone as I'm sure it's not a cheap affair and I'm also sure they have to deal with lots of abuse. Personally however I use Jabber on a daily basis for important business and personal needs so I had to move to a more reliable solution.

Because I believe in keeping local things local (no point in sending messages overseas just to have them go back into the country) for speed, bandwidth efficiency and reliability, I have been sticking around for quite a while until I get a better alternative. I also need something I can use even while I'm on a local-only ADSL account.

However finally I managed to get my act together and sort things out. I am now once again shifting to another Jabber server. This is a closed server (not open for public registration unfortunately, or at least not yet) and it's the main one I'll be using from off onwards into the foreseeable future. It's on very reliable local hosting and so far it's been super-fast.

My new full Jabber ID is:

charlvn@jabber.cojjo.co.za

If you added my new JID to your roster but your server is reporting any problems connecting to my server or if you experience any other problems related to me please let me know and I'll look into it as soon as possible. Also, this is supposed to work from "federated" networks (not sure if that's the right term) such as Google Talk as well... (I actually already have two Google Talk contacts and am experiencing no problems whatsoever communicating with them.)

charlvn.za.net downtime

Due to a technical error outside of my control, PHP was temporarily disabled on my main site for almost a day. I had it temporarily redirect to this blog but luckily we managed to resolve the issues and now everything is working again as usual. Not like I think many people go to that site or many people would have cared but if it did cause any inconvenience for anybody my apologies. I discovered it yesterday evening but unfortunately it was not under my own control to resolve so I just had to wait it out. :)

Neotel NeoConnect Price Comparison

Today I checked out the Neotel NeoConnect comparison. I have mixed feelings once again.

They are comparing the NeoConnect Prime 2.5 GB package against a Telkom package which includes 3 GB of traffic and a 4 Mbps line. You can't really compare the two, there are just too many variables.

The 4 Mbps line is (supposed to be) significantly faster than the Neotel wireless connection, however on ADSL (officially) I think you have a contention ratio of something like 1:50 while I understand NeoConnect to be unshaped. As most ADSL users will know, at times when they are stuffing around with the connection you might get speeds lower than 2 KBps on a 4 Mbps ADSL line (or at least, that has been our experience in George a few months back).

On the other side, often you can download at speeds over 400 KBps on a 4 Mbps line when the connection is good. Neotel is using wireless for the last-mile connection and we all know that wireless is also rather unreliable, especially in damp climates such as George. Most users of WISPs over here complain bitterly about the instability of their connections. Neotel might or might not suffer from the same issues, only time will tell.

The 4 Mbps line option might seem very expensive in comparison to Neotel but remember that you can also get a 384 Kbps ADSL connection which is much cheaper and more in line with Neotel. What's the point of having lots of bandwidth if you have a really restrictive traffic cap?

However, if Neotel can give you an unshaped reliable connection at the same price plus some other benefits then they do indeed look much more attractive.

However let's look at another aspect. Even Telkom is now giving local-only bandwidth. What is Neotel's position on this? What are they going to be offering us? Local bandwidth is a huge issue for me as I do most of my traffic locally. What will their peering be with other ISPs? Our surrounding countries?

I actually laugh at iBurst's out of bundle rates. Who do they think they are kidding??? :D

Eskom? No, the stove!

On Sunday the power in our house went down all of a sudden just past 12:00. We immediately assumed it was Eskom that was load shedding us. I went back to bed as I was still really tired and my mom went to read in her books.

About three or so hours later, I woke up. For some reason I just had the feeling I should check our electrical switch board in the passage. I did and guess what! Our earth leakage switch tripped and it cut power to our whole house.

Soon afterwards, it tripped again. The cause was kind-of strange. We have a stove with four plates. The stove is one of these big thermofan jobs but it's starting to rust a bit as it's getting old and we don't use most of it very often. We do use the two left plates (for some reason just the two left ones) rather often though for cooking. However, on that day my mom was already busy cooking stuff on the two left plates and I needed to use another plate so I used the right-back plate.

After some experimenting we discovered that this was indeed causing the problem. This right-back plate must have rusted or the wires oxidised or something as it was causing the earth leakage switch to trip every time we switch it on. It used to work fine a few years ago but oh well things change. :)

Good thing for trip switches otherwise we could have been electrocuted!

However we all found it quite funny that we immediately blamed Eskom. If this happened a few years ago, we would immediately check the switch board but these days we just assume we are on the receiving end of load shedding.

Back in George!

Photo taken at George Airport in South Africa

Yes I am again available on my standard South African number and back in the green city. Although, I have to admit, Gaborone is also pretty green now!

The photo above I didn't take today, I actually took it last time just after I got out of the plane at the airport. It didn't come out too nicely on the photo but in real life it was just absolutely fantastic.

Another thing I really enjoy is a cappuccino at The Raj at the Johannesburg International airport. In my opinion they have the best cappuccinos in the country:

Cappuccino at The Raj in Johannesburg

Another great cappuccino is in George at the Hungry Camel:

Cappuccino at the Hungry Camel in George

@media 2008

In a few days @media 2008 will start in London.

While there are many pathetic bastards like me that will not be able to attend, there are some awesome speakers and presentations. I'm particularly excited about the HTML5 presentation by Lachlan Hunt and James Graham.

However, we pathetic bastards really want to see some videos of the presentations! It doesn't seem like they released videos on the web last year (unless I missed something). Please guys, pretty please do it this year!!!

Finally charlvn.za.net gets updated

When it comes to my charlvn.za.net site it's much like a plumber's pipes that are leaking. For a web developer my own site does suck pretty hard.

I didn't really make any updates for close to a year. However, finally I managed to get around to do some work on it. A redesign is also in the pipe but that's up next, first I wanted to get some of the content sorted out.

For quite some time now I wanted to make a site that is like my own little personal social networking platform. This is essentially the (very basic) start of that.

I am currently just syndicating some feeds onto the home page and removed a lot of old outdated crap. The contact page also got updated as I don't use Skype, MSN or Google Talk frequently anymore. And of course my Jabber username long changed.

Expect many more changes in the near future as we keep evolving the distributed social networking technologies.

And please, if you come to me and cry why it looks like shit in a retarded rendering engine like Microsoft's MSHTML (used in IE), please make yourself ready to receive the finger. If you want to use shit, you have to put up with shit. Period. :)

Clickpass

Yes we have too many passwords to remember. It's a global problem. I am lost without a working password recovery function.

Essentially any frequent web user needs a single sign-on system like OpenID. However, not many sites currently support it.

A while back I saw a short piece of a video about Clickpass on hackertv and thought I should check it out.

Essentially they are building on top of OpenID technology to help sites integrate a single sign-on system on their website. They already have a few sites covered but not too many yet unfortunately. However, if you want to join their network, there is plenty of developer documentation available.

Although this is pretty cool, it seems like they are building a proprietary layer on top of OpenID. Being a massive fan of distributed web applications and open standards, this does not really appeal to me personally. However, an interesting project worth a mention indeed.

Locify: Mobile Twitter Location

I have been using TwitterWhere every now and then for the past few months. I like the fact that they are using OpenID (although I'm not entirely sure why they even need a login) and of course if you don't have an OpenID account but you do have a Twitter account you can use twauth.

TwitterWhere is mainly for use on a normal desktop computer but there is a new startup called Locify which is an application for your mobile phone. It integrates with your phone's GPS functionality (if you're lucky enough to have that).

Best of all is that they even have an API so that you can develop third-party applications with it.

I wonder if they support triangulation for phones without GPS support... I asked already on the Twitter Development Talk mailing list so let's see if I get a response...

Muti Related v1 Launched

Tonight the first version of Muti Related was launched.

At the moment it is still really basic. Essentially it makes use of the Zemanta API to get related content on all the links on the Muti hot list.

Unfortunately it is not too accurate as the text we are providing it is only the actual link titles which means there isn't much for it to work with. However under the circumstances I think it's doing a pretty impressive job!

We have lots of improvements planned for this and probably a bit better integration with the main Muti site. At the moment this is really still very experimental (pre-Alpha) so please excuse if you are experiencing any problems with the site. Over the next few months we will be evolving this into quite a nice setup so in the meantime please see this as a "technology preview". :)

Also, note that we do not want to put excessive strain on the Zemanta API so we are only updating this page once every few hours.

Zemanta

Zemanta is a semantic web startup focusing on related content. In other words, you can give it some text and it will search for news articles, wikipedia articles and tag words that best matches the given content.

They already have support for some of the most popular blog platforms out there. In other words, at the bottom of your blog posts you can have links to enable users to easily read up more about what you were just blogging about.

The best thing for me is that if you have a custom content management system that you would like to integrate Zemanta with, there is also an API (currently in private testing).

So far it's working pretty well and they are improving all the time with some really great stuff in the pipeline. Certainly a startup worth watching in my opinion!!!

Hey, I'm also a CEO!

I spotted a new trend recently around the South African interwebs when people write short bio's (of themselves, even). It's probably not that new but it's the first time that I really notice it.

In earlier times, people would have been very proud to call themselves "entrepreneurs"; these days, if you own your own company, you call yourself a "CEO". So what if you're the only person in the company and you don't actually manage anybody else than yourself...

Also, in previous years, if you were the person writing the software, you were just a "developer". You would have been very proud if the "CEO" introduces you as a "software engineer". These days, you have been "upgraded" to a "CTO", even though you might be the only person in the entire company that has the faintest idea of how anything technical works.

Technically speaking, due to the way I work, I'm registered with the tax office as a company, even though I've got no further employees. Does that now make me a CEO as well?

As a matter of fact, this also makes me the CTO as well as the CFO. Hey, the titles are heaping up! I must be one important mofo!!

It's like the maid that just became the domestic manageress.

Bling, bling! Pimping up the job titles, I say!

Muti Mobile v2 Launched

This is actually a little old already but I didn't get around to much blogging the last week.

We launched Muti Mobile version 2 last week; the new version includes tagging and the top list. All of the changes are still open source so if you want to contribute, by all means, please do! You can also download the source code and make your own mobile site if you like.

For the next version, we are planning the active list together with pagination. Watch this space. :)

Xenophobia? No!

Mike Stopforth's post SA Bloggers, Let’s Do Something really got me thinking this morning.

The horror of the last few day’s xenophobic violence in Johannesburg has left us all feeling shocked and hopeless. The danger here is that it’s very easy for us (and I’m speaking to the predominantly wealthy and white audience that reads this blog and makes up SA’s blogging fraternity) to remove ourselves from the situation because we think it doesn’t impact us directly.

It’s not us white folks who are being looted, kicked out of our homes and being burnt alive. We live in absolute comfort while next door in Alexandra a war is breaking out. We say things like, “shame, poor foreigners”, but we’re very good at feeling pity and very bad at acting. And I’m the worst of the lot. Then this morning one of my colleagues, Lisa, looked up from her Mac and said to us, “we must do something”. I heard two voices in my head instantly. Fortunately, I’m listening to the positive one.

All I can say is, "Guys, wake up!!!"

Let's sit down and think about this for a second. Why are these attacks happening? Is this because of xenophobia? I don't think so. As it has been mentioned many times in the media, the attacks are happening due to economic reasons. The locals feel like the foreigners are taking away their jobs. Would this have happened if the locals were economically well off? I doubt it strongly.

In other words, in my opinion this has absolutely nothing to do with nationality, tribe, race, etc. This has everything to do with poverty.

This whole situation is cause for great concern not just amoung white people, but also brown people, people coming from an indian or chinese background, and all the other minority groups too. As a matter of fact, even middle-to-upper class black people need to be concerned.

When people are that poor, they have (virtually) nothing, which also means they have nothing to lose. That is the bottom line. All too quickly for them this would turn into an "us versus them" situation, and the foreigners are first in the firing line. However, what happens after that? They will remain poor. Next up it's the local minority groups and then eventually the remaining middle-to-upper class.

"Look, they are living better than us, this must be because they are abusing us!"

That statement might look ridiculous to most of the people reading this blog but place yourself in that situation for a second. You did not have the privilege of an education. You do not understand the economic system. You are living in a day-to-day struggle to survive. Would you really think so much differently?

We better do something before it's too late. Or is it already???

Google AppEngine Invite

This morning I received a Google AppEngine invite. However, when I went to sign up, they told me I'm still on the waiting list. Should I contact Google support?

Here's the proof:

Screenshot of the Google AppEngine invite

Screenshot of the Google AppEngine site

Now I got all excited for nothing. :(

Voice Interfaces?

The latest thing seems to be SNoV. Yes, Social Networking over Voice!

I read an article this morning on TC Blabnote: The Voice-Only Social Network. Say What?. Basically it uses voice recognition software to allow you to do your social networking.

This is a concept that could work very well in Africa (with mobiles as such an important medium). People that don't have PCs and that don't like spending hours giving their thumbs an extreme workout can simply make a phone call. The only problem is that phone network capacity is rapidly becoming a problem as well as the ridiculously high costs to make a phone call in many African countries.

However, the possibilities are immense. First we have our web interfaces. Now rapidly more and more South African social sites are getting mobile interfaces. Next step would naturally be to look into a "voice interface". If one can create generic software for voice interfaces and use voice recognition engines that understand South African accents then we could do a lot in this space.

Just some random Saturday afternoon thoughts...

Nokia, Flickr and Standards

This is probably quite old but something I seem to have missed. While I was reading a booklet the other day I found that Flickr and Nokia have joined forces. You can now take pictures with your Nokia NSeries phone and upload those directly to Flickr. Very cool!

However, I assume the usual 200 photo limit still applies on a free Flickr account. That sucks bigtime. I think we should have a standardised photo upload API that anybody can implement both server-side and client-side. For example, Wordpress could support this so that you can publish pictures straight to your (photo)blog.

Any thoughts?

Tech Leader and Blog Planets

This morning I found out about Tech Leader after a post on Muti. At first I was very excited but unfortunately ended up being somewhat disappointed at the end.

Initially I had the false impression that it might be something like the CLUG Park (which, if time allows, I follow daily). There you will find the writings of some of the brightest tech minds in the country come together on one page which is really awesome.

Although there are a few good tech bloggers on the Tech Leader contributor list, for example Stii, most of the people there seem to be much more into the business / marketing side of ICT than the actual technology itself.

Although it's cool to be able to see the inputs of the "other" side of the ICT industry, I would see this much more as a "ICT Business Leader" than as a "Tech Leader". Nothing wrong with it therefore; maybe the name just led my mind into the wrong direction.

However, this did give me an idea. Although planetplanet.org is a pretty cool piece of software, I would like to see support for tag clouds and more search/filtering options. Basically, planetplanet just generates static files but I'm thinking about a dynamic blog planet engine.

I just really don't have much time right now but as soon as I get some time again then I'll see if I can start with something. Hopefully we can make something similar to Tech Leader but just for technologists.

Petrol Slip Fraud?

I just received this e-mail yesterday from Toni Gozza. Normally I don't bother much with scare mails but this one caught my attention.

ALWAYS ask for a cash slip when filling up your vehicle's tank , even if paying with cash and even if you intend on throwing the slip away, because....

  • The pump attendants take these unclaimed cash slips from the cash register attendant and sell these same cash slips to taxi drivers
  • The taxi drivers then add these cash slips to their own and so claim a bigger subsidy amount from government, thereby not feeling the pinch of the fuel increases.

Send this to everyone on your address list... to prevent this corruption going on and the rest of us (non-subsidized drivers) suffers in silence.

You probably didn't even know that fuel for Taxi's is subsidized, which we pay for.

Thanks again to the South African government for screwing it's tax paying citizens while thieves and liars continue being subsidized

Wow this is really shocking but not surprising at all. I guess these slips can also be used for tax fraud - claiming back tax money for "business expenses". Really horrible, and we are paying.

If the government is indeed subsidising petrol money though then I'm not happy about that at all. That is really not good. Firstly, many taxi drivers in South Africa drive like hooligans (I'm not generalising, there are some that I'm sure drive good as well) and now their petrol is getting paid for. And beyond that they are scamming the government too? Bah!

I think the government should rather invest more money into good public transport like larger buses (with proper drivers) and trains.

Ubuntu Hardy Updates

Screenshot of pimped gnome-terminal on Ubuntu Hardy

A few days ago I was running updates for the first time on my new Ubuntu Hardy system. Actually this is not the first time I was running updates but the first time there was actually updates to install.

After the updates and even a full system restart (not normally required on Linux but I wanted to be sure), the issue with the login window manager crashing my system (ok it doesn't actually "crash" my system but the hard drive light keeps going on and off) has still not been resolved. Be that as it may, I just couldn't help thinking that this system is really really sexy.

Basically, my PC case is black, my keyboard is black, my mouse is black, the casing of my screen is black, and my theme (the ubuntustudio-look) is also black.

No, all this black is not because I'm trying to be politically correct. This is just because it looks so damn sexy. Back in the days all the PC equipment was typically white (yes, even well after apartheid ended). People got bored of it quite clearly and then started to play with the grays (or "silvers") and now black.

Then in addition I have gnome-terminal running on top of it with a yellow-green front colour and semi-transparency in the back. Holy shit this looks good! Now I really feel like a code hacker...

Only question I have now is when will this semi-transparency also work properly on top of other windows etc. At the moment it's just semi-transparent on top of the background. KDE had proper semi-transparency now for a long time so I don't know why Gnome is falling behind, although maybe it's just me that doing things wrong. Maybe I should give the fancy 3D environments a try as well.

Temporary cell number change

In case anybody is looking for me urgently, I'm currently out of the country and am reachable on the following phone number:

+267 7457 5943

That is of course unless I'm in a meeting etc. but I should be available a lot of the time. Otherwise just send an SMS and I'll get back to you as soon as I can.

Hackontest

From About Hackontest:

Hackontest is a 24 hour programming competition between teams of three open source software projects. The event takes place at OpenExpo on September 24/25, 2008 in Zurich, Switzerland. What are the goals of Hackontest?

The idea of the Hackontest event is three-fold:

  • First of all, hackers (=smart programmers) of open source projects meet physically during 24h and enhance their software with a certain feature. Thus their Free Software project gets improved in terms of code and the developers have a fun time meeting in one place and competing for some nice prizes.
  • Second, users of open source software get the opportunity to file features they've missed in their favorite applications and operating systems. Therefore, during the selection process everyone who registers may file feature requests and others may vote and comment on them.
  • And third, visitors of the Hackontest event get the chance to see the commitment and team work with which open source software is created. Like this, the public becomes more aware of the creative processes and the power of collaborative effort by international open source communities.

Very interesting! Sounds quite exciting.

Facebook Profile Clutter Update

A while back I posted about syndicated content on Facebook. The discussion was largely around profile clutter and as we've known for a while Facebook is busy trying to turn the situation around. Just now, I read a post Facebook Redesign: Are Developers Ready? where this was mentioned:

Profile Boxes: Existing wide and narrow profile boxes will now appear on a new Boxes tab that every user can enable/disable on their profile. In addition, Facebook is supporting a new profile box type that can appear on the left-hand side of the user’s profile across the Feed, Wall, and Info tabs.

This sounds to me like something similar to what I had in mind, although not entirely. Basically I want a separate page for syndicated stuff that is entirely separated from the Facebook profile, so that profile pages can be focused on profile data. There could therefore be separate syndication boxes and profile boxes. However, this sounds like it will already make huge improvements.

Muti Mobile and Muti Code Launched

The first version of the new Muti Mobile site just went live. At the moment, it just allows you basic "read-only" functionality to view the hot and new lists as well as the latest submissions from a particular user. Soon we'll add more functionality such as tags, active and top lists, pagination, etc and then the next step is to allow you to be able to log in, vote, comment, etc too.

The other thing we're launching simultaneously is Muti Code. Basically this is a repository of open source (GPL 2.0 licensed) code that can plug into Muti's various APIs. This is to demo the actual use of the APIs and might serve as a starting point for your own mashups.

This is only the start of a new phase of development so please be careful when using the current API URLs as they are subject to change. We will let you know as soon as possible when things stabilise but please feel free to experiment so long and let us know what you manage to come up with! :)

Neotel: My Views

NeoConnect Prime seems to be a pretty good deal for high-end users but NeoConnect Lite actually seems to be more expensive than ADSL.

Personally, I don't really care about either. I'm much more interested with what we can do with Neotel's national fibre backbone. Neotel installed massive amounts of fibre in George; it's almost shocking how many streets have Neotel manholes running along them. I can all but fantasise at this point of time what we can do with that.

I accept that, in the short term, as far as international access is concerned we're buggered. South Africa is physically separated from first world and Asian countries where bandwidth is flowing in rivers. Over here, we are used to nothing more than a trickle. That we are physically separated is not an excuse, especially not since our government is effectively blocking overseas companies from connecting us in favour of local initiatives that don't even seem to get anywhere.

However, that does not mean we should not be using our local bandwidth as well as possible. Most hosting companies in South Africa don't separate local and international bandwidth costs. Most South Africans tend to host overseas because of the ridiculous bandwidth prices locally. Hosting a site overseas that is mainly of interest to people overseas actually makes some sense but hosting a site that is mainly of local interest actually worsens the bandwidth situation as now locals have to use international links to access the site.

The bottom line is that the best we can do in the short term is to host as much as possible locally; if the overseas interest is good then we will have to mirror.

The start for me to this is Neotel's local backbone. Basically I want servers standing in a data centre that connects right up to Neotel's backbone and allows me to stream high-bandwidth content over their network, cheaply. This is to my benefit as I have an easy, cheap way of distributing my content. It also helps Neotel because if I have good content it adds value to their service, so we all win.

What I really would like to see from Neotel's consumer offerings though is separation of local and international bandwidth, straight from the first day of the month. In other words, let's say you have a 10 GB international cap, you could maybe get a 200 GB local cap. If you download 5 GB locally on the first day of the month, this should count against your 200 GB local cap, not your international cap.

So, Neotel, what do you say? :)

New Muti XML Feeds

We recently implemented a new feature in muti that allows you to pull a rich XML feed for many of the pages containing links. For example:

This is very similar to the RSS feeds, but it differs in that it's really simple, minimal and rich in the way it allows you access to votes (for example) as a separate element.

If you have any feedback please let us know!

NeoConnect Lite

I'm not really so sure about this deal. From NeoConnect Lite prices emerge:

The NeoConnect 2G offering – providing consumers with 2 GB of data usage at speeds of up to 156 Kbps, 500 free on-net voice minutes, 25 free on-net SMSs and the device – costs R299.00 per month.

From Web Africa's bundled ADSL Complete packages I can get 384 Kbps and a 2 GB cap for R279 per month.

The "on-net voice minutes" - does this mean VoIP? Surely that should be free and unlimited (obviously counting towards your data cap but that should be it)? Otherwise I'll just run my own SIP/Asterisk server. 25 free "on-net" SMSes - Vodacom gives me 20 a day (which equals 600 a month roughly).

I'll rather stick to my current ADSL line for the moment.

SDSN Contacts

Probably one of the most basic things of social networking is that everybody has a contact (or "friends") list.

In the spirit of keeping things simple, I propose the following format. My SDSN contact list would be located at http://charlvn.za.net/sdsn/contacts and might look something like this:

<?xml version="1.0" encoding="UTF-8"?>
<contacts xmlns="http://charlvn.za.net/2008/sdsn-contacts">
  <contact>john.example.org</contact>
  <contact>piet.example.org</contact>
  <contact>sarah.example.org</contact>
</contacts>

So basically, we just have a series of contact elements each containing an SDSN ID of one of my friends. This list does not have to be exhaustive, in other words some contacts could be "private" or "hidden" from public view. This will definitely be integrated with authentication into the future so that some people can see less than others, or maybe nothing at all.

Should we include more info than this? I think minimalism is good here, but would like to hear your input! :)

Skype on Linux 64-bit

Eish man! So the other day I wanted to install Skype on Ubuntu Hardy. Obviously I'm running the 64-bit version as I'm sure most other people are doing these days. All the new dual-core machines are in essence 64-bit so there's no point running a 32-bit operating system on that (although I'm not exactly sure what the point is of running a 64-bit operating system either, unless you have more than 3 GB of memory (4 GB actually but then there's that stupid memory hole that lots of people get caught up in). I'm only running 2 GB of RAM so it isn't so bad.

Nevertheless, I think 64-bit must be quite popular these days. So I downloaded the Linux version of Skype and when I tried to install it using dpkg, I got a message that the platform is incorrect. Bah, I should have known. And there Skype goes and screws me again. Now I have to go with the generic versions and will probably have all kinds of shit with dependencies. Life is never easy, eh?

Btw, anybody know of any (reliable, secure and updated) Skype Debian packages for Ubuntu?

Two Boxes Select Script

Shit I have no idea what you call this! So I just made up a name "two boxes select". Basically, it's where you have two select boxes and two buttons to click on to move items between these two boxes.

Anyway there are quite a few scripts to do things like this around the web but unfortunately they all seem to suck feature-wise. Here is a script I just found the other day, it's actually something I cooked up months back; unfortunately it makes use of jQuery which sucks still I feel I should rather post it in case somebody can find some use for it. The HTML (5):

<!DOCTYPE HTML>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <title>Dual Select Boxes Demo</title>
  <link rel="stylesheet" type="text/css" href="select.css">
  <script type="application/javascript" src="jquery.js"></script>
  <script type="application/javascript" src="select.js"></script>
 </head>
 <body>
  <div id="foodselect">
   <select name="food-no" multiple="multiple" ondblclick="moveOption('food-no', 'food-yes')">
    <optgroup label="Fruit">
     <option value="1">Apples</option>
     <option value="2">Bananas</option>
     <option value="3">Oranges</option>
     <option value="4">Pears</option>
    </optgroup>
    <optgroup label="Salads">
     <option value="9">Carrot</option>
     <option value="10">Greek</option>
     <option value="11">Italian</option>
     <option value="12">Potato</option>
    </optgroup>
    <optgroup label="Vegetables">
     <option value="5">Broccoli</option>
     <option value="6">Carrots</option>
     <option value="7">Potatoes</option>
     <option value="8">Spinach</option>
    </optgroup>
    <option value="13">Dutch Cheese</option>
    <option value="14">Fries</option>
    <option value="15">German Sausage</option>
    <option value="16">Lasagna</option>
   </select>
   <button onclick="moveOption('food-yes', 'food-no')">&lt;</button>
   <button onclick="moveOption('food-no', 'food-yes')">&gt;</button>
   <select name="food-yes" multiple="multiple" ondblclick="moveOption('food-yes', 'food-no')"></select>
  </div>
 </body>
</html>

Then, the CSS:

#foodselect {
 margin: 40px auto;
 width: 520px;
}
select {
 float: left;
 margin: 0 5px;
 width: 200px;
 height: 400px;
}
button {
 float: left;
 margin: 180px 5px 0 5px;
}

And finally the JavaScript:

function moveOptionCheck(option, jFrom, jTo) {
 if (option.selected) {
  var jOption = $(option);
  var jFromOptgroup = jOption.parent("optgroup");
  var jToOptgroup;
  if (jFromOptgroup.length > 0) {
   var label = jFromOptgroup.attr("label");
   jToOptgroup = jTo.children("optgroup[label='" + label + "']");
   if (jToOptgroup.length == 0) {
    var found = false;
    var jToOptgroups = jTo.children("optgroup");
    if (jToOptgroups.length > 0) {
     var last;
     jToOptgroups.each(function() {
      if (!found) {
       var jThis = $(this);
       if (jThis.attr("label") > label) {
        jThis.before("<optgroup label='" + label + "'></optgroup>");
        found = true;
       }
      }
      last = jThis;
     });
     if (!found) {
      last.after("<optgroup label='" + label + "'></optgroup>");
     }
    } else if (!found) {
     jTo.prepend("<optgroup label='" + label + "'></optgroup>");
    }
    jToOptgroup = jTo.children("optgroup[label='" + label + "']");
   }
  } else {
   jToOptgroup = jTo;
  }
  var jToOptions = jToOptgroup.children("option");
  var found = false;
  if (jToOptions.length > 0) {
   jToOptions.each(function() {
    if (!found) {
     var jThis = $(this);
     if (jThis.text() > jOption.text()) {
      jThis.before("<option value='" + jOption.val() + "'>" + jOption.text() + "</option>");
      jOption.remove();
      found = true;
     }
    }
   });
  }
  if (!found) {
   jOption.appendTo(jToOptgroup);
  }
  if (jFromOptgroup.children("option").length == 0) {
   jFromOptgroup.remove();
  }
 }
}
function moveOption(fromName, toName) {
 var jFrom = $("select[name='" + fromName + "']");
 var jTo = $("select[name='" + toName + "']");
 jFrom.children("option").each(function(){moveOptionCheck(this, jFrom, jTo);});
 jFrom.children("optgroup").children("option").each(function(){moveOptionCheck(this, jFrom, jTo);});
 jFrom.each(function(){this.selectedIndex = -1;});
 jTo.each(function(){this.selectedIndex = -1;});
}

This was work in progress and I never got time to completely finish this off and document it nicely but I hope it'll at least save somebody some time. It is quite powerful, it handles option groups, it sorts both the option groups and all the items, you can move multiple items in one go, etc.

Converted to Ubuntu 8.04

Screenshot of my new desktop

The last week I've been having a lot of fun with the new Ubuntu release, Hardy Heron (8.04).

Just like the beta release, it still does not pick up my screen correctly after installation but I can easily correct that using displayconfig-gtk and then the nice thing is that at least the screen power management does now actually work.

However, every time I try to run the login window configuration utility, the hard drive light flashes on and off and the utility never opens.

In general though there are a lot of improvements, not just in Ubuntu itself but all the updated packages it gives me.

I'm not really an artist so I didn't want to try the full Ubuntu Studio but I saw how nice the theme looks and decided to install it on top of my normal Ubuntu. All it took was using Synaptic to sort me out with the ubuntustudio-look package and now I have a pretty sleek desktop.

May Day!

So yesterday was May Day. I love this day every year, although unfortunately (or maybe fortunately) not much seems to happen in George.

In South Africa, lots of people seem to associate this day with communism. For some, this is the one day of the year they can put on their red t-shirts and wave a flag with the sickle and hammer pretty-much anywhere without feeling bad about it. Gather comrades, this is the day of the labourer! They seem to think it's much fun, feeling part of a revolution and all. Then the next day, we can all go back to selfishly making tons of money and sticking it into our own pockets, delighting in the joys of shameless capitalism and feeling superior to the poor bastards in communist (or even former-communist) countries that struggle to earn 10% in a month of what we earn in half a day.

Viva, comrades, viva! Who ever said hypocrisy is a bad thing???

Copyright © 2004-2008 Charl van Niekerk. All articles are released under the Creative Commons Attribution 2.5 South Africa licence, unless where otherwise stated.