Building notes, projects, and occasional rants


last update:

IETF Wayback machine

So the IETF has a solution for all our bandwidth problems, taking us back to 2000 levels. No, its not a super-chip design for a mega-hiper-refixe-router, its something that you can find installed on most PCs and Macs. But fear not, as you can read at the bottom of the article, the porn industry is well aware of the technology and they will take care of bringing us back to the future in no time.

When you develop with Catalyst, if you have an error condition, you get a pretty interface with access to all the major objects in the request. At the top, Catalyst will place the classical perl error message like "Caught exception in MODULE, at FILE line LINE." This hack takes that classical format and links the "FILE line LINE" with a txmt: link. If clicked, it will open directly into your project in TextMate.

Bye, Bye, MSN

When I worked at SAPO, I started using a MSN account to keep an eye on the pyMSNt transport that we have there. Eating your own dog food and all that. So now is the time to stop using it. I'll unsubscribe the MSN account from the Gateway, and I'll no longer be available on the MSN network. You can add my XMPP address as a buddy: [email protected] Right now, you have a lot of open and decent XMPP servers out there: SAPO Messenger, Google Talk, Jabber.

Negative priority

One of the things I mentioned in my XSF Membership application was my endless curiosity about negative priorities in XMPP. When most people talk about XMPP, they focus on the Instant Message network thats built on top of the XMPP federated network. Some also focus on the aspects of application automation. But even this second group rarely dwells into the wonderful and mystic world of the negative priority. For those out of the loop, the <presence> stanza you send at the start of the session to signal your availability has some child elements.

Alter Ego, your friendly agent

If you want to try some agent-love, then let me introduce you to Alter Ego, your friendly pluggable agent. Alter Ego is a XMPP agent, where everything is a plugin. You can clone the current version with git (recommended, easy to keep track of new features and fixes) or use the tarballs. Right now, you can find it running under my own JID, so yes, I trust it enough to run it on my main account.

GPS fun

So there are all this ingredients floating around: a nice Fortuna GPSmart BT: it has a mini usb that can be used for power, but I still prefer to fetch the NMEA feed over Bluetooth;a Macbook with BT;a 3G phone with good connectivity in Portugal, also with BT;a ejabberd server with PEP support, so I can publish my User Location.The glue of course will be Perl, and the first step is already working.

He can mary again!

Well, the good news is that he can mary and get divorced two or three times now. Update: for those who where wondering what Net::XMPP2 has to do with all this, lets just say that copy&paste are two techniques that I seem not to have mastered yet.

Ok, this way cool. As such, the JSR-666 expert group recommends the introduction of the yoda code-word to the Java language. This keyword commands that the virtual machine "Do, or do not", where there is no corresponding try. [...] Warning: the yoda keyword should only be used in places where the presence of an exception would indicate the Java Runtime Environment is misconfigured or broken. Misusing the keyword may cause a great disturbance in the Virtual Machine, as if millions of voices suddenly cried out in terror and were suddenly silenced

More limitations

The limitations slide that Jobs presented yesterday is of course incomplete. You would not expect it to have the full set of limitations. In the next weeks, people will go over the documentation and find some more. I'll try and keep a list of the ones that are relevant to me, in order of importance: third-party applications cannot run in the background (link via Gruber): this is most unfortunate to those of us who are thinking "XMPP client, XMPP client".

perl warnings

You have to learn to ignore the forrest. There are some perl warnings that hide the real problem. My most hated perl warning is this, the first three lines below: "my" variable @prob masks earlier declaration in same scope at sbin/some_script line 1640. "my" variable $count masks earlier declaration in same scope at sbin/some_script line 1641. "my" variable $t masks earlier declaration in same scope at sbin/some_script line 1642. syntax error at sbin/some_script line 1504, near "next " Those lines are there because the parser had to bail out after detecting the error on line 4, and failed to notice the end of scopes.