Blog
Page: 0 ... 5 ... 10 ... 15 ... 20 ... 25 ... 30 ... 35 ... 40 44 45 46 47 48 49 50 51 52 ... 55 ... 60
Wheres me freshly baked Scribe?
Date: 22/9/2006
Well. Yeah I'm tracking down a crash in the filtering that happens a lot at the moment for me. Some pointer in a list gets corrupted after much filtering. Initially I thought that valgrind would sort this out pretty quick smart. So I fired that up and ran it through. Found lots of "other" bugs that I fixed but not the filtering crash.

Nice.

Also I havn't had a chance to find some straight SSL (not STARTTLS) email servers to test the new SSL code in Scribe. So that feature is not ready yet.

Which means there is little point making a release right now.

To top it off my RSI is verging on getting nasty again. So I'm really limiting my time on the keyboard to avoid a meltdown. Which is just so frustrating, the mind is willing but the body is just not able.
(4) Comments | Add Comment

Motorola V3x Review
Date: 19/9/2006
Recently three ditched the CDMA network that we were on and made us upgrade to new handsets. So after a bit more research than I intended to do I settled on the Motorola V3x as a compromise between all the things I wanted, all for a measly $4aud more per month.

My main requirements are:
  • Works as a USB mass storage device
  • Upgradable memory
  • SyncML support
  • Some music playing support


Well so far things are going fairly well. Initially my experience has been that the phone works well in it's core function as a phone, call quality is reasonable and the buttons/hardware is all still solid after a few months of use. So thumbs up there. Text messaging is alright as well, in that it works mostly as expected although occasionally it'll suggest the rest of the (wrong) word and I can't accept the letters I've already typed without accepting all the wrong suggested characters after the cursor. This might be just my misunderstanding of the UI and it doesn't happen often enough to bug me.

The menus are a little slower than I'd like and sometimes show up partially for a frame or so. I notice this more because I know to look for it being a software developer, it's classic lack of double buffering. The layout of menus is generally OK, I expected worse to be honest, as Motorola has a bit of a reputation for lack of usability. But it's better than my old Nokia 3105 in that respect.

As a media player the device is not in it's element but it does manage to get by. I've been using the music player for weeks now and it's doing the job. I miss a shuffle mode and repeat but maybe thats buried in a menu somewhere. The earbuds are not great (both comfort and audio) but you can buy a USB -> 3.5" adapter on ebay for $6aud so I'll probably do that and just use real headphones. I'm enjoying finally having a solid state music player to take with me. I've resisted being sucked into the ipod universe simply because I don't want to carry 2 devices around with me. I'm sure ipods are great but I got the phone for hardly anything on a 12 month plan and it's saving me a bunch of cash and hassle over getting an ipod. I have upgraded the phone with 1gb of MicroSD for music/video and that has allowed me to put full length movies on it. I know the official specs for the phone state that 512mb is the max but 1gb is working fine for me. This was entirely unexpected but comes as a nice surprise. I knew I could store movies (divx) on it as a file, but I discovered that if you re-encode to 3gp with the right settings you can play the movie on the phone itself instead of just storing it. The 3gp files work out at a bit less than 100mb / hr, so for a normal movie you're looking at about 200mb. So I could theoretically have 4 full movies on there. It's good for watched while stuck someplace or travelling around. Sorry but I don't know what watching movies does to battery life yet :)

The built in camera has been great. It sports 2mp (1600x1200) and the quality in good lighting is just supurb. My friends ooo and ahhh when they see the photos and are a bit skeptical that they came from a phone. The normal caveats of low light and high motion scenes apply, shots in those conditions degrade quickly. The pictures turn out to be around the 120 to 150kb mark, but compress better with PC software. It's been great for collecting impromptu photos for my new SydneyBand Places webpage and various capture the moment family shots. This means that I'm going to have less of a reason to dive in a get a Canon S3 IS. I've taken a few videos and for the most part high motion scenes turn into slide shows at 1 frame/sec. Low motion shots (talking head etc) do much better. I really don't care for the video recording function, I just tried it cause I could.

Battery life has been good for me, with 2+ days of standby time. I don't make a lot of calls so standby is more the norm. The battery indicator is not very linear, once a bar goes, you've got only a few hours left. But I can live with that. That said the phone will charge off any standard USB cable, no custom proprietry cable needed. This is awesome, I mean I cannot emphasise enough how much I hate propreitry standards, and when I saw that the phone takes a normal USB cable I was grinning ear to ear.

My experience with the bundled PC software is that it works as advertised for syncing to Outlook but it's dog slow. I'm not sure if thats the phone or the software but it seems to take forever. For looking at the photos on the phone it's a joke, don't even try doing that it'll make you puke. Everytime you select a photo on the phone it sucks it over the USB cable with a progress dialog. Which means that to do anything you have to select photos one by one and then action them (i.e. delete / copy). But fortunately there is a better way! With a MicroSD card installed it automatically saves photos straight to the MicroSD card, and so you don't need the slow (crap) Motorola software to access the photos you just browse to the removable disk in Explorer and in "\phone\photos" there is a bunch of JPEG's that you can view/delete/copy with no weird previewing progress bar messing up the process.

With a little getting used to it it's a great phone. Thumbs up from me.

Pros:
  • Does core functions without any major issues.
  • Cheap (for me).
  • Watching a feature length movie on your phone! Fast forwarding through long movies works really well.
  • Looks great.
  • No build quality issues (for me at least).
  • Camera quality a nice surprise.
  • Taking a call while listening to music is painless.
  • Charges off any standard USB cable.
Cons:
  • Earbuds not comfortable and tend to sit in the ear such that you lose all the bass they generate.
  • The contacts sync function is very slow and loses the email address in the process.
  • The rest of the bundled PC software is so bad I stopped using it before it scarred me for life.
  • No bookmarks for audio/video. If you need to stop playing a long movie, it's a pain trying to find your place again.
  • No shuffle/repeat mode for the audio player.
  • Data in the phones onboard memory is not available via USB mass storage. This is particularly annoying when there appears to be no API to get at the contacts on the phone for 3rd party applications to sync with.
  • Only USB1.1 is supported, which makes large file transfers an exercise in patience.
  • Little blip of static in the ear phones when audio starts/stops.
  • Keeps losing the desktop background setting.
  • The "show date" option doesn't put the date on the desktop. It does show up on the outside mini LCD so it's not a complete joke but still. I'd like the date on the main display.
(2) Comments | Add Comment

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