Skip to content

Instantly share code, notes, and snippets.

View garretttaco's full-sized avatar

Garrett Tacoronte garretttaco

View GitHub Profile
@garretttaco
garretttaco / fibonacci.ex
Last active June 5, 2020 23:34
Fibonacci in Elixir
defmodule FinalValue do
def fibonacci(number) do
[value | _tail] = fibonacci_do(number)
value
end
def fibonacci_do(1), do: [0]
def fibonacci_do(2), do: [1 | fibonacci_do(1)]
def fibonacci_do(number) when number > 2 do
@garretttaco
garretttaco / diff_ids_update.ex
Created May 9, 2019 17:34
Use MapSets to find differences in new ids vs current/existing ids. This really could be used for any many to many ids table.
def diff_ids_update(new, existing) do
# Use MapSets to find differences in new ids vs current/existing ids. This really could be used for any many to many ids table.
new = new |> MapSet.new()
existing = existing |> MapSet.new()
remove = MapSet.difference(existing, new) |> MapSet.to_list()
add = MapSet.difference(new, existing) |> MapSet.to_list()
{remove, add}
end
@garretttaco
garretttaco / keybindings.json
Last active October 2, 2018 21:02
Windows keybindings for VSCode
[
{ "key": "capslock", "command": "extension.vim_escape" },
{
"key": "ctrl+j",
"command": "workbench.action.terminal.toggleTerminal"
},
{
"key": "ctrl+`",
"command": "workbench.action.focusActiveEditorGroup",
"when": "terminalFocus"
@garretttaco
garretttaco / cloudSettings
Last active August 28, 2018 13:55
Visual Studio Code Settings Sync Gist
{"lastUpload":"2018-08-25T03:43:26.757Z","extensionVersion":"v3.0.0"}
@garretttaco
garretttaco / react-component-template.md
Last active October 6, 2022 03:29
React component template and guidelines.

React component templates and style guide

NOTE: This should be an ever changing document that is kept up to the date with the teams standard.

Class components

Things to note

  • import order is important. No spaces should be added in between import statement. It is not needed as an identifier between different "imports types". The order is as follows:
  1. Libraries (react, prop-types, lodash, etc.)
@garretttaco
garretttaco / bcompare-git.md
Created September 11, 2017 17:13 — forked from jfromaniello/bcompare-git.md
Integrate beyond compare 4 with git

Install command line tools:

then run this:

git config --global diff.tool bc3
git config --global difftool.bc3 trustExitCode true
git config --global merge.tool bc3
@garretttaco
garretttaco / forkAfterCloning.txt
Last active September 7, 2017 20:23 — forked from jagregory/gist:710671
How to move to a fork after cloning
So you've cloned somebody's repo from github, but now you want to fork it and contribute back. Never fear!
Technically, when you fork "origin" should be your fork and "upstream" should be the project you forked; however, if you're willing to break this convention then it's easy.
* Off the top of my head *
1. Fork their repo on Github
2. In your local, add a new remote to your fork; then fetch it, and push your changes up to it
git remote add my-fork git@github...my-fork.git
@garretttaco
garretttaco / withPropertyHandlers.js
Last active June 17, 2017 05:07
Prototype withHandlers HoC to declare updater handlers based on object keys.
// Definition - withPropertyHandlers.js
import { compose, withHandlers } from 'recompose'
function upperCaseFirstCharacter(str) {
return `${str.charAt(0).toUpperCase()}${str.slice(1)}`
}
export default function withPropertyHandlers(
properties,
updaterName,
updater,
// Separate the container and presentional components
import React, { Component } from 'react'
// Presentational component is pure. It is only responsible for accepting props and returning JSX.
const Child = ({ show, onClickShow, onClickHide }) => (
<div>
{show && <span>Now you can see me!</span>}
<button onClick={onClickShow}>Show</button>
<button onClick={onClickHide}>Hide</button>
@garretttaco
garretttaco / delete_node_modules
Created April 19, 2017 22:55
Delete node_modules that have not been touched after 60 days.
#!/bin/bash
delete_nm() {
find $1 -type d -maxdepth 1 -mtime +60 | xargs -I $ find $ -type d -name node_modules -maxdepth 1 -exec echo rm -rf {} \;
read -p "Are you sure you wish to delete the node_modules folders above? " -n 1 -r
echo # (optional) move to a new line
if [[ $REPLY =~ ^[Yy]$ ]]
then
find ~/Projects -type d -maxdepth 1 -mtime +60 | xargs -I $ find $ -type d -name node_modules -maxdepth 1 -exec rm -rf {} \;
echo "Finished delete"
fi