Ir al contenido principal

Entradas

Mostrando las entradas etiquetadas como Tecnificados

Procesando ficheros grandes en JAVA

Llevamos unas semanas con varias filtraciones de datos, hace unas semanas hubo una de Facebook, y hoy hemos tenido otra con datos de una empresa de telefonía... Cuando nos enteramos de estas cosas, nos gustaría saber si se han filtrado nuestros datos, pero para eso hay que tener los datos (algo que a veces es difícil de encontrar) y después tener las herramientas para abrir esos ficheros. En los dos casos que he comentado, los ficheros eran texto plano, en formato CSV. El primero ocupaba 800 MB y el segundo 5,36 GB Yo no he conseguido abrir ninguno con las herramientas habituales. Así que he escrito un pequeño programa que lee línea a línea cualquier fichero, busca en cada línea la cadena que nos interese, y las coincidencias que encuentra las escribe en otro fichero. Podéis acceder a ese desarrollo desde aquí:  https://github.com/tecnificados/bigFileOpps Espero que os sea útil. Nos vemos pronto. Muchas gracias a  Hugo y a Valandil por su ayuda consiguiendo los datos.

Spring Boot: un CRUD hecho y derecho

  Este es el quinto (y último) artículo de la serie sobre  Spring Boot  que comenzamos el mes de Febrero. Estos son los anteriores: Introducción Página inicial con Bootstrap Spring Boot: Trabajando con bases de datos Spring Boot: Seguridad básica El proyecto con el que estamos trabajando esta en GitHub y esta es su URL:   https://github.com/tecnificados/boot Hoy vamos a coger todo lo que hemos aprendido y transformar nuestras diferentes pruebas en un CRUD de Incidencias.  Antes de nada, ¿qué es eso? CRUD es un acrónimo de CREATE, READ, UPDATE Y DELETE. Cuando alguien nos habla de este término, a lo que se refiere es a un proyecto que permite realizar estas operaciones sobre una o más entidades. En los diferentes commits que he hecho estos dos días he ido añadiendo operación por operación los diversos cambios en un nuevo Controlador ( IncidenciasController ), y añadiendo las diferentes JSPs: Creo que se pueden seguir muy fácilmente, por lo que esta vez no vo...

Spring Boot: Trabajando con bases de datos

Este es el tercer artículo de la serie sobre  Spring Boot  que comenzamos hace el mes pasado, los anteriores los tienes aquí: Introducción Página inicial con Bootstrap El proyecto con el que estamos trabajando esta en GitHub en la siguiente URL:  https://github.com/tecnificados/boot Hoy vamos a empezar a trabajar con bases de datos, la configuración ya la establecimos en el anterior post, así que hoy vamos empezar a utilizar esa conexión. Los cambios que vamos a comentar se corresponden con los commits del 12 de Marzo de 2021: Clases de acceso a datos, modelo, servicio y script de BBDD (Commit 92a6848 ) El objetivo de hoy es crear un tabla y trabajar con ella (insertando, borrando,...), así que lo primero que tenemos que hacer es crear esa tabla a través de un script, lo tenéis en el fichero ' incidencia.sql ' en la carpeta ' scripts ': CREATE TABLE incidencia (   id int(11) NOT NULL,   titulo varchar(255) DEFAULT NULL,   descripcion varch...

Spring Boot: Página inicial con Bootstrap

  Este es el segundo artículo de la serie sobre Spring Boot que comenzamos hace dos semanas, si quieres ver el primero puedes acceder pulsando aquí . En el primer artículo vimos cómo descargar nuestro proyecto configurado para nuestros intereses y listo para ser importado en nuestro IDE (nosotros usaremos Eclipse ). Lo primero que vamos a hacer es importar el proyecto: File -> Import Existing Maven Projects Seleccionamos el fichero pom.xml en la carpeta donde lo hemos descomprimido y esperamos unos segundos Cuando acabe la importación, esta es la estructura que nos aparecerá: Con Spring Boot no necesitamos configurar el servidor, ya se encarga él de facilitarnos la vida. Lo único que tenemos que hacer es arrancar la clase BootApplication.java , que se encargará de arrancar Tomcat y dejar nuestra aplicación funcionando en el puerto 8080.  Y si todo fuera bien, podríamos acceder a través de la URL:  http://localhost:8080/ Pero ahora mismo tenemos un error de conexión c...

Java 15 ya está aquí

  Hace unos días que se ha liberado la versión 15 de nuestro lenguaje de programación favorito, y ya podemos probarla y actualizarnos a través de la versión OPENJDK. Se puede consultar el estado y las novedades que contiene en la URL:   https://openjdk.java.net/projects/jdk/15 Y para descargarla podemos ir al siguiente enlace:  https://jdk.java.net/15/ Para actualizarnos (en Windows), sólo tenemos que descargarnos el zip, descomprimirlo y actualizar nuestras variables de entorno: Yo lo he descomprimido en C:\java\OpenJDK15 Y he actualizado las variables de sistema "JAVA_HOME": Y "Path": Para verificarlo, solo tenemos que lanzar un "java -versión" en nuestra consola ("cmd"): Con esto, ya estamos listos para utilizar las mejoras que trae (tengo muchas ganas de probar los bloques de texto). Para acabar he hecho un pequeño proyecto de consola para consumir URLs a través del verbo HEAD, con esto podremos controlar de manera rápida si esa URL existe, s...

Certificados SSL gratis para tod@s

Hace ya más de dos años aparecieron estos certificados que nos permiten de manera gratuita, aplicar el protocolo SSL a nuestros dominios y subdominios (ya podemos navegar vía https ).  Esto nos viene muy bien ya que ahora que todos los navegadores más comunes, catalogan las páginas sin https como no seguras. Estos certificados vienen de un proyecto financiado por la organización EFF (Electronic Frontier Foundation) y la Fundación Linux . Su objetivo es mejorar la seguridad de la web y ya de paso, permitir que cualquier persona pueda certificar su dominio, sin tener que desembolsar nada de dinero. Todos los navegadores ya vienen de serie con sus CEAs así que no hay que andar peleándose con los almacenes de certificados del sistema operativo, o de cada navegador. Si necesitáis más información podéis acceder a su web: https://letsencrypt.org/ Es muy fácil solicitar el certificado que necesitemos y renovarlo automaticamente. Además gracias a la comunidad (q...

Curso 2018 - 2019: declaración de intenciones

Ya estamos en septiembre y toca plantearse que vamos a hacer este año en nuestro blog. Todo el equipo ha estado hablando y de momento nos vamos a proponer un par de metas sencillas, que luego seguro que las iremos complicando. Meta 1: crear un repositorio en Github e ir publicando todo lo que vayamos haciendo y algunas cosillas que hicimos el curso pasado para Conquista Iberia Meta 2: ir construyendo poco a poco una aplicación web comentando los pasos que seguiremos, e ir viendo todos los avances a través de commits en Github Cosas que se nos han quedado en el tintero: aplicación móvil sencilla que os comente hace un par de artículos: no ha podido ser, se me ha complicado el verano, así que la dejo aparcada. evolución de Conquista Iberia: imposible de momento, tendríamos que tener un hackaton de una semana para poder pulir el juego tal y como esta ahora mismo. liberar el código de Conquista Iberia: la verdad es que no gustaría hacerlo, pero sin darle una vuelta para to...

Pausa

Hace ya unas semana que ha terminado el primer torneo de Conquista Iberia. De momento, vamos a ponernos en pausa durante lo que queda de Agosto. En breve volveréis a tener noticias nuestras.

Aplicaciones híbridas: PhoneGap

Uno de los temas que tengo pendiente este año (tengo que repasar mi lista, pero creo que no me quedan más) es publicar una aplicación en "Google Play Store". Pero cada vez que tengo que pensar en instalar el entorno de desarrollo de Android se me quitan las ganas. Así que he pensado en intentar crear una aplicación híbrida, en lugar de nativa. Y después de mirar un poco, he decidido utilizar PhoneGap. Puedo desarrollar aplicaciones móviles utilizando HTML5 y no me limito a una sola plataforma. Además he encontrado un curso "ligerito" en Miriada y en mis tiempos libres de Julio y Agosto voy a ir haciéndolo poco a poco. Aquí la URL del curso: https://miriadax.net/web/creando-apps-aprende-a-programar-aplicaciones-moviles-5-edicion-/inicio De momento estoy pensando en hacer una primera aplicación que sea un juego clásico, aunque tampoco descarto hacer un pequeño cliente para Conquista Iberia.

Conquista Iberia: mañana salimos

Mañana es el gran día, publicaremos "Conquista Iberia", que es la nueva versión de "Conquista Castilla y León". Hemos añadido las mejoras que vistéis en la beta de hace unas semanas, y siguendo vuestros consejos hemos corregido algunas incidencias y programado nuevas características. Os enumero todos los cambios desde "Conquista Castilla y León": Nuevos territorios añadidos: todos los municipios de la península ibérica (España y Portugal) Todas las tablas ahora se pueden ordenar por las distintas columnas Territorios libres y ocupados ahora se cargan al entrar Defensas de territorios libres calculados proporcionalmente a la población. ¿Cómo explicamos esto? Con un ejemplo: si una población tiene menos de 1000 habitantes, tiene unos defensores entre 2 y 5. Para más de 1000, se hace una regla de 3 para calcular el máximo y el mínimo.  Las defensas de los territorios libres, ahora aparecen al lado de su población.  Invita a tus amig@s: ahora pued...

Conquista Iberia: necesitamos unos días más

Acabamos de tomar la decisión de postponer la salida de "Conquista Ibería". Estamos mejorando un par de pantallas, y casí hemos tenido que rehacer la lógica desde cero... Esto nos ha llevado más tiempo del que pensabamos y preferimos no arriesgarnos. Os seguiremos informando. Ya queda menos!!!!

Conquista Iberia: beta cerrada

El fin de semana pasado estuvimos trabajando en "Conquista Iberia", publicamos su beta el domingo por la noche, y esta semana la hemos estado probando. Salvo unos problemitas que ya tenemos controlados, ha sido un éxito. Este fin de semana añadiremos unas mejoras y el martes 26 saldremos con el primer torneo oficial. Muchas gracias a los betatesters y enhorabuena a Esther que arrasa hasta en las betas.