Remember the "One Laptop Per Child" project, that developed a low-cost computer for children in developing countries?
-
Remember the "One Laptop Per Child" project, that developed a low-cost computer for children in developing countries? I was always amazed by a certain feature: The "View Source" button.
When you pressed it, the source code for the currently running application would open. This was supposed to encourage tinkering with the software on your device!

I've been pondering what it would take to build that button on modern machines. Has anyone seen something like that?
(Prototype in next toot.)
@blinry I incorporate this feature into my game engine right now. The game editor is built inside the game engine which is built with rust. You will be able to see the object components as well as the source code. And can effectively tinker on the editor as if it's a game that you can build with the engine.
-
Remember the "One Laptop Per Child" project, that developed a low-cost computer for children in developing countries? I was always amazed by a certain feature: The "View Source" button.
When you pressed it, the source code for the currently running application would open. This was supposed to encourage tinkering with the software on your device!

I've been pondering what it would take to build that button on modern machines. Has anyone seen something like that?
(Prototype in next toot.)
@blinry the display technology and the rotation and all... everything looked great!
I'd like to have one to tinker with. -
@blinry in the Old Days, one could attach a debugger to any running process, and step through it … if the debug symbols were where the debugger could find them, you would step though the source, if not, the machine code … I gather GDB and LLDB can do similar today, tho maybe only in text mode; I’d think a distro could package everything with debug symbols and make some of that much more accessible, even adding a version-specific repo link to the debug info
@ShadSterling @blinry With debuginfod it's not even necessary to install the debug symbols anymore on most major Linux distributions, gdb or whatever program needs them can just download them on demand. At least Fedora also automatically downloads the matching source file. See https://sourceware.org/elfutils/Debuginfod.html
-
Remember the "One Laptop Per Child" project, that developed a low-cost computer for children in developing countries? I was always amazed by a certain feature: The "View Source" button.
When you pressed it, the source code for the currently running application would open. This was supposed to encourage tinkering with the software on your device!

I've been pondering what it would take to build that button on modern machines. Has anyone seen something like that?
(Prototype in next toot.)
@blinry dynamicland is an extreme version of this: https://dynamicland.org/
The site and explanations are generally so opaque to newcomers that I think it's significantly limiting things, but I suspect that's partly intentional.
If you haven't seen it before, I'd recommend searching YouTube for videos of people using it. It's pretty clear at a glance, the code printed on the paper *is* the code, interactions between things come from physical arrangement, etc: https://youtube.com/shorts/zsYFX_-J-rk -
@blinry oh oh oh talk to @EndlessAccess folks about this! They hold a defensive patent (which is usable by open source projects) for “Flip to Hack” which was this idea taken to the extreme as far as coolness goes.
I imagine @wjt, @ramcq, and maybe @chergert (because I think it used GNOME Builder?) could share some pointers to the history.
@cassidy @blinry @EndlessAccess @ramcq @chergert Here is the patent: https://patents.google.com/patent/US11355030B2/en
-
Remember the "One Laptop Per Child" project, that developed a low-cost computer for children in developing countries? I was always amazed by a certain feature: The "View Source" button.
When you pressed it, the source code for the currently running application would open. This was supposed to encourage tinkering with the software on your device!

I've been pondering what it would take to build that button on modern machines. Has anyone seen something like that?
(Prototype in next toot.)
@blinry @gvwilson amazing work! the lack of such a thing is one of my primary complaints about the so-called “open” operating systems, and the FLOSS movement generally. if we can’t put the actual control in users’ hands, then what’s the point? seeing an actual modern prototype of this is really encouraging. Particularly because it seems you have a scalable approach which won’t require work from every app? I wish you great luck in making it happen more broadly!
-
Remember the "One Laptop Per Child" project, that developed a low-cost computer for children in developing countries? I was always amazed by a certain feature: The "View Source" button.
When you pressed it, the source code for the currently running application would open. This was supposed to encourage tinkering with the software on your device!

I've been pondering what it would take to build that button on modern machines. Has anyone seen something like that?
(Prototype in next toot.)
@blinry I think the OLPC project failed because they foolishly rejected my implementation suggestion

-
You'd roughly need to:
- Figure out which program is currently focused
- Figure out the Git repo of this software
- Clone it into a temporary directory
- Set up the required tools to start hacking on it and compile itAs a quick prototype, I wrote a li'l Bash script that does some of these things. It makes heavy use of #nix and #nixpkgs:
view-source-button
view-source-button - A script that allows you to start tinkering with software
Codeberg.org (codeberg.org)
I enters a "dev shell" with the required tools already in the PATH, and even sets up a Git remote to start contributing.

@blinry would be nicer to bundle the apps with the source itself in some way
-
Remember the "One Laptop Per Child" project, that developed a low-cost computer for children in developing countries? I was always amazed by a certain feature: The "View Source" button.
When you pressed it, the source code for the currently running application would open. This was supposed to encourage tinkering with the software on your device!

I've been pondering what it would take to build that button on modern machines. Has anyone seen something like that?
(Prototype in next toot.)
@blinry Yes, see Lisp Machines, OpenGenera, Medley Interlisp, McCLIM, or almost any Smalltalk dialect. You can glimpse this in Emacs+SLIME »presentations«.
The system is »live«, and you can inspect it directly. Typically, this goes down to individual widgets.
»Modern« machines have lost the connection to their source, and trying to recover it with heuristics and remote repositories will necessarily be only a distant shimmer of that connection.
-
@blinry If you limit it to python, it could be fun. C/C++ code has to be compiled and that can take _a while_. Maybe it would work better on something like Gentoo. Or maybe you'd have a system, where in a special environment, everything is built from package-source once, then can be edited and recompiled in seconds.
-
@technomancy @dwardoric @blinry I'm lucky, I can use emacs all day :3
@korenchkin @technomancy @blinry Aww... Lispmachines. *sigh*
-
Remember the "One Laptop Per Child" project, that developed a low-cost computer for children in developing countries? I was always amazed by a certain feature: The "View Source" button.
When you pressed it, the source code for the currently running application would open. This was supposed to encourage tinkering with the software on your device!

I've been pondering what it would take to build that button on modern machines. Has anyone seen something like that?
(Prototype in next toot.)
@blinry my wife got kicked out of a computer class for tweaking the software in the 80s.
-
-
Remember the "One Laptop Per Child" project, that developed a low-cost computer for children in developing countries? I was always amazed by a certain feature: The "View Source" button.
When you pressed it, the source code for the currently running application would open. This was supposed to encourage tinkering with the software on your device!

I've been pondering what it would take to build that button on modern machines. Has anyone seen something like that?
(Prototype in next toot.)
@blinry Negroponte took Epstein funding. Say what you will, but I'd rather have my hands be clean.
-
@raymaccarthy @agowa338 @blinry yeah, J++ was an attempt to EEE Java, especially for “applets” in IE, that got shut down by the court ruling. dotNET and C# were the subsequent attempt to build a better mousetrap, which largely succeeded in terms of capabilities, but failed to replace Java in adoption because it was closed-source and windows-only
@ShadSterling @agowa338 @blinry
And if C# had been crossplatform and more liberally licenced, Android might have used it instead of Java. Then Oracle would not have sued Google.
But Symbian devs were using Mobile Java and Google wanted them.
Sun had the odd idea that Mobile Java was free-sh, Desktop Java was free-ish, but it was forbidden to use the Desktop version on anything else. It never made sense. -
@blinry I think the OLPC project failed because they foolishly rejected my implementation suggestion

@th Aw
Still have it? -
@blinry Not sure if I'm thinking too complicated here, but doesn't it get ever more complicated what exactly to show there?
If I'm currently looking at a web app that shows some data retrieved from a server-side backend in a browser whose UI is written in (say) Python calling one of the dominant rendering engines and one of the dominant Javascript engines, which of the sources do I show on “View Source”?
It could be anything from the operating system kernel via the CPython or the Javascript runtime to the web app or its server-side counter-part that could be considered most interesting and answering the question: “Oh, I wonder how this works.”
it's both true that that's more complicated, but because of that more important that people understand where "it's coming from". And what "it" is. Yesno?
Well, this is why pedagogy is really hard!
I feel like the simplified, one-app-at-a-time Sugar style was meant to narrow down the possible contexts to make this easier, but also that limited screen space and trying to have a unified design language blurred it again.
-
It's been fun, it feels like a new superpower to "quickly fix something and send a PR". It's also a super dangerous rabbit hole generator, because now that it's easy to fix stuff, it's very tempting to do so…

My prototype has some rough edges:
It clones the latest commit, which doesn't always compile using the #nixpkgs setup (but it seems reasonable to check whether the bug is still there).
And invoking the phases of the nixpkgs stdenv manually can be tricky. https://nixos.org/manual/nixpkgs/stable/#sec-building-stdenv-package-in-nix-shell
@blinry This is such an awesome idea! When I read your first toot I thought immediately "that'd be near impossible for non-interpetted language programmes" but I love this because you've converted it into essentially a search problem!
Such a clever way to take stuff from "almost impossible" to "super achievable" almost instantly!
-
-
P pixelate@tweesecake.social shared this topic



