Wutuf – the picture edition, because a picture tells 10^3 words

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:
A cartoon which explains that Wutuf is a source of calm and certainty when you (or your sysadmin if it's not you) are rudely awoken by a monitoring sms alert at 2am

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.

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.


4 tools for coders who also blog and other such delights, including kittens and OS X dashboard widgets

Because you sometimes need kitten pictures
placekitten
Place kitten - image by BigTallGuyThis kitten by Big Tall Guy
Because short urls are handy
Meet Shurly
Because logging in to multiple blog accounts is a chore.
And also because I don’t get on with browser WYSIWGs for writing stuff
Mars EditMars edit
Because when I’m coding, I burn my food, or my tea goes cold (bleargh)
Tea TimerTea Timer - cider apple pie

Icy Cow: making code not ice cream (that’s some other guys)

Some of Icy Cow’s team are also involved in Viral Ad Network (Alan writes code for it, Andy co-founded it).  Viral Ad Network has a pervasive ice cream theme, and has been giving away ice creams this summer to digital agencies and media agencies in London & Bristol.

Icy Cow has not been giving away ice creams, but we did eat some. We have also written some more code: one step closer to getting an app done; one step closer to reducing the pain for people who have to wake up at 2am to fix a distressed server.

This post powered by the sound of ice cream vans in the British summer, and the KLF (who also had a thing for ice cream vans). Moo Moo!

Icy Cow are not in this picture. This is the VAN guys, with a van :) 4v4xy

.


<br /> doesn’t kill kittens

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 &nbsp; 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.

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. :P

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?

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

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.
I promised stats, but I forgot to add any.  28 out of 32 people do so on Tuesdays, when surveyed.  When not surveyed the figure falls to just 27 out of 32.  But enough, breakfast calls.  Let’s end on a bang.
BANG!
cheers,
Andy

Follow

Get every new post delivered to your Inbox.