skimdesk
The players who react to fake enemies self-identify as cheaters.
[1]: https://en.m.wikipedia.org/wiki/Rare_Exports:_A_Christmas_Ta...
Gossamer Albatross: Flight of Imagination (1979) [video]
I have been experimenting with similar idea myself. I was curious on how you handle instantiating the terminal state for new clients. Seems like you're storing a buffer [0] of past output, and replaying that?
[0] https://github.com/ekzhang/sshx/blob/91c82d46cde4d1ffa0ae34e...
Photoshop's Journey to the Web
Seems the source is overloaded or down.
ScaleSocket is a command line tool that lets you to wrap any STDIO capable script or binary, and serve it over websockets. Clients then connect to rooms (channels) which have an unique URL (wss://example.com/exampleroom). Connecting to a room spawns a new process of the wrapped script. Subsequent websocket connections to the same room share the process.
I built ScaleSocket in order to be able to build multiplayer back-ends quickly. In the past, I have been experimenting with websocketd [1] to stream a command line application to the browser. It seemed to me that using that approach, i.e. spawning a process and streaming it over websockets, would make a nifty back-end for browser based multiplayer games. ScaleSocket takes that one step further, by supporting shared backend processes.
It's a pleasant approach to get started with, since no lobby server or netcode is required for making a multiplayer backend. ScaleSocket has been my prototyping tool for multiplayer games for some time now.
The main difference is that while netcat or websocat will spawn a new process for each connecting client, ScaleSocket has a concept of rooms (channels). For a room, a process is spawned once only. All clients connecting to the same room are routed to the same process. This is not straight forward to do using the forementioned tools.
There's a small comparison page [2] where I have mentioned some alternative tools.
Show HN: ScaleSocket – Turn any script into a multiplayer WebSocket server
I wrote a short example [1] that exposes a TUI game on the web. In theory, hot-seat terminal games should be playable over the web with this.
My current challenge has been around refreshing the screen for late joiners. I need to save some of the ANSI escape history and replay it to clients, or ask the application to redraw itself. If anyone has ideas on how to approach this i'm all ears.
You can use two numbers separated by two dots to represent all numbers in the range.
For example, a search for
taki 100..200
gives me results for taki 183.This is useful when you can't remember an exact year or number.
I'm not sure it is any more clear than "It is probable that we will finish project x next week".
The point estimate is of little value unless we know how it was made. In this case "Jim just came up with a number".
Instead of talking of probability, an estimate of the number of days/hours/tasks would seem more grounded and easier to come up with.
In this case I'd go for, "We will finish project x after we have completed four days worth of work".
It's a hosted SaaS, so it's technically not a static-site generator, but it's an alternative to the above.
In practice, it's a lot more convoluted, but the basic principle is fascinating.
[0]: https://en.m.wikipedia.org/wiki/Vickrey%E2%80%93Clarke%E2%80...
It's early, but worth checking out.
[0]: https://doctave.com/
I wonder if combining an ebook with a contextual audio track (does this exist?), would work as well as combining an audiobook with visuals (a movie).
The players who react or interact with these hallucinations are likely cheating.
This flips the roles, and the hard task of correctly determining "human like" behaviour is now on the cheaters.
Writing
// @ts-check
/** @type {number} */
let x;
works very well for example in VSCode. The JSDoc comments are not as convenient as Typescript, but otherwise the experience is almost the same. The language server correctly keeps track of the types for me.[0]: https://www.typescriptlang.org/docs/handbook/intro-to-js-ts.... [1]: https://jsdoc.app/