Archive for February, 2022

February 23rd, 2022
6:23 pm
Running a network cable to a garden office

Posted under Hardware & Networks & PC
Tags

I am running 2 x CAT6 SWA cables to a garden office, along with a 6mm SWA cable for mains power.

I checked widely online about the wisdom of going with CAT6 SWA UTP vs FTP or S/FTP, and opinions as to how well this will all work vary widely – it was very hard to get a clear consensus on performance, particularly re the issue of how close you can run the CAT6 cable to a mains cable without compromising performance, although a number of posts cited not having any problems in practice. I had already opted for SWA UTP for simplicity, having previously reckoned that CAT5e might even be enough. The plan was to put a gigabit switch at each end, which should give far more performance than actually needed – The need to shovel large amounts of data between the house and the garden office would be minimal – possibly occasional copies to/from the TV pc, and some RDP use from the house to an office PC. The main need is to facilitate connection to the internet, which is a moderate speed FTTC connection to Zen Internet, typically giving about 30Mb/s down and 6-7Mb/s up, after significant effort by Zen and OpenReach to solve some line/connection problems. Slower internet is the price for living in a quiet rural area!

Having already obtained the cable, I was reluctant to switch and also have the additional size and larger bend radius of S/FTP, plus the additional complexity of the correct earthing and screened keystones etc.. I planned to just ask the installer to try to maximise the distance between the network and mains runs of cable, but was concerned enough at a late stage to try a simple test.

I ran an old cat5 UTP cable of around 15m in length as close as possible to a long mains extension, such that for around 7-8metres the 2 cables were tightly adjacent all the way along. I then connected one PC to a switch via this cable, and then ran a lan speed test from this PC to another target PC on the same switch, using LanBench on both PCs, a simple open source lan tester. I ran various tests both with the mains lead unplugged, plugged in, and actively powering a 2KW fan heater, all while the test was running. Whilst initially I did get some significant variation in performance, after experimenting I concluded that this was not due to the mains cable – some other factor was at play. In the end I ran with 2048 byte packets, and 4 simultaneous connections – it was upping the connection count to 4 from 1 which gave better and more consistent performance all round.

The results gave a send rate of approx 900-1000Mb/sec, and a receive rate of 250-300Kb/sec. Crucially, this level of performance was the same whether or not the mains was connected or in use during the test, and over a significant number of repeated tests.

This was not a definitive test, and it was over a much shorter distance than the SWA cable. The latter will likely be around 40m, but hopefully with minimal closeness to the mains cable compared to this test. The test did however rebut a significant number of posts online which said on no account must the cables be closer than a few inches and even if perpendicular you could get issues. Whilst the official rules might in theory mandate tighter restrictions to ensure all edge cases are covered, this simple test did give reassurance. In addition, the SWA cable would be CAT6 rather than CAT5, and the earthing of the SWA shield should go some way to help with screening interference at mains frequencies as well, in addition to the balanced line working of the twisted pairs which would eliminate common mode interference.

Comments Off on Running a network cable to a garden office

February 21st, 2022
6:50 pm
Enabling External access/port forwarding with the Fritzbox 7530, and using the MS RDP Android App.

Posted under Hardware & PC & Windows & Windows 10 & Windows 11
Tags ,

This is fairly straightforward, but appears to be subject to the fundamental limitation that the Fritz Box cannot make use of multiple external IP addresses for the port forwarding, even if you are on an 8 port subnet like I am. I made absolutely sure that the Fritz Box was aware of the subnet by accessing its menus, then navigating to Home Network/Network on the left menus, and then clicking on the Network Settings tab. You then click on Additional settings to reveal some extra settings, and then scroll down and then click on IPv4 settings. Finally, if you scroll down and look under Public IPv4 Subnet you will see the public subnet visible/allocated to the Fritz Box, as a prefix and network mask.

In my case this was clearly an 8 port subnet, but unfortunately the fritz box only allowed port forwarding using the primary router public IP address.

I managed to work within this limitation however, as you can still forward multiple different ports to multiple different local devices. For example, to enable inbound RDP access to a PC as I did, do the following:-

1/ Visit Internet/Permit Access on the menus, and then click the Add device for sharing button.

2/ Select the target PC/device at the top, then at the bottom click New Sharing, which configures the desired sharing for the device.

3/ Then Click the Port Sharing radio button (as opposed to the default My FRITZ! sharing). Under application, I selected MS remote Desktop as the Fritz box was aware of RDP. You can select Other Application and enter the ports manually if you are working with an application that the Fritz box is unaware of.

4/ You then have 3 ports to configure, which is slightly confusing – I was not clear on all of this and the online help was blank on some of this detail. When I selected MS Remote Desktop, Port to Device and through… were both set to 3389, which was the correct internal port to use for RDP. Below this was Port requested externally, which is the actual external port you want to use. In one case therefore I left the defaults, but for a second PC, I set the external port to 3390, which allowed me to use the same external IP address for 2 different RDP configuration to access 2 different internal PCs successfully. I was not clear however what the distinction between Port to Device and through… was all about, but did not need to touch it.

5/ When accessing via the MS android RDP app, I was able to configure multiple PCs as required, and could also configure both Lan and internet configurations of the same PC so that I could access it both ways from my phone. A key trick here is that this app does allow a different RDP port to be used. Under PC name for the internet, I set the target IP address (the public IP address of the router), and appended a different port using e.g. :3390 notation to use port 3390 instead of 3389. You are able to give an additional friendly name for the PC when doing this, which is useful when configuring external IP access. Internally on the lan you can just use the standard windows network names. This then all worked fine and I was able to use my phone both to remotely access the fritz box to wake the PC, and then remote login using the MS RDP app to access it.

 

Comments Off on Enabling External access/port forwarding with the Fritzbox 7530, and using the MS RDP Android App.

February 21st, 2022
5:59 pm
Configuring Wake On Lan with Windows 10/11 and Fritzbox 7530

Posted under Hardware & PC & Windows & Windows 10 & Windows 11
Tags ,

As I found previously, there were a number of things to get right to make this work, as follows:-

1/ The bios settings for the motherboard need to be set correctly to enable it, and whether/how to do this varies depending on the motherboard. My older Gigabyte Z77-D3H at version F18 did not have a setting to enable this, but it turned out that it worked anyway once all the other issues were correctly address as below. My newer Asus Prime Z690M-Plus D4 did need a setting changed, and this was somewhat subtle. For this motherboard, from the home page you need to visit Advanced Mode/Advanced/APM Configuration/Power on by PCI-E, and enable this option. Note that you only find out from the prompt when you actually visit this option, which is labelled as PCI-E, that it also affects the onboard LAN as well as any PCI-E adapter. This was not clear.

2/ In Windows 10 and 11, open the control panel and visit Hardware and Sound/Power Options, and then select “Choose what power buttons do” on the left menu. Then click “Change settings that are currently unavailable” at the top, and this enables the “Turn on fast startup” option, which should be disabled. Whilst I am not certain that this is required, it was cited in this post re wake on lan, and turning it off did not slow boot time noticeably on my PCs, so I left it on.

3/ You then need to change the network adapter settings. Open the device manager and located your network adapter. Check the advanced settings and ensure that Wake on magic packet is enabled. Then, under the power management tab, allow this device to wake the computer, ensure that Only allow a magic packet to wake the computer is enabled. Again, I am not certain that the latter is absolutely required and I did get some intermittent behaviour when testing wake on lan, but in the end I have left this enabled, as I have no current requirement for any other way to wake the computer.

4/ On the Fritz Box 7530, wake on lan is built in. Navigate to Home Network/Network using the menus on the left, and then select the device that you want to wake. Note that it may be under active connections or idle connections in the list, and it is not clear what an idle connection means – a pc that is on/booted can appear in the idle connections list. Either way, this does not matter. You just click on the pencil icon as if to edit the settings for that device (even though you are not changing anything, this is where you will find wake on lan). Scroll to the bottom and you will see a button labelled Start Computer, which will successfully perform a wake on lan if all is in order. Note that to the left of this button is a check box labelled Start this computer automatically as soon as it is accessed from the internet. Whilst it might be convenient to enable this to save a manual wake on lan via the fritz box when accessing from the internet, I have elected not to do so at present as my needs for this are infrequent and it gives additional protection for the lan, as a remote fritz box access is needed to trigger this, which is of course password protected. However, doing it automatically would be a lot more convenient as accessing the fritz box remotely to do the wake on lan is perfectly possible and relatively straightforward, it does require several steps.

Once all this was done, I achieved consistent wake-on-lan behaviour using my Fritz Box 7530 to perform the wake on lan, as per this post here.

Comments Off on Configuring Wake On Lan with Windows 10/11 and Fritzbox 7530

February 18th, 2022
10:05 am
angular 11 node-sass deprecated warnings

Posted under Angular & Web
Tags

I received these warnings when building an angular 11 upgrade of microapps from angular 6. This post details the issue and remediation.

I checked and had already removed all the node-sass entries from package.json files and re-ran npm install and rebuilt, so have taken no further action at the moment. There may still be a few warnings lurking due to package-lock.json issues as discussed in the above post, in which case I will take a further look  in due course as required and update this post.

Comments Off on angular 11 node-sass deprecated warnings

February 17th, 2022
7:06 pm
Adding Bitbucket Authentication to Webstorm

Posted under IntelliJ
Tags

I had to do this again for a new Windows 10 installation and had forgotten all the details, so am recording it here to save searching it out next time. Actually the help on Bitbucket covered it well.

1/ My preferred way to authenticate with Bitbucket is to use an ssh keypair, which is set up with ssh-keygen

2/ Follow the instructions on bitbucket hereIn my case, I used the defaults for everything including the file location, and did not use a pass phrase. Per the instructions, as I was using Windows 10, ssh-keygen ran fine direct from a command prompt with no issues, rather than needing a git bash prompt.

3/ As per the instructions, I added the public key to bitbucket.

4/ I added the SSH configuration to Webstorm under File/settings/Tools/SSH Configurations. The host was bitbucket.org with the default port. The user was the bitbucket username. I picked key pair as the authentication method, and webstorm already had the correct default location for the ssh private key file. I left the passphrase empty, and hit test connection – this worked ok, so I saved the settings.

5/ When I did my first commit/push, webstorm requested a git user and email so that the change would be tagged correctly – note that this is not an authentication username, so I just used my standard abbreviation that I use with source control.

Following this, commit and push worked fine.

 

 

Comments Off on Adding Bitbucket Authentication to Webstorm

February 2nd, 2022
6:30 pm
Issues when reinstalling NVM/NPM/Angular environment under new PC build

Posted under Angular & Web & Windows 10
Tags , ,

Update/Fix 24/2/2022

It appears that in the end much of this issue was down to a basic error on my part! I have previously documented here and here about the collision of object namespaces when loading multiple webpack bundles for separately deployed web components/angular elements. My solution is to perform a custom post build step to rename the root webpack objects to be unique for each webpack deployment.

This requires building to be done using npm via npm run build rather than the basic angular/cli ng build. Unfortunately I did the latter when initially rebuilding the microapps, hence the post build step did not run and I suffered the consequences I have seen previously due to namespace collisions. Once I rebuild everything correctly, all the microapps worked fine.

Original Post

I had reinstalled a PC from scratch with Windows 10, and this required rebuilding my whole dev environment from scratch. I hit some issues when I just simplistically tried the latest node via nvm install, and the latest angular (14) on projects previously run under angular 11 – builds failed and would not complete. Initially I had failed to install node-sass, so installing this helped, but I was still getting webpack errors on building.

I reverted to angular 11, but also reverted node as well. Finding a compatibility matrix for the versions was tricky but this one on stack overflow was a real help. I therefore reverted node to 12.11.1 using nvm install 12.11.1., and reverted node-sass to 5.0 due to some build errors that stated that 4.0 or 5.0 was needed.

Having done this, I was able to do a build using ng build, but this would not run using http-server, which gave the error “Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client”. My next action was to suspend/pause Kaspersky Antivirus, which helped, as it revealed a firewall port that I needed to enable. When I then immediately tried running directly using ng serve, this worked fine and I was finally able to successfully run my microapp fabric.

I then uploaded the built microapp as a test version under my zen hosting and tried running it from there. This ran fine with no errors, pointing to a local issue with my http-server. This likely needed an older version. I reverted to 0.12.2 to correspond with the current version when I last worked on the microapps, using the http-server version list here,  but this did not work.

I then checked exactly which versions of key components had been used successfully under Windows 7, and reverted to exactly those versions. These were v15.5.0 of node.js, and v0.12.3 of http-server. This worked successfully, and I was able to run compiled versions of both the fabric and the dataview microapp. Whilst I could have checked the versions used previously more carefully, this certainly highlights the potential brittleness of the environment as a whole to version changes.

I then upgraded http-server to the latest version and tried again, and everything still worked fine. Therefore, this definitely appears to point to an issue with the version of node.js alone. It also highlights issues with the version matrix I hunted down previously as above. I ended up using a later version of node which was technically incompatible in terms of the above version matrix, but which worked successfully, whereas a version mandated by the version matrix failed completely with the above error.

This whole area of versioning can certainly prove to be an unexpected and ill-documented minefield!

 

Comments Off on Issues when reinstalling NVM/NPM/Angular environment under new PC build