Skip to content

Instantly share code, notes, and snippets.

View evaisse's full-sized avatar

Emmanuel Vaïsse evaisse

  • none
  • Nancy, France
View GitHub Profile
@evaisse
evaisse / POCKETBASE_JAVASCRIPT_GOJA.md
Created October 15, 2025 14:45
Specific docs for specific pocketbase Go JS (goja) engine

PocketBase JavaScript (Goja Engine) - Specific Behaviors & Limitations

This document covers the unique aspects, limitations, and unexpected behaviors when working with PocketBase's embedded JavaScript engine (Goja). These are critical differences from standard Node.js or browser JavaScript environments.

Table of Contents

  1. Engine Overview
  2. Module Loading
  3. Authentication Patterns
  4. ES5 vs ES6+ Compatibility
@evaisse
evaisse / main.dart
Created October 9, 2025 08:47
Dart & comparaison , égalité logique (operator ==) , hashCode , compareTo ...
import 'dart:core';
/// Démo d’égalité, hashCode et comparaison d’entités.
///
/// Points clés:
/// - L’égalité logique (operator ==) est basée sur l’ID en minuscules.
/// - Le hashCode est cohérent avec == (utilise le même critère).
/// - compareTo (Comparable<MyEntity>) illustre un ordre de tri.
///
/// Subtilités:
@evaisse
evaisse / main.dart
Last active September 30, 2025 11:56
simple way to make a screen controller/view using provider and without fullstate widgets
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
class MyBudgetModel {
final Set<String> activeCategories;
MyBudgetModel(this.activeCategories);
}
class MyBudgetController extends ChangeNotifier {
@evaisse
evaisse / pb_tools.py
Created September 26, 2025 13:13
pocketbase management tools (for CI)
#!/usr/bin/env python3
import argparse
import json
import os
import platform
import sys
import urllib.request
import zipfile
from pathlib import Path
@evaisse
evaisse / POCKETBASE.md
Created September 19, 2025 19:50
POCKETBASE.md
@evaisse
evaisse / AGENTS.md
Last active December 9, 2025 13:44
  • ALWAYS write code, comments, and documentation strictly in English, but mirror the user's language for conversational responses and explanations or paths/files where localizations is intended (e.g. *.fr-FR.md).
  • ALWAYS prefer conventions over configurations
  • ALWAYS start by analyzing the README.md to understand context, llms.txt to understand structure, CONTRIBUTING.md to adopt project's conventions and Makefile to discover local tools.
  • ALWAYS outline a step-by-step plan or pseudo-code strategy before generating the final implementation.
  • ALWAYS minimize code volume by strictly adhering to KISS principles and systematically prioritizing the reuse of existing logic or native features over duplication or adding new dependencies.
  • ALWAYS prefer use of local commands (make install, make test, make analyze, npm *) and other user-documented commands. Contribute if you need anything else for re-use. Stick to the specific libraries and frameworks versions already defined in dependency files

Tarot de Marseille Guide

Rules for Drawing Tarot de Marseille

Traditional Drawing Methods

Single Card Draw

The simplest method for daily guidance or quick answers.

  • Shuffle the deck while focusing on your question
  • Draw one card from the top or fan out the deck and select intuitively
@evaisse
evaisse / dartupdates.md
Created September 12, 2025 09:58
dart 3.6/3.7/3.8

Nouveautés de Dart pour les version 3.6, 3.7 et 3.8

Ce document présente toutes les fonctionnalités et améliorations majeures apparues dans Dart entre les versions 3.5 (août 2024) et 3.8 (mai 2025).

Dart 3.6 (Novembre 2024)

1. Séparateurs de chiffres (Digit Separators)

La fonctionnalité principale de Dart 3.6 est l'introduction des séparateurs de chiffres pour améliorer la lisibilité des nombres.

Google Way of Dart

Copyright :

There are countless Flutter coding conventions floating around. From the popular “Flutter Clean Architecture” to community-driven style guides, developers have been following external conventions for years. I was one of them.

For the past 5 years, I followed community best practices, enforced strict linting rules, and structured my Flutter apps according to popular Medium articles and YouTube tutorials. My code was “clean,” and my architecture was “proper.”

@evaisse
evaisse / GEMINI.md
Last active September 2, 2025 23:49
Development Stack with Flutter

Development Stack with Flutter

  • Flutter app, with provider for dependency management.
  • Always run flutter analyze to fix all errors, when there is errors, just run dart fix --apply before trying to manipulate the code by yourself
  • Always ensure your code is fully tested, with flutter test() or widgetTest(), add be generous with goldenTest and screen captures also
  • Always prefer type-safe alternative to dynamic, late and other risky behaviors
  • Do not cast with as keyword, but always prefer pattern matching to safely cast and test types
  • Never use the dynamic keyword, nor late, but prefer Object? which is safer
  • Always use flutter theme extension to allow UI customization, for every group of UI widgets you build, add a theme extension and refer to hit using context to customize the widgets.