Skip to main content

· 7 min read

Good reads

Fun

{TEXT("Notepad++"), QuoteParams::rapid, true, SC_CP_UTF8, L_TEXT, TEXT("The creation of Notepad++ is due to my need for a decent editor to edit the source code of Notepad++")},
{TEXT("Notepad++ #1"), QuoteParams::rapid, true, SC_CP_UTF8, L_TEXT, TEXT("I hate reading other people's code.\nSo I wrote mine, made it as open source project, and watch others suffer.")},
{TEXT("Notepad++ #2"), QuoteParams::rapid, true, SC_CP_UTF8, L_TEXT, TEXT("Good programmers use Notepad++ to code.\nExtreme programmers use MS Word to code, in Comic Sans, center aligned.")},
{TEXT("Notepad++ #3"), QuoteParams::rapid, true, SC_CP_UTF8, L_TEXT, TEXT("The best things in life are free.\nNotepad++ is free.\nSo Notepad++ is the best.\n")},
{TEXT("Richard Stallman"), QuoteParams::rapid, true, SC_CP_UTF8, L_TEXT, TEXT("If I'm the Father of Open Source, it was conceived through artificial insemination using stolen sperm without my knowledge or consent.")},
{TEXT("Martin Golding"), QuoteParams::rapid, true, SC_CP_UTF8, L_TEXT, TEXT("Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live.")},
{TEXT("L. Peter Deutsch"), QuoteParams::slow, false, SC_CP_UTF8, L_TEXT, TEXT("To iterate is human, to recurse divine.")},
{TEXT("Seymour Cray"), QuoteParams::rapid, true, SC_CP_UTF8, L_TEXT, TEXT("The trouble with programmers is that you can never tell what a programmer is doing until it's too late.")},
{TEXT("Brian Kernighan"), QuoteParams::rapid, true, SC_CP_UTF8, L_TEXT, TEXT("Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.")},

Games

Projects

I’m an idiot. And git is hard. A lot of places use a rebase-based Git workflow, and I’ve made git less hard with a set of handy aliases. Put these in your ~/.gitconfig and turn git into an actually less painful command line tool to use.

C

Java

  • 2022-11-13 Java Programming for Kids

    This book is not only for kids! This is just a good-written, illustrated guide on writing your first Java application.

Powershell


$ieObject = New-Object -ComObject 'InternetExplorer.Application'
$ieObject | Get-Member
$ieObject.Visible = $true

CMAKE

Tools

  • 2022-11-11 HTTrack Website Copier - Free Software Offline Browser GNU GPL Offline web!

    HTTrack is a free (GPL, libre/free software) and easy-to-use offline browser utility.

    It allows you to download a World Wide Web site from the Internet to a local directory, building recursively all directories, getting HTML, images, and other files from the server to your computer. HTTrack arranges the original site's relative link-structure. Simply open a page of the "mirrored" website in your browser, and you can browse the site from link to link, as if you were viewing it online. HTTrack can also update an existing mirrored site, and resume interrupted downloads. HTTrack is fully configurable, and has an integrated help system.

X-Files

Man, you will be remembered

A discussion on Hacker News

2022-11-09 GitHub stars won't pay your rent

How to be a successful open-source developer and how not to make any money!

For later

  • 2022-11-13 Social isolation and the brain in the pandemic era Nature Human Behaviour

    Intense sociality has been a catalyst for human culture and civilization, and our social relationships at a personal level play a pivotal role in our health and well-being. These relationships are, however, sensitive to the time we invest in them. To understand how and why this should be, we first outline the evolutionary background in primate sociality from which our human social world has emerged. We then review defining features of that human sociality, putting forward a framework within which one can understand the consequences of mass social isolation during the COVID-19 pandemic, including mental health deterioration, stress, sleep disturbance and substance misuse. We outline recent research on the neural basis of prolonged social isolation, highlighting especially higher-order neural circuits such as the default mode network. Our survey of studies covers the negative effects of prolonged social deprivation and the multifaceted drivers of day-to-day pandemic experiences.

Free Ads!

image-20221113131540522

How do I explain Barista that I want a dark bitter coffee, without getting "brown" sour one at the end?

· 9 min read

image-20221105175930749

Good reads

  • 2022-11-05 Folklore.org: -2000 Lines Of Code

    -2000 Lines Of Code Author: Andy Hertzfeld Date: February 1982 Characters: Bill Atkinson Topics: Software Design, Management, Lisa Summary: It's hard to measure progress by lines of code

  • 2022-11-04 Use RSS for privacy and efficiency :: rsapkf/www

    Social media sites are riddled with ads, trackers, and dark patterns. As much as I'd love to avoid using them for privacy reasons or time concerns, it's just not possible to keep up to date with current events without them.RSS ("Really Simple Syndication") gives you the best of both worlds. For the uninitiated, it is a way to "subscribe" to websites without having to browse them individually or signing up for newsletters. With a collection of RSS feeds, you can keep up with the latest updates from multiple sources (that offer an RSS feed) from within your feed reader.

  • 2022-10-30 Things your manager might not know

    Here are the facts your manager might not know about you and your team that we’ll cover in this post: What’s slowing the team down Exactly what individual people on the team are working on Where the technical debt is How to help you get better at your job What your goals are What issues they should be escalating What extra work you’re doing How compensation/promotions work at the company

  • 2022-10-30 My Top 10 Tips for Doing Time In ‘the Hole’ The Marshall Project

    In prison, going to “the hole” can mean spending 23 hours a day alone in a tiny cell. Here, incarcerated author Michael J. Nichols shares his top 10 tips for enduring long stretches of “administrative segregation.”

  • 2022-10-29 How to communicate effectively as a developer

    Writing effectively is a superpower, there is no denying it. As a software engineer, you write a lot. Most of the writing you do is for computers. Businesses, however, consist of people. image-20221105175233408

  • 2022-10-25 "Workflows, a new abstraction for distributed systems" by Dominik Tornow Strange Loop 2022 - YouTube

    Distributed "functions" that can resume execution from the previous state Recommendation from the talk:

  • 2022-10-21 When life gives you lemons, write better error messages by Jenni Nadler Sep, 2022 Wix UX

    Error messages are part of our daily lives online. Every time a server is down or we don’t have internet, or we forget to add some info in a form, we get an error message. “Something went wrong” is the classic. But what went wrong? What happened? And, most importantly, how can I fix it?

    image-20221105221937899

  • 2022-10-17 YAGNI exceptions - lukeplant.me.uk

    • Applications of Zero One Many. If the requirements go from saying “we need to be able to store an address for each user”, to “we need to be able to store two addresses for each user”, 9 times out of 10 you should go straight to “we can store many addresses for each user”

    • Versioning. This can apply to protocols, APIs, file formats etc.

    • Logging. Especially for after-the-fact debugging, and in non-deterministic or hard to reproduce situations, where it is often too late to add it after you become aware of a problem.

    • Timestamps

  • 2022-10-16 If you want to terminate on an unexpected exception, then don't sniff at every exception; just let the process terminate - The Old New Thing

    The idea is that the Do­Something function uses an error code to report problems, but it is built with the help of functions that use exceptions to report problems. The Do­Something function sets up a try/catch that catches any exceptions that may emerge from the helper functions and uses a helper function to convert the exception to an HRESULT. If the exception cannot be converted to an HRESULT, then we terminate the process, because the helper functions threw a disallowed exception.

X-Files

  • 2022-11-04 Pex4Fun - Microsoft Research

    And it is gone now. Why?

  • 2022-11-04 GOTO: .NET Source Browser

    Tell me more about goto! .NET Source Browser is very helpful tool

        // Skip past any whitespace at the beginning.
    if ((styles & NumberStyles.AllowLeadingWhite) != 0 && IsWhite(num))
    {
    do
    {
    index++;
    if ((uint)index >= (uint)value.Length)
    goto FalseExit;
    num = value[index];
    }
    while (IsWhite(num));
    }
    // ....
    Exit:
    return status;

    FalseExit: // parsing failed
    result = 0;
    status = ParsingStatus.Failed;
    goto Exit;
    OverflowExit:
    result = 0;
    status = ParsingStatus.Overflow;
    goto Exit;
  • 2022-10-27 Why has Microsoft finally trademarked Clippy? - Office Watch

    In June 2021, Microsoft applied for a Clippy image trademark.

    imgSource: Justica

Retro

Stable Diffusion

2022-10-28 Stable Diffusion Prompt Book - OpenArt OpenArt

image-20221105215213973

WASM

Projects

CSS

Linux

  • 2022-10-26 systemd Shutdown Units - Poseidon Labs

    Designing a system to shutdown gracefully can be tricky. In an ideal world, every service would be managed by a systemd unit. ExecStart would start a process that handles SIGTERM by stopping itself and an ExecStop would inform the process and block to gracefully stop the process and its resources.

    But not all software stops gracefully or does a full teardown of what it set up. In this post, we’ll look at systemd’s shutdown behavior and strategies for writing systemd units that perform custom cleanup tasks before shutdown.

Self-hosted

Markdown

MarkText is an MIT licensed open source project, and the latest version will always be downloadable for free from the GitHub release page. img

Something I watched

Just for fun

· 4 min read

AI Generated Aww of the moth

Good Reads / Videos

Fun

The X-Files

  • 2022-10-08 Jewish Calendar

    About how the Jewish Calendar works.

  • 2022-10-05 Kubernetes Hardening Guide

    National Security Agency Cybersecurity and Infrastructure Security Agency Cybersecurity Technical Report Not exactly an X-File...

Retro

Web / JavaScript

JavaScript Libraries

CSS

C# / .NET

Projects and Tools

C++ Interactive tutorials

These two are very good beginner resources:

Emacs

Emacs config

Security

Summary of the results (page 137):
Protocol Sniffing Injection
Plexgear Yes Yes
Rapoo Yes Yes
Logitech No Yes
Corsair Yes Yes
iiglo Yes Yes
Exibel Yes Yes
Razer No No

JWT

Azure

Cheat Sheets

  • 2022-10-05 x64 Cheat Sheet

    Assembly language cheat sheet for x64 architecture

· 11 min read

Good Reads / Videos

Retro

Web / JavaScript

My experimental snippet:

(async () => {
function sleep(ms) {
return new Promise((resolve, reject) => {
setTimeout(resolve, ms)
})
}

function setClipboard(html) {
const type = "text/html";
const blob = new Blob([html], { type });
const data = [ new ClipboardItem({ [type]: blob })];

navigator.clipboard.write(data).then(
function () {
console.log("Done");
},
function (err) {
console.error(err);
}
);
}
console.log("Wait");
await sleep(3000);
console.log("Go!");
setClipboard(String.raw`
<table>
<tr>
<td><b>Hello</b></td><td>World</td>
</tr>
<tr>
<td><b>Done</b></td><td>AAA</td>
</tr>
</table>
`);

})()
  • 2022-09-03 Building an aircraft radar system in JavaScript Charlie Gerard

    I’ve been interested in building a radar system for a while now. I’ve been following the development of the RTL-SDR for a while, and I’ve been wanting to build a system that uses it. I’ve also been wanting to build a web app that uses WebUSB to communicate with a USB device. So I decided to combine the two and build a web app that uses a RTL-SDR to display aircraft on a map.

CSS

I might be understating it a bit, but WebGL is a big deal. You only need to spend five minutes on one of the many design awards sites to see site-after-site fully leaning into the power of canvas. Tools like threejs bring the power of 3D and GLSL shaders to the browser and, with that, a whole new level of visual effects.

C# / .NET

  • 2022-08-26 🤩 SharpLab

    SharpLab is an interactive playground for .NET code. It allows you to run and debug your C# code directly in the browser. It also allows you to share your code with others and see their changes in real-time.

  • 2022-08-26 ashmind/SharpLab: .NET language playground

  • 2022-08-30 badamczewski/PowerUp: ⚡ Decompilation Tools and High Productivity Utilities ⚡

    PowerUp is a collection of productivity utilities, disassembly and decompilation tools for multiple languages and platforms. The project features the following utilities and tools:

    • Live IDE Watcher (For C#, F#, GO, Rust and C++ (clang)).
    • .NET JIT Dissasembler.
    • .NET IL Compiler.
    • .NET Console with rich formatting.
  • 2022-09-02 C# does Shell, Part 3 - CodeProject

    This article is about Application Desktop Toolbars, which are applications that can align to the screen much like the taskbar. The article will develop a base class for developing such apps.

Projects

GO

Emacs

M-x package-install RET borland-blue-theme RET

Alternatively put the this directory to the custom-theme-load and add the following to your init file:

(push (substitute-in-file-name "~/.emacs.d/borland-blue-theme/") custom-theme-load-path)
(load-theme 'borland-blue t)

Media - Images

When I am making animations, with the intent of ultimately becoming a GIF file on the internet, I pretty much always target 50 fps.

Media FFmpeg

Visual Studio DTE in Powershell

Control Visual Studio from Powershell using the DTE (Development Tools Environment) COM Object.

I found a simple answer by playing with the idea in ISE for a little while.

Basically, the call to GetActiveObject returns a COM object, which can be used directly in PowerShell. After executing LoadDTELibs, you can get an instance of DTE by calling GetActiveObject and then refer to the result directly.

So...
PS> $dte = [System.Runtime.InteropServices.Marshal]::GetActiveObject("VisualStudio.DTE.11.0")
PS> $dte = [System.Runtime.InteropServices.Marshal]::GetActiveObject("VisualStudio.DTE")
PS> $dte.solution.Create("D:\Testing", "Acme.sln")
PS> $dte.solution.SaveAs("D:\Testing\Acme.sln")
Get-ChildItem HKLM:\Software\Classes -ErrorAction SilentlyContinue | Where-Object {
$_.PSChildName -match '^\w+\.\w+$' -and (Test-Path -Path "$($_.PSPath)\CLSID")
} | Select-Object -ExpandProperty PSChildName
Sub DTEExample()
Dim objTextDoc As TextDocument
Dim objEP As EditPoint

' Create a new text document.
DTE.ItemOperations.NewFile("General\Text File")
' Get a handle to the new document.
Set objTextDoc = DTE.ActiveDocument.Object("TextDocument")
Set objEP = objTextDoc.StartPoint.CreateEditPoint
' Create an EditPoint and add some text.
objEP.Insert "A test sentence."
End Sub
$dte.ActiveDocument | Get-Member -MemberType All

Cheatsheets

SSH

A better solution is to use ssh-keygen -o.
PS c:> type $env:USERPROFILE\.ssh\id_rsa.pub | ssh peter@192.0.2.16 "cat >> .ssh/authorized_keys"

JWT

Screen capture API

Record screen video with Screen Capture API

Until a while ago, I was a Linux user and I used ffmpeg to make gif animations for my Blog. I recently moved to Windows and was wondering how I could make a gif animation. I found out that I could make them with ffmpeg for Windows.

Games - Factorio

Watch

· 5 min read

Fun

Good Reads

  • 2022-06-19 Code rant: The Configuration Complexity Clock

    When I was a young coder, just starting out in the big scary world of enterprise software, an older, far more experienced chap gave me a stern warning about hard coding values in my software. “They will have to change at some point, and you don’t want to

Productivity... yeah

Projects

The Clippy Project

Clippy for Visual Studio:

Retro

WinApi

C++

C#

C# Blogs

On-Call

Books

How the things work

  • 2022-08-03 The Illustrated TLS 1.3 Connection: Every Byte Explained

    Every byte explained and reproduced In this demonstration a client connects to a server, negotiates a TLS 1.3 session, sends "ping", receives "pong", and then terminates the session. Click below to begin exploring.

Boring stuff

  • 2022-08-07 GDPR For Developers By Example Blether

    GDPR has been in place for years now, and we’re starting to learn more and more about how it’s going to be enforced and what it really means. The many questions people had that could only be answered by court decisions have now been answered. Over the past years, I’ve seen systems try and fail to correct implement GDPR. Here are the things I’ve learnt from court decisions and from mistakes made.

Watch Me!

The Man Who Killed Millions and Saved Billions

From Wikipedia:

Fritz Haber was a German chemist who received the Nobel Prize in Chemistry in 1918 for his invention of the Haber–Bosch process, a method used in industry to synthesize ammonia from nitrogen gas and hydrogen gas. This invention is important for the large-scale synthesis of fertilizers and explosives. It is estimated that two thirds of annual global food production uses ammonia from the Haber–Bosch process, and that this supports nearly half the world population. Oh shit...

1979: Will WORD PROCESSORS start a HOME WORKING revolution? | Past Predictions | BBC Archive

Wiki updated

  • docs\psy\2022-07-28-BoundariesMeeting.md

· 11 min read

Good Reads

  • 2022-07-20 Being on-call sucks — Bobbie Chen

    At tech companies, it is fairly common for developers to be "on-call". As Increment magazine (published by Stripe, a leading payment-processing software company) explains... ... A bit of on-call wisdom

  • 2022-07-22 What I don’t like about working at a remote job

    Working remotely permanently had been my wish ever since my managers started calling me back into the office. There was no possible way I would suffer through hours of commuting to feel awkward in an office again. However, with time came getting used to my situation. Even in the best possible world, your brain is always seeking something better. Although I really, really love remote work (please don’t take it away from me), I’ve noticed some things that make me sad about it.

  • 2022-06-28 The Grug Brained Developer

    A layman's guide to thinking like the self-aware smol brained

How the things work

  • 2022-07-20 What happens when you press a key in your terminal?

    I’ve been confused about what’s going on with terminals for a long time. But this past week I was using xterm.js to display an interactive terminal in a browser and I finally thought to ask a pretty basic question: when you press a key on your keyboard in a terminal (like Delete, or Escape, or a), which bytes get sent? As usual we’ll answer that question by doing some experiments and seeing what happens :)

  • 2022-07-20 Beej's Guides

    These guides look nice and clean

  • Beej's Guide to C [WIP]\

    This is a rather comprehensive guide to C for folks who already know how to program in another language. The first half of the book is written in a tutorial style, while the second half is a reference section complete with examples (inspired by the incomparable Turbo C Bible). The goal is to keep this up-to-date with the latest C standards.

Fun

Derp
Derp search/replace fuckup
Derp, asset redirection in dev mode
Derp. Fix missing constant post rename
Derpy hooves
Do things better, faster, stronger
Does anyone read this? I'll be at the coffee shop accross the street.
Does not work.
Does this work
Don't Ask Me, I Have No Idea Why This Works Either
Don't push this commit
Don't tell me you're too blind to see
Done, to whoever merges this, good luck.
Don’t even try to refactor it.
Don’t mess with Voodoo
Duh
Easteregg
Either Hot Shit or Total Bollocks
Errare humanum est.
FONDLED THE CODE
FOR REAL.
FUCKING XUPPERNAMEX
Feed. You. Stuff. No time.
Final commit, ready for tagging
Fingers crossed!
Finished fondling.
First Blood

Games

Emacs Games abd fun stuff

  • 2022-07-10 Fun and Games in Emacs - Mastering Emacs

    It’s yet another Monday and you’re hard at work on those TPS reports for your boss, Lumbergh. Why not play Emacs’s Zork-like text adventure game to take your mind off the tedium of work?

  • M-x hanoi-unix
  • 5x5
  • M-x animate-birthday-present
  • C-h f blackbox
  • M-x bubbles-set-game-...: (easy, medium, difficult, hard)
  • M-x doctor
  • M-x dunnet Emacs’s very own Zork-like text adventure game.
  • M-x gomoku
  • M-x life
  • M-x pong
  • M-x snake
  • M-x tetris
  • M-x morse-region and M-x unmorse-region - translate a region into morse code
  • M-x dissociated-press The Dissociated Press is a very simple command that applies something like a random walk markov-chain generator to a body of text in a buffer and generates nonsensical text from the source body.
  • M-x spook - command inserts random words (usually into emails) designed to confuse/overload
  • 2022-07-10 EmacsWiki: Category Games

The X-Files

danger

Disclaimer: unverified controversy.

Projects

C# and PowerShell OCR with IronTesseract and Windows.Media.Ocr

using IronOcr;
var Result = new IronTesseract().Read(@"img\Screenshot.png");
Console.WriteLine(Result.Text);
 Add-Type -AssemblyName System.Runtime.WindowsRuntime
    
  # WinRT assemblies are loaded indirectly:
  $null = [Windows.Storage.StorageFile, Windows.Storage, ContentType = WindowsRuntime]
  $null = [Windows.Media.Ocr.OcrEngine, Windows.Foundation, ContentType = WindowsRuntime]
  $null = [Windows.Foundation.IAsyncOperation`1, Windows.Foundation, ContentType = WindowsRuntime]
  $null = [Windows.Graphics.Imaging.SoftwareBitmap, Windows.Foundation, ContentType = WindowsRuntime]
  $null = [Windows.Storage.Streams.RandomAccessStream, Windows.Storage.Streams, ContentType = WindowsRuntime]
  $null = [WindowsRuntimeSystemExtensions]

Security / Cryptography

X.509

  • 2022-07-03 Understanding X.509 digital certificate thumbprints Morgan Simonsen's Blog

    I got an interesting question about X.509 certificate thumbprints today from a colleague. Specifically, he wanted to know if you could renew a certificate and keep the thumbprint. The answer is no, unfortunately. So I thought I would explain why you can’t.

  • 2022-07-03 How Certificates Work: Public Key; Security Services Microsoft Docs

    Digital certificates are electronic credentials that are used to assert the online identities of individuals, computers, and other entities on a network. Digital certificates function similarly to identification cards such as passports and drivers licenses. They are issued by certification authorities (CAs) that must validate the identity of the certificate-holder both before the certificate is issued and when the certificate is used. Common uses include business scenarios requiring authentication, encryption, and digital signing.

  • 2022-07-03 Cryptography - Win32 apps Microsoft Docs

    Microsoft cryptographic technologies include CryptoAPI, Cryptographic Service Providers (CSP), CryptoAPI Tools, CAPICOM, WinTrust, issuing and managing certificates, and developing customizable public key infrastructures. Certificate and smart card enrollment, certificate management, and custom module development are also described.

Web Authentication API

  • 2022-06-26 Web Authentication API - Web APIs MDN

    Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

  • 2022-06-26 Guide to Web Authentication

    While Web Authentication is an important tool, it is always important to remember that security is not a single technology; it is a way of thinking that should be incorporated into every step of how software is designed and developed.

HTML to Markdown

TTY UI

Retro

Random Retro Neko!

Nyan Cat

Watch me ;)

· 11 min read

Good Reads

How the things work

Fun


🧨 🍾🍾🍾 See 'em all! 🚗
















Games

The X-Files

danger

Disclaimer: unverified controversy.

TTY Linux

Algorithms

  • 2022-06-15 That XOR Trick

    There are a whole bunch of popular interview questions that can be solved in one of two ways: Either using common data structures and algorithms in a sensible manner, or by using some properties of XOR in a seemingly hard to understand way.

Security/Cryptography

Job hunt/interviews

Projects

Markdown Chrome Extensions

Fitness

Typescript/JavaScript

Identity Management

Security / Cryptography

Retro

PowerShell

Watch me ;)

  • 2022-06-02 Priest 2011 film - Wikipedia

    Priest is a 2011 American action horror film directed by Scott Stewart A centuries-long war between humans and vampires has devastated the planet's surface and led to a theocracy under an organization called The Church. Despite the vampires' vulnerability to sunlight, and all of mankind's technological advances, the vampires' greater strength and speed made them impossible to defeat until humanity sheltered them in giant walled cities and trained a group of elite warriors, the Priests, which turned the tide.

· 11 min read

Good Reads

How the things work

Fun

Algorithms

Security/Cryptography

+ Family 1Password so everyone can securely manage passwords and share logins
+ Network is covered by pihole (and in exchange, plex/jellyfin/etc access works nicely)

+ Smart home stuff is managed by me. Everyone has admin rights but shared terminals (eg kitchen panel) are unpriviledged users.

+ Everyone has a home directory on the homelab they can back up to with as much space as they want (4tb+). I help them set it up if they ask.

+ Haven't done this yet but would like some kind of network level monitoring for threats (viruses, cryptominers, etc)

Things intentionally not done:

+ I don't install anything on folks devices.. at all, but never without their consent and without them having an off switch.

+ We have cams but everyone can turn them off and view recordings. Recordings are kept only for a short timeframe. Cams are all visible/known.

+ I intentionally collect no logs of dns or other stuff. When I do occasionally need to debug an issue, I let everyone know I am flipping on logs for a few minutes.

Empower users, don't control them.

Job hunt/interviews

  • 2022-05-22 Lessons learned from the recent job hunt · Jamie Tanna Software Engineer

    As you may have recently seen, I've recently gone through the interviewing process and joined Deliveroo as a Senior Software Engineer. This was different to my last move to the Cabinet Office, as I only applied for that role, whereas this time I wasn't really sure what I wanted, and so wanted to interview at a few great places and see what felt like a good fit for me.

  • 2022-05-08 🔥 Interview Process mishnit.github.io

    System Design interview advices and learning materials

Projects

SIMD

Resilience

PowerShell

$error[0]

CSharp

System.Security.PermissionSet ps =
new System.Security.PermissionSet(System.Security.Permissions.PermissionState.None);
ps.AddPermission(new System.Security.Permissions.FileIOPermission(System.Security.Permissions.FileIOPermissionAccess.NoAccess, "C:\\"));
System.Security.Policy.PolicyLevel pl = System.Security.Policy.PolicyLevel.CreateAppDomainLevel();
pl.RootCodeGroup.PolicyStatement = new System.Security.Policy.PolicyStatement(ps);
AppDomain.CurrentDomain.SetAppDomainPolicy(pl);
System.Reflection.Assembly myPluginAssembly = AppDomain.CurrentDomain.Load("MyPluginAssembly");

FFmpeg

Watch me ;)

· 6 min read

Good Reads

  • 2022-04-17 What Does "Shitty Job" Mean in The Low-Skill, Low-Pay World?

    There’s all sorts of terms and experiences I’m sure I could apply this to, but right now the one that interests me most is the phrase a shitty job. I recently transitioned from having lived my whole life doing the kind of jobs you could do with zero day’s training and no developed skills. I’ve heard the phrase (and some classier high-end equivalents) since then, but it’s used much differently; it’s describing a different set of worries as experienced by a different kind of person living a different sort of life. The Author - Resident Contrarian on Substack - writes about different kinds of people issues.

Good old reads

Because of that I usually make all my services and systems crash only. End up using things like use atomic file moves, open files with append-only, use kill -9 to stop services and so on. To make your system crash-onl,y you have to go down the base system calls.
Some observed effects so far (many are covered in the article):
* Faster restarts (if your regular operation involves restarting lots of processes).
* Less code (don't have to handle both the clean shutdown and dirty shutdown).
* Recovery/cleanup code if it is needed, is often ends up moved to startup instead of shutdown (you might have to recover corrupt files when you start up again. For example re-truncate the files to a known offset based on some index).
* Something else might need to manage external resources (OS IPC resources, shared memory, IPC message queues etc). This could be a supervisor process.
* If you do a lot of socket operations on localhost, your sockets could get stuck in TIME_WAIT state and you'll eventually run out of ephemeral ports if you do a lot of restarts (say during testing). SIGTERM signals often are caught and processes (libraries) perform a cleaner shutdown.
* Think very well about the database you use and see if it can can support crash only operation. Some do some don't ( I won't name any names here ).
  • 2022-05-21 Files are hard

    on exactly how hard it is to save data without corruption or data loss 🚀

How the things work

  • 2022-05-14 Time-series compression algorithms, explained

    Delta-delta encoding, Simple-8b, XOR-based compression, and more - These algorithms aren't magic, but combined they can save over 90% of storage costs and speed up queries. Here’s how they work.

Fun

C

  • 2022-05-14 A lock-free, concurrent, generic queue in 32 bits

    While considering concurrent queue design I came up with a generic, lock-free queue that fits in a 32-bit integer. The queue is “generic” in that a single implementation supports elements of any arbitrary type, despite an implementation in C.

🥑 Rust

🐚 Bash

trap 'echo "# $BASH_COMMAND";read' DEBUG
echo line1
echo line2
echo line3
echo "Hello World";

Interview

Projects

Resilience

PowerShell

PS C:\>
function prompt { 'PowerShell: ' + (Get-Location) + '> '}

PowerShell: C:\>
The function that defines the prompt includes a Get-Location command, which is run whenever the prompt appears in the console.

CSharp

· 9 min read

Good old news!

Good Reads

  • 2022-03-21 Why Don't You Use ...

    Working for a famous tech company, I get asked a lot "Why don't you use technology X?" X may be an application, programming language, operating system, hypervisor, processor, or tool. It may be because: It performs poorly. It is too expensive. It is not open source. It lacks features. It lacks a community. ...

  • 2022-03-26 What made the NES so interesting?

    I often like to cover oddities here; details of computers and arcade systems people may not have heard of, that didn’t sell well but had unique or interesting characteristics. But focusing on oddities like that can disguise the fact that sometimes, even systems that were very popular can stand out for unique design. Such be it with the Nintendo Entertainment System: had Nintendo’s console flopped, it’d definitely have a post already. But it doesn’t. Let’s fix that! And answer a simple question I was asked: what’s the deal with special chip games?

  • 2022-04-11 Taking Flight Without a Smart Phone dev/tails

    In February, I wrote about getting rid of my iPhone and replacing it with a Nokia 6300 4G. I am incredibly happy with the results of this experience. I gained a new sense of presence with the real world and killed some bad scrolling habits. Unfortunately, KaiOS on the Nokia left much to be desired and our current society makes it very difficult to live without a smart phone.

  • 2022-04-11 NodeJS packages don't deserve your trust

    Another week, another npm supply chain attack. Yikes! People on hacker news are wringing their hands about what should be done. The problem seems dire. EventSource/eventsource.js at de137927e13d8afac153d2485152ccec48948a7a · Yaffle/EventSource

Fun

Watch

Projects

  • 2022-03-21 Curtiss-Wright Debuts First Raspberry Pi Powered Ultra-Small Form Factor Rugged Mission Computer for Defense and Aerospace Applications

    Defense Solutions division, a leading supplier of modular open systems approach (MOSA) solutions engineered to succeed, today introduced the Parvus® DuraCOR® Pi, the embedded industry’s first Raspberry Pi (RPi) powered mission computer for defense and aerospace applications. The ultra-small form factor (USFF) DuraCOR Pi, fully ruggedized to deliver optimal performance in harsh operating environments, is the first mission computer to deliver 100% compatibility with the vast Pi Developer Ecosystem in a fully MIL-STD rugged sealed housing.

  • 2022-03-21 Introduction Plaintext Productivity

    This guide is meant to document the things I have done, the software I have used, and the decisions I have made to be really fast and really well-organized at work, and to help prioritize and maintain focus on my current activities. One key decision, made for speed above all else, is to capture as much of my thinking and work in plaintext as I can. Thus the name: Plaintext Productivity. I will explain my reasoning behind choosing plaintext in each section in which it is relevant.

  • 2022-03-23 jgraph/drawio-desktop: Official electron build of diagrams.net

    drawio-desktop is a diagramming and whiteboarding desktop app based on Electron that wraps the core draw.io editor.

  • 2022-03-25 Home React Flow

    A highly customizable React component for building node-based editors and interactive diagrams

  • 2022-03-26 Running GUI apps within Docker containers – Trickster Dev

    Suppose we have Docker installed on macOS or other Unix/Linux system. How do we run Firefox within Docker container? For a first attempt, let us consider the following Dockerfile:

FROM ubuntu:latest
RUN apt-get update && apt-get install -y firefox x11vnc xvfb
RUN echo "exec firefox" > ~/.xinitrc && chmod +x ~/.xinitrc
CMD ["x11vnc", "-create", "-noxrecord", "-noxfixes", "-noxdamage", "-forever", "-passwd", "trustno1"]

🥑 Rust

  • 2022-04-11 What I learned from making a DNS client in Rust

    Over the last few weeks I built my own DNS client. Mostly because I thought dig (the standard DNS client) 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.

  • 2022-04-11 What Is Rust's unsafe? Nora Codes

    Rust promises safety as one of its core tenets; it is, in some ways, the raison d'être of the language. It does not, however, go about providing that safety in the traditional way, using a runtime and a garbage collector; rather, Rust uses a very advanced

  • 2022-04-11 iced-rs/iced: A cross-platform GUI library for Rust, inspired by Elm

    iced is currently experimental software. A cross-platform GUI library for Rust focused on simplicity and type-safety.

.NET/ C#

  • 2022-04-06 .NET type for personally identifiable information PII

    According to the law in many countries, you must treat PII data in a special way. For example, there is a number of restrictions on the use of personal data according to GDPR regulation in the European Union. I’m going to list some requirements based on t What if we introduce an explicit type for PII, like PiiString. The idea is to have PiiString type as much interchangeable with String as possible to simplify refactoring existing code which uses the String. Then, within the application boundary it should behave like usual String, however crossing application boundaries it should be encoded/encrypted/hashed.

PowerShell

  • 2022-04-11 PowerShell - Aliases

    about PowerShell aliases

  • 2022-04-12 How to Use PowerShell's Grep Select-String

    One of the first Linux commands that many system administrators learn is grep. This venerable tool has been around for decades and is crucial to any administrator’s toolbelt. Grep’s core is simply the ability to search plain text for a RegEx pattern. Grep can search files in a given directory or streamed input to output matches. Did you know PowerShell has grep? Well..almost.

Select-String -Path "Users\*.csv" -Pattern "Joe","Marti","Jerry"

Authorization & Authentication

  • 2022-04-03 Combining Bearer Token and Cookie Authentication in ASP.NET - Rick Strahl's Web Log

    And we're back for another episode in the seedy TV drama that is ASP.NET Authentication. In today's show we'll discuss the mysterious case of combining multiple authentication schemes in a single application. Tune in at 11 for the scary conclusion...

    In this post I'll talk about:

    • Combining JWT Bearer Token and Cookie Authentication
    • Using Manual JWT Tokens
    • Using Manual Cookies
    • Using only ASP.NET's low level Auth features - not using ASP.NET Core Identity