Just thought I'd share something I've been working on. Basically it's a message relay that sends messages to others around you (given GPS coordinates from browser). Can choose range from "Range" pull down near top left (hover over options for approximate distances). Back end is written in Rust.
Coincidentally, years ago I had an idea for an app like this and I was going to call it "Bonfire". Aside from an inquiry with the owners of the bonfire.com domain name as to their interest in selling, I never went anywhere with the idea.
I also got a geolocation error even though I allowed location access. Could benefit from allowing the user to set a location as a fallback (or override). FF 72 (Ubuntu)
And also for "goddamn geoIP database thinks I'm Canadian even though I'm in the US" reasons.
True story, that one. Threw wrenches in a bunch of random things, like Newegg and Spotify. Apparently I wasn't the only one in my town with that issue.
This is a really cool idea, and I like it so far!! -- would you mind sharing what the different ranges are for each type? I see people chatting, but not sure how close they are to me... Within 10 miles radius? 100?
Edit: I'm on mobile, it seems like maybe it shows on desktop. I'd check but I'm laying in bed haha. Regardless, I really like this idea. Seems like a good way to maybe even meet my neighbors since I moved across the country recently
Thank you for reminding me to enable "Block new requests asking to access your location. This will prevent any websites not listed above from requesting permission to access your location. Blocking access to your location may break some website features." in my browser. I have no interest to share my current location with random websites. You may have an average: "The Netherlands", and that's it.
This is fun. In europe we have jodel which has a big userbase. The quality of discussion varies from location and it's fun to listen in what the locals are talking about.
I think the concept is neat, and this could be a worthwhile mode for some chat apps. I would get rid of the cute range names though and just tell users how many km this reaches.
I remember there was a project exactly like this in nReduce (a communal online incubator which sadly died quickly), a few years back.
I have experience with VHF radio emulation, so I wanted to ask what formula you're using for ranging?
I've found the haversine formula to be a robust compromise between accuracy and computational complexity, where on a typical day, I'm doing 5000-200000 haversine calculations a second.
With the advent of wifi on airplanes, I made a similar thing called "flight roulette". Inspiration was from chat roulette except instead of matching you to people randomly it would you to people directly below you on the ground as you flew over.
You might want to make 'message-text' have relative positioning, and 'range-display' absolutely positioned so 'ignition' or 'bonfire' isn't hovering over the text box.
This is cool! I had been thinking about creating something similar but I couldn't solve this problem:
Given a radius of 5 miles and three users in a geographic straight line, each 4 miles from each other. User 1 and user 2 are in the same radius, user 2 and three are in the same radius but user 1 and 3 are not in the same radius. Therefor user 1 and 3 will only see "half" the conversation (which would obviously be confusing). Do you solve for this problem? if so, how?
An idea of how to solve that problem: connect a user to the closest person if there is nobody in their radius. Use Disjoint Sets to sort of glom people together like pieces of cereal in milk. Everybody in the same glob can hear each other.
You could divide the country into segments, and a person gets to talk to everyone in their segment.
Obviously, you'd want smaller segments in areas with a high user density, and larger segments in areas with low user density.
You could generate segments with something like EM clustering. You probably wouldn't want continuous segment recalculation, or two people could be split mid-conversation when neither of them had moved.
80 comments
[ 3.7 ms ] story [ 157 ms ] threadBecause I almost certainly am at "Bonfire" range (there are maybe a few hundred people within 10km of me), yet I am seeing messages.
Firefox 72.0.2 on macOS Mojave 10.14.6
True story, that one. Threw wrenches in a bunch of random things, like Newegg and Spotify. Apparently I wasn't the only one in my town with that issue.
VPN users need this.
Edit: I'm on mobile, it seems like maybe it shows on desktop. I'd check but I'm laying in bed haha. Regardless, I really like this idea. Seems like a good way to maybe even meet my neighbors since I moved across the country recently
Also, my preferred username, <span style="float: right">~ry, causes some weird layout issues.
Oh boy... How long till someone loads a cryptominer on everyone's machine?
Also, for kicks: https://i.imgur.com/wHq8nrb.png
I remember there was a project exactly like this in nReduce (a communal online incubator which sadly died quickly), a few years back.
- Fix the layout on iOS Safari.
- Show the location of all current users (with opt out) on a globe. Users can see where the activity is and who is chatting where.
- Consider adding ignore to squelch certain users.
- Show past messages for your area.
- Add voice messages and autoplay (with opt out)
I've found the haversine formula to be a robust compromise between accuracy and computational complexity, where on a typical day, I'm doing 5000-200000 haversine calculations a second.
Given a radius of 5 miles and three users in a geographic straight line, each 4 miles from each other. User 1 and user 2 are in the same radius, user 2 and three are in the same radius but user 1 and 3 are not in the same radius. Therefor user 1 and 3 will only see "half" the conversation (which would obviously be confusing). Do you solve for this problem? if so, how?
Obviously, you'd want smaller segments in areas with a high user density, and larger segments in areas with low user density.
You could generate segments with something like EM clustering. You probably wouldn't want continuous segment recalculation, or two people could be split mid-conversation when neither of them had moved.
Even when I set the website permnissions for location to 'Allow'
Started getting only spam. Logged out.