HNHacker News
TopNewBestAskShowJobs

elgertam

304 karma · joined April 24, 2018

https://github.com/elgertam
submissionscomments
elgertam··on Ohm – A library and language for building parsers, interpreters, compilers, etc.
> Is there some place STEPS fans can gather and gather our notes? There are archives of the FONC mailing list.

Maru development is documented on an active mailing list.[1] Ohm development is being coordinated through GitHub. I'd personally like to take the extant code from OMeta/JS and the JS implementation of Nile & Gezira, and modernize them.

Recently I've been wondering if there's enough interest for a Discord server or something. (In the spirit of STEPS, it'd be ideal to make a new collaborative thing that's really different than static text/audio/video on the web, but gotta start somewhere. :) ) Unfortunately, I have had other, higher-priority projects at the moment, so I have taken no initiative to try to build a community.

I will also say that in my opinion, it's not clear to many of the people who made this stuff how special it is. The only exception to that is Bret Victor, who actually is not well-understood, but even the banana pudding versions of his ideas are typically much better than the industry's.

> I'm an outsider and also never got Frank to work. I was waiting for the Nile/Gezira thesis to get a high level (but hopefully also some detailed) descriptions) of how they handled graphics. I vaguely remember getting parts of idst working but for each of these projects, there were always multiple versions lying around. Sometimes in odd places.

I've never gotten Frank to work, and I abandoned my attempts. I've seen it run, though. The name was fully truthful: it really is Frankenstein's monster.

I did get Nile + Gezira to work (albeit in a very crude way by printing numbers to the console rather than hooking it up to a frame buffer). That's how I met Dan. I don't want to betray any confidences with him, but there is ongoing work with Nile.

Here's Dan himself presenting a related language at Oracle Open World in a demo (around 25 mins in).[2] (Full disclosure: I worked on the demo.)

If it were me getting started, I would take a look at the JavaScript implementation of Nile in Dan's Nile repo on GitHub. It should more or less work out of the box, and there's an HTML file containing a fairly full subset of Gezira. The only problem is that the JS style is way out of date, and so it does some things that are heavily frowned upon today. It may not work with tools like Webpack.

The Maru-based Nile is trickier to get working, but it does work. The issue with Ian's Maru is that it's quite hard to reason about and lacks clear debugging tools. I've gotten both up and running. I seem to remember the Boehm GC was pivotal in getting Maru to bootstrap and then run Nile.

> I read Alex Warth's thesis and it's well written, in a way that makes it very easy to understand. So, of course, I had to implement my own OMeta variant [2].

Pymetaterp is cool! I agree: Warth's work on OMeta was impressive. In some ways, Ohm feels inferior to me, though they're both good tools with lots of potential.

OMeta is the one tool from STEPS that is basically simple to understand and use without having to do a bunch of code archaeology.

> Also, the VPRI website itself says it's shutting down (presumably folks moved to HARC at that time?).

VPRI closed because STEPS ended and because Alan had to retire at some point. HARC and/or CDG Labs continued the work, but then closed as well. (I don't know all of the details, but someone here suggested SAP withdrew funding. That would track with what I do know.)

Today, Ian is teaching in Japan, Dan is at Vianai, Alex is at (IIRC) Google, Yoshiki is at Croquet, Bret Victor is doing Dynamicland, Vi Hart is at Microsoft Research and then Alan is retired. There were quite a few others I'm missing, and they are all doing interesting things as well.

[1] https://groups.google.com/g/maru-dev

[2] https://www.oracle.com/openworld/on-demand.html?bcid=6092429...

elgertam··on Ohm – A library and language for building parsers, interpreters, compilers, etc.
The biggest artifact from STEPS was Frank, which was at the time bootstrapped using Squeak Smalltalk and included the work from Ian Piumarta (IDST/Maru, which was a fully bootstrapped LISP down to the metal), Dan Amelang (Nile, the graphics language, and Gezira, the 2.5D graphics library implemented in Nile, which both depended on Maru), Alex Warth (OMeta, which had some sort of relationship to Ian's work on Maru), Yoshiki Ohshima (a lot of the experimental things from Alan's demos of Frank were made by Yoshiki) and then several other names. I got close to getting Frank working, but honestly, I'm not sure it's worth it at this point. A lot of the work is 10-15 years old, and the last time I dove in, I ran into issues running 32-bit binaries. The individual components are more interesting and could be packaged together in some other way.

Since it was a research project, STEPS never quite achieved a cohesive, unified experience, but they proved that the individual components could be substantially minimized and the cost of developing them amortized over a large project like a full GUI environment. Nile and some of the applications of Maru, like a minimal but functioning TCP/IP stack that can be compiled to bare metal by virtue of being made in Maru, still fascinate me.

Work on Maru is ongoing, albeit run by a community (with some input from Ian), Nile has been somewhat reborn of late, Ohm is again under active development as the successor to OMeta and Alan is still around.

(Source: Dan is a friend and colleague, and I've met a few of the STEPS/VPRI people that way.)

elgertam··on Ohm – A library and language for building parsers, interpreters, compilers, etc.
They did use VCS, actually, but a lot of them used SVN and each person in the STEPS project was hosting their own code. Most of those servers have gone dark now, though you can find random ports over to GitHub (rarely with the version history). As far as I can tell, Dan Amelang and Alex Warth were the only two who used git or moved their code over to git.
elgertam··on Show HN: Cookiecutter Python Package Template with Pipenv
> There should be one-- and preferably only one --obvious way to do it.

So says Tim Peters in The Zen of Python. Unfortunately, this statement has never been true of the packaging ecosystem.

Today, tools like Pipenv, Pipsi, Pyenv and Cookiecutter (among others) make it easier than ever before to start a Python project, and are nearly as painless as similar tooling in Ruby and Node.

I have created (well, forked) a Cookiecutter template that helps new Python users get started with some of these tools from the beginning, while avoiding a lot of painful ritual that is most confusing to beginners or those who are not established Pythonistas.

I'm looking for feedback and for ways to make this more useful. And of course I'd never be displeased by the occasional PR or GitHub "star." Thanks!

← PreviousPage 3 of 3