WordPress 3 rocks
WordPress 3.0 integrated Multisite support! I only maintain two blogs, but it was already handy to put them under the same “Super Admin” install. WordPress really is pretty smooth these days and highly customizable.
WordPress 3.0 integrated Multisite support! I only maintain two blogs, but it was already handy to put them under the same “Super Admin” install. WordPress really is pretty smooth these days and highly customizable.
I’ll be at the GNU Hackers Meeting this weekend and at GUADEC next week.


Matthias Klose released IcedTea6 1.8. He still doesn’t have a blog (or is that old fashioned already in these web 3.0 micro-message-blogging days). So here is the release announcement he made:
We are proud to announce the release of IcedTea6 1.8.
The IcedTea project provides a harness to build the source code from OpenJDK using Free Software build tools. It also includes the only Free Java plugin and Web Start implementation, and support for additional architectures over and above x86, x86_64 and SPARC via the Zero assembler port.
New in release 1.8 (2010-04-13):
The tarball can be downloaded here: http://icedtea.classpath.org/download/source/icedtea6-1.8.tar.gz
The following people helped with this release: Gary Benson, Deepak Bhole, Andrew John Hughes, Mark Wielaard, Nobuhiro Iwamatsu, Matthias Klose, Ed Nevill, Pavel Tisnovsky, Xerxes Rånby, and many others.
We would also like to thank the bug reporters and testers!
To get started:
$ hg clone http://icedtea.classpath.org/hg/release/icedtea6-1.8 $ cd icedtea6-1.8
Full build requirements and instructions are in INSTALL:
$ ./configure [--enable-visualvm --with-openjdk --enable-pulse-java --enable-systemtap --enable-nss ...] $ make
Did an interview for FOSDEM about SystemTap. It discusses a wide range of topics. About when I got involved with Free Software, working for Red Hat, how FOSDEM helped the libre Java community, getting Fedora more observable by adding static markers into programs, the history of observation tools (tracers, profilers, debuggers) on GNU/Linux, comparisons to other tools like DTrace, GUI frontends, Eclipse integration, the future of SystemTap and of course why you should come to FOSDEM.
Really looking forward to Fosdem next month. This year I will be giving a talk What is my system doing – Full System Observability with SystemTap during one of the main tracks. There will be some demos of the new systemtap java and python tracing support that I blogged about earlier.
Michael Meeks published a though provoking essay called Some thoughts on Copyright Assignment. It is a must read when working with Free Software projects that request legal assignment of contributions to a corporation.
It contains sane recommendations both for individual contributors, project leaders and corporations seeking assignments.
Just checked in support for getting java backtraces from hotspot through systemtap. This is the next step in making not just the kernel and native programs observable, but also runtime based languages with SystemTap. And it is pretty powerful. It allows you to answer the question “How did I get here?” in combination with any of the SystemTap tapsets for VM level tracing, Java method entry/exit tracing, Native methods (JNI) tracing, or any other basic SystemTap function, statement or process probe that points into your java process. Just add one of the print_jstack() variants to your code (possibly including native frame and method signatures) and suddenly it is really easy to see what triggered a particular code path:
$ stap -e 'probe hotspot.jni.CallObjectMethod { log (probestr); print_jstack() }' -c 'java ModalTest'
CallObjectMethod(env=0x7f9d1000a1b8,obj=0x7f9d73efcaf8,methodid=0x7f9de4088b70)
sun/font/FontManager.getFont2D
sun/java2d/SunGraphics2D.checkFontInfo
sun/java2d/SunGraphics2D.getFontInfo
sun/java2d/pipe/GlyphListPipe.drawString
sun/java2d/SunGraphics2D.drawString
sun/swing/SwingUtilities2.drawString
sun/swing/SwingUtilities2.drawStringUnderlineCharAt
javax/swing/plaf/basic/BasicGraphicsUtils.drawStringUnderlineCharAt
sun/awt/X11/XButtonPeer.paintText
sun/awt/X11/XButtonPeer.paint
sun/awt/X11/XButtonPeer.paint
sun/awt/X11/XRepaintArea.paintComponent
sun/awt/RepaintArea.paint
sun/awt/X11/XComponentPeer.handleEvent
java/awt/Component.dispatchEventImpl
java/awt/Component.dispatchEvent
java/awt/EventQueue.dispatchEvent
java/awt/EventDispatchThread.pumpOneEventForFilters
java/awt/EventDispatchThread.pumpEventsForFilter
java/awt/EventDispatchThread.pumpEventsForFilter
java/awt/Dialog$1.run
java/awt/event/InvocationEvent.dispatch
java/awt/EventQueue.dispatchEvent
java/awt/EventDispatchThread.pumpOneEventForFilters
java/awt/EventDispatchThread.pumpEventsForFilter
java/awt/EventDispatchThread.pumpEventsForHierarchy
java/awt/EventDispatchThread.pumpEvents
java/awt/EventDispatchThread.pumpEvents
java/awt/EventDispatchThread.run
You currently need both IcedTea6 from mercurial and Systemtap from git to play with it. But both projects are planning new releases soon.
At FudCon, David Malcolm, Jon VanAlten, Will Cohen and I sat down, had some fun and made tracing python methods through systemtap possible:
0 python(20122): => search_function in Lib/encodings/__init__.py:71
15 python(20122): => normalize_encoding in Lib/encodings/__init__.py:49
37 python(20122): <= normalize_encoding
170 python(20122): => <module> in Lib/encodings/utf_8.py:8
193 python(20122): => IncrementalEncoder in Lib/encodings/utf_8.py:18
206 python(20122): <= IncrementalEncoder
251 python(20122): => IncrementalDecoder in Lib/encodings/utf_8.py:22
264 python(20122): <= IncrementalDecoder
310 python(20122): => StreamWriter in Lib/encodings/utf_8.py:25
323 python(20122): <= StreamWriter
340 python(20122): => StreamReader in Lib/encodings/utf_8.py:28
353 python(20122): <= StreamReader
367 python(20122): <= <module>
391 python(20122): => getregentry in Lib/encodings/utf_8.py:33
410 python(20122): => __new__ in Lib/codecs.py:77
429 python(20122): <= __new__
440 python(20122): <= getregentry
462 python(20122): <= search_function
The coolest part is that it works through the existing patch to python for adding dtrace support. Some small tweaks to the autoconf detection was needed, but the rest was used as is.
If you want to learn how to add static user space probes to your program/package please see Will’s excellent guide. Adding User Space Probing to an Application: A simple example adding markers to a user-space application with SystemTap.
Currently stuck at heathrow airport… But I will make it to Canada somehow for FudCon. Hopefully with some nice systemtap jstack java hotspot backtrace examples.
They finally actually started to work. Weeee!