I hate Microsoft

May 25th, 2009

Not so much for their software, but SO much for their hardware.

I am the unfortunate owner of an XBOX360. I bought the thing as an import from Japan, before they were even available in South Africa, because Microsoft, in their *wisdom* decided that it’s ok to let South Africa only get Xboxes EIGHTEEN months later. I only bought it because I couldnt get an ORIGINAL Xbox anywhere in South Africa (and all those were “grey imports” too).

So, I had the thing sitting, not doing much for pretty much a year. I couldn’t play any of the old XBOX games, because Microsoft hadn’t release the “backward compatibility” stuff yet..

Eventually, when it became “launched” in South Africa, the games were ludicrously expensive. And — I had to bribe someone in the UK to pay for an XBOX Live voucher, just so I could use the online features of the damn thing.  Even now. Nearly four years after the XBOX launch, NOT A SINGLE PERSON IN SOUTH AFRICA CAN USE THE ONLINE FEATURES. You simply can’t pay for Xbox live access. For chrissakes, you can’t even choose “South Africa” as the region on the piece of shit.

Barring that, my few months of use with the infernal device didn’t last long. I started getting the infamous “RED RING OF DEATH” crap. Of course, since my Xbox was a Japan import, and older than a year, I could not get it fixed.

I’ve spent nearly 18 months with heatguns, towels, heatsink clamp replacements, and extra heatsinks on the memory chips etc,  etc. Each attempt resulting in about three more weeks of use out of the infernal device.

Reality: The thing is a piece of crap. I will never buy a piece of Microsoft, or any other mainstream (that’s you Sony) piece of hardware ever again, until it’s hit release 900 and ninety nine.

I replaced my xbox with an AMD64 Debian Lenny machine, running XBMC, and honestly — my son, and even the missus  loves it more than the XBOX. No frigging red rings of death for one…

I love the repplacement PC/XBMC  too. If some piece of it breaks, I know how to fix it. XBMC play’s .iso’s, .img’s and even .rar’ed movies, without any intervention. PC hardware in general, is also MUCH more reliable.

XBMC  wins on all the usability frontends , way more than an XBOX. It’s sad, that in the end, the most function for my XBOX was as a media player. XBMC changed all that. Yes, fine. I can’t play “Altered Beast” on the new Media PC (yet).  At  least when I tell XBMC to play a damn movie, it does so. Reliably.

Consoles have a LONG way to go, before beating general utility computers. And general utility computers simply need a replacement for XBOX Live, Apple AppStore and then we’ll see the end of proprietary bull. All that general utility computers need is a nice casing, and an HDMI or RCA output. That’s not so difficult.

I will personally pay the guys that commercialise XBMC double the  amount of money for a perpertual XBMC license, than I paid for my XBOX.  Because it works. I can tinker with it. I can fix it. All that XBMC needs now, is a good game distribution model behind it, and some web2.0 scalability and it will be good-bye Tivo-ism.

Oh, and controllers. Uhm wait. There’s many of those already. At like, HALF the price of an XBOX wireless controller.

roelf Uncategorized

Joburg is nasty

May 23rd, 2009

You know, I get kind of miserable when I look at blokes like Joe’s life, and pictures and his daily routine that he so succinctly posts to his blog, every damn week.

Joburg is miserable in comparison. Alternatively, I just need to figure how  Joe does to have it so neatly. 4HWW ? I wish…

Let me summarize my work week, and then we compare with Joe:

Monday: Getup, work, get home ~6:30pm, have dinner, chat with Vincenzia. exhausted, Sleep.

Tuesday: Getup, work, get home ~7:30pm, have cold dinner, brief chat, exhausted, Sleep.

Wednesday: Getup, drop Ruben at school, meetings at work, problems with crap, get home ~6:45pm, chat, exhausted, Sleep.

Thursday: See the pattern ?

Friday: Get up, have usual Friday braai at office, interrupted by problems, get home ~5:30, go out for sushi in Rosebank @ Tsunami, and then crash for sleep.

Saturday: Wake up late, make breakfast, take Ruben bowling in Rosebank, plan next steampunk invention.

Sunday: Wake up late, play “Wallace and Gromit” on the Xbox for an entire day with Ruben, braai late afternoon, crash, sleep.

Monday, rinse, repeat.

The reality is that Joburg is a very “un-exciting” place to live. I can count on my hands the few fun things to do (granted I’m not easily entertained), but there is a distinct lack of natural beauty and fun things to do.  I stay in Greenside, in a leafy, calm suburb. But really, when I leave home there’s not that much else to do. No beautiful vistas. No awesome picnics.

This is largely because everyone’s just too crap scared to actually go outside or do anything, I think. A walk at Emmarentia Dam a mere kilometer from my home, could cost you your cellphone, wallet and potentially your life.

Wtf.  I wanna *cry* sometimes. I really need to look for a life in Silicon Mountain.

roelf Uncategorized

East Africa connectivity rocks

May 16th, 2009

So here I am, sitting in Kampala, Uganda — writing a post whilst streaming my music collection from home…

And it works. Amazingly well.

Sure, I’m on the backend of a a 5mbps Wimax CPE connect to an Airspan WiMAX network, and I”m connecting to a base station 7kms away from my hotel.

The network is optimised with seriously badass caching, bandwidth management, and sattelite acceleration and compression that my company Neology has deployed.

And it rocks. Aside from the latency (which cannot be avoided until Seacom lands in Kampala next month) I have a better connection than I normally have at home.

I wish all ISP’s would focus on the little tiny details that make stuff work….

For example, we’ve developed software that makes the provisioning of a WiMAX CPE painless. And it’s only 2.25mb and a single .exe and contains the firmware for the modem!

Want a static IP address ? Simply buy one of Tangerine’s Silver packages at a CAP and speed that suits you.

Aside from Internet Slowlutions on South Africa, it’s a fairly unfound product in the South African market.

Caps ? No. All product simply throttle you to half-speed after having reached a (very gratuitous) cap of 10Gig or so.

And this is all over satellite. One of the most expensive uplink mechanisms in the world. And the economics make sense.

It makes me grumble about the pricing in South Africa.

roelf Uncategorized

Differentiated service billing - why isn’t everyone doing this ?

April 21st, 2009

I’ve been in networking, and at the bad end of Traffic Limits all my life. This is simply a by-product of living in South Africa, and Telkom’s stranglehold on the local market and the way in which they sell their services.

Imagine the following:

1. A service over Telkom ADSL that charges you different rates for Local or International usage, on the same CAP. 1GB suddenly becomes 10GB local-only traffic.

2. A service over Telkom ADSL that allows you to do pop3 for free?

3. A service over Telkom ADSL that allows you to play games on local servers, and limits you to 64kbps international so that you can still authenticate with your favorite game ? The local bandwidth tho, doesn’t cost you a cent!

4. A service where local uploads are free? Torrents that you seed from a specific port (e.g. 6668) will only ever use local bandwidth, and the said local bandwidth is free? Backup your PC’s to your ISP’s storage system - for FREE.

5. A service where you get a free static IP address ?

6. A service where you can use your 2Gig cap at a rate of 1 byte per byte during the day, but at night, your rate is 1/tenth the price of the daytime traffic ?

7. A combination of all of the above?

How many permutations are possible!.

Endless. And it can be done. Watch this space.

roelf Uncategorized

Converted to a blogger

February 9th, 2009

This could be one of those, “I finally gave in and installed a blogging tool” posts, but it’s not. I’ve imported all my old wiki/blog content, and am now officially part of the this thing called blogging that has become so popular.

roelf Uncategorized

Accessing the internals of an iBurst UTD

December 27th, 2007

I would have put a disclaimer here. But if you break your iBurst modem you have only yourself to blame, so no disclaimer. This was posted on the MyADSL forums, and people wanted to keep it secret, for fear of dimwits breaking their modems. Realistically, what difference is it going to make?

It is possible to telnet into you iBurst UT-D. Its quite simple:

* Connect UT-D via ethernet cable
* Set your ethernet connections’ IP to 192.168.250.5
You can also do this by simply adding an additional IP under the “Advanced Tab” under TCP/IP properties, if you don’t feel like changing your main IP.
* Open a command prompt (Start->Run->cmd.exe) Then type:

telnet 192.168.250.10 1234

If everything went well you should see a prompt from the UTD. If your networking is *incorrectly* configured, you will see a message saying “Connecting To 192.168.250.10… and it will appear to freeze there. Check everything again, if that’s the case.

!At the UTD prompt:
* Type “rfScan debug 2″, without the quotes. Hit enter.
* You will be presented with the base station # and the signal strength in dB and the distance and load of the BS.
* Once you are done type “rfScan debug 0″
* Kill the telnet session.

You should technically just be able to reboot the UTD too, to disable the debug mode.

roelf Reverse Engineering , ,

Keyboards Suck

December 27th, 2007

Keyboards suck. I hate them. I will personally give the person who invents a better mechanism of interacting with a computer (input wise) a medal.

Ideally, I think it needs to be something like a skull plug. Or an integrated neural/chip setup, such as THIS thing:

ratneurononchip_color1

 

I sit in front of a computer a lot. I can handle pretty much anything about it, the stiff neck, the sore legs even the blurred vision after hours and hours of staring at a screen. What I cannot handle is my thumbs and fingers literally spasming due to too much Ctrl-V, Ctrl-C, :wq, and alt-tabbing. I’ve gone to extremes. I’ve remapped the oddest keys on my keyboard to fit more use functions, just to avoid a thumb busting ctrl-c combination. I’ve trained myself to use both hands for shift states, and alt-key combinations. I avoid the mouse.

But it still sucks.

I want a skullplug. Or a telepathetic link. Or something. Anything! As longs as it’s not mechanical. In fact, if they were ever to announce “skull-plug beta testing” I’d pretty much kill anyone that stands between me, and the “numero uno” position at the door of the beta testing clinic.

roelf Uncategorized

DefenseTurret - A Tribes2 Anti-Cheat by TheRoDent

December 26th, 2007

Well, Tribes2 ended up being pretty cheat-free, but eventually some people came out with some really bad exploits.

DefenseTurret is my project to kerb these cheats. The program uses an executable injection mechanism to seamlessly load into the tribes2.exe Win32 and tribes Linux binaries.

The basis of the system is a “consensus based” cheat detection mechanisms where clients connected to the server check the validity of each others’ playing environments.

It’s been accepted on the European, and American ladders as the de-facto (read ONLY) anticheat program for Tribes2. I released a Win32, and Linux version.

More information can be found at http://rodent.za.net/defenseturret/, or http://dt.triben.de/dt_en.html

roelf Game Development, Reverse Engineering , , , , ,

How to get a VOX Phone not to use ADSL

December 26th, 2007

So, recently Vox Telecom released their Viral Marketing based Voice over IP service late this year.

Their standard VOIP phone is a nifty device, based on the Thomson SpeedTouch 7G device, incorporating a DECT Phone, Wireless Router (Broadcom based) and also an ADSL modem.

My problem is - I have a neat Linux-based ADSL setup already, and didn’t really want to use the VOX phone as my ADSL to Ethernet Bridge (I have my reasons).

After some reverse engineering, it turns out, that using the CLI interface of the router, it can be convinced to not use it’s own ADSL connection as the upstream towards the VOX sip service. Instead it can be forced to use the “LAN” ethernet ports and by simply doing a bit of route adding, and forcing the voice service to use the LAN interface, the phone can happily work with Vox’s service across some other internet gateway.

Caveat Emptor: Of course, you have to be sure that your Internet gateway supports the proper QoS, otherwise the VOX service will suffer. And please, don’t call VOX’s support if you’re having problems with this kinda config. It is (and rightfully so) an unsupported configuration.

You will need to do all the NAT Traversal bits, and cleverness for this to work too, which is beyond the capability of your regular user - so, again. Consider it “unsupported”.

That said it still works…

Here’s the configuration

ip ipadd intf=LocalNetwork addr=192.168.0.201
ip rtadd dst=0.0.0.0 gateway=192.168.0.1 intf=LocalNetwork
dns client dnsadd addr=192.168.0.1
dns server config WANDownSpoofing=disabled
dns server route add dns=192.168.0.1 intf=LocalNetwork
voice config intf=LocalNetwork
system config defaultconnection=LocalNetwork
config save filename=user

roelf Reverse Engineering , , ,

Trip to India

October 27th, 2007

I’m posting this from Hyderabad India, where I’ve come to interview network engineers for one of my customers.
So, what do you do when you’re in India, all the food is hot, your stomach is rebelling, and the toilet rolls come in these ‘denominations’?

(toilepaper image missing)

(rickhshaw image missing)

The little yellow things are called “auto-rickshaws, or 4-in-all’s - only 4 people allowed, or six schoolchildren. I took a ride in one.

I simply call them deathtraps now. Cause that’s what they are.

roelf Uncategorized

Vitamins cannot rinse away

August 11th, 2007

That’s what Tastic rice tells us. Apparently they parboil the rice, for our benefit, driving the Vitamins into the rice. How do I know this ? I was staring at a pack of rice tonight in the pantry, reading the label. “Vitamins cannot rinse away…”

Awesome. Or perhaps not.

roelf Reality Reversing

Debian Etch - the best Debian yet

May 8th, 2007

Ever since Cyan Ogilvie introduced me to Debian, circa Woody, I’ve been one of the converted. Debian might be slow in it’s releases cycle, but you simply cannot beat the scope of packages and care taken in it’s assembly.

I’ve been doing customized Debian builds for some products, and I cannot imagine doing it on any other platform than Debian. Preseeded installations, and the awesome apt dependencies simply make it a pleasure to do customization.

Never mind the fact that Debian, like me, likes perl. A lot.

         (__)
         (oo)
   /------/
  / -pipe-    -pipe--pipe-
 *  /---/
    ~~   ~~
...."Have you mooed today?"...

roelf Debian

BrainBench, or how to simplify recruiting a bit

January 28th, 2007

I’ve been a brainbench.com member since 2004, way back when they still mailed you a paper version of your certificates for free when you completed an assessment. (This was cool).

I’ve just recently taken one of their tests again, out of curiosity, and I have to say: They still “have it”. The questions are difficult, to the point yet not insane. They have a real nice balance. I will definitely be using their corporate service again, when I need to recruit.

I’ve found it to be an amazing bull-filter before. Plus, the free personality tests are interesting…

roelf Business ,

Compex WP18/IXP425 Port Completed

January 2nd, 2007

I’ve spent most of December hacking on an Intel IXP425 device, and I must say, I’m rather amazed at the performance these little things pump out. Mikrotik needs to forget about the Mips architecture. It’s outdated and performs crappily. I’ve tested this little board clocking over 80Mbps ROUTED traffic between interfaces.

The PCengines WRAP, and Routerboard 532 is dead. Intel IXP425+ is where it’s at. You cannot find another chipset with integrated VLAN support, hardware crypto acceleration, integrated USB, I2C, and all the other fancies for the same price.

The device I ported to OpenWRT and registered in the ARM machine registry is the Compex WP18 a very nice general purpose network and wireless device.

roelf Uncategorized

Software stacks and basic programmer courtesy

December 12th, 2006

When will commercial software vendors start owning up to their “free” roots? I just installed some software tonight, that’s well over two years old, using PPPoE to communinicate with a modem, and it conflicted with my installed version of WinPCAP.

Of course, WinPCAP is not mentioned as a component in the orignal software, WHATSOEVER.
Way to stick to the licenses guys! I will quote from the WinPCAP license documentation:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

Total disregard. And in this case, it’s the THIRD PARTY SOFTWARE PROVIDER to the actual Hardware vendor provider who is in breach.

Man. The Software world is screwed.

roelf Uncategorized ,

How to get local routing(BGP) info for South Africa

November 19th, 2006

I recently went on a mission to discover, which subnets are “local” to South African networks, whether by ISP peering arrangements, or direct connection. I wanted this information, so that I could setup my home linux router to use Telkom’s ADSL connection for local traffic, and to use Sentech’s MyWireless connection for international traffic. Reason: Sentech pings aren’t really good for local gaming, but international speeds are great.

BGP (Border Gateway Protocol) 

All route information is published, and synchronized between ISP peers, via the BGP protocol, which is a dynamic routing protocol.

Unfortunately, it’s not as simple as install something like Zebra (a routing daemon for linux that does BGP, set it up on a Linux machine, receiving a BGP feend and have it make clever routing decisions.

No ISP will let you connect to their routers’ BGP port. Easily, or without a fight, or without paying them money for transit. This kind of public routing information, is unfortunately only available to the end-user via a series of public route-servers, and there aren’t any that I know that will allow you to receive the feed via BGP either.

So, I looked at alternative methods. I went from writing scripts to dig through the ripe, arin, and radb databases, to turning to lists of IP ranges arrange by geographic location. All the time, using whois queries to resolve the AS (AutonomousSystem) numbers, and then querying them for their official public routes. The problem is, that these routing databases aren’t always up to date, and that it’s quite difficult to figure out which AS numbers are actually local ISPs.

AS Numbers

An AS number is a  unique number, assigned by ARIN, or RIPE, that defines a BGP routing “area” or an ISP. Internet Solutions’ AS number is 3471. To see the details in the registry for an AS, go to http://www.radb.net/cgi-bin/radb/whois.cgi?obj=AS3741

To see the routes published by this AS, go to http://www.radb.net/cgi-bin/radb/whois.cgi?obj=!gAS3741

There is a set of RESERVED AS numbers, similar to “reserved” IP ranges that is supposed to be used for people that don’t have AS’s to obtain BGP information, or used for private or interior routing. Again, good luck in finding someone that’s prepared to configure a feed for you using a private AS, on a dynamic IP such as ADSL.

In the end, Gregory Massel, of http://www.ispmap.org.za/ fame, helped me to get hold of directly accessible BGP route information, courtesy of telnet://route-server.is.co.za, a public service by Internet Solutions. SAIX also runs a route-server at telnet://tpr-route-server.saix.net/
I wrote a small script that would telnet to this router, and dump the BGP routing table. This table contains local subnets, which is exactly what I was after.

From here on, it’s pretty simple to modify the script to add routes on my linux machine for these subnets on a specific interface. The net result in my scenario: ADSL gets used for local traffic, and Sentech for international.

Example script:

#!/usr/bin/perl

use Net::Telnet;

$prompt = '/public-route-server>/';
$server="route-server.is.co.za";

print "Connecting to $servern";
my $session = Net::Telnet->new(Host => $server,Prompt => $prompt,Timeout=>30);
unlink("t.log");
$session->dump_log("t.log");

$session->waitfor($prompt);

#turn off paging
$session->cmd("terminal length 0");

#get list of local routes
print "Retrieving BGP routes\n";
my @output = $session->cmd("show ip bgp\n");
print @output;
print "Route list received\n";
$session->close;

roelf Internet , , ,

Tribes:Vengeance Infinite Spawn Tool

November 19th, 2006

o, I have to run a T:V server at a service provider that’ll only let me use FTP to administer my T:V server. This is a problem, because it becomes difficult to restart the server using FTP only :)

So I pulled out the good old Borland C++ compiler and started coding.

“Hah”, I said after a day or two to the service provider. “Please install this executable.”

TVSpawn is similar to the ISpawn of T1, and T2 except it’s a bit more clever. It will restart the Tribes server, and itsself (TVSpawn) if it detects a change in it’s “.ini” file. This means that you can restart a T:V server running remotely by simply uploading a new .ini file with a new date/timestamp.

TVSpawn will also apply the settings inside the new .ini file upon restart, allowing you to change the server’s startup commandline on-the-fly. That’s the neat part.

The mediocre part is that it basically does the normal stuff that T1/T2’s ISpawn did, which is monitoring the server on it’s query port (typically port 7778) to see if it’s still responding. If the polls to port 7778 fails a predetermined number of times (maxfailures in the .ini) it will assume that the server died and respawn it.

The program and and an example ini file is available  here: http://rodent.za.net/files/tribes/tvspawn/

 Installation:

  • Drop the .ini, and .exe into our tvprogrambin directory.
  • Edit the .ini and fix all the paths/settings to your liking.
  • Run it.

What it does:

  • Uses a .ini to read it’s configuration
  • Will restart the T:V server, and itsself if the configuration file changes (date,size, etc…)
  •  Polls the T:V server on it’s GaySpy port, to ensure it’s alive.
  • Restarts the T:V server if it stops responding to polls (maximum failures configurable in the .ini)
  • Restart the T:V server if it exits
  • Applies a “startup delay” (spawnwait in .ini) whenever the process is restarted to prevent insane respawning.
  • Has mostly all options configurable in the .ini file

 Hints:

  • tvspawn.exe will take a single commandline argument. The name of the .ini file. Thus, if you want to run multiple servers, with different configurations, run “tvspawn.exe myserver.ini” to have it use a different .ini file. By default (if no commandline arguments are specified) it will look for tvspawn.ini in the current directory.
  •  Set “hidelog=1″ in the .ini file to have a “slim” version, minus the log window started up. You can always review the log by clicking on the “Show Log” button.

 To Do:

  • Make it a configurable, and installable service, with a service name for each .ini
  • Get an icon that isn’t a Llama.
  •  Include a small socket server that’ll accept remote commands, such as “reset”, “status”, and “booyah!”.

Mail me at rodent at rodent dot za dot net, if you have tips, suggestions etc…

roelf Uncategorized

Tribes:Vengeance Scripting tips, and gotchas

November 19th, 2006

Tribes:Vengeance is based on the Unreal Tournament Engine.

Here’s how it differs from normal UT scripting:

  •  When extending other base classes you have to specify the fully qualified name of the base class, e.g. instead of doing class Foo extends Object; you HAVE to do class Foo extends Core.Object; - this is naturally braindead but I guess IG may have had their reasons.
  •  C-Style comments are broken. Don’t use /* or */ to delimit comments, or blocks of code. It breaks if there are any other slashes inside. This  is pretty dumb.
  • When attempting to use structs defined inside other classes in your own derived classes, you may have to use the dependson() directive like so: class Foo extends Engine.Object dependson(~SomeClassWithStructsInIt);

Things you will need to do to make UCC work (For Beta/Demo)

Edit your UCC.ini, and ensure that you have the packages that you’re working on listed like in this following example:

~EditPackages=~Core ~EditPackages=~Engine ~EditPackages=~IGEffectsSystem ~EditPackages=~IGVisualEffectsSubsystem ~EditPackages=~IGSoundEffectsSubsystem ~EditPackages=~Editor ~EditPackages=~UWindow ~EditPackages=~GUI ~EditPackages=~UnrealEd ~EditPackages=~IpDrv ~EditPackages=~UWeb ~EditPackages=~UDebugMenu ~EditPackages=~MojoCore ~EditPackages=~MojoActions ~EditPackages=~PathFinding ~EditPackages=~Scripting ~EditPackages=~AICommon ~EditPackages=~Movement ~EditPackages=~Gameplay ;~EditPackages=~TribesGui ; these have to be commented out, crashes otherwise. ;~EditPackages=~Tyrion ; these have to be commented out, crashes otherwise. ~EditPackages=~Physics ~EditPackages=~TribesAdmin ~EditPackages=~TribesWebAdmin ~EditPackages=~TribesVoting ~EditPackages=~TribesTVClient ~EditPackages=~TribesTVServer ; my packages ~EditPackages=~FooPackage ; Add your packages at the bottom of the list, othwerise you’ll get undefined()s

  •  When compiling, you need to use “ucc make -NoBind” otherwise all the core packages will look for their associated headers/and dll’s to bind.
  • You will need to edit StartupUCC.ini and include the path to the script source code.

roelf Game Development ,

Tribes:Vengeance Master Server Polling

November 19th, 2006

I wrote a bit of code, using Luigi’s code for GameSpy in PHP, that allows you to query the gamespy master server and retrieve the list of IP and port’s for any of the GameSpy supported games.

This handy image –> [http://vengeance.za.net/servers/serverpng.png]
for example, is generated using the code, and is updated dynamically every 3 minutes.

The query code isn’t really cleaned up enough or ready for release yet, but you can mail me  if you’re interested in obtaining a copy in the meantime.

roelf Game Development ,

Tribes:Vengance Server Lister

November 19th, 2006

I wrote a small PHP script that uses QStat, and XML/XSL to display a Tribes:Vengeance servers’ server state. If you can’t make it work please don’t bug me for support. There is NO support for this thing and I don’t have the time to answer everyone’s queries, even though I’d like to.

It’s available here under a GPL license.

roelf Uncategorized