unit
ideas
Our great sponsors
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
unit
-
Visual Node Graph with ImGui
https://github.com/samuelmtimbo/unit recently, which at least uses some kind of hinted auto-layout (besides the more propriety fancy)
I really want to see more graphical coding for years, but node/graph-based and blockly seem to be the only approaches that got sone traction so far. So I like this thread and it seems at the right place.
I'd wish to see
-
Unit (Visual Programming System) [video]
And https://unit.land for the demo
Interesting, and clearly a lot of work's gone into this (60,000 lines of Typescript), particularly the UI, which is impressive (if, sometimes, over the top). I've been developing a similar system (http://www.fmjlang.co.uk/fmj/tutorials/TOC.html) and it's interesting to note the similarities and differences.
Similarities: code as directed graphs (less obvious in FMJ); can only connect outputs to units of compatible type; if and wait (looping is handled differently); sticky values; sliders. These design decisions are practically forced on you, but are often absent in earlier visual dataflow languages (e.g. Prograph, LabVIEW).
Differences: (1) inputs are named in Unit, ordered in FMJ (though they're named in formulas and edges can be labelled). (2) I experimented with automatic code layout but found this was too slow and not always what I wanted. Well done for getting this to work. (3) FMJ is now fully homoiconic - this maybe isn't a priority for Unit.
The Unit design philosophy is explained in https://github.com/samuelmtimbo/unit/blob/main/src/docs/conc... . This doesn't mention earlier approaches (e.g. the Manchester Dataflow Computer, Prograph) and it seems to be based on vaguely similar ideas developed more recently (Morrison's Flow Based programming; possibly React and similar systems for web development - I'm unfamiliar with these).
I have a number of questions:
(1) How does the type system work? Is it Dependently typed, Hindley-Milner, or something more basic? (FMJ is Hindley-Milner, with dependent typing partially implemented). How are new types be defined?
(2) How is the visual representation stored? One criticism I faced was that people wanted a readable textual representation which would work well with existing version control systems, a problem I have now largely solved.
(3) How are runtime errors handled?
(4) Is recursion supported? (I assume yes, but I didn't see any examples.) What about macros?
(5) What does Unit compile to? (FMJ has an experimental compiler where programs are compiled by running their source without evaluating their inputs, output is Lisp.)
-
A personal history of visual programming environments (2021)
I enjoyed reading this. I knew of quartz composer but I never did anything with it.
I love visual tools and I think they are underutilized today. I cut my teeth in ~2005 with Houdini[0] and Fusion[1] which are both heavily graph / node based (and procedural).
Most recently I have been rekindling my love for visual programming and flow based programming and plan to spend some time in January and February doing more research around flow based programming for infrastructure management.
I plan to get this sort of info published on my website which I have neglected for half a decade or more but if you are interested in visual programming you might enjoy checking these out:
Unit from Samuel Timbó:
https://github.com/samuelmtimbo/unit
A video of me exploring what I figured out about it (while also learning to stream) https://www.youtube.com/watch?v=vwknTfGVDq8
Behave-Graph from Ben Houston:
https://github.com/bhouston/behave-graph
And the products I learned so long ago
[0] Houdini https://www.sidefx.com/products/houdini/
-
Ask HN: More “experimental“ UIs for editing/writing code?
https://github.com/samuelmtimbo/unit
- A code drawn in unit is simply a Directed Graph.
- Programming can be partially performed by Gesture and by Voice.
ideas
-
Ask HN: Anyone using or working on a life dashboard?
I wrote some notes about this of what I want in my "life engine":
https://github.com/samsquire/ideas#5-life-engine
I never got into the quantified self but I did want a portal (such as similar to the Yahoo! and Excite.com days) in the early 2000s. of personal details that I can take actions on.
Then a few years later I wrote about "life situational awareness apps"
I want my phone and desktop computer system try to have widgets for "accommodation", "travel", "food".
https://github.com/samsquire/ideas3#59-life-indicators---sit...
I did write a question generator feed dashboard written in Electron that let you snap in data collectors that would let you save records of stock purchases and facts about yourself such as your salary. The idea is that you could get advice based on what you answer.
https://github.com/samsquire/living-documents
https://github.com/samsquire/living-documents-library (the app repository)
Unfortunately it's probably not buildable and I forgot to take screenshots or videos.
-
It Took Me a Decade to Find the Perfect Personal Website Stack – Ghost+Fathom
My blogging/journalling setup is simple.
I just use GitHub. I just rely on the default repository view on GitHub.com
I create a README.md and add markdown headings to the bottom or to the top (bottom if its a journal, top if it's a blog) and then when I get to 100-800 I create a new repository and repeat.
https://github.com/samsquire/ideas (2013)
https://github.com/samsquire/ideas4
-
Ask HN: Could you show your personal blog here?
Thanks for posting this Ask HN question.
I journal ideas and thoughts about computers and software. I am interested in software architecture, parallelism, async, coroutines, database internals, programming language implementation, software design and the web.
https://github.com/samsquire/ideas (2013)
https://github.com/samsquire/ideas2
https://github.com/samsquire/ideas3
https://github.com/samsquire/ideas4 <-- this is recent but needs editing
https://github.com/samsquire/ideas5 <-- this is what I'm working on now
https://github.com/samsquire/startups
https://github.com/samsquire/blog <-- thoughts I want to write about, but incomplete
I use README.md on GitHub and create a heading at the bottom for each entry. I use Typora on Windows or the GitHub web interface to edit.
-
Why it is time to start thinking of games as databases
In 2013 I wrote about "game interfaces for work" where work interfaces should act like games. Real time strategy games make you feel empowered, if you could queue up real work in a units runqueue. Of course you'll have actions besides "build" and "attack" to map to the richness of the world.
https://github.com/samsquire/ideas#71-gaming-interfaces-for-...
Even the mouse is a database
- Universal Install Script
-
Dealing with Your Ideas
Remember that all science, mathematics, theology comes from understanding an idea. So ideas are valuable to society. If you think they're worthless, then I don't want your ideas, I want people in academia and industry to have good ideas and push society forward. Science, mathematics, theories, research, theology all are built on the shoulders of giants, with ideas that provide foundations of truth to push society forward.
The more ideas you have and the more you work on them the more you grow as a person. I also work on building software to put my ideas to the test.
I journal/blog all my computer and technology related ideas on GitHub out in the open.
I have published 700+ ideas on GitHub. I create a repository called "ideas" then I journal 100-400 ideas using markdown and then create a new repository and repeat. They're all in markdown and written as simple numbered markdown headings and a few one paragraph to a page of notes. They should be enough to understand the idea and do something with it. I reread my ideas repeatedly and I uncover new ideas from my existing ideas. Ideas should be built on and improved precept by precept.
For reference, they're about software design, software architecture, parallelism, multithreading, efficiency, growth, futurism, progress.
-
A fully open-source and end-to-end encrypted note taking alternative to Evernote
I am more likely to journal and blog if the friction to creating a post is as simple as opening a document and writing. The important part of journalling or note software is that you actually create notes. I did use Hetzner to run a Wordpress blog but it had an overhead of server expenses and keeping Wordpress up-to-date.
I don't want my data trapped in a proprietary system where it is difficult to export, so I use plaintext. I looked into Publii [1] but I prefer my current plaintext setup. Today I journal software ideas, computer ideas, startup ideas and community ideas on GitHub in the open, as README.md files. My journal is all public on GitHub at the following links. There are over 550+ journal entries, I am sure you shall enjoy them.
https://github.com/samsquire/ideas
https://github.com/samsquire/ideas2
https://github.com/samsquire/ideas3
https://github.com/samsquire/ideas4
-
Ask HN: More “experimental“ UIs for editing/writing code?
I wrote a living document interface. Nowadays it's probably similar to notion.
The idea was you could write code into it and see all the data structures of the code you wrote. There's a screencast and the code is available but broken. It's written in Angular 1. There was a cool feature where you could select different things on the screen for searching for an operation for them to merge them together.
https://camo.githubusercontent.com/3064a94d00812c1373c4eb3b2...
- Show HN: My Side Project Rocks – Share and discover side projects
-
Microgrants ($100–$500) for microprojects to make computing marginally better
https://github.com/samsquire/ideas4 (incomplete)
I've emailed them and I am interested in donating to see what interesting projects people shall come up with.
I am interested in distributed systems, parallelism, data structures, algorithms, database architecture. I like the idea of a compiler that exposes its pipeline as a website that people can write materialized views over. Static analysis and optimisation crowdsourced. Like compiler explorer. If you represent your mappings as algebra then you can find equivalent plans like a cost based optimiser in a database.
Ideas4 has data structure ideas.
What are some alternatives?
cs246e-notes - Object oriented programming notes
num - Num: number utilities for mathematics
hugotunius.se - My website/blog. Jekyll, S3, Cloudflare
vue-flow - A highly customizable Flowchart component for Vue 3. Features seamless zoom & pan 🔎, additional components like a Minimap 🗺 and utilities to interact with state and graph.
ideas2 - Another 85+ Ideas for Computing https://samsquire.github.io/ideas2/
qubes-thinkpad-x1-extreme-gen3 - Files and notes to install/run Qubes 4.1 on a ThinkPad X1 Extreme Gen3
gtoolkit - Glamorous Toolkit is the Moldable Development environment. It empowers you to make systems explainable through experiences tailored for each problem.
ideas4 - An Additional 100 Ideas for Computing https://samsquire.github.io/ideas4/
chatgpt-shell - ChatGPT and DALL-E Emacs shells + Org babel 🦄 + a shell maker for other providers
NeDB - The JavaScript Database, for Node.js, nw.js, electron and the browser
metadesk
Publii - The most intuitive Static Site CMS designed for SEO-optimized and privacy-focused websites.