miércoles, 8 de abril de 2015

GoConqr, excelente plataforma para maestros y alumnos


GoConqr es una plataforma para ayudar a profesores y estudiantes a mantener control sobre las asignaturas que imparten y estudian respectivamente. 

Su servicio es gratuito, nos permite gestionar de 1 a 3 asignaturas distintas y cuenta entre sus funcionalidades:
  • Una aplicación para iOS y Android para crear y visualizar nuestros contenidos.
  • Creación de mapas mentales.
  • Organizar nuestra información rápida en fichas con texto, imágenes, enlaces, etc.
  • Creación de tests de distintas clases.
  • Escritura de apuntes integrando texto, imágenes, mapas mentales, fichas de información, videos, enlaces y otros recursos.

Una herramienta muy útil para gestionar nuestro aprendizaje, independientemente de si somos estudiantes escolares o autodidactas.



Enlace: GoConqr


Pexels Videos, videos gratis para tus proyectos

videos.pexels.com
Hace unas semanas les compartía un enlace a PNGimg.com. un sitio que nos permite descargar cientos de imágenes sin fondo libres de derechos y gratuitas para usar libremente.

Ahora toca el turno a Pexels Videos, un sitio en el que podemos encontrar una amplia colección de videos libres de derechos para usar en nuestros proyectos. Ya sea para fondos de aplicaciones, banners o videos promocionales, los videos de Pexels Videos pueden resultarnos bastante útiles.

Los videos en el sitio se encuentran categorizados para encontrarlos más fácilmente y podemos descargarlos sin necesidad de registrarnos en el sitio. Lo único malo es que, de momento, el sitio no cuenta con un buscador, por lo que nos tocará echarnos un clavado a las distintas categorías para encontrar lo que buscamos.

Échenle un ojo a Pexels Videos y guárdenlo en sus favoritos. Uno nunca sabe cuándo le va a resultar útil.


Enlace: Pexels Videos



martes, 7 de abril de 2015

Cinco herramientas online para crear 'mockups' gratis

Una de las primeras tareas que tenemos que emprender al momento de desarrollar una aplicación es pensar en cómo se va a ver su interfaz una vez que la hayamos implementado. Esto implica imaginar dónde estarán los menús de opciones o de navegación, qué apariencia tendrán las ventanas, qué botones vamos a incluir y dónde van a estar ubicados, etc. Esta tarea es importante porque nos sirve como guía al momento de diseñar nuestra aplicación real, ya sea en un programa para edición gráfica o escribiendo el código que le dará forma.

Ejemplo de 'mockup' para una página web

Para poder definir la interfaz de una aplicación podemos usar lo que en la jerga informática se conoce como un 'mockup'. Un 'mockup' (bosquejo) es básicamente el 'esqueleto' de una aplicación o una página web. Es el modelo a seguir cuando estemos desarrollando nuestra aplicación real. La forma más sencilla de hacerlos es tomando lápiz y papel y dibujando lo que será la interfaz que hemos imaginado. Pero si son de los que  prefieren usar herramientas en la computadora para diseñar sus mockups más rápido y fácil, deben saber que existen varios servicios en la web que nos permiten diseñar prototipos de manera sencilla y gratuita. 

Estos son algunos de los más conocidos:

Frame Box

Muy sencilla, pero suficiente para crear la estructura general de un sitio o aplicación sin mayores complicaciones.

Wireframe.cc

Similar a la anterior, pero esta incluye un look más moderno y minimalista, además de soportar mockups para tablets y smpartphones, de modo que podamos ver cómo luciría nuestra aplicación en cualquiera de estos dispositivos.


iPhone Mockup


Como su nombre lo indica, nos permite diseñar interfaces destinadas a dispositivos móviles, particularmente los de Apple, aunque la interfaz que diseñemos puede pensarse para cualquier otra clase de dispositivo móvil. Posee además otra característica curiosa: nos permite elegir cómo queremos diseñar nuestro bosquejo, en modo lápiz (como si lo hiciéramos a mano) o en modo ilustración.

MockFlow


Este es famoso porque posee una aplicación para PC que puede descargarse e instalarse para usarla aunque no tengamos conexión a internet. Permite crear mockups de forma colaborativa. Es de paga pero en su versión gratuita soporta un sólo proyecto, lo cual puede ser suficiente para cuando nos enfocamos a desarrollar una sola aplicación a la vez.

moqups


Este es el que yo prefiero. Es similar a los anteriores, pues nos permite crear mockups muy variados y también es gratuito, aunque en su versión de paga nos ofrece muchas más funcionalidades interesantes.

¿Conocen alguna otra herramienta para crear mockups gratis? Déjenmelo saber en los comentarios.

TechMeAbroad, para encontrar ofertas de trabajo en TI en el extranjero



¿Les gustaría emprender la aventura de trabajar como profesional de TI en el extranjero pero no saben ni por dónde empezar a buscar ofertas de trabajo? Ya no batallen, con TechMeAbroad es ahora más fácil encontrar ofertas laborales en el área de TI en distintas partes del mundo.

Buscar opciones laborales puede ser engorroso usando sitios como OCC o LinkedIn, por lo que TechMeAbroad busca facilitar mucho las cosas en ese sentido. En la plataforma podemos ver concentradas las ofertas de trabajo de distintas empresas de todo el mundo, las cuales están dispuestas a pagar por el talento que pretenden atraer de donde sea que esté ubicado.

Las empresas que publican sus ofertas también están dispuestas a patrocinar todos los trámites de visa que sean necesarios e incluso dan apoyos para el traslado y la manutención inicial en el país al que se mude el candidato.

Es interesante notar lo que resalta Julien Barbie, creador de la plataforma: él dice que las compañías estadounidenses tratar de contratar a los propios estadounidenses, aunque la realidad es que existe más de medio millón de vacantes en los Estados Unidos que no se están cubriendo por falta de talento, de modo que hay que poner las miras al talento de otros países para cubrir dichas vacantes. Obviamente, la plataforma no ofrece sólo ofertas de compañías tecnológicas de los Estados Unidos, ya que también hay ofertas de compañías de otros países.

Sin duda vale la pena echarle un ojo a las distintas opciones de chamba en otras latitudes, ¿no creen?



Fuente: Blog.

Lógica de Programación (12): Alternativa doble si-entonces-si_no

En la lección anterior conocimos la primera de las estructuras de selección: la alternativa simple si-entonces. Sin embargo, a pesar de su utilidad, esa estructura resulta bastante limitada.

Si pensamos con detenimiento en cada uno de los ejemplos que hemos desarrollado hasta ahora usando decisiones, notaremos una molesta tendencia: si las condiciones no se cumplen, nuestro programa no hace absolutamente nada y muy seguramente eso causará una gran confusión en los usuarios. Lo ideal sería que, de no cumplirse las condiciones, nuestro programa ejecutara una acción distinta; tal vez algo tan simple como mostrar un mensaje al usuario haciéndole notar que las condiciones no se cumplieron. Es para ello que usamos la alternativa doble.

La alternativa doble es mucho más versátil
La alternativa doble, como su nombre bien lo indica, nos permite dividir el flujo de nuestro programa en dos caminos distintos. El camino que se tome dependerá de una condición o conjunto de condiciones. En cada uno de los caminos ejecutaremos una o más acciones. Al escribir un algoritmo, la representamos asi:

si (condicion) entonces
    acciones1
si_no
    acciones2
fin_si

En esta estructura, el conjunto de acciones1 se ejecutará si se cumple la condición, mientras que, si no se cumple, se ejecutará el conjunto de acciones2. Para ejemplificar el uso de esta estructura, pensemos en el ejercicio 3 de la lección anterior. En ese problema, debíamos calcular los resultados de una ecuación cuadrática sólo si se cumplía la condición de que el determinante (b**2 - 4*a*c) fuera mayor o igual que cero. Ahora, añadiremos un requisito más: si dicha condición no se cumple, avisaremos al usuario que la ecuación que nos proporcionó no tiene soluciones dentro de los números reales*. Algo asi:

algoritmo Ecuacion_segundo_grado
var
   real: a, b, c, x1, x2
inicio
   escribir("Proporciona el coeficiente a")
   leer(a)
   escribir("Proporciona el coeficiente b")
   leer(b)
   escribir("Proporciona el coeficiente c")
   leer(c)
   si (b**2 - 4*a*c >= 0) entonces
      x1 <- (-b + raiz2(cuadrado(b) - 4 * a * c)) / (2 * a)
      x2 <- (-b - raiz2(cuadrado(b) - 4 * a * c)) / (2 * a)
      escribir("Los resultados para la ecuación propuesta son: " x1 + " y " + x2)
   si_no
      escribir("La ecuación proporcionada no tiene solución en el campo de los números reales")
   fin_si
fin

La sección resaltada es la modificación que hemos hecho al programa. Podemos ver que ahora, si el determinante no es mayor o igual que cero, el usuario verá un mensaje indicándole que la ecuación no tiene solución. 

Esta misma lógica podemos aplicarla a los otros ejemplos que hemos realizado. Mira los cambios:

algoritmo Mayor_que_cero   //ejemplo 1 de la lección 11
var
   entero: num
inicio
   escribir("Por favor proporciona un número:")
   leer(num)
   si (num > 0) entonces
      escribir ("Yay! el número es mayor que cero!")
   si_no
      escribir("Ouch! el número no es mayor que cero! :( ")
   fin_si
fin


algoritmo Validar_Numero   //ejemplo 2 de la lección 11
var
   entero: num
inicio
   escribir("Por favor proporciona un número:")
   leer(num)
   si (num mod 2 = 1) or (num < 0) or (num > 100) entonces
      escribir("¡El número proporcionado no es válido!")
   si_no
      escribir("¡Tu número es válido!")
   fin_si
fin

algoritmo Mayor_de_edad   //ejercicio 1 de la lección 11
var
   entero: edad
inicio
   escribir("¿Cuantos años tienes? ")
   leer(edad)
   si (edad > 18) entonces
      escribir ("Ya puedes tramitar tu credencial para votar")
   si_no
      escribir("Todavía no puedes tramitar tu credencial para votar")
   fin_si
fin

algoritmo Sobrepeso   //ejercicio 2 de la lección 11
var
   real: peso, estatura, imc
inicio
   escribir("Proporciona tu peso en kilogramos: ")
   leer(peso)
   escribir("Proporciona tu estatura en metros: ")
   leer(estatura)
   imc <- peso / estatura ** 2
   escribir("Tu IMC es igual a " + imc)
   si (imc >= 25) entonces
      escribir("¡Tienes sobrepeso!")
   si_no
      escribir("¡Felicidades! ¡no tienes sobrepeso!")
   fin_si
fin


Observa que la alternativa doble es mucho más beneficiosa puesto que le da más versatilidad a nuestros programas, además de proporcionar una mejor experiencia de uso a nuestros usuarios.

En la próxima lección conoceremos una estructura aún más versátil: la alternativa múltiple. Pero por ahora veamos qué tanto has aprendido. Intenta resolver los siguientes problemas para practicar la alternativa doble. Recuerda que si tienes preguntas, siempre puedes dejarlas en los comentarios o a través de la sección de contacto de este blog. ¡Hasta la próxima!


ACTIVIDADES DE APRENDIZAJE

1. Escribe un programa que reciba como dato la medida de un ángulo en grados y determine si es el ángulo es recto o no.

2. Se requiere un programa que calcule el monto a pagar por un cliente que hace una compra en una tienda de zapatos. Si la compra del cliente supera los 1000 pesos, se le aplicará un descuento del 5%. En caso contrario, no se aplica ningún descuento. Supón que todos los pares de zapatos cuestan lo mismo.

3. Escribe un programa que determine si un número dado es par o no.

4. Escribe un programa que determine si un número dado tiene parte fraccionaria o no. Tip: puedes usar la función trunc, que conocimos en la lección 8.

5. Diseña un algoritmo que permita calcular el área de un triángulo en base a las medidas de sus tres lados. La fórmula para dicho cálculo es la siguiente:



donde a, b y c son las medidas de los tres lados y p equivale a la mitad de la suma de los tres lados. Considera que para que esta fórmula pueda utilizarse, el valor de p debe ser mayor que cada uno de los lados.


PROBLEMA RETO

Un año normal tiene 365 días. Los años bisiestos tienen 366 días. Escribe un programa que determine si un determinado año es bisiesto o no. Las condiciones para saber si un año es bisiesto son:
  • Los años bisiestos son los divisibles entre 4 (como 2004, 2008, etc.)
  • excepto si es divisible entre 100, entonces no es bisiesto (como 2100, 2200, etc.)
  • excepto si es divisible entre 400, entonces sí (como 2000, 2400)

Dicho de otro modo, son bisiestos todos los años divisibles por 4, excluyendo los que sean divisibles por 100, pero no los que sean divisibles por 400.





*Técnicamente, las ecuaciones de segundo grado siempre tienen solución, aunque no sean dentro del conjunto de los números reales. Cuando esto sucede, se dice que la ecuación tiene soluciones imaginarias. Sí, los números imaginarios "existen". Pero no ahondaremos en esas complejidades ahora.


Lógica de Programación (11 bis) - Actividades resueltas


Este artículo cortito es para compartir con ustedes las propuestas de solución a las actividades planteadas en la lección 11, que habla sobre la estructura de selección simple. Como siempre lo digo, estas soluciones no son únicas y están sujetas a mejora. Espero que les sean de utilidad.


1. Escribe un programa que solicite al usuario su edad y, en caso de ser mayor de edad, le muestre un mensaje que le avise que ya puede tramitar su credencial para votar con fotografía.

algoritmo Mayor_de_edad
var
   entero: edad
inicio
   escribir("¿Cuantos años tienes? ")
   leer(edad)
   si (edad > 18) entonces
      escribir ("Ya puedes tramitar tu credencial para votar")
   fin_si
fin


2. Escribe un algoritmo para determinar si una persona tiene sobrepeso, de acuerdo a su índice de masa corporal (tal como lo calculaste en el primer problema de la lección 9), sabiendo que el sobrepeso existe si el IMC es mayor o igual que 25.

algoritmo Sobrepeso
var
   real: peso, estatura, imc
inicio
   escribir("Proporciona tu peso en kilogramos: ")
   leer(peso)
   escribir("Proporciona tu estatura en metros: ")
   leer(estatura)
   imc <- peso / estatura ** 2
   escribir("Tu IMC es igual a " + imc)
   si (imc >= 25) entonces
      escribir("¡Tienes sobrepeso!")
   fin_si
fin


3. Crea un programa para resolver una ecuación de segundo grado. Recuerda que las ecuaciones de segundo grado sólo tienen solución si el determinante (es decir, la expresión b**2 - 4*a*c) es mayor o igual que cero.

algoritmo Ecuacion_segundo_grado
var
   real: a, b, c, x1, x2
inicio
   escribir("Proporciona el coeficiente a")
   leer(a)
   escribir("Proporciona el coeficiente b")
   leer(b)
   escribir("Proporciona el coeficiente c")
   leer(c)
   si (b**2 - 4*a*c >= 0) entonces
      x1 <- (-b + raiz2(cuadrado(b) - 4 * a * c)) / (2 * a)
      x2 <- (-b - raiz2(cuadrado(b) - 4 * a * c)) / (2 * a)
      escribir("Los resultados para la ecuación propuesta son: " x1 + " y " + x2)
   fin_si
fin




sábado, 4 de abril de 2015

Lógica de Programación (11) - La alternativa simple si-entonces

Todo en esta vida son decisiones
Como ya aprendiste en la lección anterior, la alternativa simple nos sirve para desviar el flujo de nuestro programa hacia una instrucción (o conjunto de instrucciones) dependiendo del cumplimiento de alguna condición. 

En la escritura de algoritmos, la alternativa simple sigue esta sintaxis:

si (condición(es)) entonces
   instruccion(es)
fin_si

La condición o condiciones que necesitamos que se cumplan para que las instrucciones se ejecuten podemos escribirlas usando las expresiones lógicas que ya conocimos en lecciones anteriores.

Pero para entender mejor esta estructura, vayamos a un ejemplo. Supongamos que necesitamos crear un programa que nos permita mostrar un mensaje en pantalla sólo si un número proporcionado por el usuario es mayor que cero. El pseudocódigo de dicho programa se vería algo asi:

algoritmo Mayor_que_cero
var
   entero: num
inicio
   escribir("Por favor proporciona un número:")
   leer(num)
   si (num > 0) entonces
      escribir ("Yay! el número es mayor que cero!")
   fin_si
fin

Como puede verse en el ejemplo, una vez que leemos un número podemos establecer una condición para verificar si es mayor que cero, en cuyo caso se ejecutará la instrucción escribir con el mensaje que se mostrará al usuario. Es importante resaltar que si la condición no se cumple el mensaje no se mostrará al usuario. Sencillo, ¿verdad?

Veamos otro ejemplo. Ahora necesitamos un programa que reciba un número y valide si dicho número es par y está entre 0 y 100. Si dichas condiciones no se cumplen, entonces el programa mostrará un mensaje al usuario indicándole que el número proporcionado no cumple los requisitos establecidos. El algoritmo sería escrito de este modo:

algoritmo Validar_Numero
var
   entero: num
inicio
   escribir("Por favor proporciona un número:")
   leer(num)
   si (num mod 2 = 1) or (num < 0) or (num > 100) entonces
      escribir("¡El número proporcionado no es válido!")
   fin_si
fin


En este caso, ha sido necesario crear una condición compuesta más compleja para poder evaluar el número dado por el usuario. La condición (num mod 2 = 1) verifica que el número sea impar (es decir, verifica que al dividir num entre 2 el residuo sea uno); esto es debido a que el número dado será válido sólo si es par. En seguida, se verifica que el número esté entre el rango de 0 y 100. Si el numero dado es menor que cero o mayor a 100, fallará en cumplir las condiciones dadas, por lo que no será válido. Usamos el operador or dado que sólo hace falta que una de las condiciones dadas sea verdadera para que el número no sea válido.

Otra manera de escribir la condición compuesta de este ejemplo es esta:

si not( (num mod 2 = 0) and (num >= 0) and (num <= 100) ) entonces

En esta variante, primero verificamos que el numero sea par, que sea mayor o igual que cero y que a la vez sea menor o igual que 100. Si se cumplen estas tres condiciones (si son verdaderas), entonces nuestro número será válido. Pero, dado que el mensaje debe mostrarse sólo si el número NO cumple con las condiciones, usamos el operador not para indicar a nuestro algoritmo que ejecute la instrucción escribir sólo si NO se cumplen esas condiciones.

Cualquiera que sea la forma en que escribamos nuestra condición, el resultado será el mismo.

En cualquiera de los ejemplos mostrados, vemos que las instrucciones sólo se ejecutan si las condiciones se cumplen. En caso contrario, no se hace nada y el programa simplemente termina. Pero ¿qué pasaría si necesito que se ejecute alguna acción distinta si la condición no se cumple? bueno, para eso sirve la estructura de selección doble, de la cual aprenderemos en la próxima lección. Por ahora, ¡es hora de practicar!

ACTIVIDADES DE APRENDIZAJE

1. Escribe un programa que solicite al usuario su edad y, en caso de ser mayor de edad, le muestre un mensaje que le avise que ya puede tramitar su credencial para votar con fotografía.

2. Escribe un algoritmo para determinar si una persona tiene sobrepeso, de acuerdo a su índice de masa corporal (tal como lo calculaste en el primer problema de la lección 9), sabiendo que el sobrepeso existe si el IMC es mayor o igual que 25.

3. Crea un programa para resolver una ecuación de segundo grado. Recuerda que las ecuaciones de segundo grado sólo tienen solución si el determinante (d= b**2 - 4*a*c) es mayor o igual que cero.




Copyright © Mi rincón del código Compartido por Gooyaabi Templates | Powered By Blogger

Design by Anders Noren | Blogger Theme by NewBloggerThemes.com