Categories
Code

Building beautiful, fast apps with Rails and StimulusJS

Initforthe, the software company I run, specialises in building Ruby on Rails apps. We build systems for lots of different clients and they come in all shapes and sizes. But one thing is common across them all: none of them are SPAs (Single Page Applications).

For me, SPAs try too hard, and ultimately fail. They have to re-invent how browsers work and that’s a feat in itself. And then you have to ensure you’ve got business logic validation happening on the server where the data still has to live, and on the client too. Further, the learning curve is enormous, and the benefit to most businesses is next to zero.

Recently, the guys at Basecamp launched Hey.com, a new email service built entirely in Rails, StimulusJS, Turbolinks and server-rendered HTML. Not a single SPA-style bit of code in sight. And that’s how we build software too.

That’s not to say it’s been without its challenges. We shifted from jQuery to StimulusJS and vanilla Javascript when it was released, and since then we’ve been simplifying our code.

In this post (beware, it’s going to get long), I’m going to show you some of the tools we use (and have open sourced) to keep development time down and our code clean.

So let’s begin…

Remote requests rendering HTML

We built stimulus-rails-ujs a while back and we use it everywhere. In forms, we apply it to render form validation errors:

def create
  @post = Post.new resource_params
  if @post.save
    redirect_to posts_path, notice: 'Post saved'
  else
    render partial: 'form', status: :unprocessable_entity
  end
end
<%= form_with model: @post, html: { data: { controller: 'rails-ujs', action: 'ajax:error->rails-ujs#error' } } do |f| %>
  <%= render 'errors', f: f %>
  <div>
    <%= f.label :title %>
    <%= f.text_field :title %>
  </div>
<% end %>

It can also be used to add content to or replace content on the page. Let’s say that instead of redirecting to posts_path we want to render the Post instead:

def create
  @post = Post.new resource_params
  if @post.save
    render @post
  else
    render partial: 'form', status: :unprocessable_entity
  end
end
<div id="posts"></div>
<%= render 'form' %>
<%= form_with model: @post, html: { data: { controller: 'rails-ujs', action: 'ajax:error->rails-ujs#error ajax:success->rails-ujs#success', placement: 'append', response_target: '#posts' } } do |f| %>
  <%= render 'errors', f: f %>
  <div>
    <%= f.label :title %>
    <%= f.text_field :title %>
  </div>
<% end %>

Adding modals

I’m going to leave the CSS aspect of this out and assume you’re either using a prefab toolkit like TailwindCSS or you’re rolling your own.

Let’s say you want to present a form in a modal. In an SPA, you’d have to have all that HTML client-side, but with our tools, we don’t need to do any of that.

First, let’s add an alias for the text/html MIME Type. This will allow us to do things like new_post_path(format: :modal). We’ll also add a modal layout:

Mime::Type.register_alias 'text/html', :modal
<div class="modal">
  <%= yield %>
</div>

So we can use our rails-ujs controller on a link or button to append the response to the body. So now you’ve got your modal showing up. You can use the same controller within it for the form again, and even render the same partial as you have above. NB: you’ll need to rename it to _form.erb if you want to use the same partial for multiple layout formats, or you can have multiple files if you want them to look slightly different.

Make it pretty and fade in

So until now, you’ve got a fairly basic modal structure. You can fetch it, stick it in the DOM and it’ll render. But let’s say you want to make modals fade in from hidden.

We’ll bring in two more stimulus controllers here: stimulus-reveal and stimulus-existence.

The idea behind stimulus-existence is to let you do stuff when an element is added to the DOM, and remove it when it’s no longer needed. We use this a lot for modal dialog windows. Once you’ve closed the modal, you don’t need it any more, and if it needs to be rendered, the server will send it back over the wire. So remove it and it won’t cause any issues with element IDs and so on.

Separately, stimulus-reveal allows you to hide/show elements on any event you can pass in to a Stimulus action. It can be used for modals, custom selects, dropdowns, navigation menus (we’ve used it for the menu on initforthe.com and for the dropdowns on service pages. You’re not limited to hiding and showing one element, so you can toggle multiple elements within the controller namespace at once.

As a bonus, you can add transitions to the toggle (you can also add click away actions and keypress actions too, but that’s all in the documentation), and so that’s what we’ll do here to our modal layout, so all modals fade in nicely (I’m using TailwindCSS classes, but you can use your own too):

<div data-controller="reveal existence"
     data-action="reveal:hidden->existence#remove existence:added->reveal#show">
  <div hidden data-reveal data-transition
       data-transition-enter="transition transform ease-out duration-500"
       data-transition-enter-start="translate-x-full"
       data-transition-enter-end="translate-x-0"
       data-transition-leave="transition transform ease-out duration-300"
       data-transition-leave-start="translate-x-0"
       data-transition-leave-end="translate-x-full">
    <button data-action="click->reveal#hide">Close me!</button>
    <%= yield %>
  </div>
</div>

The existence controller dispatches an event when it’s connected to the element, which allows us to listen to it and begin the reveal. When you click the Close me! button, the reveal controller completes its hide, and dispatches an event which we listen for in order to remove the element from the DOM.

Clearly, none of the above code examples will actually look pretty, but that’s only because I’ve left out the styles to make them look nice.

What you should be able to see though is how you can leverage server-side rendering along with some StimulusJS sprinkles that you can use all over the place, both separately and together, to cover 95% of your use cases (at least that’s been my experience). It’s saved us a good 30% of the time we need to develop any given feature.

None of the stuff we’ve done above requires Rails at all. You could use these with any server-rendering technique as long as you’re sending fully formed HTML over the wire. But if you haven’t used Ruby on Rails or seen it in action, you’re missing out.

Categories
Miscellaneous Politics

Cyclists are dying and we need to act, and fast

A few years ago, I posted about the dangers of various forms of transport, cycling included. We’re in the midsts of a cycling meltdown, and in the interim, I’ve had an accident and broken my leg (though not as a result of another vehicle).

I’m about to get back on my bike, while everyone around me fears for my safety, and is trying to persuade me otherwise. Just as I’m about to do so, we have death after death, and I’ve decided I need to voice myself and my opinion. You’re not reading this because you thought I’d just say a few things and bugger off, did you?

Firstly, the deaths appear to have been (and I wasn’t there, so I can’t be certain) caused as a result of large vehicles and their blind spots. So lets dissect that a little, and see where we end up.

Should the lorries have seen the cyclists? Possibly, it’s hard to tell. That said, lorries should all (and I think most do now) have large additional blindspot mirrors. I certainly notice them riding around London on my scooter. I don’t see so many on busses, but I may be mistaken there too. That will dramatically reduce the likelihood, as long as the driver bothers to look, of there being a cyclist.

Of the cyclists; my friends are probably tired of me repeating ad infinitum that cyclists:

  1. shouldn’t jump red lights
  2. shouldn’t ride on the inside of vehicles, particularly large ones
  3. should pay more attention to the intentions of other road users

Some cyclists are great, whilst others are a menace, and that goes for all road users. I won’t turn a corner on my scooter without physically looking to the side I’m turning in case another vehicle has decided it’s safe to overtake me. I’m sure that not all road users are as diligent. On both sides of this particular argument, I might add.

How do we fix it? Once again, I think anyone taking a test in a motor vehicle should have to spend time on two wheels to physically demonstrate how vulnerable those people are. It makes a huge difference to the way you drive having been in the position of having vehicles turn in on you, cut you up and various other almost disastrous manoeuvres.

On the flip side, cyclists need better educating. I’m repeating again, but don’t jump red lights and don’t undertake large vehicles at junctions. I’m finding it really hard to find a single source of blame here, and I think the Mayor of London is right to expect that all road users abide by the rules of the road. It’s there for a reason, and if it wasn’t, imagine how many cars would have piled up at that very roundabout otherwise.

I’ve been cycling on the road now for 20 years, have a cycling proficiency under my belt since I started, and now have a UK car licence and motorcycle licence to add to that. I’m hopefully soon to have a UK private pilots licence too, so you might call me a licence whore, but I truly believe that they’re there for our own good and our own safety, and they should be repeated over time.

So to anyone thinking about blaming one side of this debate, don’t. It’s everyone’s fault. If you’re a cyclist reading this, and you jump red lights, then shame on you. Even if you’re one of my closest friends. I’d rather you didn’t, and I’d rather you stayed alive. If you’re a car, van, bus or lorry driver, I strongly suggest you spend a day on the roads on your bike. See how you feel afterwards about drivers that don’t indicate or look before turning or changing lanes. You’ll see exactly what I mean. If you’re too scared, good. You bloody well should be.

Categories
Politics

A nation divided and united by a single Lady, and the uneducated many

It is in the passing away of Baroness Thatcher that we are able to recall both the positives and negatives of her political career, both in parliament and as a direct influence on decisions made by leaders the world over. No one, not even those vehemently against her policies, can deny the strength of character of the first and to date only woman who has reached the very top of British Politics – that is to say both leader of her party and the position of Prime Minister.

It’s already been said a number of times across the media how much her policies changed not only the UK, but also the world at large. A force to be reckoned with, Margaret Thatcher as Prime Minister is one of the few who will go down in world history. It’s slightly abhorrent to me then that so many people under 35 don’t even know who she is. What does that say of those people? Or does it say more of those responsible for teaching them? I wonder how many teachers are so disaffected by politics today as to not have a clue about the influence on today’s world  that Margaret Thatcher had.

Possibly one of the most forceful politicians in recent times, including those presently in government in spite of the great task laid before them, she had the force of character to follow through with her decisions and ideas regardless. In my personal view you sometimes have to stick to your guns, even if you end up making the wrong choice – at least you are accountable to that decision. Present and past governments the world over would do well to learn that lesson. That said, true power comes from also knowing when to step back, a lesson the Iron Lady learnt a little too late having abolished free milk in schools. My own father wasn’t affected by the change, and neither was I, having been schooled either side of the event and not through it, but there are plenty of people who would have seen their milk taken from them, and their parents would have been opinionated in one way or another about the change. Her principles were simply that if something could be funded elsewhere, then it should be, and that government should not be responsible for individuals and their actions. To some extent, I agree with that mentality, though there are times when a hard-line approach is a little harsh.

What am I trying to get across? We’ve spent the last day both celebrating the life and death, as well as praising and vilifying a woman who, fundamentally, was doing the best she knew she could for the country whilst raising a family. We should see her as the mother the nation desperately needed at the time.

Categories
Miscellaneous

A foray into the world of the invisible classes

22nd May 2012: I’m thrown into a new, until now undiscovered, by me at least, world. A broken femur leads to 3 days in hospital, a metal rod, three screws, and two crutches for (I’m told) between 2 and 4 months. And then I’m spat back out, to discover a world where two legs are most definitely better than four.

Let’s fast forward a bit to today. 27th Jun 2012. I’m still on two crutches. I have another month before my next X-Ray, which means at least another month on them, and I’ve learnt one hell of a lot about what it means to be on crutches, to become one of an invisible class of people – those with some kind of permanent, or as in my case, temporary, disability.

To be dependent on someone is one thing. To be unable to carry things in your hands, to need help with making your dinner because it takes forever to move a few steps across the kitchen with something from the fridge. To need someone to carry the rubbish downstairs, or to bring the shopping up. Even to do the shopping (I can only give thanks for online grocery shopping here). That’s all stuff that, for a fiercely independent person such as myself, is a bit of a pain in the backside. I can live with that though.

What I’m really struggling to come to terms with is the reaction of others around me. The bus driver this morning; he drove off before I’d sat down. I’m reliably told they have a motto “find a seat or I’ll find one for you”. That’s despicable. It’s my left leg that’s broken, and I did find the first seat on the right hand side of the bus so I could stretch in to the aisle. If that is genuinely what goes through a bus driver’s head, they don’t deserve their Olympic bonuses, let alone their normal salaries in my opinion. On the way to the tube station later on, it’s quite apparent that people almost walk closer to you when you have crutches, and don’t think to get out the way, leaving you to either bump into them, risking toppling over, or trying to side step, which believe it or not is nigh on impossible on two long sticks attached to your arms. My personal space invaded, and a complete lack of respect for the amount of space required to manoeuvre that I’ve never experienced before this accident. Don’t think this is a one-off either. This is normal day to day London.

The journey home this evening, and the debacle only gets worse. No one, I repeat no one, on the bus moved to let me sit down when I got on. No one moved when I asked to sit down. Still no one moved when I asked a second time, and when I demanded a seat the third time, one chap decided it was sufficient not to get up, but to apologise on behalf of the guy sitting in front of him with an empty seat next to him (which I couldn’t get at) saying he couldn’t speak English. SO WHY DIDN’T YOU GET THE FUCK UP INSTEAD, TWAT?!

Amazingly, it doesn’t end there. I get to the Overground station at Shepherds Bush, up the lift to the bridge, down the lift to the platform at the other side, and there’s a train at the platform. As I leave the lift, the driver looks at me, closes the doors and pulls the train out of the station. He looked at me, and chose to ignore that I was there.

I’m incensed enough by the way Londoners clearly treat each other to write this, in the hope that it eases my mind having written down my experiences. It’s atrocious that people can’t take a little time to look at what is going on around them and behave appropriately. I’ve had people barge straight into my leg without so much as an apology, or just stand on my feet, look at me and shrug their shoulders. If that happened and I was standing up, with no crutches, I’d have got an apology. Now? Nothing.

I hope someone senior at TFL reads this. I hope someone at each and every one of the bus companies that operate in London reads this. And I hope that those people that have behaved like rabid animals around myself, or around others with disabilities who need space and time to get around, read this. For everyone else, please take a moment to consider what you take for granted in this world, and what it would mean not to be able to do those things that you consider “normal”.

Categories
Politics

Politicians, listen up. Your time has come.

Last night, whilst at a performance by the Barefoot Doctor, and completely unrelated to it, though I was in a fairly open-minded mood, I had a bit of a revelation. And as my revelations go, this one’s a bit of a big one.

The problem is clear

Politicians, and by proxy, central Government, decides what they want to do and when they want to do it. Each political party has an agenda, and each one ends up doing and undoing things that have been done by those in power back through the ages. The problem with this is that we, as the electorate, have “democratically” elected a dictatorship for a government term. I’m not here to talk about any of the various voting structures. I’ve come to realise it’s not a party problem. It’s bigger than that, and it goes deeper into the fabric of what politics means in this country to the population at large.

Why no one has done anything about it is clear too – it’s such a big move, and it disassociates so much of central government in its current guise that it would mean a complete paradigm shift in the way politics is done in this country, and even possibly Europe and the World. I’m discounting that as a valid reason. Government, be it local or central, has a duty to us as citizens of this country to do right by us at all times, and to govern the country (I will come back to the specific terminology of the word ‘govern’ later) fairly. If it, or the people within it, are doing things to satisfy their own egos, agendas and for want of a better word, fantasies, then they are not fit for duty to serve us.

This leads me nicely to the electorate. If you look at voting stats every time there is a poll, or a local, by- or general election, what effectively amounts to a tiny proportion of the voting public cast a vote of any kind. Why? Any number of reasons, excuses, whatever you want to call them. Fundamentally these people are disaffected. They feel that whatever happens in Government will happen anyway, whether they vote or not, and they feel that most of what they’re told is a load of old cobblers. In truth, it usually is. Of course, there are more honest politicians and less honest ones, but as a whole, our Government is so tied up in lies it’s almost impossible to see out of the knotted maze.

In a knotted world, political solutions come with high prices

So this got me thinking. People don’t vote because they don’t think it matters and in truth it probably doesn’t. But that doesn’t mean we shouldn’t have a say, and it doesn’t mean that the elected government has authority to act on our behalf without first consulting us, which they do on a regular basis. Let us boil this down to the basics needs:

  • I want to discuss things that affect me and those close to me
  • I want someone to explain to me why things I might not consider to affect me do, and what impact certain choices might have
  • I want people to be honest when they don’t know the outcome and to say so
  • I want decisions that affect me to reflect my actual needs, not those perceived by others

I can’t say I speak for everyone – I really don’t know if I do or not – but I do know that these particular truths I hold close to my chest. I’m sure I’m not the only one. Let’s see.

I do have a solution to how this can possibly happen, and it uses technology where technology is at its best – facilitating things we are doing or would like to do in a manner that makes it simple and straight forward to solve potentially big problems. We are a rather social population. We seem to love talking to our friends, colleagues and acquaintances. And for some reason we seem to like doing this on the Internet on sites like Facebook. There is our starting point. Allow people to socially discuss things that matter to them in a way that actually makes it up to the powers that be and get actioned on based on the discussion that happens. This will likely involve heated debate and people disagreeing, but if the premise is to impact on a particular issue at hand, I’m certain it will do better with widespread debate and be less fallible than if it were just debated in the Commons.

The bigger picture takes this a step further. Government should do just that – govern, not dictate. That means it should act as the checks and balances, and allow governance to happen on a much more local level. For instance, a change made in central government is going to affect people in large houses in leafy Surrey differently to those who have just lost their jobs in a mining town in the north. This debate would allow people to discuss local issues effectively, to understand the impact it might, or will, have on their surroundings and on what they know, and engage the population with what ultimately is their politics, again reverting to the truest sense of the word – a means by which decisions are made collectively.

As a truly democratic nation, the important things to the electorate, not the elected, are the things that should be dealt with. Should we have bailed out the banks rather than let them crumble and fail as we would other businesses? Personally I think no, but that’s my opinion, and I’d love to have a debate on it at a national and local level to come up with a solution that probably hasn’t been thought of yet. Technology is today allowing us to converse with our friends and even those we don’t know extremely easily. We can harness that connectivity and it can allow us to yank back power, kicking and screaming, from those who call politics a black art.

Who’s with me? This is going to be painful. It’s going to take a while. But if we put the building blocks in place, we can change not only the face of politics, but the mesh that holds it together too.

Categories
Finance Politics

Gaddafi dead. The Euro nearly dead. Will any of it matter to each of us individually?

It’s been an interesting few months. We’ve killed some tyrants, some terrorists, and we’ve discovered that some of the “stronger” members of our esteemed single European Currency aren’t as strong as they first appeared. What does it all mean though? Will it affect you or me? Will your money be worthless soon? Simple answer, probably not a lot to the individual, and not much in the short term. The longer term is interesting, and a rather awkward looking place though.

So first the politics, followed by a bit of economic opinion. The tyrants, terrorists, or whatever you want to call those people who we have deemed to cause atrocities to humanity either at home or abroad, have in some part been removed. I do question what right we had to go in and hunt down Gaddafi. Equally, did we need to spend 11 years hunting down a man by wrecking the country in which we believed him to be along with a bunch of others in its vicinity? Or could we have actually used the technology we’ve developed, and the skill that we have in our “allied” armed forces (I use the term “ally” loosely – allies in my opinion are like the best of friends; you share everything that you know). Overseas, the fall of Gaddafi will have a profound impact on North Africa, especially since it has happened whilst the region as a whole has been engaged in rebellion. It will be seen as the start of a new era, but it will take some years for the effects to ripple down to the poorest and most affected by the outgoing regime. It will become a democracy, because we in the West dictate (ironically) that it should do so. Most importantly, things will improve for people in the region, as things have reportedly started to improve in both Afghanistan and Iraq – I don’t speak from experience as I’ve not been, and can only rely on what I read across a breadth of media outlets. If you’re reading from the region and you think differently, I’d love to hear your thoughts.

Next comes our relationship with the Euro. And why does it affect us? It doesn’t, directly. We’re not a Euro zone member, though we are part of the greater European Community. The reason the UK is affected is through existing money plied in to the effort to stem the tide of inflation, and to increase flow of money from banks to business – we have a large amount invested in the Irish recovery, and the Irish are part of the Euro zone. That means that we now have a vested interest in keeping the Euro afloat. It certainly won’t be easy. Greece lied about it’s financial stability when it joined the Euro. Italy is (or was, but the aftermath is a long and winding road) corrupt to the point its economic status was completely falsified. Supposedly as strong as Germany, we have recently found that to be somewhat less realistic than even the worst case scenario we’d previously envisaged. So what happens if the Euro doesn’t collapse, and what happens if it does, and what does that actually mean for us?

We’ve historically seen individual economies collapse under the strain of their own currency. Italy itself, with the old Lira, Germany and Turkey in the past, as well as the Yugoslav Dinar have all seen hyperinflation and subsequent collapse. That’s just in Europe, and Chile, Zimbabwe, Argentina amongst others have seen similar collapse outside. In my opinion, a single currency across such a diverse set of economies was never going to work without somehow first bringing incoming economies to similar levels of stability. Currency only works when there is something to compare it to, or we’re back to bartering (which might be a better option). It’ll be years before the likes of you or I see the ripple effect of the eventual demise of the Euro. Governments will first feel the strain as each one tries to minimise the effect on its populace, and each will in some way fail. Greece and Italy are unfortunate, but they’re almost collateral in the bid to resolve the problem. They’ll found new economies and will either become strong or not. Germany is one of the strongest economies in Europe, and has previously seen two world wars demolish it along with a complete failure of its currency.

The media often portray a picture that few of us understand in a way that makes us think that the world is about to end. It isn’t. We’ll bounce back. We have before, we will again, and the fallout will undoubtedly serve to teach lessons the world over. In trying to emulate the USA and the Dollar, Europe has failed, but it has failed because it started from a complex economic structure in the first place. America founded the dollar very early in its constitutional history and has become a force to be reckoned with. Britain has been shot across its bows, and while mildly burnt, people here won’t feel the pain anywhere near as much as those within the zone. Likewise with the political side – it won’t affect any one of us directly. The greater good has supposedly been achieved, but we’ll see what that really means in time to come.

Categories
Miscellaneous

Customer service done right

I’ve been ranting a bit of the last few posts about my poor experience of customer service. Well it’s time to change the tone. on Friday, I had the best experience I think I’ve ever had, and just goes to show what you can do as a company if you put some effort into it.

First the lead-up; In making a cup of tea, one of the teabags splits. I don’t know if it was split before or after pouring water over it, but I noticed it when tea leaves started floating around the cup. I just thought I’d post a message to the Yorkshire Tea Facebook page and see what happened. I wasn’t really expecting anything, much less a whole swathe of other fans commenting on my message with words of wisdom. What I really wasn’t expecting though was a reply from Yorkshire Tea themselves within 45 minutes of me posting the message up, saying they were going to contact me directly through Facebook to try and resolve the issue.

Five minutes later, a message popped up in my inbox asking for an email address or phone number on which I could be contacted, so I replied and another ten minutes later I had an email from Taylor’s of Harrogate (the company who own the Yorkshire Tea brand) saying they’d like to replace the box of tea, and if I might have the details of the batch (I didn’t, but that didn’t seem to really be an issue). A couple of replies later and I am about to receive a new box of tea.

This all within the hour of posting a message on their Facebook wall. Now, for any company providing any level of customer service, that which I received from these guys has been exceptional. It also proves that if you put the whole infrastructure in place instead of trying to scrimp and save here and there on bits of the chain, it can really work wonders for you. I’ve told everyone about this episode, and they’re all as amazed as I am. But the word is spreading, and that makes Yorkshire Tea an ever stronger brand in the face of competition. I see that, because its the industry I work in, but I feel it’s fair play – they make a great product, and on top of that have astounding customer service when things do (and they do sometimes, for everyone) go wrong. It is far too easy, as can be seen by my previous posts, to think social media can be controlled without making sure that the rest of the company is aware of the consequences in this digital age of getting it wrong. It doesn’t work though so kudos has to be given to Taylor’s.

Update 09/02/2011: I’ve just had a package and an envelope through the post. The envelope had this in it:

On top of that, a box with a hand written note from the person who I dealt with at Taylors of Harrogate by email:

And of course a big box of Yorkshire Tea and the marmalade cake too:

I can’t explain how impressed I am with their customer service levels!

Categories
Business

So I can’t use my online banking service now, LloydsTSB?

I wrote a short while ago about my disdain at the supposed, but completely useless, “security” imposed by LloydsTSB when they sent me a card reader with which I have to log in by entering the PIN on my card.

Turns out they’ve made a fail of epic proportions. Yesterday I had to get my card cancelled as I’d noticed a rogue payment go out from it. LloydsTSB duly did this, and have agreed to refund the fraudulent amount. This, as I’ve mentioned before is my business account. One day without being able to access it is dangerous in any business. So that’s what they’ve done. Because my card has been cancelled, I now can’t log in to my online banking service, which needs me to use my card and my PIN number to get in, even though I have a completely separate online banking user ID.

Is it just me or does this seem a touch on the ridiculous side now? I mean, do you expect that if someone has cloned my card they have also got hold of my mothers maiden name, my secret passphrase AND my online banking ID? Somehow I think that’s a little on the ridiculous side. If they did, then they’d probably also have me, and in which case… well I won’t go there.

To not be able to use a service because one piece of kit is the single point of failure strikes me as a bit of a problem, especially when it’s something you rely on to do your work.

Hopefully this is the last I write about this particular bank. I’ll definitely let you know what my new bank is like. I’m about to arrange an appointment now with the bank manager of HSBC.

Categories
Business

A warning against using Lloyds TSB as your business bank

I’ll be honest, it’s not just Lloyds TSB that are bad. When I started up, my company was a body for me to freelance through, and I didn’t need much from a bank. No overdraft, no additional facilities. Nearly three years ago, I approached them to ask for a business overdraft, having decided to take the business full time, and they said “No”. Lloyds TSB came to the rescue and provided the vital lifeline that got me on my way.

It didn’t last. I had a bank manager I could call, on his mobile if needed, and ask questions of. All great, until he left and I was sent a letter saying I now didn’t have a bank manager, but a relationship manger who was based 200 miles away in Leeds, and who I couldn’t just meet with and discuss the business as and when needed. That seemed just about OK to me, until just before Christmas last year when it all got a bit too much to deal with.

I’m sure any of you with Lloyds, and some of you with other banks, have seen these Chip and Pin card readers that are being sent out to customers on the premise of increased security. You put your card in and enter your PIN along with various other pieces of information to put in theoretically unique codes, which, depending on the bank, let you perform various tasks – logging in, paying people, and so on. Well I got sent one just before Christmas, and when I did, I dutifully put the details into the online banking platform provided to me by Lloyds TSB. It promptly locked me out. The code which I entered was somehow invalid, despite being the same as what was on my little card reader device. First bad experience. I build web applications. That’s just shoddy.

A short, but what should be unnecessary, call to telephone banking sorted that and I was on my way. Or so I thought. I have staff to pay, and I have freelancers too. So whenever I want to pay one, each and every time, I have to enter my PIN number to sign in, then enter my PIN again, the account number and amount of the payment in order to get a code to enter on the site to make a payment. I’m told this is to enable Faster Payments. I personally bank with First Direct and Faster Payments works just fine without this ridiculous mechanism that just makes my life a chore. It’s security by obscurity, and doesn’t prevent fraud because people can still swipe my card if I’m in an unscrupulous shop or restaurant for instance.

So I tweeted. And to my surprise Lloyds TSB responded! I sent a private message and a few minutes later I was talking to someone on the Lloyds TSB Twitter team over the phone. The only part of the entire business it seems that wants to try and help. I’ve been informed that by applying for Bulk Payments, which requires me to apply for a credit limit, I can avoid all this fuss. Shame I can’t avoid the fuss caused by not being able to get anyone to actually make Bulk Payments available on my account. It is apparently supposed to take a couple of days, and I gave a bit of leeway over Christmas and New Year. 3 weeks in though I’d expect to have either got it on my account, or to have heard something. So I tweeted again saying nothing had been done, and I was duly informed that my relationship manager would contact me asap. Well he’s supposed to have contacted me three times now, and I’ve not heard a word from him. So I now have a bank that doesn’t care about what its users have to say, or even about servicing them in any kind of way.

That’s where we are to date. I’ll keep you posted on anything else that happens, but I think I’m off to HSBC with my business banking. If you have a business, you’ll at some point ask your bank for something or other, however small it may be. I’d strongly urge you to avoid Lloyds TSB like the plague. They just don’t care. About anything or anyone.

Update 19/01/2011: Well I heard from my relationship manager today. Finally. Apparently my application hasn’t even been processed in any way shape or form. I’m now being asked to send previous two years of accounts to them, despite them being MY BANK and having full access to all of my finances for this entire period. By Fax. Which I don’t have. Because I’m not 90 years old.

And apparently, Bulk Payments doesn’t actually alleviate the need for the card reader. It just means you only need to enter it once per set of transactions made through it. And the application is processed like a business loan. And lets me go over my predefined overdraft limit. This feels like more of a problem than it sets out to resolve. So here’s to some more waiting once I’ve sent my details over and here’s to HSBC who are about to become my new business bank.

I’d like to hear about anyone else’s experiences with these kinds of things. I’m sure I can’t be the only one!

Update 01/02/2011: Turns out if you report your card due to fraudulent activity, Lloyds stop you using their online banking service.

Categories
Miscellaneous

An open letter to Transport for London

Dear Sir/Madam,

This morning I arrived at Clapham Junction station expecting to get on the 09:39 to Willesden Junction from Platform 17, and get off some minutes later at Shepherds Bush. I did not expect to leave, and arrive back at Clapham Junction on the same train nearly 3 hours later without having first reached my destination and alighted said train. What transpired is what I can only describe as a comedy of errors. What I would like from you is an explanation detailing why your team was so incapable of providing communication to the several hundred stranded customers aboard the “service”.

So what happened to make me so irate as to write this open letter? I’ll start at the top:

About 5 minutes into our journey, the train came to a halt. It was at approximately 09:55 that we had our first intercom announcement, 6 minutes after should have been at Imperial Wharf, and around the same time as we should have been leaving West Brompton: “I apologise for the delay to your journey. The train has a power failure and we’re trying to fix it.” OK, but you’ve already been sat here a while knowing you had a power failure, and we now know there is a problem, but not what you’re doing to resolve it, and if you can’t, what you have to do to get someone else to resolve it.

In the next few minutes we heard how you still had a power failure, but your guard and driver knew how to fix it and we should be on the way shortly. After which we moved about 10 metres forward, and then about 15 back. Wonderful. We were on the way, but in the wrong direction. You can see the funny side to all of this, can’t you?

Some significant period of radio silence later and we were duly informed that the on-board staff had indeed not been able to resolve the power issue and that we were now waiting for an assistance train to arrive. It would turn up in about 15 minutes. So, when it turned up 35 minutes later, we were ecstatic. We were told “the assistance train is here now, so we should be on the way soon”. “Soon”, it seems, is relative according to TfL.

“This is your guard. The assistance train has broken down behind us.” That was another half an hour after it first turned up. This is now getting beyond the initial laugh and joke that it once was. An hour and a half into a 20 minute journey and we’d had 4 pieces of communication. You can imagine my indignation when, on passing through the train, the guard duly informed us that the driver had left with the other train which was now fixed. “So we don’t have a driver on this train, and we’re stuck somewhere between Clapham Junction and Imperial Wharf?”. “No.”. Great. Now what?

Well, now what is that it gets worse. We’re now about 2 hours in, and in 40 minutes we’ll be back in Clapham Junction, to start our respective journeys again. And so far we’ve had 6 official communications and one unofficial one that just upset us more than anything. One of which was “there is too much snow on the line”. Really? Sheffield has invisible tracks due to the volume of snow and still has an operational tram and train service. We have this. When we did get back to Clapham Junction, we were told not that there was excess snow on the line, but that the live rail had iced over. Oh, so what you tell your customers is a bunch of fibs too then? Amusing, I think not.

I did eventually get to my target destination 3 and a half hours later. Given that you charge me to use your service, I have a right mind to charge you for my time: £700 + VAT.

I’ll leave it to you to dig yourself out of the mess you have invariably got yourselves into through profit-mongering cost cutting measures, and thank you in advance for your prompt reply. Oh, one last thing: You’re running a train on “production ready” software with a version of 0.3.5. I’ll ask you to think that one through again.

Kind Regards,

Tom Simnett