Aprender Docker es sencillo: Son instrucciones que corren en una maquina X. X se define al principio del dockerfile (from X)
Cada dockerfile define cómo se queda la máquina usando instrucciones de lineas de comandos. (cada linea es una capa)
Es jerárquico y puedes basarte en otro dockerfile previo o en otra capa que nombres. (from X as Y)
Lo que se suele hacer es usar dos imagenes, en una compilas y tienes todas las dependencias para compilar, copias el resultado a otra imagen que tiene únicamente lo necesario para correr tu app, y listo. (partes de imágenes alpine, por ejemplo php-alpine)
De esta forma reduces riesgos de seguridad.
Luego ejecutas la imagen final con lo que quieras
Estoy siguiendo este video desde ayer donde un indio amigo de desu deja muy claros los conceptos para un newbie como yo que parte desde cero practicamente en tema contenedores, servidores, puertos, etc...
Hoy he aprendido lo que es la recursividad. Never a master, always a student.
En js para dummies:
Esto no es recursivo, es iterativo. Como te pueden enseñar tan mal en la universidad?
edit: lo he puesto en js para que veais que tiene sentido el estilo que uso para aprender de libros.
Setze jutges d'un jutjat mengen fetge d'un penjat i el penjat era un bon metge, que per heretge havien condemnat.
Setze jutges d'un jutjat mengen fetge d'un penjat. Si el penjat es despenja, es menja els setze fetges dels jutges del jutjat que l'han penjat.
#42713 jaja yo vivo en la frontera con catalunya, asi que ciudad poca
Tenia un profesor de una pueblo de Alicante, que hablaba literalmente así
#42697 Por que haces curry del acumulador en vez de pasarlo como un parámetro iniciado a 1? Por curiosidad.
Yo lo haría así,
const factorial = n => {
const fact = (n, a) => n <=1 ? a : fact(n-1, a * n);
return fact(n, 1);
}
Hay alguna diferencia?
#42717 Estoy haciendo el libro de SICP. Voy a re implementar todo, hasta un compilador, tengo mucha curiosidad de llegar a los capitulos de evaluación! Puedes seguirlo en mi blog.
#42718 Una función puede tener 0 o 1 parámetro. Lo hago estilo haskell. No me acuerdo, de un googleado me sale que es porqué esta basado en lambda calculus y poder hacer las demostraciones.
En js no tiene sentido. Sobre lo de lambda calculus, por ejemplo, la demostración de la recursividad es muy chula, te recomiendo mirarla.
Todo el código que hago para aprender la grácia es que en teoria se puede escribir "igual" independiente del lenguaje. Tansolo hay que poner parentesis o cambiar los "->" por "=>" ... dependiendo de que lenguaje uses. Pero en la mayoría de lenguajes podrás hacer lo mismo.
En haskell tambien he aprendido que no existen argumentos, es syntax sugar, en realidad todo son lambdas :-)
Hoy en el trabajo ando con esto:
https://en.wikipedia.org/wiki/Order_theory
https://en.wikipedia.org/wiki/Hasse_diagram
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.149.3551&rep=rep1&type=pdf
Mi idea es utilizar proofs/conceptos/algoritmos de teoria de orden para hacer más eficientes algunos algoritmos de gráfos. Hyper optimizados para mi dominio / caso de uso / constraints.