Skip to content

Instantly share code, notes, and snippets.

View ThomRoman's full-sized avatar

ThomRoman

View GitHub Profile
- pop up (ventana emergente) : ventana que se abre de forma automática, Pueden aparecer al cargar la página, después de un periodo de tiempo o
cuando se sitúa el puntero en un punto particular. Este último caso se usa generalmente para ofrecer contenido adicional cuando el usuario va
a abandonar el sitio.
Como interrumpe la navegación y se ha usado masivamente para hacer publicidad intrusiva, muchos navegadores las bloquean. Además, son penalizadas
por los buscadores, por lo que perjudican las estrategias SEO
- Pop over o Tool tip :
Estas tarjetas de contenido, también llamadas Hovercard, muestran información adicional cuando el usuario sitúa el puntero sobre un elemento.
Por lo general, se usan para entregar detalles que ayuden al usuario a decidir si realiza una acción. Pueden llevar solo texto o incluir un
enlace a otra página del sitio.
@ThomRoman
ThomRoman / script.sql
Last active September 14, 2020 00:05
CREATE DATABASE IF NOT EXISTS mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
winpty mysql -h localhost -u root -p
@ThomRoman
ThomRoman / ipak.R
Created July 13, 2020 06:31 — forked from stevenworthington/ipak.R
Install and load multiple R packages at once
# ipak function: install and load multiple R packages.
# check to see if packages are installed. Install them if they are not, then load them into the R session.
ipak <- function(pkg){
new.pkg <- pkg[!(pkg %in% installed.packages()[, "Package"])]
if (length(new.pkg))
install.packages(new.pkg, dependencies = TRUE)
sapply(pkg, require, character.only = TRUE)
}
@ThomRoman
ThomRoman / openvpn.md
Created July 3, 2020 00:24 — forked from mikej312/openvpn.md
Associate usernames with IP addresses of OpenVPN clients

Tested on an OpenBSD system using OpenVPN LDAP authentication:

sed -n '/Virtual/,/GLOBAL/{//!p;}' /var/log/openvpn-status.log | awk -F'[,:]' '{print $3}' | while read -r r; do echo -n $r; fgrep $r /var/log/openvpn | fgrep -m 1 username | awk -F\' '{ print " - " $2}' ; done

"""
import random
names = ["Manuel","Thom","Edson","Adrian"]
sections = len(names)
sectionMap = {}
while True :
optionIndex = random.randint(1,sections)
if len(sectionMap.keys()) == sections :
break
@ThomRoman
ThomRoman / refactor_1.php
Last active June 19, 2020 22:23
Estos solo tienen clases e interfaces no namespaces pero son necesarios al igual que los use, solo es para ver el refactor de cada implementacion #ILOVEREFACTORING
<?php
class VideoId { ... }
class VideoDescription { ... }
class Video {
private $id;
private $title;
public function __contruct(
/*componer algunas clases en lugar de heredar
EJMPLOS : Usuario , Admin heredan de BaseUser ( class abstract)
CourseController extends BaseController ( class abstract) pero este extendien de otra clase abstracta
FOSRestController , esto visualizado en capas tiene sentido pero es complejo y es muy dependiente
una capa depende de la ootra y de la otra Tiene alta Cohesion pero no cumple con OPEN/CLOSE de SOLID
ya que si nosotros agregamos otros metodos tenemos que importarlo en otra clase y si por que que modifica
y no cumple con abierto a la amplicacion pero cerrado para la modificacion una alternativa serian las interfaces
pero otra tambien seria la composicion de funciones , y depende de nuestra logica para que la cohesion sea alta
Añadido a esto la complejidad para entender la arquitectura de la aplicacion es muy alta
// para poder comparar objetos enteros es mejor usar lodash ya que esta libreria compara de forma recursiva
[1,0,5,32,23,0,-5].sort() // tratara a los numeros como string y los ordenará pero utilizando los codigo UTF - 16 de cada
// uno de los caractes
[1,0,5,32,23,0,-5].sort((a,b)=>{
return a < b ? -1 : a > b ? 1 : 0
}) // -1 = a<b, 0 : a===b, 1 : a>b
// esto se puede simplificar con a-b
[1,0,5,32,23,0,-5].sort((a,b)=>a-b)