April 30, 2004

I guess I’m not being clear enough when I say that there are problems with synching remote entries from a blogging server with the new build of Blog that I’m working on :-) I’ve received comments along the line of "why can’t you compare the entry in Blog and the entry on the server and if they are different, do an update?" But the problem here is that the differences might not have been due to changes you made, but rather due to changes made by somebody else since a remote server allows multiple people to update the same entry :p Blog does not have a facility where it can take two entries, compare them and then merge the changes in – that is just beyond the scope of an app like Blog. So, all I can do is have Blog update the remote entry if the text of the entry is different but by doing so, you might be overwriting the changes made by another user.

On the other hand, somebody might suggest, "why can’t you have Blog update the entry from the remote server before somebody makes a change?" The problems here are manifold. First, all journals in Blog might not be connected to a remote server and so I’d have to always keep track of whether a given journal is connected to a remote server or not. Second, in order to have each entry automatically updated, you’d have to be online all the time and that defeats the allure of Blog for many because people like the fact that they can compose offline and go online only to post. Then there are the myriad of timing issues involved such as what if somebody updates an entry just after Blog has updated it and so on … The mind just boggles. The closest I can come to is to pop up a warning box saying that an entry has changed on the server and display the current entry and the entry on the server but even there I’d have to do quite a bit of coding gymnastics such as keeping a copy of the entry saved on the server to compare against the current entry – so not something I really wanna consider just now :p

In other news, I’ve got the remote entry retrieval working and managed to actually pull my very first entries to this very Blog so many years ago – from Blogger.com :p Yes, I posted via Blogger.com for a week and wrote the very first incarnation of Blog during that time since I wasn’t happy with Blogger.com :p But my account (and my original blog) still stands at Blogger.com and I still use it for testing out stuff from Blog.

I then moved on to implementing the upload site definitions under the new database schema on the Sites tab and that proved to be much more challenging than I’d anticipated. I changed the UI quite a bit and am still struggling with the work involved in handling all the new changes. So not much progress made I’m afraid :-( Hopefully, I’ll get a bit more done over the weekend and might even get around to working on the actual publishing code so that people like my friend Nigel can get their sweaty mitts on the beta versions to start testing :p

In other news, I’ve made certain changes to the site. I’ve removed the PayPal donation link since I had some problems with PayPal due to the fact that I now live in Sri Lanka and they don’t support accounts from Sri Lanka. So I’ve still got some money in the account but have to wait for six months before I can even get the money out. It seems pointless to keep the link up when that’s the case. However, in case somebody would still like to send me some nice gift or something (hint, hint :p) I’ve updated my Amazon.com Wishlist and have also added a new games wishlist from CD Universe :) So any takers? :p

Tags:
Posted by Fahim at 8:58 am  |  No Comments

April 29, 2004

My Favourite Waste of Time …

Actually, what my favourite waste of time is, is a question since there are so many :p As I mentioned in the previous post, of late, the problem has been finding the time to do anything because I seem to have accumulated a lot of ways to waste time :-) And the funny thing is, that in the beginning I actually seemed to have the time for all of this but suddenly I find that I have so many things to do and not enough time to do it all in. I blame the Internet :p

You think that’s an exaggeration? Not at all. Just take a look at the list of my most recent wastes of time and you’ll see why I blame the Net. First there are the TV shows. I had a few shows that I loved when I was in the US but once I got back to Sri Lanka, I ever gave up hope of seeing those shows. Then came one fine day when I realized that all these shows are available on the Net for download and all I had to do was get them off the Net and I could keep up with the shows almost as soon as they were aired in the US! So now I’m busily watching 24, Gilmore Girls, Monk, Smallville and Star Gate whenever there is a new show and that keeps me busy through the week :) Actually, in the case of Gilmore Girls, we actually get the fourth season (which is on air in the US as well) here in Sri Lankan television but they are a bit behind in Sri Lanka and so I prefer to get my show from online and then watch it again when it goes on TV :p

Then there were the comics. Again, something I’d had access to in abundance when I was in the US. Here, it’s hard to get your hands on comics. Then I discover that that too is available online for download :p Not only that, but I discovered that I could get hard to find collections like Marvel’s "Infinity War" or the "Infinity Gauntlet" or any of DC’s Elseworld’s titles, fairly easily online. The only problem? They seem to be either archives of JPG collections or files in the comic book reader format (CBZ or CBR), which are just renamed ZIP or RAR files. I simply hate having to go through JPG collections and reading it file by file – yeah, nothing to get so upset about but call me finicky :p So, what I do is extract all the JPG files from their archives and then use Adobe Professional to combine them all in one PDF file which I name a specific way and then add to my collection. Yes, I’m anal and I create most of my own work :p

The latest waste of time came about of course when I discovered that I could get old DOS games from the Net and better yet, get their Amiga versions which look better and even play better as long as you can configure the Amiga emulator correctly. So now, I sit at home on an evening playing Lemmings when I don’t have a comic to go through or a TV show to watch :)

And those are just the latest of my wastes of time :) There are the existing ones like watching movies – I just bought 13 DVD’s last Saturday since the pirate DVD trade is booming in Sri Lanka and you can buy the latest Hollywood releases for something like US$ 3 :p And guess how many of those 13 movies I’ve seen so far? One! Yeah, there just is too little time in the world :p

Work on Blog continues :) I completed the data conversion code yesterday and it all seems to work fine. So I moved on to the first task in the new build – updating the Journal Management Dialog to support the new features. As the first step, I renamed the FTP Sites tab to Servers and added a type dropdown which specifies the type of server – FTP, local or one of many remote blogging server types supported by Blog. At the moment, I’ve added entries only for Blogger.com, MT and B2 (though I believe WordPress is actually the successor to B2 and so B2 might not even be in development anymore :p) as remote blogging servers but you can basically use any remote blogging server which supports the Blogger API or the MetaBlog API. I also plan to add more support for the MT API since I hear that that has evolved quite a bit.

Anyway, the Server tab has a much nicer (and less complicated) UI now since selecting the server type enables/disables the fields used by that particular server type. So for instance, the local disk option doesn’t show you anything to enter except a descriptive name – I think that should be much less confusing than the old UI :p But then again, I might be mistaken.

If you select any one of the remote blogging servers, then a whole new section opens up where you can load all the remote blogs for that server. This *has to be* done at setup time and I’m not sure how I’m going to handle people who don’t follow this step but what’ll probably end up happening is that they will not be able to define an upload site without the remote blog list being populated. I did test the loading of the remote blog list and that works too :)

Once I had the remote blog list working, I had to provide an option to load all the posts on each remote blog on to Blog and it seemed like a good idea to have this option on the same tab – still in the Journal Management Dialog’s Servers tab. Yeah, I know it might be crowding things a bit but functionally, it seemed to make sense to have all of this in one place.

The retrieve posts button lets you get posts for the currently selected remote blog – either just the post for the entry selected in the main UI, a specific number of posts or all the posts for that blog and then it asks you to specify which local blog to put the posts in. This way, you can transfer over all your posts from a remote blogging server and be able to publish these posts in any manner you like – or even publish to multiple servers (even remote servers) from now on. I’m still working on this bit and once I get this perfected, I should be ready to move on to modifying the Sites tab where you specify individual upload sites. This will have to be recoded to include support for remote blogging servers.

I guess it’s a good thing I wrote about how I planned to do stuff in Blog yesterday :p Because it is obvious from the comments that I’ve received so far that if I’d done things the way I’d planned to do, I’d have messed up :p I was planning to allow publishing only the current entry (or all unpublished entries) for remote blogging servers – the same way the functionality had been implemented in BlogMan. However, I see that most people would have expected Blog to behave the same way it has been behaving so far – basically, pick up all updates and publish in one go. While this is still possible with the publish all unpublished entries option, there is one catch – in *my* terminology, "unpublished" would mean an entry which has never been put on the remote server at all – if you’d put the entry on the remote server already but had edited it since then, that particular entry wouldn’t get picked up by the publish all unpublished entries option.

So, at the moment I’m trying to figure out how to implement a mechanism that would detect changes for published entries in Blog but am not so sure that I can do this since a remote blogging server implies that there could be more than one person who might have changed an entry – so the entry that you just changed might already have been changed on the server by somebody else that you gave access to … How to make sense out of all that is going to be the problem … Personally, I think I should leave that to the user’s discretion by letting them use the "Publish only the current entry" option. But even there, I’m not really sure how to do all this in a user friendly manner via the UI. Guess I’ll have to ponder on this a bit …

Tags:
Posted by Fahim at 8:24 am  |  No Comments

April 26, 2004

Return of the Prodigal

Yes, I am not dead …yet :p And I had to think long and hard about where to post this one since my main blog at The Developer’s Corner has been inactive as well for the longest of times. I finally decided that the post should go here since this post has nothing at all to do with development but the original dilemma arose from the fact that I did have a lot to say about why I haven’t done any development work in a while :p Ah well, guess there are always going to be such cases where you can’t figure out which blog gets the post when you have multiple blogs. Maybe I should go back to a combined blog? This might actually make sense when I combine Blog and BlogMan (whoops, that sounds like a development related statement … see what I mean?)

Anyway, the situation has been like this – my routine has changed so much that I really haven’t had much time for blog entries .. there is always just too much to do. So I kinda stopped making SM entries and then The Developer’s Corner went into neglect as well since I didn’t have time to code any longer either. I’ve been working on two different fronts – one is my regular job and the other is a separate project that I got involved in as part of my job. This second project has gradually taken up more and more of my time until during the the last month I was even working weekends to get things ready for the Sri Lankan elections which were to be held at the beginning of April. The elections have come and gone and things have calmed down a bit now but I still don’t seem to find the time to update my blog or to do any coding since the two jobs continue to go on. I have decided to try and make more regular updates though since otherwise my two blogs that I seemed to be so religious about updating would just die a natural death. However, I think I really must think about combining The Developer’s Corner and SM. This actually would allow me to make more frequent updates and still try to somewhat keep things on topic since the topic can once again be anything at all :p

So what have I actually been doing? Well just last week, my friend Robin and I were discussing old DOS games – games that we both used to enjoy but hadn’t played in ages. The nostalgic trip down memory lane got me thinking about some of the games I really loved and suddenly, I had a hankering to play some of them. I’d already tried to play a few them, like Gods, on Windows XP but had found the game to be slow and I didn’t really feel like going through that again. However, I suddenly realized that there might be a virtual machine or an emulator around for DOS which might allow me to play the games as they were meant to! My search resulted in me finding DOSBox – an emulator for DOS on Windows (as well as a host of other platforms actually …) – just what I was looking for! My tests with DOSBox were less than satisfactory though since Gods still seemed to run much slower than I remembered. However, I did bag a whole bunch of old DOS games from the Web since there were a lot of abandonware sites which had all my old favourites for download :)

Somewhere along the way, I stumbled across an Amiga emulator – WinUAE. I have no clear recollection as to how that happened now. I realized after some reading that all I needed to run Amiga games was this emulator, an Amiga ROM image and some other little bits and pieces which I was able to get together fairly quickly. I found that there was a whole slew of Amiga games available for download and that all of my old DOS favourites were there in Amiga format too :) Unfortunately, my first attempts at getting an Amiga game running on WinUAE weren’t very successful but this was mostly due to my total lack of knowledge of both Amigas and WinUAE. I finally stumbled upon the correct way to set things up in WinUAE so that I can run a game and my first game was Deliverance. I was so hooked by the game (yes, even though it was ancient :p) that I played it till about midnight on Friday!

Over the weekend, I perfected my configuration of WinUAE for playing Amiga games and was able to get a few of my old favourites like Gods, Lemmings, The Lost Vikings and Chaos Engine working just fine on it. The game play is as good as ever, there is no speed difference and the best thing of all, the games take only a few megs on my hard disk! What more can one ask for? :p

Tags: , , , , ,
Posted by Fahim at 10:54 am  |  4 Comments

April 9, 2004

I’m baaaaaack :p Actually, I’ve been back in the middle of the whole coding thing (or at least trying to …) for a couple of days but didn’t have much luck getting started with the coding till yesterday. But more on what’s been distracting me can be found over at SM :-) Yes, I’ve started posting again at SM as well though I think I’ll end up combining the two into one blog again and keeping the SM name rather than The Developer’s Corner. I’m kind of attached to The Developer’s Corner since I’ve had it around in some form or another since around ’97 or ’98 but I think it’s time to let SM take over … But that’ll probably be discussed in length in a different post on SM :p

So what about the coding you say? Well, I got an e-mail from Nigel about the possibility of me getting off my posterior and actually coding in the BlogMan features into Blog since he was interested in using WordPress for his site but wanted to have the Blog interface to post from :) I’d actually been a little less busier than I’d been for a while due to the end of the elections over here but hadn’t really gotten around to coding since I’d reinstalled Windows on my notebook in the meantime and was feeling too lazy to install Delphi and all the components I use again :p Actually, the laziness came from the fact that it’s possible that I’ll be switching my main work machine to a different notebook in a month or so and then I’ll have to start the installation cycle all over again. However, since Nige was willing to beta test, I thought I should actually get cracking on the code now. And so I did :)

Of course, it took me till yesterday to actually get all the little Delphi bits together and my installation working the way I needed it to code Blog again and so not much work has been actually done. I did get started on the database changes to necessary to accommodate the BlogMan features yesterday. Since I was doing major database changes, I also decided to rename some of the tables (nothing that concerns the user but just thought I’d mention it here anyway :p) since I hadn’t liked the original names I’d used but been too lazy to fix it till now :p

However, it’s already becoming apparent to me that some terminology changes are going to be needed in Blog as well from this release on. For instance, with the addition of support for remote servers like Blogger.com, MT or WordPress, you get two different types of blogs – the blogs in Blog and the blogs on the server. Confusing? Yeah, I thought so. The blogs in Blog are the blogs where you make your entries but these aren’t always the same as the blogs you’ll have on the server … though they can be. The blogs on blog can be published to any location such as your hard disk, directly via FTP to a web server or to a blog on a remote server. However, your blog installation needs to know about the blogs on a remote server in order to determine where your Blog blog is to be published … even more confusing huh? I really don’t know how better to explain this concept :p I guess I can retain the terminology I currently use, "journal", to refer to a blog on Blog and "blog" to refer to a blog on the remote server – but that is something I’ll have to figure out later on …

There are even more issues with the new changes though. While Blog publishes a whole range of entries when it publishes to local disk or via FTP, it can publish only the current entry if it publishes to a remote blogging server since the server actually handles the real work of publishing the entries and decides how many posts are shown on the main page etc. This probably is not even a problem if somebody publishes only via FTP or only to a remote blogging server but if they wanted to do both (and I do believe that Blog should provide this option since the core concept of Blog is that you should have the freedom to do anything you want with your blogs …), the way this is accomplished (and even more importantly, the interface and dialogs provided to get there) might get a bit complicated. Again, I guess we’ll just have to wait till I get the code far enough to actually get to that point …

Tags:
Posted by Fahim at 8:40 am  |  No Comments