Skip to content

Instantly share code, notes, and snippets.

View carlosvillu's full-sized avatar
🏠
Working from home

Carlos Villuendas Zambrana carlosvillu

🏠
Working from home
View GitHub Profile
@carlosvillu
carlosvillu / Readme.md
Created October 23, 2025 16:53
Monitor Tech Debt

@s4l/tech-debt

A CLI tool to track and monitor technical debt reduction progress in monorepo projects by analyzing ESLint violations and sending metrics to Datadog.

Motivation

Technical debt is inevitable in software projects. While ESLint helps identify code quality issues, it doesn't provide visibility into the progress of fixing them over time. This tool bridges that gap by:

  • Tracking progress: Monitor how many files still violate specific ESLint rules
  • Measuring impact: Calculate the percentage of affected files (affectation rate)
#!/bin/bash
# =============================================================================
# HETZNER VPS SETUP SCRIPT FOR PONDER DEVELOPMENT
# =============================================================================
# Este script automatiza la configuración completa de un VPS nuevo de Hetzner
# para desarrollo con Ponder, siguiendo las mejores prácticas de seguridad.
#
# Uso: curl -sSL https://raw.githubusercontent.com/tu-repo/setup.sh | bash
# O: wget -O - https://raw.githubusercontent.com/tu-repo/setup.sh | bash
javascript:(function(){ try { let cls = 0; const canvas = document.createElement('canvas'); canvas.style.width = '100%'; canvas.style.height = '100%'; canvas.width = window.innerWidth; canvas.height = window.innerHeight; canvas.style.position = 'absolute'; canvas.style.left = 0; canvas.style.top = 0; canvas.style.zIndex = 100000; canvas.style.pointerEvents = 'none'; document.body.appendChild(canvas); const context = canvas.getContext('2d'); const po = new PerformanceObserver((list) => { canvas.style.transition = 'opacity 0s'; canvas.style.opacity = 1; context.clearRect(0, 0, canvas.width, canvas.height); for (const entry of list.getEntries()) { if (!entry.hadRecentInput && entry.value >= 0.0025) { cls += entry.value; let consoleGroup = `%cTotal CLS value: ${cls}`; let styles = ''; if (cls >= 0.1) { styles = 'color: red;'; } console.group(consoleGroup, styles); consol
// Available variables:
// - Machine
// - interpret
// - assign
// - send
// - sendParent
// - spawn
// - raise
// - actions
#!/bin/bash
function csview {
local file="$1"
cat "$file" | sed -e 's/,,/, ,/g' | column -s ";" -t | less -#5 -N -S
}
@carlosvillu
carlosvillu / at.js
Last active September 5, 2019 09:41
adobe target tag
window.adobe=window.adobe||{},window.adobe.target=function(){"use strict";var t=window,n=document,e=!n.documentMode||n.documentMode>=10,r=n.compatMode&&"CSS1Compat"===n.compatMode&&e,o=t.targetGlobalSettings;function i(){}if(!r||o&&!1===o.enabled)return t.adobe=t.adobe||{},t.adobe.target={VERSION:"",event:{},getOffer:i,getOffers:i,applyOffer:i,applyOffers:i,sendNotifications:i,trackEvent:i,triggerView:i,registerExtension:i,init:i},t.mboxCreate=i,t.mboxDefine=i,t.mboxUpdate=i,"console"in t&&"warn"in t.console&&t.console.warn("AT: Adobe Target content delivery is disabled. Update your DOCTYPE to support Standards mode."),t.adobe.target;var u=window,c=document,a=Object.getOwnPropertySymbols,s=Object.prototype.hasOwnProperty,f=Object.prototype.propertyIsEnumerable;var l=function(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var n={},e=0;e<10;e++)n["_"+String.fromCharCode(e)]=e;if("0123456789"!==Object.getOwnPropertyNames(n).map(function(t
{
"form": {
"id": "milanuncios-filter",
"type": "group",
"label": "Busca en milanuncios",
"actionlabel": "Buscar",
"fields": [
{
"id": "palabras",
"type": "text",
{
"form": {
"id": "milanuncios-filter",
"type": "group",
"label": "Busca en milanuncios",
"actionlabel": "Buscar",
"fields": [
{
"id": "palabras",
"type": "text",
{
"suggest.echodocSupport": true,
"suggest.maxCompleteItemCount": 20,
"coc.preferences.formatOnSaveFiletypes": ["javascript", "typescript", "typescriptreact", "json", "javascriptreact"],
"eslint.filetypes": ["javascript", "typescript", "typescriptreact", "javascriptreact"],
"eslint.autoFixOnSave": true,
"yaml.format.enable": true,
"yaml.format.singleQuote": true,
"yaml.validate": true,
"diagnostic.errorSign": "x",
@carlosvillu
carlosvillu / init.vim
Last active July 7, 2019 12:14
NVIM config
" PLUGINS
" ******************************************************************************
call plug#begin()
Plug 'fugalh/desert.vim' " ColorSchema
Plug 'airblade/vim-gitgutter' " display git changes on left column
Plug 'itchyny/vim-gitbranch' " Git
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' } " Fuzzy Search
Plug 'junegunn/fzf.vim' " Fuzzy Search
Plug 'Quramy/tsuquyomi' " TypeScript Support