Archivo de la etiqueta: css

Todo lo que sube baja, ¿de dónde es este código?

Números bailando, ¿de dónde es este código?

Volvemos con un nuevo acertijo en nuestra serie ¿De dónde es este código?, aunque esta vez va a ser algo distinto, ya que no se trata de un proyecto del mundo del Software Libre, sino de un algoritmo clásico.

Por tanto, esta vez no traemos código fuente propiamente dicho, sino un pseudocódigo que seguro que a más de uno le sonará de sus primeros años de estudios de informática.

El código

 function miAlgoritmo(lista, limSup, limInf) { pivote = lista[limSup]; i = limInf - 1; j = limSup; if (i < j) return; do { while (lista[i] < pivote) i++; while (lista[j] > pivote) j--; if (i < j) { swap = lista[i]; lista[i] = lista[j]; lista[j] = swap; } } while (i < j) swap = lista[i]; lista[i] = lista[sup]; lista[sup] = swap; miAlgoritmo(lista, limInf, i - 1); miAlgoritmo(lista, i + 1, limSup) }

El reto

Una vez acertado el nombre del algoritmo, lo que seguramente os resulte muy fácil, hay otras preguntas acerca del mismo para las que buscamos vuestra respuesta.

  • ¿Cuál es el orden de complejidad promedio de este algoritmo? ¿Y en el peor de los casos? ¿De qué depende obtener uno u otro?
  • ¿Qué dos características de la versión que hemos publicado en pseudocódigo hacen que sea más lento de lo que podría de estar optimizado?
  • Antes de la aparición de este algoritmo, había otros que solucionaban el mismo problema por fuerza bruta, sin divide y vencerás ni ninguna otra estrategia. ¿Qué complejidad computacional tenían?
  • ¿Serías capaz de decir algún software real que implemente este algoritmo?
  • Y la más inquietante, ¿qué tiene que ver la foto que encabeza el artículo con el algoritmo en cuestión?

Emmet: Escribe código HTML y CSS a base de abreviaciones

Emmet

Para escribir código basta con el editor de texto más sencillo de tu sistema operativo llámese Bloc de Notas, Gedit, Kate o TextEdit. Pero todos los que trabajamos desarrollando código sabemos que escribir en un editor de texto plano equivale a darle a la cajera del supermercado una libreta y un boli (Con un poco de piedad una calculadora también). Una tarea posible en la teoría, pero imposible en la práctica. Cada vez tenemos editores más complejos y con más funcionalidades que ya no solo se limitan a colorear el código sino potentes herramientas de autocompletado, detección de errores en tiempo real, refactorización, etc.

Si desarrollas para la web, en concreto para el frontend, Emmet da una vuelta de tuerca más para hacerte altamente productivo, se trata de un plugin que a base de escribir pequeñas abreviaciones genera grandes estructuras de código HTML y CSS.

Los programadores somos vagos, reconócelo

Aunque parezca una contradicción estaréis de acuerdo conmigo en que a los programadores no nos gusta escribir código. Nos gusta resolver problemas, plasmarlo en código es un daño colateral para la mayoría. Siempre vamos a estar buscando la manera de escribiendo lo menos posible hacer más cosas, es la esencia de la programación.

El lenguaje HTML está muy bien, un lenguaje de marcas basado en XML que se basa en el uso de etiquetas y atributos. Fácil de procesar para la máquina y fácil de leer para el ser humano, aunque el que escribe el código no está tan de acuerdo con esto ya que es tedioso de escribir por repetitivo. Con Emmet se acabó para siempre lo tedioso, por fin nos podremos centrar en lo que de verdad importa, entregarlo a tiempo haciendo lo mínimo.

Como decíamos Emmet se base en pequeñas abreviaciones que generan grandes estructuras de código. Lo mejor es verlo con algunos ejemplos. Por ejemplo la siguiente línea: Seguir leyendo Emmet: Escribe código HTML y CSS a base de abreviaciones

Sortable, ordenando tablas de manera sencilla y elegante

sortable

Ando siempre, como ya sabréis, a la caza de nuevas herramientas y/o librerías que hagan más fácil mi trabajo a la par que más vistoso. Sortable, que hace ni más ni menos que lo que indica su descriptivo nombre, ordenar tablas, es de las últimas con las que me he encontrado y la verdad es que tiene buena pinta.

Sortable es una librería Javascript, sin dependencias y muy liviana, apenas 2kb de pesa, fácil de configurar y utilizar, con varias plantillas CSS bastante resultonas y open source. Su misión, hacer más amigables y sencillas las tablas que requieren ordenación por alguna de sus columnas (ergo, prácticamente cualquiera si queremos un mínimo de dinamismo o apariencia de).

Sus dos principales problemas radican en una escasa documentación (aunque más que suficiente para cualquier experto en desarrollo web) y, sobre todo, en la gran competencia que tiene: librerías y plugins que hacen lo mismo que Sortable (y más) hay a patadas. Pero oye, una opción más nunca viene mal. Mejor que sobre que no que falte.

Pd: obviamente está disponible en Github para tu forkeo y disfrute. Seguir leyendo Sortable, ordenando tablas de manera sencilla y elegante