โœ‰๏ธ Not subscribed yet? Subscribe to the Newsletter

Future of Coding Weekly 2024/04 Week 3

2024-04-16 15:51

Two Minute Week

๐ŸŽฅ visual programming with improved timeline slider via Maikel van de Lisdonk

๐Ÿงต conversation

Youtube Thumbnail

I've been improving the timeline-slider in my visual programming system code-flow-canvas.. you can try it out here : demo.codeflowcanvas.io (best experience is on desktop since the mobile and touch responsiveness is still lacking).

Additionally the state-machine node now also shows its transitions when executing a flow or using the timeline slider.

Also some the nodes that are used to visualize data have been connected to the flow-execution history. Some changes were needed in keeping track of state and updating nodes visually when using the timeline slider.

In this video I show some of the examples together with the timeline slider here

Our Work

๐ŸŽฅ Building an everything shell via Peter Saxton

๐Ÿงต conversation

Vimeo Thumbnail

I've started building an "everything shell". It uses my language EYG and a structural editor. the whole thing is be hosted with the idea that the resources you can ask about (instead of filesystems and processes) are every cloud system I have.

๐Ÿ’ฌ Ivan Lugo

๐Ÿงต conversation

โ€œItโ€™s a Unix systemโ€ฆ I know this!โ€

Something from a year or two ago that I built and iterated on since then. Ever wanted to see all your files in 3D to get a mental map? No problem - use CherrierView - a terminal-style, colorized .dae blit of arbitrary directories into space.

๐ŸŽฅ Demo

๐ŸŽฅ Torn Leaf Zero via Lu Wilson

๐Ÿงต conversation

Youtube Thumbnail

I made a video to introduce an exhibition im making called TORN LEAF ZERO

It features a collaborative artwork with over one hundred participants

Devlog Together

๐Ÿ“ exaequos.com via Kartik Agaram

๐Ÿงต conversation

I've been playing with a new platform that I hope will be quite convivial. Hosted ๐Ÿ˜ฌ but no Javascript and seems easy to build and self-host. Created by a single person, so decent chance of staying simple over time. It seems to be a fork of emscripten that's been made habitable. In particular, it includes raylib and some Lua bindings to it, so I'm starting to feel at home.

exaequos.com

I ported one of my early Lร–VE apps to it, for geometric constructions. There's an app store and I've published my app there, so you should be able to run it for yourself and inspect the source code. (All apps on the app store are available right in the file system, under /usr/store !)

Disclaimers. It's slow, like dialing up over a phone line. Still lots of bugs. I had to reboot the VM several times while recording this video. Commands often hang or crash, then completely stop working until I reload. It's never lost my data, though. Data is stored in local storage on the browser until you publish something to the app store.

๐ŸŽฅ exaequOS

Thinking Together

๐Ÿ’ฌ Hamish Todd

๐Ÿงต conversation

I'm thinking about spreadsheets. Has anyone ever made a convincing interface for defining functions , using a spreadsheet interface?

(I am aware that you can define functions in most modern spreadsheets, but this requires you to go to a traditional coding interface. This is obviously cheating!)

๐Ÿ’ฌ Andreas S

๐Ÿงต conversation

Hi FoC Community ๐Ÿ™‚ I'm looking for something that i found a couple of years ago and apparently my fuzzy descriptions fail my zettelkasten or a search engine for that matter. I think I'm looking for a clojure talk in which someone presented also a tool. This tool used a UI of 2 or Three circles as a kind of number REPL which explained for example how the map function works in clojure. I hope that isn'T too vague if you know the name of the tool, that would be very cool. Thank you!!

๐Ÿ“ Where does constant data go? via Dany

๐Ÿงต conversation

I wrote a blog post about constant data in PL. Which is kind of curious in text based PL and a place where more visual approaches can really shine.

All of the programming languages I know make an interesting distinction, between two groups of constants, depending on type.

Content

๐Ÿ“ Future of Coding Weekly 2020/02 Week 1 via Mariano Guerra

๐Ÿงต conversation

๐Ÿ“œ Past Futures of Coding February 2020 Edition

๐Ÿ’ฌ Stefan Lesser

๐Ÿงต conversation

Iโ€™ve been reviewing classic papers about simplicity, complexity, and adjacent topics, both for my current series of essays and an essay Iโ€™m writing for Onward!

So far I have reviewed (or downloaded for review):

  • Herbert A. Simon, The Architecture of Complexity (1962)
  • Melvin E. Conway, How Do Committees Invent? (1968)
  • Peter Naur, Programming as Theory Building (1985)
  • Frederick P. Brooks, Jr., No Silver Bullet โ€” Essence and Accident in Software Engineering (1986)
  • Richard P. Gabriel, Worse is Better (1991)
  • Rich Hickey, Simple Made Easy (2011)

What am I missing? What else should be on that list?


๐Ÿ‘จ๐Ÿฝโ€๐Ÿ’ป By ๐Ÿ˜ @marianoguerra@hachyderm.io ๐Ÿฆ @warianoguerra

๐Ÿ’ฌ Not a member yet? Check the Future of Coding Community

โœ‰๏ธ Not subscribed yet? Subscribe to the Newsletter / Archive / RSS

๐ŸŽ™๏ธ Prefer podcasts? check the Future of Coding Podcast

Future of Coding Weekly 2020/02 Week 4

2024-04-10 10:08

On the experiment side, this week I started playing with emojis to allow quick scans for content of interest, I will try to be consistent with the emoji usage so people can use them to orient around a previously dry wall of text (the tool I use doesn't excel at promoting creative expression)

Demos

๐ŸŽฅNew little demo of end user software customization by Geoffrey Litt

  • Sort Hacker News by total points descending, for a more stable ranking
  • Remove the articles I've already read

--

๐Ÿ’ปChet Chorcos shared a full-stack prototype of collaborate web application backed by a Datalog-inspired database he built in one day.

๐Ÿ“‘ Useful resources mentioned in the How does it work? section of the readme.

--

๐ŸŽฅ A brief walk-through on the steps needed to create launch visualizations from the SpaceX HTTP JSON API (cameo of the basket to ease drag and drop of multiple things in targets far apart from the source). Also short demos about Premier League Attendance and Goals by Team from CSV File and Sales KPIs from an Excel Spreadsheet by Mariano Guerra

From our Community

๐ŸŽฅBeyond Snapping: Persistent, Tweakable Alignment and Distribution with StickyLines

UIST 2016: Proceedings of the 29th Annual ACM Symposium on User Interface Software & Technology

Aligning and distributing graphical objects is a common, but cumbersome task. In a preliminary study (six graphic designers, six non-designers), we identified three key problems with current tools: lack of persistence, unpredictability of results, and inability to 'tweak' the layout.

We created StickyLines, a tool that treats guidelines as first-class objects: Users can create precise, predictable and persistent interactive alignment and distribution relationships, and 'tweaked' positions can be maintained for subsequent interactions.

--

๐ŸŽฅBeyond Grids: Interactive Graphical Substrates to Structure Digital Layout

CHI'17: ACM CHI Conference on Human Factors in Computing Systems Session: Spatial & Temporal Design

Traditional graphic design tools emphasize the grid for structuring layout. Interviews with professional graphic designers revealed that they use surprisingly sophisticated structures that go beyond the grid, which we call graphical substrates.

We present a framework to describe how designers establish graphical substrates based on properties extracted from concepts, content and context, and use them to compose layouts in both space and time.

--

๐ŸŽฅProject Lincoln: Adobe MAX 2017 (Sneak Peeks)

Lincoln is a data visualization tool for designers to link graphics to data without the need to code.

--

๐ŸŽฅData Illustrator: Create infographics and data visualizations without programming

Augmenting Vector Design Tools with Lazy Data Binding for Expressive Visualization Authoring.

Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, 2018

--

๐ŸŒCharticulator: Create Bespoke Chart Designs without Programming. ( ๐ŸŽฅ Video)

--

๐ŸŽฅJennifer Mary Jacobs - Domain Specific Programming Platforms for Creativity

--

๐Ÿ“Programmer's critique of missing structure of operating systems by @bystroushaak who expresses his frustration in using raw text (files, command parameters, environment variables, socket...) as unique way to communicate at the OS level.

--

๐Ÿ“‘ A list of future of programming projects maintained by Daniel Garcรญa Carmona.

--

๐Ÿงต A twitter thread by @gravislizard argues that keyboard based old text UI was faster and not necessary less intuitive than web UI with mouse: > almost everything on computers is perceptually slower than it was in 1983 amber-screen library computer in 1998: type in two words and hit F3. search results appear instantly. now: type in two words, wait for an AJAX popup. get a throbber for five seconds. oops you pressed a key, your results are erased.

Follows a Slack thread which eventually discusses distributed, interactive, stateful apps/systems.

--

๐ŸŽฅStamper: An Artboard-Oriented Creative Coding Environment by Cameron Burgess (๐ŸงตSlack Thread, Twitter Thread)

Stamper is an alternative editor for p5.js, inspired by design software with Artboards (e.g. Sketch, Illustrator)

๐Ÿ“ Read more here: Stamper: An Artboard Oriented Programming Environment

Future of Coding Weekly 2020/02 Week 3

2024-04-10 10:07

Announcing the awesome program for the Convivial Computing Salon 2020 - โ€นProgrammingโ€บ 2020

Demos

Raathi Kugarajan shared his project JSBubbles: Re-imagining reading and navigating JavaScript codebases in VSCode

I was tinkering with a VSCode extension inspired by Code Bubbles but my effort was mostly focused on navigating and reading JavaScript code bases.

--

Andrew Reece posted a second DevLog for WhiteBox, a live debugger/REPL for C(++) - now with a GUI, a familiar debugger-like data tree, graphing variable value changes across a function.

WhiteBox DevLog 2 - GUI, data trees and graphing values over time

--

Bloques Web Update by Mariano Guerra

An update to the tool to teach HTML/CSS/JS to non programmers, added new high level blocks, some even for layout, two lower level layers that get closer and closer to textual HTML. Also added import/export.

From our Community

Talk presenting Geometric Algebra for Computer Graphics which seems to simplify operations compared to other representations.

More information on the website https://bivector.net/

Clifford's Geometric Algebra enables a unified, intuitive and fresh perspective on vector spaces, giving elements of arbitrary dimensionality a natural home.

Implementations in Javascript, c++, c#, rust and python at the ganja.js project.

--

Jason Laster shared Web Replay which supports Time Travel Debugging

Web Replay records your entire application, so you can track bugs down faster, understand your code better, and always get perfect bug reports.

--

Greg Law on Debugging, Record & Replay of Data, and Hyper-Observability by Greg Law via Karki

Topics discussed included: the challenges with debugging modern software systems, the need for โ€œhyper-observabilityโ€ and the benefit of being able to record and replay exact application execution; and the challenges with implementing the capture of nondeterministic system data in Undoโ€™s LiveRecorder product for JVM-based languages that are Just-In-Time (JIT) compiled.

--

All Programming Languages are Wrong by David A. Moon (Slack Thread)

Most current-day programming languages seem to be based on the idea that computation is slow, so the user and the compiler must work hard to minimize the number of instructions executed.

Compromises to minimize instructions extend so far as to make familiar-looking operators like + and < behave in unintuitive ways. If as a result a program does not work correctly in some cases, it is considered to be the programmer's fault. But it is really the language designer's fault.

--

Ryan Florence on twitter:

Whenever I talk to teenagers about programming they want to do it on their phone.

And an interesting Slack conversation about it.

--

Graydon Hoare on "text is already a highly-structured graphical notation" via yoshiki

many technical innovations are latent in textual notations. Visually unambiguous yet uniform symbol sets, combinatorial-positional word formation, linear spatio-temporal segregation, punctuation and structured page layout .. these are all technologies in writing that we had to laboriously invent, and they have purposes, advantages! Similarly in coding, we had to invent and adapt technologies from verbal and mathematical notations refined over millennia: lines and columns, indentation, block layout, juxtaposition and precedence, scope, evaluation order, comments, grammars, version control, diff and merge algorithms ... the pile of structuring technologies embedded in the textual representation of programs isn't free, and it isn't useless

So I'm just really cautious when people suggest throwing it all out for some hypothetical reinvention. You need those structures: so you've got an immediate problem of "what are you going to use instead", and a longer-term question of "what makes you think you're not going to wind up right back at the same place ten thousand years of refining graphemes-on-a-page wound up"?

There's more where those quotes came from: Re: Graphical Editors

--

Chris Knott shares an interesting story about evolving clocks to solve a particular problem in a Slack conversation. A similar story about the MacCready Gossamer Albatross is shared there too.

Some quotes:

importance of not confusing incidental problems for fundamental problems

the entire issue is not solved, but sidestepped

Future of Coding Weekly 2020/02 Week 2

2024-04-10 10:06

New Future of Coding Podcast #44 - Making Your Own Tools: Devine Lu Linvega | Future of Coding by Ivan Reese

Devine Lu Linvega and his partner Rekka live on a sailboat. He makes art, music, software, and other cultural artifacts. When Photoshopโ€™s DRM required that he maintain a connection to the internet, he wrote his own creative suite. When his MacBook died in the middle of the ocean, he switched to Linux with hardware he could service. His electricity comes from solar panels, and every joule counts โ€” so thatโ€™s out with Chrome and Electron and in with Scheme, C, assembly, and maybe someday Forth.

Demos

Customizing Airbnb with a spreadsheet by Geoffrey Litt

At 3:10 in this demo video, I drag select multiple listings on a website, and bulk perform an action on them.

From our Community

Anders Hejlsberg on Modern Compiler Construction. By Anders Hejlsberg via Daniel

In this video Anders a great foundation of compiler construction by describing the traditional methodologies that have been used in the last 30 or so years. He then uses that foundation to describe modern tooling needs and how compilers have adapted to meet increasing demands.

--

An interesting Twitter thread on the preservation of digital art, including comment on how it hurts that digital artists can't fully manage the media they use. (Long and interesting Slack Thread). By Matt Popke via Konrad Hinsen

--

Programs are a prison: Rethinking the fundamental building blocks of computing interfaces. By djrobstep (Slack Thread via Shalabh Chaturvedi)

We often hear that Apple's ecosystem of apps (or Microsoft's, or Google's) are "walled gardens". But what about the individual applications themselves?

--

Arcan is a powerful development framework for creating virtually anything between user interfaces for specialised embedded applications all the way to full-blown standalone desktop environments. Boot splash screen? no problem. Custom Interface for your Home Automation Project? sure thing. Stream media processing? Of course. AWB "Desktop" concept ~5min video. By Bjorn Stahl via S.M Mukarram Nainar.

--

Interesting conversation on Slack about the positive benefits of accidental / incidental complexity.

--

This week on Slack, a fun prompt from Brandon Hudgeons (via Kartik Agaram):

You get to name an assertion the ___ Paradox (fill in your last name). What do you choose?

Come join Slack and start a new thread about your paradox!

--

Roam Research is looking for a Full Stack Engineer (Leaning Backend) by Conor White-Sullivan

Should love Clojure, be comfortable with some devops type work, and ideally have experience with Datomic and datalog.

Big points if you're familiar with the work of Doug Engelbart, Bret Victor, Michael Nielsen, Andy Matuschak, and Alan Kay.

SF preferred, but we'll consider remote.

--

Operon 0.5.0 is out, find it from https://operon.io (Java-binary and pdf-booklet) by OperonGuy (Slack Thread)

It is also the first public release and I'm hoping for feedback on the most rudimentary things; did you get the queries running (if you had a chance to try)? What was your initial impression on the language? Did you encounter anything illogical or that you could consider as possible design flaw?

I have not yet documented everything, so there's more to come on later releases. Also none of the components were yet released, so it is just the core that is out now. Love to hear back from you!

--

Summary of a paper: Paper; Didn't Read - Statecharts: A Visual Formalism For Complex Systems by instadeq

statecharts = state-diagrams + orthogonality + depth + broadcast-communication

--

Thomas Ballinger wrote some posts about "Observable for Jupyter Users".

A lively discussion in the Slack Thread

I'd be particularly interested in whether you think I'm identifying the differences in workflow in a digestible way. The goal is that these are tutorials, not marketing documents, if there's a difference. I guess they're marketing documents for programmers, not CEOs.

--

An article about Glamorous Toolkit describing what one rendering tree means and the doors it opens for creating new kinds of 2D interfaces: One rendering tree. Via Tudor Girba (Slack Thread)

Future of Coding Weekly 2020/02 Week 1

2024-04-10 10:02

Psychology of Programming Interest Group Call for Papers

The 31st Annual Meeting of the Psychology of Programming Interest Group will be hosted for the first time in North America, at OCAD University's Inclusive Design Research Centre in Toronto, Canada, during the week of July 29-31, 2020.

From our Community

Catalog of Visual Math Tools (Slack Thread)

--

Mike Travers joins our slack and introduces himself and his work. He worked at MIT MediaLab long time ago on Behave! an interesting block based visual language for simple agent programming, that was one of the ancestor of Scratch. He now works on visual programming based on Blockly to help scientist build queries to scientific data (see this presentation).

--

GopherCon Europe 2019: Ivan Daniluk - Rethinking Visual Programming Presentation. (Slack Thread) via Edward de Jong

Blog post: Rethinking Visual Programming with Go

--

Play: A new approach for creating better mobile apps via Achraf Kassioui (Slack Thread)

Play empowers you to design, build and launch better mobile products, in less time, with fewer barriers - all on your mobile device.

--

Mariano Guerra shared a video showing an educational prototype to produce HTML pages using Blockly to learn what HTML structure looks like without having to worry about syntax at first. The prototype is online (in Spanish) and its sources are on GitHub.

--

Jonathan Blow talking about his past, of course about games, but also about programming today, open source, C++, Rust, the future of programming, and many other issues people here will be interested in (and/or annoyed by his perspective ;-): On the Metal Podcast: Jonathan Blow (Slack Thread) via Stefan Lesser

--

Algojammer is an experimental, proof-of-concept code editor for writing algorithms in Python. (Slack Thread) via Shalabh Chaturvedi

--

Internship Opportunities: Designing for spreadsheets and programming languages at Microsoft Research in Cambridge. via Daniel Garcia

Future of Coding Weekly 2024/04 Week 2

2024-04-07 23:14

๐Ÿ”ฎ Towards a modern Web stack ๐ŸŽฅ ThinkyCon 2024 ๐Ÿ‘ท FoC Project Updates

Two Minute Week

๐Ÿ’ฌ Chris Maughan

๐Ÿงต conversation

A simple demo, trying to show how a pin-hole camera works. Not really how it works, but kind of. ๐Ÿ˜‰

The 'film' in the back of the camera is a 'flatland' view of the scene, upside down, of course....

๐ŸŽฅ balls demo

Our Work

๐Ÿ’ป resheet.dev: A notes-spreadsheet-hybrid for programmers via Daniel Krรผger

๐Ÿงต conversation

I'm currently building resheet.dev, a notion-spreadsheet-hybrid. Started because I often ran into limitations with Notion and with spreadsheets. In Notion I wanted to be able to just do some calculations (or even have some embedded spreadsheet). Spreadsheets are nice, but I always ran into limitations. I always thought these could easily be overcome by having a more feature-complete programming language. Because I previously failed very hard by being too ambitious, I tried to keep this project simple. ReSheet runs JavaScript with React because of the vast ecosystem and wide adoption.

It was important to me that it's core is simple and extensible: Everything revolves around the concept of a "Block", which can be thought of like a cell in a spreadsheet. Blocks can be nested and you're able to write and then use your custom Block completely in ReSheet itself. As ReSheet itself is just one big Block you can embed ReSheet in itself.

Maybe sometime in the future I'll get to work on a Block for visual and interactive programming, but currently I'm trying to get it reliably working and useful in the current state.

I'd love to hear your feedback and to answer any questions! (Documentation is still lacking. Currently working on adding some example documents (in ReSheet) to better show what's possible)

๐Ÿ“ Lattice now compiles to .NET IL โ€” John Austin via John Austin

๐Ÿงต conversation

I wrote up a blog post recently on Lattice, a high performance visual programming system aimed at Unity.

Thought you all might find it interesting!

๐Ÿ“ Lattice now compiles to .NET IL โ€” John Austin

Lattice is a high-performance visual scripting system targeting Unity ECS. Read more here . Iโ€™ve tried several times to write blog posts about Lattice, and each time Iโ€™ve gotten lost in the weeds. Itโ€™s hard to pick a point to start. So instead, Iโ€™ve resolved to just start writing โ€” quantity o

๐Ÿšฒ Projects related to Bicycle Computing via nichoth

๐Ÿงต conversation

Another day, another module

Devlog Together

๐Ÿ“œ Future of Coding Weekly 2020/01 Week 3 via Mariano Guerra

๐Ÿงต conversation

I got a simple idea to migrate the old newsletter posts to the "blog", here's the first one I have: newsletter.futureofcoding.org/posts/future-of-coding-weekly-202001-week-3

I noticed that all links go through tinyletter but they still seem to work, example: mail01.tinyletterapp.com/marianoguerra/future-of-coding-weekly-2020-01-week-3/161[โ€ฆ]youtube.com/watch?c=f8edef3a-2c5e-4af4-a34d-904e97c707cf

there's not enough information to recover them from url itself but since they are still working I should resolve them to the originals as fast as possible in case that service is turned off too ๐Ÿ˜•

Update: I wrote a script to replace all redirect urls to the original ones, the post above is updated

๐Ÿ’ฌ Ivan Reese

๐Ÿงต conversation

Today, I'm trying to get function signatures for all the std lib stuff in JSโ€ฆ at runtime. Current attempt is converting various d.ts files from the typescript package (like, say, es5.d.ts) into a JSON file with just the bits I need. If that fails, I might try parsing the official WebIDL files (that are used to generate these d.ts files โ€” at least, the dom ones).

If there's a much more obvious way to get this info, let me know. I basically just want something that, for a given function (eg: Array.prototype.splice), gives me some basic signature info (eg: 1-2 args with rest, first arg is called "index", optional second is called "delete", rest is "items"). If all else fails I'll just do .length on these functions, but I'd prefer to get names too.

๐ŸŽฅ Simple state machine with value slider for brightness control and image in code-flow-canvas via Maikel van de Lisdonk

๐Ÿงต conversation

Youtube Thumbnail

I've been fixing some bugs in the state-machine node-type in my visual programming system "code-flow-canvas" and also added a small media-library node-type which can be used by the show-image node-type.

The show-image node-type can be controlled by the state-machine together with some UI node-types (button and slider).

The show-image node-type also has an ability to change it's css and use flow parameters/variables (currently only the incoming value of a event/value special input-type.. I want to make this more generic in the near future so that you can send custom property-bags "over the wire" to other nodes).

The timeline slider doesn't work together nicely with the slider node-type yet, so I have to work on that further.

This example can be found on demo.codeflowcanvas.io in the "examples" drop down: "Simple state machine with image and brightness".

Thinking Together

๐Ÿ“ The origins of silicon valley via Paul Tarvydas

๐Ÿงต conversation

Silicon Valley vs. non-compete clauses. guitarvydas.github.io/2024/04/05/The-Origins-of-Silicon-Valley.html

๐Ÿ“ The origins of silicon valley

I attended this talk https://events.vtools.ieee.org/m/409693 by Paul Wesling in-person, yesterday.

Content

๐Ÿ“ Month of Future of Coding Past via Mariano Guerra

๐Ÿงต conversation

Following the ๐Ÿ’ฌ conversation here I decided to experiment with a "Month of Future of Coding Past".

Every week I will dump from tinyletter and re upload one month of the Future of Coding Newsletter and publish it as a message here, that way we can all go over past conversations and links and I have a reason and rhythm to make them available again.

A month re uploaded per week will allow me to catch up faster than "realtime" but still at a pace I can probably keep.

Here's the first edition, the first two newsletters I have in my email (January 2020):

๐Ÿ•น๏ธ free software and game development via Joe Nash

๐Ÿงต conversation

This article talks about โ€œLiving gamesโ€ and game engines that enable living games by i.e. having no separation between the editor and the runtime, and gets into some FoC territory I think yโ€™all will enjoy

๐Ÿ”ฎ Towards a modern Web stack via Ivan Reese

๐Ÿงต conversation

-> Towards a modern Web stack

Cool new take on the Extensible Web Manifesto, this one from Hixie (Acid2, Acid3, WHATWG, Pingback, Flutter, etc).

I love the breakdown โ€” Wasm, WebGPU, ARIA, and HID. I would build on that stack!

๐Ÿฆ Amelia Wattenberger ๐Ÿชท (@Wattenberger) on X via Christopher Shank

๐Ÿงต conversation

New music genre just dropped

๐Ÿฆ Amelia Wattenberger ๐Ÿชท (@Wattenberger) on X: I did some cutting-edge AI research into the best way to read code. 100% now part of my workflow:

"use client"; mongolian throat singing v3

๐Ÿ“‘ a list of random software engg ideas via Nilesh Trivedi

๐Ÿงต conversation

A couple of years ago, I noticed how Juan Benet (founder of IPFS) was keeping a list of random software engg ideas in a github repo as issues. Since then I too started keeping my own list of "RFH"s ("Request for Hacks") - similar to Request for Comments and Request for Startups - here: codeberg.org/nilesh/request-for-hacks/issues and recently made it public.

Posting ideas in a place where public discussion can take place seems like an excellent way to get open feedback or review. I encourage other programmers to do the same. Perhaps, /<username>/request-for-hacks can become a standard way to discover these. ๐Ÿ™‚

image.png

๐ŸŽฅ Alan Kay at MIT-EECS 1998 Fall Semester Colloquium Series (VPRI 834) via Oleksandr Kryvonos

๐Ÿงต conversation

Youtube Thumbnail

I watched older video by Alan Kay and now I want to give a Squeak another try

๐ŸŽฅ ThinkyCon 2024 - Day 1 via Ivan Reese

๐Ÿงต conversation

Youtube Thumbnail

There's a puzzle game conference called ThinkyCon that's currently running. Some of the talks are about editor tooling (like this one, about the dev tooling used for the game A Monster's Expedition), which feels roughly relevant to this community. But there's one talk in particular that I must draw your attention to because this is the internet and I need to earn points. The talk is called "Rewinding: moving time backwards in planning-based games". The first example they use of a game that ought to have rewind but doesn't is Opus Magnum, a game by Zachtronics that is the spiritual successor to SpaceChem. I'd argue that both of these games are visual programming environments, and that this talk is basically an argument that visual programming deserves the ability to rewind time.


๐Ÿ‘จ๐Ÿฝโ€๐Ÿ’ป By ๐Ÿ˜ @marianoguerra@hachyderm.io ๐Ÿฆ @warianoguerra

๐Ÿ’ฌ Not a member yet? Check the Future of Coding Community

โœ‰๏ธ Not subscribed yet? Subscribe to the Newsletter / Archive / RSS

๐ŸŽ™๏ธ Prefer podcasts? check the Future of Coding Podcast

Future of Coding Weekly 2020/01 Week 4

2024-04-03 15:42

Welcome! this week I'm trying a different format for entries, let me know if you notice and what you think about it :)

Demos

Instadeq No Code Data Science Update: Time Traveling Undo

New feature to undo changes by seeing the different states of an entity through time and picking one to restore.

From our Community

Steve Dekorte started a really interesting conversation about different ways of representing nothingness, and how that sometimes chaffs against type discipline. The conversation goes deep on data modelling and representation.

--

What's wrong with computational notebooks? by Austin Z. Henley (Slack Thread)

Computational notebooks, such as Jupyter Notebooks, Azure Notebooks, and Databricks, are wildly popular with data scientists. But as these notebooks are used for more and more complex tasks, data scientists run into more and more pain points. In this post I will very briefly summarize our method, findings, and some opportunities for tools.

This post is an informal summary of our recent CHI'20 paper, "What's Wrong with Computational Notebooks? Pain Points, Needs, and Design Opportunities". Check out the preprint for more details.

--

Fabrik - A Visual Programming Environment by Dan Ingalls and others (Slack Thread and Twitter Thread)

Fabrik is a visual programming environment - a kit of computational and user-interface components that can be "wired" together to build new components and useful applications. Fabrik diagrams utilize bidirectional dataflow connections as a shorthand for multiple paths of flow. Built on object-oriented foundations, Fabrik components can compute arbitrary objects as outputs. Music and animation can be programmed in this way and the user interface can even be extended by generating graphical structures that depend on other data. An interactive type system guards against meaningless connections. As with simple dataflow, each Fabrik component can be compiled into an object with access methods corresponding to each of the possible paths of data propagation.

--

Principles of Effective Research by Michael Nielsen has some good tips on conducting research. (Slack Thread)

A video by Philip Guo PG Vlog #___ - Nielsen's "Principles of Effective Research": what i find most relevant for students

--

Will the future of coding be statically, dynamically typed, both or neither? Alexis King thinks that No, dynamic type systems are not inherently more open. (Slack Thread)

Hillel Wayne has A Totally Polished and not-at-all half-baked Take on Static vs Dynamic Typing

--

Vladimir Gordeev shared a presentation he gave at his university: Towards efficient development tools (Slack Thread)

In presentation I tried to show the possibility and need for better tools. I did a short overview of existing FoC projects, talked a bit about project I am working on: a generic tree editor (structure editor) that doesn't tied up to any PL. I also talked about idea of designing PL by balancing Order and Chaos, ideas that I got from Jordan Peterson.

I believe that breakaway from text-based editing towards structure-based is an inevitable event for future of programming.

I also have some other ideas about programming languages that I would like to build on top of this tree editing platform, but it is not covered in presentation.

--

Branislav Selic - On the Engineering of Software-Based Systems for the 21 st Century (Slack Thread)

--

Learning from failed utopias of the recent past: Whatever Happened to the Semantic Web?

The web we have today is slowly becoming a glorified app store, just the easiest way among many to download software that communicates with distant servers using closed protocols and schemas, making it functionally identical to the software ecosystem that existed before the web. How did we get here? If the effort to build a Semantic Web had succeeded, would the web have looked different today? Or have there been so many forces working against a decentralized web for so long that the Semantic Web was always going to be stillborn?

--

How Figmaโ€™s multiplayer technology works

Our primary goal when designing our multiplayer system was for it to be no more complex than necessary to get the job done. A simpler system is easier to reason about which then makes it easier to implement, debug, test, and maintain. Since Figma isn't a text editor, we didn't need the power of OTs and could get away with something less complicated.

Figma's tech is instead inspired by something called CRDTs, which stands for Conflict-free Replicated Data Types. CRDTs refer to a collection of different data structures commonly used in distributed systems. All CRDTs satisfy certain mathematical properties which guarantee eventual consistency. If no more updates are made, eventually everyone accessing the data structure will see the same thing.

--

GUIdebook: Graphical User Interface gallery, curated videos, books, screenshots, articles, etc. that explore the history and evolution of the graphical user interface.

a website dedicated to preserving and showcasing Graphical User Interfaces, as well as various materials related to them.

Past Futures of Coding

Self: The Movie; an overview of the self programming language from 1995.

Another self presentation: Self and Self: Whys and Wherefores

(September 30, 2009) David Unger, from IBM Research, discusses how his experience in computer science has led him to the conclusion that even if your ideas succeed, the real legacy is the people.

Future of Coding Weekly 2020/01 Week 3

2024-04-03 11:12

Welcome! we are slightly over 150 members, let's try the 200 goal for next month :)

This time I introduced some simple separators between entries so it's clear where something ends and the next thing starts, let me know what you think.

Demos

Edward de Jong posted a new example showing the physical units of measurement feature in the Beads language, which tracks units at runtime (by storing the exponents of the component physical unit terms along with the value). A few languages have included physical units, but it is extremely rare to track the units at runtime.

For the heat transfer app, see https://github.com/magicmouse/beads-examples, for the SDK go to beadslang.com, for more information check beadslang.org (which is different from the previous one)

(Slack Conversation)

--

Mariano Guerra shared a demo: No Code Data Science Update: Drag & Drop Basket, Workspaces and Search (Slack Conversation)

Easier drag & drop of one or more items across long distances or across screens with the basket.

Workspaces can be created to work on different tasks and search used to navigate between them.

From our Community

Kartik Agaram Shared a really detailed spreadsheet: Future of Coding or Programming: Project Comparison

--

westoncb author of Lucidity introduced himself and presented another project: a slightly better known structure editor project called Tiled Text. (Slack Conversation)

--

nagle wrote a blog-post version of a paper submitted to PPIG (Psychology of Programming 2019) How Coda helps people overcome technology freeze

(Slack Conversation)

I'm sketching out a way to connect recent nervous system breakthroughs to programmable UI design, taking inspiration from how cognitive science breakthroughs anchored original UI design for the Alto.

Paper: Winter is Coding: On Programming & The Freeze Response

--

Michael Dubakov shared The 'No Code' Delusion (Slack Conversation)

Increasingly popular in the last couple of years, I think 2020 is going to be the year of โ€œno codeโ€: the movement that say you can write business logic and even entire applications without having the training of a software developer. I empathise with people doing this, and I think some of the โ€œno codeโ€ tools are great. But I also thing itโ€™s wrong at heart.

--

Mariano Guerra shared Compiling Dark to SQL

How do we make programs in Dark fast, while keeping complexity for developers really low?

We recently shipped a new Dark feature that compiles Dark code to SQL. This post goes into the nitty gritty details of how and why we built it.

--

Stefan Lesser shared Visual Calculations in the Shape Machine

What does it mean to have a new modeling software for design that allows scientists, engineers and designers to specify their actions by drawing shapes rather than by writing scripts? What is the difference between a shape you see and the way it is currently recorded in the database of your computer? What does it mean to program with shapes?

--

Ivan Reese shared Bret Victor's list of references

Didn't realize that Bret had directory listings enabled on his server, but it makes sense given other "open for people to view and tinker" things he's done. (My favourite: all his javascript is unminified so you can see how he implemented the dynamic examples in his essays.)

Future of Coding Weekly 2024/04 Week 1

2024-03-31 23:06

๐Ÿ“‘ algorithmicpattern.org ฮป Functions Everywhere, Only Once ๐ŸŽจ Infinite Canvas Gallery

Our Work

๐Ÿ“‘ algorithmicpattern.org via Alex McLean

๐Ÿงต conversation

I belatedly updated the algorithmic pattern blog with some recent activities algorithmicpattern.org

ฮป Functions Everywhere, Only Once: Writing Functions for the Everywhere Computer โ€“ Fission via Zeeshan Lakhani

๐Ÿงต conversation

A co-worker and I published a post / overview on some stuff weโ€™re working on. Itโ€™s about writing functions, compiling them to Wasm components, and combining them into a multi-language (Rust, Python, Javascript) workflow to run on the Everywhere Computer (a platform weโ€™ve developed at Fission): fission.codes/blog/functions-everywhere-only-once.

Writing functions for the Everywhere Computer in Rust, JavaScript, and Python, and compiling to Wasm components with WIT and WASI to run everywhere

Devlog Together

๐Ÿ’ฌ Mariano Guerra

๐Ÿงต conversation

Absolute/Relative Date Range UI

gd-dyndaterange.gif

progressive disclosure of complexity

click +/- to show/hide one extra offset field

ctrl+click to show/hide all

gd-range-more-less.gif

Thinking Together

๐ŸŽฅ The Better Parts. Douglas Crockford. JS Fest 2018 via Paul Tarvydas

๐Ÿงต conversation

Youtube Thumbnail

At about 54:20+, Crockford ends up saying that types cause bugs. What are examples of those kinds of bugs?

๐Ÿ’ฌ Justin Janes

๐Ÿงต conversation

Does anyone have any solid papers on interactions with operating systems using primarily hand gestures from cameras and projectors? I know this is very dynamicland but iโ€™m kinda tired of waiting for a system i can let the kids play with on the carpet.

๐Ÿข scratch.mit.edu/projects/605658 via William Taysom

๐Ÿงต conversation

My sister asked whether her middle-school son should pick the choice of a block programming language (like Scratch), JavaScript, or C# for a class he's in. I claimed that he'll learn the same fundamentals with blocks minus the frustration, tedium, tea ceremony, and incantations associated with the others. To prove that the block program has the real creativity and that moving to the others is practically automatable, I took may favorite Scratch program and had Chat translate it into JavaScript and C# chat.openai.com/share/02215935-c0b8-4fc9-9bf9-94f0b3fab613. The results seemed promising. Chat even made helpful observations:

Translating the same Scratch program to C# requires a different approach because C# is often used in desktop applications, and there's no direct equivalent of the Canvas API like in web technologies. However, you can use Windows Forms or WPF (Windows Presentation Foundation) for graphical applications in C#. Here, I'll provide an example using Windows Forms to create a simple drawing application that mimics the Scratch program's behavior.

If you check my conversation, you'll see I start asking what a "partial class" is having never heard the term. Chat parroted:

Using partial classes in this way provides flexibility. You can start with all your code in one file for simplicity. Then, if the class grows or you decide to use the designer, you can easily refactor the designer-generated code into its own file without changing the class's functionality. This approach keeps your custom code separate from the auto-generated code, making it easier to read and maintain.

I explained that every language, every tool has many such conventions. You learn the ones reverent to whatever you're doing right now, but learning them all is impossible. Instead the real skill is knowing that you don't know and being able to find out quickly. We're lucky that a these things are obscure, come up often, and are discussed on the Web. Thus LLMs are especially good at helping with dumb programming problems.

So why use the established languages besides Chat knowing them well? I thought of three reasons:

  • Expressivity โ€” Blocks will get a beginner pretty far, but you'll find the others have constructs that helpful for saying things that would be very hard with blocks. You won't appreciate scratch until you feel the itch.
  • Causal Powers โ€” The block system will let you do things in class you'll learn core ideas, but the blocks themselves won't work everywhere. JavaScript, on the other hand, works all over on the web, and C# has its own ecosystem. Often there's bridging, but also one or other language will be the most natural one for certain kinds of work.
  • Scale โ€” With big and medium sized programs being done with text, editors for wrangling it, and version control for keeping track of it exist. They can we weirdly powerful and janky. But you're liable to start having a hard time keeping track of blocks when it takes a dozen or more screens to fit them all.

Content

๐Ÿ“ Explorative Programming via Jeffrey Tao

๐Ÿงต conversation

๐Ÿš๐Ÿ“œ Josh Horowitz (@qualmist@assemblag.es) via Ivan Reese

๐Ÿงต conversation

I've heard some tell of what Joshua Horowitz is up to, and it's exciting. He's set his sights on fixing some of the issues with shell scripting โ€” and is looking for shell script users to interview:

๐Ÿ“ Josh Horowitz (@qualmist@assemblag.es)

Do you use shell scripts? :shell: :scroll: I'm conducting a study of how new tools might help. I'd love to talk with you about your shell experiences, and to run our new shell-scripting prototype by you. Interested? Heck yeah you are, here's a form (Novices & experts plz!)

๐ŸŽจ Infinite Canvas app gallery via Kartik Agaram

๐Ÿงต conversation

A new category: infinite canvas apps

infinitecanvas.tools/gallery

jsoncanvas.org

canvasprotocol.org

Explore infinite canvas tools that work the way we think


๐Ÿ‘จ๐Ÿฝโ€๐Ÿ’ป By ๐Ÿ˜ @marianoguerra@hachyderm.io ๐Ÿฆ @warianoguerra

๐Ÿ’ฌ Not a member yet? Check the Future of Coding Community

โœ‰๏ธ Not subscribed yet? Subscribe to the Newsletter / Archive / RSS

๐ŸŽ™๏ธ Prefer podcasts? check the Future of Coding Podcast

Future of Coding Weekly 2024/03 Week 4

2024-03-26 04:35

๐ŸŽผ Strudel REPL ๐ŸŽ™๏ธ a podcast about Hest ๐Ÿ•น๏ธ Playing with Code: Programming-Adjacent Games

Our Work

๐Ÿ•น๏ธ Playing with Code: Programming-Adjacent Games via Mariano Guerra

๐Ÿงต conversation

I collected and summarized the answers to my question about programming-adjacent games

๐Ÿ“„ Formula for generating distinct colors via Fredrik

๐Ÿงต conversation

For those situations where there's a need to automatically generate a unique color for each item in a set, I've figured out a formula that yields a good distribution based on the oklch color space. The attached document has some pretty infographics.

You can also see the source code of the document in Typst. Typst is already the future of programming.

๐Ÿ“„ Formula for generating distinct colors

๐Ÿ’ฌ Alex McLean

๐Ÿงต conversation

A tangible programming interface inspired by Andean khipu that we've been working on..

image.png

๐Ÿ’ป Slate - A Playground for Ideas via Mohit Karekar

๐Ÿงต conversation

I recently thought about combining natural language prompts in code notebooks interface because it seemed like a great use case to me. While working with data, a mixture of low-level capability of writing code and a high-level capability to write transformations or visualization instructions in natural language can be a great advantage. You can code when you want to, and completely skip and offload to an LLM by writing natural language instructions! The notebook executes code and prompts in a single context. Here's something you can try that implements this idea: try-slate.com

Also wrote some thoughts in a post here and a short video demo here.

Similar to traditional code notebooks like Jupyter Notebooks, but with a seamless integration with large-language models. Code when you want, skip when you don't. Export to code for portability.

Devlog Together

๐Ÿ’ฌ Mariano Guerra

๐Ÿงต conversation

Playing with UI filter predicates and optional values

gd-preds.gif

๐Ÿซฐ snap.love: a graph drawing tool via Kartik Agaram

๐Ÿงต conversation

Of all the apps I've built, perhaps my favorite is git.sr.ht/~akkartik/snap.love, my box and line drawing tool. I use it constantly -- including for work. I have a terrible short term memory, and now I make quick mindmaps for every little situation where a full-screen IDE on a huge monitor is too tiny to show all the parts of the codebase I care about right now.

I seldom mess with it, but today I modified it to show gridlines any time I drag things around. Should lead to neater maps!

๐ŸŽฅ snap gridlines

๐ŸŽ™๏ธ a podcast about Hest recently via Ivan Reese

๐Ÿงต conversation

I listened to a podcast about Hest recently (that I wasn't even on!), and have been thinking about taking another crack at it. I'm in a really different situation now, work/life wise, and am less inhibited by idealistic ambitions (like a bunch of NIH making me write my own 3D engine, or an obsession with conceptual purity forcing me to make everything bootstrapped). Now the biggest blocker is that I only have scraps of free time, and I've been using all of it to make music. Oh, how I miss being 20 and free from obligation!

๐ŸŽฅ Simple gradient using new form field control for arrays of objects via Maikel van de Lisdonk

๐Ÿงต conversation

Youtube Thumbnail

I've made a new form field control for arrays of objects. The properties that go into the object can be specified and in this example I've used it to implement a simple gradient color node. This example can be viewed at demo.codeflowcanvas.io/gl and then select "Moving circle" from the examples drop-down (I just noticed a weird bug on iOS.. so please just try on desktop).

Or it can be seen in action here .. nothing fancy at the moment, but I hope this allows for more fancy stuff in the near future.

Thinking Together

๐Ÿ“ horrors of manually bikeshedded plain-text languages via Fredrik

๐Ÿงต conversation

Is there any wisdom on how to best lay out code in a visual code browser ?

In my experience, code can be layed out either more horizontally on long lines or more vertically on short lines. This is controlled by setting a criterion for how many levels of nesting there can be before a node switches to a multiline layout. Long lines use space efficiently but tend to get hard to read. Short lines are easier to read, as tokens of similar significance line up in columns, but tend to take up much vertical space while leaving most of the horizontal space unused, as the average line is just one key and one value.

Shall I accept that code gets very vertical, and use the free horizontal space to add multilevel navigation panels, or is there a third option that is more horizontal while still easy to read? I can go really fancy and add tables and multiple columns, since I have full control over the layout function, but not all code is regular enough to fit a tabular format, and I cannot require the person editing the code to manually bikeshed it by editing whitespace or dragging around visual nodes. I've seen the horrors of manually bikeshedded plain-text languages and the horrors of node-based languages where the programmer makes a simple one node change and then has to drag all the nodes around so they line up. Are there any examples of interesting solutions to look at?

Here's how I mean a more horizontal layout:

[redacted]

Here's how I mean a more vertical layout:

[redacted]

In the more horizontal layout, I can barely parse the surprise structure at a glance, and I can barely see if I've made a mistake in editing. It takes a lot less screen space though.

๐Ÿ’ฌ Jacob Zimmerman

๐Ÿงต conversation

I want to build the backend of an as-bidirectional-as-possible spreadsheet/dataflow, does anyone have any favorite techniques?

Iโ€™d like to prefer a dataflow style solution over a constraint solver. Iโ€™ve been reading up on why this problem feels hard and its similarity to the โ€œview update problemโ€ in databases, Iโ€™m curious if thereโ€™s a widely accepted solution that Iโ€™m missing.

๐Ÿ“‘ Future of Coding or Programming: Project Comparison via Duncan Cragg

๐Ÿงต conversation

Hi folks, I've been fiddling around with the projects spreadsheet here: Future of Coding or Programming: Project Comparison

and I thought I'd take this opportunity to ask you all to ensure your entries are complete and up-to-date.

New users welcome: just add your project! Note: your project should ideally be at least primarily open source.

๐Ÿ“ scattered-thoughts.net/writing/miscellaneous-ideas via Jamie Brandon

๐Ÿงต conversation

Pondering some FoC-adjacent ideas, with the goal of finding a financially sustainable project that can fund more tentative adjacent work - scattered-thoughts.net/writing/miscellaneous-ideas / scattered-thoughts.net/writing/how-to-trade-software-for-small-money.

Less FoC-related, I mentioned in the bottom of that post that I'd love to help someone pick up the streaming system testing work that I started in scattered-thoughts.net/writing/internal-consistency-in-streaming-systems. It will be a real slog getting momentum, but there's potential to really raise the (incredibly low) bar for reliability and understand-ability in that niche.

Content

๐Ÿ“ Who will build new search engines for new personal AI agents? via Stefan Lesser

๐Ÿงต conversation

Some speculation by @Matt Webb about the not so far out future of AI agents and how we can/need to prepare for it.

In the other corner, some judgy comments about AIโ€™s Looming Reputation Crisis (scroll down to the middle to find that bit).

I read both this morning and I know these are different use cases, however they beautifully cover the whole optimism/pessimism spectrum on AI.

Where do people here fall on that spectrum? Are there use cases that are obviously good/bad, or does that depend onโ€ฆ wellโ€ฆ what? And are we going to outsource most of our lives soon to AI assistants while simultaneously drowning in mediocre generated bullsh*t trying to scam us?

Gosh, I miss the time of the early internet when I was excited about everything tech. Somehow I canโ€™t find back into that mindset these days. Can someone convince me that the future is going to be universally great, like it used to be 20 years ago?

๐Ÿ“ Informal Organizations: Iterating on Cooperative Ownership via Andreas S

๐Ÿงต conversation

In the spirit of our #thinking-together capitalism thread. I found informal.systems/2020/09/21/informal-owners i think this is an interesting example of how to change the bigger structure- capitalism (this time I spelled it out Stefan Lesser ๐Ÿ˜… ) by changing smaller structures I.e. companies to cooperatives.

๐Ÿ“ Informal Organizations: Iterating on Cooperative Ownership

Our mission at Informal Systems is not just about distributed systems, it&#39;s also about the organizations that grow along with them. Our vision is an open-source ecosystem of cooperatively owned and governed distributed organizations running on reliable distributed systems. To achieve this vision, we begin with ourselves, adopting a democratic structure that aims to rebalance the power dynamics between capital and labour towards something more sustainable and non-extractive; something that nurtures long term employment and real wealth creation through R&D, entrepreneurship, and innovation; something more like a Zebra than a Unicorn.

Music

๐ŸŽผ Strudel REPL via Alex McLean

๐Ÿงต conversation

Strudel now has inline visualisation strudel.cc/?dbk9t_AYAIc8

๐Ÿ“ Strudel REPL

Strudel is a music live coding environment for the browser, porting the TidalCycles pattern language to JavaScript.


๐Ÿ‘จ๐Ÿฝโ€๐Ÿ’ป By ๐Ÿ˜ @marianoguerra@hachyderm.io ๐Ÿฆ @warianoguerra

๐Ÿ’ฌ Not a member yet? Check the Future of Coding Community

โœ‰๏ธ Not subscribed yet? Subscribe to the Newsletter / Archive / RSS

๐ŸŽ™๏ธ Prefer podcasts? check the Future of Coding Podcast

Contents ยฉ 2024 Mariano Guerra - Powered by Nikola