Skip to content

Instantly share code, notes, and snippets.

View voidnerd's full-sized avatar
:octocat:
Debugging

Ndifreke Friday voidnerd

:octocat:
Debugging
View GitHub Profile
@voidnerd
voidnerd / helpers.c
Created June 13, 2020 01:29
cs50 Problem Set 4 - Filter (more) Solution
#include "helpers.h"
#include <math.h>
// Convert image to grayscale
void grayscale(int height, int width, RGBTRIPLE image[height][width])
{
float rgbGray;
for (int i = 0; i < height; i++)
{
for (int j = 0; j < width; j++) {
@voidnerd
voidnerd / mail.js
Created October 4, 2022 14:28
Typescript Mail Service (SMTP, Mailgun)
import nodemailer from 'nodemailer'
import ViewService from './view' // https://gist.github.com/ndiecodes/6e964e716a2b5b2aa22438912da2b3f3
import Mailgun from 'mailgun.js'
import FormData from 'form-data'
import { MailgunMessageData } from 'mailgun.js/interfaces/Messages'
interface LooseObject {
[key: string]: any
}
@voidnerd
voidnerd / dna.py
Last active September 29, 2022 10:27
CS50 Problem Set 6 - DNA Solution
from csv import reader, DictReader
from sys import argv, exit
sequences = {}
#validate input
if len(argv) < 3:
print("Usage:", "python dna.py data.csv sequence.txt")
exit(1);
@voidnerd
voidnerd / closure_table.md
Created September 14, 2018 16:25
Persistent tree structure using closure table in MySQL

Using closure tables to manage hierarchical relations in MySQL

Create DB tables

Create a table to represent tree nodes.

CREATE TABLE `tree_node` (
    `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
    `data_body` text,

node_deleted datetime DEFAULT NULL,

@voidnerd
voidnerd / helpers.c
Last active August 25, 2022 12:13
cs50 Problem Set 4 - Filter (less) Solution
#include "helpers.h"
#include <math.h>
// Convert image to grayscale
void grayscale(int height, int width, RGBTRIPLE image[height][width])
{
float rgbGray;
for (int i = 0; i < height; i++)
{
for (int j = 0; j < width; j++) {
import { Edge } from 'edge.js'
import path from 'path'
import { LooseObject } from '../types'
export default class ViewService {
public constructor(
public view: string,
private data: LooseObject | null = null
) {}
public get path(): string {
@voidnerd
voidnerd / dictionary.c
Created June 13, 2020 01:32
cs50 Problem Set 5 - Speller Solution
// Implements a dictionary's functionality
#include <stdbool.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <strings.h>
#include <stdint.h>
#include <ctype.h>
#include "dictionary.h"
@voidnerd
voidnerd / tideman.c
Created April 29, 2020 13:37
cs50 Problem Set 3 - Tideman Solution
#include <cs50.h>
#include <stdio.h>
#include <string.h>
// Max number of candidates
#define MAX 9
// preferences[i][j] is number of voters who prefer i over j
int preferences[MAX][MAX];
@voidnerd
voidnerd / buildspec.yaml
Created June 26, 2022 08:50
Buildspec for typescript project on AWS CodeBuild
version: 0.2
phases:
install:
runtime-versions:
nodejs: 14.x
commands:
- npm install -g typescript
- npm install
pre_build:
commands:
@voidnerd
voidnerd / 20190417131115_test-setup.ts
Created October 22, 2021 18:48 — forked from jukkatupamaki/20190417131115_test-setup.ts
How to use Knex.js in a TypeScript project
import { Knex } from 'knex'
export async function up(knex: Knex): Promise<any> {
await knex.schema.createTable('test_setup', (table: Knex.TableBuilder) => {
table.integer('foobar');
});
}
export async function down(knex: Knex): Promise<any> {
await knex.schema.dropTable('test_setup');