PreshBlog

Author Archive

Why IRC is a valuable tool to your development team

by on Oct.17, 2011, under Geeky, Perl, Programming

IRC (Internet Relay Chat) is a protocol for multi-server text chat between many participants in many channels, started back in 1988.

There are plenty of IRC networks out there for social chatter, including the likes of Freenode and irc.perl.org hosting many channels for Perl and open source channels in general, making it easy to get quick help from developers and users of your favourite project.

However, I find IRC to be a very valuable tool indeed to help development teams collaborate effectively; at work we make extensive use of it. It’s useful whether you’re a formal development team in a corporate environment, or an open source project whose developers / collaborators gather on IRC.

Why is it so useful? Well:

It enables quick discussion and collaboration without breaking your workflow

As a developer, you don’t want to lose your concentration – when you’re “in the zone”, you’re carrying information about the code you’re working on in your brain, and it doesn’t stay there for long if you’re distracted. Someone walking over to you and starting talking to you, or a phone call, demand more or less 100% attention; you will be distracted, and you will “fall out of the zone”, causing your productivity to fall until you get back to where you were.

IRC, on the other hand, means you don’t have to respond quite so immediately, and I find it easy to flick between coding and IRC (both terminals within Terminator for me) without losing focus on where I’m up to and what I’m doing.

Most IRC clients support alerting you when your nick is mentioned in a channel or you receive a direct message, so you can ignore general chatter in the channel until you’re ready to read it, but know if someone is trying to get your attention.

Of course, it’s even more valuable when your development team work from multiple locations, whether that’s having employees working from home, or multiple offices.

Logs of discussions can be valuable for future reference

If you keep logs of your discussions, it’s easy to refer back to later – sometimes you’ll remember “ah, yes, we talked about this – what was the outcome?” – quick log search, and your answer is there. “Why did we decide that this was the best way to implement this?” – log search – “ah, that was why”.

Open, widely-supported protocol

IRC is an open, widely supported protocol; there’s various clients available for pretty much every platform, so whatever system your devs work on, they’ll be able to find a client that suits them.

Easily extensible to integrate with other tools

It’s easy to write IRC “bots” which can help integrate with various other tools in various ways.

A good example is providing easy links to commits / bug reports or issues / pull requests etc.

If you’re using my Bot::BasicBot::Pluggable::Module::GitHub for instance, you can mention an issue and have the bot automatically provide a summary and an URL for anyone who wants to see what the issue in question is – e.g.:

<user1> Anyone had a moment to look at Issue 42 and see what's going on?
<bot> Issue 42 (It doesn't work) https://github.com/....
<user2> Oh yeah - I fixed that in 5fcbb01
<bot> Commit 5fcbb01 (Retarded logic fail.) - https://github.com/....

It’s easy to cobble together a simple bot or bot module to do this kind of stuff for whatever your in-house situation requires, if there’s nothing suitable already out there on CPAN (which, a lot of the time, there already will be).

GitHub provide post-receive hooks which can be configured to announce pushes to your IRC channel(s). Bot::BasicBot::Pluggable::GitHub::Announce can automatically announce new/updated issues, and, in future releases, also pull requests and commits/pushes.

System problems reported instantly

Use something like my Bot::BasicBot::Pluggable::Module::Nagios, and you can have system problems reported automatically to the appropriate IRC channels, for quick attention by whoever needs to deal with them. I use an applet in my GNOME system tray which alerts me to problems, but seeing them reported in detail on IRC is handy, and also strikes up conversation about it – a simple “I’m on it ^^” is enough to let others know you’re dealing with the issue and they don’t need to worry about it.

Announce tweets about your company/brand/project/interests

My Bot::BasicBot::Pluggable::Module::TwitterWatch module allows you to have the bot watch for and report new posts on Twitter about your company/project/brand/stuff of interest, and post them to your IRC channel – either for awareness, or to strike up discussion about them.

Wrap various other tools

Your IRC bot(s) can provide various other useful facilities – for instance, find the corelist command useful? Bot::BasicBot::Pluggable::Module::CoreList makes it easy for your bot to answer corelist lookups within the flow of a conversation.

<user1> Could use File::Spec - that's part of core, isn't it? 
<user2> bot: corelist File::Spec
<bot> File::Spec was first released with perl 5.00503 (released on 1999-03-28)
<user2> Yep :)
5 Comments more...

Bot::BasicBot::Pluggable::Module::Nagios released

by on Oct.15, 2011, under Geeky, Perl, Programming

I’ve just released Bot::BasicBot::Pluggable::Module::Nagios – a module for IRC bots powered by Bot::BasicBot::Pluggable which monitors one or more Nagios instances and reports problems to IRC channels.

I’ll be using this at work to have service problems reported to us on IRC for quick attention, but figured it’s something that’s likely to be of use to others elsewhere, too, so I’m releasing it.

There’s still some more features and improvements I want to make (a TODO list is included in the module POD), but it’s at a state where I consider it to be usable (it works for me).

Feedback/suggestions welcome.

It should be on a CPAN mirror near you soon, and the repo is on GitHub should you wish to submit pull requests or raise issues for bug reports/feature requests.

Leave a Comment more...

Bot::BasicBot::Pluggable::Module::GitHub released

by on Oct.06, 2011, under Perl, Programming

I’ve released a new distribution for Bot::BasicBot::Pluggable powered IRC bots, providing some useful GitHub-related functionality, named Bot::BasicBot::Pluggable::Module::GitHub.

The following modules are included – see the documentation for each for more details on how to use them.

Bot::BasicBot::Pluggable::Module::GitHub::EasyLinks

Provides quick URLs to view issues/pull requests etc when someone mentions one – for example:


<user> Go have a look at Issue 42
<bot1> Issue 42 (It doesn't work) https://github.com/....
<user> I fixed that in 5fcbb01
<bot1> Commit 5fcbb01 (Retarded logic fail.) - https://github.com/....

You can set a default project per-channel, so the above examples will look at whatever project is set as default for the channel the message was in.

You can also explicitly tell it to look at any other GitHub project:


<user> 5fcbb01 @ bigpresh/Bot-BasicBot-Pluggable-Module-GitHub
<bot1> Commit 5fcbb01 (Retarded logic fail.) - https://github.com/...

Bot::BasicBot::Pluggable::Module::GitHub::PullRequests

Monitor pull requests for GitHub projects.

Example:


<@bigpresh> !pr
< sophie> Open pull requests for sukria/Dancer : 8 pull requests open (felixdo:3, perlpilot:1, jamhed:1, dams:1, ambs:1, JTimothyKing:1)

Bot::BasicBot::Pluggable::Module::GitHub::Announce

Announces issues raised/closed for each channel’s default project.

Periodically checks on issues for each project, and reports changes,
for example:


< sophie> Issues closed : 667 (YAML::XS for Session::YAML) by jamhed : https://github.com/sukria/Dancer/issues/667

The code is on CPAN, and is available on GitHub. Contributions / bug reports / suggestions encouraged.

Leave a Comment more...

Battlefield 3 beta – my thoughts so far

by on Sep.30, 2011, under Battlefield 3, Gaming

I spent some time last night playing the Battlefield 3 beta.

First things first, overall I found it awesome, and I’m rather happy I have it on pre-order; I look forward to the full game.

Going prone is excellent, something I’d really missed in BF:BC2.

However, as could be expected from a beta, I did hit a few bugs:

  • Floor diving – in some points (notably around one of the outdoors objectives in Operation Metro), going prone can allow you to “dive through the floor” – I haven’t tried this alongside anyone else who can tell me if I become effectively invisible underneath the ground yet, but it’s clearly buggy
  • After unlocking the holo sight for the RPK-74M, in the next round I was spawning with the M27 IAR – a weapon which I have not yet unlocked. I wasn’t able to re-select the RPK-74M either. In the next round, I was back to my RPK-74M with the holo sight again.
  • Torches still seem to have their blinding effect outdoors in bright sunlight; I think it would make sense for their blinding effect to only work in dimmer indoor areas, and not outdoors (or to be very limited outdoors).
  • The Battlelog “social networking and stats” pages seem a little buggy in places (and require Javascript to be allowed from some random IP address to function; also they complain about Flash being blocked, despite me not actually seeing any unblockable Flash objects).
  • The stats also claim that I have 0 kills with grenades, but 5 kills… er, what?:
  • On the subject of grenades, it appears to be impossible to hold on to the grenade before throwing; the throw seems mostly immediate, unlike BF:BC2 where you could hold the button until you were ready to throw the grenade.
  • In one game, despite joining with a friend together, we were split up onto different teams; I would have expected the game’s matchmaking to have tried harder to locate a game with two slots available on the same team, rather than splitting us up. Battlefield is a game where teamwork is really needed, so playing with friends means you really want to be on the same team to work together.
  • Sometimes friendly soldiers can “push” you; in particular, if someone spawns on you in a close spot, you can be pushed along, sometimes out of the cover you were using

Overall, though, kick-arse game.

My somewhat poor stats

Leave a Comment more...

Solving trouble codes P0480 / P0482 on Vectra Z22SE

by on Sep.28, 2011, under Non-geeky

Quick post for the benefit of anyone Googling for advice on this topic, as most of the results I found when searching were simply lists of all the fault codes, rather than anything useful pertaining to specific advice.

My Vectra B 2.2 LS (Z22SE engine) was reporting the following fault codes:

P0480 Cooling Fan 1 Control Circuit Malfunction
P0482 Cooling Fan 3 Control Circuit Malfunction

Upon investigation, the problem turned out to be simple – a blown maxi blade fuse in the relay & fuse box in front of the battery – the one shown removed below:

Swapped out that fuse, and job done, no more warning light on the dash.

I like easy fixes :)

9 Comments more...

Battlefield 3 open beta starts 29th September

by on Sep.26, 2011, under Gaming

The Battlefield 3 open beta starts this Thursday, 29th September.

You’ll be able to play the “Rush” game mode on the Operation Metro map. The beta will end on October 10.

I’ll definitely be giving it a go, as a taster before the full title is released on October 28th.

Back in August I decided to pre-order Battlefield 3 from Amazon (currently £38.91 for the Limited Edition along with “Amazon.co.uk exclusive Specact Kit pre-order bonus”), so I’m looking forward to this one :)

I think I’ll need to fit in some time for some more BF:BC2 (and BF3 beta, once it’s out) to brush up on my skills…

One notable change in Rush gameplay from BF:BC2 reported is that the M-COM station objectives cannot be damaged any more – the only way to take them out is by arming the explosives. I would imagine that M-COM stations within destructible buildings can still be taken out by taking down the building, though. I think this is a good decision to stop people trying the old trick of strapping C4 to the UAV and going suicide-bombing, which could be very irritating on certain maps.

Another interesting reported change is that the bomb timer on the M-COM station is extended if a defender starts defusing it just before it blows – the detonation is held off until it’s defused, or until the defender is killed or stops disarming.

The game is looking pretty sweet:

If you’re undecided, grab the beta and see what you think. I find the Battlefield series better fun than the Call of Duty franchise with more tactics and teamwork, rather than simple “run and gun” play.

Leave a Comment more...

Do big cats like laser pointers?

by on Sep.09, 2011, under Humour, Videos

Normal cats go mad chasing laser pointers – do big cats?

Apparently, at least some of them do :)

1 Comment more...

WTF, Blood Donor online?

by on Sep.09, 2011, under WTF

Just went to the NHS Blood Donor online portal thingy, and saw the following little gem:

Um, what?

It’s not a "private network", it’s a fucking website, served up publicly. I think some stupid legalweasel^Hlawyer types must have insisted that that notice be present.

2 Comments more...

Battlefield 3 looks awesome… pre-order time

by on Aug.31, 2011, under Battlefield - Bad Company 2, Gaming

I really enjoy Battlefield: Bad Company 2, finding it a much better game all-round than Call of Duty, and I’ve been planning a pre-order of Battlefield 3 when it comes out, but today I saw some of the awesome gameplay videos on YouTube including this one:

It’s looking to be excellent stuff, and the new co-op play sounds interesting, too.

Amusingly, you can pre-order Battlefield 3 Special Edition on Amazon for £38.91 at the time of writing, cheaper than the “Standard Edition” at £43.56, and a shade cheaper than Play.com who want £39.81. Amazon also claim “Pre-order Battlefield 3 with us at Amazon.co.uk before 23:59 on Thursday, October 27 and you’ll receive a code to download the Specact Kit DLC – not a massive selling point, but extra stuff for free.

(If you haven’t played it yet, you can pick up Battlefield Bad Company 2 for under £15 – well worth it!)

1 Comment more...

Dancer 1.3072 released

by on Aug.23, 2011, under Dancer web framework, Perl, Programming

Version 1.30801.3072 of the Dancer Perl web framework was released today.

It was codenamed the "Precious David Precious" release after me – thanks guys :)

The changes included are:
(continue reading…)

Leave a Comment more...

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!