November 28th, 2025
12:23 pm
Partially Syncing an iPod to the iTunes Library

Posted under Knowledge Base & Windows
Tags , ,

I needed to do a partial sync of my legacy iPod classic as my total library is now over 80GB, the size of its internal hard drive. I have never had to do this before, and have only ever done full syncs.

When trying to sync to add some newly added music in the library, it gave up due to lack of space. I tried various ways to just copy albums over but could not find a way to copy over manually or do a partial sync. Opening the iPod in the left column menus did show a breakdown including music, but I could not drag and drop albums or songs to this, even though it is what you normally do to add manually to playlists.

In the end I found the answer. Right under the top text menu bar is a bar that normally shows just “music” on it. However, when the iPod is connected to iTunes, it shows just to the right of the “music” option, as a little iPod icon.

Clicking this shows a whole new view of the iPod device, including a different set of left column menu options for the device – fundamentally different options compared to just clicking the iPod under devices in the left hand column when in the “normal” music mode.

At the top of the left column options is a Settings group, and for example clicking on Music under this group gives a new screen which allows either full sync of all the music, or selcted syncing, via the radio group near the top. Note that there is a tickbox at the top labelled “Sync music xxxx songs” – unticking this removes all the music from being synced.

When you click on the radio button for “Selected playlists, artists, albums and genres” rather than “Entire music library”, you get the ability to filter/select on numerous choices per the radio option – you can filter on a combination of playlists, artists, albums and genres, giving the ability to sync down to the album level.

You can also do similar partial syncs which include Movies/Audiobooks etc. by clicking these under the left column settings menu and filtering these (I mostly did not have any). You do the required selections for all these categories first if you have more to do than just music – the bottom bar with its sync button on the right remains for all the categories under settings – just the filtering options change depending on the category selected.

Having made the selections for all the categories, you then click Sync at the bottom right, and this does a complete sync of the device according to what you have selected.

Once done and synced, clicking the left arrow at the top left of the bar which earlier had the “Music” option under the top menu bar closes this new device view and returns to the original iTunes music view. Crucially, when you do this, the “Music” option again appears, and the iPod icon again appears just to the right of it. Note that for some reason, unexpectedly, the right arrow just to the left of the “Music” option does not take you to this new iPod device view – you have to click the iPod icon directly rather than right arrow.

All perhaps a bit hidden and quirky in places, but I was very pleased to be able to selectively sync to the iPod as I wished.

Comments Off on Partially Syncing an iPod to the iTunes Library

November 28th, 2025
11:41 am
Zen SOGEA switchover issues

Posted under Hardware & Knowledge Base & Networks & Telephony
Tags ,

I have just been notified by ZEN of the change to SOGEA in 30 days time.

Having looked into this, here are the main points:

1/ The switchover is transparent from an internet viewpoint. The internet should continue working with no change to the master socket/connection, and the FritzBox 7530 should not need any reconfiguration.

2/ I can use the RJ11 phone connector on the FritzBox as an analog phone connection to the existing BT 4600 base station by replacing the existing analogue phone cable with an RJ11 – RJ11 cable (I have already ordered one of these).

3/ Whilst the Fritz 7530 does support DECT, it appears that BT4600 handsets cannot connect to the Fritz 7530 wirelessly as a base station. This is discussed here, and appears to be due to the lack of DECT-GAP support in the BT 4600:

4/ Going forward, I would like to dump the BT4600s as they are becoming faulty/batteries failing etc. Ideally I would like some kind of local VOIP based solution as this would allow phone handsets to work anywhere we have wifi, particularly in the garden office. Otherwise, the DECT wireless network needs to cover down to the garden office, which would still be a challange, and seems unnecessary. We already have good Wifi coverage in the house and garden so it seems pointless to duplicate it for no reason. However, I have yet to find a good solution to all this.

5/ There are plenty of good DECT phones still available, per the Which? reviews here:
They even recommend the BT 4600 still, but the reviews don’t seem to mention DECT-GAP.
However, as above, I am reluctant to dive down the DECT route again as we already have good wifi coverage.

Comments Off on Zen SOGEA switchover issues

November 21st, 2025
11:05 am
HP Procurve 1810 – blown power supply

Posted under Hardware & Knowledge Base & Networks & PC
Tags ,

We had a power cut recently and as a result, the Procurve 1810 switch in my garden office stopped working. After investigating, I discovered the PSU was faulty, likely blown by a voltage glitch during the power cut/restoration (it was also pretty old having been purchased in 2009). I had a spare PSU and a spare switch, but wanted to have a replacement on hand in case another one blew. I dismantled the old PSU to see if it had an internal blown fuse that I could replace. It used a very non standard screw to hold the case together, a bit like a torx but with a centre spigot. I managed to undo it with a torx, but even then the case was very hard to prise open – they definitely did not want you to dismantle it! Once I had it apart there was no fuse so I declared it completely dead.

The issue was that as the kit is proprietary HP, it uses a completely non standard DC connector on the switch that I could not find a PSU for readily anywhere. As the switch is old, there were a few places offering compatible PSUs, but I could not be certain that they had the correct DC connector. The frustrating thing was that the PSU requirement was a standard one, 12v 1.25A, which was available cheaply in many places with a standard 5.5mm x 2.1mm DC connector, and I had a spare one of these. Whilst I also had a PSU with an adapter on the end and a choice of DC connectors especially for this kind of situation, none of the choices I had matched the Procurve PSU connector.

I had a couple of the 5.5 x 2.1 soldered cable mounting female sockets so elected to chop the DC cable off the old supply and make my own adapter. I left plenty of cable length so I could easily chop the end off and redo it if the adapter went  wrong in future. Some care was needed soldering the cable socket – I used heat shrink sleeving over the centre pin joint, as the outer soldered joint was very close. I also used some larger heat shrink over the whole thing. In retrospect, I wondered if I could have added another piece of heat shrink over the outer soldered joint as well, having squeezed the end crimp solely over the outer cable run, not both. However, I think I was borderline tight as it was re getting the plastic cover on, and all the heat shrink was fine. In future I might consider just heat shrinking both connections separately and not using an outer one at all, but the tricky balance is that there is no overall cable clamp and I liked the idea of an overall heat shrink.

The existing soldered cable sockets I originally obtained from Maplin are available on Amazon here. You can also buy pre wired sockets with a length of cable (which would need an inline cable-cable-joint) but the only ones I could find were panel mount sockets rather than cable mounted.

Comments Off on HP Procurve 1810 – blown power supply

March 31st, 2025
3:02 pm
EE Mobile Router Backup via Fritzbox 7530 – further points once used for real.

Posted under Hardware & Knowledge Base & Networks & PC
Tags , ,

This follows on from my previous post here.

I had to use the mobile router backup in anger for the first time last Friday. Unfortunately, as I had not used it since 2023, the remaining minutes, existing sim and phone number had expired, as I had forgotten to periodically refresh them. After around 6 months or 179 days your sim/account hibernates, as per here. You have another 90 days to reactivate it after which it dies completely.

I therefore had to obtain another sim. I ordered a free one from EE by phone, but as this was going to take a few days to arrive, I just went to the local EE shop and bought a sim with inclusive 25Gb data pack for £15.

To manage the sim online at any time (which is the most convenient way) you register a new account with My EE here. Once you have done this, you can register the new sim with My EE by logging into your new account and selecting ‘Link a product’ and giving the SIM’s phone number. Note that a confirming text will be send to the sim phone number with a code which you must enter online. The easiest way to do this is to use a mobile to connect to the 4GEE router’s own wifi, and then visit 192.168.1.1 and login using the password you used when setting up the 4GEE mobile router. From the admin pages for the router, you can select the Status page option, which then has an SMS inbox link. This will allow you to view the text and get the confirmation code to register the SIM online. You can then select Manage Products when you log in to My EE, and your sim will appear in the list.

Note that when adding more data for the sim there is a difference between an addon as mentioned in the previous post, and a new subscription pack. The addon prices seem to be significantly more than just allowing the subscription pack to renew. You can change to another subscription pack but you have to stop the first pack completely, which you can do via a text or by visiting My EE and managing your pack(s) here. I will need to stop my pack (i.e. stop the auto renewal) within 30 days to stop it trying to renew. I believe this will still allow the minutes to be used, but the usual timeouts will apply, i.e. the data expires in 30 days for the pack that I bought.

Note also that all EE payg from March 2023 is limited to 25Mb download – I must have just missed this last time which is why I got the faster rates. As that original SIM has now died my new sim is subject to the limit. This is not too bad as the speed is still perfectly acceptable for streaming etc. The maximum is not much faster than the previous speeds of up to 20Mb that I was getting with the mobile router in the house, but as I have already set up the EZCOO usb extender, it is still worth keeping as I am still getting the best speed I can especially if reception conditions are difficult.

Also I used backup switchover ‘in anger’ – generally seems good, takes a few minutes either way. However once or twice when I turned off the mobile router completely in the Fritz internet mobile menu, the DSL popped up instantly which looked suspicious – as if it was already working and back on but didn’t show it. It does however have to be on for 30 minutes continuously in order for the auto switch from backup to happen.
At the end of the day, it is easy to switch mobile completely on or off in the menu, so manually switching over at any time if desired is straight forward, but the auto switch was pretty good.

Note that when the mobile router is in use via the fritz box, the DSL connection appears completely off/dead even if the FTTC connection is all working. You also cannot do a DSL test with the Fritz Box when the mobile backup is active, and neither can you do a full end to end test from the ZEN portal.

Re Zen diagnosis, whilst Zen were quick to respond and helpful, their outage page still showed no outage at all for our area code even when we had experienced the outage for several days intermittently, so we did not discover what the actual problem was that OpenReach were fixing. Zen did point out that you can run your own diagnostic test from the portal login, by selecting diagnostics after logging in, and then selecting (in my case) the business fibre 2 product (i.e. fttc). You then get a popup with a diagnostic link which takes you to a diagnostic test page to run a test. You can also see the history of tests either you or zen engineers have done. In my case this went back to the previous failures in 2023, all of which were there.

Comments Off on EE Mobile Router Backup via Fritzbox 7530 – further points once used for real.

October 24th, 2024
11:24 am
OneDrive file sharing – password protection issue

Posted under Windows & Windows 10 & Windows 11
Tags ,

I have often used file sharing on OneDrive. This can be used to create a shortcode url link which can be passed to anyone else for use. The following options are available:

  • A link may be emailed to a set of people, or copied directly as text and forwarded/send using any other means you like. It can also be used as the target of another url, such as a bit.ly one or in my case, a sailent soft shared url.
  • A link may be view only or editable
  • A link may be password protected by clicking the settings gearwheel on the intial share dialog for a file, and an expiry date may also be set. Note however that these options are only available for a paid for office 365 onedrive service, i.e. you must pay to upgrade a free account before you can password protect.

Comments Off on OneDrive file sharing – password protection issue

February 6th, 2024
1:52 pm
Progressive Web Apps – Dynamic Cache Script Creation

Posted under Angular & Knowledge Base & PWAs & Web
Tags ,

My PWAs dynamically create and load a url cache in the service worker, when the installation event fires.
As this cache contains all the files in the dist/project-name directory tree (i.e. the entire deployment) for an angular app, I was keen to create the script containing the list of files to be cached dynamically as a post build step, so that the post build script could be generic and adaptive to the build contents.

This turned out to be pretty straightforward. The following points are noteworthy:

  1. I wanted to dynamically create a JS file which defined an array containing the urls of all the files to be cached. This script would then be included by the service worker to be used when it created and loaded the cache, during its install event.
  2. The above JS file was imported by the service worker script. I had some issues getting this to work via modules/module support, and noted from this post here that using the importScripts function instead (e.g. importScripts(‘pwa-cache-urls.js’);) gave better cross browser support/backwards compatibility. I therefore switched to using importScripts and it all worked fine.
  3. glob.sync was used to generate an array containing all the deployed files to be cached, excluding directories using {nodir: true}. This was then mapped/formatted as required into a string containing all the script for the file.
  4. fs.writeFileSync was used to create the script file from the above string.
  5. The project name and the generated script file name were passed as arguments to the post build file, in package.json. Whilst I did look for a dynamic way to derive/lookup the project name, an easy way to do this was not obvious and there was no loss of flexibility in just passing it in the postbuild script definition in package.json, along with the name of the dynamically created script file.

This all worked fine, and I was able to create a generic post build script that would be able to discover the files to be cached dynamically and create the script for them, for any angular project I was working with.

The prototype example code for the post build is below:

const glob= require(‘glob’);
const fs = require(‘fs’);

const args = process.argv;
validateArgs(args);
const projectName = args[2];
const cacheJSFileName = args[3];

const pathPrefix = ‘dist/’ + projectName + “/”;
const cacheJSFilePath = pathPrefix + cacheJSFileName;

fs.writeFileSync(cacheJSFilePath, buildCacheJSFile());

function validateArgs(args) {
  const argErrors = [
    “Project Name and Cache Filename were not passed to post-build.js”,
    “Cache Filename was not passed to post-build.js”
  ]
  if (args.length < 4) {
  throw new Error(argErrors[args.length – 2]);
  }
}

function buildCacheJSFile() {
  const mapPathDelimiters = (path) => path.replaceAll(“\\”, “/”);
  const mapPathPrefix = (path) => path.replace(pathPrefix, “”);

  const cacheJSFilePrefix = “const CACHED_URLS = [\r\n ‘./'”;
  const cacheJSFileSuffix = “\r\n]\r\n”;
  const formatCacheJSFileEntry = (file) => “,\r\n ‘” + file + “‘”;

  const cacheFiles = glob.sync(pathPrefix + “**”, {nodir: true});
  let mappedCacheFiles = cacheFiles.map((file) => mapPathPrefix(mapPathDelimiters(file)));
  let cacheJSFile = cacheJSFilePrefix;
  mappedCacheFiles.forEach( file => cacheJSFile += formatCacheJSFileEntry(file));
  cacheJSFile += cacheJSFileSuffix;
  return cacheJSFile;
}

Comments Off on Progressive Web Apps – Dynamic Cache Script Creation

February 2nd, 2024
11:43 am
WordPress post content has disappeared when trying to edit existing post

Posted under Knowledge Base & Web & Wordpress
Tags , ,

I just hit this when editing a couple of existing posts.

All the post content except the header had disappeared, and I did not seem to be able to recover it. Whilst trying, I did receive an error once about the block format, indicating there was a bug with the block layout additions in WordPress. It is possible that there is also an issue with an existing plugin/plugin version that I am using.

In the end, I discovered a reasonable workaround. When editing the post to update it, click the triple dot menu in the top RHS of the right hand pane. Then select the code editor rather than the visual editor. This revealed all the existing content but in raw code mode.

When I then clicked on the Visual editor again, all of the content came back as originally posted.

I looked for solutions/workarounds online but could not find anything concrete. Whilst this is a nuisance, I can live with the workaround for now, until I can find the time to give more effort to a proper fix/solution.

Comments Off on WordPress post content has disappeared when trying to edit existing post

February 2nd, 2024
11:14 am
Progressive Web Apps

Posted under Angular & Knowledge Base & PWAs & Web
Tags , , ,

I started looking into PWAs as an alternative to the Ionic framework which I have used previously to prototype an offline/online mobile application for my mobile places guide.

My main issue with frameworks such as Ionic was the need for multiple application codebases – one admin application for web based use online (which could also be used on mobile when online), and another application for offline or online use on mobile when actually out in the sticks and looking for a local place that best meets my already specified favourite criteria.

The immediate attraction of a PWA was the simplification due to a single codebase framework. As it is browser based, it can run with any web framework/app architecture and be usable online, and installable for offline use. Some of the main benefits are as follows:

  • Allows a single application framework such as Angular or React to be used for a web application which can be used online or installed for offline/online use just like a native app, i.e. can be run as an app from the home screen on a mobile. This allows a single application framework/codebase to be used for all scenarios. This was the key advantage for me – the need for multiple codebases/frameworks when developing an app as a small enterprise is a serious limitation. There is also the potential need for multiple offline applications/frameworks to support all the required platforms, so there can even be a need for maintaining multiple offline native app codebases.
  • PWAs are widely supported across browsers/platforms and are a standard.
  • A PWA greatly simplifies the installation process. One major issue with web sites which have a mobile app is the need to visit an app store and go through the install process before being able to continue. This really breaks the flow of use.
  • Web sites are really keen for users to install their app, as this offers functionality such as offline working and push notifications even when the app is not active/not in use. However, they typically resort to an pattern known as a full page interstitial ad. This interrupts the user, often with a full page overlay, right when they are interacting with content on the web site, in an attempt to force them to install the app – commonly called the door slam antipattern. This takes a number of steps, followed by actually running the app and returning to their previous context. A survey by Google showed that a significant percentage of users just dump the app installation and their web site activity completely when presented with the door slam.
  • PWAs have a much more seamless install process which is performed with a click directly within the browser. It does not involve visiting an app store, installing an app, and selecting options/enabling app permissions. Therefore significantly less users are put off by this.

 

Initial tryout/Proof of Concept

I branched the codebase for my existing Property Details application. This was a good example to try, as it has significant complexity:

  • Web application using the Angular framework (v13 at the current time).
  • PrimeNG component framework for angular is extensively used, including complex components such as the photo gallery
  • Dynamic scripting/script switching for configuration and PrimeNG theme switching.
  • Use of the angular APP_INITIALIZER to initialise/configure the app prior to angular bootstrapping, and use of angular/browser polyfills.
  • Use of the Webpack module bundler to bundle and install the application

I felt that if I could get this application to run seamlessly as a PWA with minimal effort and changes to the existing code, this would be a valuable proof of concept to justify taking PWAs forward.

My conclusion was very positive – whilst I had a number of technical/learning issues to overcome, I succeeded in getting the property details app to run as a PWA both online and fully offline in Chrome, edge, and Firefox, on both Windows and Android, with minimal code changes. The only code interventions were to add the necessary support for PWAs, which were minimal. None of the existing code had to be modified. I just needed to add a json PWA manifest file, a couple of scripts, and an icon image. I then just needed to modify the index.html page to declare the manifest and call the first of the scripts. Going forward, I will need to try the other PWA features such as background/offline sync, push notifications, and service worker to page/Window to service worker communication. I will also need to make some effort to smooth the app rendering to bring up a page quickly, especially when offline, as the current POC is somewhat jerky on occasion, with some delays on rendering. However, it works reliably as expected.

I also have not looked into the database functionality re offline/online use and syncing. For the database, it is tempting to stick with CouchDB, as PouchDB is available as a wrapper for IndexedDB and could be used for background sync with a CouchDB as I originally planned with my Ionic POC. One issue which needs exploring on this is the availability of CouchDB hosting – my ISP, Zen Internet, use CPanel which does not host CouchdB. If this is an issue I would need to either use IndexedDB with e.g. MySQL at the back end and my own abstraction/syncing between the two, or use continue to use PouchDB still with a MySQL back end – this whole area needs investigation.

I have therefore decided to look into using PWAs further as a replacement for my existing Ionic offline POC/tryout.

Comments Off on Progressive Web Apps

October 9th, 2023
5:50 pm
Backing Up Office 365 OneDrive files

Posted under Knowledge Base & MS Office & Windows & Windows 11
Tags , ,

I was looking for a good way to do this immediately following the issues I hit changing the username domain on Office 365.

After experimenting with doing large zip downloads to back up locally, which was intermittent with large downloads, I found this post here and I did the following, do force all OneDrive files to be synched locally all the time:-

  • I unlinked OneDrive by visiting Account under settings and clicking “unlink this PC”. I then visited the OneDrive local folder root, which was under c:\Users\SteveW\OneDrive (for my free hotmail OneDrive) and  “c:\Users\SteveW\OneDrive – Salient Soft” for my Office 365 business account, and moved them along with all the files, to the correspponding directory on the D Drive. I then visited One Drive again in the system tray and re-added the account/username, picking the link to browse for a different folder, and browsed for the new folder. When I did this it warned that files were already present, which was fine as I had just moved them, so I told it to continue. This allowed me to move from the default drive to my preferred non-system drive which had more disk space.
  • I again visited OneDrive in the system tray, and opened Settings, then selected Sync and backup on the left menu, and picked advanced settings
  • I then visited Files on-demand (noting the help link which is the above post), and selected “Download all files”. Once I allowed this to synchronise fully, after a few hours, all the files were downloaded locally.
  • I then just needed to do local backups as normal, as my local copies of the cloud would be fully up to date.

Comments Off on Backing Up Office 365 OneDrive files

October 9th, 2023
5:31 pm
Changing Office 365 to remove Ltd Company reference

Posted under Knowledge Base & MS Office & Windows & Windows 11
Tags , ,

As I was no longer trading via a limited company, I wanted to remove the “Ltd” references to my organisation and URLs in Office 365.

One key point was that the login username was SteveWoodley@SalientSoftLtd.onmicrosoft.com, and I wanted to remove the Ltd. Office 365 support advised on this and I did the following:

  • I added a new domain as above without the Ltd. To do this, I visited the admin centre, clicked “Show All” on the left menu, and then dropped down the settings menu, again on the left. I added the new domain, and also clicked the button to make it the fallback domain.
  • I then selected users under the active users menu, selected my user, and then clicked the link for “manage username and email”. I then clicked the pencil to edit the primary username and email, and selected the new domain that I had just entered above.
  • I did this again for all the usernames.
  • I noted that when I visited onedrive, the URL root showed as “https://salientsoftltd-my.sharepoint.com/”, i.e. it still had the “Ltd” in it. After searching online, this post here states that you cannot change this as it is the tenant domain name. It would mean creating a new tenant/Office 365 subscription and moving all the data, settings etc. from the old to the new. As this was not a big deal, and as the support staff did not see this as a problem, I left it alone, and was happy that at least the username was corrected.

After this was done, I found that onedrive could not see all the files and was concerned about lost files. I did note that under the user settings, there is a OneDrive menu which allows you to create a link. This in fact created a working link, but the main OneDrive link from the admin etc. continued not to work.

Support advised just waiting a day to allow the changes to be resynchronised correctly at the server end. I did this, and it did indeed work out fine with everything working.

I had also initially had issues with OneDrive for Windows 11 immediately after the change, regarding use of the modified username/domain, and could not see the files. Again, this all sorted itself out after a day or so and everything was fine.

Comments Off on Changing Office 365 to remove Ltd Company reference