Font Awesome, una fuente para web devepolers (Parte I)

Un problema muy habitual al que se enfrentan los desarrolladores web, es la inclusión de iconos en la página, algo que de primera es difícil si en la misma aparecen muchos diferentes y quieres que todos ellos tengan el mismo estilo. Lo que hacen normalmente es buscar un buen paquete con muchos vectorizados y listo, editamos los que sean necesarios.

iconos

Pues bien, ayer me encontré con algo nuevo para mi y que creo que para quien no lo conozca debería de apuntárselo en un lugar en el que no lo pierda de vista nunca. El ‘invento’ se llama Font Awesome y viene de la mano de Dave Gandy, aunque ya hace mas de 3 años que los desarrolló (Mas de 1000 días de ignorancia jajaja).

Font Awesome es desde el punto de vista mas básico una fuente con casi 600 iconos, algo que coge mucho valor si le agregamos unas cuantas clases CSS acompañándola y que nos dan un poder que podría llamarse magia negra hace unos cuantos años.

Entre sus características mas importantes encontramos el hecho de que no requiere javascript y por lo tanto tan solo es magia del CSS, son redimensionables sin ningún límite y  son compatibles con cualquier licencia. Veremos el potencial con los primeros ejemplos en la segunda parte de esta entrega de entradas.

Links | Web Oficial

14 Años de Windows XP

No es que yo sea un enamorado de Windows, a decir verdad… de nada que lleve el logo de Microsoft, pero hay que reconocer  que el mundo habría sido muy diferente sin ellos, para bien o para mal…

WindowsXP

Ayer domingo 25 de Octubren Microsoft Windows XP hacía nada mas y nada menos que 14 años de historia, recordaros que estamos hablando del que quizás sea el sistema operativo mas estable o con el que el usuario se ha sentido mas cómodo de la compañía de Redmond y el que mas ha sobrevivido tras tantos años, tanto es así que pese a dejar de dar soporte oficial la propia empresas, algunas empresas de terceros siguen dando actualizaciones y soluciones para el sistema.

Los viejos rockeros nunca mueren, y el XP sigue estando instalado en miles y miles de ordenadores por todo el mundo, en especial en muchos pcs con considerable tiempo y en empresas en las que a nivel de software no necesitan potencial como pequeñas tiendas. Raro me resulta seguir viéndolo en instituciones públicas o en los propios sistemas de pantallas de la Renfe, esto último me viene a la memoria haciendo viaje a Ávila hace ahora un año.

Bien, no nos queda mas que felicitar a la compañía de Bill, Allen y el actual CEO Nadella por estos 14 años y ya puestos al propio Gate que cumplirá el próximo Miércoles los 60 años de edad.

Recomendaciones: El pequeño libro rojo del activista en la red

9788499187778-El_Pequenyo_Libro_Rojo_Del_Activista_En_La_Red-Marta_Peirano-altaLos fines de semana son para descansar y para hacer lo que a uno realmente le apetece, por eso lo mejor que podemos hacer si nos gusta la tecnología es leer un buen libro, ver una buena película o una buena serie, aunque yo sigo recomendándoos un buen paseo por el campo.

Cada fin de semana quiero regalar una recomendación de todas esas cosas que uno ve o lee y que le enriquece el corazón y el cerebro. Y para empezar por con buen pie os dejo un libro que alimentó mis mañanas de metro hace un par de semanas. El libro es ‘El pequeño libro rojo del activista en la red’, y si bien es cierto que está orientado a periodistas y activistas, también lo es que se puede aprender mucho de la historia reciente del activismo y de los problemas a los que se enfrentan quienes son valientes por anteponer el bien común que el suyo propio.

Lo conocí gracias a un video de Marta Peirano en el TEDx de Madrid que os publicaré en unos días y del cual no quiero adelantar nada, la verdad es que esta chica es un descubrimiento y es digna de renombrar, su lucha por el buen uso de la seguridad a nivel de usuario es d reconocer.

Os dejo la sinopsis que publica la web de la editorial (Rocaeditorial) perteneciente al diario.es, medio de comunicación al que pertenece Marta y que nos ofrece una sección de tecnología muy buena.

En tiempos de fascismo, todos somos disidentes. Y nuestras trincheras están en la Red.

Bradley Manning es un soldado raso que no quiso aceptar los crímenes de guerra como daños colaterales. Julian Assange es un informático que ha decidido hacer un trabajo al que los grandes periódicos han renunciado. Edward Snowden es un técnico informático que, ante la evidencia de un abuso contra los derechos de sus conciudadanos, decidió denunciar. Los tres son ciudadanos ordinarios que, enfrentados a circunstancias extraordinarias, decidieron cumplir con su deber civil. Las consecuencias para ellos no podrían ser más graves ni más reveladoras: son víctimas de una campaña internacional de descrédito personal cuya intención es convencer a los espectadores de que lo importante son las apariencias y no los hechos.
En cada oficina hay cientos de personas como ellos. Por sus manos pasan documentos secretos, algunos de los cuales necesitan salir a la luz. El pequeño Libro Rojo del activista en la Red es un manual para proteger sus comunicaciones, cifrar sus correos, borrar sus búsquedas y dispersar las células de datos que generan sus tarjetas de red, en el caso de que, al igual que ellos, usted decida arriesgarlo todo por el bien de su comunidad.

Link | Rocaeditorial

Los Efectos Colaterales o Secundarios en programación

En la primera entrada de Programación Funcional hablé de una propiedad llamada efecto colateral, algo que no está presente en la Programación Funcional pero que si está a la orden del día en la Programación Imperativa.

trc3a1fico-de-drogasUn efecto colateral se da cuando en una parte de nuestro programa al hacer una llamada a un código secundario como una función, ésta es capaz de modificar elementos globales haciendo que en muchos casos una misma entrada en una de ellas pueda resultar con salidas diferentes.

A este suceso no se le puede llamar problema como tal, pero en ciertas ocasiones pueden llevar al desarrollador a momentos de desesperación para depurar un código. El ejemplo que os traigo es muy simple, pero muestra con claridad a lo que me refiero.

Como bien podéis ver en este ejemplo en Python, la modificación interna de la variable bool conlleva que en futuras llamas el comportamiento varíe eligiendo la otra rama. O lo que es lo mismo, 2 salidas diferentes para una misma entrada.

Ya sabéis que hay que tener cuidado con los efectos secundarios y no solo de los medicamentos!!. 🙂

Introducción a la Programación Funcional

Muchas veces se piensa que no usaremos el 99% de lo que estudiamos, durante estos últimos años he aprendido que quizás si existan cosas que no tienen mucho sentido estudiar si uno no se especializa, pero otras sin embargo nos las encontraremos y diremos la famosa frase de: “Yo esto lo estudié, pero no me acuerdo muy bien”. La verdad es que si lo aprendiste bien en su momento (no para aprobar un examen) solo tendrás que dedicar un rato a recordar lo que aprendiste.

Por eso precisamente, es por lo que quiero contaros en varias entradas como estoy aprendiendo Haskell, la última asignatura de mi carrera (La asignatura es Programación Declarativa) y que quizás por vago o por dejado he tenido que repetir dos años. En el fondo hay que ser sinceros, Haskell puede ser muy bonito.

En esta primera entrada quiero situaros en el contexto de la Programación Funcional y contaros algunas de las características mas curiosas de Haskell. Pero lo primero es lo primero.

¿Qué es la Programación Funcional?

La programación funcional es un paradigma de haskell_logo-250x157programación que se engloba dentro de la programación declarativa y que se basa en la descripción de un problema declarando propiedades y reglas. Por decirlo de algún modo se deja de pensar en como solucionar un problema paso a paso y se comienzan a generar una serie de reglas que deben de cumplirse para llegar al resultado final.

Centrándonos mas aún en la programación funcional, ésta sigue un modelo similar a la creación de funciones matemáticas, con parámetros de entrada y de salida. Como veremos en futuras entradas crearemos mas ecuaciones que programas en si, y desaparecerán los conceptos de ‘variable’ o ‘bucle’ para dar mas importancia a la recursividad y a las listas.

Bases y características de la Programación Funcional

Tendremos que abandonar muchos conceptos que nos parecerá mentira no tratar a la hora de programar, el primero de ellos les sorprenderá sobre todo a los amantes de C y del uso de las funciones de malloc(), free() y realloc(), es el concepto de memoria, algo totalmente abstracto para el programador y que no tendrá que preocuparse en ningún momento, como si del recolector de basura de Java se tratase.

No existen los efectos laterales ya que no existen las variables, este concepto lo trataré en una entrada a parte porque es realmente interesante, a grandes rasgos se evita el problema de que desde una función internamente se modifiquen variables globales y por lo tanto tengan efectos fuera de la misma función.

Al ser lenguajes con gran nivel de abstracción sus códigos suelen ser claros, lo que muchos llamaríamos como ‘ir al grano’ y que tanta elegancia le da al código.

La recusividad es el corazón de la mayoría de los programas, esto es así porque tampoco existen bucles como ‘while‘ o ‘for‘, algo que suele costar muchísimo al principio para los usuarios de lenguajes imperativos, pensar de una manera diferente algo que resolveríamos con un simple y llano ‘for‘.

En la próxima entrada aprenderemos los conceptos mas básicos del lenguaje Haskell y aplicaremos las características vistas de la programación funcional.