5 ms·
Author here. Surprised to see this here as I've been literally spending the last 2 weeks on a complete rewrite from scratch that actually layers REAL text over
by tombh 9y ago
Author here. Surprised to see this here as I've been literally spending the last 2 weeks on a complete rewrite from scratch that actually layers REAL text over the blocks. You can get an idea of my approach with this function: https://github.com/tombh/texttop/blob/webext-rewrite/webext/src/text_builder.js#L165 https://github.com/tombh/texttop/blob/webext-rewrite/webext/...
After the success of hitting the front page here last year, I really wanted to sit down and do this properly. So not only am I working on real text support (that you can of course copy and paste without even zooming). But I've removed the dependencies on ffmpeg, Xorg (for Firefox at least - Chrome strangely doesn't support webextensions in headless mode), docker AND it will work on all webextension-compatible browsers. It's going to be a single cross-platform, static, Go binary, that launches your preferred browser in the background.
Generally it's bad luck to talk about something before it's finished, but seeing as it's suddenly on the front page I wanted to let all those interested know that I'm making this 10 times better. And an early apology, because I'll definitely be posting the rewrite (and rename) here and hoping to get all your attention again.
- hrrsn 9y agoNo need to apologise - this is really creative! Best of luck :)
- Sean1708 9y agoJust FYI you copy-pasted your HN comment straight into your readme and it broke the link in your readme (because of the way HN formats links).
- tombh 9y agoThanks. Fixed.
- mncharity 9y agoAlso fyi, README.md contains a link "elinks" http://www.xteddy.org/elinks/ http://www.xteddy.org/elinks/ which is currently 404. http://www.xteddy.org/ http://www.xteddy.org/ has a link "Elinks" http://www.elinks.org/ http://www.elinks.org/ which is currently 403. Sigh. A ggled http://www.starshine.org/xteddy/thomas/elinks/ http://www.starshine.org/xteddy/thomas/elinks/ links to http://elinks.or.cz/ http://elinks.or.cz/ .
- agumonkey 9y agoFun project, I dreamed of this so many times. Happy to see it running
- dukoid 9y agoYou might get a slightly better resolution with the approach taken here: https://github.com/stefanhaustein/TerminalImageViewer https://github.com/stefanhaustein/TerminalImageViewer (= find best matching block graphics character for most prominent colors in a cell; there is a comparison to half blocks at the end).
- hultner 9y agoI had some problems with this software, lot's of segfaults. Some images works one time but segfaults on the second view while others renders half or nothing at all before I reach a segfault.
- dukoid 9y agoPlease file an issue at the github project, ideally with an image that always crashes.
- djsumdog 9y agoThat makes me think of the custom characters on the old Commodore64s that are often used for games that ran in text mode.
- AnIdiotOnTheNet 9y agoThis is still a technique used by DOS game programmers today to get access to the full CGA color set with graphics. See Paku Paku for an example: http://www.deathshadow.com/pakuPaku http://www.deathshadow.com/pakuPaku
- igravious 9y agoCool, TIV looks great! (Just compiled, ran, and tested it.) I thought [cacaview](https://github.com/cacalabs/libcaca https://github.com/cacalabs/libcaca) was the only terminal image viewer player in town with their attendant `cacaview' prog. I'd very much appreciate it if anyone here knows of any other libs or especially the sanest way to do this in either C/C++ or Ruby … It's for a terminal-based project I have in mind :)
- le-mark 9y agoIt's going to be a single cross-platform, static, Go binary, that launches your preferred browser in the background. This is where go really shines in my opinion (generics or not :P). Cross platform just works; I was stunned when I installed go on windows and was able to build third party libs, and build and run exe's on windows.
- jancsika 9y agoHave you thought about adding sound? Either something like Opus, or... You could do a decomposition of the audio signal and send a small array of {frequency, amplitude} pairs for each frame, then ramp to each new pair as they arrive. If you do this fast enough then you get just enough of the timbre of the original to make a listener think they are hearing the "right" thing for a video they already know. Even with a single oscillator you can get some interesting sounds this way. edit: syntax error
- tombh 9y agoI've thought about it a little, it seems really hard. But that's a really interesting idea you have there. Are there any docs or blog posts or something you can point me to?
- jancsika 9y agoI think the server part would be pretty straightforward. For example, using Jack you could port the system outs (or Firefox outs) into something like Pure Data and do the decomposition there into the frequency/amp pairs. From there you could either send to an ssh tunnel or feed into whatever process is running on the server that sends messages to the client. On the client side, I'm not so sure. Keeping with Pure Data, you could instantiate in the background and have it listen on a localhost port, then forward the pairs and resynthesize them. If you want I can make a demo patch to show you what this sounds like.
- tombh 9y agoInteresting. I've actually completely rewritten the app (see the webext-rewrite branch), so now the main code lives in a webextension (ie inside a tab). Researching, I can't unfortunately see any way to get the audio for a tab :( So we'd have to use your approach of connecting to the outside of Firefox somehow. So then the other thing is how to make it as convenient as possible to open up the audio connection. It's gonna have to be something like `ssh texttop -p1234` for the imagery and `texttop_audio_client.sh -p1235` for the audio? There's no way to combine them I don't think?