¿Cómo usar colores en C?

por:

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

por:

Ú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

Los mayores errores del Software Libre

por:

Te contamos los mayores problemas que tiene los proyectos de software libre para que no cometas sus errores

 

En esta entrada quiero transmitir mi opinión, es una opinión y cada uno puede tener la suya, sobre cuales son los mayores problemas en los proyectos que son Software Libre. El centrarse en este tipo de proyectos, es debido a que suelen tener unas características bastante especiales respecto a los proyectos comerciales (pocas personas, desarrolladores voluntarios y normalmente bajo presupuesto). Antes de que dejes de leer y digas, esto es un ataque más al Software Libre, te quiero decir que yo también soy un firme defensor del Software Libre y este artículo es para evitar esos errores.

1 ¿Documentación? Léete el código

Seamos realistas a nadie nos gusta documentar el código y dedicar parte de nuestro tiempo a ir comentando que hace cada cosa. Sin embargo esto es un pilar básico en todo proyecto medianamente decente que se precie, si queremos que los programadores usen nuestro proyecto, le tendremos que decir cómo funciona y qué hace cada cosa y no, no vale con decir léete el código, ahí está todo.
En los últimos años he usado varios proyectos grandes de Software Libre y sorprendentemente no traían ninguna documentación, pero es que tampoco incluían casi comentarios en el propio código fuente, así que para entenderlos tenía o bien que ejecutarlos paso a paso o bien ir siguiendo todas las funciones con lápiz y papel.
Este error se puede subsanar usando por ejemplo Doxygen como ya os contamos hace un tiempo.

2 ¿Colaboradores? Estoy mejor solo

Otra de las cosas que más me ha llamado la atención es que algunos proyectos están desarrollados por una única persona y aunque el proyecto cada vez es más grande, no tienen ningún interés en que colabores con él. En muchos casos porque como no hay documentación, te tendría que enseñar como funciona cada función del código fuente.

Leer más

Las bibliotecas más usadas en JavaScript

por:

El popular lenguaje de programación, que esta viviendo un gran crecimiento con desarrollos como Node.js tiene un gran cantidad de bibliotecas, con la que ampliar su funcionalidad y soportar nuevos usos (o adaptaciones a los mismos). Hoy os queremos informar de las más usadas y lo que nos aportan.

Las bibliotecas de JavaScript más utlizadas

Gracias a la web libscore que realiza un análisis de las principales páginas web a nivel mundial, podemos saber cuales son las bibliotecas que usan y así conocer cuales son aquellas bibliotecas JavaScript más utilizadas. Esto nos puede saber para conocerlas y ¿si las grandes empresas las usan, por qué no usarlas nosotros?.
Las bibliotecas más utilizadas de JavaScript

Como podemos ver jQuery es la más usada, pero también encontramos otras muy populares como Modernizr, Fancy Box o Carousel.

jQuery la biblioteca más importante de JavaScript

jQuery la biblioteca más importante de JavaScript

jQuery es hoy en día un elemento que acompaña a JavaScript en la mayoría de las ocasiones, por lo que su primer puesto no es una novedad. Una manera de ver el alcance que tiene esta biblioteca, es ver como gran cantidad de las respuestas de desarrollo web que hay en StackOverflow, son resultas siempre mediante jQuery.

Como opinión personal creo que jQuery es uno de los máximos exponentes de menos es más es decir, no añade gran cantidad de novedades a JavaScript, pero nos permite hacer algunas cosas que en JavaScript requieren de un número elevado de líneas de una manera muy simple. Es usada principalmente para modificar o seleccionar elementos DOM y las hojas de estilo CSS, además de para gestionar eventos y realizar animaciones.

Leer más

¿Son nuestro certificados seguros?

por:

Una de las cosas en las que más se basa la seguridad en nuestros días, consiste en generar los famosos certificados  que entre otras cosas nos aseguran que nuestros datos vayan cifrados de forma segura cuando los transmitimos a través de la red. Pero no solo se usa en el protocolo HTTPS sino en multitud de protocolos seguros como los de correo.

 

¿Cómo se genera un cerfificado?

Imagen de un certificado RSA con números primos

Básicamente los certificados se basan en un conjunto de información que se intercambia con el cliente, a cerca de las claves que van a utilizar para comunicarse, el tipo de encriptación que van a utlizar y datos sobre el proveedor del servicio.

Uno de los algoritmos que se usan en los certificados es RSA, este algoritmo es un método de cifrado de clave pública, que consta de dos claves que se intercambian, si queréis saber más sobre como funciona el mismo os dejamos este enlace.

Pero este tipo de algoritmos necesitan normalmente de un par de números que forman las claves del sistema. En este caso se necesitan unos números que tienen que tener unas propiedades especiales. Es por ello que normalmente se suele contratar con una empresa dedicada a ellos, para que te genere el certificado, aunque también hay formas de hacerlo por tus propios medios.

Leer más

Nuevos modelos de aprendizaje en la informática

por:

En algunas de nuestras entradas hemos hablado sobre las distintas maneras de acercarse a la informática, mediante alguna metodología que certifique además los conocimientos alcanzados. Sabemos que muchos hemos aprendido la mayoría de cosas de manera autodidacta, pero este tipo de formación puede suponer un problema cuando nos piden que presentemos un título que demuestre lo que decimos.

Hace algún tiempo hablábamos de los MOOC como un nuevo sistema para aprender con contenidos de calidad, encontrar gente con intereses en nuestros mismos temas y además certificar unos conocimientos.

Hoy os vengo a hablar de otra manera que está teniendo un gran auge en los últimos tiempos en otros países y de cómo se está realizando en España.

Cursos intensivos de desarrollo

Cursos de desarrollo intentivos de IronHack

De un tiempo a esta parte, se están poniendo de moda los cursos intensivos de desarrollo y desde mi punto de vista no es una moda pasajera. Estamos hablando de cursos que para las personas que ya llevamos tiempo en la informática, nos van a permitir en poco tiempo (suelen durar menos de 3 meses), adaptarnos a un conjunto de tecnologías. Pero están pensados también para explicar lo básico y necesario que una persona debe saber si quiere entrar a trabajar en ese tipo de desarrollos.

Pongamos un ejemplo: ahora mismo podemos saber de programación lo básico que comparten todos los lenguajes, las sentencias condicionales, las de control de flujo, los tipos de las variables etc. Si nos ponemos a comparar, esto lo tienen todos los lenguajes y su sintaxis es prácticamente igual, así que sabiendo uno bien podemos irnos moviendo hacia otros de una manera más o menos sencilla.
Si venimos de programación orientada a objetos (Java, C#, C++ etc) y quizás queremos cambiar de puesto y empezar a desarrollar proyectos web, lo único que necesitamos es que nos expliquen las cuestiones, tecnologías y herramientas que se necesitan para este tipo de proyectos. Puesto que ya sabemos algoritmia, estructuras de datos, manejar alguna fuente de datos como una base de datos etc, así que justo lo que necesitamos es un curso intensivo de 2-3 meses que nos ayude a pivotar. Este concepto tan usado últimamente que indica movernos de una posición a otra pero sin partir de cero, ya que nosotros vamos a aprovechar los conocimientos que ya tenemos. Sin embargo como digo estos cursos no son sólo para informáticos, sino para cualquier que sea inquieto y quiera entrar en el sector de las nuevas tecnologías.

Ironhack

Ironhack te enseña a programar
Ironhack es una plataforma bastante nueva, que busca implantar en España este concepto de cursos de desarrollo intensivos centrados en un nicho de mercado. Llevo siguiendo sus pasos desde hace un par de años, cuando seguí una charla que impartieron y donde nos invitaban a participar en este reto. Lo primero que me extrañó mucho fue que el reto había que programarlo en Ruby. En aquellos días yo no sabía ni que existía algo que se llamaba así y mis compañeros estaban más o menos en la misma situación así que empecé a investigar.
Algunas de las conclusiones que alcancé fueron que era una plataforma de formación innovadora, con la metodología de cursos de desarrollo intensivos, pero con la característica de que sus cursos son sobre tecnologías muy actuales. Muchas veces cuando estamos en la universidad estudiando informática vemos que lo que estudiamos es el pasado, en Ironhack era todo lo contrario enseñaban el presente y en algunos casos el futuro, o las tecnologías que se iban a usar dentro de un año.
La verdad Ruby, bases de datos NoSQL, Node.js etc son tecnologías muy usadas hoy en día, pero fuera de los planes de estudio de la mayoría de las instituciones, así que yo creo que faltaba algún sitio, donde formarte en las tecnologías actuales.

La experiencia in Ironhack

Debido a que yo no he participado en ninguno de sus cursos, he intentado buscar opiniones y contactar con gente que sí los ha realizado y este es lo que he encontrado:

  • Se parte de una selección de un pequeño grupo de personas con gran motivación por aprender todo lo posible sobre esa tecnología, de edades y procedencia muy diversas.
  • La metodología de trabajo es de 9AM a 7PM de lunes a viernes, donde se da la teoría y luego se realiza la práctica sobre los conceptos explicados. Además se apoya esta formación con charlas y clases de refuerzo los sábados y los domingos.
  • Se cuenta con un grupo de profesores amplio, que es experto en cada tema, de tal manera que cada concepto, tecnología o lenguaje será impartido por alguien con grandes conocimientos de la misma, huyendo de la típica enseñanza generalista donde una persona sabe de todo. También se cuentan con profesores asistentes para facilitar el éxito en la realización del curso para todos los usuarios, siendo en algunos casos los propios profesionales que prestan apoyo antiguos alumnos del curso.
  • Además del esfuerzo por enseñar cómo programar, se pone mucho énfasis en la calidad del código, explicando a los alumnos conceptos como clean code y evaluando como lo aplican en sus propios trabajos.
  • Desde IronHack ayudan a los propios alumnos a desarrollar su propia idea y es un punto de encuentro muy importante, para hacer contactos, conocer gente del sector (ya que hay empresas colaboradoras que van a dar charlas) y en definitiva tener más oportunidades de conseguir un trabajo. Labor que se toman muy en serio desde Ironhack ayudando en todo lo posible a sus usuarios.

Los alumnos de los que he podido conocer su opinión tiene una formación muy variada, en algunos casos son ingenieros que quieren entrar en el campo de la informática, en otros alumnos que buscan una formación rápida en lugar de elegir una carrera universitaria para entrar directamente en el sector, otros buscan cambiar de trabajo y reorientar su carrera en la informática en otra dirección etc. Pero lo que todos me han transmitido es que es son cursos duros porque son intensivos, pero que merecen la pena realizar.

Si queréis conocer algo más de información sobre Ironhack les podéis visitar desde aquí.

¿Qué os parecen este tipo de cursos de formación intensiva? ¿Creéis que serán una moda pasajera o algo que ha llegado para quedarse? ¿Forzarán a las universidades a actualizarse? Esperamos vuestros comentarios.

¿Por qué elegir un servidor VPS?

por:

En las últimas dos semanas vengo trabajando con un servidor VPS (Virtual Private Server) para realizar un pequeño proyecto propio de una aplicación. La verdad el cambio de pasar de usar un hosting compartido a un VPS es notorio. En esta entrada os propongo realizar un análisis de qué nos puede ofrecer un VPS y por qué deberíamos usar uno en algunos casos.

¿Qué es un VPS?

Para empezar a hablar sobre este término lo primero que debemos decir es definir qué es un VPS. Un VPS es una instancia normalmente virtualizada sobre un gran servidor, donde tu lo puedes gestionar con acceso total. A diferencia del hosting compartido, aquí tienes garantizado una serie de recursos únicos para ti y puedes instalar el sistema operativo que quieras, cambiar la configuración del servidor web, instalar programas etc. Luego hay otro concepto importante que es el de servidor dedicado en este caso tenemos una máquina física únicamente para nosotros.

¿Debería elegir un servidor VPS?

La respuesta a esta pregunta es depende, lo primero de todo para manejar un VPS es importante que el usuario cuente con conocimientos de administración de servidores, ya que una mala configuración de alguno de los programas nos puede llevar a tener grandes fallos de seguridad. Esto suele ser habitual cuando empezamos, por lo que no es aconsejable que nuestros primeros pasos con un VPS sea para un proyecto serio.

Los servidores compartidos en muchos casos son suficientes para la mayoría de usuarios comunes, si solo quieres tener un blog, una web que muestra información, una base de datos etc, es la manera más sencilla y barata de tener estos servicios.

El servidor VPS tiene la ventaja de que te va a permitir por ejemplo instalar la versión de PHP que necesites, esto es importante si utilizas un proyecto antiguo o si vas a utilizar las nuevas características del lenguaje. De la misma manera te va a permitir instalar compiladores de Java, C, C# etc para poder usar el lenguaje que prefieras.
Otra de las ventajas es la flexibilidad que nos proporciona, al ser tú el que va a administrarlo hoy puedes instalar Node.js como servidor, mañana Apache y pasado Ngnix e ir probando el que mejor se adapte a tus necesidades. Cosa que en muchos compartidos es imposible porque ya te dan ciertas instancias preconfiguradas.

En resumen con un VPS puedes conectarte por SSH o cualquier otro tipo de Shell remota y vas a encontrar una terminal para hacer cualquier cosa que podrías hacer en el ordenador de tu casa. Lo que implica riegos y ventajas.

Leer más

Aprendiendo a trabajar con Node.js

por:

Node.js es lo que comúnmente se conoce como JavaScript del lado del servidor, esto es nos permite montar un servidor web, con un motor JavaScript en este caso el motor que utiliza es el motor de ejecución de JavaScript de Chrome.

Aprendiendo a usar Node.js

Aprendiendo Node.js con node School paso a paso

Hoy os proponemos una gran guía para que aprendáis a usar esta tecnología, para ello vamos a usar los recursos de Node School. Así que vamos a ver que recursos son esos:

Los recursos son módulos del propio Node.js así que lo primero que debemos hacer es instalarlo, para ello nos lo bajamos de la web oficial.
Una vez que lo tenemos podremos instalar los módulos de Node.js con la orden “npm“.

Probando Node.js

Ahora lo único que necesitamos es ejecutar el primer módulo y ver que contiene:

Empezando a usar Node.js

Leer más

El auge del Phishing y el robo de datos bancarios

por:

Hoy quiero hablaros de una de las modalidades de robo de datos bancarios más usadas en la actualidad, el phishing. Tal es el nivel de uso de esta técnica que se está empezando a utilizar de una manera masiva y hasta grandes organizaciones tanto privadas como públicas, han estado informando de como protegernos de él. Pero muchas fallan en explicar cómo funciona este sector.

Empezando en el Phishing: los emails

Básicamente para empezar en este sector, lo único que necesitas son emails, muchos emails, así que tu que sabes como va esto de Internet, recurres a comprar una base de datos de correos electrónicos. ¿De dónde se sacan estos correos? Bien muchos os lo preguntaréis y la respuesta está muy clara, muchas web de sorteos, regalos, foros etc se sacan un dinero vendiendo las bases de datos de los emails con los que se registran sus usuarios. Así que no sería ninguna sorpresa que en esa base de datos estuviera tu correo electrónico.
Pero lo más gracioso de esto es que esas bases de datos, se pueden comparar en dos clicks desde Google.

Preparando la web de phishing

Bueno ahora ya tenemos cientos de miles de emails a los que queremos mandarles nuestro estafa. Así que lo que nos queda es preparar la estafa, llegados a este punto no os voy a indicar como hacer una paso a paso, pero para aquellos que tengáis conocimientos de HTML y CSS seguro que no se os hace una labor muy complicada. En este caso vamos a utilizar como ejemplo la del Santander y justamente la página donde se introducen las claves de acceso.

Mostrando una web de Phishing
La web de la izquierda es una copia que he hecho yo en 10 minutos de la derecha, es verdad que faltan algunos iconos, un par de ellos. Pero seguramente coincidáis conmigo en que un usuario normal si le pones la de la izquierda va a ver que es la de su banco.

Leer más

Ofuscando nuestro código Java

por:

El otro día abordábamos cómo mediante ingeniería inversa, podían desempaquetar nuestra aplicación Java y extraer todas nuestras clases y el código de nuestra aplicación. Hoy os traemos la defensa a este ataque.

El código para a ofuscar escrito en Java

Partiremos del ejemplo del otro día y de la clase Game.class de la que extraíamos el código fuente. Como se puede ver en la imagen, tenemos la función Game y todo el código de la misma:

Ofuscando el siguiente codigo Java

El software para ofuscar el código Java

Para realizar la ofuscación del código Java para que no nos puedan extraer el código fuente, vamos a utilizar el software ProGuard

El software para ofuscar el código Java

Leer más