Skip to main content

Gah.

This is not a lisp-related entry, but a rant about open-source things that I discovered in the time at or around work.

Spent a lot of time and engery at work in the last two months. This is due to my focusing on my bachelor’s degree in the next few semesters. This resulted in me being being angry at a few things.

  • OpenLDAP 2.0, for letting users create objects that can never be found again, not to mention deleted. This may or may not be a deficiency in LDAP itself.

  • Asterisk, for the silliest and most badly-designed programming/extension language since BASIC (yes, far worse than PHP). For your amusement, here’s an example:

    exten => _.,1,ODBCget(sipuser=${EXTEN}/alias)

    (uses the ODBGget thing from http://www.voip-info.org/tiki-index.php?page=Asterisk%20app_dbodbc). What this does is look up a row in a 3-column table (family, key, row, where family= the EXTEN variable’s content and key=”alias”). It then either sets the variable sipuser to that value, or jumps to line number 1+101, if that row is not found. It appears that this “jump to priority+101” behavior is typical for telephone systems, so the developers of that extension thought it would be a good idea to copy that.

    There is no If statement that works on code blocks. Conditional jumps (GotoIf) only.

    Extensions to the extension language (called “applications”) must all provide their own argument parsing code. Will be interesting to see how many exploits for SIP or H323 voicemail servers come out before this is fixed.

    Oh, and it doesn’t really run on any platform that isn’t x86/Linux. Sure, there is a FreeBSD port, but that seems to exist only to give you a false sense of security.

    All that is enough to provide you with happy maintainer fun for the rest of your life. At first, I found it funny that these configuration files all seem to be valid window-style .INI files. Not anymore.

  • By far least of all, PHP. Of course, there’s some background angriness, yet among that insane heap of hacks and bugs that is asterisk, and other sysadmin-related tasks I’ve been doing over the last few months, hacking up web sites using PHP was what kept me sane.

I must have turned mad already.