Double Shot #2480
- Merging Multiple SimpleCov Coverage Results - A code snippet to handle this common use case with parallelized testing.
- The Configuration Complexity Curse - A look at CUE as a potential way to tame the increasing thicket of tool-specific declarative configuration files.
- The Service Mesh: What Every Software Engineer Needs to Know about the World's Most Over-Hyped Technology - From William Morgan, who as one of the authors of Linkerd ought to know.
- Passwords Are a Design Problem - And not one with an easy solution, either.
- In Defense of Utility-First CSS - Lots of people don't like the proliferation of small CSS classes, but I'm inclined in this direction myself.
- Bloomberg Beta reading List - A piece of the manual for an early-stage VC firm.
- Hacking JSON Web Tokens (JWTs) - JWTs can be secure (I think). But there are a mighty lot of ways to screw up their implementation.
- Designing durable serverless apps with DLQs for Amazon SNS, Amazon SQS, AWS Lambda - Useful techniques to know if you're all-in on AWS serverless computing.
- 4 lesser-known attack types - Security is hard and it keeps getting harder.
- What makes a programming exercise good? - Thinking about teaching on the internet.
- Zero trust architecture design principles - From the UK's National Cyber Security Centre. The details are in a GitHub repository.
- Scaling Culture: Retain Your Developer Team’s Soul During Fast Growth - A tough task to be sure.
- KnockKnock - I've linked to this MacOS malware scanner before, but it keeps improving & I wouldn't be without it.
- Free Online Tools for Looking up Potentially Malicious Websites - Caveat user, but as far as I can tell this is a safe list.
- Rails 6 adds each_value method to ActionController::Parameters - Another tiny improvement.
Double Shot #2479
- It’s Not Sabotage, They’re Drowning - Adding metrics isn't popular for the people who were there to make the mess.
- Kubernetes production best practices - A curated checklist.
- Ditching Event Platforms for the IndieWeb - Notes towards a federated alternative to paying for Meetup.com.
- Job Titles & Levels: What Every Software Engineer Needs to Know - An in-depth look at the basics.
- How to Deal with 1,000 Failing Specs in a Rails App - Strategies for managing a major version upgrade.
- Ask HN: Do you write tests before the implementation? - I don't ordinarily link to HackerNews threads, but if you worry that you're a Bad Developer for not doing TDD, this one will let you know that you're not alone.
- Four Things Every Product Owner Needs - Good advice from Allan Kelly.
- Handling attachments in Action Text in Rails 6 - How to do it.
Double Shot #2478
- GitHub for Mobile - You can sign up for the beta.
- Docker’s Next Chapter: Advancing Developer Workflows for Modern Apps - They're going to keep making everything better, though it's not clear to me what that really means.
- My complete toolkit for design and productivity - Hardware, software, and websites for a designer who lives quite a bit on the road. I always enjoy seeing the tools that others use.
- Upcoming notification permission changes in Firefox 72 - "Firefox will require explicit user interaction on all notification permission prompts, starting in Firefox 72." And I'm glad to hear it.
- The best way to store your dotfiles: A bare Git repository - A tutorial from Atlassian.
- Build your own React - Learn the architecture by making your own simplified version.
- RailsDB - "Rails Database Viewer and SQL Query Runner."
- The architecture of declarative configuration management - Building up a mental model of infrastructure-as-code tools.
Double Shot #2477
- Makers, Don't Let Yourself Be Forced Into the 'Manager Schedule' - Easy to say. Sometimes hard to do.
- SOLID Is Not Solid - Examining the Single Responsibility Principle - The start of a series rethinking some of the received wisdom of software design.
- Founder's Guide to Building a Developer Tools Business: Part 1 - I can't help thinking that ultimately this will turn out as well as women who made a living by taking in one another's washing.
- Volatile - "Volatile is a key-value pair API that everyone can use." And you do not own the key you pick. Have fun.
- HTMLhell - "A collection of bad practices in HTML, copied from real websites."
- Rails 6 - Action Mailbox tryout - Playing with one of the new frameworks.
- How to sleep at night having a cloud service: common Architecture Do's - High-level overview of common patterns for operating at scale.
- sketchviz - Online service to turn graphviz files into sloppy sketches.
Double Shot #2476
- Microsoft Access: The Database Software That Won’t Die - Access pretty much started my professional software development career. I'm actually pretty happy that it's still in active use.
- Tools for turning descriptions into diagrams - A selection of ways to turn your ideas automatically into pictures, even if you're graphically-challenged.
- AWS CLI v2 Preview Installers Now Available - Looks like AWS is planning a major version update of its command-line tools. Now if only I could find some listing of what's new.
- bash-lib - An "open source library of reusable functions for the bash scripting language."
- Give Firefox A Chance For A Faster, Calmer And Distraction-Free Internet - Alternatively, stop using those freaking phone-home track-everything browsers.
- Google Begins Testing Extension Manifest V3 in Chrome Canary - For example, do you really want to stick with a browser that is deliberately breaking ad blocking?
- A programmer’s work is never done - Because there are always new things to learn & update.
- Bats-core - "Bats is a TAP-compliant testing framework for Bash."
Double Shot #2475
- GraphQLEditor - "Create a schema by joining visual blocks. GraphQLEditor will transform them into code."
- Optimize your Front End Applications by migrating from Moment to Dayjs - Smaller code with less functionality is good if you don't need more.
- The JS library distribution dilemma: NPM or URL? - Reasons why you might not want to just serve your code through a package manager.
- How to install GalliumOS on a chromebook using chrx - I run quite a bit of stuff on a Chromebook this way. It works. I suspect I could move to an all-online dev flow and never buy another expensive laptop.
- Updates to the Git Commit Graph Feature - Optimizations for very large repos that benefit all of us.
- Mirantis acquires Docker Enterprise - Might be about time to start thinking about a post-Docker world, since the flip side of this is that Docker dev tools are struggling.
- We Can Choose an Internet Without Surveillance - Mozilla is matching donations to Tor.
- The GitHub Arctic Code Vault - A cute PR stunt from GitHub: putting a code archive in Svalbard. Personally I think the seed vault is about a zillion times more likely to be useful in the end times.
Double Shot #2474
- Modern Data Practice and the SQL Tradition - "Distributed systems like MongoDB and ElasticSearch are money-hungry beasts and can kill your technology and human resources budget."
- System design hack: Postgres is a great pub/sub & job server - Maybe you don't need to get fancy to manage background jobs.
- Insent.ai - Our Company Retreat for the End of 2019 - Managing an offsite for a small startup.
- clerq - Rubygem to build up complex requirements documents from small MarkDown chunks.
- Curl to shell isn't so bad - If you've chosen to trust a vendor, this isn't any worse than running their giant opaque makefile.
- Why Everyone Working in DevOps Should Read The Toyota Way - Because getting your notion of "lean" from secondary sources is suboptimal.
- An always-available, online-capable Raspberry Pi in your pocket - Assuming you have a Mac this is a way to integrate the two.
- SSH Handshake Explained - In case you want to understand what's going on behind those three simple keystrokes.
Double Shot #2473
- Postgres Checkup - A "new kind of diagnostics tool for a deep analysis of a Postgres database health. It detects current and potential issues with database performance, scalability and security. It also produces recommendations on how to resolve or prevent them."
- The new dot com bubble is here: it’s called online advertising - It was over a decade ago I ran some experiments and decided that AdWords was a waste of money for all of my projects. This article makes the same point on a much larger scale.
- Re-Licensing Sentry - One of the more sensible pieces I've seen about trying to find a workable license for commercial open source code.
- Invisible Captcha - "Unobtrusive and flexible spam protection for Rails apps."
- RSS to ActivityPub Converter - "This is a server that lets users convert any RSS feed to an ActivityPub actor that can be followed by users on ActivityPub-compliant social networks like Mastodon."
- Sane software manifesto - A whole raft of friendly practices beyond just being open source.
- How Discord achieves native iOS performance with React Native - Discord has made my life much worse but this is still a fascinating read about optimization.
- Pondering a Monorepo Version Control System - "How a VCS designed for monorepos would look like and why I don't build it."
Double Shot #2472
- RailsSameSiteCookie - Some hackery to make Rails APIs work better with upcoming Chrome changes.
- Recursive Sans & Mono - A font that lets you twiddle a lot of knobs to customize its look.
- We built network isolation for 1,500 services to make Monzo more secure - A tale of large-scale microservice architecture redesign on the way to a zero-trust network.
- Managing Rails schema and data migrations without losing your mind - Some best practices to avoid the common "oh the migrations don't really run from scratch" mess.
- Deep dive into Minitest - Investigating the internals.
- Design better data tables - There are a whole raft of things to consider as you build a tabular UI.
- Visual Studio Online -Cloud IDE from Microsoft.
- Rails 6.0.1 released - Darn it, I'm behind again.
Double Shot #2471
- The Project Jengo Saga: How Cloudflare Stood up to a Patent Troll – and Won! - I'm happy there are some organizations with deep pockets still fighting.
- Kafka Gotchas – The Must-Know - Some hard-earned knowledge here.
- Back to windows after twenty years - DHH tried. Spoiler alert: it did not go well.
- Cross domain session sharing in Rails - Part 1 and Cross domain session sharing in Rails - Part 2</strong> - Using devise to make life a bit easier for users.
- Build your own (insert technology here) - A bunch of links to tutorials to help understand how things work.
- Forecasting synthetic metrics. - A tool for judging future risk and iterating.
- Facebook Libra is Architecturally Unsound - Even apart from being an asinine idea in the first place.
- Why Standups are Useless and How to Run Great Product Team Meetings - There seems to be a growing anti-standup backlash these days. In an all-remote company, I still find them valuable.
Double Shot #2470
- Announcing sshign - "sshign uses your private SSH key to sign arbitrary chunks of data. The resulting signature can then be verified using your public SSH key."
- PostgREST - "PostgREST is a standalone web server that turns your PostgreSQL database directly into a RESTful API. The structural constraints and permissions in the database determine the API endpoints and operations."
- Stop using ridiculously low DNS TTLs - A look at what modern practices have done to DNS caching.
- LocalStack - "A fully functional local AWS cloud stack." You can find Pro/Enterprise versions at https://localstack.cloud/.
- Tailwind Builder - Commercial editor to quickly build new templates for use with the Tailwind CSS framework.
- Highlights from Git 2.24 - Including a new `git filter-repo` tool for history rewriting that is safer & better documented.
- The Manager’s Schedule Is Holding Back Remote Work - Investigating one of the barriers to remote-first companies.
- A New Digital Manifesto - An attempt to enumerate "Our inalienable rights within the digital age". Good luck with that.
Double Shot #2469
- Rails 6.0.1 RC1 released - There's really no escape from the upgrade treadmill.
- Twelve-factor app development on GCP - How to implement 12-factor concepts if Google runs your servers for you.
- Quiet.js - Transmit data between browser instances using a sound card. Supports both audible and ultrasonic modes.
- We need new data books - so we started one - A new open book about managing big data in the cloud from the folks at Chartio.
- Surviving Software Dependencies - A list of things you should check on all your dependencies. Of course, this is completely impractical on any system using "modern" JavaScript.
- Static Typing in Ruby with a Side of Sorbet - Report on an experiment from one of Heroku's teams.
- DKIM demystified - Another of the many things that web developers should have at least passing acquaintance with.
- Ring watched your kids trick or treat and then bragged about it - Everyone involved in this little stunt should go dig ditches or something. Just STOP enabling the surveillance state already.
Double Shot #2468
- Going from macOS to Ubuntu - A tale of migration, annoyances, and tweaks.
- Go is the new Ruby - "A language I use to get things done, and enjoy programming again."
- Ultimate Go - And on that note, here's a repo full of materials for learning Go.
- When XML beats JSON: UI layouts - Looks right to me, but then, I learned XML first.
- Modern Front-End Development for Rails: Webpacker, Stimulus, and React - New PragProg book from Noel Rappin, which looks like it'll be well-worth reading.
- DNS Record Crash Course for Web Developers - If you don't already know this stuff, you should.
- Getting started with security keys - "How to stay safe online and prevent phishing with FIDO2, WebAuthn and security keys."
- Zeroheight - Online documentation tool for design systems with a freemium pricing model.
Double Shot #2467
- Operon: Extreme Performance For Ansible - A "high performance replacement for Ansible® Engine, tailored for large installations and offered by subscription."
- The Great Cloudwall - There's quite a bit of anti-Cloudflare backlash in some parts of the internet these days.
- The Circuit Breaker Pattern - Explaining a common technique for handling failure in componentized systems.
- The two-value syntax of the CSS Display property - I get more out of date on CSS all the time (though this one is Firefox-only so far, so not suitable for most production sites).
- On Gatekeeping, Complicity, and Arrival - Important thoughts on diverse voices in software. Certainly there are times in my past when I've been complicit in gatekeeping as well, and I regret it.
- Hellvetica - Oh my. Don't use this font.
- Exciting new features in Vue 3 - A look at some of what you can do with this serious rewrite.
- HTTPX - "A Ruby HTTP library for tomorrow... and beyond!"
Double Shot #2466
- Cloud Irregular: Amazon won't spin off AWS, and that's too bad for AWS - There are legit reasons for some companies to be scared of AWS, but "it's owned by Jeff Bezos" probably isn't one of them.
- When AWS, Azure, or GCP Becomes the Competition - Even if you're legitimately scared you can still succeed.
- How Figma’s multiplayer technology works - A dive into a collaborative editing tool's internals.
- SQLite is really easy to compile - And that's a good thing.
- Heroes and Juniors: Increasing Engineering Team Velocity - Hiring only senior engineers promotes some nasty antipatterns.
- Dark Color - "Things you should know about color when adopting dark mode."
- evaluating bazel for building firefox, part 1 - Two big chunks of software that might go well together.
- Auditing For Accessibility Problems With Firefox Developer Tools - You can find common problems quickly with these tools.
Double Shot #2465
- New Release: Tor Browser 9.0 - I probably should use Tor more than I do, just on general principles. Perhaps the UI improvements in this release will encourage me.
- Technical Leadership Masterclass - 50 pages of preview material from the class you can book at https://www.ruthmalan.com/Bredemeyer/Technical_Leadership_Masterclass_Overview.htm .
- Insomnia + Kong - This API tool is being picked up by one of the premier microservice plumbing vendors.
- Just Culture - This concept from healthcare is more nuanced than the typical devops "no-blame postmortem" attitude we have in software.
- Getting Started with Svelte and Rails 6 - Another approach to modern JS to try out in your next Rails application.
- onefetch - Command-line tool for summarizing git repositories.
- pg_flame - "A flamegraph generator for Postgres EXPLAIN ANALYZE output."
- Apple, Your Developer Documentation is… Missing - This is what happens when you treat documentation as a cost center.
Double Shot #2464
- Revolution Populi - "Return cyberpower to the people," via a blockchain-powered Facebook alternative. Well, good luck.
- Firenvim - "Turn your browser into a Neovim client."
- Scheduling jobs with launchd and friends - Dealing with Apple's replacement for cron.
- The Engineering Manager's Guide to the Code Review Process - Guidance from GitPrime.
- Electron 7.0.0 - "The Electron team is excited to announce the release of Electron 7.0.0!"
- The Qualified Manifesto On Hiring Software Developers - I'm always happy to see more companies treating applicants with respect.
- An Illustrated Guide to OAuth and OpenID Connect - If you need it, this is a good starting point.
- What Most Remote Companies Don’t Tell You About Remote Work - "Isolation, anxiety, and depression in the remote workplace and what we’re doing about it" from Doist.
- An Illustrated Guide to Useful Command Line Tools - I found a gem or two in here.
- PostgreSQL example of self-contained stored procedures - Moving data logic into the database can be a huge win.
Double Shot #2463
- Renata Ávila: “The Internet of creation disappeared. Now we have the Internet of surveillance and control” - The Internet is increasingly a human-rights issue.
- Dramatically reduced power usage in Firefox 70 on macOS with Core Animation - Yay, though I am seeing a spike in CPU hit when launching with dozens of tabs open. But I'm an outlier.
- My transition to an Ubuntu workstation. - One developer's list of pros and cons.
- Inside ADHD - A look at where bullet journaling originated.
- Using Web Bluetooth to communicate with Bluetooth devices - Another technology that I shudder to think about.
- Lowkiq - Sidekiq alternative that features strict-order processing and reliable queues.
- How to Write Good Documentation (And Its Essential Elements) - Software documentation is really many things together.
- Cloudflare considered harmful - A multi-faceted rant.
- The Myths of Color Contrast Accessibility - If only ANYTHING in this business were simple!
- Graphiti - "RESTful APIs for a GraphQL era."
Double Shot #2462
- The IndieWeb Movement: Owning Your Data and Being the Change You Want to See in the Web - I wish I believed we could actually pry the web back from corporate forces.
- Ripcord - I gave this alternative Slack/Discord client a try. It's coming along nicely, and if you want a more condensed UI for Slack it's worth a look.
- Mac OS Catalina: more trouble than it’s worth - Having lived with it for a week, I'm inclined to agree. I may have to downgrade my work laptop to actually get any work done.
- Juttle - "One query language to rule them all" across multiple data sources with charting built in.
- Ruby 2.7.0-preview2 Released - Notably including a new pattern-matching syntax and some breaking changes to complex argument passing.
- Latest Firefox Brings Privacy Protections Front and Center Letting You Track the Trackers - Firefox remains one of the bright spots in my online world.
- CPDoS: Cache Poisoned Denial of Service - Breaking CDNs just because you can.
- Pack Your Bags – Systemd Is Taking You To A New Home - If you thought systemd's changes to the boot process were controversial, wait till they start messing with home directories.
- How to Make Tech Interviews a Little Less Awful - "Smartest Individuals != Smartest Team"
- Atomically - A gem that goes beyond ActiveRecord to implement some atomic SQL operations.
Double Shot #2461
- Hello, production - "Deploying something useless into production, as soon as you can, is the right way to start a new project."
- Containers and infrastructure as code, like peanut butter and jelly - A post from the AWS Container Services team.
- Buf - "A new way of working with Protocol Buffers." Tooling designed to make ProtoBuf a more attractive choice.
- komunity.io - "Build your professional network with an emphasis on quality instead of quantity. It's not the number of people who you know or follow you, but the quality of your connections. We believe in people helping other people succeed." Gotta admire anyone trying to take on LinkedIn.
- 2020 Fukuoka Ruby Award Competition - Entries to be judged by Matz - The annual Ruby programming competition is underway again.
- Where 75% of workers are on the autistic spectrum - Anyone who thinks there's only one true way to hire technical folks needs to read this.
- Git Under the Hood: Internals, Techniques, and Rewriting History - Slideshow of some advanced techniques.
- Do Software Developers Normally Code on Weekends? Work-life Balance and Overtime in the Tech Industry - Some do, some don't. Try not to be judgmental either way.
- www. is not deprecated - A counterpoint to the no-www argument.
- Streisand - "If you have an account with a cloud computing provider, Streisand can set up a new node with many censorship-resistant VPN services nearly automatically."
subscribe via RSS