Awesome static analysis tools, linters, and code quality checkers
Fresh on the heals of our TS Party comes this curated list of tools for getting the most out of static code analysis. This list is gloriously polyglot, so there’s probably something in there for everyone.
Not in to static analysis (or just a huge fan of lists)? Check out the sister project, Awesome Dynamic Analysis.
How I'm still not using GUIs in 2019
“GUIs are bloatware” — Terminal rules…a guide to the terminal…
In this post, I’ll walk you through everything you need to start making your terminal a complete development environment: how to edit text efficiently, configure its appearance, run and combine a myriad of programs, and dynamically create, resize and close tabs and windows.
How we onboard engineers at a devtools startup
Chris Bell on how Knock onboards engineers:
Onboarding engineers to a devtools company sounds like a no-brainer. After all, when developers are your customer, great engineering hires join the team with an inherent empathy for the customer and the tools they use everyday. But to build a truly great developer tool you need to go beyond the default empathy that new engineers have for developers at large. You need to use the tool itself, exactly as a customer would. That’s the only way to understand it completely and to find ways to improve it.
We designed our onboarding experience with this principle in mind. Every new engineering hire builds an onboarding project that integrates Knock into a sample application, exactly as a new customer would.
An illustrated guide to Apache Kafka
This animated “children’s” book is spectacularly good. It centers around a growing community of otters, their struggles to communicate efficiently, and one little otter named Nixie’s great idea that changed the forest forever.
Put, put, put your events
gently in the stream
There they’ll float, down and down
In the river’s gleam
Biscuit – a research OS written in Go
Biscuit is a monolithic, POSIX-subset operating system kernel in Go for x86-64 CPUs. It was written to study the performance trade-offs of using a high-level language with garbage collection to implement a kernel with a common style of architecture.
With ~38k commits and 8+ years of dev, this has been a massive effort. Find the research paper right here.
Build your own Mint (finance analytics) with Plaid, Google Sheets, and CircleCI
Mint is super cool, but handing over your precious financial information to a 3rd-party is always a bit nerve-racking. Evan You’s new Node app builds a bridge between Plaid (for bank access) and Google Sheets (for data storage) so you can roll your own system.
Now you only have to trust your precious financial information to two 3rd-parties 😉. But! This is open source so at least you don’t have to trust the application code.
UTC is enough for everyone, right?
Programming around time is the bane of pretty much every programmer’s existence. UTC works most of the time, but still has its flaws.
Zach Holman writes on his blog:
Programming time, dates, timezones, recurring events, leap seconds… everything is pretty terrible. The common refrain in the industry is Just use UTC! Just use UTC! And that’s correct…sort of. But if you’re stuck building software that deals with time, there’s so much more to consider. It’s time…to talk about time.
Zach includes a lot of time-related puns and whole lot of wisdom about programming time.
OpenAI Fellows — Fall 2018 (now open)
As we gear up for the launch of Practical AI and more AI/ML/DS related news coverage, I wanted to bring to your attention to this 6-month apprenticeship (compensated) in AI research at OpenAI.
We’re now accepting applications for the next cohort of OpenAI Fellows, a program which offers a compensated 6-month apprenticeship in AI research at OpenAI. We designed this program for people who want to be an AI researcher, but do not have a formal background in the field. Applications for Fellows starting in September are open now and will close on July 8th at 12AM PST.
“Shift left”—wtf does it mean?
Everyone’s telling us to “shift left” these days. This raises some questions. What’s being shifted? Who’s doing the shifting? How far left should we be shifting it?
To be honest, we’re not quite sure ourselves. It can be quite befuddling trying to sift through the reams of “shift left” content, trying to separate the ad copy from the nuggets of truth. But what we do know is…
A completely open source ngrok alternative
Expose is a beautiful, open source, tunnel application that allows you to share your local websites with others via the internet.
Since you can host the server yourself, you have full control over the domains that your shared sites will be available at. You can extend expose with additional features and middleware classes on the server and client side, to make it suit your specific needs.
Alan Shreve closed ngrok’s source code years ago, and every now-and-again an open source alternative pops on the scene. Add Expose to the list. It’s written in PHP and has a nice shine on it. But which of these SSH tunneling tools is best in class?
An XKCD excuse generator
A fun little side project by Mislav Cimperšak where you plug in a few values and it generates a shareable replica of XKCD’s famous Compiling comic. Here it is in action with a piece of modern art I call, “Low Hanging Fruit”. 😁
Modern alternatives to Unix commands
You’ve probably seen many of these commands hit Changelog News over the years, but now you can see them all again in one hand-curated place. Who knows, maybe one or two will be new to you. I hadn’t heard of curlie previously, which looks like a nice merging of cur
and httpie
.
Learning hardware programming as a software engineer
I’ve had never really come into contact with hardware programming, working mostly in python or C#, until a friend of mine asked me for some help with programming a simple controller for RGB strips using Arduino Nanos.
We’d, of course, fail spectacularly.
Not only did our hardware not work quite like intended and a few Nanos died in the process(but that’s a story for another time), but I actually learned a lot from this and similar projects.
And I want to tell you some of my mistakes, what I learned by making them and how to prevent them.
An NES-style (8-bit) CSS framework
I love this with my whole heart. 🤤
The Windows XP desktop recreated in your browser
Maybe you’re thinking this is some kind of emulator that has been compiled to WebAssembly or a Docker thing somehow running in the browser. Nope! It’s a straight-up React-based web application that recreates the classic XP desktop. Most of the apps don’t actually exist, but have no fear: Minesweeper is here 🙌
Upgrading GitHub from Rails 3.2 to 5.2
Eileen Uchitelle:
In total the project took a year and a half to upgrade from Rails 3.2 to Rails 5.2. Along the way we took time to clean up technical debt and improve the overall codebase while doing the upgrade. Below we’ll talk about how we upgraded Rails, lessons we learned and whether we’d do it again.
Congrats to Eileen and the team on this massive effort! Click through to read how they did it and the lessons the learned along the way.
A secure TypeScript runtime on V8
If you need a JS runtime that supports TypeScript out of the box and has security as a top-most priority, star this repo and come back when it’s no longer “Segfaulty”.
Feature bullets! 👇
- No package.json, no npm. Not backwards compatible with Node
- Single executable
- Defaults to read-only file system access
- Always dies on uncaught errors
- Supports top-level await
EDIT: it’s worth noting that this project is by Ryan Dahl, inventor of Node.js.
An awesome list of open source macOS apps
This list is a lot longer than I expected! Alongside each app is an icon indicating whether it’s written in Swift or Objective-C, which is nice for those of us looking for reading material. 💪
mostly – a full stack web app starter kit built on Node.js
mostly’s purpose is to serve as a lightweight, easy-to-comprehend starting point, with a focus on providing a great developer experience while helping you get high quality and maintainable web applications deployed rapidly.
It uses Express for the server and React for the client. Worth a look if you’re starting up a new web project. I dig this point about it:
Nothing is hidden, nothing is magical, and all of the “plumbing” is accessible and simple.
Amp - a complete text editor for your terminal
Inspired by Vim’s modal editing, but built to be as simple as possible. This is no fly-by-night proof of concept. It’s 3 years in the making and looks extremely polished.
I’m definitely going to give Amp a test-drive. 👌
vim-zoom: Zoom in and out of vim panes
As an avid vim + tmux user, <prefix>-z
is an essential tmux command to zoom the current pane for the times I want to see my editor or command output at its maximum size. The vim-zoom plugin brings this same concept directly into vim by adding a <C-W>m
mapping that will zoom the current split to be full screen. Triggering the mapping again brings back the original pane layout, making this an effective tool when needing to focus on a specific split when necessary without losing your splits layout!