Jake's blog posts Nic's blog posts Jamey's blog posts David's blog posts

jamey

My new awesome development desktop

by jamey ~ October 17th, 2008

Oh yes, it seems like excitement in the form of new hardware has been put into my blessed hands this fine morn’. I have now caught up with Jake and have the same configuration: three spiffy 19-inch TFT monitors with the laptop to the side (mine’s on the left side though). :D Comparison: Jake’s work space

Jameys workspace

So logically I should be getting more work done, yet it did take quite a while to set it all up with my new USB hub (the silver bit to the right of my laptop). Overall, apart from brightening up my Friday, this has made my life a lot easier when coding — no more alt-tabbing required! :)

david

Getting people involved and getting members into the book

by david ~ October 10th, 2008

We’ve noticed that a lot of people are setting up a new yearbook online, with themselves as editor, and even getting together the form groupings for the members, but not actually getting members to sign up for the book.

Obviously it’s still early in the year, but the sooner members get involved, the more time they have to play, work on their entries and upload photos, and to make the yearbook site a community and an experience for the leavers. In case people are getting tangled up in the effort of getting people involved and keen on the yearbook, we thought we could provide a bit of help:

1) SETTING UP YOUR MEMBERS: probably the simplest way to get members in is to let the whole year know the entry code and let them get oin with it (if this is for you, check out the poster I mention below). Otherwise, we recommend that you email with the ‘invite members’ option. It’s quick and easy for you and it means that  they get to pick the name they want to use. You’re not left entering every member for the book and then deleting or dealing with the ones who never reach the site.

2) COLLECTING DETAILS AND FEEDBACK: of course, that means you have to collect everyone’s email address. We might be able to help there as well. In the ‘editors resources’, we’re about to put up a new link for a short questionnaire that you can leave in the common room or hand out to people. It’s a great way to get contact details, and also get some feedback about what people want from their yearbook.

3) PROMOTING THE BOOK: one more resource:  a poster to but up in your common room or around the school. you can choose to put the entry code at the bottom, to get people online and signing up to the book (no emailing necessary), or you can just use it to get them in touch with you!

All these things will be up there on Monday (last touches still getting done) - we hope they’ll be some help. And don’t forget the deposit request form and the rtrackign spreadsheet when you’re collecting deposits from students - it helps to get organised list early on, and no one gets left out!

david

Spam vs Blog, Blog beats Spam - Please read our Blog

by david ~ October 10th, 2008

There’s a bit of a debate going on in the office just at the moment - or at least in the non R&D part of the office - about the best way for us to make sure people are getting on ok when we haven’t heard from them for a while.

Point one - big, spamming, mail outs are crap. They take us ages; they’re lumpy and unwieldy; they irritate at least as many people as they enlighten. Plus, they make our emails tedious, and then when there’s something important to say, the email doesn’t get read. In short, they’re a rubbish way to let everyone know about any given new thing, no matter how proud we are of them.

The solution - Jake worked it out a long time back - this blog! We use it for posting updates and new features, and we’d love to get into the habit of passing tips through it for you all; it’s not all about the Jenga.

The trick is getting everyone to read it! If you glance at this note, make a mental note to look in here regularly, or any time when you’re confused or finding something a hassle. There may well be an answer available, or some helpful new feature. Plus it means you get to add comments, to let us know when you want us to change something. AND it saves emailing everyone to let them know any time we’ve done something clever and are pleased with ourselves about it :)

To demonstrate the wonders of this system, I’ll now drop in a couple of tips and some new info for anyone trying to get students involved with the yearbook and get members onto the site.

For this post, in sum: MASS EMAILING IS EVIL, SO PLEASE READ OUR BLOG! :)

jake

Web-based yearbook systems: AllYearbooks vs. the competition

by jake ~ October 9th, 2008

Hmm… we’ve spent a bit of time recently testing our online yearbook system versus ’similar’ systems offered by our primary competitors here in the UK. The results were… umm… interesting.

In brief: we’re far, far, far and away the best.

It would probably be unfair to name names. But we’ve tried three web-based systems so far by three of our competitors, and they’ve actually made us laugh out loud - they really are that bad. They just don’t get it and they don’t understand what the customers want. Usability is terrible, security is severely lacking in various instances, and the lack of important features is criminal.

Security and privacy

Security and privacy concerns should be really, really important for anyone looking to do a yearbook online. You want to be able to trust your yearbook company with the data you give them, know that your private data is well protected and use a system with complete confidence.

I’m a web developer and I created AllYearbooks and I still work as a web developer for AllYearbooks. I’m a complete geek and know an awful lot about secruity. Unfortunately, it appears as though some of our competitors are technologically clueless and unfortunately this is reflected in how they handle security and privacy.

Within minutes of signing up to one of our competitors’ web-based yearbook systems we were able to exploit a critical flaw which would enable a normal member of that yearbook to gain access as an editor without the editor ever knowing.

Another competitor shows a complete disregard for the privacy of their customers. It’s possible to run a script against their basic login page to collect the name of every single student and teacher in their yearbooks as well as what school they belong. Truly shocking.

At AllYearbooks we take both security and privacy very, very seriously. We regularly audit our code and systems for potential flaws, taking action immediately if we find anything that needs fixing. We get the feeling that our competitors either don’t know or don’t care.

Usability

When using our competitor’s web-based yearbook systems at various times we were completely flummoxed and just went “Whaaaatttt????”. They’re just really, really hard to use and to know what you’re doing. You click one link and it takes you somewhere and you just have no idea what’s going on and how to get back to where you were. In Firefox and other browsers that aren’t Internet Explorer some things just don’t work or don’t look right at all. That’s about 25% of visitors who they don’t care about.

Features

We have loads and loads of features we’d love to add to AllYearbooks and are working on them all the time. Yes, we haven’t built them all yet but they’re in the pipeline!

Key to our web-based system is this: collaborative yearbooks, created by everyone, sharing the workload. No competitor seems to understand how important this is. One has a system where only editors can login; another has a system where members can also login but can’t see what other people are doing; the other… well… we were so confused by their website we had no idea how it worked to be honest.

No competitor offered anywhere near the quality and quantity of features offered by us at AllYearbooks.

Slowness and downtime

We couldn’t even access some of our competitors’ websites all of the time. They were down, or massively massively slow. This would absolutely infuriate me if I was one of their customers.

We’ve had about an hour or two’s downtime in the last three years. When we get busy, things get a tad slower, but then we upgrade to a new server and everything runs well again. We track performance with eagle eyes and constantly tweak and optimize code to make things run smoothly.

Conclusions

In some ways its nice to see that we’ve still got the best online yearbook system. We’ve been a little slower in developing new features over the past two years than we’d have liked (due in part to Jake’s 11 month old baby!) but we’re still way ahead of the competition. It really is like comparing apples with spaceships.

But there are also downsides. We can imagine our competitors having plenty of customers attracted by their hard-sales techniques and misleading marketing - then they use their web-based system and hate it so much that they never want to use a website to make their yearbooks ever again. And that hurts us.

jake

New feature: better photo browsing

by jake ~ October 9th, 2008

I’ve just launched a new feature to enable members of a yearbook to more easily browse through photos uploaded by other members. On each member’s yearbook entry page there’s now a list of all photos they’ve uploaded. Nice and simple.

nic

Office life

by nic ~ October 1st, 2008

Today we have been catching up with clients and finding out how their books are coming along, it is always nice when people get organised early.  The weeks before results days are always hectic!

David and I have also been having a mammoth game of truth or dare jenga! So far no winners but I have proved I can pat my head and rub my tummy at the same time and David wants to be stranded on a desert island with McGiver!

david

New resources for editors

by david ~ September 24th, 2008

From having worked a fair bit - mostly in moments between manic emailing, yearbook activity and big session stamp-licking - on making, amongst other things, PowerPoint look pretty (not an easy task, ladies and gentlemen), it’s nice to finally see the products up and available online.

For anyone who doesn’t know what I’m talking about, there’s a number of new resources for the editors on the live site for your yearbook. There’s a new link on the left, cunningly named “editors’ resources”.

These treasures will dazzle you, and with them you can dazzle others. I say dazzle - you do like to hope that it’ll work out that way. But, I’m not proud: anyone who feels the resources could be improved or shoud contain something they don’t, drop us an email. Updates will be posted that very day - unless we disagree with you :)

jake

Updating the AllYearbooks website

by jake ~ September 23rd, 2008

Well, I’m finally doing a monster chore that I’ve been putting off and putting off - updating the main ‘brochureware’ website with all the latest text and images.

The text and images are already written and taken - they’ve all been used in our brilliant information packs. The problem is there’s just been soooo much to do and this is such a long and boring task that I’ve been constantly pushing it back. Well, it can wait no more so I’m trudging through it now. Expect to see lots of new text and images around the website over the next couple of days.

The image below is the dreaded ‘todo’ card. Its all part of the ‘agile’ system of software development. Whenever something pops up that needs to be done, we jot it down onto an index card and add it to the todo pile. Then once every Tuesday morning Jamey and I have a meeting where we go over all the current todo cards and figure out which ones we’ll both be tackling that week, and in what priority. This particular card has been sitting there staring me in the face for weeks!

Whenever our customers come up with ideas for the website, we put them on index cards too. We love getting feedback and ideas from you - so keep them coming on the contact page.

nic

Geekery

by nic ~ September 17th, 2008

Really boys, this is getting to be a bit of a geeky blog!  But I do agree with being called a non geeky colleague, especially as I have just spent 10 mins trying to remember my password!

I’m only non geeky in a coding type way tho, I can still handle a computer (even if I only have 2 screens!)… just spent the afternoon making some polls pages with nice curvy writing and lots of stars:-) and I’m looking forward to people submitting their collages so I can get creative with photos!

jake

Using less Drupal

by jake ~ September 11th, 2008

Lately, I’ve had various frustrations with Drupal which have moved me away from using it for various things. I’d like to go through where I’ve moved away from Drupal, why I’ve made those changes, and my future Drupal decisions.

Wordpress rather than Drupal blog

To begin with, this blog is now on Wordpress rather than Drupal - and I have to say that I’m loving it… and so are my non-geeky colleagues. It ticks all the right boxes. Its *really* user friendly. Its much easier to add photos (and videos) to posts. And it’s hardly taken long at all to setup.

So where did Drupal go wrong with this? Well, I guess its the ‘kitchen sink’ approach back-firing. In trying to be something to everyone, Drupal runs the risk of being less than perfect to to any one specific task too. Wordpress, on the other hand, has the ability to focus on being the very best blogging software out there, and nothing else gets in the way of that or deters it from its ultimate goal.

But also, we needed to seaparate the business end of our website (the creation of yearbooks, using tens of thousands of nodes) from the nodes and users to do with the blog, partly because around this time every year we flush out the old site and start a new. So we were either going to have a separate Drupal install for the blog or use Wordpress. We chose Wordpress.

Form theming frustrations

Have a look at the form here and let me know how you’d create it using FAPI (we’re on Drupal 6.4). I’m talking specifically about the theming of the form. Yes, its a very simple form. A search form. But let’s have a look at what’s going on with it and discuss the Drupal way versus the way we ended up doing it.

In FAPI, you’d probably have a ‘textfield’ element for the search box and a ’submit’ element for the ‘Go’ button. Easy enough, one minute of code. But what about the title ‘Name of your school or group’? Probably a title for the textfield element, no? But then how do we get it centred above both the textfield and the submit button? And what about the text under the two fields? A description, right? Again… how do we get it to appear *exactly* where we want it? The look and feel of the form are to me absolutely crucial. I don’t just want a textfield’s title (with annoying colon after it), a textfield, a description, and then a Go button all one on top of the other.

The Drupal solution? Using a theme hook. We define the form in our implementation of hook_form() and then theme that form separately. The ‘programmer’ cares about the functionality of the form but not the visual design of the form. The ‘designer’ doesn’t care about the functionality and instead works on how it looks. But I’m both the programmer and the designer here, and I want my work to be as easy as possible! So, let’s say i go down this route (I tried, I really did). I need to register my theme function in hook_themes(). Okay, I know why, it saves extra code running on every page load. But its still annoying. Now I create my theme function… urgh. You’ve got to really know your FAPI stuff to get this to work. I try for a while but then I give up. It just feels so messy with some code somewhere, some in another place, and then when I ask my colleague to have a look so he can learn how to do it he’s disgusted… doesn’t know what’s going on… starts bad-mouthing Drupal. So we build our own massively simple FAPI instead in about half an hour that does just what we want it to do.

So now we’re using our own super-basic FAPI for this form. Not all forms, just the ones we want complete control over, visually. Rather than using hook_form() and defining a form array, we just hard-code the HTML for the form. Some of you may be in complete horror now thinking about this but its just by far and away the easiest way to get forms to do exactly what you want. Like a forename and surname field side by side rather than one on top of the other, sharing the title ‘Name’ which is a label for the forename field.

We’re sticking with the idea of a validate() and submit() hook though. I like that one. But we’re doing it slighly differently and more simply, so that any new coders we might hire can quickly and easily pick it up.

Going nodeless

I don’t always like nodes. I really, really don’t. I don’t need revisions, and if I did I’d do them in my own way, just the right way for me, rather than a way that kind of works for everyone but not quite perfectly for anyone in specific. I don’t like the way that as uid=1 I get all the extra bits like ‘Authoring information’ which I never touch. Node hooks and the nodeapi which I once loved are now a higgeldy-piggledy mess that’s a real pain for my new hire. I try to explain to him what’s going on when I save a node. “So this function deals with the submission. But not the core node stuff, Drupal deals with that. And if we want something used for all nodes, we put it in here instead. And we can also override this specific bit here.”… he looks on in amazement, totally baffled by what’s going on and why. It would be so much easier for him (and me) to understand if everything’s just in one place.

So what do we gain from nodes? Umm… not much really. We don’t use contributed modules any more because they never do exactly what I want and always do stuff which I don’t want them doing which just make them less efficient. We put all our code in our own one module instead. A massive, hefty module with a dozen or so include files.

We gain the ability to always do $node->nid and use node_save() and other handy things. But we don’t really need nodes, and it frustrates me having to do the extra INNER JOINs on node_revisions etc. So we’re trialing not using nodes at all for one of our content types - our customers. We just have a simple ‘id’ field now in one single table. We no longer need to INNER JOIN node and node_revisions. We haven’t had any problems so far, but the new hire is finding it much easier to code now, without the ‘baggage’ of Drupal.

The future

Our current plan is to gently migrate away from Drupal, perhaps altogether. We like the idea of building our own framework again, one that does exactly what it needs to do for our site. Its not something we can do overnight. Ours is a yearly cycle, following the academic year, and the current plan is to fork the codebase in around January/February and that would mark the beginning of our own framework if we still feel that way then.

In the meantime, we’ll continue using nodes for most of our content types (if simply because migrating away from them would be a long and arduos task with little reward) and we’ll continue to use FAPI for most our forms. But I see us using our own simple FAPI for more and more forms where we need complete control over them, and I see us extending this FAPI to help us reduce using the same code multiiple times.

I think I still like Drupal. I definitely appreciate the vibrant community. But sometimes I thoroughly hate Drupal and get massively frustrated by it. But I still like it in theory at least. One framework for all my websites. But whilst I just work on one massive website it just has so much less use to me.

You’re more than welcome to urge me to stay with Drupal. In fact, I highly hope someone can manage this. I’ve put a lot of time over the last few years into learning Drupal, and it would be a great waste and a shame to lose all that.