Functional programming is powerful in many ways, but it can be difficult for devs to learn because the jargon stops them in their tracks. If that’s been your experience, this glossary of terms and examples might help. Pair that with listening to Eric Normand talk about FP in simple terms with us on The Changelog and JS Party and you’ll be well on your way.
A collection of ASCII data structures, state machines, logical structures, and more.
People tend to be visual: we use pictures to understand problems. Mainstream programming languages, on the other hand, operate in an almost completely different kind of abstract space, leaving a big gap between programs and pictures. This piece is about pictures drawn using a text character set and then embedded in source code.
Excellent prose and super-useful diagrams make this post from architecture notes a 10/10 🏆
I almost brought up the Law of Demeter on Go Time a couple weeks back:
That being said, sometimes you just have to follow the other person’s path until you realize when it doesn’t actually work for you. I’m totally fine with cargo-culting some sort of rule… I was gonna say the Law of Demeter, but that one’s too hard to explain. What’s a very simple – DRY, right?
See how quickly I abandoned ship there? Ok, it’s not that hard to explain. I just didn’t feel like taking the time to explain it when it wasn’t even my point. Good thing Double Agent Caleb Hearth did a nice write-up on Test Double’s blog about it!
If you’ve ever wondered how the Linux kernel does its thing:
The goal is simple - to share my modest knowledge about the insides of the linux kernel and help people who are interested in linux kernel insides, and other low-level subject matter. Feel free to go through the book Start here
Bonnie I-Man Ng:
I was working on bioinformatics a few years ago and was amazed by those single-word bash commands which are much faster than my dull scripts, time saved through learning command-line shortcuts and scripting.
Recent years I am working on cloud computing and I keep recording those useful commands here. Not all of them is oneliner, but I put effort on making them brief and swift. I am mainly using Ubuntu, Amazon Linux, RedHat, Linux Mint, Mac and CentOS, sorry if the commands don’t work on your system.
This guide by Josh Comeau is Josh doing what Josh does so well: taking complex/arcane/technical topics and making them approachable & fun for his audience.
It takes years of practice to become a terminal guru, but here’s the good news: we can take a shortcut. We don’t really need to know 98% of the stuff you can do with a terminal. If we focus on the most-important critical fundamentals, we should be able to become comfortable with the command line in a remarkably short amount of time. ✨
That’s what this blog post is all about.
I thought Ali and Jen had some excellent advice in this segment of our JS Party episode on web dev for beginners, so I’m re-sharing it here in hopes that you might share it with people you know who may be stuck in the early phases of their web development path.
I also like what I had to say (imagine that!)
One thing that is true about software development in general… is that it’s actually really hard. And we need to just say that. Because you’re gonna hit bumps. You’re gonna hit walls. And some people will power through those walls and other people won’t, and that’s just the way life is…
But I think having something real that you want to exist… having a real project that you want to see into the world helps you get through those moments.
Over the last few weeks I built my own DNS client. Mostly because I thought dig was kinda clunky. Partly because I wanted to learn more about DNS. So here’s how I built it, and how you can build your own too. It’s a great weekend project, and I learned a lot from finishing it.
DNS is simple enough that you can grok it quickly, but still complex enough that Adam learned a ton along the way: reading RFCs, network sockets, Bitvec, and more.
Has Go caught your interest, but you just haven’t had the time/opportunity to really dig into it? Are you relatively productive in your current language/ecosystem but wonder if the grass truly is greener on Go’s side of the fence? If so, this episode’s for you!
Jen Looper from Web Dev for Beginners and Front-end Foxes joins Jerod and Ali to discuss the exciting (but also intimidating) prospect of getting in to web development in 2022! Where should you start? What technologies should you focus on? Is it better to go all-in on a framework or stick with the fundamentals? Stuff like that!
A falsehood is an idea that you initially believe was true, but in-reality it is proven to be false.
E.g. of an idea: valid email address exactly has one
@character. So, you will use this rule to implement your email-field validation logic. Right? Wrong! The reality is: emails can have multiple
@chars. Therefore your implementation should allow this. The initial idea is a falsehood you believed in.
I love this list with my whole heart. We need to do a show on this…
What does it take to master a programming language like Go? Joining us is the author of Mastering Go to help us answer that very question and to discuss the third edition of the book.
For a software engineer, the hardest thing about developing Machine Learning functionality should be finding clean and representative ground-truth data, but it often isn’t. If you already have a source of good quality data (perhaps because it is already gathered by your application), here are some obstacles that still lay ahead of you
From the difficult to grasp concepts to the varied (and variable quality) software you’ll need to explore and manage the data, there’s still a lot of obstacles in our path before we can put a model to good use.
Said root access is achieved on DevOops – a medium-rated, retired machine on HackTheBox. The hack begins with a web server that hosts XML file uploads and ends with… well, I won’t spoiler it for you. Follow along and try to get root for yourself!
If learning from incidents grabbed your attention, here’s a good one we can all learn from:
It was 5:17pm today, just as I was wrapping up work for the day, and my manager pinged me with the following chat:
<manager>: Hi Jeremy - we have a <other team> ticket - escalated to <leader>, <leader>, etc. <principal> is on trying to advise as well. Are you available this evening if needed for diagnostics? <coworker> is on the call now
No obligation; just checking in to see what my availability is. Quickly thinking it over – I didn’t have any plans tonight, nothing in particular on my agenda. Why not? If I can help then someone else on the team won’t have to, and I don’t have anything better to do tonight.
The game is afoot. It might be a long night…
sudo works by writing your own version in Python!
One might think that
sudois actually some binary deeply integrated into the kernel, relying on a special purpose-built system call to achieve its functionality. After all, it lets you use
rootwithout even providing the password for that account! But thanks to one bit inside file permissions,
sudocan exist without any of this.
A (WIP) series on working with the K8s API from both the command line and from code.
This week we’re joined by Nora Jones, founder and CEO at Jeli where they help teams gain insight and learnings from incidents. Back in December Nora shared here thoughts in a Changelog post titled “Incident” shouldn’t be a four-letter word - which got a lot of attention from our readers. Today we’re talking with Nora about all things incidents — the learning and growth they represent for teams, why teams should focus on learning from incidents in the first place, their Howie guide to post‑incident investigations, why the next emerging role is an Incident Analyst, and she also shares a few book recommendations which we’ve linked up in the show notes.
A nice set of algorithms implemented with Go best practices in mind, making this a good learning resource. I wonder how much churn we’ll see on these once generics are officially added to the language… 🤔
If you’d prefer code over comics, see instead her little Go program that explains the same.
This repo links to dozens of courses for each of 23 categories of computing. It’s just an astounding amount of freely accessible education.
After spending some time playing with them, I began to appreciate how generics in Go have been designed and implemented with the same elegance and simplicity as Go itself. I hope you will agree, and to that end, this repository is a hands-on approach to learning all about generics in Go.
This is an excellent explanation of the difference between these styles of programming and why declarative is all the rage these days.