Hacker News new | past | comments | ask | show | jobs | submit login

I always wanted /dev/zero, which is used to mmap zeros into memory, to be more general and use the device minor number to define which byte gets mapped, so you could mknod /dev/seven with a minor number of 7, to provide an infinite source of beeps!



Unfortunately, device minor numbers don't go high enough to support /dev/U+1F4A9, which is an infinite stream of ...


Don't they have a special purpose USB keyboard with one big easy to press squishy sculpted and iconically colored button that generates just that character?


Autorepeat on a keyboard just can't compare the the computational power behind /dev/zero!


Plus a virtual memory system that provides crap on demand, and poopy on write!


You can always write a virtual keyboard and map it somewhere under /dev.


If you really want this and do not have to be bothered about portability, just write a kernel module and load it. It will be about 40-60 lines of code.


You can also open `<(yes '\007')` or something, or use `mkfifo` if you don't want to rely on bash.

Not as fun as a kernel module, though :-)


If I had my way you'd be able to define new kernel modules by downloading a few lines of PostScript. ;) Ok, JavaScript these days. But you know what I mean.


I think spectre killed any future attempt to run sandboxed untrusted code in a previleged domain.


postscript is the cutest language i have ever learnt. I'd love to be able to use it more.


It's essentially RPN Lisp (with dynamic binding, via the dictionary stack). NeWS had an OOP package that used the dict stack to implement a very Smalltalk-like object system with multiple inheritance, which could dynamically define methods and properties in objects and classes, etc.


May I ask if there are experimental systems today that take inspiration from NeWS? You've blogged about OpenLaszlo, but this too is now quite old (and dead).


Every line of JavaScript and JSON that I write takes inspiration from NeWS! But that's just me.

NeWS differs from the current technology stack in that it was all coherently designed at once by James Gosling and David Rosenthal, by taking several steps back and thinking deeply about all the different problems it was trying to solve together. So it's focused and expressed in one single language, instead of the incoherent fragmented Tower of Babel of many other ad-hoc languages that we're stuck with today.

I summarized the relationship of NeWS with modern technology in the wikipedia article:

https://en.wikipedia.org/wiki/NeWS

NeWS was architecturally similar to what is now called AJAX, except that NeWS coherently:

- used PostScript code instead of JavaScript for programming.

- used PostScript graphics instead of DHTML and CSS for rendering.

- used PostScript data instead of XML and JSON for data representation.

Here's an article I am in the process of writing about the most amazing thing ever done with NeWS, which was inspired by HyperCard:

https://medium.com/@donhopkins/hyperlook-nee-hypernews-nee-g...

>SimCity, Cellular Automata, and Happy Tool for HyperLook (nee HyperNeWS (nee GoodNeWS))

>HyperLook was like HyperCard for NeWS, with PostScript graphics and scripting plus networking. Here are three unique and wacky examples that plug together to show what HyperNeWS was all about, and where we could go in the future!

Another thing that REALLY inspires me, which goes a hell of a lot further than NeWS ever did, and is one of the best uses of JavaScript I've ever seen, is the Snap! visual programming language!

https://snap.berkeley.edu

It's the culmination of years of work by Brian Harvey and Jens Mönig and other Smalltalk and education experts. It benefits from their experience and expert understanding about constructionist education, Smalltalk, Scratch, E-Toys, Lisp, Logo, Star Logo, and many other excellent systems.

Snap! takes the best ideas, then freshly and coherently synthesizes them into a visual programming language that kids can use, but is also satisfying to professional programmers, with all the power of Scheme (lexical closures, special forms, macros, continuations, user defined functions and control structures), but deeply integrating and leveraging the web browser and the internet (JavaScript primitives, everything is a first class object, dynamically loaded extensions, etc).

Here's an excellent mind-blowing example by Ken Kahn of what's possible: teaching kids AI programming by integrating Snap! with existing JavaScript libraries and cloud services like AI, machine learning, speech synthesis and recognition, Arduino programming, etc:

AI extensions of Snap! for the eCraft2Learn project

https://ecraft2learn.github.io/ai/

>The eCraft2Learn project is developing a set of extensions to the Snap! programming language to enable children (and non-expert programmers) to build AI programs. You can use all the AI blocks after importing this file into Snap! or Snap4Arduino. Or you can see examples of using these blocks inside this Snap! project.

https://github.com/ecraft2learn/ai

http://lntrg.education.ox.ac.uk/presentation-of-ai-cloud-ser...


I am very glad I asked. Thank you, Don!




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: