2012-07-30

Shiny

Yes, well, new laptop is very shiny. And the question was what to engrave on it.

I have gone for an Astec calendar. From what googling I have done, it is not the same as the Mayan calendar, so not quite a 2012 thing. It is, however, a very intricate image.

On the lid, obviously, I have to make space for the apple logo, so I have put the face from the centre of the original on the back instead.

Overall, pretty distinctive. If anyone wants a MacBook Pro engraved, we would charge around £25+VAT for this type of job. It is a one off, like a tattoo, but thankfully you can always get a new laptop if you change your mind in the future.


2012-07-27

Holiday

So, I see from an old Daily Mail article that "The Association of British Insurers yesterday warned of the dangers of posting too much information after it was revealed 40 per cent of social networking site users reveal their holiday plans online – while one in three include details of weekend breaks."

Seriously - the whole idea of social media sites is that you tell your friends every detail of your life.

Well tough! - I am on holiday soon, sorry I told the world. But we should live in a world with rules that allow some freedoms. One is that you don't steal. One is that you can say what you like, even if it is a threat to blow an airport sky high (well done on that ruling).

It is already depressing enough that I pay for insurance and an alarm system that would rival many offices, and an off-site recording video surveillance system and good locks including some internal rooms. We even have nagios on the case checking stuff in my house and texting me and others. None of this should be on me, the potential victim of a crime, and really I should not have to curb my public enthusiasm for going on holiday. Criminals should be forced to work to contribute to a fund to re-reimburse those that pay for insurance. In a truly civilised society I would not have to pay for any of this.

I hope to have a fun holiday - I will be connected as you expect, and in fact Greece will be too hot to leave the villa for the likes of myself. The new laptop means I can play WoW 24/7 if I like, in air conditioned rooms. That is a holiday, but so will writing an iPad app, which is a possible project. It is totally distracting with no deadline and is fun. The rest will sun bathe and sit on the beach as is their way. I'll be on irc, but unpredictably. I guess, as ever, I am on-call for "shit hits fan" scenarios, but even the Oylmpics should mess that up :-)

I am hoping for a new toy to take, which is a new camera, having not had a new one for 5 years. We'll see. Canon are a pain. I'll post pictures if I manage to get one.

So have a fun Oylmpics (as the tattoo says) - I will...

2012-07-26

The apple way or the fuzzy way

OK, the new macbook pro and retina display is damn cool.

In fact, it suffers from being too good!

This is a problem that I had previously encountered on a nice IBM screen (3840x2400). The pixels were too small for most normal desktop operations. Whilst it is often possible to increase font sizes, you can rarely increase all of the icons and window decoration on many systems in quite the same way.

Now apple have been clever - you get to select a virtual desktop resolution, e.g. 1920x1200, and it then scales to the actual screen resolutions of 2880x1800. This may sound batshit insane, but in fact it makes more sense than it sounds. The clever bit is that the scaling really only applies to things like bit maps (images) as the fonts are rendered using the native resolution anyway. So the virtual desktop is really just a major scaling factor not a loss of resolution. All very sensible.

Except... One assumes that the clever logic to use the native resolution where you can (fonts, and presumably vector graphics, etc), is only possible if you use the right libraries. Some non-apple apps don't.

This is a slight nuisance for me, as I normally use Firefox and Thunderbird for web and email on all of my machines (my desktop machines are linux of various styles). These apps do work, but they work as if the screen was the virtual desktop resolution, including all fonts.

Fortunately using Safari and Apple Mail is OK. Their mail app is actually pretty good. So I have gone the apple way rather than the fuzzy way. Still can't see where I set default fonts on Safari though.

There is no screen option for native 2880x1800, but there is some good news - apps like World of Warcraft simply see all the screen options including a native 2880x1800 and work really nicely - cool. No oversampling is offered, but to be honest, with pixels this small, you don't need it.

See.. Right is Firefox, left is Safari :-


2012-07-25

Top UK ISPs finally agree to provide IPv6 to all customers?

An interesting article today on BBC discusses a new net neutrality code of practice which top ISPs have backed.

The idea is complicated. One of the concerns that has led to this is that people can sell premium packages for better performance to servers provide by specific companies, etc. i.e. charge for access to certain streaming TV, etc.

That is bad, but on the other hand, trying to define net neutrality is hard. For example, we offer email services and so do competitors. However, as our email servers are on our network, access to them is going to be better for our services than competitors. Is that against net neutrality?

Anyway, putting all that aside, as you can see from the BBC article, many top ISPs have signed, and one of the clauses is :-

Firms cannot market a subscription package as including "internet access" if certain kinds of legal content or services are barred.

This has one very interesting implication. These top companies cannot sell an "internet access" package that does not have IPv6. If they do, then they are barring access to any IPv6 only services. There only has to be one IPv6 only service in existence for this to be the case.

The article states "Ten ISPs including BT, O2 and Talktalk backed the agreement"

So, what can I say? If you are with any of these ISPs, and if they claim to sell you "internet access", and if you cannot get to www.loopsofzen.co.uk then ask them why. If they eventually work out that it is an IPv6 only web site, ask why they are barring your access, and if that means they are in breach of this new code of practice by doing so. Remember, you can always take them to ADR over this as well.

OK, I have to say that I am being unusually cruel to my competitors here, and so please do take that as a joke. However, they should not sign such a code of practice if they do not expect their customers to challenge them when they don't meet it. Also, they damn well should be offering IPv6 now (see other blog post).

As for A&A's position on this - we don't filter anything and have not had any court orders to do so - we don't deliberately block anything, we just shift packets to Internet transit and peering, and we have an open peering policy at the peering points of which we are members. We don't (and can't) guarantee there is routing to every part of the Internet, as the Internet does not work like that, but we are not deliberately blocking anyone. I am not sure I want to sign the code of practice as I am not convinced their definitions are right, but the principles we are happy to go with and always have been.

IPv4: THE END IS NIGH!

The glass is not half full!
Version 4 Internet Protocol addresses are running out - we all know this. Last February IANA allocated the last blocks to the five regional registries. Since then one of these (APNIC) has already run out.

This weekend RIPE, the regional registry for all of Europe, is forecast to run out!

Technically, running out means they are on their last block and are effectively in lock down so not giving ISPs any more addresses. In practice, there is a policy allowing one final block per ISP, but this is only a thousand addresses, which you can imagine is not very useful for the likes of BT or Virgin.


What this means is that UK ISPs can no longer get more IPv4 address space, ever.

They have to cope with what they have. Technically there are ways for IPv4 to be traded, and ISPs to acquire other ISPs, but apart from that, ISPs are a bit stuck.

So when will ISPs run out? Well, tricky. The forecast window has been down to 3 months for a while, so, in theory, ISPs should not have more than 3 months of addresses left! In practice all ISPs have (or should have) plans for how they are managing their remaining IPv4 addresses. You can expect changes in policy to happen now.

It is hard to say what ISPs will do. Some will deploy carrier grade NAT which means you do not get a real IP address when you connect. Instead you get a private IPv4 which is mapped to a share of a real IPv4 address. There is even a scheme where routers can directly get a share of an IP address (i.e. the router is told a range of TCP/UDP ports it can use and expected to NAT to those). NAT itself is not new, and not nice, but this extra layer of NAT and sharing has a whole string of problems and costs for the ISPs.

Even when one router is used to share an IPv4 address on a network and one person is using it, the router can run out of sessions or ports. We have seen this happen where someone cannot see something because it keeps failing at the same point. Given non NAT and real IPv4 addresses it just works. Such problems will get worse and worse with torrent users not just hogging all the bandwidth but also all of the ports on shared IP addresses.

You also have to remember, if someone wants to put a new server on the Internet, such as a new web site, they too need IP addresses. That is going to get interesting.

We can say what AAISP is doing, and it is good news. We have always given customers as many IP addresses as they need (as per RIPE policy). This means we have a lot more IP addresses than customers.

Over the last few weeks we have gone through a programme where customers that can qualify for their own addresses (provider independent space) get it, and give us back blocks of A&A IP addresses. That is no longer possible now that RIPE have run out. It has, however, given those customers security that they have their own, portable, IP address blocks and we won't be asking for them back.

The next step is identifying anyone that has IP space they are not using. The new sflow stats make this easier, and we are contacting people to reclaim unused address space. Obviously, we can also claim our last thousands addresses from RIPE. We will also stop offering blocks of IPv4s to new customers at some point. Right now, anyone needing a block of IPv4 has to discuss it with support.

Where people have IPv4 blocks, and their router can handle the WAN address being within that block (which many can), we'll be recovering the WAN addresses too allocating an overlapping address. This seems trivial, saving one address, but could apply to thousands of customers. Similarly, multi-line customers using a FireBrick for PPPoE can use one WAN address on all lines.

Obviously we are already getting people using IPv6. So the next step is people that are using their IPv4 blocks. We contact them to see if they can get their networks using IPv6 and ideally to no longer need the IPv4 blocks. We already sell router upgrades to get people on to IPv6 and supply Ipv6 to new customers as standard.

One of the main reasons for needing real IPv4 addresses is VoIP. We already have VoIP gateway functions in the FireBrick, and so many customers can upgrade so they no longer need the public IPv4 addresses. We also have IPv6 VoIP services and there are some VoIP phones starting to support IPv6.

The final stages, which may be years off, are that we start charging for blocks of IPv4. Ultimately we may even start clawing back IPv4 blocks to allocate to new customers. The hope is that we can always provide every customer with at least one fixed public external IPv4 address. We think we have enough IPv4 addresses to do that in the long term and never have to deploy carrier grade NAT. But it is hard to predict the future.

So, really, IPv4 is dead, long live IPv6.

Update: With no change in the underlying data, potaroo have changed their forecast from 29th and 31st July to 11th October!

2012-07-24

Philosophy and Immortality

I have never read any philosophy so this is probably all old hat, sorry. Also, this could upset some of those of a religious persuasion, which is not my intention - don't read if you don't have an open mind.

Basically, this is my musings on the idea of immortality - living for ever. Something I am sure many have pondered. No, I am not dying (any more than anyone else), I am just getting older and philosophical.

There are, of course, some pretty half hearted concepts of immortality. Lets start with something simple.

The atoms in my body carry on after I die: They will end up in other things and people and live on forever in some way. I have to say that this is a pretty crap immortality, but it has the one redeeming feature that it is factual and true.

My DNA carries on in my children: I do have children, and this is slightly more appealing as a concept. It means something that was uniquely me carries on (so way cooler than just carbon atoms). Unfortunately each generation dilutes that by two, so very quickly you lose anything uniquely me. It is not a very long immortality really. However, again, factual and true, which is nice.

Deeds or monuments: This is interesting - the idea that some good deeds or some thing that I make could live on after I die. The Egyptian Pharaohs were good at this one. It is, of course, quite difficult and could range from just some family story, distorted from each generation to the next, right up to being Hitler. Yes, sadly, it is probably easier to be immortal by doing something very bad as something very good. It is a goal one could aim for (to do something memorable or long standing), which is nice, and it is factual, if a tad vague and unpredictable.

My words will carry on: This is an interesting idea - that we live in an information age. Before I was born information was very much attached to physical objects (books, etc). Now we live in the age of The Cloud and storage that grows faster than we can fill it. There is no reason this blog would be deleted after I die - not because it has anything profound, but because there is no reason to delete it. It will take an increasingly small amount of available storage to stay on line and searchable. Old blogs will become history projects. It is conceivable that in a thousand years someone could search for these words and find this very blog post. This is quite nice, and very plausible.

But enough of fact, lets consider fiction... and fantasy...

Reincarnation: The idea that you have a soul that somehow continues after death and goes in to a new person. This is all well and good, but the catch is that you do not recall you last life or even benefit from previous experience, even subconsciously. For all practical purposes this is as naff as the carbon atoms being re-used. It's really more of a story of future damnation - where "doing bad" now means a worst body for the next life, but "doing good" means a better one. It is totally crap as an idea of immortality. Of course, it falls over on the factual basis too.

Heaven: Heaven (or hell) or some eternal celestial plane when you die, and living on forever. An interesting, and even appealing, idea (with some caveats). You can see why it is popular. One big appeal is the continuity of consciousness that comes with this. A soul that re-incarnates with no memory is not "me". But moving on seems nice and fits with things that happen in life - one often moves on from one environment to another (job, home, etc). But I have to wonder, and always ask anyone that believes this, "what then?". You really start to run in to problems with the idea of living for ever. After all, even if there is every entertainment possible, even if you had the chance to live out anyone's life in history just for fun, even if you could play any game, when you have done all of those things a billion times, what then? Ultimately you have to consider enough is enough. You have to consider an end to your being. And if you accept there can be an end, then why do you not accept that it happens when you die rather than some arbitrary time later? Not really a workable immortality, and lacks any fact or plausibility, obviously. Shame.

Not dying: This is slightly more plausible - the idea that basically your body does not age and fall apart. But essentially you are still mortal - can be hit by a bus. Living sensibly you have no real prospect of dying and can really plan for the future. The reason it is plausible is that medical science is getting close to curing aging in various ways, or at least understanding it. You can be pretty sure it will not happen in my lifetime - bugger. There are some issues though: One being that you can still die, but another is that this does not work if everyone has it. You think the world is over populated now - wait till nobody dies any more - it won't work and will be horrid. You'll want to die soon enough.

Can't die: The basis of many a sci-fi, the idea that you cannot die (even hit by a bus). This is where your body survives or regenerates magically no matter what. This only works if you are one of a few people with this super power as otherwise we have the overcrowding issue. It also suffers the bored with living forever problem, but more so, as you would eventually be living in the heart of a dying sun, and expanding cooling universe - so getting bored -  only with none of the entertainment of heaven. Crap idea, sorry.

Mind backup: Another fun idea, and a tad less plausible but not quite beyond all possibility is the idea that somehow your mind could be copied. This could be down to micro cellular scans of your dead frozen brain to create a connectivity map. It could be that all that is you can be extracted by observation of you over your life by clever software. More fanciful is some star trek style scanner or transporter. All sorts of concepts of a way to copy your mind, and ultimately run you in a computer. This does solve some aspects of the over population as we could all live in Azeroth and take no space and eat no food. It is just about workable, but suffers the getting bored with living forever problems as above. One big advantage with being run in a computer is that you could sleep - suspend consciousness until something interesting happens. Ultimately all the players are permanently asleep - but technically immortal still. With that extra caveat of sleeping indefinitely, it could work as a concept.

Circular life: This is really one I dreamt up myself, trying to address the problems of the above. It involves a can't die scenario, and a time machine. You live on until life on Earth gets boring (due to a suitable meteor or some such), and then go back in time - say a few thousand years. You live all of that time again, remembering some things from the first time, and so having fun predicting the future. Then you do it again, and again, but your memory is not perfect, as memory is not, and so eventually the time loop is completely repeating with no changes. You live a life of someone that never dies and always vaguely remembers the future, concealing your longevity and blending in and having fun. You really do live forever with none of the problems. It does rely on a fading memory, but you are happy non the less. Bingo - the perfect answer. Oh! Crap! This is even more fantasy than the rest, maybe I have to stick to one of the concepts that is factual or at least plausible.

Please archive my blog after I die. In the words of today's DIlbert: "It's better if the dying and the ash scattering are separate events".

2012-07-23

Loss, latency error correction and retries

Internet Protocol is a packet based protocol - it means that all information carried over IP is broken in to packets - a block of bytes of data. Typically these are anything from 1 byte to 1500 bytes, but can (at an IP level) go to 65535 bytes. When transferring a large file the data will be broken in to the largest convenient chunk (typically 1500 bytes of IP) by the higher later protocol (typically TCP).

The job of the link layer below IP is to carry these IP packets. Even the IP packets may be broken in to smaller packets (fragments) to do that as typically the link layer works at 1500 bytes maximum packet size.

There are many ways this can be done, including Ethernet (over copper or fibre), WiFi, ADSL, Modem, and so on. Each of these low level protocols operate in different ways and have different characteristics. Some times the low level fits these in to smaller fixed size blocks such as 48 byte ATM cells.

One of the key things to understand is that these lower layer protocols are not responsible for guaranteeing delivery of packets. IP as a protocol is not intended to be 100% reliable. It will drop packets because links are full of as a result of errors. The higher level protocols, such as TCP, manage any resending of packets that is needed to get a reliable transfer of data.

However, these higher level protocols work better if IP only drops or delays packets because of congestion. Packets dropped due to errors have a disproportionate effect on overall throughput. To put this in some context, if you have 1% random packet drop on a link, TCP will not manage to fill the link to 99% of capacity as one might intuitively expect. Instead, each time a packet is dropped, TCP thinks that this the result of congestion and effectively slows down the transfer. It is quite possible that as little as 1% random loss will reduce your TCP throughly by 90%.

If, however, the loss is down to congestion, TCP is right to slow down, and that causes the loss to go away. TCP speeds up when no loss. The packet loss is how it knows that it is going too fast (though some other mechanisms do exist for this now). So a full link will, indeed, have loss.

A full link also gets latency - this is delay of the packets being sent. This is because routers have a queue of packets so as to smooth out the bursts of traffic. It turns out that many systems have queues that are too big and so create buffer bloat which makes TCP somewhat less efficient.

So, a low level link passes packets. It might delay them a bit (latency) or drop them (packet loss).

Whilst low level links are not responsible for reliable transmission, it is sensible to avoid errors causing dropped packets. Some links are prone to errors, especially radio and high speed DSL links. These types of links often have an option called interleaving. Interleaving means spreading the bits of a packet out over time and interleaving bits of other packets. This is done in conjunction with forward error correction (there is no point interleaving if not using FEC). What this means is that packets have extra data added which can be use to repair lost bits due to interference. The interleaving is actually a trick to make a long burst of errors appears as a small amount of error in several packets and so be more likely to be repairable.

Interleaving adds more latency as the packets are stretched in time, but it is a fixed amount of latency that is added by this. The extra FEC bits make the link slightly slower (more bits have to be sent for the same data) but again this is a fixed and predictable reduction in speed. There are often different levels of interleaving that can be used and sometimes different levels of FEC. It is a trade off - more interleave is more latency and more FEC is slower throughput, but they make a link more reliable in the face of some types of error.

Whilst most links have a small level of FEC and interleave, there are cases where these are taken to extremes - where the FEC data is hundreds of times the amount of data. However, such things are usually only used for specialist applications such as communications in to deep space (e.g. Voyager spacecraft).

FEC means packets are more likely to arrive and so less are dropped due to error. One thing FEC does not do is re-try missing packets - that is still left for the higher level protocols.

So, why the educational rant? Well, it seems even high level escalations in BT are unaware of basic packet protocols. They stated that packet loss on a line can result in latency. This is simply not true. The loss will mean that at a higher level packets may have to be re-sent by higher level protocols, but does not create latency at a packet level. They also stated that latency (of over a second at times) could be the result of interleaving, not realising that interleaving adds a very specific defined and consistent latency (usually a few milliseconds). You only get latency like that if something queues a packet, and not at the modem level.

Clocks

Some time geeks (should I say Time Lords) checked out my clocks. Seems they are impressed, saying sub microsecond. I have spent all day tryi...