Skip to content

Instantly share code, notes, and snippets.

View mgthomas99's full-sized avatar

George Thomas mgthomas99

View GitHub Profile
@mgthomas99
mgthomas99 / swblinkenlights.cmd
Last active November 25, 2019 00:38
Command line script for playing Star Wars in the terminal!
node -e "(s=>process.on('SIGINT',s.destroy))(require('net').connect(23,'towel.blinkenlights.nl').pipe(process.stdout))"
@mgthomas99
mgthomas99 / factorial.wat
Last active November 25, 2019 00:36
Recursive factorial function implementation written in WebAssembly Text (WAT)
(module
;;; Calculates and returns the factorial of the first parameter using
;;; recursion.
;;; @param {i32} $x
;;; The value to calculate the factorial of.
;;; @return {i32}
;;; The factorial of `$x`.
(func $fact (param $x i32) (result i32)
(get_local $x)
@joepie91
joepie91 / you-dont-need-a-blockchain.md
Last active May 7, 2024 11:54
You Don't Need A Blockchain

You don't need a blockchain.

If you're reading this, you probably suggested to somebody that a particular technical problem could be solved with a blockchain.

Blockchains aren't a desirable thing; they're defined by having trustless consensus, which necessarily has to involve some form of costly signaling to work; that's what prevents attacks like sybil attacks.

In other words: blockchains must be expensive to operate, to work effectively. This makes it a last-resort solution, when you truly have no other options available for solving your problem; in almost every case you want a cheaper and less complex solution than a blockchain.

In particular, if your usecase is commercial, then you do not need or want trustless consensus. This especially includes usecases like supply chain tracking, ticketing, and so on. The whole *p

@MeirionHughes
MeirionHughes / linq.ts
Last active February 17, 2017 09:23
drop-in linq (generators)
export function* skip<T>(it: Iterable<T>, count: number): Iterable<T> {
for (const $ of it) {
if (count-- <= 0) {
yield $;
}
}
}
export function* take<T>(it: Iterable<T>, count: number): Iterable<T> {
for (const $ of it) {
if (count-- <= 0) {
@joepie91
joepie91 / random.md
Last active November 1, 2025 17:37
Secure random values (in Node.js)

Not all random values are created equal - for security-related code, you need a specific kind of random value.

A summary of this article, if you don't want to read the entire thing:

  • Don't use Math.random(). There are extremely few cases where Math.random() is the right answer. Don't use it, unless you've read this entire article, and determined that it's necessary for your case.
  • Don't use crypto.getRandomBytes directly. While it's a CSPRNG, it's easy to bias the result when 'transforming' it, such that the output becomes more predictable.
  • If you want to generate random tokens or API keys: Use uuid, specifically the uuid.v4() method. Avoid node-uuid - it's not the same package, and doesn't produce reliably secure random values.
  • If you want to generate random numbers in a range: Use random-number-csprng.

You should seriously consider reading the entire article, though - it's

@drewchee
drewchee / titin.txt
Last active November 12, 2025 13:24
All 189,819 letters of the chemical name of titin, the largest known protein. Titin is believed to play an integral part in the contraction of striated muscle tissues. The name titin is derived from the Greek Titan (a giant deity, anything of great size). Source: en.wikipedia.org/wiki/Titin Recording: https://soundcloud.com/drewchee/t-i-t-i-n
methionylthreonylthreonylglutaminylarginyltyrosylglutamylserylleucylphenylalanylalanylglutaminylleucyllysylglutamylarginyllysylglutamylglycylalanylphenylalanylvalylprolylphenylalanylvalylthreonylleucylglycylaspartylprolylglycylisoleucylglutamylglutaminylserylleucyllysylisoleucylaspartylthreonylleucylisoleucylglutamylalanylglycylalanylaspartylalanylleucylglutamylleucylglycylisoleucylprolylphenylalanylserylaspartylprolylleucylalanylaspartylglycylprolylthreonylisoleucylglutaminylasparaginylalanylthreonylleucylarginylalanylphenylalanylalanylalanylglycylvalylthreonylprolylalanylglutaminylcysteinylphenylalanylglutamylmethionylleucylalanylleucylisoleucylarginylglutaminyllysylhistidylprolylthreonylisoleucylprolylisoleucylglycylleucylleucylmethionyltyrosylalanylasparaginylleucylvalylphenylalanylasparaginyllysylglycylisoleucylaspartylglutamylphenylalanyltyrosylalanylglutaminylcysteinylglutamyllysylvalylglycylvalylaspartylserylvalylleucylvalylalanylaspartylvalylprolylvalylglutaminylglutamylserylalanylprolylphenylalanyla
@jareware
jareware / SCSS.md
Last active October 21, 2025 14:22
Advanced SCSS, or, 16 cool things you may not have known your stylesheets could do

⇐ back to the gist-blog at jrw.fi

Advanced SCSS

Or, 16 cool things you may not have known your stylesheets could do. I'd rather have kept it to a nice round number like 10, but they just kept coming. Sorry.

I've been using SCSS/SASS for most of my styling work since 2009, and I'm a huge fan of Compass (by the great @chriseppstein). It really helped many of us through the darkest cross-browser crap. Even though browsers are increasingly playing nice with CSS, another problem has become very topical: managing the complexity in stylesheets as our in-browser apps get larger and larger. SCSS is an indispensable tool for dealing with this.

This isn't an introduction to the language by a long shot; many things probably won't make sense unless you have some SCSS under your belt already. That said, if you're not yet comfy with the basics, check out the aweso

@TooTallNate
TooTallNate / starwars.js
Created April 4, 2012 06:59
NodeJS script to play ACSII Star Wars (using a hidden cursor)
/**
* A little script to play the ACSII Star Wars, but with a hidden
* cursor, since over telnet the cursor remains visible
*/
var net = require('net')
var cursor = require('ansi')(process.stdout)
// connect to Star Wars server
@kevinSuttle
kevinSuttle / meta-tags.md
Last active October 9, 2025 17:56 — forked from lancejpollard/meta-tags.md
List of Usable HTML Meta and Link Tags
@lancejpollard
lancejpollard / meta-tags.md
Created March 5, 2012 13:54
Complete List of HTML Meta Tags

Copied from http://code.lancepollard.com/complete-list-of-html-meta-tags/

Basic HTML Meta Tags

<meta name="keywords" content="your, tags"/>
<meta name="description" content="150 words"/>
<meta name="subject" content="your website's subject">
<meta name="copyright"content="company name">
<meta name="language" content="ES">