Axon (part of Taser International) | Seattle | Local - relo available
We're leading the charge in developing body cameras and other wearable computing devices for law enforcement. We have opportunities in backend, frontend, embedded systems, and other areas I can't talk about publicly.
When i read "Password Manager" on the iterm2 V3 announcement page i hoped to read about 1Password integration! PLEASE PLEASE George Nachman - i would donate (again) for iTerm2! :)
I have the same question... If clients choose the closest entry point to the overlay network, are they fully meshed internally?
It's an interesting problem any time you are routing in an overlay network. It's probably tricky enough selecting a single optimal connection point for two clients to connect to minimize the end-to-end latency between the clients.
The load balancing they describe in their article is only used for inbound requests, similar to a traditional HTTP LB setup. If I understand it correctly they don't implement the outgoing message delivery to the called user themselves, but instead use SMS or a Google Service to deliver push notifications.
So the problem of "how do I route request X to user Y" has to be solved by either Google or the Provider that delivers the short message. -- Actually, with their current setup they don't even need to know where a user is located geographically, since they simply choose a proxy server by asking Route53 for a list of close servers (I presume close to the calling user) and then use their connect-then-disconnect-hack to choose the "best" server from that list.
> Instead we decided to write our own minimal signaling protocol
> and use push notifications (at first SMS, then eventually GCM when
> it was introduced) in order to initiate calls.
So I imagine you could just stick the address of the switch that was chosen by the caller into the message that gets delivered to the called device when a call is initiated.
Obviously this doesn't solve the hard part of "how not to drop a call when your switch goes down mid-call" though.
The signaling is the first part of the article. The challenge there is avoiding your own persisted connection or polling mechanism. (The solution is to use someone else's persisted connection or polling!)
In the second part they're describing TURN which is a 3rd party packet relay which you bounce your packets through when you can't directly route between two endpoints (usually because of NAT). As in, the call has been signaled, the keys exchanged, and now I just need to get packets of audio between Alice and Bob every 20ms or so and how nice would it be if they could do that between themselves and my servers could stay out of it?!
Broken NAT (the need for TURN) is probably the thing that frustrates me most about the Internet. If any two endpoints could always simply and easily connect just through direct routing it makes a lot of applications lives much easier, and many applications possible which otherwise end up centralized.
This is just one case in point. Just like Skype, the IP isn't even really in the actual "product" but in the hacks it takes to make the product work in the reality of pathologically NAT'd networks.
Yes, this seems like a bunch of work to keep up and running and I agree that most of the meat of their solution is actually in Google's or Amazon's systems running the GeoDNS/push stuff. Hopefully IPv6 will fix it all ™.
However, until then, GCM [1] seems like a really good workaround. And I believe it is actually free of charge and available for both iOS and Android.
Just centralize it :-). Exactly the reason I think IPv6 won't fix it (arbitrary inbound will still be firewalled by upstream either as a ToS/AUP or as a "feature") because too much money is at stake for the centralized services.
I think solid decentralized service discovery and direct routing would be as pivotal as the Blockchain itself. One actually helps solve the other, e.g using an altcoin for anti-spam. But the direct routing (a better NAT hole punch) apparently is not possible without service provider cooperation.
Tor is probably the biggest reliable semi-centralized overlay network, I'm not sure if there are any better options for punching through NAT that don't involve running your own public relay or trusting a 3rd party. But I assume
Tor is much too slow to support realtime voice between an arbitrary client and hidden service?
Bitcoin miners faced a similar problem of needing to build a higher speed relay network to shuttle large blocks faster than the existing P2P relay network. In that case there was a group of P2P nodes configured to allow much larger number of peers combined with dedicated fast paths between themselves each located in high-speed hubs. I'm not sure if it was ever deployed.
Axon (part of Taser International) | Seattle | Local - relo available
We're leading the charge in developing body cameras and other wearable computing devices for law enforcement. We have opportunities in mobile, embedded systems, backend services, and other areas I can't talk about publicly.
We're leading the charge in developing body cameras and other wearable devices for law enforcement. We have opportunities in mobile, embedded systems, backend services, and other areas I can't talk about publicly.
During the compaction phase, when a new temp db is installed while the old is being compacted, isn't there a window where messages in the old temp db are not searchable?
If you need a really simple embeddable C++ webserver that supports websockets (and as the primary developer) can I suggest SeaSocks: https://github.com/mattgodbolt/seasocks
At Evidence.com we build technology for law enforcement that is dramatically changing the way police agencies operate. We created the Axon wearable camera system, and its accompanying cloud service Evidence.com, to record video from an officer's perspective and document exactly what occurred during each interaction with the public. We're already managing petabytes of digital evidence for law enforcement agencies, but there is an opportunity to have a much bigger impact on law enforcement with technology. Everything from wearable biometric devices, to predictive policing with big data, to better mobile devices and software for officers to use in the field.
Our tight-knit software team is based in Seattle, and is made up of engineers with a variety of backgrounds at companies like Facebook, Microsoft, and small startups.
Made this comment when I first heard of your service, and would like to know your company's perspective:
Any evidence you capture via this method should be immediately and freely available to any person involved in the incident with the police. If the cops pull me over for anything - I should have immediate access to all their recorded raw footage.
If your company is against this, then I have a very fundamental problem with the trustworthiness of your company.
Also - if any cop is wearing your equipment - then any person they interact with should have the reciprocal right to record the interaction as well.
We're leading the charge in developing body cameras and other wearable computing devices for law enforcement. We have opportunities in backend, frontend, embedded systems, and other areas I can't talk about publicly.
Here's a good writeup from Bloomberg on what we're up to: http://www.bloomberg.com/news/articles/2016-07-12/will-a-cam...
Get in touch if you'd like to learn more. Email is in my profile