- All buildings in the Amsterdam, shaded by year of construction [WayBack]
- All buildings in the Netherlands, shaded by year of construction [WayBack]
Via Kristian Köhntopp – Google+ [WayBack]
–jeroen
Posted by jpluimers on 2017/09/25
Via Kristian Köhntopp – Google+ [WayBack]
–jeroen
Posted in LifeHacker, Power User | Leave a Comment »
Posted by jpluimers on 2017/09/25
For my link archive: Can I invoke Windows Update from the command line? – Super User [WayBack]
–jeroen
Posted in Power User, Windows, Windows 10, Windows 7, Windows 8, Windows 8.1, Windows 9, Windows Server 2003, Windows Server 2003 R2, Windows Server 2008, Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2, Windows Server 2016, Windows Vista, Windows XP | Leave a Comment »
Posted by jpluimers on 2017/09/22
Yay!
Windows 10 automatically restart the PC whenever it installed updates that required a mandatory reboot in order to finish installed. User can no longer delay or postpone a restart indefinitely. […]
The source Permanently Disable & Prevent Automatic Restart of Windows Update in Windows 10 – Tech Journey [WayBack] describes steps to fix a bunch of scenarios:
–jeroen
via: How to prevent Windows10 from automatically installing updates & rebooting – Primož Gabrijelčič – Google+ [WayBack]
Posted in Power User, Windows, Windows 10 | 2 Comments »
Posted by jpluimers on 2017/09/22
Via “In the form over function era: Using Network Manager from the command line” [WayBack]:
As a Linux administrator you’ve got various tools to use in order to configure network connections, such as: nmtui, NetworkManager GUI and nmcli in Linux
Source: How to Configure and Manage Network Connections Using ‘nmcli’ Tool [WayBack]
–jeroen
Posted in *nix, *nix-tools, Linux, Power User | Leave a Comment »
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])$/ gExplanation:
^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-9a 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-9a 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-9a single character in the range between 0 (ASCII 48) and 9 (ASCII 57) (case sensitive)- 3rd Alternative
1[0-9]{2}
1matches 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-9a 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-4a 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-9a single character in the range between 0 (ASCII 48) and 9 (ASCII 57) (case sensitive)- 5th Alternative
25[0-5]
25matches the characters 25 literally (case sensitive)- Match a single character present in the list below
[0-5]
0-5a 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-9a 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-9a single character in the range between 0 (ASCII 48) and 9 (ASCII 57) (case sensitive)- 3rd Alternative
1[0-9]{2}
1matches 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-9a single character in the range between 0 (ASCII 48) and 9 (ASCII 57) (case sensitive)- 4th Alternative
2[0-4][0-9]
2matches the character 2 literally (case sensitive)- Match a single character present in the list below
[0-4]
0-4a 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-9a single character in the range between 0 (ASCII 48) and 9 (ASCII 57) (case sensitive)- 5th Alternative
25[0-5]
25matches the characters 25 literally (case sensitive)- Match a single character present in the list below
[0-5]
0-5a 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
gmodifier: 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 »
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 »
Posted by jpluimers on 2017/09/20
Once you learn that
shift/unshiftare likepush/popon the other end of the array, you can mentally drop the ‘f’ from the name of the methods to remember which one ‘dumps’ elements and which one ‘inserts’ them. :)
Source: What Does Ruby’s Array#shift do? – Stack Overflow [WayBack]
Via: Originally shared by This is why I Code
Posted in Development, Fun, Ruby, Software Development | Leave a Comment »
Posted by jpluimers on 2017/09/20
Tools and steps for analysing Delphi or FreePascal code: Dependency Analysis – Pascal Today [WayBack]
Used tools:
–jeroen
Posted in Delphi, Development, Software Development | 2 Comments »
Posted by jpluimers on 2017/09/19
TL;DR: yes it is.
Answer by Allen Bauer at delphi – Is AtomicCmpExchange reliable on all platforms? – Stack Overflow [WayBack]
On Windows, it directly translates into lock cmpxchg which is way faster than the Windows API call [WayBack] InterlockedCompareExchange, as that is a jump to the actual code:
InterlockedCompareExchange: 00417CA8 FF2528E12901 jmp dword ptr [$0129e128]KERNEL32.InterlockedCompareExchange: 75855E40 8BFF mov edi,edi 75855E42 55 push ebp 75855E43 8BEC mov ebp,esp 75855E45 8B550C mov edx,[ebp+$0c] 75855E48 8B4D08 mov ecx,[ebp+$08] 75855E4B 8B4510 mov eax,[ebp+$10] 75855E4E F00FB111 lock cmpxchg [ecx],edx 75855E52 5D pop ebp 75855E53 C20C00 ret $000c
whereas AtomicCmdExchange looks like this:
Test.pas.20: RestoreValue := AtomicCmpExchange(FieldToBeModfied, 1 {new value}, 0 {expected value}, Success {true if the expected value was found, and new value set}); 0111A838 8B45FC mov eax,[ebp-$04] 0111A83B 8D500C lea edx,[eax+$0c] 0111A83E 33C0 xor eax,eax 0111A840 B901000000 mov ecx,$00000001 0111A845 F00FB10A lock cmpxchg [edx],ecx 0111A849 0F9445F2 setz byte ptr [ebp-$0e] 0111A84D 8945D8 mov [ebp-$28],eax
–jeroen
Posted in Delphi, Development, Software Development | Leave a Comment »