Tuesday January 11th, 2021 NCLUG Meeting

Bob Proulx bob at proulx.com
Tue Jan 11 19:49:01 MST 2022

> What: Tuesday January 11th, 2021 NCLUG Meeting

We had a very small group.  There were five of us at the start and
then six when a later member joined us.  So mostly we just had a round
table discussion.  Which was not capturable.  But then Brother
printers were mentioned and I grabbed the topic to talk about my
latest "rage against the machine" printer driver problem.

A person I am helping has a Brother HL3040CN printer.  Brother
supports this with a printer driver for 32-bit Ubuntu 16.04 only.
There is exactly one executable though and I don't see where it is
ever called.  So other people have reported success by force
installing it on newer 64-bit systems.  I am resisting doing that.  I
might post more about this but discussing the problem just motivated
me to think I will create a 32-bit Ubuntu 16.04 chroot and install it
there to see what it does.

Then there was a discussion of "rm -rf" problems.  People repeatedly
have issues with removing too much.

Anyway...  After a pretty fun random discussion of various things.
Brian Sturgill gave a good talk about PowerShell.  Yes PowerShell.  It
turns out that PowerShell is now released under a free software
license.  You get full source.  You can compile it for your system
from source.  Wow.

Brian first started talking about soft points of traditional Unix
shells.  Everything is a string.  No built in date handling for
example.  Debugging of shell scripts can be an issue.  (I pointed out
that there is a bash debugger available.  I don't use it myself but it
looked interesting.)  And then mentioned Python doesn't solve these
problems completely either.  Complained about the poor state of Python
on Windows.

Brian likes many things about PowerShell.  It has really good command
line documentation.  In the PowerShell REPL it has dropdowns and
completion.  TAB completion.  Lots of nice features.  PowerShell has a
rich library of built in string manipulation actions.

On Ubuntu/Mint/other install powershell as a snap package using the
--classic option so that it has full file system permissions.  The new
default is a read-only file system.  But for a programmable shell the
entire purpose is to do things.

Recommends it for cross platform operation between Windows and other
environments.  Because PowerShell works not only on Windows but also
is Free Software and available on BSD/GNU/Linux systems.

In PowerShell many operations are builtins that return builtin first
class objects.  For example in the shell one should never use ls
programmatically to list directories but in PowerShell ls is a builtin
that returns a first class internal object.  Which means that
whitespace and metacharacters in file names are never a problem in

Brians interpretation of the Unix command line is that it was written
for the user.  Technical users certainly but still for the user.
Whereas PowerShell was written for the developer.  Therefore it has
very good C interoperability.  Shows some interactions between
PowerShell and to kernel system calls.  There are wrappers for GTK for
graphics programs.  "And then things get a little weird."  Demo of
event driven callbacks for GTK button actions and such.

The point was that PowerShell generically interacted with C / C#
libraries allowing it to do, for example a graphical program even
though PowerShell itself didn't know anything about GTK graphics.
It's completely generic and dynamic.

There were also other shells discussed.  Brian liked this site as an
additional reference to good stuff too.


Good meetup!

Due to the high rate of COVID19 in the county we decided not to do our
traditional after meeting dinner at a local restaurant.  We will check
again next month.

More information about the NCLUG mailing list