Blog
Page: 0 ... 5 ... 10 ... 15 ... 20 ... 25 ... 30 31 32 33 34 35 36 37 38 39 ... 40 ... 45 ... 50 ... 55 ... 60 ... 65 ... 70
Recursive Grep On Multiple File Types
Date: 19/4/2007
This is how I script a recursive grep for source code:
find . \( -iname "*.cpp" -or -iname "*.h" \) -exec grep -nH "$1" {} \;
There might be a way of automating the list of extensions to search, or letting the user supply that in a command line argument but my script foo is not up to converting that to the argument format required by "find".
(0) Comments | Add Comment

Why what a sweet sound...
Date: 16/4/2007
...that of 1000 billboards being cut down.

Now who do I have to write to so that happens in my city?

Update: Now with photos! :)
(0) Comments | Add Comment

Mac Scribe
Date: 12/4/2007
I've been tinkering away on the Mac build of Scribe everyday working on the hard to find little bugs that get left over after all the easy stuff is done. And I had some doozy bugs this week. The first was caused by OS X doing sub-pixel kerning and that mixed with per word metrics in the edit control didn't work. But I eventually nailed that, after spending far too long barking up the wrong trees. Then I had a weird issue where some text would be painted in the wrong colour, even though I checked and re-checked I was passing in the right colours. So it turns out that some of the views were actually attached to the view heirarchy and by way of Lgi's virtual view code were getting kinda painted anyway. So I fixed that and in doing so broke a bunch of other stuff, lots of window weren't attaching at the right place. So it took a while to sort that out. Then some text still wasn't getting painted in the right colour. So I started poking around again and I noticed that openning a mail window would cause the bug to appear. So begins some hours of commenting out parts of code, checking if the bug appears, and then commenting out other parts of code etc. I eventually isolated the problem and found I was reallocating the SysFont handle that had previously been used to create GDisplayString object (text laid out for display) and of course chaos ensued.

But it's getting very close to being ready for a beta release. I've started fixing things in the calendar as well. Thats coming along nicely. I also still need to fix the dynamically generated sub-menus in the main window and show an empty menu when a window other than the main app window is shown, otherwise I get all sorts of weird commands from the menu ending up in say a mail window. Although that might not be the best solution. Still thinking about that.
(0) Comments | Add Comment

IMAP
Date: 7/4/2007
Well there is a ground swell of descent in the ranks over the sub-par IMAP(full) implementation in Scribe. So I've decided that instead of lauching into re-writing the back end code I'll write a new caching IMAP implementation on top of the existing codebase. This will use Maildir backend for caching and I will trial some ideas regarding that and indexing and so on as a little sandboxed test project before trying to change the whole mail folder format over to Maildir. That way I can weight up the pros and cons without commiting to an all out rewrite.

Hopefully this will result in a fast and friendly implementation of IMAP(full) for Scribe and also out of that will come a bunch of useful code for expanding that out to things like local mail storage and remote calendaring.
(0) Comments | Add Comment

New Software Release Feed
Date: 2/4/2007
I've created a new RSS feed for the last 20 Memecode software releases. It has a download link and a list of changes in each post. Some of you might prefer that to having to sign up / maintain preferences in an account.

If you have any great ideas on improving the software release feed just let me know.
(2) Comments | Add Comment

Traditional Tiling In XAML
Date: 2/4/2007
When old skool coder/designer types hear the word "tiling" they think of a repeating pattern of "tiles" of a fixed size that fills an area. In XAML it's not immediately obvious how to do traditional tiling so now that I've worked it out I'm going to share so that Google will index it for the next hapless user needing to tile something.

<DrawingBrush TileMode="Tile" Viewport="0,0,32,24" ViewportUnits="Absolute" Viewbox="0,0,32,24" ViewboxUnits="Absolute">
    <!-- your drawing commands -->
<DrawingBrush>
Will tile a 32x24 "drawing" across your slate such that it doesn't stretch and squish when the object is resized. Obviously change the Viewport and Viewbox to suit your tile size.

(And no, you shouldn't read anything into this)
(0) Comments | Add Comment