Discussion
Loading...

Discussion

Log in
  • About
  • Code of conduct
  • Privacy
  • Users
  • Instances
  • About Bonfire
blinry
blinry
@blinry@chaos.social  ·  activity timestamp last week

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! <3

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.)

2 media
A white-and-green laptop with funny antennae, that looks a mix of a toy/handheld console and a small laptop.
A white-and-green laptop with funny antennae, that looks a mix of a toy/handheld console and a small laptop.
A white-and-green laptop with funny antennae, that looks a mix of a toy/handheld console and a small laptop.
Screenshot of the "View source" feature. A window showing Python source files has opened.
Screenshot of the "View source" feature. A window showing Python source files has opened.
Screenshot of the "View source" feature. A window showing Python source files has opened.
  • Copy link
  • Flag this post
  • Block
Jan Wildeboer 😷:krulorange:
Jan Wildeboer 😷:krulorange:
@jwildeboer@social.wildeboer.net  ·  activity timestamp 2 days ago

@blinry Yep. That was one of the design goals. When the decision was made by Bill Gates to NOT support the OL;PC, it needed a new OS and UI. Which became SugarUI running on top of Fedora. Red Hat put in a bunch of engineers to help get it all up and running. It was a special time 😊 I still use working OLPCs for demos and workshops ;)

3 media
OLPC running SugarUI
OLPC running SugarUI
OLPC running SugarUI
Blue OLPC running SugarUI
Blue OLPC running SugarUI
Blue OLPC running SugarUI
A pile of working OLPC
A pile of working OLPC
A pile of working OLPC
  • Copy link
  • Flag this comment
  • Block
der.hans
der.hans
@lufthans@mastodon.social  ·  activity timestamp 4 days ago

@blinry A "make this particular source code available" requirement is somewhat[0] baked into the AGPLv3 license, tons of discussion about showing code in use back then, I believe

Does PHP still have a "show the source code" option builtin?

[0] I think it's fully baked in, but it's been a long time since I looked at actual text of the license

  • Copy link
  • Flag this comment
  • Block
Yogthos
Yogthos
@yogthos@social.marxist.network  ·  activity timestamp last week

@blinry incidentally, Lisp Machines took it a step further where you could inspect and modify code of your running applications, and see changes live.

It's really sad to see that modern environments still haven't caught up to that.

https://www.tfeb.org/fragments/2025/11/18/the-lost-cause-of-the-lisp-machines/

The lost cause of the Lisp machines

I am just really bored by Lisp Machine romantics at this point: they should go away. I expect they never will....
  • Copy link
  • Flag this comment
  • Block
Aral Balkan
Aral Balkan
@aral@mastodon.ar.al  ·  activity timestamp last week

@blinry @enkiv2 Well there’s one at the bottom of every web site we make and all it takes is a link to a git remote somewhere :)

e.g. see footer of https://kitten.small-web.org/

Might be harder on native/proprietary platforms but I’d love to see this become a pattern that’s embraced on the web.

  • Copy link
  • Flag this comment
  • Block
Svante
Svante
@Ardubal@mastodon.xyz  ·  activity timestamp last week

@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.

  • Copy link
  • Flag this comment
  • Block
David Chisnall (*Now with 50% more sarcasm!*)
David Chisnall (*Now with 50% more sarcasm!*)
@david_chisnall@infosec.exchange  ·  activity timestamp last week

@blinry

It originally ran Sqeak. Sqeak is a modern Smalltalk (though Pharo is positioning itself as a replacement). It was also inspired by the DynaBook, which was another of Alan Kay's projects.

Smalltalk environments all let you inspect both the source code and the state of running objects.

For Étoilé, we built a persistent object model with some common interfaces and the UI framework exposed the same introspection APIs, so you could attach an inspector to any object and see it in a generic way, but then attach an inspector to the UI for the model object, and then to that in turn and have inspectors all the way down (or up, or something).

  • Copy link
  • Flag this comment
  • Block
Bill Seitz
Bill Seitz
@billseitz@toolsforthought.social  ·  activity timestamp last week

@david_chisnall @blinry I believe the ViewSource was more about the Python code, which ran more of the system.

  • Copy link
  • Flag this comment
  • Block
Cassidy James :rr: :gg: :fh:
Cassidy James :rr: :gg: :fh:
@cassidy@mastodon.blaede.family  ·  activity timestamp last week

@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.

  • Copy link
  • Flag this comment
  • Block
Will T
Will T
@wjt@mastodon.me.uk  ·  activity timestamp last week

@cassidy @blinry @EndlessAccess @ramcq @chergert Here is the patent: https://patents.google.com/patent/US11355030B2/en

US11355030B2 - System and method for teaching computer programming
- Google Patents

A system for teaching computer programming includes a computer, a display connected to the computer, software executable by the computer to generate a window on the display, and a user input for transitioning the window between a first configuration and a second configuration. In the first configuration, the window displays an application. In the second configuration, the window displays a programming interface for the application. The system further includes an editor displayed in the programming interface for changing a code listing related to a parameter of a feature displayed in the application. By changing the code listing related to the parameter of the feature and transitioning between the first configuration and the second configuration, a user is able to observe how differences in the code listing affects the parameter of the feature in the application.
  • Copy link
  • Flag this comment
  • Block
Cassidy James :rr: :gg: :fh:
Cassidy James :rr: :gg: :fh:
@cassidy@mastodon.blaede.family  ·  activity timestamp last week

@blinry @EndlessAccess @wjt @ramcq @chergert here is a video of the effect I found: https://xcancel.com/jonobacon/status/817059475437879305

  • Copy link
  • Flag this comment
  • Block
Cassidy James :rr: :gg: :fh:
Cassidy James :rr: :gg: :fh:
@cassidy@mastodon.blaede.family  ·  activity timestamp last week

@blinry @EndlessAccess @wjt @ramcq @chergert I remember seeing this in @ptomato’s talk at GUADEC in 2018 (6:45) https://youtu.be/NF-hZ1aMIl0?t=405

  • Copy link
  • Flag this comment
  • Block
Will T
Will T
@wjt@mastodon.me.uk  ·  activity timestamp last week

@cassidy @blinry @EndlessAccess @ramcq @chergert @ptomato I wasn't involved in implementing this, but: what makes it conceptually possible is that Flatpak apps (at least the ones on Flathub) can be built offline if you have the dependencies, which you can get from Flathub (org.gnome.Calculator.Sources for example). I think this worked by installing the .Sources extension for the running app, unpacking it and opening it in Builder, then window manager hacks to glue the two together.

  • Copy link
  • Flag this comment
  • Block
blinry
blinry
@blinry@chaos.social  ·  activity timestamp last week

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 it

As a quick prototype, I wrote a li'l Bash script that does some of these things. It makes heavy use of #nix and #nixpkgs:

https://codeberg.org/blinry/view-source-button

I enters a "dev shell" with the required tools already in the PATH, and even sets up a Git remote to start contributing. :D

Codeberg.org

view-source-button

A script that allows you to start tinkering with software
  • Copy link
  • Flag this comment
  • Block

bonfire.cafe

A space for Bonfire maintainers and contributors to communicate

bonfire.cafe: About · Code of conduct · Privacy · Users · Instances
Bonfire social · 1.0.2-alpha.34 no JS en
Automatic federation enabled
Log in
Instance logo
  • Explore
  • About
  • Members
  • Code of Conduct