Skip to content

Instantly share code, notes, and snippets.

@jammy-dodgers
jammy-dodgers / interests.js
Last active June 24, 2020 11:22
remove your twitter interests ( https://twitter.com/settings/your_twitter_data/twitter_interests ) just paste this in the dev console
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
};
async function click_all() {
let checked_boxes = [].slice.call(document.getElementsByTagName("input")).filter(x => x.hasAttribute("type") && x.type == "checkbox" && x.hasAttribute("checked"));
for (let i = 0; i < checked_boxes.length; ++i) {
checked_boxes[i].click();
await sleep(2000);
}
@jammy-dodgers
jammy-dodgers / linkedlist.cs
Last active June 24, 2020 11:23
C# is a dynamically typed programming language
using System;
//https://aphyr.com/posts/340-reversing-the-technical-interview
namespace jambox
{
class Program
{
delegate dynamic V(dynamic d);
static V cons(dynamic lhs, dynamic rhs) => (b) => b ? lhs : rhs;
static dynamic nth(dynamic l, dynamic n) => n == 0 ? l(true) : nth(l(false), n-1);
#include <stdio.h>
#include <string.h>
struct very_quality_string {
char first_letter;
char second_letter;
char third_letter;
char fourth_letter;
char fifth_letter;
char sixth_letter;
//https://esolangs.org/wiki/Javagony
// https://tio.run/##7Vlbc@I2FH7nV2iZ6cQUbEg724eGuE2yZJpOutlh2SegGWMLUGIkjySHpTv89vRINlg2ENiYTF/qYQDrcs53LjoX@8F78uyH4PH5udmcShmJX5tNLFjo0YlwGJ805@SRNP@EVRNGF5Vm8xL7Xiwwmk8ZohgHAnHshchnVHIWonHI5r9VYF1vijkWKOJs5I3CBRJshvVdiGcCzYmcIiJh3SiWyJNITgksZoRKRE4CxD0J@1FAMMx4FNYFDM0YB76MPyJGkw2BN9P/6MSpVMgsYlyiB8DqEOb8eFapRPEoJD7yQ08I9JdHKPpWQXCl40J6En6eGAnQDGatz5IDrf4QeXwiakCZs7lA1yTEH5m8ZjENOl99HEnCVpTUlexCEguJzlHVradX326v/tbdYdtx3bpr9@tDuNOfet/t2@q33U5WtIeurS7H1cOOo75c24F5WApbhi6ssnMXUNXL0rtsuK4@1bM1yst4PAaTBF3sBaDaEQesFM8L45YaSgRKB5RYtdpZUVqfBRgojEE3N3cO@EBwEYY9/FVaI16D@yj0fAxDVrX/92DQHwyG9cHAbjhtd1htoGrVoHh5/RkMgdFohSi5txQLY9nI6cbUSgeWlQp8EsMmGLaaNgVrwtvQQ23TlAKQ3N8XhMqQcCxjTpFwRDwSeofVasBtiOlETq0astHpGqcGxcmTkjCPKs/hIFwZBskXxry6FOgR16a4JRRbBuAl8j3pT5F1c5c5MK4VCKRi0TgMja0vcPTVaXduxpZA7871vq08x1eMBj0eY0TWf3fwFqiOqgNahZ8X9F8gfe2FYkVb/99BvFrdJpYpNWo2Ywps/SnELJwacO1nKz9NiI8WEkOkmOFZQlWFLriJGBipUjgo2Qp1ly1JnXXl8MYOUwSgmp4MzfPnFlzDM3MaKMKKluEdEB2d9IhmALTNEgDZ8mUOio6F@pwZADYtf39vnMWcSW
@jammy-dodgers
jammy-dodgers / IEnumerable.c
Last active September 2, 2020 09:58
C enumerator/generator; messing about with C macros - see macro expansion here: https://gist.github.com/jammy-dodgers/521e0e41ad8e042d19412a39484a2dcb
#include <stdio.h>
#define foreach(GENERATOR_TYPE, GENERATOR, LOOP_VAL, BODY) { struct GENERATOR_TYPE foreach_loop_var; foreach_loop_var = GENERATOR; \
while (GENERATOR_TYPE ## _has_next(&foreach_loop_var)) { LOOP_VAL = foreach_loop_var.current; BODY }}
#define yield(NUM, VAR) vars->current = (VAR); vars->pos = NUM; return 1; case NUM:;
#define generator(GEN_TYPE, GEN_NAME, LOCALS, BODY) struct GEN_NAME { int pos; int current; LOCALS}; \
struct GEN_NAME new_ ## GEN_NAME() {struct GEN_NAME gener_temp_init_var; gener_temp_init_var.pos = 0; return gener_temp_init_var;} \
int GEN_NAME ## _has_next(struct GEN_NAME * vars) { switch(vars->pos) { case 0: BODY; return 0; } }
generator(int, Fibonacci, int n1; int n2;, {