Skip to content

Instantly share code, notes, and snippets.

View tomaspietravallo's full-sized avatar

Tomás Pietravallo tomaspietravallo

View GitHub Profile
@t3dotgg
t3dotgg / try-catch.ts
Last active July 12, 2025 16:28
Theo's preferred way of handling try/catch in TypeScript
// Types for the result object with discriminated union
type Success<T> = {
data: T;
error: null;
};
type Failure<E> = {
data: null;
error: E;
};
@cgsdev0
cgsdev0 / house_builder.sh
Created February 3, 2024 16:07
house builder pattern in bash
#!/usr/bin/env bash
function house_builder() {
# floors,rooms,has_garage
echo "0,0,0"
}
function set_field() {
local f r g
IFS=, read f r g
@steveruizok
steveruizok / visibility-polygon.ts
Created November 21, 2022 23:49
Get a visibility polygon (for shadow casting).
// segments are all of the segments in all of the shapes in the scene
// point is light point
// viewport is top left, top right, bottom right, bottom left
function getVisibilityPolygon(segments: Segment[], point: Point, viewport: Point[]) {
const brokenSegments: Segment[] = []
const viewportMinCorner = viewport[0]
const viewportMaxCorner = viewport[2]
@aileftech
aileftech / hex-colors.txt
Created October 1, 2022 18:10
A Bash one-liner to produce a list of HEX color codes that read like (supposedly) valid English words
$ grep -P "^[ABCDEFabcdefOoIi]{6,6}$" /usr/share/dict/words | tr 'OoIi' '0011' | tr '[:lower:]' '[:upper:]' | awk '{print "#" $0}'
#ACAD1A
#B0BB1E
#DEBB1E
#AB1DED
#ACAC1A
#ACCEDE
#AC1D1C
#BAB1ED
#BA0BAB
@jordansinger
jordansinger / SidebarListStyle.swift
Created June 13, 2021 18:16
.listStyle(.sidebar)
import SwiftUI
struct ContentView: View {
var body: some View {
NavigationView {
List {
Label("Airplane Mode", systemImage: "airplane")
.accentColor(.orange)
Label("Wi-Fi", systemImage: "wifi")
Label("Cellular", systemImage: "antenna.radiowaves.left.and.right")
#! /bin/bash
# export all arproj found in sub directories. e.g. you want to export several projects in one folder
for i in */*.arproj
do
echo "============================"
/Applications/Spark\ AR\ Studio/Spark\ AR\ Studio.app/Contents/MacOS/sparkTerminalAppleMac export "$i" -d ./
echo "============================"
done
@IanColdwater
IanColdwater / twittermute.txt
Last active June 15, 2025 16:53
Here are some terms to mute on Twitter to clean your timeline up a bit.
Mute these words in your settings here: https://twitter.com/settings/muted_keywords
ActivityTweet
generic_activity_highlights
generic_activity_momentsbreaking
RankedOrganicTweet
suggest_activity
suggest_activity_feed
suggest_activity_highlights
suggest_activity_tweet
property open_folder : true
property touch_file : false
property time_fmt : 1
property bring_to_front : true
property organized_folder : ""
property ignore_kinds : {"Safari download", "Finder Document"}
-- Add suffixes to ignore. don't include the '.'
property ignore_suffix : {"nzb", "torent"}
property date_fmt : "+%Y-%m-%d" --
(*
@adcreare
adcreare / npm-beta-publish.md
Last active March 26, 2025 16:15
npm publish a beta package

Steps to publish a npm package to beta that won't be available via latest and won't auto install on ncu updates etc

  1. Ensure any compile is run npm run dist etc
  2. Modify version in package.json to the following format (match with existing verion numbers etc) "version": "0.1.120-beta.1" where beta.x is the number of those betas
  3. Publish to npm npm publish --tag beta

There are two options for install:

  • Always install beta with npm install packagename@beta
  • Install specific version with npm install [email protected]
@igor9silva
igor9silva / recursive_enum.swift
Last active June 20, 2025 01:34
Swift Recursive Enum
import Foundation
public indirect enum Filter: ODataRepresentable {
public enum Operator: String {
case equalTo = "eq"
case notEqualTo = "ne"
case greaterThan = "gt"
case greaterThanOrEqualTo = "ge"