Skip to content

Instantly share code, notes, and snippets.

@nkhil
nkhil / random.js
Created September 12, 2019 13:40
Pick out a random number of items out of an array
const a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
a.sort(() => .5 - Math.random() ).slice(0, 4);
//=> [3, 1, 6, 5]
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import glob
import time
import argparse
from inky import InkyPHAT
from PIL import Image, ImageDraw, ImageFont
from font_fredoka_one import FredokaOne
function insertionSort(arr) {
  for(let i = 1; i < arr.length; i++) {
    let key = arr[i];
    let j = i - 1;
    while (j >= 0 && arr[j] > key) {
      arr[j + 1] = arr[j];
      j = j - 1;
    }
 arr[j + 1] = key;
const fetch = require('node-fetch');
const cheerio = require('cheerio');
async function get() {
const data = await fetch('https://httpstatuses.com/200').then(res => res.text())
console.log('\n =========================>: get -> data', data);
const $ = cheerio.load(data);
const fullTitle = $('title').text();
console.log('\n =========================>: get -> title', fullTitle);
const title = fullTitle.split('—')[0];
@nkhil
nkhil / group-objects-by-property-name.md
Last active November 8, 2019 18:41
Group Array of JavaScript Objects by Key or Property Value

How to group an array of JavaScript objects by key or property value

I first came across this code on JamieMason's gist. Here I've tried to re-create it from scratch as I found their solution slightly hard to follow.

Implementation

function groupBy(key) {
  return function group(array) {
    return array.reduce((acc, obj) => {
// file: controller.js
const databaseUpdater = require('../model/databaseUpdater');
// ^ This is out model function that goes and updates the database.
function updateTotal(total) {
databaseUpdater({ body: total });
}
function calculateTotal(data) {
const total = data.reduce((accumulator, number) => accumulator + number, 0);
updateTotal(total);
// file: controller.spec.js
const proxyquire = require('proxyquire');
const sinon = require('sinon');
const chai = require('chai');
const { expect } = chai;
describe('calculateTotal', function(done) {
it('calculates the total and updates the database', function() {

Work in progress to scrap https://httpstatuses.com/ for snippets about status codes.

const fetch = require('node-fetch');
const cheerio = require('cheerio');

const STATUS_CODES = [200, 201, 400, 500];

const URL = 'https://httpstatuses.com';

Fixture Maker

Working draft of fixture creator. This is a functional implementation.

const uuid = require('uuid');

const ID = uuid();
@nkhil
nkhil / raspberry-pi-zero-w.md
Last active February 4, 2020 22:32
Raspberry pi zero w used with an inkyphat e-ink display

Using the raspberry pi zero w with an inkyphat e-ink display

raspberry-pi-inky-phat

Hey,

My name's Nikhil. I'm a JavaScript developer who doesn't know any python - I hacked this script together till I got something I liked due to just wanting something that worked, and haven't touched this code since due to having a thing that worked. If you end up improving it, I'd really appreciate a shout.

I've written a post about it here https://nikhilvijayan.com/raspberry-pi-zero-weather-display.