Testers for next inxi (pinxi) - USB, Bluetooth, USB upgrades

captain-sensible

Well-Known Member
Credits
9,609
I think Andy just became your friend for life! ;) He is one of our die-hard Slackers (in a good way, of course). :)

I am lucky in many ways to be content running "old junk" computers. I practically never use bluetooth, practically never use wayland, systemd has not caused any undue grief, and I more frequently use Ethernet instead of wireless (although I've had fairly good luck with wireless and Linux, but not so much with BSD).
i see perl language is being used. At my command line
Code:
$ perldoc perlintro
i get a nice intro to language- never used perl before
 


h2-1

Member
Credits
983
Perl is a shockingly amazing language, but it's VERY old fashioned, it's designed to be very close to the metal, so it's stunningly fast, unless you make mistakes and create bottlenecks. I hated it when I started, because it's very hard on a conceptual level, because unlike python, that is many many layers above bare metal, Perl is as close as you can get as a scripting language, so it's just amazingly fast.

Perl also shares another feature that only bash and awk have, running on everything from any era after 2005, which is why original inxi was done in bash/gawk, but gawk itself is not always installed, so it was a problem, but the real problem is that trying to write and maintain a large program done in bash/gawk is simply insane, I wish I'd switched years earlier because Perl is faster and more powerful in every way.

I run heavy duty Perl optimizers on inxi every year or so, to catch the latest bottlenecks, and consistently speed up inxi in every area that perl can be sped up, that's why its features expand continuously but its execution speed does not increase nearly as much as the features and code do. I found a new debugger tool this time that let me find and trim off significant bottlenecks in internal core inxi tools, which are used a lot as inxi executes.

But perl has some things that are so close to the metal that your brain simply doesn't perceive reality in that way, at least mine didn't, and still doesn't in some areas, but the thing with perl is, when you learn it, you are learning how your hardware works, because you have to make your brain adapt to how it really works, not some wrapper layers above it that hide all that from you. That's why it's so darned fast though.

There was literally only 1 language in the world that met the requirements of inxi:
1. reliable, run by adults, and doesn't break every major release (that latter instantly excluded python from ever being considered)
2. FAST.
3. stable, over generations, so inxi code from 2021 runs fine on operating systems and hardware from 2005 or so, I test inxi / pinxi on a 1998 200mhz laptop, running a very old debian stable, I think it's lenny?
4. Powerful, allows advanced, complex data structures, without the horrible convoluted hacks I had to resort to with bash>gawk.

I believe and am fairly certain I am not wrong, that the set of languages on the planet that meets these core requirements has exactly one member, Perl 5. inxi has already been testing using some perl 7 test modules and passed, so it looks good for inxi on perl 7, which is just the next major version of perl 5. perl 6 became roku, and rightfully is not considered the next perl anymore, it's a new language.

If you want to see the raw execution time of inxi, run whatever command you want with --sleep 0, that knocks off 0.35 second sleep time to let the cpu spin down and return a roughly correct non inxi executing cpu speed. That's for any CPU line item.

I'm also seeing a slowdown from some SSDs when they report their drive temps using the new drivetemp module from linux kernel, but it seems to vary, I saw between 200 and 20 milliseconds on Intel SSDs, which is several hundred times longer than it should take normally.
 
Last edited:

captain-sensible

Well-Known Member
Credits
9,609
i knew a perl programmer a few years back; at the time he was saying demand for Perl programmers had dropped off. I'm seeing perl crop up here and there more and more, it seems . For instance the guys developing src for latex2html also use Perl .
I have a small involvement with latex2html.SlackBuild for slackbuilds.org I guess now is a as good a time as any to learn Perl 5
 

h2-1

Member
Credits
983
I can tell you the main mistake I made, I'd faintly dealt with perl for years, but never seriously, so I got some perl books before starting the rewrite, and read the basic stuff, but I stopped 1 step too early, and recently had to back in and refactor all that stuff I'd done because I didn't want to learn more advanced perl stuff because, well, it's hard. That's scalar/array/hash references, and using them correctly.

'correct' use can be validated because when you do it correctly, and then run optimizers over it, it can be several orders of magnitude slower to do it 'wrong' than to do it 'right'.

Not really understanding referencing and de-referencing scalars, arrays, and hashes, let several different syntaxes and methods for doing that slip in, which made it hard to realize these different things were actually doing the same thing, which made the code very hard to debug and read after a while. I think some brains will just 'click' with references, and others will not, mine did not, so I just worked around it, which is super inefficient, leads to silly code, and inconsistent logic.

The 'Learning Perl' book I thought was good. The other big ones tend to get too specific though I think I probably should have read them a bit more than I did, but it's hard to know what matters and what doesn't. My feeling after switching to perl,and also redoing another perl project I had maintained for a long time, acxi, to be better code, though not as good as inxi is now, it takes about 2 years of using it frequently to get ok at it, I think that's similar to many languages that are non trivial, any time someone says, oh, that's easy to learn, I picked it up in a few weeks, it's almost certain they are making huge mistakes and doing stuff wrong and will have to rewrite everything they did.

A few surprising things, using packages (aka, 'classes'), incurs no performance hit at all, and leads to much neater and easier to work with logic, there may be a small memory use hit, but there's no visible execution time hit. I just use packages as wrappers for logic that is related, so I can have locally scoped variables instead of having many things be global so the stuff can access them. I only use the PackageName::method() technique, I never 'bless' the class into a new object, I just want to create smaller name spaces for the logic to live in so it doesn't all sprawl over the top level.
 

h2-1

Member
Credits
983
One major thing Perl barely does is threading, it doesn't do it natively, I added it to acxi, but it's hard to work with, very tricky, and that's kind of one of the reasons that Larry Walls decided to make what was first going to be Perl 6, then it was too different, and was named Roku, which is why next major perl 5 will be perl 7, skipping 6. I believe Roku has threading native, and other stuff, but it never interested me, even just the syntax I found silly and verbose.

The thing that makes me laugh about Perl is that it's a tool literally designed _for_ inxi, in every way, it's a 'p'ractical 'e'traction and 'r'eporting 'l'anguage, literally exactly, precisely, what inxi does.
 

captain-sensible

Well-Known Member
Credits
9,609
The 'Learning Perl' book I thought was good.
is that the o'Reilley with the Llama on it ? I've got Perl 5 on my Slackware -current 5.4.12 kernel . Geany will do me for a light IDE / text highlighted editor and away i go..I'm no rush but it might help me understand what the guys at : https://github.com/latex2html/latex2html/ are doing; 75% of their work is Perl and i'm maintaining the slackbuild with next to no knowledge of perl
 

KGIII

Super Moderator
Staff member
Gold Supporter
Credits
12,551
never used perl before
One of these days, I'll take the time to type out my favorite Perl story. The gist is that I wrote the absolute least secure web-software (a long time ago) and then this software got sold and pirated, used by tens of thousands of sites. You literally only need to know the right path to show all the user data and admin data - including passwords. To this day, 20+ years later, I still sometimes see this software out there and running online.
 

h2-1

Member
Credits
983
captain-sensible, yes, that's the Llama book. Easy to find used, cheap. Just make sure to get the latest edition if it has multiple ones.'

Geany is a nice editor, I've started using it for lightweight stuff, it's a good replacement for medit, which is gone now (python upgrade broke it, lol, they didn't feel like reprogramming it again)
 

captain-sensible

Well-Known Member
Credits
9,609
One of these days, I'll take the time to type out my favorite Perl story. The gist is that I wrote the absolute least secure web-software (a long time ago) and then this software got sold and pirated, used by tens of thousands of sites. You literally only need to know the right path to show all the user data and admin data - including passwords. To this day, 20+ years later, I still sometimes see this software out there and running online.
Do tell !
 

KGIII

Super Moderator
Staff member
Gold Supporter
Credits
12,551
Do tell !
So that we don't sully this thread more than needed:

 
$100 Digital Ocean Credit
Get a free VM to test out Linux!

Members online


Top