The Changelog The Changelog #435  – Pinned

The future of the web is HTML over the wire

This week we’re joined by long-time web developer Matt Patterson. Earlier this year Matt wrote an evocative article for A List Apart called The Future of Web Software Is HTML-over-WebSockets. In this episode Matt sits down with Jerod to discuss, in-detail, why he believes the future of the web is server-rendered (again) and how Ruby on Rails is well positioned to bring that future to us today.

Opensource.com Icon Opensource.com

Reasons I use the git cherry-pick command

Here is an example to help you understand the importance of cherry-picking. Suppose you have made several commits in a branch, but you realize it’s the wrong branch! What do you do now? Either you repeat all your changes in the correct branch and make a fresh commit, or you merge the branch into the correct branch. Wait, the former is too tedious, and you may not want to do the latter. So, is there a way? Yes, Git’s got you covered.

I’m a pretty big fan of cherry-pick, too. I don’t use it often, but every time I do… 👨‍🍳💋

Tooling tech.channable.com

Nix is the ultimate DevOps toolkit

At Channable we use Nix to build and deploy our services and to manage our development environments. This was not always the case: in the past we used a combination of ecosystem-specific tools and custom scripts to glue them together. Consolidating everything with Nix has helped us standardize development and deployment workflows, eliminate “works on my machine”-problems, and avoid unnecessary rebuilds. In this post we want to share what problems we encountered before adopting Nix, how Nix solves those, and how we gradually introduced Nix into our workflows.

If Nix is intriguing to you, you’re going to love an upcoming episode of The Changelog. 😉

CloudZero Icon CloudZero – Sponsored

Is that new feature you're about to ship even profitable?

logged by @logbot permalink

If cloud cost can make or break profitability of that new feature you’re about to ship, wouldn’t you want to know about it? For many teams, cloud cost is out of control. However, teams who use CloudZero have a competitive advantage called “cloud cost intelligence.”

Cloud cost intelligence provides businesses real-time visibility into the cost consequence of every engineering decision so COGs and margins can be controlled. It’s relevant, context-rich data in alignment with products, features, teams, and the overall business to enable engineers to quickly understand the source and impact of any cost.

Learn more and get started.

Tooling github.com

fselect – find files with SQL-like queries

This doesn’t aim to entirely replace find and ls, but if you already know SQL (like many of us do), why not be able to leverage that knowledge for your more advanced file-finding needs? Here’s a couple of examples so you get the idea:

Find temporary or config files (full path and size):

fselect size, path from /home/user where name = '*.cfg' or name = '*.tmp'

Use aggregate functions:

fselect "MIN(size), MAX(size), AVG(size), SUM(size), COUNT(*) from /home/user/Downloads"

Find by date and time intervals:

fselect path from /home/user where modified gte 2017-05-01

Apple swift.org

Apple releases a collection of Swift data structure implementations

Karoy Lorentey with the announcement:

The Swift Standard Library currently implements the three most essential general-purpose data structures: Array, Set and Dictionary. These are the right tool for a wide variety of use cases, and they are particularly well-suited for use as currency types. But sometimes, in order to efficiently solve a problem or to maintain an invariant, Swift programmers would benefit from a larger library of data structures.

We expect the Collections package to empower you to write faster and more reliable programs, with less effort.

This joins the Swift Algorithms and Swift Numerics packages in what is becoming a valuable, open source resource for Swift developers around the world to use.

LaunchDarkly Icon LaunchDarkly – Sponsored

Software release management best practices

logged by @logbot permalink

For software development teams, a thorough release management plan is the difference between a smooth launch and a frantic scramble where you’re putting out fires all day.

In this post from our friends at LaunchDarkly, they outline the five phases of releasing software, explain the essential roles in the process, and share best practices for a successful launch.

InfoQ Icon InfoQ

Crystal goes 1.0

Congrats to the entire Crystal team and community on the big One O!

Crystal, a new object-oriented, compiled systems programming language that aims to blend the conciseness and friendliness of Ruby with the efficiency of C, recently released its first major version. Crystal 1.0 has a syntax close to Ruby’s and features statically inferred types, C bindings, and macros. Crystal may attract developers with a Ruby/Rails, Elixir/Phoenix background.

This has been a long time in the making. Can you believe it’s been five years since we had Ary and Juan on The Changelog? On that episode we discussed what it would take to get Crystal to 1.0…

Google supremecourt.gov

SCOTUS declares Google's copying of the Java SE API fair use

In a copyright decision that will undoubtedly have ripple effects on the software industry for years to come, the Supreme Court of the United States held that:

Google’s copying of the Java SE API, which included only those lines of code that were needed to allow programmers to put their accrued talents to work in a new and transformative program, was a fair use of that material as a matter of law.

This quote pulled from the linked opinion by a hacker news commenter drives right in to the heart of the matter:

“Google copied approximately 11,500 lines of declaring code from the API, which amounts to virtually all the declaring code needed to call up hundreds of different tasks. Those 11,500 lines, however, are only 0.4 percent of the entire API at issue, which consists of 2.86 million total lines. In considering “the amount and substantiality of the portion used” in this case, the 11,500 lines of code should be viewed as one small part of the considerably greater whole. As part of an interface, the copied lines of code are inextricably bound to other lines of code that are accessed by programmers. Google copied these lines not because of their creativity or beauty but because they would allow programmers to bring their skills to a new smartphone computing environment.”

SQLite antonz.org

SQLite is not a toy database

Anton Zhiyanov lays out why he thinks SQLite is awesome:

  • SQLite is the most common DBMS in the world, shipped with all popular operating systems.
  • SQLite is serverless.
  • For developers, SQLite is embedded directly into the app.
  • For everyone else, there is a convenient database console (REPL), provided as a single file (sqlite3.exe on Windows, sqlite3 on Linux / macOS).

This echoes Ben Johnson’s sentiments in our recent conversation with him about Litestream. If you consider SQLite as merely a good databse for things that don’t matter all that much, maybe it’s time to reconsider…

Bitcoin cryptomaton.org

How to create a trading bot that buys Bitcoin when Elon Musk tweets about it

Why do something like this? For the fun of it, mostly. Definitely not for this reason:

By creating a crypto trading bot that buys bitcoin every time the Tesla boss tweets about it you can rest assured that you are going to catch a VIP seat on the rocket that will slingshot right past the moon and make its way directly to Mars, where Elon spends most of the summer months due to its cold weather and dry climate.

Lulz aside, I love posts like this because they demonstrate how someone tied together a bunch of disparate things (Twitter API, trading API, regular expressions, etc.) to accomplish a real thing, no matter how silly/foolish that real thing is.

Also check out part 2 where he adds sentiment analysis. (Although, it’s hard for me –a human– to decipher Elon Musk’s tweets, so the results of said analysis are probably no better than flipping a coin.)

Lj Miranda ljvmiranda921.github.io

How to improve software engineering skills as a researcher

In which Lj Miranda proposes an exercise that data scientists can do to learn relevant software skills (with a tangible output in the end).

Create a machine learning application that receives HTTP requests, then deploy it as a containerized app.

I’m willing to wager that this is a worthy goal even if you’re coming from the software engineering side of the spectrum. Don’t worry, he’ll walk you through the steps.

Podcasts from Changelog

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

0:00 / 0:00