When I first bumped into this around 2017, I found via [WayBack] How to Make File Explorer Open This PC By Default In Windows 10 that it was just a new “Folder Options” choice that by default pointed to “Quick Access” (Dutch “Snelle Toegang”) instead of prior Windows versions opening at “This PC” (Dutch “Deze PC”).
Only recently, I found out that Scott Hanselman already tweeted about this in August 2015:
Recursively getting all md5 sums from a source directory:
cd /sourceDirectory
find -type f \( -not -name "md5sum.txt" \) -exec md5sum '{}' \; > md5sum.txt
.
Checking the sums against a target directory
cd /targetDirectory
md5sum -c /sourceDirectory/md5sum.txt
.
On some systems (this was an ESXi system which can’t run stuff from the console in parallel), you could optimise this using xargs for the generation and GNU parallel for the generation and checking. Both should be very similar:
GNU parallel is written to have the same options as xargs. If you write loops in shell, you will find GNU parallel may be able to replace most of the loops and make them run faster by running several jobs in parallel.
I forgot to save my initial notes, but they were based on what I did before with [WayBack]jeroenp / fastmm — Bitbucket**, so I resurrected my notes, after a chat with Graeme Geldenhuys on how he did a similar thing for Indy at
#!/bin/sh
# Fetches latest revisions for Indy SubVersion repository
# and then pushes changes to GitHub.
# Created by Graeme Geldenhuys
GIT="/usr/bin/git"
cd /data/git/indy.git/
$GIT checkout master
$GIT svn rebase
$GIT gc --auto
$GIT push github
And to my FastMM notes:
Getting the latest SVN changes:
git svn rebase
Initial repository creation and add to bitbucket (or github)
Delphi does indeed so some type inference as Primoz found out below. It has been doing this for a long time, improved over time, but has a long road ahead.
This is a reminder to myself to write some more example code on what kinds of inference work and which do not, especially because of the comments from David Heffernan, Marco Cantu and Stefan Glienke, especially since the improvement over time has been small. I am curious to see how the promised “working on it” by now lives up to reality.
David Heffernan
This is a rare piece of code where type inference actually works. Mostly it does not which is very frustrating.
It’s a little ironic that you ask why you don’t need to include <T>. Normally people ask about the much more frequent instances where you do need to include <T> because the compiler’s type inference is so weak.
David Heffernan
+Marco Cantù Much more commonly there are times when you want the compiler to infer the type, but it won’t. It would really make a difference to us if the compiler was better at this.
Marco Cantù
+David Heffernan I tend to agree the compiler should be much better at type inference. Working on it!
Stefan Glienke
Infering the generic argument from a constructed generic type would be great.
GuessTheType<T>(const x: TArray<T>);
var
a: TArray<Integer>;
begin
GuessTheType(a);
does not work although the compiler could infer the parameter for GuessTheType from its x parameter but currently it does not know that a originally was a TArray<T> (yes, I know array of T as signature works but that is a different thing).
P.S. +Marco Cantù btw how hard can it be to finally implement generic standalone routines without that ugly static type? Probably one of the highest voted feature requests: https://quality.embarcadero.com/browse/RSP-13724)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters