https://futureofcoding.org/ logo
#thinking-together
Title
# thinking-together
t

Tim Lavoie

09/23/2023, 12:35 AM
I had a couple thoughts bouncing around, listening to, 66 ā€¢ A Small Matter of Programming by Bonnie Nardi. ā€¢ Jimmy mentioned writing browser extensions. Just recently, there was a thread (probably on HN), with discussion of people sharing filter snippets for uBlock Origin. It turns out that besides simply filtering links and so on, the snippets are also being used to modify styles and visibility for all sorts of things that people find needing change on various web sites. This, along with the whole "view source" era discussion, suggests that it hasn't gone away. Browser extensions such as uBlock Origin also include a colour-style picker for identifying the elements on the page that you're interested in. So in a way, it is very much enabling a simple sort of end-user programming, right in the browser. You won't see the back-end, but can manipulate the DOM that is very much on the client. ā€¢ Regarding the discussion in the episode on early education, teaching kids programming, I was thinking along the lines of teaching the means to observe. "View source" is one such part, along with browser dev-tools. Perhaps most people won't be interested in modifying the programs they use, but teaching the idea that introspection, via software-as-microscope, is possible. Too much of our computing is directed to being strictly consumption, that I suspect few people will even think of being able to look at the innards. Think Wireshark for networks, source-level debuggers where you have source, or binary analysis tools where you don't. (Probably related, I got a Snapshot cartridge for the C64 as a youth, and was amazed at being able to capture the entire state of a program, fiddle with it, and save it as an executable to resume.)
i

Ivan Reese

09/23/2023, 12:40 AM
Ah, lovely thoughts. Thank you. I like the idea of "software-as-microscope", if I take your meaning correctly. ResEdit, or dtrace, for instance. Does anyone know good examples that are designed for nontechnical people?
a

alltom

09/23/2023, 1:31 AM
The screen magnifier (literally), in particular when it doubles as a color picker.
Task Manager
t

Tim Lavoie

09/23/2023, 6:00 AM
Huh, there's even Dtrace for Windows. The Snapshot cartridge struck me as miraculous. One physical button on the top, pushing that dropped you into a menu, with options such as a monitor to inspect the current state of the system. For a know-nothing kid, it was an eye-opener. https://rr.c64.org/wiki/Super_Snapshot For web stuff, tools such as OWASP ZAP or Burp Suite may not tell you what server-side code does, but you can learn to infer quite a lot. Inspect the requests/responses, interrupt and fiddle or replay them, and so on. I don't know about non-technical resources, but anything that integrated with a scripting environment would be more accessible to the layperson than most. ARexx for the Amiga for instance, to script and connect applications that support it. (https://en.wikipedia.org/wiki/ARexx) Or image-based environments that include documentation, and the ability to inspect the innards. Lisp environments perhaps, or SmallTalk.
e

Erik Stel

09/23/2023, 8:16 AM
Brings back fond memory's Tim. I owned a The Final Cartridge III. Learned so much by poking around a live system. Maybe that is indeed what makes Smalltalk (for me) such a great environment. Your suggestions inspire/evoke some thoughts if this can be broadened to not only the environment itself but a broader scope. Thx! šŸ™‚
And of course SoftICE later on the PC with DOS and early Windows versions. But this is really low level shizzle. Maybe not great for teaching. On the other hand...I liked it, why wouldn't other kids nowadays like it. Small poll: add a thumbs up if you also liked the low level debugging/hacking!
k

Konrad Hinsen

09/23/2023, 2:11 PM
Wondering about browsers and extensions: is there a tutorial somewhere on "hacking the DOM", explaining how to do simple but useful hacks with the browser's built-in development tools?
t

Tim Lavoie

09/23/2023, 5:26 PM
In terms of security-type hacking, Portswigger has an excellent set of instruction / labs online, for free: https://portswigger.net/web-security It's focused on Burp Suite, but there is a free version. ZAP has some YouTube tutorials as well.
@Erik Stel Do you do much Smalltalk these days? I've only ever tinkered, though did just re-download it again.
Also very timely to the discussion, from Carson Gross: https://htmx.org/essays/right-click-view-source/
And another great link, from a friend in our regular chat: https://drive.google.com/file/d/1Qu_dnc1ylSuUOxyiRbhjUeIgP23gcBMG/view "Programmers should no more be asked to work without access to source code than auto mechanics should be asked to work without looking at the engine." Talks about how different environments deal with access to source code.
e

Erik Stel

09/24/2023, 12:40 PM
@Tim Lavoie I develop in Smalltalk most of the time. I have my own company (with a like minded business partner) and can decide for myself. Some (potential) customers do find it difficult though, since they see it as a continuity risk for using "impopulair technology" šŸ˜‰. To be fair, I do understand this feeling and it is something to weigh in when getting into the boat with us.
t

Tim Lavoie

09/24/2023, 3:30 PM
@Erik Stel I like that expression ("getting into the boat with us"), very descriptive.
b

Beni Cherniavsky-Paskin

09/27/2023, 7:35 AM
Love "Teaching the meant to observe". View Source/licensing is important but is not the only component of giving users agency; In many cases people have questions (and/or desire to intervene) about high-level "black box" behavior of software like "what/to whom is it sending?" [browser devtools Network tab, ad/trcker blockers..., ngrok], "how its communicating with OS / files?" [strace, lsof], "what is computer spending time on?" [perf top], "what did it change?" [Backup/VM snapshot & diff], "what did I do / how can I repeat it?" [macros, autohotkey, Steam controller remapping] "what is it recording/playing?" [audio monitors, per-app audio wiring, OBS virtual camera/ mic] ...
5 Views