March 21, 2003

I’ve been considering how best to re-implement the database structures so as to facilitate the new features I’m thinking of for Blog 8.0. I have decided that I definitely want to merge BlogMan and Blog since I want Blog to be a universal blogging tool instead of a one-trick pony :p In order to achieve this, I think I need to separate the actual entries from where they are published to so that I can switch journals from one publishing method, for instance built-in Blog publishing, to another – say, Movable Type – without too many hassles. The way I’ve currently envisioned things, the data will be stored as Journals, Servers, Blogs and Blog Info.

Here, Journals is the collection of actual entries compartmentalized into different … umm .. journals so that you can have a personal journal and say … a photo journal. The Journals are simply entries and things related to entries like categorizations and comments. They contain no publishing/formatting information or data about the eventual locations where the entries will be published.

Servers are all the possible types of locations where the blogs would be published such as local hard disk, FTP or even a third-party blogging server like Blogger, MT, B2 etc. The Servers set simply contains information about the actual server such as how to access it but there will be no publishing information at this level.

Blogs is the table/collection which contains the actual publishing information for each destination blog on each server. I know that the terminology gets a bit confusing what with journal and blog both being used to describe two different things but since I can’t think of a better term, I guess I’ll have to stick with what I’ve come up with so far :p I guess the difference here (for my purposes <g>) is that a journal is simply a collection of entries on your hard disk whereas a blog is actually the published version of that journal on a web site … Hope that doesn’t create any confusion since that’ll be the terminology I’ll be using from Blog 8.0 onwards 🙂 The Blogs collection holds information such as where on a particular server a given journal is to be published as well as default formatting information (such as date formats) for each blog. While it might seem as if that the Blogs collection links a server to a journal, this is not the case. A Blogs collection entry simply specifies an instance of a web log published to a particular server. However, you can for instance, publish your personal journal to a particular location on your server one day and later, publish your photo journal to the same location – not that I see why you’d want to do that but it’s possible to do that with the system I’ve got in mind … though I’m not sure if that’s how it will turn out practically :p

The Blog Info table simply holds publication information for each blog such as links to entry ID’s in a journal and the entry ID on the remote server (for implementations using a blogging server) or the last date of publication to handle archival tasks. Again this is just stuff off the top of my head and all I’m doing is thinking aloud and some of these things will probably change at the implementation stage. Plus, there are other entities that I’ve not mentioned – such as a templates collection which will contain system-wide templates even though some of the implementations (such as those using remote servers) will not actually make use of templates.

As things stand now, this looks to be a fairly ambitious project and one which will basically mean a complete overhaul of Blog code and possibly a lot of rewriting. I want to do this though since it is going to make certain tasks (such as switching from stand-alone Blog to remote server) so much easier and will also provide the ability to plug-in any future methods of publication that might come up with comparative ease …

Tags: General
Posted by Fahim at 6:06 pm   Comments (4)

4 Responses to

Subscribe to comments with RSS

#1
Gravatar Image
Raven 21 March 2003 at 1:52 am

Wow! It’s refreshing to hear a developer say that the best way to advance the software is a complete re-write. I love hearing that! The reason why is just like you were saying…. it’ll be easier in the future for you, more features for us, and if people want backward compatability, offer them an upgrade path (which you have always done). Opera just did this with version 7 and I think it’s their best product ever! I wish you the same success!

#2
Gravatar Image
-Duane- 21 March 2003 at 3:46 am

Fahim –

Okay it’s time to make a major change to the name of the product to reflect the major code changes. HOW ABOUT “BLOG PRO”? :-p~~~

Good deal Fahim – I have only one request (for now – besides the request to change the name 😛 ) please think of some kind of “default settings/templates/package” that can be delivered with the code that can have the application up and running with NO changes to the defaults (Publish to local drive wherever the software is installed.)

I envision the “default settings” could be modified by a 3rd party and then the package passed on to friends/customers/users to install with the 3rd party settings in effect. I think this could be used by a “community” of users – business, church group, hobby club, etc. and the folks would not have to know anything about how the application worked. Just the fact that they entered journal entries and clicked a publish button and like magic the entry would appear on the web page.

This is looking like it will really be a great tool.

OH – one more thing – think about security/privacy issues with the changes. I am not sure what I mean but possibly userid/password protected input/output. Maybe a check box to keep some jornal enties from being picked up and posted to a remote site but allowed to be published to a local site only, etc.

GOOD LUCK _ GOD BLESS!

#3
Gravatar Image
-Duane- 21 March 2003 at 3:23 pm

One more thought –

If you can keep the data separate from the settings so backups can be done on the data only or just the settings – it would make it easier to work with – allow moving data from one pc to another without changing the layout on either machine.

Oh – one more question can the database(s) be put on a remote server?

This could allow remote editing of one database by many people.

See where I am going with all of this? ;->

If not maybe you could store the database on a remote server – then download it to be updated then uploaded again for others to use later.

#4
Gravatar Image
dantheman 23 March 2003 at 9:22 am

It looks like quite the task Fahim! You’re pretty good!

Anxious to see this new machine. Spreading ze GOOD NEWS.

As Duane said, God bless and good luck indeed!

Leave a response

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