Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Give 7B people an instant physical address (github.com/roberdam)
415 points by roberdam on Aug 10, 2016 | hide | past | favorite | 199 comments

Maybe I'm missing something but why does "Pearl" mean 8480 and "Magical" -6129? If that's a hash, I really dislike this, because A: humans can't do hashing in their heads, and B: get one letter wrong and suddenly you don't have the right address. This has also been my big opposition to what3word.

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.

From having worked on addressing in Nairobi, Kenya for the past two years, I can tell you the precision problem is worse than you think actually. You're making the assumption

* 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 :)

I am really interested in what you've learned because you obviously know a lot about a problem that's very physical and concreate. What is your approach or what will it be? However, you website is horrible at communicating any of that. I learned 4 billion people don't have addresses. OK great. Now what?

"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?

Fair feedback re: comms on website.

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 feel like this a communication and NLP problem, at least in regards to an address being directions to a given location. Like with a picture, an address such as "Next to Sal's general store" would be enough for most mailmen to find the location 100% of the time. Given it does not stand the test of time, but to my understanding this was the system in Ireland for a long time in small disparate communities. In that particular case the instruction would be something like "$COUNTY, $GRANDMOTHERS_NAME's house" in order to reach her grandson.

I guess it depends on usecase. An Amazon drone can't stop and ask for directions. Interesting problem space though.

You'd think "next to Sal's general store" would work, especially given how prevalent that approach is. In fact, through our research, even for folks working the same delivery area day after day, they consistently fail with these sorts of landmarks. I used to say I lived "next to the vegetable stand on XYZ Rd, across from ABC Apartments" - very visible, clear landmarks which turns out most drivers could never use successfully because they usually called me being lost. You could try NLP on it to then lookup in a db like OkHi's, but these text-based directions definitely proved to be suboptimal when consumed by a human drivers such that companies were actively seeking a better way for their deliveries (and, importantly, were even willing to pay).

When I get instructions like that, I often end up in trouble. Once I find Sal's general store, I find there is not just one or two, but three or four spots that could be intereted as "next to" it.

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...".

It isn't a third world or African problem. The capital city of Canada's newest territory (Iqaluit, capital of Nunavut) didn't have any street names until a few years ago. Buildings today are still identified by numbers alone, with a degree of local knowledge needed to find many locations.


Economists and 'social entrepreneurs' prefer the term developing world or developing countries in contrast to developed countries.

Countries can be evaluated using the Human Development Index to determine their designation.

>> developing world or developing countries

Those terms denies the possibility that such conditions may be present in developed countries, which was the point of the above criticisms.

Less economically developed country is another term that is commonly used.

It's a politically incorrect term but are you sure it's unreasonable to call Iqaluit "Third World"? I live in Oakland, California and I definitely think of it as a Third World city -- the utter poverty, homelessness with no end in sight, squalid encampments in the dirt in derelict land, the lack of help for anyone falling through the bottom of society. 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".

> I live in Oakland, California and I definitely think of it as a Third World city

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.

> the labels apply to countries

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.

> That's an opinion I think?

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.

Yes, on balance I think you win this debate. You are perhaps a little too strongly influenced by the Cold War origins of this term, when for a couple of decades now the term has been almost exclusively used to describe places with poorly developed infrastructure and institutions. Phrases like "third world conditions" are common and as we agree, a feature of modern developing nations is high spatial variance in such things. So, since the Cold War is history, and since semantics evolve, I think a reasonable case can be made for taking the modern definition of "the Third World" to be the union of spatial areas which the speaker deems to exhibit third world characteristics. In any case, I'm shortly going to go out in the northern section of West Oakland, and there I will encounter scenes that I literally will not be able to distinguish from bad areas in Addis Ababa.

> northern section of West Oakland, and there I will encounter scenes that I literally will not be able to distinguish from bad areas in Addis Ababa.

It took me a moment to realize that you're probably not referring to the Ethiopian food on Telegraph Ave.

No! I meant the people living in dirt near the train tracks and bridges.

Iqaluit is Canada. It isn't third world, by either the original definition or the new. There is certainly poverty and deprivation there as in much of the north, but it isn't the same as a true "third world" nation. Each and every person in Iqaluit is free to move within Canada however they wish, vote for who they wish and exercise all the rights and freedoms of any other Canadian, including education and health care.

> Each and every person in Iqaluit is free to move within Canada however they wish, vote for who they wish and exercise all the rights and freedoms of any other Canadian

The absence of those abilities is not a defining character of the Third World by any definition I'm familiar with.

Switzerland is a Third World country by definition and has all this too.

100% agree on the map usage and GPS precision. I've seen some pretty bad GPS in smaller towns in India.

Just moved to Nairobi (actually, Tigoni on the way to Limuru, where I have no postal address). Pretty sure I saw your team at iHub last week when I was hosting the Mozilla Science Lab. I'd love to connect - gonna email but also please feel free to reach out to me using details in profile (same goes for anyone else in the area).

That sounds pretty cool!

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.

This is why he's incorporated the avatar - in the example he provides you wouldn't see the "boot" avatar if you had missed a letter, the boot is part of the address and should be communicated verbally when giving the address verbally.

If you are sending or telling someone the adress you can't expect them to check the avatar. How would it work e.g. over the phone?

From the README:

If you want to transmit your Xaddress by phone you will say "7150 MAGICAL PEARL - Maluku ,Indonesia" my avatar is a boot

So to check whether the address is valid I need to use a smartphone app. If I cannot do it online and only after someone gives me the address I will know it is broken, but will not know what is the correct address.

Bingo, error detection is functionally distinct from error recovery. In this context, error detection helps prevent some misdeliveries, but can't help ensure additional correct deliveries in the face of error.

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.

The concept of an avatar doesn't translate across cultures. And the visual hash isn't an "avatar" as typically used on the internet. Furthermore, the images may be incomprehensible in some cultures.

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.

> One letter off and you're doomed.

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

As a sidenote, Australia moves about 7cm north annually [1], so any encoding of GPS location is not flexible enough in the long term.

Also only encoding lat/long makes it so you would not be able to address a single floor in a large building.

[1] http://www.bbc.com/news/technology-36912700

Obviously we need to add the date the coordinates were encoded. The decoding will have to apply correction based on ample databases of tectonic data. A simple formula will not work, a major earthquake can move a rift by some 5-10 cm. And you need to know exactly what plate does the coordinate refer to, is not as simple as 'Australia moves 7cm a year', consider parts of California east vs. west of the fault. Well, that spiraled out of control fast... It makes the time issues like [0] seem trivial by comparison.

[0] http://stackoverflow.com/questions/6841333/why-is-subtractin...

> Obviously we need to add the date the coordinates were encoded. The decoding will have to apply correction based on ample databases of tectonic data. A simple formula will not work, a major earthquake can move a rift by some 5-10 cm. And you need to know exactly what plate does the coordinate refer to, is not as simple as 'Australia moves 7cm a year', consider parts of California east vs. west of the fault. Well, that spiraled out of control fast... It makes the time issues like [0] seem trivial by comparison.

I didn't think it was possible to come up with an idea worse than leap seconds but we did it guys!

> 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".

Time is very easy to define naturally as long as it's always "local." Local noon is when the sun is at its highest. Local midnight is halfway between noons, come up with some subdivision, and you're done.

It breaks down once you need to synchronize distant events of course...

Given the spatial resolution of this project (10m) and the lifetime of humans (80 years), it should be alright :-)

Floor / apartment number / suite number could just be tacked onto the end.

Any position can be determined from x,y,z, you could just tack on the z coordinate - though you'd need to match that locally, accounting for sea level. If you are using latitude and longitude you should stick with the paradigm for height, since floors can be different heights.

But then knowing something is X feet in the air only gives me an approximate floor number- I'd have to guess at the storey height and divide.

No question, I considered that too. But for determining position in 3d space I think its more consistent than having floors. If you get to say the 10th floor with different floor heights the difference could be considerable. Its the problem with whats practicable in daily use and what makes sense from a system perspective.

This problem could be resolved within coordinate systems adaptations. I don't know if WGS84, the datum used in GPS, does it, but for example European official datum is ETRS89 which is very similar to WGS84, but adjusts coordinates to these tectonic movements, certain number of cm per year. The principle is to keep same coordinate numbers for same places, even through their global location has changed a bit, even over hundreds of years. In GPS world that does not matter really, but land survey deals with sub-cm accuracy and these things do matter.

Perhaps the address can be made relative to some landmark which moves in the same direction. This could add an additional word in front of it (for the landmark) but will resolve such issues.

That's a great idea, maybe something like "church street" and a number that denotes a length on that street?

If that was the case we might run into naming collisions if there are multiple cities with the same street names. It would be best if we namespace it to the city as well. So we would have something like { "street": "Church Street", "length": "5", "city": "Church City" } all of course packaged in JSON.

Well-structured data like this is better encapsulated in XML:

    <?xml version="1.0" encoding="UTF-8"?>
        <address street="Church Street">
    	    <key length=""/>
        	<value type="uint32" scale="nanolightseconds">5</value>
            		<?xml version="1.0" encoding="ISO-8859-15"?>
                    <name>Church City</name> 
Isn't that much more legible and understandable?

(I hate XML. So much. This shouldn't be a valid document in any language.)

Just think, there were even multiple versions of JSONx so someone somewhere had to be using it.

It's part of a bigger product (WebSphere), so hopefully it's just being dragged along and not still under development.

While I get your point, the XML document includes so much more information than the JSON example. Encoding, version, data types, 'scale', response length, etc.

Please try not to make any false equivalences :)

That's a great idea and will help making addresses more solid. I would suggest we also add some more levels like the country the city is in?

Wonderful idea, and we could even go so far as standardizing how we write it so that we don't need to worry about putting it into JSON and makes it more memorable for humans. Something like:

Length Street



To the extent that a single address might be home to more than one person, shouldn't we pre-pend the name of the specified person to the address?

This is getting too complicated.

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.

that might be insufficient for densely populated areas, perhaps an additional optional 4 digits?

I like it, but how about we add 2 more digits that don't get printed in human readable format on the mail but are used in barcodes to sort/deliver it?

Arguably, if it is just for sorting/delivery we could simply use the last two digits of the "length" portion of the address. That would enable any delivery service to sort the mail within the city block and still have a human readable equivalent in case the barcode becomes unreadable.

I should let this lie as an explained joke is never funny, but I just can't.

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.


Interesting, the last/only time I had to write code to determine delivery points was very early in my career (IBM mainframe COBOL) when postnet barcodes were a new thing and it was always just the last two digits of the street address. I see in the current CASS technical guide that a record type H may have multiple delivery point. Learn something new every day. Thanks.

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.

Needs more UUIDs so we can get Microsoft on board.

Nice! But what about areas where addresses haven't been proposed yet?

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!

Most lat/long data isn't specified relative to the earth's core but to a reference, such as the North American tectonic plate, as in the NAD83 standard for exactly this reason. https://en.m.wikipedia.org/wiki/North_American_Datum

GPS coordinates change depending on continental drift (they are fixed in space). You need updateable parameters to transform to something like NAD83.

>As a sidenote, Australia moves about 7cm north annually [1], so any encoding of GPS location is not flexible enough in the long term.

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.

What makes this better than actual coordinates?

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.

>What makes this better than actual coordinates? I can easily find numeric coordinates on a map, ...

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.




Same reason we have DNS instead of remembering IP addresses.

DNS allows us to keep swapping the IP address associated with a service though, this (afaik) doesn't.

Ability to swap underlying ip address is orthogonal to using alphanumerics in DNS. Numeric sequences could also be used as CNAME for the ip address. But we don't because of human brain.

Seems more easily remembered and therefore easier to accurately share without reliance on technology. 6342 LAY TRANSCENDENT (my location right now) is easier to write down, and comes with a built in typo checker (icon is the earth in this case).

Probably not a good idea to post your address where people can see who you are (you have your keybase details on your profile)

I'd be happy to meet anyone from HackerNews who wanted to drop by. I'm here everyday. It's the Tucows office in Toronto and it's no secret I work here most weekdays.

Try remembering and telling someone your home's coordinates. Then try telling them the coordinates of the restaurant up the street.

This would seem to suffer from a similar problem, given that we travel on and interact with roads primarily.

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.

Isn't this pretty much the same concept as http://what3words.com/, or am I mistaken?

You're not mistaken. If you look at the "Compare encodings" section, you will see the encodings compared.

Wow, this is a much friendlier alternative to what3words / what3fucks!

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

I completely agree with your thoughts: this is impressive when you don't think about directions from humans for humans but once you toss that wrench in it falls flat. Perhaps they could make improvements to handle directions.

I don't see any versioning on this, and that seems like it is something that needs to be implemented ASAP if you actually want any of these addresses to start to be used in the wild.

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?)

Your Xaddress will work even if we remove the word from the available list, you can try encoding or decoding by hand to understand how it works https://github.com/roberdam/Xaddress/tree/master/by_hand

That's totally true (and I missed that), but it seems to me that the Country/State-specific look-up table is still the unversioned weak point.

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.)

Yes, Xaddress creates 2 kinds of codes, the short one is inmutable and does not depend from geopolitical boundaries, you can check http://ubicate.me for the short code implementation.

I see the point especially with foreign addresses. It can be bit of a challenge to communicate addresses like "Nándorfejérvári út 4" or "Kısıklı Büyük Çamlıca Cd. No:9" over the phone. Coordinates are of course alternative, but for most of us, few words and number are easier to keep in mind for few minutes.

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

Yes!, in this case "Nándorfejérvári út 4" can be "CRUEL RUN 4604 - Budapest, Hungary

At first I was skeptical of 'yet another geocode', but the addition of the avatar alongside it (for error-checking and instant-recognizability purposes) makes this scheme intriguing, and in my opinion, far better than any other geocoding.

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.

[1] https://en.wikipedia.org/wiki/Identicon

Thanks niftich, you can try the spanish version as well http://test.xaddress.org/try?lng=es and more languages can be included.

I'm not sure if having a distinct wordlist for every language is helpful though, as then you can't easily tell that two addresses are the same.

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)

It can be https://news.ycombinator.com/item?id=12262754 in this case "Nándorfejérvári út 4" can be shared as "CRUEL RUN 4604 - Budapest, Hungary

AFRAID SEA here. To avoid confusion, might be best to exclude words that are common placenames from the word list (street, road, lake) as well as rude words.

Great to see an open alternative to http://what3words.com (and I also love the icon as visual hash.)

You missed http://what2numbers.org/ and http://www.what3fucks.com/ in the comparison.

Yet another location encoding. Why not MapCode[1]?

>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?

1. https://en.wikipedia.org/wiki/MapCode

Mapcode is great, compact and precise. Xaddress looks more like a traditional address so it might be easier to fit in , also gives you a hint of where the address is located, and is clear how to encode and decode. But at the end of the day both are tools that might work depending on your needs.

It looks like the only thing it adds to MapCode is the pain of localization

Love the concept, but P2 code depends on the country, I think it should not be resilient on geopolitical address. For example, in France, states have changed recently (change in name and merging).

Thanks dalbin, short codes are resilient and independent from geopolitical addresses, both codes are created at the same time, for the sake of clarity is not show today in the Xaddress

I think this is a neat way of encoding things. But this also has a lot of shortcomings that existing mailing addresses don't have; it's really only useful for identifying a physical spot, which is what a lat/long and geocodings of mailing addresses will do anyway.


* 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.

I think a couple changes would be required to address the shortcomings:

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

Great idea / initiative but I must ask, are you new to Ruby? I've rarely come across code that was so not idiomatic.

Thanks, yes, I'm ashamed of my code, this is my first project in ruby , my last programming work was 15 years ago, (Foxpro for DOS) so this is my comeback to programming.

I hope that being opensource will help it to improve.

No sweat, man. You are new to the language and you're putting yourself out there. Major kudos for that.

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.

Thank you very much acangiano, I will review all the code with your guidelines at hand!.

I applaud you for putting it out there! Fear of negative feedback often keeps me from releasing code in situations like this.

At first I thought you might be being overly critical as can sometimes be the case here, but glad I checked the code. Your comment is spot-on.

My current location is 5308 AFRAID ANUS. Might be best to exclude ANUS from the word list.

What are you afraid of?

More serioulsy. I think there are curated word lists out there without swear words.

My Street is "BASTARD BOX"

Jee, thanks.

Are you kidding? I'd love to have my address be BASTARD BOX. So apropos.

My subway station is apparently a SHITHOLE.

I'm at "ETERNAL SHITTIN" No thanks.

Mine is 8763 UNTIL DICK, word list definitely needs a review.

You could be DICK UNTIL 8763... no wait

First two clicks in the default map location:



Mine is SUPERMAN KRYPTON which I rather like. I could also go with EMERGENCY REBEL, DOUGLAS PHOTOS (I live in an area with lots of Douglas trees), CATATONIC TYRANNOSAURUS, etc.


thanks codev, added to the TODO!

Great. It's a nice project, nice demo as well.

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.

Probably don't want SCROTAL in there either

Note you can click on many of the words and cycle over alternatives.

If you look at the word list, there are many options for each set of numbers. "Anus" could equivalently be any of:




IMHO the Maidenhead Locator System [1] solves this problem very nicely. Locations are concise and can be specified with arbitrary precision. And the encoding scheme makes vocal transmission quite robust.

1: https://en.wikipedia.org/wiki/Maidenhead_Locator_System

It is nicely done and unlike what3words.com (which is very similar) this version isn't commercial.

The icon acting as a visual hash is a nice touch.

Thanks wscott!, I put the first version here on HN 2 years ago, from the feedback here is the improved version.

This is genius! Seems like HN killed it though. The demo is not working anymore, probably rate limits have been hit.

Edit: seems to work on the default location but not when I move the maps to Slovenia.

Thanks pingec, it seems to be something with the Google Api, I will check that, in the meanwhile you can try the CLI if you know ruby or try it by hand https://github.com/roberdam/Xaddress/tree/master/by_hand

This is really clever. It would be incredible if this took off and became a standard way to represent addresses.

Thanks king_magic, at least is a start, and because is Opensource it can evolve with the needs of the people.

It's really a great idea. It's something I didn't know I wanted until I saw it. My (admittedly potentially naive view) is that it has the potential to simplify many things in the mapping/shipping world - it's so specific. No messy address ambiguity.

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.

Greate idea!, Xaddress generate a short code, you can use all of them if you want to. https://cloud.githubusercontent.com/assets/3354868/17262858/...

This is probably a first world problem, but I wouldn't mind something similar for the western world. Some sort of extended zip code that I can just enter on any device in a second and it represents my entire fully and correctly defined location including door number, floor, gps coordinates and crossing streets and if it's left or right side of a one way street, etc. Just a ~12 digit number for every single door (and maybe window - for drone delivery) in the world. It would probably have a positive impact on the economy.

I have long maintained that an extension of the postal service should provide a one-stop-shop for your addresses.

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.

Right the USPS should provide a layer of indirection. Give everyone a virtual mailing address, and then they could automatically route your mail to wherever you actually happen to live at the moment.

I didn't know it until now, but this is the disruption I've been waiting for.

Not the USPS, but companies like this one: https://www.earthclassmail.com/

do pretty much what you're looking for.

The USPS have a hard enough time maintaining a conventional address database.

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.

The reason cities vary randomly in mailing addresses is that the third line of your mailing address:

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.

Correct. I've heard that it varies depending upon your location. For example St Paul, MN was massive when it was set up so most of the eastern suburbs of the Twin Cities have St Paul MN, 5XXXX rather than the actual city.

Municipalities assign the rest of the address (street name, house number etc) and are responsible for that mess.

In Sweden our population registry is used for that purpose - for stuff like banks, utilities and even some online shopping you sign up with your personal ID number, and then they pull the address from the government population registry, and then sync changes periodically. Change your address with the registry and it updates nearly everywhere.

http://www.iammoving.com/ :)

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.

Nice find! I'd love to see something like this in the US. You can get the usps to forward your mail for a year but the thing that would really win me over would be to update my address on the usps, go buy a thing on, say, Amazon, and see at the checkout page that my delivery address AND billing address have been automatically updated.

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.

This is for the US. In fact it is the US Postal Service version of the service.


That's what PO boxes are for. Some friends I know even managed to get the PO box on their driver's license (using suit 1234 instead of PO BOX 1234).

The problem with this is that the various data would be somewhat inaccurate and ephemeral. You actually need to store a history of facts contributed by multiple different people. So a delivery person could update the record with better information. Or maybe the drone would add a lidar point cloud of the approach to the window.

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.

The site doesn't work for me as the Google Map API seems to be broken, Authorization removed or something

I just tryed and still works fine, not yet reach the 2500 pageviews of google today :D

Seems broken for me as well. I'm on desktop Chrome. Message says to check JS console. In case it helps, this is the error message:

Google Maps API error: RefererNotAllowedMapError


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

That address seems to work, but the mouse disappears whenever it's... under... the map, so I can't see what part of the map I'm clicking on.

I think this is a really nice idea, and it seems somewhat more memorizable than a what3words address because it incorporates numbers. Really cool work! The only two complaints I have are 1) as others in this submission have said, is that the list should really be curated, or at least be filtered to remove "bad words", and 2) ideally this algorithm could be tweaked to not require a city to go along with it, so it becomes easier for a place that hasn't been able to designate cities can use it more easily.

From the list of words at https://github.com/roberdam/Xaddress/blob/master/en/adj_en.c..., I take it that some locations will be labelled DESPERATE, UNSPEAKABLE, POSTDOCTORAL, OBSTETRICAL, GENEALOGICAL, ASSASSINATING,CORRUPTED, PROGESTERONE, etc. etc., also RUSSIAN, UKRAINIAN, DUTCH, ...etc. Where did that list come from?

I have seen a lot of these co-ordinate based alternative address mechanisms (in fact the author gives a list -- https://github.com/roberdam/Xaddress#compare-encodings). But in my opinion, one thing they all ignore or get wrong is establishing some kind of linking mechanism between real world and co-ordinate based addresses. This is a hard problem, but one without which it is not going to be able to gain significant adoption.

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.

But why? Forget about the tech. What does this accomplish? What3words is nonsensical for the same reasons- Amazon Prime is not coming to Mongolia anytime soon and it has a lot more to do with little disposable income/economics than logistics.

So the people in Mongolia, for example, that don't have a physical address in the postal service's database don't deserve mail, or being able to more easily communicate with their government where they're located? Just because Amazon Prime isn't come somewhere doesn't mean that logistics problems don't exist and don't need to be solved.

What3Words, for example, would be a great help to all the Deliveroo drivers that can't find my house because it opens onto an alleyway instead of a road. This is in the UK, mind you, not Mongolia.

First, you have to teach long division and long multiplication to your 7B people. Like the concept and idea and truly hope for adoption.

Is it possible to reduce to addition and subtraction? I feel that multiplication and division is a high barrier for most.

Thanks cgsmith, a pocket calculator will be great when decoding/encoding by hand. Im guessing that low tech phones (even old nokias) can do the trick by using it as calculator, but then that may not be as low tech as needed.

I like this comparison: https://github.com/google/open-location-code/blob/master/doc...

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.

Great resource, thanks for sharing

reminds me of http://what3words.com/

I don't see anything new here that isn't already part of w3w.

It's the same, barring some differences like dictionary (this list isn't curated very well, see other comments in this submission), but the big difference is that it's open source unlike w3w.

Yes, which he clearly links on his github readme. He says it is a commercial version with a patented algorithm.

I'm surprised nobody has mentioned MGRS as a somewhat similar system. Coordinates look like so; 4QFJ 1234 5678.

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.

Addressing is broken on a global scale. And this won't fix it. Addressing schemes like street & block level addresses can be useful for finding your way around. This is an important feature. I know how to get from 123 My Street to 150 My Street. I don't know how to get from Libres 2956 (Saxophone) to Libres 2900 (Other avatar).

Any physical addressing scheme that doesn't take routing into consideration is doomed to failure IMO.

Love this. I couldn't see any deeper explanation of the encode/decode algorithm. Is that written up somewhere?

Thanks!, of course, you can encode/decode the Xaddress even by hand so it can be used in low tech environments, the guide is https://github.com/roberdam/Xaddress/tree/master/by_hand

I got a oops something went wrong while clicking "try it now". using chrome on a desktop.

"HN Hug of Death", just resize the droplet, you can try again

Is there any reason the code is written half Spanish half English? As I'm from the Netherlands my understanding of the English language is great but because this is in Spanish I have to use Google translate to read te code.

The original code was written in spanish (my native language) and I translated to english, let me know your particular problem with the code and I will change it.

None of it appears to be translated to English apart from the messages displayed to the user. Without comments in your code and especially when you abbreviate variable names, it's difficult to visually scan the code and have any idea what's going on. You have to mentally process the program to try and reason about what any variables or functions are actually doing.

Thanks for the feedback, I will work to translate all the variables to make it more readable, in the meanwhile you can check the logic behind the problem here: https://github.com/roberdam/Xaddress/tree/master/by_hand


Resembles a normal address? In the Anglosphere, maybe.

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

good point... resembles a normal address compared with the alternatives at least. https://github.com/roberdam/Xaddress#compare-encodings

Address in South Austin, TX: "Grounded Bastard 1780"


Isn't this a solution waiting for a (sponsored) problem?

Zone Improvement Plan solved a problem and where would shipping be without it?

Missing how having a "Mail Address" makes an address deliverable; aka mail service, legal mailbox, etc.

I was so confident you were using particles.js, but turns out you coded that yourself!

I poked around and found: 1861 TIME WHORING Nifty concept, could use some work.

Doesn't seem to work on iPad. Have you tested various other platforms?

Very nice. But nobody is going to use it as it's solving a non problem. Nobody has any issue giving people an address.

That's simply wrong, and assumes that everyone in the world lives in the situation you do.

What3Words (the commercial equivalent) has only been around three years, and look at its usage:


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

I strongly disagree that it's a non-problem, addresses are very unusable in many areas of the world.


Not bad.

My biggest problem with this sort of schema (and the similar ones other people have mentioned in this thread) is that it doesn't solve any of the difficult problems an addressing system needs to solve.

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.

Did you try the "take me Here" option? http://www.xaddress.org/takeme?from=40.7848694,%20-73.969670...

You can integrate third party services to do just that.

You can do a lot of things with computer systems loaded with rich geographical datasets.

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.)

The page seems to forget to say what the point of this is.

Google's Open Location Code is better. https://github.com/google/open-location-code

Remember, addresses are very personal. They are reflective; they are metallic and have a magnetic quality; they are outwardly expressive; they have a perceived value; they are understandable; they are historic (having a history)

That's not what this is though.

Directly no - you are absolutely right. Indirectly yes - if a human is associated with it. As I'm making deliveries now with addresses on it there is no way anyone with a current address will change it. Or should I say allow anyone to change their address. People already have at least two addresses (lat long ) and a third (parcel block for taxes)

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact