Closed marianoguerra closed 2 years ago
🧑🔬 Papers We Love 💬 Thinking Together (a lot) 🔬 Interval Research Corp 📢 Unison Conference
💻 henosia.com via Jim Meyer
Curious about what this group thinks of the approach we're taking with henosia.com We provide direct manipulation of the visual output of a running program, and think this is a great fit for UX Designers where their intent is "move that", "adjust this whitespace" and "insert a button below". It's visual TypeScript code editing in real time for designers. Oh, and we have multiplayer in the mix, which has been, let's call it interesting , so far 😂
🎥 Banghashat demo via Chris Knott
I made a little demo of a text based knowledge management/second brain thingy
🐦 Tweet from @tobyshooters via Cristóbal
Tiny demo from some weekend hacking to bring the computer out of its box by mapping macOS spaces to physical spaces in my room
🐦 cristóbal: Pinning macOS spaces to physical spaces: Forgot my dictionary at my desk... walk over to grab it!
Depending on one's physical location, a different macOS space is focused (see top-right). You can move windows between spaces by walking over, grabbing onto it, and walking back.
📢 Papers We Love Education Edition via Joe Nash
It's a big Papers We Love: Education edition tomorrow! We’re being joined by Jane Waite, researcher at the Raspberry Pi foundation, to talk about her report (co-authored with Sue Sentence) that summarises the research around programming pedagogy, drawing on 170 papers. All the info here: Teaching programming in schools: A review of approaches and strategies
📢 makeabetter.computer via Parker Henderson
Hi everyone! Sharing a project I just launched that may be of interest to some of you!
makeabetter.computer—A (tiny) microgrants for people working and thinking about the future of computing!
I wrote a small twitter thread about it.
🔌 egui_cable: Generic and extensible data-oriented widget for connecting ports by cables via Ryo Hirayama
I’ve released a widget library for the visual programming editor of Desk. It's also generic and extensible widget for any purpose. You can create node-based or analog synthesizer-like UI with simple API.
🤖 Codeball -> AI-powered code review via Kiril Videlov
Hey folks, I wanna show you something new we have been working on - an AI code review bot 🤖. Most pull requests (about 2/3) get merged without corrections, and the idea is to have the bot detect and approve them. This was born out frustration constantly waiting for 'code review' for small and safe code contribution, especially since I believe in "ship small & often. Also it allows you to focus on the trickier changes instead.
👉 Here's how it works: anybody can do a 'historical' test on any repository here - codeball.ai to test out the accuracy. To do reviews on new pull requests, it's setup as a GitHub action.
I'd love to hear what you smart people think! Happy to also share more about the model too (basically it's a neural net, the inputs include features about the code, the author and author experience with the code changed, trained on over 1M code contributions).
Any good recommendations on Term Rewriting Systems?
💬 Jim Meyer
I've been thinking about the limitations and shortcomings that VPL environments have when they focus on program structure instead of the desired outcome a user has in mind.
Another word for structure is recipe. Recipes are difficult for most non-coders to wrestle with because they force a mental model of “do A, then B, then C to hopefully achieve the X that I want”. A recipe by its definition means that the outcome – the thing the user is trying to achieve - is a separate thing, which usually divides the UI into two distinct and somewhat disconnected parts.
This brings me to outcome-driven coding (ODC). I’m making up this term, surely there is a term grounded in research? 😁 With ODC, we’re flipping the script, and letting users work in a way that follows a pattern of “Tinker and change until it (the outcome, not the recipe) feels right”.
By mostly hiding the program structure, and showing the outcome of running the program live, an ODC tool can be made on top of an existing programming language, leveraging an entire eco-system of existing work, be it open source, or existing code bases that a product team is working on. This is a big deal for adoption of such a tool, and the foundation for collaboration with developers using IDEs.
There’s an interesting trade-off here that has to do with expressive power versus complexity in a VPL environment. With ODC, we can manage that complexity by deciding on which parts of a code base that visual programming is best suited for, and which parts to “leave alone but still execute to show the real product outcome”. Parts of a code base are inherently about the human element and the user experience. Let's call this "design code". Design code naturally centers on using and defining design system components, the visual language, use of data, navigation flows, and pages. This is where visual programming shines.
The ODC approach lets us create a tool that is optimized to work with design code visually, in a way that UX designers prefer, while allowing traditional business logic code to execute unhampered inside the tool. The key is to allow collaboration on a single shared code base, with tools specialized for the unique skills and needs of the people in a cross-functional team.
Would be great to hear what this group thinks of this hybrid approach, and whether there is existing work that is similar. Thanks 🙂
📝 Students who grew up with search engines might change STEM education forever via Joe Nash
TL;DR: many computing applications have transcended files-and-folders, why haven't developer tools? 🤔
During Papers We Love Education yesterday, we were joined by a couple of teachers of various age groups, and I had the opportunity to ask them about whether they've observed what this Verge article describes: theverge.com/22684730/students-file-folder-directory-structure-education-gen-z
The article is about how ubiquitous search and cloud storage have meant that young folk no longer have a mental model of file systems, or really understand files and folders. I had suspected I was observing this in my work, with some of the questions I was getting in our introductory content about CLIs. The educators confirmed they're also seeing this and it's a big problem.
That struck me as a big issue for CS education. If students are coming in never having interacted with an app that deals in files, saving files, or organising content in directories, that's a huge hurdle to beginning programming, or interacting with most tools. Everything we do and use still has the file system at the centre of the experience and the interface.
Whether the “tabletification” of computing is a positive thing or not, it's interesting to me that unlike many categories of applications, developer tools, even for young learners, have resisted it
💬 Jim Meyer
Undo and redo in relationship to CRDTs/multiplayer seems to be an underexplored area with huge challenges.
Here's a case where multiplayer undo-redo becomes interesting for visual programming.
(This would be visual programming, e.g. via a blocks/node interface, but I'll use JavaScript and React to express the states)
💬 Jarrett Atkinson
I'm not sure if this is going to be discovery or thinking together, but oh well.
I've had the idea in the back of my mind for a long time that UI sucks. It's bad for us as programmers when we have to build an app across 5+ form factors (more when you consider the possibility of AR, VR, or voice assistant applications). It's bad for the consumer when we develop a bad UI. It's bad for the consumer when we build a good UI, but it's not talored to how individuals use it. For example I use about 5% of the potential functionality of my IDE, but it's extremely tedious ranging to impossible to customize the UI for myself. Yes, keyboard bindings exist but for the most part let's ignore that. Most casual users won't learn Keybindings. And, that ignores that I'd like to comstomize the application state I can view.
OK, the problem established, I'd like to think about a solution: stop writing UI. Instead, write api descriptors so an agent can design a UI for you, knowing the capabilities of your application. Early versions of an agent will require massive amounts of hints, but that's probably still easier than writing UI. Having an agent (ai maybe?) would also allow input from individual users to the system with hints as to how they want to view the app. "show the buttons in this order. " "show the status of this in that box." etc. Graphql is the closest approximation of such an api descriptor I can think of.
On to the questions: Has this been considered before? What prior art is in this space? Are we near technical feasibility of such a project?
💬 Václav Blažej
Core of a futuristic system - use cases.
A) What things should the programmer be able to do but is not able to because of the limitations of today's computers and systems?
B) How should a interaction of a programmer with a computer look like in the future?
C) If you had 10000 hours of free unencumbered development hours, what would you do?
💬 Evan Payne
The details are fuzzy now, but when I was a teenager I read Tad Williams's series Otherland. It was written in the late 90's and so didn't really grasp how the internet would come to work over time. Its premise was that a lot of the world was immersed in virtual reality worlds, but one group of ultra rich folk had built a secret system that was impossibly realistic, and well, it got weird from there. Still, it had some interesting concepts that really inspired me. Two in particular:
I think there are probably a wealth of future-of-coding ideas in older scifi novels.
💻 github.com/yatima-inc/yatima-lang-alpha via Christopher Galtenberg
"Yatima is a pure functional programming language implemented in Rust with... content addressing, first-class types, linear, affine and erased types, type-safe dependent metaprogramming"
📝 Interval Research Corporation: a 90s PARC without a Xerox via Mariano Guerra
I came across a big research lab from the 90s that I didn't know about so I decided to blog about it:
🐦 Tweet from @unisonweb via Mariano Guerra
Registrations for Unison Forall 2022 are open
June 24th (EDT), fully online and completely free
🐦 Unison: We're very pleased to announce that registrations for Unison Forall 2022 are open! Join us June 24th (EDT) for the first Unison language conference, fully online and completely free. We have a lineup of engaging talks, and a virtual "hallway track". 🤖🌸🪐 https://hopin.com/events/unison-forall
📢 Emergent Ventures Grant/Fellowship Application via Jamie Brandon
Emergent Ventures is a low-application-overhead grant for 'high-reward ideas'. I haven't been able to find out what typical grant size is, but the parallel Covid Fast Grants program seems to be averaging $250k.
[x] Change Month and Week Number
[x] focWeekExport "2022-01-19" "2022-01-26"
[x] Summary
[ ] Hashtags
[x] Check that comment links work (push weekly dump with channel summaries)
[x] Check to mention right person for moved messages
[x] Update Search Index
[x] Download New Attachments
[x] Update links
https://tinyletter.com/
https://tinyletter.com/marianoguerra/letters/
http://localhost:8000/history/
https://marianoguerra.github.io/future-of-coding-weekly/
https://stackedit.io/app#