Skip to main content

· 7 min read

Good reads

2022-12-28 Advice on being managed

When you shift from being managed to also sometimes managing others, you have a predictable shift in perspective and a lot of obvious-in-retrospect insights. In the spirit of “saying obvious things is good” here are a few.

  • Be honest
  • Be straightforward
  • Be a joy to work with
  • Remember why managers exist
  • Your manager is also being managed

2022-12-14 How does GPT Obtain its Ability? Tracing Emergent Abilities of Language Models to their Sources

There are three important abilities that the initial GPT-3 exhibit:

  • Language generation: to follow a prompt and then generate a completion of the given prompt. Today, this might be the most ubiquitous way of human-LM interaction.
  • In-context learning: to follow a few examples of a given task and then generate the solution for a new test case. It is interesting to note that, although being a language model, the original GPT-3 paper barely talks about “language modeling” — the authors devoted their writing efforts to their visions of in-context learning, which is the real focus of GPT-3.
  • World knowledge: including factual knowledge and commonsense.

Where do these abilities come from?

Generally, the above three abilities should come from large-scale pretraining — to pretrain the 175B parameters model on 300B tokens (60% 2016 - 2019 C4 + 22% WebText2 + 16% Books + 3% Wikipedia). Where:

  • The language generation ability comes from the language modeling training objective.
  • The world knowledge comes from the 300B token training corpora (or where else it could be).
  • The 175B model size is for storing knowledge, which is further evidenced by Liang et al. (2022), who conclude that the performance on tasks requiring knowledge correlates with model size.
  • The source of the in-context learning ability, as well as its generalization behavior, is still elusive. Intuitively, this ability may come from the fact that data points of the same task are ordered sequentially in the same batch during pretraining. Yet there is little study on why language model pretraining induces in-context learning, and why in-context learning behaves so differently than fine-tuning.

Fun

2022-12-16 Meet Ghostwriter, a haunted AI-powered typewriter that talks to you Ars Technica

On Wednesday, a designer and engineer named Arvind Sanjeev revealed his process for creating Ghostwriter, a one-of-a-kind repurposed Brother typewriter that uses AI to chat with a person typing on the keyboard. The "ghost" inside the machine comes from OpenAI's GPT-3, a large language model that powers ChatGPT. The effect resembles a phantom conversing through the machine.

image-20221228135459292

2022-12-15 Recursive Game of Life: Life Universe

image-20221228140420376

How the things work

2022-12-27 A Guide to the Terminal, Console, and Shell

So, since it’s so useful, let’s look a bit deeper what’s this shell, console, and terminal. More precisely, we’ll see, in this article:

  • The legacy of physical teletypes in Unix-based systems.
  • What are virtual consoles (TTY).
  • What are pseudoterminals.
  • What’s the shell.
  • How to customize a terminal.

Apps and tools

2022-12-27 Amazing AI — Sindre Sorhus (Stable Diffusion)

Stable Diffusion now with UI for Mac

2022-12-26 Squoosh

This app lets you compress images for the web image-20221228133423925

2022-12-15 Riffusion

Stable Diffusion fine-tuned to generate MusicThis is the v1.5 stable diffusion model with no modifications, just fine-tuned on images of spectrograms paired with text. Audio processing happens downstream of the model.

It can generate infinite variations of a prompt by varying the seed. All the same web UIs and techniques like img2img, inpainting, negative prompts, and interpolation work out of the box.

Code: https://github.com/riffusion/riffusion Discord: https://discord.gg/yu6SRwvX4v

Projects

2022-12-15 lettier/3d-game-shaders-for-beginners: 🎮 A step-by-step guide to implementing SSAO, depth of field, lighting, normal mapping, and more for your 3D game.

game1111

2022-12-21 List of Chromium Command Line Switches « Peter Beverloo

There are lots of command lines which can be used with the Google Chrome browser. Some change behavior of features, others are for debugging or experimenting. This page lists the available switches including their conditions and descriptions.

2022-12-20 I built a $5 chat app with Pocketbase & Svelte. Will it scale? - YouTube

PocketBase - Open Source backend in 1 file Open Source backend for your next SaaS and Mobile app in 1 file

2022-12-19 How to rebuild social media on top of RSS

and we should look for ways to make these reading, publishing, and community services all play nicely together. I'm calling this model "the unbundled web," and I think RSS should be the primary method of interop. (The term "decentralized" has already been co-opted by all those bitcoin people, so I'm using "unbundled" as a synonym with less baggage.)

X-Files

2022-12-27 Amazon Packages Burn in India, Last Stop in Broken Plastic Recycling System

Muzaffarnagar, a city about 80 miles north of New Delhi, is famous in India for two things: colonial-era freedom fighters who helped drive out the British and the production of jaggery, a cane sugar product boiled into goo at some 1,500 small sugar mills in the area. Less likely to feature in tourism guides is Muzaffarnagar’s new status as the final destination for tons of supposedly recycled American plastic. image-20221228132944334

JavaScript / Web

2022-12-16 fart.js - the premier javascript fart library, by jsfart.com 2022-12-16 Let it snow! Embed a snow effect on your website 2022-12-16 Vanilla-tilt.js

2022-12-14 JavaScript APIs You Don’t Know About — Smashing Magazine

  • navigator.canShare()
const shareButton = document.querySelector("#share-button");

const shareQuote = async (shareData) => {
try {
await navigator.share(shareData);
} catch (error) {
console.error(error);
}
};

shareButton.addEventListener("click", () => {
let shareData = {
title: "A Beautiful Quote",
text: quote.textContent,
url: location.href,
};

shareQuote(shareData);
});

C#

2022-12-19 HashCode.Combine Method System Microsoft Learn

Note to my future self! Combines values into a hash code.

Videos

I have watched lots of talks during my vacation; here are some interesting ones.

C++

2022-12-28 Concurrency Patterns - Rainer Grimm - CppCon 2021 - YouTube

This one is about the OOP C++ Concurrency patterns, like this one for locks:

image-20221228132809167

C#

2022-12-14 Back to Basics: Efficient Async and Await - Filip Ekberg - NDC Porto 2022 - YouTube

image-20221228140614204 Pluralsight: http://bit.ly/ps-async

DDD - Domain-Driven Design

2022-12-26 Share Pie: The DDD Treasure Hidden in Plain Sight - Nick Tune - NDC Oslo 2022 - YouTube

33:47: The Domain Drives You, And You Drive the Domain

Mental Wellbeing

2022-12-24 I'm just trying to keep my head above water - Chris Klug - NDC Oslo 2022 - YouTube

A software engineer is sharing his experience with depression and visiting "some ones"

Projects

2022-12-20 Practical Pipelines: A Houseplant Soil Alerting System with ksqlDB - Danica Fine - NDC Oslo 2022 - YouTube

Houseplants can be hard – in many cases, over- and under-watering can have the same symptoms. Take away the guesswork involved in caring for your houseplants while also gaining valuable experience in building a practical, event-driven pipeline in your own home! This talk explores the process of building a houseplant monitoring and alerting system using a Raspberry Pi and Apache Kafka. Moisture and temperature readings are captured from sensors in the soil and streamed into Kafka. From here, we’ll use stream processing to transform the data, creating a summary view of the current state and driving real-time push alerts to your phone through Telegram. In this session, I’ll talk about how I ingest the data, followed by a look at the tools, including ksqlDB and Kafka Connect, that will help transform the raw data into useful information.

· 4 min read

My AI Content

I have generated these articles with ChatGPT today...

2022-12-14 Whiskers the Software Developer: A Fairy Tale

Once upon a time, in a kingdom far, far away, there lived a cat named Whiskers who was a brilliant software developer. For many years, Whiskers worked tirelessly on a variety of projects, using his sharp mind and quick paws to create beautiful and functional code.

2022-12-14 The Essential Skills of a Successful Software Developer

The most valuable qualities of a software developer include their ability to problem-solve, communicate effectively, be organized and detail-oriented, and be adaptable and willing to learn. These skills enable them to excel in their work and make significant contributions to the success of their organization.

2022-12-14 How Software Developers Can Overcome Procrastination and Boost Productivity

Procrastination is a common challenge for many people, and software developers are no exception. With the complex and demanding nature of their work, it can be easy for developers to fall into the trap of putting off important tasks and letting deadlines slip. However, left unchecked, procrastination can have serious negative consequences on both personal and professional levels. So, how can software developers fight back against this insidious habit and stay focused and productive?

2022-12-14 5 Harmless Ways Software Developers Can Have Fun at Work

  1. Play "code golf" - try to solve a programming problem in the fewest number of characters possible
  2. Have a "code jam" - get together with a group of coworkers and try to solve a programming challenge together
  3. Share interesting programming articles or videos with your team
  4. Organize a "hack day" where team members can work on personal projects or experiment with new technologies
  5. Join an online coding competition or hackathon for a fun and engaging way to challenge yourself and improve your skills.

Good reads

2022-12-13 The best things and stuff of 2022

2022-12-10 DDD, Hexagonal, Onion, Clean, CQRS, … How I put it all together – @hgraca

This post is part of The Software Architecture Chronicles**, a series of posts about Software Architecture**. In them, I write about what I’ve learned about Software Architecture, how I think of it, and how I use that knowledge. The contents of this post might make more sense if you read the previous posts in this series.

image-20221214102536832

Fun

2022-12-05 Asteroid Launcher

image-20221214103357830

2022-12-05 3D Pinball for Windows - Space Cadet

image-20221214103446118

ChatGTP

2022-12-11 The GPT-3 Architecture, on a Napkin

There are so many brilliant posts on GPT-3, demonstrating what it can do, pondering its consequences, vizualizing how it works. With all these out there, it still took a crawl through several papers and blogs before I was confident that I had grasped the architecture.

So the goal for this page is humble, but simple: help others build an as detailed as possible understanding of the GPT-3 architecture.

image-20221214102044155

2022-12-10 Disputing A Parking Fine with ChatGPT - Notes by Lex

2022-12-10 f/awesome-chatgpt-prompts: This repo includes ChatGPT promt curation to use ChatGPT better.

2022-12-09 The best ChatGPT examples from around the web

Hacker news for prompts

Projects

2022-12-13 odnoletkov/advent-of-code-jq: Solving Advent of Code with jq

Solving Advent of Code 2022 with jq

2022-12-11 Giant VR Robots Are Building Railways In Japan - Virtual Uncle

image-20221214102145463

2022-12-10 This to That Glue Advice

image-20221214102339045

2022-12-10 albfan/miraclecast: Connect external monitors to your system via Wifi-Display specification also known as Miracast

2022-12-07 awesome-macos-command-line

2022-12-05 Installing FreeBSD on a Raspberry Pi

Video Editing

2022-12-13 LosslessCut

The Swiss Army Knife of Lossless Video/Audio Editing

image-20221214101822912

Videos

2022-12-06 Keynote: Abstraction Patterns - Kate Gregory - NDC TechTown 2022 - YouTube

A consultant is someone who borrows your watch to tell you the time, (... and then keeps the watch)

To Conor Hoekstra, for the truth about speaking To Guy Davidson, for Beautiful C++ To Tony Van Eerd, for a SOLID talk at C++ Now 2021

2022-12-04 mis Using FFmpeg’s Motion Interpolation Options Antonio Roberts It's morphing time!

image-20221214103633039

ffmpeg -i faces.mp4 -filter:v "setpts=40*PTS,minterpolate='fps=25:scd=none:me_mode=bidir:vsbmc=1:search_param=2000'" -y search_param_2000.mp4

· 7 min read

Good reads

  • 2022-12-03 Don't End The Week With Nothing

    Prefer Working On Things You Can Show

    One of the reasons developers have embraced OSS so much is because it gives you portable capital between companies: if your work is sitting on Github, even if you leave one job, you can take it with you to your next job. Previously this happened pretty widely but generally under the table. (Is there any programmer who does not have a snippets folder or their own private library for scratching that one particular itch?) One of the great wrinkles that OSS throws into this is that OSS is public by default, and that's game changing.

  • 2022-11-29 Post 43: Intentionally Making Close Friends — Neel Nanda

    One of the greatest sources of joy in my life are my close friends. People who bring excitement and novelty into my life. Who expose me to new experiences, and ways of seeing the world. Who help me learn, point out my blind spots, and correct me when I am wrong. Who I can lean on when I need support, and who lean on me in turn. Friends who help me grow more into the kind of person I want to be.

  • 2022-11-28 Engineers' billing nightmares · getlago/lago Wiki

    Our team at Lago still has some painful memories of Qonto's internal billing system, that we had to build and maintain. Why was it so painful? In this article, I will provide a high-level view of the technical challenges we faced while implementing hybrid pricing (based on subscription and usage) and what we learned during this journey.

  • 2022-11-28 FFmpeg - Ultimate Guide IMG.LY Blog

    In this guide, we'll go through the hot topics of FFmpeg. But before that, we'll cover some base ground to help you understand basic media concepts and FFmpeg. Feel free to skip the parts that are already trivial for you!

  • 2022-11-27 40 Useful Concepts You Should Know - by Gurwinder

    Baader-Meinhof Phenomenon:

    When we notice something new, like an unusual word, we start seeing it more often. It feels like it's become more common but really we're just more alert to it, and we confuse our attention with reality itself. Hence conspiracy theories.

    Ostrich Effect:

    We often try to avoid info that we fear will cause us stress. Thus bills and work emails remain unopened, bank balances remain unchecked. This is counterproductive because ignoring a problem doesn't eliminate the problem or your anxiety; it only prolongs them.

    Nobel Disease:

    We idolize those who excel in a particular field, inflating their egos and afflicting them with the hubris to opine on matters they know little about. By celebrating people for their intelligence, we make them stupid.

Games

Retro

  • 2022-11-29 Obsolete Sounds

    Obsolete Sounds is the world’s biggest collection of disappearing sounds and sounds that have become extinct – remixed and reimagined to create a brand new form of listening.

Tools

  • 2022-12-02 Drag and drop from terminal

    So far, whenever I wanted to share a file from the terminal I would open up a GUI file browser, navigate to that directory, find the file and then drag and drop it. Not anymore. I recently was able to cobble together a pretty good(IMO) for dragging and dropping files to GUI applications and thought I would share. Now let us see how to get this workflow. The main tool that is helping with this is dragon. Here is how you use it

  • 2022-11-29 FFMPEG.WASM

    ffmpeg.wasm is a pure WebAssembly / JavaScript port of FFmpeg. It enables video & audio record, convert and stream right inside browsers.

  • 2022-11-29 What working with Tailwind CSS every day for 2 years looks like — Mosaad

    For more than two years, I've been using Tailwind CSS almost every working day for company projects and a lot of weekends for my side projects.

    During this time, I've worked with it on projects using WordPress, Laravel, Vue.js, Next.js, Remix.run, and many other technologies.

Security

# Windows
certutil -hashfile TabletopClub_vX.X.X_Windows_64.zip SHA512

# macOS
shasum -a 512 TabletopClub_vX.X.X_OSX_Universal.zip

# Linux / *BSD
sha512sum TabletopClub_vX.X.X_Linux_64.zip

C

Learning C was quite difficult for me. The basics of the language itself weren’t so bad, but “programming in C” requires a lot of other kinds of knowledge which aren’t as easy to pick up on:

  • C has no environment which smooths out platform or OS differences; you need to know about your platform too
  • there are many C compiler options and build tools, making even running a simple program involve lots of decisions
  • there are important concepts related to CPUs, OSes, compiled code in general
  • it’s used in such varied ways that there’s far less a centralised “community” or style than other languages

Seattle

  • 2022-12-03 Seattle Metro Bus Hiking

    Walks, Hikes, and Outdoor Adventures in the Seattle area that you can reach by Public Transit

    image-20221203224852239

Watch Me

- 2022-12-01 "The Early Days of id Software: Programming Principles" by John Romero Strange Loop 2022 - YouTube

image-20221203225231168

  • id Software programming principles by John Romero

    No prototypes. Just make the game. Polish as you go. Don't depend on polish happening later. Always maintain constantly shippable code.

    It's incredibly important that your game can always be run by your team. Bulletproof your engine by providing defaults upon load failure.

    Keep your code absolutely simple. Keep looking at your functions and figure out how you can simplify further.

    Great tools help make great games. Spend as much time on tools as possible.

    We are our own best testing team and should never allow anyone else to experience bugs or see the game crash. Don't waste others' time. Test thoroughly before checking in your code.

    As soon as you see a bug, you fix it. Do not continue on. If you don't fix your bugs your new code will be built on a buggy codebase and ensure an unstable foundation.

    Write your code for this game only - not for a future game. You're going to be writing new code later because you'll be smarter.

    Encapsulate functionality to ensure design consistency. This minimizes mistakes and saves design time.

    Try to code transparently. Tell your lead and peers exactly how you are going to solve your current task and get feedback and advice. Do not treat game programming like each coder is a black box. The project could go off the rails and cause delays.

    Programming is a creative art form based in logic. Every programmer is different and will code differently. It's the output that matters.

· 4 min read

Good reads

2022-11-22 Debugging tips and tools - Meziantou's blog

Here are some tips and tools to help you debug your .NET applications. The goal is not to be exhaustive, but to give you some ideas on how to debug your applications.

2022-11-21 How it works - Briar

P2P Encrypted messages Briar is a messaging app designed for activists, journalists, and anyone else who needs a safe, easy and robust way to communicate. Unlike traditional messaging apps, Briar doesn’t rely on a central server - messages are synchronized directly between the users’ devices. If the internet’s down, Briar can sync via Bluetooth or Wi-Fi, keeping the information flowing in a crisis. If the internet’s up, Briar can sync via the Tor network, protecting users and their relationships from surveillance.

Fun

2022-11-24 Ethernet RJ45 clip to secure/repair/fix broken tab by guss67 - Thingiverse

And this is awesome! image-20221127123140432

Retro

2022-11-24 ekeeke/Genesis-Plus-GX: An enhanced port of Genesis Plus - accurate & portable Sega 8/16 bit emulator

Job Interviews

2022-11-22 Job Interview question samples https://bit.ly/InterviewDevsResource

from this talk Keynote: Lies Developers Tell Themselves - Billy Hollis - NDC Minnesota - YouTube

Projects

2022-11-25 Script Kit: Shortcut to Everything

Shortcut to Everything An open-source kit to optimize your developer workflow image-20221127122346133

2022-11-25 Soundux/Soundux: 🔊 A cross-platform soundboard

Soundux is a cross-platform soundboard that features a simple user interface. With Soundux you can play audio to a specific application on Linux and to your VB-CABLE sink on Windows. image-20221127122600203

But what was interesting, this program is created with with webview/webview: Tiny cross-platform webview library for C/C++/Golang. Uses WebKit Gtk/Cocoa and Edge Windows

2022-11-24 brycedrennan/imaginAIry: AI imagined images. Pythonic generation of stable diffusion images.

image-20221127123444878

2022-11-22 terrastruct/d2: D2 is a modern diagram scripting language that turns text to diagrams.

image-20221127124452661

CSS

2022-11-27 An Interactive Guide to Flexbox in CSS

image-20221127122038771

X-Files

2022-11-24 Smart Move, Google maps.google.com now redirects to google.com/maps

Back home I opened Google Maps again, and noticed that maps.google.com now redirects to google.com/maps. This implies that the permissions I give to Google Maps now apply to all of Googles services hosted under this domain.

2022-11-24 Discovery: ‘Special’ muscle can promote gluco EurekAlert!

From the same mind whose research propelled the notion that “sitting too much is not the same as exercising too little,” comes a groundbreaking discovery set to turn a sedentary lifestyle on its ear: The soleus muscle in the calf, though only 1% of your body weight, can do big things to improve the metabolic health in the rest of your body if activated correctly.  

Video

2022-11-26 Keynote: The Next Decade of Software Development - Richard Campbell - NDC Minnesota - YouTube

image-20221127122236501

2022-11-24 Taking Notes is a WASTE OF TIME When You're Learning To Code! DO THIS INSTEAD! - YouTube

image-20221127122813536 Vicky S

  1. Don't Bother taking notes for the first 2 months rather focus on the course or tutorial.
  2. After learning the basics, start building projects and comment on every single line.
  3. Write documentation, basically explaining the purpose of your project (watch other tutorials on how to write documentation in VScode).
  4. Only take notes of those concepts which you use very often and find it difficult to remember them. Thank you, Dorian it really helped a lot :)

2022-11-23 Contemporary C++ in action - Daniela Engert - NDC TechTown2022 - YouTube

Really hardcore talk! image-20221127123704832

· 4 min read

Good reads

Retro

Games

Projects

Go

Tools

CSS

Kiosk

$ sysctl -w kernel.panic=60

FFmpeg

$ ffmpeg -i input.mp4 -vf scale=1920:-1 -vcodec libx265 -crf 24 output.mp4

X-Files

· 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