Show HN: Give 7B people an instant physical address
github.com
github.com
Addresses need to be resilient. If I make a tiny mistake in my address, there should be enough redundant data to help fix the problem. Postal Codes are great for this, because if you get your code wrong, well, it'll probably be one nearby and the delivery service can figure it out. But with hashes? One letter off and you're doomed.
If you want to transmit your Xaddress by phone you will say "7150 MAGICAL PEARL - Maluku ,Indonesia" my avatar is a boot
By analogy, ECC memory can typically detect two bit errors but can only correct single bit errors. That's because the functionality used to detect two bit errors in ECC memory is insufficient to recover both bits.
Keeping a minimal edit distance between code words in the corpus would enable error detection and correction without the burden of sending another piece of info.
* someone knows how to use a map to a very high degree of precision (not true often)
* GPS is accurate enough, and this is a double whammy - on initial assignment of the GPS point (i.e. it's the GPS of their door/gate, not of their living room couch, and it was collected with enough precision) and on usage (i.e. the GPS antenna on a $30 smartphone)
* plenty of other issues
There are a couple startups trying to solve this beyond what3words mentioned in other comments - they'd suffer from many of the same issues I mention above. Some encourage people to put a placard outside their door/gate with the code to make last-mile arrival easier.
But a more successful approach from research I've done is what OkHi (http://okhi.com) is building - use a photo attached to GPS. From n>1000 tests, we found that the photo drastically decreases time over the alternative, even reducing average time to find the location by over 50% in the last 500m for some addresses.
(Full disclosure - I was worked on the addressing problem for the two years in Nairobi at OkHi, so I obviously believe in their solution or wouldn't have dedicated that much time there :)
"We want to physically connect the world with an address system that works.
OkHi is unlocking commerce through enhanced logistics, saving lives through improved emergency services and growing access to finance through better personal identification."
OK... how?
The OkHi approach is use your phone number as your universal key to share your address (with obvious privacy controls in place to control who can access it). The address itself is a GPS point + a photo - you can see an example at http://okhi.co/hq (best viewed on mobile - this is a vanity url, but you could very much imagine it eventually being something like okhi.co/+254/700111222).
The OkHi business model (similar to other companies in the space) is to allow consumers to share these addresses peer-to-peer free and charge per-use businesses who work in logistics or need address data (e.g. food delivery, ecommerce, emergency services, banks, postal services). They collect the base address data that users can choose where they live from through our own on-the-ground data collection or smartly crowdsourced data (surprisingly scalable).
Lots of promising progress, though obviously lots of work left to make it global. While it is easier to build a business controling the full stack, over time, the base addressing data could become open-sourced/ user address data stored in a public open db e.g. blockchain. I think the issues folks bring up of open-source benefits are very much in mind as this sort of system is built.
I guess it depends on usecase. An Amazon drone can't stop and ask for directions. Interesting problem space though.
And if none of them is obviously the thing I am looking for, the list starts to grow "maybe he meant across the road, down the street...".
Unfortunately, your website is terrible. There is no information about what it is or how it works without watching a video, and I'm not willing to do that.
Oakland is in the top 20 US cities by median household income. If it is "Third World", then essentially the whole world (including most of the United States) is "Third World".
> I wasn't born in the US but I find it odd that one of the criteria for somewhere to be considered third world seems to be "far away, not in USA".
The First/Second/Third World categorization originally referred to the US and its allies (First World), the USSR and its allies (Second World), and non-aligned (in the cold war) countries (Third World). The Third World were largely developing countries, the former included most economically advanced countries (though it also included developing countries), and eventually the terminology shifted and "First World" became synonymous in most uses with "Developed" and "Third World" with "developing" (and no one uses "Second World" at all...)
But, in any case, the labels apply to countries, and the US is pretty clearly not Third World country by either the original definition or the one that is more commonly used now.
That's an opinion I think? Take Brazil for example; the difference between middle class suburbs in Sao Paulo and a remote settlement in an Amazonian state straddle our concepts of First and Third World. In fact the middle classes in the southern cities pretty much don't ever go to the north precisely because they view it as the Third World.
For many people in American cities, their access to healthcare, education, sanitation is not different, or in fact worse, than it would be in cities more conventionally thought of as third world. America's lack of social safety net is causing it to be accurate to refer to parts of America as Third World.
Well, the original form was strictly for countries; if you want to use it to describe something that is neither on the level of analysis nor on the axis of variation of the original form, its not worth even using the terminology (the common modern form still uses the country unit of analysis, but is an economic rather than geopolitical axis.)
> Take Brazil for example; the difference between middle class suburbs in Sao Paulo and a remote settlement in an Amazonian state straddle our concepts of First and Third World.
Not really. Actually, have sharp geographic and class divides is typical of the developing world; having elite areas is not at all out of line of the traditional understanding of a developing (or "Third World") country.
Though a binary developing/developed or First/Third divide is problematic for other reasons -- Brazil (like Argentina, Mexico, and lots of other places) really ought to be viewed in a middle tier; its nearly as far above, by most meaures, a lot of the places more typical of the "Third World" as it is behind the places more typical of the "First World". (Perhaps we ought to resurrect "Second World" for this.)
> For many people in American cities, their access to healthcare, education, sanitation is not different, or in fact worse, than it would be in cities more conventionally thought of as third world.
To the extent one wants to discuss claims that that is the case, it may make sense to describe the particular American cities being like developing (or "Third") world cities with regard to the particular concerns, but that's different than describing them as part of the "Third World" which involves more than just those issues.
It took me a moment to realize that you're probably not referring to the Ethiopian food on Telegraph Ave.
The absence of those abilities is not a defining character of the Third World by any definition I'm familiar with.
Countries can be evaluated using the Human Development Index to determine their designation.
Those terms denies the possibility that such conditions may be present in developed countries, which was the point of the above criticisms.
what3words autosuggest API allows setting fixed bounds and focus point during a request to make it more obvious. https://docs.what3words.com/api/v2/#autosuggest-clip
Also only encoding lat/long makes it so you would not be able to address a single floor in a large building.
Floor / apartment number / suite number could just be tacked onto the end.
[0] http://stackoverflow.com/questions/6841333/why-is-subtractin...
I didn't think it was possible to come up with an idea worse than leap seconds but we did it guys!
Leap seconds aren't the problem, its the fact that we're stuck on a Babylonian style of timekeeping. Measuring time with completely uncorrelated rotations of objects is a ... fun idea. Or maybe the problem is that time is very hard to determine "naturally".
It breaks down once you need to synchronize distant events of course...
Length Street
City
Country
We need some sort of code attached to each address that can represent an area, so addresses can be organized quickly.
I vote for a 5 digit code, at least in the U.S.
USPS - Delivery Point: (1) A single mailbox or other place to which mail is delivered. A street address does not necessarily represent a single delivery point because a street address such as one for an apartment building may have several delivery points. (2) A specific set of digits between 00 and 99 assigned to every address that is combined with the ZIP+4 code to provide a unique identifier for every delivery address. The DP is encoded within the POSTNET or Intelligent Mail barcode.
Edit. As an aside, I think current Microsoft word still calculates it that way when you "bookmark" and address and insert a barcode field. At least it doesn't seem to be sending a query out to the USPS.
<?xml version="1.0" encoding="UTF-8"?>
<address street="Church Street">
<specifiers>
<key length=""/>
<value type="uint32" scale="nanolightseconds">5</value>
<city>
<![CDATA[
<?xml version="1.0" encoding="ISO-8859-15"?>
<name>Church City</name>
]]>
</city>
</specifiers>
</address>
Isn't that much more legible and understandable?(I hate XML. So much. This shouldn't be a valid document in any language.)
Please try not to make any false equivalences :)
Handing out GPS coordinates is a bit unwieldy, what if we made an algorithm that converted those to words that are easily memorable and can be spoken over the phone?
I think we're onto something!
In a hundred years, this will be off by 7 meters. I highly doubt that makes a huge difference in addressing a physical building.
>Also only encoding lat/long makes it so you would not be able to address a single floor in a large building.
As is the case with regular physical addresses.
I can easily find numeric coordinates on a map, without any special tables or computations.
I can immediately see if two numeric coordinates are close just by looking at the numbers.
Very many people understand how to use standard numeric coordinates.
Decoupling from that seems like it would be set to fail for human memory, since there would probably be nothing to reinforce the memory over time for your restaurant example.
It may be "better" and more optimized for a particular purpose: human memorization
It has a similar mnemonic strategy to other memorization techniques for numbers.[1] Apparently, there's something special about the language processing of the brain that makes it easier to remember words than numeric sequences. Phone-number-to-words (vanity phone #) is another example.[2][3]
For other tasks you mentioned such as mathematical calculation/comparison, or computer lookup in db indexes, the encoding is definitely not optimized for that. However, that's not its purpose.
[1]https://en.wikipedia.org/wiki/Mnemonic_major_system
[2]http://lifehacker.com/201752/spell-your-phone-number
[3]http://hello-operator.softwareadvice.com/want-memorable-toll...
Few things that I felt could be potential issues:
1) GPS coordinates are great for approximations for areas without clear markers, but in built up urban areas, they don't work so well. As a stranger to a new city, I can fumble around and ask someone, "Excuse, can you help me find 222 Hyde Street?" And they'll hopefully point me in the right direction, and I'll wander wander over until I hit Hyde Street and try heading north and south depending on the numbers.
Secondly, if we hash the geocode, then we lose that sense of relativity. I no longer know if "Pearl" is east or west of "Tiger" and don't know which direction to move in.
In addition, there's still the final mile (or rather 3 meter) issue. When I'm at a particular lat/long, am I at the right spot? Or is my GPS off, or did the person put the pin just slightly off? Using traditionally addressing, when I have a house number, I know it's the right house because it says so on the door.
2) The icons used for error-checking may not be universally known. For example, 83.png is a hat, but for someone unfamiliar with this, it's.. a horn? a bell? I know this was an MVP to show (and it's great!), but it is something to keep in mind.
Ultimately, I think this has potential for the delivery industry (before drivers get replaced by drones/driveless cars, of course). It's already more intuitive than the chiban-style addressing system in Japan [0]. However, similar to that system, we're still reliant on book/web site/app to decode the address. And so here, we're assuming people will readily have access to a smartphone with a reliable GPS.
[0] https://en.wikipedia.org/wiki/Japanese_addressing_system
If you make any changes to your word lists (in response to, say, all the comments here that say you should be omitting rude words), your old addresses won't be valid.
If someone gives me the address "Afraid Anus" (to pick an example someone found below), but I'm using a new version of your word list that omits "Anus," how am I supposed to know which version of the word lists I should be looking at?
It's all well and good to say that it will be forever backwards-compatible, but what if people find real flaws with the system?
(Another potential flaw: are homophones excluded? What if I'm giving the address over the phone?)
What if state or national borders change?
Or how about disputed areas? Which table should I go to to look up words for Kashmir? And is the choice of table an (unintended) political statement?
Let's say I am creating an address in Kashmir. I have the integer coordinates 32,76, so I look up the number in the Indian table and I get 04.
I then hand my address to someone else, who believes Kashmir is Pakistani. He looks up the Pakistani table, which includes the table for Azad Kashmir, and looks up the coordinate for 04, which is 33,73. Oops.
True, "Azad Kashmir" is currently considered to be a distinct region, but it is certainly within the bounds of credible that Pakistan officially renames that area to "Kashmir" alone, in an attempt to bolster their claim on the region.
Then you'd have two distinct areas named Kashmir in your tables, but two different interpretations of the geographical bounds of those regions in the minds of the people in Pakistan and India.
The advantage of some of the other systems is that they are dependent on nothing other than latitude and longitude.
----
(Edit: to be clear, I think this is a cool project, and any edge-cases that may be problematic here are much tinier than my original, incorrect concern about word-list versioning.)
The given notation is hard to decode inside the head, but if you can memorize it for 30 seconds then you can fire up an app to do the decoding.
Pictogram is clever idea for the checksum. Probably something that sticks to your head. Reminds me of the Lotus Notes login dialog [1], [2]
[1] https://blog.codinghorror.com/the-dramatic-password-reveal/ [2] http://www.tenable.com/pvs-plugins/1305
It's essentially a combination of an Identicon [1] (of sorts, but with actual clip-art) and hash wordlist, but transmitted together as a unit. This is a very good idea and exploits a lot better how humans actually memorize and recognize things.
It needs a better wordlist though. Better is subjective, but the current list is very anglocentric, not very distinctive, and laced with profanity, making it awkward for interactions between strangers.
Arguably, the desirable features of a geocode are:
[a] more memorizable/recognizable than coordinates
[b] you can easily tell whether two addresses are the same
[c] error-resistant, or at least error-detecting (if you can't correct the error, at least be able to tell there is an error so you know the whole thing is corrupt)
Great to see an open alternative to http://what3words.com (and I also love the icon as visual hash.)
>Designed to be used in low tech environments
What are supposed uses of encoded lattitude and longitude in "low tech environments", other than simple transfer?
Additionally:
* What if you live at an apartment?
* What if your address doesn't correspond to a fixed physical location, like an APO?
* Aren't the city and country redundant if you have a physical lat/long location?
Still, we need to look at how we send information to our fellow humans. Addresses are important and I'm glad folks like the OP are taking a closer look.
apartments need a z value as you already have a x and y - of course you need to account for height above sea level if you keep to the same type of measurement as lat and long (rather than just saying floor 2). It could be tricky for someone to sort that out for themselves.
I'd think a prefix on the address could indicate a special case that needs to be handled differently to fix APO etc.
I played with the demo, it seemed like the city/county operate as a checksum so you can verify the location you've decoded. Its not needed but nice to have
I hope that being opensource will help it to improve.
Now, for some low hanging fruits / pointers:
- $name is a global variable. Virtually unused in idiomatic Ruby.
- @name is an instance variable. So it's perfectly ok to use it... within a class.
- You should omit the 'then' after each if.
- I'd use find_words rather than busca_palabras.
- Except for rare edge cases, you can drop the .nil? from if my_var.nil?. If my_var is nil it will on its own make the condition false.
- I would use more spaces. 'a = 1' instead of 'a=1', 'b == 0' rather than 'b==0'.
- Use indentation consistently. 2 spaces.
- The else clause is indented at the same level as the leading if.
- Use && instead of 'and' in conditionals. Likewise || instead of 'or'. These short circuit the evaluation for you. So if the first argument is false && won't bother evaluating the second argument. Likewise, if the first argument is true || won't bother executing the second argument as it doesn't matter.
- Ruby is an Object-Oriented programming language. I would look into modules and classes to restructure the code in a less procedural way.
I realised when I was living in Japan recently how much I miss the UK postcode system. When I'm in the UK I can give anyone a short alphanumeric string and they can find me. A global coordinate system like this is really useful. I hope you can get some traction with it.
More serioulsy. I think there are curated word lists out there without swear words.
Jee, thanks.
ANUS CUFFLINK GRETNA EMPT WAIFS UNAS FUMOTO GUIDOS ASUN GOOFER GANTER ACKNOWLEDGMENTS YOCHEVED OVERCOMETH WIFIE USAN EDICIONES UNDERPOWERED CALIFIORNIA DESPRES
grin
8529 WANT FILTHY
8529 WANT EXPLOSIONS
The icon acting as a visual hash is a nice touch.
Edit: seems to work on the default location but not when I move the maps to Slovenia.
I also love the idea of an embeddable "Xaddress badge" (e.g. this image: http://bit.ly/2biI3YY) - unless of course I misunderstood what that is.
Maybe you could work the "legacy" address into that badge as well? Just thinking it would be useful for mentally placing an address - e.g., if you give me a raw GPS address, I have no idea where that is - but if you tell me it's somewhere on 5th avenue in manhattan, I know roughly where that is.
I have moved nearly every year since I left for college and I hate having to reset every address on every service I have. I'm sick of it.
This is for the UK. Dunno about elsewhere. Dunno about competitors in the UK.
I remember having this idea in the late 90s (while in London, moving around frequently) and did a net search and found that there was a provider of such a service even back then. Do not know if it the same crowd since way back then.
Of course all of this automated centralization will result in security holes, so that'll suck, especially if the federal government's fallback is the woefully insecure social security number.
https://moversguide.usps.com/icoa/move-info/icoa-main-flow.d...
do pretty much what you're looking for.
My understanding is that addresses in the US are usually derived from the municipal authority and by the time those trickle out to the various consumers (counties, states, feds, USPS, Census, and commercial consumers) it's a mess. There are many initiatives underway to clean this up (usually in the context of E-911 and putting a single point on every discrete unit in a building) but it's a massive task.
Every City has it's own standard (often the whim of whoever has the authority) and there are situations that will make you tear your hair out - the official address being 1000 Some Road but it's a multi family place so the building address is 1020 Some Road, or confusion over whether its 1000 W Some Road or 1000 Some Road W. My personal favourite was the guy who convinced USPS that his address was 1 Unicorn Road (changed for privacy) rather than XXXX Long Avenue. The City ended up making an exception for him. Then there are address like 10 1/2 12 1/2 Avenue.
And don't even get me started on how USPS often use a different City (my understanding is that this dates back to when the US was surveyed and the postal system was established. If your City didn't exist at this time then there is a good chance your USPS address is really the nearest large city).
Geocoding solves the issue if you don't care about spatial accuracy but even that has issues.
YOUR NAME
123 YOUR STREET
NOT-YOUR-TOWN, STATE ZIP
is not the name of any city at all, it's the name of the post office from which your mail is delivered. The post office will shuffle addresses between ZIP codes based on what makes for an efficient delivery route -- it has nothing to do with municipalities.The mismatch is especially common in areas which used to have dozens of post offices which have now been either shut down or downgraded to PO box-only offices, and all home delivery has been consolidated to a single post office for cost efficiency.
Municipalities assign the rest of the address (street name, house number etc) and are responsible for that mess.
Perhaps you could have QR or NFC stickers tied to a GUID. They get stuck to things and then scanned by different users. They would contribute facts based on the GUID to various public or private databases. Not particularly memorable, but super simple to setup.
Google Maps API error: RefererNotAllowedMapError
https://developers.google.com/maps/documentation/javascript/...
Your site URL to be authorized: http://xaddress.org/try?lng=en_.bb
@ js?key=AIzaSyAOUib5wvPGPSazgnTc-Mq415kxB1fNuu8&v=3.24&libraries=drawing,places&language=en:32(anonymous function)
@ common.js:52(anonymous function)
@ common.js:224d
@ common.js:46(anonymous function)
@ AuthenticationService.Authenticate?1shttp%3A%2F%2Fxaddress.org%2Ftry%3Flng%3Den&4sAIzaSyAOUib5wvPGP…:1
How do we solve it? I am not sure. Maybe somehow augmenting regular national postcodes with coordinates would work better than these (kinda like the 4-digit augmentation to US ZIP codes) – because those are things you use on a daily or atleast monthly basis, and remember. Something like 98002-MAGICAL PEARL would be more easily remembered, and not get rid of existing information.
Is it possible to reduce to addition and subtraction? I feel that multiplication and division is a high barrier for most.
Which makes it also clear why open location code is really smart (disclaimer: I'm not involved nor a google fan boy ;))
But e.g. the fact is lovely that you can combine OLC with a city name (or more address information) making the code shorter
I don't like the fact that Xaddress depends on words and uses an image for a visual hash.
That means the coordinate is in the 100km grid-square named 4QFJ. At 12,340m North and 56,780m East of the SW corner.
It's easy to reason about the coordinates if they're on the same square, and given how big squares are they usually will be. You do need to memorize some letters and numbers, but since the relationships between coordinates are clear, you should only need to memorize the least-significant digits for nearby locations.
Any physical addressing scheme that doesn't take routing into consideration is doomed to failure IMO.
Have you seen how addresses look like in other countries?
For example, in some countries, the address is broken down into several components:
City, District, Block, Street, Building
Zone Improvement Plan solved a problem and where would shipping be without it?
What3Words (the commercial equivalent) has only been around three years, and look at its usage:
https://en.wikipedia.org/wiki/What3words#Usage_and_awards
A single usage (Mongolia Post using it to deliver mail) is enough to discount the idea that it's a non-problem: http://mongolpost.mn/more/156
Not bad.
At best, it's just a "maybe easier to remember than GPS coordinates" system -- but remembering GPS coordinates with this level of precision is not really an insurmountable problem. I know its hard to remember, but up until a decade or so ago, people used to remember dozens of phone numbers, which requires a similar level of memorization.
It doesn't make addresses any easier to find than GPS coordinates -- you pretty much need a GPS. It doesn't necessarily guarantee unique addresses -- you get a different address if you pick different points on the same building or property.
It doesn't encode any routing information. So you're a delivery company asked to deliver a package to 123 Wascally Wabbit. You can convert that to a GPS coordinate easily enough, sure. But then what? Which delivery truck do you put the package on out of which delivery center? You can easily compute which delivery center is physically closest to an address, but that doesn't tell you if there is a natural feature like a river or mountain between the two points. On the other hand, USPS addresses encode the routing information -- the third line is the name of the post office that the delivery vehicle for that address departs from.
It doesn't encode any navigation information. How do you get to the address once you're in the general area? Which road gets you there? If you're a helicopter or a drone or a crow, you can just fly straight to the GPS coordinates, sure. But if you're walking or driving, as most people will be, you've just re-invented the sport of orienteering. This is the problem 911 emergency addresses were intended to solve -- you have a street name and a number for every address, so if you need to find an address in a hurry, you just navigate to the street (which is an easy amount of local knowledge to learn), and then you have a linear ordering of addresses so that you know when you've passed the address you're looking for.
It doesn't encode any service area type information. You want to order a pizza -- does the parlor deliver to 123 Wascally Wabbit? You don't know, and neither do they. You call 911 for a fire truck or ambulance -- are you served by the Newtown fire department, or the Newburgh fire department? Again, your emergency services need to plot your address on a map and then figure out whose region you're in. They can't just say, "Oh, you're in Plymouth, a suburb of Newburgh," and route your call appropriately.
(Essentially) saying "just use (masked) GPS coordinates" may technically assign addresses to all of those billions of places which aren't on named roads in recognized municipalities, but it doesn't solve it usefully.
You can integrate third party services to do just that.
But how does this help the 4 billion people currently without addresses? Do you think there are rich geographical datasets in places without addresses?
Even in places like the US where you do have rich datasets, it is still enormously inconvenient to not be able to do anything without them. The advantage of 911 & USPS street addresses isn't that they're easy to remember, it's that they encode a lot of useful information into them. (And even then, they don't include all useful information -- you typically need to know some ill-defined political or social boundaries, like the name of a neighborhood, to find out if someone delivers to your area or what the rate is for a taxi.)