martes, 29 de septiembre de 2015

Color Hunt, nuevas paletas de colores cada dia

Color Hunt es un curioso pero muy útil sitio web de reciente creación cuya finalidad es muy simple: proporcionar a los visitantes ideas de paletas de colores diferentes cada día. Esto es especialmente útil cuando necesitamos encontrar la combinación perfecta de colores para un diseño, sitio web, logotipo, etc.

El funcionamiento del sitio es extremadamente simple: desde que accedemos al sitio web podemos ver una gran cantidad de combinaciones de colores sugeridas por otros visitantes así como su nivel de popularidad, medido en 'likes'. Si queremos ver las combinaciones mejor votadas por los usuarios, basta con hacer clic en la sección "Popular" para ver el listado de las paletas más gustadas. Nosotros mismos podemos votar por cada una de las combinaciones haciendo clic en el icono de corazón situado debajo de cada paleta de colores.



Para ver los detalles de cada combinación, basta un clic en cada una de ellas para conocer los códigos RGB de cada uno de los colores que forman la paleta para que podamos usarlos en nuestro editor gráfico favorito.


También podemos colaborar en el sitio creando nuestras propias paletas de colores y poniéndolas a disposición de otros visitantes para que voten por ellas. Al hacer clic en "Create" accedemos a la interfaz para definir cada uno de los colores de nuestra paleta sugerida.



Todo esto puede hacerse de modo totalmente gratuito e incluso sin necesidad de crear una cuenta de usuario. Cabe destacar que el sitio es bastante nuevo (a penas tiene 1 mes de existencia) pero ya cuenta con una gran cantidad de visitantes (más de 100,000 según su blog).

También a través de sus cuentas sociales en Facebook y Twitter los creadores de Color Hunt hacen algunas sugerencias de paletas de colores basadas en escenas naturales como esta belleza:


Color Hunt es en definitiva uno de esos sitios que debería tener un lugar entre nuestros favoritos, pues seguramente nos sacará de más de un apuro cuando se trata de hacer algún diseño.


Enlace: Color Hunt







lunes, 28 de septiembre de 2015

Lógica de programación (31) - Operaciones con vectores



Como ya mencionamos en la lección anterior, un vector es una secuencia ordenada de elementos. A fin de cuentas, los vectores son variables con las que podemos realizar diferentes operaciones como son:
  • Declaración
  • Asignación/Escritura de valores
  • Recorrido
  • Actualización
  • Ordenación
  • Búsqueda


En esta lección daremos un recorrido por las primeras cuatro de estas operaciones y dejaremos la Ordenación y la Búsqueda para lecciones posteriores.

Declaración

Por lo general, un array se declara en la sección de variables de un programa. La forma de declarar un array de elementos de un determinado tipo es muy variada en los distintos lenguajes de programación. Sin embargo, para los efectos de este curso, esta es la sintaxis que estaremos siguiendo:

array[num] de tipo : nombre_array

donde
  • num es la cantidad de elementos que tendrá el array
  • tipo es el tipo de datos de los elementos del array (entero, booleano, cadena, etc)
  • nombre_array es el nombre del arreglo


Asi pues, la expresión:

array[10] de entero : números

representa la declaración de un arreglo de 10 elementos de tipo entero, cuyos índices irán del 0 al 9.

Una vez declarado el arreglo, nos es posible acceder a cada uno de sus elementos usando el nombre del arreglo seguido del índice del elemento al cual deseamos acceder, como lo estudiamos en la lección anterior.

Asignación/Escritura de valores

Una forma de asignar valores a un elemento del vector es mediante la instrucción de asignación simple; por ejemplo, la expresión números[3] <- 5 asigna el valor 5 al elemento de índice 3 dentro del vector números.

Otra forma de hacerlo es usando la instrucción leer() como con cualquier otra variable, por ejemplo:

leer(números[0])
leer(números[1])

En cada una de las dos formas descritas podemos asignar valores a sólo uno de los elementos del vector a la vez. Si quisiéramos asignar valores a todos los elementos del vector, tendríamos que recurrir a estructuras repetitivas como en el siguiente ejemplo, en el cual usamos un ciclo desde para asignar a cada uno de los elementos del vector números un valor dado por el usuario:

algoritmo Ejemplo_Vector
var
    array[10] de entero: números
    entero: i
inicio
    desde i <- 0 hasta 9 hacer
        escribir("Proporciona un valor para el elemento con índice " + i + " del arreglo: ")
        leer(números[i])
    fin_desde
fin


Recorrido (acceso secuencial) del vector

Lo que hicimos en el ejemplo anterior fue un recorrido del vector para escribir datos en él. Se le llama recorrido a la operación de efectuar una operación general sobre todos los elementos del vector, ya sea escribir datos o leer su contenido. Estas operaciones se realizan utilizando estructuras repetitivas, cuyas variables de control se usan como índices del vector. El incremento del valor de la variable de control permite que podamos acceder secuencialmente a cada uno de los elementos del vector.

Complementaremos el ejemplo anterior para incluir ahora un recorrido de lectura que se efectuará inmediatamente después de que el usuario haya terminado de introducir valores en el vector.

algoritmo Ejemplo_Vector
var
    array[10] de entero: números
    entero: i
inicio

    //Asignar valores a cada elemento del vector
    desde i <- 0 hasta 9 hacer
        escribir("Proporciona un valor para el elemento con índice " + i + " del arreglo: ")
        leer(números[i])
    fin_desde

    //Recorrer el vector para mostrar los números introducidos
   desde i<-0 hasta 9 hacer
        escribir(números[i])
    fin_desde

fin


En este otro ejemplo solicitamos al usuario un conjunto de 15 calificaciones que almacenamos en un vector. Luego recorremos ese vector para calcular la suma de todas las calificaciones y finalmente calculamos y mostramos el promedio de las mismas:

algoritmo Promedio
var
    array[15] de real: calif
    entero: i
    real: suma, promedio
inicio
    //Asignar calificaciones al vector
    desde i <- 0 hasta 14 hacer
        escribir("Escribe una calificación")
        leer(calif[i])
    fin_desde

    //Recorrer el vector para calcular la suma de las calificaciones
    suma <- 0
    desde i <- 0 hasta 14 hacer
        suma <- suma + calif[i]
    fin_desde

    //Calcular y mostrar el promedio
    promedio <- suma / 15
    escribir("El promedio de las calificaciones proporcionadas es " + promedio)
fin


Actualización

La actualización de un vector puede constar a su vez de tres operaciones elementales que son: añadir, insertar o borrar elementos.

Añadir datos consiste en agregar un nuevo elemento al final del vector. La única condición necesaria para llevar a cabo esta operación es que exista espacio suficiente en el vector para recibir al nuevo elemento, es decir, que el vector no esté lleno. Si esta condición se cumple, basta con referirnos a la posición en la que deseamos insertar el nuevo elemento para agregarlo. Ahora bien, si esta posición no se conoce y se desea agregar un elemento nuevo al final del vector verificando de antemano si existe lugar para ello, puede realizarse con un algoritmo como el del siguiente ejemplo:

algoritmo Añadir
var
   array[5] de cadena: colores
   entero: i
inicio
   //Asignar algunos valores al arreglo 'colores'
   colores[0] <- "verde"
   colores[1] <- "rojo"
   colores[2] <- "azul"
   
   //Insertar un nuevo color al final
   desde i<-0 hasta 4 hacer
      si (colores[i] <- nulo) entonces
         colores[i] <- "amarillo"
         interrumpir
      fin_si
   fin_desde
fin

En el ejemplo anterior recorremos el arreglo colores hasta encontrar una casilla cuyo valor sea nulo y en ella insertamos un nuevo color, terminando el recorrido en el proceso. Una vez que termina el algoritmo, nuestro arreglo contendrá los siguientes elementos:

colores[0] = verde
colores[1] = rojo
colores[2] = azul
colores[3] = amarillo
colores[4] = *nulo*

Si bien esta no es la única forma de insertar un nuevo elemento en un arreglo, es una solución sencilla y rápida para lograrlo.

A diferencia de la operación de Añadir, cuando ejecutamos una operación  Insertar lo que buscamos es colocar un nuevo elemento dentro de un arreglo en una posición específica y no necesariamente al final del mismo. En este caso aplica la misma condición que con la operación Añadir: debe existir espacio suficiente en el arreglo para insertar un nuevo elemento. Con unos pequeños ajustes, podemos emplear el algoritmo del ejemplo anterior para demostrar la operación de inserción:

algoritmo Añadir
var
   array[5] de cadena: colores
   entero: i
inicio
   //Asignar algunos valores al arreglo 'colores'
   colores[0] <- "verde"
   colores[1] <- "rojo"
   colores[3] <- "azul"
   
   //Insertar un nuevo color al final
   desde i<-0 hasta 4 hacer
      si (colores[i] <- nulo) entonces
         colores[i] <- "amarillo"
         interrumpir
      fin_si
   fin_desde
fin

Este algoritmo inserta algunos valores en las posiciones 0, 1 y 3 del arreglo y luego lo recorre para insertar un nuevo elemento en la primera posición vacía que se encuentre (en este caso, será la posición 2), quedando finalmente nuestro arreglo con los siguientes elementos:

colores[0] = verde
colores[1] = rojo
colores[2] = amarillo
colores[3] = azul
colores[4] = *nulo*

Finalmente, la operación de Borrar consiste en eliminar de un arreglo un elemento ya sea indicando su posición dentro del mismo o realizando primero una búsqueda y eliminando el elemento una vez que se ha localizado dentro del arreglo. Existen varias formas de realizar el borrado de un elemento de un arreglo, pero dejaremos los ejemplos para cuando aprendamos a realizar búsquedas dentro de un vector.


ACTIVIDADES DE APRENDIZAJE


  1. Escribe un algoritmo que lea los valores de 100 temperaturas y a partir de ellas: (a) Calcule y muestre el promedio de las temperaturas y (b) muestre todas las temperaturas que se encuentran por encima del promedio.
  2. Escribe un algoritmo que te permita calcular la desviación estándar del conjunto de temperaturas del problema anterior, sabiendo que la desviación se calcula con la fórmula siguiente:


     


Enlace: Índice del curso




lunes, 21 de septiembre de 2015

Mi primera semana con Microsoft Windows Phone



Desde que empecé a usar smartphones y tablets he sido usuario de Android. En general me parece que es un muy buen sistema operativo por su flexibilidad, su facilidad de uso, su gran variedad de aplicaciones gratuitas y la posibilidad de personalizarlo hasta las náuseas. Es cierto que tiene sus contras, pero en general me parece una muy buena plataforma. Sin embargo, si algo he notado en todos los terminales Android que he tenido, es que luego de un tiempo de uso y sin importar cuántas veces limpie los archivos basura, el sistema se vuelve lento e inestable y es necesario restaurar el equipo al estado de fábrica para recuperar su funcionalidad al 100%. Todos mis equipos han sido de gama media, asi que supongo que tampoco se le puede exigir mucho al hardware. Sin embargo, aún para la funcionalidad más esencial, la lentitud ha sido el problema. 

Por ello, luego de batallar terriblemente con mi último teléfono Android decidí voltear a ver otras opciones. Aunque bueno, en realidad no tuve que ver mucho, pues las únicas opciones viables para mí eran iOS y Windows Phone. Y aunque cuando lo usé por primera vez no me gustó absolutamente nada, elegí el segundo y debo decir que no me arrepiento del cambio ni extraño la plataforma Android*. También es cierto que llevo a penas una semana usando la plataforma y aún sigo descubriendo pequeños detalles aquí y allá, pero todo lo que he descubierto ha sido una grata sorpresa que me ha servido para darme cuenta de que Windows Phone es un sistema operativo bastante subestimado.

He decidido escribir este post para resumir algunas de las cosas que más me han gustado de Windows Phone (WP), por si alguien allá afuera está considerando hacer el cambio a este fenomenal sistema operativo móvil. Cabe mencionar que actualmente estoy usando Windows Phone 8.1 en un equipo Microsoft Lumia 535.

1. Rapidez y fluidez

Como dije, uno de los problemas más desesperantes de mis equipos Android es la lentitud que adquieren luego de un tiempo de uso. Con WP no he tenido ese problema y vaya que ya lo atasqué de aplicaciones y juegos. No importa cuántas aplicaciones haya abierto o cuánto tiempo haya pasado jugando, mi teléfono no se alenta ni se vuelve tedioso de usar. Una vez que cierro una aplicación, mi teléfono sigue tan rápido y fluido como siempre.


2. Variedad de aplicaciones.

Es muy cierto que la cantidad de aplicaciones disponibles en la Windows Store es bastante menor si la comparamos con las tiendas de Google y Apple, sin embargo la tienda cuenta con las aplicaciones necesarias para mi día a día: Facebook, Twitter, Whatsapp, Spotify o Instagram, por ejemplo, tienen presencia en Windows Phone. Y si no existe una aplicación oficial para algún servicio (como ocurre con los de Google), siempre habrá una aplicación de terceros para sacarnos del apuro. Incluso encontré un reproductor musical fabuloso llamado SonicXBeat Pro que por 15 pesitos me da toda la funcionalidad para reproducir mi música que necesito además de ser muy bonito. Ese es precisamente otro punto a favor que he notado de las apps para WP: su diseño es bastante elegante y agradable, además de intuitivo y fácil de usar. Windows ha estado apostando por la simpleza en el diseño y eso ayuda bastante. Además, existe bastante consistencia en el diseño en todas las aplicaciones, lo cual se agradece mucho.

La variedad de aplicaciones para Windows Phone es amplia y cubre las necesidades básicas (y algunas más)...

3. Integración con Windows.

Como casi la mayoría de los usuarios de PC, ya sea por gusto, porque se tiene que o por default, uso Windows a diario. Al tratarse de esencialmente el mismo sistema operativo, Windows Phone se integra de manera limpia con la PC de modo que la transferencia de configuraciones y archivos entre ambas plataformas es simple y rápida, sin depender de aplicaciones de terceros como en los casos de Android e iOS.

4. Soporte de Microsoft.

Como dije, la gran mayoría de los usuarios de PC estamos acostumbrados a usar Windows y el hecho de que podamos usar las mismas aplicaciones en la PC y en el dispositivo móvil es un gran atractivo para evitar dar el salto entre plataformas. Los teléfonos con WP integran de manera nativa servicios como Outlook para email, OneDrive para almacenamiento en línea, Office (Word, Excel y Powerpoint) para ver y editar documentos, Skype para videollamadas e incluso OneNote para tomar notas y almacenarlas en la nube. Si iniciamos sesión con nuestra cuenta de microsoft (como hotmail o live, por ejemplo) trendremos disponibles nuestros archivos donde quiera que nos encontremos.

5. Buen hardware en los equipos.

Uno de los movimientos más audaces que ha hecho Microsoft en los últimos años es la compra de Nokia para integrarse al mercado de la telefonía. Sea que el plan se haya ejecutado bien o no, los equipos Nokia (ahora bajo la marca Microsoft) siempre han ofrecido hardware de alta calidad. En el caso del Lumia 535 hablamos de un equipo que además de contar con un diseño minimalista y elegante, posee hardware bastante decente para su precio: Procesador de cuatro núcleos de 1.2 GHz, 1GB de memoria RAM, 8GB de almacenamiento interno y capacidad de usar tarjeta adicional de memoria MicroSD de hasta 128 GB, pantalla de 5 pulgadas IPS LCD con Gorilla Glass, cámara principal de 5 MP con flash led, cámara frontal de 5MP y batería de 5mAh.

6.Almacenamiento expandible.



Si bien el almacenamiento interno de 8GB puede que no parezca gran cosa, la posibilidad de expandir el almacenamiento del equipo hasta en 128GB es una característica bastante atractiva. Al igual que los equipos Android, esta posibilidad resulta bastante útil para quien acostumbra cargar con una buena cantidad de archivos de imagen, audio o video en sus equipos. Por si fuera poco, la posibilidad de mover prácticamente todas las aplicaciones del teléfono a la tarjeta SD hace que el acceso al sistema operativo sea más rápido y fluido.

Conclusión

Este post no pretende poner a Windows Phone en el pedestal del mejor sistema operativo que existe, pues aún le falta mucho camino por recorrer para llegar al nivel de los dos grandes (iOS y Android). Creo que esto se debe más al hecho de que Microsoft entró tarde a la carrera por conquistar el mercado móvil que a la falta de virtudes de su sistema operativo. La intención es sólo mostrar que este sistema operativo, desde mi punto de vista, tiene bastantes beneficios que lo convierten en una opción bastante viable para quien busca comodidad y rapidez al usar su teléfono móvil.



* Ya en otra ocasión escribiré un rant sobre mi aversión a usar iOS

lunes, 14 de septiembre de 2015

Google celebra los 30 años de Super Mario Bros.



Hace 30 años Nintendo liberó el videojuego que se convertiría en la insignia de la industria para siempre: Super Mario Bros., que también nos presentó a un personaje que hasta el día de hoy mantiene su estatus de ícono de la cultura popular.

Por ello, Google ha decidido incluir un pequeño 'easter egg' en sus resultados de búsqueda el día de hoy. Si nos dirigimos al sitio de Google y buscamos 'Super Mario Bros', nos aparecerá en la tarjeta de información una pequeña caja con un signo de interrogación, que es clásica del videojuego, en la cual podemos hacer clic tantas veces queramos para obtener monedas, igual que podemos hacerlo en el juego.



Este pequeño homenaje funciona tanto en la web como en móvil, así que vale la pena echarle un vistazo a esta original forma de celebrar al personaje más entrañable de los videojuegos.




viernes, 11 de septiembre de 2015

Slack, comunicación efectiva para equipos de trabajo



Uno de los requisitos fundamentales del trabajo en equipo es la buena comunicación. Si esta falla, seguramente el resultado final de nuestro trabajo se verá mermado o incluso fallará catastróficamente. Por ello, cualquier herramienta que nos ayude a mejorar nuestra comunicación es siempre bienvenida y Slack es una de dichas herramientas.

El modo tradicional de trabajo en equipo en una empresa implica, generalmente, largas y aburridas juntas (que generalmente resultan poco productivas) y interminables cadenas de email que terminan por confundir más que por aclarar situaciones del día a día. Ahi es donde Slack entra en juego.



Slack es, esencialmente, un chat para equipos de trabajo. Pero la cosa no termina ahi, pues Slack incorpora lo mejor de muchos mundos en una útil, sencilla y elegante herramienta: canales de chat, conversaciones privadas, la posibilidad de adjuntar archivos, el uso de emoticonos, la búsqueda de documentos o mensajes, las menciones a miembros del chat, etc. Además de todo, podemos conectar Slack con diferentes herramientas como Dropbox, Google Drive, Hangouts, GoToMeeting, Github, Trello y un largo etcétera, lo cual le agrega una enorme versatilidad y utilidad.



Slack es también una gran herramienta para coordinar equipos de trabajo remotos pues al ser una aplicación web podemos accederla desde cualquier dispositivo con conexión a internet; además, existen aplicaciones de Slack para Android, iOS y recientemente se ha lanzado la app para Windows Phone, de modo que podemos mantenernos comunicados con nuestros equipos de trabajo donde quiera que estemos.



El uso de Slack es gratuito, aunque tiene algunos planes de paga que ofrecen funcionalidades adicionales para empresas más grandes. El plan gratuito es excelente para equipos de trabajo pequeños. Vale la pena echarle un ojo.


Enlace: Slack




martes, 1 de septiembre de 2015

Google cambia su logo



Después de 16 años, Google ha decidido cambiar su logo. Si bien en años pasados había presentado algunos cambios sencillos, esta vez han optado por un ajuste de imagen más radical. En su blog oficial, hoy escriben:

Hoy estamos presentando un nuevo lenguaje visual que refleja esta realidad y les muestra cuando la magia Google está trabajando para ustedes, incluso en las pantallas más pequeñas. Como verán, hemos tomado el logotipo y la marca Google, que originalmente fue creada para una página del navegador en el escritorio, y las actualizamos para un mundo de uso sin fronteras a lo largo de un sinfín de dispositivos y diferentes tipos de entrada (como el tacto, teclado y voz).



Otros cambios en la imagen de Google incluyen: el uso de un micrófono colorido para las búsquedas por voz, cuatro puntos de colores para procesos en espera y una G colorida como nuevo favicon del sitio (reemplazando a la "g" azul que tenían anteriormente).



Este cambio le viene muy bien a Google, pues refleja mejor la frescura de la compañía y su siempre presente actitud de renovarse completamente.



Sin embargo, antes de decidirse por el nuevo logo, los diseñadores de Google consideraron otras opciones bastante más radicales:



Definitivamente me gusta más la opción con la que finalmente decidideron quedarse.

Si guieren enterarse de todos los detalles "técnicos" de este rediseño de Google (como los códigos de colores usados, la fuente, las consideraciones geométricas, etc), pásense por este interesante artículo.



Fuente: Blog de Google

Enlace: Evolving the Google identity



Copyright © IsraelCapetillo.com - Un blog de tecnología, noticias geek y más Compartido por Gooyaabi Templates | Powered By Blogger

Design by Anders Noren | Blogger Theme by NewBloggerThemes.com