tag:blogger.com,1999:blog-86392023047325036652024-03-16T02:11:01.224+01:00RobIIIRobIIIhttp://www.blogger.com/profile/04573618019707966117noreply@blogger.comBlogger26125tag:blogger.com,1999:blog-8639202304732503665.post-11745544357621272172024-02-12T19:09:00.003+01:002024-02-12T19:30:23.749+01:00Another "How to boot your Raspberry Pi from SSD"<p>This is another short one in the category: "I keep forgetting, so let's document it". This post contains the steps to make your Raspberry Pi boot from an external device like an SSD or HDD. It works on Raspbian (Debian) 12 (Bookworm). I haven't tested this on any other versions.<span></span></p><a href="https://blog.robiii.nl/2024/02/another-how-to-boot-your-raspberry-pi.html#more">Read more »</a>RobIIIhttp://www.blogger.com/profile/04573618019707966117noreply@blogger.com0tag:blogger.com,1999:blog-8639202304732503665.post-54421550839436539822023-12-16T01:18:00.008+01:002023-12-16T01:21:23.548+01:00Wemos D1 Mini won't write?<p>Ok, this is a short one. On a few occasions when I'm trying to write a Wemos D1 Mini, no matter what I try, it won't write. Since I've "fixed" this on many occasion but I keep forgetting how I'm actually writing it down now so next time I won't have to scratch my head for so long. It's simple...</p><span></span><a href="https://blog.robiii.nl/2023/12/wemos-d1-mini-wont-write.html#more">Read more »</a>RobIIIhttp://www.blogger.com/profile/04573618019707966117noreply@blogger.com0tag:blogger.com,1999:blog-8639202304732503665.post-26446496907231552772022-12-21T02:16:00.015+01:002022-12-27T22:50:43.248+01:00Andonstar AD208 battery compartment fix<p>For a long time I wondered why my Andonstar AD208 wouldn't keep time, even though I placed an 18650 battery in the battery compartment. If it couldn't do that, then what was even the use of the battery that could clearly be placed in the microscope?</p><span></span><a href="https://blog.robiii.nl/2022/12/andonstar-ad208-battery-compartment-fix.html#more">Read more »</a>RobIIIhttp://www.blogger.com/profile/04573618019707966117noreply@blogger.com0Beekveld 54, 5421 DK Gemert, Netherlands51.5528115 5.702344551.55147731742673 5.7001987327880856 51.554145682573264 5.7044902672119138tag:blogger.com,1999:blog-8639202304732503665.post-87791949378133990402022-10-02T23:27:00.112+02:002022-10-04T02:04:21.027+02:00Shelly: The device is already owned by another user/account<p>This post has two parts. The first part is most likely what you're here for: Getting rid of this stupid error. It turns out that is quite easy and I will explain in a second. The second part, however, is how this (apparently) happens, how Shelly deals with this issue and how Shelly exposed another customer's details to me.</p><span></span><a href="https://blog.robiii.nl/2022/10/shelly-device-is-already-owned-by.html#more">Read more »</a>RobIIIhttp://www.blogger.com/profile/04573618019707966117noreply@blogger.com14Beekveld 54, 5421 DK Gemert, Netherlands51.5528115 5.702344529.460548055100546 -29.4539055 73.645074944899449 40.8585945tag:blogger.com,1999:blog-8639202304732503665.post-64777581087089487662022-01-13T19:31:00.034+01:002023-06-16T11:51:10.855+02:00Hack your Segway E110S / E110SE / E125S<p>We used to rent scooters from time to time because myself, the misses and the kids like to go for rides on sunny days. It didn't take long before we decided that keep renting scooters wasn't a viable option and that we should treat ourselves to our very own scooters. After doing some research, nerd as I am, we ended up buying two Segway E110SE's.</p><span></span><a href="https://blog.robiii.nl/2022/01/hack-your-segway-e110s-e110se-125s.html#more">Read more »</a>RobIIIhttp://www.blogger.com/profile/04573618019707966117noreply@blogger.com37Beekveld 54, 5421 DK Gemert, Netherlands51.5528115 5.702344523.242577663821152 -29.4539055 79.863045336178843 40.8585945tag:blogger.com,1999:blog-8639202304732503665.post-42628060313828253822021-12-12T14:26:00.014+01:002021-12-24T01:49:35.343+01:00The DIYMore 18650 Battery Shield V3 su... isn't very good.<p>Earlier this week I was working on a project where I wanted to power some electronics with an 18650 cell. Because I needed 5V and 3.3V and an 18650 doesn't provide either I dove into my grab stock and came out with one of the <a href="https://www.diymore.cc/collections/expansion-shield-module/products/micro-usb-wemos-esp32-plug-18650-battery-shield-v3-esp-32-for-arduino-raspberry-pi">"DIYMORE" battery shields</a> I had in stock, ordered <a href="https://www.aliexpress.com/item/4001251319520.html">on the cheap</a> from AliExpress when I stumbled upon them one day. So I put an 18650 in, soldered the electronics to the 3.3V and 5V rails, checked if everything worked and went on my merry way.</p><span>
</span><a href="https://blog.robiii.nl/2021/12/the-diymore-18650-battery-shield-v3-su.html#more">Read more »</a>RobIIIhttp://www.blogger.com/profile/04573618019707966117noreply@blogger.com1Beekveld 54, 5421 DK Gemert, Netherlands51.552782 5.70231551.5524484436622 5.7017785581970211 51.5531155563378 5.7028514418029781tag:blogger.com,1999:blog-8639202304732503665.post-69503195862169595952021-11-12T13:37:00.005+01:002021-11-13T03:58:54.596+01:00Using Data Protection in Entity Framework Core with Value Converters (v1.1)<p>This post is intended as an addendum on Mgr. Jiří Činčura's excellent post <a href="https://www.tabsoverspaces.com/233774-using-data-protection-in-entity-framework-core-with-value-converters">Using Data Protection in Entity Framework Core with Value Converters</a> <span style="font-size: xx-small;">(<a href="https://web.archive.org/web/20211112105417/https://www.tabsoverspaces.com/233774-using-data-protection-in-entity-framework-core-with-value-converters">archive 1</a>, <a href="https://archive.md/JxxHl">archive 2</a>)</span>. In it, he explains how you can use an Entity Framework Core <a href="https://docs.microsoft.com/en-us/ef/core/modeling/value-conversions?tabs=data-annotations#the-valueconverter-class"><span style="font-family: courier;">ValueConverter</span></a> to encrypt data before it being stored in the database and decrypt it when reading from the database.</p><span></span><a href="https://blog.robiii.nl/2021/11/using-data-protection-in-entity.html#more">Read more »</a>RobIIIhttp://www.blogger.com/profile/04573618019707966117noreply@blogger.com0Beekveld 54, 5421 DK Gemert, Netherlands51.552782 5.70231551.552615221781025 5.70204677909851 51.552948778218976 5.7025832209014888tag:blogger.com,1999:blog-8639202304732503665.post-15881102870150901312021-09-24T11:39:00.004+02:002021-09-24T11:39:47.503+02:00Install Microsoft SQL Server on Debian<p>Short howto on how to best install MSSQL on Debian (bullseye). Based on <a href="https://docs.microsoft.com/en-us/sql/linux/quickstart-install-connect-ubuntu?view=sql-server-ver15">Microsoft's documentation for Ubuntu</a>.</p><span></span><a href="https://blog.robiii.nl/2021/09/install-microsoft-sql-server-on-debian.html#more">Read more »</a>RobIIIhttp://www.blogger.com/profile/04573618019707966117noreply@blogger.com1Gemert, Netherlands51.5552886 5.69036651.55262016188874 5.6860744655761719 51.557957038111255 5.6946575344238282tag:blogger.com,1999:blog-8639202304732503665.post-82627852667726541192021-07-30T20:53:00.030+02:002022-08-31T01:11:10.116+02:00Toshiba Airconditioner WiFi troubles<p>This week I had three airconditioners installed - 2 Toshiba Kazumi's (<a href="https://www.toshiba-airco.com/nl/ras-b07j2kvsg">RAS-B07J2KVSG</a> (<a href="https://archive.is/AMcnw">archived</a>)) with <a href="https://www.toshiba-airco.com/nl/ac-home-control-ras">optional WiFi module</a> (<a href="https://archive.is/OyebB">archived</a>) and a Haori (<a href="https://www.toshiba-airco.com/nl/haori-single">RAS-N4KVRG-E</a> (<a href="https://archive.is/dFoRx">archived</a>)) which has the WiFi module built-in. Unfortunately I was on vacation during installation so the installers couldn't setup the AC's with my WiFi. Being reasonably capable of figuring this out myself I told them not to bother and I'd do it myself. I was aware of the (only) requirement of the WiFi modules for the AC's: they require a 2.4Ghz WiFi connection.</p><span></span><a href="https://blog.robiii.nl/2021/07/toshiba-airconditioner-wifi-troubles.html#more">Read more »</a>RobIIIhttp://www.blogger.com/profile/04573618019707966117noreply@blogger.com7Gemert, Netherlands51.5552886 5.69036623.245054763821152 -29.465884 79.86552243617885 40.846616tag:blogger.com,1999:blog-8639202304732503665.post-19553939709542333132021-07-06T16:15:00.010+02:002021-07-06T19:06:55.924+02:00Storing IP's and networks in SQL Server efficiently<p>When you Google on how to store IP addresses efficiently in SQL server few approaches keep coming up. Most of these approaches most notably tend to 'forget' about IPv6 and work exclusively for IPv4 IP addresses. Other approaches use a (var)char to store IP addresses and this works fine, as long as your (var)char allows up to 39 characters if you want to be able to handle IPv6 IP addresses. It'll also work fine whenever all you need to do is store an IP address or maybe even search for a specific IP address, such as in logging scenarios, where you can write <span style="background-color: #f3f3f3; font-family: courier;">SELECT * FROM MYTABLE WHERE [ip] = '192.168.0.1'</span>. However, when storing networks (such as 192.168.0.0/24 in <a href="https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing">CIDR</a> notation) things get a bit harder. If you want to find all networks that 'contain' a given network you're in for some trouble. Another solution is to store IP's as (var)binary. Again, most solutions I found only worked with IPv4 but it's perfectly possible to store both IPv4 and IPv6 IP's in a single (var)binary field.</p>
<a href="https://blog.robiii.nl/2021/07/storing-ips-and-networks-in-sql-server.html#more">Read more »</a>RobIIIhttp://www.blogger.com/profile/04573618019707966117noreply@blogger.com05421 DK Gemert, Netherlands51.5527734 5.702199999999998618.562704523680459 -29.454050000000002 84.542842276319533 40.85845tag:blogger.com,1999:blog-8639202304732503665.post-3996490716886281482021-05-24T17:28:00.002+02:002021-05-24T17:47:11.742+02:00Udemy family sharing<p>Udemy is having one of their sales and a lot of the courses seemed interesting for my kids, my wife or myself. We always use our separate accounts and keep them to ourselves. For everything. However, since I couldn't find any information on family-sharing (as you can with, say, <a href="https://store.steampowered.com/promotion/familysharing">Steam</a> for example) I purchased some courses on my account and decided to share my account with my family (thanks <a href="https://www.lastpass.com/family-password-manager">LastPass</a> for making that easy!).</p><span></span><a href="https://blog.robiii.nl/2021/05/udemy-family-sharing.html#more">Read more »</a>RobIIIhttp://www.blogger.com/profile/04573618019707966117noreply@blogger.com1Thuis51.5528115 5.702344523.242577663821152 -29.4539055 79.863045336178843 40.8585945tag:blogger.com,1999:blog-8639202304732503665.post-69642585185182820272020-11-17T11:38:00.007+01:002020-11-17T11:48:59.333+01:00Loud Mean Well LRS-350-24 fan<p>Recently I bought a <a href="https://www.meanwell.com/webapp/product/search.aspx?prod=LRS-350">Mean Well LRS-350-24</a> AC/DC power supply to drive a decent length of LED strips. It turns out the fan in this power supply is kind of loud - it has only kicked in twice but both occasions I was astonished about the loudness of the fan. A quick Google showed that I'm not alone in this.<span></span></p><a href="https://blog.robiii.nl/2020/11/loud-mean-well-lrs-350-24-fan.html#more">Read more »</a>RobIIIhttp://www.blogger.com/profile/04573618019707966117noreply@blogger.com4tag:blogger.com,1999:blog-8639202304732503665.post-21009335010817304722020-06-04T14:20:00.003+02:002020-06-04T14:35:10.719+02:00How to erase your SSD / HDD using hdparmI <a href="https://www.blogger.com/2020/04/wd-red-nas-drives-use-smr-and-im-not.html">recently</a> had to ship some (used) drives back to the manufacturer. And even though I'm pretty sure the drives will be erased first thing and even though the drives were used in a RAID (actually <a href="https://www.synology.com/en-uk/knowledgebase/DSM/tutorial/Storage/What_is_Synology_Hybrid_RAID_SHR">SHR2</a>) set with an encrypted volume and it would be hard, if not impossible, to recover anything from them without my help I'm still never too keen to keep my bits and bytes on drives that are out of my hands. Selling my laptop? Erase drive. Recycling an old workstation? Erase drive. Then use a hammer to whack a screwdriver through the drive or "drop" (rather: throw) the drive on the ground a few times. You never know where a drive ends up and in who's hands.<br>
<br>
<a href="https://blog.robiii.nl/2020/06/how-to-erase-your-ssd-hdd-using-hdparm.html#more">Read more »</a>RobIIIhttp://www.blogger.com/profile/04573618019707966117noreply@blogger.com0tag:blogger.com,1999:blog-8639202304732503665.post-55571801764534229532020-04-25T20:25:00.005+02:002020-06-29T02:00:23.719+02:00WD Red NAS drives use SMR and I'm not happy about it - understatement of the yearIf you're into NAS drives then you may have heard that recently word got around that Western Digital's NAS drives,
the WD Reds specifically, apparently use SMR - <a href="https://en.wikipedia.org/wiki/Shingled_magnetic_recording">Shingled Magnetic Recording</a>. There's been a
lot of fuss about it and I'm not about to repeat it all so that's why I'll provide some links to other sources I
came across myself. What this blogpost <i>is</i> about, though, is me documenting what happened after I contacted WD
from a customer perspective. Your experience may vary, but what you're about to read is <i>mine</i>.<br>
<br>
<a href="https://blog.robiii.nl/2020/04/wd-red-nas-drives-use-smr-and-im-not.html#more">Read more »</a>RobIIIhttp://www.blogger.com/profile/04573618019707966117noreply@blogger.com2tag:blogger.com,1999:blog-8639202304732503665.post-76723566490855111752019-02-27T12:18:00.000+01:002019-02-27T13:41:10.602+01:00Handling multiple implementations of an interface with Dependency Injection in .Net CoreWhen you have an interface with multiple implementations and you don't want to use a 3rd party DI framework, you'll need to work around some limitations of the 'native' DI implementation in .Net Core.<br>
<a href="https://blog.robiii.nl/2019/02/handling-multiple-implementations-of.html#more">Read more »</a>RobIIIhttp://www.blogger.com/profile/04573618019707966117noreply@blogger.com2tag:blogger.com,1999:blog-8639202304732503665.post-36109666059650220962018-08-16T13:49:00.001+02:002018-08-18T12:40:45.332+02:00Swashbuckle custom ordering of controllersBy default, <a href="https://swagger.io/">Swagger</a> (or rather: <a href="https://github.com/domaindrivendev/Swashbuckle">Swashbuckle</a>) orders the documentation of controllers by controllername. So if you have a FooController, BarController and BazController they will be ordered as Bar, Baz, Foo in the swagger UI. Let's change that.<br>
<a href="https://blog.robiii.nl/2018/08/swashbuckle-custom-ordering-of.html#more">Read more »</a>RobIIIhttp://www.blogger.com/profile/08788199644096540117noreply@blogger.com8tag:blogger.com,1999:blog-8639202304732503665.post-61351472621264278072015-10-29T22:24:00.000+01:002015-10-30T20:06:18.465+01:00Configure your Windows Remote Desktop (RDP) to use TLS with a StartSSL certificateI wanted to use TLS with non-self-signed certificates for RDP connections to my workstation at home and so I set out to make it happen. Since I don't have a domain with Active Directory (anymore...) the 'usual' methods found on the web don't quite apply. Here's a simple, step-by-step, guide on how to use <a href="https://www.startssl.com/">StartSSL</a> certificates to secure your RDP connection. <i>This should also work fine with certificates from other CA's; step 2 and 3 (obtaining the <span style="font-family: Courier New, Courier, monospace;">.crt</span> file) can/will be different but other than that you should be fine.</i><br>
<a href="https://blog.robiii.nl/2015/10/configure-your-windows-remote-desktop.html#more">Read more »</a>RobIIIhttp://www.blogger.com/profile/04573618019707966117noreply@blogger.com0tag:blogger.com,1999:blog-8639202304732503665.post-65725819132061483342015-05-08T19:53:00.001+02:002015-05-09T02:23:30.937+02:00Do you really want "bank grade" security in your SSL? Dutch editionInspired by <a href="http://www.troyhunt.com/2015/05/do-you-really-want-bank-grade-security.html" target="_blank">Do you really want "bank grade" security in your SSL? Here’s how Aussie banks fare</a> found on <a href="https://www.reddit.com/r/programming" target="_blank">/r/programming</a> I present to you the "Dutch edition". The author used <a href="https://www.ssllabs.com/ssltest/" target="_blank">Qualys SSL Labs' SSL test</a> to determine how good banks' SSL implementations really are.<br>
<a href="https://blog.robiii.nl/2015/05/do-you-really-want-bank-grade-security.html#more">Read more »</a>RobIIIhttp://www.blogger.com/profile/04573618019707966117noreply@blogger.com0tag:blogger.com,1999:blog-8639202304732503665.post-66786015061798287242014-10-21T22:37:00.000+02:002014-10-25T16:24:03.987+02:00MongoVue GridFS bugI have been a <a href="http://www.mongovue.com/" target="_blank">MongoVUE</a> user for some time and have always been quite happy with it. I had a bug or problem a few years ago (can't remember what exactly) and was quite astonished that their site doesn't feature a "support" section. All you can do is click "contact us" and fill in some crappy e-mail form. Back then, if I recall correctly, it must've done the job because the bug has been fixed (I guess).<br>
<a href="https://blog.robiii.nl/2014/10/mongovue-gridfs-bug.html#more">Read more »</a>RobIIIhttp://www.blogger.com/profile/04573618019707966117noreply@blogger.com1tag:blogger.com,1999:blog-8639202304732503665.post-18991039925601945332013-11-26T23:44:00.002+01:002013-11-27T00:58:31.408+01:00Get rid of that annoying clientsfromhell.net popup!I love a chuckle now and then and <a href="http://clientsfromhell.net/" target="_blank">Clients From Hell</a> provides just that. It has done so for a long time. But for some time now it has been nagging me (and everyone) with some stupid popup that you can close but, at best, for 30 days before it starts nagging again.<br>
<a href="https://blog.robiii.nl/2013/11/get-rid-of-that-annoying.html#more">Read more »</a>RobIIIhttp://www.blogger.com/profile/04573618019707966117noreply@blogger.com0tag:blogger.com,1999:blog-8639202304732503665.post-90547050279140462002013-04-26T19:21:00.000+02:002014-10-15T02:25:16.552+02:00A TimerWheel implementation in C# with flexible reschedulingRecently we started a project that, among a lot of other stuff, required many objects to be scheduled (and rescheduled) for processing. Each of these objects could, potentially, require it's own interval; for example object A could be required to process each 10 seconds, object B could need an interval of 3600 seconds and object C could need to be processed each second. As long as there's a handful of objects, instantiating a timer for each object would be an option. But since our collection could grow to contain more than thousands of objects I felt that having a timer hanging around for each of those objects wasn't the best idea ever. This was just a gut-feel until I later stumbled upon <a href="http://blogs.msdn.com/b/oldnewthing/archive/2009/08/27/9886147.aspx" target="_blank">a blog-post</a> from one of my all-time favorite bloggers Raymond Chen. Although, apparently, it's okay to have many timers lying around I felt there had to be a more efficient way to solve my problem.<br>
<a href="https://blog.robiii.nl/2013/04/a-timerwheel-implementation-in-c-with.html#more">Read more »</a>RobIIIhttp://www.blogger.com/profile/04573618019707966117noreply@blogger.com0tag:blogger.com,1999:blog-8639202304732503665.post-60679212132727850762013-03-14T00:36:00.004+01:002014-10-14T22:41:53.721+02:00Taboo: Nathaniel Newman and Treacher Collins SyndromeSo I got home after a hard day of work and after putting the kids to bed and having a belated dinner I finally hit the couch and turned on the TV to stare at it mindlessly to clear my mind a little and give it some rest. So zapping through the channels I happened to tune in to National Geographic's <a href="http://channel.nationalgeographic.com/channel/taboo/" target="_blank">taboo</a>. The episode today was titled '<a href="http://channel.nationalgeographic.com/channel/taboo/episodes/ugly/" target="_blank">ugly</a>'. I haven't been able to find the full episode on nationalgeographic.com yet but it might be available online later.<br>
<a href="https://blog.robiii.nl/2013/03/taboo-nathaniel-newman-and-treacher.html#more">Read more »</a>RobIIIhttp://www.blogger.com/profile/04573618019707966117noreply@blogger.com6tag:blogger.com,1999:blog-8639202304732503665.post-29364914169476766512012-12-23T19:11:00.000+01:002018-09-20T02:26:47.978+02:00My problem with paginationI recently got into <a href="https://twitter.com/rastrano/status/282186182127919106">a discussion</a> about <a href="https://web.archive.org/web/20130104144114/http://blog.creativeprogramming.it/?p=123#comment-12">a comment</a> I made on <a href="https://web.archive.org/web/20130104144114/http://blog.creativeprogramming.it/?p=123">a blog post</a> two years ago. Granted; my comment might have come out a bit harsh (for which I apologize) but there was a point to be made. In this blog post I'll try to explain what I was (and am) talking about and what my issues were (and are) with the proposed solution to the problem at hand: pagination of large chunks of data / resultsets.<br>
<a href="https://blog.robiii.nl/2012/12/about-pagination-of-data.html#more">Read more »</a>RobIIIhttp://www.blogger.com/profile/04573618019707966117noreply@blogger.com0tag:blogger.com,1999:blog-8639202304732503665.post-22927283380432086092012-06-15T12:12:00.000+02:002016-09-23T11:05:57.063+02:00Ah, another CAPTCHA for me to answer!<div style="color: #999999; font-family: inherit;">
"A <a href="http://www.captcha.net/">CAPTCHA</a> is a program that can tell whether its user is a human or a computer. You've probably seen them — colorful images with distorted text at the bottom of Web registration forms. CAPTCHAs are used by many websites to prevent abuse from "bots," or automated programs usually written to generate spam. No computer program can read distorted text as well as humans can, so bots cannot navigate sites protected by CAPTCHAs."<br>
<div style="text-align: right;">
<sub>Source: <a href="http://www.google.com/">http://www.google.com/recaptcha/learnmore</a></sub></div>
</div>
<br>
<a href="https://blog.robiii.nl/2012/06/captcha-is-program-that-can-tell.html#more">Read more »</a>RobIIIhttp://www.blogger.com/profile/04573618019707966117noreply@blogger.com0tag:blogger.com,1999:blog-8639202304732503665.post-66610426037070519282012-06-13T19:28:00.001+02:002012-07-03T17:47:24.266+02:00Are you using DNSStuff.com? You shouldn't!I have been using <a href="https://lastpass.com/">LastPass</a> for a while now and I was very happy to find out they now also offer <a href="http://en.wikipedia.org/wiki/Two-factor_authentication">two-factor authentication</a>. This has, as far as I know, been available since ages but you had to use a <a href="http://www.yubico.com/yubikey">Yubikey</a>. I don't know when they added support for <a href="http://en.wikipedia.org/wiki/Google_Authenticator">Google Authenticator</a> but they did. And since I have been using this for a while <a href="http://www.codinghorror.com/blog/2012/04/make-your-email-hacker-proof.html">for my GMail and Google Apps accounts</a> I was glad to find out Lastpass supports it too.<br>
<a href="https://blog.robiii.nl/2012/06/are-you-using-dnsstuffcom-you-shouldnt.html#more">Read more »</a>RobIIIhttp://www.blogger.com/profile/04573618019707966117noreply@blogger.com2