Who needs Google Maps and a browser when you can have interactive maps over SSH? Made with Rust, ratatui for terminal rendering on the backend, and xterm.js for terminal emulation on the front-end.
Yep this is only for stuff that we've crawled, so we can't detect all of your links. Because we have limited crawling resources, we rate-limit the crawling by domain so we don't get stuck in spider traps.
The current visualization only shows the current state of the crawl, so it won't know about all of the posts.
Yep this is only for stuff that we've crawled, so we can't detect all of your links. Because we have limited crawling resources, we rate-limit the crawling by domain so we don't get stuck in spider traps.
The current visualization only shows the current state of the crawl, so it won't know about all of the posts.
The hairball was much worse before. I used a lot of techniques from this paper [1] to make it look decent and a bunch of other heuristics based on other papers to make it look informative.
To get their topics? I used a basic louvain community detection algorithm, then put all the URLs into GPT with some few-shot prompting tricks to get it to output a particular topic. There's some heuristics to break up giant communities / combine small communities in there too.
Yeah I used cytoscape before but it didn't have the full customization that I wanted. Besides the performance issues, there were some problems I couldn't have solved without a custom renderer
- if many lines overlap, how should their colors blend?
- how to render circles so that they look nice both zoomed in / out
- how to avoid it looking like a hairball graph [1]
The nice thing about a personal project is that I can do whatever I like with no constraints, so I built one that's suited for this project and fits my tastes.
Not sure if something like this exists yet, but certainly do-able within my implementation.
For example, when choosing the best route, it penalizes every transfer by 120 seconds [1]. Therefore, a route that takes 2 minutes longer is equivalent to one transfer.
It'd be cool to have a tool where you can dynamically change these settings, and maybe even have different transfer penalties depending on if you're transferring inside a station vs walking outside.
Hey, thanks for the feedback! Greatly appreciated.
1. Yes I think "locking" makes sense. The entire action of viewing the paths to different destinations still needs to be polished up, especially for the mobile version as well. When I tried it before posting to HN it was instant (30ms) but now it seems to be extra laggy because the CPU is maxed. I just upgraded the server from 4 -> 16 cpus, so let's hope that does something haha.
2. 100%
3. Agree as well. I chose the easiest solution when developing (and I also develop on a large monitor so it's harder to notice the occlusion), but adding a hide toggle would certainly have been better.
Hahaha you discovered it! Originally I had waterloo because I study there, but I removed the city from the picker as I thought HN wouldn't know what Waterloo was :).
It even supports GO buses between Waterloo <-> GTA (unfortunately the max is 3 hours so you can't get everywhere just yet).
haha just kidding...I'm unsure of whether this is useful at all to transit companies, but one goal of this project is to make transit cool and help people understand their cities better.
I originally built this to help me find housing in Toronto, so deciding where to live could be another good use of this tool :)
Experienced this problem too in Toronto, when Google Maps wouldn't give transit + bike directions (which are often much faster than transit + walk). As you know the city more though these things become intuitive and Google Maps becomes less useful.
I started using Transit App more often for the mixed-modes routing. It even supports bike shares/scooters, so sometimes it suggests new routes based on scooter -> subway -> scooter which is much faster than bus -> subway -> bus.