Databases
TT380

The cunning plan…is to blog my way through the course and then at the end to write a considered, helpful and all-encompassing review.

This page has the potential to get very long, I should/might/will fix that at some stage.

2007-9-9

I’ve now signed up for this course—the course site is sitting dormant on my student homepage. Aside from a determination to be the first to post in the cafe all I’m now awaiting is the arrival of the course material—two books and my fourth copy of the web apps software.

Two books!

Now, the course book is, perhaps, the single greatest cause of student angst. Two books would seem to be inviting double the trouble. I await their arrival with interest.

From the gossip in the web apps survivors it would seem that most of us lags are on board and keen for the off. I’d almost say that we were missing our regular dose of CMA & ECA deadline hell. What mugs we are.

2007-9-16

The books have arrived after some hassle with the parcel people—their site is rubbish by the way.

I’m pleased with the books, they’re SAMS Teach Yourself which are always my default choice when buying the first big book for a new language.

Am I a good geek?

I’ve just spent the afternoon trying to get some software loaded for the course, after some installs, uninstalls and various messing around the balance sheet looks like this:

Success!

  • Apache
  • MySQL
  • First Class—at last! I’ve been without it since I bought the Vista lappy in March.

Failed

  • ColdFusion

I spent some time breaking things in the Apache .conf file until I realized that the ColdFusion version on the book’s disc wasn’t compatible with the Apache server that I’d installed. So I downloaded the ColdFusion 8 developer edition but I couldn’t configure that either.

Hopefully I can use the server provided for the ECA for ColdFusion testing. From a quick flick through the book it looks like ColdFusion isn’t too difficult as languages go. We’ll see.

2007-10-2

Well the course has started, the site is up, I’ve skimmed the books and the first couple of study guides. I’ve also posted some nonsense in the cafe, been given a row by Veronica for, frankly off-topic rubbish, tried to start some fights, and insulted David. I’m having fun. I think that I’m going to like this course.

So you’re doing the work?

No, of course not I’m a student again, what planet are you from? Here is a, brief, summary of what actually I’m doing:

  • Drinking too much—as usual.
  • Developing a forum for my other site. [More on this soon].
  • I’ve committed myself to a complete re-design of the above mentioned site. Despite massive help from the experts in the web design conference it still has problems. [More, too, on this soon].
  • I’ve just been promoted. Not a problem in itself; I just order other people to do what I used to. But I once did a cartoon that went down well — they now all expect it. So ex-boss is on a promise in his mind. It doesn’t matter how much you love doing something, when there’s a time-crunch and an expectation your not going to enjoy it. It can be no fun to even the most confirmed glutton to consume a Sainsbury’s meatilicious feast pizza in 30 seconds while your tablemates bay at the back of their throats and spill their wine, just because you did it once in a feat of epicurian daring.

In short too much. But this site needs another stylesheet, now what could I do if I didn’t have to be accessible?

2007-10-14

I would have posted this sooner but I went out with my ex-boss on Thursday night for a wee drink. I woke up the next day fully clothed and with a searing pain down my whole left side. My wife’s gleeful forensic investigation established that I’d fallen over. “Really dearest?” Anyway typing has been agony so that’s why this is a bit late.

The end of week 2 already.

We’re still in the early ‘concepts’ part of the course, the bit before we get down & dirty with the coding, so things are a bit quiet. The conferences are mostly about peoples’ problems installing ColdFusion or getting the secure shell client to work. David D is doing sterling work guiding people through the problems. But then he is a UNIX nut and his second home is the command line.

We’ve also been introduced to the message forums case study: a ColdFusion/MySQL… well message forum. It’s a bit more than that—it supports wikis which may prove useful later in the course. The course conferences are going to be transferred to this soon. All well and good but it isn’t a thing of beauty, it, or part of it at least has crashed over the weekend and most of all it’s unfamiliar. I foresee trouble.

The course itself is just getting to entity models, something that I’m not looking forward too. I’ve struggled with them in the past and they’re something that I usually skip. But the word is that they’re worth a sizable chunk of the final marks. Not good.

The first CMA is out and although I’ve just glanced at it, it looks fair. I’m not even going to attempt it until next weekend so that others can spot any potential problems!

2007-10-18

Utterly tragic news - Hilma Miles has died walking in Bhutan. Her brother has a site. But all I can say is—I’ll miss you H. you were one of those people who made life that wee bit better.

2007-10-21

The schools have been on holiday this week in Edinburgh, leaving me pretty much to my own devices. So instead of doing the job that I’m paid for, or working hard for this course I’ve been building an ASP message board.

Which meant that I had to think about application security. Which I suppose is vaguely course related. So I thought that I might as well share my thoughts.

The CMA is due in on Friday. I’ve done it but I haven’t submitted it. There are a couple of questions where, although I think that I’ve got the answer, I’m not sure that I’m reading the question properly. So I’m going to hold off submitting until Thursday in the hope that either someone will ask a pertinent or that they manage to ask something that will get the question zero-weighted.

Next week I’ll create a blog archive so that I can shorten this page—promise.

2007-11-04

CMA Problems

It’s been over a week since we submitted our first CMA and still no feedback, well there is feedback but no results. And the next CMA isn’t available yet either. There are mumblings in the ranks.

I, of course, have thrown away my answers so I’m reliant on my memory to get my mark. I just hope that it has been poor.

That would be a security flaw then?

Yes that would. Zephan S. spotted that if you knew (or could guess) someone’s OU username then you could use a ColdFusion webpage to mess with their tables. Oh dear.

I, however, didn’t believe this so I handed out a challenge, and my username and PI. Result: my tables were diddled with and I’d just handed over the password to my mySQL database. Not good in any sense. But it just shows how cretinous you (in this case I) can be, throwing out stupid challenges and handing out information without thought one.

Hopefully this loophole will be closed before we do our final assignment. Otherwise some disaffected individual, behind with their work might decide that lopping off peoples’ tables right, left and centre might buy us an extra week. Not that I would ever do that.

But the course?

It has to be said that I ain’t doing much work. I’m in that special place: where my initial enthusiasm is wearing off and the final assignment isn’t out to get me moving. Hopefully things will pick up next week.

2007-11-14

Hooray for the ECA

After a week of doing barely anything, course wise, I’m now worried. My CMA is due on Friday and the ECA is out. An ECA that I do not like the look of one little bit.

So the plan is?

Well do the CMA first of course. That would be tomorrow Neil—not on Friday morning. And then it’s time to plan to tackle the ECA.

And the ECA?

Again the swithering pan-casting swine want our opinions. They seem to have made something a success of this online lark—their server is about to fall over under the weight of fools seeking to part with their hard-earned for their shoddy pots. They have now decided that they need a database and a proper webserver. This is where we come in.

The Task…

Falls into three parts:

We have to turn an entity model into a set of tables.
Which isn’t as bad as it might have been—we could have been asked to produce the entity model itself. However I haven’t done to much work on mySQL table creation, and I’ve been spoiled by SQL Server and Access, so it may not be as easy-peasy as I assume. Marks – 20%
We have to produce some ColdFusion pages.
Which as I haven’t written a single line of ColdFusion code will be interesting. To say the least. Marks – 30%
We have to produce a report on the scalability and reliability of a database/webserver set up.
This is where the serious willies start kicking in. I have some grasp of the concepts but the fact that they go into a sinister amount of detail about the hits expected and some processor statistics leads me to believe that nitty-gritty details are expected. And from previous courses I know that the report is my weakest point. Marks – 30%

So, yet again, we aren’t going for a distinction here.

You mentioned a plan

I did, so here it is. Well for the next week anyway.

  • Do the table creation stuff. Should take about two days, but from past experience I will allow a week.
  • Write the headings for the report. Again shouldn’t be hard.

I try to post on Sunday about my failures.

So what were you doing?

Well some ASP work here but mostly I’ve been messing around with some JavaScript printing stuff that if you are on firstClass you can see Jeremy C., Simon H. and I having horrors with over in the webapps.

2007-11-30

The dreaded lergy…

Struck down in my prime, well maybe sub-prime (as in dodgy mortgage market) would be a better way of putting it. I’ve had the flu basically. Well, again, I say flu but we are probably talking about a bad cold.

However this illness has left me unfit for anything except sleeping, reading non-computer related books, and struggling into work to swear under my breath at my co-workers. So no coursework has been done for another two weeks. Not good.

So my plan, such as it was, has ended up, like many of my very best plans, as a total non-starter. The report isn’t even in the concept stage, the table creation script isn’t done and I still have yet to write a single ColdFusion tag. I’m also stuck in that bad place where even getting started seems like too much of an effort. So what is needed is a new plan.

Catching Up

I’m hoping that panic will kick in soon and that I’ll get motivated to work a ridiculous number of hours a day for a couple of weeks, but I don’t think that it’s going to. The trouble is that although I want to pass this course, I’m not sure that it matters to me that I pass it well. This isn’t a negative comment on the course itself—it’s in the running for the best of the TTs at the moment, but about what I, personally, want to get out of it. If I look at my learning outcomes so far thusly:

  • TT280—Before this course I’d been playing at making web pages. I had no real idea about what I was doing but tragically I thought that I did. I used tables for layout - ’nuff said. I haven’t finished, and of course never will, learning about things like usability, accessibility, site structure, semantics etc, etc. But if I hadn’t done this course I wouldn’t even have started down the right yellow-brick road.
  • TT281—Took my javascript skills to a whole other level. I’m no Peter Paul Koch, John Resig or Chris Heilmann but I can understand what they are on about, and perhaps more importantly I know who they are.
  • TT282—Got me thinking about what it really takes to deliver an online application. I’d produced plenty of asp pages but it had all been done in an ad hoc fashion: there was no underlying structure, thought none had been given to security, modularity, scalability or the manifold possibilities for user/developer error.

But this course?

Well databases are what got me started on this whole web lark, so I know how to write an SQL and normalize a database. Granted I’ve never done it from the command line or done much in the way of table creation scripts, but essentially I’ve not had too much to learn.

ColdFusion looks nice, well thought-out, feature rich and so on but am I actually going to use it after this course?

Which leaves me with database scalability. Which although it has been quite interesting is probably not something that I really need to know.

And yet…

Funnily writing this little piece of drivel has made me feel that maybe I’m wrong. There is stuff that I need/want/should know here and it is worth my while making the effort. So I’m off to start fleshing out my report. The plan? Well that can wait a while.

2007-12-10

Catching up is hard to do

But I’m trying, here’s the balance sheet so far:

The ColdFusion pages

I spent most of yesterday on these. I didn’t get them finished, that would have been asking too much, but I’m nearly there. Surprisingly close to being nearly there when you consider that I wrote my first ColdFusion tag at 11am yesterday morning.

ColdFusion, as a programming language, is very nicely thought out. There are tags for everything that you might need. Have to get a recordset? Then <cfquery name="qry" datasource="DSN" > is the tag for you. Output said recordset? No bother <cfoutput query="qry"><p>#qry.field#</p></cfoutput> will do the trick. But there are a lot of ways of doing exactly this in ColdFusion, some of them involving a lot more code. I picked the above methods because I’ve looped through a few recordsets in my time and I could see that the code was doing the work. But I can see others thinking that a <cfloop> tag was required. Which got me thinking who is ColdFusion being aimed at?

A tag-based syntax with a small number of powerful, and easy, built-in functions/methods would seem to lend itself to the HTML developer moving over onto the server-side to perform basic processing. But there isn’t a small number of functions/methods. This is meant to do serious server-side lifting and you’re supposed to know what you’re doing.

It unlikely that I’ll ever do any ColdFusion work outside this course and my suspicion is that I’ll find PHP to my liking but I can’t help but think that if it were free…

The report

For this course I changed my modus operandi as burglars, serial killers and failing students should do every now and again. I tackled the report first. The theory behind this was that on every course so far I got down to the, fun, scripting part right away. However this had the drawback of giving me the opportunity to tinker with the scripts any time that I got a wee bit stuck on the report. The result was scripting—30% of the marks—70% of the time spent. So I made myself write the report before I got to do any scripting at all.

This has resulted in the report being 1999 words. But I’m not entirely convinced that these are the right words, in the right place and that they say the right things.

I’ll revisit the words this week to see if I can make them better.

The table creation script

Not started. And won’t be until the report is to my satisfaction and the ColdFusion pages are complete.

So the plan?

I found myself writing down little timetables on till receipts this week. This is not good, there will be no more planning we will rely on panic, shame and drink to do their work.

2007-12-16

The easy bit

Today was the day I set aside to deal with the table creation scripts—the easy bit.

Alas it did not prove so. I didn’t foresee that having to explain my choices was going to be such a pain. Neither did I realize quite the extent of my ignorance of MySQL. I had to continually refer to the reference about what, for instance, orderIDfk smallint(5) NOT NULL actually did/defaulted to. I’d assumed that it defaulted to NULL but no, it defaults to 0 (on the version that we are using anyway). Which may, or may not, be OK, but it is definitely something to think about/comment on.

But the other bits are done?

Yes, in the sense that they could be submitted, but they are not done in the sense that they are right.

The report

Well I suppose that I could submit it as is. But while I was having trouble with the tables I did some task-avoidance perusal of the ECA booklet. I hadn’t read it properly, for the umpteenth time. Now I’m not saying that it was exactly like this but here is the marking structure:

  1. A general discussion of the issues involved—20 marks.
  2. A specific recommendation to the potters—20 marks.

My report? About 75% about 1 and about 5% re 2. Yet another re-working required, a somewhat substantial one.

The ClodFusion pages

I’ve mis-typed ColdFusion thusly so often that I’m going to stick with it.

They work, but I wouldn’t put them up for real—not enough validation. If I have time I’ll whistle & bell them, but that is definitely an optional extra at the present.

Panic

Has definitely set in, but as per it arrives at the party when the early arrivals are too drunk and it has to play catch up. Still by this time next week all that will be left are “what ifs”, some books to gather dust, a series of notes to be consigned to an oily fiery death and another folder of trash to take up room on my C:\ drive.

2007-12-19

Race condition

The ClodFusion pages weren’t right and took an afternoon to sort of sort. The table creation scripts are still mostly bare of comments and the report is ‘unsound’.

Two days to go and it has all gone pecs up—yet again.

So why are you writing this?

Because I wrote most of this on Sunday night [don’t even bother complaining] and I thought that I might as well “share my pain”. It might also remind me not to get myself into this position again. Either do the work sooner or don’t sign up for the next course Neil.

Prediction: I don’t know when the next cut-off date is but I’ll be in the same drunken, panicked and arm flopping condition two days before that deadline too.

And then you walk the dog…

It’s about 30 degrees below outside and the pavements are like glass, smeared with oil and carpeted with the slippery bits of the banana skin. That’s right—feet above the head, arm thrashing, butt sliding, dog-barking pain and embarrassment.

I’d say that “things can only get better”, but it is always a lie and in the run-up to the ‘festive’ season doubly so.

Bah humbug!

2007-12-19

Whew

Final submission at 11am after some last minute fiddling with the SQL script. For some reason it started throwing errors; hopefully I fixed it but I could only test it on my SQL server at work so we’ll see.

Course round-up

Will follow in due course but I’ll dash off a few quick thoughts now.

I’m not sure that this course knew what it wanted to cover. Ostensibly it was about databases and the web but if you came to it without any database experience at all I’m not sure that it was the best introduction to them. There was very little about table design and normalisation for instance. But if all you’re ever going to do is construct a few queries for a script to use then maybe you don’t need to know too much about database design.

The report, on scalability, reliability system setup was seriously odd. It was based on two weeks of the course and, to my reading of it, asked for stuff that we hadn’t covered at all. But then what else could it have been about?

But perhaps I’m over-carping here. As I go through these courses I’m beginning to see that they have been designed as a whole and some of the things that strike you as odd at the time come to ‘fit’ later.

Clodfusion was an excellent choice. A very nice language with a gentle learning curve that deserves to be far more widely used.

Roll on tt381!