Gracefully degrade HTML5 “number” form elements
Use Modernizr to replace the a “number” INPUT element with an normal text box and two control buttons in older browsers:
I speak my mind involuntarily. It's both a blessing and a curse
Use Modernizr to replace the a “number” INPUT element with an normal text box and two control buttons in older browsers:
Saves using a cumbersome multi-line control structure for simple conditions like this:
On Thursday 5th May there is a referendum on whether or not the United Kingdom should adopt the instant-runoff (“Alternative Vote”) voting system in place of the “First Past The Post” (FPTP) system that’s currently in use. There are rigorous campaigns for and against this, both from various political parties and from other campaign groups.
Having carefully considered each argument I’ve come to a decision on how to vote on 5th May and I wil be voting “No”. Here are the reasons why I have reached this decision. You may wish to note that none of these reasons are political. I don’t care about any of the party positions. I will admit that the party that I’m a card-carrying member of has a consolidated “no” position, but this had no bearing on my decision.
I’m not saying for a minute that the existing FPTP system is by any means perfect, because it’s far from it. Indeed, I’ve often bemoaned its shortcomings following various general elections after watching in dismay as carefully planned constituency boundaries deliver election victories which they ought not to have and wouldn’t have under a “fairer” system. I just don’t think that AV is the answer to this.
So there it is, I have imparted my decision and the reasons for it. If you’re undecided at this stage I hope that the points I’ve raised help you to decide appropriately.
Following on from my recent release of AGCDR (Asterisk CDR Statistics), I thought I would make an important sub-set of that project available separately. As part of writing AGCDR I wrote a reasonably extensive set of PHP classes to interact with the Google Chart API. The following chart types are supported, although some do not support all the features that the API offers:
The download contains all the classes, both in separate files and in a combined file (which one you will use will likely depend on whether or not you use class auto-loaders) plus a page of example usages to get you going.
As with AGCDR, this is currently being released as a beta so it’s not perfect and I would welcome comments, suggestions and bug reports. Please submit any comments, suggestions or indeed any code you would like to contribute via the Google Code page in order that all information pertaining to it is kept in the same place.
Here’s a gallery of examples:
I’ve been a beneficiary of the open source software community for quite some time now. Ever since downloading Slackware Linux onto upteen floppy disks in 1995, I have used and profited from the use of open source software, whether it it be an operating system, programming language, server technology or desktop application. However, up until this point I’ve never given anything back to the open source community (I really don’t count my Twitter CLI script), chiefly because every software system I have created or worked on has been proprietary and subject to non-disclosure agreements. I’m not grumbling about that, not all software is meant to be or should be open source and working on such systems has paid the bills (just about).
So, what have I written? Unhappy about the lack of a decent (and free of charge) system for analysing caller detail records (CDRs) generated by Asterisk PBX telephone systems, I decided that I would combine a number of techniques that I have learnt and developed over the past year or so to put my own package together, and it’s now at the stage where I think it could be considered a beta. This means that it’s not perfect but it’s more or less there. I’ve started hosting it over at Github.
Where does it go from here? I’m open to suggestion, which is why I’ve published it and I would welcome comments from anyone who’s interested and/or finds it useful, whether you are a developer or just an end user. Is it useful? Does it work out of the box on your system? Is it easy to install for someone who isn’t a developer? What other features would be useful, bearing in mind that the data produced by the Asterisk CDR MySQL add-on is relatively limited?
I know that the documentation is a little rough around the edges and so I shall be paying attention to that, certainly. I also want to do some really thorough and structured testing in order to ensure it’s as robust as possible. I’ve tested it, obviously, but I’ve not seriously tried to break it yet.
So please feel free to download it, either as a tarball for installation or from the Subversion repository if you would like a good look under the hood. Please submit any comments, suggestions or indeed any code you would like to contribute via the Google Code page in order that all information pertaining to it is kept in the same place. I won’t publish any comments made directly on this blog post for this reason.
I’ve recently been surrendering large amounts of my spare weekend time to playing computer games after a hiatus of several years. Back when I had a PC I used to play computer games quite a lot, but since switching to Mac it has, until recently, been more difficult to do so, in part due to inadequate graphics hardware but mostly due to the fact that traditionally there simply wasn’t that many decent games available for Mac OS X.
I have two computers, a Mac Mini with a 2.53Ghz Core 2 Duo processor and a 256Mb Nvidia Geforce 9400 graphics controller and a Macbook Pro with a 2.8Ghz Core 2 Duo processor, which actually has two graphics controllers. It has a the same controller as the Mac Mini for “normal” operations and then it has an extra 512Mb Nvidia Geforce 9600 GT controller which you then switch on (requiring a logout instead of a reboot) when you want some serious graphics grunt. The reason why it doesn’t just have the super-duper one is that it absolutely hobbles the otherwise excellent battery life, so you only enable it when you really need it.
I’ve mainly been playing Half Life 2, which is available for the mac along with a plethora of other games via the Steam platform. Half Life 2 really puts my Macbook to the test, but it fares very well as I’m able to play the game at full screen resolution with nearly all the graphics settings turned up to maximum (meaning that it renders very pretty scenes) and still get a consistent frames per second (FPS) rate of between 30 and 60, which is good enough for me. The computer gets jolly hot whilst it’s doing this but appears to be designed to deal with it.
The other thing I’ve been playing is an old favourite from the turn of the century, Quake III Arena, the source code for which is now freely available and can be easily compiled on Mac OS X. All you need are the PAK files from the original game disc (as the content in these files are still under copyright). This game runs at a consistent, unwavering 90 FPS even on my Mac Mini’s relatively humble graphics controller with all the graphics settings turned up to maximum. It’s by no means a clever game, but it’s an awful lot of fun if you just want to blow off some steam in an unapologising shoot-em-up.
I’d really love to get Grand Theft Auto: San Andreas working too. There is a way, apparently, but it’s flaky, difficult to play on a laptop and I can’t play that game and enjoy it without all the mods cheats that I used to use, none of which will work on a Mac even if the game does. It’d be fabulous if other games publishers in addition to Aspyr used something like Steam to distribute their games to multiple platforms. It’s clearly a system that’s working very well and I think that publishers need to take the Mac platform more seriously as it gets more and more popular, especially amongst younger people who are their principle market.
If I had more time I would probably play games a lot more as they’re a great (and relatively) cheap way to escape and blow off some steam. That said I wouldn’t want to spend every spare minute playing them, I know what happens to people who do that.
I’m thoroughly enjoying the BBC’s new science fiction drama series Outcasts. Although I regret the premature demise of Survivors, which Outcasts replaced after just two seasons, I think think it’s a worthy replacement and more than fulfills the BBC’s obligations regarding science fiction drama that isn’t mostly aimed at kids (i.e. Doctor Who). Despite this it is receiving what I consider an undeserved panning by critics, although this panning has dwindled a little now that we’re half way through the series and I think people have warmed to it a little more.
Outcasts is based a number of decades in the future and tells the story of a colony of humans on a distant planet that they have named “Carpathia” (after the ship that came to the rescue of the survivors of the Titanic disaster), established for a number of years and because Earth has become uninhabitable due to an as yet unspecific catastrophe, although several characters have already mentioned nuclear weapons and catastrophic earthquakes. The big budget for the series allowed the BBC to shoot it all on-location in South Africa, which makes a welcome change for a Stargate fan who’s very used to almost all alien worlds looking exactly like British Columbia.
Star actors include Hermione Norris (Ros from Spooks), Eric Mabius (Daniel Meade from Ugly Betty) and Liam Cunningham, who’s been in a number of films. I think the inclusion of Eric Mabius in particular was an enlightened decision given that the BBC sells much of the programming content it makes these days to the US market via the commercial BBC America channel. I believe that having to take this market into account has made it up its game regarding the quality of its content which will allow it to capitalise on the BBC’s already excellent reputation abroad.
The BBC have already changed its weekday prime time schedule spot to a less prime-time spot at the weekend, which I think it a little bit ominous, frankly. Good as I think it is, I don’t expect it’ll see another season and will therefore be even less successful than Survivors was. It will be a real shame. I’ll enjoy it while it lasts though.
Right, I’ve torn my hair out over this for long enough now and so I’m pleading for help. I must be missing something very basic and elementary, but I cannot for the life of me find what it is.
First some back-story, which you will need to know if you don’t follow me on Twitter. I have recently inherited my late mother’s Technics digital piano (model PX9), as my Dad is moving house and there is no room for it at his new place. I’ve had my eye on it for some years now and my current home does have room for it, so he brought it up last week for me. Given that I cannot actually play the piano, I wish to connect it to my laptop using its MIDI ports.
My reasons for this are simple: All I want to do is:
So far, I have achieved the first two goals, but I am having serious trouble with the third. Please note that I do not wish to compose music, create MIDI files or use the digital piano as a MIDI keyboard, all I want to do is have the laptop play the piano.
I have tried using the following software to achieve this:
My question to those who know about this sort of thing is simple: How do I achieve what I want to do? What software do I need and which settings do I need to set? Surely it cannot be that difficult? I would imagine that it would be a case of having an option somewhere that changes the output audio device from the local sound card to a MIDI device. I know it’s possible because, back in the day, I had a similar interface for my Acorn Archimedes, and I distinctly remember achieving this with some considerable ease using basic bundled software.
I have confirmed that my USB MIDI interface is working correctly and that it is connected to the digital piano correctly. I think the fact that GarageBand recognises input signals from the piano confirms this. I would welcome help and advice from anyone who can help me.
Incidentally I think it’s amazing that an up to date laptop is able to connect and talk to a 24 year old piece of equipment using nothing more than a smart cable that cost £2.50 from Amazon.