February 3, 2003

I was shocked yesterday to hear on the news that the space shuttle Columbia had blown up. I still remember the Challenger disaster so many years ago … I can’t imagine how the families of the astronauts must feel – they were brave people indeed to challenge the unknown of space and I guess all we can do is to remember them for who they were. Gary, who is a long time Blog user, wrote to me today and told me that he’s put up a Columbia memorial jpg over at his blog. He’s placed it in the public domain for free use by others and so anybody who wants to pay tribute to these brave people who gave their lives in the attempt to conquer space and advance our knowledge, can get a copy from Gary’s site and display it on their own.

I wanted to write about some other stuff today but it just does not feel right to do so at this moment. So I will leave this entry at this point and maybe write about what I wanted to write over at SM or tomorrow in a different entry.

Tags:
Posted by Fahim at 6:23 am  |  No Comments

January 31, 2003

I worked on merging the custom code snippet toolbar button fixes into BlogMan yesterday. I then modified the UI in Blog so that the entry area would be tabbed like BlogMan and the preview window would be in a different tab. I also moved the built-in comments view to a tab of it’s own and move the category selection stuff next to the entry area instead of below it. I then made similar changes to BlogMan too since some of this wasn’t done in BlogMan. I’m discovering that I am doing a lot of back and forth work between Blog and BlogMan these days since they share a lot of code :p I actually like the new UI better and am thinking of adding a mechanism so that the category selection area can slide in and out on a mouse click so that those who don’t use categories can simply hide it and those who do can use it only when necessary. Let’s see how that goes …

In the meantime, my attention has been turning back to BlogMan since I still need to do a final release. I downloaded B2 yesterday but have not set up a test installation yet. I’ve also been thinking of adding file upload support to BlogMan so that people don’t need to use a separate FTP client but then again there is the to-do feature in Blog where I’m also supposed to make the File Upload manager better – I think that’s slated for Blog 8.0 anyway. I read yesterday that Movable Type 2.6 (which is supposed to be out in 2-3 weeks) will have XML-RPC image/file upload support via a new MetaBlog API call. That might mean that I’ll have to update some stuff at my end too. I guess I can add image upload that way for MT and add FTP upload for other blogging tools or something along those lines. There’s other things to be done but I’m also probably going to start work on an ASP project from today so no telling how soon any of this will get done …

Tags:
Posted by Fahim at 6:44 am  |  2 Comments

January 30, 2003

I did get back to Blog coding yesterday finally (and before DeViLbOi starts his cry of “PostMan, PostMan” again, I will get to PostMan too but I feel that I should work on the apps that have users since they do want bug fixes :p) and set out to find out what the problem was with adding custom snippet buttons to the edit toolbar. Incidentally, I probably should have started work on BlogMan since that still needs to be finished up for final release but since Blog and BlogMan share the UI, BlogMan has the same problem with adding snippet buttons to the toolbar and so it is all good 🙂

Anyway, since I couldn’t remember what the exact problem had been, I decided to go another route and check up on the ActionBand component in Delphi since that’s what I used to provide the customizable edit toolbar in Blog and that was where adding the snippet buttons was causing problems. I discovered that a new patch had been released which solved some problems with the ActionBand component and though none of the listed fixes seemed relevant to me, I applied the patch anyway since that might fix something obscure which was affecting what I was trying to do. While downloading the patch, I saw a demo which showed you how to save toolbar customizations for ActionBands if you create toolbar items dynamically. Since the snippets are user defined, they have to be created dynamically and so I took a look at the demo and that gave me some ideas as well.

Even after applying the patch and integrating the ideas from the demo, it still didn’t work the way I wanted and so I ended up splitting up the custom snippet menu/toolbar creation code into three separate procedures from the original one. This allowed me to have better control under different circumstances and this helped a bit but I got stuck again at that point. By this time however, I had remembered the actual problems that I was trying to fix :p One was that all edit toolbar customizations disappear when you invoke the custom snippet definition dialog and click OK. I had fixed that by this time. The other was an internal problem that I had discovered earlier while trying to fix the former – internally, the edit toolbar gets multiple copies of the same button and while only one displays, each time you do a customization, the number of invisible buttons on the toolbar goes up. I finally discovered the reason for this too (and that was just by accident) and I managed get it all fixed and now have the custom toolbar stuff working fine 🙂

I also intend to change the UI a bit for the next release – I know it’s supposed to be a bug fix release and there shouldn’t be any functional changes (at least, that’s my internal rule :p) but I think this is necessary. The current UI is a bit too cluttered and confusing since I’ve had many people ask me what the area next to the category selection box is since it’s never used – it’s for built-in Blog comments incidentally – and that’s bad utilization of screen space. So I’ve decided to borrow something from BlogMan and go with a tabbed interface. The main entry area will have a single tab for the title, entry and the category selection box, there will be a separate tab for previewing and another tab for the comments. That should make things a bit more neater and organized – I hope …

Tags:
Posted by Fahim at 6:36 am  |  No Comments

January 29, 2003

About the only coding I did yesterday (after all the hoopla about being back in the thick of coding day before <g>) was to complete work on the CSV reader component and then do the documentation. This was partly due to the fact that I did do other Delphi stuff which falls into the learning/experimentation category and partly due to the fact that I was distracted by “Dungeon Siege” :p The Delphi stuff was basically going through the Orpheus component suite from TurboPower since they’ve decided to open source it and have put it up at SourceForge – search for TurboPower if you are interested. I haven’t used Orpheus before but I do use another of TurboPower’s products, Abbrevia, to handle the backup functionality in Blog. So I’m glad to see that even Abbrevia will be open sourced eventually. I might even come to use Orpheus since it’s a fairly comprehensive component suite and might have something that I can use and now that it is open source, I can be sure of keeping up with newer versions 🙂

I thought last night about what needed to be done by me in the way of coding. There is BlogMan which still needs to be released as a final release – I think all that I need to do there is add support for titles in B2 (sorry about not getting to that yet Greg) and then do some UI customizations to display only the stuff available in each blogging utility. I need to get on it – hopefully soon … I should really install B2 on my server so that I can do some testing – maybe today … I also need to get back to work on Blog and do a bug-fix release. The biggest problem there is the toolbar customizations but I’ve totally forgotten all the work I did there and so I can’t think of an approach to solve it and since I don’t start work unless I get fired up by inspiration, I keep on sitting here thinking about getting back to work on Blog – I need to break this cycle :p

Tags:
Posted by Fahim at 6:51 am  |  2 Comments

January 28, 2003

I actually seem to be back into the thick of coding suddenly and in fact, coded in two different languages yesterday :p The first bit of coding was in C# since I was putting the finishing touches on the CSV reader ASP.NET component that I’ve been working on for a while. I needed to test the component’s new features and so I wrote a demo application and it was actually the demo application which took most of my coding time yesterday rather than the component itself 🙂 I finally got the demo working the way I wanted and was pleased to find that the component worked as it should except for a few minor bugs which were quickly fixed. Of course, after a good night’s sleep and reflection, I have also come up with a few other modifications that I want to make to the component but once that is done, I should be done with that.

The other bit of coding was in Delphi since I finally got back to doing some work on Blog :p I’ve been debating whether I should use Delphi 7.0 or 6.0 for further coding for a while and because I couldn’t make up my mind, I’ve been reluctant to go ahead with the coding on any of my apps. I finally decided that I will stick with Delphi 6.0 – at least for Blog and BlogMan – since I’m not sure Delphi 7.0 will provide any major advantages for those as far as features go. The only thing I had hopes for with Delphi 7.0 was that I might be able to fix the toolbar problems with customized HTML code snippets but now I’m beginning to think maybe it was my own incompetence which was the cause and not a fault of Delphi’s and so am going to go back and look at that code a bit more closely :p

But to get back to the coding I did yesterday, I’ve been receiving bug reports about a “null variant conversion” error (or something similar) from users for a while now but each time I try to isolate it, it disappeared because the user reinstalled Blog or something like that :p I finally found a user (SilverLining) who had the problem and who was able to send me the data. I took a look at the data and realized where the problem was – the digest feature. The digest feature internally keeps track of when the last digest was sent out so that it can figure out whether it’s time for the next digest or not. However, I’d totally overlooked filling the last digest date value when a new journal is created – but the upgrade process would fill the last digest date for existing journals. This is where the problem lay and I’ve fixed it for the next release but for existing blogs this would mean either disabling the digest feature or manually going in and altering the data 🙁

Tags:
Posted by Fahim at 6:39 am  |  No Comments

January 26, 2003

I don’t know what happened (I haven’t been online today yet to find out if there is any news) but a major portion of the Net seemed to go down yesterday around noon and still had not come back into operation by about 9 o’clock at night. I say “seemed” because I personally know of only three servers – mine, a friend’s and an IRC server I was on at the time this happened. Yahoo was fine as was Google but I don’t know if there were any other sites affected but I saw a whole heap of activity on my IM buddy list soon after that since people seemed to keep on appearing and disappearing. So I guess there must have been other problems elsewhere too. To me it seemed as if a major portion of the Net in the US (at least in a large area) went down but I don’t know for sure but things seem to be back to normal now and that’s what matters.

I did complete the work on the image spider program yesterday. I decided to take the easy way out for the moment and simply convert the text encoded ampersands back to ampersands and that did the trick. However, I then ran into another problem. I was basically accessing the IHTMLDocument2 interface of the web browser component and using it’s execCommand method to send a SaveAs command. Now the SaveAs command is supposed not to display the save file dialog if you pass it a destination file name but try as I might, I could not get that to work – it would always display the save file dialog no matter what. So while the image spider will save like 40 images off links on a page, you have to click OK 40 times to do it. While I don’t mind it so much – it can get to be pretty annoying after a while. So now I’m thinking of different methods to do the same thing. One method would be to make use of the DownloadManager interface of the web browser component and simply start multiple downloads – if that method does not pop up the Save dialog. The other method would be to simply download the images using a different component altogether – one that I can control better … like the Indy HTTP component. Each approach has problems – I don’t know if the DownloadManager interface is supported in Delphi (I’ve run into unsupported interface problems before …) and I don’t know if a site which maintains your logged in status would still see you as logged in if you used an external component like Indy instead of the web browser that you used to log in, to do the download. I guess I’ll have to try either or both methods to see if they actually work. I think I’ll give the DownloadManager method a try first though since that does not involve any new components …

Tags:
Posted by Fahim at 6:23 am  |  2 Comments

January 25, 2003

I tested the image spider code yesterday and found that it worked for the first image and then continued to fetch the same image over and over again for the rest of the links. I thought there must be some bug in the code (and I couldn’t do any debugging with the debugger since each time I exited, Explorer would crash … hard <g> and so I had to debug using message boxes – which I hate doing) and spent most of my time trying to figure out where the bug was. I tried various approaches and went through a lot of code but all that time, I had the sneaking suspicion that the bug was somewhere else .. and I was right :p I discovered the bug finally just as I was about to give up for the day – the URL’s I got from the selected stuff on the page had some text encoding (the ampersand encoded as text for instance) and that was throwing things off. But what had confused me was the fact that any URL brought up the first picture on the list (that was probably a server side thing …) and I so I thought the problem was somewhere else. Ah well, I do have the solution now but I still haven’t implemented it since I tired to be too smart about it :p

I had been using third-party HTML parsing code but then discovered yesterday that I could use the IE browser component’s built-in IHTMLDocument2 interface to get a list of elements on the web page. I was using this fine for parsing a full-page by the time I discovered the problem with the URL text encoding and since I was simply returning the selected stuff on the page as a text range, I decided to use another method which returns a control range since I reasoned that this would allow me to access the stuff in the selection element by element and that the element attributes probably would be in the un-encoded form. However, I discovered only when I ran the code that the particular interface that I was using to do the job was not supported by Delphi! I hate when that happens! I guess I’ll have to go back to the original method I was using and translate the encoded stuff back to their un-encoded form for the moment but when I refine the code, I’m going to do away with the selection method altogether and use some sort of filtering – or simply return a list of links on the page and let the user select the ones that s/he wants to work with. But that’s for another day …

Tags:
Posted by Fahim at 6:45 am  |  No Comments

January 24, 2003

I’ve started work on another new personal project – hopefully a quick one :p You know those web trawling programs like TeleportPro which create a fully copy of your site, or even mass downloaders like ReGet or FlashGet? They have one problem – they don’t seem to work with the newer redirecting sites where a link is actually a redirection to via their server to a different page and the URL is always populated with all sorts of extra junk to make it hard for these programs to work properly. I guess this is just another step in the content-protection war – but I hate it :p So I’m working on a new program which will go around this and still get me the stuff I want from a site given a selected list of links. It’s still not up to the standard of one of those programs which will make a perfect copy of a site on your hard disk – I don’t really want that. I just want to be able to download and save a list of linked files without having to click on each link, wait for it to go to another page and then select save as in the case of images or even have to click multiple links to get downloads started in the case of files. I’ve done most of the preliminary coding already and have tested some of it but the part that actually does the work has not been tested yet since I hit a snag in my coding yesterday. I think I’ve got the solution today however and so intend to complete the app (which I call Spider) today. If it works and enough people like/want it, I might enhance it from it’s current rather crude form – but if not, that’ll probably get added to the pile of apps that I use but nobody else does :p

Tags:
Posted by Fahim at 6:34 am  |  3 Comments

January 23, 2003

OK, we’ve received the go ahead from the client for the CSV reader project 🙂 So I did up some documentation yesterday so that the client could see both my approach for the base component (which is already done) and for the extended component which will have the functionality he will want. I sent that out with a demo for the base component and then started work on the extended component. I think I’m more or less done with the extended component as well but I will need to do some testing to be sure that it works the way it should. I did however learn something else – I need time to work on projects like this … not just to code but to think things over. I spend the odd spare moment going over what has been done and I suddenly see holes in the logic or potential pitfalls. I thought of several such yesterday after I started thinking about the code and will probably need to plug some of that today. I also realized that a class doesn’t necessarily have to have properties for the sake of having properties – so I’m probably going to take out some of the properties that the base class had since the extended class should not need them … but I’m not sure if C# allows you to do that – I know I can do that in Delphi …

Re-discovered an interesting app called MailWasher (sorry am at home and so don’t have the URL but hopefully it should be www.mailwasher.com) which basically allows you to send bounce messages back to spammers – the idea being that they will take your address off their list thinking that your address is no longer active. I don’t really know if it works effectively (the reviewer of the app from whom I learn about it didn’t notice any difference in his spam level either :p) but at least it seems kind of nice to be able to automatically spam the spammers :p So I think I’ll keep on using MailWasher for a while – it’s especially handy with my HotMail account since I usually have to log in once or twice a week to just get rid of the spam since I really don’t receive many important e-mails on that account. Now I can simply do that from my desktop without logging into Hotmail 🙂

Tags:
Posted by Fahim at 5:58 am  |  2 Comments

January 22, 2003

I heard back from my contact about the sub-contracting project – looks as if it’s still on 🙂 We are still discussing details since he’s talking to his client who’s got to talk to their client – I have no idea how far down the chain I actually am :p But I did enhance the base CSV reader component yesterday by adding my own parsing routine. I set up a fairly complex CSV file – commas inside a value field, quotes within a string field … that’s all I could think of – and ran it through the new component and it worked beautifully 🙂 So I guess I am basically done with the base component since I can’t think of any further enhancements. I guess I’ll have to start work on the derived CSV component or start work on something else but since I have a habit of losing momentum once I stop a project, I probably shouldn’t do that – especially since this is a paying project 🙂

Tags:
Posted by Fahim at 6:55 am  |  No Comments

« Previous PageNext Page »