Crear tu portfolio de desarrollos con un click

Hace algún tiempo estuve buscando alguna iniciativa o página que nos permitiera mostrar de manera visual los proyectos que se han desarrollado. Después de buscar por distintos sitios descubrí Stockroom que es el sitio sobre el que os vengo a hablar hoy.

¿Por qué es necesario un portfolio?

Básicamente este recurso nos permite mostrar de una manera formal y eminentemente visual, los proyectos que hemos desarrollado. En el caso de Stockroom ellos se encargan de obtener nuestros repositorios de Github y Bitbucket y a extraer información de Stackoverflow para que con un click se cree nuestro portfolio.

Ventajas de usar Stockroom

La principal ventaja de usarlo es que funciona todo de manera automática, no teniendo la necesidad de ir introduciendo a mano información sobre nuestros proyectos. Además presenta una interfaz muy llamativa que es perfecta para enseñar a compañeros o incluirlo en nuestro currículo si nos dedicamos al desarrollo de aplicaciones.

Leer más

JSFIDDLE tu IDE online para desarrollo web

En el artículo de hoy os presentamos una web que os ayudará en gran medida para realizar pruebas y compartir código de proyectos web.

Descubriendo JSFIDDLE

JSFIDDLE es una página web, que actúa como si fuera un IDE (un entorno de desarrollo) con algunas características que te van a permitir probar cosas de manera muy rápida.
Algunas de sus características son:

  • Soporte de bibliotecas con un click: para ayudarnos a realizar las pruebas, tenemos la posibilidad de usar algunas de las bibliotecas más utilizadas de JavaScript con sólo seleccionarlas de la lista:

Las bibliotecas de JavaScript más utilizadas a un click con JSFIDDLE
Soporte para cargar recursos externos: en este caso si por ejemplo necesitamos una biblioteca que no está en el menú, la podemos cargar desde aquí, así como plantillas CSS ya definidas:

Soporte para recursos personalizados en JSFIDDLE
Soporte para formateado de código: con pulsar sobre la opción TidyUp nuestro código será formateado para que sea más fácil de leer.
Análisis del código: con pulsar sobre la opción JSHint nos realizará una validación de nuestro código JavaScript:

Analizando nuestro código JavaScript con JSFIDDLE

Leer más

Programacion paralela en C : Acceso concurrente

Te enseñamos como lidiar con el acceso concurrente en programacion paralela
En la entrada anterior os contaba que había realizado un pequeño truco para que el programa funcionase. Esto es debido al acceso concurrente.

Acceso concurrente

Esto de acceso concurrente a un recurso puede parecer a simple vista algo raro o complejo de entender, así que veámoslo con un ejemplo:
Si por ejemplo tenemos dos teléfonos fijos en casa, que los llamaremos A y B en la mayoría de los casos solo uno de los dos puede utilizar la línea para hablar. Así si A y B se ponen a llamar a la vez seguramente ocurrirá que se entrecruzan las conversaciones y hay interferencias entre las mismas. Por ello si A está llamando B tiene que esperar a que A acabe de usar la línea para luego utilizarla él.

Recursos y usuarios

Normalmente se suele utilizar estas dos palabras como terminología básica en el acceso concurrente:

  • Recursos: son los elementos, dispositivos o datos a los que se quiere acceder.
  • Usuarios: son las personas, programas o cualquier otro sistema que necesita acceder a un recurso.

Leer más

Usando números grandes en C

Usando números grandes en C
Una duda que surgió hace tiempo en el foro pero a la que no me había enfrentado hasta ahora, es el uso de números grandes en C.

La necesidad de usar números grandes

En mi caso estaba trabajando con algoritmos de cifrado de datos, que usan números enteros de varios miles de bits, lo que implica que son números que no “entran” en ningún tipo de dato entero de C. Sin embargo estos números hay que almacenarlos de alguna manera, para ello surgen los números grandes.

¿Qué son los números grandes?

Básicamente es una implementación de un tipo de dato numérico, que permite trabajar con números de cualquier longitud, donde no hay un numero máximo que podamos almacenar. Para ello trabajan a con memoria dinámica y reescriben las operaciones aritméticas y lógicas.

Bibliotecas de números grandes

Como experiencia personal yo he trabajado con dos:

  • OpenSSL que trae un tipo de dato denominado BIGNUM que tiene implementado la mayoría de las operaciones (básicamente las que necesitan ellos para cifrar los datos).
  • GMP que traen una implementación completa de números grandes, siendo la biblioteca de este tipo más potente que he encontrado y una de las más usadas.
    Leer más

Programacion paralela en C : Memoria compartida

Utilizando memoria compartida para la programacion paralela
Si el otro día hablábamos de los inicios en programación paralela, hoy os vengo a hablar del paso de datos cuando realizamos un programa con varios procesos. Como repaso del otro día podemos decir que hay dos tipos de intercambio de datos, memoria compartida ( todos acceden a la misma posición de memoria) y paso de mensajes (se envía los datos a un proceso en concreto).

¿Qué es la memoria compartida?

Cuando nosotros creamos un proceso, se reserva una zona de memoria con acceso exclusivo para nuestro proceso, de tal manera que si otro proceso quiere acceder a esta zona de memoria, generalmente nos dará un error. El error suele aparecer con cierta frecuencia cuando no manejamos bien los punteros en C y es el famoso segmentation fault.
Leer más

Ingeniería social y hackear gmail

Hoy traemos un método de ingeniería social que, dada la facilidad de explotarlo y por lo extendido de este sistema de correo electrónico gratuito, debe ser conocido y bien propagado.

El caso es que cuando tuve noticias del mismo, no me lo podía creer. Era realmente sencillo por la escasísima ingeniería social necesaria para llevarlo a cabo y lo simple de su ejecución, dejando al descubierto para cualquiera el acceso a nuestras cuentas de correo electrónico de Gmail y, por si todo esto fuera poco, facilitándose el acceso de intruso por la propia Google.

Empecemos a exponerlo:

gmail-descargar-correos1

Recuperar y explotar una contraseña ajena en Gmail

Todos sabemos que los sistemas de recuperación de las contraseñas son el gran talón de Aquiles de los sistemas de email generales (Outlook, Yahoo, Gmail, etc…). Estos procesos de recuperación de contraseñas y acceso son un verdadero coladero para intrusos que han dedicado el suficiente tiempo a buscar sus agujeros.

Leer más

Programacion paralela en C : Inicio

Los inicios de la programacion paralela en C para Linux

En esta serie de entradas que hoy empezamos, nos vamos a enfocar en la programación de sucesos paralelos en C. Este tipo de programación implica conocer una serie de conceptos especiales y saber cómo funcionan como los semáforos.

Programación paralela

La decisión de utilizar programación paralela parte de la base de que muchas veces queremos agilizar nuestros cálculos y para ello queremos usar todo el potencial de nuestra CPU. Actualmente seguramente muchos tendremos una CPU con varios núcleos, así que por qué no utilizarlos todos para agilizar los cálculos. Por ejemplo si queremos sumar (por fuerza bruta) el primer millón de números, tardaremos menos si distribuimos la carga entre varios núcleos que si hay que realizarlo todo de manera secuencial.

Conceptos de programación paralela

Básicamente hay dos maneras de realizar la programación paralela, mediante hilos o mediante procesos:

  • Todos los hilos comparten los recursos, es decir si nosotros cambiamos con un hilo el valor de una posición de memoria, ese valor nuevo lo tendrán el resto de hilos.
  • Todos los procesos realizan una copia de los recursos del proceso padre, especialmente de su memoria y sus variables. En este caso un valor que cambiemos en un proceso no tiene repercusión en otro proceso, son entornos totalmente aislados.

Leer más

¿Cómo usar colores en C?

Te enseñamos cómo usar colores en tus programas en C

Una de las cosas que siempre nos gusta cuando diseñamos un programa es darle un aspecto visual, adecuado al mismo. Pero el problema lo tenemos cuando nuestro software no va a tener una interfaz gráfica, sino que va a funcionar solo en modo texto.

En este caso una de las cosas que nos podemos plantear para añadirle algo de mejora visual, es utilizar distintos colores en la salida por pantalla.

¿Cómo usar colores en C?

Muchos os preguntaréis si es posible pintar la pantalla con un conjunto de colores y no utilizar en todo momento el color que marca la terminal del usuario.
Pues sí, es posible y en este artículo os vamos a enseñar cómo hacerlo.

Para ello vamos a utilizar algo que se denomina caracteres no imprimibles que como su propio nombre indica son caracteres no visibles, pero que realizan funciones normalmente de control.
Leer más

Encontrando fotografías para tus plantillas

Últimamente debido a los exámenes ha estado esto un poco parado, pero hoy os traigo un recurso para realizar vuestras plantillas, proyectos, web etc.

Unsplash tu fuente de fotos

Cuando intentamos realizar un proyecto, uno de los problemas que más encontramos es qué fotos vamos a utilizar para ilustrarlo. Este problema es bastante complejo, ya que por un lado, las fotos no son como los colores que con poner un valor hexadecimal ya los tenemos sino que hay que sacarlas, buscarlas o comprarlas.

Además de la búsqueda otro de los problemas con los que nos enfrentamos los que nos dedicamos a realizar proyectos de este tipo son las licencias. Sí las fotos como la música, los vídeos, los documentos etc tienen licencias y en muchos casos, nos encontramos con que esa foto impresionante que íbamos a colocar de fondo de la plantilla no podemos usarla o que hay que citar al autor ( y eso donde lo ponemos en una plantilla o programa).

La solución que encontramos a todo esto es el uso de fotografías que tengan una licencia libre, así que en gran medida ya podemos irnos olvidando de fotos del National Geographic, Flickr, Google Images etc.

Leer más

Hackeando contraseñas con Firefox

Ya lo hemos dicho tantas veces que casi me cuesta trabajo repetirlo en tantos post, pero como de hecho es una constante en materia de hacking y seguridad, volveremos al mantra tantas veces mencionado: La comodidad en materia de software y tecnología, está reñida con la seguridad.

Es decir, y expandiendo un poco más esta norma no escrita: Cuantos mayores grados de comodidad para el usuario se implementan en los productos de software y hardware, más posibilidades hay de que su seguridad y privacidad estén en peligro o sean vulnerables.

Lo que traemos hoy es otro ejemplo práctico de cómo sacarle partido a esta regla.

Usando un navegador para dinamitar las contraseñas que un usuario tenga en otro navegador.

Como sabéis, la lucha de los navegadores por convertirse en nuestro software de cabecera cuando navegamos por Internet, comenzó en los 90. Por aquel entonces, un recién llegado Netscape Navigator que empleaba software libre para su desarrollo y expansión, se las vio durante años con Internet Explorer de Microsoft, que terminó imponiéndose (todavía no sé muy bien por qué, pero no me hagáis caso porque yo no soy imparcial en esto) y Netscape, sencillamente, terminó desapareciendo tras ceder toda la cuota de mercado que lo hacía viable.

Hoy en día se ha heredado esa tradición de que los distintos navegadores peleen por ganar cuota de ordenador, para aspirar a ser el más usado, en más instalado y empleado en dispositivos personales de todo el planeta.

Ahora tenemos a Explorer (desaparecido como tal y que en breve reaparecerá bautizado como Microsoft Edge); También tenemos a Chrome de Google (haciendo de las suyas con la fuerza que le da su preminencia en Android); Y tenemos a Mozilla Firefox, el más admirado y respetado por muchos, aunque otros no lo pueden ni ver…

Firefox-logo_svg

El caso es que, una vez más, tanto Microsoft, como Google o Mozilla (así como los desarrolladores de Opera y demás navegadores secundarios) pugnan por (una vez que te los has instalado) convertirse en tu “navegador predeterminado”. Es decir, que sea su programa y no el de la competencia el que uses tanto tú como tu PC para abrir, ejecutar, navegar y visualizar todo lo que tenga que ver con la Red.

Hasta ahí algo normal teniéndose en cuenta todo ese rollo de la libre competencia y demás. Pero, claro, tantas facilidades quieren incluir entre las comodidades que se lleva el usuario cuando se descargan e instalan un nuevo navegador, que empiezan a aparecer las vulnerabilidades y los “huecos” por los que nuestra seguridad, intimidad y privacidad se vean comprometidas a manos de algún listo que se estudie la materia y se aproveche de nuestra buena ignorancia.

Leer más