<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Disqus - Latest Comments for knightnet</title><link>http://disqus.com/by/knightnet/</link><description></description><atom:link href="http://disqus.com/knightnet/comments.rss" rel="self"></atom:link><language>en</language><lastBuildDate>Tue, 27 May 2025 07:35:10 -0000</lastBuildDate><item><title>Re: 
How to create secure certificates
</title><link>https://it.knightnet.org.uk/kb/nr-qa/https-valid-certificates/#comment-6712437083</link><description>&lt;p&gt;Thanks for the kind words. 😊&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Julian Knight</dc:creator><pubDate>Tue, 27 May 2025 07:35:10 -0000</pubDate></item><item><title>Re: Drayton Wiser heating control | Much Ado About IT</title><link>https://it.knightnet.org.uk/kb/nr-qa/drayton-wiser-heating-control/#comment-6571724249</link><description>&lt;p&gt;Hi, as far as I'm aware, it still works. I don't have a newer gateway to test it with though. I did note that, at one point, my whole setup stopped connecting to the hub. I believe that was due to a hub upgrade that Wiser must have pushed out which reset my API secret so I had to go back and reset the hub to get the new secret.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Julian Knight</dc:creator><pubDate>Wed, 16 Oct 2024 07:36:30 -0000</pubDate></item><item><title>Re: Six easy ways to run your Jupyter Notebook in the cloud</title><link>https://www.dataschool.io/p/cfe09262-614c-42e6-8fb1-229d1c241f38/#comment-6482878870</link><description>&lt;p&gt;There are a lot of options for sharing from "local" devices. Check out Cloudflare Zero Trust, NGROK, ZeroTier and others.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Julian Knight</dc:creator><pubDate>Mon, 17 Jun 2024 15:59:04 -0000</pubDate></item><item><title>Re: Six easy ways to run your Jupyter Notebook in the cloud</title><link>https://www.dataschool.io/p/cfe09262-614c-42e6-8fb1-229d1c241f38/#comment-6482875692</link><description>&lt;p&gt;While Azure Notebooks got retired, you might want to know that VScode supports Jupyter notebooks very nicely without the need for a server. Not sure if there are any limitations and would be interested to here if there are. My use of them is relatively simple and I've had no issues. There is also a multi-kernel extension that lets you use non-Python kernels such as node.js.&lt;/p&gt;&lt;p&gt;You can also use GitHub to host notebooks. They have a free tier as well.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Julian Knight</dc:creator><pubDate>Mon, 17 Jun 2024 15:54:42 -0000</pubDate></item><item><title>Re: ​How to Upgrade Debian 10 Buster to Debian 11 Bullseye</title><link>https://linuxize.com/post/how-to-upgrade-debian-10-to-debian-11/#comment-6313921767</link><description>&lt;p&gt;Great and straight-forward set of instructions. Many thanks for this.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Julian Knight</dc:creator><pubDate>Wed, 01 Nov 2023 17:46:49 -0000</pubDate></item><item><title>Re: How to Manage and Share Your Photos With Amazon Photos - Online/Cloud Backup Services</title><link>https://www.pcmag.com/how-to/how-to-manage-and-share-your-photos-with-amazon-photos#comment-5945491767</link><description>&lt;p&gt;Amazon photos should be a great tool. But ends up being a nightmare that only allows photos in and makes it almost impossible to get them out in any reasonable or automated way. AVOID if you care about the long-term health of your precious photos.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Julian Knight</dc:creator><pubDate>Fri, 12 Aug 2022 10:15:27 -0000</pubDate></item><item><title>Re: Troy Hunt: Gov HIBP</title><link>https://www.troyhunt.com/the-uk-and-australian-governments-are-now-monitoring-their-gov-domains-on-have-i-been-pwned/#comment-5772635930</link><description>&lt;p&gt;Oops, just noticed of course that should be NCSC not NSCS!&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Julian Knight</dc:creator><pubDate>Mon, 28 Feb 2022 08:42:39 -0000</pubDate></item><item><title>Re: The Seven Best MQTT Client Tools</title><link>https://www.hivemq.com/blog/seven-best-mqtt-client-tools#comment-5759224591</link><description>&lt;p&gt;Not sure why nobody has mentioned MQTT Explorer. Great client.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Julian Knight</dc:creator><pubDate>Wed, 23 Feb 2022 07:01:50 -0000</pubDate></item><item><title>Re: Optional chaining '?.'</title><link>https://javascript.info/optional-chaining#comment-5602649025</link><description>&lt;p&gt;It isn't just "old browsrs" that can't use this. And also, I'm not sure that a polyfill could be written for this - if it can, please reference it.&lt;br&gt;You absolutely cannot rely on this being available either in the browser or Node.js unless you have complete assurance that only browsers from 2021+ or Node.js v14+ are the only things used.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Julian Knight</dc:creator><pubDate>Tue, 09 Nov 2021 15:17:00 -0000</pubDate></item><item><title>Re: Mixins</title><link>https://javascript.info/mixins#comment-5602614942</link><description>&lt;p&gt;Nice tutorial in general but what is the point of using the optional chaining operator in a course like this when it is only reliably available on browsers from 2021? It is more confusing than helpful for anyone on previous browsers. If also does not explain things well because it is too obscure. It will be a great feature in a few years time when 99%+ of browsers will support it. Even on Node.js it is only supported from v14 and v12 is still a current LTS version. So even there it may be some years before it can be relied on.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Julian Knight</dc:creator><pubDate>Tue, 09 Nov 2021 14:47:01 -0000</pubDate></item><item><title>Re: How to disable Google’s click tracking &amp; crapification of search result URLs</title><link>https://www.chainsawonatireswing.com/2013/03/20/how-to-disable-googles-click-tracking-crapification-of-search-result-urls/#comment-5312407972</link><description>&lt;p&gt;No longer works.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Julian Knight</dc:creator><pubDate>Sun, 21 Mar 2021 16:31:02 -0000</pubDate></item><item><title>Re: Useful notifications from your home appliances using Node-RED</title><link>http://tinkerman.cat/useful-notifications-from-your-home-appliances-using-node-red/#comment-5178946848</link><description>&lt;p&gt;Great write-up. The only thing I don't like - not your fault :-)  - is using relay-based devices on critical white goods. I've seen far too many relays fail. It would be really good to see a write=up of a non-in-line version of this post so that you were not reliant on a relay.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Julian Knight</dc:creator><pubDate>Sun, 06 Dec 2020 09:22:09 -0000</pubDate></item><item><title>Re: 
            Node-RED - Courses and Tutorials
        </title><link>https://it.knightnet.org.uk/kb/nr-qa/courses-and-tutorials/#comment-5129907768</link><description>&lt;p&gt;Thanks Marc, looks like Coursera keep changing things. At least YouTube and the Node-RED programming guide are still there! Please do come and join the discussion on Discourse (&lt;a href="https://discourse.nodered.org/)" rel="nofollow noopener" target="_blank" title="https://discourse.nodered.org/)"&gt;https://discourse.nodered.o...&lt;/a&gt; if you haven't already. There are certainly other courses and tutorials around now for Node-RED.&lt;/p&gt;&lt;p&gt;If you aren't already familiar, Node-RED is going from strength-to-strength, now at v1.2 and in use not just by enthusiasts but built into many commercial products as well.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Julian Knight</dc:creator><pubDate>Thu, 29 Oct 2020 14:13:05 -0000</pubDate></item><item><title>Re: 
            Macro to open a web URL from Outlook
        </title><link>https://it.knightnet.org.uk/kb/ms-office/outlook-macro-open-web-url/#comment-5118785764</link><description>&lt;p&gt;There are lots of other things you could do. In my reply I assumed you just had access to Outlook. Even there, Microsoft now offer a new scripting interface that uses JavaScript rather than VBA. So if you are using a newer version of Outlook and certainly if you are using the Office 365 version, you can simply install Microsoft's scripting app from the Office store. I've not really tried it much but you might find it easier to get started with than traditional VBA.&lt;/p&gt;&lt;p&gt;Depending on the mail server and your requirements, you could potentially look at other methods too. Such as using Node-RED to access your mail server. That would give you some low-code options for analysing the mail body, extracting the text and either automatically sending a request to the webpage or doing that via an easy to set up web interface.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Julian Knight</dc:creator><pubDate>Wed, 21 Oct 2020 06:57:20 -0000</pubDate></item><item><title>Re: 
            Macro to open a web URL from Outlook
        </title><link>https://it.knightnet.org.uk/kb/ms-office/outlook-macro-open-web-url/#comment-5093985090</link><description>&lt;p&gt;Hi, thanks for your query. I'm rather rusty on the Outlook object model, not something I have to deal with day-to-day.&lt;/p&gt;&lt;p&gt;In order to do that, you will need to access the text of the body of the email. You will then need to search the text for a valid url.&lt;/p&gt;&lt;p&gt;Having got the url, I think that you would access the default browser by executing a command line. If not command line, you could use Microsoft's browser automation library, I've not done that myself since early IE days so I can't help with details I'm afraid.&lt;/p&gt;&lt;p&gt;To search the email body, you might want to use Microsoft's regular expression library. Regular Expressions are not available in VBA by default but you can attach the library and then use it.&lt;/p&gt;&lt;p&gt;Because you will be searching free text, you will understand that getting a robust solution isn't that easy. It shouldn't be a lot of code to write but it is quite involved.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Julian Knight</dc:creator><pubDate>Fri, 02 Oct 2020 05:49:45 -0000</pubDate></item><item><title>Re: 
How to create secure certificates
</title><link>https://it.knightnet.org.uk/kb/nr-qa/https-valid-certificates/#comment-5022715087</link><description>&lt;p&gt;Hi, thanks for commenting.&lt;/p&gt;&lt;p&gt;I don't have a QNAP but I do have a Synology NAS and I've not managed to get that working with LE either. Though I can't say I've tried that hard to be honest. I stopped using it for anything other than backups and file shares as even with upgraded memory, it was getting too slow (too much data!).&lt;/p&gt;&lt;p&gt;The simplest proxy I've found for supporting LE directly is Caddy.&lt;/p&gt;&lt;p&gt;However, the simplest tool for managing LE certificates I've found by far is the &lt;a href="http://acme.sh" rel="nofollow noopener" target="_blank" title="acme.sh"&gt;acme.sh&lt;/a&gt; script that you can find on GitHub. I set this up in its own folder and got it to generate and auto-renew a couple of wild-card, multi-domain LE certificates and it works fabulously. It means that I don't have to worry about using complex software to do what should be (and now is) a simple task. The script puts renewed certificate files into a sub-folder so I know exactly where they are. That means that I can secure them properly and either copy automatically to different places where they are needed (if on a different device for example) or simply link the appropriate files.&lt;/p&gt;&lt;p&gt;I also put some effort into configuring my home networking so that I can use a registered domain name internally so now all of my home network devices from the NAS to various IoT devices can all use a wildcard certificate giving me TLS security everywhere.&lt;/p&gt;&lt;p&gt;For externally accessible resources, I will restrict access only to Cloudflare and all of my public resources are accessed only via Cloudflare - I use their shared certificate for that as it is easier.&lt;/p&gt;&lt;p&gt;Hope this helps somewhat?&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Julian Knight</dc:creator><pubDate>Sat, 08 Aug 2020 10:48:31 -0000</pubDate></item><item><title>Re: 
            How to generate a list of pages in a given folder
        </title><link>https://it.knightnet.org.uk/kb/ghjekyll/list-folder-pages/#comment-4950759847</link><description>&lt;p&gt;Sorry, but this did work when I wrote the article 2 years ago. But I stopped using Jekyll a long time ago as Liquid was so unreliable. I moved quite quickly to Hugo. I leave these pages here for reference. Please see the article about problems that I had with Jekyll. &lt;a href="https://it.knightnet.org.uk/kb/ghjekyll/github-pages-issues/" rel="nofollow noopener" target="_blank" title="https://it.knightnet.org.uk/kb/ghjekyll/github-pages-issues/"&gt;https://it.knightnet.org.uk...&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Julian Knight</dc:creator><pubDate>Thu, 11 Jun 2020 19:11:38 -0000</pubDate></item><item><title>Re: 
            How to extract a table from HTML
        </title><link>https://it.knightnet.org.uk/kb/nr-qa/extract-html-table.html#comment-4950589425</link><description>&lt;p&gt;You need to change the tableselector variable to be &lt;code&gt;const tableSelector = 'body &amp;gt; table'&lt;/code&gt; since that is how the full table is selected. You can work out the correct selector using your browser's developer tools. This article has a decent description: &lt;a href="https://medium.com/@stefanhyltoft/scraping-html-tables-with-nodejs-request-and-cheerio-e3c6334f661b" rel="nofollow noopener" target="_blank" title="https://medium.com/@stefanhyltoft/scraping-html-tables-with-nodejs-request-and-cheerio-e3c6334f661b"&gt;https://medium.com/@stefanh...&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Incidentally, someone has created a cheerio function node since I wrote this article, you can replace my standard function node and the messing with the settings.js file and use that node instead if you like.&lt;/p&gt;&lt;p&gt;PS: Sorry, I didn't see your other post until after I had written this. I think we wrote them about the same time :-)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Julian Knight</dc:creator><pubDate>Thu, 11 Jun 2020 16:53:49 -0000</pubDate></item><item><title>Re: Build a Command Line Application with Node.js</title><link>https://developer.okta.com/blog/2019/06/18/command-line-app-with-nodejs#comment-4904803735</link><description>&lt;p&gt;I do lots of open source development on Windows natively using Node.js and Node-RED. No need to get into the complexity of WSL &amp;amp; it encourages you to write cross-platform code including command-line scripts. I would much rather write a node.js script and call it from npm than I would write separate bash, cmd, PS scripts. And only 1 language to learn.&lt;/p&gt;&lt;p&gt;Oddly, my main use for WSL is to SSH into remote shells - it seems to be vastly quicker to use WSL to do that than to use the native Windows SSH client. Weird but true.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Julian Knight</dc:creator><pubDate>Thu, 07 May 2020 11:54:40 -0000</pubDate></item><item><title>Re: Tips for using the Hugo academic theme</title><link>https://lmyint.github.io/post/hugo-academic-tips/#comment-4829045028</link><description>&lt;p&gt;Thanks a lot for sharing the source. I have shamelessly "borrowed" your theme settings, much nicer than the ones that come with Academic.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Julian Knight</dc:creator><pubDate>Wed, 11 Mar 2020 14:48:10 -0000</pubDate></item><item><title>Re: This website is safe: techcrunch.com! — Adblock by AdGuard</title><link>https://reports.adguard.com/en/techcrunch.com/report.html#comment-4810665442</link><description>&lt;p&gt;"Safe"? Seems to be a somewhat relative term in this case since Techcrunch is now owned by Verizon/Yahoo. I counted over 500 possible "partners" that your information may be shared with (via their cookie disclaimer). AdGuard blocked 27 resources from loading.&lt;/p&gt;&lt;p&gt;So doesn't sound that safe to me!&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Julian Knight</dc:creator><pubDate>Wed, 26 Feb 2020 07:58:23 -0000</pubDate></item><item><title>Re: 
Download a GitHub Repository using Node.JS
</title><link>https://it.knightnet.org.uk/kb/node-js/download-repo-github/#comment-4810555329</link><description>&lt;p&gt;OK, so the repo you have included on line 30 works perfectly as a manual download.&lt;/p&gt;&lt;p&gt;Did you try my code rather than yours? I just tried it with that URL and it worked perfectly. So I'm afraid that the issue is in your more complex code somewhere. Not really sure of the value of using Axios on server-side code but it looks to me as though you have mixed server and client (browser) code? My example is specifically Node.js based, not browser.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Julian Knight</dc:creator><pubDate>Wed, 26 Feb 2020 06:34:28 -0000</pubDate></item><item><title>Re: 
Download a GitHub Repository using Node.JS
</title><link>https://it.knightnet.org.uk/kb/node-js/download-repo-github/#comment-4807385832</link><description>&lt;p&gt;I just tested with another of my repo's and it worked:&lt;/p&gt;&lt;p&gt;&lt;code&gt;https://codeload.github.com/TotallyInformation/TI-Common/zip/master&lt;/code&gt;&lt;/p&gt;&lt;p&gt;You do, of course, in either case need to know the branch name. There should always be a master branch though that may not be the current branch.&lt;/p&gt;&lt;p&gt;Do you have an example of one that you've tried but didn't work for you?&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Julian Knight</dc:creator><pubDate>Mon, 24 Feb 2020 05:28:28 -0000</pubDate></item><item><title>Re: 
            Node-RED - Courses and Tutorials
        </title><link>https://it.knightnet.org.uk/kb/nr-qa/courses-and-tutorials/#comment-4807382269</link><description>&lt;p&gt;Hi Ray, nice to talk again.&lt;/p&gt;&lt;p&gt;It looks like they've removed that course. I'll update this page at some point. The list of IoT courses on Coursera is here:&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.coursera.org/search?query=iot&amp;amp;page=1&amp;amp;configure%5BclickAnalytics%5D=true&amp;amp;indices%5Bprod_all_products_term_optimization%5D%5Bconfigure%5D%5BclickAnalytics%5D=true&amp;amp;indices%5Bprod_all_products_term_optimization%5D%5Bconfigure%5D%5BruleContexts%5D%5B0%5D=en&amp;amp;indices%5Bprod_all_products_term_optimization%5D%5Bconfigure%5D%5BhitsPerPage%5D=10" rel="nofollow noopener" target="_blank" title="https://www.coursera.org/search?query=iot&amp;amp;page=1&amp;amp;configure%5BclickAnalytics%5D=true&amp;amp;indices%5Bprod_all_products_term_optimization%5D%5Bconfigure%5D%5BclickAnalytics%5D=true&amp;amp;indices%5Bprod_all_products_term_optimization%5D%5Bconfigure%5D%5BruleContexts%5D%5B0%5D=en&amp;amp;indices%5Bprod_all_products_term_optimization%5D%5Bconfigure%5D%5BhitsPerPage%5D=10"&gt;Coursera IoT Course List&lt;/a&gt;&lt;/p&gt;&lt;p&gt;But things have moved on since I wrote this post a year ago. Try &lt;a href="http://www.steves-internet-guide.com/node-red-overview/" rel="nofollow noopener" target="_blank" title="http://www.steves-internet-guide.com/node-red-overview/"&gt;Steve's course&lt;/a&gt; for an overview of Node-RED. Udemy is another $$ service that has a &lt;a href="https://www.udemy.com/course/introduction-to-node-red/" rel="nofollow noopener" target="_blank" title="https://www.udemy.com/course/introduction-to-node-red/"&gt;Node-RED Course&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;There are plenty of others found with some searching too. I don't think there is a specific uibuilder course though I'm afraid &amp;amp; I've never quite had the time/courage to create any YouTube videos.&lt;/p&gt;&lt;p&gt;The thing to remember about uibuilder is that it is the "glue" between Node-RED and your front-end (browser) code. Your Node-RED flow sends and receives data to/from your uibuilder web pages and makes other libraries available.&lt;/p&gt;&lt;p&gt;On the front-end, you create a user interface (UI) by writing HTML, JavaScript and CSS just like any other web page. The only difference being that you get a small helper library that makes it really easy to receive/send messages from/to Node-RED.&lt;/p&gt;&lt;p&gt;So to make best use of uibuilder, you will need some web development skills. With the included VueJS and bootstrap-vue framework libraries, it is really very easy to create good looking UI's with minimal coding and you should try out the various examples that are included in the Node-RED library (Import &amp;gt; Examples from the Node-RED menu) and on the &lt;a href="https://github.com/TotallyInformation/node-red-contrib-uibuilder/wiki" rel="nofollow noopener" target="_blank" title="https://github.com/TotallyInformation/node-red-contrib-uibuilder/wiki"&gt;uibuilder WIKI&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;If you are struggling with VueJS, try out the simple example first. If that is still too much, try the jQuery example (that is a different framework to VueJS) as you might find that easier to understand. Each person is different which is the nice thing about uibuilder since you aren't forced to use a specific framework like you are with Node-RED's own Dashboard (Angular v1). Also, unlike Dashboard, uibuilder doesn't get in the way of using the framework so you should be able to use examples from the web. Just note that with something like VueJS or REACT, many examples and tutorials assume that you will be doing a "build step" using something like webpack. Obviously, this is quite a step up from simple usage. I do have an example of using webpack in the WIKI but I would try to avoid it to begin with. Most well-written tutorials and components for VueJS will have a method of working without a build step but it sometimes takes some interpretation of the docs to understand it. You may have seen this from some of the Discourse threads. Just ask in Discourse though if you aren't sure.&lt;/p&gt;&lt;p&gt;And please don't be concerned about asking questions of any kind on the Node-RED Discourse forum. We are a welcoming bunch there with people from all walks of life and all skill ranges from none to expert.&lt;/p&gt;&lt;p&gt;If there is anything I can help with, I will do my best.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Julian Knight</dc:creator><pubDate>Mon, 24 Feb 2020 05:21:42 -0000</pubDate></item><item><title>Re: 
Download a GitHub Repository using Node.JS
</title><link>https://it.knightnet.org.uk/kb/node-js/download-repo-github/#comment-4795171649</link><description>&lt;p&gt;Have you tried accessing the url manually or via curl/wget? Generally, if it isn't working you have an error in your URL.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Julian Knight</dc:creator><pubDate>Thu, 13 Feb 2020 16:25:53 -0000</pubDate></item></channel></rss>