Click here for the Pscience5 Home Page Click here for My Software page Click here for the Xtra Software page Click here for the Articles page Click here for the Lost & Found page Click here for the Macros page Click here for the Colour Icons page Click here for the Overlays page Click here for the EPOC Links page Click here for the Contact page Click here for the Pscience5 Forum Please click here to donate towards Pscience5's upkeep


Using PsiDat to run your website

Article written: September, 2004

Download a copy of this article in zipped EPOC Word format here: PsiDatArticle.zip  (35KB)


Introduction:


Until a few months ago, I would've considered my website creation/maintenance activities pretty 'middle of the road'. I'd been using nothing more exciting than MS FrontPage in various version guises since 1998 to generate and maintain my Pscience5 site (and a few others that I've been or still am involved with). Over that period of time it'd be fair to say that I'd absorbed a little understanding of what HTML is, how a webpage works, etc. - but more through osmosis than any deliberate attempt on my part! However, I'd certainly never consider myself any sort of expert and - because the Pscience5 website was essentially my 'testbed' as I was learning from the beginning - it's grown pretty organically (read 'messily'!).

Partly due to the freedom that a small WiFi network at home provides, I've gradually been becoming less and less dependant upon the main desktop PC - instead using my netBook more and more for most things and occasionally a laptop. In fact, our desktop PC has been resigned to a computer cabinet these days instead of the pride-of-place on the desk that it used to occupy. However, the one thing that did still keep me using it - albeit inconveniently - was my website maintenance. And this inconvenience factor had a distinct effect on the frequency with which I was updating the website - i.e. less and less!

Of course, I'd been aware for some considerable time of the various HTML tools that are available for the EPOC platform. However, these were/are predominantly designed for small-scale maintenance (IMO) and not really easily given over to porting an entire existing site or for ongoing site maintenance. I'd also been aware - for about a year in fact - that PsiDat could in theory allow you to do this. In fact, I had various conversations with the program's author - Kevin Millican - a year or so ago about the potential for doing this (as he did with his own site). Kevin even went so far as to very kindly generate some examples of how my site might be started to be ported to PsiDat and what it'd look like. I have to admit however that it all seemed pretty daunting to me at the time since PsiDat is really an extremely powerful database program - I was then, am now, and really (if I'm honest!) hope always to be a bit of a database luddite!

Still, I was going to have to find some sort of solution fairly quickly if I didn't want my website to die a slow death through lack of updates. I resolved to give PsiDat a proper shot at it and try and get my head around what it was capable of doing to see if it really could take over from a dedicated PC-generated website program. I'm (very) pleased to be able to report that it was. My website is now 100% generated (and uploaded) from my Psion netBook and doesn't pass through my home PC at any point in the process. In fact, the only thing I now use my home PC for Psion-wise is the occasional backup. :) This article is essentially a description of how you can use PsiDat to do this and some of my experiences in the process.

What is PsiDat?:


I said earlier that PsiDat is an extremely powerful database application. It is - but that makes it sound pretty scary to non-database-savy people like me so I'll try to de-mistify it a bit. I suppose in its simplest EPOC-centric sense a PsiDat file is like a whole collection of EPOC Data files in one file. These data files (called 'Tables' by PsiDat) can have as many entries as you want made up of as many fields as you want (as far as I know). Also, the fields themselves aren't restricted to the 6 types of entries that a standard Data file can have (Text, Number, Floating point, Date, Yes/No, and Memo) but instead has the option of 17 types of entries, all with a whole range of 'modifiers' that can change the way the field acts. Which all begins to sound daunting and scary again but really you don't need to know that!

The clever thing about PsiDat (well, one of them!) is that Kevin has added the ability for it to export to HTML. That - combined with the website template he's generated - basically means that it can create nicely formatted web pages from the data entered into it. In other words, once it's all set up you go from a Data-style EPOC interface to a standard webpage just by a standard keystroke in the program. Because it's so easy to maintain the entries in it, it becomes an extremely easy, quick, efficient, and capable way of running a website - to the point that I now effectively run a sometimes daily - but certainly weekly - 'blog' on my site.

For example, this:-

A record in PsiDat...


Is the interface which helps generate this (shown here in EPOC Opera - but of course works equally well in any other browser):-

... generates one line of the webpage


Note that the PsiDat record shown generates a single entry in the table shown on the web page. The other table entries are generated by other records in PsiDat and the stuff above and below the table is generated by the headers and footers handling in PsiDat.

So is it as flexible as, say, something like FrontPage or DreamWeaver?:


No it's not. There are certainly some limits on the way it can natively format pages. I say 'natively' because the program is capable of just taking chunks (or whole pages) of already-generated HTML (e.g. from an existing website) and exporting them - so in that sense it can create anything that any other program can. However, once you understand these limits (and assuming that you're happy working within them) then it's still an extremely powerful web-generating tool. Personally, the advantage of having everything on my netBook (website, programming, articles, etc.) in a totally portable unit far outweighed the small concessions I made to the style of the site. And in any case I already mentioned that the 'old' site was somewhat messy and the whole porting-over exercise paid dividends in terms of cleaning things up style-wise. Of course, if you're prepared to spend more time than I did at the beginning generating custom HTML (either by hand (!) or using another - probably PC-based - program such as FrontPage, DreamWeaver, etc.) then this could effectively remove this style restriction.

Okay, so what can it do?:


Well, Kevin has written his own overview of this here: http://www.millican.info/psidat-webdesign.htm and I would certainly recommend reading this. Personally however, I found this a bit confusing at the beginning. It probably assumes a better knowledge of general website design than I possessed at that point (i.e. not a great deal!). Essentially PsiDat is capable of generating 2 types of webpage per Table: a table-based page and a more general 'composite' page. I'll try to describe these in more detail:-

Table-based pages:


By this I mean 'table' in the web/word sense - not the PsiDat sense. I.e. the page is predominantly made up of a table or grid containing the stuff you want on your page. This might sound restrictive but it's actually very useful. Even on my 'old' site, a large number of the pages used tables for containing everything that I wanted displayed - even if the table itself wasn't actually shown - simply for ease of formatting as much as anything else. A typical 'downloads' page, 'links' page, or an 'index' page might easily lend themselves to being formatted in a table (as indeed all of mine did previously and still do). Of course, you can still put other information above and below the table (using a custom header and/or footer for the page). The way this works in practice in PsiDat is that all the information in the web table is stored in a single 'Table' (think 'Data file') and that each individual line in the table comes from each of the pages or 'Record's. Hence when you select the appropriate HTML export option (Ctrl+Shift+W), PsiDat will export all the Record entries in the Table into the HTML table on the page, adding either a custom header/footer if appropriate or the generic ones.

Each table-based page is stored as a separate Table within PsiDat. This sounds obvious but it contrasts with the way in which PsiDat handles the composite pages (at least using Kevin's template - which is all I have used or am inclined to consider here!). The tables can of course be formatted in whatever style you wish (colours, backgrounds, border styles, etc.). So you can - for example - have invisible borders and an invisible table background so that the contents of the table simply appears as an apparently well-formatted page. Which of course is exactly how many other PC-based programs do it.

The really clever bit about the Table-based pages is that - as well as using them to build a page based on a table - you can also set them so that each record is capable of building it's own individual page. This would can be done by having extra fields in each record containing the information for the individual pages and then you turn off the extra fields that you don't need for the combined table page. Certainly if you're using PsiDat to built a website from scratch it'd be a good way of organising things. In my case I didn't - simply because I was effectively porting my site over and wanted to preserve some of the style of the old site - which made doing this difficult. However, it'd be a nice way of having individual pages linked off the main table-based site/menu.

'Composite' pages:


These are for pages which don't lend themselves naturally to a table-based format but instead might need a more 'free-form' format. For example if you're reading this article directly on my website, it'll have been generated and stored as a composite page within PsiDat. Basically the page is broken down into chunks (called 'Sub-Tables') that are pasted together when the page is exported to HTML. Each Sub-Table is a Record within PsiDat and typically each Record might have a title, graphics, URLs, embedded HTML, and plain text (for conversion into HTML text) or some combination thereof. This is certainly handy for porting existing web pages over to PsiDat as you can effectively just cut & paste chunks of HTML from one to the other, adding in plain text and other bits as required.

Somewhat cleverly, PsiDat (using Kevin's template) 'files' these chunks rather well (well, it is a database after all!). All the composite page titles are filed in a generic Table called 'Pages' and all the chunks themselves are kept in a Table called 'PageBits'. However, 'Pages' keeps an index of what chunks correspond to what pages so that when you select your composite page and hit 'SubTab' (i.e. Sub-Table) it presents you with all the chunks in your composite page selected from all the 'PageBits' as though they were their own Record. Similarly, you build up these chunks - or Sub-Tables - from within the 'Pages' Table so that it constructs this index as it goes along. I suppose that the one disadvantage of having all the composite pages filed under one main Table is that you cannot specify a customer header and/or footer for each page as such. On the other hand, since it's made up of as many chunks of text, HTML, etc. as you want; you can effectively add stuff at the top and bottom of the page that mimics headers and footers anyway.

Headers and Footers - what they?:


They're probably most easily likened to the headers and footers that you use in MS Word documents - for adding common stuff to the top and bottom of pages. They can be either common to all pages or custom to a specific page or pages. They might do stuff that's obviously visible at the top of the page (in the case of headers of course) - e.g. a common menu - or they might do invisible stuff like special page formatting. For example, defining frames used on the page or site (and hence the actual layout). All the headers and footers are kept in one Table - the zPsiDatHTML table in the standard template (sounds difficult but don't worry about it!). They're entered as raw HTML - which sounds daunting but usually you'd be copying the bulk of the header/footer from existing HTML if you're porting from an existing site. Headers can also be used to set up the layout of the page - e.g. if you want to have a side pane on the page with menus, etc.

Anything else?:


Another useful thing that Kevin has added is the ability to add bits of HTML code into the plain text entries in the pages. Whilst of course you could just use the HTMLText entries to do this in, there are times when it's easier and more obvious just to add small bits of HTML into the plain text. It also helps to reduce the total number of records you might need to make up a particular composite page. Marking the beginning and end of an HTML section is done using the '‡' character (ASCI character code 135, HTML character code 8225 - the double dagger). Hence inserting something like ‡<b>‡Note:‡</b>‡ effectively means: switch from plain text to HTML, start bold format, write the word 'Note:', stop bold format, switch back to plain text from HTML. In other words, 'Note:'. Basically, it's easy to mix HTML bits'n'pieces in with all the standard plain text that you might want to use.

So how do you start?:


As with many things, the best way to try start something is just to try it. PsiDat is no exception. And Kevin provides the templates and various samples so that you can experiment to your hearts content! There is a little bit of a learning curve - but the ability to carry your website around with you is an incredible boon and easily justified it in my case.


Martin

^ Top of Page

< Previous Page

<< Pscience5 Home Page

Saturday, 1 April 2006