that time again
What is it with me and blogs, eh? I’ve had this thing for 5 years now and barely posted in it. It’s getting ridiculous.
Which is why this.
I aplogise profusely for the terrible image quality, but the Optimus is on its last legs anyway. And has been for about the last year.
Anyway, I’m currently selling some computer bits on eBay if anyone is interested.
A new year is (hopefully) bringing new opportunities, and I’ve decided to put some of my domains to good use by actually offering my services through them:
- Sourceworx, through which I’m offering computer repair services;
- Code Temple, for website design;
- and CustomBoxen, a Web site developed from scratch for designing custom computer builds.
I’m also getting some business cards made up. I’ve ordered some samples off Moo, if the quality of cards they’ve sent me previously is anything to go by, they should be pretty good. Here’s the initial design proof:
To cap things off, here’s hoping 2012 won’t be the total failure 2011 turned out to be. I’m endeavouring to do the absolute best of my ability this year, and I’m going to make damn sure it pays off.
mnemonic.
Today I had to wire up some Category 5e ethernet cabling. I’ve had to do this since I started working in IT but every time I’ve had to resort to looking up the TIA/EIA586B spec via Wikipedia to get the wiring correct.
I’m kind of sick of this, so I came up with a mnemonic to remember it. I’ve seen one but it involved boobies so it’s not really suitable for a work environment. Well, most, anyway.
You have to remember 2 things though:
1. Each pair consists of a Colour/White strand and a White/Colour strand. The Colour/White strands (pins 2,4,6,8) are in UPPERCASE, and the White/Colour strands (1,3,5,7) are in lowercase.
2. Both Blue and Brown start with the letter B, so for Brown I use the letter ‘R/r’, being the second letter. Blue has no letter R so this avoids ambiguity.
If we take o=Orange, g=Green, b=Blue, r=bRown, this gives us:
o O g B g G r R
1 2 3 4 5 6 7 8
If we split this into even/odd pins, we get
o g b r for the odd pins
O B G R for the even pins
The mnemonic is:
our good boys run Over Bloody Great Rails
So next time you have to hand crimp some Cat5e just say this to yourself, and remember the first 4 are the odd pins and the last 4 are the even ones.
Bear in mind this is only valid for TIA/EIA586B. For non-PoE A/B crossover cable, just swap the Green and Orange pairs round at one end. I haven’t thought of a mnemonic for this one yet, though, so you’re on your own. A word of warning though! This will only work for data-only Cat5e — you risk seriously damaging your kit if you run Power over Ethernet or phone signals through this kind of crossover cable. Something tells me that your average onboard Ethernet chipset will not appreciate having 48V DC shoved up its backside.
Remember, with the advent of widespread support for Auto-MDIX there is often no need to run x-over cabling at all and just using straight B-B cabling is the best idea unless neither of the PHYs on either end support auto-MDIX.
ipv4 end.
If you’ve been reading the news recently you may have heard about the impending shortage of IP addresses.”What’s an IP address?” I hear you ask… well, they are the dotted quads that are like “phone numbers” for every machine connected to an IP network (such as the Internet – hence Internet Protocol address).
If you haven’t heard of this shortage — basically, these addresses are needed for a computer to connect to the Internet. An IP address is four numbers, in the range 0-255, however some ranges are unavailable for technical reasons, but these addresses only account for about 2% of all available addresses.
Each of these numbers is 8 bits (binary digits) long, because any combination of 8 bits can represent all the numbers from 0-255. Four times 8 is 32 bits. So 32 bits can hold 232 (2 because of binary) addresses — 4,294,967,296 to be exact.
But there’s a problem.
There are 6,730,168,710 people on the planet at the time I’m writing this*.
Take into account that more people are being born every day, and much of the Western world (especially companies) have more than one publically accessible device on the Internet, and the problem becomes clear.
We are fast running out of IPv4 addresses. So fast in fact:
- ICANN – the Internet Commission for Names and Numbers – will exhaust its IPv4 pool by the end of 2009.
- Regional Internet Registries like RIPE (Réseaux IP Européens) and APNIC (Asia-Pacific Network Information Center) will exhaust their allocations by mid-2011**.
Now I know what you’re thinking.
Why should I be concerned or what the f**k is this guy getting at?
The reason you should be concerned is because of something called Carrier Grade Network Address Translation, or CGN/CG-NAT (as outlined here in an IETF draft). What this does is make your ISP’s network one big LAN, so your ISP has a smaller pool of externally-routed public addresses, freeing up potentially millions of IP addresses and holding off depletion for another decade or so. My own ISP (H3G) already does this.
Thing is, the downsides of CG-NAT far, far outweigh the benefits.
- Online gaming and VoIP (internet telephony) won’t work, because they expect your router to have a public address. With CG-NAT, your router will have a private address, and you won’t have the option of port forwarding as you do now. This allows the carrier to charge you more on telephony and even more if you require a public IP for gaming.
- Peer-to-peer file sharing won’t work. Bittorrent, Gnutella, Edonkey/Emule, Winny/Share all require an external IP unless you want your downloads to crawl along. Without the option of port forwarding, again, the carrier can charge you more for a public IP or deny you service entirely.
- You’re completely open to everything on your carrier’s network. If a worm is making its way round your ISP’s network there will be almost nothing to stop it.
- Staying on IPv4 will mean that ISP’s start allocating smaller and smaller address blocks. This will cause the Internet’s core routing tables (like a “phone book” for addresses) to explode in size until current generation routers are no longer able to handle them. The Internet will essentially collapse under its own weight.
- CG-NAT is a hack. It’s a temporary solution to a permanent problem.
There is, though, a permanent solution.
Enter IPv6. With v6, every grain of sand on the planet can have its own IP address. Carriers are very reluctant to switch to IPv6 because:
- It costs money to upgrade 10+ year old equipment at IXPs***, ISP PoPs, and local loops.
- End-to-end connectivity becomes ubiquitous, allowing far easier p2p file transfers and other services. Being the BPI/RIAA lackeys they are, this can’t happen from their point of view.
- In IPv6, IPsec encryption over public routes is mandatory, making Deep Packet Inspection and traffic shaping outside of your network impossible.
So what can you do to help the effort?
- Get an IPv6 tunnel broker. If you need ease of use try Hexago, or if you’re technical and have experience with network operations try SixXS.
- If you can, get an ISP with native IPv6 connectivity. Here’s a list of IPv6-native providers in the UK:
- If you’re a network operator, peer with BT – they provide IPv6 routes to much of the Internet.
- Bug your ISP for consumer IPv6 support. They will only implement IPv6 when enough customers demand it. Don’t email – emails can be deleted, but phone calls put a voice to an ‘anonymous’ request.
- If you run your own Internet-facing services such as Web or mail servers, make them IPv6 enabled. If they run Linux this is a matter of just doing
modprobe ipv6and ensuring your router can route IPv6 and supports router advertisement. - If you use third party services & web sites you use often (such as Wordpress), ask them to enable IPv6 on their service, if they aren’t in the process of doing so already. If they express interest, point them to the IPv6 migration measures outlined in RFC 5211 “An Internet Transition Plan”.
The main argument against end-to-end IPv6 connectivity is “NAT makes my network secure, since you can’t directly address machines on my network”. This is tosh. NAT is not a firewall. CGNAT puts IPv4 depletion off for a few years, but IPv6 puts you in control of your own machines. Your own Internet connection.
It makes the Internet what it was meant to be.
Ciao,
cmn
*Source: www.gefringraphics.co.uk/Nemesis/population/population.htm
**Source: IPv6Style: IPv4 adoresuno kokatsu jiki yosou nitsuite(“About the expectation of the depletion of IPv4 addresses over time”) and Potaroo.net’s IPv4 Counter
*** With the notable exceptions of AMSIX and LINX (“IPv6 addresses are assigned on request from the range 2001:7F8:4::/48. Again there is one network for the Foundry switched LAN and one for the Extreme switched LAN.”).
asterisk.
After hearing about Asterisk for the millionth time I finally decided to take the leap from boys’ VoIP (Skype) to mens’ VoIP by setting up my own PBX. It took a couple of days for me to learn the basics, but this page will detail my adventures with the *.
My extensions.conf is available here.
Slashdot RSS Feed Reader (ISN 7001*939 / sip:slashdot@sip.uberpipe.co.uk)
Ext 7001 Pri 1
PHP script fetches RSS feed from /., each line is the innerXML from the //ITEM[]/TITLE tag from the RSS feed, with the word “break” appended to each line to signify EOL (otherwise, sentences would run together as the feed gets read to the listener). This is the passed into Flite‘s standard input for speech synthesis.
The get_slashdot_news.php script looks like this (very simple):
<?
$sd_rss_feed = "http://rss.slashdot.org/Slashdot/slashdot";
$sd_sxml = new SimpleXMLElement(file_get_contents($sd_rss_feed));
foreach($sd_sxml->item as $item){
$outstr .= $item->title . ". break.rn";
}
echo $outstr;
?>
The output looks like this:
cmn@ubercdn-tcsov:/etc/asterisk$ php /usr/share/agi-scripts/get_slashdot_news.php BBC's Open Player Claims Not Followed Through. break. Debian's Testing Branch Nears Completion. break. reCAPTCHA Hard At Work, Rescuing Fading Texts. break. Netflix Woes Mean a Gap In Shipments. break. Using Photographs To Enhance Videos. break. What Will Linux Be Capable Of, 3 Years Down the Road?. break. 30% of Americans Want "Balanced" Blogging. break. Slashdot's Disagree Mail. break. Violent Video Gaming Comes To the Wii. break. Slashdot Announces Idle Section. break. Americans Refusing To Wait For Mainstream EVs. break. The Evolution of Sega. break. Literacy Bridge Founder Answers Your Questions. break. Psystar "Definitely Still Shipping" Mac Clones. break. Intel Releases USB 3.0 Controller Interface Spec. break.
extensions.conf:
exten => 7001,1,System(php /usr/share/agi-scripts/get_slashdot_news.php | flite - /tmp/sdnewsout_tmp.wav)
Ext 7001 Pri 2
Output from fLite is encoded using Sox. GSM and uLaw/aLaw voice codecs only carry voice in 1 channel 8kHz 16bit SBC/SL, whereas the output from Flite is 16kHz unsigned 16-bit PCM. Also specified was a 45-bit sampling window (-qs; see man sox) so that Sox would resample the file in the quickest possible time at the expense of stop-band rejection accuracy (very high/low frequencies can “leak” into the passband, accounting for some wierd artefacts from time to time).
extensions.conf:
exten => 7001,2,System(sox /tmp/sdnewsout_tmp.wav -r 8000 -c 1 -s -w /tmp/sdnewsout.gsm resample -ql )
Ext 7001 Pri 3 & 4
The final resampled .gsm file is finally copied into Asterisk’s sound library in /var/lib/asterisk/sounds/, and then played to the caller via Asterisk’s Playback() application.
extensions.conf:
exten => 7001,3,System(cp /tmp/sdnewsout.gsm /var/lib/asterisk/sounds/) exten => 7001,4,Playback(sdnewsout)
Hmm, looking at the feeds (on the sidebar of this page) I want to do a Twitter version now. This could be quite awesome.
Recent Comments