Acerca de José Antonio Rojas Delgado:
24/12/2022 13:52:02
sábado, 24 de diciembre del año de N.S. 2022
jard: Para lograr algo hay que perseverar. El logro es el fruto del esfuerzo repetido incansable ante infortunios. El ciclo de la vida es intentar, caerse, levantarse, volver a intentar, ...
To achieve something you have to persevere. Achievement is the fruit of tireless repeated effort in the face of misfortunes. The cycle of life is to try, fall, get up, try again, ...
Pour réussir quelque chose, il faut persévérer. La réussite est le fruit d'efforts inlassables et répétés face aux malheurs. Le cycle de la vie c'est essayer, tomber, se relever, réessayer, ...
22/12/2022 19:26:49
jueves, 22 de diciembre del año de N.S. 2022
jard: CONFIANZA CERO
Resumen de los apuntes del curso Administración Avanzada de Windows de la Junta de Andalucía:
PRINCIPIOS DE LA CONFIANZA CERO:
1.- COMPROBACIÓN EXPLÍCITA DE IDENTIDAD
2.- PRIVILEGIOS MÍNIMOS IMPRESCINDIBLES EN UN MOMENTO DADO: JUST-IN-TIME, JUST-ENOUGH
3.- ASUMIR BRECHAS
Resumen con mis palabras, como norma general para un técnico informático administrador de sistemas que usan funcionarios de la Junta de Andalucía:
SEGÚN QUIEN ERES (JUST-TO-YOU) TE DOY LOS PERMISOS MÍNIMOS QUE NECESITES (JUST-ENOUGH) PARA HACER TU TRABAJO, Y SOLO CUANDO LO NECESITES (JUST-IN-TIME), YA QUE NOS ESTÁN ATACANDO JUSTO AHORA (JUST-ATTACKING)
Otras anotaciones:
DE NADA SIRVE LA SECURIZACION DE UN PORTÁTIL PARA USO DE UN FUNCIONARIO EN TELETRABAJO (HDD-USER-PASSWORD, TPM-BITLOCKER, VPN-FORTICLIENT-CERTIFICADODIGITAL-USUARIOCORPORATIVO, ESCRITORIOREMOTO-RDP-VNC-USUARIOLDAP) SI EL PORTÁTIL SE USA JUNTO A UNA VENTANA QUE DA A LA ACERA Y SE PUEDE REALIZAR DESDE ELLA UNA FOTO DE LA PANTALLA MIENTRAS MUESTRA INFORMACIÓN CONFIDENCIAL.
DE NADA SIRVE LA SECURIZACION DE UN CORREO ELECTRÓNICO PARA UN FUNCIONARIO MEDIANTE USUARIO CORPORATIVO SI SE ENVIA EL CORREO MEDIANTE TEXTO PLANO A OTRO CORREO NO CORPORATIVO CUYOS SERVIDORES ESTÁN FUERA DE EUROPA (GMAIL, HOTMAIL, ...)
22/12/2022 19:16:11
jueves, 22 de diciembre del año de N.S. 2022
jard: zen coding emmet
La escritura de código fuente acelerada es una característica que se echa de menos cuando cambias de editor. Desde 2009 se conoce en general como CODIFICACION ZEN (Zen Coding en inglés) (ver https://en.wikipedia.org/wiki/Emmet_(software))
y desde 2013 y hasta la actualidad se conoce como EMMET.
La funcionalidad consiste en escribir una abreviatura de lo que quieres codificar, y a continuación invocar la función Zen, usualmente pulsando la tecla TAB (el tabulador, esa tecla olvidada a la izquierda de tu teclado, encima de la tecla que fija o bloquea las mayúsculas). A continuación la función Zen cambia la abreviatura expandiéndola a su verdadero valor textual.
Por ej:
html:5 te genera un esqueleto html versión 5
ul>li*14 te genera un bloque html <ul> con 14 elementos <li> en su interior
div.divisionprincipal>p*3 te genera un bloque <div class='divisionprincipal> con 3
párrafos <p></p> y su etiqueta de cierre </div>
div[name=division$]*30 te genera 30 divisiones <div name='division1'> <div
name='division2'> ... <div name='division30'>
p#parrafo$*5 te generera 5 parrafos <p id="parrafo1"> .. <p id="parrafo5">
div.calculos#calculos[name=calculos][otrapropiedad=hola] genera <div class="calculos" id="calculos" name="calculos" otrapropiedad="hola"></div>
Exiten Extensiones plug-in para todos los entornos de desarrollo que se precien de serlo: Notepad++, Adobe Dreamweaver, Visual Studio Code...
En Visual Studio Code viene de serie, y para invocar la función Zen hay que hacerlo mediante el menú Editar/Emmet Expandir Abreviación
Este elemento de menú está asociado a la tecla de método abreviado Tab, pero al pulsar esa tecla no se invoca la función Zen. Esto ocurre porque el editor tiene deshabilitado por defecto el uso de Tab para invocar la función Zen.
Para habilitar el uso de Tab para invocar la función Zen hay que ir al menú Archivo/Preferencias/Configuración, y allí buscar "emmet", y entre las múltiples opciones hay una llamada "Emmet: Trigger expansión on tab", que encontrarás sin seleccionar y deberás seleccionarla.
Esto no habilita la tecla tab, sino que habilita "el método abreviado". Así, si no te gusta Tab, para cambiar el método abreviado hay que ejecutar el comando de configuración en el menú Ver/Paleta de Comandos, y allí buscar "Emmet: expandir abreviatura" y pulsar el botoncito de la rueda dentada (configuración) a su derecha. Pulsa el pequeño lapiz a la izquierda para editar, teclea la secuencia de teclas deseada y una vez la tengas configurada, pulsa la tecla intro para aceptar los cambios.
22/12/2022 08:09:43
jueves, 22 de diciembre del año de N.S. 2022
jard: En los archivos js (jsx) de un proyecto React no se pueden hacer comentarios html del tipo <!-- comentario -->
Para poder comentar es necesario que el bloque a comentar se convierta primero en un elemento de insercion javascript mediante las llaves {} y entonces lo que se quiere comentar debe estarlo al estilo javascript.
O sea:
.- para una sola linea
{//comentario
}
.- para varias lineas
{/* primera linea de comentario
segunda linea de comentario
...
ultima linea de comentario*/
}
13/12/2022 19:27:34
martes, 13 de diciembre del año de N.S. 2022
jard: APRENDIENDO PYTHON
letras=list()
type(letras)
for n in range(ord("a"),ord("z")):
letras.append(chr(n))
letras
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y']
letrasespañolas=letras
letrasespañolas.insert(letrasespañolas.index("n")+1,"ñ")
letrasespañolas
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'ñ', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y']
UPS, LE HE INCLUIDO LA ñ PERO NO ESTÁ LA z
VAYA, DONDE PUSE ord("z") TENÍA QUE HABER PUESTO ord("z")+1
(INTUITIVO Y FÁCIL DE ENTENDER ESO DE range) ME VA A COSTAR ENTENDER EL PYTHON ESTE
BUENO BUENO, YA VOY Y LO REPITO
letras=list()
type(letras)
asciidelaprimeraletra=ord("a")
asciidelaultimaletra=ord("z")
for ascii in range(asciidelaprimeraletra,asciidelaultimaletra+1):
letras.append(chr(ascii))
letras
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
letrasespañolas=letras.insert(letras.index("n")+1,"ñ")
letrasespañolas
letras
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'ñ', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
UPS, letrasespañolas NO SE HA ACTUALIZADO, Y EN SU LUGAR SE HA ACTUALIZADO LA LISTA letras
(INTUITIVO Y FACIL DE ENTENDER ESO DE
BUENO, BUENO, YA VOY Y LO REPITO
letras=list()
for ascii in range(asciidelaprimeraletra,asciidelaultimaletra+1):
letras.append(chr(ascii))
letras
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
temp=letras
temp.insert(temp.index("n")+1,"ñ")
temp
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'ñ', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
letrasespañolas=temp
letrasespañolas
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'ñ', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
del temp
letras
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'ñ', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
QUÉ BIEN, YA TENGO BIEN ACTUALIZADA LA LISTA letrasespañolas, PERO...
UPS, LA LISTA letras TAMBIÉN SE HA ACTUALIZADO
(INTUITIVO Y FACIL DE ENTENDER ESO DE
O SEA, QUE CUANDO SE EJECUTA
BUENO, BUENO, YA VOY Y LO REPITO
(CONTINUARA...)