Programmer Weekly (Issue 12 July 9 2020)

Programmer Weekly - Issue 12

Programmer Weekly

Welcome to issue 12 of Programmer Weekly. Let's get straight to the links this week.

Quote of the Week

 

“I'm not a great programmer; I'm just a good programmer with great habits.” - Kent Beck

News

By exploiting the wave-and-particle-like nature of light, a new technique offers the best of both worlds.

With this alpha release and the close partnership between Google and Canonical, Linux developers get Flutter support for their operating system of choice. Install the Flutter SDK via snap. Build and test your desktop app on Linux using Visual Studio Code or Android Studio. Deploy your app to the Snap Store. 

For companies that haven't patched their BIG-IP products, it may already be too late.

Reading List

A deep dive into why the world depends on simple, reliable, well-understood technologies.

A question on Stack Overflow’s Software Engineering site caught our attention recently. It tries to come to terms with the impact of scrum on developers' ability to do a great job. The claim is a bold one: Scrum is turning good developers into average ones. Could that be true?

An article about (almost) everything I know about Apple Lightning and related technologies: Tristar, Hydra, HiFive, SDQ, IDBUS and etc

Code reviews are an integral part of the software development process. Along with manual and automated testing, they help minimize risk and improve code quality. They also help the team share knowledge and to grow in their careers. This post lays out why, what, and how to review code, and will give you the knowledge you need to build a positive and effective reviewing culture in your team.

Here's how to turn a Geiger counter into a desktop radiation monitor powered by a Raspberry Pi. Take a look at this steampunk-inspired project up close.

There are many use cases where NoSQL is a correct alternative, but moving from a relational database system to a key-value store because you heard that “joins don’t scale” is probably not a good reason. You should choose a solution for the features it offers (the problem it solves), and not because you ignore what you current platform is capable of.

If you put a textbox on the Internet, someone will put spam in it. If you put a textbox on a site that gets millions of hits a day, lots of someones will put lots of spam in it. So Stack Exchange uses multiple layers to block all the spam coming in.

We are finally here. It is time to create the emitter for our Teeny Tiny compiler, which will give us the foundation to a working compiler. The fame and fortune is so close! Previously, we implemented the lexer in part 1 and the parser in part 2. 

On May 12, 2020, Slack had our first significant outage in a long time. This is a detailed look into the technical issues that caused it.

If we aren’t careful, concurrent transactions can cause a lot of headaches, to say the least. Finding it easy to forget or confuse these defects for each other, this post catalogue them so they might help you.

Always use UASP with USB 3.0 devices on the Pi 4, otherwise you're missing out on a pretty substantial performance gain. Also, remember to plug USB 3.0 devices into the blue USB 3.0 ports, not into the black USB 2.0 ports, otherwise you won't see any of the performance difference.

In a world where static websites and apps increasingly depend on separately maintained APIs, it can be hard to figure out how they work by just playing around in the browser. How can we use Postman to both test our existing APIs and understand how they work?

The Btrfs filesystem has had a long and sometimes turbulent history. It offers features not found in any other mainline Linux filesystem, but reliability and performance problems have prevented its widespread adoption. There is at least one company that is using Btrfs on a massive scale, though: Facebook. At the 2020 Open Source Summit North America virtual event, Btrfs developer Josef Bacik described why and how Facebook has invested deeply in Btrfs and where the remaining challenges are.

Learn Ansible by deploying a simple website using NGINX on Linux.

Watch and Listen

Engineering leadership is a tough role to get right. Learn the basics, and key daily practices from legendary engineering leader, Michael Lopp aka Rands!

Building systems that meet the exceptionally high level of safety expected of commercial air transport is challenging, but  Mykel Kochenderfer says that the key is in modeling the likelihood of the full spectrum of outcomes and planning accordingly. Validating the safety of these systems is also difficult, often requiring billions of simulations. He tells Stanford Engineering’s The Future of Everything how AI, empowered by algorithms such as “dynamic programming,” can make autonomous systems safer.

Software is just the tool and it should get out of your way. In this episode, Jim discusses how to build a great developer tool.  It all started with: “What’s the worst software that you use every day?” 

Scrum is a helpful process, but is more harmful than not when done badly. There isn’t a real fix for many of these problems, other than avoiding them in the first place. Scrum done well can be very helpful, but you do have to watch for some of the pitfalls if you want it to work well for your organization.

Interesting Projects, Tools and Libraries

Backstage is an open platform for building developer portals. Backstage can be as simple as a services catalog or as powerful as the UX layer for your entire tech infrastructure.

A cross-platform, customizable science fiction terminal emulator with advanced monitoring & touchscreen support.

A JavaScript browser API which allows the creation of a payment stream from the user agent to the website.

A user-friendly command-line HTTP client for the API era. It comes with JSON support, syntax highlighting, persistent sessions, wget-like downloads, plugins, and more.

Query git repositories with SQL. Uses SQLite virtual tables and go-git.

Bach is a Bash testing framework, can be used to test scripts that contain dangerous commands like rm -rf /. No surprises, no pain.

A command line application written in Rust capable of delaying execution of other programs for time periods relative to sunrise and sunset.

A game along with a tutorial on how to make it from scratch using Lua

A beautiful Redis GUI.

A web-based tool for logging, visualizing and analyzing mouse events like movement and clicks.

Mouse/keyboard record/replay and automation hotkeys/macros creation, and more advanced automation features. Working across three major OSes: Windows, OSX, and Linux.

To-do list & time tracker for programmers and other digital workers with Jira, Github, and Gitlab integration.

Our Other Newsletters

- A free weekly newsletter featuring the best hand curated news, articles, tools and libraries, new releases, jobs etc related to Python.

- A free weekly newsletter for entrepreneurs featuring best curated content, must read articles, how to guides, tips and tricks, resources, events and more.