Skip to content

Instantly share code, notes, and snippets.

View keif's full-sized avatar

Keith Baker keif

View GitHub Profile
@keif
keif / m8o-nextjs-framer-flip-card.tsx
Created July 31, 2024 17:42 — forked from alishahlakhani/madeofzero-nextjs-framer-flip-card.tsx
Create a Tarot card deck selection page using Framer Motion and Nextjs
"use client";
import React, { useState } from "react";
import { AnimatePresence, motion } from "framer-motion";
import Image from "next/image";
import clsx from "clsx";
type Props = {
onPick?: (card: string | null) => void;
onSelect?: (card: string) => void;
};
@keif
keif / .zshrc
Last active December 18, 2021 15:39
Check for existing .nvmrc file - if present, use it - it not, continue using the default version.
# for NVM
export NVM_DIR="$HOME/.nvm"
[ -s "/usr/local/opt/nvm/nvm.sh" ] && . "/usr/local/opt/nvm/nvm.sh" # This loads nvm
[ -s "/usr/local/opt/nvm/etc/bash_completion.d/nvm" ] && . "/usr/local/opt/nvm/etc/bash_completion.d/nvm" # This loads nvm bash_completion
# place this after nvm initialization!
# check for .nvmrc file and run `nvm use` automatically
autoload -U add-zsh-hook
load-nvmrc() {
# check for .nvmrc file
@keif
keif / countHighlyProfitableMonths.js
Created October 26, 2021 11:47
/* The stocks of a company are being surveyed to analyze the net profit of the company over a period of several months. For an analysis parameter k, a group of k consecutive months is said to be highly profitable if the values of the stock prices are strictly increasing for those months. Given the stock prices of the company for n months and the…
function countHighlyProfitableMonths(stockPrices, k) {
// write your code here
let numOfProfitableMonths = 0
let stockPriceLen = stockPrices.length
let profitableMonthsArr = [stockPrices[0]]
for (let i = 1; i < stockPriceLen; i += 1) {
const currStockPrice = stockPrices[i]
// checking current stock price against the profitable array
if (currStockPrice > profitableMonthsArr[profitableMonthsArr.length - 1]) {
@keif
keif / maxRepeatingChar
Created August 28, 2021 22:03
Given a string, find the maximum consecutive repeating character in itself.
// given a string, give me the count of each particular character in the string.
// Hard mode: Give me the letter which is repeated the most in a row, regardless of how often the character appears in the string.
// “aaabbc” would return “a”
// “aaabbbbc” would return “b”
// “aaabbbbaacc” would return “b”
// “abababababcccababababababab” would return “c”
let strArr = [
`aaabbc`, // a
`aaabbbbc`, // b
@keif
keif / timeConversion.js
Last active August 28, 2021 22:04
Complete the timeConversion function in the editor below. It should return a new string representing the input time in 24 hour format. timeConversion has the following parameter(s): string s: a time in hour format Returns string: the time in hour format Input Format A single string that represents a time in -hour clock format (i.e.: or ). Constr…
const timeConversion = (s) => {
const seperator = `:`
const timeArr = s.slice(0, 8).split(seperator);
const hours = parseInt(timeArr[0], 10);
if (s.toUpperCase().indexOf(`PM`) > -1) {
// handle PM
timeArr[0] = (hours < 12) ? (hours + 12).toString() : hours.toString()
} else {
// handle AM
@keif
keif / minSum.js
Last active August 28, 2021 22:18
minSum.js - ah, this is from HackerRank, now it all makes more sense.
// I liked reduce. It's weird, but it's quirky, but I don't find it easy to understand at quick glance for all devs
const minSum_short = (num, k) => {
return new Array(k)
.fill(undefined) // not crazy about this aspect
.reduce(
(prev) => {
// Sort the array high to low
const current = prev.sort((a, b) => b - a)
// Swap the maximum value with the updated one
current[0] = Math.ceil(current[0] / 2)
@keif
keif / IsPrimeAndIsPalindrome.java
Last active August 19, 2021 12:46
isPrime and isPrimePalindrome example
package interviewProject;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
public class InterviewMain {
public static void main(String[] args) {
// Prime Number detector
@keif
keif / isPrime.java
Last active September 30, 2021 15:12
Check if a number is prime (JAVA)
package InterviewProject;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
public class InterviewMain {
public static void main(String[] args) {
// Prime Number detector
@keif
keif / example.js
Created February 11, 2021 14:08
Mongoose Schema and Express Routes Using Users/Albums using an ugly token example.
var express = require("express")
var app = express()
var bodyParser = require("body-parser")
var mongoose = require("mongoose")
var userSchema = mongoose.Schema({
name: String,
email: String,
password: String,
token: String, // this is for the example code, JWT would be used in a real life scenario
@keif
keif / memoize.js
Created February 10, 2021 21:53
Multiple Argument Memoization Function
const constructPropertyFromArgs = function (fn, args) {
return [].concat(fn.name, args).join('|');
}
const memoize = function (fn) {
const cache = {}
return function(...args) {
const propCheck = constructPropertyFromArgs(fn, args);
if (!cache[propCheck]) {