Yes, I am at the moment merrily tucking into my own dog food, whilst working hard on my editor project. It’s far from the first time of course, typically the majority of contract work I do for others is using OGRE and as such I’ve had my fair share of experiencing it from a user perspective. And you know what, it’s actually pretty tasty. I spend an awful lot of time working in a bubble of sorts, advising people how to use OGRE in their products and trying to make it both powerful, flexible and intuitive at the same time - it’s actually really nice to step away from that and work on a specific application of my own, and not have to worry about anyone else’s problems, about generality, about how this feature might be used by others, about whether feature A is appropriate for both B and C - I just have to make it work the way I want, then I stop. Bliss. 😀
That said, I’m a tough customer. I haven’t got as far as I wanted so far this week, and one of the reasons (more on the others later) is that I’m a bloody perfectionist. I’ve spent a fair amount of time tweaking the UI; not just the looks but the feel, and I’m very happy with it now. I seem to have spent time on a hoarde of little things which actually don’t look like much in a screenshot, which is why I won’t show one 😉 But it in use it feels much more solid, in terms of things like camera control (which I’ve refined still further) and others like rubber-band selection, key shortcuts etc. I had a bit of a fight with wxWidgets over key shortcuts since key events are not propagated upwards to window parents, and the traditional key ‘accelerators’ which work at an app level have to map to menu commands (they can be toolbar buttons in Windows but not on other platforms). Thus I’m not sure the best way to go about it, so far I’ve just made menu options for all the commands for which there will be key shortcuts which I suppose is best anyway. I still have lots I want to add though. Oh, and if anyone is suffering from an unexplained memory leak when using wxAuiNotebook, I submitted a patch to fix it.
Onto the other reason I haven’t got on as well as I wanted - time management. It’s been apalling in the last couple of weeks and I have to do something about it. The problem is that I have so many distractions, so many things on the go from OGRE community things (forums, 3rd-party releases, email, bugfixes), to business things (planning, money, paperwork), to personal (mail, IM). I’ve been finding that I’ll look back on the day and find that I’ve spent 50-75% of the time mopping all these little tasks, mostly for others, and not spending enough time on my own work. It can’t continue, I’m suffering from a lack of what Steve Pavlina calls ‘Conscious Procrastination’.
So, starting today I’m being ruthless with my schedule and time boxing everything. Forums will get a fixed time every day, and if I haven’t been able to read everything when that time runs out, that’s just tough. I’ll skim the whole list first looking for unanswered threads and things that look important to try to optimise that but I won’t try to read everything. My experience tells me someone will jump up and down if I miss something important. Secondly, email and IM are getting turned off except for a couple of periods in the day. I know people think I’m not on IRC enough, but here’s why - it devours time like a Hutt after Lent. And most of the time, for no benefit to me personally.
Yes, that’s really selfish, but sod it, something has to give if I want to get somewhere. I’m generally an accommodating sort of chap and genuinely enjoy helping people solve their technical problems. But sometimes I feel like a piece of pizza dough that’s been stretched one too many times - over there to look into person A’s problem, over here to investigate person B’s problem, over there to work on feature C which person D is interested in etc etc. For a while I’m going to concentrate on my own project, those of my paying customers, and Summer of Code, with all pro-bono work having to find space in the gaps in between (including my spare time when I feel like it) instead of them expanding to fill the space they want, which I’ve once again drifted back to. I’m still working on Shoggoth anyway, but mostly to help me with my own work (such as adding getCameraToViewportBoxVolume for doing easier rubber-band selections). I’ll run that way for a few weeks and see what happens.
I’ll still be updating the blog though, that’s a personal outlet I would be loathe to drop. My time, my rules 😉