Vacations delayed this post a lot, but on the other hand lots of interesting articles gathered during this weeks.
- Roomba vacuum maker iRobot betting big on the 'smart' home: but betting on a sad area... selling your house's map to Amazon, Google or other similar big company.
- How Microsoft brought SQL Server to Linux: Quite interesting because I thought it was a mere VM-like wrapper and while uses virtualization, it is more advanced.
- High-Resolution Custom Metrics and Alarms for Amazon CloudWatch: Finally, 10-second precision alarms at AWS.
- piprot: Small Python library that checks how outdated are your requirements (libraries/components). Really handy.
- History of iPhone pricing, including the average selling price: Interesting that there is a more or less stable baseline, despite going higher and higher (into indecent prices for a phone).
- "The most popular software for writing fiction isn't Word. It's Excel" @brianalvey
- "If you don't run experiments before you start designing a new system, your entire system will be an experiment" -Mike Williams (via @compscifact)
- Instead of hacking self-driving cars, researchers are trying to hack the world they see: Clever and scary in equal parts, demonstrates how advanced our sight and brain are compared with automated cars. Related article on how to hack signs.
- How I didn't become a SoundClouder: Sad example of why companies shouldn't lie to applicants and probably directly not hire anybody if they are having money issues. There was a similar situation in Spain around end of 2016 with a known company hiring people and sometimes weeks after firing them due to layoffs. The solution is simple: Talk to HR and ask them to stop any hiring procedure, you're playing with people's professional careers, not with mere spreadsheet numbers that you can adjust instantly.
- LinkedIn: it's illegal to scrape our website without permission: It was nice that they lost, because it feels fully anti-nature to on one side provide public information and on the other say it is illegal to scrape/gather it. Still makes me sad to see how the nice and public and free internet gets more and more attempts to put bars, borders and walls.
- The Android Browser: Slidedeck about how terribly fragmented seems to be Android's browser.
- How to Host a Website on S3 Without Getting Lost in the Sea: Nice summary, saving it for the future me that will probably want to host some static site.
- Operation Luigi: How I hacked my friend without her noticing: Scary tale about social engineering and forgotten account dangers.
- No, Facebook Did Not Panic and Shut Down an AI Program That Was Getting Dangerously Smart: Same crap I avoided at TV from unconfirmed, flamboyant and sometimes fake news, seem to be happening lately a lot.
- Slides and links for 2017 talks of the GopherCon
- Ethereum miners are renting Boeing 747s to ship graphics cards and AMD shares are soaring: Personally I think this is getting absurd and is another tech bubble waiting to explode, so much electricity wasted on cryptocurrencies...
- Investors poured millions into a storage network that doesn't exist yet: And another example, a "blockchain-based cloud storage technology" that has raised 52$ million and is just an idea...
- Why is ARKit better than the alternatives?: Huge but really interesting article on augmented reality, not just on Apple's ARKit.
- Google fires engineer who "crossed the line" with diversity memo: There's still hope in humanity, because I thought it was going to be let go just for the shake of "freedom of speech", but no, I'm not the only one thinking there are lines you cannot cross "despite you can". Some things are plainly wrong.
- If you want to debate the Googler's Manifesto and you're also a good person: Because we confuse freedom of speech with "anything goes", and as the article points out, some discussions cause harm, are not just a discussion.
- When tech firms judge on skills alone, women land more job interviews: Speaking of inequality...
- Queues vs Distributed logs (tech pill): Nice brief but well explained summary of what both are and when to use each.
- Blizzard and Google betray humanity with StarCraft 2 tools to train artificial intelligences: It is so nice to see official APIs!
- [Silicon Valley's wealthy elite have made social inequality worse](https://www.spectator.co.uk/2017/08/silicon-valleys-wealthy-elite-have-made-social-inequality-worse/: I knew things at SF are crazy, but this is really sad.
- Learning at work: Nice point of view and suggestions, I don't agree with all of them but the general message is relevant.
- Block-breaking game in vim: Intelligent and fully playable, kudos to the author!
- Ad blocking is under attack: Sad that lawyers and DMCAs are pouring even at Ad-blocking level. Instead of curing a disease, they force their way through mostly the only visitors protection...
- Scalable design pattern sample (tech pill): Another "tech pill" of an example where a combination of distributed log + queue provides a great solution. One that I've been part of at a past job and it indeed worked great :)
- SQL Tutorial: How To Write Better Queries: Really excellent summary of general and less general tips and improvements to apply when writing SQL.
- Why Github can't host the Linux Kernel Community: A nice article on the whys, pros and cons of both Github and the Linux Kernel community itself. You might agree or not with how they work but at least this is a polite, fundamented explanation.
- Tesla workers and the Model 3: To hell and back again: Sad to read that such a revolutionary car, manufacturing plant and general vision comes with an unsafer environment for the workers (higher tan average auto factories injury stats).
- Chess Is Being Forever Changed by Technology: Interesting how not only computers are able to win by "brute force" or raw computation power, but also provide powerful analytics to help chessmasters analyze past champions and improve their techniques.
- FP vs. OO: I wish there were more discussions like this article, trying to balance both sides and not being radical on any.
- Linux load averages: "system load averages" is much better, as it includes disk/NFS I/O and wait locks. Reasoning makes sense once you think this requires resources too. Still dividing the average between amount of CPUs works as a rough measurement, just don't take it as 100% precise.
- About React licensing, how to hide things in an apparently simple language: React license caused quite some stir this past weeks, but is nice that raised awareness of being careful with not-so-hundred-percent-free licenses.
- security.txt: A "standard" that allows websites to define security policies. Looks interesting, let's see if gets some adoption.
- How long employees are staying at the 10 biggest companies in tech: Quite revealing that people still switch "early" to another company despite being at one of the top/best ones. Whenever it is for getting more money or better conditions or simply more interesting projects, in the end is what happens at lower levels too.
- Why Even the Hyperloop Probably Wouldn't Change Your Commute Time: Interesting reading about city growth. Also learned about Marchetti's constant. TL;DR: average travel time stays approximately constant.
- Designing a Microservices Architecture for Failure: Some highlights (but you should read it all):
- careful with network failures
- 70% of the outages are caused by changes in a live system
- Reverting code is not a bad thing
- skip unhealthy instances from load balancers
- self-healing can cause trouble
- failover caching -> two different expiration dates (short for normal situation, longer during failure) -> better outdated data than nothing.
stale-if-error
HTTP header useful for HTTP-based communications - a larger amount of retries can make things even worse (cascading effect). Also should be abke to handle idempotency (using idempotency-keys)
- rate limiters and load shredders both for traffic peaks and traffic control to allow critical operations to complete
- to fail fast and separately -> bulkhead pattern (segregate resources, protect limited ones). using timeouts is an anti-pattern -> circuit-breaker pattern (protect resources by checking success / fail statistics of operations)
- test your system against common issues (and frequently) -> survive various failures
- AWS Glue Now Generally Available: One of those AWS services you might have never heard of, it is an apparently simple ETL service. Having done some non-trivial ETL work at a past job I'm curious about how powerful it really is.
- Expanding the Medium Partner Program: aka "Expanding the paywall". I firmly believe on openly accessible information so I'm glad I never had the urge to move to that platform. I'm just sad the monetization attempts are pushing it into a more closed system...
- VW engineer sentenced to 40 months in prison for role in emissions cheating: So, now not only you do have moral decisions to take, but also can be legally held accountable if you pick the wrong one. The guy lied more than once, not just "wrote some lines of code" but still it sets a precedent for the future.
- On Quiet Developers: Interesting read, especially now that all seems to orbit around GitHub profiles and contributions.
- Django Migration Don'ts: Pretty similar solution for delicate migrations than the one we built at CartoDB. We implemented a quick rollback feature that checked if there were RoR migrations and if so wouldn't let you do the quick one (so you do the full rollback and check data is still fine),
- In Silicon Valley, Working 9 to 5 Is for Losers: I have no interest on working in the United States, but Sillicon Valley is becoming quite unfriendly. Disgusting is the best summary for the article, but go read it.
- On MongoDB: Nice 3 part detailed walkthrough of Mongo's 5 years of life, with mistakes and success reasons. I like the mentioned simple three part process (PAT) when assessing hyped technologies:
- Problem: Understand your problem deeply
- Assess: Critically assess claims in potential solutions
- Tradeoffs: Weigh tradeoffs in the short and long term, rather than thinking about good vs bad
- Cloud Native Landscape: Nice visualization with a summary of many players on each of the areas regarding "clouds".