Celebrating Eleventy 2.0 🎉
Zach Leatherman returns to the show to discuss his progress over the last year since going full-time on Eleventy, including Eleventy 2.0, the release of WebC, and the state of static site generators.
Zach Leatherman returns to the show to discuss his progress over the last year since going full-time on Eleventy, including Eleventy 2.0, the release of WebC, and the state of static site generators.
Max Countryman wrote up a framework for prioritizing tech debt, shadcn builds a copy/paste-able UI component library in public, Justin Etheredge shares 20 things he’s learned in his 20 years as a software engineer, Jacob Stopak’s git-sim lets you easily visualize git operations without affecting your repo & Mattias Wadman implemented jq in jq.
This was written over a year ago, but since it took Justin Etheredge 20 years to acquire these 20 pithy (his word) pieces of wisdom, I don’t think it’ll be going stale anytime soon. My three favs, as a sampler:
Heroku’s free plans officially reach EOL, Swyx explains the mixed reaction to Stable Diffusion 2.0, a real Twitter SRE explains how it continues to stay up even with ~80% gone, Tyler Cipriani tells us about one of Git’s coolest, most unloved features & we chat with Joel Lord about brewing beer with IoT & JavaSCript at All Things Open 2022.
Oh, and help make this year’s state of the “log” episode awesome by lending your voice!
This repo contains the source code for [the Udemy course](Build 20 mini frontend projects from scratch with HTML5, CSS & JavaScript (No frameworks or libraries)) of the same name. Each mini project has its own README and live demo, too.
The 2.0 release of Github Desktop shipped yesterday. Here’s a quick breakdown of what’s new…
You can resolve merge conflicts more easily, co-author commits to share credit with others, and check out your GitHub pull requests. And with the 2.0 release, rebasing and stashing are now also supported on GitHub Desktop—the two most requested features.
There’s a major new version of Traefik in the works:
For several months, the maintainer team has been working on a deep refactoring of the codebase to provide the firm foundations for the next iteration of Traefik, and we are ready to share this vision with you.
Today, we’re announcing Traefik 2.0 alpha, the edge router built with the future in mind.
The new core is here, help us finalize Traefik with the features you want!
Everyone’s favorite package manager for macOS released version 2.0 with official support for Linux and Windows 10 (with Windows Subsystem Linux). Cross-platform setup scripts just got a whole lot easier.
Congrats to the Bundler team (and entire Ruby community) for shipping an awesome update to this critical piece of infrastructure! Bundler truly changed the game for Rubyists around the world and we continue to benefit from its goodness.
What’s new in 2.0? A lot, but I’ll cherry pick a minor change that made me smile:
Changed the
github: 'some/repo'
gem source to use thehttps
schema by default
Finally! That’s worth the price of admission from where I’m sitting. Also:
With the release of Bundler 2, the core team now kicks off a new release schedule for Bundler: we’re going to aim for one major version release per year, so we can drop support for older Ruby and RubyGems versions around the same time that the Ruby core team does. Being able to stop supporting Ruby 1.8.7 is a huge relief!
To the future!
My biggest take away from this epic announcement from ZEIT? The support of the majestic monorepo!
…Now 2.0 enables what we will call The Majestic Monorepo, inspired by a similarly named essay by DHH, creator of Ruby on Rails (The Majestic Monolith).
We don’t agree that you should be orchestrating a big server abstraction (a monolith), but we believe you should be able to collocate your APIs and your business logic in a single place, with a cohesive deployment story.
It looks, feels and deploys like a monolith, with none of its downsides.
…but there is SO MUCH MORE to this announcement. Also, we talked a bit about David’s idea of The Majestic Monolith on The Changelog #286.
Daniel Stenberg joined the show to talk about 20 years of curl, what’s new with http2, and the backstory of QUIC - a new transport designed by Jim Roskind at Google which offers reduced latency compared to that of TCP+TLS+HTTP/2.
Suz Hinton, Alex Sexton, and Nick Nisi talk with Dylan Schiemann about Dojo 2.0, managing an open source project, web standards, and more.
This was posted back in March, but it’s news to me:
A long-running project has been JIT-compiling SQL queries in PostgreSQL by making use of LLVM’s just-in-time compilation support, rather than passing SQL queries through Postgres’ interpreter. With the LLVM JIT’ed queries, more efficient code is generated by being able to make more use of run-time information and can especially help in increasing the performance of complex SQL queries.
JIT-compiling expressions for PostgreSQL has been found to be up to ~20%+ faster in database tests like TPC-H. Creating indexes was found to be even 5~19% faster with this JIT mode
Hopefully this feature will progress quick enough to land in Postgres 11. 🙏
In this post, we highlight how CockroachDB 2.0 enables your data layer to evolve with your business: JSON enables rapid iteration in response to changing customer requirements; major throughput and scalability improvements help you handle huge increases in user request volumes; and a groundbreaking toolkit for managing multi-regional workloads lets you deliver low-latency applications to customers anywhere in the world.
Lots to ingest here. Also listen to Go Time #73 all about CockroachDB. 👇
I’m excited to finally be able to introduce you to Changelog 2.0! This might seem like a simple visual update, but trust me when I tell you this is literally the biggest launch we’ve ever done.
tl;dr — we launched a new brand and CMS to power the future of our platform.
Eran Hammer joined the show to talk about updates to Hapi.js, Node.js, OAuth, and deep discussions about Oz – Eran’s replacement for OAuth 2.0.
Adam and Jerod talk with Tom Dale and Yehuda Katz about the road to Ember 2.0 and the complete front-end stack it is today.
Scratch is an educational programming language used by students, educators, and all ages to create stories, art, animation, movies and much more. The team from MIT has just open sourced the Scratch 2.0 editor code.
If you're interested in Flash development take a look at the current issues and create a pull request or contribute by reporting bugs. Core structure changes will require collaboration with the team. According to MIT statistics more than 3 million users have registered so even a small contribution can have a big impact.
Want to teach Scratch to your own kids or use it in a local technology club? You'll find these kid-tested resources handy:
Consider joining the Scratch Education Group or contributing to development issues if you want to get involved.
I’m excited about our future. In the past few weeks we’ve seen our membership base grow quite a bit and lots of people are enjoying this weekly email. I’m pretty happy about that. If you’re a subscriber and you’ve been enjoying the email, make sure you tell your developer friends so they can subscribe too. Don’t keep us a secret! :)
Weekly - Issue #20 – Facebook chooses Mercurial, Unix Shell’s if, Sweet.js, Gittip Button, Calendar.vim, 15 Docker tips, Better Vim, and Travis CI is now a partner!
Become a member today for $20 instead of $40 with the promo code happy2014
and get access to special members only benefits and offers from our trusted partners.
We are pleased to announce our latest partner, Travis CI!
Travis CI loves The Changelog and they want to give our members 20% off of any plan for an entire year!
The author and maintainers of the popular Requests library are working on a crucial version 2.0 release. As you can see this new release will include a large number of bug fixes and features which are backwards incompatible with the 1.x branch of Requests. Not to worry though, the transition from 1.x to 2.x will be far less painful than the transition from 0.x to 1.x. Most of the backwards incompatibility arises from how 2.x will handle headers (as will be explained below).
Perhaps the most exciting part of this upcoming release is the improved proxy support. Version 2 will include support for the CONNECT
verb which will make talking to HTTPS services possible from behind a proxy. For example: anyone who wishes to use Requests on PythonAnywhere’s free tier will be able to once version 2 is released. As noted in the pull request, this would not be possible without the amazing work of the contributors to urllib3 – the library on top of which Requests is implemented.
Beyond adding proxies, there was a particularly nasty bug on Python 3 where some headers could not be set using native strings. As this was a backwards incompatible change this is only being fixed for the first time in version 2.0. If you have run into this problem your headaches will be long gone.
Finally, if you are a Requests user who creates their requests carefully by hand, the new method on the Session
object will prepare them for you! You no longer have to jump through extra hoops to include the cookies stored on the Session
.
As soon as Requests 2.0 is out, we will have a full review here, so be sure to subscribe to our Python tag and The Changelog Weekly for further updates.
The much beloved ack — a text search tool akin to grep, but tuned specifically for searching code — reached the 2.0 milestone this week. The new release brings with it a bevy of changes, most notably a more liberal default search algorithm and the ability to load multiple ackrc files.
Ack has historically made its value proposition by being “better than grep”, but that has also changed with the new release. Andy Lester (ack’s author) replied to a comment on Hacker News asking how ack 2.0’s speed compares to the recently released (and changelog’d) Silver Searcher tool by saying:
It's OK to have two similar tools in your toolbox. When you need the --output option, for example, you use ack. When you want crazy speed, you use ag. You don't have to choose one over the other. That's why I changed the name from "betterthangrep.com" to "beyondgrep.com". There's no need to have a ranking of "I use this over that."
Ack requires Perl 5.8.8+ and that’s it. There are plenty of ways to install it on different systems and there is even a single-file version which can simply be dropped in your PATH and made executable.
Want to get invovled? Ack is developed on GitHub!
The time has come. Ruby 2.0 is here!
From the announcement post on ruby-lang.org:
We are pleased to announce the release of Ruby 2.0.0-p0.Ruby 2.0.0 is the first stable release of the Ruby 2.0 series, with many new features and improvements in response to the increasingly diverse and expanding demands for Ruby.
Enjoy programming with Ruby 2.0.0!
New features include: Keyword arguments, utf-8 default encoding, a new regexp engine (Onigmo) and an asynchronous exception handling API (among others).
If you’re concerned about compatibility, the announcement has this to say about migrating from 1.9 to 2.0.
We have also taken care with the 2.0.0 design to make it compatible with 1.9. It will be easier to migrate from 1.9 to 2.0 than it was from 1.8 to 1.9.
If you’ve played a part in contributioning to Ruby 2.0, we thank you!
Ok, so I’m slow to the take. My ear wasn’t close enough to the ground to get the fact that Ember.js was formerly the Amber.js that was formerly SproutCore 2.0.
Four days after it was announced as Amber.js, it was renamed to Ember.js due to some naming collisions with Amber Smalltalk, a Smalltalk implementation written in JavaScript. After some communication with the folks behind Amber Smalltalk, a discussion was started on Hacker News about what they (then Amber.js) should do.
If you are new to ember.js, Derick Bailey of Watch Me Code and Backbone Training fame shares his initial impressions (compared to backbone), as well as thoughts on handling DOM events.
Also, above I’m linking out to a video of Tom Dale (and Yehuda Katz) discussing ember.js over lunch at Carbon Five. There’s 45 minutes of presentation plus 20 minutes of Q&A.
Kudos to Justin and 43 other contributors for shipping 2.0 of Formtastic, one of the best Rails form builders out there.
Check out Justin’s blog post for a list of improvements.
After 15 beta releases, Sprockets has finally released the big 2.0.
Why’s this a big deal? Well, Sprockets is the gem that’s powering the new asset pipeline in Rails 3.1. It can automatically process, minify, combine, and serve all of your assets in a variety of formats.
If you’re using Rails, I’d recommend upgrading your application to Rails 3.1. Even though it’s still just an RC release, the final is about to come very soon. Then, sprockets is all set up for you. If you’re not on Rails, then you should check out this awesome blog post by Envy Labs. It’ll get you going. Of course, you don’t need to use the Git URL now that version 2 is out.
Check out the source on GitHub and the readme for more details.
Hey everyone! I’m at CodeConf, and I just watched a lightning talk by Kyle Neath: he just pushed GitHub Issues 2.0 to production in front of us! Check it out, you can now add milestones and assign tickets! Badass!
Come say hi if you’re here. And if not, don’t worry, I’ve been taking extensive notes on all the presentations, and will be posting links to slides as well as summaries of the talks on both days.
OAuth 2.0, which aims to simplify OAuth flow, is still a work in progress, but wrapper libraries are already shaping up thanks to interest in Facebook’s support.
Michael Bleigh’s gem provides a nice Ruby wrapper for OAuth2.
sudo gem install oauth2
… and use it like so:
require 'rubygems'
require 'sinatra'
require 'oauth2'
require 'json'
def client
OAuth2::Client.new('api_key', 'api_secret', :site => 'https://graph.facebook.com')
end
get '/auth/facebook' do
redirect client.web_server.authorize_url(
:redirect_uri => redirect_uri,
:scope => 'email,offline_access'
)
end
get '/auth/facebook/callback' do
access_token = client.web_server.access_token(params[:code], :redirect_uri => redirect_uri)
user = JSON.parse(access_token.get('/me'))
user.inspect
end
def redirect_uri
uri = URI.parse(request.url)
uri.path = '/auth/facebook/callback'
uri.query = nil
uri.to_s
end
Collective Idea has released Delayed Job 2.0 from their fork of everyone’s favorite database-driven job queue for Ruby. The latest version supports new database options including MongoMapper and DataMapper.
Version 2.0 is roughly six times faster than 1.8.5 when using the active_record backend:
user system total real
delayed_job 1.8.5 195.670000 14.020000 209.690000 (230.887172)
delayed_job 2.0 36.200000 0.940000 37.140000 ( 39.959233)
What’s even more surprising is that active_record is so much faster than the other two options based on Brandon’s benchmarks:
user system total real
active_record 36.200000 0.940000 37.140000 ( 39.959233)
mongo_mapper 69.270000 3.220000 72.490000 ( 90.783220)
data_mapper 255.620000 2.880000 258.500000 (275.550383)
From Steve Schoger’s announcement tweet:
🤩 All new look! 260 icons redrawn from scratch
🤏 Thinner 1.5px stoke
✨ New 24px solid setAvailable as first-party React and Vue libraries and official Figma components.
The React and Vue libraries are cool, but the coolest part about SVG-based icons is how you can simply copy/paste the HTML directly into your code.