Monitoriza tu web en tiempo real con netdata

por:

En el mercado podemos encontrar gran cantidad de servicios, herramientas y programas para monitorizar nuestros equipos. Sin embargo muchos de ellos son de pago o consumen gran cantidad de recursos.

NetData tu herramienta para monitorizar tu web

Hoy queremos invitarles a usar NetData una herramienta que deberemos instalar en nuestro servidor y que nos va a permitir tener todas las estadísticas necesarias para comprobar el buen funcionamiento de nuestra web.

Estadisticas de la web con netdata

Leer más

Descubriendo las entrañas de Windows 10 mobile

por:

En el artículo de hoy os queremos enseñar cómo está diseñado Windows 10 mobile, por dentro. Este artículo esperamos que sea de vuestro interés, sea ha elegido este sistema operativo debido a que por ejemplo de Android, es bien conocida su estructura ya que es un sistema abierto.

 

La estructura de Windows 10 mobile

La primera vez que lo vi, me pareció muy llamativo que Windows 10 mobile, este estructurado igual que el Windows de escritorio que estamos acostumbrados a utilizar, como se puede ver en la siguiente captura:

La estructura de Windows 10 mobile

En ella podemos destacar carpetas tan conocidas como Windows, Users, Program Files o la papelera de reciclaje ( $RECYCLE.BIN). Además es curioso como este sistema también utiliza un archivo de paginación como es el pagefile.sys.

Seguramente con la imagen anterior muchos podría decir que se trata de un Windows de escritorio y la verdad es que no irían mal encaminados.

Los usuarios del sistema

Si investigamos un poco la carpeta de usuarios, podemos ver que se estructura en una parte pública, el propio sistema y el usuario por defecto. Esto nos hace pensar que está preparado para en un futuro dar soporte a múltiples usuarios:

W10 mobile usuarios

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

Asegurando nuestro servidor con Chroot

por:

Asegurando nuestro servidor con Chroot guia
Uno de los problemas más comunes que podemos tener en materia de seguridad son las cuentas de FTP o SFTP. En algunos casos estas cuentas se dejan a colaboradores para poder subir algunos archivos o imágenes al servidor, sin implementar en ellas las medidas de seguridad oportunas.

El problema de una cuenta de FTP mal configurada

En el caso de que tengamos una cuenta de FTP mal configurada, cualquier usuario al que le diéramos acceso (o lo consiguiera) podría copiar, borrar y modificar los archivos que tengamos en nuestro servidor. Esto podría dañar seriamente nuestra página.

Aunque muchas personas creen que teniendo bien configurados los permisos ya está todo el problema resuelto, la verdad es que se equivocan. Porque el usuario podría navegar entre las distintas carpetas ya que en muchos casos tendremos que tener amplios permisos para que funcione nuestra web.
Leer más

5 habilidades necesarias para un informático

por:

Las habilidades necesarias para un informatico

 

Este artículo surge de una charla con otros compañeros de profesión, algunos de ellos novatos y otros con varios años de experiencia a sus espaldas. En ella nos planteábamos que cosas consideramos indispensables dentro de nuestro ámbito, la informática y esta es la conclusión a la que llegamos.

1 Conocer un lenguaje o tecnología en profundidad

Aunque muchos, entro los que me incluyo, hacemos desarrollos en múltiples lenguajes según lo que se nos pida, llegamos a la conclusión que es necesario saber algún lenguaje a un nivel medio-avanzado. Esto nos va a permitir desarrollar por una parte nuestra carrera profesional y por otra tener un conjunto de conocimientos amplios sobre programación. Esto último es muy útil cuando cambiamos de lenguaje o tecnología, porque ya sabemos dos cosas, cómo plantear el problema y cómo lo resolveríamos en el lenguaje que nos sentimos más cómodos, así que lo único que tenemos que hacer es ver si podemos adaptar esa estrategia a nuestro lenguaje actual.

Si un informático cumple este primer punto, es poco probable que se atasque al plantear o intentar resolver, aunque sea en pseudocódigo, la mayor parte de los problemas que le vayan surgiendo.

2 Comprender el inglés

En mi caso me he encontrado con muchos compañeros y usuarios en foros de internet, que preguntan cosas como las siguientes: ¿Dónde esta la documentación oficial de Apple en español?, ¿Por qué stackoverflow está en ingles? ¿Cómo pongo X programa o IDE en español? etc. El inglés es algo necesario para cualquier informático, actualmente la mayor parte de documentación técnica, programas, foros y webs de tecnología están en este idioma, así que sin él, es como desarrollar sin tener casi internet. En mi caso no soy un experto en inglés, pero tengo la suficiente comprensión lectora como para entender el idioma y la capacidad de poder redactar en él y que me entiendan (esto último también es importante).

Leer más

Comprobando las fugas de memoria con Valgrind

por:

Una de los errores más comunes cuando realizamos un programa con un lenguaje como C, son las fugas de memoria (memory leaks). Este error aunque parezca menor, tiene una gran importancia porque estamos desperdiciando parte de los recursos de nuestro equipo, dejándolos inaccesibles para todos los programas.

Cómo se produce una fuga de memoria

Una fuga de memoria consiste en reservar memoria dinámica y luego modificar el puntero que apunta a esta zona, dejándola inaccesible.
Por ejemplo en este código hay una fuga de memoria, que se produce al reutilizar el puntero sin liberar antes el bloque de 5 enteros:

#include <stdio.h>
#include <stdlib.h>

int main(){

  int *pt = NULL;
  pt = (int *)malloc(sizeof(int)*5);
  
  //mas codigo ...
  pt = (int *)malloc(sizeof(int)*10);
  free(pt);

}

Leer más

Prolog el lenguaje de programación lógico

por:

Prolog el lenguaje de programación lógico

Hoy en día cuando queremos estudiar o realizar un proyecto tenemos una gran cantidad de lenguajes a nuestra disposición. Pero hay muchos de ellos cuyas características principales son similares. Sin embargo dentro de ese grupo de lenguajes distintos y poco conocidos está Prolog.

¿Qué es Prolog?

Prolog es un lenguaje lógico, utilizado para programar en el campo de la inteligencia artificial. Sus características son bastante peculiares ya que no sigue la filosofía estructurada ni la orientada a objetos. Algunas de las cosas llamativas que podemos encontrar en el mismo es que no hay bucles.

El lenguaje se basa principalmente en:

  • hechos algo que siempre es verdadero.
  • reglas algo que para que sea verdadero se tienen que cumplir aquellas condiciones del cuerpo de la regla.

El proceso de resolución

La solución que suele ofrecer es verdadero o falso y para ello intenta buscar el objetivo que le indicamos analizando las cláusulas (hechos y reglas) de arriba a abajo. Además utiliza el algoritmo de backtracking para intentar al alcanzar la solución aunque sea utilizando múltiples reglas.

Leer más

Qué son los snippets o fragmentos de código

por:

Que son los snippets o fragmentos de codigo

Normalmente cuando desarrollamos programas, nos encontramos con cierto código que se suele repetir de manera constante en la mayoría de los proyectos. Normalmente esto lo solemos encapsular en una clase, en una plantilla de proyecto o en un fichero externo, según el lenguaje y plataforma que utilicemos. Sin embargo hay otras líneas de código, que sin ser tan frecuentes como las anteriores, sí nos gustaría tener a mano para solucionar un problema o recordar de una manera rápida cómo se solucionaba el mismo.

Snippets o fragmentos de código

Como sabréis los lectores más fieles a mis artículos, normalmente intento utilizar los términos en español para las palabras inglesas, siempre que esa traducción se use con frecuencia. En este caso, la mayoría de gente que conozco siempre dice snippets, así que he decidido incluir el término en el artículo.

Leer más

JSON el formato de datos mas popular

por:

Con el creciente desarrollo de Internet en los últimos tiempos debido a los dispositivos móviles, hemos asistido a una revolución en la manera de intercambiar datos. La mayoría de servicios nacieron para ser consultados desde un navegador web, pero se tuvieron que ir adaptando para poder hacer aplicaciones nativas, que permiten un mayor y mejor uso de los mismos. En estos casos la mayoría de las empresas decidió que la manera más sencilla de proveer a esas aplicaciones de datos, sería mediante una API.

En un principio la forma de comunicar datos entre dos aplicaciones fue XML, un lenguaje de marcado (similar a HTML). Pero su sintaxis es poco clara y en muchos casos tiende a generar ficheros con mucha sintaxis para la información real que queremos transmitir. Para sustituir a XML el formato que mejor se ha posicionado es JSON.

JSON

JSON es un formato mucho más claro, con mucha menor sintaxis al no utilizar etiquetas para indicar cada contenido y esta basado en un sistema similar a los diccionarios (relación clave-valor). Este formato ha sido elegido por la mayoría de las APIs y desarrollos en los últimos años y actualmente XML se está quedando relegado a aplicación antiguas.
Leer más

Visual Studio y la telemetría

por:

Una de las cosas más criticadas de Windows 10 ha sido que invadía la privacidad por su sistema de telemetría. Hoy os vamos a explicar qué es y qué datos nos da la telemetría utilizando un ejemplo real de aplicación realizada con Visual Studio.

Añadiendo telemetría a nuestra aplicación

Lo primero que tenemos que hacer es crearnos una cuenta de Azure para que recoja y procese nuestros datos sobre telemetría. Después cuando vayamos a crear nuestra aplicación debemos marcar la siguiente opción:

La telemetria en Windows 10 y Visual Studio

Esto va a cargar de manera automática información sobre el uso de nuestra aplicación a nuestra cuenta de Azure.

Leer más