Como ha sucedido con otros lenguajes, C++ también ha evolucionado. Ha madurado mucho desde aquellos códigos que programábamos hace años y se nota. Por un lado, podemos pensar que al sumar abstracción en ciertos aspectos nos separa de la máquina y hace nuestro código más lento. Suma comprobaciones, hace más callbacks y en definitiva, una sencilla tarea que completaba en pocos cientos de operaciones, ahora son pocos miles. Aunque en su favor, podemos decir que aquello que programábamos en 15 o 20 líneas de código se ha reducido a una o dos, reduciendo así los puntos de ruptura, posibles bugs y calentamientos de cabeza futuros.… Leer artículo completo
Asus Zenfone 2 Laser, desbloqueo, root, limpieza, sincronización y algunas cosas más
Hace un tiempo mi antiguo móvil empezaba a agonizar: perdía la cobertura, la batería duraba cada día menos, se reiniciaba, y muchos más pequeños detalles. Era un THL T11, comprado a una tienda china online. Es cierto que para el hardware que traía (octa core, 2Gb de RAM) no me salió caro, 118€. Aunque creo que a la larga, he perdido más tiempo esperando que reiniciara, rellamando a personas, reiniciando el teléfono y antes de jubilarlo instalando ROMs y tocando scripts de inicio.… Leer artículo completoBITes: Ray Tomlinson, Skype se rompe, seguridad, SSD de 15Tb!! ordenadores en ciencia ficción, eliminar de forma segura
Unos cuantos enlaces más para terminar la semana con energía, y viendo las cosas de otro modo. Son algunos posts y algunas páginas que considero interesantes y oportunas esta semana.Enlaces de la semana
- Ray Tomlinson: Sin él no tendríamos correo electrónico… bueno, como pasa siempre, si no lo hubiera hecho él, lo habría hecho otro, pero no sería tal y como lo conocemos. Y tristemente fallecido esta semana. Os dejo la dedicatoria que mi amigo Paco dejó en Facebook [Ayúdame]:
Cuando en el mundillo de la informática muere cierta gente que se ha sabido vender, corren ríos de tinta.
- Ray Tomlinson: Sin él no tendríamos correo electrónico… bueno, como pasa siempre, si no lo hubiera hecho él, lo habría hecho otro, pero no sería tal y como lo conocemos. Y tristemente fallecido esta semana. Os dejo la dedicatoria que mi amigo Paco dejó en Facebook [Ayúdame]:
Cómo gestionar los parámetros de nuestros programas con getopt en C
Cuando hablamos de argumentos o parámetros de un programa en C, debemos pensa en los parámetros tan raros que pasamos a la función main(). En este caso, podemos ver cómo con dos argumentos (argc, o el número de argumentos que tenemos y argv o el contenido de esos argumentos, somos capaces de gestionar la información que un usuario nos pasa justo cuando ejecuta nuestro programa.
Lo más sencillo que podemos hacer con los argumentos
Imaginemos este ejemplo, de un programa donde queremos copiar un archivo origen a un destino (como cp), primero comprobamos que el número de argumentos es suficiente y luego imprimimos en pantalla el valor de cada uno (es un ejemplo inofensivo, no vamos a copiar nada).… Leer artículo completo
Bucles y cursores en MySQL con ejemplos
Hace mucho tiempo que quería escribir sobre esto. Y aunque es recomendable no abusar de los bucles en MySQL, es más, a veces no son necesarios, y siempre hay que buscar una solución que no los use, a veces no la vamos a encontrar y será en esos casos cuando debamos utilizarlos.
Veamos un bucle muy sencillo, parecido a un for de los de toda la vida, en el que contamos del 1 al 9:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17cuando hagamos:
1Veremos algo como esto:
+———+
| counter |
+———+
| 1 |
+———+
1 row in set (0.01 sec)+———+
| counter |
+———+
| 2 |
+———+
1 row in set (0.01 sec)+———+
| counter |
+———+
| 3 |
+———+
1 row in set (0.01 sec)+———+
| counter |
+———+
| 4 |
+———+
1 row in set (0.01 sec)+———+
| counter |
+———+
| 5 |
+———+
1 row in set (0.01 sec)+———+
| counter |
+———+
| 6 |
+———+
1 row in set (0.01 sec)+———+
| counter |
+———+
| 7 |
+———+
1 row in set (0.01 sec)+———+
| counter |
+———+
| 8 |
+———+
1 row in set (0.01 sec)+———+
| counter |
+———+
| 9 |
+———+
1 row in set (0.01 sec)Query OK, 0 rows affected (0.01 sec)
Vemos que el código que iteraremos está entre LOOP…END LOOP, lo que aparece justo antes (my_loop) es una etiqueta para nombrar ese bucle.… Leer artículo completo
Últimos comentarios