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,839 other subscribers

Archive for the ‘Power User’ Category

Don’t Use Regular Expressions To Parse IP Addresses!

Posted by jpluimers on 2017/09/21

Interesting piece: Don’t Use Regular Expressions To Parse IP Addresses! [WayBack]

TL;DR:

When have neither then for quad-dotted decimal IPv4 addresses (ignoring for instance octals and grouped quads), this is suitable: regex – Regular expression to match DNS hostname or IP Address? – Stack Overflow [WayBack]

ValidIpAddressRegex = "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$";

Which explained looks like this:

https://regex101.com/r/Wyr2Zd/1

Regular expression:

/ ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$ / g

Explanation:

  • ^ asserts position at start of the string
    • 1st Capturing Group (([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}
      • {3} Quantifier — Matches exactly 3 times
        A repeated capturing group will only capture the last iteration. Put a capturing group around the repeated group to capture all iterations or use a non-capturing group instead if you’re not interested in the data

        • 2nd Capturing Group ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])
          • 1st Alternative [0-9]
            • Match a single character present in the list below [0-9]
              0-9 a single character in the range between 0 (ASCII 48) and 9 (ASCII 57) (case sensitive)
          • 2nd Alternative [1-9][0-9]
            • Match a single character present in the list below [1-9]
              1-9 a single character in the range between 1 (ASCII 49) and 9 (ASCII 57) (case sensitive)
            • Match a single character present in the list below [0-9]
              0-9 a single character in the range between 0 (ASCII 48) and 9 (ASCII 57) (case sensitive)
          • 3rd Alternative 1[0-9]{2}
            • 1 matches the character 1 literally (case sensitive)
            • Match a single character present in the list below [0-9]{2}
              {2} Quantifier — Matches exactly 2 times
              0-9 a single character in the range between 0 (ASCII 48) and 9 (ASCII 57) (case sensitive)
          • 4th Alternative 2[0-4][0-9]
            • 2 matches the character 2 literally (case sensitive)
            • Match a single character present in the list below [0-4]
              0-4 a single character in the range between 0 (ASCII 48) and 4 (ASCII 52) (case sensitive)
            • Match a single character present in the list below [0-9]
              0-9 a single character in the range between 0 (ASCII 48) and 9 (ASCII 57) (case sensitive)
          • 5th Alternative 25[0-5]
            • 25 matches the characters 25 literally (case sensitive)
            • Match a single character present in the list below [0-5]
              0-5 a single character in the range between 0 (ASCII 48) and 5 (ASCII 53) (case sensitive)
        • \. matches the character . literally (case sensitive)
    • 3rd Capturing Group ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])
      • 1st Alternative [0-9]
        • Match a single character present in the list below [0-9]
          0-9 a single character in the range between 0 (ASCII 48) and 9 (ASCII 57) (case sensitive)
      • 2nd Alternative [1-9][0-9]
        • Match a single character present in the list below [1-9]
          1-9 a single character in the range between 1 (ASCII 49) and 9 (ASCII 57) (case sensitive)
        • Match a single character present in the list below [0-9]
          0-9 a single character in the range between 0 (ASCII 48) and 9 (ASCII 57) (case sensitive)
      • 3rd Alternative 1[0-9]{2}
        • 1 matches the character 1 literally (case sensitive)
        • Match a single character present in the list below [0-9]{2}
          {2} Quantifier — Matches exactly 2 times
          0-9 a single character in the range between 0 (ASCII 48) and 9 (ASCII 57) (case sensitive)
      • 4th Alternative 2[0-4][0-9]
        • 2 matches the character 2 literally (case sensitive)
        • Match a single character present in the list below [0-4]
          0-4 a single character in the range between 0 (ASCII 48) and 4 (ASCII 52) (case sensitive)
        • Match a single character present in the list below [0-9]
          0-9 a single character in the range between 0 (ASCII 48) and 9 (ASCII 57) (case sensitive)
      • 5th Alternative 25[0-5]
        • 25 matches the characters 25 literally (case sensitive)
        • Match a single character present in the list below [0-5]
          0-5 a single character in the range between 0 (ASCII 48) and 5 (ASCII 53) (case sensitive)
  • $ asserts position at the end of the string, or before the line terminator right at the end of the string (if any)
  • Global pattern flags
    g modifier: global. All matches (don’t return after first match)

–jeroen

Posted in *nix, Communications Development, Development, Internet protocol suite, Network-and-equipment, Power User, Software Development, TCP | Leave a Comment »

Mikrotik functions -> hopefully I can translate this to the new syntax

Posted by jpluimers on 2017/09/21

Reminder to self as it would be useful to have these Mikrotik functions in the new function syntax:

–jeroen

Posted in Internet, MikroTik, Power User, routers | Leave a Comment »

New steps for Slack on Twitter: “@thorduri 😣 You can always disable emoji conversion in Preferences > Emoji > Convert my typed emoticons to emoji. 👍”

Posted by jpluimers on 2017/09/18

After: @thorduri You can always disable emoji conversion in Preferences > Emoji > Convert my typed emoticons to emoji. [WayBack]

We live in the form-over-function era [WayBack], so of course this setting is not reachable by URL, only reachable by using these steps:

Read the rest of this entry »

Posted in Cloud, Cloud Apps, Infrastructure, Internet, Power User, SocialMedia | Leave a Comment »

USB LED Light Lamp for Computer Keyboard Reading Laptop Notebook PC 2016 | eBay

Posted by jpluimers on 2017/09/18

Putting all those old USB chargers to good use:

USB LED Light Lamp for Computer Keyboard Reading Laptop Notebook PC 2016 | eBay [WayBack]

Via:

AMAZING 77 cent LED light -including shipping Pulls about 3/4 of a watt (0.14 amp @ 5v), and rivals the light output of a $20 3 watt lamp from Amazon.… – Joe C. Hecht – Google+ [WayBack]

–jeroen

Read the rest of this entry »

Posted in Development, Hardware, Hardware Development, Hardware Interfacing, Power User, USB, USB | Leave a Comment »

Re: [opensuse-factory] dup –no-allow-vendor-change is now default

Posted by jpluimers on 2017/09/15

I totally missed this announcement 2 months ago:

after this update, zypper dup will default to –no-allow-vendor-change, whichhas been the recommended way for Tumbleweed for a long time now.

Source: Re: [opensuse-factory] dup –no-allow-vendor-change is now default

So Dominique was glad to “rub the salt” a bit (:

[WayBack/Archive.isDominique / DimStar‏ @DimStar Replying to @sysrich @jpluimers: for the record: –no-allow-vendor-change has become the default in Tumbleweed, see also http://dominique.leuenberger.net/blog/2017/06/review-of-the-week-201726/

It was documented at least on these places:

–jeroen

Read the rest of this entry »

Posted in *nix, Linux, openSuSE, Power User, SuSE Linux, Tumbleweed | Leave a Comment »

Open source app to detect bluetooth gas pump credit card skimmers – Skimmer Scanner – Android Apps on Google Play

Posted by jpluimers on 2017/09/15

Before you fill up your car, check if you potentially can be skimmed: Skimmer Scanner – Android Apps on Google Play

The app is open source at sparkfunX/Skimmer_Scanner: A mobile app for detecting bluetooth gas pump credit card skimmers.

A long article about reverse engineering these skimmers is at [WayBack] Gas Pump Skimmers – learn.sparkfun.com including tools to get the data out: [WayBackMPLAB PICkit 3 – PGM-09973 – SparkFun Electronics

All via: [WayBack] Gas pump skimmers – what you need to knowIf you’re on android, there’s an app that essentially finds and pairs with the skimmer to see if it’s active… – Lars Fosdal – Google+

–jeroen

Read the rest of this entry »

Posted in Android, Development, LifeHacker, Mobile Development, Power User, Software Development | Leave a Comment »

UDP port 52217 – ScanSnap iX500 Linking to mobile devices (the iPad, iPhone, iPod touch and Android™ devices) -QA4- – Fujitsu Global

Posted by jpluimers on 2017/09/15

UDP port number assigned to Scan to Mobile (52217 by default)

Source: ScanSnap iX500 Linking to mobile devices (the iPad, iPhone, iPod touch and Android™ devices) -QA4- – Fujitsu Global [WayBack]

Other references:

–jeroen

Posted in Fujitsu ScanSnap, Hardware, ix500, Power User, Scanners | Leave a Comment »

Need to write a proper bookmarklet for the wayback archive (:

Posted by jpluimers on 2017/09/14

Some inspiration for writing a proper bookmarklet that finds or saves a WayBack machine page:

On the last link, I was hoping that the https://web.archive.org/liveweb/https://www.example.org would work but it doesn’t work for many URLs and I’m not sure yet why that is.

It has a nice tip that works though:

Read the rest of this entry »

Posted in Bookmarklet, Conference Topics, Conferences, Development, Event, JavaScript/ECMAScript, Power User, Scripting, Software Development, Web Browsers | Leave a Comment »

youtube-dl – saving both audio and video without keeping intermediate files seems impossible

Posted by jpluimers on 2017/09/14

Just in case someone has a better alternative than youtube-dl alias:

alias youtube-dl-audio-and-video='youtube-dl --keep-video --extract-audio --audio-quality 0 --audio-format mp3'

It extracts the audio and keeps the video.

The result is that also all intermediate downloads are being kept.

So even after studying the README extensively the only alternative seems to be a double download like this:

youtube-dl-audio-and-video() { youtube-dl --extract-audio --audio-quality 0 --audio-format mp3 $1; youtube-dl $1; }

–jeroen

Posted in *nix, *nix-tools, bash, bash, Development, Power User, Scripting, Software Development | Leave a Comment »

zypper errors on download.opensuse.org

Posted by jpluimers on 2017/09/13

If you see error message like below when performing zypper refresh or zypper dist-upgrade, then please inform the opensuse team (for instance Twitter or the #openSUSE-factory IRC channel) as this is part of the aftermath of the download.opensuse.org trouble that started last week.

Permission to access 'http://download.opensuse.org/ports/aarch64/tumbleweed/repo/oss/suse/setup/descr/appdata-icons.tar.gz' denied.

What happened to me with Raspberry Pi 3 and Tumbleweed is below and fixed because after I got in touch: the data restore had worked out OK, but the permissions didn’t.

I got there as the search for “Permission to access ‘http://download.opensuse.org/ports/aarch64/” got me to [WayBack] TUMBLEWEED Zypper Permission to access:

Unfortunately there was a catastrophic issue last week with the openSUSE download system (read: stuff is still broken and not all mirrors are fully functional).

–jeroen

Read the rest of this entry »

Posted in *nix, Linux, openSuSE, Power User, SuSE Linux, Tumbleweed | Leave a Comment »