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_csv_import_export.js
Created September 4, 2024 12:41
Basic javascript plugin to import/export into your PocketBase admin UI
console.log('coucouc');
@evaisse
evaisse / enum_generics_inferance.dart
Last active August 30, 2024 13:37
Dart ssmple to explain Enum with generics inference
enum ManyGenerics<T> {
myInt<int>(defaultValue: 3),
myString<String>(defaultValue: 'hello');
final T defaultValue;
const ManyGenerics({required this.defaultValue});
}
typedef WrappedAccess = ({ManyGenerics val});
@evaisse
evaisse / sealed_state_example.dart
Created July 25, 2024 13:07
dart sealed class and unstructuring of switch case in pattern matching
enum ScoreLevel {
rookie,
maestro
}
sealed class MyState {
}
@evaisse
evaisse / main.dart
Last active June 19, 2024 12:15
Example of ValueNotifier & ValueListenerBuilder to replace Rx from Getx.
import 'package:flutter/material.dart';
///
/// @see https://api.flutter.dev/flutter/widgets/ValueListenableBuilder-class.html
/// @see https://api.flutter.dev/flutter/foundation/ValueNotifier-class.html
///
ValueNotifier<int> counter = ValueNotifier<int>(0);
void main() {
runApp(const MyApp());
@evaisse
evaisse / dart_generic_inheritance.dart
Last active April 26, 2022 16:04
Describe how to implement a twin generics inheritance with dart
///
/// @see https://dartpad.dev/660a4ec4fcb91ff648a632705ea4697a
///
import 'package:flutter_test/flutter_test.dart';
/// base controller, just to explain the main inheritance
class BaseController {}
class BaseScreen<T extends BaseController> {
late final T controller;
@evaisse
evaisse / log4jscan.py
Last active January 25, 2022 18:57
A log4j version scan over a given path.
#!/usr/bin/python
"""
sudo python3 log4jscan.py evaisse -d /System/Volumes/Data/Applications/Transporter.app/Contents/itms/share
Output stuff like this :
Script version: 2.1 (scans jar/war/ear/zip files)
Start scanning on "/System/Volumes/Data/Applications/Transporter.app/"
========================================================================
@evaisse
evaisse / read_dotenv.php
Last active August 11, 2020 08:31
A simple dotenv (.env) file parsing function to avoid dependencies
<?php
function read_dotenv(string $filePath) {
$envs = parse_ini_file($filePath);
foreach ($envs as $k => $v) {
$k = strtoupper($k);
putenv("$k=$v");
$_ENV[$k] = $_SERVER[$k] = $v;
}
@evaisse
evaisse / Pagination.js
Created July 29, 2020 14:10
A simple pagination class
/**
var pagination = new Pagination(itemPerPage, totalItemCount, currentPageNumber);
<ul class="pagination" ng-if="pagination">
<li ng-repeat="link in pagination.getLinks()"
ng-class="{active: link.active, disabled: link.disabled}">
<a ng-if="link.type === 'shortcut'" aria-label="{{link.label}}" ng-click="updateSearchParams({ page: link.page })">
<span aria-hidden="true">{{link.label}}</span>
@evaisse
evaisse / slugify.rb
Last active June 30, 2020 18:31
Ruby Slugify
def slugify str
str.ljust(100)
.gsub(/[\W\s\t\r\n\f]/, ' ')
.strip
.gsub(/\s\s+/, '')
.gsub(' ', '_')
.gsub(/\W/,'')
.gsub('_', '-')
.downcase
end

Bonjour à vous.

Pour sa sixième édition, le festival de micro-édition au doux nom de L'ENFER ouvrira ses portes le week-end du 11 au 13 septembre 2019, à Nancy. Nous serions heureux de vous compter parmi les exposants de notre salon!

Nous vous invitons à prendre connaissance de l’événement via les informations suivantes:

SITES INTERNET