Live data from Hacker News

The Unix-Haters Handbook (1994) [pdf]

web.mit.edu

261–270 of 316 posts

Re: The Unix-Haters Handbook (1994) [pdf]

#261

Earlier quoted context omitted.

I actually worked on a project that used NeWS (actually HyperNeWS) as a front end for a Lisp based AI system written in Common Lisp. HyperNeWS could do some neat things - e.g. you could draw a shape (any shape!) in the graphical editor and paste it as the shape of a window, all without writing any code. Edit: changed "uses" to "used" - was quite a long time ago!

I really miss HyperNeWS [1], which I worked on with Arthur van Hoff at the Turing Institute, and I used it to port SimCity to NeWS on Unix [2]. Arthur van Hoff (who developed HyperNeWS and other stuff like Java [3]) and I are working together again, this time at his 360° VR video camera company, JauntVR [4]! I'm developing a secret project called HyperJaunt, that I can't say anything about yet, but you can guess by t…

Postscript isn't a complex language. It's probably quite straightforward to translate it into Javascript and run it locally on a web browser, rendering into a canvas. With a websocket connection to the backend, it'd be possible to recreate NeWS and use it for traditional client/server Unix apps, but with an ordinary web browser instead of an X server.

I don't know whether this would be useful, mind, other than being a cool hack (which has value all of its own)... but it would be a very cool hack.

Is any of the NeWS source code available?

Re: The Unix-Haters Handbook (1994) [pdf]

#262
post #5

can anyone give a first-hand historical perspective on this, regarding what was going on and how this was seen in 1994?

Unix was very popular in the mid 90s amongst some. There were half a dozen RISC unix vendors each investing $100m a year on their unix platforms to drive billions in new business. This was seen as one of the few insider critiques worth reading. It was a bit over the top and rant-t but there was some good insight in there. It wasn't such a devastating critique that it really shifted peoples opinions about unix.

Re: The Unix-Haters Handbook (1994) [pdf]

#263
post #58

Earlier quoted context omitted.

Live modifications of OS code sounds like a recipe for disaster. Unless you are an expert that codes himself an OS before breakfast

Bear in mind that LispMs had well-designed tools for supporting this kind of development. For example, they had version control that tracked all changes everywhere at all times, even changes that were not saved in any file. Also bear in mind that they were designed by programmers for programmers. They were not intended for the general public.

> they had version control that tracked all changes everywhere at all times, even changes that were not saved in any file.

No. The file system did auto-versioning, so you could generally recover recent history of a file, but there was nothing that "tracked all changes everywhere".

Well, ZMacs (the editor) did have unbounded 'undo' functionality, and you could even select a function and undo changes to that particular function, even if those weren't the most recent changes to the file. Maybe that's what you have in mind.

Re: The Unix-Haters Handbook (1994) [pdf]

#264

Earlier quoted context omitted.

I really miss HyperNeWS [1], which I worked on with Arthur van Hoff at the Turing Institute, and I used it to port SimCity to NeWS on Unix [2]. Arthur van Hoff (who developed HyperNeWS and other stuff like Java [3]) and I are working together again, this time at his 360° VR video camera company, JauntVR [4]! I'm developing a secret project called HyperJaunt, that I can't say anything about yet, but you can guess by t…

Postscript isn't a complex language. It's probably quite straightforward to translate it into Javascript and run it locally on a web browser, rendering into a canvas. With a websocket connection to the backend, it'd be possible to recreate NeWS and use it for traditional client/server Unix apps, but with an ordinary web browser instead of an X server. I don't know whether this would be useful , mind, other than being…

Omar Rizwan has been developing a project called "dewdrop" [1] [2] to re-implement NeWS in the web browser, using canvas to render the graphics.

It's based on the WPS PostScript interpreter [3], which he's rewritten and extended in TypeScript.

He says: "It's _very_ incomplete (not many events, multi-canvas support unclear, no GUI toolkit, no network stuff), but a surprising amount of the core stuff is in, I think (cooperative multitasking including timer events, OOP, graphics). Thinking about where to go from here -- could start the GUI toolkit, or server/client stuff..."

A few years ago I started writing my own "SunDew" [4] [5] NeWS interpreter in JavaScript. It's not complete and doesn't have any graphics, but I've written some comments and stubbed out some classes that specify all the various NeWS data types and operators that would have to be supported.

But now that I have seen how much cleaner Omar's code is written in TypeScript, and how it elegantly takes advantage of TypeScript's asynchronous programming to implement NeWS light weight processes, I think it would be better to build on top of what he's done instead. But my code and the comments in it could at least help serve as a spec for the various types of NeWS objects and operators that are required.

There's still a lot of work to do, but it's certainly possible and would be really cool!

There are some nuances that need to be worked out where NeWS doesn't quite match up with JavaScript or standard PostScript.

Strings, arrays and dictionaries are references to shared object bodies, and arrays and strings of different lengths can share memory with sub-intervals.

References to shared object bodies on the stack and in other objects contain their own permission bits independent of the object body, so you can have read-only access from one reference, and writable or executable access from another reference.

And of course NeWS has magic dictionaries, which is a way of calling native code when you access dictionaries, which NeWS uses to implement fonts, canvases, processes, etc. [6]

There are also a lot of undocumented nuances in NeWS that would have to be reverse engineered or figured out by looking at the original source code.

[1] https://github.com/osnr/dewdrop

[2] http://dev.rsnous.com/dewdrop/executive/

[3] http://logand.com/sw/wps/

[4] http://donhopkins.com/home/sundew/sundew.js

[5] http://donhopkins.com/home/sundew/test.html (open the JavaScrip console to see the logs)

[6] http://www.donhopkins.com/drupal/node/97

Re: The Unix-Haters Handbook (1994) [pdf]

#265

I like to cover myself with some crazy question and think about them. For example, what would look like the thing that would make people go "oh this looks good enough to replace UNIX". Don't get me wrong, I am big fan of UNIX, but I hope I will be alive around the time(but I doubt that) when we will see some new thing which will make UNIX feel dated. Now, some of you might jump and say "Oh, but UNIX already feels dat…

Google's Fuschia OS project is intriguing. It's open source, but I haven't been able to find any whitepapers or conference talks about its design or Google's plans for it. The speculation is that they wanted an ultra-lightweight OS for future low-latency augmented-reality applications. ( https://news.ycombinator.com/item?id=12271354 )

I have a hard time understanding why augmented-reality applications need a different type of OS.

I get the low-latency part. But there're already OSs designed for low-latency.

Re: The Unix-Haters Handbook (1994) [pdf]

#266
post #102

Earlier quoted context omitted.

Than win32!? Are you serious? Xlib is pretty bad but win32 is absolute bonkers. Or are you saying the opposite?

Of course I am serious. I do UI coding since Amiga 500 days and never found so borked API, with more parameters and configuration structures than Xlib, without any support for printing or proper use of fonts. The amount of wasted hours of my life using xlsfonts.... And those bare bones widgets, yet another headache.

And yet Xlib ran happily on machines with 4MB of RAM and would only use 512K of that; mind you that was X11R3. I used to run this very config on Apollo Domain/OS machines in 1990.

Re: The Unix-Haters Handbook (1994) [pdf]

#267
post #239

Earlier quoted context omitted.

I've installed and played around with VMS on an emulator and even on my own VaxStation, but never used it in a production environment. I'm sure real world usage left a lot to be desired, but my impressions are that VMS as a product was well-rounded, feels complete as if there aren't a lot of loose ends. In contrast to the unix philosophy, VMS feels DESIGNED, as if the people working on it had a coherent idea of the w…

Which emulator did you use? Simh?

Not OP but I recently installed OpenVMS 7.3 on Simh following this guide [1], (ignoring the building Simh part) and it works like a charm.

[1] https://www.wherry.com/gadgets/retrocomputing/vax-simh.html

Re: The Unix-Haters Handbook (1994) [pdf]

#268
post #169
post #129

Earlier quoted context omitted.

- compile stuff statically on your own hw - base64encode it - paste the encoded text over ssh to a file - base64decode it - chmod +x the decoded file - … - profit

- Mount $HOME as noexec - Disable execution bit for all directories for home - If the UNIX variant allows it, jail/contain home for each user session - Punish users or their employer if a consulting firm severely that bypass IT regulations

> - Mount $HOME as noexec

/usr/bin/env $your_binary

Re: The Unix-Haters Handbook (1994) [pdf]

#269
post #226

Earlier quoted context omitted.

Have you tried the Windows Subsystem for Linux?

Not OP, but I'm genuinely interested in how this experience is. What do you think of it compared to using, say, iTerm2 on OSX? I've been thinking of switching back to a Windows PC since I haven't been very impressed by OSX in the last couple of years.

I've been using it since it's release to the fast insider ring and at work since it's release to the slow insider ring. It does everything I need to do. Build C++ with GCC or clang. ssh client works fine (have not tried ssh server, but supposedly supported). Python, Perl work fine. Have had some UI issues with the console, but those have been fixed on the fast ring.

The team behind WSL is also very responsive to issues reported at github.

Re: The Unix-Haters Handbook (1994) [pdf]

#270
post #268
post #169

Earlier quoted context omitted.

- Mount $HOME as noexec - Disable execution bit for all directories for home - If the UNIX variant allows it, jail/contain home for each user session - Punish users or their employer if a consulting firm severely that bypass IT regulations

> - Mount $HOME as noexec /usr/bin/env $your_binary

> If the UNIX variant allows it, jail/contain home for each user session
Post reply on HN