> Our API server was a Python Tornado service... and one of the most frequently accessed endpoint was used to retrieve user by their name or id. Because it supported retrieval by either name or id, it set default values for both parameters as empty lists. This is a super reasonable thing to do! However, Python only initializes default parameters when the function is first evaluated, which means that the same list is…
Humans aren't perfect. Open source projects have missed unescaped spaces in directory paths that caused the deletion of /usr (Bumblebee), video games have forgotten to check the cwd and deleted vital windows boot files (Eve Online) and operating systems have forgotten to check passwords (MacOS). Given this was 2010 I wouldn't be surprised if they had a less mature development process that doesn't use things people ta…
Digg's v4 launch: an optimism born of necessity (2018)
11–20 of 358 posts
Re: Digg's v4 launch: an optimism born of necessity (2018)
#12That's terrifying!
Re: Digg's v4 launch: an optimism born of necessity (2018)
#13Earlier quoted context omitted.
Humans aren't perfect. Open source projects have missed unescaped spaces in directory paths that caused the deletion of /usr (Bumblebee), video games have forgotten to check the cwd and deleted vital windows boot files (Eve Online) and operating systems have forgotten to check passwords (MacOS). Given this was 2010 I wouldn't be surprised if they had a less mature development process that doesn't use things people ta…
Still... did no one with even moderate Python experience even glance at this very important endpoint at any stage during those 4 weeks? Like I say, this is the kind of thing that jumps out of the screen for an experienced developer.
Re: Digg's v4 launch: an optimism born of necessity (2018)
#14> Our API server was a Python Tornado service... and one of the most frequently accessed endpoint was used to retrieve user by their name or id. Because it supported retrieval by either name or id, it set default values for both parameters as empty lists. This is a super reasonable thing to do! However, Python only initializes default parameters when the function is first evaluated, which means that the same list is…
These days I'd set up a linter that enforces these things do not happen, but it's easy to be smart after the fact. You say "once you've been trained by bitter experience it's very easy to spot", which I feel is true. You just need that bitter experience first, and for me it came in the form of a production issue.
Re: Digg's v4 launch: an optimism born of necessity (2018)
#15Kevin Rose: We migrated from LAMP to Cassandra because LAMP doesn't scale and Cassandra does. https://www.youtube.com/watch?v=eQNBcIPSROs
Given how many users they have I suppose they know a thing or two about scale.
Re: Digg's v4 launch: an optimism born of necessity (2018)
#16Stability, scalability and simplicity. Yes, you read correctly.
Whomever complains that Java is bloated or complex, needs only to look on who is writing that "piece" of code. Expert developers will write proper code that anyone can maintain and keep simple.
Too bad for Digg. Was a good site.
Re: Digg's v4 launch: an optimism born of necessity (2018)
#17Earlier quoted context omitted.
Not knowing Python, but I have a feeling things like this weren't as well known back in 2010 and the reason they're so well known is from people doing it at sites like Digg and then telling everyone that's a really bad idea. There are so many things that I know now for programming that were pretty much unknown 10-years ago because no one had really encountered them in a large scale setup.
Nah, this has been very well known since decades and is very easy to spot.
Re: Digg's v4 launch: an optimism born of necessity (2018)
#18I don’t even remember there being technical issues, I just remember logging in one day to find a website I enjoyed replaced with a bunch of crap I wasn’t interested in.
Re: Digg's v4 launch: an optimism born of necessity (2018)
#19> Our API server was a Python Tornado service... and one of the most frequently accessed endpoint was used to retrieve user by their name or id. Because it supported retrieval by either name or id, it set default values for both parameters as empty lists. This is a super reasonable thing to do! However, Python only initializes default parameters when the function is first evaluated, which means that the same list is…
Re: Digg's v4 launch: an optimism born of necessity (2018)
#20Albeit unpopular opinion, this kind of things is one of the reasons why I'll always push for Java instead of a jigsaw of different languages that sound cool. Stability, scalability and simplicity. Yes, you read correctly. Whomever complains that Java is bloated or complex, needs only to look on who is writing that "piece" of code. Expert developers will write proper code that anyone can maintain and keep simple. Too…