βοΈ Not subscribed yet? Subscribe to the Newsletter
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
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
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
Absolute/Relative Date Range UI
progressive disclosure of complexity
click +/- to show/hide one extra offset field
ctrl+click to show/hide all
Thinking Together
π₯ The Better Parts. Douglas Crockford. JS Fest 2018 via Paul Tarvydas
At about 54:20+, Crockford ends up saying that types cause bugs. What are examples of those kinds of bugs?
π¬ Justin Janes
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
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
ππ Josh Horowitz (@qualmist@assemblag.es) via Ivan Reese
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
A new category: infinite canvas apps
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