Blog
Page: 0 ... 5 ... 10
Lgi Intergrated Developement Environment
Date: 3/10/2003
Well after all this time bashing away at code in Linux I've given up with Kate and jEdit and written my own IDE using Lgi (of course).

So my life is not complete or anything, but life in Linux is marginly less painful. Of course I had to fix it myself didn't I. *sigh*

So far it's got a bunch of stuff:
  • Import M$ .dsp files.
  • Heirarchy of folders to store links to source, headers, and resources.
  • Calls external make to build executable.
  • Project wide settings for tab + indent size, hard tabs, show whitespace.
  • Uses Ted/Scribe text control.
  • Mdi panes for documents.
  • Captures build output, console output of application running, and find in files info. Allows you to "next msg" through all that with F4.
  • Projects can have dependencies on other projects.
  • Project file format is simple XML.
  • Find in files function.
Things I'm thinking of adding:
  • My own build system: dependency checker, build options etc.
  • C/C++ source code browsing functions like "Show Defn", "Find All References" etc. Yum!
I won't make a binary release of this yet, but all the source will be in each Lgi release so you can just build it yourself.
(0) Comments | Add Comment

"Help I've Fallen And I Can't ShutDown"
Date: 12/9/2003
What is it with computers and switching off?

My Windows install has developed a case of shutdownitis, and Linux tells me to "Power Off Now". Thanks... Linux... yeah real great, why don't I manually help you to switch off.

I kinda expect Windows to Suck(tm), but I don't know what the deal is with Linux. This is like the new millenium right? Where things "Just Work"?
(0) Comments | Add Comment

Bayesian Filtering
Date: 9/9/2003
The most recent release of Scribe has a new feature which you may have heard of: Bayesian Filtering. Which in a nutshell uses word count statistics to classify email into different groups. This idea has been sweeping the mail filtering industry by storm since Paul Graham published his Plan For Spam.

For my own sanity (I get 40+ spam a day) I decided Scribe needed better filtering, and Bayesian represents the best technology at the moment. So I've been testing my implementation of Bayesian Filtering for the last few weeks and it's working really well. You may have even noticed it in the filters menu of the last few test builds.

If you want to know about how to set it up click "more".
(0) Comments | Add Comment

Mozilla meet Scribe, Scribe... Mozilla
Date: 4/9/2003
It seems after many months of "mailto: is not a registered protocol" I've finally managed to beat Mozilla [Linux] into submission and get it to open Scribe to send an email.

This 'wizardry' was accomplished with MozEx, an extension for Mozilla (why it's an extension and not PART of the application I don't know). Anyway, with a non-user friendly command like:
/.../Scribe/scribe -m  "%a" -c "%c" -s "%s"
MozEx will pass all the parameters of the mailto: link down to Scribe, where with some newly written shared memory black magic it passes the arguments to the running instance of Scribe and up comes the compose window with all the arguments in the right place.

Ahhh, Genki!
(0) Comments | Add Comment

The ongoing saga of Scribe-Linux
Date: 27/8/2003
I ran Scribe-Linux overnight in stress test mode, doing 2 connects/minute to see if I have solved the threading issue that kills the connects after a while. And it passed, interestingly enough the menu z-order bug hasn't shown up since I fixed the threads either so I'm beginning to suspect that they were related.

Which would be great, because I really didn't know where to go on that. So now the only showstopper left is the XMoveResizeWindow occasionally failing / not having any effect bug.

Then after that I need to do a little clean up work, finish the new security model and the bayesian filtering UI and it's ready to go out the door.
(0) Comments | Add Comment

Why there isn't any new Scribe ala Linux
Date: 24/8/2003
For weeks on end now I've been trying to work out why various XLib calls seem to fail without warning, and without returning an error code.

For instance:
XMapWindow(XDisplay(), Window);
XMoveResizeWindow(XDisplay(), Window, x, y, width, height);
When executed, in some cases it fails to set the window position after mapping the window. But only in a few repeatable isolated cases, and usually only after the first time it's executed. For instance in a dialog a child window is in the correct place initially then every time after that it's in the wrong place. The return values are the same, the Window's are all recreated, i.e. not reusing the same objects. Xlib/X11 is just busted.

Then there is my other fravorite. I implement menus in Scribe/LGI with Windows created with XSetWindowAttributes::override_redirect = true, as you do. And I then "attach" it to the owning application window with:
XSetTransientForHint(XDisplay(), Window, Owner);
Which should make sure that the popup menu is always ABOVE the owner window. And it works for the first hour or so and then suddenly it STOPS working and the menus appear BEHIND the owning window... for no apparent reason and with no apparent user interaction (i.e. the app is at idle). So you click the menu and nothing appears because the Z-order is all screwed up. This can also be caused by calling XSetTransientForHint with None as the owner parameter (which is a bug in X, it should just ignore the call, but I can deal with that) so I fixed that but it's still happening.

So unfortunately I'm stuffed... Xlib is broken. I'm sure there is a way to work around these problems however I have less and less patience to look for the solution. All my code that does this is part of the open source GUI library: LGI which I'll update today, that anyone who is interested in looking at the raw code they can.

Update2: 2nd bug NOT worked around.
(0) Comments | Add Comment