Blog
Page: 0 ... 5 ... 10 ... 15 ... 20 ... 25 ... 30 ... 35 ... 40 41 42 43 44 45 46 47 48 49 ... 50 ... 55 ... 60
Partition Magic Is Hopeless
Date: 14/9/2006
Let me just say that I used to love Partition Magic. Well the smoke must have got out because Partition Magic has completely sucked for me lately. I tried to delete a Linux swap partition and it dies with Error #510. Which maps to like "unsupported newer version of file system". So I found this other tool that completely rocks for deleting partitions: Windows -> Control Panel -> Administration Tools -> Disk Manager! ;)

It's like 'instant' and then I could go back into Partition Magic and create a new partition in the unallocated space left by the deleted partitions. Only to have it fail to create a FAT32 partition (how hard can that be?) with some other error. And then fail to resize an NTFS partition with a new error again. It's like totally useless for anything.

  • Control Panel -> Add/Remove Programs -> Partition Magic -> Uninstall.
  • Download GParted -> Nero -> Burn Image.

    Muhahaha
    I got around to actually using GParted last night and it was a little tricky to get booted, didn't like my nVidia card or something, so I used the alternate x server. Then it told me the NTFS partition I wanted to resize had too many errors, so I reboot into windows and fix them. Then back into GParted and I resize the partition, and the progress bar comes up with task "1 of 1" and "14 minutes remaining"... Cool! Thats awesome. I wait 14 minutes and it's doing something... great... almost done... and? ...and? Task "1 of 1", new progress bar: "2hrs 20minutes remaining". Huh? Nooooooo! What? No!!! Argh, partition resizing is not like something you should click that "Cancel" button on. So it's like resizing a 30gb partition to 50gb. And it's a fast disk right... 7200rpm and so on. It ended up clocking in at about 3.5mb/sec, which is kinda slow, I really was expecting better than that.

    You know what I should have done? Well I'd backed up all the data on to my firewire drive anyway. I should have just blown away the partition, recreated it at the new size/position and copied all the data back again. Would have taken 30 minutes for the copy instead of hours.
  • (0) Comments | Add Comment

    SSL Implementation
    Date: 14/9/2006
    I'm implementing direct SSL support in Scribe and I have access to a SMTP+POP server that uses the "STARTTLS" style SSL scheme (GMail!), however I don't know of one that uses "DIRECT SSL" or, SSL connection from the start. This is a new option that I'll be supporting. So if you have a server that does that or know of a free host for me to use in testing, that would be sweet.
    (0) Comments | Add Comment

    SydneyBand.com.au Places Page
    Date: 8/9/2006
    I thought I'd talk a little about a webpage I've been working on for the last week or so. It's over at http://www.sydneyband.com.au/places.php if you want to check it out. Basically it's a standard list of links/resources but it has a few tricks. Firstly you can filter via tags but thats kinda well... done. However it also lets you click a "Map" link to see where the place is on google maps. Thats cool. Most lists of links don't do that. But if you liked that then click the "Map Display" link at the top and see ALL the links on the map. Nice. Want more? Well bung in a Sydney suburb or postcode into that field at the top and it'll sort the results according to distance! That took a great deal of software "magic" I assure you.

    I put together a database of suburbs, postcodes and latatude/longitudes using various methods and mostly public resources. Using some lets say, screen scraping here and there, a judious amount of custom code hacked together and XML... lovely clean XML. Then I read up on the great circle distance formula and wrote the code initially in SQL. But that kinda tanked when I realised that SQL doesn't have the math function "MIN". Because the "MIN" keyword is used for something else, i.e. the minimum row in a GROUP BY clause. Nice. So I gave up on SQL and rewrote it in PHP and used PHP arrays to store and sort the results. Seems to work just as well.

    I wish upon a star that Google Maps would let users search for suburbs and streets in Sydney. *sigh*
    (1) Comment | Add Comment

    Calling External DLL's From Script
    Date: 2/9/2006
    Today I got the Scripting Language in i.Mage to call into an external DLL. The test script was simple:
    extern int MessageBoxA(HWND, LPCTSTR, LPCTSTR, UINT) in "User32.dll";
    
    MessageBoxA(Parent, "Title", "Message", 0);
    Which now runs as you'd expect. The "parent" variable is a predefined uint32 containing the handle of the script window. The other predefined variable at this point is a DOM pointer to the i.Mage application itself.

    This will most likely appear in the next Scribe release in the filters, so that you can create very custom filters. By being able to define calls into external DLL's you could write some code in any language you want and call it from Scribe. Some of the tools hanging onto various menus in Scribe will most likely be rewritten in Script instead of C++ and thus Scribe will become extensible. e.g. the little utils hanging off the bottom of the Tools menu are begging to be re-written in Script.
    If you liked that first snippit, then you'll love this. Check out this new working script:
    extern int MessageBoxA(HWND, LPCTSTR, LPCTSTR, UINT) in "User32.dll";
    extern DWORD GetTempPathA(DWORD, LPTSTR) in "Kernel32.dll";
    
    s.length = 256;
    GetTempPathA(s.length, s);
    MessageBoxA(Parent, s, "Title", 0);
    Variables can now have members, i.e. DOM style addressing. Assigning a value to the .length member of a variable turns it into a string of spaces of the requested length. This is useful for preallocating string buffer memory for calling C functions that expect that. Conversely getting the .length member of a string returns "strlen(c_str)".

    I've kinda left room for expanding this out to use non-atomic types like structures and so on, but that isn't implemented yet. I have to implement code to parse the type definition first and then code to use allow the script to declare a variable of that type and use it. Which is a substantial feature to add.
    (3) Comments | Add Comment

    Scribe Account Options
    Date: 26/8/2006
    I've been pretty sick this week with some virus, and I'm still not over it completely but I'm well enough to be sitting around doing things. So I've been playing around with the account options dialogs in Scribe:



    I'm going to get rid of the SSL plugin entirely, it seems to be giving people a lot of grief. So all that functionality will be built in directly to the next version. Obviously it'll only work with the SSL dll's installed as well, and I'm hoping to have a system for downloading them from without Scribe.

    These dialogs have been converted to be font size sensitive using the table layout system I wrote about previously. (Based on the GTableLayout class from Lgi)
    (0) Comments | Add Comment

    Image Spam Filtering
    Date: 8/8/2006
    Until something better comes along I'm filtering spam email with images using this:



    So if you want to send me an image, start with a "Hello, image on the way!" so that you get into my whitelist, THEN send the image. :)

    The basic issue with "image spam" is that they bypass the bayesian filter by having good "hammy" text in the body as well as the spam payload message in an image. So textual methods are doomed to failure. I breifly thought about image comparision algorithms, and I believe I could write something to weed out all the dupelicate image spam, but it would be a losing battle and the spammers would just end up varying their message more than they do now. So thats it, a blanket ban on email with images from senders I do not know.
    (7) Comments | Add Comment