Cómo usar Docker en Windows

por:

Cómo usar Docker en Windows

Docker es una de las herramientas más usadas por los desarrolladores, sin embargo, usarlo en Windows tiene algunas características especiales que deberás conocer.

¿Cómo funciona Docker en Windows?

Como ya comenté en la entrada general para aprender docker, Docker aprovecha una serie de características del Kernel de Linux para conseguir seguridad y aislamiento de cada contenedor. Esto no lo soporta Windows, así que en un primer momento Windows necesitaba crear una máquina virtual Linux, para ejecutar Docker en ella. Básicamente eso era lo que hacía Docker Desktop, como puedes ver en la siguiente imagen:

Docker en Windows crea una máquina virtual vía Hyper V

Sigue leyendo si queres saber otra manera de hacerlo funcionar

¿Es necesario usar Windows 10 Pro?

Como seguramente te preguntarás, ¿se puede usar Docker sin Windows 10 Pro?, esta pregunta debe ser contestada con un depende. Por una parte Hyper-V necesita de Windows 10 Pro para instalarse y como he dicho anteriormente, Docker se apoya en Hyper-V para funcionar, así que sí sería necesario. Sin embargo, hay otra manera de hacerlo funcionar usando WSL.

Leer más

Analiza el coste del uso de JavaScript

por:

Analiza el coste del uso de JavaScript

Como seguramente sabrás el uso de JavaScript ha crecido exponencialmente en los últimos tiempos, sin embargo, su uso exagerado está haciendo que muchas webs se vuelvan lentas.

¿De dónde viene el coste de JavaScript?

Hoy en día, las páginas webs están cargadas de código JavaScript que permite añadir gran cantidad de dinamismo, eventos, acciones, validaciones y en definitiva a crear grandes diseños, fluidos y personalizados. Sin embargo, todo esto no viene de gratis, sino que tiene un coste que presenta dos patas:

  • El coste de descargar el código JavaScript
  • El coste de parsear y ejecutar el código JavaScript

En lo relativo al coste de descargar el código, es una característica que comparte con otros recursos como las imágenes o las hojas de estilo CSS.

Leer más

Estamos creando proyectos frankenstein

por:

Estamos creando proyectos frankenstein

La informática ha evolucionado mucho en los últimos años, pasando de ser un hobby de unas pocas personas, a un sector profesional cada día más importante en los países desarrollados. Sin embargo, ¿estamos haciendo mejor software ahora que antes?, este debate es el que os propongo hoy, entorno a los proyectos frankenstein.

El origen de este artículo

Leyendo el interesante blog de Javi Santana y su artículo que os recomiendo especialmente: Algunos consejos para diseñar un API leí una frase que me marcó muchísimo y no era capaz de quitarme de la cabeza:

“Recuerda que ahora la gente no programa, busca el ejemplo más cercano a lo que necesitan y los modifican.”

Esta frase creo que resume de manera bastante adecuada el flujo de trabajo de la mayoría de los desarrollos actuales. Lo que nos lleva al software frankenstein.

Leer más

Node.js: el desarrollo que revolucionó JavaScript

por:

Node.js: el desarrollo que revolucionó JavaScript

Como seguramente conocerás, JavaScript es uno de los lenguajes más utilizados hoy en día para dotar de interacción a una página web. Siendo el desarrollo web, quizás, el tipo de desarrollo más común, no es de extrañar que la popularidad del mismo sea cada vez mayor. Sin embargo, no ha sido hasta la popularización de Node.js, cuando se ha convertido en un lenguaje todoterreno.

Node.js, el runtime que lo cambió todo

Todos los lenguajes de programación necesitan o bien un intérprete o bien un compilador que traduzca su sintaxis a código máquina. En el caso de JavaScript, son los propios navegadores los que albergan este software. Esto era un factor bastante limitante para el lenguaje, ya que sólo se podía utilizar en entornos que fueran a ser utilizados con un navegador web.

Esto era así hasta que Ryan Dahl, desarrolló Node.js un entorno capaz de ejecutar código JavaScript en el propio servidor, en lugar de dejar esa responsabilidad al navegador del cliente que visitaba la web. Para ello se basó en el motor V8, el cual es desarrollado por Google para procesar el código JavaScript en su navegador, Google Chrome.

Leer más

Usando Git en la terminal sin morir en el intento

por:

Usando Git en la terminal  sin morir en el intento

Anteriormente ya te hemos hablado en Somos Binarios de Git, el sistema de control de versiones más usado en la actualidad. Sin embargo, soy de los que piensa que es un poco complejo de usar sin interfaz gráfica.

¿Cómo usar Git en la terminal de manera sencilla?

Si escucháis a un experto en el uso de Git, este te dirá que el software es lo suficientemente usable, incluso en línea de comandos. Pero cuando uno está empezando o no es un muy experto, necesita de ciertas ayudas que reduzcan sus errores.

La primera solución que te podría venir a la mente es usar una interfaz gráfica para las cuestiones más complejas, sin embargo, esto no es posible cuando te conectas, por ejemplo con SSH, a un servidor remoto.

Git Aware terminal es un desarrollo que viene a solucionar este problema, ayudándote desde la propia terminal a conocer más a fondo cuál es el estado del repositorio que estás usando:

 

Git Aware Terminal te ayuda a entender cuál es el estado de tu repositorio

Leer más

Gestión de proyectos software con Taiga

por:

Uno de los problemas que siempre se tienen al crear un proyecto de cierto tamaño, es cómo gestionarlo. En este artículo os quiero proponer una metodología y un software para facilitar la gestión de vuestros proyectos informáticos.

Gestión de proyectos software con Taiga

¿Metodología de desarrollo software?

Dependiendo de la experiencia profesional que tengáis, podéis ver la necesidad o no de llevar una metodología de desarrollo. Como este no es un artículo sobre cómo desarrollar software, este aspecto os lo puedo resumir en que cuanto más largo y/o grande es un proyecto, más importante es seguir una metodología.

Metodologías de desarrollo de software hay muchas, sin embargo, en los últimos años se han impuesto las denominadas metodologías ágiles. Estas se basan en reducir la carga de trabajo auxiliar (diagramas, esquemas, documentos internos) y en adaptarse mejor a los requisitos del cliente (cambiantes e imprecisos).

Una de las herramientas que sigue esta filosofía es Trello, la cual utiliza un simple sistema de tarjetas. Estas sirven para dividir un problema complejo en tareas más sencillas.

Leer más

Eventos de programación: Google HashCode

por:

Te mostramos los eventos de programación como el Google HashCode

Una de las cosas en las que más me gusta participar, son los eventos de programación, y la semana pasada no pude dejar pasar la oportunidad de concursar en el Google HashCode. Por eso hoy te cuento por qué deberias asistir a este tipo de eventos, los cuales considero muy importantes y cómo funciona uno de los más conocidos, el Google HashCode.

¿Por qué ir a eventos de programación?

Nuestro hub en el Google HashCode con todos los participantes

Apuntarte a un evento de programación, tiene multitud de beneficios:

  • Compruebas tus conocimientos y eres capaz de medirlos.
  • Conoces compañeros del sector, lo que te va a ayudar a incrementar tus contactos.
  • Aprendes nuevas técnicas para resolver problemas.
  • Obtienes stickers y regalos de tus empresas favoritas.

Leer más

Cómo manejar números grandes

por:

Cómo manejar números grandes

Una duda que nos plantearon hace algún tiempo, es la problemática de operar con números grandes en C, aunque este acercamiento también es válido para otros lenguajes. Lo primero de todo decir que cuando hablamos de números grandes debemos definir el número de cifras con las que consideramos que el número es grande.

Conociendo el número más grande que podemos almacenar en un tipo de dato

Un modo bastante simple, para acercarnos a este problema es ver cual es el mayor número que podemos almacenar en un tipo de dato. Aquí hay que hacer distinciones, por una parte si hablamos de números reales y por otra si hablamos de números enteros.

En el caso de números enteros, por ejemplo si nuestro tipo de dato es un entero de 32bits, y acepta números tanto positivos como negativos, el mayor número que puede almacenar es: 2^31 -1 = 2.147.483.647. Si queremos almacenar números más grandes, y no vamos a utilizar los negativos, podemos usar un entero de 32bits sin signo. En este caso tenemos que el mayor número es el 2^32 -1 = 4.294.967.295

El siguiente paso para poder manejar números más grandes, es bastante obvio y consiste en aprovechar las máquinas de 64bits, utilizando enteros de 64bits. Pudiendo almacenar como máximo el número 18.446.744.073.709.551.615.

Los tipos de datos reales, utilizan otra representación que podéis ver aquí.

Leer más

Como crear un instalador en Windows

por:

Cómo crear un instalador en Windows

En esta entrada os queremos enseñar cómo crear un instalador en Windows, de una manera simple, visual y rápida.

Como crear un instalador en Windows

Como muchos conocéis, en Windows la manera más sencilla de distribuir vuestras aplicaciones es usando un instalador, que suele tener extensión .exe o .msi . Estos instaladores básicamente realizan las siguientes tareas:

  • Copiar los ficheros del programa a la ubicación correspondiente.
  • Añadir al registro los datos necesarios.
  • Añadir un acceso directo al programa en el escritorio.
  • Registrar nuestra aplicación en Windows
  • Registrar un desinstalador de la aplicación.
  • Registrar una extensión de archivo, para abrir con nuestro programa.

Herramientas necesarias

Las únicas herramientas que vamos a necesitar para este tutorial son Visual Studio 2015 y Microsoft Visual Studio 2015 Installer Projects.

Leer más

CLOC la herramienta para contar líneas de código

por:

Cloc la herramienta para contar las líneas de código

En algunos casos cuando desarrollamos proyectos, no interesa llevar un conteo de cuantas líneas hemos escrito para estimar el trabajo que nos ha llevado hacer el proyecto. Pero medir este número muchas veces es complejo, puesto que podemos tener muchos ficheros fuente y algunos IDEs no traen una herramienta que nos ayude a contarlas. Para ello hoy les quiero hablar sobre CLOC.

Cloc tu contador de líneas de código

Aunque como comentaba anteriormente, las líneas de código no es una buena medida del esfuerzo de un proyecto, ya que podemos tener algoritmos muy complejos que ocupen pocas líneas, en algunos casos es interesantes medirlas. Pero también encontramos distintas maneras de medir las líneas de código, medir solo el código, medir el código y los comentarios o medir el código, los comentarios y las líneas blancas que haya en los archivos. Además en ciertos lenguajes como C o C++ es útil diferenciar si las líneas son en ficheros de cabecera, o en ficheros fuente.

Leer más