Wutuf – the picture edition, because a picture tells 10^3 words
Posted: September 4, 2011 Filed under: Icy Cow Speaks, Wutuf | Tags: !xkcd, applications, calm, cartoon, developers, documentation, downtime, fixing things at 2am, servers, SLA, support, sysadmin, web apps, works with server monitoring, wutuf Leave a comment »We recently put up a page about Wutuf, the app we’re building to help sysadmins and developers who have to maintain stuff.
But words are kind of wordy; the original design spec for Wutuf was a picture:

And for pictures of a wittier kind, here’s a random xkcd
Wutuf – wtf? A tool for sysadmins and other first-class citizens who have to get up at 2am to fix broken stuff.
Posted: September 1, 2011 Filed under: Icy Cow Speaks, Wutuf | Tags: applications, developers, documentation, downtime, monitoring, servers, SLA, support, sysadmin, web apps, wutuf 2 Comments »So what are we making anyway? We’ve put up a page about Wutuf – our app for developers and system administrators who have to maintain things…or as the description goes….
…it’s 2am (or 9am, or 5:30pm) and you’ve just got a message from your monitoring system. Your spreadsheets, text files, tattered printed pages are all out of date, you should have had Wutuf.
Wutuf has been prototyped extensively and we’re working on the first production-ready release right now. We intend to have it available for limited testers this autumn (that’s ‘fall’ to some of you, and ‘spring’ to upside-downers)
Wutuf will be available as a web app with simple signup, setup and billing. Key design features include:
- buying Wutuf must be cheaper and quicker for you than rolling your own solution to the problem.
- it should be usable in the dark after drinking alcohol.
- plays nicely with your favourite monitoring solution (Pingdom, Nagios, Server Density etc).
If you’d like to know more, tweet @theicycowspeaks, leave comments on our blog, or even email andy@icycow.com
——–
We’re building Wutuf with the rather neat Pyramid framework. Pyramid is fast and not too much of headache.
<br /> doesn’t kill kittens
Posted: August 10, 2011 Filed under: Icy Cow Speaks, Python and other code things | Tags: css, engineering argument, getting stuff done, ideology, inline styles, pragmatism over perfection, programming, ship on time, spurious markup, unjustified practices 4 Comments »Not dead
I’m a backend developer, as (scarily) are all the developers that make up Icy Cow. However, we’re making some web apps, and traditionally web apps have some kind of… er… bit you can see. So I guess we’ll have to start writing more HTML and CSS than we’re used to.
I’m generally terrified of making changes to other people’s CSS. I worry about making one tiny change to a font size or line height, and totally destroying the layout in some other, unseen, part of the site, or blowing up some archaic browser.
I don’t get the same sense of panic when maintaining python code. Of CSS, I often find myself thinking “it shouldn’t be this fragile”. Am I missing something? Are there principles of software engineering that we can use to make scary CSS side-effects less likely?
When you’ve been writing software for a while, you realise that things like elegance, brevity, maintainability, optimisation and JFDI sometimes drag you in opposing directions. You constantly have to make judgement calls about what’s most important for the bit of code you’re currently working on, the current and future system requirements, and the overall needs of the business.
Real frontend developers (rather than python hackers who dabble in it when forced) don’t seem to like this wishy-washy approach to the rules. “You must not use inline styles. Extraneous markup is evil. Every time you use a <br/>, a kitten dies.”
But since I’m not a real frontend developer, here are some of the cardinal sins that I’ve been committing – and why I’m not so sure they’re as evil as people say:
Inline styles: Just like inline code. If you only use it once, and it’s only a small amount of styling, why can’t you just put it on the bit of markup it affects? It’s much less effort to maintain and you don’t need to worry about side effects. If you use it more than once, or need to style it in different ways for different browsers, then obviously refactor and put it into the stylesheet, just like making a function for code reuse.
Extraneous markup: Sometimes a few bytes of extra html can make everything so much less scary. “You must not have markup that only exists to make your styling easier”. Why not? I’d much rather bung in an extra div than mangle some unsuspecting fieldset legend (or, heaven forbid, a definition list) in some way it was never intended to be used, and is almost certainly going to break in IE6. Yes I can see why it’s “elegant” to apply all your styling to the markup that’s already there, but it’s a lot of heartache just to show off to people who happen to View Source on your page.
<strong>: Why do people normalize this back to nothing, as if to punish you for using it? (Actually I could have a whole other rant about CSS reset/normalisation, but that’s for another time.) Anyway, <strong> is nice and sematically meaningful. <span class=”strong”> means nothing to web crawlers or assistive technologies. I haven’t had the pleasure of listening to Jaws saying “I <strong>love</strong> you Jess”, but I’d like to think it would sound much more sincere with the right markup.
Line breaks: sometimes you don’t want to put your text into a paragraph, or make a div with its own special class and open up your stylesheet and put in some margins, and then test it across all possible browsers to make sure the margin is identical in Chrome and IE 5.5 and doesn’t get ignored in weird floaty edge cases. Sometimes you JUST WANT A FRIGGING GAP UNDERNEATH IT. And yes, sometimes I even put a after it, just to make sure.
So there you have it. I’m happy to hear arguments from people more experienced than me in the ways of the useragent, and I might even change my mind, but only if the argument is more solid than just “Them’s the rules”.
What do you need at 2am? Or 4pm? Listing web apps & services for sysadmins and other souls.
Posted: August 5, 2011 Filed under: Icy Cow Speaks | Tags: 2am problem, alerting, ip patrol, monitoring, munin, nagios, pager duty, papertrail, pingdom, server density, sysadmin, web apps, wutuf Leave a comment »I’m making a list of nice services & web apps for sysadmins (or people who aren’t sysadmins, but still have to nursemaid servers and whatever’s supposed to be running on them).
Basically stuff that monitors uptime, handles alerts, resource monitoring etc. Things that help you out when stuff’s on fire at 2am, or at 4pm when you’re trying to prevent the next 2am fire.
What do you use? Can you help me out here?
Kick your links into comments, or @theicycowspeaks
Got a few obvious big hitters:
And collected a few others recently – some look very nice:
(trying to figure out what we might want to be compatible with)
cheers,
Andy
Do we like the Pyramid framework?
Posted: July 18, 2011 Filed under: Python and other code things, Stuff we use | Tags: plone, pyramid, web framework, zodb, zope 2 Comments »We’re writing our new web apps using the Pyramid framework. We’re (mostly) new to Pyramid; our experience is in Plone, filesystem Zope, and (in my case) ZMI Zope (which my cold dead fingers refuse to relinquish).
Things we like so far about Pyramid:
- Documentation. Readable, comprehensive, mostly correct
- Things we’re used to for free with Zope that we like: ZCA, ZODB, transactions
- Alternative ways to do the things we don’t like in Zope: url dispatch (but we’ll still use traversal where appropriate), easier-to-use permissions model, development without restarting the instance.
- Pyramid appears to be speedy (for the limited-scale we’ve used it on so far)
- Community seems friendly and active
- Most stuff just works
- Chameleon cleans up some of the madness of tal, without damaging the good bits. The additional $ notation makes sense and is handy.
Things we’re not sure of yet
- Will Pyramid be less resource intensive than Zope? Zope + Plone is a memory hog. Zope is far from slow in most cases, but could be faster.
- Documentation is very easy_install focussed. We’re very addicted to buildout.
- How to run the test suite when using buildout to create the environment . We think we need to edit setup.py.
WTF? And some stats. Let’s open with stats
Posted: July 8, 2011 Filed under: Bristol, Icy Cow Speaks, Startup, Stuff we use | Tags: .com squatters, about us, bristol, first post, icy cow speaks, jquery, names, pyramid, tea, uk startups, wordpress, zodb Leave a comment »Hello world. And welcome to yet another first post on a blog. Short on breakfast, but long on tea, I’m ignoring my rumbling belly and typing at a sedate pace into yet-another-wordpress-window. So how do I catch your attention? A quick google search for ‘blog first post‘ led me to this suggestion that it’s good to open with a bang. I remember Billy Corgan said much the same thing once. This is nice serendipity because I was thinking about Billy Corgan as I took the baby across the park to the childminder this morning. I saw him play live once (Billy Corgan, not the baby), and he does go on a bit, much like this paragraph. So let’s move on, and follow good advice:
BANG!
That’s the bang out the way. So what is Icy Cow anyway? A factory for rambling blog posts? A new brand of chilled desert? An amusingly-titled line of clothing? All good ideas, but not the one we had in the pub. So this Icy Cow (perhaps there are more) is a software startup based in Bristol UK. We invented numerous brilliant cider-related names, and numerous more non-cider-related names, but ran up against a wall of domain squatters, and it *simply must be* .com. So by a piece of serendipity we ran across an obscure piece of Norse mythology, and a name was born. The ‘we’ in this two act drama are Alan, Andy, Jess and Tom, and we all have day jobs at Team Rubber (at Delib and Viral Ad Network specifically). Things we’ll be posting about include:
- startup experiences, things we get right, things we screw up, tips and tricks for others
- how we balance our day jobs (which feature flexible working) with running a software startup
- other people whose products or stories we like
- the UK startup environment, especially in Bristol
- our apps (we’re working on two right now, both aimed at creative businesses in software, advertising, film, design, architecture and such)
- technical and design tips, questions, discussions and rants
- the specific tools we’re using, including Python, the Pyramid framework, the ZODB database, other python WSGI apps like Deliverance, and also jQuery and WordPress
- lean / agile software stuff. Andy is a lean freak.
This kitten by


