Friday, November 01, 2024
Neff Dishwasher - loose white plastic piece in pump well
My Neff dishwasher wouldn't pump out. I found this in the pump well:
Wednesday, February 01, 2023
Bourns 128 Pulse Absolute Mechanical Rotary Encoder
RS Stock No. 263-2918 Mfr. Part No. EAW0J-B24-AE0128L
I was looking for something where the user could rotate a given number of clicks in either direction, and my Pi Pico could compare the current value with the previous value, to spot that the knob had moved, and by how much. (I wasn't sure that my program would loop fast enough to catch each increment).
Not that easy!
I should have spotted that 128 positions meant less than three degrees per increment: too fine to be sure whether you had moved say 2 or 3 positions.
But the killer is that there is no "click" to this encoder - it turns completely smoothly.
I really needed a 4-bit absolute encoder, but haven't been able to find one!
Wednesday, November 02, 2022
Q: How much power does a USB mains socket use when not in use? A: 1 kwh every 18 months.
Manufacturers seem very coy to admit that their Mains-socket-with-built-in-USB-power will consume power all the time, even when the mains sockets are off and nothing is plugged in. I couldn't find any indication in published specifications.
(Does any company make a socket with zero consumption when idle? I suspect not, but would be delighted to discover that I am wrong).
For the socket that I was considering (made by BG - Technical Data document here), there was nothing about consumption, so I asked the manufacturers.
All credit to them, the replied within hours, to say 75 milliwatts. Multiply that by 8760 hours/year and you get 0.66 of a kwh per year.
Perhaps a consideration if you are planning lots of USB mains sockets, but for one or two in a house, the waste is small compared to the many other ways we waste power.
Friday, October 07, 2022
Plusnet Hub 2 - why won't Ethernet ports work?
The Plusnet Hub 2 is a Gigabit router, but it doesn't seem to downgrade to 100Mbps as I would expect. If you don't have all 8 wires connected through, the Hub 2 won't play at all
I had convinced myself that my new Hub 2 was faulty: my PC would connect to my Hub 1 (and on the the internet) happily. But replace it with the Hub 2, and it wouldn't even ping via Ethernet (although it would support wifi, and connected to the internet perfectly).
It turned out that I had a break in Pin 1 of my Ethernet connection between my PC and the Hub 2. The Hub 1, at 100mbps, doesn't use Pin 1. The Hub 2, at 1000mbps needs all the pins connected through. If not, it doesn't downgrade, it just fails.
Plusnet Customer Support were no help - they sent a replacement router (two actually: the first never arrived) and when I called to say that the second specimen was no better, they tried to fob me off with a link to suggestions of how to "tweak" my network. I stood my ground, and was promised a callback from a more senior engineer within the hour. But the call never came. So I had to work this out for myself, and was only successful because I had an Ethernet tester that identified the disconnected wire.
Hope this might help someone else!
Thursday, December 02, 2021
Access VBA - 2585 when trying to close a form
I hit the error 2585: "Action can't be carried out while processing a form or report event" when I tried to close A during the opening of Form B.
My problem turned out to be the timing of when I was calling it. I hit the error if I tried to close the second form as part of the "Current" event. But changing it to run as part of the "Load" event solved the problem.
Tuesday, November 30, 2021
Access vba - 2101 error when trying to set the page for a tabControl
I kept hitting 2101 error ("The setting you entered isn't valid for this property") when trying to move to a new page on a tabControl. The cause - I was trying to move to a page that was currently set to visible=false.
Solution - change the visibility first, eg:
Forms("coreAdmin").TabPages.Pages(3).Visible = True
Forms("coreAdmin").TabPages.Value = 3
Friday, November 19, 2021
Solution to Access error 2110 for setFocus
In Access forms, I often use a dummy text field called "txtFocusDummy" to which I set the focus when I want to de-select a field - which might be because I don't want the cursor to stay on the field (eg after selecting from a list) or because I want a quick way of committing an updated field value to the underlying table.
But I kept hitting error 2110, which said:
Run-time error '2110'
[Name of Application] can't move the focus to the control txtFocusDummy
and offered the choice of End and Debug.
If I chose Debug then, with the VBA Editor cisible, pressed F8 to continue, then all proceeded OK. So I knew it wasn't a problem with it being Enabled or Visible, or the right sort of field. So I reckoned that it had to be down to a timing issue - I was asking Access to move to a new field before it was ready to do so.
So, I replaced the setfocus instruction with a subroutine:
Public Sub fd()
'moves focus to dummy field txtFocusDummy (among other things, ensures that field value is saved to underlying table)
tryAgain:
On Error GoTo wait_a_while
txtFocusDummy.SetFocus
Exit Sub
wait_a_while:
If True Then
sSleep 10 '10 millseconds seems to be long enough!
GoTo tryAgain
Else
If MsgBox("Sorry - Access needs a moment's rest to catch up. Please press OK to proceed") Then
GoTo tryAgain
End If
End If
End Sub
And then (important step) in the VBA screen, I took Tools and Options, then the General tab and chose "Break on Unhandled Errors".
As you will see in the code, I have added the option to throw up a message box so that if I wish, I can see when the 2110 error is happening. But as set, the subroutine simply adds a 10 millisecond delay, which on my PC is enough to solve the problem.
The sSleep routine isn't mine, but here it is:
Private Declare Sub sapiSleep Lib "kernel32" _
Alias "Sleep" _
(ByVal dwMilliseconds As Long)
Public Sub sSleep(lngMilliSec As Long)
If lngMilliSec > 0 Then
Call sapiSleep(lngMilliSec)
End If
End Sub
Hope this helps someone else (or that I find this myself when I hit the same problem again in a few years' time and have forgotten the answer).
Monday, June 07, 2021
Can't open a dropdown Combobox in Access?
If you have a Combo box in Access with a valid Rowsource, but it won't open (ie drop down), then check to see whether you have set an OnFocus event.
If you have, that will fire before anything else. In my case, I had erroneously set the OnFocus to SetFocus to a dummy field, which can be useful on a display-only field, but is crazy on a field where you are seeking an input!
Tuesday, February 23, 2021
How to delete your last Payment Method in Twitter
Friday, December 11, 2020
Blum kitchen hinges - how to limit opening angle
Wednesday, January 15, 2020
EL-USB-CO vs EL-USB-CO300
They offer two versions: 0-1000ppm called the EL-USB-CO and a 0-300ppm version called the EL-USB-CO300
Spot the first problem? You can't easily search for the "CO" version without also finding the "CO300" version.
Second problem? To save money (I guess) they label the actual unit as "EL-USB-CO" whichever model it is. I wasted probably half an hour complaining to my supplier that they had sent the right box (marked EL-USB-CO300) with the wrong product (marked EL-USB-CO). They wasted their time checking stock to find the same problem and then contacting Lascar.
This is a moronic approach to product coding - shared by a chair supplier who I dealt with on the same day, who showed three different products in their brochure but gave them all the same product code.
So - message for Lascar users - beware the silly labelling.
And message for manufacturers: PLEASE give each variant of your product a unique reference code that allows customers to search on it without needlessly matching to any other of your product codes.
Saturday, October 12, 2019
Coreldraw 12 on Windows 10 - it works!
Install Coreldraw12 normally.
Try opening Coreldaw12 from the program icon and it will fail with a popup saying "1: Failed to install ISKernel Files".
Don't panic. Close that down. Use File Explorer to find any old version-12 (or earlier) cdr drawing file. Double-click on that to open the drawing - Windows 10 will have the file association set to Coreldaw12 and - if your setup is like mine -the file will open, edit, save and print absolutely fine.
So, make a copy of that old file and rename it BLANK12.cdr
Open that copy file, remove all content, and save it.
Then, to use Coreldraw 12, open BLANK12.cdr, immediately save it with the new file name, and off you go!
Tuesday, August 13, 2019
Variable Variables in Javascript
But beware - this ONLY works if the declaration was in a statement using "var", eg "var a=23;"
It does NOT work if you declare using "let" or "const".
Try this:
const THIS_CONST=123;
let constName="THIS_CONST";
alert("const="+window[constName]);
let THIS_LET=456;
let letName="THIS_LET";
alert("let="+window[letName]);
var THIS_VARIABLE=789;
let varName="THIS_VARIABLE";
alert("var="+window[varName]);
So:
Variable variable - Yes
Variable let - No
Variable const - No
Friday, April 12, 2019
Travelodge Bangor - tired is OK, tatty is not
The bathroom door squeaked loudly enough to wake up a partner in the middle of the night. And the bathroom fan wasn't working.
I understand that budget hotels will tend to look a little tired as they get towards their next refurbishment, but this is more than tired - it is tatty. It makes me feel poor to be staying there. And oiling door hinges and testing fans should be routine maintenance. If they can't do that reliably, how sure can I be that they check safety-critical maintenance like fire alarms?
How interested is Travelodge in hearing about customer feedback?. Not much, as far as I can tell. Once upon a time, they would email and ask what you thought about your recent stay. Not any more, it seems. They don't publish any email address, so you can't send them pictures. And if you fill in their complaints form and ask them to contact you, the typical response time is (according to the agent I spoke to tonight) 3-5 working days.
Not impressive
UPDATE - it took four working days for Travelodge to respond to my request for contact. While they don't advertise it, the reply email was customer.service@travelodge.co.uk - why didn't I think of trying that in the first place.
Tuesday, August 21, 2018
OuterHTML breaks DOM?
See the content change on the page.
Then try to make a further change to the td and get bizarre results.
Has changing the outerHTML broken the DOM?
No - but it has wrecked the definition of the td that you are using to set or get properties.
Solution - after setting outerHTML - EVEN if the new outerHTML specifies the same id as the cell currently uses - you MUST redefine the object that your Javascript is using to refer to that cell.
In the example below, you can change the initial text to EITHER interim or final text. But once you have made the change, a subsequent change won't work - until you have redefined the variable "targetCell" which is used to refer to the td
(And note that if you are applying outerHTML to a cell that does not have a parent, even redefinition won't help: "If the element has no parent element, setting its outerHTML property will not change it or its descendants" - source)
<html>
<head>
<meta charset="UTF-8">
<script>
var targetCell;
function doInterim(){
var newHTML="<td id='target'>Interim content</td>";
targetCell.outerHTML=newHTML;
alert("targetCell has innerHTML of "+targetCell.innerHTML);
}
function doFinal(){
var newHTML="<td id='target'>Final content</td>";
targetCell.outerHTML=newHTML;
alert("targetCell has innerHTML of "+targetCell.innerHTML);
}
function defineTarget(){
targetCell=document.getElementById('target');
alert("targetCell has innerHTML of "+targetCell.innerHTML);
}
</script>
</head>
<body onload='defineTarget();'>
<table id='tab1'>
<tr id='row1'>
<td id='target'>Original Content</td>
</tr>
</table>
<p><a href='javascript: doInterim();'>CHANGE to Interim</a></p>
<p><a href='javascript: doFinal();'>CHANGE targetCell to Final</a></p>
<p><a href='javascript: defineTarget();'>Re-define targetCell</a></p>
</body>
</html>
Tuesday, August 07, 2018
When one computer can see a website, but not another ...
We were checking that a website was available again after it had disappeared because of an expired domain. Once we had renewed the domain, we were checking whether the site was being served again - and found that one PC was getting the site correctly, but the other wasn't. Both were on the same network with a single router.
This difference continued even after clearing the cache.
The reason? One PC had its DNS address specified manually (to Google's DNS servers at 8.8.8.8) and the other was using the default DNS server provided by the ISP. Counterintuitively, the ISP's DNS server had updated when we were checking, but Google's DNS server hadn't updated at that point.
Tuesday, June 19, 2018
Honeywell V4043 - photos including microswitch
Note here that the microswitch (also called the end switch) sits a long way from the gold-coloured striker that is connected to the manual-open lever. Having taken the unit apart, I puzzled for ages about what I was doing wrong in mounting the microswitch because it looked as if it would never close. In fact, the microswitch does go in the obvious place - but while the Manual Open does open the valve (for filling and draining, Honeywell suggest) it does NOT operate the microswitch. Only electrical operation of the valve sees the striker move far enough to close the microswitch.
(If you need to replace the microswitch, it isn't offered as a standard spare for the V4043, but as noted by others, a suitably-rated Honeywell microswitch - eg V7-3E17D8 - looks like it should fit - but obviously it is up to you to check that it meets your needs)
Note that once a system is installed, operating the Manual Open lever will heat the relevant zone ONLY if there is another zone already calling for heat - or if you manually connect the call-for-heat wires (grey and orange wires) so that the boiler fires and the pump runs. Just closing the valve manually won't close the switch, so it won't call for heat by itself.
Recent V4043 valves have a head that you can remove without draining down the hot water system (some older ones do not - beware: removable ones are removed by undoing just two screws - if there are four to undo, this seems to be a sign that you have the non-removable type and if you undo all four screws, you will have water pouring out).
But how do you remove the head? Again, no help from Honeywell. Once you have undone the two retaining screws (the brass dome-headed screws shown in each picture) then it really comes down to wiggling: the head is a push fit onto copper bush on the main valve housing. From my experience, it can take a lot of wiggling.
Monday, April 30, 2018
CMSMS, global vairables and $GLOBALS - beware!
My web host sold out and I was moved to a new (namesco) server, and suddenly my CMSMS content was seriously broken.
Aside from configuration switches, the big problem turned out to come from global variables.
I use "User Defined Tags" to load blocks of php into my page banner. And in that php, I was setting variables that I wanted to access from functions, which I achieved by declaring the variables as global in the function, eg:
myFunctions.php
function doSummat(){
global $thisVar;
//Do something with $thisVar
}
USER-DEFINED TAG
include (myFunctions.php);
$thisVar=123;
doSummat();
This approach, which had worked with my previous web host's (php5.4) server setup, would not work on the new (php5.6) one. The function didn't find the expected value in $thisVar.
Why?
Something has changed (either between server setups, or between php5.4 and php5.6) in the way that global variables are handled. Variables defined in a cmsms user-defined tag used to be working at top level, and so were available to functions if specified there as global.
But in the new setup, the php for a user-defined-tag appears to be handled within a php function: variables created within have only local scope. So when, in my example above, the function doSummat tries to access the global variable $thisVar, it doesn't find the variable $thisVar that I set in the tag - because the scope is limited to the php function in which the php for the tag is accessed.
(I presume that the user-defined tag was always handled this way, and that the two servers had different switch settings - which I have either missed, or have no access to - that have changed the behaviour)
Solution - if I declare "global $thisVar;" at the top of the User-defined Tag, then everything works as before: the User-defined Tag is finding the top-level variable $thisVar (by specifying it as global) and the function then finds it in the $GLOBALS array as expected.
Alternative - explicitly set and read $GLOBALS['thisVar']. A bit more typing but less error-prone, I suspect.
Thursday, February 22, 2018
Google Keep - cannot save a reminder?
No bug; it's very simple - Google Keep will not save a reminder frequency if the specified time (for the first reminder) is in the past. (Sensible, but it would be good to get a warning when you tried).
Thursday, February 08, 2018
DS18B20+ - what does the PAR suffix mean?
Tuesday, October 10, 2017
Destination Host Unreachable for one machine but not another on same network?
It wasn't a browser issue.
After checking DNS and the hosts file, I eventually twigged what was wrong. My subnet mask.
The site w3schools.com resolves to an IP address starting "192." - and I had (erroneously) set my subnet mask to 255.0.0.0 - result: my PC thought any "192." was local
I had meant to set the mask to 255.255.0.0 - which gives access to devices pre-set to 192.168.anything, but allows access to external sites with IPs of 192.anything-but-168.xxx.xxx
Silly me
Thursday, September 28, 2017
Budget Chain hotels within walking distance of northern Thameslink stations
These are the budget chain hotels that I found within walking distance of Thameslink stations between central London and Luton:
Wednesday, September 27, 2017
Setting up a Virtual XP machine using Hyper-V: what if your XP CD is an Upgrade version?
(Incidentally, I had problems using "Quick Create" in Hyper-V. "New" worked fine)
Here is how to do it:
Preparation
Create an ISO (eg using Imgburn) from your XP CD
Create a BIN (eg using Imgburn) from your Win 98 CD (needed if your XP CD is an UPGRADE one)
Converted the resultant Win-98 BIN to ISO using WinISO
Action
Now, create your VM using Hyper-V. Specify the XP ISO as the Operating System source.
When the WinXP installation on the VM asks you to insert Win 98 etc CD (to show that you qualify for upgrade version of XP), go to the Media tab in Hyper-V and point it to your Win-98 ISO file.
It should then install without problems.
Wednesday, August 16, 2017
Train tickets booked with Bristol Air Bus - what if flight is late?
I have today (16 Aug 2017) had confirmation (from Andy Robinson in GWR telesales) that Advance tickets bought from "Bristol Air Bus" are valid on trains after the specific one booked if the passenger's flight arrives late into Bristol Airport.
He couldn't offer any documentary confirmation of this, but was adamant that the concession did apply.
Sunday, August 06, 2017
php to javascript via json_encode - beware negative keys in sparse arrays
... be careful with arrays.
If you have a non-sparse array then that can be encoded using json-encode($thisArray, true);
But a sparse array needs to be encoded the normal way - json-encode($thisArray); - and this creates an OBJECT rather than an ARRAY in javascript (which can't handle associative arrays)
The problem comes if your sparse array has a negative key. I hit this - the key will list if you iterate through the keys (albeit AFTER the positive keys!) but you can't access the value.
Ugh!
Monday, July 31, 2017
Cursor offset problem in Pixeur or Pixie?
The cause? I had my display set to enlarge text etc to 125%.- and it seems that these programs don't make allowance for any such adjustment.
Resetting to 100% got rid of the offset.
A sad choice - between being able to use these handy programs, and having nice large text that makes for relaxed reading by older eyes.
Saturday, May 27, 2017
"Failed to find a place for the imported file" (Lightroom 5) - workaround
But there is a simple workaround - open the file in another photo editor (eg Corel Photopaint) and then Save As - and modify the file name (just adding a suffix of "a" will do).
Then you can open the file in Lightroom as you would expect.
Friday, December 16, 2016
Won't all the extra self-driving cars cause unbelievable congestion?
Traffic jams are the chaotic result of too many people wanting to arrive in the same place in a short time (eg 0800-0900 in a city centre) - slow moving traffic and queues do the job of spreading the arrival times over a longer period. As long as the demand comes from millions of vehicles each controlled separately, chaos will continue: scheduling trips to avoid traffic jams would require government intervention that would be politically unsellable.
But at the point where most of the vehicles on the road are run by a few massive network operators, a trip-scheduling system becomes irresistible. We will stop using queues as the rationing mechanism and move to the mechanism that works so well for capitalism - pricing.
The limited slots for a driverless vehicle to deliver you, undelayed, to a city centre for 0830 on a weekday will command premium prices - which will settle down to the level that the richest are willing to pay. The poor will end up being "priced out" of travel at busy times: those who cannot walk or cycle will only afford trips that get them into the city at times nobody else wants to travel. Those no-longer-needed car parks will sprout basic shelters where the poor can while away the time between their too-early arrival on a low-priced autotaxi and the time at which their employer (or hospital consultant) is ready for them to arrive.
So, no traffic jams - just a replication of the way we allocate seats in planes: convenience for the rich who travel when they want, while the poor are priced away from the more convenient slots, to the times when there is capacity that nobody else wants.
Friday, September 23, 2016
Updating firmware on a SNOM phone using Pumpkin
Download the firmware image for your phone model from Snom - make sure that you are using a compatible version: sometimes you need to do an interim upgrade if the difference is too big.
Next, RENAME THE FILE. Your Snom knows what it is asking for: a file named snomxxx.bin (where xxx is the model number, eg snom300.bin)
Don't use the Get File or Put File settings in Pumpkin: the phone will ask for the "bin" file by name. Just set the "TFTP filesystem root" to be the folder where you have saved the "bin" file.
To get the phone to access the TFTP server, you need to re-power (not just reboot) to get the option of accessing a TFTP server.
Once you've opted to access a TFTP server, the phone will ask for IP address, this is the IP address you want to assign to the PHONE (for now).
Depending on the phone model, you may need to press the "up" key or "right" key to access the next screens, which ask you to enter IP for the TFTP server, gateway and subnmet mask. If you aren't asked for these, you haven't chosen the right options!
Once you've added all those details, press the Tick button, and you should be away.
Friday, September 02, 2016
Autoaid Breakdown - award for most stupid email policy?
So I checked the email address that the acknowledgment had come from: contactus@autoaidbreakdown.co.uk
That sounded fine, so I replied - only to get a bounceback.
A temporary problem? No - Autoaid told me that "contactus" is the name of a mailbox that deliberatel does not accept incoming emails.
You couldn't make it up.
Wednesday, August 31, 2016
CAF Bank - not brilliant
The basics are good - the ability to follow Good Practice by having all payments authorised by two people, including online payments. Many other banks fall down on this.
But it's been a pretty miserable business. I forgot to send copies of bank statements with our application form - so the whole package was sent back. Not only more expensive, but slower too as they didn't bother to email or phone to ask for the info.
Setting up secondary users was miserable. Despite setting them up online, you then have to phone CAF Bank to have them activated (I didn't see any sign of this on the website). It is meant to take two working days for this to happen, but it took longer for us ("pressure of work": done while we waited when I rang to complain). And when you do get a user activated, they must log in and change their temporary password before 9am the next morning or you have to start again.
And don't expect them to instigate collection of the balance in your old account at another bank (which some banks apparently do) - that is left to you.
Transferring Standing Orders and Direct Debits - didn't happen: they had given us a list, we had agreed it, then nothing happened. When I complained, they said it was now sorted: no apology or explanation. When I asked why, the answer was, again, "pressure of work".
Paying in - at a Post Office if you ask nicely for special envelopes. In our case, their first attempt involved sending a letter with a covering note but no envelopes.
All in all, a pretty sloppy outfit. It's nice that they are a non-profit, but that doesn't excuse poor service delivery.
Wednesday, June 08, 2016
Not such a Delight
But their Customer Service seems to be non-existent. I phoned them (no landline number, so more expensive) - no answer after 20 minutes. Filled in their online form on two occasions - no response either time. Emailed their parent company to say "do you realise how badly Delight's Customer Service is performing?" and got no response to that either.
And it isn't as if their online offering is so good that you can do without Customer Service: a Delight Mobile number which is good enough to accept credit for (and which works in use) is apparently not a valid Delight mobile when it comes to setting up an online account.
Nice prices, shame about the service.
Thursday, May 19, 2016
Cambridge and Counties Bank - no good for charities?
But take care - they do not (currently: May 2016) have any way of requiring two signatures on transfers. Is that a problem? Not necessarily - all transactions out of the account are only to a specified linked account (and changes to which account is linked require two signatures).
So as long as you set up a linked account that requires two signatures, it looks watertight - but perhaps worth checking with your auditor first!
Sunday, March 06, 2016
RDM Shuttle Data logger - installing on Window 10
Not sure whether it is happy installing on other than "C" drive - my final success was on C drive, but other changes made too.
The key step was to follow instructions here (Change advanced startup options) then to restart Windows with "Disable driver signing enforcement“ set.
Then connect logger to USB port, open Device Manager, find the Logger, right-click and choose to reinstall drivers. Navigate to the "Drivers" folder within the "RDM USBLogger" folder and it should find the driver!
Sunday, December 20, 2015
Buffalo WHR-G300N - updated password problem (doesn't work!)
Their WHR-G300N has an 8-character limit on root (admin) password. It does say that in the help text, but some of us think we understand about passwords without reading instructions. And so we paste in a nice secure password of (say) 12 characters, reboot - and find that we can't log in with the new password. Because Buffalo don't cope with a sensibly-long password. And they don't even bother to warn you if you try to paste in too long a password. They don't even truncate the length of password that you type in to match the maximum 8 characters. They simply truncate the password that you save (without any option to see the password entered, of course).
So - make sure your password is max 8 characters. And if you find yourself locked out of an Airstation unit for which you thought you knew the password, try using just the first 8 characters.
Thursday, December 03, 2015
Windows 10 - adding a tile for your Printers Folder
It has taken me a good while to find out how to add a "Control Panel" tile:
start -> all apps -> windows system [pull-down] -> right click "Control Panel" -> click pin to start
And it took me even longer to work out how to create a tile that takes me straight to my Printers folder. (This mattered to me because opening "Devices and Printers" is very very slow (about 25 seconds) - some suggest ditching the Realtek HD Audio Driver, or testing each device in turn (including reinstalling their drivers) to get to the bottom of it.)
Hold down the "Windows" button on your keyboard (between Ctrl and Alt) and press the letter R, to bring up the "Run" box. In this, type:
shell:PrintersFolder
and press Enter.
Now, drag the Printers icon (not top-left, the next one in - highlighted here - by me - in red) to your desktop:
Now Right-Click the shortcut, and choose "Pin to Start". Wait a few seconds, and it should appear as a new tile on your Start Screen.
Voila!
Wednesday, November 18, 2015
Using a foreign SIM to roam between UK networks
Here in the Peak District, coverage on each mobile network is very patchy: different networks offer coverage in different spots (with much of the area without any coverage at all).
So, wouldn't it be useful always to be able to pick the best signal, whichever network was offering it?
The cheapskate's answer is to buy a foreign SIM on eBay. I bought a "blau.de" SIM, which offers calls at 9c per minute to anywhere in the EU, and doesn't charge to receive calls from the UK or any other EU country.
It isn't perfect:
- it won't roam to Vodafone
- adding credit is a bit of a hassle
- the voicemail message is in German (you may be able to customise this: I haven't checked)
- people calling you will pay something like 25p per minute.
There are better services, but at a higher price. Auracall's Traveltalk gives you an Isle of Man mobile number (starting 07452) which should roam to all four UK networks, and also looks like a standard UK mobile number. To start, you need to spend £25 on a SIM (£5 for the SIM and £20 of credit) - calls to the UK (or anywhere else in the EU) cost 15p per minute and there is no charge for receiving calls. Be aware that calls to an 07452 mobile will cost callers more than other 07 mobile numbers - the Isle of Man isn't in the EU and so EU price protections don't work, and calls won't be included in peoples' call bundles. For an extra £1 per month Auracall will also give you an 0344 UK phone number, which your callers can use at standard phone rates.
A more complicated solution, but cheaper than Auracall, is SIP2SIM from the highly-rated telecoms experts Andrews & Arnold. You need a SIP phone connection first (and not all SIP operators will play ball - Sipgate apparently won't). But once you have this sorted, you can then have those SIP calls diverted to/from your mobile for 2.4p per minute each way, plus £2.40 monthly standing charge - and it will roam away from its preferred O2 network when this would make the difference in getting you a signal.
[Please do check the details before signing up to any of these options: I have described them as I understand them, but it's a complicated business, so make sure you are happy before committing].
Why do we need these solutions?
These are all clumsy workarounds to the real problem: that UK governments have been greedy in the money they have looked to extract from mobile companies when auctioning radio spectrum: they have set very low obligations to provide service in less-populated areas. So, the government gets a good fee, but the networks do the minimum they feel they can get away with about serving rural areas.
Having mucked that up, sticking plasters have been sought. In late 2014, the government set the oh-so-ambitious target of 90% geographic coverage, to be achieved by the end of 2017. And in return for that, they abandoned the idea that the networks should allow roaming between their services in rural areas.
Proper "National Roaming" isn't problem free: it would need some financial incentive/penalty system to make it worth networks erecting masts in rural areas (to replace the better-coverage boast that is their current reward). That isn't beyond the wit of man - but too much for our government to ask of these highly profitable businesses: leaving 10% of our land mass without a mobile signal seems to be quite acceptable to their metropolitan minds.
Having no signal in a rural area isn't just a problem for those who live there. It is a problem for those in well-served cities who might want to talk to people in rural areas. It is a problem for those in cities who might sometimes drive through rural areas and would like to be in touch in case someone needs to tell them that their meeting has been cancelled and they are heading in the wrong direction. It is a problem for every citizen if inadequate infrastructure sees people moving away from rural areas because it is too difficult to run a business there. I could go on, but won't.
Tuesday, November 03, 2015
Business Accountz Basic - reinstalling the original version 10
Their end-of-life policy isn't explicit, but a look at their Product Lifecycle page showing release dates and current support status shows what they have done in the past. Today (2 November 2015) they are showing that a product that was the newest available just two years ago (Business Accountz 2013) is no longer supported. I wouldn't buy again from them - even if they were only as mean as they are now, I would be looking at a permanent licence that became difficult to use after a matter of a couple of years, and if one of their shareholders needed a yacht, there would be nothing to stop them trying to gouge me for a following version even sooner.
Things are even worse for Business Accountz Basic which only dates from 2010, but for which you will really struggle to find installers if you need to update your PC. The files for version 10.2.1.0 are availabl here (today at least) - but Accountz really don't seem to want you to find them: there doesn't seem to be any link to that page from elsewhere on their site.
And your woes don't end there. Armed with your reinstalled program, and a file with a "tex" extension, how do you restore it?
Replacing the newly-installed BAK directory with your archived BAK directory seems like a good start, and then try the restore program "BA Restore.exe". But no - that only spots BAK files and not tex files. (Which is a bit scary - at a first glance you fear that all your more recent work has been lost).
How to restore a tex file? Who knows?- Accountz, having moved on from this version, seem to have no interest in helping you (not from their website, anyway). Perhaps a phone call or email will elicit some help, despite their "end of support" decision. Luckily, I found another way ...
In my case, I had the full installed file structure available from my old hard drive, so on the new PC, I installed the 10.2.1.0 legacy installer (link above) which was more recent than the disk version that I had. Then, without running Business Accountz, I went to that new PC's "Program Files (x86)" folder and renamed the "Business Accountz" folder to "Business Accountz DO NOT USE". I then copied the whole "Business Accountz" folder (programs, data, settings, the lot) from my old drive to my new PC's Program Files (x86) folder.
In due course, I can delete the "Business Accountz DO NOT USE" folder and all will be tidy, but I'll leave it there for a few days in case of complications.
But as far as I can tell, all is working happily.
Thursday, October 29, 2015
ATI HD4650 Graphics card working for Windows 10 (64-bit, Pro)
Saturday, August 22, 2015
Music from the Railway Children - BBC 1968
The Piece is by Grieg - Symphonic Dances, Op. 64: II. Allegretto grazioso. The full piece runs to something over 6 minutes, depending on version, but it is the opening sequence (about 1 min 30 - repeated at the end) that was used for the TV series, and which I find so hauntingly beautiful.
Monday, April 27, 2015
Fake DS1302 chips
I've knocked up an Arduino sketch that will try to set the Trickle Charge byte, reporting back on success or failure - users of other hardware can still get the gist:
//written for Uno R3 or Mega
//Tests whether a DS1302 will process a change of the byte controlling Trickle Charge settings (if not, may be a fake)
//John Geddes, February 2016
#include
#include
const int PIN_1302_CE = A0; //5; // Chip Enable
const int PIN_1302_IO = A1; //6; // Input/Output
const int PIN_1302_SCLK = A2; //7; // Serial Clock
#define OPTION_TRICKLE_CHARGE_BYTE 0
#define OPTION_YEAR_BYTE 1
byte testResult=0;//score 1 for rtc byte ok, 2 for yeat byte ok. value of 3 means all ok
DS1302RTC my1032rtc(PIN_1302_CE, PIN_1302_IO, PIN_1302_SCLK);
void printPaddedBin(unsigned long thisValue, byte outputLength=8, boolean endLine=false){
String thisString;
String netString=String(thisValue,BIN);//no leading zeroes
byte padCharsRequired=outputLength-netString.length();
for (byte padCount=0; padCount<(padCharsRequired);padCount++){
thisString.concat("0");
}
Serial.print(thisString);
Serial.print(netString);
if (endLine){
Serial.println();
}
}
byte toggleByteAndReportOutcome(byte whichByte){
//returns 1 if ok, otherwise 0
byte addressWriteByte; //read byte has address one higher
byte retValIfOK=0;
String descString;
byte maxValueBeforeReturningTo1;
byte valueA;
byte valueB;
switch (whichByte){
case OPTION_TRICKLE_CHARGE_BYTE:
descString="TRICKLE-CHARGE";
addressWriteByte=0x90;
retValIfOK=1;
valueA=165;
valueB=166;
break;
case OPTION_YEAR_BYTE:
descString="YEAR";
addressWriteByte=0x8c;
retValIfOK=2;
valueA=B10100001;
valueB=B10100111;
break;
}
byte startingByteValue=my1032rtc.readRTC((addressWriteByte+1));
byte targetByteValue=startingByteValue+1;
if (startingByteValue==valueA){
targetByteValue=valueB;
} else {
targetByteValue=valueA;
}
Serial.print("Attempt to update ");
Serial.print(descString);
Serial.print(" byte which currently holds value of ");
Serial.print(startingByteValue);
Serial.print(", ie ");
printPaddedBin(startingByteValue, 8, false);
Serial.print(" to new value of ");
Serial.print(targetByteValue);
Serial.print(", ie ");
printPaddedBin(targetByteValue, 8, true);
my1032rtc.writeRTC(addressWriteByte,targetByteValue);
byte revisedByteValue=my1032rtc.readRTC((addressWriteByte+1));
if (revisedByteValue==targetByteValue){
Serial.print("SUCCESS - new value is ");
Serial.print(revisedByteValue);
Serial.print(", ie ");
printPaddedBin(revisedByteValue, 8, true);
return retValIfOK;
} else if (revisedByteValue==startingByteValue){
Serial.print("ERROR - updating has failed: value stayed at ");
Serial.print(revisedByteValue);
Serial.print(", ie ");
printPaddedBin(revisedByteValue, 8, true);
return 0;
} else {
Serial.print("ERROR - updating has failed: value changed but wrong - at ");
Serial.print(revisedByteValue);
Serial.print(", ie ");
printPaddedBin(revisedByteValue, 8, true);
return 0;
}
}
void setup() {
delay (2000);//time to open Serial Monitor
Serial.begin(9600);
Serial.println("DS1302 test started");
//initialise RTC to be writeable but clock STOPPED
my1032rtc.writeEN(1);
Serial.println("DS1302 set to write-enabled");
my1032rtc.haltRTC(1);//in case this helps
Serial.println("DS1302 halted");
testResult+=toggleByteAndReportOutcome(OPTION_TRICKLE_CHARGE_BYTE);
Serial.print("testResult=");
Serial.println(testResult);
testResult+=toggleByteAndReportOutcome(OPTION_YEAR_BYTE);
Serial.print("testResult=");
Serial.println(testResult);
Serial.println("\n");
switch(testResult){
case 0:
Serial.println("Failed both tests: could not update trickle-charge byte or year byte. Check connections");
break;
case 1:
Serial.println ("OK on updating trickle-charge byte but failed on year byte - looks like genuine-but-faulty chip");
break;
case 2:
Serial.println ("Failed to update trickle-charge byte but succeeded with change of year byte - this is the result you get with a FAKE DS1302");
break;
case 3:
Serial.println ("OK on both tests - GENUINE DS1302 working properly");
break;
}
}
void loop() {}
BBC iPlayer Radio - for older Androids
We were intended to use the iPlayer radio feature on the BBC website, but I found this unusable - most browsers refused to load an appropriate driver, and when I did find a workable combination, programmes might take 15 attempts to start - or not start at all.
Eventually, I found a way to get near-100% availability, and offer it here. It works on my Samsung Galaxy Player 4.2 running Android 2.3.6 - and I hope it will work for you too.
- Check that you have the BBC Media Player app loaded (it won't play stuff directly, but is needed by your browser).
- Use the Opera Mini browser. This comes with appropriate drivers to play the iPlayer Radio streams.
- If a stream refuses to start, go to Settings and look for something like "Maintain Applications". Find the BBC Media Player and delete the data - always 0.95Gb in my case. Now try again.
- If you still can't load the stream, edit the URL. If it ends "#auto", then strip off that bit. If it doesn't have "#auto" at the end, add it. Then try loading again (it might take two attempts).
Happy listening
Friday, January 30, 2015
TC74 temperature sensor - A0, A2, A5
Simply their I2C addresses, which are 0, 2 and 5 respectively!
Source: http://ww1.microchip.com/downloads/en/DeviceDoc/21462c.pdf
Friday, January 23, 2015
TCPDF - coordinates are measured from Top Left ...
The origin of the coordinate system is at the top-left corner (or top-right for RTL) and increasing ordinates go downwards.
Wednesday, January 14, 2015
Google Calendar - invitee cannot edit
Upgrading to Windows 8.1 - "We couldn't update the System Reserved partiton"
In my case, it turned out that the partition was virtually full (try Control Panel, then Computer Management, then Disk Management to see) and the solution was to increase the size of the partition. My suggestion is to grow it generously, then shrink it back most of the way (still leaving 100Mb or so free) once the installation is complete.
Windows 7 to 8 to 8.1 upgrade - tackling "Failure Configuring ..."
Can one use a Windows 8 upgrade key to upgrade direct to 8.1 - No, say their helpline.
So it is a particular misery to hit problems with the Windows 8 upgrades that Microsoft inflicts upon you - I hit "Failure Configuring Windows Updates: Reverting Changes" repeatedly as the most frequently suggested fix attempts proved to make no difference.
What worked for me?
Turning off automatic updating, then sorting the long list (140 or more) in alphabetical order (so that the "Update for Windows" files are all together in one bunch). Then click the "Name" button to unselect all the updates, and re-select the first "Update for Windows ..." updates and apply those.
Repeat until all those are done, then try the Windows Store and see if it considers your Windows 8 is in a fit state to do the 8.1 update. Mine was, having avoided all the other updates (at least one of which must have been responsible for my updates failing en masse).
Friday, January 02, 2015
Panasonic Microwave - connections on Timer Panel
To remove the timer panel (I had to do this because the door release got stuck: broken plastic post), first remove the power plug - there are dangerous voltages inside a microwave. Now go and do something else for a while - voltages can be stored even after disconnection - see this useful article
Now, remove the two screws close to each other at the top, release the two white plastic tabs on the vertical edge, then pull out and upwards to release the two white plastic tabs at the bottom.