2009-04-26

Ubuntu 9.04 (Jaunty)

I upgraded my laptop to Ubuntu 9.04. Upgrade went smoothly. But to my horror, the laptop would no longer power down when I shutdown Ubuntu. A little research and I found this bug report, and a simple solution: install the module linux-backports-modules-jaunty.

2009-04-01

NS-3 and Packet::Copy

Grr! I have lost track of how many times I forgot that I need to packet->Copy () some packet. Or how many wasted hours of work. Clearly the worst design decision in NS-3, ever.


for (std::set::const_iterator poaI = binding.oldPoas.begin ();
poaI != binding.oldPoas.end (); poaI++)
{
NS_LOG_LOGIC ("Terminal " << terminal << " associated; sending BU (terminal=" << terminal
<< ", newPoA=" << bu.newPoa << ") to " << *poaI);
- m_buAgent->SendBu (packet, *poaI, msg.GetMessageSequenceNumber (), bu.terminal);
+ m_buAgent->SendBu (packet->Copy (), *poaI, msg.GetMessageSequenceNumber (), bu.terminal);
}



Note to self: in the future, when ever transmitting a packet inside a for-loop, make sure to Copy each transmitted packet!

2009-03-31

Python will switch to Mercurial (Hg)

Python will switch to Mercurial.

I like bazaar only slightly better, but good thing GIT is out of the picture!

Note: Mercurial is the DVCS what NS-3 has been using since the beginning.

2009-03-29

Proof that GIT is more difficult to use

Proof that GIT is more difficult to use than other alternatives:

1. Instructions to checkout the stable branch of freeradius:
"""
$ git clone git://git.freeradius.org/freeradius-server.git radiusd
$ git fetch origin stable:stable
$ git checkout stable
"""
2. Instructions to get the 6.0 branch of mysql:

"""
Get this branch: bzr branch lp:mysql-server/6.0
"""

Why most GNOME developers chose to use GIT instead of bazaar or mercurial is beyond me... *sigh*

2009-03-10

Books, reading

I finished reading David Palmer's "Emergence". Interesting and original writing style, intelligent writing, but all too familiar post-apocalyptic, and save-the-world plot themes.

Now reading Jack McDevit's "Seeker". More space archeology, searching for lost civilizations through the galaxy. I love the Alex Benedict character. Both "A Talent For War" and "Polaris" were excellent novels.

Yesterday I mail ordered four new books: William Gibson's "Neuromancer", Juliet Marillier's "Wolfskin", Stephen King's "It", and Isaac Asimov's "The Gods Themselves". So, mostly SciFi, with a sprinkle of fantasy (Marillier) and horror (King). It's good to vary reading style slightly, once in a while ;-)

2009-02-25

Interactive Python Shell in NS-3 PyViz

With ns-3-pyviz, one of my patterns of debugging simulations was to run "ipython -gthread myscript.py". This would run the gtk main loop in a thread and allow me to interact with the IPython shell and inspect a live simulation, to find out what is going on.

Since ipython -gthread stopped working in recent versions, I decided to just follow a recipe for embedding an IPython shell into an existing pygtk program. It has been pretty easy to do, thanks to reusing the work of others (Eitan Isaacson, in this case); thank you, open source! :-)

2008-12-27

WAF 1.5.x

WAF 1.5 has been out for a long time already. However, it changes so much of the API that did not have time yet to port any of projects to it. Additionally, it had more bugs and less portability testing when it came out, compared to WAF 1.4.x.

With the holiday season I finally found a bit of time to pick up on WAF development. First with testing the portability of WAF on non-linux platforms. I have tested, and fixed bugs, on Win32 (both cygwin and mingw, but not msvc unfortunately), and Mac OS X.

Next I started porting some projects. I have created experimental branches using the new WAF for PyBindgen, GnomePython, and GnomePythonDesktop. NS-3 will be harder, but hopefully I should get to it too, eventually. More WAF bug fixing ensued.

There's a catch. I have found some limitations in standard WAF trunk, namely the lack of a good system-command/makefile-rule system. Since I do not wish to continually clash with Thomas Nagy over my "vision" for WAF, I simply created a new waf bazaar branch, thanks to launchpad vcs imports. The projects I have been porting all use this modified WAF version. Thankfully, merging with bazaar is a breeze, so keeping my branch in sync with WAF trunk is very painless.