Nemonico precedencia operadores

Originalmente el autor llama a este truco la rima de los operadores de C, pero honestamente no se en que idioma sea la rima.

Aunque el truco sea específicamente para C, vale la pena recordar este orden porque la gran mayoría de los lenguajes de programación se basan en C. De cualquier forma en la gráfica es posible distinguir claramente las características principales de los operadores:

M-Multiplicativos

A-Aditivos

S-Shift(Corrimiento)

G-Greater than(mayor que)

E-equals(Igualdad)

A-And

R-No lo se, pero ARrow tal ves?

O-OR

Ca-CAnd

Co-COr

 

Fuente:

http://www.ganssle.com/tem/tem326.html

 

Nemonico precedencia operadores

Jugando con la recursion 1

Tiempo de lectura: 20 minutos

Lenguaje de programación usado: javascript

Que es recursión?

Algo es recursivo cuando puede definirse en términos de si mismo. Por ejemplo: Imagínese un conejo que se saca a si mismo de un sombrero. Puede parecer ilógico y contra intuitivo que un conejo sea capaz de empujarse a si mismo pero esto es debido a las leyes de la física, que dicen que un cuerpo no puede imprimir una fuerza neto sobre si mismo, no de la lógica. Como se vera mas adelante, las matemáticas y la computación son terreno fértil para la recursion, y con un poco de práctica la confusión inicial que causa desaparecerá.

El ejemplo clásico en matemáticas es el factorial , cuya definición es la siguiente:

Continue reading “Jugando con la recursion 1”

Jugando con la recursion 1

Como ser un programador productivo

Programar es una actividad técnica y creativa a la vez. Lograr una buena productividad no se trata simplemente del talento o la inteligencia por si solos. Hay algunos factores clave que son de gran ayuda:

Concentración.

Esta es la parte mas importante de este articulo ya que creo que no se le ha dado suficiente importancia en la red. Sobre los otros dos temas se sabe muy poco o ya existe suficiente literatura.

En programación- esto en realidad aplica a cualquier actividad creativa- algo indispensable es la capacidad de concentrarse en la actividad que se realiza. Incluso se ha acuñado el termino “flow” o “la zona” para describir ese estado mental en el que una persona realizando una operación esta completamente sumergido en un sentimiento de concentración, compromiso total y goce en el proceso de dicha actividad, según Wikipedia.

Continue reading “Como ser un programador productivo”

Como ser un programador productivo

Responsividad en los sitios web

Este artículo está inspirado en A Dao of Web Design de Joh Alsopp,un gran artículo escrito hace mas de diez años que aún sigue vigente y a su vez está inspirado en el Tao Te King  que ilustra elegantemente la importancia del diseño flexible de sitios web. Debo advertir que mi versión os mucho mas árida, aunque igual puede serles de utilidad.

EL PROBLEMA

Antes de  Internet, el mundo estaba acostumbrado a ver texto  imágenes solo en libros y anuncios, en formatos firmemente establecidos para cada industria. Así que el trabajo del diseñador  quedaba limitado por el tipo de medio al que iba dirigido el mensaje.

Con el surgimiento de la madre de las redes, http, html, el navegador y demás tecnologías que hoy en día son ubicuas los diseñadores se encontraron con una gran diversidad de dispositivos con diferentes tamaños y resoluciones de pantallas. Sin embargo, a veces la tradición puede mas que el buen juicio y la mayoría de esos profesionales no pudieron ver en el hipertexto mas que  una extensión del texto tradicional y tomaron prestadas muchas cosas del viejo estilo .

Irónicamente, lo que fue una gran liberación (el mensaje ya no estaba encadenado a los bordes de una hoja) se ha convertido en la pesadilla de muchos “artistas” de la vieja escuela, que necesitan tener el control de su obra. Esta no es la mejor forma de ver el diseño web.

En lugar de tratar de limitar al usuario se debe abrazar la flexibilidad que permiten los navegadores y aprovechar la oportunidad de mejorar la experiencia de los usuarios.  ¿Hay usuarios con limitaciones de visión? Se puede dar  la opción de usar una fuente mas legible ¿ Algunos de los usuarios accederán al sitio a través de redes de datos? Optimiza las imágenes y, si es necesario elimínalas de la vista de este tipo de usuario.

Al principio puede parecer abrumadora la variedad de equipos y tamaños de pantalladisponibles, lo que puede hacernos desistir de  adoptar esta metodología. Pero hay unas cuantas cosas que  se pueden hacer para simplificar mucho la tarea:

-Lo esencial es tener en mente que en un sitio web se está presentando un contenido, dirigido a un segmento definido de la población. Al separar el contenido de la apariencia y se puede separar lo superficial de lo esencial y mantener un diseño minimalista para todas las plataformas, o se puede partir de la pantalla mas simple o pequeña e ir aumentando características al ir aumentando el tamaño y la capacidad de los dispositivos.

-También debe conocerse al usuario esperado, pensar en sus hábitos y necesidades. Eso también apoyará la tarea de seleccionar el contenido indispensable para nuestro sitio.

-En lugar de tratar de definir un layout para cada pantalla se les puede dividir en categorías y sugerir uno para cada una. Recuerda, el diseño responsivo no se trata de tener el control total ni de limitar al usuario, se trata de mejorar su experiencia.

Algunas herramientas útiles para un diseño responsivo:

Si deseas aprender mas de esta filosofía o poner en práctica esta metodología pero no sabes donde comenzar yo te recomendaría explorar estos temas

-Media queries

-Uso de porcentajes

-Diversas fuentes

-Grid layout

-Unidades relativas en css (porcentaje, em’s, vw, vh)

Responsividad en los sitios web

Código limpio 2: Funciones

Tiempo estimado de lectura: 25 minutos

En esta entrada continuamos la serie de código limpio centrándonos en las funciones.

En la entrada anterior se habló de buenas formas de escoger nombres, todas ellas aplican para las funciones, pero usar nombres correctos no es lo único que importa para crear buenas funciones.

La idea central a la hora de lograr esto es la brevedad, y como en todo lo que sea código, la claridad. Estos son los consejos:

Continue reading “Código limpio 2: Funciones”

Código limpio 2: Funciones

Breve introducción a genéricos en Java

Tiempo estimado de lectura: 10 min.

Los genéricos son una característica de varios lenguajes de programación que permiten especificar tipos generales. Los métodos genéricos permiten especificar, con un solo método, un conjunto de métodos relacionados; por otro lado, las clases genéricas permiten especificar, con una sola declaración de clase o interface, un conjunto de tipos relacionados.

Continue reading “Breve introducción a genéricos en Java”

Breve introducción a genéricos en Java

Patrones de diseño. Introducción

Una de las cosas que los programadores saben hacer es  resolver los problemas no partiendo sólo de principios generales, sino usar soluciones que ya han funcionado antes.

Por eso es normal encontrarse con patrones de clases recurrentes en muchos sistemas orientados a objetos. Un desarrollador familiarizado con dichos patrones puede aplicarlos directamente a sus propios problemas de diseño sin tener que inventar la rueda.

Continue reading “Patrones de diseño. Introducción”

Patrones de diseño. Introducción