Blog
Page: 0 ... 5 ... 10 ... 15 ... 20 ... 25 ... 30 ... 35 ... 40 42 43 44 45 46 47 48 49 50 ... 55 ... 60 ... 65
Scribe Stable Candidate
Date: 17/12/2006
Ok, well it's almost the end of 2006, and that means a new stable release of Scribe. I've been working hard on squashing bugs the last few weeks and I think I'm getting close. The next release "Test11" will incorperate the last of the bug fixes I think are important for a stable release. We'll see how it fairs in the wild and if it's good then it'll be the first stable release. I do generally release maintainence releases throughout the year when I back port fixes from the developement branch (HEAD). For instance the current v1.88 stable build is actual "m5", or 5 releases after the original stable release.

The only thing I havn't actually fixed for Test11 is the main window behaviour between sessions. When it starts minimized to the tray the window still appears in the program bar.

If you have any other issues that are important and aren't already mentioned in the version history for Test11 then let me know.
(0) Comments | Add Comment

Scribe Test10
Date: 14/12/2006
Hi All, I was about to do a release and the cable is down. It seems that in hot weather the internet is up and down like a yoyo. But in cool weather it's rock solid for weeks. Very annoying. I would like to try ADSL, but who knows, it might suck more?

Anyway. The only thing that won't make it into this release that I really wanted to get done is the recuring calendar events. Lots of people are waiting on fixes for various things and so I will release test10 to get them on their way and then get down to work on features again.
(0) Comments | Add Comment

Danger Will Robinson: EnumDisplayDevices
Date: 1/12/2006
In the documentation for EnumDisplayDevices it tells you that you need to initialize the cb parameter of DISPLAY_DEVICE to sizeof(DISPLAY_DEVICE), fair enough. That part is obvious. In XP you can do that and then call EnumDisplayDevices multiple times with the same DISPLAY_DEVICE structure and it works as you'd expect. But in Win2k it overwrites the cb parameter with a new larger value with every call to EnumDisplayDevices, so the 2nd call overwrites the stack and your app goes kaboom!

So now you know.
(0) Comments | Add Comment

Scripting Scribe
Date: 29/11/2006
Well after yakking on about scripting for so long I actually ran my first script using the new engine in Scribe this morning. The javascript style engine that initially appeared in the recent i.Mage release is now also being used in Scribe. Currently the only place you can write script is in the filter object's "Script" tab. For instance this script changes the background colour of email that match the filter conditions to red:
if (Filter.TestConditions)
{
    Mail.Colour = 0xffff0000;
}
Where the hex value is in the form "0xAARRGGBB", alpha, red, green, blue. Fairly standard stuff. The first part calls back into the filter object via the DOM mapping to test the conditions defined in the Conditions tab of the filter. This way you can customize the conditions even furthur or ignore the conditions entirely and just make up your own scripted conditions. But at least if you want to use the UI for conditions you can. You get 3 predefined variables, App = the application DOM object, Mail = the mail object being filtered and Filter = the filter object the script is attached to. Of course all that will be documented in time.

I'm also thinking of having a application wide set of scripted event handlers so that you can hook events and execute scripts. This would allow you to customize various things like changing default settings on new mail or do something when the app starts. I really don't know what people will want to do yet but I'll just get it out there and see what people start hacking on to Scribe. I'm sure there will be a deluge of questions and scripts flying around for a while.

Better get a release out eh!
After fixing a bunch of bugs in the script engine this now works:
Fd = GetFolder("/Inbox");
if (Fd)
{
    Print("Got folder '" + Fd.Name + "'\n");
	
    Child = CreateSubFolder(Fd, "Test", "Mail");
    if (Child)
    {
        MoveItem(Child, Mail);
    }
}
It creates (or uses an existing) folder called 'Test' under the inbox and moves a matching email to that folder. You could for instance pull information out of the contact record associated with the sender to sort email into folders based on sender, creating more sub-folders if needed with this sort of script.

The "Print" command outputs to a new scripting console window that is hidden by default but you can show it using Tools -> Debug -> Show Scripting Console.

What would you want to do with scripted filters?
(3) Comments | Add Comment

No Progress This Week
Date: 24/11/2006
Well I have got nothing done on the coding front this week. Mostly due to a bad recurrence of RSI because the kids have been keeping us from getting any quality sleep. No sleep = no recovery from the day's activities.

Also on top of that I've had a number of good things happen this week. An old guitar amp that got stolen 7 years ago turned up on ebay last week and I spent a lot of time getting together the evidence that I owned it and presenting it to the Police. In the end I did get the amp back, but had to pay some money for it, a lot less than it was worth so I end up ahead.

And also I bought a scooter to get around on after I sold my car 2 weeks ago. I have my next license test in what, like 10 days from now so I'm practicing riding like mad. It almost rained on me today and I'm not quite ready for riding in the wet, both from a gear perspective and a skills perspective. But at the end of the day it'll be a lot cheaper to run than a car which means our little family will have more left over for worth while things like renovating the house and putting the kids into a decent school.



Hopefully next week we'll see some final touches on Scribe test8 and a release.
(7) Comments | Add Comment

Scribe LDAP client plugin + libsasl.dll
Date: 14/11/2006
I got a message recently that Scribe's LDAP plugin had 'acquired' a dependency on libsasl.dll, which I don't seem to bundle in the plugin download. This of course sucks for people trying to get it working. So I rejigged the plugin project file to build with a static version of libsasl which builds the library into the plugin itself. Which is a) smaller and b) more reliable than bundling the library as a separate DLL.

"Now sucks less!"
(0) Comments | Add Comment