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.
News and podcasts for developers
Subscribe to get the latest news and podcasts for developers in your inbox, every week.
We make it super easy to keep up with developer news that matters.
Already a member? Sign in
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… 👨🍳💋
Jerod and Nick discuss the big Deno news, play a ridiculous new game in honor of April Fool’s Day, then give shout outs to some awesome software projects we love.
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 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.
Jose Valim (the creator of Elixir) recently asked developers from all programming languages to contribute a solution to a short coding challenge based on a real world use case that I had come up while building an Elixir application. Here’s what happened.
Testing can be hard, how to test, where to test, what is a good test? All questions that can be deceptively difficult to answer. In this episode we talk about the trials and tribulations of testing and why it can be argued to be especially difficult in Go.
This doesn’t aim to entirely replace
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
Karoy Lorentey with the announcement:
The Swift Standard Library currently implements the three most essential general-purpose data structures:
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.
Nikola Mrkšić, CEO & Co-Founder of PolyAI, takes Daniel and Chris on a deep dive into conversational AI, describing the underlying technologies, and teaching them about the next generation of voice assistants that will be capable of handling true human-level conversations. It’s an episode you’ll be talking about for a long time!
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.
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…
We have to stop insisting that software updates, etc. need to be distributed over HTTPS. Let me tell you why this is not an ideal way of going about it.
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.”
Lip Gloss takes an expressive, declarative approach to terminal rendering. Users familiar with CSS will feel at home with Lip Gloss.
I love how much love is going in to terminal UIs these days 👏
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…
This week Alexander Neumann takes Jerod on a tour of Restic, the world-class backup solution that’s fast, secure, and cross-platform. We discuss why he created Restic in the first place, how (and why you should) you use it, some of its more interesting technical bits, lessons learned over the years building and maintaining a community, and more of course.
This is a spare time project, so keep that in mind. It runs on Linux, macOS, Windows 10, and FreeBSD.
KBall, Amal, and Nick dive into key dimensions of what makes a developer work environment good – or bad. They discuss systemic factors, individual factors, what you can do about it, and a proposed scoring system for good work environments.
Non dependent on operating systems, Penpot is web based and works with open web standards (SVG). For all and empowered by the community.
Built with Clojure and has been in-development (in some form or another) since 2015.
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.)
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.