Hoy en día existen frameworks para casi cualquier tipo de software que se quiera desarrollar. También los hay híbridos, que facilitan el desarrollo de distintos tipos de aplicaciones. Y la diferencia entre framework y biblioteca hoy se desdibuja, usándose muchas veces los dos términos sin distinción. Hay muuuchos frameworks más, así que me han quedado sin mencionar varios muy interesantes.
No, no es una canción de Ricky Martin 😄. El "shebang" es una serie de caracteres que los usuarios de Linux probablemente hayan visto alguna vez. Es utilizada en los "scripts", que son archivos con comandos para ser ejecutados mediante un intérprete.
✅ La respuesta correcta es la c: muestra el texto "veremos".
✏️ Explicación: Este método permite truncar una cadena de caracteres a la longitud máxima pasada por parámetro. De esta forma, cualquiera sea el string dado en el primer parámetro, si su longitud es mayor que la longitud máxima dada en el segundo parámetro, retornará desde el carácter en la posición 0 hasta el de la posición dada por ese máximo. La condición del "if" prevee el caso en que la longitud máxima dada sea mayor que la de la cadena (por ejemplo, si los argumentos fueran la cadena "hola" y la longitud 12), para evitar una excepción de tipo StringIndexOutOfBoundsException.
Programar en los años '50 escribiendo código máquina no era cualquier cosa. Hasta que apareció Fortran y ahorró el 95% del tiempo. Y además permitió que no solo los expertos en computación pudieran programar, sino también los matemáticos y científicos que, con una suave curva de aprendizaje, ahora podían ingresar sus cálculos en una computadora.
Aunque parezca un tema más apropiado para expertos en matemática o electrónica, el álgebra de Boole nos permite analizar los circuitos lógicos digitales. En palabras no muy técnicas, un circuito electrónico es algo que conduce electricidad, y puede estar cerrado (la deja pasar) o abierto (no la deja). Esto puede representarse en dos estados: 0 y 1, lo cual permite aplicar un sistema binario. Ahora ya nos suena un poco más relacionado a las computadoras, ¿no? 😉
Una de las primeras grandes aplicaciones en usar microservicios fue Netflix, en 2009, cuando notó problemas para mantener la creciente demanda en su arquitectura monolítica. Imaginen una aplicación con tantos usuarios, donde se produjera un bug severo que provocara la interrupción del servicio completo 😨.
Hoy la arquitectura de la mayoría de las grandes aplicaciones está conformada por microservicios que trabajan como módulos independientes y facilitan el mantenimiento, la utilización de integración continua, la ampliación de las funciones, etc.
No todas las computadoras tienen la misma arquitectura (aunque algunas son más populares y otras se han dejado de usar). Una de las diferencias está en el orden de los bytes cuando se almacena un dato, y a esto se lo llama, en inglés, “endianness”. En el caso de datos que solo usen 1 byte no habrá diferencia pero, cuando se usan 2 o más, debe distinguirse en qué orden se almacenarán.
Los nombres “big endian” y “little endian” se basan en el libro “Los viajes de Gulliver”, en el cual dos facciones de liliputienses se distinguen porque unos rompen los huevos cocidos por el extremo más pequeño mientras que los otros lo hacen por el extremo más grande.
A quienes programan profesionalmente, a los que están intentando convertirse en profesionales y a quienes programan solo por gusto: ¡feliz día!
Sabemos que celebramos el día 256 del año por aquello de que es la cantidad de elementos que se representan con 1 byte de 8 bits. Pero, ¿sabías que no todas las arquitecturas usan un byte de 8 bits? En realidad, en las arquitecturas modernas es prácticamente un estándar. Pero, especialmente en el pasado, existieron varias máquinas que tenían bytes compuestos por otros números de bits. Como ejemplos podemos mencionar a la primera CPU comercial de Intel (Intel 4004) que usaba 4 bits, o la Control Data 6600 con 60 bits.
La diferencia entre lenguajes “compilados” e “interpretados” suele influir en sus prestaciones, su velocidad de ejecución y su flexibilidad. Mientras que un compilador traduce el código para que pueda ejecutarlo el procesador, un intérprete lo ejecuta directamente.
De todas formas, muchos lenguajes tienen partes compiladas y partes interpretadas (como Java, que debe compilarse a “byte-code” para que luego una máquina virtual -la JVM- lo interprete).