Category: rants


Dear Meg Hillier,

As a con­stitu­ent whose career and major­ity of per­sonal com­mu­nic­a­tions are con­duc­ted across the inter­net, I’m very wor­ried that the Government is plan­ning to rush the Digital Economy Bill into law without a full Parliamentary debate.

The Bill con­tains meas­ures that favour the pro­tec­tion of com­mer­cial interests at the expense of an indi­vidual citizen’s rights — spe­cific­ally meas­ures that allow copy­right hold­ers to issue requests to limit or even ter­min­ate the inter­net con­nec­tions of private indi­vidu­als based only on the belief of the copy­right holder that the indi­vidual has infringed their copy­right. In effect, this cre­ates a situ­ation out­side the bounds of a fair and just soci­ety where a per­son can be pun­ished by the with­drawal of a ser­vice that the UN is pro­pos­ing be con­sidered a basic human right.

In the digital age it’s only fair that copy­right hold­ers have greater recourse when their rights are infringed — but the meas­ures in the Bill are a step too far. Millions of UK cit­izens depend on the inter­net for the abil­ity to con­duct their daily lives, their jobs, and for access to essen­tial ser­vices. Restricting or with­draw­ing access to inter­net ser­vices is a dis­pro­por­tion­ate response, espe­cially without the safe­guard of a fair legal process.

Whereas a rights holder can impose pen­al­ties on an indi­vidual without the bur­den of proof and with almost no imped­i­ment of cost, the only recourse for an indi­vidual so restric­ted is through the courts — a massive, and clearly asym­met­rical bur­den. The EU has adop­ted the pos­i­tion that any pun­it­ive meas­ures affect­ing inter­net access by mem­ber states “must respect the fun­da­mental rights and freedoms of cit­izens”. In par­tic­u­lar, it the EU requires that cit­izens are entitled to a “fair and impar­tial pro­ced­ure” before any meas­ures can be taken to limit their inter­net access.

Industry experts, inter­net ser­vice pro­viders (like Talk Talk and BT) and huge inter­net com­pan­ies like Google and Yahoo are all oppos­ing the bill — yet the Government seems intent on for­cing it through without a real debate.

As a con­stitu­ent I am writ­ing to you today to ask you to do all you can to ensure the Government doesn’t just rush the bill through and deny us our demo­cratic right to scru­tiny and debate. As a life-long labour sup­porter whose career would be ended without inter­net access, I see no way that I can con­tinute to vote Labour if the Bill passes unaltered.

Yours faith­fully,

Sebastian Potter

Ten Things I’ve Learned in a Start-Up

Ten things I’ve learned as a developer at WooMe:

  1. Be clear what your dir­ec­tion is. Identify your key pro­pos­i­tion and focus on it. Don’t get dis­trac­ted by unre­lated fea­tures — some­body else is prob­ably already doing those bet­ter than you.
  2. Be mer­ci­less with fea­tures that don’t cut it. No mat­ter how much you like it, if your audi­ence doesn’t like it, either change it or kill it fast. Wasting time on your per­sonal pet pro­ject when there’s no clear demand for it is time you should be spend­ing on fea­tures users want.
  3. Use what’s already there rather than invent­ing your own. Need a mes­sage queue? Video pro­cessing? Load bal­an­cer? Email dis­tri­bu­tion? Payment sys­tem? Use some­thing that already exists rather than waste time you should be spend­ing on fea­ture development.
  4. Quick and dirty is bet­ter than late to mar­ket. At the rate this industry moves, cap­tur­ing your audience’s atten­tion first is more import­ant than hav­ing a well-engineered solu­tion. For the most part, users don’t care about your code qual­ity, as long as it works.
  5. Don’t optim­ise until you need to. Sure, you may end up chas­ing your tail for a bit when you need to scale, but until you hit that point you’re wast­ing valu­able time that should be spent on fea­ture development.
  6. Scaling is most often a data prob­lem. When you do need to optim­ise, scal­ing won’t be about the per­form­ance of your applic­a­tion. Scaling web applic­a­tions hori­zont­ally is easy. Scaling data­bases ver­tic­ally is expens­ive. Scaling data­bases hori­zont­ally is very, very hard. Don’t worry about what web applic­a­tion frame­work you use, worry about what data­base you put behind it.
  7. Abstraction is great, as long as you under­stand what you’re abstract­ing. This has been a con­stant pain with Django’s ORM. Yes, it’s a power­ful and use­ful abstrac­tion, but without a solid under­stand­ing of what the data­base is doing behind it, it’s easy to get into very deep trouble, very quickly.
  8. Log everything. Nothing is harder than try­ing to find prob­lems on a live envir­on­ment without detailed logging.
  9. Storage is cheap. It’s bet­ter to store everything than to throw away data. You never know when you might need something.
  10. Communication is crit­ical. Not just out­side your organ­isa­tion, but within it. Tell people what you’re doing, fre­quently. Ask them what they’re doing just as often. Not only do ideas per­col­ate through this pro­cess much more effect­ively, but when things go wrong, clear and fre­quent com­mu­nic­a­tion will stop them from get­ting worse.

Bingo We Can Believe In

Alcohol and polit­ics are two things that should rarely mix, but once in a blue moon there’s cause to throw cau­tion to the wind and get a little crazy.

One such occa­sion is tomor­row night, when the US elect­or­ate takes to the polls and — with a little luck — elects Barack Obama their next President.

There are all sorts of reas­ons why this is such an import­ant elec­tion, both in terms of America’s cur­rent stand­ing within the world com­munity, and a num­ber of immin­ent domestic prob­lems that the next President will find him­self deal­ing with prob­ably before he’s even inaugurated.

That’s per­haps a post or two for another time; once the res­ults are in and the res­id­ents of Awesome Manor have either cel­eb­rated or com­mis­er­ated until they drop.

For now, I simply offer my humble con­tri­bu­tion to the elec­tion fest­iv­it­ies. I call it “Bingo We Can Believe In”.

The End of the Line

About 10 days ago we had our inter­net con­nec­tion activ­ated at Awesome Manor. It’s Be Internet’s (up to) 24Mb all-you-can eat buf­fet package.

Problems, nat­ur­ally, began imme­di­ately. During the nor­mal period of line test­ing that the ADSL2+ products use to determ­ine the max­imum stable rate of the line, we saw massive instabil­ity and fluc­tu­at­ing speeds from 12Mb down to 300kb. Not ideal for a house full of inter­net junkies.

As it turns out, BT has been screw­ing around with the Barnet exchange for the past week, which has stuffed up our MSR test­ing well and good. It looks like Be have settled on 12Mb/1.3Mb for our line now, which at under 1km from the exchange is just not good enough.

Rather worse, how­ever, is the qual­ity of wir­ing in Awesome Manor. Judging from the amount of work I’ve just done to min­im­ise noise on the lines (pulling the bell wire from all exten­sion sock­ets, and strip­ping and rewir­ing the mas­ter) I’d guess that most of the wir­ing is older than I am.

After much work, and much swear­ing, I’ve man­aged to reduce line atten­u­ation (sig­nal loss due to the crappy qual­ity of wir­ing) by more than 50%. This seems to have sta­bil­ised the line, and is a good start for improved line speed when the MSR tests fin­ish later this week.

The worst thing is, I’m about as tech­nical as you get. I dread to think what nor­mal people go through in this kind of situ­ation. I can only assume that if they reach break­ing point they would fork out a few hun­dred quid for a BT engin­eer to come and rewire their house, which seems like a fairly expens­ive way to solve a prob­lem that can be fixed with a screw­driver and a pair of pliers.

BBC Made of Fail? No, definitely not.

A couple of days ago I wrote an opin­ion piece on why I feel that being forced to duplic­ate exist­ing soft­ware pro­jects due to an anti­quated and lim­ited infra­struc­ture is a large part of the reason the BBC is fall­ing far behind the rest of the industry in its inter­net offerings.

To put this in con­text, until two days ago this site has had about 100 vis­it­ors total, so I was a little sur­prised to find that within hours the art­icle was mak­ing its way onto the front page of Reddit, and being cir­cu­lated amongst tech­no­logy blog­gers. In most cir­cum­stances it was accom­pan­ied by under-informed and wildly inac­cur­ate com­ments and extra­pol­a­tions about the BBC from people who have either never worked there, or not worked there in the bet­ter part of a dec­ade. (I’ve also spent far too much time over the past couple of days delet­ing com­ments along the lines of “this is why we should abol­ish the licence fee”, strangely most of these com­ments com­ing from Americans.)

A lot of people missed the point of what I was writ­ing about, which I’ll attrib­ute to me not mak­ing myself suf­fi­ciently clear. I was not talk­ing about the BBC’s web sites, about the qual­ity of the corporation’s cre­at­ive out­put, nor about what the situ­ation was prior to the sell-off of BBC Technology sev­eral years ago. What I was talk­ing about are the reas­ons that today, in 2007, the BBC is stuck with an archaic tech­no­lo­gical infra­struc­ture, and how that ulti­mately hurts the BBC’s long-term strategy to be “part of the web” and not just a set of web pages.

You see, des­pite the crit­ical han­di­cap of its infra­struc­ture, the BBC does amaz­ing things with its con­tent. It takes a little longer than the rest of the industry to get those things out there, but con­sid­er­ing the size of the cor­por­a­tion, the all-encompassing nature of its audi­ence, and its risk-averse lead­er­ship, that’s not surprising.

It’s also true that the BBC suf­fers from mul­tiple per­son­al­ity dis­order, and that within the cor­por­a­tion not all things are equal. As was poin­ted out in the com­ments on my art­icle, BBC Journalism (what used to be BBC News) has its own infra­struc­ture that lies more within the con­trol of the BBC. The dif­fer­ence is clear — BBC News has to be able to respond in the most flex­ible and reli­able man­ner ima­gin­able as the chan­ging pres­sures of world events and audi­ences demand more of their infra­struc­ture than almost any other in the world. Waiting months for bug-fixes and code reviews to make minor changes would be the kiss of death for the BBC’s News offerings.

That’s really the crux of the mat­ter. The BBC cer­tainly can be slow to react to change, but over the past couple of years there has been enorm­ous pres­sure from within the cor­por­a­tion to move for­wards with this whole “inter­net” thing. It’s safe to say that the vast major­ity of the people work­ing in on-line con­tent at the BBC do actu­ally “get it”, and even the tra­di­tional lin­ear media people are catch­ing on. There are some truly excep­tional pro­jects com­ing out of the BBC in the near future (espe­cially on the CBBC and CBeebies side of things), and it’s not fair to tar every­one with the same brush.

A bril­liant example of what the BBC does right is described in Curtis Poe’s response to my art­icle. He says:

[T]oday when I got into work, I found a scath­ing email from one of the higher ups. He read the “BBC Fails at the Internet” post and rather than blow a gas­ket that internal details had been made pub­lic, he for­war­ded it to the respons­ible parties, said he agreed, and made it very clear that the prob­lem will be fixed immediately…

Now, wouldn’t that be a fine thing?

Perl on Rails is a pro­ject by the smart chaps over in BBC Audio and Music Interactive that rep­lic­ates the Ruby On Rails MVC frame­work in Perl. They’re obvi­ously rather proud of them­selves, and I under­stand that intern­ally the pro­ject is mak­ing waves. Whilst I applaud the tech­nical achieve­ment of the indi­vidual developers, I deplore the situ­ation that has forced them to do this.

The prob­lem is that the BBC doesn’t con­trol its own tech­nical infra­struc­ture. In an act of stag­ger­ing short-sightedness it was out­sourced to Siemens as part of a much wider divest­ing of the BBC Technology unit. In typ­ical fash­ion for the BBC, they man­aged to select a tech­no­logy sup­plier without inter­net oper­a­tions exper­i­ence. We can only assume that this must have seemed like an accept­able risk to the tower­ing intel­lects run­ning the BBC at the time. Certainly the staff at ground level knew what this meant, and resigned en masse.

Several years later this puts the BBC in the unen­vi­able situ­ation of hav­ing an incum­bent tech­no­logy sup­plier which takes a least-possible-effort approach to run­ning the BBC’s inter­net ser­vices. In my time at the BBC, crit­ical oper­a­tional tasks were known to take days or even weeks des­pite a con­trac­tual ser­vice level prom­ising four hour response times. Actual code changes for deploy­ing new applic­a­tions were known to take months. An upgrade to provide less than a dozen Linux boxes for addi­tional server capa­city — a pro­ject that was over a year old when I joined the BBC — was still being debated by Siemens when I left, eight­een months later.

The BBC’s infra­struc­ture is shock­ingly out­dated, hav­ing changed only by frac­tions over the past dec­ade. Over-priced Sun Enterprise serv­ers run­ning Solaris and Apache provide the front-end layer. This is round-robin load bal­anced, there’s no man­age­ment of ses­sion state, no load-based con­nec­tion pool. The front-end serv­ers proxy to the applic­a­tion layer, which is a hand­ful of Solaris machines run­ning Perl 5.6 — a lan­guage that was super­seded with the release of Perl 5.8 over five and a half years ago. Part of the reason for this is the bizarre insist­ence that any nat­ive mod­ules or any­thing that can call code of any kind must be removed from the stand­ard lib­rar­ies and replaced with a neutered ver­sion of that lib­rary by a Siemens engineer.

Yes, that’s right, Siemens forks Perl to remove fea­tures that their engin­eers don’t like.

This means that developers work­ing at the BBC might not be able to code against doc­u­mented fea­tures or inter­faces because Siemens can, at their sole dis­cre­tion, remove or change code in the stand­ard lib­rar­ies of the sole pro­gram­ming lan­guage in use. It also means that patches to the lan­guage, and widely avail­able mod­ules from CPAN may be sev­eral major ver­sions out of date — if they are avail­able at all. The recent deploy­ment of Template Toolkit to the BBC serv­ers is one such example — Siemens took years and objec­ted to this con­stantly, and when finally they assen­ted to provide the single most pop­u­lar tem­plate lan­guage for Perl, they removed all code exe­cu­tion func­tions from the language.

So tal­en­ted, under­paid, and frus­trated soft­ware engin­eers at the BBC are forced to make a decision. Either they can pro­duce web­sites using static HTML, and make a few remote calls to lim­ited Perl func­tions, dec­or­at­ing their page with SSIs, or they can fight against a reti­cent and incom­pet­ent tech­no­logy sup­plier to make use of a crippled and out­dated lan­guage on serv­ers that more than likely are unable to meet the capa­city require­ments of a dynamic applic­a­tion being used by the BBC’s audi­ence. Software engin­eers at the BBC must become mas­ters of the sleight-of-hand, using every smoke and mir­rors tac­tic they can to con­jure the appear­ance of dynamic web­sites, not exactly what you would expect from one of the largest media cor­por­a­tions in the world. Oh, and if you’re an external agency work­ing for the BBC and hop­ing to write a new applic­a­tion or build on tech­no­lo­gies that the rest of the world has taken for gran­ted for the best part of a dec­ade, you might as well for­get it. There’s only one extern­ally avail­able devel­op­ment server, and it’s not in syn­chron­isa­tion with the live environments.

It doesn’t have to be this way. If, instead of for­cing its teams to waste valu­able license fee pay­ers’ money on duplic­at­ing exist­ing free soft­ware, the BBC decided to take con­trol of its tech­nical infra­struc­ture and provide a viable plat­form for com­plex, dynamic applic­a­tions, then that cre­ativ­ity, effort, and time could be dir­ec­ted at mak­ing more of the kind of applic­a­tions that make the BBC great.

Some work is already pro­gress­ing in this dir­ec­tion. A large part of the BBC’s Creative Futures pro­ject is what the BBC calls “BBC 2.0″ (often mis­takenly referred to by exec­ut­ives and television-types as “Web 2.0″). The last I heard this was plan­ning to deploy an archi­tec­ture based around Java, Tomcat, Hibernate, Velocity, and MySQL. Whilst I dis­agree with the choice of tech­no­logy for many reas­ons, this is at least an import­ant step in the right dir­ec­tion for the BBC — as long as they exert con­trol over the infra­struc­ture from end to end.

It’s a ridicu­lous situ­ation, and I know that many tal­en­ted and respec­ted tech­nical staff have left the BBC in the past few years cit­ing frus­tra­tion at the insuf­fi­cient tech­nical infra­struc­ture, and the inab­il­ity of both Siemens and BBC man­age­ment to keep up with the pace of tech­no­lo­gical change. Unfortunately, unless some­thing dra­matic changes with the upper levels of BBC man­age­ment to recog­nise the nature of the prob­lem, it’s a situ­ation that will remain the status quo for a long time to come.

Tags: , ,

Powered by WordPress | Theme: Motion by 85ideas.