Small Mosaic


Categories:

/books
/career
/codinghorrors
/events
/geekstuff
/justdont
/languages
/languages/bash
/linkshot
/magazines
/meta
/misctech
/movies
/nottech
/operatingsystems
/operatingsystems/linux
/operatingsystems/linux/debian
/operatingsystems/solaris
/perl
/presentations
/programming
/python
/ruby
/security
/security/apache
/security/tools
/serversmells
/services
/services/dns
/sites
/specifications
/sysadmin
/testing
/tools
/tools/commandline
/tools/firefox
/tools/gui
/tools/network
/tools/online
/tools/online/greasemonkey
/tools/puppet
/unixdaemon

Archives:

August 20101
July 20101
June 20104
May 20102
April 20101
March 20108
February 20101
January 20102
October 20092
September 200910
August 200910
July 20094
June 20091
April 20093
March 20097
February 20094
January 200917
Full Archives

Wed, 30 Sep 2009

Dynamic Motion on Google Earth
It's very easy to become quite blase or even cynical about new technologies but sometimes a project grabs your attention and coaxes out a "that's very cool", the real time augmented Google Earth had that effect on me.

How long will it be before you can roll back an overlay by X weeks and see what happened in that game last Thursday or check the traffic on your new route at 7am on every Friday for a couple of weeks?

Like this post? - Digg Me! | Add to del.icio.us! | reddit this!

Posted: 2009/09/30 21:57 | /geekstuff | Permanent link to this entry | This entry and same date


Rake - surprisingly enjoyable
I've never really liked make files, I don't think I've ever had to write enough C to really appreciate (or just tolerate) them, so I was a little dismissive of Rake - and I was mostly wrong.

Now we're adding a new member to the systems team I've been doing a lot of thinking about our tool chain - what knowledge assumptions it makes, which parts are still more manual than I'd like and where the tool chain has gaps (this is the most annoying one for me) and rake seemed like a potential addition to encode some of that process knowledge in to a tool. I've only added little rakefiles here and there but they do make certain tasks nicer (plus I like the inline descs).

I've not yet worked out any general rules for when to use a shell script and when to use rake but if nothing else it's helping me spend some time on my ruby skills. The best rake starting points I found were Martin Fowlers rake article and the rake release notes.

Like this post? - Digg Me! | Add to del.icio.us! | reddit this!

Posted: 2009/09/30 21:48 | /tools/commandline | Permanent link to this entry | This entry and same date


Sun, 27 Sep 2009

DJUGL September 2009
Despite the fact a large percentage of the DJUGL meetups have occurred in the building I work in I've been very lax in attending one, and it's been my loss.

The crowd was friendly, the pizza and diet coke plentiful and the speakers enjoyable, and I've got every intension of making the next meeting - especially if it's in the same building.

Gareth Rushgrove started the talks with a subject very dear to my heart, deployment. The talk went quite quickly with an intro to Fabric and a live demo of a deployment. The demo went as most demos do but fabric itself looks interesting, especially when you consider that our websites are written in Python. Unfortunately the two different versions (with different goals) and the fact that a new owner's pushing the development now means it's not something I can drop in right now with any degree of comfort. I'd like other people to find the rough edges first so for now I'll stick with the plan of getting Capistrano involve id in one of our more self contained projects alongside puppet.

Although I disagreed with little bits here and there it's always nice to hear a developers point of view on this stuff.

Ben Firshman was up next with a selection of talks, the Celery distributed task queue (very nice API but passes pickled python objects so only good for Python at each end projects), a rewrite of MPTT (a topic of which I know nothing) and some highlights about py.test (a quite nice Python test framework). I've been lucky enough to work with Ben over the last few months and he's someone to keep an eye on technically.

This was the last DJUGL organised by Robert Lofthouse, he's passed the baton on to Gareth, and from the people I met at the event, and he can pass it on proud of the group he's put together.

Like this post? - Digg Me! | Add to del.icio.us! | reddit this!

Posted: 2009/09/27 18:53 | /events | Permanent link to this entry | This entry and same date


Wed, 23 Sep 2009

Simplifying File Permissions in Puppet Manifests
I've been a user of Puppet for about three years now and while on a recent dig in to some of my older classes it was a little embarrassing to see lots of file types used like this:


  file { "/srv/whi/maps":
    ensure => present,
    source => "puppet://$servername/whi/maps.conf"
    owner  => whi,
    group  => whi,
    mode   => 644
  }
  file { "/srv/whi/elocs":
    ensure => present,
    source => "puppet://$servername/whi/eloc.conf"
    owner  => whi,
    group  => whi,
    mode   => 644
  }

Luckily as we get more experienced with a tool we can often go back and improve on the first steps. By using an explicit File { settings } inside a class you can assign a sensible set of defaults to all the instances of the same type that lack overriding settings. So we can shorten the previous example to -


File {
  owner => whi,
  group => whi,
  mode  => 644
}

file { "/srv/whi/maps":
  ensure => present,
  source => "puppet://$servername/whi/maps.conf"
}

file { "/srv/whi/elocs":
  ensure => present,
  source => "puppet://$servername/whi/eloc.conf"
}

While this isn't a huge win in raw characters typed (although in longer manifests they start to mount up) it does move all the common settings in to a single location (keeping us clear of DRY violations) and it leaves only the differences between file type definitions.

You can also apply those kind of settings (such as Exec { path => "path:list" } at the server level by including them in a top level file and then overriding them as needed in each module. If you do this then you need to be aware that any declared type that doesn't override it gets the global setting, which can lead to the odd action from afar head scratching.

Like this post? - Digg Me! | Add to del.icio.us! | reddit this!

Posted: 2009/09/23 22:16 | /tools/puppet | Permanent link to this entry | This entry and same date


Thu, 17 Sep 2009

Ubuntu Security Talk - Skills Matter September 2009
A couple of days ago I had the chance to attend a talk on PAM and AppArmor at Skills Matter. To be honest it wasn't what I expected, the subject level was very beginner focused, PAM only received scant coverage and the other tools were all old hands like a port scan with nmap or basic IP Tables rules.

The evenings highlight for me was the coverage of AppArmor, both because it's a very neat tech that seems orders of magnitude easier to use then SELinux and secondly because the last time I saw it mentioned was when Crispin Cowan spoke at GLLUG. It's great to see it in a mainline distro and I've added it back on to my experiment with list.

Like this post? - Digg Me! | Add to del.icio.us! | reddit this!

Posted: 2009/09/17 22:06 | /events | Permanent link to this entry | This entry and same date


Stand Alone Puppet
While Puppet can be used to manage large, complex environments it's also a useful tool at the lower end of the spectrum. Using just the puppet executable and a small inline class or two you can write very useful manifests in only a handful of lines.


class build-host {
  package { "build-essential": ensure => installed }
  package { "subversion":      ensure => installed }

  file { "/home/dwilson/repos/":
    ensure => directory,
    owner  => dwilson,
    group  => dwilson,
  }
}

node default {
  include build-host
}

To invoke the class you just run puppet -v build-host.pp. It's also worth pointing out the node name of default. This saves you manually changing the manifest whenever you move to another machine. While it wouldn't be hard to replace the above example with a shell script, by using puppet you can easily access the built-in abstractions (which package manager to use, how should you add users) and remove a lot of scaffolding code. And then when you're done you can promote the class to your managed infrastructure.

I've used this to bootstrap provisioning servers (why should the provisioning host be the only machine that wasn't provisioned?), test small but annoying new classes on scratch servers and I'm currently working on integrating it with a small subversion backup testing project in my spare time at work (so very slowly).

Like this post? - Digg Me! | Add to del.icio.us! | reddit this!

Posted: 2009/09/17 21:33 | /tools/puppet | Permanent link to this entry | This entry and same date


Mon, 14 Sep 2009

JavaScript: The Good Parts - short review
Considering that JavaScript: The Good Parts is only 124 pages it took me a lot of attempts to work my way through it. A combination of the authors attitude and the dry presentation put me off within the first three chapters every time i tried to read the book.

However a side project I was helping out on needed some JavaScript reviewed and considering how little of the language I knew I forced myself to work through the book and I'm glad I did - despite its short comings it's an excellent introduction to the language for programmers with a couple of other languages under their belt. The main parts of the language, such as syntax railroad diagrams, objects, inheritance and regular expressions are covered in a very basic, but to the point style with some excellent little code snippets. The examples in this book help you think of the language itself as mutable and just another tool to bend to your needs.

Once I accepted the authors style I liked the book. It would have been better with a little less repetition and maybe even as a pocket reference but it's an excellent book on JavaScript none the less. Score - 7/10

Note - when trying the samples, and experimenting with the language in general, I used the Mozilla Rhino JavaScript interpreter. It was nice to have a non-web playground for getting to grips with the language without needing to work around the idiosyncrasies that come with web browsers.

Like this post? - Digg Me! | Add to del.icio.us! | reddit this!

Posted: 2009/09/14 22:25 | /books | Permanent link to this entry | This entry and same date


Sun, 13 Sep 2009

Land The Tech Job You Love - Short Review
When it comes to progressing your technical career there are (IMHO) three main pillars, continuing your technical advancement, networking (with other people, not just wires) and building up your online presence. Land The Tech Job You Love covers all these critical points and expands the other parts of the job seeking process - researching the company, preparing for the interview and how to answer the more ambiguous questions that often come up.

The book is well written and has lots of action points that can help you along the way. I don't think I'd follow all the advice as given, some of it seems very American, but the book does raise a lot of points you should at least be aware of during your job hunt.

Score - 6/10

Like this post? - Digg Me! | Add to del.icio.us! | reddit this!

Posted: 2009/09/13 18:29 | /books | Permanent link to this entry | This entry and same date


Wed, 02 Sep 2009

Verified by Visa - Designed by idiots
The one thing online that irks me beyond all others, even surpassing chromatic, is Verified by Visa. I hate this service and every site that uses it.

If you've been blessed enough to never have it ruin your transaction here's the short version - in the middle of paying for something you get bounced, with no clue where you're going and how secure it is, to a third party site, which is completely safe as it's run by visa, that then gets you to enter a password. Or if you don't know it, create a new one using nothing more than what's on your card.

Firstly how stupid is that? What ever happened to something I know, something I have? If I find a lost card I can reset the Verified by Visa password using nothing more than my powers of reading and typing. While we're on the subject of passwords - you're not allowed to use special characters. Numbers and letters only. Thanks, rule out half the possibilities in one sweep for me. And what's with the remembering history? This thing makes elephants look like /tmp... it remembered all the verified passwords I've ever used going back about ten iterations - and O change the password a lot because I can't use a decent one and it's easier to reset it than to dig out the old one.

Now suppose you've logged in, got the password right and clicked next, what happens? You get a session / transaction timeout and you have to go all the way back through your order. Thanks for that.

If your site makes me jump through these fake security hoops then I'll go elsewhere. I won't play along anymore - you'll just lose my custom. And hopefully that of many other people.

Like this post? - Digg Me! | Add to del.icio.us! | reddit this!

Posted: 2009/09/02 22:07 | /misctech | Permanent link to this entry | This entry and same date


Tue, 01 Sep 2009

Ubuntu Developer Week
All this week there are Ubuntu Developer IRC workshops. While I don't actually use Ubuntu at work it's always a good idea to keep up with the new and shiny, and as an extra incentive a lot of the technical details mentioned also apply to Debian, which I do have to admin on a daily basis.

While the IRC logs don't go in to huge details the two sessions I've looked at (getting started and packaging perl modules) each contain enough useful links to make them worth my time.

Like this post? - Digg Me! | Add to del.icio.us! | reddit this!

Posted: 2009/09/01 04:23 | /operatingsystems/linux | Permanent link to this entry | This entry and same date


books career codinghorrors events geekstuff justdont magazines meta misctech movies nottech operatingsystems/linux operatingsystems/linux/debian operatingsystems/solaris perl programming python ruby security security/apache security/tools serversmells services/dns sites sysadmin testing tools tools/commandline tools/firefox tools/gui tools/network tools/online tools/online/greasemonkey tools/puppet unixdaemon

Copyright © 2000-2010 Dean Wilson XML feed logo