The Wiert Corner – irregular stream of stuff

Jeroen W. Pluimers on .NET, C#, Delphi, databases, and personal interests

  • My badges

  • Twitter Updates

  • My Flickr Stream

  • Pages

  • All categories

  • Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 1,862 other subscribers

Archive for the ‘Power User’ Category

Evan Kirstel #TechFluencer on Twitter: “😆 Your new job is to fix this. Where you do start? #DataCenter #avtweeps… “

Posted by jpluimers on 2023/01/16

Via: [Archive] Kristian Köhntopp on Twitter: “This is what happens in every enterprise. Understaff and underpay Infrastructure people, hiring with peanuts gets you monkeys, then this, and next up an AWS cloud migration. The AWS is much more expensive, because you no longer get to cheat on infra cost.… “

[Archive] Evan Kirstel #TechFluencer on Twitter: “😆 Your new job is to fix this. Where you do start? #DataCenter #avtweeps… “

–jeroen

Posted in Ethernet, Hardware, Network-and-equipment, Power User | Leave a Comment »

Working around Archive.is/.today/.ph/.li/.vn/.fo/.md eternal spinner “Loading” when trying to archive a page

Posted by jpluimers on 2023/01/13

I have had the below Archive.is spinner “Loading” without any progress indication on a couple of URLs the last few months and I think they are tied to having special characters in the URL-to-be-archived.

My usual workaround was to first archive in the Wayback Machine, then archive the resulting URL in Archive.is as it would automatically follow the path up to the original URL,

That of course failed when  https://web.archive.org/web/*/vx-underground.org did not want to save in Archive.is: either these would give an eternal spinner on the “Loading” page no matter the browser you were using either the escaped %2A or *:

Read the rest of this entry »

Posted in archive.is / archive.today, Conference Topics, Conferences, Event, Internet, InternetArchive, LifeHacker, Power User, WayBack machine | Leave a Comment »

Some notes on changing and checking bind DNS entries

Posted by jpluimers on 2023/01/09

DNS isn’t based on propagation, but on (cache) expiry. Which means it is all about TTL (Time to Live), and since humans are bad at coping with caching (remember the post There are 2 hard problems in computer science: cache invalidation, naming things, and off-by-1 errors?), I needed some DNS refresh.

The time values in seconds of SOA (Start of Authority) and TTL record entries are always a pain, so hopefully this helps some:

Some TTL recommendations of the DNS SOA record via [Wayback/Archive] dns soa ttl best practice – Google Search and [Wayback/Archive] dns recommended ttl values – Google Search:

I’d rather have a good route for unplanned DNS changes (as in the past, quite a few were about those), so I settled for 3600 seconds (1 hour), but might go down to 600 seconds (10 minutes).

Checking DNS entries

Changing DNS entries

Some information on the DNS “master” files (which contain the RR or “resource records”) from [Wayback/Archive.is] RFC1035: domain names – implementation and specification and [Wayback/Archive] RFC2308: Negative Caching of DNS Queries (DNS NCACHE), as keep forgetting them.

Both RFCs together specify that these line entries are defined (i.e. can be valid):

    <blank>[<comment>]
    $ORIGIN <domain-name> [<comment>]
    $INCLUDE <file-name> [<domain-name>] [<comment>]
    <domain-name><rr> [<comment>]
    <blank><rr> [<comment>]

and that these are the valid <rr> or resource record formats:

    [<TTL>] [<class>] <type> <RDATA>
    [<class>] [<TTL>] <type> <RDATA>

If you do a DNS zone transfer – Wikipedia (often abbreviated to the DNS query type AXFR), then these entries always are single line with fields expanded, with each always having an absolute <domain name> entry ending in a dot (.), and read like this:

<domain name> TTL <class> <type> <RDATA>

From the specific RFCs:

  • RFC 1035 section 3.2.4: CLASS values
  • RFC 1035 section 5.1: master files – format
    • White space to separate items on a line can be spaces or tabs
    • Comments start with semi-colon (;), which means that hashes (#) or double-slashes (//) won’t work and are syntax errors (the above mentioned tool named-checkzone can help you figure out those syntax errors).
    • There are line entries for blank, $ORIGIN, $INCLUDE, and resource record.
    • A line entry starting with $ORIGIN defines the current origin to be used from then on. Without such entry, he default origin can be defined through a parameter when loading the master file (see the Zone file: localhost example file)
    • Resource record line entries can start with:
      • @ to use the current origin as domain name.
      • a specified <domain-name> to denote the domain name to be used
      • no <domain-name> indicating the previous domain name to be used
    • A <domain-name> can be absolute ending in a dot (.)), or relative (in which case the origin is appended).
    • No <TTL> or  no <class> value means to use the previous TTL or class values to be used.
    • One resource record entry per line, unless you put parenthesis, then you can wrap it over multiple lines, which can be convenient for SOA record like this:
      @               IN      SOA     ns1.4delphi.com.        hostmaster.4delphi.com. (
                              2021112201 ; serial
                              3600 ; refresh every 1 hour
                              120 ; retry every 2 minutes
                              1209600 ; expire in 2 weeks
                              10800 ; now is 3 hours (see RFC2308) used to be 2 days: 172800 ; default_ttl
                              )
  • RFC2308 section 4: SOA Minimum Field
    • The $TTL line entry defining the default TTL to be used from then on (similar to $ORIGIN )

There is more (like encoding of domain names, more resource record types, and domain name length limitations), but those go beyond this blog post.

Examples on Wikipedia

Zone file: Example file is great:

$ORIGIN example.com.     ; designates the start of this zone file in the namespace
$TTL 3600                ; default expiration time (in seconds) of all RRs without their own TTL value
example.com.  IN  SOA   ns.example.com. username.example.com. ( 2020091025 7200 3600 1209600 3600 )
example.com.  IN  NS    ns                    ; ns.example.com is a nameserver for example.com
example.com.  IN  NS    ns.somewhere.example. ; ns.somewhere.example is a backup nameserver for example.com
example.com.  IN  MX    10 mail.example.com.  ; mail.example.com is the mailserver for example.com
@             IN  MX    20 mail2.example.com. ; equivalent to above line, "@" represents zone origin
@             IN  MX    50 mail3              ; equivalent to above line, but using a relative host name
example.com.  IN  A     192.0.2.1             ; IPv4 address for example.com
              IN  AAAA  2001:db8:10::1        ; IPv6 address for example.com
ns            IN  A     192.0.2.2             ; IPv4 address for ns.example.com
              IN  AAAA  2001:db8:10::2        ; IPv6 address for ns.example.com
www           IN  CNAME example.com.          ; www.example.com is an alias for example.com
wwwtest       IN  CNAME www                   ; wwwtest.example.com is another alias for www.example.com
mail          IN  A     192.0.2.3             ; IPv4 address for mail.example.com
mail2         IN  A     192.0.2.4             ; IPv4 address for mail2.example.com
mail3         IN  A     192.0.2.5             ; IPv4 address for mail3.example.com

as well as the examples at Zone file: Localhost:

An example for manual configuration of the forward zone for localhost is the following:

$ORIGIN localhost.
@  86400  IN  SOA   @  root (
                  1999010100 ; serial
                       10800 ; refresh (3 hours)
                         900 ; retry (15 minutes)
                      604800 ; expire (1 week)
                       86400 ; minimum (1 day)
                    )
@  86400  IN  NS    @
@  86400  IN  A     127.0.0.1
@  86400  IN  AAAA  ::1

The corresponding reverse zone definition is:

;; reverse zone file for 127.0.0.1 and ::1
$TTL 1814400 ; 3 weeks
@  1814400  IN  SOA     localhost. root.localhost.  (
                      1999010100 ; serial
                           10800 ; refresh (3 hours)
                             900 ; retry (15 minutes)
                          604800 ; expire (1 week)
                           86400 ; minimum (1 day)
                        )
@  1814400  IN  NS      localhost.
1  1814400  IN  PTR     localhost.

This file does not specify the origin so that it may be used for both IPv4 and IPv6 with this configuration:

zone "0.0.127.in-addr.arpa"  IN {
                                type master;
                                file "r.local";
                                };
zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa"  IN {
                                type master;
                                file "r.local";
                                };

Similar zone master files may be created for the reverse resolution of the broadcast address and the null address. Such zone files prevent a DNS server from referring to other, possibly external DNS servers.

Related

OpenSuSE: the relation between /etc/var/named.d and /var/lib/named

jeroen

Posted in DNS, Internet, Power User | Leave a Comment »

How to create android and ios keyboard shortcuts | PCWorld

Posted by jpluimers on 2023/01/06

[Wayback/Archive] How to create android and ios keyboard shortcuts | PCWorld android bits, numbering mine:

(Note: These steps work only with the stock Android keyboard. Tap Settings, Language & input, and make sure Google Keyboard is selected under the Keyboard & Input Methods heading.)
  1. Tap SettingsLanguage & input, then Personal dictionary. Next, tap the language option of your choice.
  2. Tap the + button in the top-right corner of the screen, then type the word or text string that’ll trigger the shortcut. You’re best off picking something other than a common word; for example, “addr” rather than “address.”
  3. In the next line, type in the actual phrase you want to appear when you type the shortcut, such as “1234 Main Street, Anytown USA.” Unfortunately, the phrase is limited to about 50 characters.
  4. Tap the Back button, and you should see your shortcut appear as an entry on the Personal dictionary screen. Tap + to add another shortcut.

I tried it with SwiftKey, but that does not allow dictionaries.

Thanks [Archive] Murdock (@Generic42) | Twitter for pointing me to this, and showing me this PokeMon Go shortcut: !4*&!3*&!shiny&!legendary&!mythical&!traded&!costume.

–jeroen

Posted in Android Devices, LifeHacker, Power User | Leave a Comment »

OV-chipkaart – OV-reishistorie anonieme kaart

Posted by jpluimers on 2023/01/05

Interesting: this did not work about 5 years ago, but does since at least 2019: [WayBack] OV-chipkaart – OV-reishistorie anonieme kaart.

It allows you to see which trips you made on your anonymous Dutch public-traffic card (OV-chipkaart).

You can also see the stations, but then you need to have an account which makes you give up at least part of anonymity.

Via:

–jeroen

Read the rest of this entry »

Posted in LifeHacker, Power User | Leave a Comment »

Salvaging maxtor/seagate SATA drives from their USB external counterparts

Posted by jpluimers on 2023/01/02

Interesting idea from [WayBack] Western Digital toont prototype van compacte externe 8TB-ssd – Computer – Nieuws – Tweakers:

Voor harde schijven moet je altijd bij de externe drives kijken, die zijn goedkoper (even open schroeven).

– 5 TB 2.5″ HDD: 0.018 EUR/GB
– 6 TB 3.5″ HDD: 0.017 EUR/GB
– 2 TB M.2 SSD 0.103 EUR/GB
– 1 TB 2.5″ SSD 0.096 EUR/GB

Grofweg zit er een factor 5x tussen. Probleem met SSD’s is vooral de schaling, de sweet spot qua prijs zit daar bij 1-2 TB, wat je niet veel helpt als je bijvoorbeeld 10 TB nodig hebt.

[Reactie gewijzigd door Dreamvoid op 7 januari 2020 19:22]

Dat is voor het eerst dat ik zie dat externe schijven goedkoper zijn… Hoe kan dat in hemelsnaam?

Losse harde schijven (vooral 2.5″, die dingen gaan in rack servers) gaan allemaal naar de enterprise markt, waar de klanten merkentrouw zijn en niet op een cent kijken. De concurrentie voor consumenten (externe) drives is daarentegen moordend.

Het is ook een soort ‘overschot markt’ voor de fabrikanten, loopt de HDD productie goed en is de enterprise markt niet heel hot, dan duwen ze wat extra goedkope externe drives de consumentenmarkt in en wordt het prijsverschil groter. Neemt de enterprise sector wel veel af of zijn er productieproblemen, dan verdwijnt het prijsverschil weer grotendeels.

Let wel: Western Digital soldeert de USB interface vast bij hun externe 2.5″ drives, Seagate/Maxtor doet dat (nog) niet.

–jeroen

Posted in Hardware, HDD, Power User, SSD | Leave a Comment »

VMware ESXI: creating an eagerly zeroed thick disk

Posted by jpluimers on 2022/12/30

For my memory to create a 40 GiB (gibibytes, i.e. sizes in powers of 2 bytes):

# vmkfstools --createvirtualdisk 40G --diskformat eagerzeroedthick ./X9SRI-3F-W10P-EN-MEDIA-DATA.vmdk
Creating disk './X9SRI-3F-W10P-EN-MEDIA-DATA.vmdk' and zeroing it out...
Create: 100% done.

People tend to abbreviate it into what for me reads gibberish:

# vmkfstools -c 40G -d eagerzeroedthick ./X9SRI-3F-W10P-EN-MEDIA-DATA.vmdk
Creating disk './X9SRI-3F-W10P-EN-MEDIA-DATA.vmdk' and zeroing it out...
Create: 100% done.

It will create a descriptor file and flat data file, of which the last is exactly 40 gibibytes size (as 42949672960 / (1024 * 1024 * 1024) == 40):

# ls -l X9SRI-3F-W10P-EN-MEDIA-DATA*.vmdk
-rw-------    1 root     root     42949672960 Nov 16 16:54 X9SRI-3F-W10P-EN-MEDIA-DATA-flat.vmdk
-rw-------    1 root     root           471 Nov 16 16:54 X9SRI-3F-W10P-EN-MEDIA-DATA.vmdk

–jeroen

Posted in ESXi6, ESXi6.5, ESXi6.7, Power User, Virtualization, VMware, VMware ESXi | Leave a Comment »

“retrieving data with adventure sync” – Google Search

Posted by jpluimers on 2022/12/29

[Wayback/Archive] “retrieving data with adventure sync” – Google Search

Reboot only solved one widget, not the other. Turning off/on Adventure Sync didn’t fix either.

–jeroen

Posted in LifeHacker, PokemonGo, Power User | Leave a Comment »

Chris Bensen on Raspberry Pi and clusters

Posted by jpluimers on 2022/12/29

Oracle’s Pi Supercomputer

Oracle’s Pi Supercomputer ; click on the image for a larger version.

In 2019 ans 2020, [Archive] Chris Bensen and his [Archive] Oracle Groundbreakers team built a really large Raspberry Pi cluster of more than 1k pies, all network booting to become a cluster. It was for instance covered in the [Wayback/Archive] Building the World’s Largest Raspberry Pi Cluster – DZone IoT.

On his [Wayback/Archive] personal blog, he wrote a few posts like [Wayback/Archive] Chris Bensen: Raspberry Pi Overlay Root Filesystem and [Wayback/Archive] Chris Bensen: Get MAC Address for a Pi Cluster.

It made me also bump into [Wayback/Archive] Building the world’s largest Raspberry Pi cluster early 2020,

Since that wast right after the start of my rectum cancer treatment which lasted longer and, because of I got metastases a few months after radiation treatment, required more treatments than anticipated, I put a note in my bog drafts and kind of lost track.

So I was glad that in fall 2021, I bumped into the draft and found an almost year old post [Wayback/Archive] Chris Bensen: All Raspberry Pi Super Computer Posts in One Spot which is an index in all the blog posts and videos that Chris and his team produced on this project.

I then also learned the cluster had been shown on [Wayback/Archive] Oracle OpenWorld 2019, Breakthrough Starts Here and was covered in the [Archive] Top 10 Raspberry Pi Projects of 2019 | Tom’s Hardware (where I got the [Wayback/Archive] Oracle World 2019 having the 1k+ node Raspberry Pi cluster on display picture shown on the right from).

Read the rest of this entry »

Posted in *nix, Development, Hardware Development, Linux, OracleLinux, Power User, Raspberry Pi | Leave a Comment »

Getting your public IP address from the command-line when http and https are blocked: use DNS

Posted by jpluimers on 2022/12/28

Years ago, I wrote Getting your public IP address from the command-line. All methods were http based, so were very easy to execute using cURL.

But then in autumn 2021, Chris Bensen wrote this cool little blog-post [Wayback/Archive] Chris Bensen: How do I find my router’s public IP Address from the command line?:

dig -4 TXT +short o-o.myaddr.l.google.com @ns1.google.com

At first sight, I thought it was uncool, as the command was quite long and there was no explanation of the dig command trick.

But then, knowing that dig is a DNS client, it occurred to me: this perfectly works when http and https are disabled by your firewall, but the DNS protocol works and gives the correct result:

# dig -4 TXT +short o-o.myaddr.l.google.com @ns1.google.com
"80.100.143.119"

This added the below commands and aliases to my tool chest for *nix based environments like Linux and MacOS (not sure yet about Windows yet :), but that still doesn’t explain why it worked. So I did some digging…

IPv4

  • command:
    dig -4 TXT +short o-o.myaddr.l.google.com @ns1.google.com
  • command removing outer double quotes:
    dig -4 TXT +short o-o.myaddr.l.google.com @ns1.google.com | xargs
  • alias:
    alias "whatismyipv4_dns=dig -4 TXT +short o-o.myaddr.l.google.com @ns1.google.com | xargs"

IPv6

  • command:
    dig -6 TXT +short o-o.myaddr.l.google.com @ns1.google.com
  • command removing outer double quotes:
    dig -6 TXT +short o-o.myaddr.l.google.com @ns1.google.com | xargs
  • alias:
    alias "whatismyipv6_dns=dig -6 TXT +short o-o.myaddr.l.google.com @ns1.google.com | xargs"

How it works

Let’s stick to dig and IPv4 as that not having IPv6 (regrettably still) is the most common situation today:

# dig -4 TXT +short o-o.myaddr.l.google.com @ns1.google.com
"80.100.143.119"

What it does is request the DNS TXT record of o-o.myaddr.l.google.com from the Google DNS server ns1.google.com and returns the WAN IPv4 address used in the DNS request, which is for instance explained in [Wayback/Archive] What is the mechanics behind “dig TXT o-o.myaddr.l.google.com @ns1.google.com” : linuxadmin.

Since these are TXT records, dig will automatically double quote them, which xargs can remove (see below how and why):

# dig -4 TXT +short o-o.myaddr.l.google.com @ns1.google.com | xargs
80.100.143.119

The DNS query will fail when requesting the Google Public DNS servers 8.8.8.8 or 8.8.4.4:

# dig -4 TXT +short o-o.myaddr.l.google.com @8.8.8.8
"2a00:1450:4013:c1a::103"
"edns0-client-subnet 80.101.239.0/24"

Or, with quotes removed (the -L 1 ensures that xargs performs the quote-pair removal action on each line):

# dig -4 TXT +short o-o.myaddr.l.google.com @8.8.8.8 | xargs -L 1
2a00:1450:4013:c1a::103
edns0-client-subnet 80.101.239.0/24

This request is both slower than requesting the ns1.google.com server and wrong.

The reason is that only ns1.google.com understands the special o-o.myaddr.l.google.com hostname which instructs it to return the IP address of the requesting dig DNS client.

That 8.8.8.8 returns a different IP address and an additional edns0-client-subnet with less accurate information is explained in an answer to [Wayback/Archive] linux – Getting the WAN IP: difference between HTTP and DNS – Stack Overflow by [Wayback/Archive] argaz referring to this cool post: [Wayback/Archive] Which CDNs support edns-client-subnet? – CDN Planet.

Not just ns1.google.com: any DNS server serving the google.com domain

Since o-o.myaddr.l.google.com is part of the google.com domain, the above works for any DNS server serving the google.com domain (more on that domain: [Wayback/Archive] General DNS overview  |  Google Cloud).

Getting the list of DNS servers is similar to getting the list of MX servers which I explained in Getting the IP addresses of gmail MX servers, replacing MX record type (main exchange) with the NS record type (name server) and the gmail.com domain with the google.com domain:

# dig @8.8.8.8 +short NS google.com
ns3.google.com.
ns1.google.com.
ns2.google.com.
ns4.google.com.

The ns1.google.com DNS server is a special one of the NS servers: it is the start of authority server, which you can query using the SOA record type that also gives slightly more details for this server:

# dig @8.8.8.8 +short SOA google.com
ns1.google.com. dns-admin.google.com. 410477869 900 900 1800 60

The difference between using NS and SOA records with dig are explained in the [Wayback] dns – How do I find the authoritative name-server for a domain name? – Stack Overflow answer by [Wayback/Archive] bortzmeyer who also explains how to help figuring out SOA and NS discrepancies (note to self: check out the check_soa tool originally by Michael Fuhr (I could not find recent content of him, so he might have passed away) of which source code is now at [Wayback/Archive] Net-DNS/check_soa at master · NLnetLabs/Net-DNS).

So this works splendid as well using ns4.google.com on my test system:

# dig -4 TXT +short o-o.myaddr.l.google.com @ns4.google.com | xargs
80.100.143.119

The xargs removes outer quotes removal trick

[Wayback/Archive] string – Shell script – remove first and last quote (“) from a variable – Stack Overflow (thanks quite anonymous [Wayback/Archive] user1587520):

> echo '"quoted"' | xargs
quoted

xargs uses echo as the default command if no command is provided and strips quotes from the input.

More on https versus DNS requests

Some notes are in [Wayback/Archive] How to get public IP address from Linux shell, but note the telnet trick now fails as myip.gelma.net is gone (latest live version was archived in the Wayback Machine in august 2019).

Via

–jeroen

Posted in *nix, *nix-tools, Apple, bash, bash, Batch-Files, Communications Development, Development, DNS, Internet protocol suite, Linux, Mac, Mac OS X / OS X / MacOS, Power User, Scripting, Software Development, TCP | Leave a Comment »