Blog
SMA-UK
For those of you who haven't actually heard the news yet, a trade association whose mission is to "provide a platform to inform and educate the marketplace of the benefits of search marketing in the overall marketing mix, as well is giving its members an industry voice". Hurrah, I say! About time too. SMA-UK is a UK-based trade association just starting out. Head on over to www.sma-uk.org and sign up to their newsletter to keep abreast of developments.
StrokeIt
If you asked me to name just one program I don't think I could live without, I would name a program I never actually remember I am running from one day to the next. It runs so invisibly that the only time I ever remember I'm running it is when I'm not running it. If that makes sense.
I'm talking about StrokeIt, the single most useful program I have on my PC. It's free for non-profit and individual use. Companies can buy a license for $10 - and it's well worth it.
So what does StrokeIt do? I hear you ask. Well, StrokeIt enables you to use your mouse more intelligently and effectively. Essentially, StrokeIt allows you to perform common functions with a gesture of the mouse.
For example, when browsing the web, the average person spends a lot of time going back and forwards. You can click a back button, or press backspace on your keyboard, but using mouse gestures allows you to go back or forward simply by making a left or right gesture with the mouse.
In order to actually perform a gesture, you start by holding down the right button of the mouse. Then, you make your gesture (eg moving the mouse in a straight line to the left to go back). Then release the button and the gesture will be performed. Simple as that.
Opera, the internet browser, was the inspiration for Mouse Gestures, and other browsers now include these by default. StrokeIt, though, allows you to use gestures in each and every application on your Windows PC.
When you first install the program, you will find that it takes a little while to get used to. Check out the options as well, to turn off the coloured lines that gestures produce (you can literally make them and the whole program run invisibly in the background if you wish).
Once you are familiar with the concept of gestures, you can start to configure them for individual applications. While the most common gestures in file managers and web browsers are back, forward and up, other programs like graphics packages or word processors have different requirements and will use different gestures.
I've been using mouse gestures for a year or two now, and they are without a doubt the biggest advance in user computer interaction since the invention of the mouse. They will change how you use your PC and the internet. Go and give them a try!
General Updates
I finally got around to fixing the site feeds. Originally, there was one RSS feed for all posts on the site. Then, there was an Atom feed running alongside it. Now, the site is split more into sections - Articles, Resources and Blog posts.
So now, there are many feeds. Visit the Syndication page for the details and options.
I've also updated the quite poor wallpapers, with the addition of 2 new ones.
Bill Bailey - Part Troll
Bill Bailey sold out so quickly for his 8pm show at the Brighton Dome last night that they added in an extra show at 4pm. Good job too, or I would have missed out on his "Part Troll" show.
A great time was had by all. Bill was a treat to watch, and it is almost impossible to pick out a highlight - a German version of the Hokey Cokey in the Kraftwerk style; Wonderwall, Deliverance-style; random ramblings about delusions of rastafarianism ... it was all hysterical.
He's not your average stand-up - the whole show felt more like he was just having a conversation with a few friends, rather than a scripted performance. Top stuff. If you get the chance, go and see him in action - you'll laugh till you cry.
Smoke-Free and Snappy
So begins day 5 without cigarettes, and so far it's going well. I am a little more short-tempered than usual, but that will pass. I haven't used the patches for a while - they itch like crazy and, though they do help, seem unnecessary at this stage. I'm trying to wean myself off a nicotine-dependence, essentially - so it makes sense to completely ditch the nicotine!
The lightheadedness / dizziness apparently isn't uncommon. I almost fell over yesterday on the way home, but according to the medical sites I've had a peek at this morning, this is down to the body adjusting to receiving oxygen again. It's not used to it, y'see. Hopefully that won't last much longer.
First major tests coming up this weekend as well. Tonight, beers with an old friend - who smokes. Tomorrow, beers with a couple of old friends - who smoke (then dinner in a smoky, but very nice restaurant - The Jolly Sportsman).
Mind you, all that aside, after another long week in London, what could be better than spending the evening laughing my ass off with Bill Bailey at the Dome in Brighton?
Google Desktop Search
It's about time Google came up with something new. I was beginning to think we'd not heard anything from them for ages because they were all to busy stuffing their faces with fine cuisine, and relaxing in bean-bag chairs, to actually do anything.
It turns out not - instead, they've been working on Google Desktop, a tool to allow you to search the files on your own PC.
Much like Copernic's Desktop Search tool, this searches your contacts, emails, documents, web history, and much more.
It's still in beta, and only supports IE (boo, hiss, etc), but this looks like an interesting development on the desktop from our favourite search engine!
Fun Transfer Protocol
Mrs Dave, looking over my shoulder as I make some notes on the train this morning:
FTP? .... I know the TP stands for Transfer Protocol, but what does the F stand for? Fun? Fun Transfer Protocol?
Fun. Transfer. Protocol. She really is a diamond some days.
AddedBytes.com Redesigned: Version 3
Since launching AddedBytes.com, I've spent most of my free time working away at the backend. I'm using bBlog, which I've found to be very well made, so far. It's template driven, easy to modify, and quick to run. The version I'm using here has been vastly altered when compared to the original (and I plan to actually document those changes so others can make use of them as soon as I have enough free time), and I'm now more or less happy with the running of the site.
I've held off on doing any major work on the front end for the last year though. I didn't want to put a design into place and find myself constantly having to change it around every time I added a new feature or changed something minor. However, with the back end approaching something I am happy with, I recently felt it was time to sort out the front end. And here is the result - Version 3 of AddedBytes.com.
New Features
As with every redesign, this was an opportunity to add a few new bits and pieces I've been working on. There are a few new features and small changes across the site, and hopefully these will make using the site a bit easier!
First, you may have noticed a search box on the right of the page. If you haven't used it yet, and have JavaScript support in your browser, you might want to give it a try. It is a "LiveSearch", meaning that as you type in a search query, a JavaScript utility writes the search results to the page (if you want to know how this is done, read the LiveSearch article).
Next, you might also have noticed, if you are a regular visitor, that the links to each section are missing. Instead of having links to a small set of the sections on the site as a navigation menu, I've decided to split articles into groups. At the top of each page you will see the four sections articles will now fall into - Blog, Articles and Resources. Within those sections are categories like PHP and ASP, but this should make it easier to browse the site. And yes, the Blog section is a new blog.
New links will spend a little time on the sidebar as well now. I am not yet sure that I want to keep this feature, so please let me know your thoughts. My thinking is that if someone wants to visit links I recommend, they'll visit the links section - but I might be wrong.
Comments have had some small improvements made. I've added in a plugin to allow you to ask the site to remember your name and URL, using cookies. Comments are also numbered now as well - with the numbers being direct links to the comments.
All in all, it isn't a major update. The site should, with any luck, be easier to use and easier on the eye.
The ultimate judge of whether I have managed to achieve those goals is you - please, let me know what you think! Comments, criticisms and suggestions are all welcome.
I Quit Smoking. Again.
11th October 2004. Attempt number ... no idea. Here we go again!
LiveSearch
The LiveSearch feature from Bitflux has inspired a fair few people to implement a LiveSearch on their own sites. The idea is simple - if a user has JavaScript, use it to show them search results as they enter their keywords, potentially saving them loading a new page to see their results.
However, the system, though very cleverly implemented, is based upon the XMLHttpRequest object, which brings with it a few problems. First, and for me most importantly, it doesn't work on Opera. I like and use Opera, so when I decided I wanted to add something similar to AddedBytes.com, that was top of the list of problems to solve.
Second, some of the versions people have come up with actually prevent a user searching normally. I want this to be a useful bonus, but not something that can stop people using the site normally under any circumstances. Of course, it goes without saying that anyone without JavaScript should not notice anything wrong or missing.
With all this in mind, I set to work. The XMLHttpRequest object method, though nicely done and perfect for the job in an ideal world, is the reason the LiveSearch was failing in Opera. Opera just doesn't support the XMLHttpRequest object. So, I ditched it. One other possibility was to use frames, which I didn't consider a serious option. Instead, I've gone for a system that makes use of JavaScript's ability to generate HTML elements on the fly and add them to a page using the DOM.
In basic terms, the LiveSearch works like this:
- User enters a letter into the search form.
- The browser detects the keypress and runs the LiveSearch script.
- The LiveSearch, since it is communicating remotely with a server, first pops a "Searching ..." notice below the search box so the user knows what is happening.
- The script polls a small PHP script on my server using the keywords entered into the search (assuming they have changed since the last LiveSearch was run).
- The PHP script generates a JavaScript document with the results of the search in it.
- This is added to the header of the page using the DOM.
- The newly-added script is executed, writing the results of the search to the page.
Problems along the way were fairly constant. One that kept frustrating me was that, in Opera or Firefox, the script didn't wait for the generated JavaScript function to be added to the page before trying to run it. What that meant was that when you searched for something, it wrote out the results of your previous search. So when you entered P - H - P, pressing the second "P" triggered the script that was sent back containing the results for a search for "PH". The next keypress would trigger the function that wrote out the results for your search for "PHP". Basically, the script always wrote out the results of the previous search. Not good.
Also, some searches returned huge result sets. I didn't want to have huge files flying around, so limited results to a maximum of 10, with, where appropriate, a link to view all results.
In the end, the script works rather well. In order to always show the correct results for a search, the liveSearch function is triggered to run on a keypress, and also set to run once every two seconds independantly of keypresses, meaning that if a results file is slow to download, the search results will still be written to a page. The search itself only actually happens if the keywords are different.
As it is still very new, I'm not going to make the code available here just yet, or run through in detail how it works. However, once I am happy all is well, I'll be posting the source here for all to use.
Juno Records
Juno started out way back in 1998 with a very simple, text-based look, that has proved popular with the users ever since. As you can see, the 1998 version is quite similar to the 2004 version.
Shortly after the shapshot of the 2004 version you see above was taken, I started work with Juno. My brief was fairly simple - to bring them up to date, while improving search results and ideally converting a few more visitors to customers. Though the text-based look has served them very well over time, their simplicity and lack of visible branding was responsible for a large number of potential sales being lost.
The previous system was also technologically past its best. The local product management system was responsible for generating and uploading tens of thousands of HTML files daily to the site, and some pages had become exceptionally large and unwieldy. One, especially, was over 19 megabytes in size.
So the aim of the project was to upgrade the front end of the site. We wanted to keep the same backend, as the systems in place in-house were serving their purpose well. So with this in mind we opted for a site based on PHP and Microsoft's SQL Server. These two are a powerful combination, and also gave us the option to use database replication - meaning the site could be run without needing to alter how things worked locally.
The data itself needs to be processed for the web - the search engine, especially, has a lot of data to sort through, so after data is replicated to the database server, some stored procedures are run on it to modify and simplify what's there, and organise it so that the search engine can run quickly.
The site itself is run from a custom templating system, allowing people to edit the look of the site and add to it without needing to delve into the PHP behind it. There are also a series of page generation caching scripts in place - most pages are cached for a short while, at least - some for many weeks, depending on how often they are updated. Some parts of pages are not cached, and are put placed within the cached pages at runtime.
One of the most interesting features to write was the "Play All" feature, that allows you to listen to all the samples listed on any page. This appears on almost every page of the site. In order to ensure any links to playlists are always going to work and produce the same playlist, each page tracks the samples on that page, and generates a custom playlist for that specific series of titles, taking into account the user's display preferences (eg ordering by release date rather than artist name gives a different playlist). That data is all saved for later use and given a unique ID, so it can be accessed again later, even if the same page has changed since then.
Another feature we added in that went down well was the ability for users to see what other people buying one title had also bought. Combined with artist and label release listings, this gave every customer a chance to explore the site in different ways and to discover new music they might not already have known about.
With most information pages being popups, we had a little bit of an issue ensuring the best possible search engine positions. In the end, we created two versions of every information page. One is the popup most users see. Users and search engines without JavaScript support receive a slightly different version of the same page, including the navigation. That way, anyone landing on the site from a search engine will find themselves on a page from which they can then navigate the site.
Normalisation of data was an interesting dilemma too. One problem all online record stores face is how to best list artists and titles. With at least 30,000 records in stock at any one time, Juno's data entry becomes tricky - do you give the user the option of selecting an artist from a drop-down list (that might not contain the artist, might contain them with an unusual spelling or ordering of names, etc), or just give them a text box and allow them to enter the name manually? Manually is the quickest way, naturally, but that creates a slight problem - it becomes quite tricky to then list everything by a single artist, as each entry might be slightly different (even "DJ" as opposed to "D.J." becomes an issue).
The site therefore goes through a process of normalisation of data, splitting artist names up and detecting similarity.
I am no longer with Juno - Dan Burzynski has taken over and has added some excellent new features - I'm now with Propellernet, working closer to home. Working for Juno was a pleasure, though, and from the feedback from the users, it seems the new version of the site has gone down very well indeed.
Happy Birthday Jack!
Today is the 7th of September. That means two things. First, it means that this site is now exactly one year old! As it's September, that also means that it is Jack Daniels' birthday as well. The exact date of his birthday is unknown, lost to a courthouse fire, but it is known to be in September. Thus, Jack lovers everywhere are celebrating for the whole month. Check out your local pubs - you might find hip flasks, t shirts, and even free Jack Daniels on offer.
Since starting the site, I've posted 63 articles. Not bad going, though I have posted more sporadically than I would like. Those articles have been read 73752-odd times, which is probably a far higher figure than it should be. There have been 57 comments - less than I would have liked, but I have spent a lot of time experimenting with the comment system here, trying to find better ways to encourage participation. It's my writing style and content that have kept the comments low, though, which I can live with for now.
There's been one redesign in the last year, which I am still tweaking and improving. There's another on the way, too. Now I'm reasonably happy with the operation of the site, it's time to clean up the code and create a nicer front end. I've also got to start documenting the many changes I've made to the vanilla bBlog installation, to allow things like proper URLs and pagination. All in good time though.
It's not been like me to make this kind of more personal post. I tend to write about web design, development and so on, because that's what this site was originally for. The addition of an actual blog section to the site is something I'm weighing up, though, as every so often I find myself wanting to rant, or just share something interesting, and it's about time I gave that a good shot. The question is whether I can keep up the level of interesting content to make a blog worthwhile.
Finally, thanks to you, the reader. Without the encouragement I've received, and without knowing there are people that read this site, I'd probably find it hard to keep motivating myself to write.
So Happy Birthday Jack, and Happy Birthday to this site. Here's to another good year.
AddedBytes.com is the online playground of 