Skip to main content

· 10 min read

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

Work

Design Patterns

Projects

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>, and HashSet<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);

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.

· 11 min read

FYI

Good Reads

  • 2022-02-27 Practical Guide to Solving Hard Problems

    I sometimes find myself in a position of needing to write some code that I’m just not sure how to write. Been there have you? Here are the steps I take when I’m stumped. No huge revelations here, just hard-earned advice.

  • 2022-03-05 Design: #noFramework. Is it as hard as you think? by Jérôme Beau Feb, 2022 Medium

    Actually the idea is now new. As back as 2017, Adrian Holovaty, co-creator of the Django web framework, spoke about his own frameworks fatigue and why he left Django to build his own vanilla JS project.

  • 2022-02-16 Imitate, then Innovate - David Perell

    Imitate, then Innovate is my motto for improving at any skill. It’s counterintuitive, but the more we imitate others, the faster we can discover our unique style. In the entertainment world, there’s a long lineage of comedians who tried to copy each other, failed, and became great themselves: Johnny Carson tried to copy Jack Benny, but failed and won six Emmy awards. Then, David Letterman tried to copy Johnny Carson, but failed and became one of America’s great television hosts.

  • 2022-02-13 The Life of MS-DOS · Brendan's Website

    First released on August 12, 1981, MS-DOS became the foundation for business computing for almost two decades. MS-DOS stood for Microsoft Disk Operating System and was often referred to simply as “DOS”.

  • 2022-02-08 🥴 Heuristics That Almost Always Work - by Scott Alexander

    A security guard works in a building that never gets robbed. He develops a useful heuristic: it he hears a noise, he might as well ignore it and keep on crossing words: it's just the wind. This heuristic is right 99.9% of the time, but it provides literally no value. When all the Brier scores are calculated, he is the best futurist of all. His heuristic is truly superb.

  • 2022-03-05 Reclaiming the lost art of Linux server administration pietrorea's blog

    One of the skills I wish I'd learned earlier in my career is basic Linux server administration. Specifically in relation to hosting something on the web, either a web app or API that I wrote myself, or something from the thriving self-hosted community, such as Wordpress. Managing servers is increasingly seen as the 'older way' of doing things, so it's easy to become a software developer and never learn to set up a VPS, set up remote access, stand up a firewall, etc.

  • 2022-01-11 ⭐ Plan, do, learn: My admittedly hardcore work routine

    I have ADHD. It's my superpower. Because brains with ADHD find games hard to resist. And I — an engineer — love building games that make it fun to do unfun things. So naturally, as an entrepreneur with full autonomy over my own schedule, I've applied gamification principles to innovate my own work schedule from the ground up rather than lazily adopting norms from the 9-to-5 world.

The endless dispute

How the things work

  • 2022-02-13 Paul Butler – What does it mean to listen on a port?

    In the corner of the student union building there is a coffee shop, and in the corner of the coffee shop are two students. Liz taps away at the keyboard of the battered hand-me-down MacBook her brother gave her when she moved away to college. To her left on the bench seat, Tim scrawls equations on a coil-bound notebook. Between them is a half-empty cup of room temperature coffee that Liz sporadically sips from to stay awake.

Dev Design

  • 2022-01-28 Feature Flags Feature Flags allow you to safely deploy and roll back new features. It means you can deploy features and then slowly roll them out to your users. If something has gone wrong, you can roll back new features without having to re-deploy your application. Feature Flags can also help you control access to certain features in your product (e.g. only show paid features to users with an active subscription).
  • 2022-01-28 Hive: A Globally-Distributed Key/Value Store - This paper reports our experience creating, developing, and deploying a globally distributed key-value store intended as a database backend for our S3 API, Hive. Hive is a system to distribute data on a global scale, with various desired consistency, replication, and database sharding for linear read and write latency.
  • 2022-03-05 Why you need Use Cases/Interactors by Denis Brandi ProAndroidDev

    Since Clean Architecture became the new hot topic in the Android world there have been loads of code samples and articles that tried to explain how it works and which are its benefits.

Books

Projects

wgcf register wgcf generate wg-quick up ./wgcf-profile.conf
docker run -ti --rm alpine/bombardier -c 1000 -d 3600s -l https://www.gosuslugi.ru
#include "Cello.h"

int main(int argc, char** argv) {

/* Stack objects are created using "$" */
var i0 = $(Int, 5);
var i1 = $(Int, 3);
var i2 = $(Int, 4);

/* Heap objects are created using "new" */
var items = new(Array, Int, i0, i1, i2);

/* Collections can be looped over */
foreach (item in items) {
print("Object %$ is of type %$\n",
item, type_of(item));
}

/* Heap objects destructed via Garbage Collection */
return 0;
}

Dev Design

  • 2022-02-27 Logging at Twitter: Updated

    Twitter's migration to Splunk Enterprise has given us a much stronger logging platform overall. We ingest 4 times more logging data and have a better query engine and better user adoption. The process was not without its challenges and learnings, which we'll share in greater detail in this blog.

JavaScript

Typescript

Rust

Perl

CSS HTML SVG

Azure Active Directory and Friends

GoPro

  • 2022-02-08 Gyroflow

    Gyroflow is an application that can stabilize your video by using motion data from a gyroscope and optionally an accelerometer. Modern cameras record that data internally (GoPro, Sony, Insta360 etc), and this application stabilizes the captured footage precisely by using them. It can also use gyro data from an external source (eg. from Betaflight blackbox). Github: gyroflow/gyroflow: Video stabilization using gyroscope data

· 5 min read

Links from my inbox December 2021

Once in a while, the time comes to clean all the links I've saved in my email inbox.

You can't take the sky from me.

Take my love, take my land,

Take me where I cannot stand.

I don't care, I'm still free,

You can't take the sky from me.

Good reads

C# / .NET

JavaScript

Typescript

CSS

  • (2021-12-26) 1-Line Layouts Simple CSS layouts with flexbox/flexgrid magic
  • (2021-12-26) Defensive CSS - Ahmad Shadeed Oftentimes, we wish that there was a way to avoid a certain CSS issue or behaviors from happening. You know, content is dynamic, and things can change on a web page, thus increasing the possibility of a CSS issue or a weird behavior.

Projects

Scripting and tools

· 2 min read

Links from my inbox November 2021

Once in a while, the time comes to clean all the links I've saved in my email inbox.

Good reads

C# / .NET

JavaScript

CSS

Algorithms

Trie in Javascript: the Data Structure behind Autocomplete

Projects

Security

Raspberry Pi

Windows 3.11 and friends!

NES

Famicom Party- Making NES Games in Assembly

· One min read

Dev

Text

Tools

Other

· One min read

JavaScript

(2021-10-09) Xterm.js Xterm.js is the frontend component that powers many terminals including VS Code, Hyper and Theia!

picture 1

· 3 min read

Let's Think about it

Azure

C# / .NET

ASP.NET / MVC

Projects

JavaScript

CSS

Images

· 7 min read

Hexagonal architecture

Awesome Azure / AAD

ZMQ

.NET / C#

var app = WebApplication.Create(args);

app.MapGet("/", () => "Hello World");

app.Run();

NES

Videos

Gadgets

  • (2021-09-26) PowerPak - retroUSB The NES flash cart is finally here and it couldn't be easier. Just copy your games onto one compact flash card, insert into the PowerPak, and play!

Emulators

ROMs

Tutorials

Ref

Samples

Other

Projects

The Spellcheck manifesto...

So I have started working on pull request spell check bookmarklet, this is some background info I have collected so far:

JavaScript

Productivity

Just like in the solution you've mentioned, use Conditional Formatting for your Calendar. But this time on the Filter's "Advanced" tab, select Field -> All Appointment fields -> End. Specify on or before Condition and today (without quotes) as a Value. Don't forget to add this criteria with "Add to List" button.

People

Making...

Misc.

· One min read

Productivity

  • (2021-09-26) No, We Won’t Have a Video Call for That! - xahteiwi.eu good remote work guidance: Working in a distributed team means working asynchronously. Being productive in a distributed team is a skill that most people must learn; it is not innate to us. Knowledge sharing: Chat, Email, Wiki, Issue Tracker

    • Meeting notes:

      • Meeting title
      • Date, time, attendees
      • Summary
      • Discussion points (tabular)
      • Action items
    • NATO Briefing:

      • Situation
      • Mission
      • Execution
      • Logistics
      • Command and Signal

Software Design

.NET Framework, .NET Core, .NET and C#

Async