The ReMarkable Streaming Tool v2: Elevating Remote Work Efficiency
blog.owulveryck.info
blog.owulveryck.info
My newly published article delves into the details of this revamped version, discussing its architecture, components, and the iterative journey of improving user experience. As a product manager, I gained unique insights into user perspectives, which drove me to simplify the tool's activation process.
This article is a deep dive into the technical aspects of the tool, exploring how I eliminated the need for a local service and optimized network consumption. If you're curious about DIY tech solutions, optimizing remote work setups, or simply exploring innovative projects, I invite you to explore the article.
EDIT: Ctrl-C and restart with ./goMarkableStream got it working more or less. Saving the below message if it helps anyone else
EDIT2: Awesome when it works - but getting quite a bit of spotty service. Still frequent `waiting for reMarkable screen` . SSH is showing everything normal, except for occasional:
2023/08/20 14:48:16 read /dev/input/event2: file already closed
2023/08/20 14:48:16 read /dev/input/event1: file already closed
I upgraded my reMarkable2 to 3.5.2.1807 (from ancient 2 something version)Unfortunately I am getting waiting for reMarkable screen after installation.
That is nothing is happening when I draw on reMarkable2 - in notebook, in sheets, on book.
On inspection ReMarkable2 is certainly serving html with canvas element
Both https://192.168.8.143:2001/ and https://10.11.99.1:2001/ work (after accepting unsafe SSH cert which is normal) and are serving html.
Tried on Chrome, Firefox, Brave
I installed it per github instructions.
From Windows via PuTTY through 10.11.99.1
EDIT3: Looks like limitation is one browser (and one IP address) per stream - normal considering the usage :). Still sometimes no matter what address and browser I try I get `waiting for reMarkable screen`
EDIT4: tried `nohup ./goMarkableStream &`, closed PuTTY and restarted client computer - all browsers giving `waiting for reMarkable screen`
How would I restart the stream? Inspecting https://10.11.99.1:2001/stream gives `too many requests` response.
Unfortunately per EDIT4, it looks like it is not possible to leave this service running on reMarkable2 until the next time.
Any way to reset without going into SSH again?
EDIT: looks like enabling USB on reMarkable2 got the stream working. Curious though why did the web server work at all then (possibly sharing of common wi-fi?)
FINAL_EDIT: I give up, there is no sense to this madness. Suddenly the stream starts working on same same https://10.11.99.1:2001/ where it was giving `waiting for reMarkable` canvas for last 15 minutes.
Possibly there is some sort of timeout for the old stream?
Thank you
It seems the timeout is about 15-20minutes (when a new tab or new browser starts working).
Adding & did work, I was able to go to a different computer attach USB cable and have https://10.11.99.1:2001/ work (without SSHing and restarting goMarkableStream).
I
To the flagged comment, HN isn’t littered with many thanks comments per article, a few ways to thank go a long way.
The only inconvenient of the approach is that the SuperNote is starting a small webserver and you basically use Firefox to access it. It is very responsive as one would expect, but this means that you need to have your laptop/computer on the same network as the SuperNote. In a home office setup, this is not an issue, but at work, your company policy may prevent this.
Anyway, be it RM2 or SuperNote, these tools are great for people who enjoy writing done ideas with pen and paper. The feeling is really different than doing it in an app or just text document. You can doodle in your notes :-)
(When buying , you have to ignore the GPL violations: it is completely Android and they are not releasing their OS sources)
That just doesn't make me feel confident about their products. If something goes wrong is there going to be customer support, or are they going to decide one day that I don't get that because I live in the US? If I order an Onyx Boox can I trust it will even be the same hardware as someone else gets or are they going to treat labeling requirements as optional as well?
People get bent out of shape about TikTok, but TikTok has never said, "we don't think we should have to obey legal requirements because we're mad at you." And it's so transparently just an excuse for them to do what they want, their anger about anti-China sentiment in the US is not preventing from selling to the US. Convenient that it only prevents them from obeying legal requirements. I don't see how I could trust a company with these kinds of business practices, they're advertising to me that the moment it's in their best interest they'll break the law and throw me under the bus.
Microsoft has been a horrible, anti competitor company built on unethical values yet I chose their Office 365 in my company. Many here use their products and take a salary from such a company.
Google has left the “don’t be evil” in the dust, with anti competitive measures and short changing employees. Hardly ethical, yet widely used in this crowd, and many here choose to draw a salary from them.
I hate the Castro brothers and what it does to Cuban people, but I do smoke a cigar now and then.
I hate Nestle, but have a Nespresso.
I hate Big Oil but drive an ICE as is only viable option.
And so on.
My point is both parts are right. Companies can un unethical or illegal things, we can stay away from their products out of principles, or cave in out of (a) having no principles or (b) being practical.
In reality I think we all cave in a bit (even Stallman and co), so virtue signaling for choosing the hard path sometimes feels hypocrital.
Because they are not releasing sources, it’s really hard to install alternative Android distributions on their devices.
Last I looked (which was 1-2 years ago), there were no alternative firmware for their devices.
Given the GPL violations in the wild, we should maybe try and not encourage them.
Edited for clarity
I can understand not being ideologically aligned with Stallman and Co.
I also agree that there must be lots of violations of the GPL out there. Software is often invisible.
That said, I don’t think there’s many big companies out there openly doing it. If get caught, they comply with the minimum effort possible, but they comply. I don’t see them being blatant or cavalier about it.
Two main reasons for me to avoid them:
1. The attitude makes them untrustworthy. If they are blatantly violating this, what else are they willing to ignore? They have obligations towards me as a consumer, for example. Will they respect those? Will they sale my data to others?
2. There’s no guarantee that they will continue being able to operate in my country. A judge could theoretically force them to close shop. So I’d rather not put my data on their product.
"You bought tickets to Avatar 2? Given the number of pirated copies online, I refuse to believe that anyone but the idiots among us are willing to pay for content."
More likely here following the law in this instance isn’t part of your value system, and neither is free/libre software being used on its authors’ terms, so you are (internally) free to decide to buy something even if it doesn’t adhere to the GPL. If I’m right about that, adherence to these things is a (maybe very-)nice-to-have rather than a core value, whereas the GP I think is coming from a place where one of those is a core value.
I wonder if absent the Linux kernel they be capable of offering a one of a kind product? It would be more accurate here to say that if they could keep their code proprietary that would be nice for them, but unfortunately the Linux kernel offers them a one of a kind base to build a product on and so they need to take the compromise and release their modifications as GPL if they want to be able to build a good product.
There is almost no noticeable lag while writing, and even while doing more complicated things like scrolling through my Kindle list, or resizing a block of writing, the screen keeps up very well.
Purely from my perspective, I find the smaller screen size (roughly A5 dimensions) of my Supernote a lot nicer than the more A4-proportioned Remarkable, but that's just a preference thing - I like writing in smaller notebooks in general. You can also get the Supernote in a size closer to the Remarkable if that's more what you want though.
Both are good, fluid, responsive, but slightly different
However, JPEG is more suitable for photography but the graphics displayed on the reMarkable are more illustration-like and to top it off, it's monochrome. I think another common image format (such as PNG), or even a crude RLE compression would be lighter on the CPU.
You are right, this is indeed why I choose JPEG in the first place.
But this is also why I chose a client/server apporach: the encoding was done on the client (my laptop) instead of the tablet. Threrefore the encoding did not impact the CPU. I made some profiling, most of the CPU was used by the transfer of the data over the wire. This is the reason of the compression.
Now, the CPU footprint is low.
Once you do that, you may obviate the need for any transcoding or conversion to MJPEG since you can just redraw the objects on the canvas.
Also, RM2 seems to have a built in Screen Share feature. Might be worth describing the differences (besides not needing their cloud subscription service).
I don’t use any jpeg compression anymore in this version
And my understanding is that the native client is transmitting the vector representation to the client and the client redraws it with the same algorithm. It is only doable if you know what algorithm they use. I did a small test to decode their format, but it may change more often than the format of the picture.
Does it provide you the answer? (thanks for the conversation)
This lets you compress up to 64 pixels into the space of no more than 2.
Thats how the rM VNC project does it, but I prefer the UX of your app not needing any client side software.
[0] https://support.remarkable.com/s/article/Does-reMarkable-off...
It is not about the device having some known software vulnerabilities in the usual sense when we hear about network-connected insecure device
I can’t imagine loosing such device that contains confidential data.
The difference between this and a piece of paper is that this could contain your whole stack/library. Not just a single piece of paper note.
What does a book e-reader have to do with the ReMarkable though? Why does that question still matter?
I'd be interested to read more about this.
In a glimpse:
The main issue was with the gRPC library. The support is very limited by now. Then the JPEG compression is slow in Go and it is CPU intensive. And finally, I even if I could generate the Mjpeg stream, how would I display it?
Then I though about the “canvas” mechanism, but I could not address the backend of the canvas without heavy copying between wasm and JS. And remember the size was 2.5Mb.
Anyway, I though that relying on wasm would make me implement a lot of image primitives that are natively accessible in JS (for example image rotation).
Hope that answers your question.
You satisfied my curiosity at the perfect level of detail, thank you very much for taking the time!
https://support.remarkable.com/s/article/Screen-Share
The solution in TFA seems to work on Linux, if you have a capable browser.
Surprisingly fun for combined with a boox note.
What kind of context am I missing?
The main pro for whiteboard tool is the collaborative feature which I will never be able to do.
(Sidenote: I’m using an iPad Pro with a Bellemond screen protector, and the paper-like feeling is very good)
I think it’s relative to your every day carry and every day use.
Appreciate the recommendation on the screen protector.
Having young kids wanting to touch a screen to interact with it might also be a plus for an eink device
It is packaged in the homebrew Toltec repo https://toltec-dev.org/
Which, FWIW, supports Apple Pencil and iPad quite well since 2022:
https://twitter.com/excalidraw/status/1491044642493992960
As well as a seemingly evergreen release of the Obsidian plugin that gets people Doge levels of Such Wow:
https://www.reddit.com/r/ObsidianMD/comments/s58d2o/just_dis...
Video walkthrough here:
https://github.com/zsviczian/obsidian-excalidraw-plugin
The team based real time collaboration in Excalidraw+ is just fantastic. Glad to have a way to compensate the author:
I used an iPad mini for a long while on zoom calls until I discovered something much better received - just use PowerPoint/Slides to draw boxes and text as needed together, the interface is familiar and people can pick up on it and move forward together.
Screen sharing (actually it doubles as a remote control as well) via https://github.com/Genymobile/scrcpy
And as they don't try to leverage proprietary formats, Syncthing for syncing books and notes. And NetGuard for a good measure, so it doesn't call home.
The device doesn’t feel open to me because it’s difficult to move data out of their walled garden.,
It’s a great device and could take away a great deal of scrolling or reading from other screens that are not as healthy to consume that on.
The context is ReMarkable has a sharing service that costs $2.99/month. And subscription software is generally noxious but subscriptions more or less necessary for a device especially so.
Great to see people work around it. I assume this web app would also work for streaming other devices.
I recommend checking out reStream: https://github.com/rien/reStream/ Using nixos, sharing your screen is as simple as nix run nixpkgs#restream
With this, from any device on the network, you can call the address of the remarkable and get the content.
[1] www.tldraw.com
The company seems to be not interested in adding encryption, so this is just a toy.