HackerNews weekly summary [5]

Most popular stories from last week [2020-05-10 – 2020-05-17].

[0] Twitter Will Allow Employees to Work at Home Forever

https://www.buzzfeednews.com/article/alexkantrowitz/twitter-will-allow-employees-to-work-at-home-forever


[1] Deno 1.0

https://deno.land/v1


[2] Let’s guess what Google requires in 14 days or they kill our extension

https://blog.pushbullet.com/2020/05/13/lets-guess-what-google-requires-in-14-days-or-they-kill-our-extension/


[3] A first look at Unreal Engine 5

https://www.unrealengine.com/en-US/blog/a-first-look-at-unreal-engine-5


[4] Ask HN: What’s your quarantine side project?

https://news.ycombinator.com/item?id=23170881


[5] We at $Famous_company switched to $Hyped_technology

https://saagarjha.com/blog/2020/05/10/why-we-at-famous-company-switched-to-hyped-technology/


[6] Show HN: SHA-256 Animation

https://github.com/in3rsha/sha256-animation


[7] Patio11’s Law: The software economy is bigger than you think

https://secondbreakfast.co/patio11-s-law


[8] 92 of top 500 subreddits controlled by same 5 people

https://www.reddit.com/r/interestingasfuck/comments/gitwbo/pointing_out_how_much_power_few_people_have_gets/


[9] Facebook to Buy Giphy for $400M

https://www.axios.com/scoop-facebook-to-buy-giphy-for-400-million-4a75a359-833b-484d-b15b-87e94d3de017.html


[10] Show HN: This Word Does Not Exist

https://www.thisworddoesnotexist.com/


[11] If I could bring one thing back to the internet it would be blogs

http://tttthis.com/blog/if-i-could-bring-one-thing-back-to-the-internet-it-would-be-blogs


[12] Do not Draw a Penis

https://donotdrawapenis.com/


[13] A small restaurant owner on Google, DoorDash, and Grubhub

https://www.saddlebackbbq.com/how-google-doordash-grubhub-conspire-screw-local-restaurants


[14] Security Flaws in Adobe Acrobat Reader Allow Gaining Root on macOS Silently

https://rekken.github.io/2020/05/14/Security-Flaws-in-Adobe-Acrobat-Reader-Allow-Malicious-Program-to-Gain-Root-on-macOS-Silently/


[15] A 2020 Vision of Linear Algebra

https://ocw.mit.edu/resources/res-18-010-a-2020-vision-of-linear-algebra-spring-2020/index.htm


[16] React Native for Windows and Mac

https://microsoft.github.io/react-native-windows/


[17] MS Flight Simulator 2020 vs. Real life

https://imgur.com/a/hdWw4ds


[18] Second-Guessing the Modern Web

https://macwright.org/2020/05/10/spa-fatigue.html


[19] Thank you for helping us increase our bandwidth

https://blog.archive.org/2020/05/11/thank-you-for-helping-us-increase-our-bandwidth/


[20] Ask HN: Mind bending books to read and never be the same as before?

https://news.ycombinator.com/item?id=23151144


[21] Redditor finds unsecured surveillance cameras seemingly placed by US government

https://old.reddit.com/r/conspiracy_commons/comments/gin79z/i_made_an_alt_because_this_is_sketchy_so_i_can


[22] Ask HN: Dark mode for HN please?

https://news.ycombinator.com/item?id=23197966


[23] Make LLVM Fast Again

https://nikic.github.io/2020/05/10/Make-LLVM-fast-again.html


[24] Create Diagrams in VS Code with Draw.io

https://github.com/hediet/vscode-drawio


[25] Show HN: Make Your PDF Look Scanned

http://www.scanyourpdf.com


[26] Game Programming Patterns (2014)

http://gameprogrammingpatterns.com/


[27] Tell HN: Call Mom

https://news.ycombinator.com/item?id=23133553


[28] Senate narrowly rejects plan to require a warrant for Americans’ browsing data

https://techcrunch.com/2020/05/13/senate-warrant-americans-web-browsing-data/


[29] Elon Musk reopening Tesla factory despite Alameda County order

https://twitter.com/elonmusk/status/1259945593805221891


HackerNews weekly summary [4]

Most popular stories from last week [2020-05-03 – 2020-05-10].

[0] Bye, Amazon

https://www.tbray.org/ongoing/When/202x/2020/04/29/Leaving-Amazon


[1] Zoom Acquires Keybase

https://keybase.io/blog/keybase-joins-zoom


[2] GitHub Codespaces

https://github.com/features/codespaces


[3] Extremely disillusioned with technology. Please help

https://gist.github.com/mGBUfLn9/7cadffcf7c3c23b7376350165a67735f


[4] We Chat, They Watch

https://citizenlab.ca/2020/05/we-chat-they-watch/


[5] No cookie consent walls, scrolling isn’t consent, says EU data protection body

https://techcrunch.com/2020/05/06/no-cookie-consent-walls-and-no-scrolling-isnt-consent-says-eu-data-protection-body/


[6] Write Libraries, Not Frameworks

https://www.brandonsmith.ninja/blog/libraries-not-frameworks


[7] Ask HN: Name one idea that changed your life

https://news.ycombinator.com/item?id=23092657


[8] Citing revenue declines, Airbnb cuts 25% of workforce

https://techcrunch.com/2020/05/05/citing-revenue-declines-airbnb-cuts-1900-jobs-or-around-25-of-its-global-workforce/


[9] Facebook iOS SDK Remotely Crashing Spotify, TikTok, Pinterest, Winno and More

https://github.com/facebook/facebook-ios-sdk/issues/1374


[10] Ask HN: Is your company sticking to on-premise servers? Why?

https://news.ycombinator.com/item?id=23089999


[11] Buttplug: An open-source software suite for teledildonics

https://buttplug.io/


[12] Show HN: Twitch Roulette – Find and chat with streamers who are streaming alone

https://twitchroulette.net/


[13] Show HN: Caddy 2

https://caddyserver.com/v2


[14] Apple, Google ban location tracking in apps using their contact-tracing system

https://www.reuters.com/article/us-health-coronavirus-usa-apps-idUSKBN22G28W


[15] Ask HN: Keybase Alternatives?

https://news.ycombinator.com/item?id=23103386


[16] Pose Animator: SVG animation tool using real-time TensorFlow.js models

https://github.com/yemount/pose-animator/


[17] Backblaze B2 Cloud Storage Now Has S3 Compatible APIs

https://www.backblaze.com/blog/backblaze-b2-s3-compatible-api/


[18] Startup financial models – Templates compared for SaaS

https://www.stephnass.com/blog/startup-financial-model


[19] Rebuilding our tech stack for the new facebook.com

https://engineering.fb.com/web/facebook-redesign/


[20] Cross-signing and end-to-end encryption by default

https://matrix.org/blog/2020/05/06/cross-signing-and-end-to-end-encryption-by-default-is-here


[21] Convincing-looking 90s fonts in modern browsers

https://vistaserv.net/blog/90s-fonts-modern-browsers


[22] Show HN: Lite – A small, fast text editor

https://github.com/rxi/lite


[23] Show HN: SQL Police Department – Learn SQL while solving crimes

https://sqlpd.com


[24] Making Emacs Popular Again

https://lwn.net/SubscriberLink/819452/1480c3a59d3d9093/


HackerNews weekly summary [3]

Most popular stories from last week [2020-04-26 – 2020-05-03].

[0] ICANN board withholds consent for a change of control of the .org registry

https://www.icann.org/news/blog/icann-board-withholds-consent-for-a-change-of-control-of-the-public-interest-registry-pir


[1] Medium-hard SQL interview questions

https://quip.com/2gwZArKuWk7W


[2] Disney claims anyone using a Twitter hashtag is agreeing to their terms of use

https://twitter.com/disneyplus/status/1254772307941191686


[3] Show HN: Plotting 3 years of hourly data in 150ms

https://leeoniya.github.io/uPlot/demos/time-periods.html


[4] Awk in 20 Minutes (2015)

https://ferd.ca/awk-in-20-minutes.html


[5] SSH hacks – a little sanity for remote workers

https://smallstep.com/blog/ssh-tricks-and-tips/


[6] Eloquent JavaScript 3rd Edition (2018)

https://eloquentjavascript.net/


[7] “Amazon is holding over 4.2M dollars, suffocating our business”

https://sellercentral.amazon.com/forums/t/amazon-is-holding-over-4-2-million-dollars-during-a-pandemic-suffocating-our-business/611187


[8] The Anti-Amazon Alliance

https://stratechery.com/2020/the-anti-amazon-alliance/


[9] Redis 6.0 GA

http://antirez.com/news/132


[10] Rust/WinRT Public Preview

https://blogs.windows.com/windowsdeveloper/2020/04/30/rust-winrt-public-preview/


[11] British Museum makes 1.9M images available for free

https://www.ianvisits.co.uk/blog/2020/04/28/british-museum-makes-1-9-million-images-available-for-free/


[12] WebWormHole: Send files quickly using WebRTC

https://webwormhole.io/


[13] Rust-analyzer – an IDE backend for Rust

https://rust-analyzer.github.io/blog/2020/04/20/first-release.html


[14] Lyft lays off 17% of workforce, furloughs hundreds more

https://www.cnbc.com/2020/04/29/lyft-lays-off-17percent-of-workforce-furloughs-hundreds-more.html


[15] textfiles.com

http://www.textfiles.com/


[16] Why Segment Went Back to a Monolith

https://www.infoq.com/news/2020/04/microservices-back-again/


[17] I’ve Consed Every Pair

https://medium.com/@peternorvig/ive-consed-every-pair-54ef5d9d93b6


[18] Memories – 256 bytes demo winner of Revision 2020

http://www.sizecoding.org/wiki/Memories


[19] Tmux for Mere Mortals

https://zserge.com/posts/tmux/


[20] Rules of thumb for a 1x developer

https://muldoon.cloud/programming/2020/04/17/programming-rules-thumb.html


[21] Bringing a decade old vector editor back to life

https://github.com/ChrisMiuchiz/Plasma-Writeup


[22] Teleforking a Process onto a Different Computer

https://thume.ca/2020/04/18/telefork-forking-a-process-onto-a-different-computer/


[23] Ask HN: Who is hiring? (May 2020)

https://news.ycombinator.com/item?id=23042618


[24] Ask HN: What scientific phenomenon do you wish someone would explain better?

https://news.ycombinator.com/item?id=22989280


HackerNews weekly summary [2]

Most popular stories from last week [2020-04-19 – 2020-04-26].

Ask HN: I’m a software engineer going blind, how should I prepare?

https://news.ycombinator.com/item?id=22918980


Shirt Without Stripes

https://github.com/elsamuko/Shirt-without-Stripes


Amazon scooped up data from its own sellers to launch competing products

https://www.wsj.com/articles/amazon-scooped-up-data-from-its-own-sellers-to-launch-competing-products-11587650015


Stripe Is Silently Recording Your Movements on Its Customers’ Websites

https://mtlynch.io/stripe-recording-its-customers/


Career advice for people with bad luck

https://chiefofstuff.substack.com/p/career-advice-for-people-with-bad


Things I wished more developers knew about databases

https://medium.com/@rakyll/things-i-wished-more-developers-knew-about-databases-2d0178464f78


Who’s behind the “reopen” domain surge?

https://krebsonsecurity.com/2020/04/whos-behind-the-reopen-domain-surge/


If a MacBook Pro runs hot or shows high kernel CPU, try charging it on the right

https://apple.stackexchange.com/a/363933/182292


Seinfeld Adventure

https://www.seinfeldgame.com/


98.css – design system for building faithful recreations of Windows 98 UIs

https://jdan.github.io/98.css/


YouTube bans coronavirus-related content that directly contradicts WHO advice

https://www.bbc.com/news/technology-52388586


When in doubt: hang up, look up, and call back

https://krebsonsecurity.com/2020/04/when-in-doubt-hang-up-look-up-call-back/


Valve’s Proton Has Brought 6000 Windows Games to Linux So Far

https://boilingsteam.com/proton-brought-about-6000-games-to-linux-so-far/


Why are Soviet math textbooks so hardcore in comparison to US textbooks? (2017)

https://www.quora.com/Why-are-Soviet-mathematics-physics-textbooks-so-insanely-hardcore-in-comparison-to-US-textbooks/answer/Scott-Miller-307?share=1


A Third Solution

https://paulbuchheit.blogspot.com/2020/04/a-third-solution.html


In 4 US state prisons, 3,300 inmates test positive, 96% without symptoms

https://www.reuters.com/article/us-health-coronavirus-prisons-testing-in/in-four-u-s-state-prisons-nearly-3300-inmates-test-positive-for-coronavirus-96-without-symptoms-idUSKCN2270RX


Oil plunges below $5 with traders fleeing expiring contract

https://www.bloomberg.com/news/articles/2020-04-19/oil-drops-to-18-year-low-on-global-demand-crunch-storage-woes


Agile’s early evangelists wouldn’t mind watching Agile die

https://builtin.com/software-engineering-perspectives/lean-agile-methodology-software-engineering


Disabling Snaps in Ubuntu 20.04

https://www.kevin-custer.com/blog/disabling-snaps-in-ubuntu-20-04/


Time is the only real currency we have

https://blog.theboringtech.io/2020/04/16/time_is_the_real_currency.html


Conversations with a six-year-old on functional programming (2018)

https://byorgey.wordpress.com/2018/05/06/conversations-with-a-six-year-old-on-functional-programming/


Magic Leap reportedly slashes jobs and steps away from consumer plans

https://techcrunch.com/2020/04/22/magic-leap-announces-layoffs-amid-covid-19-slowdown/


Ubuntu 20.04 LTS (Focal Fossa)

https://wiki.ubuntu.com/FocalFossa/ReleaseNotes


A possible new back end for Rust

https://jason-williams.co.uk/a-possible-new-backend-for-rust


Build a real-time Twitter clone with LiveView and Phoenix 1.5

https://www.phoenixframework.org/blog/build-a-real-time-twitter-clone-in-15-minutes-with-live-view-and-phoenix-1-5


HackerNews weekly summary [1]

Most popular stories from last week [2020-04-12 – 2020-04-19].

Show HN: A basketball hoop to maximize shots that go in

https://www.youtube.com/watch?v=vtN4tkvcBMA


The Decline of Usability

https://datagubbe.se/decusab/


Learning to See in the Dark (2018)

https://github.com/cchen156/Learning-to-See-in-the-Dark


TablePlus – Modern, Native Tool for Database Management

https://tableplus.com/


Is BGP Safe Yet?

https://isbgpsafeyet.com/


I’ve been writing TILs for 5 years

https://github.com/jbranchaud/til/blob/master/README.md


Avatarify lets users run realtime deepfakes on live video calls

https://www.inputmag.com/tech/open-source-program-will-let-you-run-deepfakes-on-live-video-calls


U.S. judge blocks Twitter’s bid to reveal government surveillance requests

https://www.reuters.com/article/us-usa-twitter-lawsuit/u-s-judge-blocks-twitters-bid-to-reveal-government-surveillance-requests-idUSKBN2200CS


X410 – X Server for Windows 10

https://x410.dev


Scuttlebot: Peer-to-peer database, identity provider, and messaging system

http://scuttlebot.io/


Why do we need Flask, Celery, and Redis? (2019)

https://ljvmiranda921.github.io/notebook/2019/11/08/flask-redis-celery-mcdo/


A Taste of GPU Compute

https://www.youtube.com/watch?v=eqkAaplKBc4


iPhone 7 boots postmarketOS

https://blog.project-insanity.org/2020/04/16/running-postmarketos-on-iphone-7/


A Guide to Pricing Plans

https://capitalandgrowth.org/answers/Article/3169972/The-Definitive-Guide-to-Pricing-Plans


Exceptionally gifted children: long-term outcomes of acceleration (2006) [pdf]

http://files.eric.ed.gov/fulltext/EJ746290.pdf


We’ve Built Cities We Can’t Afford

https://www.strongtowns.org/journal/2020/4/8/weve-built-cities-we-cant-afford


Show HN: Gentle is a social app where you give and get kindness (TestFlight)

https://gentle.app/


Covid-19’s impact on Tor

https://blog.torproject.org/covid19-impact-tor


Toshiba, Seagate Shipping Slower SMR Drives Without Disclosure, Too

https://www.tomshardware.com/news/sneaky-marketing-toshiba-seagate-wd-smr-drives-without-disclosure


Guide to PhpStorm code quality checks via PhpCS

Let’s configure PHP Code Sniffer to investigate our code instantly and have error messages shown directly in PhpStorm IDE just like this:

Configure php interpreter

We will configure PhpStorm to use dockerized php-cli. To do so, we need its image. Just pull it using:

$ docker pull php:cli

Next, add a new interpreter in PhpStorm. Open configuration window: Preferences -> Languages & Frameworks -> PHP. You should see something similar to:

Click dotted button […] to add a new interpreter. In a new window click plus [+] sign and choose From docker, vagrant[..] :

In new popup choose Docker as remote PHP interpreter and use our previously downloaded image php:cli

Click ok. It should look similar to this:

Just proceed with OK. Now, cli interpreter should be configured properly:

Please note docker container volume with shared project files. By default it is {our_project_path} -> /opt/project. We not change it.

Quality tools: PhpCS

We can proceed to a sub-section Quality Tools of PhpStorm configuration:

When on it, click dotted button to open configuration window. Click plus [+] sign and select code sniffer by previously configured remote interpreter:

When selected, press OK. You should see config:

Please take into account that codesniffer path is a location inside container.

Apply all preferences windows with OK. It is time to configure inspections.

PhpStorm inspections

Open inspections window from right bottom corner of PhpStorm:

Search (1) for codesniffer. I suggest to change (2) and (4) to Error to get all phpcs violations marked seriously. Change checked file extensions to php (3). From coding standard (5) choose the one you prefer or (better) select custom if you have your own ruleset (6).

Example custom ruleset location:

Keep in mind it is location inside docker container

Close all windows with OK. PhpStorm editor should now display PhpCs violations!

Looking for some example PhpCS rulesets? Check out example using Slevomat coding standard in my Querabilis project.

Thanks for reading!

Popular types of tests and their authors

There are many functional test types in modern software development. I will discuss few, let’s say most popular of them.

Isolation aka Unit test. Who should write them? Programmer. We write source code so we best know how to ensure a method or a class does it’s job. I’m not a fan of 100% code coverage because it is not going in pair with product quality and can badly increase software maintenance costs.

Integration test. Lets suppose we have a BooksRepository with getBook method. In unit test we can instantiate this repository with some SpyStorageObject injected and assert some specific method calls were made on this storage. But it may bring lower value than integration test communicating with real database and asserting that certain data were resolved out of some stack.

Who should write integration tests? Programmer, system architect, tech lead.

Acceptance (aka beta) tests. Those tests describe business rules and expectations. Should be written descriptive and in user-friendly manner by QA / business specialist.

Sample acceptance test written in Codeception:

Mobile app ATLASports

One of my first mobile apps. It was a hobby project. Purpose was to list currently live sport events with results and stats.

App was provided with quality sport data from my those days employer STATSCORE.

I’ve closed app due to low ads-based revenue. Doing this app I learned lot of new technical skills (Android, JAVA), marketing (Google Adwords, Analytics) and important business lesson: start making money since the app starts. If Your app is good enough then people will to pay for it.