About APIs down his price, entire yells free shuts guy


  • area_can

    ...
    The next morning (on Monday), I was in for a surprise as my mailbox started to fill up with inquiries regarding Telize termination. Basically, some code was crashing at random locations because people relying on a free service for their businesses were not careful enough to implement correct error checking. One of those mails came from a set-top box manufacturer, stating that thousands of customers were unable to watch TV because their boxes crashed when Telize didn’t return any data, and demanding that I return an empty JSON object for a two weeks period.
    ...


  • Java Dev

    :facepalm:



  • I just had a look: Our favourite Korean company does indeed manufacture STBs :)



  • An online service outage can crash a TV? A fucking TV?

    Jeesus.



  • Hmm I'm wondering. Our supplier of internet and moving pictures had a sudden unannounced migration of our set-up box to a new "platform" the 17th. because of 'issues'. Could it be?


  • Banned

    No good deed goes unpunished. I feel very sorry for that guy, even though it's the first time I ever heard of this thing he's been running.



  • @Rhywden said:

    I just had a look: Our favourite Korean company does indeed manufacturespread STDs :)

    FTFY



  • @Article said:

    So basically, what’s the morale here?

    Hmm, seems like it would be pretty low if you're making everyone angry by shutting down your service.


  • Banned

    Unless they have the "morale boost when health is low" perk.



  • Huh. Figures.

    I've once been on the other end of this situation: a similar geolocation service (looking up street and city for a given zip code) which we relied on, stopped working overnight. Upon investigating further, it turned out to have gone over to be a paid service. Fair enough. Except the data they used was publicly available (by law), Took a whole thirty minutes to import the data, write a simple service against it (zip-codes are one of the few things you can actually validate with a simple regex) and have it up again.

    Luckily the impact for our users was minimal, but it was a good lesson never to trust a public service. Especially one we weren't paying for.

    Speaking of which, didn't something similar to this happen almost [url=http://slashdot.org/story/06/04/07/130209/d-link-firmware-abuses-open-ntp-servers]a decade ago[/url] already?



  • I had a similar experience when I shut down my Minecraft Name History tool - it was one of the first and so got a lot of traffic, but better ones came around later and so I shut it down. Sure made quite a few people upset even though there were better alternatives and all I was doing anyway was making a front end to Mojang's public API.



  • @FragFrog said:

    Speaking of which, didn't something similar to this happen almost a decade ago already?

    Exactly what I thought when reading this.

    However because this has been recommended everywhere, maybe we can't just blame the companies for usingabusing it. We know some people ask questions on forum, got reply and tested it work, then call it a day without actually think about what actually happens in the code and what are the implications. After all the answer comes from SO, so it should be correct, right? 😛



  • @bb36e said:

    demanding that I return an empty JSON object for a two weeks period.

    I dunno, that seems entirely reasonable to me. For $5 per an empty JSON object returned 😛.



  • @cheong said:

    maybe we can't just blame the companies for usingabusing it. We know some people ask questions on forum, got reply and tested it work, then call it a day without actually think about what actually happens in the code and what are the implications

    Because it's not like that's their job or anything.

    http://i.imgur.com/BgvDkb2.jpg
    "Hey, it works and follows the specification"


  • Garbage Person

    @FragFrog said:

    I've once been on the other end of this situation: a similar geolocation service (looking up street and city for a given zip code) which we relied on, stopped working overnight. Upon investigating further, it turned out to have gone over to be a paid service. Fair enough. Except the data they used was publicly available (by law), Took a whole thirty minutes to import the data, write a simple service against it (zip-codes are one of the few things you can actually validate with a simple regex) and have it up again.

    I take it you're not American, because the USPS jealously guards the secrets of zip codes here. You can get a list of zips from the USPS, but these days if you want the locations of them you have to reverse engineer them from address databases and out of band geolocations by other means. Or buy a database from somebody that already did that.



  • Btw, TR :wtf: is using a free webservice without preparing it for outage when even commerial servers like GoDaddy can have downtime.

    Serving them with HTTP 404 errorblackhole in reply seems good enough.


  • Trolleybus Mechanic

    @Weng said:

    I take it you're not American, because the USPS jealously guards the secrets of zip codes here.

    🍁 does the same. The best open source source of postal/zip code lookup is Geo Coder.

    Except Canada Post saw fit to sue not only the company, but him personally, including suing him for infringing on the "trademarked" combination of words "postal" and "code". The suit's been going on for 4 years, classic "let's bankrupt someone instead of being right" tactic.


  • Garbage Person

    The USPS (a government-funded private company) actually managed to bully the US Census (a core government function) into ceasing distribution of zipcode location data.

    The Census 'breadbox' sized unit of measurement (bigger than a block, bigger than a tract, but not so big as to be useless for neighborhood-level statistics) is the "Zipcode Tabulation Area" or ZCTA.

    Up until 2000, the process for creating ZCTA's was "The USPS gives the Census their database and the Census throws away the redundant ones" This meant that, if you didn't mind missing the insignificant ones, the precise shape and location of a zipcode was discoverable by the expedient of looking up the location and shape of the corresponding ZCTA.

    Starting with Census 2010, the methodology changed. The Postal Service no longer participates. The Census now follows a process that goes something like this: "Take the most common USPS zipcodes of the physical street addresses present as the ZCTA". This means that small zips no longer show up, and the boundaries are fuzzy and sometimes do funky things because the algorithms are statistically based now. If there aren't roads, there isn't a ZCTA. They no longer cover the entire surface area of the country. If somebody lives there and the Census manages to find them, tabulating them is a problem.

    In 2020 the rumor is that ZCTA's won't be based on the street addresses at all anymore - they'll be based on the 2010 locations and kind of 'drift' over time to track along with the constituent tracts.



  • Good, Maybe I can use this as fuel when the moron front-end devs at my company want to make our builds rely on a GitHub server existing and being responsive.



  • Wait, you download the entire thing every time you build something? You don't cache it and use the cached version if GitHub goes down?

    Edit: Also, they added the feature you wanted to Go. So now you can use Go instead of C#.



  • I would have agreed to put up a static reply - only it would tell the company to fuck off and if the geolocation data is visible to the user, all power to me.


  • Fake News

    I wonder though how much code that would break instead. Some may have checked the HTTP response codes.



  • In the proper format of course. If it's JSON encapsulated geolocation data, every user would live in Fuckland.



  • @ben_lubar said:

    Wait, you download the entire thing every time you build something? You don't cache it and use the cached version if GitHub goes down?

    They said it did, I don't know what it actually does. I try not to touch any of the front-end code if I can avoid it.



  • "Fuckfuckfuckshitfuck, Ontario"


  • FoxDev

    @rc4 said:

    "Fuckfuckfuckshitfuck, Ontario"

    is that the name of a location or the current temperature?

    🚎


  • Trolleybus Mechanic

    @accalia said:

    @rc4 said:
    "Fuckfuckfuckshitfuck, Ontario"

    is that the name of a location or the current temperature?

    🚎

    Yes. 🍁 ❄



  • That's just crazy.

    Makes me wonder how much that impacted the data my office gets from the Census Bureau.



  • Ha, I would agree and get though all the corporate schmooze, levels of managers and generating extensive agreements, NDAs for the agreements, NDAs for the NDAs for the agreements etc that multiple staff need to sign-off then right at last minute let them know this service is $[insert MAXINT] per month.


  • Discourse touched me in a no-no place

    I see insufficient levels of irritating bureaucracy. Needs more Memoranda Of Understanding, committees to decide the terms of reference for the product search board, etc.


  • Garbage Person

    Direct mail marketing and real estate are the only businesses that really give a fuck about the ZCTA level data.

    Real estate can adapt by looking up the ZCTA directly instead of using the zip in the address. Direct mail can do the same but it annoys them because zipcodes figure into their costs.

    It does negatively impact the direct mail business' ability to draw pretty heat maps, because large chunks of countryside note have "here be dragons! " because of the holes in coverage.



  • @ben_lubar said:

    Also, they added the feature you wanted to Go. So now you can use Go instead of C#.

    You seem to be under the impression that he has a choice in the matter. Regardless of whether Blakey considers C# better or not, he probably has to work with the language assigned to him by The MGT, and only gets to choose when changing jobs, working on personal projects at home, or (maybe, once in a while) working on one-shot side scripts where the code itself is subsidiary to the result and is expected to get discarded once it successfully runs (and if you think that will actually be the case I have a bridge to sell you).

    I mean, what, did you think I was working for Paul Graham or something? No matter how much I like Scheme, I'll never ever ever get to use it professionally, and I know it. I might - theoretically, with incredible luck - get a job working in Clojure, but even that isn't likely to earn a living for me. I mostly just hold my nose and work in Java, Javascript, HTML, PHP (ugh), and maybe some Python when I can. I expect that most programmers who prefer some less widely used languages do the same.

    Yes, I quit a job in part because I could no longer stomach SFDC (and more specifically, I felt that it was a bad choice for the projects they were trying to force-fit it into), but that was an extreme case.


  • area_can

    @accalia said:

    is that the name of a location or the current temperature?

    It was actually -14C this morning.



  • @bb36e said:

    ...One of those mails came from a set-top box manufacturer, stating that thousands of customers were unable to watch TV because their boxes crashed when Telize didn’t return any data, and demanding that I return an empty JSON object for a two weeks period....

    Oh, this is just ... delicious. Makes me want to publish a free API just to be able to troll idiots like the TV set top box company.



  • @Weng said:

    It does negatively impact the direct mail business' ability to draw pretty heat maps, because large chunks of countryside note have "here be dragons! " because of the holes in coverage.

    Favorited for the "here be dragons" alone. All of the hearts! <3


  • Garbage Person

    Fun fact: one of my responsibilities is making the exact heatmap I described. The full render has "Here be dragons!" Printed in northern Maine. It isn't legible on the web or print sized renders because it's too small. If we ever do a zoomable tiled version, though....


  • FoxDev

    @Weng said:

    "Here be dragons!" Printed in northern Maine.

    /me is impressed, but would have been more impressed if there was "here there be foxes" round about the greater portland area



  • @Weng said:

    Fun fact: one of my responsibilities is making the exact heatmap I described. The full render has "Here be dragons!" Printed in northern Maine. It isn't legible on the web or print sized renders because it's too small. If we ever do a zoomable tiled version, though....

    ALL OF THE HEARTS!



  • @Weng said:

    Direct mail marketing and real estate are the only businesses that really give a fuck about the ZCTA level data.

    Real estate can adapt by looking up the ZCTA directly instead of using the zip in the address. Direct mail can do the same but it annoys them because zipcodes figure into their costs.

    It does negatively impact the direct mail business' ability to draw pretty heat maps, because large chunks of countryside note have "here be dragons! " because of the holes in coverage.

    ...I don't think it's just direct mail businesses that track it.

    Lets just say I have a valid business reason to know what the zip code is for a given street address.



  • @Weng said:

    It does negatively impact the direct mail business

    So the cloud of stupid has a silver lining.


  • Garbage Person

    Well yeah, knowing what the zip is is a no brainer. It's in the damned address.

    Caring where it is and what it's demographics are is much more specialized and, in most industries is better done using things that aren't zip codes.



  • @ben_lubar said:

    Edit: Also, they added the feature you wanted to Go. So now you can use Go instead of C#.

    Oh yes, let's tout go's criminally stupid module management as paragon of virtue. This new hack that makes the whole disaster at least somewhat usable isn't all that impressive to anyone who's seen a real module manager.



  • Going by FragFrog’s name apparently being Matthijs, I would guess he’s Dutch and so “zip-codes” is the translation he uses for what’s properly called a [url=https://en.wikipedia.org/wiki/Postal_codes_in_the_Netherlands]postcode[/url]. (There’s a chance he’s Belgian instead, in which case it’s called [url=https://en.wikipedia.org/wiki/Postal_codes_in_Belgium]postnummer[/url].)


  • BINNED

    @Gurth said:

    postnummer.

    Only if you want to sound retarded. Even the postal service talks about postcode.
    Biggest difference is that in Belgium the postcode only gives you a city or part of a city.



  • Alright, then. Explain to me what a module manager is supposed to do. Because I clearly don't know.



  • @ben_lubar said:

    Alright, then. Explain to me what a module manager is supposed to do. Because I clearly don't know.

    Pretty much what go does with the vendors hack. Only better.



  • IMO a module manager should just facilitate local caching on a per-version basis. What more could you need?



  • So your answer to my question "What should Go have done for module management?" is "The thing it is doing right now."?

    But in your previous post, you called it "at least somewhat usable", which implies it isn't your ideal system. I ask again, what do you expect from a module manager that Go does not provide?



  • What is with ben_lubar and Go? Does he make sweet love with the Go compiler or something?



  • @ben_lubar said:

    But in your previous post, you called it "at least somewhat usable", which implies it isn't your ideal system. I ask again, what do you expect from a module manager that Go does not provide?

    • Get everything you need with the language runtime
    • Install a package and all its dependencies using nice CLI or GUI commands
    • Pin installed packages to versions you want
    • Save package requirements in some kind of a list, that you can version control with the project
    • Painlessly restore requirements as needed, so you don't need to clog up your git with vendors' junk
    • Separate your code from dependencies, so you can keep the vendor stuff out of git using a sane .gitignore
    • Intelligently de-dupe duplicate dependencies

    You can do all this with go, but only with a lot of googling and custom libraries and hacks. You can do the same thing with node with a few commands you get out of the box. Similar with python + pip. Even nuget got with the program. Go is woefully behind.


Log in to reply