Skip to content

Instantly share code, notes, and snippets.

View FezVrasta's full-sized avatar
:electron:

Federico Zivolo FezVrasta

:electron:
View GitHub Profile
@FezVrasta
FezVrasta / finalmente-privacy-policy.md
Created August 2, 2025 15:08
Finalmente App - Legal Documents

Privacy Policy for Finalmente

Effective Date: 2 August 2025

Finalmente is a simple countdown app that allows you to track the time remaining until your important events. We respect your privacy and have designed the app to operate entirely on your device. This policy explains what data we collect, how we handle it and what options you have.

Information We Do Not Collect

  • No personal information – Finalmente does not require you to create an account or provide any personal details such as your name, email address or phone number.
  • No analytics or tracking – The app does not include any third‑party analytics, advertising networks or trackers. We do not gather usage statistics, nor do we track your behaviour.
  • No location data – Finalmente does not request or use your location.
@FezVrasta
FezVrasta / twj.ts
Last active November 7, 2024 16:18
TailwindCSS utility to convert objects into strings
type Value = string | number | boolean;
interface Config extends Record<string, Value | Config> {}
/**
* Converts a Tailwind CSS config object to a list of class names.
*
* The config object properties and the values will be joined with
* a hyphen to form the class name. If the value is `false`, the class
* name will be omitted. If the value is `true`, the class name will
* be included as is.
{"type":"FeatureCollection","name":"AT-06_micro-regions","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:OGC:1.3:CRS84"}},"features":[{"type":"Feature","properties":{"id":"AT-06-10","start_date":null,"end_date":null},"geometry":{"type":"MultiPolygon","coordinates":[[[[15.258536529954974,47.79151415272185],[15.256634833848787,47.79168871624209],[15.254741846143116,47.79210121758582],[15.253498668219871,47.79241342602599],[15.25271105616214,47.79261122387413],[15.250061961198078,47.79360768746892],[15.247826126559087,47.79431150038856],[15.244827160434587,47.79540888623251],[15.24148009427819,47.796654812479],[15.238344777441975,47.797897145375686],[15.236044874714043,47.79879227038505],[15.217179525710337,47.79602747355527],[15.201180463117048,47.77285191637688],[15.202511771469926,47.76991508806425],[15.210217554231129,47.768327053193865],[15.209869873450241,47.762783095139945],[15.205676830085556,47.758881920735405],[15.200090253372084,47.75368375662019],[15.186230584226934,47.75620627966033],[15.
{"properties":{"elevation line_visualization":1900,"threshold":3200,"elevation":"high","id":"IT-32-TN-02"},"type":"Feature","geometry":{"coordinates":[[[[10.66419272879387,46.09254566028145],[10.664147159156835,46.09222861163446],[10.662934992546054,46.09148446384751]]]],"type":"MultiPolygon"}}
{"properties":{"elevation line_visualization":1900,"threshold":3200,"elevation":"high","id":"IT-32-TN-02"},"type":"Feature","geometry":{"coordinates":[[[[10.66419272879387,46.09254566028145],[10.664147159156835,46.09222861163446],[10.662934992546054,46.09148446384751],[10.660225443651095,46.09069069506981],[10.655875904635925,46.090343417614356],[10.650670718600935,46.090194583745195],[10.644253365955521,46.08954963230871],[10.63690906237206,46.08811086713693],[10.632345611601783,46.08706897912315],[10.626997817730457,46.08567976429429],[10.623789141407663,46.084687446429825],[10.62214915128715,46.08379434499154],[10.621863935613995,46.08270275680525],[10.622220455205378,46.081611146881],[10.623290013979702,46.080817235100604],[10.624858700181987,46.08027141408196],[10.627069121648747,46.07937824069255],[10.629707366625295,46.07754222747073],[10.631204748909292,46.07530915555134],[10.632345611601846,46.07253009459116],[10.633700386049204,46.07069385203942],[10.635839503597856,46.06965163296825],[10.6383351407
-------------------------------------
Translated Report (Full Report Below)
-------------------------------------
Incident Identifier: CC9DB2D2-4B27-41BA-B984-5A25C707FB87
CrashReporter Key: C6141FAC-21F9-AA7C-BA97-01F2CF56CFC9
Hardware Model: MacBookPro18,2
Process: Nivora [95744]
Path: /Users/USER/Library/Developer/Xcode/UserData/Previews/Simulator Devices/71560B86-5E55-477B-96DA-86CE55B9325F/data/Containers/Bundle/Application/8958DB2F-48B5-4688-A3A7-C09DBEDDF669/Nivora.app/Nivora
Identifier: federicozivolo.Nivora
import Foundation
import CoreImage
import UIKit
func convertCIImageToUIImage(ciImage: CIImage) -> UIImage {
let context = CIContext(options: nil)
let cgImage = context.createCGImage(ciImage, from: ciImage.extent)
let uiImage = UIImage(cgImage: cgImage!)
return uiImage
yarn run v1.22.19
$ node-red --userDir=./lgthinq
3 Sep 15:26:10 - [info]
Welcome to Node-RED
===================
3 Sep 15:26:10 - [info] Node-RED version: v3.0.2
3 Sep 15:26:10 - [info] Node.js version: v18.16.0
3 Sep 15:26:10 - [info] Darwin 22.6.0 arm64 LE
[
{
input: 'src/popper.js',
plugins: [
[Object], [Object],
[Object], [Object],
[Object], [Object],
[Object], [Object]
],
output: {
@FezVrasta
FezVrasta / index.js
Created February 6, 2021 15:00
Firebase Twitch OAuth Flow (Cloud Functions implementation)
'use strict';
const functions = require('firebase-functions');
const admin = require('firebase-admin');
const cookieParser = require('cookie-parser');
const crypto = require('crypto');
const { AuthorizationCode } = require('simple-oauth2');
const fetch = require('node-fetch');
// Firebase Setup