schmerg.com
  • Home
  • Blog
  • About
  • Photos
  • mysparebrain
  • HttpSniffer

Practicalities of home networks

27/6/2014

 
Some notes about home networks, not the how to config your router type stuff, but more physical details (especially if you've got an old house where things are... a bit arbitrary)...

Notes, not a how-to:
  • Wireless only gets you so far
    Old house have solid walls, or are insulated with foil lined insulation (kingspn, celotex etc), and you end up putting things like fridges or other big lumps of metal in awkward spots. Wifi will only get you so far, so wire things where you can
  • Cat6 is now cheap enough to use everywhere
    Most cat5 stuff these days is actually cat5e and will run gigabit, and the finer points of cat5/5e/6 are not immediately obvious to the naked eye, but the price premium that cat6 used to command has now pretty much vanished, so you might as well play safe and always get cat6 where you can (faceplates/sockets, UTP cable, patch cables etc). Of course, I'm taking it as read that you're buying cables etc online for a fraction of the price you'll be charged in PC World, Maplin, etc.
  • Get a LAN cable/socket tester and punchdown tool
    You'll pay less than you'd pay for a single ethernet cable in PC World etc to get both of these, and it makes wiring up sockets (and testing them) so much easier. I have a crimper, but to be honest I don't use as I order patch cables in a variety of colours and lengths as needed, but for wiring sockets and testing cables, these make life easy.
  • Lay cat5/cat6 cable where you can when you can
    Every time you've got a ceiling down, or floorboards up of even walls being replastered, do yourself a favour and run an ethernet cable. Yeah, sure you might not need it, and yeah, ideally you'd run a conduit with a bit of string thru it so you can pull a cable anytime in the future, but realistically, 100Mbit cables will do for the foreseeable future, and Gigabit even more so. So just  lay the cable from somewhere there is or maybe connectivity, to somewhere that it's less so.
    I still regret not putting a cat6 cable out to the garage alongside the power cables I first ran out there (it's now a studio for the wife, so yeah, internet connections are quite handy in there). Anywhere you lay a power cable, lay a cat6 cable too...
  • And wall mounted sockets
    You wouldn't leave a power cable sticking out of the wall with an extension cable socket on it... so where you can, put a socket and (modular) faceplate on it. Oh, and leave extra cable in the wall/ceiling/floorspace so you can pull it and place the box a bit further if needed.
  • Trunking can look naff in the home...
    But can be very handy.. I've got my router and a "double power socket with 4 modular faceplates" patch panel in a cupboard.. but the router is wall mounted high up. So 4 cables in trunking/conduit looks a lot neater that loose cables
  • 16mm x 16mm trunking
    will carry 4 ethernet cables (routers usually have 4 ports) but only if you don't mind leaving the cover off and you pack the cables nicely. Other sizes are available, but 16x16 is small enough to be a handy size...
  • Allow air space around routers/modems etc
    Fibre modems and decent routers tend to run warm - they're built to look small (and frequently "stylish") and be silent, so tend not to have fans and rely on those tiny venting slots for passive cooling. I wall mount mine where I can (vents are usually on the short sides so warm air escapes better when these vents are at the top) and allow free space where I can to avoid them overheating. The wifi of a router will often perform best when mounted as high as possible (hence above metal objects such as radiators and fridges and improving coverage to first floor etc - wifi signal generally spreads as a torus around the aerials) but if you're putting it in a smallish cupboard, the temperature difference may be significant... consider using an aerial cable to put the router down low and the aerials up high.
  • RJ11 plugs will fit RJ45, but it may not be a great idea to do so
    I wanted to move my fibre router away from my master socket (it's a bit of an eyesore). The telecoms cable (RJ11) is 3 twisted pairs, RJ45 (ethernet) is 4 twisted pairs . You can get cables with RJ11 on one end and RJ45 on the other, and in fact an RJ11 plug will plug nicely into an RJ45 socket, so I've done this to move my fibre router,  but you want to be careful if doing so. Ethernet runs at about 3V, whereas the telephone signal runs at something like  45V (when the phone rings, the voltage was sufficient to activate a physical bell ringer). So accidentally plugging the telecoms jack into an ethernet port could damage some equipment. But if you label the sockets carefully, and are will to manage the risk, and your sockets are properly wired up, then you can plug an RJ11 cable from your master socket to an RJ45 socket, and at the other end use an RJ11 cable from the socket into your ADSL/VDSL modem, and it'll work fine. Just don't say you weren't warned (I'll be replacing the two faceplates with RJ11 sockets soon, even tho I'll use the cat6 cable, just to prevent any mishaps). 

Windows 8 / 8.1 in action

29/12/2013

0 Comments

 
Well I've used Windows 8 and 8.1 for a while now, and remain less than impressed in most parts, and downright baffled or enraged by other aspects.

For example, while the boot speed looks impressive it's a bit of a cheat as the PC is essentially useless for at least 30 seconds of so after you login while it actually completes the boot process. So whereas booting windows used to involved (i) power on (ii) wait a minute (iii) logon (iv) wait 5-10 seconds, (v) do something, it now takes (i) power on, (ii) wait 15 seconds, (iii) logon, (iv) wait a minute, (v) do something. And the 30-60 second delay after you logon is there no matter how long the system was idling waiting for you ... so you've actually made it waste more of my time as the workflow is actually playing against me.

Metro interface - think of it as a huge full screen start menu that is showing all the time unless you're actually doing something else, with all the "Programs" menu groups expanded and then flattened into a less than useful single huge wrapped list. Oh, and some programs run "inside" this start menu, but they're pretty much all dumbed down full-screen versions of what you can do elsewhere, but they now run maximised and with no easily visible "close" or "un-maximise" buttons etc (try moving the mouse to top left and a button of an image of the desktop will appear to let you close the app). 

Hooray - Windows 8 has reinvented the "one fullscreen app at a time and no UI multitasking " user experience of DOS 3.x and all those nasty "Boot menu manager" apps that people used to run so that they didn't have to remember command lines.

And if anything breaks? Well the Metro "Windows Update" now crashes for me (or at least the app vanishes when started). No error message, no error log, just starts and .. poof, gone. Luckily you can still find Windows update via the Control Panel. But now I have an "Important update" that repeatedly won't install and crashes out with no more than an 8 digit error code (80072ee2). Any searches for help little more than Microsoft Support Engineers saying "first, and you really shouldn't do this in general, but turn off your anti-virus, then unplug all extra hardware, and then disable services". This is tech support speak for "We have absolutely no idea what's happening and no way to diagnose it, please call back later or just go away".

Well that's OK, I can "Refresh my PC without affecting my files" via the Recovery options. Except that this needs Windows 8.1 installation media to "authorise" the repair, and of course it won't accept my Windows 8 installation media, so by taking the recommended "free update" to Windows 8.1, any repairs will now require me to basically re-install Windows 8 from scratch and then upgrade to 8.1 again (and no doubt make MORE calls to Microsoft to "authenticate" my use of this product key again).

This is why I hate what Windows and DRM have become, not because I'm not wiling to pay, or I want to pirate stuff, but because it makes it painful to be a legitimate user, and punishes the valid and paid up user by automatically assuming the worst of everyone.
My Linux install, by contrast, has just been tweaked and upgraded and repaired and refreshed and has chugged along thru several entire hardware update cycles over the last 10 or so years - when I broke stuff then yes, it needed work to fix it, but it never once insisted that I can't run some program because my "product key" is for an OEM rather than a retail version, or because I don't have a DVD that I can't freely obtain on another machine.

So, Windows 8 convinces me more than ever that this is not a user experience I want for home. The idea of taking support calls from family and friends and walking them thru "charms" and metro apps and "now read the tiny font on the sticker on the underside of your laptop" fills me with dread. Windows XP and 7 were bad enough, but 8? It's just a huge mess...
0 Comments

The slow motion car-crash of installing Windows 8

23/10/2013

0 Comments

 
[Writing this up as I go... will add more as I lose the will to live...]

We've all heard the complaints - but come on, I mean, how bad could it actually be? I mean Windows 7 seemed designed to make you click thru 3 or 4 extra steps to do anything, but I wasn't looking to upgrade an existing machine or even use it for much... just something to try out IE10 and the odd other Windows specific item.

So a Windows 8 OEM DVD arrives in the post (before the OEM/SystemBuilder version gets pulled, I've got a spare SSD (unplug the normal hard drive, just in case), so lets boot from DVD and get started.

And it starts poorly - enter your product key, a product key printed in grey against a dark blue wavy patterned background in what looks like,  oh yes, dark text that's smaller than 2mm tall. I've still got pretty good vision, but come on, this is just ridiculous. In the end I had to take a photo under bright light and blow up the display... and even then some characters are ambiguous until you shine the light in a particular direction (see the photo below - is that last character a P or an R?).

Piracy is a real issue, but is this the best Microsoft can do? Even the most short-sighted pirates aren't going to be stopped by this, but your typical consumer... wow, how to start on the wrong foot... 

And of course, I've had to take a photo to read the numbers, so there's now a copy of the digits, photographed so as to be legible, floating around on a memory stick and perhaps on a cloud service, which surely destroys the entire purpose of making it so hard to read or easily copy in the first place.
Picture
Yeah, good luck reading that without just the right lighting and optical assistance. Is that last character a P or an R... are you sure?

And to be honest, now that I look again I'm still not sure what I typed in - my copy of Windows is reported as activated OK but Windows won't show you more than the last 5 digits (I suspect I'd be committing a heinous crime if the above photo showed any more of the characters). More genius actions of putting the needs of Microsoft over the needs of the user.

The install took about an hour (only a couple of reboots needed, but why do MS installs still need so many reboots), and then an incredibly sluggish set of wizards setting things up before I can get into Windows proper. Lots of full screen displays slowly pulsing between colours, while I'm told to wait... and wait.. and wait... why? 

So the install detects most things (but not my Microsoft keyboard and mouse - seems I have to revert to Windows 7 tech for those), but before I can update to 8.1, seems I have to install updates for 8.0. 

And it seems the option to "check for and download updates, but then prompt me to choose what to install" has gone... I now either trust Windows Update to only update and install things that it wants when it wants, or to turn it off altogether. [EDIT: After upgrading to 8.1, buried in settings I find this option is still available, but it wasn't offered during installation].

Looks like there's 64 updates, ~700Mb... fair enough. Well I can download the updates in a few minutes (70Mb connection), but how long to install them? About an hour of processing (how long can it take to write 700Mb of patches to files to an SSD), and then several reboots, with lots of extended shutdown and boot up sequences as it applies more changes... very slowly again. During this time, I can't use the system - it's installing during the boot process so all I can do is wait. With a typical linux install I boot a live kernel and then can use the system while rebuilding options ... I rarely reboot my linux machine but can recompile updates to gcc and the kernel while still using the system, and the odd change that forces a reboot (kernel/grub change) is an interruption of less than a minute. But under Windows, you lose access to the machine altogether for long periods while it fiddles about.


Finally 8.0 is up to date, and if I can get thru the mess of the UI (did nobody really stop and ask if this was madness - it just runs as a mess, but I'll limit this post to the install process), I can install 8.1.  So the download takes a while, but because it's a Metro app then it vanishes if you do anything useful, so you're not sure if it's still running or died. It does keep running, just very slowly, and then starts the install, again with progress reported via the now-you-see-it-now-you-dont Metro app, until finally it's time to reboot into shiny 8.1.


This of course triggers another long extended cycle of part-install, extended-shutdown, extended-startup, and reboot again, (and again). A good couple of hours after the download ended, I'm still looking at the most visually annoying spinner since the hourglass, and a "45% complete"  screen, and waiting...


Luckily I have other computers and work to get on with while all this is happening, and the typical home user doesn't install Windows from scratch, but does the average home user really need to spend half a day upgrading to 8.1 in this day and age? This is upgrading a clean install of 8.0 on an SSD, with a genuine quad core processor, 8gb RAM, and no fancy obscure hardware. And at the end, all those wizard-style setup screens that I just endured a few hours ago (no I don't want Bing, no I don't want filters, no I don't want intrusive odds and sods, no I don't want everything I type triggering searches across my hard drive, my email, bing and several other cloud services), I have to do them all again... and then wait for that pulsing screen to "update a few more things".


And when we're finally done.. what's that .. nearly all of the 30Gb of disk space I allocated is used? Come off it... and why is everything running so very very slowly. Well it turns out that it's decided to make a 4Gb swap file on an SSD (not that smart) and is hammering the swap file (system processes show disk bandwidth usage at 100%), and it's made a hibernation file of 6+Gb so it can use this to do it's "pretend to boot quicker by actually hibernating trick". It's done this without noticing that it's now got less than 1Gb to spare on the only drive it (currently) has access to. So turn off the page file, and then try to figure out how to tell it to ditch the hibernation file (you need an admin cmd prompt, which in itself is a struggle to find first time, and then an obscure command as there's no UI to turn hibernation completely off).


Finally, a day later... I have a desktop... and what a mess of a desktop it is... I'm greeted with recipes, the weather in New York (??), news headlines that would make the Daily Mail look authoritative and guff... It's got the visual appeal of a letterbox full of advertising junk mail leaflets, but I'll save that for another post.



0 Comments

Back-dated blog posts

11/5/2013

2 Comments

 
Weebly lets you back-date posts, and the it supports rich copy-paste, so I've re-posted some of my more recent blog items from the old site... 
EDIT: to answer the comment below, when you create/edit posts, there's a little calendar indicator next to the date (see below). Click that and choose a date from the pop up date-picker.
Picture
2 Comments

Trying out weebly

3/5/2013

0 Comments

 
So now that posterous has closed up shop, having a look at weebly. Seems to have a lot more to offer... but no way to bulk upload my old content... ho hum...
0 Comments

Couple of bugs in Chrome

30/9/2011

0 Comments

 
Finally got round to reporting a couple of annoying bugs in Chrome (well, actually in WebKit I suppose as they seem to also occur in Safari) with regards to SVG use.

 Test cases: http://www.mysparebrain.com/svgbug.html

 Logged as http://crbug.com/98391 and http://crbug.com/98392

Here's hoping I can get rid of my nasty hack-arounds that force redraws at appropriate times...

0 Comments

F1 elapsed time lapcharts on f1datajunkie

20/5/2011

0 Comments

 
Been doing some visualisations of Formula1 timing charts, based on the work of Tony Hirst.

Published a short piece on his f1datajunkie blog here with the results



0 Comments

Tracking updates in web libraries - a small development pattern

19/5/2011

0 Comments

 
My webapp uses various API's and in particular it pulls in things like Twitter's widget.js - which doesn't have a github home or similar (unlike, say, underscore.js that I can track from its source repository).

I could save my own copy and have my webapp always use that, but that's not such a great idea as when twitter change their API, they also change widget.js to compensate.

So my webapp always pulls in the master authoritative copy, but then I tend not to notice when it changes - and sometimes this breaks my assumptions about how it works (also, changes in widget.js are a good way to track changes to certain API details that I access outside of the widget.js library itself).

So, as there's also no RSS feed about updates or similar, I instead store widget.js in my source repository, even tho my app doesn't use the copy I've stored, and in my development workspace I regularly regularly fetch the latest widget.js (for me, this is in the script to restart my personal development environment, launch the webserver etc but you could do it in a cron job)

   wget -O js/3rd/widget.js http://twitter.com/javascripts/widgets/widget.js

And thanks to the wonders of distributed source code control systems and their "no check out required" model (I use bzr, the same is true of git and others) then if the authoritative version hasn't changed, then this has no effect, but when it does change, I suddenly see the file as modified in my "modified files" report ("bzr status"), and I can diff the new against the old and see if I need to react accordingly.

It's more of a hack than anything else, but works surprisingly well, and has stopped me being caught out (especially with "silent" changes where there's no official communications about such things).

0 Comments

Other projects - my github account and UglifyJS

11/5/2011

0 Comments

 
I've been adding some features to UglifyJS - a rather nice JavaScript parser / compressor / beautifier that is itself written in JavaScript.

It implements a JavaScript 1.5 parser, and then has various routines to walk the AST doing things like renaming variables and collapsing selected expressions.

I've added the ability to safely replace selected global symbols with constant values (which can then allow the minifier to collapse entire sections, like #ifdef in C++) which has been pulled into the main tree, and the ability to spot and shortcut constant expressions involving &&, ||, and ?: (ie eliminate the RHS when a true constant value on the LHS means that the RHS will never be evaluated).

I've also added the ability to mangle selected object property names, which obviously needs some care, but is great for obfuscating internals and can shorten long method names etc. This change is only in my fork for now - https://github.com/schmerg/UglifyJS (see the mangleprops branch)

I also toyed with the idea of extending the parser to understand some features of later versions of javascript (eg the very useful let statement of 1.7) and have an option to compile them down to javascript 1.5, so that
   var x = 1, y =2;
if (something) {
let x = x+y;
console.log("X is now "+x+" and y is "+y);
}
console.log("X ends with value "+x);
would be re-written as 
   var x = 1, y =2;
if (something) {
(function(x) {
console.log("X is now "+x+" and y is "+y);
}(x+y);
}
console.log("X ends with value "+x);

Yeah, I know about things like coffee-script, but I don't want to be debugging something too far away from my original source, and I hope eventually javascript 1.7 will be supported in more browsers (in which case I can stop using this conversion)

And I'm also thinking about inlining selected methods - I know javascript engines do this internally, but there are sometimes big wins to be had from inlining trivial functions (which you've coded a such to avoid repeating the same expression endlessly). Again this is a bit like the pre-processor in C++, but because it would be done as part of the proper parse process (rather than limited text substitution) then I think it could be done much more safely.

Anyway - I'll post things to github as I go...

 

0 Comments

Other projects - extensions for Google Chrome

11/5/2011

0 Comments

 
I wrote a couple of small extensions for Google Chrome, aimed particularly at small annoyances for developers.

It's a great web browser for developers, and there's the Web Developer extension amongst others, but these are two extensions that I can't find elsewhere

  • JsError is a minimal extension to flag errors in a page (typically in the javascript) without the need to open the developer tools (which may trigger breakpoints and the like) within Google Chrome™.
  • ForceReload is hard reloads the current tab to overcome caching issues when using Developer Tools for Google Chrome™
I should put the code up on github (it's only a few lines) but there are the links anyway.

0 Comments
<<Previous

    Author

    Software bloke, founder of mysparebrain.com

    Archives

    June 2014
    December 2013
    October 2013
    May 2013
    September 2011
    May 2011
    February 2011
    November 2010
    October 2010

    Categories

    All
    Geek
    Uber-geek
    Web

    RSS Feed

Powered by Create your own unique website with customizable templates.