
MapSCII – Braille and ASCII map renderer for the console - anc84
https://github.com/rastapasta/mapscii
======
flippmoke
As an author of the vector tile specification it is really exciting to see how
many different things people can do with the format. People are using data in
ways that constantly amaze myself and others. There is an ever growing number
of tools that have been built around the format and the future seems bright. I
really enjoyed your map, great job!

~~~
int_19h
I wish there was more stuff happening outside of the Node ecosystem. It feels
like _everything_ around vector tiles is written in Node these days; the only
exception I can think of off the top of my head is TileServer-PHP.

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.

~~~
drewda
If you're more comfortable with Python, have a look at Mapzen's set of tools
for working with MVT-formatted vector tiles:
[https://github.com/tilezen/](https://github.com/tilezen/)

(Disclosure: I'm a Mapzen staffer.)

~~~
int_19h
Perfect, thank you!

------
gfiorav
Don't listen, this thing is amazing. Kudos!

This is a wonderfully hacked project, exactly what I come to find in HACKER
news.

Incredible, kudos again!

~~~
rastapasta
Thanks and enjoy :)

~~~
emilioolivares
I completely agree this is awesome. Would be very interested in a detailed
write up of every detail behind this project. In the meantime, you can just
ride into the sunset knowing you've provided someone with their daily
inspiration.

------
mgkimsal
The demo video reminded me of WarGames :)

Made a short video using [https://github.com/Swordfish90/cool-retro-
term](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...

[http://vimeo.com/215864177](http://vimeo.com/215864177)

------
scandox
Brilliant project. Congratulations.

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?

~~~
Piskvorrr
Says on disconnect: "map data © OpenStreetMap contributors" :)

~~~
scandox
Yeah I don't know why but I just didn't see it referenced initially even
though it clearly is.

------
pimlottc
Click and drag mouse events over telnet? What black magic is this?!

~~~
rastapasta
new old school magic ;)
[http://www.xfree86.org/4.7.0/ctlseqs.html#Mouse%20Tracking](http://www.xfree86.org/4.7.0/ctlseqs.html#Mouse%20Tracking)

------
sneak
I thought for a minute it was somehow zooming in on my current location and
got freaked out, but then realized I'm just not that far from c-base at this
moment, heh. :)

~~~
scrollaway
Am I missing something? If I hold `a` it zooms in on my location almost down
to the street.

~~~
sneak
I meant in the demo video, which I didn't initially realize was asciinema.

------
MrZongle2
This is amazing.

I have to admit, though, that I felt _slightly_ disappointed that at the
highest zoom levels the map does not resemble Dwarf Fortress terrain. ;)

------
napsterbr
This is amazing, congratulations!

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 :)

------
philsnow
I don't know if you're interested in making the "telnet" experience better,
but something I've seen used elsewhere is a well-known/advertised SSH login.
At the very least you can enable compression on SSH connections. Compression
level 1 is nearly free in terms of cpu.

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.

~~~
microcolonel
Unfortunately, mosh is _very_ CPU intensive.

------
thriftwy
Very awesome!

Nitpick: If they want to make this Braille-useful, maybe instead of color-
coding terrain types different chars should be used.

~~~
averagewall
I don't think it's meant for blind people. Just that braille characters give
consistent looking high resolution dots.

------
alekratz
Why do people make terminal-based programs like this in NodeJS? I'm not trying
to be snarky - it's a legitimate question. This program is relatively
resource-intensive, and you're using NodeJS of all things to try to render
things in the terminal. It seems like the most counter-intuitive tool for the
job.

~~~
udp
_> It seems like the most counter-intuitive tool for the job._

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.

~~~
tomc1985
But perl, python, ruby, and even bash have filled that role for years.

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.

~~~
udp
_> disgust at seeing nodejs in play_

Do you know much about Hacker News? Justify your opinion or don't bring it
here.

------
jasonjayr

        telnet -E mapscii.me 
    

May help mouse support a bit more by disabling the Escape Character ...

------
agumonkey
I love this kind of stuff so much. Kudos.

I now need to find an orange plasma LCD and a trackball.

~~~
rastapasta
Its complelty self stylable (based on Mapbox Style definitions,
[https://www.mapbox.com/mapbox-gl-style-spec/](https://www.mapbox.com/mapbox-
gl-style-spec/)) - so no need for orange plasma, just set
[https://github.com/rastapasta/mapscii/blob/master/styles/dar...](https://github.com/rastapasta/mapscii/blob/master/styles/dark.json#L17)
to orange :D

~~~
agumonkey
Thanks, good to know they're not hardcoded but I need the real glow plasma

------
nickbail3y
Dang, this is super cool. Is there a way to specify a location, as in a city
or coordinates, and have it come up on the map?

~~~
rastapasta
Not yet, heaps of CLI parameters in the ToDo though - until then, clone the
repo and set it in
[https://github.com/rastapasta/mapscii/blob/master/src/Mapsci...](https://github.com/rastapasta/mapscii/blob/master/src/Mapscii.coffee#L36)
\- & thanks for the kudos ;)

------
mikegerwitz
A map as it should be! Very impressive hack, and very much needed: this is one
of the few things I couldn't do within the comfort of my terminal.

And it renders beautifully on my nearly 300-column-wide VTE. :)

------
Darthy
Did you add a blink command or something similar? On my terminal, the whole
screen is constantly showing then hiding then showing again in 1 second
intervals. Mac OS X 10.6.8, Terminal 2.1.2.

~~~
rastapasta
Very odd - na, that's a bug and not a feature, I'm just throwing color coded
Braille characters at you ;) Most likely related to your Terminal version,
[http://iterm2.com](http://iterm2.com) might help.

~~~
Darthy
Thanks, iterm2 did indeed work great!

------
fogleman
Amazing work. What inspired / motivated you to create this?

~~~
rastapasta
Came across the vector tile format, fell in love with it, used it for some
projects, idea came to mind -> wrote it as a side project :)

------
openasocket
Are ... are there emojis in all the commits??

~~~
rastapasta
no, not in the inital one :) kinda freestyle gitmojis
([http://gitmoji.carloscuesta.me](http://gitmoji.carloscuesta.me))

~~~
int_19h
I'm a bit confused about how this works. Can you just use markup like :zap: in
a commit message, and GitHub will automatically replace it with an emoji? Or
do you need to use some client-side scripts to handle that?

~~~
helb
> Can you just use markup like :zap: in a commit message, and GitHub will
> automatically replace it with an emoji?

Yes. GitLab does that too.

------
corybrown
Total old school videogame vibe, love it!

------
davidw
This is a really cool hack - thanks!

------
venture_lol
Great work! Inspiring hack!

------
HippoBaro
Now that's innovation.

------
alinspired
wow, emoji in github commit log..

------
mc__lovin__
this is so cool! congrats

