March weekends – Podcast

It’s been ages since I’ve gotten stuck into creating a nice long detailed podcast. We had a few nice weekends during March. In this podcast you’ll hear anything from cooking, to a mad session, to children playing to children trying to swing out of me. You’ll also hear the dogs, and Nama walking me through a street in Ennis. It might be entertaining. It might not. If your into audio, you might enjoy how it all hangs together. Or you might find it a complete waste of your time. But in any case, please leave a comment so I know what you think of this.

VSCode setup for accessibility.

I quite like the stand alone Visual Code Editor.
Here are the steps to follow to set it up for optimal accessibility.

Installing Visual Studio code and configuring Jaws for best accessibility.

Download and install VS Code

  1. Download VSCode from the official site.
  2. Run the downloaded installer.
  3. Step through the various screens of the installation wizzard. Check the box labeled Add “Open with Code” action to Windows Explorer file context menu to have the code editor available in the windows explorer context menu.
  4. Click Install when ready to proceed.

Configure Visual Studio Code to enable screen reader support

  1. Press alt plus f to move to the file menu.
  2. Press p for preferences.
  3. Expand this menu.
  4. Press enter on Settings.
  5. Press the letter e to jump to the settings search edit field.
  6. Type screen.
  7. Tab over until you hear Editor Accessibility support.
  8. Expand this with alt and down.
  9. Arrow down to enabled.
  10. Tab off the field then close the settings screen with control + F4.

Accessibility support would generally have been enabled for you by default with the auto setting but there is currently a limitation in the built in console. accessibility support must explicitly be set to Enabled for the console to be accessible.

Jaws settings.

It is useful to have Jaws turn off the virtual cursor when you set focus to vSCode by default.

  1. Modify your ConfigNames.ini file.
    1. From within VSCode, press Jaws key plus 0.
    2. Close the default Chrome script file.
    3. Open the open window by pressing control + o.
    4. type the following full path and press enter.
      “C:\ProgramData\Freedom Scientific\JAWS\2019\Settings\enu\ConfigNames.ini”
    5. Press page down and create a new line.
    6. paste the following into the new line.
      Code=VSCode
  2. close the script editor then restart Jaws to be certain.
  3. Press Jaws key + 6 to open the configuration settings.
  4. Tyep virtual into the search field and press enter.
  5. Press tab then press end.
  6. Uncheck the box that you have landed on “Use virtual PC cursor”. THen tab to OK and press enter.

You are now ready to start efficiently using the Microsoft visual studio stand alone code editor.

Jaws scripts for Audacity.

I like using audacity. I would probably do something in it at least once a week. So I’m quite happy to stumble across these scripts on Git hub.

I haven’t tested them yet but they look great.

https://github.com/campg2j003/JAWS-Script-for-Audacity

DIY Smart Kitchen Planner

Emma was quite rightly pointing out to me that it’s impossible for her to keep track of where I am from one day to the next. Between work and gigging, I have a busy life! She wanted to put a horible paper calender onto the fridge but the geek in me just thought that was far too retro. Lol. I hate that word.

So I built this. It takes my Office365 calender and a family to do list and it displays them along with the time and the local weather on a tiny 7 inch screen that sits nice and tidy on a shelf in the kitchen. Here’s a quick demonstration.

Error in IOS: Unhandled Promise Rejection.

This is less of a solution blog post and more of a rant against the fucken stupidness of Apple and how they are driving me absolutely crazy. The problem is, developers put up with their shit because let’s face it, their app store is incredible, they give reasonably good shares of proffits and people think their devices are sexy. But for a developer working outside the Apple Ecosystem, I.E. outside the app store, Apple is a thunderous pain in the ass. Excluse my colourful language but this is the second time in six months that Apple’s deliberate curtailment of web applications running in IOS browsers has caused me serious problems and massive time investments.

The first problem was a few months ago. I found that the .play Javascript event wouldn’t trigger when the screen was locked. This problem isn’t in Android. But on IOS, when a screen is locked, Javascript no longer runs. It’s a simple solution to a complex problem with the aim of improving battery life. It’s not so bad. I’ve been able to get around it.

The second problem though is more complicated.
Here’s the main problem. I’m creating a complex application where thousands of valuable audio tracks will be available for people to listen to using a web interface. Without decent security, it would be possible for someone with some basic scripting skills to download every single track. So therefore several layers of authentication are required. Here’s what happens in summary. I’m leaving a lot of information out because of course, I don’t want to give away my secrets and I also don’t want to tell would-be thieves how to get around what I’ve done.

  • A user clicks play or play all.
  • The browser asks the server for permission and sends on a password that’s unique to that session along with some other identifiable information.
  • The server responds with the required authentication that will enable that track to be streamed.
  • the browser then uses that information to request the track.
  • The server receives a correct request with all of the security information so it sends the track to the browser for streaming.
  • The browser streams the track.

The problem is, technically, the user hasn’t directly made the request to listen to that track by clicking or tapping something. Technically for IOS, the user made the request to validate the security information. But as there’s a conversation going on in the background between the server and the browser, the browser made that request without the intervention of the user. Therefore, the browser stupidly considers the audio streaming step as an automated action so doesn’t actually play the audio.

How am I going to get around this?

I’m not completely sure. I have ideas. Some involve reducing the security which isn’t an acceptable course of action. But instead of authenticating eaach streaming request, I could authenticate the page then use that authentication for the streaming requests on that page. It’s not as nice or as solid as the other method but for damned IOS, it will likely have to do.

I use IOS every day. The iPhone is my primary mobile device. I like the interface and the Voiceover screen reader is just brilliant. But from the perspective of a developer, I have developed deap and justifiable frustration toward Apple. They are trying to fource me into developing a native app for Ceol FM. It’s definitly in the plans to do this but there’s only so much time I can spend on this.

There have been others who have had this problem. Here are a few related forum and blog posts:

Trialing out cut aways in video.

I’m amazed by the advancements made that now allow seriously complex content creation and publishing right from a phone. In such a short space of time, the potential has become huge. I can’t help wondering, if the expectations of blog readers has grown in paralel? Are text based blogs relegated to the history books in favor of multi media rich blog content?

PFSense – SNMP configuration fails with UTF characters.

Problem

The error

pfsense /services_snmp.php: XML error: Undeclared entity error at line 166 in /conf/config.xml 

Is shown under Status \ system logs after saving the SNMP configuration in PFSense.

Cause

The SNMP xml file doesn’t support UTF8 characters such as á, é,í, ó and ú.

Solution

Use standard alfa-numeric characters.


I hope that helps

All sites now on HTTPS.

I know no one cares about this stuff. But as part of the upgrades I’ve completed over the past two months, every site I directly maintain on these servers is now accessible exclusively over HTTPS.

Technically none of these sites need HTTPS. They don’t accept payment or personal details but still, it’s nice to know that when you go to a site the traffic is secured.

Moving PFSense WAN from private to public IP range

Introduction

You need to change the public IP address of your PFSense appliance / virtual machine to an address on a different subnet. This might be most useful if you have set up PFSense on a LAN and you now need to move it to a WAN.

Problem

The error WAN IP is on a different subnet than default Gateway is displayed when changing the WAN IP address.

If you had PFSense configured with the WAN on a private address range, you cannot then move PFSense to a public IP address range using the web interface.

Solution

Although you can’t complete this task using the web interface, you can do this through the shell. Connect to the shell either using the maintenance menu or using SSH and use option 3 to reconfigure the interface IP addresses. Enter the new IP and gateway details for the WAN then reboot. Note from this point on, you will not be able to access PFSense from the old IP address so make sure you are prepared for this.

Second problem

When you change the gateway, the old gateway is still the default.

You will not be able to reach the Internet from servers behind PFSense and you will not be able to reach the Internet from the PFSense console / shell.

Solution

Login to the PFSense web UI then change the default gateway.

This is managed under System \ Routing.

First remove the old gateway on the private address range.

Then under the gateway table, select the default gateway from the list. You can’t leave this to auto in my experience as this doesn’t automatically set the one and only gateway remaining in the list as the default.

Reboot PFSense again to make sure everything is still working as expected.