Hacker Newsnew | past | comments | ask | show | jobs | submit | intranation's commentslogin

Openresty and Lua are great, but Go is a more generally applicable language for building web services. So when taken in that context Go makes more sense if we look at it as a learning exercise as well as a new part of the stack.


Scala wasn't a learning exercise then?


We did have some configuration - it was stored in Varnish and Nginx. The time cost of shipping new redirects when content is moved or new routing configuration for new tools coming online is non-negligible, particularly as we're in the middle of moving 300+ government agencies onto the GOV.UK platform. Also having all those redirects, friendly URLs, and application mappings in static configuration makes self-service publishing tools very difficult to build.

This is all outlined in the blog post - perhaps not as clearly as I would have liked, though!


They're incredibly easy to build. I notice you use puppet. That's enough tooling to push configuration out and restart services for nginx or apache+mod_proxy. You can break configuration out into separate files per agency if you need to.

Varnish is different as that requires restarting.

We do the same with commercial kit (Riverbed) with over 140 HTTP application endpoints and that is higher friction than the equivalent setup yet we manage it with a mere 1 person...

Deployment is a solved problem. No offense but you're not Google!


There is a need for dynamic routing, which you're overlooking. So updating configuration files and restarting services would not work.


and you are not a government agency delivering digital services to 60+ million people


"OMG we're the government and everything we do is huge and unprecedented so it is impossible for us to use off-the-shelf anything and we can learn nothing from best practises" is step 0 of every failed big government project.

There's significant thawing of that attitude (and gov.uk, for their imperfections, is definitely a very positive part of the trend) but the idea is alive and well.


Yes because a real world organization with IT systems going back 50+ years is exactly like some me to macbook and MBA start up with two men and a pantomime horse in old street.


Yes because a hipster startup in Old Street is the only kind of non-government entity that uses computers for anything.


Well not everyone is good at it at BT is/was well before that fuckwit sales man got over promoted and fucked over Global Services good and propper.

And at least they have avoided any healthcare.gov and RBS fiascos - Though I suspect that Universal credit is going to be a real CF


No we're just handling that 60 million people's mortgages, insurance, financial status, financial history, legal and personal data instead...


Are you a price comparison site? Or Experian or Equifax perhaps?

Unless you clearly say you're not just some enterprise business that aren't exactly known for their technical competence this comment is totally ambiguous.

Do you just think you know what you're talking about, or do you actually?


None of them although close.

You don't have to take my opinion seriously. I could work in Tescos and be splurging false information out on the Internet. I could be an elaborate hoax!

However, please don't write off people as "just some enterprise business that isn't exactly known for its technical competence" because we all know that startups get it right all the time as well...

As for do I know versus do I think, there is the third option do others know and that is all that is important when it comes to getting paid...


So you are handling a small set of related services to a large number of people. That's hardly comparable to the task of migrating 300+ (distinct) government agencies/services to the new system, along with whatever old systems they currently use.


Not sure what that has to do with semantics. Are you saying that NAV etc. aren't valid semantics on applications?


> Are you saying that NAV etc. aren't valid semantics on applications?

What I mean is that the (supposed) benefits of semantic use of CSS classes go out of the window when you're no longer hosting documents to be read by machines. And the user does not care if the classes of HTML elements are semantic or not.


Some users do, assistive technologies can benefit significantly from semantic HTML and class names.


Semantic HTML elements, yes, but CSS class names are ignored by assistive technology at large.


PATH, exec-path etc. are mangled because of the way OSX loads environment variables. Here's an Emacs package that fixes that:

https://github.com/purcell/exec-path-from-shell


This is a great move for me, and I hope ultimately for Ben. This way I'm empowered to fix my own issues, and pay someone else to run it for me.



It's opt-in, otherwise most packages would break.

To enable it per-file use a file-local variable:

  ;;; -*- lexical-binding: t -*-


How ironic. Wouldn't it make much sense to enable it per lexical scope?

Or as Perl did it (18 years ago) with a new keyword, so that you can use both dynamic and lexical variables in the same file? Best of both worlds.


You can use both in the same file; you just need to declare the dynamic ones using defvar, etc. If you turn lexical-binding on blindly, the compiler will usually tell you which variables you need to mark as dynamic.


(eval form t) enables lexical scoping for form. http://yoo2080.wordpress.com/2011/12/31/lexical-scoping-and-... is highly recommended reading btw.


It has to be this way to remain backward-compatible. Similar to the issues Perl is going through with things like enabling strict by default (you have to request at least a certain version, I think 5.12), and distinguishing a Perl 6 file from Perl 5 one.


Well, there has been lexical-let in the cl package for quite a while.


Not sure about radio, but black and white TVs are cheaper (£49 vs £145.50).

http://www.tvlicensing.co.uk/about/media-centre/news/black-a...


I think the learning programming thing falls under "personal creative projects", and I am with you 100%.


Yes, the article seems to assume that "personal creative projects" need to be something unrelated to software development. But why do they need to be? If a carpenter builds his kids a tree house in his spare time, isn't that a personal creative project even if he employs the same skills that he uses in his day job?


Dashes map more cleanly to existing CSS syntax, eg nth-child, background-color, etc. Much like camelCase looks more like Javascript than my_variable.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: