Monkeying Around

Cruise Monkey Want Mobile

It’s almost time for the 4th annual JoCo Cruise Crazy cruise, and once again, I’ve foolishly decided to spend WAY too much of my free time on putting out an app to be used on the ship.

What’s Different This Year?

Almost everything. I started out refactoring last year’s CruiseMonkey codebase, but it was a bit creaky. It’s definitely interesting to see how far HTML5 “native” app development and PhoneGap/Cordova development have come in just a year.

After playing a little bit with AngularJS for a work project I was really impressed and wanted to refactor to Angular for this year’s CruiseMonkey. In the process of doing so, I ran into Ionic, an HTML5 framework built specifically for making mobile UIs, and reworked the frontend using that.

While there was a direct line from there to here, in the end the codebase looks nothing like CruiseMonkey 3.

Reimagining the Backend

One of the biggest problems with last year’s CruiseMonkey was the spotty wireless on the ship. Since CruiseMonkey 3 was built as a client/server app, it basically . . . → Read More: Monkeying Around

Share on Facebook

Schrödinger’s Bugs

Working on an open-source project teaches you a few things about dealing with software developers, and reporting bugs. I’ve been in the open-source world for a long time, and I remember when I first started out as a user of software, I felt glad to even have access to these tools at all, and I felt a reluctance to “bother” the developers with issues if I wasn’t sure it was only me.

The problem is, issues are a bit like Schrödinger’s cat: they don’t exist until the developer knows about them.

Since I’ve become a developer of open-source software and seen things from the other side, I have one request: err on the side of opening an issue. There’s nothing I love more than having an issue opened, and being able to fix it, and tell the user their problem is solved. It’s that kind of feedback loop that is one of the best parts of developing software without a marketing and sales department sitting between you and your users.

So without further ado, I’d like to point out a few comments in this vein. Note that when I say “issue,” it could be anything: a showstopper . . . → Read More: Schrödinger’s Bugs

Share on Facebook

KDE4 Progress

I’ve been making good progress on getting KDE 4.4 (release candidates) working. It’s been quite an interesting ride, in both a good and bad way. =)

First, there’s the fun of 10.6 making it even harder to have code that forks without it accidentally exploding on the CoreFoundation fork-without-exec prohibition. I was able to solve this with a combination of fixes from macports’ kdelibs4, and some of my own code which changes things to use low-level POSIX APIs instead of Qt APIs for some bounds-checking before execution.

Next, there’s the fun of Phonon. KDE 4.4 requires a newer version of Phonon than what ships with Qt (even Qt 4.6). On OSX it gets even hinkier, since the QuickTime plugin for Phonon requires private Qt headers, so the only sane way to build it is to build the Phonon included with Qt, rather than building it as a separate project.

I ended up adapting a patch the Kubuntu folks use to inject a modern Phonon into Qt 4.6. In the process, I finally got around to learning my way around Git (and gitorious), and have set up my own . . . → Read More: KDE4 Progress

Share on Facebook

Fink and 10.6

It’s been a crazy couple of weeks, with Snow Leopard out, people are scrambling to fix packages that haven’t been already. I was a slacker in running the seeds this time around, and haven’t really had much chance to give my packages a serious look until recently, but FYI, I am working on getting everything building everywhere I can.

Some notes on popular stuff:

KDE3: There were a number of annoying things blocking KDE3, but with the approval of some of the other maintainers, I’ve got a lot of the deps that were failing fixed up, and I’m working my way through a full KDE build and hope to have everything hunky-dory in unstable in the next few days. KDE4: First of all: there will not be KDE4 on x86_64 in the near future. Qt4/Mac 64-bit does not have the Qt3Support framework, which plenty of KDE4 bits still depend on. I’ll definitely be making sure that KDE4 builds fine in 32-bit mode, and in 64-bit X11 though, and after that, well, we’ll see how much work it is to excise Qt3Support from at least the base libraries. In the process, I’m going to try to . . . → Read More: Fink and 10.6

Share on Facebook

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.4 Released to Fink Unstable

Just a note to say that I’ve released KDE 4.2.4 to Fink unstable. And now it’s time for the fun part: big bold red text telling you it breaks stuff.

KDE4/X11 Plasma Desktop on Mac OS X in Xephyr   Working KOffice file asociations

Actually, that was just the text saying that I was going to have big bold red text telling you it breaks stuff. Here’s the real thing:

It breaks stuff!

But let me explain: it makes things better! Because of some esoteric stuff relating to case-sensitivity, existing packages, and bugs in Fink dpkg, there were issues on a number of people’s systems with the existing KDE packages and conflicting paths. Of course, the root of the issue is that Fink didn’t have a proper “/opt” type directory, so a number of packages for quite some time have been using “/sw/lib” for that purpose (/sw/lib/qt4-x11, /sw/lib/flex, etc.)

Since I was going to have to move things around anyways to fix this issue, I decided to do it right. As of Fink 0.29.7, the package . . . → Read More: KDE 4.2.4 Released to Fink Unstable

Share on Facebook

The Open Source Philosophy (Continued)

The conversation has continued over at the 451 CAOS Theory blog. In response to my musings on intent, David Dennis asked a great question:

Benjamin,

A question for you (and Tarus). Is this topic important to you because:

You believe it’s an important marketing differentiator for the software you work on vs. competitors You believe it’s an important philosophical / moral issue worth evangelizing both

Tackling a) involves traditional marketing objectives around branding, awareness, messaging, positioning, etc. Not necessarily a cake walk, but certainly possible to make progress.

Tackling b) involves changing the way people think and behave, which is much much more challenging.

My response is:

Definitely both.

From a personal point of view, I’ve been involved in open source software since before the phrase was coined, so I do feel that it is at least a personal philosophical issue. BUT I’m also a pragmatist, and I know that arguing purely for philosophy’s sake will not convince anyone.

That said, that philosophy drives me to support the companies that I think are doing it “right.” I work for OpenNMS not just because I . . . → Read More: The Open Source Philosophy (Continued)

Share on Facebook

KDE 4.2.2 in Fink Unstable

I’ve just committed all of KDE 4.2.2 to Fink Unstable.

There’s still a lot of rough edges, but it’s definitely at least beta quality, and a lot of apps work great. It includes a number of fixes, including updated scripts to register all of the desktop files properly with ksycocoa on post-install, case-sensitive filesystem fixes, and a number of other packaging fixes. I’ve also finished packaging all of the “core” KDE distribution.

I’ve got Amarok working in my experimental tree, I just need to do a little more testing before I can release it (It’s based on a snapshot of what will become Amarok 2.1.0, since 2.0.x has some build issues on Mac OS X that are difficult to resolve). Also, the KOffice folks just put out a release candidate that I’m working on finishing up packaging on. Hopefully I will have that out soon.

As always, please let me know if you run into issues. I’ve test-built on 10.5/i386 and 10.4/ppc so I’m sure some 10.4/i386 and 10.5/ppc users will give bug reports soon. 😉

Share on Facebook

Share on Facebook

KDE4 Fink Unstable Releases

I’ve had a chance to get a few more of the KDE4 packages polished up into what I hope is a releasable state. 🙂

Please give them a shot, let me know if you have any issues, if things don’t work as expected. I know one major thing to look into still is to get document-opening working. Right now the KDE desktop files describe which apps should open different document types, but that is not being translated to OSX’s document-opening APIs.

The following packages were released to unstable today:

digikam-mac and digikam-x11 kdeaccessibility4-mac and kdeaccessibility4-x11 kdeadmin4-mac and kdeadmin4-x11 kdeartwork4-mac and kdeartwork4-x11 kdeedu4-mac and kdeedu4-x11 kdegraphics4-mac and kdegraphics4-x11 kdemultimedia4-mac and kdemultimedia4-x11

Big ones left on the hitlist are amarok2 and koffice2. Amarok2 I’m starting work on again as a snapshot of the 2.1.0 build, since there are some issues with 2.0.x building on OSX. KOffice is actually working pretty well in my experimental tree, but 2.0 release candidate is due out in the next week or so, so I’m going to wait to update to that before doing a release.

Share on . . . → Read More: KDE4 Fink Unstable Releases

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