Skip to content

Instantly share code, notes, and snippets.

View snewcomer's full-sized avatar

Scott Newcomer snewcomer

View GitHub Profile
const minute = 60;
const hour = minute * 60;
const day = hour * 24;
const week = day * 7;
const month = day * 30;
const year = day * 365;
/**
* Convert a date to a relative time string, such as
* "a minute ago", "in 2 hours", "yesterday", "3 months ago", etc.
@snewcomer
snewcomer / in-list-test.js
Last active March 7, 2022 20:16
array.includes vs set.has
const makeArray = (size) => [...Array(size)].map(() => size);
const small = makeArray(1000);
const medium = makeArray(10000000);
const large = makeArray(100000000);
const solution1 = (arr) => {
arr.includes(arr.length - 1);
};
@snewcomer
snewcomer / tap-promise.js
Created February 27, 2022 03:15
Tap Promise
import { tracked } from '@glimmer/tracking';
import { resolve } from 'rsvp';
export class StatefulPromise {
declare promise: Promise<unknown> | null;
declare isDestroyed: boolean;
declare isDestroying: boolean;
@tracked isPending: boolean = false;
@snewcomer
snewcomer / await.js
Last active October 22, 2021 18:22
await non model hook promise ember
import Helper from '@ember/component/helper';
import { inject as service } from '@ember/service';
import { assert } from '@ember/debug';
import { tracked } from '@glimmer/tracking';
class AsyncData {
constructor(list) {
if (list) {
this._value = [];
}
@snewcomer
snewcomer / last-modified.js
Created August 23, 2021 13:49
Last Modified Date
function lastModifiedDate(updatedDate, intl) {
const today = new Date();
const yesterday = subDays(today, 1);
const aWeekAgo = subDays(today, 7);
const twoWeeksAgo = subDays(today, 14);
const threeWeeksAgo = subDays(today, 21);
const locNamespace = 'Last Updated';
// Get the date in English locale to match English day of week keys
const compare = parseISO(updatedDate);
@snewcomer
snewcomer / PR_TEMPLATE.md
Created August 20, 2021 16:01
pr template
@snewcomer
snewcomer / basic zsh config
Created July 13, 2021 14:05
basic-zsh.txt
. $HOME/.asdf/asdf.sh
export VOLTA_HOME="$HOME/.volta"
export PATH="$VOLTA_HOME/bin:$PATH"
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
alias .....='cd ../../../..'
alias ls='ls'
# Empty the trash folder that is created when you delete things as root
use std::collections::HashMap;
// O(n^2)
// O(n)
fn want_change(have: Vec<i32>, want: i32) -> Vec<i32> {
let mut map = HashMap::new(); // { num: i }
let mut res = vec![];
// a + b === want
@snewcomer
snewcomer / sort-back.rs
Created June 4, 2021 18:21
Rust Sort 0's to back
// Your last Rust code is saved below:
fn move_to_back(v: &Vec<u32>) -> Vec<u32> {
// extra memory
let mut res = vec![];
let mut num_of_zeros = 0;
for i in v.iter() {
if *i != 0 as u32 {
res.push(*i);
} else {
num_of_zeros += 1;
@snewcomer
snewcomer / rust-matrix.rs
Created June 3, 2021 18:58
Interview Question in Rust!!
fn find_positive_sum(vec: &Vec<[i32; 5]>, coords: Vec<(i32, i32)>) -> i32 {
let mut sum = 0;
let mut coords_sorted = coords.clone();
coords_sorted.sort(); // sort to get duplicates as neighbors
coords_sorted.dedup();
for (x, y) in coords_sorted.iter() {
if let Some(inner) = vec.get(*y as usize) { // Some(inner) or None
if let Some(inner_x) = inner.get(*x as usize) { // Some(inner) or None
sum += inner_x;
}