Skip to content

Instantly share code, notes, and snippets.

View lukepighetti's full-sized avatar
🦞

Luke Pighetti lukepighetti

🦞
View GitHub Profile
import 'dart:async';
import 'dart:convert';
import 'dart:math';
import 'dart:ui';
import 'package:app/components/lifecycle_builder.dart';
import 'package:app/components/button.dart';
import 'package:app/components/cancelling_builder.dart';
import 'package:app/components/keep_any_alive.dart';
import 'package:app/components/listenables_builder.dart';
@lukepighetti
lukepighetti / fragment.glsl
Last active September 12, 2024 22:52
WebGL mesh gradient shaders from https://meshgradient.com, all credit to Burak Aslan https://www.producthunt.com/products/mesh-gradient
#define MAX_POINTS 16
precision mediump float;
uniform sampler2D texture;
uniform vec2 points[MAX_POINTS];
uniform float s2[MAX_POINTS];
uniform vec2 w[MAX_POINTS];
uniform int npoints;
uniform int warp;
@lukepighetti
lukepighetti / .ignore
Last active August 29, 2024 14:19
My helix config plus commands I use every day in my Helix / Flutter workflows
*.lock
android
ios
linux
macos
web
windows
@lukepighetti
lukepighetti / README.md
Last active August 26, 2024 19:25
pocketbase systemd
vim /lib/systemd/system/pocketbase.service
systemctl enable pocketbase
systemctl start pocketbase
systemctl status pocketbase
systemctl stop pocketbase
systemctl restart pocketbase
@lukepighetti
lukepighetti / 1-setup-digital-ocean.sh
Last active August 1, 2024 13:08
Setting up digital ocean to run a dart shelf server
# install dart
sudo apt-get update && sudo apt-get install apt-transport-https
wget -qO- https://dl-ssl.google.com/linux/linux_signing_key.pub \
| sudo gpg --dearmor -o /usr/share/keyrings/dart.gpg
echo 'deb [signed-by=/usr/share/keyrings/dart.gpg arch=amd64] https://storage.googleapis.com/download.dartlang.org/linux/debian stable main' \
| sudo tee /etc/apt/sources.list.d/dart_stable.list
sudo apt-get update && sudo apt-get install dart
# install sqlite3
sudo apt install libsqlite3-dev
@lukepighetti
lukepighetti / config.toml
Last active July 24, 2024 13:12
Helix – tree file picker... TODAY?!?
[keys.normal]
C-f = [":new", ":insert-output lf-pick", ":theme default", "select_all", "split_selection_on_newline", "goto_file", "goto_last_modified_file", ":buffer-close!", ":theme tokyonight_storm"]
@lukepighetti
lukepighetti / paywall_showing_schedule.dart
Created March 4, 2024 02:08
My way of showing a paywall every day for a few days, then every week, then every two weeks. Good for about a year.
import 'package:collection/collection.dart';
import 'package:shared_preferences/shared_preferences.dart';
import '/architecture/let.dart';
import '/membership/membership_state.dart';
import '/membership/membership_tasks.dart';
import '/telemetry/analytics.dart';
Future<void> appOpenAction() async {
$analytics.vglAppOpenActionRequested();
@lukepighetti
lukepighetti / try_or_null.dart
Created May 18, 2024 15:02
Errors as values in dart
import 'dart:io';
Future<void> main(List<String> arguments) async {
final x1 = tryOrNull(() => throwing());
print(x1);
final (v1, e1) = tryTuple(() => throwing());
print("$v1, $e1");
final (v2, e2) = tryTuple(() => nonThrowing());
@lukepighetti
lukepighetti / .zshrc
Last active April 9, 2024 11:59
zsh functions I use for Helix / Flutter development
function flutter-watch(){
local PID_FILE="/tmp/tf$$.pid"
tmux new-session \;\
send-keys "flutter run --pid-file=$PID_FILE" Enter \;\
split-window -v \;\
send-keys "npx -y nodemon -e dart -x \"cat $PID_FILE | xargs kill -s USR1\"" Enter \;\
resize-pane -y 5 -t 1 \;\
select-pane -t 0 \;
rm $PID_FILE;
}
@lukepighetti
lukepighetti / .zshrc
Created March 3, 2023 15:41
marksman environment for note taking https://youtu.be/8GQKOLh_V5E
# launch daily notes with `notes`
# launch specific notes with `notes woodworking`
# this is a cloud synced file, so it's live on all my devices
function notes(){
SUBJECT="${1:=daily}"
if [ -z "$SUBJECT" ]
then
(cd ~/Documents/notes && hx NOTES.md)
else
(cd ~/Documents/notes && hx "${SUBJECT:u}.md" NOTES.md)