The Changelog The Changelog #371  – Pinned

Re-licensing Sentry

David Cramer joined the show to talk about the recent license change of Sentry to the Business Source License from a BSD 3-clause license. We talk about the details that triggered this change, the specifics of the BSL license and its required parameters, the threat to commercial open source products like Sentry, his concerns for the “open core” model, and what the future of open source might look like in light of protections-oriented source-available licenses like the BSL becoming more common.

read more

Opensource.com Icon Opensource.com

Why choose Xfce for your lightweight Linux desktop

The Xfce desktop has a specific, self-stated goal: to be fast on a system with low resources while being visually appealing and user-friendly. It’s been the de facto choice for lightweight Linux distributions (or remixes) for years and is often cited by its fans as a desktop that provides just enough to be useful, but never so much as to be a burden. I’ve never used Xfce myself, but I’ve heard plenty of my fellow devs sings its praises over the years.

read more

Rails matestack.org

Rapidly create interactive UIs in pure Ruby

I like the why behind Matestack: Implementing two separate systems (backend-api, frontend-app) is a pain: Two different code bases, two repositories to maintain, two different deployment schedules, two test environments, two everything… Being a small dev team, we decided not to adopt this modern web development complexity and decided to create… Matestack! If you have 30 minutes and want an easy button to learn all about it, Jonas Jabari gave a talk on it at Ruby Unconf 2019.

read more

DigitalOcean Icon DigitalOcean – Sponsored

How to build and install Go programs

From the how to code in Go series on DigitalOcean’s Community site from our friends at Gopher Guides (Mark Bates & Cory LaNou). In Go, the process of translating source code into a binary executable is called building. Once this executable is built, it will contain not only your application, but also all the support code needed to execute the binary on the target platform. This means that a Go binary does not need system dependencies such as Go tooling to run on a new system, unlike other languages like Ruby, Python, or Node.js.

read more

logged by @logbot permalink

Marko Saric markosaric.com

Fighting back against Google AMP

Marko Saric shared 6 ways to fight back against Google AMP and make your sites faster than AMP without using AMP. There’s a popular thread on Hacker News with lots of people complaining about how Google AMP (Accelerated Mobile Pages) is ruining their mobile web experience. This week I also got two AMP links sent to me via Telegram and to see those Google URLs replacing unique domain names made me a bit sad on behalf of the owners of those sites. As a site owner myself, it feels like sovereignty of a website being taken away. Here’s how you can fight back against Google AMP…

read more

Jason Warner medium.com

GitHub's CTO on architecting engineering teams that scale

Get some wisdom from Jason Warner, CTO of GitHub on building and leading engineering teams that scale. If building a high-powered engineering team is hard, successfully scaling it through hyper-growth is near impossible. The culture of any organization is shaped by the worst behavior the leader is willing to tolerate. Culture isn’t just about the “feels;” it’s about accountability and behavior. Whatever you do as a leader and whatever you tolerate becomes the standard for your entire organization.

read more

Algorithms technology.mlblogs.com

How does MLB check the accuracy of pitch tracking at ballparks?

I’ve often wondered how this system works. Fascinating stuff. Once the initial calibration is complete, a pneumatic cannon is used to launch pitches over the plate at 95 mph through the calibrated volume as in Figure 7. These pitches are filmed by each camera until around 100 pitches have been captured. You had me at “pneumatic cannon” 🤩

read more

Heroku Icon Heroku – Sponsored

🎧 GraphQL's benefits and costs

This week’s episode from Heroku’s Code[ish] podcast covers the costs and benefits of GraphQL. GraphQL is a querying language with the aim of increasing the productivity of frontend and backend developers. It can make working with React easier, be used as an API for third-party clients, and allow for feature-rich applications to request precisely the data they need. Like any part of your stack, GraphQL isn’t a panacea. The language is still being developed, and has some limitations. Tanmai Gopal, the CEO of Hasura, guides us through the pros and cons of using GraphQL in your application.

read more

logged by @logbot permalink

CSS-Tricks Icon CSS-Tricks

The rising complexity of JAMStack sites and how to manage them

When you add anything with user-generated content or dynamic data to a static site, the complexity of the build process can become comparable to launching a monolithic CMS. How can we add rich content to static sites without stitching together multiple third-party services? Every time I get into the nitty gritty of JAMStack implementations with anything but static content sites I end up saying (or merely thinking to myself), “This sounds like a whole lot of work to avoid some server-side rendering…” This piece on CSS Tricks appears to back up that premonition: Despite my enthusiasm, I’m often disheartened by the steep complexity curve I typically encounter about halfway through a JAMstack project. Normally the first few weeks are incredibly liberating. It’s easy to get started, there is good visible progress, everything feels lean and fast. Over time, as more features are added, the build steps become more complex, multiple APIs are added, and suddenly everything feels slow. In other words, the development experience begins to suffer. The good news is there are many smart, talented folks working on solving the various challenges that JAMStack sites face.

read more

EFF Icon EFF

It's official: EFF's Certbot goes 1.0

Certbot was first released in 2015, and since then it has helped more than two million website administrators enable HTTPS by automatically deploying Let’s Encrypt certificates. Let’s Encrypt is a free certificate authority that EFF helped launch in 2015, now run for the public’s benefit through the Internet Security Research Group (ISRG). A lot of progress has been made since we first talked about Let’s Encrypt on The Changelog.

read more

Bill Kennedy ardanlabs.com

The why and what of Go modules

If you’re looking for a thorough primer of Go modules, Bill Kennedy has you covered: In this post, I will focus on the transition from GOPATH to modules and the problems modules are solving. Along the way, I will provide just enough of the semantics so you can have a better understanding of how modules work at a high level. Maybe more importantly, why they work the way they do. When you’re done with this, check out part 2 of the series about projects, dependencies, and gopls.

read more

PostgreSQL pg-structure.com

Extract the structure of a Postgres database into JavaScript

When your database is the source of truth, it’s often useful to inspect that truth and reuse it elsewhere in your application. import pgStructure from "pg-structure"; async function demo() { const db = await pgStructure({ database: "db", user: "u", password: "pass" }, { includeSchemas: ["public"] }); const table = db.get("contact"); const columnNames = table.columns.map(c => c.name); const columnTypeName = table.columns.get("options").type.name; const indexColumnNames = table.indexes.get("ix_mail").columns; const relatedTables = table.hasManyTables; }

read more

Swift github.com

A DSL for writing type-safe HTML, XML, and RSS in Swift

It can be used to build websites, documents and feeds, as a templating tool, or as a renderer for higher-level components and tools. It’s primary focus is on static site generation and Swift-based web development. I’ve always enjoyed using DSL’s like this. let html = HTML( .head( .title("My website"), .stylesheet("styles.css") ), .body( .div( .h1("My website"), .p("Writing HTML in Swift is pretty great!") ) ) )

read more

Awesome Lists wisdom.engineering

Unicode is awesome!

Prior to Unicode, international communication was grueling- everyone had defined their separate extended character set in the upperhalf of ASCII (called Code Pages) that would conflict- Just think, German speakers coordinating with Korean speakers over which 127 character Code Page to use. Thankfully the Unicode standard caught on and unified communication. What follows is an awesome list of Unicode “tidbits, packages, and resources”. And of course there’s a sub-section on everyone’s favorite: emojis

read more

Databases github.com

A NewSQL relational database designed to process time-series data, faster

Our approach comes from low-latency trading; QuestDB’s stack is engineered from scratch, zero-GC Java and dependency-free. QuestDB ingests data via HTTP, PostgresSQL wire protocol, Influx line protocol or directly from Java. Reading data is done using SQL via HTTP, PostgreSQL wire protocol or via Java API. The whole database and console fit in a 3.5Mb package. According to the great knowledge base in the sky, NewSQL is, “a class of relational database management systems that seek to provide the scalability of NoSQL systems for online transaction processing workloads while maintaining the ACID guarantees of a traditional database system.”

read more

Cloud blog.acolyer.org

Local-first software: you own your data, in spite of the cloud

Watch out! If you start reading this paper you could be lost for hours following all the interesting links and ideas, and end up even more dissatisfied than you already are with the state of software today. You might also be inspired to help work towards a better future. I’m all in :). I co-sign that sentiment. When the author says “this paper” they are referring to this paper which they are about to summarize. If you haven’t considered local-first software before, you should know that there are seven key properties to it, which are described in detail in the paper and in brief in the summary.

read more

Podcasts from Changelog

Weekly shows about developer culture, software development, open source, building startups, artificial intelligence, and the people involved.

0:00 / 0:00