Good Reads
- 2022-03-06 The Painfully Shy Developer's Guide to Networking for a Better Job Without Being Creepy
Look, I get it. A bunch of web developers, recruiters, and vendors standing around in a room eating pizza or drinking beer and making small talk might sound like complete and utter death for you. There may be a million things you'd rather be doing. "Uhh,
- Core Philosophy 1: Make Other People Feel Welcome and Accepted
- Core Philosophy 2: Give First, then Give Some More
- Core Philosophy 3: Don't Overthink - Be Genuine & Have Fun
- Tactic 1: Smile and Say Hi
- Tactic 2: Ask Questions (How to Approach a Group)
- Tactic 3: Give Genuine Gratitude
- Tactic 4: Find Common Ground
- Tactic 5: End Gracefully
- Tactic 6: Follow Up (No one does this!) - 2022-03-06 How to create technical conceptual diagrams
Conceptual diagrams have two key building blocks: concepts and connecting lines with words.
- 2022-03-09 Bugs in Hello World · sunfishcode's blog
Hello World might be the most frequently written computer program. For decades, it's been the first program many people write, when getting started in a new programming language.
Surely, this humble starting-point program should be bug free, right?
- 2022-03-12 Teaching is a slow process of becoming everything you hate
In a recent post, Parrhesia suggested that course grades should be 100% determined by performance on a final exam—an exam that could be taken repeatedly, with the last attempt being the course grade. (See also the discussion at r/slatestarcodex.) The idea is that grades are supposed to measure what you know, and if you do well on a final, then you know the material. Ha. Haha. Hahahahahahahaha.
- 2022-03-18 How Zillow's homebuying scheme lost $881 million
Zillow made news last week as it reported a loss of $881 million on its house-buying business last year. That’s especially remarkable because house prices rose dramatically for much of the year. Naturally, this got me thinking about fantasy football. I’ll get to that later. But first, let’s back up and talk about what the business idea—often called iBuying—is actually about.
- 2022-03-19 Bicycling Street Smarts - Table of Contents
Bicycling Street Smarts: Riding Confidently, Legally and Safely
- 2022-03-19 How NAT traversal works · Tailscale
We covered a lot of ground in our post about How Tailscale Works. However, we glossed over how we can get through NATs (Network Address Translators) and connect your devices directly to each other, no matter what’s standing between them. Let’s talk about that now!
Fun
- 2022-03-06 UserFriendly Comic
Host is down at the moment web.archive.org: UserFriendly Strip Comments
Work
- 2022-03-11 jwasham/coding-interview-university: A complete computer science study plan to become a software engineer.
I originally created this as a short to-do list of study topics for becoming a software engineer, but it grew to the large list you see today. After going through this study plan, I got hired as a Software Development Engineer at Amazon! You probably won'; 230,000 ⭐s on Github ;)
Design Patterns
- 2022-03-06 Modelling workflows with Finite State Machines in .NET - Lloyd Atkinson
How to implement complex logic as a FSA
Projects
- 2022-03-07 TomWright/dasel: Select, put and delete data from JSON, TOML, YAML, XML and CSV files with a single tool. Supports conversion between formats and can be used as a Go package.
Comparable to jq / yq, but supports JSON, YAML, TOML, XML and CSV with zero runtime dependencies.
- 2022-03-07 clibs/clib: C package manager-ish
Package manager for the C programming language.
- 2022-03-07 kaissaroj/chrome-newtab: A simple new tab page replacement for Google Chrome.
A simple new tab page replacement for Google Chrome.
- 2022-03-10 public-apis/public-apis: A collective list of free APIs
A collective list of free APIs for use in software and web development
- 2022-03-11 Freeplane - free mind mapping and knowledge management software
Freeplane is a free and open source software application that supports thinking, sharing information and getting things done at work, in school and at home. The software can be used for mind mapping and analyzing the information contained in mind maps. Freeplane runs on any operating system that has a current version of Java installed. It can be run locally or portably from removable storage like a USB drive.
- 2022-03-13 Show HN: I made my personal website a Pokémon-style minigame using Phaser 3 Hacker News
- 2022-03-15 RP2040 Doom rp2040-doom
Given a new platform it is only natural to think of porting Doom to it. With 264K of RAM, two CortexM0+ CPUs and a decent clock speed, the RP2040 is certainly not the tightest platform Doom has ever been ported to - although at <$1 it is probably one of the cheapest - so I wanted to set my self a more aggressive set of goals...
- 2022-03-15 🌭 HOT DOG Linux 🌭
HOT DOG Linux is an acronym that stands for Horrible Obsolete Typeface and Dreadful Onscreen Graphics for Linux.
- 2022-03-18 MadRabbit/halmak: The final version of the AI designed keyboard layout
This is an AI designed keyboard layout that was built within the keyboard-genetics project. More details and a documented process can be found on the blog Nikolay Rocks.
JavaScript
- 2022-03-09 HTML comments work in JavaScript too
Here’s some obscure trivia about JavaScript: you can use HTML comments in JavaScript. Not just in script tags: you can use them in included standalone files, and even in Node.js and Deno. Syntax highlighters, on the other hand, do not have great support
// below statement logs 1
console.log(1); <!-- log 1 -->
<!-- above statement logs 1 -->
- 2022-03-09 QuickJS Javascript Engine
QuickJS is a small and embeddable Javascript engine. It supports the ES2020 specification including modules, asynchronous generators, proxies and BigInt.
Denoland
- 2022-03-16 Deno by Example
Deno is a simple, modern and secure runtime for JavaScript and TypeScript that uses V8 and is built in Rust. Deno by example is a collection of annotated examples for how to use Deno, and the various features it provides. It acts as a reference for how to do various things in Deno, but can also be used as a guide to learn about many of the features Deno provides.
.NET/ C#
- 2022-03-06 Image Style Transfer With C#, ONNX, and ImageSharp Khalid Abuhakmeh
Image processing with SixLabors.ImageSharp and ONNX.FastNeuralStyleTransfer
- 2022-03-10 8 Techniques to Avoid GC Pressure and Improve Performance in C# .NET - Michael's Coding Spot
.NET provides a lot of great collections types like
List<T>
,Dictionary<T>
, andHashSet<T>
. All those collections have dynamic size capacity. That means they automatically expand in size as you add more items.- Set initial capacity for dynamic collections
- Use ArrayPool for short-lived large arrays
- Use Structs instead of Classes (sometimes)
- Avoid Finalizers
- Use StackAlloc for short-lived array allocations
- Use StringBuilder, but not always
- Use String Interning in very specific cases
- Avoid memory leaks
- Summary:
- Allocations should be avoided if possible.
- Reusing memory is better than allocating new memory.
- Allocating on the Stack is faster than allocating on the Heap.
- 2022-03-13 [6 .NET Myths Dispelled — Celebrating 21 Years of .NET by Charles Chen Jan, 2022 Dev Genius](https://blog.devgenius.io/6-net-myths-dispelled-celebrating-21-years-of-net-652795c2ea27)In celebration of .NET reaching Minimum Legal Drinking Age here in the US, grab a cold one and let’s dispel 6 common myths about .NET!
- .NET is for Windows
- It’s slower than Node/Python/Go/Rust
- It’s a legacy platform
- The tooling is expensive
- .NET isn’t open source friendly
- It’s for boomer enterprise development - 2022-03-13 Go vs C# (by Alex Yakunin) I am going to write a series of posts comparing some features of Go and C#. The core feature of Go — goroutines — is actually a very good point to start from. C#’s alternative for this is Task Parallel Library (TPL) and async-await support.
- 2022-03-16 A Thorough Guide to Bond for C#
Bond is an extensible framework for working with schematized data. It is suitable for scenarios ranging from service communications to Big Data storage and processing. Github: microsoft/bond; Supports C++, C#, Java, Python
C / CPP
- 2022-03-16 libmill Libmill is a library that introduces Go-style concurrency to C
go(foo(arg1, arg2, arg3));
chan ch = chmake(int, 0);
chan ch = chmake(int, 1000);
chs(ch, int, 42);
- 2022-03-19 magiblot/tvision: A modern port of Turbo Vision 2.0, the classical framework for text-based user interfaces. Now cross-platform and with Unicode support.
A modern port of Turbo Vision 2.0, the classical framework for text-based user interfaces. Now cross-platform and with Unicode support.
Authorization & Authentication
- 2022-03-06 Advanced techniques around ASP.NET Core Users and their claims – The Reformed Programmer
This article describes some advanced techniques around adding or updating claims of users when building ASP.NET Core applications. These advanced techniques are listed below with examples taken from the AuthPermissions.AspNetCore library / repo.
- 2022-03-10 The Modern Guide to OAuth - FusionAuth
I know what you are thinking, is this really another guide to OAuth 2.0? Well, yes and no. This guide is different than most of the others out there because it covers all of the ways that we actually use OAuth. It also covers all of the details you need to be an OAuth expert without reading all the specifications or writing your own OAuth server. This document is based on hundreds of conversations and client implementations as well as our experience building FusionAuth, an OAuth server which has been downloaded over a million times.
- 2022-03-13 An introduction to OpenID Connect in ASP.NET Core
Explains how OpenID Connect works and how it differs from OAuth2.
- 2022-03-16 Architecture overview - Azure Active Directory Microsoft Docs
Azure Active Directory (Azure AD) enables you to securely manage access to Azure services and resources for your users. Included with Azure AD is a full suite of identity management capabilities. For information about Azure AD features, see What is Azure Active Directory? Service architecture design Primary replica Secondary replicas Scalability Continuous availability Fault tolerance Data durability Data consistency Service-level backup
Video Editing/ GoPro / ffmpeg
- 2022-03-11 mifi/lossless-cut: The swiss army knife of lossless video/audio editing
LosslessCut aims to be the ultimate cross platform FFmpeg GUI for extremely fast and lossless operations on video, audio, subtitle and other related media files. The main feature is lossless trimming and cutting of video and audio files, which is great for saving space by rough-cutting your large video files taken from a video camera.