Zach Leatherman zachleat.com

Queue Code—“live” code without errors

Zach Leatherman wanted the effect of live coding for his tech talks, but none of the unbridled anxiety (his words). Sooo he did what any self-respecting software developer does: he built a thing.

You can use this for presentations (like me). You could use this for screencasts or recording video training materials. Hell, you could even use it for job interviews (probably don’t do this). But it wouldn’t hurt to have a fizzbuzz gist in your back pocket just in case 😅

See Queue Code in action in this tweet of Zach’s daughter “doing some HTML programming” then try it for yourself right here.

Databases github.com

Dolt – it's Git for data

Imagine a world where Git and MySQL got together and had a baby. They would name that baby, Dolt.

Dolt is a SQL database that you can fork, clone, branch, merge, push and pull just like a git repository. Connect to Dolt just like any MySQL database to run queries or update the data using SQL commands. Use the command line interface to import CSV files, commit your changes, push them to a remote, or merge your teammate’s changes.

All the commands you know for Git work exactly the same for Dolt. Git versions files, Dolt versions tables.

The authors also created DoltHub where you can host and share your Dolt databases.

Retool Icon Retool – Sponsored

The state of internal tools in 2020

logged by @logbot permalink

Earlier this year Retool ran a survey of developers and builders on internal tools to learn how people build and maintain their internal tooling. The survey had 310 respondents, mostly in SaaS, Finance, and Retail, and mostly from mid sized (2-500 employees) companies. This report outlines the results and insights they learned.

The tldr is internal tooling is really important, but rarely gets the time and focus they need.

Try Retool today

Python github.com

`whereami` uses WiFi signals & ML to locate you (within 2-10 meters)

If you’re adventurous and you want to learn to distinguish between couch #1 and couch #2 (i.e. 2 meters apart), it is the most robust when you switch locations and train in turn. E.g. first in Spot A, then in Spot B then start again with A. Doing this in spot A, then spot B and then immediately using “predict” will yield spot B as an answer usually. No worries, the effect of this temporal overfitting disappears over time. And, in fact, this is only a real concern for the very short distances. Just take a sample after some time in both locations and it should become very robust.

The linked project was “almost entirely copied” from the find project, which was written in Go. It then went on to inspire whereami.js. I bet you can guess what that is.

Dropbox Tech Blog Icon Dropbox Tech Blog

Our journey from a Python monolith to a managed platform

Dropbox Engineering tells the tale of their new SOA:

The majority of software developers at Dropbox contribute to server-side backend code, and all server side development takes place in our server monorepo. We mostly use Python for our server-side product development, with more than 3 million lines of code belonging to our monolithic Python server.

It works, but we realized the monolith was also holding us back as we grew.

This is an excellent, deep re-telling of their goals, decisions, setbacks, and progress. Here’s the major takeaway, if you don’t have time for a #longread:

The single most important takeaway from this multi-year effort is that well-thought-out code composition, early in a project’s lifetime, is essential. Otherwise, technical debt and code complexity compounds very quickly.

A List Apart Icon A List Apart

The future of web software is HTML-over-WebSockets

Matt E. Patterson writing for A List Apart:

The dual approach of marrying a Single Page App with an API service has left many dev teams mired in endless JSON wrangling and state discrepancy bugs across two layers. This costs dev time, slows release cycles, and saps the bandwidth for innovation.

What’s old is new again (with a twist):

a new WebSockets-driven approach is catching web developers’ attention. One that reaffirms the promises of classic server-rendered frameworks: fast prototyping, server-side state management, solid rendering performance, rapid feature development, and straightforward SEO. One that enables multi-user collaboration and reactive, responsive designs without building two separate apps. The end result is a single-repo application that feels to users just as responsive as a client-side all-JavaScript affair, but with straightforward templating and far fewer loading spinners, and no state misalignments, since state only lives in one place.

I won’t spoil the ending where Matt places his bet on the best toolkit to accomplish this, but let’s just say you’ve probably heard of it. Whoops!

Microsoft github.com

Power Fx is Microsoft's new low-code programming language

I’ve been skeptical of the recent no-code movement (which from my perspective is mostly pushed by startups trying to create a market), but this low-code concept seems much more fitting for 2021 and useful in general:

Microsoft Power Fx is a low-code general purpose programming language based on spreadsheet-like formulas. It is a strongly typed, declarative, and functional language, with imperative logic and state management available as needed.

What’s ironic about Power Fix (as of today) is that there is literally no code in the repo:

Power Fx started with Power Apps canvas apps and that is where you can experience it now. We are in the process of extracting the language from that product so that we can use it in more Microsoft Power Platform products and make it available here for you to use.

What they do have today is a start on the language docs. Over time this repo will transition from no-code, to low-code, and eventually to full-code. If everything goes as planned…

Teleport Icon Teleport – Sponsored

Setting up an SSH jump server

logged by @logbot permalink

An SSH jump server is a regular Linux server, accessible from the Internet, which is used as a gateway to access other Linux machines on a private network using the SSH protocol. The purpose of an SSH jump server is to be the only gateway for access to your infrastructure reducing the size of any potential attack surface.

In this blog post we’ll cover how to set up an SSH jump server. We’ll cover two open source projects.

  1. A traditional SSH jump server using OpenSSH. The advantage of this method is that your servers already have OpenSSH pre-installed.
  2. A modern approach using Teleport, a newer open source alternative to OpenSSH.

Both of these servers are easy to install and configure, are free and open source, and are single-binary Linux daemons.

The Changelog The Changelog #430

Darklang Diaries

This week on The Changelog, Jerod is joined by Paul Biggar the creator of Dark, a new way to build serverless backends. Paul shares all the details about this all-in-one language, editor, and infrastructure, why he decided to make Dark in the first place, his view on programming language design, the advantages Dark has as an integrated solution, and also why it’s source available, but NOT open source.

The Register Icon The Register

Brave buys a search engine, promises no tracking, no profiling

Smart move by Brendan Eich and the Brave team:

Brave Search, the company insists, will respect people’s privacy by not tracking or profiling those using the service. And it may even offer a way to end the debate about search engine bias by turning search result output over to a community-run filtering system called Goggles.

The service will, eventually, be available as a paid option – for those who want to pay for search results without ads – though its more common incarnation is likely to be ad-supported, in conjunction with Brave Ads.

Privacy as a first-class feature continues to trend up! 📈

Python github.com

A semantic diffing tool for tree-like structures (JSON, XML, HTML, etc)

Graphtage is a commandline utility and underlying library for semantically comparing and merging tree-like structures, such as JSON, XML, HTML, YAML, plist, and CSS files. Its name is a portmanteau of “graph” and “graftage”—the latter being the horticultural practice of joining two trees together such that they grow as one.

A semantic diffing tool for tree-like structures (JSON, XML, HTML, etc)

Pēteris Caune healthchecks.io

Healthchecks – a watchdog for your cron jobs

I’ve wanted this for years, but apparently never enough to build it myself:

A passive monitoring tool written in Python & Django. Set up your cron jobs, backup scripts, weekly email sending scripts, nightly data import jobs etc. to ping this service when they complete. When they don’t send a ping on time, you receive an alert.

The service offers a generous 20 free checks before you start paying. And since it’s an open source Django app, you can set it up to run on your own infrastructure too.

Practices bdickason.com

Speed is the killer feature

Brad Dickason:

… teams consistently overlook speed. Instead, they add more features (which ironically make things slower). Products bloat over time and performance goes downhill.

New features might help your users accomplish something extra in your product. Latency stops your users from doing the job they already hire your product for.

Slow ui acts like tiny papercuts. Every time we have to wait, we get impatient, frustrated, and lose our flow.

Practical AI Practical AI #124

Green AI 🌲

Empirical analysis from Roy Schwartz (Hebrew University of Jerusalem) and Jesse Dodge (AI2) suggests the AI research community has paid relatively little attention to computational efficiency. A focus on accuracy rather than efficiency increases the carbon footprint of AI research and increases research inequality. In this episode, Jesse and Roy advocate for increased research activity in Green AI (AI research that is more environmentally friendly and inclusive). They highlight success stories and help us understand the practicalities of making our workflows more efficient.

0:00 / 0:00