Archive for the ‘Open Source Software’ Category

Firefox 3.0.6 is Out with Security Fixes

Wednesday, February 4th, 2009

Firefox.jpg

I noticed that Firefox 3.0.6 was out this morning with a handy load of security and stability fixes. I think that's the standard mantra these days for finding holes in the code that can be exploited for incoming hacks and plugging them without acknowledging that they ever existed in the first place.

After all, if there's a published problem with a certain library - like OpenSSL, then the update would specifically state that in the release notes. But hey... that's reasonable. They are probably working on a big new release and these are the maintenance things that need to be done given all the users that are depending daily on Firefox as their browser.

Trying to Clean Up Some Ancient Audio Files

Tuesday, February 3rd, 2009

WaveEditor.jpg

I was looking at trying to clean up a few digital recordings I'd made back on my old NeXTSTEP turbo Color Slab, which is now gone to the great computer room in the sky, as there was a lot of noise in the samples and it seemed like a simple thing to do - filter it, baby. High-pass filter to be more precise. So I started looking around to see what I had to work with.

Unfortunately, when I sent an email to the Fission creators, it was clear that Fission was going to be a time-slice editing tool - lossless editing in their marketing terms, and I can certainly respect that. It's far more likely in this day and age to have access to a good digital master than the crummy digital master I have now. But be that as it may, it was clear after emailing them that I wasn't going to be able to use Fission for this - I had to look elsewhere.

The next thing I saw was Audacity 1.3.7, a free audio editor. It looked like it had decent capabilities, including a lot of plugins that got installed into the system at /Library/Audio/Plug-Ins/ so that they might be used by many different audio editing applications. While I liked the capabilities of Audacity, it just wasn't getting done what I needed. However, it did point out to me that these plugins might be useful by other apps, and that was very helpful.

The next thing I found was something I'd hit on before - Wave Editor 1.4.4. This was a very nicely done audio editor, and while it was $79, I'm not against paying for a good tool when I see it. What I was able to see when I started playing with it, in depth, was that it had the tools to filter out the noise pretty effectively. I was still a little concerned that it suppressed the volume as much as it did when I applied the HPF, but that's probably something I can deal with in the app as well.

It had the nice tools like a spectrum analyzer and lots of ways of looking at the data - very much as I might have written it - from a math and engineering standpoint. Pretty nice. I also like that they have a complete support system built right into the app so I can ask a question if I get stuck on something. Pretty nice for a tool like this that there's a steep learning curve on.

So I'm going to see if I can't fix up these old files and clean out the noise. Sure do hope so.

GitX 0.6.1 is Out

Tuesday, February 3rd, 2009

GitX.jpg

This morning I noticed that GitX has been updated to 0.6.1 with quite a few new features from version 0.5 that I had been running. I haven't done a lot in Git, but I know that's where I'll be doing all the work I want to do, and for the little projects that I have put into Git, it's a great little tool for visualizing the repository.

I'm still a command-line guy, but old habits die hard. If only Xcode put in Git support. That would be great.

Cyberduck 3.1.2 is Out

Monday, February 2nd, 2009

Cyberduck.jpg

I noticed this morning that Cyberduck 3.1.2 is out with a dozen or so new features. There seemed to be a few issues with the WebDAV support and the Amazon S3 support, but they managed to fit in a few new features as well.

Great little app if you need stand-alone FTP/SFTP file moving.

Colloquy 2.2 is Out

Monday, February 2nd, 2009

Colloquy.jpg

This morning I was starting up Colloquy to put in the connection parameters for the new CorePlot chat channel (irc.oftc.net/#coreplot) and noticed that Colloquy 2.2 was out with quite a few new features.

These included a few high-CPU usage fixes and several localization fixes. In general, this had been a significant update. I know they have been working on the iPhone app for a while, but it's nice to see that they haven't given up on the Mac app, either. Very nice.

Interesting C++ Matrix Library: Eigen

Wednesday, January 28th, 2009

cplusplus.jpg

I was reading the RSS feeds this morning when I ran across this interview of two lead developers on a C++ templated matrix library. Very interesting stuff. Their project is called Eigen and has some very interesting capabilities. First, it's self-contained. Secondly, it's all C++ and templated, so it supports both fixed and variable sized arrays and matrices.

I'm not sure I'll do anything with it, but if I get into a situation when I need matrix algebra, I'm going to give this a go. It's probably not the highest performance library in the book - face it, it's all generic templates. But for that there's a universe of decent performance at a very marginal cost. Sounds very nice.

So I'll keep it in mind. Useful if I need something like this.

Bean 2.1.0 is Out

Tuesday, January 27th, 2009

Bean.jpg

Bean is a nice, lightweight word processor - somewhere between Pages and Word on one end and TextEdit on the other. It's got the ability to read and write Word docs, and it's pretty good about the rendering. It's fast to start and load, and is just the right tool for those in between jobs.

Well... today I noticed that they had finally released Bean 2.1.0 - a major step up from 1.3.3, which was the last stable release. The release notes are significant as they have changed a ton of things in this release, and I'm only just now starting to dig into all the features. What I'm hoping is that they didn't loose the target audience - that middle-ground of word processing. More than TextEdit with Word compatibility, but not as heavy and feature-laden as Pages.

We'll see as time goes on.

Getting a Really Clear View of Python

Monday, January 26th, 2009

python.jpg

I've decided this afternoon that I haven't been able to really give Python a clear chance. I've been using it for over a year as part of this vendor's application - it's the embedded language that virtually everything is done. That, in itself is not bad, as one of Python's strengths is the ability to embed it easily in C/C++ applications. No... it's what they have done to it that makes it hard to get a really good read on Python.

For example, you should be able to run a python script, and upon proper loading of libraries, get all the added functionality of the loaded module - like sybdb. Standard stuff. In fact, you should be able to use any python of the same version on the same box, and if you can load those libraries you should be good to go

The problem is, they have fiddled and monkeyed with the language to the point that this isn't really possible. You can get some things but others are only half-working and others still are completely broken. This means that you need to run their python and set up a very complex environment to get this running.

This represents a huge initial cost to running a python script. No such thing as a quickie... no sir. You have to really want to run a new python script. It's a pain. They are not really flexible. It's a system that makes python look bad. And I'm only just coming to realize what part of this train wreck is the vendor's stuff and what part is the python.

As I get more experience with the system I realize that there are a few things I'm not a fan of that are indeed python. However, they are completely overshadowed by the vendor's mistakes and limitations. It's amazing.

So I'm trying to give python the benefit of the doubt and realize that 99% of all the problems I'm seeing with this system is not the fault of python, but the implementation they slapped around it. Too bad. I'm sorry, python.

UPDATE: case in point: the difference between the '=='/'!=' and 'is'/'is not' operators in an if statement. For example, consider the two code samples:

  if value == None:
      print 'Value is not defined.'

and:

  if value is None:
      print 'Value is not defined.'

The difference is that the equality ('=='/'!=') operators call a method on the objects to do a value comparison, and the instance operators ('is'/'is not') do a instance comparison (pointer comparison) on the two instances. This means that the latter is significantly faster than the former, and in the case of None, it's the preferred method as well as there is one and only one None object in the python runtime. This makes the latter test preferred, and faster. That's pretty cool.

Lots of Good Design Ideas Bounced Around for CorePlot

Monday, January 26th, 2009

GoogleGroups.jpg

The last few days Drew has started a few threads on the CorePlot discussion Google Group and it's brought out a lot better discussion than I really expected to hear so early in the game. There are clearly a lot of folks that have done plotting work - several PhDs in the sigs. Nice. It's a group of guys like myself that have tried and had some success (or not) on different platforms, and certainly more than a little experience on the Mac platform.

All the ideas I had - preferences and strong beliefs, have been covered already so I don't yet feel the need to get into the discussion, but if I hear something that makes me nervous about what they plan, I'll be sure to chime in.

The basics are very nice:

  • All ObjC - this is nice as the DataGraph work is a lot of C++, which isn't bad, but it's not as clean as ObjC and it means that a lot of the nice things available in ObjC aren't going to be in DataGraph. Specifically, categories for being able to "front" datasets to the data graphs.
  • Protocol/Category for Data Access - like this as it means that I can make a data source object (like the NSTableView) and feed multiple things. Very nice.
  • Healthy Debate on Datatypes - lots of discussion on double versus NSDecimal. I can see merits of both, but speed is going to favor the double, and as long as that's an option, that's OK. It seems there may be two ways to do this and one essentially feeding the other. Not bad.
  • Signal Processing is Out - good, that should be done by the caller, or they can make a layer between the CorePlot stuff and their stuff. Keep it to graphing.
  • Solid 2D Graphing - all the things you'd expect are there for 2D graphs. Everything seems solid and even really nice for a few things like CoreAnimation for plot fading in/out. Nice goodies, but stuff I might not use very often.

There are a lot of things I'm looking forward to use this for: the Potientials code I have - been waiting on some nice graphing for a while. Then there's a series of "monitors" that are accessible via DO or sockets library in CKit - for example. It'd be nice to be able to have a general "strip chart recorder" for data coming out of an app. Like an interesting take on debugging. Hook this up, and bang! you have an independent plotting window that takes your data and plots it nicely. Neat ideas. Can't wait to get started.

This is certainly going to update my ObjC (2.0) skills as well as all the new classes in 10.5... going to be an exciting time.

Slight Confusion with Google Group Invitations

Thursday, January 22nd, 2009

GoogleGroups.jpg

In joining the Mac OS X open source graphing package (CorePlot) group on Google Groups today I ran into something I've hit a few times before - people invite me based on my email address, which makes sense, but most of the time that's my "transient" email account - currently Comcast. What I ended up with was an invitation on my Comcast email account and not on my Gmail account where all my Google Groups are registered.

The problem is, I want them all on the same Gmail account. What I've had to do in the past was manually join the group, or have the owner send a new invitation to my Gmail account. While I sent an email to the group owner, I decided to try and fix this once and for all - by creating an account for my Comcast email account.

It wasn't all that hard - I basically did it in about 15 mins and in the end, I had my Comcast email as one account, and I'd unsubscribed to the CorePlot group. I'd then put all my other email addresses on my main Gmail account, so that should a new invitation come in, it's possible to have all them routed to the one main Gmail account. At least that's how I'm guessing it works. If not, I'll create another and then deal with that.

While it was a pain to have to go through all this, I have to say that the UI for the Google Groups is pretty nice. It's about as good as I could expect for a web-based app - even Google. There are a lot of screens, and it's easy to get lost in the maze of forms to set up the account and profile. It's something to get used to, but once you get the idea of where things are, it's a decent interface and gets the job done.

I'm glad to have cleared this up, anyway. Going forward, I shouldn't have any more issues of getting invitations under one email address and not having an account on Google Groups.

UPDATE: I will say that the support for Safari in Google Groups was far better than Camino and Firefox. I'm not sure why that is, maybe it's just because they have more Safari guys and they wanted to be supported well, or maybe it's the feature set in WebKit - hard to know. But things are much nicer in terms of uploading images and such in Safari. Gotta love that!