I’m a component guy. I like to make tools that other developers use. Classes in various languages, scripts, etc – I really like to create things that make my life as a programmer easier.
Today I was working on a new component (a windows menu class for wxWindows), and I was progressing along with the unit tests. However, I had a really hard time with the output. The particular unit test tool I use, TestSuite, is nice, lightweight, and provides detailed output by way of a standard stream.
Normally I’m using ProjectBuilder/xCode when I’m using this framework, so the output goes to the output window supplied by those environments. I was using CodeWarrior in classic today, however, and couldn’t get SOIUX (the console-like output window) to work.
I used the wxMessageBox() routine for a while, but reached its character count limits real fast. So then I dug further…
Comments Off on C++ and Components
Tuesday I focused almost entirely on the backup options. Most of the backup options need to be run after the general pass/fail of the whole script. Why? Because if the script fails, we would need to (keep track of) and undo all of that stuff, in order to revert.
So we do all the options at the end. Since I’ve managed to progress my way, in code, to the end of the script, that’s what I worked on yesterday.
Being at the end makes forward progress slower, I think. Before I was able to jump over functionality and say “I’ll do that at the end”, or “I’ll think about that for a while and come back to it”. Now all of those things are catching up with me. I’ve got probably a quarter of my whiteboard filled with things I need to go back and do.
Comments Off on N Step Program
I think I’ve got this right. Please correct me if I don’t.
With OS X, Apple recommends everybody use FSRefs to manage their file objects, instead of the old FSSpecs. FSRefs give you long file names, large files, and a slew of other things. Except you can’t use an FSRef to refer to a file that doesn’t exist.
So, right now everybody who programs in real languages (C/C++, Pascal, etc) have to remember this, and if they are referring to a new file, they use FSSpecs (which always could refer to new files.) Very annoying, but one can work around it (there are system calls to go from FSRefs to FSSpecs).
Now, I ran across this limitation in Python once, and I just did in Applescript. Here’s the problem:
Comments Off on I love FSRefs
Starting back on the VonTrapp project after having pretty much left it for a few weeks. Since that time there have been two pretty big checkins by Other People.
So now I have to recompile the codebase. All of it. I would rather be working right now, making actual progress. Instead I’m waiting for a compile to happen. There are also two errors in the compile that I have to track down somehow. I’ll be waiting for a while – the pascal code takes about 15-20 minutes to compile on my machine, and the C++ code probably takes 15 as well.
At least it’s compiling the C++ now. Halfway done, probably.
Counting down the days until I order/get my new G5… I’m pretty sure I’d already be working on me stuff now if I set that baby to compiling this.
I would almost prefer compiling remotely, on the On Load xServe then I would locally. At least that’s fast. A laggy interface, with the whole Remote Desktop/TB2 thing going on, but I can mostly deal.
Comments Off on I just want to Work!
Ohhhh man. I’m getting spam in my blog now.
Have I mentioned how much I hate spam?
I’m taking steps towards solving the problem, and we’ll see how that goes.
Update:I installed MT-Blacklist and the comment spam is gone. It appears to work fine to me – let me know if you see any slow loading issues or anything out of the ordinary.
I’ve been working on adding an RSS feed to some Open Source Software I use. I had the initial implementation up and working in 3-4 hours, spent 2 hours yesterday testing it out on my Real Live Tester Server (and fixing the issues – including validation) that I found there.
Today I spent another hour fixing a bug I found (I needed to html encode entities better) in the script.
Ok, so 6-7 hours feels like a long time, when you add it up. I guess it was, really. ‘Cept that I did it in PHP, a language I don’t really know, and this was the first time I’ve generated a RSS feed. So there were some subtle points I didn’t know about my first pass through.
Oh, and there were some subtleties to the underlying bit of open source software that I didn’t know off the bat as well.
Plus it’s now implemented in three places, in various states of CVS synchronicity. So updating things means careful consideration, manual copying, and sometimes retyping in code.
But, between three different servers, it should get a good work out in the next week or so. After a good bit of testing I plan on releasing the modification back to the community, with a big Hey It Worked For Me disclaimer.
And the RSS format itself was a lot of fun to use, really fairly simple. Of course, writing out a format is a lot easier than reading it, but hey, my feed validates, and looks good in my reader, so it should be OK.
Comments Off on RSS Really is Simple Syndication
Merging C++ is not fun. After you deal with CVS issues (like merging and dealing with conflicts), you get to compile. Or try to anyway.
The first challenge was precompiling the precompiled headers. (These speed up compile time – the files are only compiled once, instead of once per #include.)
In compiling these headers, I ran across a problem – someone didn’t end an #if where they should have. This may have been a human somewhere, or just the cvs merge process not knowing any better. Here the story begins…
Comments Off on How I mastered preprocessor directives (finally)
Oh yeah, sorry for the outage today. This machine has been liking to crash lately. I’m not sure if it’s the old 10.2.8 update I installed (I installed it before it got yanked, and just had the latest 10.2.8 installed today.), or something else. I’m hoping 10.2.8 will solve the problem.
If not, then I’ll have some fun crash-debugging to do.. gah.
Comments Off on SiteOutage
The one thing I like about MovableType is that it’s all webbased. With Radio I have to fire up a local application, and waste about 30% of my CPU on Radio – but I don’t want to sacrifice that power while I’m doing a big operation like compiling (or cvs stuff).
That 30% number probably isn’t correct – but sometimes it feels like it. On a 400Mhz G4 I need all the help I can get, power wise, for some of these things.
If I really want to use a local application to post, theres NetNewsWire. I’ve just proven that it works here.
Oh, yes, and I can post to this blog from any machine on the Internet. Unlike Radio, where I can only post on the machine that has my installation. I can’t even use someone else’s installation – that Just Won’t Work.
Comments Off on MovableType Goodness
CVS takes sooo long to import sometimes. Then, after the import, I have to merge branches.
All this is fairly easy work, with my scripts and whatnot. But, my word, sometimes the easy stuff is the most painful. Just sitting here waiting for CVS, gahhhhh.
And I hope I got all my settings right – because I have to do it all again if they aren’t. Thanks MacCVS Pro.
Comments Off on CVS Rant