Many years ago, when the Earth was just a broiling mass of volcanic activity, (OK, maybe not that long ago, but a while back,) I used to do a little freelance web design.
I teamed up with a friend from University and he handled all the code, whereas I did the layout and visual styling. I learned the bare basics of HTML, just in case I needed to check anything within the code, but that was all – I was basically a Photoshop jockey. The sites were all fairly simple – this was before the days of XHTML, CSS and the DOM, and were all designed using table-based layouts, which will come up in later posts.
We did do some coding at Uni – mainly in Java, which I hated. Having never done any coding before, (I didn’t own a Spectrum, or a Commodore 64 or anything like that growing up,) we started out with Pascal, which I found OK to follow but the jump to Java really threw me. Too many terms and concepts I didn’t understand and had no intention of doing so. It put me off coding for years.
Skip forward several years and I’m working as 1st line support for a company that sells and leases Unix-based boxes and sometimes I have to tail a mail log or grep something and to my surprise, I’m finding it kind of fun.
Then I got a job as the IT department for a company, which is where I work now. Yes, you read that right, I said IT department. It’s just me, doing everything from looking after the network and servers, supporting users over several sites to ordering toner for printers.
Anyway, we needed a way to streamline the way users contacted me about tech support tasks as the feedback I was getting implied that users would benefit from a way to explicitly log tasks and recieve better updates about the progress of a task, rather than just walk up to my desk and blurt out whatever is wrong and then have me shout “it’s done!” across the office.
I started thinking about creating a call logging system as a web browser based intranet app, originally starting in ASP using VB Script, which I found fairly easy to develop with.
Unfortunately I read that VB Script would only work in IE and several users, (myself included,) are savvy enough to have switched to Firefox. (Yes I’m biased and there are good reasons why, which I may go into in a later post.)
So I started over using PHP and MySQL. Having never coded much of anything before, (My blackjack game, written in Java while at University for an assignment, could not switch the Ace between 1 and 11 depending on what the player had in their hand…) this was something of a challenge and required lots of reading, coding, testing and a fair amount of swearing.
What I didn’t expect is that during the development process, I would rekindle the feelings that I first had when writing in Pascal. Yes, it’s frustrating a fair amount of the time, yes you spend a lot of your time figuring out why one section won’t work despite trying several syntactical approaches, but when it works, there is a feeling of reward and satisfaction that makes it worth the effort.
PHP is pretty easy to get started with, I’d recommend checking out w3schools PHP pages as a port of call, as well as PHP’s home on the web.
Personally I was amazed at how easy it was to connect to a database and retrieve and update information, although it’s not the easiest thing to install (more on that in later posts.).
I managed to complete my PHP/MySQL call logging system and I’m damn proud of it, even though I know the code is far from perfect. Users log calls through a fairly basic web form, which takes the relevant details and assigns them a unique reference string based on the site they work at, their initials, the date and a session variable to avoid overwriting tasks that were logged on the same day. I can tell at a glance who logged the task, from which site and when they logged it.
The system then emails both the person who logged the task and myself with the reference string and I assign the task to a timeslot and the system emails the user to tell them what date and time they can expect their task to be looked into.
The references show on a month-to-a-page calendar and are coloured and styled according to their status, which I assign. New tasks are automatically ‘unassigned’ (and I can search for any unassigned tasks with a simple SQL query,) and I can change the status to ‘assigned’ (which displays as green on the calendar,) ‘in progress’ (orange on the calendar) ‘awaiting 3rd party’ (purple) or ‘completed’ (red with a strikethrough to show it has been done,) as appropriate and the user will be emailed again with the status change and any associated notes I have made.
The system has allowed me to better manage my time. I can see at a glance from the calendar which tasks I have completed and which I have to do. It has also allowed me to report back on how I’m doing with stats to back things up (again done with fairly simple SQL queries,).
So far my lowest completion rate for a month has been 91% which I think is doing pretty well for a one man department.
So skip t0 now. My passion for coding has risen again and al0ng with it, a passion for learning, which I’ve really always had but found it difficult to apply at times, particularly if I wasn’t interested in a topic at the time. The other thing I’ve developed a passion for is web standards, which I suspect will feature heavily in this blog.
My aims for the future are to move away from most of the tech support stuff and instead either gain employment as a web developer/designer or else maybe go freelance. I hope to be able to offer a start-to-finish service, i.e. set up hosting and web server/database servers, design and develop websites and even handle DNS and maybe one or two other bits, like some basic SEO.
I’ve bought a stack of books and scoured the web for interesting and informative articles. I’ll point you to the former and share the latter in later posts.
This blog’s aims are to help me keep track of interesting links on the subjects of web design and development and associated disciplines, to champion the cause for web standards and standards-based design and hopefully, maybe serve as a place for other people who are learning the same sorts of things, whether new to web design and development, or perhaps returning to it after designing with tables etc, previously.
I’m going to try and make sure any terms are linked to wikipedia pages or other relevant pages providing descriptions etc, but it might be difficult to keep track of so I’m going to assume a certain level of knowledge. The simple rule of thumb is, if I haven’t linked a term and you don’t know what it is, look it up on either google, wikipedia or a favourite search engine etc. I’m going to be writing and learning at the same time – you’re welcome along for the ride but I’m not going to spoon feed you.