marianoguerra / future-of-coding-weekly

repository to work on future of coding weekly newsletter
https://tinyletter.com/marianoguerra/
32 stars 3 forks source link

Future of Coding Weekly 2022/05 Week 5 #134

Closed marianoguerra closed 2 years ago

marianoguerra commented 2 years ago
marianoguerra commented 2 years ago

🧑‍🔬 Papers We Love 💬 Thinking Together (a lot) 🔬 Interval Research Corp 📢 Unison Conference

Our Work

💻 henosia.com via Jim Meyer

🧵 conversation

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 😂

marianoguerra commented 2 years ago

🎥 Banghashat demo via Chris Knott

🧵 conversation

Thumbnail

I made a little demo of a text based knowledge management/second brain thingy

marianoguerra commented 2 years ago

🐦 Tweet from @tobyshooters via Cristóbal

🧵 conversation

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.

Tweet Thumbnail

marianoguerra commented 2 years ago

📢 Papers We Love Education Edition via Joe Nash

🧵 conversation

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

marianoguerra commented 2 years ago

📢 makeabetter.computer via Parker Henderson

🧵 conversation

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.

🧵 another conversation

marianoguerra commented 2 years ago

🔌 egui_cable: Generic and extensible data-oriented widget for connecting ports by cables via Ryo Hirayama

🧵 conversation

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.

Image from iOS

Image from iOS

marianoguerra commented 2 years ago

🤖 Codeball -> AI-powered code review via Kiril Videlov

🧵 conversation

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

marianoguerra commented 2 years ago

Thinking Together

💬 Mariano Guerra

🧵 conversation

Any good recommendations on Term Rewriting Systems?

marianoguerra commented 2 years ago

💬 Jim Meyer

🧵 conversation

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 🙂

image.png

marianoguerra commented 2 years ago

📝 Students who grew up with search engines might change STEM education forever via Joe Nash

🧵 conversation

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

marianoguerra commented 2 years ago

💬 Jim Meyer

🧵 conversation

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)

🧵 read more

marianoguerra commented 2 years ago

💬 Jarrett Atkinson

🧵 conversation

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?

marianoguerra commented 2 years ago

💬 Václav Blažej

🧵 conversation

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?

marianoguerra commented 2 years ago

💬 Evan Payne

🧵 conversation

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.

marianoguerra commented 2 years ago

Content

💻 github.com/yatima-inc/yatima-lang-alpha via Christopher Galtenberg

🧵 conversation

"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"

marianoguerra commented 2 years ago

📝 Interval Research Corporation: a 90s PARC without a Xerox via Mariano Guerra

🧵 conversation

I came across a big research lab from the 90s that I didn't know about so I decided to blog about it:

IntervalResearchCorporation.png

marianoguerra commented 2 years ago

🐦 Tweet from @unisonweb via Mariano Guerra

🧵 conversation

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

marianoguerra commented 2 years ago

📢 Emergent Ventures Grant/Fellowship Application via Jamie Brandon

🧵 conversation

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.

Previous grants

marianoguerra commented 2 years ago

https://tinyletter.com/marianoguerra/letters/future-of-coding-weekly-2022-05-week-5