I've finally made the move to jekyll for building this site. It is now hosted on github pages, comments are handled by disqus and my post source is written in markdown. My entire site is visible on github and revision control for post entries is handled there too.
What finally convinced me with the release of jekyll 2 was the introduction of native sass support. Originally, the prose theme I'm using for my site was using scss, which I later ported to a wordpress theme in order to blog with it. I had the scss for the original design available and therefore thought the jump to using jekyll wouldn't be that great (or so I thought - overlooking all the features jekyll doesn't support compared to wordpress). I'm going to blog individually about the pieces of the puzzle in other posts as there are number of things that tripped me up along the way.
But for now, I'd like to bid a fond farewell to wordpress - my go to blogging software for the last 10 years. You once were diminutive, got out of my way and let my voice be heard. That's no longer the case. These days the only time we speak is when you want me to update you. I've got better things to do. Theres a ton of features the length of my arm which I've never used and the majority of features which I use rarely. I long for those simpler days once again. You've served me well, but I've moved on.
On June 1st 2014, some much needed changes are being made to exceptions to copyright law which amongst other things, will allow conversion of personal media between file formats.
Finally, we’ll able to make personal conversions of digital media (at least they will be now counted as legal copies). I’ve long made copies of my cd’s to listen to whilst coding (iTunes allows me to do so simply) – but it is not currently legal to move these files to another storage medium, such as an mp3 player. The fact is that most people have been ripping cds and copying them to iPods since it was technically possible, but music companies have never prosecuted anyone as the implications would stem far and wide and would the costs would too prohibitive to be able to enforce them.
It’s also not currently legal to rip movies to another format. So copying a dvd to a mkv file to play elsewhere is construed illegal. The fact movie studios put protection in place on their dvds to prevent you from doing so puts most people off doing so anyway. From June 1st this also changes so it will also be legal (but probably will be as difficult due to the copy protection in place). The guidance doesn’t specifically mention blu-rays by name, but it does say “The exception will apply to any copies you have bought, other than computer programs” – which I see to include blu-rays. However, it does also mention that copy protection may still be in place on those formats. Which you can raise a complaint to the secretary of state about if you think it’s too restrictive (good luck getting a response there!).
I’m a big fan of said changes, mainly due to the fact I own a huge amount of discs which aren’t currently allowed to be any format other than that they were distributed in. DVD’s, CD’s and Vinyl(!). I’ve found this frustrating, as my own stance is I should be able to manipulate the media to my hearts content within my own 4 walls. In fact, in order to listen to myself practicing when I used to dj, I need to make recordings which change their format. The fact that I’ll be able to do this within the law makes me a very happy chap indeed. Up until now, the law has been fairly grey on the matter, but hasn’t prosecuted anyone for format conversion (as far as I’m aware).
The new guidance is quick to point out that it’ll still be illegal to distribute the media you create – You have to “own” the media you’re converting. Therefore duplicating a friends mp3 collection at work from their hard drive will still be illegal. If you sell the original format from which you made copies, then your copies will again be illegal. Again this aligns with how I feel things should be done. I feel like I should be paying someone for the entertainment I enjoy from said media. The artist/record labels decide a price and that’s what I should pay – but I don’t feel like they can make me pay multiple times for the same thing, especially if I can create said formats from media I already own. If you hold a copy but haven’t paid for it, I feel it fair for it to be deemed illegal, however possible it is technically to achieve.
In summary, I feel these changes are great (but long overdue).
You can read a full summary of changes to consumers issued by the Intellectual Property Office here. Amusingly, the document explains you may be affected if you “read books, watch films or listen to music” – or my favourite “use electronic devices”. I guess that covers anyone reading this then.
I’ve had the opportunity of using d3 quite a lot over the past few months for a number of clients. It offers some amazing flexibility for chart generation and much more.
Anyway, I thought I’d share a quick tip I developed for mapping a linear set of values onto an ordinal scale. For those who’re seasoned pros at d3, this probably seems trivial, but had me stumped for some time today.
I’d picked out a colour palette I wanted to use for a particular graph, as per below:
var colours = ["#B8D0DE", "#9FC2D6", "#86B4CF", "#73A2BD", "#6792AB"];
The only examples I’ve seen similar to this are where it is assumed you want to vary darkness of colours based on value or vary the domain based on the number of colours you want. Not a good fit.
I wanted to pick one of my values based on a linear value from my data set. My first thought was to make use of the ordinal scale function provided by d3. Something like this:
var colour = d3.scale.ordinal()
In doing this, I got something that *looked* a bit like it was working, but not the way I expected. In fact, the way an ordinal scale works is that it provides a 1-to-1 mapping of domain values to the range, rather than any kind of interpolation between them. In this case, it was expecting only 5 distinct data values (to match up against the colours) and for everything over and above that, it wrapped them round to the beginning of the domain again. The solution then is fairly simple once you’ve got your head around that.
What I did next, was to create a scale that gave the index of the colour we were going to be mapping to. This works well, because the indices are linear and d3 has the ability to do the dirty work in that respect.
var colourIndex = d3.scale.linear()
.range([0, colours.length - 1]);
Here we end up with an index ranging across all the indices of the colour array, and a colour appropriately selected from the palette as expected. You can see the resultant effect in the graph linked to below:
This month, I’ve decided to take some time out to ship projects.
I have a huge list of projects accumulating I’d like to push out of the door, but as a father and freelancer I have lack of a certain commodity in able to achieve them. That would be time.
Currently I don’t have any work booked in for a while, so along with Viv, we’ve decided I should try and get some of these projects released.
That sounds easy, but I’m well aware from past experience it isn’t. I don’t want to work outside of working hours (9-5.30pm) as I know the impact it has on my family. My hope is by setting myself some achievable goals I can at least get some way to ticking off some checkboxes on this growing todo list.
Some of these projects are products I’ve not yet completed, projects I’ve released but need work or ideas that haven’t made it to the build stage yet. As a freelancer, I hope that some of them may even help out other people in a similar situation to me.
Over the coming month, I’m going to attempt to ship at least 4 projects out of the door. 1 a week for 4 weeks. I’ll be blogging about my progress here, and posting summaries of how it went at the end of each week. The end date of the 28th is also my birthday, so it would be great present to myself to have come some way to meeting my goal.
If you’re interested in receiving progress updates via email, signup here: http://eepurl.com/PxGe9
I’ve purchased a couple of .is straight from the Icelandic Domain Registry (ISNIC) in the past year with a view to using them with my own vps. The process of setting up nameservers isn’t great, given their somewhat confusing management interface. That’s summed up in a recent tweet below.
Given the potential savings compared to a ‘normal’ registrar, it’s likely you’ll want to make use of ISNIC themselves – who are much like an Icelandic version of Nominet.
Here’s the process I went through to configure my domain to make use of the nameservers provided by my (non-icelandic) host. The information provided here is a little misleading as it’s not necessary to use a “pre-approved” registrar according to the rules outlined here. To be clear, there’s no need to use something like x.is, and you can point ISNIC directly to your hosts nameservers.
Once you’ve gone through the process of checking your domain is available and registering it, you’ll need to ensure your hosting provider has appropriate dns entries for your domain. If you’re using, cPanel or something that basically means adding it there. If you’re managing your own dns entries, add the appropriate entries within your manager.
Here’s the key bit. Now wait…. Seriously, for about 6 hours or so do something else. It will take some time for these dns changes to propagate and ISNIC to accept them. Basically these details need to be bounced up through the hierarchy of dns servers to the root dns servers that will respond to a request for your new domain, which takes time. In the olden days, I remember waiting days for this to happen.
Following that wait, head to the “redelegate” option within your new “My Page” area at ISNIC. Choose the “Not Registered” when asked for your ISP.
Go ahead and enter the nameservers you want to use. If the dns changes haven’t yet propagated, you’ll probably get the error “The nameserver ‘ns1.whatever.com’ has not been registered”, as shown below:
This is a pretty misleading error, given what it actually means is “your domain doesn’t seem to be registered yet on those nameservers”. So wait a bit more for propagation to occur…
Be aware of the rules for ISNIC nameservers and check your host complies with them, otherwise you may find you encounter other errors. When the changes are picked up, you should finally be able to add the entries without getting an array of red boxes, much like below.