Author Archives: Rob Church

Lunch’n’Learns – Aspect Oriented Programming and Jon Skeet Abusing C#

Covering the last two lunch’n’learns in one post here, our January video of choice was about Aspect Oriented Programming. Put forward by one of our team in the end the general feeling about the approach was a muted and a challenge to use it was put forward. The challenge has not yet been taken up – make of that what you will!

The next lunch’n’learn we did was a C# in depth one – we had two videos lined up for this with the final choice down to a vote on the day. The team chose a Jon Skeet talk called “Abusing C# More”. As ever, Jon is very interesting and when you twist the language like this you do have to think about the internals in greater depth than you usually do. Very little of practical use in this talk however, it was great to have something a little lighter this time.

Abusing C# More – Jon Skeet from NDC Conferences on Vimeo.

Recording a Jitsi conference

Remember: recording a conversation without other people’s knowledge is illegal in the UK (and elsewhere).

There’s a decent guide to setting up streaming Jitsi with YouTube already – but as I wanted to take just the audio and post it on our internal blog there were a few extra steps required that took me a little while to put together.

  1. Download ffmpeg command line tools.
  2. Download Audacity (if you think you’ll need to do some basic editing).

There are a few tools for ripping from YouTube, I use this plug-in as it does audio straight away: YouTube Video and Audio Downloader. It needs to know where ffmpeg is installed in the setting panel.

You will need to wait a few hours before you can download the audio – the video can be private, but it seems like YouTube need some time to process it first.

At this point you can use the raw file you’ve downloaded, but if you need to edit it at all you can use Audacity. First use ffmpeg to convert to a WAV file.

ffmpeg -i "downloaded audio file.m4a" newfilename.wav

Then open that in Audacity and make any changes you want to (for e.g. trimming beginning and ending of meeting). Export audio and you can save it as another WAV file. ffmpeg can then convert to whatever format you decide to use.

ffmpeg -i edited.wav finished.m4a

I actually convert to a mono recording in Audacity as well then you can make the target file smaller using ffmpeg commands like:

ffmpeg -i edited.wav -b:a 64k finished.m4a

There are good instructions for encoding as MP3 and AAC (which is the .m4a codec) on the ffmpeg website.

Canvassing – a packing list

Last weekend I went canvassing for the first time – here’s are some good things to bring:

  • Charged battery pack with multiple cables (everyone’s phone was dead!)
  • Light waterproof / umbrella.
  • Blu-tack for posters / give out with posters.
  • Bottle of water.
  • Backpack for above and extra leaflets.
  • Comfortable shoes

Azure Service Bus lunch’n’learn

This is more for archival purposes really – the talk is quite out of date as it covers native queue usage as HTTP whereas it’s probably easiest just to use a library like MassTransit. It’s also really, really long. However if you skip through the sections to some of the more advanced Service Bus features it could be useful – especially if you’re new to message-based architectures.

Lunch’n’Learn – async/await

We’ve recently started doing more work with the async/await keywords (a side-effect of using MassTransit) and we thought it was a good idea to go through the basics again. Here’s the talk I found which is very easy to follow, full of useful information and well-recorded (if a little dry) – it focuses on usage within ASP.net but that’s useful for most of us.

Additional bonus video about whether you should always be using an O/RMs (9 minutes, funny): https://vimeo.com/28885655

Productivity lunch’n’learn

Here’s a great Scott Hanselman talk about productivity – he’s been giving it for a while so there are a lot of versions out there, however this is probably a good balance between length / audience interaction and sound quality.

It’s not directly development related but was received really well by the team here.