Blog
Page: 0 ... 5 ... 10 ... 15 ... 20 ... 25 ... 30 ... 35
Getting There
Date: 21/12/2004
Making things simple is well... not simple.

Anyway another Scribe test build... more fixed crashes... less bugs... maybe this will be "The One".

As far as I'm concerned it's only lacking one more translation update and then I'll call it the new "stable" release for the next 6 months or so.

In the mean time I'm starting the v1.88 thread, as the version history shows, and the kick things off I've added a feature. Just a little one. However everyone who has seen or heard about has suddenly become wildly enthusiastic and excited. So I await with some trepidation the response from the Scribe user community ;)

And it seems I need to get out more. Because it was purely and simply inspired by Gmail's most excellent user interface. Which btw I plan to nab more nice features from. Someone was nice enough to send me an invite so I could check Scribe's POP access (which works fine). But while I was there I thought I'd poke around and see what all the fuss was about.
(3) Comments | Add Comment

No Gui Gets Mouse Events Right
Date: 21/12/2004
When you write a GUI library it's a matter of time before you need to track the mouse beyond the borders of your own windows. And in general you want to do this using "Mouse Capture" where by all mouse events are sent to the window that has captured the mouse for a short period. Classical examples of this are push buttons and check boxes.

The problem comes when you don't want to capture the mouse, but you still want all mouse events. Now windows (thoughtfully) has a mouse hook procedure that you can setup to capture these events and do various things. But in vanilla mode it only works when the mouse is over your windows, and not only that, when it's over the _client area_ of your windows. So basically it's pointless. For catching clicks outside your window. So what to do? Well it appears that there is a "low level" mode that the mouse hook can operate in. Great! I thought. And sure enough it works. You get all the events, everywhere. So it's sorted isn't it.

Well, um. No actually.

After I made this change for the rest of the afternoon I noticed that the cursor was behaving rather irractically, often "freezing" for longish periods of time (e.g. 2000ms). And sure enough, switch the Lgi mouse hook back to normal mode and the mouse freezing went away. In low level mode you must have a functioning event loop all the time otherwise the cursor will freeze. Charming. In a lot of my apps I tolerate the event loop locking up for a second or so. The user however won't tolerate the cursor locking up all the time so I had to come up with another solution.

Well since none of the built in mouse hook work to my liking I created a thread that sits there polling the mouse every 50ms while I need events. I bit of overkill but it'll work fairly well. And as an added bonus it'll be very cross platform.

Speaking of other platforms, X11 doesn't even have a mouse hook function so you have to poll it anyway. Windows 1 (for trying), Linux 0.

A GUI should really let windows just have a flag "Want mouse events outside my area". Which gives you all mouse events, everywhere, all the time. I've been thinking about writing a GUI one day.

One day.

PS I wrote one in protected mode DOS using VESA that supported overlapped windows, menus, true colour etc... but that was a long time ago. :)
(0) Comments | Add Comment

All Car Geeks Want For Christmas...
Date: 14/12/2004
Sterio wise is:
  • Ogg playback. (Yes I can hear the difference, mp3 is teh suck!).
  • Wireless connection -> HDD or DVD+R drive to load songs.
  • Uncluttered dark grey/black facia (Is your car silver? No!)
  • No flaming animation.
Such a beast doesn't exist unfortunately. Feel free to prove me wrong.
(0) Comments | Add Comment

Scribe Final (Really)
Date: 13/12/2004
Well we're counting down to that magical stable Scribe release (yes I know Christmas IS comming) and the translators are passing in their last edits. It's likely it'll be out by the 20th. Just in time to pop it under the tree of your Outlook stricken family members! ;)

I've also fixed one last crash bug and updated the GnuPG plugins as well.

But we're really just watching and waiting for things to settle and for people to have a last chance for feedback before it's finally really actually final.

We will be taking a break over the Christmas / New Year starting around the 23rd through to the 7th. So don't expect much in the way of response from us then. PayPal purchases of InScribe will still get immediate key and download information but Kagi purchasers may have to wait a little longer than normal for their key.

Cheers
(0) Comments | Add Comment

The Sky IS Actually Falling
Date: 8/12/2004
A good chunk of the tree in our back yard got tired and fell off last night. We didn't hear a thing, just woke up to a yard full of leaves. Man what a mess to clean up!

You can see this huge hole left in the foliage, although it's less apparent in the image than in person. This is the second major branch to come down in the last 12 months. We are beginning to wonder if the tree is sick. The branch that broke this time didn't appear to be damaged and their wasn't any wind to speak of last night. Really weird.

In other news I made my first video DVD this week with my brand spanking new dual layer DVD burner; A video mail to a buddy overseas. Man DVD authoring software sucks. Maya was sick 2 nights ago keeping us up from 2am on, so we're like walking zombies right now. My brother, Ben, took a trip up the coast on a yacht (40ft) which almost got sunk by a storm. So in light of more severe weather in the forecast we sent him some money to catch the train home instead of getting the same boat back.

Also I've been thinking of updating my development machine to something a little less flakey than my current Althon 1.4ghz. And the option of going back to a dual CPU config is very tempting. While doing my research into the AMD64 platform it seems that AMD have deliberately made the cost divide between the socket 939 (single CPU only) and socket 940 (possibly dual CPU) systems unfairly large. So to get a dual AMD64 system up and running you have to fork out way more than the cost of the extra CPU. The motherboard is more than twice as much, the RAM is ECC so twice as much and then you have to buy 2 CPU's as well. So the segment of the market looking for some dual action is going to be stuck with 2 slowish opteron's that are running on slower ECC ram instead of 2 faster clocked Althon FX's running on cheap commodity DDR400. I think there is a huge hole in the market for cheap dual CPU systems that AMD is ignoring. Unless there is some way of running socket 939 CPU's in dual format that I don't know about? Not likely.

I'm not really interested in the Intel line, as their foot dragging on 64bit has left them out of the game. I know they finally caved on AMD64 support and joined AMD instead of flogging their dead horse but too little too late I think.
(6) Comments | Add Comment

gethostbyname_r Buglet
Date: 3/12/2004
I've been getting reports for Damn Small Linux users that Scribe can't connect to servers because the call to gethostbyname_r fails.

There is a topic here about the issue on the DSL forums if you want to post suggestions, information, test results, slander or pictures of your pets.

The relevant code in Lgi is in src/common/INet/INet.cpp on line 500 or so:
Host = NEW(HostEnt);
if (Host)
{
	memset(Host, 0, sizeof(*Host));
	
	HostEnt *Result = 0;
	int Err = 0;
	if (gethostbyname_r(HostAddr, Host, Buf, sizeof(Buf), &Result, &Err))
	{
		char *ErrStr = GetErrorName(Err);
		printf("%s:%i - gethostbyname_r('%s') failed (%i - %s)",
			__FILE__, __LINE__,
			HostAddr, Err, ErrStr);
		DeleteObj(Host);
	}
}
(0) Comments | Add Comment