In a recent episode of JS Party we were told that you can program in CSS. But you can do some less complicated things with bigger payoffs. You can use CSS to track users that have JS disabled. Not sure how to feel about that. This post covers the rough idea of it and wants your thoughts on the practice.
Open source software shows its resiliency once again:
youtube-dlc is a fork of youtube-dl with the intention of getting features tested by the community merged in the tool faster, since youtube-dl’s development seems to be slowing down.
If you’re unaware of youtube-dl, it’s like a Swiss Army Knife for downloading videos from the web. It’s a great tool and I’m happy to see the community rally around its maintenance.
So, you trained a great AI model and deployed it in your app? It’s smooth sailing from there right? Well, not in most people’s experience. Sometimes things goes wrong, and you need to know how to respond to a real life AI incident. In this episode, Andrew and Patrick from BNH.ai join us to discuss an AI incident response plan along with some general discussion of debugging models, discrimination, privacy, and security.
This is the first talk in a series of Tech Talks from DigitalOcean around Computer Security titled Foundations of Computer Security. This talk will walk you through the fundamentals of computer security, from its history, to common threats you may face, to recommended practices to keep you safe.
What will you learn? You’ll learn why we need security, what types of attacks you may face, and some general recommended practices and policies to keep you secure.
Who is this talk designed for? Anyone who’s new to security or wants a refresher on common security concepts. Beginners of all paths: SysAdmins, Founders, CTOs, DevOps engineers.
A Native Implemented Function is implemented in C (or Rust when using Rustler) and can be called from Elixir or Erlang just like any other function. It’s the simplest and fastest way to run native code from Erlang but it does come with a caveat: a crash in a NIF can bring down the whole BEAM. This makes Rust a safer option than C for implementing NIFs as its type system and ownership model guarantee memory and thread-safety.
Daniel Moch shared his thoughts on semantic versioning and how he treats external libraries that violate its inherent contract with developers.
So as not to bury the lede, I’ll get to my point: Semantic Versioning is a meta-API, and maintainers who are cavalier about violating it can’t be trusted to created stable contracts. I’ve lost patience for breaking changes making their way to my code bases without the maintainers incrementing the major version of their projects, especially in language ecosystems where Semantic Versioning is expected, and in such cases I’m going to begin exploring alternative options so I can ban such libraries from my projects—personal and professional—altogether.
If you work in a language ecosystem where Semantic Versioning is the de facto norm, where violating it can wreak havoc downstream, then please play nice and follow its dictates. Instead of viewing it as a straight jacket, try to see it as an algorithm to determine what your next release number should be. We should all like algorithms!
There is the classic saying that “Practice makes Perfect”. This is partly true because it’s also that “Practice also makes you Permanent”.
Now usually comes the part saying that we need to do Deliberate Practice consistently for many years. The thing is that there is a multitude of ways to practice deliberately. There is no one size fits all formula applicable to all domains. And of course - people are different.
I’d like this article to focus on a single deliberate practice side - I call it the “Train Your Own Neural Technique” technique.
This is a neat little trick from Vitor Paladini:
clamp()is a CSS feature that helps you write less of it. It is a rather new feature in CSS so a lot of developers might not be aware of how useful it is.
Sometimes you just need a throwaway email and you can’t be bothered to leave the terminal, I get it.
tmpmailtmpmail is a command line utility that allows you to create a temporary email address and receive emails to the temporary email address. It uses 1secmail’s API to receive the emails.
Linode Kubernetes Engine (LKE) is a fully-managed container orchestration engine for deploying and managing containerized applications and workloads. LKE combines Linode’s ease of use and simple pricing with the infrastructure efficiency of Kubernetes. You can now get your infrastructure and workloads up and running in minutes instead of days.
If you’ve been following along with the Changelog infrastructure, you’ll be pleased to know we’re rolling out LKE as we speak. We love what we’ve seen so far! Oh and be sure to use the code
changelog2020 (whichever works) to get our special pricing.
Ahmad Nassri returns to the party for a deep, nuanced discussion around the thoughts he shared in a recent blog post called Solving Solved Problems. We hear about the common issue Ahmad’s seen at software shops of all sizes, learn the anatomy of the total cost of software ownership, and debate what to build and what to buy.
Vimpeccable is a plugin for Neovim that allows you to easily replace your vimscript-based
.vimrcwith a lua-based one instead. Vimpeccable adds to the existing Neovim lua API by adding new lua commands to easily map keys directly to lua.
All of the power and customization of Vim without the inscrutable and othewise compulsory Vimscript? Sign me up! (metaphorically… I’m far too lazy to customize Vim anymore than I already have.)
A narrated redesign packed with typography, brand, and color advice
Go has a problem. Go modules place a strange naming requirement on modules version 2 or greater. Module names on modules v2+ must end in the major version ala
…/v2, and communication of this rule has been weak. It’s non-obvious, and the community at large does not understand it.
I have seen many very large projects including Google owned projects get it wrong.
I brought the issue up at my local Go meetup, and no one had ever heard about the rule. They were very skeptical the rule existed at all.
Jesse goes on to tell the history, explain the problem in-depth, and suggest next steps for the Go Community.
This episode is different than what you’re used to. We’ve been clipping highlights of the show for awhile now to share on Twitter and YouTube. A side effect of that effort is a bunch of awesome clips just sitting on Jerod’s hard drive collecting digital dust. So, here’s a beta test of a “best of” style clips show covering the summer months. Let us know if you like it!
Is Changelog CI a new service offering from your favorite news feed providers?! Nope!
Is Changelog CI a way to generate a changelog via carefully crafted PR titles? Yep!
Is auto-generating your project’s changelog a good idea? Maybe…
Many of these “vs” style articles are too shallow or narrowly-focused to be of much use. Not this one. It even has a table of contents. Dive in deep for the full analysis or jump straight to the end for the
if/then framework selection advice.
Jared Mauch was tired of waiting for high speed internet access to his very rural house in the outskirts of Ann Arbor, MI so he started a telco to get fiber to his town.
Development was happening in and around Ann Arbor putting new subdivisions nearby. I expected broadband would reach my new home eventually (Cable, DSL, FTTx), but…nothing came. I know…start a telco! – source slides
Jared covers everything in this video – the research, planning, finances, pre-builds, getting customers, internet access, construction, contractors, and running all the fiber.
Conflict is a part of everyday life. If you are connected to other humans, conflict will eventually occur. But what exactly is conflict? Where does it begin? How can it be resolved? In this episode, Mireille and Adam dive deep into those details to examine the framework of conflict end-to-end, to hopefully equip us with the tactics and skills we need to better navigate and resolve the conflict we encounter in our lives.
Yes, it’s that time once again… Time for yet another front-end JS library!
Often times “simple” is a proxy for “only solves my immediate use-case, but I will continue to link up JS solutions that bring good ideas to the table, and pure functions are a good idea for many reasons.