Spinning the world away

When Mood Music
2013-05-12 23:58:00 bouncy Radio 4

First exercise high in several weeks at the Sunday Sundowner tonight. Unexpected because I was feeling quite frowsty before we started. Inspiration came from Jo to my left, Hugh to my far left, Elly to my right, all the other lifescyclers and Martino’s unique footwear.

(And let’s not forget that final track!)

Thank you all!

Showing my age

When Mood Music
2013-05-09 21:42:00 happy The Doors – Hyacinth House

The Doors’ LA Woman is fantastic to cycle to! Even better if the mojo rising section starts just as you pull away from a stop.

Not that you should be cycling to music, of course.

By the way, just had my first ever personal training session – interesting and fun. This follows last night’s spinning session which was packed and very, very hot. I wanted my bike to start moving so I could leave my acrid sweat-pong behind. Uurrgghh!

A farewell to teaching

When Mood Music
2013-05-08 16:22:00 thoughtful none!

So I handed in my final classwork on Monday. (It’s some thoughts on risk management in software projects and is here.)

So having taken yesterday and today to do some postponed personal stuff, tomorrow I launch into my MSc dissertation. I’ll work on that 3 days a week (I’m a part-time student), leaving 2 days for freelance work, self-guided study (PHP, other web-programming stuff and further explorations of Java, probably), teaching cycling skills, …

I won’t be bored!

The things you learn

When Mood Music
2013-05-03 17:41:00 contemplative Radio 4 News

My current classwork, to be submitted on Monday, is an evaluation of risk management in software projects. Of course, this is because I intend to have a career in management. (No, really I’m not [runs away screaming])

OK, I’m back and am amused to learn that there have been at least two international workshops on software aging and rejuvenation! Here’s one of the papers.

By the way, I’m currently in awe of the Digital Object Identifier system.

Support your local CC

When Mood Music
2013-04-26 00:30:00 tired none

I’ve become minutes secretary for Leith Central Community Council, even though I live in the West End. Their AGM is on Monday the 27th of May. Your attendance is solicited.

Further, new office-bearers will be needed – if you are eligible, give it a go. Contributing to the only body that has statutory, independent input to your local authority and is designed expressly to gather and communicate community opinions can only be a good thing.

Finito for real

When Mood Music
2013-04-25 14:54:00 annoyed I hope you die – Bloodhound gang

So at the ‘show me your website – prove you did the work’ session yesterday, the lecturer added another requirement. This was the ability to delete a record from the database.

It was reasonably trivial to implement – I took longer than I’d have liked because I wanted safety trapping and reporting.

  • only an admin could delete a user’s record/account (so delete function was only on the admin page)
  • admin accounts can’t be deleted. (I’ve added a bit to the write up, suggesting a superuser who can delete admin accounts)
  • The admin has to manually and correctly enter the deletee’s screenname and password. Mismatched or non-existent data earns the admin a lambasting.
  • After a successful delete, the webpage reports User Arnöld, whose email was T-101@skynet.com, has been terminated.

I could have built in more safeguards or options such as You entered user JöhnCönnör but email address sarah.connor@resistance.com. JöhnCönnör‘s email address is john.connor@resistance.com, and sarah.connor@resistance.com‘s username is SärähCönnör. Did you wish to terminate

  • JöhnCönnör/john.connor@resistance.com
  • SärähCönnör/sarah.connor@resistance.com
  • both
  • neither

(The bullet points would be buttons.) However, this would have added to the complexity of the code without demonstrating any new skills, apart from possibly the PHP script which is called in cases of mismatch calling (and passing suitable parameters to) a separate PHP script to do the actual deletion. I’ve only passed parameters from PHP-enabled webpages to PHP scripts and JavaScript scripts, from PHP scripts back to PHP-enabled web pages and from JavaScript scripts to PHP scripts, not from one PHP script to another, so this might have been interesting.

But deletion is stupid! As was pointed out in the database systems course at the start of the MSc, and again in the Information Systems Engineering course last term, and by another correspondent, deleting a user-account is likely to delete transactions associated with that user. (Thank goodness I didn’t try to implement an e-commerce site – I’ve no idea [yet] how to set up relations in MySQL but I suspect it can’t be too hard.) Instead, such users should be marked as inactive. If the number of inactive users degrades performance, they can be moved to a separate database (with the option of reinstating them if so desired).

And as for adding an extra requirement 5 days before the submission deadline, BAH!

Anyway, I’ve now submitted my website code and printed my write-up (note no TurnItIn check!) to hand in on Monday.

Finito

When Mood Music
2013-04-21 04:21:00

I’ve done as much as I’m going to do on the web design coursework. The site is here. If you want the database stuff to work, you’ll need to feed this script into PHPmyadmin.

For those of you who aspire to be administrators, go here.

The write-up has taken a working day. Writing it helped me find several errors (now fixed, I think) and plenty of scope for improvement if this site was ever to go live. Enjoy!

more progress

When Mood Music
2013-04-19 19:16:00

OK, I’ve got as far as test 2 and History/culture lesson 2 – that’s enough to demonstrate my web-programming, ahem, skills. In place of language lesson 3, there’s a page exhorting students to buy the dead-tree-format dictionary and take the course for real.

Test 2 uses AJAX/JSN to pull the questions out of the database. This is un-necessarily complex for this context, but possibly worthwhile if I was to have lots of questions, and a script that pulled 20 random questions from this pile. Of course, the actual reason for using AJAX/JSON is to get the marks available for doing so.

it’s taken me until now to deal with the situation where a student has passed test 1, but then logs out and returns at a later date. To prevent non-linear progress, the list of lessons in the left sidebar had no links to actual lessons, apart from lesson 1. Then a student would have to go to lesson 1, then from there to test 1, and could only proceed to history/culture lesson 1 by passing test 1 (or by hacking the URL). Access to lesson 2 was only from history/culture lesson 1, and so on.

I realised today that the list of lessons needed to be augmented such that links would be in place if the student had passed relevant lessons. So it was fairly simple to make the side-bar code a PHP file (it had been a single HTML file, included into every relevant page) and then include PHP nuggets calling PHP scripts that echoed enlarged fonts, with links if relevant scores in the DB were >19. (Yes, PHP’s woeful arithmetic bug struck again. Using if (score=20) didn’t work yet again.

(Aarrgghh, I’ve just realised if (score==20) may well have worked! If so, I apologise to PHP!)

So just the admin functions (contact us, amend and delete accounts) to go…