Wednesday 24 December 2008

AllDay DJ - Some Progress

[caption id="attachment_112" align="aligncenter" width="564" caption="A screenshot of the in-development playout system."]A screenshot of the in-development playout system.[/caption]

As some of you may have cottoned on to, there are two main strands to
AllDay DJ. The first being version 2, the current release. This has a
few bugs and version 2.3 is almost ready for release (it should be
available in the next few day). It brings a bug fix for weather VTs,
"drag and drop" player, a fully revamped database manager (it now works
in much the same way as the search system), move to prepared statements
(hopefully more secure, etc.), Winamp DSP support.

 

Quite a lot for a minor release! But all should be available soon (I just need to package it up correctly).

There is also progess on AllDay DJ 3 (the planned successor to AllDay DJ 2). This version will see a nicer database backend (it's based on NHibernate and thus can sit on top of a number of DBMS systems), proper multi-threading (slightly more overhead but properly makes use of multi-core systems), cleaner GUI, users (and associated audio walls), and hopefully much more.

Just to temp you, I've attached a screenshot of the development version of AllDay DJ 3 (click on it to see the full version). Though I would stress that this software is well away from release at the moment.

Wednesday 10 December 2008

Playout Systems on Linux

Look in most radio studios, you'll find some sort of playout system. It makes sense in this day in age - low cost overnight, voice tracking, less errors (usually). However, you will find most systems running on the Windows operating system.

There is a good reason for this: why force change. Windows isn't exactly unstable when doing this sort of job. Also, take it from me, developing audio apps to work cross-os is a pain the the ass. This is especially when you want to layer tracks or use more than one sound card.

STAR is in a bit of an unusual position for a radio station. We operate Linux boxes (namely Debian) with no copy of Windows in sight. So, with most playout systems on Windows, what do we make use of?

Well, until recently, it's been an in-house botch job. This has taught us one lesson, don't trust Javasound to do the job.

With Java written off, we have a number of options: Campcaster, Rivendell, Digiplay and a Windows system running on Wine.

Starting with Campcaster. This was the first option we tried with STAR but it proved to have a few too many issues for us. For one, it doesn't log tracks played in live assist mode. Oops, bit of a show stopper there for an online radio station. Secondly, the configuration options are a little too exposed. You don't want people tinkering with settings on a radio station!

Rivendell is the other big Linux option. It's certainly aimed at the pro end of the market supporting a full scheduler and powerful playout system. Possibly even a little too much for us. It was actually decided against for STAR for two reasons: the MySQL requirement (we use PostgreSQL and according to the ITS liason will never see MySQL on the server) and the work required to make the scheduler tick. We're a volunteer organisation with a high tunover (students only stay for 4 years) so any system requiring a lot of work is not an option.

Wine is the Windows compatability system for Linux. It brings the ability to run Windows programs to the Linux desktop. Great, you may think, for letting us use the playout systems on our computers. Not quite. I could only find two playout systems that worked on Wine: StationPlaylist and mAirList. Both seemed to work OK but the cost factor (for StationPlaylist) and stability (we're relying on a compatability layer here) wrote off this option.

Now for the last on the list: Digiplay. This is Warwick University's in house job (not written in Java though). It has the benefits of being simple to use and sporting a web interface (I'm not sure of the merits of this but oh well). However, there are a few issues. Sue (the automation part) seems to simply be random select at the moment and there is no mass importer (apparently RAW just rip off of CDs). The last issue could be fixed by adapting our in-house import script.

Well, the working Linux playout system seems not to exist, well not for a small vountary station. Every option seems to have some sort of serious issue, whether legal (Campcaster), complexity (Rivendell), missing features (Digiplay) or technical (Wine).

I don't really see the commercial software developers really taking Linux seriously. Let's be honest, it's not really a big issue for most in this market. However, we need to choose a system. So what did we choose:

Digiplay.

Ah well, we'd better get cracking on the scripts and fixes to make it do what we need.

EDIT: Clarified the Digiplay and Wine issues. We didn't run Digiplay on Wine.

Saturday 6 December 2008

AllDay DJ to get Winamp DSP Support

The audio library AllDay DJ is built on top of has support for the Winamp DSP plug-ins. In fact a number of other systems built on the same library take advantage of this.

Basic support has been added to the system and I will be testing it on-air soon. The benefit to the end user is a wider choice of audio processing options.

I'm currently testing it with "Tomass Limiter" and it sounds cracking. Though there is a slight issue on the segues that I hope to clear up quickly.

If it works with the oddcast DSP, that could provide streaming support with minimal effort!

With a number of bug fixes, minor changes (drag and drop, cue in player), customers will be offered the option to upgrade to version 2.3 for free upon release.

Tuesday 25 November 2008

B+ Trees - A Whole New World of Pain

One of the practical exercises that has been set for my course is to implement a B+ tree in Java. Sounds fairly easy right? Just implement a tree and make a few changes for search and insert/delete.

Not quite, I'm currently on my 3rd attempt to get a working tree. This time I'm successful (though delete is still to be implemented). The difference - I've moved away from recursive techniques for insertion to making use of a stack I can access programatically. This means as the child nodes are split, I can update up the tree making further splits as required. Once the stack is empty and if a split is still required, I can then simply create a new root.

Yay! Now to get on with the rest of it.

Wednesday 19 November 2008

Interviews and Playout Systems

Yesterday saw me taking a 700 mile round trip for a job interview, all in one day. To say I was a little tired by the end of it is a bit of an understatement but it was far better than my previous trip, overnight, by train (you can imagine the pain, now multiply it a few times).

On the good news front, STAR's new playout system now has a music library. This means the music team can be trained for the system to go fully live and take over the current one.

It'll be a bit of a see how it goes on this one. We've now tried a few Linux based playout systems and if this is hopeless, we'll be paying out for a Windows licence and a mainstream playout system.

Talking of Windows based systems. Work on AllDay DJ 3 is well under way. I've started afresh, using NHibernate for the database stuff (it'll now work on a number of DBMS without screwing about AND I don't need to write all the boilerplate SQL) but still the same old for the audio library.

Progress wise, I've got the database part working, a track importer operational and the main player core operational, though without overlap / VT or soundcard playthrough support (think IRN if you're not seeing a reason to support this). The plan for supporting these is to edit the player object to take different special file names (e.g. "#PLAYTHROUGH 30" to indicate 30 seconds of playing through a soundcard input).

Friday 14 November 2008

Change Of Job

That's it, I'm now mainly self employed. I am to start working as a freelance radio presenter [available for work in Fife and surrounding area :)] with a gig presenting Saturday Breakfast on Perth FM (in Perth).

Should be fun and certainly an interesting change from retail.

Sunday 9 November 2008

First Show on Commercial Radio

Well, I suppose I'd better tell you how it went. Not too badly by the sounds of it. I will tell you it's a rather strange experience getting up at 5am and enjoying it. :)

I even had my father taking a listen (the last time he did that, I'd just started on hospital radio). He was rather blown away by the whole thing.

However, it will remain to be seen if I get the position perminantly. If I do, I've got a cracking embarassing story to share with you then.

Friday 7 November 2008

First Steps

Yesterday, I got a call rather out of the blue from Perth FM. The reason for the call: asking if I would do an on-air trial on Saturday morning.

My answer, of course was yes. So this Saturday (tomorrow) I'll be presenting Breakfast between 7am and 11am. I can only hope it all goes smoothly tomorrow.

Though, I was at the studio this afternoon. Mainly to get keys and obtain training on the equipment. It was also a great guide to how difficult it is to find the studio. Ah well, I know where it is now.

Anyhow, if you want to listen, it's 106.6FM in Perth or online at http://www.perthfm.co.uk/

Monday 3 November 2008

ResNet, FATMAN and JA.NET - A Romantic Tale

Trust me to get the title of Ian's talk wrong, eh. Well that's the correct title. And as promised I am linking to the video.

To see the embeded video, click on the read more link.

Friday 31 October 2008

WiredSoc Presents...

... Resnet, FATMAN and JANET - (A Love Story). Or I think that's what the title of last night's talk was. Thankfully, the talk itself was more memorable than the title. There was certainly a fair amount I learned about the whole setup and history of St. Andrews connection to the world. That combined with a few pieces of kit being shown off at the end kept the attention of the audience (ooh... look at the shiny!).

A video of it has been recorded and if it makes an appearance online, I'll be sure to post.

Oh, and the talk was followed by an EGM. We now have the same person as last year looking after the website and I get a vote on the executive committee. :)

Tuesday 28 October 2008

Wired Nosedives Again

The other day, wired crashed on us again. This time, no warning, some services still running. Rather odd. So I get called over to take a look at the physical box. Jaunty is there with the screen out and wired taking a rather serious hexdump:

Click here for the pic of the hexdump.

Of course, the keyboard is not responding so we cannot scroll up to get any other messages. All we could do was reboot and investigate based on this photo and the logs (which were pretty bear).

Not good and we still can't pinpoint the issue. However, today wired went down again. This time the more regular cannot access services type of going down.

However, things were not quite so straight forward. Both the physical and virtual machine were still running! It turns out that the virtual network interfaces had been dropped and came back after a networking restart.

I really think with all these issues, the migration to the other machine can only make things better.

Monday 27 October 2008

Listeners Revisited

As I stated in a previous entry, STAR's listener figures were never known for being great. Usually only one or two people through the day maybe peaking at around 5-10 in the evening before getting nobody overnight.

However, we've just have just gone back on air. Though this time things changed a little:

STAR_listeners_relaunch.png

The peak listener figures have shot up to what is possibly a STAR high. 47 simultaneous listeners - wow. Although things did die off towards the end of the week, it's still fairly impressive.

It should be noted that when reading the graph, 1 should be removed from any number to account for the union bar machine. However, that does still mean no overnight listeners.

Wednesday 22 October 2008

Changing Services

We're having a bit of a changed on the wired servers. We've just picked up another physical box, allowing us to segregate the services a bit better (we've not had much luck with virtualisation).

The current plan is to move the services in the wired VM onto the new physical box. This has been completed but is not yet in use as we're testing it (OMG wired testing something!?!). This new box is also running a VM that will only provide shell services. The benefit being that if the shell system is compromised (e.g. fork bomb, root exploit) the rest of our services should remain up.

But why the move from smoked to the new box? Well, the plan is to used smoked for storage services only (e.g. databases, nfs). So we have a split between services and data.

The migration will NOT be completed until we have tested the new setup. This will involve poking the committee to use the new services. And in Kieran's words "don't just log in, type ls and exit".

We did have a bit of fun with cron jobs running across two machines. Due to one updating the pid file then the other, we ended up with a huge number of GLaDOS instances on the IRC server.

Wednesday 8 October 2008

Virtually Broken

The other day saw wired's VM just decide it didn't like executing anything useful and just eat CPU (we're talking much more than usual). So, I kill the server (you can't use it) and attempt to restart it.

Unfortunately this fails. Not because somebody screwed up with tar and root like last time but because the kernel module decided to unload itself. This was actually nothing to do with the crash but did give some rather concerning error messages.

If this is a one off, we have no problems but if it happens again, we should probably consider other options to KVM. We've tried Xen which seemed to "pause" execution and resume it after an arbritary period of time.  As it didn't crash out, we had no error logs and could find no similar situations on the internet. So that option is also out.

VMWare has been toured as an option as well as OpenVZ. As we only have on VM, we could actually just run wired on the bear metal. The last option seeming the most stable as the host OS has not actually crashed out yet.

Wednesday 1 October 2008

Numbers, Numbers, Numbers

[caption id="attachment_109" align="aligncenter" width="700" caption="One week of listener figures."]One week of listener figures.[/caption]

It's very well known that STAR does not attract huge numbers of listeners. In fact, you'll be hard pressed to find a student radio station (online only) that does. In previous years, our listener numbers have been derived from parsing the Icecast logs with something along the lines of awstats (in fact it was usually awstats). This creates some rather high listener figures (up to x hundred listening at once) due to counting each "hit" in the log as a listener.

 

This year, we made use of MRTG polling the Icecast server. This provides us with rolling statistics and some rather pretty pictures. Below is the graph for Fresher's week 2008:




Not bad for a one week stint. We peaked about 12 listeners.and averaged about 1 through the night. So adjusting for the Union bar computer, that's 11 during live periods and nobody through the night. Let's hope these start to go up in the future.

Thursday 25 September 2008

New Hardware

With my daily commute to St. Andrews by bus, I decided to purchase myself a cheep laptop to do small amounts of work on the move (always a good thing close to deadlines).

I decided to go for an Advent unit sporting a dual core processor and 1Gb RAM. Pre-loaded with Vista of course. So the first thing I do is attempt to install Ubuntu (dual boot).

Ubuntu doesn't even boot. Turns out I've got to disable ACPI support in the boot options. So no battery monitoring (though the machine is nice enough to beep and flash at you at low battery) and the system runs at full pelt all the time.

Not really major issues. The one thing I spent ages getting to work was wireless support. The machine uses a Realtek RTL8189 chip. Not supported by default (though will be in the next version of Ubuntu!) and requiring the download of a leaked and patched driver it was not what I would class as fun. Also, I couldn't just use the Windows drivers as they don't work with ndiswrapper.

Ah well, it's working on my home network just now (WEP for various reasons). The real test will be Eduroam (WPA2-Enterprise) with much mucking about with wpa_supplicant.

Though, while on the topic of Eduroam, I'm rather thankful that an access point has now been installed in the top floor of the union. Very useful when I'm there all week.

UPDATE:

I've managed to get rid of the crash on the "processor device is not present" message. Using nohz=off in the boot options allows the boot to continue and I get a battery meter!

Wednesday 24 September 2008

Live and On-Air

STAR is now well into the one week broadcast over Orientation week. The idea of this broadcast being to entice people to join STAR (thus the press tour as well - we're even going to Albany Park).

However, launch has not been without it's problems. For example, our streaming machine (studio6) just seemed to "die" the night before. So we get to the studio to find the machine has had a hardware failure (probably disk controller). Not good 1hr to launch! Kieran and myself got one of our little used machines (studio3) setup to handle streaming. The saviour that is NFS home directories saved us having to redo the settings file.

Also, we are now operating with new microphones in the studio. We're still trying to get the compressor settings right on that one. We've either got people *way* too loud (distortion) or people speaking too quietly, which keeps cutting out the mic (we've got a lower limit set to eliminate background noise). My plan is to go fix that later today.

On a plus side, Kieran has setup MRTG to give us accurate listener figures and pretty graphs. I'll probably post those after the broadcast has finished. So, as the DJs say - "stay tuned for that one".

Oh, and just before I forget. There are rumours that STAR will be attending the Christmas lights switch-on in St. Andrews. This should be an interesting event. And as ever, we've got STAR's music festival thingy to come as well.

Thursday 18 September 2008

Studio Nearly Read To Go LIVE

Kieran (our ITS contact / starfm server admin) and myself have spent a fair amount of today sorting out the STAR studio in order to go on air on Monday. We've made a bit of a major change to the studio in that we no loger span two rooms. This works out much better for those on-air with less possibility of interruption.

Secondly, we've installed the new microphones and stands. We're now actually using broadcast mics and angelpoise stands. Less noise and better quailty than what we used to have.

Thirdly, we're reassigning some of the machines. The current music server is to loose this service to the playout system locally. However this change will NOT be made until after the Orientation broadcast. What will change is this machine will be used for web browsing / e-mail. That is what I will be spending tomorrow sorting out.

Ah well, after all this effort, we should sound much better.

Oh, I might actually take some pics for you lonely anoraks when I'm their tomorrow.

Tuesday 16 September 2008

Technical Blunders for the Win!

Sunday saw me starting my new job as out of hours staff for one of the UK's major electrical retailers. It's not a bad job really and there's no real thinking to it. However, I just received an email today from the recruitment team stating:

"I regret to inform you that we won't be progressing your application any further on this occasion."

WTF? I've just been employed and get told I will not be getting employed. Go figure!

Friday 12 September 2008

We Go Back A Step

It's been decided that STAR will be making use of the old website over Orientation Week (the official name for freshers week). So it's a lot of work down the pan for now, but I've pulled the source out of version control to find... blatant opportunities for SQL injection. There were a lot of pages with code similar to:

$id = $_GET['id'];
$sql = "SELECT * FROM table WHERE id = " . $id;

Not wanting to be the one cleaning up the database after somebody has attacked I've changed these to use parameterized statements.

I've also taken the opportunity to remove some hard-coded database values. This is in relation to the committee page. In the old version, the position names are in an array and a "printperson" type method is called for each position. I've edited this to make one call the the
"printperson" method that displays all the positions. This way, future edits need only be made to the database.

In other STAR software news, the playout system seems a bit more stable. However, the system will just stop making sound after a random period of time. This does not seem connected to the playout system as it reports as still playing (the javasound calls are still being made and reporting successful) and restarting the system doesn't clear the error... weird.

Anyway, I've got to go and tell people about our busted speaker, missing headphones and organize getting some holes drilled.

Wednesday 10 September 2008

Power Goes Out... So Does wired

So, I come to St. Andrews to sort a few things out only to find a power cut when I turn up. Hmm... puts a bit of a dampener on things. Anyway, power comes back on, wired remains offline. Turns out there is a number of issues causing boot to fail (on the VM not the host). After much work from Kieran it is operational again let's hope it stays that way.

Tuesday 9 September 2008

Getting Ready To Go LIVE

Only a few weeks now until STAR goes live. That means things have kicked off a bit in pace. We've got a number of jobs to do including prepping the studio to go on-air (this includes installing some new kit).

However, we have run into a few problems. Currently the Media Suite (where STAR is located) has a tiled floor. This means every chair movement can be heard on air - not good. We've asked Estates about some carpet to put in the studio. Turns out it's not the first time STAR has asked and the answer is NO due to the union' s stance. I guess we have to play nice on this one and put up with tiled flooring for now.

Wednesday 3 September 2008

Changes Across The Board

We've had a few teething problems with out Xen based server system. We kept running into an issue where the server "pauses" for an indefinite period of time then resumes as if nothing had happened. As the system never actually crashed, there was no information in any of the logs.

Upgrading the Xen version did not fix the problem. So, we've simplified things a bit. This allows us to get a server up and providing services.

We no longer use Xen for virtualisation (though we may use it in a VM in the future). We now use KVM / Qemu. The plan is to have one VM as the main (live) system. This is backed up using LVM snapshots. The main VM "talks" to the host system holding all of the data.

Eventually further VMs will be created including Dev (testing, etc) and *possibly* a VM running Xen. Why? Well, it allows us to create more VMs in a controlled environment for users, etc.

Anyhow, service should be resumed as normal now.

Sunday 31 August 2008

Online All The Time... Hopefully!

We've had a few teething problems with out Xen based server system. We kept running into an issue where the server "pauses" for an indefinite period of time then resumes as if nothing had happened. As the system never actually crashed, there was no information in any of the logs.

Upgrading the Xen version did not fix the problem. So, we've simplified things a bit. This allows us to get a server up and providing services.

We no longer use Xen for virtualisation (though we may use it in a VM in the future). We now use KVM / Qemu. The plan is to have one VM as the main (live) system. This is backed up using LVM snapshots. The main VM "talks" to the host system holding all of the data.

Eventually further VMs will be created including Dev (testing, etc) and *possibly* a VM running Xen. Why? Well, it allows us to create more VMs in a controlled environment for users, etc.

Monday 18 August 2008

Documentation, Documentation, Documentation

After much mumbling from other members of WiredSoc, it has been decided to create a set of detailed documentation. This project has been started by myself but I'm not very far in. A lot of the detail is missing, but it's a start and not bad for two hours.

You can read the documentation here. Only wiredsoc members can edit the content.

Wednesday 13 August 2008

Busy Times Here

Thursday saw the physical installation of the new wired server. After a lot of huffing and puffing (I tell you that thing was *heavy*), it's all wired in and networked.

A few points about the new server. It's far more powerful than the current/old server. Also, we're making use of Xen virtualisation. There are many arguments for this approach, including the ability to pull a virtual machine if something goes bad. There's also the flip side - more complicated administration.

A decision has been made to make the transition between the old and new server progressive. So, we launch the new service one at a time. This should reduce the problems we run into and allows the services to continue to be used until the new ones are ready.

One example is the database migration. We run both a mysql and a postgresql server. So far only the mysql server has been migrated. The process was simple, get mysql to dump everything (that includes using the --all-databases flag) and them import it into the new server. Once this was completed, we took the old server offline and updated the hosts file on our server. This was done as the hosts file was ponting the aliases to the old server not the new server as our DNS server is. Once the entries were removed, we fell back on the DNS server and the new server was providing the data.

This kept most things working except for those pointing to the old server directly. These have now mostly been updated and are working again.

Wired is not the only server I have been bringing online. I have also been working on my own family server (steelehost.dyndns.org). This is acting as a web, file, backup and proxy server. The proxy part may sound a bit odd for a family but it is running squid and ad removal. No annoying adverts! However, the downside is the ad removal can be a little overzelous. Some corporate websites have the banners replaced with "this ad has been zapped". I'll post a screenshot soon on that one.

The plan is to eventually get subversion on the server and use it for various personal software projects.

Tuesday 5 August 2008

Say Cheese

So, I'm minding my own business, driving to the supermarket when what should I come across but Google taking photos for their "streetview" thing.


 


I don't really have a problem with it (they would only get a shot of my car anyway) but I found it rather odd where they were taking photos. Now, if you know Dunfermline, you will know it has some nice historical buildings in the centre of town. Google were taking photos of the new houses on the outskirts of town.


 


Anyway, if I come across the photos, I'll be sure to post a link.

Friday 1 August 2008

Website and Monitors

I've done it. I've gone and gotten STAR a "new" website. I use "new" in quotes as a lot of the old website is still in use. What we've acutally done installed as well-known CMS and made it act as an interface to our old code.


 


Not the best of ideas, but it works. We get the benefits of the flexability of the CMS combined wiith the bespoke features unique to STAR.


 


I would post a link but I've to keep it hidden until we "launch".


However, that is not the end of this post. I mentioned about "monitors" in the title. This relates to my latest software endevour. I'm currently putting together a stream monitoring system for STAR that logs listener number over time. It's currently a fairly simple set of scripts that makes use of RRDTool. More on that when it is completed.

Wednesday 30 July 2008

Problem Solved

I finally got the track length application working. Turns out it runs fine removing the database calls from the C application. These are replaced with a wrapper script written in Python (the first time I've used Python in such a way). The script makes all the database calls then uses fork-exec to run the length application. It seems to be working fine and is currently running in a screen session on one of STAR's machines.

You can view the Python script here. I will get onto packaging the rest of the source for your viewing some point in the near future.

EDIT: Full source code can be obtained here. Also, the application seems to use 100% CPU. I might want to put a sleep call in somewhere.

Monday 28 July 2008

Dropping Down A Level

Most of the programming discussed in this blog has been in managed languages (e.g. VB.NET, C#) where almost everything is done for you. Garbage collection, memory management. In most situations, it's great to have it all done for you and concentrating on the programming. However, this weekend, I decided to program in a bit of C.

The application in question is a small command line application that calculates accurite track lengths. Making use of the FMOD Ex API, it plays a track, constantly checking the levels. From this the actual end point is calculated. The result is no dead air on STAR.

It's not been without its problems though. I've completed the audio part of the application and most of the database side of things. However, I have run into the error "Could not connect to database. Reason: could not create socket: Too many open files" when trying to connect to the database. Annoying, and surprisingly the suggested fixes on google are no help.

So, I'm planning to test it on one of the STAR machines. Problem being I'll need to install the FMOD library on the machine. Thankfully not really an issue as it is supplied compiled. The installer just copies files over. So we should be ok without having make on the machines to run through the script.

I've also been informed I should be packaging the application. Specifically in a .deb package as we are running debian. Not really a priority in my book (I'm more interested in getting the application working and running) but would be nice. Though I should point out that the debian packaging documentation was not the easiest to find. Once there, it seems easy enough.

Friday 25 July 2008

Best Intentions

Working in customer services, my job consists of handling complaints from time to time. Some complaints are valid, need investigation and fixed. Others not so much.

There also exists a sub category of valid complaints. These are valid issues that need taken up and investigated, but are reported for the wrong reasons. Take the example of the allegation of staff at the fish counter not using gloves. That is something that will be taken up with the branch management. However, it was reported not because of *just* cross contamination (the reason I would have it investigated) but because this cross contamination may put vegetarians off eating the fish!!! I'm a bit lost by that one. Why would a vegetarian be eating fish (a meat)?

There are also the bizarre. I was reading on the internal notice boards system that a customer had complained about the refurbishment at one of the small, town centre stores. You would think it would be because of noise, disruption, works, etc. You'd be wrong. Turns out the food was being moved to different locations during the works and the customer insisted we hand out maps! This is for a store with about 3 isles in it.

And finally, a story was printed in the local press about hospital staff wearing uniforms on public transport. Not something they should really be doing. The paper quoted a person taking about contamination from the "unwashed masses". Bit full of yourself, eh? No wonder you asked to remain anonymous.

Sunday 20 July 2008

Get Voting

Now fully written and integrated into the website is STAR's track voting system. This originally spawned from the idea Phil had to have the playlists selected by user vote automatically. Not an entirely brilliant idea for a station carrying on average 3 listeners. However, the idea of voting for tracks was taken on board.

I decided to go ahead with allowing the user to vote on the last 5 played tracks. This currently includes jingles, promos and sweepers until I get the exceptions setup. However, the listeners are only choosing from tracks they have just heard. So, if it sounded rubbish, you vote it as rubbish.

The results are held displayed on the staff portal to all registered users. This could potentially allow presenters to integrate the voting into their shows.

There are a few restrictions in the system. You can only vote for each track a maximum of once per day and a vote will only hold weight for 1 week (this may be adjusted in the future). As the automatic logging system can only logs tracks on the playout system, only music played from the computer can be played. Though it should be noted that any playlisted music would have to be on the system anyway!

So, if you're eager to get voting, you'll have to wait until we launch again in the autumn. But when we do, you can vote by clicking on the "listen now" button then "click here" on the popup. Just follow the onscreen messages. (The overly eager can just click here).

Wednesday 16 July 2008

Wizard!

No, I'm not talking about the band and a certain Christmas song. I'm actually on about AllDay DJ.

After sending a few copies of the latest beta in the general direction of people, I was informed that the first steps were not obvious. So, to make them a little easier, I've put together a simple wizard. It talks you through importing tracks in various formats as well as locating your database in the first place!

Hopefully the process of setting up AllDay DJ should now be easier and a little more colourful.

ss_wizard.JPG

Saturday 12 July 2008

CDs - Playing, Ripping and XML?!?

A lot can happen in a weekend. But how about a complete CD ripper for a playout system? Not likely you'd think, but I managed to get a working CD ripper.

Ok, it's probably not the most robust of systems but it works quite nicely, even with CDs you make yourself! Though, most of the work was done for me. It actually makes use of the CD module from the BASS Audio Library. This provided me with a stream of decoded audio to throw in the general direction of oggenc2.

But there are some clever bits. For example, the track identification. I made use of the library to obtain the ISRC codes for the tracks and the identifying code to send to the Musicbrainz server.

But I mentioned XML, where does it fit in. Simple - Musicbrainz. Compared to the FreeDB system I though it would be overkill but it works quite nicely. There's also less screwing about with creating my own parser. In fact, the XmlTextReader class seemed happy enough to do the HTTP requests on my behalf.

For a CD, the tracks are return as a set of nodes, containing the title and artist in child nodes. This makes it simple to obtain the data I needed. There's actually very little code from myself processing the XML.

This makes it sound simple, right? Well, I did screw it up a bit. For a while I had an elusive bug that caused a stuttering effect in the ogg files. Turned out I had just used a wrong flag on oggenc. We all make silly mistakes from time to time... :)

Wednesday 9 July 2008

VB.NET Niceties

It's not often you hear about VB.NET in a good light. That's mainly for the reason it's a mainly misused tool. It works well for prototyping but not so brilliantly as a RAD tool. However, there are projects I have had to make use of it in and suprisingly there are some good bits.


 


Drag And Drop Made Easy


 


In VB6 (yes, I had to suffer it at school), doing anything remotely interesting required an obtuse call to some DLL. There was also a lot of hoping an praying over file version numbers as well. This made me think it would be excedingly difficult to do drag and drop in VB.NET. Fortunately, I was wrong.


 


To start, you will need both controls to have drag and drop enabled. You'll find the option in the properties box.


 


Secondly, you will need two methods. One for the "from" control. This example is from AllDay DJ's drag and drop player:


 


Private Sub lvResults_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles lvResults.MouseDown

            lvResults.HitTest(e.X, e.Y).Item.Selected = True
            lvResults.DoDragDrop(Me.selected_item, DragDropEffects.Copy)

End Sub


 


The HitTest call is only there to the item in the listview is selected on mouse down, before doing the drag and drop. You will need to replace Me.selected_item with the object you wish to send to the other control. You'll also need a receiver:


 


Private Sub dndPlayerDragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles btnBackDND.DragEnter...

        ' Check the source

        If (e.Data.GetDataPresent("AllDayDJ2.AudioItem")) Then
            e.Effect = DragDropEffects.Copy
        Else
            e.Effect = DragDropEffects.None
        End If

End Sub


 


In the above code, the object is type checked then a "copy" is allowed. Note that you could also use move or some other option but they must match.


 


Finally, you will need a third method to perform any action after the drop. Here we simply add the item to the playlist:


 


Private Sub dndPlayerDragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles btnBackDND.DragDrop...

        ' Load the item

        Dim item As AudioItem = DirectCast(e.Data.GetData("AllDayDJ2.AudioItem"), AudioItem)
        item = New AudioItem(item.getTrackId.ToString, item.getDbTable, True)
        Me.loadDNDPlayer(item)

End Sub



Here we simply cast the object (we have already type checked) then use it. The important line in this block of code is the first one. The others simply make a clean copy of an the item dragged over and load it into the player.

 


Feel free to use these examples. It's not too hard to find other examples. Just be sure not to use the AllDayDJ2 namespace for your own classes!


 


Documentation


 


 If you look at the C# examples in previous entries, you'll find comments starting with 3 slashes. These act kind of like the double star (*) comment in Java (aka JavaDocs).


 


However, based on my experience with VB6, I did not expect such a thing from VB.NET. Turns out I was wrong. Just start the comment with 3 apostrophes ('). From there, the Visual Studio IDE will auto-complete a comment section. It's then a matter of filling in the blanks.


 


The up-shot to this over normal comments is that proper documentation can be generated in a similar stye to JavaDocs. Also, just like in Netbeans and Eclipse, the IDE will display the documentation info in a tooltip. Very useful.


The down side. Redocumenting AllDay DJ 2.

Saturday 5 July 2008

When Local Gets National

Call your local supermarket. Go on, I dare you. If it's a national chain, likely the phone will never be answered or somebody from another part of the country will answer. Sounds a bit odd? Not really.

My job currently involves answering phones on behalf of local stores. So if you call the Poole branch, a guy in Scotland may answer.

Sounds a bit daft really, until you think about it. Personal experience tells me retail outlets will rarely answer their own phones. Usually because most calls are pointless. Yeah, most calls are checking if we have a specific item in stock.

Ok... I'll check it for you. But really, did you need to call to check we had butter in stock? Get real, get over it and make the trip next time. I can see the point for big items (e.g. a BBQ set) but not for a loaf of bread.

This will probably give away who I work for but they are currently running an offer on wine. 25% off when you buy X amount. As I said before, I'll check if an item is in stock. However, I am not getting a small city centre store to keep their entire stock of a particular wine back for you. Remember, other people buy wine as well. Anyway, most of the smaller stores have "bulk buy" policies limiting you to 6 bottles, so you can't get 25. (WTF do you do with 25 bottles between 2 people anyway?).


Ok, I'll admit some issues will require me to speak to the store on your behalf (if I can get a hold of them that is...). For example, lost property. However, some issues can easily be handled by the call centre.

Take the example of being overcharged. Now, you certainly will not get any money back over the phone. So when I tell you that you will need to re-visit the store to get the money back, please don't argue that you need to speak to the store. I'll put you through but it will not get you anywhere.

Bad calls are part of the fun of the job. However, there are a staggering number of people who will refuse to speak to me and demand a direct number to the store. Unfortunately, you're out of luck there. Not only the 0845... numbers but the 01... and 02... numbers now get redirected to the call centre. We can then transfer you to an internal line but you cannot skip us.

Surprisingly, it's not only customers complaining about that one. Staff have had a good moan to me about it too.

Though the classic has to be job vacancy enquiries. You actually have to physically go to the store to check vacancies. Get over it, you will need to do that when you work there. I did it with previous retail jobs, and you will need to now. So when I tell you this, please don't get all huffy and demand personnel on the phone (some sneaky ones try it without mentioning they are enquiring about vacancies). I'm not allowed to and probably won't even try for you.

Thankfully, I haven't yet had too many issues with "you're not local". Though I had one guy with the cheek to say "I can't understand a word you're saying". All I said was "...<my employer> customer services, steelegbr speaking...". Not too many people happy with the Scottish accent. It also gets a few annoyed that Poole store is not answering, even though I can sort out most issues without involving them!

But with all these issues, is it worth it? Well it means the phones actually get answered and most issues never actually reach the store (most of them don't really need to). It also means we can look into stuff on your behalf and solve most problems within about 30 seconds.

Also, having just done a week of solid overtime in this call queue, most calls are not this bad. Most go well enough.

Though I have found another disadvantage to doing solid overtime. Working my way through the wired inbox after a week of not using it. A couple of hundred automated messages and almost 200 spam messages. It hurt working my way through them.

Sunday 29 June 2008

Live Across The UK

Network programming. Personally, I have nothing against it. Without it we would not get a Top 40 show and it's sometimes good to hear something a bit different on the radio. However, if you're going to do it, either make it really obvious (e.g. "across the UK, this is Jimmy's show!") or integrate with the local station properly.

Take for example one station I listened to in my local area. I will not name and shame however there were a few obvious give-aways that it was not a local program.

Now, the presenter was not saying the station name, only backtiming to a locally played jingle. Fair enough, we can cope with that. However, not giving any phone number out because it's probably different was a bit taxing. "Call us on the usual number on get onto the website...". I hope people can remember it.

But that's not an issue. It's expected with networked programming. The glaring mistake was the presenter promising us another program up next. The catch, the local station doesn't carry the program. Hmm... at least try to keep up the appearance of being local.

Thursday 26 June 2008

.NET and MySQL

I've done a fair bit of work on the database interface for AllDay DJ 3. One of the decisions taken very early in the design process was to make the program able to operate over a number of database back ends.

To allow for this, I've developed a standard base class that has all of the calls to the Idb... interfaces .These are generic, no mater the database connection used in a .NET program.

In a bit of a strange move and allowing for the different SQL syntaxes, I store the commands in a map that is looked up by the generic class, but loaded by the database specific class. This combined with prepared statements and the factory pattern allows for adding new database back ends easily.

Talking about prepared statements. I had to to a bit of digging around to find out how to do it in C# with a generic interface. Unfortunately, it's not as nice as the MSSQL specific calls. So, I've thrown together a method for adding a parameter to an IDbCommand:

        /// <summary>
        /// Creates and assigns a parameter.
        /// </summary>
        /// <param name="command">The command to add the parameter to.</param>
        /// <param name="param_name">The name of the parameter. E.g. "@ID"</param>
        /// <param name="type">The type the parameter accepted. E.g. string, int</param>
        /// <param name="value">The value to enter into the parameter</param>

        private void assignParameter(IDbCommand command, String param_name, DbType type, Object value)
        {

            IDbDataParameter param = command.CreateParameter();
            param.ParameterName = param_name;
            param.DbType = type;
            param.Value = value;
            command.Parameters.Add(param);

        }


Not bad, eh? You can have it for free.

Now, so far I've talked about generic database access but have MySQL in the title. Why?

I've been making use of the ByteFX library. Using it with .NET 3 has proven a bit of an issue. For one, you have to use the OLD_PASSWORD() call when creating users for the ByteFX library on the latest MySQL builds. So you may want to create a .NET only user.

Secondly, the ByteFX MySQL objects don't directly map to the MSSQL calls. Thus the rather generic interfaces. Still feeling generous at the moment, I'll give you the method I use to connect to MySQL:

        /// <summary>
        /// MySQL specific connection
        /// </summary>
        /// <returns></returns>

        protected override IDbConnection connect()
        {
            IDbConnection conn = new ByteFX.Data.MySqlClient.MySqlConnection(this.connection_string);
            conn.Open();
            return conn;
        }

Simple enough to use. I'm assuming this.connection_string contains your connection string.

So I think I'll wrap it up by saying I'll post more interesting code from AllDay DJ 3 in the future. Though, for obvious reasons, not the "trade secret" parts.

Monday 23 June 2008

Thank you for the Music

Summer has it's perks. Free time is one of the major ones for students.
But unlike some, I've decided to be productive. Rather than lazing
about as I have done for the past few weeks, I've decided to do some
software development.

My big project this summer is AllDay DJ. Currently, I'm working with a
small team to work on new features and do some bug fixes. Those of you
that want to know what's coming up, here's a sneak preview.

I've already managed to make the database management screen more user
friendly and added a drag and drop instant player. In fact you can now
drag and drop onto the main playlist now as well!

Instant players can now be stopped (there was a fair few complaints
about that one) and search as you type has now been disabled for
performance reasons.

There's also been a few behind the scenes works as well including
search results in alphabetical order and the database is no longer
preloaded (it had minimal benefit for a large trade-off).

Those of you itching to make your music library sound like a radio
station can get involved. I'm looking for voluntary beta testers for
all these new features. Joining the teams is as simple as sending a
message to:

beta [at] radioautomation.co.uk

Note that I'm looking for people I know or are involved in the radio industry at any level.

Tuesday 17 June 2008

Get Talking

I've spent most of today so far working on STAR's new messaging system. The reasons for working on a new one is buzz messages have a tendency to disappear into the spam folder on our e-mail account in the best case. In the worst case, some were being dropped completely.

I've put together a simple PHP application that sends messages to the database rather than /dev/null. These are retrieved via. an AJAX page that fits quite nicely into a popup. New messages are polled for roughly every 15 seconds. I say roughly as the next request will not start until the current one is completed.

One point I thought I would make is over the data format used to get data from the server. Due to the regular updates and amounts of data to be passed, I decided to make use of JSON. It carries less overhead than XML for the data being transferred and is quickly parsed by the Javascript through a simple call to eval(). Although not ideal for most situations, it seemed to make sense to me on this simple project.

Anyway, it's integrated and now up and running. However, I don't think I'll be posting a public URL for this one. Security through obscurity and all that. :)

Sunday 15 June 2008

A Busy Day

Although yesterday was my rota Saturday off, it did not mean I did nothing. The day actually started a little later than usual with a gala in Invergowrie (west of Dundee). What was I doing there? No, not idling my day away wondering round the stalls. I was in fact DJ-ing (with Mark and Joe as well) on behalf of Bridge FM.

That turned out to be both a fun and interesting experience. Firstly, there was a falconry display (yeah, the spelling is miles off!) display that was fairly impressive. We got to watch the bird of pray "hunt" for food. Though, later in the display, the local birds appeared to have taken action about being upstaged and tried to get in on the act.

So when that finished, we got on with the music playing. Until the power kept cutting out (apparently it had been doing that before I arrived). So we just pressed on through the problems, only taking a break for the raffle.

The weather had been on and off rain and thankfully held out for the duration of packing up the equipment. That part wasn't so bad. The interesting part came at the hospital when we went to return the equipment.

We had managed to obtain the use of a trolley from the porters. However, these things have only one set of setting wheels to navigating tight corridors was tricky to say the least.

Roll on a few hours, I finished the day off back in Bridge FM's studio presenting the "Night Shift" (called so because it finishes at 11pm).

Not too bad a Saturday off (I've had worse) and I'd certainly do it all again. Today, I finally managed to get my tax return submitted online. The result... HMRC owe me the huge sum of £24. Oh well, better in my pocket than theirs.

Friday 13 June 2008

Exams

The results are in.... (tense music plays in background).


 


I appear to have passed both Advanced Internet Programming and the Computer Science equivalent. Both are equivalent second year courses but provide steps to the seperate branches available.


 


The higher grade for myself was in the straight computer science thread. Not completely unexpected. However, I'm a little unsure as to which way to go. I enjoyed the AIP course a little more than the CS course, but enjoyed them both. However, with 4 points between the grades, I think that may have decided for me.

Monday 9 June 2008

Getting Things Going

We're a few weeks into the summer holidays now and I feel I've had enough time just lazing about sleeping, eating, drinking and going to work part time. With a tax return sitting on my desk and money to extract from the Scottish government to go to university, I though now is about the time to get things moving.

One of the major items on my todo list this summer is STAR's website. It's not the most updated of sites. The committee are looking to get a new website. I've been a little more sensible and looking at all the options.

A New Site

If we go for a new site, we can keep it seperated from the admin side of things (mailing lists, etc.) possibly even keeping the current staff portal but slimmed down. There are a number of "off the shelf" options. However they would require a fair amount of customisation.

I've been experimenting with this option. In fact in a day I managed to get this site together for experimentation.

Update The Old One

The old site could easily have the look / layout changed without too much work. However, there is a fairly sizable list of "requests" from the old committee over the website. Considering I'm already getting flack for refusing to follow through an order for duckers (we don't need them and they would be too difficult to install correctly with our setup), I would have to implement most of these changes.

The old site can be found here.

Get Involved

The options are open, what's your opinion?


I've dropped the requirement to register to submit your comments. You will need to supply an e-mail address but I promise not to sell your information to anyone that looks a bit shifty.

Friday 6 June 2008

The Server's Online

Well, after many problems yesterday, I decided to update the firmware on the router. The result, no more drop-out. So the piggy back connection is no longer required.


 


I've decided to setup a simple web and ssh server for personal use. Making use of a patched version of Debian, it's up and running. There was no problems in the starting of the server, the issues came with SSL. I have self-signed the certificate for the server and have setup Apache to use mod_ssl. It's not the easiest to setup and took hours of searching to find the correct settings to use in the virtual host.


 


There were separate guides for signing certificates (worked well) and using certificates with apache (worked not so well). We could really do with a combined guide. Oh well...


 


If you want to take a peak, goto http://steelehost.dyndns.org/ [normal] or https://steelehost.dyndns.org/ [secure]. There's nothing there yet, but proof it is working.

Wednesday 4 June 2008

Network Woes

Well, I'm back home and mostly unpacked now. So what needs attention...? Only the computers at home. Firstly, the hard drive on the parents machine has failed. So I've spent a little while recreating the system for them on a new hard drive.


 


The more interesting problem is the home network. We were using a combined wireless router and ADSL model (Zyxel 600 series if you're interested). Unfortunately, the modem bit seems a bit faulty and keeps dropping the connection.


 


Looking for a simple fix, I managed to find the modem our ISP supplied to us. Thankfully is has an ethernet port on the back. So my plan became piggy back the wireless router on the modem connection.


 


Sound simple, right? Well... it's not as easy as that. To force the router to route traffic via. the modem, I had to make use of the backup WAN settings. This allowed me to specify an alternate gateway for if the DSL connection failed. That's ok so far. Now to simulate failure. This was done by simply removing the phone cable from the router and inserting it in the modem. The router should now attempt to ping google every so often on a connection without a cable. I think you can guess the outcome of that one... constant failure.


 


Thankfully it works but I'm very surprised I had to simulate failure to get the unit to do as I wished. It's a bit easier doing this and using the built-in DHCP server rather than going manual and having to change the gateway on every machine on the network.

Thursday 29 May 2008

And Finally...

Well, that's me mostly packed and ready to leave halls for the summer. Looking towards the summer it's going to be busy but fun. I prefer it that way as it gives me something to do. Due to not being able to find a room, I will be commuting next year across Fife. It should be interesting being out of halls for a while.

Talking of something to do, I got bored a little earlier and knocked together a demo. I don't expect to get paid work out of it but I will be sending it to voluntary stations closer to home. As it's constructed from tape recordings, I can only apologize for the noise in the background.

It would be fantastic if you could review it for me. To listen to it click here.

Monday 26 May 2008

It's All Over

Well, that's it for this semester. Now that exams are out of the way, I can look towards the summer. There are a number of projects I'm looking to do over the break including AllDay DJ (commercial and STAR), STAR's new website and a couple of smaller things.

All of that and working part-time as well. Should be fun!

Thursday 22 May 2008

Debian and OpenSSL - UPDATE

Kieran has informed me that we are no longer susceptible to the risk posed by the Debian OpenSSL issue now that the machine starfm is updated.

On reflection, it seems like a stupid bug to induce through editing code you don't know about. At least it's fixed now but it shouldn't have happened in the first place.

This update also flagged some bugs in AllDay DJ. I know about them already and will begin fixing them after my last exam. Until then, AllDay DJ seems to handle endurance as long as nobody goes fiddling with it.

Let's just wait and see what the next bug is... (for either program).

A Mixed Day

This morning saw me going to the midnight showing of the latest Indiana Jones film. Based on the mixed reviews it's had so far, it was better than expected. Not an unexpected ending is all I'll say so as not to give away the surprise. Let's just say it's not the usual Indiana style.

So after a good start, I thought I may be able to continue the trend with my car's MOT. Apparently not. Only one failure point thankfully, a cracked gaiter joint. I don't honestly know what it is but it's only £60 to fix.

Wednesday 21 May 2008

Fun and Games

I never told you, but I got a better contract at work. This means I work in the same place, do a slightly different job and get paid more. You can't complain about that. What's more, I am doing exactly the same job until I get training.

The only downside so far has been the pressure sale by the union to get me to join (being perminant staff now). I didn't fall for their sale but it was worse than trying to reject an extended warranty (being an ex-salesman I know how bad those are).

Monday 19 May 2008

...2 out of 4 ain't bad...

Ok, when Meat Loaf sung it, it was two out of three ain't bad and he didn't sing about academic topics either. What am I on about? Exams. That's all the exams for CS2002 (Advanced Computer Science) over with. What's more it didn't seem to go too badly.

The slightly more interesting topic of Internet Computer Science (CS2003) is tested later in the week. I'd better get cracking with the revision.

Sunday 18 May 2008

Late Night Love Songs

So my alternative to "Late Night Love" on hospital radio has shifted from Wednesday nights to Saturday nights. A bit of a shock at first coming in on a weekend but fun none the less. It's also made a bit more fun by the crew on before me who just happened to remind me of the AGM next week.

The journey home was "interesting". I was most of the way home, behind another vehicle. This person in their big, expensive car attempts to overtake the queue of traffic. Failing just before a blind corner, they pull in front of me, causing me to slam on the brakes! I dropped back to a safe distance just to watch this person tailgate the car in front all the way in to St. Andrews.

I've got the person's numberplate. Should I report them?

Saturday 17 May 2008

STAR Gets Titles

Well, we had them with the last playout system and they are surprisingly useful. What am I on about? Track titles. After a few hours of mucking around with source code, we now have dynamically updating titles from AllDayDJ (star makes use of an in-house build). Being truly honest, most of the code has been sitting there for a few months, it was just activating it and killing bugs but it seems to be working now.

Though I think I may have gone a bit far by making the message user friendly...

    "Now is More Than Us by Travis followed by Captain"

That's with a short title and artist!

Friday 16 May 2008

Talking Servers

Last night saw Kieran giving the society a talk on the current server setup and the proposed setup for the new server.

Amongst the more interesting facts were:

* Wired's e-mails are spam filtered by the university mail server. Even though my inbox is full of messages about "love sticks" and pills, most of it is apparently dropped.
* I am not allowed to blacklist logcheck emails as spam... :)
* On the new server, there will be a virtual server dedicated to the resource intensive service that is.... IRC.
* Kieran is to retain root access until at least the summer is over as he has physical access working in St. Andrews. Working in Dundee, I'm still too far away to stop him.

Still, it was a very interesting presentation. I thought I'd better not write about it on the night due to the consumption of small amounts intoxicating beveridges.

Wednesday 14 May 2008

Interview

Well, it appears the telephone interview must have gone better than I thought as I was asked to attend an assessment day today. It was the usual stuff such as group exercises, interviews, typing tests, etc. As for the results... I'll hear back soon. I'll let you know then.

Debian and OpenSSL

Well, you can usually rely on Debian to be secure and stable. It still is. But a story has been published recently stating basically the Debian edited version of OpenSSL doesn't create very random keys. Looking at the source code, it appears that they commented out a line of code that obtained a block of memory (but doesn't write to it) then reads it. This is a bug in most programs as you don't know what's there but works reasonably well as a random seed.

As we no longer have such a random seed, the keys become predicable. Just like old computer games. The reason: random number generators are not actually random. I was taught at school that they follow a list of random values that is pre-set. So the same seed will produce the same numbers. Which actually proves useful for testing. Not so much for keeping things secure.

Kieran has informed me the servers have been updated (bar starfm as it takes out the playout system when we do it).

Sunday 11 May 2008

Premium Rate Numbers

Stories have broken in the past few days about ITV being fined and the BBC paying back money due to running premium rate scams numbers on TV programs. Although both of these broadcasters have been held responsible, I do feel the viewers do have to take some responsibility for calling these numbers in the first place. Nobody forced you to do it!

What's more, broadcasters don't even need to run competitions using these numbers. Yes, I can understand the economics of running such competitions but do you really need an 0845 number? Though a quick poll of local radio and TV stations show a number of them using 0845 numbers though thankfully a fair number do not. In the voluntary broadcasting projects I've been involved in, phone numbers given out on air usually start 01...

There are websites out there that will provide you with a mapping from premium rate to regular numbers. However, these do have a flip-side. Working at a call centre (not even answering calls!) I occasionally get calls asking for help from a department I'm not involved in. Why? The website SayNoTo0870.com have published some of the direct dial numbers for the desks in the office.

How's that bad I hear you ask. Well, direct dialled calls can't always be transferred to a charging queue. Also, don't bother asking for a direct dial number for the department you're after. We aren't told them. What's more, I'm not going to let you get away without being charged when I'm charged to call these numbers. Why should I pay and you not?

Anyway, rant over! (Hurrah!). I did promise yesterday to tell you how the phone interview went. Well... I was fobbed off at the end with "we'll contact you within a week...". The interviewer was not chuffed in me wasting their time after being told this by asking about the rest of the selection process.

Saturday 10 May 2008

Meetings

Well, yesterday saw the first meeting with me as Head of IT/Tech for STAR. Pulling in a record 3 attendees (thanks to Kieran and Adam for turning up) we did get a few problems solved.


 


One that was touched on by Adam in his blog was about live bands on STAR. Occassionally, we do allow this for small bands and the tech team provide assistance. However, once you get above 2 or 3 people, things start to go a bit wrong. We only have 4 microphones in the studio for one. Also, STAR's studio is very small.


 


Two suggestions were made to fix this: set a hard limit on the number of members for live groups or pre-record the session for playout later. I suppose if need be we could link up from another room using a porable mixer if we really needed to (the union has a rather large room directly opposite STAR's studio). Unfortunately, any action in this area has to be made by the comittee as it's a policy decision. I think I'll take my asbestos suit to the next meeting when I suggest restricting live performances.


 


Also, a number of things have been "inherited" from my predicesor. Usually these are good, e.g. all PC's running Mac (DJ / News web browser) or Linux (playout, servers, file storage, etc.). But there have been a few surprises. For example. we have a wooden rack currently holding just as portable sound recorder. We also have a flight case holding all of our non-portable compressors. I'll let you figure out the flaw in that one...


 


In other news... I'm due to get a telephone interview tomorrow for a better paid position at my work. I'll let you know how it goes...

Thursday 8 May 2008

Keeping an Eye on Things

To keep an eye on servers, systems administrators often make use of
various monitoring tools. For example wired makes use of programs such
as logcheck, integrit and tiger. These are all valuable tools checking
system logs, file changes and system changes (these can suggest an
intrusion has occurred).

Being useful tools, they also tend to
e-mail the administration team with regular updates. The down side -
they can do it several times a day. For example, my inbox currently has
various messages along the lines of

May  7 23:03:40 wired sshd[304]: error: PAM: Permission denied for illegal user root from aaa.bbb.com

Ah,
the joy of botnets. I know this is the downside of such tools but
something I will have to put up with as we look out for real problems
that are within our control.

P.S. The root account is disabled for remote login if you're feeling bored / silly enough to try it.

Wednesday 7 May 2008

Flying, Crashes and Crunches

Well, today saw the publishing of a story here about a "near miss". From what I've read here, the pilot was showing off the plane to his kid, performed some turns. He then has to climb to avoid a mid-air collision.

That sound feasible, until you understand they claim he was too close to the plane in front and turns slow down an aircraft. In fact, it's one of the technique the space shuttle uses for landing. I've got a feeling the two parts are unrelated but that's probably just me.

Now, demonstrating aircraft to kids has gone wrong in the past. I remember reading about a Russian airliner that entered a spin after the kid accidentally disengaged the autopilot. It was a tragic ending to this flight.


I treat flying as safe and enjoyable. In fact, it was the reason I joined the Air Training Corps. Though, based on the accident reports I read during bad weather on my gliding scholarship, things can and do go wrong.

Tuesday 6 May 2008

Forgetfulness and Last Minute

There seems to be a rumour kicking around that students always do things last minute or forget all together. I'd like to dispel this myth, but I did not get out of my pit until 0845 today therefore running late for a tutorial. Not a good move but it's the last week of classes and I've lasted out so far.

Anyway, yesterday we were asked to provide assistance for live artists on one of STAR's programs less than 24hrs before the show. Thankfully, a few of the tech team did step up to the plate and help out! But, we technically should have said it was not doable.

On the forgetfulness front... I did walk in to the studio the other day to a recorded show still running on loop from CD the night before. It looks as though they expected people to turn up at midnight / 1am to stop the CD while they were away.  No great problem fixing it... but it gave me an excuse to play Meat Loaf on the radio!

A bit of tech update as well. Wired's new server seems to be moving along nicely (according to the updates I've read from Hash9). We are going virtual with this server using Xen (the hardware supports it). Should be a fun new experience as we currently run separate boxes. However, the assistant sysadmin (Jaunty) does claim he's had training in virtualisation. A possible scape goat when things go wrong... :)

...only joking Jaunty!

Monday 5 May 2008

Recordings, Recordings, Recordings

When STAR was broadcasting on a Restricted Service License (RSL), recordings had to be made and kept of all audio broadcast. This works fine for short periods of time. However, we have been broadcasting online for most of a year now.

As we have been making use of the same tools for recording, we seem to be running low on disk space as none of the recordings are deleted. As detailed here, we did move some of the recordings to another machine. Unfortunately we are still running out of disk space...

bsgraph.png

There seem to be only two solutions. Get more disk space (and spend money!) or set a policy for deleting after a period of time. I've got a feeling the second one will win. Who really listens to year-old radio shows except anoraks? :)

Sunday 4 May 2008

First Post!

Well, welcome the the world of steelegbr.

As sysadmin for
WiredSoc and Head of IT/Tech at STAR I'll try to bring you updates of
keeping things ticking over and any spectacular incidents in both
areas. I might even throw in the odd rant about IT or the world in
general.

Lets start things off with today. STAR got a new
committee last week and required updates to the website and e-mail
system to cater for this. Updating the e-mail system seemed to go ok
(things don't tend to go too wrong with Google for Domains). The only
issue was me misreading a name and changing somebody's gender - oops!

The
website is where the fun started. STAR uses a bespoke system for admin
and usually works quite well. Though what was overlooked was a way to
change the committee positions on the website. It required a
combination of SQL and PHP from myself to fix. It turns out the
committee positions were hard coded into the PHP to enforce order.

Oh well, I'll get it changed (once I can remember how to update the website...).