jamesh
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 20512
Joined: Sat Jul 30, 2011 7:41 pm

Re: What Does Hiding the Details of I/O in Library Calls Teach?

Wed Jul 18, 2018 11:04 am

We don't see it as a problem. The huge majority of people in the SW industry use libraries, it's a very small subset who actually write to registers.

That said, I always think it is useful to have an understanding of the layers of software underneath libraries, if only for debugging purposes.

But you cannot jump straight in to that stuff and expect to keep peoples interest. You need to start off with stuff that is easy to use, then gradually introduce the complexity. Then, those people for whom the complexity of the low level is of interest can learn more about it, those that are happy to use libaries use libraries.

Oddly, I prefer higher level code (framework stuff), and here I am working on pretty low level driver stuff. Oh well.
Principal Software Engineer at Raspberry Pi (Trading) Ltd.
Please direct all questions to the forum, I do not do support via PM.

hippy
Posts: 3789
Joined: Fri Sep 09, 2011 10:34 pm
Location: UK

Re: What Does Hiding the Details of I/O in Library Calls Teach?

Wed Jul 18, 2018 2:49 pm

The problem I have with libraries is it often leads to a lot of bloat. Encouraging people to use libraries without thought is probably why we often have such huge executables these days.

People just include libraries to do what they want and don't care or worry what else that drags in which they may never need and, for dynamic languages like Python, there's little opportunity to optimise and remove what's never going to be used or needed.

I wanted something to give my Python code a frame buffer I could manipulate. I had the choice; use PyGame, dig through PyGame source to isolate the one or two routines I needed, figure out how to use that C code when I had, or look for something else. Life's too short; I just imported the PyGame library.

I have effectively given up worrying about how bloated my code is. And so it seems have most people. That, and promoting Python which relies heavily on libraries, feels to me to be somewhat at odds with the constrained Pi.

Heater
Posts: 9842
Joined: Tue Jul 17, 2012 3:02 pm

Re: What Does Hiding the Details of I/O in Library Calls Teach?

Wed Jul 18, 2018 3:54 pm

hipppy,
That, and promoting Python which relies heavily on libraries, feels to me to be somewhat at odds with the constrained Pi.
As an old timer sometimes my jaw does drop when I see the size of some programs in the modern world.

But I'm curious, after you bit the bullet and just imported PyGame how much of the Pi's SD card space did it take? How much of the Pi's memory did it use at run time?

I'd wager it hardly shows up. Even on the "constrained" Pi.

Of course the second one chooses Python to tackle a problem one has given up all hope of small size and performance.

hippy
Posts: 3789
Joined: Fri Sep 09, 2011 10:34 pm
Location: UK

Re: What Does Hiding the Details of I/O in Library Calls Teach?

Wed Jul 18, 2018 4:57 pm

Heater wrote:
Wed Jul 18, 2018 3:54 pm
Of course the second one chooses Python to tackle a problem one has given up all hope of small size and performance.
Exactly that. I have no idea how much of anything my code is using. I have gone down the 'don't and won't care until I hit a problem' path like many others before me, and then I'll be joining the complaints that the Pi doesn't have 4GB RAM.

In practice it hasn't been a problem as I use my Pi mostly as application engines so can take all its resources for myself and I've found Python performance good enough for what I do. I guess most people are in that boat.

I'm not against libraries, but not caring about bloat, "it doesn't matter so long as it works!", does make me feel somewhat hypocritical when I've complained about that myself, have argued it doesn't have to be that way. I guess I've succumbed to ease of coding and insisting the hardware keeps up with my needs.

I must admit though I still find it satisfying to boot a Pi application from a 16MB SD card.

User avatar
DougieLawson
Posts: 33858
Joined: Sun Jun 16, 2013 11:19 pm
Location: Basingstoke, UK
Contact: Website

Re: What Does Hiding the Details of I/O in Library Calls Teach?

Wed Jul 18, 2018 4:58 pm

Heater wrote:
Wed Jul 18, 2018 3:54 pm
Of course the second one chooses Python to tackle a problem one has given up all hope of small size and performance.
You can say that again. I rewrote a python program (it reads a BMP180 using the /sys interface and writes SQLite3 every three minutes) in C++ and the working set of the program goes does from 66MB to 6.6MB.

It's also using less CPU as the timer delay handling in C++ this_thread::sleep_until is much better than anything I've found in python libraries.
Microprocessor, Raspberry Pi & Arduino Hacker
Mainframe database troubleshooter
MQTT Evangelist
Twitter: @DougieLawson

2012-18: 1B*5, 2B*2, B+, A+, Z, ZW, 3Bs*3, 3B+

Any DMs sent on Twitter will be answered next month.

PiGraham
Posts: 3401
Joined: Fri Jun 07, 2013 12:37 pm
Location: Waterlooville

Re: What Does Hiding the Details of I/O in Library Calls Teach?

Wed Jul 18, 2018 5:29 pm

DougieLawson wrote:
Wed Jul 18, 2018 4:58 pm
Heater wrote:
Wed Jul 18, 2018 3:54 pm
Of course the second one chooses Python to tackle a problem one has given up all hope of small size and performance.
You can say that again. I rewrote a python program (it reads a BMP180 using the /sys interface and writes SQLite3 every three minutes) in C++ and the working set of the program goes does from 66MB to 6.6MB.

It's also using less CPU as the timer delay handling in C++ this_thread::sleep_until is much better than anything I've found in python libraries.
Was there much difference in the time it took to write and debug or in the line count?

PiGraham
Posts: 3401
Joined: Fri Jun 07, 2013 12:37 pm
Location: Waterlooville

Re: What Does Hiding the Details of I/O in Library Calls Teach?

Wed Jul 18, 2018 5:38 pm

The whole idea of programming languages and symbolic instructions is obviously holding everyone back. Kids should be learning about computers by setting register load values on banks of switches.

To be fair I can see benefits in kids learning about discrete logic circuits, how an adder can be made from transistors (or dominoes!), but these are very different skill sets and they wil in general achieve much, much more with, with much greater satisfaction, using high level tools than with the bit or register level. There is a place for all of it, and the philosophic aspects of how all this magic actually works at a physical level should not be ignored or hidden, but it's not the place to start for most people.

User avatar
DougieLawson
Posts: 33858
Joined: Sun Jun 16, 2013 11:19 pm
Location: Basingstoke, UK
Contact: Website

Re: What Does Hiding the Details of I/O in Library Calls Teach?

Wed Jul 18, 2018 9:00 pm

PiGraham wrote:
Wed Jul 18, 2018 5:29 pm
DougieLawson wrote:
Wed Jul 18, 2018 4:58 pm
Heater wrote:
Wed Jul 18, 2018 3:54 pm
Of course the second one chooses Python to tackle a problem one has given up all hope of small size and performance.
You can say that again. I rewrote a python program (it reads a BMP180 using the /sys interface and writes SQLite3 every three minutes) in C++ and the working set of the program goes does from 66MB to 6.6MB.

It's also using less CPU as the timer delay handling in C++ this_thread::sleep_until is much better than anything I've found in python libraries.
Was there much difference in the time it took to write and debug or in the line count?
I'd already got the basic design done in python. I was using it as an opportunity to learn C++. Some of the code came from https://www.disk91.com/2013/technology/ ... h-message/ (which accounts for lots of the lines because I didn't build that piece as a separate module).

C++ is 137 LOC (47 LOC for the mqtt stuff), equivalent python is 77 LOC.
Last edited by DougieLawson on Wed Jul 18, 2018 11:16 pm, edited 1 time in total.
Microprocessor, Raspberry Pi & Arduino Hacker
Mainframe database troubleshooter
MQTT Evangelist
Twitter: @DougieLawson

2012-18: 1B*5, 2B*2, B+, A+, Z, ZW, 3Bs*3, 3B+

Any DMs sent on Twitter will be answered next month.

User avatar
Z80 Refugee
Posts: 358
Joined: Sun Feb 09, 2014 1:53 pm

Re: What Does Hiding the Details of I/O in Library Calls Teach?

Wed Jul 18, 2018 9:23 pm

hippy wrote:
Wed Jul 18, 2018 9:58 am
The disconnect seems to be between what the RPF and partners are providing for and what you think they should be providing for, what their goals are and what you believe they should be.

It's a lot like complaining driving instructors are not teaching car mechanics or vehicle engineering. That AstroPi and CubeSat ventures don't teach anyone about the problem of getting a payload up into space.

No, they don't. But that's not necessarily a problem.
What I see is loads of software "engineers" (if you can call programming by trial and error engineering), but nobody who knows how to make anything. I would say that's a problem.
Military and Automotive Electronics Design Engineer (retired)

For the best service: make your thread title properly descriptive, and put all relevant details in the first post (including links - don't make us search)!

jamesh
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 20512
Joined: Sat Jul 30, 2011 7:41 pm

Re: What Does Hiding the Details of I/O in Library Calls Teach?

Wed Jul 18, 2018 9:39 pm

Z80 Refugee wrote:
Wed Jul 18, 2018 9:23 pm
hippy wrote:
Wed Jul 18, 2018 9:58 am
The disconnect seems to be between what the RPF and partners are providing for and what you think they should be providing for, what their goals are and what you believe they should be.

It's a lot like complaining driving instructors are not teaching car mechanics or vehicle engineering. That AstroPi and CubeSat ventures don't teach anyone about the problem of getting a payload up into space.

No, they don't. But that's not necessarily a problem.
What I see is loads of software "engineers" (if you can call programming by trial and error engineering), but nobody who knows how to make anything. I would say that's a problem.
You're looking in the wrong places.

All the really good software guys work for Amazon, Google, MS, or in the millisecond trading industry etc. We have a few as well.

Pay peanuts, get monkeys.
Principal Software Engineer at Raspberry Pi (Trading) Ltd.
Please direct all questions to the forum, I do not do support via PM.

ejolson
Posts: 1906
Joined: Tue Mar 18, 2014 11:47 am

Re: What Does Hiding the Details of I/O in Library Calls Teach?

Wed Jul 18, 2018 10:18 pm

bensimmo wrote:
Wed Jul 18, 2018 8:38 am
I'm all for it though, they make you sit through languages and other boring stuff many do not wish or care for, so let's make everyone learn some more interesting electronics and low level computing.
The goals behind government funded schools and national curricula are a bit mysterious and likely different depending on country.

From what I understand, the idea of the Pi was conceived primarily to address shortcomings observed in computer science students at a particular university. While the main shortcoming was reportedly little or no prior programming experience, in addition to coding, the Raspberry Pi can help learn digital electronics, networking, Linux system configuration and many other useful prerequisites for computer science.

Note that there is no need for a Pi to teach programming. That can be taught on the cloud through a web browser as demonstrated, for example, by NCLab. However, with a Pi you can further learn a complete set of practical computer skills from DevOps to physical computing which are useful even without subsequent university work. My best friend in primary school used the skills he learned with 8-bit computers to bypass the university. While he's not as rich as Bill Gates, he definitely did well.
Last edited by ejolson on Wed Jul 18, 2018 10:31 pm, edited 1 time in total.

Heater
Posts: 9842
Joined: Tue Jul 17, 2012 3:02 pm

Re: What Does Hiding the Details of I/O in Library Calls Teach?

Wed Jul 18, 2018 10:27 pm

Z80 Refugee,
What I see is loads of software "engineers" (if you can call programming by trial and error engineering), but nobody who knows how to make anything.
I'm not sure I understand what you are complaining about.

There are 7.3 billion people on the planet at this moment. Many of them have access to a computer they can program. Some of those actually do so.

Turns out that kids in England were not learning to program like they did back in the 1980's with their 8 bit home computers. Thus the idea of the Pi was born. To encourage such programming experience.

Are any of those programmers "engineers"? Probably not. But they do it. In the same way that people play musical instruments even if they are not world class musicians. Just for their own fun.

Are you suggesting this should not happen? The whole point of the Raspberry Pi project is that they do.

As for "nobody who knows how to make anything" clearly somebody does. From the Linux kernel, to the OS built on it, to the language compilers and other tools, to the web browser I'm talking to you through. A huge lot of stuff, that mostly works very well.

Where did that all come from?

User avatar
DougieLawson
Posts: 33858
Joined: Sun Jun 16, 2013 11:19 pm
Location: Basingstoke, UK
Contact: Website

Re: What Does Hiding the Details of I/O in Library Calls Teach?

Wed Jul 18, 2018 11:21 pm

Z80 Refugee wrote:
Wed Jul 18, 2018 9:23 pm
What I see is loads of software "engineers" (if you can call programming by trial and error engineering), but nobody who knows how to make anything. I would say that's a problem.
It depends how you define "software engineer" and how many years of experience are needed to go with that definition. I don't program by trial and error (beyond some early unit testing when learning a new interface) - there's usually some sort of design spec (especially for my commercial stuff).
Microprocessor, Raspberry Pi & Arduino Hacker
Mainframe database troubleshooter
MQTT Evangelist
Twitter: @DougieLawson

2012-18: 1B*5, 2B*2, B+, A+, Z, ZW, 3Bs*3, 3B+

Any DMs sent on Twitter will be answered next month.

ejolson
Posts: 1906
Joined: Tue Mar 18, 2014 11:47 am

Re: What Does Hiding the Details of I/O in Library Calls Teach?

Thu Jul 19, 2018 2:40 am

jamesh wrote:
Wed Jul 18, 2018 9:39 pm
Pay peanuts, get monkeys.
Have you tried paying with bananas?

When relying on frameworks and complex subroutine libraries what do you do when there is a bug? Not only is the code hidden from view but the over-engineered generality often makes it too complex to understand let alone fix, especially for a beginner.
Last edited by ejolson on Thu Jul 19, 2018 4:37 am, edited 1 time in total.

User avatar
The Traveler
Posts: 361
Joined: Sat Oct 21, 2017 3:48 pm

Re: What Does Hiding the Details of I/O in Library Calls Teach?

Thu Jul 19, 2018 3:09 am

Just an interesting opinion along the lines of this discussion: https://www.johndcook.com/blog/2009/10/ ... ack-boxes/
Retired IT professional, C programmer and "beardie weirdie".
RPi interests: Developing an Infinite Improbability Drive
“Thinking outside of the box allows you to get rewards outside of your reach.” Matshona Dhliwayo

User avatar
bensimmo
Posts: 3227
Joined: Sun Dec 28, 2014 3:02 pm
Location: East Yorkshire

Re: What Does Hiding the Details of I/O in Library Calls Teach?

Thu Jul 19, 2018 6:32 am

ejolson wrote:
Thu Jul 19, 2018 2:40 am
jamesh wrote:
Wed Jul 18, 2018 9:39 pm
Pay peanuts, get monkeys.
Have you tried paying with bananas?
That's when you get Orangutans.



ook.

User avatar
rpdom
Posts: 12818
Joined: Sun May 06, 2012 5:17 am
Location: Ankh-Morpork

Re: What Does Hiding the Details of I/O in Library Calls Teach?

Thu Jul 19, 2018 7:05 am

bensimmo wrote:
Thu Jul 19, 2018 6:32 am
That's when you get Orangutans.
In the library?

PiGraham
Posts: 3401
Joined: Fri Jun 07, 2013 12:37 pm
Location: Waterlooville

Re: What Does Hiding the Details of I/O in Library Calls Teach?

Thu Jul 19, 2018 7:59 am

rpdom wrote:
Thu Jul 19, 2018 7:05 am
bensimmo wrote:
Thu Jul 19, 2018 6:32 am
That's when you get Orangutans.
In the library?
In the APE API?
Last edited by PiGraham on Thu Jul 19, 2018 9:59 am, edited 1 time in total.

User avatar
Z80 Refugee
Posts: 358
Joined: Sun Feb 09, 2014 1:53 pm

Re: What Does Hiding the Details of I/O in Library Calls Teach?

Thu Jul 19, 2018 9:57 am

Heater wrote:
Wed Jul 18, 2018 10:27 pm
As for "nobody who knows how to make anything" clearly somebody does. From the Linux kernel, to the OS built on it, to the language compilers and other tools, to the web browser I'm talking to you through. A huge lot of stuff, that mostly works very well.

Where did that all come from?
Indeed, but you are deliberately misinterpreting. Where is the next generation of hardware engineers coming from? Great, teach everybody to code, and you have the next generation of games programmers and consumers, all in their own little worlds on their smart devices. But that next generation knows nothing about fixing things or making things in the first place - especially in the UK where 'manufacture' appears to have become a dirty word.

Like I said previously: hardware engineers can manage without software engineers, but software engineers need the product of hardware engineers before they can even begin.
Military and Automotive Electronics Design Engineer (retired)

For the best service: make your thread title properly descriptive, and put all relevant details in the first post (including links - don't make us search)!

User avatar
bensimmo
Posts: 3227
Joined: Sun Dec 28, 2014 3:02 pm
Location: East Yorkshire

Re: What Does Hiding the Details of I/O in Library Calls Teach?

Thu Jul 19, 2018 10:11 am

Z80 Refugee wrote:
Thu Jul 19, 2018 9:57 am
Heater wrote:
Wed Jul 18, 2018 10:27 pm
As for "nobody who knows how to make anything" clearly somebody does. From the Linux kernel, to the OS built on it, to the language compilers and other tools, to the web browser I'm talking to you through. A huge lot of stuff, that mostly works very well.

Where did that all come from?
Indeed, but you are deliberately misinterpreting. Where is the next generation of hardware engineers coming from? Great, teach everybody to code, and you have the next generation of games programmers and consumers, all in their own little worlds on their smart devices. But that next generation knows nothing about fixing things or making things in the first place - especially in the UK where 'manufacture' appears to have become a dirty word.

Like I said previously: hardware engineers can manage without software engineers, but software engineers need the product of hardware engineers before they can even begin.
That's where, at least in the UK) the STEM movement comes in, it's been happening for quite a while now. Of course, that now crosses over with RaspberryPi and micro:bit
Unfortunately, while STEM is a 'thing' in schools, it's often not implemented at the ground to combine all departments to talk to each other and work with a common goal. It gets left as an afterthought one must do every now and again to fulfil some criteria. It gets in the way of working towards an exam ;-)
They would still tend to use a library/Module/API to perform said engineering and control be it Arduino, Pi, Microbit, that is unless their interest took them along their path of learning and into Higher Education/University/Work where they would possibly need to know the low level stuff.


(uk STEM https://www.stem.org.uk/ )

jamesh
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 20512
Joined: Sat Jul 30, 2011 7:41 pm

Re: What Does Hiding the Details of I/O in Library Calls Teach?

Thu Jul 19, 2018 10:15 am

Z80 Refugee wrote:
Thu Jul 19, 2018 9:57 am
Heater wrote:
Wed Jul 18, 2018 10:27 pm
As for "nobody who knows how to make anything" clearly somebody does. From the Linux kernel, to the OS built on it, to the language compilers and other tools, to the web browser I'm talking to you through. A huge lot of stuff, that mostly works very well.

Where did that all come from?
Indeed, but you are deliberately misinterpreting. Where is the next generation of hardware engineers coming from? Great, teach everybody to code, and you have the next generation of games programmers and consumers, all in their own little worlds on their smart devices. But that next generation knows nothing about fixing things or making things in the first place - especially in the UK where 'manufacture' appears to have become a dirty word.

Like I said previously: hardware engineers can manage without software engineers, but software engineers need the product of hardware engineers before they can even begin.
There are clearly HW engineers being trained in this country - I see them every day. We've got interns in right now who are pretty good HW guys already. Just because you are not seeing them, doesn't mean they don't exist.

I'd also disagree with the last sentance, nowadays, without the SW guys to actually make the very complex HW work and hang together, a lot of product would never be released. It's incrediably rare for a piece of HW to NOT require SW support in some way or another.

And by HW, in this case I'm talking computer HW and chip design. Not washing machine electronics - although nowadays everything like this is now microcontroller controlled, which needs SW.
Principal Software Engineer at Raspberry Pi (Trading) Ltd.
Please direct all questions to the forum, I do not do support via PM.

Heater
Posts: 9842
Joined: Tue Jul 17, 2012 3:02 pm

Re: What Does Hiding the Details of I/O in Library Calls Teach?

Thu Jul 19, 2018 11:18 am

Z80 Refugee,
...hardware engineers can manage without software engineers, but software engineers need the product of hardware engineers before they can even begin...
Well, yes, in some simple minded basic way that is true. If I write a program it is pretty much useless if I don't have a computer to run it on. Thankyou hardware guys.

On the other hand "manage" what exactly?

When problems get big enough and complex enough they are not amenable to a purely hardware solution. In principle one could build a network stack, a web browser or a database, by way of examples, purely in digital logic hardware. After all it's all zeros and ones and logic. But really, the task would be so huge and complex as to be impossible.

Then there is the fact that today pretty much all complex digital logic hardware is designed in high level description languages like Verilog or VHDL. Designing hardware is now indistinguishable from designing software.

Heck, even back in 1956 Edsger W. Dijkstra (Famous software engineer) came up with an algorithm to minimize the amount of wire needed to connect the pins on the back panel of the ARMAC computer they were building in Amsterdam at the time.

The hardware guys cannot do anything without software!

How far down this rabbit hole should we go?

Your claim is that people should understand what is in the libs they use, hit harware registers directly and so on. OK, that is not a bad idea. But we could also then claim that a kid writing a C program should also know how hs C compiler works, in fact he should write a compiler of his own rather than rely on a ready made one.

Of course that requires that he understands his processors instruction set in detail. In fact he should design his own processor to run his program on.

That's easy enough now a days with FPGA's and HDLs like Verilog, VHDL, Chisle, SpinalHDL, etc. But hey, he should write his own hardware discription language compiler and logic synthesizer rather than rely on a ready made one.

Hmm...about that FPGA... that is a black box. He should not rely on that, he should build his CPU out of logic gates.

No wait, those logic chips are black boxes. He'd better build those logic gates out of transistors.

Damn... now he needs to build his own transistors. Time to brush up on some quantum mechanics and solid state physics....

Looks like that kid is never going to get his LED flasher program that uses the rpigpio library running!

By the way, if you want to build your own computer from the ground up, everything from CPU design, creating a hardware description language, creating an assembler and compiler, up to operating system, editor etc then Per Vognsen has a series of videos on YouTube in progress describing exactly how to do all of that:

Bitwise: https://www.youtube.com/watch?v=ZjwvMcP ... wMSDM3aTtX

jahboater
Posts: 2939
Joined: Wed Feb 04, 2015 6:38 pm

Re: What Does Hiding the Details of I/O in Library Calls Teach?

Thu Jul 19, 2018 11:42 am

Great prose Heater!

I think there are three things about libraries that make them useful:

Implementation Cost
Expertise
Maturity

Take the commonest library, the C library, used everywhere, even by other languages such as Python.

Implementation Cost:
I know I could write "printf" but it would take weeks or months (and likely have bugs).
I want my project completed in the next day (say).

Expertise:
I simply don't have the mathematical and floating point knowledge (for example) to write the math functions.
Sure I could learn it in time, but I want to focus on my project.

Maturity:
Libc has been used by (probably) millions of programmers, in countless millions of programs, for many decades.
You simply cannot reach that level of testing and exposure no matter what.

All three mean that in practice, you have no choice but to use the library.
I should add documentation. Libc is completely and precisely documented.
Much of it in the ISO C standard. Thats valuable.
Last edited by jahboater on Thu Jul 19, 2018 11:52 am, edited 1 time in total.

hippy
Posts: 3789
Joined: Fri Sep 09, 2011 10:34 pm
Location: UK

Re: What Does Hiding the Details of I/O in Library Calls Teach?

Thu Jul 19, 2018 11:52 am

Z80 Refugee wrote:
Thu Jul 19, 2018 9:57 am
Where is the next generation of hardware engineers coming from? Great, teach everybody to code, and you have the next generation of games programmers and consumers, all in their own little worlds on their smart devices. But that next generation knows nothing about fixing things or making things in the first place - especially in the UK where 'manufacture' appears to have become a dirty word.
Those with aptitude have always headed towards doing what they are interested in. That's where the last generation of engineers came from, where the next generation will come from.

The Pi's role is not to lead anyone to anywhere, only to facilitate the journey they choose to take.

The Pi opens the door. The Foundation and partners can show what possibilities lie beyond the door, entice people in, but it's not their role to push people through it or force them to any specific end.

The important thing is the Pi doesn't prevent anyone choosing or following whatever path they choose. The fact we have so many people asking how to do things and showing off what they have done shows it is helping to create the next generation of engineers, hardware and software.

User avatar
Z80 Refugee
Posts: 358
Joined: Sun Feb 09, 2014 1:53 pm

Re: What Does Hiding the Details of I/O in Library Calls Teach?

Thu Jul 19, 2018 1:11 pm

Heater wrote:
Thu Jul 19, 2018 11:18 am
How far down this rabbit hole should we go?
As far as you like. That's the point of opening a debate :D
Military and Automotive Electronics Design Engineer (retired)

For the best service: make your thread title properly descriptive, and put all relevant details in the first post (including links - don't make us search)!

Return to “General programming discussion”

Who is online

Users browsing this forum: No registered users and 4 guests