February 28, 2003

My apologies to anybody who downloaded the Blog 7.1 build before my announcement on this blog yesterday. About an hour after my announcement, I learnt from a user that the archive table of content generation code had a bug in the build I had put up. I had originally worked on that code to fix the very first entry range not showing up in the archive table of contents and got it working fine but then had decided to optimize the code so that I could drop a few extra lines and maybe save a few CPU cycles … and didn’t test it after that :p Turns out that I forgot to use NOT where it was supposed to be used and the whole archive table of contents generation loop was being bypassed and you ended up with a blank archive TOC. I fixed that yesterday within an hour of learning of the problem and uploaded a new build which incidentally also contains the new ActionBar based menu system with the Windows XP look – let me know what you think about it as well as if it works for all of you under all flavours of Windows.

Once I got that quick fix behind me, I began looking into the whole auto-update thing. I was first thinking of using an existing component but out of all the components that I looked at, I liked only a few and my final choices were a freeware component and a shareware one. I liked the Pro version of the shareware one since it supported updating multiple files as opposed to the single file update approach taken by the freeware one and the non-Pro version of the shareware component. Since I am also thinking of splitting the Blog code into an executable and several DLLs (both to make the auto-updating easier and to make code management easier), neither of the components (except for the Pro version for which I’d have had to pay) was going to work for me. So I decided to write my own :p

I’ve been working on that code most of yesterday evening. I got the basic structure in place and the code to access a given URL, read an info file and then either redirect to a different location (in case the download needs to be moved …) or get the latest build info from the file and give the user the option to update. Since this requires quite a bit of UI prompting, my first idea was to build in the UI stuff into the component but then I realized that would: a) add to the final component size b) not allow the end-user to customize the UI the way s/he wants. So I’m doing the whole thing on an event based architecture. There are a ton of events for everything you can think of and then the user can handle the events to display information such as a list of changes as well as the files to be downloaded etc.

At the moment, the component still supports only one file to be downloaded but I intend to extend it to support multiple files once I get the basic code working. I also want to add support for both optional and mandatory downloads so that the user can select whether s/he wants to download the optional components or not. Of course, that too is in the future since I still haven’t even settled on the update info file format except for a fairly nebulous idea as to the general structure. This probably will take me a few days to get working correctly and once I get that done, I guess I can go back to Blog and look into either merging in BlogMan or splitting up the code into an executable and DLL before doing the merging in.

Tags: General
Posted by Fahim at 6:38 am   Comments (12)

12 Responses to

Subscribe to comments with RSS

#1
Gravatar Image
DeViLbOi 27 February 2003 at 7:57 pm

so how about instead of updating all of the files for Blog just update the zip and setup Blog to auto-decompress?

#2
Gravatar Image
-Duane- 28 February 2003 at 3:52 am

Archives work MUCH better now. THANKS

#3
Gravatar Image
monkiboi 28 February 2003 at 7:24 am

what no comment about postman? *peers suspiciously* what have you done with the real DeVilb0i!?

#4
Gravatar Image
Cam 28 February 2003 at 11:52 am

Hey! I really like BLOG! It’s great… just what I needed. I just wanted to make a suggestion: you should make an option of having something in the entry section automatically. Something that could be changed in preferances. This’d be great if you wanted too add a “Mood” or “Music” thing. Thanks!

#5
Gravatar Image
DeViLbOi 28 February 2003 at 12:25 pm

monkiboi – I gave up hope on Fahim actually writing it. I downloaded a web based email client and am just going to use that until I can find something more reliable.

#6
Gravatar Image
Fahim 28 February 2003 at 3:18 pm

DeViLbOi, what do you mean me *actually writing* it? :p It’s already written as I’ve mentioned before, just too quirky for a public release. I do need to get back to that and clean it up a bit but Blog and BlogMan keep on intruding :p

As for the update component, the idea is not to update all the files for Blog but just the ones that need updating as regards to *your* version of Blog. So the files that you need to download might be different from the ones that somebody else might need to download and so I can’t have the files in a ZIP file.

#7
Gravatar Image
DeViLbOi 01 March 2003 at 1:33 pm

hehe…I actually am starting to like what I have now. I just need to pay attention and make sure it doesn’t get quirky on me. The one day I didn’t get email for like a week and it felt funny, but it was just the app skrewin up; but I don’t know where.

But if you create a zip with all the files you need for the newest version you will get all the files you need for *your* version. Your zip file is probably going to compress to something about the size of the file you need to update, so why not update everything?

#8
Gravatar Image
Fahim 01 March 2003 at 6:01 pm

Actually no, the ZIP file will still be a *lot* bigger than what you need to download since the Blog executable is already compressed :p When I split it up into an executable and DLL’s then the DLL will be compressed too … So it saves a lot of time to have the updater download only what is needed. Plus, if a change requires a new database file to be added, how is that to be managed with a ZIP file? The database might have been needed for version x.1 but everybody might not upgrade to x.1 and so I’ll need to include the database for the ZIP file for x.2 as well and that will mean anybody who upgraded to x.1 gets their database overwritten by the x.2 upgrade :p Yes, I realize I can write something to check if the file is there and if not, to copy it but that also has it’s own problems … An individual component update system with versions for each component works so much better and is safer 🙂

#9
Gravatar Image
Edward 02 March 2003 at 7:11 am

monkiboi – I gave up hope on Fahim actually writing it. I downloaded a web based email client and am just going to use that until I can find something more reliable.

Have you used yahooPOPs? it lets you have a yahoo account and download the web-based email to any email client. Get version 0.38 though – Yahoo has been dicking around with their cookies and the latest version does not work.

YahooPOPs! 0.3.8

Free POP3 access to your Yahoo! Mail account.
http://www.majorgeeks.com/getfile.php?site=2&file=2153&gfile=yes

#10
Gravatar Image
Edward 02 March 2003 at 7:12 am
#11
Gravatar Image
Edward 02 March 2003 at 7:13 am

damnit. that’s 0.4.0 — argh. I give up. *YOU* go search for 0.3.8 🙁

#12
Gravatar Image
DeViLbOi 03 March 2003 at 12:30 pm

monkiboi is actually a different person. However, I am quite happy with DeskNow for right now…no more big bugs. But thanks anyways

Leave a response

:mrgreen: :neutral: :twisted: :shock: :smile: :???: :cool: :evil: :grin: :oops: :razz: :roll: :wink: :cry: :eek: :lol: :mad: :sad: