Power BI / Power Query
Things to note
options
is an record, when used this way it’s similar to Python’skwargs
- Merging two records with update the existing fields, adding new fields, if they do not yet exist
- (in PowerQuery) the order of steps don’t change the final result (order of execution is the same) That’s why
defaults
afterconfig
works - Sometimes readability improves when placing large “blocks” like
values_list
out of order so the logic is on top - I replaced values *before* converting them to text so you have more control (before coercion )
Text.JoinSpecialValues_impl = (source as list, optional options as nullable record) as text =>
let
config = Record.Combine({defaults, options ?? []}),
defaults = [
Separator = "|",
UseSpecialSymbols = true
],
text_list = List.Transform( values_list, Text.From),
joined_string = Text.Combine( text_list, config[Separator] ),
values_list = if not config[UseSpecialSymbols] then source else
List.ReplaceMatchingItems( source,
{
// replace true null, and true empty strings (vs whitespace)
{ null, "␀"},
{ "#(cr,lf)", "#(240d)" }, // is #(2424)" }
{ "#(lf)", "" }, // is #(2424)" }
{"", "␠"}
} )
in
joined_string,
Powershell
Goto Everything
Goto /c/foo/bar
# go back
> Goto -Back
> Goto '-' # normal cd history works too
> Goto '+'
# Goto the world
$Profile | goto # go to string's path
Get-Item $PROFILE | goto # cd to the FileItem's path
gcm EditFunc | goto # jump to function declaration
gmo NameIt | Goto # go to module's folder
[CompletionResult] | goto # to docs for
# <https://docs.microsoft.com/en-us/dotnet/api/System.Management.Automation.CompletionResult>
# Open git repos in browser
goto git microsoft/powerquery-parser | goto
goto git@github.com:microsoft/powerquery-parser.git | goto
# goto the newest log
Get-ChildItem 'c:\root\manyLogs' -Recurse
| Sort LastWriteTime -desc -top 1 | goto
Pwsh Cli
s
Breaking Formatting
2, 40, 100, 200, 400, <#700, 2000,#> 20000 | %{ $i=$_;
0..10 | %{ $j = $_;
0..3000 | Get-Random -Count 300 | %{ $k = $_
[pscustomobject]@{ DisplayString = [string]$_ }} | fw -Column $i }
"Was: $i"
sleep -sec 0.7 }
Is it a bug, or, is the extra y-axis padding working as intended in a situation where intended is not intended ( ie: column count orders of magnitude larger than the terminal’s column count )
Excel functions: What’s New
https://insider.office.com/en-us/blog/text-and-array-manipulation-functions-in-excel
- [ ] new array ops, make a query like
- =
a1: e1
, except new functions could dynamically change the selection based on variable