MapSCII – Braille and ASCII map renderer for the console
github.com
github.com
And Node can be painful to work with on some platforms and in some circumstances, not to mention that JS is not everyone's favorite PL.
(Disclosure: I'm a Mapzen staffer.)
This is a wonderfully hacked project, exactly what I come to find in HACKER news.
Incredible, kudos again!
Awesome project.
Made a short video using https://github.com/Swordfish90/cool-retro-term to get an even more 70s/80s feel, but some of the characters don't come out too well...
What is the original source of the Tile Data? I'm totally ignorant on these topics and even after a pretty close look I can't see who provides the actual geographical data. Is this something that can be sourced from OpenStreetMap or something like that?
Thanks for the kudos ;)
Anyone who happened to be looking at your site from there would be impressed :)
On an unrelated note, I can read minds, think of a card... any card.
If it's the Seven of Hearts then send bitcoin to address number [REDACTED] before I tell everyone your first pet's name.
I have to admit, though, that I felt slightly disappointed that at the highest zoom levels the map does not resemble Dwarf Fortress terrain. ;)
It happens that I'm building a game which has a CLI and map integration. I was going to left the map out of the CLI client but now there's a good chance I'll use your library sometime in the future :)
For instance, try `ssh joshua@crawl.akrasiac.org`, and the password is again `joshua`.
If you're allowing anybody on the internet to SSH in, you could also use mosh (mosh.org) to make it feel even faster.
Nitpick: If they want to make this Braille-useful, maybe instead of color-coding terrain types different chars should be used.
It shouldn't really matter, Node is quite performant nowadays, but compared to a compiled language it might be slower, but easier to write up.
This project is a toy project, so why spend the time on optimizing ;)
Modern JavaScript VMs like V8 will often optimise functions treating types as static, then "deoptimise" in the rare case their type assumptions are broken.
[1] https://news.ycombinator.com/item?id=13774326 [2] https://en.wikipedia.org/wiki/SpiderMonkey
And that logic that's needed to test invariants is exactly the overhead we're talking about.
How so? What exactly do you think is more difficult about this in node than in other languages or frameworks? Is there something you would recommend as a better alternative?
As much as I like developing in C for fun, it's not a good pragmatic choice (unsafe, verbose, you don't need direct memory access to build an application like this one). Nor is bash, unless you think archaic syntax, primitive control flow, and a lack of modern language features are good things. If you'd suggest something like Python, it's basically exactly the same as node in terms of how high level it is, but (anecdotally) the package ecosystem is much richer in node and npm is easier to use than pip.
It's almost like people think because JavaScript started in browsers it should stay there and any other use case is somehow wrong or a hack. But ECMAScript is an open scripting language standard and has absolutely nothing to do with the DOM, or alert()s, or onclicks.
I write a lot of Java and C++ for pragmatic, work-related reasons, but if I need to write a command line application quickly I'll always come back to node. It's just so damn fast to develop with, and nearly everything I need is one npm install away.
I'm also chiming in with a small amount of disgust at seeing nodejs in play, though at least this isn't an electron project.
Do you know much about Hacker News? Justify your opinion or don't bring it here.
Reading command line arguments and config files is also much faster/easier/saner/just-works than other, otherwise-better-for-the-task languages (to pick on a favorite: Go, at least the last time I looked at it, which was way too long ago)
Electron uses nodejs/v8 as a backend, with Blink/HTML/CSS rendering the UI - the latter introduces some of the well documented performance challenges. This appears to use nodejs/v8 as a backend with your terminal (of choice) rendering the UI.
Perhaps I'm completely misreading your question though.
telnet -E mapscii.me
May help mouse support a bit more by disabling the Escape Character ...I now need to find an orange plasma LCD and a trackball.
And it renders beautifully on my nearly 300-column-wide VTE. :)
10.6 is bordering on prehistoric.
EDIT: Whoops, the emojis aren't rendering in HN comments. Changed to textual descriptions...
Yes. GitLab does that too.