Getting My Feet Wet: The OpenNMS iPhone App

I’ve been spending some spare time working on an OpenNMS iPhone app, and things are coming along just great. As many of you know, I do a lot of work with porting various UNIX C/C++ applications to Mac OS X, but despite now having many years of practice doing such things, I actually have very little knowledge of writing C/C++ code from scratch.

I’ve debugged many a bad header, but up to this point I could count the number of lines of code I’ve actually written where I need to manage my own memory on erm… well, 20 hands? OK, bad analogy.

Still, it was with much trepidation that I approached finally hunkering down and learning Objective C. The verdict is: not bad. I did have to go through some growing pains learning how scoping and memory management works, but it’s not as troublesome as I’d feared — and the class libraries are pretty robust. In a couple of weeks, it’s nearly feature-complete for what I wanted to get working for a 1.0 release. All that’s left is the alarm detail page, and being able to acknowledge alarms from the app.

. . . → Read More: Getting My Feet Wet: The OpenNMS iPhone App

Share on Facebook

KDE 4.2.1 in Fink

Yes, that’s right, a post to my blog that isn’t about OpenNMS. 😉

As you can tell, I’ve been pretty busy having fun hacking on OpenNMS lately. While I have been keeping up with my Fink work to some extent, one major thing was still looming: finally getting all the work I did on KDE/Mac released in Fink, now that things have stabilized.

If you’ve been watching the commits for the last few months, you’ve seen the beginnings of that work. Updates to Qt, releases of support things like strigi and soprano… The big hurdle was getting D-Bus in a state where it plays well with KDE/Mac. After some initial hiccoughs, the D-Bus updates have been released to Fink now, and seem to be working well for people.

Today, I released the base packages for KDE 4.2.x into fink: kdelibs4, kdepimlibs4, and kdebase4.

Because of the cross-platform nature of KDE, I’ve released them in 2 variants: mac and x11, so you can run konqueror as an X11 app, or as a mac app. 🙂

Some things will only . . . → Read More: KDE 4.2.1 in Fink

Share on Facebook

Stats Junkie

If there’s one thing I know about people who are involved in network management, it’s that they’re stats junkies. Case in point. (Hah, I mean, how cool is it to poll the weather in OpenNMS…) I put that to the test in the last week, most definitely.

I got slashdotted (and ars technica’d, and dugg) a few days ago, and despite being under the weather, it fired me up to do 2 things.

First of all, it got me excited about working on KDE more. I had a great time at the KDE 4.0 release event and for the first time got strong feedback from KDE folks on what I’ve been working on. I got a little bit of that at aKademy but I also still felt quite a bit like the outsider there. This time around there were a number of people who gave me great feedback, encouragement, and all-around made me feel like a part of the community.

As a result, the thing I’d hoped would happen most after getting the press did happen — the kde-darwin IRC channel is hoppin’ with . . . → Read More: Stats Junkie

Share on Facebook

New KDE/Mac Snapshot

digg_url = ‘’;

Just in time for the KDE release event (grin) — a new KDE/Mac snapshot is available. I will be demoing it at the release event, thanks to Google and the KDE release coordinators for arranging free lodging, and my employer, OpenNMS, for covering my travel!

On to info about the snapshots.

Qt is updated to 4.3.3, and my build tools have been updated to use the KDE 4.0 branch now that 4.0.0 has been tagged. This does mean that kdepim and kdevelop are no longer being built (for now). Also, I’m not building Amarok right now since it has some compile issues, and I need to get with the Amarok folks to figure out what to do about some architectural issues (no Plasma on OSX).

Nothing huge code-wise has changed from a Mac point of view, other than all of the general updates that have gone on in the KDE codebase since the last snapshot. It appears that kdeinit4 and kded4 both have some crashing issues related to something deep in Qt, I will be investigating it when time permits. . . . → Read More: New KDE/Mac Snapshot

Share on Facebook

Good News, Everybody!

(No, it’s not a suppository.)

Trolltech has released phonon backends for GStreamer, DirectShow, and QuickTime/CoreAudio, and will be maintaining them in the KDE codebase!

I guess it’s time to start another build and see how Amarok sounds with nice CoreAudio output.

Share on Facebook

Share on Facebook

New Fink Package Database Available for Testing

As of last night, the new PDB seems to be working alright with the (few) testers it’s gotten from fink-devel yesterday evening, so I’d like to open this up to a wider audience.

Please, give the new test code a whirl and let me know if you see any issues.

Share on Facebook

Share on Facebook

(Finally) New KDE/Mac Snapshot

So I’ve finally gotten a full KDE/Mac build done, and new snapshots are available.

The kdeaddons package went away, and QCA is now part of kdesupport (since they’ve gone on and done new development that isn’t compatible with current KDE trunk). I’ve done some spot-checking, and as always, things that are simple tend to work better — most of the kdegames stuff looks great as always.

Everything in KOffice is unfortunately failing with the error:

11/17/07 12:36:56 AM [0x0-0xb50b5].kspread[11258] ASSERT: “not isInitialized” in file /Users/ranger/cvs/kde-mac/, line 70

I haven’t yet figured out why it’s happening yet, but expect an update once I do.

Amarok actually runs and plays music, although it inexplicably loses it’s menu bar completely, so there isn’t much else you can do with it. I suspect it might be the splash screen stuff confusing Qt, but I’m not positive.

BUT, the big news is that it actually works on Leopard too. 🙂 I’ve made an ugly patch that fixes the CoreFoundation fork/exec issue and I was able to open pretty much everything (well, everything that didn’t crash for other reasons… <grin>). . . . → Read More: (Finally) New KDE/Mac Snapshot

Share on Facebook

Fink + Leopard Potpourri

Just wanted to give a quick update on a mix of Fink and Leopard issues.

First of all, if you get the error, “Failed: Can’t fix GCC after Repair Permissions” it’s because the XCode installer decided not to bother erasing your /usr/sbin/gcc_select even though it shouldn’t be there anymore. It should be safe to erase it, but if that scares you, you can upgrade to 0.27.8 and your problem should go away as well… (Fink does not use gcc_select anymore on 10.5 as of 0.27.8.)

Also, people have been coming out of the woodwork hitting the OpenGL bug (“ld: cycle in dylib re-exports with /usr/X11R6/lib/libGL.dylib”) so I want to mention it here specifically for search engines to make it easier for people to find the fix.

The fix is to add the following line to your linker command: -Wl,-dylib_file,/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib:/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib

It should be a perfectly safe no-op on older Mac OS X releases, but makes sure that the XCode 3.0 linker doesn’t get confused and try to be too smart about finding the correct libGL.dylib.

I’ve also been trying to solve a new-on-leopard issue where . . . → Read More: Fink + Leopard Potpourri

Share on Facebook

OpenNMS Installer

So I’ve spent the last week or so working on a Windows installer for OpenNMS, using IzPack, an awesome Java-based installer. After some trial-and-error getting it to handle paths nicely (some of our code is not spaces-in-paths clean, so I had to hack something up to get the DOS 8.3 filename), it seems to be working!

We’re going to spend some time testing it and making sure everything works well enough to be considered an “alpha”, but this certainly appears to put us on track to have a nice installer working shortly after 1.3.8 is out — which should be any day, there are only a couple of bugs left on the blocker list.

…and since IzPack is a Java-based installer, it actually works on Mac OS X and Linux as well, and in theory, anywhere else that supports Java 1.5… (Although it is still recommended you use native package management, since you’ll get config-file management and other nice stuff…)

Share on Facebook

Share on Facebook

Fink and Leopard

If you’ve missed it, David posted to the Fink news that we have initial Leopard support.

Thanks to apple keeping C++ binary compatibility this release (phew) it is most definitely the easiest upgrade yet! For most people, you can just do a “fink selfupdate-rsync” (or “fink selfupdate-cvs”) to get the fink 0.27.7 tool, and it will automatically convert your fink installation to be Leopard-compatible. If you’re doing a fresh fink install, you’ll have to install XCode 3 off the Leopard DVD, and then bootstrap from the 0.27.7 tarball, but it’s a very painless procedure. A binary installer is on the way.

The best part is, increased POSIX compliance and better overall system headers in 10.4 has paid off in most Fink packages working out of the box on 10.5 (minus the stupid linker bug which apple did not fix in time for 10.5.0) and what’s left will get updated as problems arise. The transition (as compared to the 10.3 -> 10.4 gcc-3.3 to gcc-4.0 move) has been considerably less painful.

Since Leopard is still very new, and not many maintainers have had the chance to upgrade, if you find issues . . . → Read More: Fink and Leopard

Share on Facebook