Skip to content

Instantly share code, notes, and snippets.

View ravindUwU's full-sized avatar
😴
eepy

Ravindu Liyanapathirana ravindUwU

😴
eepy
View GitHub Profile
@mattwar
mattwar / exploring_nonquadratic_iterators.md
Last active July 22, 2025 14:18
Exploring Non-Quadratic Iterators

Non-Quadratic Iterators

As far back as during the design for C# 3.0 the design team contemplated a possible language feature to solve the problem of quadratic iterators (the yield foreach syntax) that was never implemented for a variety of reasons and put aside, and while it has been discussed quite a bit by the community on and off it has never gathered enough traction to move forward within the design team. I took it upon myself during my holiday break (2021) to investigate deeper into this problem area and its possible solutions. I present my journey here in my typical rambling fashion.

The Problem

Iterators help me quicky write methods that represent sequences of values for data that I don’t already have in a single collection, without requiring me to write a complicated state machine in the form an IEnumerator implementation. I just sprinkle a few yield return statements into my method and the compiler generates that state machine for me.

/* Move findbar to top right */
.browserContainer > findbar {
position: absolute;
top: -1px;
right: 0px;
contain: content;
border-radius: 0 0 var(--toolbarbutton-border-radius) var(--toolbarbutton-border-radius);
}
/* Hide status */
@emidoots
emidoots / ramblings.md
Last active December 25, 2024 04:39
Because cross-compiling binaries for Windows is easier than building natively

Because cross-compiling binaries for Windows is easier than building natively

I want Microsoft to do better, want Windows to be a decent development platform-and yet, I constantly see Microsoft playing the open source game: advertising how open-source and developer friendly they are - only to crush developers under the heel of the corporate behemoth's boot.

The people who work at Microsoft are amazing, kind, talented individuals. This is aimed at the company's leadership, who I feel has on many occassions crushed myself and other developers under. It's a plea for help.

The source of truth for the 'open source' C#, C++, Rust, and other Windows SDKs is proprietary

You probably haven't heard of it before, but if you've ever used win32 API bindings in C#, C++, Rust, or other languages, odds are they were generated from a repository called microsoft/win32metadata.

@joepie91
joepie91 / es-modules-are-terrible-actually.md
Last active December 5, 2025 19:35
ES Modules are terrible, actually

ES Modules are terrible, actually

This post was adapted from an earlier Twitter thread.

It's incredible how many collective developer hours have been wasted on pushing through the turd that is ES Modules (often mistakenly called "ES6 Modules"). Causing a big ecosystem divide and massive tooling support issues, for... well, no reason, really. There are no actual advantages to it. At all.

It looks shiny and new and some libraries use it in their documentation without any explanation, so people assume that it's the new thing that must be used. And then I end up having to explain to them why, unlike CommonJS, it doesn't actually work everywhere yet, and may never do so. For example, you can't import ESM modules from a CommonJS file! (Update: I've released a module that works around this issue.)

And then there's Rollup, which apparently requires ESM to be u

@sindresorhus
sindresorhus / esm-package.md
Last active December 10, 2025 13:22
Pure ESM package

Pure ESM package

The package that linked you here is now pure ESM. It cannot be require()'d from CommonJS.

This means you have the following choices:

  1. Use ESM yourself. (preferred)
    Use import foo from 'foo' instead of const foo = require('foo') to import the package. You also need to put "type": "module" in your package.json and more. Follow the below guide.
  2. If the package is used in an async context, you could use await import(…) from CommonJS instead of require(…).
  3. Stay on the existing version of the package until you can move to ESM.
/* So how does this work?
I'm using ANSI escape sequences to control the behavior of the terminal while
cat is outputting the text. I deliberately place these control sequences inside
comments so the C++ compiler doesn't try to treat them as code.*/
//
/*The commands in the fake code comment move the cursor to the left edge and
clear out the line, allowing the fake code to take the place of the real code.
And this explanation uses similar commands to wipe itself out too. */
//
#include <cstdio>
@Jaykul
Jaykul / About CommandNotFoundAction.md
Last active July 25, 2025 13:43
Helpfully handling Command Not Found in PowerShell

Helpfully handling Command Not Found in PowerShell

About CommandNotFoundAction

In PowerShell there is a callback ("Action") that is called when a command lookup fails through normal means. The purpose of this callback is to allow you to add your own command-resolution, and there are a lot of community hacks out there already:

Community Implementations

  • You could add support for new command types, like
@mrkwatz
mrkwatz / Firefox_Scrollbars-W10style.md
Last active December 4, 2025 00:46
Firefox 57 Windows 10 UWP Style Overlay Scrollbars

As far as I am aware the time has come and as of Firefox 72 XUL has been stripped from firefox and so the method used to inject this scrollbar theme is no longer supported -- reference the following for future scroll themes:

Mozilla is currently working to phase out the APIs used to make this theme work. I will try to maintain each version until that time but eventually there will be no workaround. When that time comes there is a new, but more limited api for applying simple themes to scrollbars. In nightly I am currently using the following userContent.css

:root{
	scrollbar-width: thin;
	scrollbar-color: rgb(82, 82, 82) rgb(31, 31, 31);
}
@bielawb
bielawb / invoke-insult.ps1
Created November 17, 2017 20:36
If you want your PowerShell to insult you when you run wrong command...
$ExecutionContext.InvokeCommand.CommandNotFoundAction = {
param ($name, $eventArgs)
@(
"Boooo!"
"Don't you know anything?"
"RTFM!"
"Hahaha, n00b!"
"Wow! That was impressively wrong!"
"He said: $name :D"
"What are you doing??"
@hediet
hediet / main.md
Last active December 1, 2025 20:53
Proof that TypeScript's Type System is Turing Complete
type StringBool = "true"|"false";


interface AnyNumber { prev?: any, isZero: StringBool };
interface PositiveNumber { prev: any, isZero: "false" };

type IsZero<TNumber extends AnyNumber> = TNumber["isZero"];
type Next<TNumber extends AnyNumber> = { prev: TNumber, isZero: "false" };
type Prev<TNumber extends PositiveNumber> = TNumber["prev"];