viernes, 14 de mayo de 2021

Kaggle

 

Kaggle es un excelente recurso que podemos usar para nuestro trabajo de análisis de datos. Esta plataforma ofrece una gran cantidad de bases de datos y además soluciones a problemas que podemos estudiar para ir mejorando nuestras habilidades con el análisis de datos.

Cuando iniciamos a trabajar o estudiar el análisis de datos es importante tener información o datos con los que se pueda investigar y producir algún resultado para ir entendiendo los temas que se requieren con el fin de convertirse en un analista de datos. Por eso es fundamental encontrar datasets con los que se realicen estas tareas. Al momento de trabajar en este artículo Kaggle cuenta con 50.000 datasets para uso publico y 400.000 códigos que podemos estudiar.

Claro que existen otros lugares y repositorios de datos públicos que podemos utilizar para trabajar en análisis de datos, pero este repositorio cuenta con una gran variedad de temas sobre los que podemos iniciar nuestro camino al análisis de datos. Por ejemplo, existen datasets para trabajar en áreas financieras, para trabajar en áreas médicas, para poder analizar problemas de cambio climático, etc.

Tiene una interfaz muy amigable con la que podemos navegar por los diferentes datasets. En algunos casos podemos también ver los resultados brindados por otras personas que han trabajo en los diferentes sets de datos con lo cual es fácil de comparar las soluciones desarrolladas por otras personas al mismo problema que nosotros estábamos viendo y de esta manera poder aprender otras maneras de atacar un mismo problema.

Por otro lado, la plataforma cuenta con una serie de cursos con los que podamos aprender o reforzar los conocimientos que ya tenemos sobre los temas de análisis de datos. Como sabemos esto se convirtió en un área fundamental para cualquier empresa que desee mejorar su productividad. Hoy en día es una necesidad. Pero no esta limitado a esto, organizaciones gubernamentales, etc. están trabajando en este tipo de emprendimientos para mejorar muchas áreas de su organización.

Además, de contar con documentación para poder entender los diferentes datos o datasets con los que cuenta la plataforma. Es muy fácil de usar y no tiene costo por su uso.

Podemos encontrar todo esto en www.kaggle.com


Regresar

Etiquetas: , ,

domingo, 9 de mayo de 2021

Crear una aplicación con Java Swing y Jlink

Con Netbeans 12.3 y Maven es muy fácil crear una aplicación de Java que puede ser ejecutada sin necesidad del IDE. En muchas ocasiones no aprendemos esto en la academia y queremos saberlo para poder distribuir nuestras aplicaciones. Para mi ejemplo vamos a trabajar con Windows, pero pueden utilizar otro sistema operativo.

Realmente para hacer esto es muy simple. Lo primero que debemos hacer es un proyecto nuevo con Maven de tipo Java Application


En mi caso el proyecto se llama HelloSwing. Luego vamos a crear una clase Main. A continuación una clase de tipo JFrame. Lo que tenemos que hacer es llamar el JFrame en el main para ejecutar la ventana.

El siguiente paso es crear un module-info


En este modulo tenemos que agregar las siguientes líneas. La línea 8 es para poder utilizar JFrame (swing) y debemos exportar el modulo donde esta nuestra clase Main.

A partir de este momento se tienen que agregar algunos plugins de Maven para poder continuar con nuestro proyecto.

El primer plugin seria


Después de esto debemos agregar otro plugin para poder crear todo lo necesario que se requiere para correr nuestra aplicación.


El nombre de nuestra imagen es swing luego ocupamos agregar la línea 23 para que se crea el punto de inicio de nuestra app. Donde requerimos el nombre del ArtifactId.


El Artifact Id lo podemos encontrar en las propiedades de nuestro proyecto. Y debemos agregar el nombre con el paquete de la clase Main para que nos funcione. En mi caso es com.testing.helloswing.Main

En Netbeans debemos correr el Goal de jlink para que compile nuestra imagen y cree todo lo necesario. 



Cuando corremos esta tarea (jlink) tenemos que ir a buscar en la carpeta de target de Maven lo que se generó. En mi caso la carpeta que se llama Maven-jlink (puede que existan otras carpetas dentro). Se tiene que buscar un archivo llamado swing.bat. Si damos doble clic a esto nos ejecutara nuestra aplicación.

Ya de esta manera podemos correr nuestra aplicación sin necesidad del IDE.


Etiquetas: , , ,

viernes, 30 de abril de 2021

Desarrollar un Crawler simple con Python

 


Para poder desarrollar el Crawler con Python lo primero que debemos hacer es instalar la librería llamada scrapy. Esta librería la podemos instalar usando pip. Con esta librería ya instalada vamos a crear un documento de Python llamado simpleCrawler.py

Dentro de este documento vamos a crear una clase llamada Crawler 

import scrapy

class Crawler(scrapy.Spider):
    name = 'SimpleCrawler'
    start_urls = ['https://crawler-test.com/']

    def parse(self, response):

        links = response.xpath("//a")
        for link in links:
            link = link.xpath("@href").extract()
            print(link)
            yield

Como podemos observar lo primero que vamos tener es el import de la librería scrapy luego vamos a heredar a la clase Crawler scrapy.Spider.

En este caso el código es muy simple. Le vamos a dar un nombre al crawler con la variable name y luego le pasamos el URL que deseamos escanear con la variable start_urls.

Luego definimos una función que se llama parse que espera como parámetro el response de la carga del url.

Como podemos observar la variable links contiene todos los elementos de tipo anchor de la página que escaneamos.

Después de esto dentro del ciclo vamos encontrando cada uno de los Urls que tiene el sitio web y lo imprimimos para mostrarlo en el console.

Para poder ver el resultado debemos correr el siguiente comando scrapy runspider simpleCrawler.py

Esto nos da como resultado



Etiquetas: , , , ,

jueves, 29 de abril de 2021

Desarrollar un Crawler simple con Java

 


Lo primero que vamos a hacer es crear un proyecto nuevo basado en Maven



Al proyecto le vamos a asignar el nombre de SimpleCrawler



Le tenemos que dar al botón de finalizar. Con esto listo vamos a necesitar una librería que la tenemos que agregar al proyecto usando Maven. La librería se llama jsoup.



Jsoup Url: https://jsoup.org/download

Con esto listo ya podemos hacer el código para escanear la página web.

package com.mycompany.simplecrawler;

import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;


public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        try {
            var url = "https://crawler-test.com/";
            
            Document doc = Jsoup.connect(url).get();
            Elements links = doc.select("a[href]");
            for(Element link: links){
                System.out.println(link.attr("href"));
            }
        } catch (IOException ex) {
           System.err.println(ex);
        }
    }
    
}

Como podemos observar en el código lo primero que debemos hacer es importar las librerías de jsoup necesarias

·         import org.jsoup.Jsoup;

·         import org.jsoup.nodes.Document;

·         import org.jsoup.nodes.Element;

·         import org.jsoup.select.Elements;

Luego vamos a crear una variable llama Url donde podemos agregar la pagina que deseamos escanear. Después de esto creamos un objeto de tipo Document con el que vamos a obtener el documento encontrado del url, usando el método get que vamos a usar del método connect de la clase Jsoup.

Después de esto creamos un objeto de tipo Elements llamado links basado en la búsqueda que deseamos hacer como se puede observar con el objeto doc.select. En este caso preguntamos por todos los anchores que tengan una referencia.

Finalmente, con un ciclo for podemos recorrer el resultado de links con todas las posibles url o links que se encontraron. Finalmente se imprimen en la consola para poder ver que fue lo encontrado.

Lo que nos da como resultado lo siguiente 




Etiquetas: , ,

miércoles, 21 de abril de 2021

Desarrollar un Crawler simple con C#

 

Lo primero que tenemos que hacer es un proyecto nuevo con Visual Studio. En mi caso vamos a usar Visual Studio 2019. El proyecto lo vamos a desarrollar usando C#. Vamos a hacer un Console app el cual le vamos a llamar SimpleCrawler.



El proyecto va a hacer. netcore 3.1

Cuando el proyecto esta listo vamos a buscar en NuGet el paquete HtmlAgilityPack y lo vamos a instalar. 



Con este paquete instalado lo primero que vamos a hacer en la clase Main es importar las librerías necesarias para crear nuestro crawler


Ahora vamos a ver como se construye el código para ir navegando en el contenido de la página web. 



Ahora, en la línea 12 tenemos que copiar el URL de la página web que deseamos escanear. Con esto vamos a crear un cliente Http para leer el documento web como se puede ver en la línea 14. Ya en la línea 16 obtenemos el contenido del documento de Html. Este al final lo podemos obtener como si fuera una variable string.

Ahora si ya con esto listo en la línea 18 creamos un objeto de tipo HtmlDocument del paquete AgilityPack. El cual nos va a permitir convertir el documento que tenemos de tipo string a un objeto de tipo AgilityPack. Esto lo cargamos en la línea 19.

Para poder leer todos los links usamos la línea 21 el cual usa el document que creamos anteriormente y cargamos todos los nodos. De estos nodos que cargamos vamos a seleccionar únicamente los anchor (links).

En la línea 23 vamos a recorrer todos los resultados encontrados en la línea 21 y vamos a ir uno por uno mostrando el contenido de cada uno de estos. Usando la propiedad OuterHtml que tenemos en la línea 24.

Lo que nos da como resultado lo siguiente 



Aquí podemos ver todos los links que tiene la página web. Ahora cada uno podría hacer lo que necesita con estos links.

Podemos recordar que con este paquete podemos buscar cualquier tipo de nodo que tenemos en los sitios web.

¿Qué es un Crawler? 


Etiquetas: , , ,

sábado, 17 de abril de 2021

Bootstrapstudio

 


A la hora de hacer una aplicación existen diferentes componentes los cuales deben de ser de mucha calidad para que nuestras apps funcionen de la mejor manera. Siempre prestamos mucha atención a el diseño de la base de datos, la arquitectura de nuestras aplicaciones, etc. Y creo que todos los programadores sabemos lo importante que es el desarrollo de la interfaz gráfica.

Al final los usuarios lo único que saben y ven es la interfaz gráfica. Claro que esperan que la app sea rápida y que funcione de manera adecuada, pero uno de los aspectos más importante es que sea muy amigable con el usuario. Esto es un factor clave.

Muchos programadores no somos realmente buenos a la hora de hacer las interfaces graficas y requerimos de ayuda de diseñadores gráficos que nos brinden las ideas más modernas y una experiencia de usuario única para nuestras apps.

Puede que alguno recuerde lo que era crear interfaces de usuario desde cero usando aplicaciones de drag & drop que nos permitía de manera visual crear interfaces rápidamente. Bueno esta herramienta Boostrapstudio nos permite hacer esto.

Me parece una herramienta increíble ya que además de permitirnos la posibilidad de crear interfaces de manera visual también tiene una serie de templates o estructuras predeterminadas que podemos usar para ir construyendo nuestra aplicación.

Otra de los aspectos positivas que pude encontrar es que es muy amigable y su interfaz es sumamente fácil de usar. Tiene herramientas para ir acomodando de manera visual todos los elementos y esto genera el HTML y el css por nosotros. Pero no se limita a únicamente a esta tarea, ya que cuanta con herramientas para generar Minify de los html y javascript.

Tiene opciones para ir desarrollando componentes de SEO y puede ayudarnos a genere SASS si es que lo deseamos. Los cambios se pueden ir guardando con forme progresa el desarrollo de nuestra aplicación. Hoy en día que podemos hacer aplicaciones HTML que pueden correr como desktop, web y móviles nos da una gran facilidad para la creación de interfaces.

Cuando vamos desarrollando nuestra aplicación podemos ir viendo cómo va quedando la versión de diferentes tamaños, ya que se crea una versión responsive de nuestra app.

Esta herramienta tiene integrado Boostrap y Font awesome lo que nos permite ir agregando iconos, imágenes y los diferentes componentes de boostrap en nuestra app.

En el sitio web podemos encontrar muchos tutoriales para ver cómo utilizar la herramienta de una forma correcta y simple. además de un área donde explica todas las configuraciones y herramientas con las que cuenta la herramienta.

BoostrapStudio cuenta con dos licencias una estándar que cuesta $39 con la que se puede obtener la versión gratis por un año y la otra licencia que es LifeTime que cuesta $69 con la que se puede obtener las actualizaciones de por vida.

Personalmente me parece una excelente herramienta si estamos trabajando en el desarrollo de interfaces graficas. Se puede usar un demo gratuito en la pagina que demuestra como funciona esta herramienta. Para los que no somos tan expertos en el desarrollo gráficos nos permitirá hacer interfaces profesionales mucho mas fácil.

BoostrapStudio

Etiquetas: , , , ,

lunes, 29 de marzo de 2021

Crear Windows Native JavaFX app

Para hacer este tipo de aplicación realmente es muy sencillo y vamos a ver paso a paso que debemos hacer. Lo primero que tenemos que hacer es asegurarnos que tenemos los siguientes componentes

  • Apache Netbeans 12.3
  • JDK11
  • JavaFX13
  • Maven

En el caso de JavaFX no es necesario instalarlo (si gustan pueden siguiendo las instrucciones de Gluon) pero si debemos de instalar JDK 11 para poder hacer este ejemplo.

Ahora lo primero que tenemos que hacer es crear un proyecto nuevo en Netbeans


A este proyecto le voy a poner Hello y podemos dejar todas las otras propiedades como están. Para terminar con este paso debemos de dar clic a finalizar.

Para este pequeño ejemplo no tenemos que agregar código nuevo o cambiar el que está. Ya que vamos a utilizar lo que se creo por defecto.  


Ahora vamos a tener que ir al pom.xml


Para agregar unas líneas que nos ayudaran a construir nuestro ejecutable.


En la sección del plugin de javafx-mave-plugin vamos a agregar las líneas anteriores que podemos ver en la imagen.

Con esto vamos a ejecutar el Gaol de Jlink

Simplemente clic derecho y ejecutamos el Goal. Cuando este termine nos debemos de ir al folder donde esta nuestro proyecto. En este caso vamos a tener un folder llamado hello dentro de target. Después debemos de ir al folder bin y buscar un archivo llamado hellofx.bat. A este ultimo le podemos dar doble clic y va a ejecutar nuestra aplicación.

Ejemplo

Etiquetas: , , ,