https://futureofcoding.org/ logo
Docs
Join the conversationJoin Slack
Channels
administrivia
announcements
bot-dark-forest
devlog-together
in-alberta
in-boston
in-germany
in-israel
in-london
in-nyc
in-ontario
in-seattle
in-sf
in-socal
introduce-yourself
linking-together
of-end-user-programming
of-functional-programming
of-graphics
of-logic-programming
of-music
present-company
random-encounters
reading-together
share-your-work
thinking-together
two-minute-week
wormholes
Powered by Linen
share-your-work
  • i

    Ivan Reese

    07/18/2022, 4:53 PM
    Future of Coding • Episode 57 Alan Kay & Adele Goldberg • Personal Dynamic Media In stark contrast to the dismal, overbearing weight of last episode's Augmenting Human Intellect, this episode features a paper that is playful, joyful, a thing of charm and wonder. I'm no longer lamenting the future we could have had but didn't (mostly), and Jimmy does all the heavy lifting in terms of bringing sharp analysis and thoughtful reflection despite my best efforts to derail him. As usual, I'll throw a little extra flavour in the thread. Enjoy! https://futureofcoding.org/episodes/057
    🙂 2
    🌶️ 4
    ❤️ 2
    k
    p
    +2
    • 5
    • 19
  • p

    Peter Saxton

    07/18/2022, 7:38 PM
    https://vimeo.com/730788967 I've made a universal app in my language, single program running across multiple machines with function scope defining all interaction between the two computers. A server function can simply return a function that will be the client app. All variables in scope on the server and used by the client are available on the client. But the client has no way to extend the environment it is sent so does not see any value it is not meant to use. This was enabled by implementing an interpreter, my language was compiled only before this. The server function captures the AST of the inner function and compiles it before sending to the client. Because the inner function is compiled it is still fast on the client. I don't know if there are any other languages that do this. But I am interested to see where this idea can take me.
    👍 1
  • k

    Kartik Agaram

    07/28/2022, 1:50 AM
    Step 2 in my grand plan for a mini empire of LÖVE apps: https://archive.org/details/akkartik-pensieve-2022-07-27 (video; 5 minutes) Not yet released, though. This is just a preview. (Previously: https://futureofcoding.slack.com/archives/CCL5VVBAN/p1656807435038059)
    j
    c
    o
    • 4
    • 9
  • c

    Chris Maughan

    07/28/2022, 12:22 PM
    Agreed.
    p
    j
    t
    • 4
    • 7
  • c

    Chris G

    08/01/2022, 3:43 PM
    Huge fan of this Scott My first "tool for thought" was opening excel and treating it as a whiteboard – I could just use the arrow keys to get to new locations – I'd have some pages with extra wide cells, some with extra narrow – still the best diary I've ever had Knotend already has great feel – the simple menus and default font seem just right – example videos are great – the undo is pretty killer – overall 🤩
    s
    v
    +3
    • 6
    • 16
  • a

    Andrew Reece

    04/27/2022, 1:01 AM
    I'm trying to get better about sharing details on WhiteBox, the live debugger for C/C++ I've been working on for the last few years. Here's the first of what should hopefully be a long series of daily posts on it 😀 I've talked a bit about it around FoC before, but I'm trying to make sure I cover it comprehensively. Do let me know if there's anything in particular you'd like to hear about it/its internals/the philosophy behind it. https://twitter.com/whitebox_sys/status/1519114889905819651
    👍 1
    🤘 3
    🤘🏽 1
    c
    i
    • 3
    • 10
  • p

    Peter Saxton

    08/04/2022, 11:52 AM
    What other things are similar to project. Could it be considered as an IDL. or at least the shared data model part. I'm currently using swagger as the root data model, but this is getting weird when we use it for messages not sent via http.
    t
    i
    +3
    • 6
    • 6
  • y

    yeT

    08/11/2022, 11:01 PM
    built a little thing with my friend Jake, https://glitch.com/~zoa-playground try pressing the letters on your keyboard, clicking on the little blocks (zoa), and connecting the Zoa together! I’d love to hear about what you find, code is up on glitch if you want to remix/make new zoa, be warned it’s pretty hacky p5 rn
    • 1
    • 1
  • r

    Ryan Robitaille

    08/14/2022, 1:48 AM

    https://www.youtube.com/watch?v=24GRiOCa1Vo▾

    Hey all! I want to present the first Alpha release of a project of mine that I've been working on for quite some time - Data Rabbit. It is a flow-based Clojure(script) live-coding eval/REPL canvas for "composable" visual exploration, experimentation, and data observability (yeah, that's a mouthful). Conceptually, it's a a remix of a number of different ideas. Think: Notebook + Whiteboard + Lighttable (with some Smalltalk, Hypercard, Bret Victor & 70s Flow-based Programming influences thrown in). ;) Basically, think of it like this... it allows the chaining (the "flow") of arbitrary ClojureScript eval & Clojure nREPL "blocks" that can also compose together into single (and recursive) views - with a heavy focus on visualizing the "data context" of the block's edges. Combine that with some handy "scrubbing" and editor eval features, and basic code generation helpers for common tasks - and I think it's pretty interesting (but hey, I'm biased). It's meant to run on your local machine and saves all flows as flat EDN files. However, the website (https://datarabbit.com) is running a special public version that ONLY has CLJS blocks & some fun small examples - but allows loading and saving flow files to/from your browser. So you can play around w/o downloading or running anything (no signing up or logging in - just start hacking). You won't have any of the cool CLJ nREPL block features, but you'll be able to get the general idea hopefully. The interface is fairly involved at first glance so please do watch the video before you dive in. I made one video explaining the website hosted version (this one here) where I run though the basic features & controls. There is a second video going up later this week where I go through every part of the self-hosted server version in detail, with a full slide deck, including some neat examples (dashboarding, CLJ nREPs, tech.ml.dataset, incanter, canvas drawing, etc). As I said - it's literally "Alpha 1 / Public Release 1" so there are bound to be many bugs, UI polish issues, and general wonkiness (although I'm fixing them as I encounter them). Thanks so much. Hope everyone is having a great weekend.
    i
    j
    +3
    • 6
    • 7
  • n

    Nilesh Trivedi

    08/15/2022, 4:49 AM
    My compound graph editing tool now has undo/redo and jump-to-node: https://grapherx.netlify.app/ Also came across another open-source tool which has quite a few features (except the parent-child relations between nodes which was crucial for me): https://prsm.uk/
    j
    • 2
    • 1
  • e

    Eric Normand

    08/25/2022, 4:01 PM
    I have two books in me at the moment. 1. Domain Modeling - A tutorial to learn the skills of analyzing domains and encoding them in software. 2. Leverage Machines - A series of compilers for languages that give you high leverage: FORTH, OOP, Lisp, and Logic, each built on the previous one. I don't think either will be super popular, but I think you may be interested in them.
    j
    • 2
    • 2
  • k

    Kartik Agaram

    08/27/2022, 4:37 PM
    The final 4-minute demo for the project I did over at Handmade Network's Wheel Reinvention Jam last week. https://handmade.network/p/283/bifold-text
    i
    c
    • 3
    • 5
  • b

    Breck Yunits

    08/31/2022, 6:15 AM
    RFC: https://breckyunits.com/how-the-public-domain-can-win.html
    k
    j
    +2
    • 5
    • 6
  • t

    Tyler Leonhardt

    09/01/2022, 4:26 PM
    I'm actually not so interested in the emoji's or colors. I think you are right that it makes things more "fun" though. I'm more focused on just seeing these things side-by-side in one space. I don't work with a ton of spreadsheets but I find the shifting between tabs as they get more complicated to be annoying. A lot of software has this property and usually falls back on the OS's window layout to deal with it. For example, in Google Sheets you can have multiple browser tabs for different pages or in IDEs you can open tabs for different code files. It seems like you can get a much better user experience with a layout engine focused on the matter at hand though. For a coding analogy this kinda reminds me of some of the original Light Table videos where functions were treated as the unit to display in a window rather than files (though I think that project eventually trended in a different direction and then became abandoned or slowed down significantly).
    j
    b
    +2
    • 5
    • 14
  • b

    Breck Yunits

    09/06/2022, 2:11 PM
    I'm chatting with @Jason Chan today about his new spreadsheet work (excited). His thread made me realize I hadn't made an announcement page for my spreadsheet lang/tool that we built at our wolrd in data called Explorer (free an open source, though getting your environment going is a pain, see my stripped down fork for what I use). Anyway, I just did "Add a language" to PLDB.com for Explorer (https://pldb.com/languages/explorer.html). If you've got a language you're working on, please add your language there too! The server that is running with write access is still unoptimized and pretty slow, so give it a second after clicking save. Or you can do things the old fashioned way and send a PR over GitHub. I think at some point soon, we're going to have a
    originCommunity
    or some keyword like that where you can list what communitie(s) helped you build/launch your language/tool. I expect when we look back at the data we'll see that some of the top new tools all shared a common origin of being at least partially developed in this slack community. Thanks @Ivan Reese and @stevekrouse!
  • p

    Pasha Sadri

    09/07/2022, 12:08 AM
    I’d like to share a work in progress — https://skymass.dev SkyMass is a cloud UI Server. The idea of a UI Server is to wrap everything related to the “frontend” of a typical frontend/backend modern app and offer it as a simple to use service. This includes an extensive UI component library and services like authentication, localization, theming etc. This approach removes massive amount of complexity (CSS, DOM, React, bundlers, hosting, etc…) and allows us to build modern apps by solely writing a backend. The backend deals with accessing app data (eg: databases, apis etc..), app logic and uses the UI Server through a simple client SDK. Checkout a sample todo list app (only ~80 SLoC) to get a better feel for SkyMass: Live Demo: https://skymass.dev/app/skymass-demo/neon-todolist Source: https://github.com/skymasshq/skymass-demo/blob/main/neon_todolist.mjs
    j
    • 2
    • 4
  • b

    Breck Yunits

    09/07/2022, 8:52 AM
    RFC: Sponsor a fact on PLDB (https://pldb.com/pages/sponsor-a-fact.html). A lot of people have been telling me to figure out a business model for PLDB, not just for PLDB's sake, but also so the model could be extended to other domains. This is the latest idea. Would love any feedback!
    a
    j
    • 3
    • 11
  • s

    stevekrouse

    09/08/2022, 1:33 PM
    👋 hey guys! I’ve been working on a new project & I’d love your feedback. Lmk if you get a chance to try it out, read the docs, make something cool, have thoughts. Really appreciate it! 💗 Val Town is a collaborative notebook for APIs, for building integrations between different APIs, exposing your own endpoints with a single click, etc. I think the FoC community will enjoy 1) the global namespace where you can @reference friend's values, 2) using a database to store functions and values side-by-side, and 3)
    console.email
    & lots of other features that "fall out of" trying to turn JavaScript into a cloud-native consumer product 😝 New demo video (demo val from the video)
    p
    y
    k
    • 4
    • 10
  • j

    Jan Ruzicka

    09/09/2022, 6:31 AM
    I made a CLI tool to expand tabs into aligned spaces, and vice versa infer the correct tabs from aligned spaces. It was a school project, so the documentation is in Czech (but code is in English 🙂), but feel free to contribute! I want this to actually be practical / at least inspire more practical tools, and to end the tabs-v-spaces debate with a compromise. The project is on https://github.com/ruza-net/columnator
  • j

    Jim Meyer

    09/10/2022, 5:35 PM
    It's 2022. The most popular coding tool that UX designers use to bring their design to life is the clipboard and IDE on a developer's computer (but not until the next sprint, when the hand-off ticket has been picked up). At Henosia, we believe that code should bend to a UX designer's will in real time. Here's an example of how we're bringing this vision to life in a React project that uses the Braid Design System from Seek:

    https://www.youtube.com/watch?v=_IxOcxTfEqw▾

    We've recently added support for Material Design (MUI), and will be fully supporting the use of a team's own coded design system as well. It's currently in closed Alpha, but you can sign up for early access if you'd like to get your hands on it 😒imple_smile:
    g
    k
    • 3
    • 6
  • p

    Pasha Sadri

    09/15/2022, 5:21 AM
    I’ve been adding more example SkyMass apps. This time it is the todo list app but backed by Firebase. The cool thing about this example is that it makes use of Firebase’s real time DB — If you open the app in multiple tabs, they will be kept in sync — all in ~100 SLoC Live Demo: https://skymass.dev/app/skymass-demo/firebase-todolist Source: https://github.com/skymasshq/skymass-demo/blob/main/firebase_todolist.mjs
  • m

    Mariano Guerra

    09/15/2022, 9:26 AM
    GLUI aka GlooEye is now GlooData Here's a demo:

    https://www.youtube.com/watch?v=bl7T7GYiQfU▾

    Let me know what you think!
    j
    j
    • 3
    • 3
  • m

    Mariano Guerra

    09/16/2022, 2:25 PM
    It looks great as usual, great summary video! one question, have you considered doing a VR version of this? that would be really fun 🙂
    f
    l
    • 3
    • 5
  • b

    Breck Yunits

    09/20/2022, 1:06 AM
    I just rewrote search on PLDB to be a lot faster and case insensitive. Lots of you folks appear on there 🙂 https://build.pldb.com/search?q=agaram
    p
    • 2
    • 2
  • i

    Ivan Reese

    09/20/2022, 3:28 PM
    Future of Coding • Episode 58 Richard P. Gabriel • Structure of a Programming Language Revolution 🔗 https://futureofcoding.org/episodes/058 Today we’re discussing the so-called “incommensurability” paper: The Structure of a Programming Language Revolution by Richard P. Gabriel. In the pre-show, Jimmy demands that Ivan come right out and explain himself, and so he does, to a certain extent at least. In the post-show, Jimmy draws such a thick line between programming and philosophy that it wouldn’t even look out of place on Groucho Marx’s face. Next episode, we will be covering the Worse is Better family of thought products, so take 15 minutes to read these three absolute bangers if you’d like to be ahead of the game: • The Rise of Worse is Better by Richard P. Gabriel • Worse is Better is Worse, definitely not by Richard P. Gabriel • Is Worse Really Better? by Richard P. Gabriel Also, note that I'm taking this episode as an opportunity to start a little community fundraiser for St. Jude Children's Research Hospital. They're doing unbelievable work to end childhood cancer, including offering free treatment and covering the travel, food, and housing costs of the families who come to St. Jude for care. Their research has helped raise the survival rate of childhood cancer from 20% to 80% over the past 50 years. If you'd like to support this fantastic cause, donate here to be part of the FoC campaign. Thank you.
    j
    w
    +3
    • 6
    • 14
  • b

    Breck Yunits

    09/29/2022, 11:21 AM
    This is awesome @Chidi Williams! So simple and powerful.
    g
    c
    j
    • 4
    • 3
  • p

    Peter Saxton

    10/03/2022, 7:27 PM
    This update covers the last couple of weeks of my language, structural editor, and now cluster manager. There are 4 sections in this video but the last one is probably most interesting where I discuss type safe hot code reloading over a cluster https://vimeo.com/756510102/e9b0e530fe
  • b

    Breck Yunits

    10/05/2022, 6:27 AM
    Latest version of our Scroll language came out today. To see it in action click view source on a post such as this one: https://breckyunits.com/cancer-and-copyright.html
  • b

    Breck Yunits

    10/09/2022, 6:04 PM
    I made a program in my tree language Ohayo that let's you visualize the scores of your recent HackerNews posts: https://v20.ohayo.computer/?filename=ohayo.ohayo&nodeBreakSymbol=%7E&edgeSymbol=_&data=hackernews.submissions_100_breck%7E_hidden%7E_rows.sortByReverse_score%7E__hidden%7E__vega.scatter_breck%27s_most_recent_100_submissions_to_news.ycombinator.com%7E___yColumn_score%7E___xColumn_time%7E__columns.keep_score_title_url%7E___hidden%7E___tables.basic
  • j

    Jack Rusher

    10/11/2022, 3:48 PM
    My talk from Strange Loop is out. There will soon be a mini-site with a transcript, references, and a few additional notes and corrections.

    https://www.youtube.com/watch?v=8Ab3ArE8W3s▾

    i
    p
    +8
    • 11
    • 17
Powered by Linen
Title
j

Jack Rusher

10/11/2022, 3:48 PM
My talk from Strange Loop is out. There will soon be a mini-site with a transcript, references, and a few additional notes and corrections.

https://www.youtube.com/watch?v=8Ab3ArE8W3s▾

i

ibdknox

10/11/2022, 4:49 PM
I loved the flippancy. Made it very entertaining 😄
p

Peter Saxton

10/11/2022, 6:13 PM
@Jack Rusher thanks for the talk. More engaging to most. Also I've moved from working on erlang to golang so might be sharing it at the office 🙂 I will be watching this many times more. I think I can probably use it as a shopping list of features to add to my language/editor.
Are they any systems that have done a particularly interesting job of having strong type checking of code that is "Repl'd" into a running system
j

Justin Deal

10/11/2022, 7:12 PM
Great talk. Makes me wish I had gone to Strange Loop now. 😒imple_smile:
j

Jack Rusher

10/11/2022, 8:43 PM
@Peter Saxton Haskell has
ghci
, but it dumps core surprisingly often (perhaps it isn't correct by construction?). OCaml's
utop
is better, and the implementors have recently suggested that the current state of the compiler admits further improvements to its interactivity. The team working on Hazel have told me that they'll be exploring live coding in an environment with typed holes in the near future. There are also Lisp dialects — most notably Shen — that support an interesting hybrid way of working; definitely worth checking it out.
k

Kartik Agaram

10/12/2022, 5:26 AM
As someone who has very much not yet internalized the enlightenment of "debuggability > correct by construction" but wants to, I'd like to make a tangential and simultaneously sadder point. With modern logging frameworks it's non-trivial to determine if a debug print is working like it should. You don't see a test print, do you have the right logging level, is it logging to the right sink, are the logs from the container making it out of the container, etc., etc. So not only are we still living in the mainframe+teletype era, we're actively moving in the wrong direction. At least when we programmed with teletypes on mainframes we didn't have to worry if a print was getting intercepted before it got on paper.
k

Konrad Hinsen

10/12/2022, 7:39 AM
@Kartik Agaram The paper discussed elsewhere (https://futureofcoding.slack.com/archives/C037X8XMFB3/p1665216779308789) provides one response to the question why (and when) "debuggability > correct by construction". Summary: quite often you don't understand your problem space well enough to do "correct by construction". Debugging is not only fixing bugs in the code, but also improving your understanding.
c

curious_reader

10/12/2022, 10:02 AM
@Jack Rusher interesting mention of propagators here. Are you aware of the "goblins" project of Christine Webber https://spritely.institute/goblins/ ?
Seems very intersting to see goblins at the foundation of spritely as a new experiment in the socially networked space
j

Jack Rusher

10/12/2022, 4:46 PM
@curious_reader yeah, it's cool 🙂
k

Kartik Agaram

10/13/2022, 12:37 AM
After a frustrating day in the office, mostly struggling to get my debugger to work, I have one possible answer to the question, "why are things not better than in the days of punch cards?" We don't know how to keep working things working over time, how to keep things from sucking with scale (more users, more use cases). Without that technology -- for the sorts of large applications one typically deals with in commercial settings -- it still seems worth being minimalist with the stack one depends on, that one's application sits on top of. Like, I'm not sure it's even realistic to expect progress in software tools. Moloch evolves, but in ways that are inscrutable to human values. (I'll still work on these ideas on the side. But only because I can control application size when I'm working by myself. Moloch ignores me cowering behind my tree stump.)
k

Konrad Hinsen

10/13/2022, 5:43 AM
Trying to reformulate @Kartik Agaram's insight in a less depressing way 😉 We have been building more and more complex software over the decades by piling up layer after layer. That makes the lower layers a kind of basic infrastructure that becomes impossible to evolve, because lots of people's uncoordinated decisions depend on it. Put differently: we still use terminals emulating punched cards for the same reasons that constrain cars to the width of a horse carriage (which is what defined the width of roads). You can avoid the inertia of the past in a small controlled environment (just you, or a small team). But evolving the mainstream to better infrastructure is a collective action problem - and those are well known to be hard.
w

wtaysom

10/13/2022, 7:27 AM
Correct, non-trivial constructions come with mastery of the domain — usually after a lot of debugging. Debugging lets you dodge bullets. Correctness is when don't need to. Whether it's even possible to shave off edge cases depends on the substance of the domain.
k

Konrad Hinsen

10/13/2022, 10:42 AM
A relevant slide from

Gerald Sussmans talk at Scheme'22▾

:
c

Chris Knott

10/19/2022, 2:28 PM
FYI this hit HN front page today https://news.ycombinator.com/item?id=33251799
s

Scott Antipa

10/19/2022, 6:38 PM
I really liked the part about dev vs prod being a bigger distinction than compile vs run time.
g

guitarvydas

10/24/2022, 11:02 AM
“Stop Writing Dead Code” sighting… https://cakelisp.handmade.network/blog/p/8570-an_argument_for_self-modifying_applications#26967
View count: 4