vim /lib/systemd/system/pocketbase.service
systemctl enable pocketbase
systemctl start pocketbase
systemctl status pocketbase
systemctl stop pocketbase
systemctl restart pocketbase
[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"] |
vim /lib/systemd/system/pocketbase.service
systemctl enable pocketbase
systemctl start pocketbase
systemctl status pocketbase
systemctl stop pocketbase
systemctl restart pocketbase
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(); |
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()); |
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; | |
} |
# 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) |
import '/features/architecture/logging.dart'; | |
class CachedQuery<T> { | |
final Duration invalidation; | |
final Future<T> Function(String key) fn; | |
CachedQuery( | |
this.fn, | |
this.invalidation, | |
); |
import 'dart:io'; | |
import 'package:xml/xml.dart'; | |
Future<void> main() async { | |
final str = File('./markers.fcpxmld/Info.fcpxml').readAsStringSync(); | |
final xml = XmlDocument.parse(str); | |
final markers = xml.findAllElements('marker'); | |
for (final x in markers) { |
extension on WidgetTester { | |
Future<void> launchApp() async { | |
await app.main(); | |
await pumpAndSettle(); | |
} | |
Future<void> clearState() async { | |
await SharedPreferences.getInstance().then((it) => it.clear()); | |
} |
import 'package:flutter/material.dart'; | |
class Tappable extends StatefulWidget { | |
const Tappable({ | |
super.key, | |
required this.onPressed, | |
required this.child, | |
}); | |
final VoidCallback? onPressed; |