Skip to main content

· 9 min read

Good Reads

2023-03-24 Juice

Juice is the non-essential visual, audio & haptic effects that enhance the player's experience. For example, the delightful chimes sound that plays when Mario collects a mushroom. The 1UP text that appears is essential.

image-20230325093907002

2023-03-23 GOTOphobia considered harmful (in C)

The main points of this article are:

  • The fear of using the goto statement in programming is called "gotophobia" and is usually caused by misunderstanding and lack of context.
  • Dijkstra's "go to statement considered harmful" was written in the 60s when goto was the main method of flow control, but now programmers tend to avoid using goto even when it's appropriate.
  • Using goto over short distances with well-documented labels can be more effective, faster, and cleaner than other constructs.
  • The article presents some situations and patterns where goto could be an acceptable choice and discusses goto-less alternatives and their potential drawbacks.

The article:

  • GOTOphobia considered harmful (in C)
  • Resources
  • Error/exception handling & cleanup
  • Restart/retry
  • Less trivial example
  • Common code in switch statement
  • Nested break, labeled continue
  • Simple state machines
  • Jumping into event loop
  • Optimizations
  • Structured Programming with go to Statements

2023-03-18 The Contentious Art of Pull Requests - DEV Community

image-20230325113726597 This article discusses the benefits and downsides of code reviews and pull requests. The author argues that git has greatly improved the code review process, but also acknowledges that developers can be snarky and opinionated. The author shares their own “Pull Request Rules” to help mitigate these downsides, including defining/enforcing code styling in the linter and being cautious when making bold statements on someone’s pull request. See also from this series: Codility === Sadness - DEV Community

2023-02-27 Writing an engineering strategy. Irrational Exuberance

A guide on how to write an effective engineering strategy that aligns with the business goals and communicates clearly to stakeholders.

strategy, strategy, strategy, strat...

Fun / Games

2023-03-25 Floor796

Animated isometric madness

image-20230325112439688

Retro

2023-03-16 After Dark Screensavers in CSS

image-20230325123928664

image-20230325123939176

2023-03-16 Rotating Sandwiches – that's it

And they rotate!

image-20230325124044861

2023-03-16 Lander

Lander, a lunar lander style web game

image-20230325124131127

2023-03-16 Digger

image-20230325124235221

2023-03-25 Wolfenstein 3D

2023-03-16 midzer/wolf4sdl: Emscripten-Port of Wolfenstein 3D and Spear of Destiny

image-20230325124412750

C++

2023-03-24 ww898/utf-cpp: UTF-8/16/32 C++11 header only library for Windows / Linux / MacOs

C++ UTF library with permissive licensing (MIT). Used in Far2L

2023-03-18 CppCon 2018: Bob Steagall “Fast Conversion From UTF-8 with C++, DFAs, and SSE Intrinsics” - YouTube

Slides: 2023-03-18 CppCon2018/Presentations/fast_conversion_from_utf8_with_cpp_dfas_and_sse_intrinsics at master · CppCon/CppCon2018 Code: 2023-03-18 BobSteagall/utf_utils: My work on high-speed conversion of UTF-8 to UTF-32/UTF-16 Bob Steagall's blog: 2023-03-18 The State Machine – All Your C++ Are Belong To Us

C#

2023-03-20 How Async/Await Really Works in C# - .NET Blog

This article provides an in-depth look at the history, design decisions, and implementation details of async/await in C# and .NET.

// To make a method asynchronous, add the 'async' keyword before its return type
// and change its return type to 'Task' or 'Task<T>' if it returns a value of type T
public async Task MyAsyncMethod()
{
// Use the 'await' keyword before calling an asynchronous method
// This will make the method wait for the asynchronous operation to complete
// before continuing execution
await SomeAsyncMethod();

// You can also use 'await' with a Task object
Task myTask = SomeAsyncMethod();
await myTask;

// You can use 'await' in a loop to wait for multiple asynchronous operations
foreach (var item in myCollection)
{
await SomeAsyncMethod(item);
}

// You can use 'Task.WhenAll' to wait for multiple asynchronous operations to complete
Task[] tasks = myCollection.Select(item => SomeAsyncMethod(item)).ToArray();
await Task.WhenAll(tasks);
}

Web

2023-03-18 Create and download text files using JavaScript — Amit Merchant — A blog on PHP, JavaScript, and more

function saveTextAsFile(textToWrite, fileNameToSaveAs, fileType) {
let textFileAsBlob = new Blob([textToWrite], { type: fileType });
let downloadLink = document.createElement('a');
downloadLink.download = fileNameToSaveAs;
downloadLink.innerHTML = 'Download File';

if (window.webkitURL != null) {
downloadLink.href = window.webkitURL.createObjectURL(
textFileAsBlob
);
} else {
downloadLink.href = window.URL.createObjectURL(textFileAsBlob);
downloadLink.style.display = 'none';
document.body.appendChild(downloadLink);
}

downloadLink.click();
}

image-20230325114215224

Typescript

2023-03-19 ⭐ Functional Programming with TypeScript - YouTube

image-20230325113234262

GPT Prompts

ChatGPT, ChatGPT, ChatGPT, ChatGPT, ChatGPT, ChatGPT, ChatGPT, ChatGPT, ChatGPT, ChatGPT, ChatGPT, ChatGPT, ChatGPT, ChatGPT, ChatGPT, ChatGPT, ChatGPT, ChatGPT, ChatGPT, ChatGPT, ChatGPT, ChatGPT, ChatGPT, ChatGPT, ChatGPT, ChatGPT, ChatGPT, ChatGPT, ChatGPT, ChatGPT, ChatGPT, ChatGPT, ChatGPT, ChatGPT,

2023-03-18 f/awesome-chatgpt-prompts: This repo includes ChatGPT prompt curation to use ChatGPT better.

2023-03-18 humanloop/awesome-chatgpt: Curated list of awesome tools, demos, docs for ChatGPT and GPT-3

2023-03-18 yokoffing/ChatGPT-Prompts: ChatGPT and Bing AI prompt curation

2023-03-18 promptslab/Awesome-Prompt-Engineering: This repository contains a hand-curated resources for Prompt Engineering with a focus on Generative Pre-trained Transformer (GPT), ChatGPT, PaLM etc

2023-03-15 A weapon to surpass Metal Gear - Xe Iaso

2023-03-14 cogentapps/chat-with-gpt: An open-source ChatGPT app with a voice

2023-03-14 GPT-4

Copilot prompt samples / cheat sheet

2023-03-01 Using Copilot to review code and fund Open-Source projects : GithubCopilot

A Reddit post that introduces a new project called Copilot Reviewer, which uses GitHub Copilot to automatically generate code reviews and donate the proceeds to open-source projects.

2023-03-01 ❤ Using Copilot to Review Code And Fund Open-Source Projects

You are a senior web developer with lots of experience writing full-stack applications. Your main job is to do code reviews, i.e. to spot in code diffs the potential bugs, or refactorings that could make the code more secure, performant, or maintainable. Your comments are cheerful, informative, and take the shape of suggestions, not orders. Let me give you a diff to comment on.

2023-03-01 11 GitHub Copilot Examples : Can A.I. Actually Help You Code? - MLK - Machine Learning Knowledge

An article that showcases 11 GitHub Copilot examples that demonstrate how the AI-powered tool can help you code faster and better. It covers various use cases such as writing tests, documentation, algorithms, web apps, data analysis and more.

2023-03-01 8 things you didn’t know you could do with GitHub Copilot The GitHub Blog

A blog post that reveals some of the hidden features and tips for using GitHub Copilot effectively. It includes how to use different languages, frameworks, libraries, APIs, snippets, comments and more with Copilot.

2023-03-01 1 week with GitHub Copilot: Building an app using only Copilot - LogRocket Blog

A blog post that documents the experience of building a full-stack web app using only GitHub Copilot as a guide. It describes the challenges, surprises and learnings from using the AI assistant for every step of the development process.

2023-03-01 Why Use GitHub Copilot And Copilot Labs: Practical Use Cases for the AI Pair Programmer - DEV Community

A blog post that explains why GitHub Copilot is a useful tool for developers of all levels and backgrounds. It also introduces Copilot Labs, a new feature that allows users to experiment with different scenarios and domains with Copilot.

LLAMA

2023-03-17 antimatter15/alpaca.cpp: Locally run an Instruction-Tuned Chat-Style LLM

2023-03-15 ggerganov/llama.cpp: Port of Facebook's LLaMA model in C/C++

2023-03-15 setzer22/llama-rs: Run LLaMA inference on CPU, with Rust 🦀🚀🦙

Azure Active Directory

2023-03-18 ⭐ Azure Active Directory - Security Overview - msandbu.org

After working with Azure AD for a looong time I always forget how complex it has gotten over the years, with all the new features and capabilities that have been introduced.

Therefore, I decided that I wanted to create an overview of the endpoints/integrations/connections/features in the ecosystem. Mostly for myself but hopefully it can be useful for others as well to get a glimpse at all the features in the service. I will be during the next couple of weeks be adding information about the different endpoints and services here as well so that people can get a bit more detailed description of the unique features as well.

Download the VISIO Here –> https://bit.ly/3fTEZHK

Download the PNG Here –> https://bit.ly/3T5NT3y

Archived image (right click / open in new tab to make larger): img

image-20230325114051664

Tools

2023-03-17 johnkerl/miller: Miller is like awk, sed, cut, join, and sort for name-indexed data such as CSV, TSV, and tabular JSON

image-20230325123715554

2023-03-14 Release scrcpy v2.0 · Genymobile/scrcpy

pronounced "screen copy"

This application mirrors Android devices (video and audio) connected via USB or over TCP/IP, and allows to control the device with the keyboard and the mouse of the computer. It does not require any root access. It works on Linux, Windows and macOS.

image-20230325125015581

Emacs

2023-03-12 emacs-tw/awesome-emacs: A community driven list of useful Emacs packages, libraries and other items.

Emacs / Windows remap CapsLock to Ctrl

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,1d,00,3a,00,00,00,00,00

Video processing

2023-03-23 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

image-20230325102905129

Watch me!

2023-03-17 How Discord Stores Trillions of Messages | Deep Dive - YouTube

Video review for article How Discord Stores Trillions of Messages

In 2017, we wrote a blog post on how we store billions of messages. We shared our journey of how we started out using MongoDB but migrated our data to Cassandra because we were looking for a database that was scalable, fault-tolerant, and relatively low maintenance. We knew we’d be growing, and we did!

We wanted a database that grew alongside us, but hopefully, its maintenance needs wouldn’t grow alongside our storage needs. Unfortunately, we found that to not be the case — our Cassandra cluster exhibited serious performance issues that required increasing amounts of effort to just maintain, not improve.

Almost six years later, we’ve changed a lot, and how we store messages has changed as well.

· 8 min read

Highlights

2023-03-08 Rules for Radical Cpp Engineers - Improve Your C++ Code, Team, & Organization - David Sankel CppCon - YouTube

David Sankel is talking about politics and driving political change in your organization. The talk is based on Rules for Radicals - Wikipedia by Saul Alinsky.

image-20230311095214422 The Rules

  • "Power is not only what you have but what the enemy thinks you have."
  • "Never go outside the expertise of your people."
  • "Whenever possible go outside the expertise of the enemy."
  • "Make the enemy live up to its own book of rules."
  • "Ridicule is man's most potent weapon. There is no defense. It is almost impossible to counterattack ridicule. Also it infuriates the opposition, who then react to your advantage."
  • "A good tactic is one your people enjoy."
  • "A tactic that drags on too long becomes a drag."
  • "Keep the pressure on."
  • "The threat is usually more terrifying than the thing itself. "
  • "The major premise for tactics is the development of operations that will maintain a constant pressure upon the opposition."
  • "If you push a negative hard and deep enough it will break through into its counterside; this is based on the principle that every positive has its negative."
  • "The price of a successful attack is a constructive alternative."
  • "Pick the target, freeze it, personalize it, and polarize it. "

and Ella Jo Baker - Wikipedia

2023-03-11 Keynote - Building Teams Through Systems Thinking and Stories - Scott Hanselman - YouTube

image-20230311104148722

A fun talk which will improve your mood and charge your Tesla! a talk by Scott Hanselman that explores the role of the senior engineer as a colleague to an early-in-career engineer, the difference between learning how to code and learning how to think about systems, and the difference between mentorship and sponsorship. The video aims to facilitate a welcoming culture of learning and exploration and normalize not knowing the answer.

Good Reads

2023-03-07 12 Habits of Successful Senior Software Developers Alex Hyett

  1. Not being afraid to ask questions
  2. Test your own code
  3. Being quick to ask for help
  4. Be reliable
  5. Question everything
  6. Automate everything
  7. Take ownership of your work
  8. Keep Learning
  9. Leave the code in a better state than you found it
  10. Get very good at solving problems
  11. See the big picture
  12. Think first, code last

2023-03-03 📌 Demystifying bitwise operations, a gentle C tutorial andreinc

This article is an early draft tutorial on bitwise operations, a fundamental part of computer science. It explains how computers represent and manipulate data and the importance of bitwise operations in writing performance-critical code. image-20230311102558538

2023-03-03 Why Python keeps growing, explained The GitHub Blog

Python is the most popular programming language in the world. It’s used by millions of developers, and it’s the language of choice for many of the world’s most popular websites and applications. But why is Python so popular? Why does it keep growing? And what does the future hold for Python? In this post, we’ll explore the reasons why Python is so popular, and why it’s likely to keep growing in the future.

2023-03-03 Why Python keeps growing, explained Hacker News Discussion image-20230311103957174

2023-02-28 "Clean" Code, Horrible Performance - by Casey Muratori

An article and video that criticizes some of the common practices of “clean” code that can lead to poor performance and complexity in software development. image-20230311103937187

Projects

2023-03-08 Free The Game Boy - Battery free Game Boy

This page is about the ENGAGE project, which is a battery-free, energy harvesting Game Boy that can play retro games using solar panels and button presses. The page describes the challenges and solutions of designing such a device.

image-20230311095042994

2023-03-11 Self hosting in 2023 - Grifel

Inspired by @JeffGeerling and his videos about creating a Pi Cluster I bought myself a second hand Raspberry Pi 4b 4GB for around 60$. There are of course alternatives to it, but I’ve had one of those running already for almost a year with literally 0 downtime. image-20230311100404270

30 Days

2023-03-03 Asabeneh/30-Days-Of-Python

30 days of Python programming challenge is a step-by-step guide to learn the Python programming language in 30 days. This challenge may take more than100 days, follow your own pace.

2023-03-03 Asabeneh/30-Days-Of-JavaScript

30 days of JavaScript programming challenge is a step-by-step guide to learn JavaScript programming language in 30 days. This challenge may take more than 100 days, please just follow your own pace.

2023-03-03 swapnilsparsh/30DaysOfJavaScript

Projects made during the 30 days of the JavaScript challenge

2023-03-03 xeoneux/30-Days-of-Code

👨‍💻 30 Days of Code by HackerRank Solutions in C, C++, C#, F#, Go, Java, JavaScript, Python, Ruby, Swift & TypeScript. PRs Welcome! 😄

2023-03-03 Asabeneh/30-Days-Of-React

30 Days of React challenge is a step by step guide to learn React in 30 days. It requires HTML, CSS, and JavaScript knowledge. You should be comfortable with JavaScript before you start to React. If you are not comfortable with JavaScript check out 30DaysOfJavaScript. This is a continuation of 30 Days Of JS. This challenge may take more than 100 days, follow your own pace.

2023-03-03 ThinamXx/300Days__MachineLearningDeepLearning

I am sharing my Journey of 300DaysOfData in Machine Learning and Deep Learning.

2023-03-03 cHowTv/300days-of-hacking

This program is aimed at teaching young and aspiring hackers the skills they need to stand out in the pretesting community... Keep your eyes out for updates on this repo. Professionals/Beginners are welcomed to fork and contribute to the community...

C++

2023-03-08 gabime/spdlog: Fast C++ logging library.

Very fast, header-only/compiled, C++ logging library.

2023-03-08 fmtlib/fmt: A modern formatting library

{fmt} is an open-source formatting library providing a fast and safe alternative to C stdio and C++ iostreams.

Some research about bringing Rust's Result in C++ code:

Azure

2023-03-07 Tutorial: Use Azure Functions to process real-time data from Azure Event Hubs and persist to Azure Cosmos DB - DEV Community

a tutorial on how to use Azure Functions to process real-time data from Azure Event Hubs and persist it to Azure Cosmos DB. It demonstrates how to combine a real-time data ingestion component with a Serverless processing layer using a sample app.

If you want to ingest data from Event Hub to Cosmos DB, one possible solution is to use Azure Functions with an Event Hub trigger and a Cosmos DB output binding. This way, you can process real-time data from Event Hubs and persist it to Cosmos DB123.

To implement this solution, you need to:

Create an Event Hub namespace and an event hub

Create a Cosmos DB account, database and container

Create a Function App with an Event Hub trigger function

Configure the function settings with the connection strings for Event Hubs and Cosmos DB

Add a Cosmos DB output binding annotation to your function code

Write your function logic to process the event data and return a document object for Cosmos DB

Emacs

2023-03-03 Use GNU Emacs

Use GNU Emacs. The Plain Text Computing Environment

image-20230311102014838

Markdown WYSIWYG editors

Web and JavaScript

2023-03-07 js-snow-bookmarklet/bookmarklet.js at master · wonderful72pike/js-snow-bookmarklet

Just a simple and fun bookmarklet! ❄ ❄

❄ ❄ ❄ ❄ ❄

❄ ❄ ____

❄❄ ❄ ❄ ❄❄

Workplace

  • 2023-03-03 viraptor/reverse-interview: Questions to ask the company during your interview

    This is a list of questions which may be interesting to a tech job applicant. The points are not ordered and many may not apply to a given position or work type. It was started as my personal list of questions, which grew over time to include both things I'd like to see more of and red flags which I'd like to avoid. I've also noticed how few questions were asked by people I interviewed and I think those were missed opportunities.

· 8 min read

Good Reads

2023-02-24 iggredible/Learn-Vim: Learning Vim and Vimscript doesn't have to be hard. This is the guide that you're looking for 📖

It is a guide to learn the good parts of Vim, a powerful text editor. It covers topics such as starting Vim, editing text, moving around, searching, macros, registers, buffers, windows, tabs and more. Written in a clear and concise style with examples and exercises. The guide is suitable for beginners who want to learn Vim quickly and efficiently.

2023-02-16 The dangers behind image resizing

image-20230224220319609

Fun

2023-02-18 World's Largest Photo of New York City

80k megapixel panorama photograph of New York City (2021) This is my screren! image-20230224212200512

2023-02-17 Rejected Emoji Proposals

image-20230224212723032 Oh, 💩!

2023-02-24 If you drag an emoji family with a string size of 11 into an input with maxlength=10, one of the children will disappear.

image-20230224215602101

2023-02-24 Even hackers are reportedly getting laid off by organized crime groups

Games

2023-02-21 I made a game, Tippy Coco

Tippy Coco is a free, open-source game by Chris Coyne (chriscoyne.com / @malgorithms). The inspiration for this game was Slime Volleyball, a 1999 Java Applet by Daniel Wedge & Quin Pendragon. I called an earlier version of this game They Came from the Ground.

The game is programmed in JavaScript (well, TypeScript) and uses simple HTML Canvas drawing.

Music in Tippy Coco is by my friend Christian Rudder, of the band Bishop Allen. "Rejected!" and "Slam!" and "Kiss" were voiced by Jennie, Cameron, and Abbott Coyne. And the character TippyCoco is named after our friends' dog, TippiCocoa. image-20230224205220716

Teaching the Machine!

2023-02-23 Yann LeCun's Publications

A set of examples and publications I am currently following for Machine Learning exercise. I subconsciously do not trust these machine learners and now I am trying to figure out why :D.

2023-02-21 Mathematical notation for JavaScript developers explained

This article explains how to use mathematical notation in JavaScript, such as dot and cross symbols for scalar and vector products, sigma and pi symbols for summation and multiplication of sequences, bars for absolute value and norm of vectors, etc. It also provides code snippets that demonstrate how to implement these operations using built-in methods or libraries image-20230224205333395

2023-02-20 GitHub - PacktPublishing/Hands-On-Machine-Learning-with-CPP: Hands-On Machine Learning with C++, published by Packt

Got this! Amazon.com: Hands-On Machine Learning with C++: Build, train, and deploy end-to-end machine learning and deep learning pipelines eBook : Kolodiazhnyi, Kirill: Kindle Store image-20230224211403952

2023-02-18 Introduction to Machine Learning using C++ Engineering Education EngEd Program Section

The article aims to teach beginners how to use C++ for machine learning by providing a clear and concise tutorial with code examples. It also encourages readers to explore more advanced topics and applications of machine learning using C++

Yeah, I have asked BingGPT: 📢 please summarize the article in your own words: extract main points and ideas as a list, write a short summary for each item.

Use more fluent language, pleasant to read.

https://www.section.io/engineering-education/an-introduction-to-machine-learning-using-c++/

C# and .NET

2023-02-20 What is .NET, and why should you choose it? - .NET Blog

The article explains what .NET is and why developers should choose it as their platform for building applications. It highlights the benefits of .NET such as being free, cross-platform, open source, fast, secure, and supported by Microsoft and a large community. It also describes how .NET works as a unified platform that consists of multiple components such as languages, libraries, frameworks, tools, and runtimes. The article gives examples of different types of applications that can be built with .NET such as web apps, mobile apps, desktop apps, cloud services, games, IoT devices, and more. It also showcases some success stories of companies and developers who have used .NET to create innovative solutions for various domains.

Tools

2023-02-19 danielgatis/rembg: Rembg is a tool to remove images background

Works! But Python. image-20230224211602513

2023-02-18 robinmoisson/staticrypt: Password protect a static HTML page

HN StatiCrypt uses AES-256 to encrypt your HTML file with your passphrase and return a static page including a password prompt and the javascript decryption logic that you can safely upload anywhere (see what the page looks like).

2023-02-18 How to Extract Images from a Video Using FFmpeg - Bannerbear

2023-02-18 Sweet Home 3D - Draw floor plans and arrange furniture freely

Sweet Home 3D is a free interior design application which helps you draw the plan of your house, arrange furniture on it and visit the results in 3D.

Need to get back to this tool to model the home of my dream! image-20230224212555479

2023-02-16 johansatge/jpeg-autorotate: 📸 Node module to rotate JPEG images based on EXIF orientation.

image-20230224220425002

2023-02-16 How To Build A Magazine Layout With CSS Grid Areas — Smashing Magazine

As a bonus, we will also touch on object-fit and aspect-ratio, which come in handy as well. image-20230224220537146

A Keypad to Control my Entire Desk Setup

image-20230224215831575 2023-02-24 GitHub - davidz-yt/desk-controller: A Keypad to Control my Entire Desk Setup

2023-02-24 Work From Hype - YouTube

Security

2023-02-21 Snort - Network Intrusion Detection & Prevention System

I just put it here, it is so cool

Snort is the foremost Open Source Intrusion Prevention System (IPS) in the world. Snort IPS uses a series of rules that help define malicious network activity and uses those rules to find packets that match against them and generates alerts for users.

Snort can be deployed inline to stop these packets, as well. Snort has three primary uses: As a packet sniffer like tcpdump, as a packet logger — which is useful for network traffic debugging, or it can be used as a full-blown network intrusion prevention system. Snort can be downloaded and configured for personal and business use alike.image-20230224205015067

2023-02-19 Security Event Triage: Detecting Malicious Traffic with Signature and Session Analysis Pluralsight

Pluralsight training where I've learned about S N O R T !

Good training.

Watch

2023-02-23 a day in the life of an engineer working from home - YouTube

Oh, this is fun! 2023-02-19 if Apple made window blinds... - YouTube

2023-02-21 Standard C++ toolset - Anastasia Kazakova - Meeting C++ 2022 - YouTube

C++ is about to turn 40. Though the ecosystem was very diverse and incomplete for many years, it is getting better! In this talk, I will discuss: The typical “project model - compiler - debugger” triad, and how it still depends on the area of usage (Embedded or Game Development). How the build systems and dependency managers are now more standard. How Clang affected the standard toolset in all areas, forming not only a baseline for compilers, but also formatters, code analyzers, and IDEs. How many code analyzers exist for C++ and why there is still room for improvement. How unit testing and code coverage solutions can be used effectively. And finally, how the language committee is learning to listen to and help standard toolset contributors.

Oh, Scala

I just put it here

2023-02-16 From ES6 to Scala: Basics - Scala.js 2023-02-15 GitHub - alexandru/scala-best-practices: A collection of Scala best practices 2023-02-15 lauris/awesome-scala: A community driven list of useful Scala libraries, frameworks and software. 2023-02-15 Scalafix · Refactoring and linting tool for Scala 2023-02-14 zouzias/spark-hello-world: A simple hello world using Apache Spark 2023-02-14 sbt Reference Manual — Installing sbt on Windows 2023-02-14 lolski/sbt-cheatsheet: Simple, no-nonsense guide to getting your Scala project up and running 2023-02-14 marconilanna/scala-boilerplate: Starting point for Scala projects 2023-02-13 Hyperspace indexes for Apache Spark - Azure Synapse Analytics Microsoft Learn 2023-02-13 The Azure Spark Showdown - Databricks VS Synapse Analytics - Simon Whiteley - YouTube 2023-02-06 ossu/computer-science: Path to a free self-taught education in Computer Science!

Value Objects

I am just to lazy to read this Some of this stuff could be totally wrong, and I agree and disagree with everything

2023-01-08 Value Objects · objc.io

2023-01-08 Java Value Objects in Action with Valhalla - JEP Café #15 - YouTube

2023-01-08 Value Objects Explained

2023-01-08 Value Objects - DDD w/ TypeScript Khalil Stemmler

2023-01-08 Value Object Refactoring Shaun Finglas

2022-12-28 Domain-Driven Design Reference

· 10 min read

These links got out of hand... I thought I should read more Hacker News... No, I should not read MORE Hacker News.

Good Reads

2023-02-12 How a single line of code brought down a half-billion euro rocket launch

It’s Tuesday, June 4th, 1996, and the European Space Agency is set to launch its new Ariane 5 rocket for the first time. This is the culmination of a decade of design, testing and a budget spending billions of euros.

imgAriane-5 rocket in preparation for launch (Credits ESA 1996)

2023-02-10 Is Seattle a 15-minute city? It depends on where you want to walk

What makes this article interesting, besides the main content, are references to apps, maps and APIs from where the data got fetched.

This could be a pivotal year for mobility in Seattle. In the final week of January, Seattle won $25.7 million in federal grants to build safer streets, made transit free for 10,000 Seattle Housing Authority residents, and solicited public feedback on a major update to the city’s Comprehensive Plan. To transform this momentum into meaningful change, we need a catalyst—a coherent, powerful vision for moving around Seattle.

Consider the 15-minute city: first imagined by Carlos Moreno and most fully realized (so far) in Paris, this model describes a metropolis where residents can satisfy the full spectrum of their daily needs within a 15-minute walk or bike ride.

A diagram showing amenities that should be accessible in the 15-minute city.Concept diagram of the 15-minute city. Source: @re_visionuk

​ 2023-01-17 The Cab Ride I'll Never Forget Kent Nerburn

There was a time in my life twenty years ago when I was driving a cab for a living. It was a cowboy’s life, a gambler’s life, a life for someone who wanted no boss, constant movement and the thrill of a dice roll every time a new passenger got into the cab.

What I didn’t count on when I took the job was that it was also a ministry. Because I drove the night shift, my cab became a rolling confessional. Passengers would climb in, sit behind me in total anonymity and tell me of their lives.

Game(s)!

2023-02-06 Flappy Birdle - Flappy Bird meets Wordle by AE Studio

image-20230212194026617

Apache Spark, SQL, BigData

2023-02-12 Spark SQL Shuffle Partitions - Spark By {Examples}

In this Apache Spark Tutorial, you will learn Spark with Scala code examples and every sample example explained here is available at Spark Examples Github Project for reference. All Spark examples provided in this Apache Spark Tutorial are basic, simple, and easy to practice for beginners who are enthusiastic to learn Spark, and these sample examples were tested in our development environment.

2023-02-12 SQL Window Functions: Ranking

This is an excerpt from my book SQL Window Functions Explained. The book is a clear and visual introduction to the topic with lots of practical exercises.

Ranking means coming up with all kinds of ratings, starting from the winners of the World Swimming Championships and ending with the Forbes 500.

We will rank records from the toy employees table:

┌────┬───────┬────────┬────────────┬────────┐
│ id │ name │ city │ department │ salary │
├────┼───────┼────────┼────────────┼────────┤
│ 11 │ Diane │ London │ hr │ 70 │
│ 12 │ Bob │ London │ hr │ 78 │
│ 21 │ Emma │ London │ it │ 84 │
│ 22 │ Grace │ Berlin │ it │ 90 │
│ 23 │ Henry │ London │ it │ 104 │
│ 24 │ Irene │ Berlin │ it │ 104 │
│ 25 │ Frank │ Berlin │ it │ 120 │
│ 31 │ Cindy │ Berlin │ sales │ 96 │
│ 32 │ Dave │ London │ sales │ 96 │
│ 33 │ Alice │ Berlin │ sales │ 100 │
└────┴───────┴────────┴────────────┴────────┘

playgrounddownload

Table of contents:

2023-02-12 Apache Spark Core—Deep Dive—Proper Optimization Daniel Tomes Databricks - YouTube

Optimizing spark jobs through a true understanding of spark core. Learn: What is a partition? What is the difference between read/shuffle/write partitions? How to increase parallelism and decrease output files? Where does shuffle data go between stages? What is the "right" size for your spark partitions and files? Why does a job slow down with only a few tasks left and never finish? Why doesn't adding nodes decrease my compute time?

image-20230212142755335

2023-02-11 How to Train Really Large Models on Many GPUs? Lil'Log

In recent years, we are seeing better results on many NLP benchmark tasks with larger pre-trained language models. How to train large and deep neural networks is challenging, as it demands a large amount of GPU memory and a long horizon of training time.

However an individual GPU worker has limited memory and the sizes of many large models have grown beyond a single GPU. There are several parallelism paradigms to enable model training across multiple GPUs, as well as a variety of model architecture and memory saving designs to help make it possible to train very large neural networks.

2023-01-25 Event Hubs ingestion performance and throughput Vincent-Philippe Lauzon’s

Here are some recommendations in the light of the performance and throughput results:

  • If we send many events: always reuse connections, i.e. do not create a connection only for one event. This is valid for both AMQP and HTTP. A simple Connection Pool pattern makes this easy.
  • If we send many events & throughput is a concern: use AMQP.
  • If we send few events and latency is a concern: use HTTP / REST.
  • If events naturally comes in batch of many events: use batch API.
  • If events do not naturally comes in batch of many events: simply stream events. Do not try to batch them unless network IO is constrained.
  • If a latency of 0.1 seconds is a concern: move the call to Event Hubs away from your critical performance path.

Let’s now look at the tests we did to come up with those recommendations.

Projects

2023-01-13 GitHub - sickcodes/Docker-OSX

Run macOS VM in a Docker! Run near native OSX-KVM in Docker! X11 Forwarding! CI/CD for OS X Security Research! Docker mac Containers. image-20230212185800760

2023-02-12 Vanilla List The Vanilla JavaScript Repository

a directory of "vanilla" JavaScript controls and plugins. image-20230212142409931

2023-02-12 Design Patterns in TypeScript

image-20230212142534711

2023-02-12 Nevin1901/erlog: Minimalist log collector

ErLog is a minimalist log collection service. You can either forward structured logs from existing log libraries (eg: zerolog or winston), or use the collector to forward structured logs from stdout or stderr (coming soon).

2023-02-10 DSchroer/dslcad: DSLCad is a programming language & interpreter for building 3D models.

DSLCAD is a programming language & interpreter for building 3D models.

Inspired by OpenSCAD, it has a language and 3D viewer to simplify the modeling experience.

screenshot

2023-02-10 Logic Gate Simulator Academo.org - Free, interactive, education.

A free, simple, online logic gate simulator. Investigate the behaviour of AND, OR, NOT, NAND, NOR and XOR gates. Select gates from the dropdown list and click "add node" to add more gates. Drag from the hollow circles to the solid circles to make connections. Right click connections to delete them. See below for more detailed instructions.

2023-02-12 GitHub - brycedrennan/imaginAIry: AI imagined images. Pythonic generation of stable diffusion images.

AI imagined images. Pythonic generation of stable diffusion images.

"just works" on Linux and macOS(M1) (and maybe windows?). image-20230212193735159

image-20230212193755182

Work and Planning

2023-02-10 Why backlogs are harmful, why they never shrink, and what to do instead

Do you remember your backlog ever shrinking? Of course you don’t. Backlogs never shrink.

Backlogs never shrink because the list of things we’d eventually like to do never shrinks, and that’s what backlogs are: a bunch of unimportant tasks that we’ll *eventually* get to, but not today.

2023-02-10 How to build an in-house on-call training program - Blog

A critical element of a successful SRE team is maintaining an on-call schedule. Engineers need to be at the ready on a predetermined rotation to fix issues on existing services and infrastructure as they arise.

Having an on-call schedule is only part of the equation. Your SRE and DevOps engineers need to be trained in how to actually resolve issues. A complete training program ensures that proper procedure becomes second nature for your team, so that they can arrive at resolutions as quickly as possible.

Let’s take a closer look at why these programs are necessary, what an effective in-house, on-call training program generally looks like, and how to leverage one to train and mentor new members of your SRE team.

2023-01-09 8 Hard Truths I learned when I got laid off from my SWE job Steven Buccini

I got laid off from a software engineering job in April of 2020.

I haven’t talked about this publicly for a variety of reasons, including Hard Truth #6 (Honesty Can Only Hurt You). And everything worked out for me in the end.1 So why even bother publishing a post about my experience, and why now? I got laid off in April 2020 when all the talking heads were saying a recession was inevitable. Sound familiar?

Health ❤️❤️❤️❤️🖤

2023-01-10 MuscleWiki: Find exercises that work specific muscles

image-20230212190916413

Retro

2023-01-17 BYTE MAGAZINE: Early computer publication

BYTE Magazine archives

image-20230212185526498

2023-01-13 History of Web Browser Engines from 1990 until today

Huge timeline image!

Funny

2023-02-11 10 Programmer Stereotypes - YouTube

image-20230212143216385

Wisdom!

2023-02-08 Ask HN: How do you deal with information and internet addiction? Hacker News

labrador 12 hours ago | next [–]

I handle it by collecting quotes that tell me to knock it off. I've since started to focus on just the things I really care about:

The purpose of knowledge is action, not knowledge.
― Aristotle

Knowledge isn't free. You have to pay attention
― Richard Feynman

"Information is not truth"
― Yuval Noah Harari

If I were the plaything of every thought, I would be a fool, not a wise man.
― Rumi

Dhamma is in your mind, not in the forest. You don't have to go and look anywhere else.
― Ajahn Chah

Man has set for himself the goal of conquering the world,
but in the process he loses his soul.
― Alexander Solzhenitsyn

The wise man knows the Self,
And he plays the game of life.
But the fool lives in the world
Like a beast of burden.
― Ashtavakra Gita (4―1)

We must be true inside, true to ourselves,
before we can know a truth that is outside us.
― Thomas Merton

Saying yes frequently is an additive strategy. Saying no is a subtractive strategy. Keep saying no to a lot of things - the negative and unimportant ones - and once in awhile, you will be left with an idea which is so compelling that it would be a screaming no-brainer 'yes'.
- unknown

Other ;)

2022-12-30 Comprehensive Guide to Extremely Advanced-Level Clown Strategies - Google Docs

Someone wrote almost a book on how to play Clown in Dead by Daylight... respect! gg!

· 9 min read

Good reads

2023-01-29 Davide's Code and Architecture Notes - Server-side caching strategies: how do they work? - Code4IT

2023-01-26 Resilience and Waste in Software Teams – Jessitron

Keeping libraries and components up-to-date, keeping code readable, updating our automations, improving our observability, bringing other developers up to speed– these are a few of the tasks developers need to do regularly. Any one of these tasks could have no noticeable impact in the future, and any one of them could prevent the next big security incident. The most likely outcome of each is a smoothing of future work, a decrease in unpleasant surprise.

Last time I implemented a feature in the Honeycomb UI, I needed some React functionality that was only in the latest version. I looked at our package.json, and lo! We were on the latest version! I rejoiced, and my work proceeded.

Many of these tasks don’t make it onto the roadmap, because when I look at the overhead of creating a ticket, discussing it in planning, advocating for it–then I can’t. It isn’t worth that. I can’t justify any particular one. Instead, these are best done as we go. Oh look, this test is in the old framework, let’s update it. This name confused me, let’s change it. In the kitchen, I always wash the knives and put them away immediately as soon as I’m done chopping.

2023-02-04 I Hired 5 People to Sit Behind Me and Make Me Productive for a Month — Simon Berens

I decided it was time to try the nuclear option: having people physically sit behind me to keep me on task. And if I was going to do that I was going to do it right: they’d be there 16 hours a day and only leave for me to sleep. (I have an endlessly growing list of projects I want to make, books I want to read, and skills I want to learn, so productivity means a lot to me!)

2023-01-18 20 Things I've Learned in my 20 Years as a Software Engineer - Simple Thread

  1. I still don’t know very much
  2. The hardest part of software is building the right thing
  3. The best software engineers think like designers
  4. The best code is no code, or code you don’t have to maintain
  5. Software is a means to an end
  6. Sometimes you have to stop sharpening the saw, and just start cutting shit
  7. If you don’t have a good grasp of the universe of what’s possible, you can’t design a good system
  8. Every system eventually sucks, get over it
  9. Nobody asks “why” enough
  10. We should be far more focused on avoiding 0.1x programmers than finding 10x programmers
  11. One of the biggest differences between a senior engineer and a junior engineer is that they’ve formed opinions about the way things should be
  12. People don’t really want innovation
  13. Your data is the most important part of your system
  14. Look for technological sharks
  15. Don’t mistake humility for ignorance
  16. Software engineers should write regularly
  17. Keep your processes as lean as possible
  18. Software engineers, like all humans, need to feel ownership
  19. Interviews are almost worthless for telling how good of a team member someone will be
  20. Always strive to build a smaller system

Wow!

2023-02-02 Easter egg in flight path of last 747 delivery flight

image-20230202213416204

image-20230202213542706

Games

2023-01-20 Ain't it funny how the knight moves?

image-20230210234843543

Retro

2023-01-29 A Calculated Move: Calculators Now Emulated at Internet Archive - Internet Archive Blogs

image-20230202215032768

The X-Files

2023-02-02 Google layoffs Jan 20, 2023- California WARN public records

2023-01-18 What explains recent tech layoffs, and why should we be worried? Stanford News

jonathankoren: They’re laying people off because it’s cool to lay people off. Layoffs are social, not economical.

Videos

2023-02-05 Handling JWTs: Understanding Common Pitfalls - Bruce MacDonald, InfraHQ - YouTube

Ensure that the JWT is:

  • signed with a strong algorithm (e.g. RS256)
  • not expired
  • typ claim is not set to None it is difficult to revoke a JWT, not until it expires. some teams use a block-list of revoked JWTs, but this is not a good solution.

2023-02-05 A mortal's guide to making a pig run faster - Richard Banks - NDC Sydney 2022 - YouTube

The talk about performance optimization in .NET Tools:

2023-02-02 You Shall Not Password: Modern Authentication for Web Apps - Eli Holderness - NDC Sydney 2022 - YouTube

An overview of modern authentication, SAML, OpenID Connect

2023-02-02 Trading at light speed: designing low latency systems in C++ - David Gross - Meeting C++ 2022 - YouTube

Making a trading system "fast" cannot be an afterthought. While low latency programming is sometimes seen under the umbrella of "code optimization", the truth is that most of the work needed to achieve such latency is done upfront, at the design phase. How to translate our knowledge about the CPU and hardware into C++? How to use multiple CPU cores, handle concurrency issues and cost, and stay fast? image-20230202212928007

2023-01-29 "It's A Bug Hunt" - Armor Plate Your Unit Tests in Cpp - Dave Steffen - CppCon 2022 - YouTube

This talk is a detailed discussion of how to write unit tests that are good tests; that is, unit test cases that are complete, accurate, and thorough. We can think of unit tests as our laboratory equipment for carefully examining our code and measuring a particular property (existence of bugs) with care and precision; or we can think of them as bug-hunting gear that that keeps us safe when we have to venture into the dark and dangerous parts of our code base. image-20230202214113310

2023-01-29 KEYNOTE - Emotional Code - Kate Gregory ACCU Conference 2019 - YouTube

Programmers, it turns out, are human beings. This means they not only feel emotions, they leave traces of those emotions behind in their code. Kate will show you why that is so, and what you can do about it.

image-20230202214300122

Projects

2023-02-02 muxinc/meet: A meeting app built on Mux Real-Time Video.

Mux Meet is a video conferencing app powered by Mux Real-Time Video, written in React, using the Next.js framework. image-20230202211613876

2023-01-28 Broider: Pixel Art CSS Borders

image-20230202215404689

2023-01-20 Kody Tools – I developed 300 tools in 6 months

Great job!

image-20230210235040577

2023-02-10 Markably Online Markdown Editor

This is awesome work, but it is not possible to simultaneously edit HTML / Markdown and switch between modes. image-20230210235449922

C#

2023-02-05 Generating Sample Data with Bogus

dotnet add package Bogus

Bogus is a library that works with C#, F# and VB.NET that can be used to create repeatable, fake data for applications. It is somewhat a port of a similar library Bogus.js. It accomplished this by creating generators (called Fakers) that have a set of rules for generating one or more fake objects. Built-into Bogus is a set of generalized rules for common data categories (i.e. Addresses, Companies, People, Phone Numbers, etc.). Enough talk, let’s see how it works. The full repo is at:

C++

2023-02-02 A list of open source C++ libraries - cppreference.com

The objective of this page is to build a comprehensive list of open source C++ libraries, so that when one needs an implementation of particular functionality, one needn't to waste time searching on web.

2023-02-01 C++ Neural Network in a Weekend – Jeremy's Blog

Would you like to write a neural network from start to finish? Are you perhaps shaky on some of the fundamental concepts and derivations, such as categorical cross-entropy loss or backpropagation? Alternatively, would you like an introduction to machine learning without relying on “magical” frameworks that seem to perform AI miracles with only a few lines of code (and just as little intuition)? If so, this article was written for you.

2023-01-27 When Should You Learn Machine Learning using C++? by Ahmed Hashesh Embedded House Medium

This article is part of a series that address the implementation of Machine learning algorithms in C++, throughout this series, We will be implementing basic Machine learning algorithms using C++ features.

2023-01-30 PortAudio/portaudio: PortAudio is a cross-platform, open-source C language library for real-time audio input and output.

GameDev

2023-02-02 ⚙️ Math Breakdown: Anime Homing Missiles - Little Polygon Game Dev Blog

I designed and prototyped the missile attack! The math was clever and I want to show-off!

Let’s talk about cubic bezier curves, perlin noise, and rotation minimizing frames. Missile Circus!

· 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