Tooling github.com

youtube-dlc is the new youtube-dl

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.

Practical AI Practical AI #105

When AI goes wrong

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.

DigitalOcean Icon DigitalOcean – Sponsored

Foundations of computer security

logged by @logbot permalink

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.

Elixir simplabs.com

Writing Rust NIFs for Elixir with Rustler

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 danielmoch.com

Regarding semantic versioning

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!

Yaron Wittenstein gryphon.dev

Train your own neural network

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.

Linode Icon Linode – Sponsored

Linode Kubernetes Engine is here!

logged by @logbot permalink

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 changelog2019 or changelog2020 (whichever works) to get our special pricing.

Vim github.com

A Neovim plugin that lets you write your .vimrc in Lua

Vimpeccable is a plugin for Neovim that allows you to easily replace your vimscript-based .vimrc with 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.)

Go donatstudios.com

Go Modules have a v2+ problem

Jesse Donat:

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.

Go Time Go Time #146

Hits of the Summer

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!

Jared Mauch YouTube

How I started a telco to get fiber to my town

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.

Brain Science Brain Science #28

Dealing with conflict

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.

JavaScript moonjs.org

Moon – a purely functional user interface library that's fast, tiny, and intuitive

Yes, it’s that time once again… Time for yet another front-end JS library!

Since Moon is so simple at its core, where it creates an abstraction to allow drivers to handle input and output, it only weighs 2kb minified and gzipped. On top of that, it is specifically optimized for JavaScript engines to perform fast virtual DOM diffing and DOM operations.

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.

0:00 / 0:00