Skip to content

DBE is right about Delphi and Office

Some thoughts on the current furore about the Department of Basic Education’s policy to standardise on MS Office and Delphi in teaching:

MS Office

Word processors and spreadsheets are simple tools for solving simple problems. For hard typesetting and number crunching problems we have better tools.

My point is that we’re already making a pragmatic choice with computer literacy training in schools: most scholars will use computers to solve simple problems, so schools train them to be able to do that (not to build mathematical models in Octave or to typeset engineering manuals in LaTeX). Should we now insist that they be trained to use a relatively obscure FOSS office suite instead? LibreOffice is a fork of one piece of crap, emulating another piece of crap known as MS Office. DBE is standardising, on the de-facto (albeit, piece of crap) standard, and that is the sensible choice, get over it.

Delphi

I did computer programming in Pascal (with Borland Turbo Pascal) at high school. The curriculum covered the basic constructs of the imperative programming style. At the time, Borland had already enhanced their Pascal implementation to support much of the language features currently available in Delphi. When I started university, the Computer Science program I took required basic programming ability as a prerequisite, and having done Pascal at school was sufficient to fulfil this requirement. Students who didn’t have programming at school took an additional semester course (Introduction to programming in C).

I never touched Pascal again.

Not only was the Pascal I was taught at school not an immediately useful skill for the workplace, but in retrospect, the abstract concepts I was taught served only as a grounding for getting into real computer science which followed at university: data structures and algorithms, computational complexity, computer architecture, AI, compilers and the study of programming languages, distributed systems, and so on. I wouldn’t have become a capable programmer without studying mathematics and science (as apposed to being trained in programming).

In my opinion, Pascal (and consequently Delphi) is good enough for education. Stated another way: Java is no better for the purpose of teaching a teenager how a for loop works. No programming language taught at school can turn a scholar into serious career programmer.

Real problems

There are so many difficult problems to solve in South Africa’s education system: consider that the majority of scholars are being taught all subjects in their second, or third (natural) language. Why aren’t we having a debate about whether Afrikaans should be taught as a second language to kids who speak Xhosa at home, when they’re expected to understand what’s going on in a history lesson delivered in English?

Conclusion

On this particular issue, y’all need to calm down and give DBE a break.

Tagged , , ,

Unbundling of the Telkom SA local loop

It was inevitable that I would eventually post something about the punny namesake of this blog: the “local loop” in South Africa. This is the last-mile (copper) infrastructure owned and controlled by the incumbent telco: Telkom SA

Local loop unbundling (LLU) is a regulatory policy that forces an operator with “significant market power” to allow competitors to directly resell their access network. Predictably, the incumbent operators always push back against LLU, and this gives rise to different “flavours”. “Full LLU” means access to raw copper lines at the exchange, while “bitstream access” refers to a number of wholesale PPPOE backhaul scenarios presented as an alternative to proper LLU.

In South Africa, ISPs wishing to provide ADSL services can either become pure reseller’s of Telkom SA’s end-to-end DSL ISP product, or they can purchase wholesale access to the ADSL “cloud” via a product called IP Connect. While it seems similar to bitstream access, Telkom has deliberately crippled IP Connect with a really ugly L3 routed hack involving three VRFs and a RADIUS realm per ISP, some RADIUS proxying and ISP-allocated address pools configured inside Telkom’s network.

Much has been written about the shortcomings of IP Connect, but the TL;DR version is that you need to tunnel to do anything other than the simplest best-effort IPv4 service that could work. What’s perhaps more interesting is to note that compared to the much more flexible bitstream service they could deliver using L2TP, IP Connect is very likely more expensive to run (in my opinion).

So, briefly back to regulatory matters: despite a government policy that LLU must happen, as is typical of our regulator, they have dragged their feet on implementing LLU regulation for many years. Telkom SA has cried wolf about LLU not being viable (as expected) and so the rest of the nation waits while we slip down the global competitiveness rankings.

With the recent replacement of the minister of communications, it seems there is some action (or noise?) around LLU (for example, see this article on Techcentral).

I predict that ICASA means business this time, but there is a catch: Telkom SA will offer bitstream access as a compromise to what they’ll present as the impending disaster of full LLU.

ICASA will fall for it, and Telkom SA will present a fully developed bitstream product as their “gift” to the industry (which was actually ready for launch in 2010, and will save Telkom money, compared to IP Connect).

What remains to be seen is:

  1. Whether ICASA will regulate the price of the “units” of LLU? If I’m right, the “unit” will be bitstreams, not copper lines. In my opinion, the price must be regulated for bitstream access to be an acceptable substitute for full LLU (I’m not saying price regulation is a good thing – that’s a completely different question).
  2. Just how far Telkom will push the interconnect point for ISPs away from the end user? The ideal scenario is access to the bitstream at the exchange. If they force interconnection with ISPs on a regional basis instead, they’ll make it less like full LLU (consequently defeat the purpose of opening up the access network to competitors), and artificially inflate the price by claiming the cost of backhaul to those regional interconnection points.

I hope I’m wrong and we get full LLU, but I have a feeling my prediction will be spot-on.

Tagged , , ,

clforeach.sh

If you want to run the same command on a number of routers (let’s say you want to check whether a particular prefix is visible on a number of different looking glass/route server hosts) then calling RANCID’s clogin from a loop can save a lot of typing.

This probably already exists, but I felt like doing it myself. If this is useful to you, let me know :-)

#!/bin/bash
# Simeon Miteff <simeon@localloop.co.za>
 
clogin=/usr/lib/rancid/bin/clogin
 
if [ $# -le 1 ]; then 
        echo "Usage: $0 [cloginrc file] [command]" 1>&2;
        exit 1;
fi
 
awk '{print $3}' < $1 | sort -u | while read host; do
        $clogin -autoenable -f $1 -c "$2" $host;
done

Now if you’re interested in South African BGP, here is a sample cloginrc file:

add user tpr-route-server.saix.net {saix}
add password tpr-route-server.saix.net {saix}
add user lg1.za.mtnbusiness.net {lg}
add password lg1.za.mtnbusiness.net {l0ok1ng-G145s}
add user lg2.za.mtnbusiness.net {lg}
add password lg2.za.mtnbusiness.net {l0ok1ng-G145s}
add user local-route-server.is.co.za {rviews}
add password local-route-server.is.co.za {rviews}
add password route-server.tenet.ac.za {rviews}
add password route-views.jinx.routeviews.org {}

Tagged , ,

Does Evernote enjoy discarding your changes?

If you remain logged into Evernote’s web interface for long enough, eventually you’ll encounter the situation where attempting to save a note after making some changes will result in a little HTML pop-up dialog telling you that you need to “reload evernote” to access a “new version”.

If you click the only button on this dialog, you’re then prompted with a Javascript browser dialog telling you if you leave the page, your changes will be discarded (this is true), but if you remain on the page you can save your changes (this is a lie – because doing this leads you back to the first dialog).

Most peculiar is that as you click the button on the second dialog to leave the page (and thus discard your changes), there is a little HTML notification on the bottom-right corner of the page that briefly indicates “saving changes”, just before the UI reloads and reveals you how Evernote happily threw away the changes to your note…

Hmmm…

Tagged ,

Ostensibly heterosexual

I find my Samsung phone’s auto-complete behavior peculiar:

For some months now, when I hit ‘h’ instead of ‘g’ when typing ‘get’, it auto-completes ‘het’ as ‘heterosexual’. Then, just a few minutes ago I was typing ‘it’, and got ‘ostensibly’ (no idea how).

These can’t be particularly common n-grams in my writing. In fact, I’m fairly certain I’ve never typed those words into this device. Why does it pick them?…

The mind boggles.

Tagged ,

Route server updates

I’ve made some updates to the route servers page. There were enough changes to warrant a quick blog post, so here goes:

  • MTN collapsed AS2905 into AS16637, so lg1.za.mtnbusiness.net now lives in the latter AS
  • lg1.za.mtnbusiness.net now has more liberal command authorization
  • lg1.za.mtnbusiness.net has a new password: l0ok1ng-G145s (1337 5p34k much?)
  • I added the AS37105 (Neology) web looking glass.
  • I added the Routeviews route server at JINX.

Are there any ISP route servers not on the list?

If you know of any, please drop me an email!

Tagged

Internet map updated

While attending AfPIF 2012, I was motivated to update the original map I did back in 2009.

Click on the image to download the PDF version.

What is this?

This graph shows who provides transit to whom, within South Africa, to the rest of the Internet.

I think it needs a lot more work (including ASNs in the labels, etc), but rather than never publishing a perfect map, I’ve chosen to publish an imperfect map, now, while it’s relevant to you, dear reader. Enjoy!

South African Internet Map v2 (August 2012)

Tagged , ,

ISPA IXP peer addresses

In the good old days, ISPA used to have a table with the IP allocations for JINX peers on their website. Now you can use this script:

#!/bin/bash
# Simeon Miteff, Tue Aug 21 09:46:59 SAST 2012
# simeon@localloop.co.za
 
function getptrv4 {
        for i in {1..255}; do
                PTR=`dnsname $1.$i`;
                [ -n "$PTR" ] && echo "$PTR,$1.$i";
        done
}
 
function getptrv6 {
        for i in {1..255}; do
                i=$(printf "%x" $i)
                PTR=`dnsname $1::$i`;
                [ -n "$PTR" ] && echo "$PTR,$1::$i";
        done
}
 
echo "#== JINX IPv4 =="
getptrv4 "196.223.14"
echo "#== CINX IPv4 =="
getptrv4 "196.223.22"
echo "#== JINX IPv6 =="
getptrv6 "2001:43f8:01f0:0"
echo "#== CINX IPv6 =="
getptrv6 "2001:43f8:01f1:0"

You’ll need bash, and the dnsname utility from dbndns (the debianized and patched version djbdns – I doubt the original has IPv6 support).

Now you can do stuff like this:

simeon@pedro:~$ bash ispa_ix.sh | grep google
google.cinx.net.za,196.223.22.41
google.jinx.net.za,2001:43f8:01f0:0::41
google.cinx.net.za,2001:43f8:01f1:0::41

Enjoy!

Tagged , , ,

New South African ASNs

In preparation for AfPIF 2012 I’ve been giving the autonomous systems list some TLC. The numbers (prefixes announced, equivalent number of /24s) are now up-to date. Below are the 62 new local ASNs that appeared in BGP-sphere in the two or so years I’ve been busy with other stuff.

The as-names are still missing and I won’t have time to write new kids on the block-style commentary, but I hope this is nevertheless interesting for the hardcore internetworkers out there:

AS Number Class C Count Networks Owner Website
37168 6656 20 Cell C Pty Ltd http://www.cellc.co.za
37130 1043 24 State Information Technology Agency http://www.sita.co.za
37179 217 9 Africa Independent Network Exchange (Pty) LTD (AfricaINX) http://www.africainx.net
37253 128 4 Altech Technology Concepts http://www.techconcepts.co.za
37153 120 14 Hetzner Pty Ltd http://www.hetzner.co.za
37277 65 2 Limelight networks http://www.llnw.com
37334 48 7 ARC Communications Pty Ltd http://www.arctelco.co.za
28698 40 2 MTN Business Solutions (Pty) Ltd http://www.mtnbusiness.co.za
37225 40 2 Netwide http://www.netwide.co.za
37053 39 8 RSAWeb http://www.rsaweb.co.za
37271 36 2 Workonline Communications http://www.workonline.co.za
37100 36 2 Seacom Ltd http://www.seacom.mu
37357 32 1 SAINET http://www.sainet.co.za
37315 26 13 Cipherwave http://www.cipherwave.co.za
56696 20 22 Liquid telecom http://www.liquidtelecom.com/
37276 20 2 VOffice Solutions http://www.voffice.co.za
37353 19 6 Macrolan CC http://www.macrolan.co.za
37238 16 11 IWAY Africa Ltd (a.k.a Multichoice Africa) http://www.iwayafrica.net
37235 16 5 Mimecast South Africa http://www.mimecast.co.za
37202 16 1 Ambronex (PTY) LTD http://www.ambronex.co.za
37333 13 5 Comtel Communications http://www.comtel.co.za
37055 10 5 EMID Pty Ltd http://www.emid.co.za
5.13 8 5 ECHO Service Provider/Axxess DSL http://www.adsl.co.za
37266 8 3 Amobia Communications http://www.amobia.com
37317 8 2 WSINET http://www.wsiglobal.co.za
37239 8 1 ICTGlobe Management Pty Ltd http://www.ictglobe.com
37254 8 1 Green Flash Trading http://www.megs.co.za
37172 8 1 Mitsol http://www.mitsol.net
37150 8 1 XNet http://www.xnet.co.za
37188 8 1 Bytes Systems Integration (PTY) Ltd http://www.bytes.co.za
37422 7 4 First Technology http://www.firsttech.net
5.21 5 5 SABINET http://www.sabinet.co.za
37259 5 5 Kawuleza Connect http://www.kawuleza.com
37160 4 5 Grindrod Management Services (Pty) Ltd http://www.grindrod.co.za
37403 4 5 Infogro Pty Ltd http://www.infogro.co.za
37116 4 4 Coega Development Corporation http://www.coega.co.za
37157 4 4 Imagine http://www.imagine.co.za
37417 4 2 Fusion Wireless (PTY) LTD t/a Sonic Wireless Solutions http://www.sonicwireless.co.za
37275 4 1 ETC (Pty) Ltd http://www.kapsch.co.za
37358 4 1 BitCo http://www.bitco.co.za
37368 4 1 Bluedust Wireless http://www.bluedust.co.za
37302 4 1 Dube TradePort http://www.dubetradeport.co.za
37236 4 1 Reflex Solutions http://www.reflex.co.za
37412 4 1 The Packet Hub http://www.thepackethub.co.za
37159 4 1 Alexandre Miller cc t/a Imaginet http://www.imaginet.co.za
37439 4 1 Breedenet http://www.breedenet.co.za
37399 3 3 Switch Telecom http://www.switchtel.co.za
37265 3 2 Neural Telecomunications Africa http://www.neuraltel.com
37312 3 2 Clickatell http://www.clickatell.com
37786 2 2 Ariviakom (Pty) Ltd http://www.arivia.co.za
37438 2 2 Gijima Holdings http://www.gijima.com
37185 2 2 Quick Edge Ltd http://www.quickedge.com
37180 2 2 South African Airways http://www.flysaa.com
37394 2 1 eNetworks cc http://www.enetworks.co.za
37363 2 1 Faircape/Faircom http://www.faircom.co.za
37181 1 1 AfriNIC RFC5855 http://www.afrinic.net
37177 1 1 AfriNIC Anycast Services http://www.afrinic.net
3573 1 1 ACCENTURE http://www.accenture.com
37314 1 1 Syrex Intranets http://www.syrex.co.za
37316 1 1 Direct Transact Pty Ltd http://www.directtransact.co.za
37293 1 1 Stargaze Media http://www.stargazemedia.net
37402 1 1 Telesure Group Services http://www.telesure.co.za

P.S. This list of new ASNs generated from a database, so when the numbers are updated, so will this table (in other words, this post will not remain a snapshot in that respect).

Tagged

Not even Vodacom can contact Vodacom

In the spirit of Vodafail:

simeon@pedro:~$ curl -D - http://www.vodacom.com/contactus.php
HTTP/1.1 200 OK
Date: Fri, 17 Aug 2012 11:28:15 GMT
Server: Apache/2.2.16 (Debian) mod_fcgid/2.3.6 mod_ssl/2.2.16 OpenSSL/0.9.8o mod_perl/2.0.4 Perl/v5.10.1
X-Powered-By: PHP/5.3.3-7+squeeze14
Vary: Accept-Encoding
Transfer-Encoding: chunked
Content-Type: text/html

Unable to retrieve http://www.vodacombusiness.co.za/contactus.php after 10 attempts.

Tagged