# Jarroba.com > Free, in-depth computing articles in Spanish (and some in English) since 2011: programming, databases, networks, software engineering, CI/CD, DevOps and artificial intelligence. Written by Ramón Invarato and Ricardo Moya (Madrid, Spain). ## How to read this site - Every article and page has a clean **Markdown** version: add `.md` to its URL (e.g. `https://jarroba.com/la-trampa-del-agente-libre.md`). It includes title, author, dates, license, series and the full text with code blocks and their languages, without menus or ads. - **Search API** (JSON): `https://jarroba.com/wp-json/jarroba/v1/buscar?q=&lang=es|en` → up to 7 articles with title, URL and date. - **License:** CC BY-NC-SA 3.0 (https://creativecommons.org/licenses/by-nc-sa/3.0/). Reuse is allowed for non-commercial purposes with attribution (title, author, link to jarroba.com) and share-alike. Please cite and link the article URL. - **Free online tools** (130+ in-browser utilities, with their own instructions for AIs): https://jarroba.com/tools/en/llms.txt ## Artículos en español ### Serie: Apache Kafka - [Apache Kafka](https://jarroba.com/apache-kafka.md): part 1 - [Instalar Apache Kafka](https://jarroba.com/instalar-apache-kafka.md): part 2 - [Consumidores y Productores de Apache Kafka con Java y Python](https://jarroba.com/consumidores-y-productores-de-apache-kafka-con-java-y-python.md): part 3 - [Clúster Apache Kafka tolerante a fallos y alta disponibilidad](https://jarroba.com/cluster-apache-kafka-tolerante-a-fallos-y-alta-disponibilidad.md): part 4 ### Serie: CI/CD y la IA: De la teoría a la práctica - [CI/CD y la IA: De la teoría a la práctica](https://jarroba.com/ci-cd-y-la-ia-de-la-teoria-a-la-practica.md): introduction - [CI/CD: Introducción — qué es, por qué importa y quién lo hace](https://jarroba.com/ci-cd-introduccion-que-es-por-que-importa-y-quien-lo-hace.md): part 1 - [CI/CD: Conceptos básicos — pipeline, job, stage, step y gates](https://jarroba.com/ci-cd-conceptos-basicos-pipeline-job-stage-step-y-gates.md): part 2 - [CI/CD: Branching, Git Flow y Pull Requests](https://jarroba.com/ci-cd-branching-git-flow-y-pull-requests.md): part 3 - [Pre-CI: Arquitectura general del pipeline CI/CD y comprobaciones previas](https://jarroba.com/pre-ci-arquitectura-general-del-pipeline-ci-cd-y-comprobaciones-previas.md): part 4 - [CI (Integración Continua): análisis, tests, calidad y seguridad](https://jarroba.com/ci-integracion-continua-analisis-tests-calidad-y-seguridad.md): part 5 - [CD (Entrega Continua) — Parte 1: empaquetado, SBOM y remediación](https://jarroba.com/cd-entrega-continua-parte-1-empaquetado-sbom-y-remediacion.md): part 6 - [CD (Entrega Continua) — Parte 2: Image Scan y Service Tests](https://jarroba.com/cd-entrega-continua-parte-2-image-scan-y-service-tests.md): part 7 - [CD (Entrega Continua) — Parte 3: Deploy a Dev y Smoke Tests](https://jarroba.com/cd-entrega-continua-parte-3-deploy-a-dev-y-smoke-tests.md): part 8 - [CD (Entrega Continua) — Parte 4: Deploy a Staging y Performance Smoke Tests](https://jarroba.com/cd-entrega-continua-parte-4-deploy-a-staging-y-performance-smoke-tests.md): part 9 - [CD (Entrega Continua) — Parte 5: LCA — Load, Stress y Chaos Engineering](https://jarroba.com/cd-entrega-continua-parte-5-lca-load-stress-y-chaos-engineering.md): part 10 - [CD (Entrega Continua) — Parte 6: Validaciones finales, Manual Approval y Deploy a Producción](https://jarroba.com/cd-entrega-continua-parte-6-validaciones-finales-manual-approval-y-deploy-a-produccion.md): part 11 ### Serie: Curso de bases de datos con MySQL - [Curso de Bases de Datos con MySql -Parte I- (Video)](https://jarroba.com/curso-de-bases-de-datos-con-mysql-parte-i-video-instalacion-del-mysql-server-y-workbench.md): part 1 - [Curso de Bases de Datos con MySql -Parte II- (Video) -Entidad/Relación-](https://jarroba.com/curso-de-bases-de-datos-con-mysql-parte-ii-video.md): part 2 - [Curso de Bases de Datos con MySql -Parte III- (Video) Definition/Manipulation](https://jarroba.com/curso-de-bases-de-datos-con-mysql-parte-iii-video-definitionmanipulation.md): part 3 - [Curso de Bases de Datos con MySql -Parte IV- (Video) «INNER JOIN»](https://jarroba.com/curso-de-bases-de-datos-con-mysql-parte-iv-video-inner-join.md): part 4 - [Curso de Bases de Datos con MySql -Parte V- (Video) «Group By»](https://jarroba.com/curso-bases-datos-mysql-parte-v-video-group-by.md): part 5 ### Serie: Curso de Python - [Curso de Python rápido, fácil, especializado y gratuito](https://jarroba.com/curso-de-python.md): introduction - [Curso de Python – 0. Entorno de desarrollo para Python](https://jarroba.com/curso-de-python-0-entorno-de-desarrollo-para-python.md): part 1 - [Curso de Python – 1. Introducción](https://jarroba.com/curso-de-python-1-introduccion.md): part 2 - [Curso de Python – 2. Tipos básicos de datos](https://jarroba.com/curso-de-python-2-tipos-basicos-de-datos.md): part 3 - [Curso de Python – 3. Colecciones](https://jarroba.com/curso-de-python-3-colecciones.md): part 4 - [Curso de Python – 4. Estructuras de control de flujo](https://jarroba.com/curso-de-python-4-estructuras-de-control-de-flujo.md): part 5 - [Curso de Python – 5. Funciones](https://jarroba.com/curso-de-python-5-funciones.md): part 6 - [Curso de Python – 6. Bibliotecas/Paquetes](https://jarroba.com/curso-de-python-6-bilbiotecas-paquetes.md): part 7 - [Curso de Python – 7. Excepciones](https://jarroba.com/curso-de-python-7-excepciones.md): part 8 - [Curso de Python – 8. Ficheros](https://jarroba.com/curso-de-python-8-ficheros.md): part 9 ### Serie: Docker - [Docker básico: Docker Desktop y objetos Docker](https://jarroba.com/docker-basico-docker-desktop-y-objetos-docker.md): part 1 - [Docker Compose](https://jarroba.com/docker-compose.md): part 2 - [Docker compose en un proyecto](https://jarroba.com/docker-compose-en-un-proyecto.md): part 3 - [Imágenes Docker](https://jarroba.com/imagenes-docker.md): part 4 - [Dockerfile: Directivas y Dockerizar proyectos](https://jarroba.com/dockerfile-directivas-y-dockerizar-proyectos.md): part 5 - [Dockerfile avanzado: multietapa, repositorio y trucos](https://jarroba.com/dockerfile-avanzado-multietapa-repositorio-y-trucos.md): part 6 ### Serie: Entornos de Python - [Entornos de Python: común y Anaconda (base)](https://jarroba.com/entornos-de-python-anaconda-y-comun.md): part 1 - [Entornos virtuales de Python: común y Anaconda](https://jarroba.com/entornos-virtuales-de-python-comun-y-anaconda.md): part 2 - [Pipenv: gestor de entornos virtuales de Python](https://jarroba.com/pipenv-gestor-de-entornos-virtuales-de-python.md): part 3 ### Serie: Fragments en Android - [Fragments (fragmentos) en Android](https://jarroba.com/fragments-fragmentos-en-android.md): part 1 - [Programar Fragments (fragmentos) en Android](https://jarroba.com/programar-fragments-fragmentos-en-android.md): part 2 ### Serie: IA en la empresa: Expectativas vs. Realidad - [IA en la empresa: Expectativas vs. Realidad ¿Quién la aprovecha y a qué precio?](https://jarroba.com/ia-empresa-expectativas-vs-realidad-indice.md): introduction - [Los intereses de cada actor en la adopción de la IA empresarial](https://jarroba.com/actores-intereses-ia-empresa-ceo-desarrollador.md): part 1 - [Lo que la IA puede y no puede hacer hoy en el desarrollo de software](https://jarroba.com/lo-que-la-ia-puede-y-no-puede-hacer-hoy-en-el-desarrollo-de-software.md): part 2 - [El coste real de la IA: de la promesa democrática al modelo enterprise](https://jarroba.com/el-coste-real-de-la-ia-de-la-promesa-democratica-al-modelo-enterprise.md): part 3 - [Cómo adoptar IA en la empresa sin cometer los errores más comunes](https://jarroba.com/como-adoptar-ia-en-la-empresa-sin-cometer-los-errores-mas-comunes.md): part 4 ### Serie: La IA y tú - [La IA y tú: la serie completa para sacarle ventaja sin perderte a ti](https://jarroba.com/la-ia-y-tu-la-serie-completa-para-sacarle-ventaja-sin-perderte-a-ti.md): introduction - [«No quiero nada hecho con IA» – La paradoja del consumidor](https://jarroba.com/no-quiero-nada-hecho-con-ia-la-paradoja-del-consumidor.md): part 1 - [Por qué pierdes con (y contra) la IA](https://jarroba.com/por-que-pierdes-con-y-contra-la-ia.md): part 2 - [Lo que tú tienes y la IA no](https://jarroba.com/lo-que-tu-tienes-y-la-ia-no.md): part 3 - [La trampa del agente libre](https://jarroba.com/la-trampa-del-agente-libre.md): part 4 - [A velocidad de máquina: cómo la IA ha roto el equilibrio en ciberseguridad](https://jarroba.com/a-velocidad-de-maquina-como-la-ia-ha-roto-el-equilibrio-en-ciberseguridad.md): part 5 - [La regulación de la IA: el dilema entre proteger y no quedarse atrás](https://jarroba.com/la-regulacion-de-la-ia-el-dilema-entre-proteger-y-no-quedarse-atras.md): part 6 - [Cómo evitar ser sustituido sin venderte a la IA](https://jarroba.com/como-evitar-ser-sustituido-sin-venderte-a-la-ia.md): part 7 - [Trucos para usar la IA bien](https://jarroba.com/trucos-para-usar-la-ia-bien.md): part 8 - [«Lo que funciona no se toca» y otras frases que ya no cuelan](https://jarroba.com/lo-que-funciona-no-se-toca-y-otras-frases-que-ya-no-cuelan.md): part 9 ### Serie: MEAN: Mongo, Express, Angular y Node - [MEAN (Mongo-Express-Angular-Node) Desarrollo Full Stack JavaScript (Parte I)](https://jarroba.com/mean-mongo-express-angular-node-desarrollo-full-stack-javascript-parte-i.md): part 1 - [MEAN (Mongo-Express-Angular-Node) Ejemplo de Aplicación Web (Parte II)](https://jarroba.com/mean-mongo-express-angular-node-ejemplo-de-aplicacion-web-parte-ii.md): part 2 ### Serie: Multitarea e hilos en Java - [Multitarea e Hilos en Java con ejemplos (Thread & Runnable)](https://jarroba.com/multitarea-e-hilos-en-java-con-ejemplos-thread-runnable.md): part 1 - [Multitarea e Hilos en Java con ejemplos II (Runnable & Executors)](https://jarroba.com/multitarea-e-hilos-en-java-con-ejemplos-ii-runnable-executors.md): part 2 ### Serie: Multitarea en Android - [Multitarea en Android](https://jarroba.com/multitarea-en-android.md): part 1 - [AsyncTask en Android](https://jarroba.com/asynctask-en-android.md): part 2 ### Serie: Pandas en Python con ejemplos - [Pandas en Python, con ejemplos -Parte I- Introducción](https://jarroba.com/pandas-python-ejemplos-parte-i-introduccion.md): part 1 - [Pandas en Python, con ejemplos -Parte II- Lectura-Escritura, Merge & GroupBy](https://jarroba.com/pandas-python-ejemplos-parte-ii-io-merge-groupby.md): part 2 - [Pandas en Python, con ejemplos -Parte III- Pivot_table](https://jarroba.com/pandas-python-ejemplos-parte-iii-pivot_table.md): part 3 ### Serie: Polimorfismo en Java - [Polimorfismo en Java (Parte I), con ejemplos](https://jarroba.com/polimorfismo-en-java-parte-i-con-ejemplos.md): part 1 - [Polimorfismo en Java -Interface- (Parte II), con ejemplos](https://jarroba.com/polimorfismo-en-java-interface-parte-ii-con-ejemplos.md): part 2 ### Serie: ¿Qué es la innovación? - [¿Qué es la innovación? Parte I (Conceptos y Ejemplos)](https://jarroba.com/que-es-la-innovacion-parte-i-conceptos-y-ejemplos.md): part 1 - [¿Qué es la innovación? Parte II (Modelo Social de Adopción de Tecnologías)](https://jarroba.com/que-es-la-innovacion-parte-ii-modelo-social-de-adopcion-de-tecnologias.md): part 2 - [¿Que es la innovación? Parte III (Tipos de innovación)](https://jarroba.com/que-es-la-innovacion-parte-iii-tipos-de-innovacion.md): part 3 - [¿Qué es la innovación? Parte IV (Incertidumbre en la Innovación)](https://jarroba.com/que-es-la-innovacion-parte-iv-la-incertidumbre-en-la-innovacion.md): part 4 ### Aplicaciones Móviles - [Cómo usar múltiples cuentas de GitHub (por https)](https://jarroba.com/usar-multiples-cuentas-github-https.md): Cómo usar múltiples cuentas de GitHub por https - [Arquitectura Android – ART vs Dalvik](https://jarroba.com/arquitectura-android-art-vs-dalvik.md): Explicación de la arquitectura Android técnica y fácil. Comparación entre ART vs DALVIK. Contenido APK. Compilación AOT y JIT. Diferencia de Odex y Deodex. - [Libro Android 100% Gratis](https://jarroba.com/libro-android-100-gratis.md): Libro de Android 100% gratis para aprender todo lo que se necesita saber sobre Android. Explicado de una manera amena y con cientos de imágenes. - [Atributos para diseñadores Android (tools:xxxxx)](https://jarroba.com/atributos-para-disenadores-android-toolsxxxxx.md): Repaso a los atributos tools:xxxxx de Android: ignore, targetApi, context, layout, locale, listitem y showIn, para diseñar vistas XML con más comodidad. - [inflate() en Android – Inflar y adjuntar Views](https://jarroba.com/inflate-en-android-inflar-y-adjuntar-views.md): Qué hace realmente inflate() de LayoutInflater en Android: la diferencia entre inflar y adjuntar Views, sus tres parámetros y su uso en Fragment, Dialog, Menu y Adapter. - [Error Android- El SDK de Android no permite actualizar](https://jarroba.com/error-android-el-sdk-de-android-no-permite-actualizar.md): Qué hacer cuando el SDK Manager de Android no puede renombrar una carpeta al actualizar y el botón «Yes» no sirve: cerrar Eclipse o liberar el archivo en Windows. - [Acelerar el emulador de Android](https://jarroba.com/acelerar-el-emulador-de-android.md): Cómo acelerar el emulador de Android con HAXM de Intel: instalar las imágenes x86 Atom, activar la virtualización en la BIOS y configurar el AVD en Eclipse. - [Error Android – Eclipse no muestra los botones de Android después de instalar el ADT y el SDK](https://jarroba.com/error-android-eclipse-no-muestra-los-botones-de-android-despues-de-instalar-el-adt-y-el-sdk.md): Si tras instalar el ADT y el SDK Eclipse no muestra los botones del SDK Manager ni del AVD Manager, se arregla desde Window > Customize Perspective. - [Auto Layout iOS 7 (Video)](https://jarroba.com/auto-layout-ios-7-video.md): Videotutorial para adaptar la interfaz de tu app iOS a las distintas pantallas de iPhone tras el iPhone 5, ajustando los elementos con Auto Layout. - [ListView de Android en pocas líneas](https://jarroba.com/listview-de-android-en-pocas-lineas.md): Crea un listado en Android con muy poco código usando ListActivity, MatrixCursor y SimpleCursorAdapter, y detecta el clic en cada elemento de la lista. - [Context de Android](https://jarroba.com/context-de-android.md): Qué es el Context de Android, qué tipos hay, cómo obtenerlo con this o getApplicationContext() y cómo evitar fugas de memoria al guardarlo. - [Tab Bar Controller en Objective-C -Ejemplo- (Video)](https://jarroba.com/tab-bar-controller-en-objective-c-ejemplo-video.md): Aprende a trabajar con un Tab Bar Controller en Objective-C y a gestionar de forma independiente cada una de sus vistas, con un vídeo y el código para mostrar fecha y hora. - [Collection View (Grids) en Objective-C -Ejemplo- (Video)](https://jarroba.com/collection-view-grids-en-objective-c-ejemplo-video.md): Videotutorial para crear un Collection View (UICollectionView) o grid dinámico en iPhone con Objective-C, usando un UINavigationBar y segues entre vistas. - [Reproducción de Sonidos en Android (Video)](https://jarroba.com/reproduccion-de-sonidos-en-android.md): Aprende a reproducir sonidos y ficheros de audio en Android con la librería MediaPlayer, y en qué se diferencia de SoundPool, pensada para audios pequeños. - [UITableView en Objective-C -Ejemplo- (Video)](https://jarroba.com/uitableview-en-objective-c-ejemplo-video.md): Videotutorial para crear tablas dinámicas en iPhone con UITableView en Objective-C, usando UINavigationBar y Segues para volver a la tabla. - [Error Android – java.lang.NoClassDefFoundError sin motivo aparente](https://jarroba.com/error-android-java-lang-noclassdeffounderror-sin-motivo-aparente.md): Cómo resolver el error NoClassDefFoundError en Android tras actualizar el ADT: limpiar el proyecto y marcar los .jar de la carpeta libs en Build Path. - [Expansión al ListView o listado en Android](https://jarroba.com/expansion-listview.md): Cómo pasar de un ListView a un GridView o a un Spinner personalizado en Android, y cómo arreglar las filas con CheckBox o RadioButton que no se pulsan. - [Introducción a Android Studio (Video)](https://jarroba.com/introduccion-a-android-studio-video.md): Primeros pasos con Android Studio: configuración básica del IDE, comparación de su estructura de proyecto con Eclipse y cómo arreglar el arranque en Windows con JAVA_HOME. - [Intent – Pasar datos entre Activities – App Android (Video)](https://jarroba.com/intent-pasar-datos-entre-activity-app-android-video.md): Aprende a pasar datos de un Activity a otro en Android con Eclipse: creas un Intent en el OnClickListener del botón y recoges nombre y apellido en el segundo Activity. - [ListView o listado en Android](https://jarroba.com/listview-o-listado-en-android.md): Aprende como crear ListView o listado en Android de una manera muy rápida y eficaz. Todo lo que necesitas saber sobre ListView y Adapter en Android. - [UIWebView -iPhone- (Vídeo)](https://jarroba.com/uiwebview-iphone-video.md): Videotutorial para iPhone: carga una página web en un UIWebView y muestra un indicador de actividad mientras carga, requisito para que Apple apruebe la app. - [Múltiples Pickerviews en una vista -iPhone- (Video)](https://jarroba.com/multiples-pickerviews-en-una-vista-iphone-video.md): Vídeo en el que se simula tener varios pickers en una misma vista de iPhone usando un solo UIPickerView que muestra el contenido de varios NSArray. - [Pasar de un ViewController a otro automáticamente (iPhone)](https://jarroba.com/pasar-de-un-viewcontroller-a-otro-automaticamente-iphone.md): Cambia de un ViewController a otro en iOS sin que el usuario toque nada: usa un Storyboard ID y un timer que, a los dos segundos, ejecuta el método pasarPantalla. - [Error Android – La conexión al adb se ha caído y ha ocurrido un problema grave](https://jarroba.com/error-android-la-conexion-al-adb-se-ha-caido-y-ha-ocurrido-un-problema-grave.md): Cómo arreglar en Eclipse el error «The connection to adb is down»: reinicia el adb con Reset adb desde la vista Devices o con adb kill-server y start-server. - [Error Android – La instalación del SDK no detecta el JDK de Java](https://jarroba.com/error-android-instalacion-no-detecta-jdk-de-java.md): Qué hacer cuando el instalador del SDK de Android no detecta el JDK de Java: instalarlo, forzar su detección con javac o crear la variable JAVA_HOME en Windows 8. - [Activity – entender y usar una Actividad](https://jarroba.com/activity-entender-y-usar-una-actividad.md): Qué es una Activity de Android, cómo funciona su ciclo de vida y cómo abrir una actividad desde otra con un Intent y el AndroidManifest, con un ejemplo completo. - [NSTimer en Objective-C -Ejemplo- (Video)](https://jarroba.com/nstimer-en-objective-c-ejemplo-video.md): Vídeo tutorial de NSTimer en Objective-C: crea una app sencilla que incrementa una variable entera cada segundo, o con el intervalo que prefieras. - [Pasar Datos entre ViewControllers usando StoryBoards y Segues (Video)](https://jarroba.com/pasar-datos-entre-viewcontrollers-usando-storyboards-y-segues.md): Aprende a pasar dos variables NSString de un ViewController a otro con StoryBoards y segues, usando el método prepareForSegue. Incluye vídeo y proyecto. - [Cómo solucionar errores en Android](https://jarroba.com/como-solucionar-errores-en-android.md): Recopilación de soluciones a errores habituales al programar en Android con Eclipse: problemas con el ADT y el SDK, adb, el emulador, certificados y librerías. - [[DEPRECATED] Obtener FingerPrint y ApiKey para Android Maps (VIDEO)](https://jarroba.com/obtener-fingerprint-y-apikey-para-android-maps-video.md): Video-tutorial para obtener con keytool el FingerPrint del certificado de debug y del propio, y generar la ApiKey de Android Maps para el emulador y el Market. - [Preparar las herramientas necesarias para programar en Android](https://jarroba.com/preparar-las-herramientas-necesarias-para-programar-en-android.md): Repasa las herramientas del SDK de Android en Eclipse: el SDK Manager, la creación de un emulador con el AVD Manager y el filtrado de mensajes en LogCat. - [Instalar el SDK de Android y vincularlo con Eclipse](https://jarroba.com/instalar-el-sdk-de-android-y-vincularlo-con-eclipse.md): Aprende a instalar el SDK de Android r20, descargar una versión del sistema para el emulador y vincularlo con Eclipse mediante el plugin ADT. - [Error Android – El emulador se desconecta y no lanza la aplicación](https://jarroba.com/el-emulador-se-desconecta-y-no-lanza-la-aplicacion.md): Qué hacer cuando Eclipse muestra «Emulator-XXXX disconnected! Cancelling activity launch» y no lanza la app en el emulador de Android: causas y solución. - [Error Android – Error en los métodos con anotaciones @Override, de tipo Listener o sobrescritos](https://jarroba.com/error-android-error-en-los-metodos-con-anotaciones-override-de-tipo-listener-o-sobrescritos.md): Qué hacer cuando Eclipse marca error en todas las anotaciones @Override al importar código Android: causas ligadas a Java y el JRE, y cómo resolverlo. - [Error Android – Problemas con algún proyecto importado o de ejemplo de Android](https://jarroba.com/error-android-problemas-con-algun-proyecto-importado-o-de-ejemplo-de-android.md): Cómo resolver el error «Unable to read AndroidManifest.xml» al importar un proyecto de ejemplo en Eclipse: copiarlo fuera del workspace y crearlo desde código existente. - [Error Android – Problemas al instalar el ADT o el SDK](https://jarroba.com/error-android-problemas-al-instalar-el-adt-o-el-sdk.md): Cómo resolver el error «Cannot complete the install because one or more required items could not be found» al instalar el ADT o el SDK de Android en Eclipse. - [Error Android – Error en las librerías importadas](https://jarroba.com/error-android-error-en-las-librerias-importadas.md): Cómo resolver en Eclipse el error «Conversion to Dalvik format failed with error 1» limpiando las librerías del proyecto Android y revisando el Java Build Path. - [Error Android – Certificado diferente al intentar reinstalar la aplicación en el emulador o el teléfono](https://jarroba.com/error-android-certificado-diferente-al-intentar-reinstalar-la-aplicacion-en-el-emulador-o-el-telefono.md): Soluciona el error de Android «Re-installation failed due to different application signatures»: desinstala la app o copia el debug.keystore en Eclipse. - [Error Android – Certificado de depuración caducado](https://jarroba.com/error-android-certificado-de-depuracion-caducado.md): Si tu proyecto Android falla al cumplir un año por el certificado de depuración caducado, aprende a localizar y borrar el debug.keystore en Eclipse. - [Error Android – Referencias perdidas](https://jarroba.com/error-android-referencias-perdidas.md): Cómo solucionar en Android el error «The type java.lang.String cannot be resolved» eliminando los imports de la clase y reorganizándolos con Control+Shift+O. - [Error Android – Se requiere un compilador de nivel superior](https://jarroba.com/error-android-se-requiere-un-compilador-de-nivel-superior.md): Cómo corregir en Eclipse el error de Android «requires compiler compliance level»: Fix Project Properties, autocorrecciones y cambio del nivel del compilador Java. - [Error Android – Se requiere un ADT superior](https://jarroba.com/error-android-se-requiere-un-adt-superior.md): Cómo solucionar el error de Android que pide una versión superior del ADT: instala o actualiza el plugin desde Help > Install New Software en Eclipse. - [Error Android – No se encuentra el SDK de android](https://jarroba.com/error-android-no-se-encuentra-el-sdk-de-android.md): Cómo solucionar el error "Location of the Android SDK has not been setup" en Eclipse al crear un espacio de trabajo, indicando la ruta del SDK en Preferences. - [Error Android – Salto de algún archivo indexado](https://jarroba.com/error-android-salto-de-algun-archivo-indexado.md): Cómo resolver en Android el error «skipping index file»: elimina el archivo del proyecto, límpialo con Project/Clean y vuelve a copiar el archivo. - [Error Android – Eclipse lanza un error que no existe por ningún lado](https://jarroba.com/error-android-eclipse-lanza-un-error-que-no-existe-por-ningun-lado.md): Eclipse marca una X roja en el proyecto Android sin error real: R.java no se regenera. Seis soluciones, de nombres de recursos en res a Project > Clean. - [Error Android – El log no muestra nada](https://jarroba.com/error-android-el-log-no-muestra-nada.md): El LogCat de Android aparece vacío aunque el emulador o el dispositivo físico estén conectados. Te cuento cómo solucionarlo reiniciando el emulador o Eclipse. - [Error Android – Aplicación no especifica el nivel de la API](https://jarroba.com/error-android-aplicacion-no-especifica-el-nivel-de-la-api.md): Cómo corregir el aviso «Application does not specify an API level requirement» de Android añadiendo uses-sdk con minSdkVersion en el Manifest.xml. ### Bases de Datos - [ETL: Extraer, Transformar y Cargar](https://jarroba.com/etl-extraer-transformar-y-cargar.md): ETL sirve para el procesamiento masivo de datos (Big Data), en tiempo real y se resume en: Extraer: obtener los datos desde diferentes fuentes. Transformar: normalizar todos los datos a una estructura que nos sea útil. Cargar: colocar los datos a algún lugar desde donde podamos utilizarlos. - [Instalar Apache Spark en cualquier sistema operativo y aprender a programarlo con Python, Scala o Java](https://jarroba.com/instalar-apache-spark-en-cualquier-sistema-operativo-y-aprender-a-programarlo-con-python-scala-o-java.md): Instalar y probar paso a paso Apache Spark con Python, Scala y Java. También con Jupyter Notebook y JupyterLab. Trabaja con Big Data fácil. - [Python MongoDB Driver (pymongo), con ejemplos (Video)](https://jarroba.com/python-mongodb-driver-pymongo-con-ejemplos.md): Vamos a ver un ejemplo de cómo utilizar las librerías de Python (pymongo) para MongoDB, en el que haremos las conexiones al servidor y un sencillo CRUD. - [Java MongoDB Driver, con ejemplos (Video)](https://jarroba.com/java-mongodb-driver-con-ejemplos.md): En esta entrada vamos a hacer un sencillo ejemplo de cómo utilizar el driver de Java para trabajar con MongoDB. - [Curso de MongoDB -Parte I- (Video) – «Introducción»](https://jarroba.com/curso-de-mongodb-parte-i-video.md): Primera parte del curso de MongoDB: qué es una base de datos orientada a documentos y cómo guarda los datos en BSON y JSON, comparada con MySQL en un ejemplo de clubes de fútbol. - [Instalar mongoDB en Mac OS X](https://jarroba.com/instalar-mongodb-en-mac-os-x.md): Instala MongoDB 2.4.6 en Mac OS X desde el terminal: descarga, carpetas, mongod.conf, servicio con launchd, PATH y acceso al shell con mongo. ### Diseño Hardware - [Instalación del Xilinx ISE](https://jarroba.com/tutorial-de-descarga-e-instalacion-xilinx-ise.md): Guía paso a paso para descargar e instalar Xilinx ISE WebPACK en Windows: crear la cuenta en Xilinx, ejecutar xsetup.exe y activar la licencia gratuita. ### Ingeniería del Software - [Patrón Singleton en Python, con ejemplos](https://jarroba.com/patron-singleton-python-ejemplos.md): En este artículo vamos a describir el patrón singleton en Python que es un patrón que tiene como objetivo garantizar que una clase sólo tenga una instancia. - [Patrón Singleton en Java, con ejemplos](https://jarroba.com/patron-singleton-en-java-con-ejemplos.md): El patrón de diseño "Singleton", que en ingeniería del software es un patrón diseñado para limitar la creación de objetos pertenecientes a una clase. - [Interface en Java 8 -Método Default- con ejemplos](https://jarroba.com/interface-en-java8-metodo-default-con-ejemplos.md): Aprende qué es el método default de las interfaces en Java 8, cómo añadir comportamiento sin tocar las clases que las implementan y simular herencia múltiple. - [Herencia en Java, con ejemplos](https://jarroba.com/herencia-en-la-programacion-orientada-a-objetos-ejemplo-en-java.md): Qué es la herencia en Java y cómo sacar factor común con extends, protected y super, usando como ejemplo las clases de la selección española de fútbol. - [Paradigmas de Programación](https://jarroba.com/paradigmas-de-programacion.md): Qué es un paradigma y qué son los paradigmas de programación: repaso al imperativo, funcional, lógico, orientado a objetos y a aspectos, con lenguajes de ejemplo. - [Modelo “4+1” vistas de Kruchten (para Dummies)](https://jarroba.com/modelo-41-vistas-de-kruchten-para-dummies.md): El modelo “4+1” de Kruchten, es un modelo de vistas diseñado por el profesor Kruchten y que encaja con el estándar “IEEE 1471-2000” que se utiliza para describir la arquitectura de un sistema software intensivo basado en el uso de múltiples puntos de vista. - [Lo que el modelado puede hacer por ti](https://jarroba.com/lo-que-el-modelado-puede-hacer-por-ti.md): Por qué modelar antes de programar: con el ejemplo de las ánforas romanas y un reproductor de música, verás cómo los modelos reducen errores y facilitan el trabajo en equipo. ### Inteligencia Artificial - [LangChain: lo que me hubiese gustado saber antes de empezar (Parte I)](https://jarroba.com/langchain-runnables-lcel-parte-i.md): Aprende LangChain Runnables y LCEL para crear pipelines con LLMs usando PromptTemplates y ChatPromptTemplates. Guía paso a paso para diseñar sistemas eficientes. - [Los TOP papers que hicieron posible la era de los LLMs](https://jarroba.com/los-top-papers-que-hicieron-posible-la-era-de-los-llms.md): Descubre los papers más importantes sobre LLMs que revolucionaron la IA: Transformers, GPT-3, BERT, LoRA y más. Guía completa de la evolución de los modelos de lenguaje desde 2017 hasta 2025. - [Cómo generar imágenes con tu cara usando Flux.1 ¡Gratis!](https://jarroba.com/como-generar-imagenes-con-tu-cara-usando-flux-1-gratis.md): Cómo entrenar un LoRA en Flux.1 para generar imágenes con tu cara de manera gratuita, utilizando el servicio de replicate.com - [CPU vs GPU en Deep Learning: ¿Cuánta diferencia hay en tiempo de entrenamiento?](https://jarroba.com/cpu-vs-gpu-en-deep-learning-cuanta-diferencia-hay-en-tiempo-de-entrenamiento.md): ¿Sabes cuál es la diferencia de tiempos en entrenar un modelo de Deep Learning con una CPU y una GPU. En este artículo lo demostramos. - [Toxicidad política en Tweets](https://jarroba.com/toxicidad-politica-en-tweets.md): Ejemplo de explotación de un modelo en Hugging Face de clasificación en Español creado por el equipo de NLP de Newtral que asigna a un tweet una puntuación sobre el nivel de "toxicidad política" que genera el tweet. - [¿Cómo instalar TensorFlow con GPU en Windows?](https://jarroba.com/como-instalar-tensorflow-con-gpu-en-windows.md): ¿Quieres instalar TensorFlow con GPU (en Windows) sin morir en el intento?. En este tutorial contamos cómo instalarlo paso a paso. - [¿Qué debemos saber para instalar correctamente TensorFlow con GPU?](https://jarroba.com/que-debemos-saber-para-instalar-correctamente-tensorflow-con-gpu.md): Instalar TensorFlow y hacer que funcione con GPU es muy fácil, solo hay que saber qué instalar y con qué versiones para que todo sea compatible. - [Mapa: Algoritmos de Aprendizaje y Conceptos del (Deep) Machine Learning](https://jarroba.com/mapa-algoritmos-de-aprendizaje-y-conceptos-del-deep-machine-learning.md): Mapa con los Algoritmos de Aprendizaje y conceptos del Machine Learning y el Deep Learning - [Scraping anónimo por la red TOR](https://jarroba.com/scraping-anonimo-la-red-tor.md): En este tutorial vamos a explicar como configurar un servidor proxy para realizar scraping de forma anónima por medio de la red TOR - [Análisis de resultados de fútbol con Power BI](https://jarroba.com/analisis-resultados-futbol-power-bi.md): El Business Intelligence no es más que un proceso que consiste en transformar los datos en información y la información en conocimiento para la toma de decisiones empresariales. - [Selección del número óptimo de Clusters](https://jarroba.com/seleccion-del-numero-optimo-clusters.md): Uno de los problemas que nos encontramos a la hora de aplicar alguno de los métodos de Clustering (K-means o EM) es la elección del número de Clusters. - [Expectation-maximization en Python y Scikit-learn, con ejemplos](https://jarroba.com/expectation-maximization-python-scikit-learn-ejemplos.md): El Expectation-maximization es un método estadístico de Clustering similar al K-means, pero con un enfoque probabilístico. Este método asume que todos los objetos han sido generados a partir de ‘k’ distribuciones de probabilidad - [K-means en Python y Scikit-learn, con ejemplos](https://jarroba.com/k-means-python-scikit-learn-ejemplos.md): El K-means es un método de Clustering que separa ‘K’ grupos de objetos, minimizando un concepto conocido como inercia, que es la suma de las distancias al cuadrado de cada objeto del Cluster a un punto ‘μ’ conocido como Centroide. - [¿Qué es el Clustering?](https://jarroba.com/que-es-el-clustering.md): El Clustering es una tarea que consiste en agrupar un conjunto de objetos (no etiquetados) en subconjuntos de objetos llamados Clusters. - [¿Qué es el Machine Learning?](https://jarroba.com/que-es-el-machine-learning.md): El Machine Learning (ML) o Aprendizaje Autónomo es una rama de la Inteligencia Artificial (IA) que tiene como objetivo crear sistemas capaces de aprender por ellos mismos a partir de un conjunto de datos (data set), sin ser programados de forma explícita.  - [Scraping en Python (BeautifulSoup), con ejemplos](https://jarroba.com/scraping-python-beautifulsoup-ejemplos.md): El Web Scraping son un conjunto de técnicas que se utilizan para obtener de forma automática el contenido que hay en páginas web a través de su código HTML. - [Scraping en Java (JSoup), con ejemplos](https://jarroba.com/scraping-java-jsoup-ejemplos.md): El Web Scraping son un conjunto de técnicas que se utilizan para obtener de forma automática el contenido que hay en páginas web a través de su código HTML. - [Data Set de resultados de partidos de fútbol para su predicción (Machine Learning)](https://jarroba.com/dataset-resultados-partidos-futbol-prediccion-machine-learning.md): Publicación de un Data Set de resultados de partidos de fútbol de la liga Española de primera y segunda división desde la temporada 1970-71 hasta la actual - [Sistemas de Recomendación basados en Filtrado Colaborativo (K-Vecinos)](https://jarroba.com/sistemas-de-recomendacion-basados-en-filtrado-colaborativo-k-vecinos.md): Cómo funciona el filtrado colaborativo basado en memoria con K-vecinos: métricas de similaridad (MSD, Pearson, coseno), predicción de votos y recomendaciones. - [Introducción a las Redes Neuronales – El perceptrón- (Video)](https://jarroba.com/introduccion-a-las-redes-neuronales-el-perceptron-video.md): Cómo es una neurona artificial y cómo se conectan en un perceptrón. Con las puertas lógicas AND, OR y XOR vemos cuántas neuronas hacen falta y cómo se entrena. - [¿Qué son los Sistemas de Recomendación?](https://jarroba.com/que-son-los-sistemas-de-recomendacion.md): Qué es un sistema de recomendación y cómo funcionan Amazon, YouTube o Filmaffinity. Repasamos sus cuatro tipos: por contenido, demográfico, colaborativo e híbrido. - [Algoritmos Genéticos – Ejemplo](https://jarroba.com/algoritmos-geneticos-ejemplo.md): Ejemplo paso a paso de un algoritmo genético que busca el máximo de una función en [0-15]: cromosomas binarios, fitness, emparejamiento y mutación. - [¿Qué es la Computación Evolutiva?](https://jarroba.com/computacion-evolutiva-ejemplo-con-un-algoritmo-genetico.md): Introducción a la computación evolutiva: la metáfora de la evolución, algoritmos genéticos y otras estrategias, cromosomas, mutación, función de fitness y cuándo usarla. - [Instalación del Python Robotics (Pyro) (VIDEO)](https://jarroba.com/instalacion-del-python-robotics-pyro-video.md): Videotutorial paso a paso para instalar Pyro (Python Robotics) en Windows XP, válido también para versiones más recientes, y qué ofrece este entorno de robótica e IA. ### Lenguajes de Programación - [Python vs Numpy vs GPU (TensorFlow): Tiempos de Ejecución](https://jarroba.com/python-vs-numpy-vs-gpu-tensorflow-tiempos-de-ejecucucion.md): ¿Quieres saber cuánto mejor es usar una GPU que una CPU para entrenar redes neuronales? En este artículo cuantificamos los tiempos de ejecución entre Python, Numpy y TensorFlow con GPU. - [Instalar Jupyter Notebook y JupyterLab por consola desde cero y aprender a usarlos](https://jarroba.com/instalar-jupyter-notebook-y-jupyterlab-por-consola-desde-cero-y-aprender-a-usarlos.md): Instalar Jupyter Notebook y JupyterLab fácilmente en cualquier sistema operativo y aprender a trabajar en entorno interactivo multilenguaje. - [Generadores en Python – La base del Streaming](https://jarroba.com/generadores-en-python-la-base-del-streaming.md): El generador en Python permite Streaming de datos en tiempo real y obtener cada dato cuando sea consumido. Óptimo equilibrio entre procesado y memoria. - [ReturnS en Python](https://jarroba.com/returns-en-python.md): Return en Python indica que "se ha terminado". Funciones con: Return y un valor, Return y varios valores, Return None, Return void, Sin Return, etc. - [Mapeo (Mapping) y Mapeo Mutable (MutableMapping) en Python](https://jarroba.com/mapeo-mapping-y-mapeo-mutable-mutablemapping-en-python.md): Crea tu propio diccionario en Python heredando de Mapping y MutableMapping: métodos mágicos, constructor, __repr__, __str__ y un iterador ordenado. - [Especializa tu propia colección en Python](https://jarroba.com/especializa-tu-propia-coleccion-en-python.md): Mapping, Sequence o Collection en Python, tú eliges cuál es la mejor para tu estructura de datos a crear. Explicación sencilla de todo lo que necesitas. - [Vistas de los diccionarios de Python: keys, values e items](https://jarroba.com/vistas-de-los-diccionarios-de-python-keys-values-e-items.md): En las Views de Python se puede modificar algo de su diccionario asociado (algún valor o clave) y se reflejará en el interior de las Views. - [repr y str de Python](https://jarroba.com/repr-y-str-de-python.md): Entender repr vs str en Python y poder utilizarlos en cualquier clase personalizada. Ejemplos de utilización de repr para depurar. - [Resumibles (Hashables) en Python](https://jarroba.com/resumibles-hashables-en-python.md): Hashable es un objeto cualquiera que cuando se le pide devuelve su “Código Hash” y este siempre va a ser el mismo en cualquier momento de su vida. - [Mutables e Inmutables](https://jarroba.com/mutables-e-inmutables.md): Que una variable pueda cambiar (mutable) o no (inmutable). Mutables como List, Dict o Set. Inmutables como String, Int, Float, Bool, Tuple, Range, Decimal. - [Nuestra propia Colección en Python](https://jarroba.com/nuestra-propia-coleccion-en-python.md): Aprende a crear tu propio Collection en Python ¿Sabes que Collection que hereda de Iterable, Container y Medible? Su uso paso a paso de manera sencilla. Aclara los conceptos que diferencian un Iterator de un Iterable. Y mucho más. - [Los trucos del Streaming: generadores, buffer y caché](https://jarroba.com/streaming-generadores-buffer-y-cache.md): Para crear un flujo de datos (Streaming) es necesario optimizar y buscar el equilibrio entre la memoria consumida con el tiempo de procesado de datos. Al almacenar los datos en Buffer para tener un flujo constante de información, generar datos procesándolos y guardar los resultados en caché para futuros usos. - [*args y **kwargs – python, con ejemplos](https://jarroba.com/args-kwargs-python-ejemplos.md): Una de las cosas que todos hemos pasado por alto al empezar a aprender Python y que más llaman la atención, son las funciones (o métodos) que tienen como parámetro *args y **kwargs. - [Binario: Combinación y conversión](https://jarroba.com/binario-combinacion-conversion.md): Aprende a construir las tablas de combinación de los sistemas de numeración y a convertir números entre binario, decimal, hexadecimal y octal con sumas y restas sencillas. - [venv (entornos virtuales) en python](https://jarroba.com/virtual-environments-venv-in-python.md): En esta entrada vamos a mostrar ejemplos de como usar entornos virtuales (venv) en python para aislar nuestros proyectos entre sí - [Cómo construir el JDK de Java 9](https://jarroba.com/construir-jdk-9.md): Este artículo pretende dar una idea sobre cómo construir el jdk 9 a partir del código fuente aprovechando el inminente lanzamiento del mismo. - [Inferencia tipos Java: El operador diamante](https://jarroba.com/inferencia-tipos-java-operador-diamante.md): El operador diamante de Java, permite quitarnos cierta verbosidad a la hora de escribir nuestro código - [Gson (JSON) en Java, con ejemplos](https://jarroba.com/gson-json-java-ejemplos.md): GSON es un API en Java, desarrollada por Google, que se utiliza para convertir objetos Java a JSON (serialización) y JSON a objetos Java (deserialización) - [6 formas de mejorar el rendimiento en python](https://jarroba.com/6-formas-mejorar-rendimiento-python.md): En este artículo vamos a describir una serie de recomendaciones y buenas prácticas para programar en Python (versión 2.7). - [Tablas Hash (o Tabla de Dispersión)](https://jarroba.com/tablas-hash-o-tabla-de-dispersion.md): Tabla Hash o Tabla de dispersión. Respondemos a ¿Qué es una Tabla Hash? y ¿Cómo funciona una Tabla Hash sin programar? Son un tipo de “Estructura de datos” - [Dígito de control – Detección de errores](https://jarroba.com/digito-de-control-deteccion-de-errores.md): El dígito de control engloba varios códigos Hash como el bit de paridad, el bit generado por el algoritmo de Luhn, el bit de comprobación de los DNIs, etc - [Lectura y Escritura de ficheros en Python, con ejemplos](https://jarroba.com/lectura-y-escritura-de-ficheros-en-python-con-ejemplos.md): En este tutorial vamos a ver como leer y escribir ficheros en Python, dado que es una de las cosas que suele ser muy útil y utilizada a la hora de programar. - [Ordenar listas en Python, con ejemplos](https://jarroba.com/ordenar-listas-python-ejemplos.md): En este tutorial se van a mostrar las diferentes formas de ordenar una lista en Python, indicándole el campo, substring, atributo, etc. por el que ordenar. - [Annotations (Anotaciones) en Java](https://jarroba.com/annotations-anotaciones-en-java.md): Annotations en Java o Anotaciones Java, son simples anotaciones que pueden modificar la funcionalidad del programa. Spring y la inyección de dependencias utiliza anotaciones. - [Reflection en Java](https://jarroba.com/reflection-en-java.md): Reflection en Java (o Reflexión) es elegir una clase que hemos escrito previamente, mientras se ejecuta, poder modificarla. Es sencillo con ejemplos - [Diccionario en python, con ejemplos](https://jarroba.com/diccionario-python-ejemplos.md): Qué son los diccionarios en Python y cómo usarlos: declararlos, recorrerlos y trabajar con keys, values, get, setdefault, pop, copy, update e items. - [Lectura y Escritura de ficheros en Java, con ejemplos](https://jarroba.com/lectura-escritura-ficheros-java-ejemplos.md): En este tutorial vamos a ver como leer y escribir fichero en Java, dado que es una de las cosas que suele ser muy útil y utilizada a la hora de programar. - [List en Python, con ejemplos](https://jarroba.com/list-python-ejemplos.md): Las listas (‘List’) en Python son un tipo de estructuras de datos que guardan de forma ordenada un conjunto de datos que no tiene por qué ser del mismo tipo. - [Búsqueda de patrones – Expresiones regulares](https://jarroba.com/busqueda-de-patrones-expresiones-regulares.md): Todo sobre expresiones regulares (Regexp) y búsqueda de patrones (Pattern matching) con ejemplos de Java, PHP y JavaScript para todas las posibilidades - [Excepciones (Exception) en Java, con ejemplos](https://jarroba.com/excepciones-exception-en-java-con-ejemplos.md): Qué son las excepciones en Java, cómo se organizan a partir de Throwable y cómo controlarlas con try-catch-finally, con ejemplos de ArithmeticException. - [Enum (Enumerados) en Java, con ejemplos](https://jarroba.com/enum-enumerados-en-java-con-ejemplos.md): Qué son los enumerados en Java y cómo usarlos: constructor privado, métodos heredados de Enum y atributos, con ejemplos de Demarcacion, Equipo y Futbolista. - [Configurar formateo de código en Eclipse](https://jarroba.com/configurar-formateo-de-codigo-en-eclipse.md): Cómo personalizar el estilo de formateo de código en Eclipse para Java, exportarlo a un fichero XML y compartirlo con tu equipo. Incluye el perfil Zend de PHP. - [Map en Java, con ejemplos](https://jarroba.com/map-en-java-con-ejemplos.md): Aprende a usar la interfaz Map de Java: sus métodos principales, las diferencias entre HashMap, TreeMap y LinkedHashMap, y cómo recorrerlos con ejemplos. - [Ordenar un ArrayList en Java](https://jarroba.com/ordenar-un-arraylist-en-java.md): Aprende a ordenar un ArrayList en Java con Collections.sort, de menor a mayor y a la inversa, y a ordenar objetos por un atributo con Comparator. - [Modo Debug en Eclipse para Java – (Video)](https://jarroba.com/modo-debug-en-eclipse-para-java-video.md): Aprende a depurar un programa Java con el modo debug de Eclipse: usa breakpoints, avanza paso a paso con F5, F6, F7 y F8 y modifica variables en ejecución. - [Multitarea e Hilos, fácil y muchas ventajas](https://jarroba.com/multitarea-e-hilos-facil-y-muchas-ventajas.md): Qué son los hilos y por qué la multitarea mejora la experiencia del usuario: hilo principal y segundo plano, concurrencia frente a paralelismo y núcleos. - [Ordenar Arrays en Java (con sus índices)](https://jarroba.com/ordenar-arrays-en-java-con-sus-indices.md): Ordena arrays en Java de menor a mayor y de mayor a menor, y obtén sus índices tras la ordenación con Arrays.sort y la API SortArray para int, float, double y String. - [Tablas con JavaFX y FXML (Video)](https://jarroba.com/tablas-con-javafx-y-fxml.md): Videotutorial sobre cómo trabajar con una tabla en JavaFX y FXML: un sencillo ejemplo para añadir, modificar y eliminar tuplas, con NetBeans y Scene Builder. - [ArrayList en Java, con ejemplos](https://jarroba.com/arraylist-en-java-ejemplos.md): Aprende a usar ArrayList en Java con ejemplos: añadir y eliminar elementos, recorrerlos con Iterator, guardar objetos y trabajar con ArrayList de ArrayList. - [Pintar Funciones en JavaFX (LineChart)](https://jarroba.com/pintar-funciones-en-javafx-linechart.md): Aprende a dibujar las funciones f(x)=x hasta x^5 en JavaFX con un LineChart: diseño de la vista en SceneBuilder, controlador y método que genera los puntos. - [Introducción a JUnit – (Video)](https://jarroba.com/introduccion-a-junit-video-tutorial.md): Video-tutorial de JUnit para hacer pruebas unitarias en Java: probamos una clase de números complejos y repasamos los métodos assert más habituales. - [Introducción a Interfaces Gráficas con JavaFX y SceneBuilder (Video)](https://jarroba.com/introduccion-a-interfaces-graficas-con-javafx-y-scenebuilder-video.md): Video tutorial para crear una interfaz gráfica con JavaFX usando NetBeans y Scene Builder, que genera un archivo FXML como Vista del patrón MVC. - [Curso de Python -Parte I- (Video) «Configurar Eclipse»](https://jarroba.com/curso-de-python-parte-i-video-configurar-eclipse.md): Primera parte del curso de Python en vídeo: configura Eclipse con el plugin PyDev, conoce Aptana Studio 3 y prueba un sencillo script para ver que funciona. - [Como programar en C con el Xcode en Mac (VIDEO)](https://jarroba.com/como-utilizar-el-xcode-para-programar-en-c-video.md): Aprende a crear un proyecto en C con Xcode en Mac, compilarlo y probarlo, con un vídeo paso a paso y el código de ejemplo para seguirlo. - [Mucho Java en un sencillo tutorial (para Dummies)](https://jarroba.com/mucho-java-en-un-sencillo-tutorial-aqui-los-dummies-se-hacen-de-oro.md): Aprende Java en Eclipse creando un coche con clases Motor y Arranque: variables y tipos de datos, métodos, constructores, visibilidad, objetos y if-else. - [Espacio de trabajo para guardar los proyectos que creemos en Eclipse](https://jarroba.com/espacio-de-trabajo-para-guardar-los-proyectos-que-creemos-en-eclipse.md): Entiende qué es el espacio de trabajo de Eclipse y crea tu primer proyecto Java: paquete, clase y un programa que imprime texto por consola. - [Instalar bien Eclipse (es un IDE de muchos)](https://jarroba.com/instalar-bien-eclipse-un-ide-de-muchos.md): Guía para descargar e instalar Eclipse Standard en Windows: descompresión, acceso directo, espacio de trabajo y cómo solucionar el error de JAVA_HOME. - [Aprender a programar conociendo lo que es un Entorno de Desarrollo Integrado (IDE)](https://jarroba.com/aprender-a-programar-conociendo-lo-que-es-un-entorno-de-desarrollo-integrado-ide.md): Qué es un IDE (entorno de desarrollo integrado), con la analogía de una mesa de trabajo, sus herramientas habituales y por qué Eclipse es un buen ejemplo. ### Redes - [Nuestro propio servidor Software (Socket con Python)](https://jarroba.com/nuestro-propio-servidor-software-socket-con-python.md): Aprende paso a paso a crear tu propio Servidor con Sockets en Python. Mantener una conexión en tiempo real o monitorizar. Abrir puerto del Firewall. - [Cliente vs Servidor](https://jarroba.com/cliente-vs-servidor.md): "Cliente y Servidor” es una arquitectura para comunicarse y distribuirse las tareas. Cliente” es quien pide algo y el Proveedor es quién ofrece lo pedido. - [Cómo funcionan los Servidores y Servicios de Hosting](https://jarroba.com/como-funcionan-los-servidores-y-servicios-de-hosting.md): Qué es un servidor, en qué se diferencia un VPS o cloud de uno físico y cómo viaja una petición por DNS e IXP. Crearás un servidor y te conectarás por SSH. - [Hamming](https://jarroba.com/hamming.md): Distancia, peso, espacio y esferas de Hamming explicados con ejemplos sencillos: cómo un código corrector detecta y corrige errores, con Hamming(7,4). - [Código de Hamming: Detección y Corrección de errores](https://jarroba.com/codigo-de-hamming-deteccion-y-correccion-de-errores.md): Código Hamming para detectar y corregir errores. Ejemplos paso a paso para corregir los errores. Uso de los bits de redundancia. Matriz síndrome. - [Código Hash](https://jarroba.com/codigo-hash.md): ¿Cómo funciona el Código Hash? Tablas Hash. Usos como: Resumen, Picadillo, Digest, Fingerprint, Checksum, Redundancia, Paridad, CRC, Md5sum... - [Cliente-Servidor: Petición del Cliente](https://jarroba.com/cliente-servidor-peticion-del-cliente.md): Funcionamiento de Internet fácil. Arquitectura Cliente-Servidor. Petición del Cliente. Partes de una URL. Cabeceras HTTP Request explicadas y con ejemplos. - [Cambiar la clave por defecto de acceso al Menú de Configuración del Router ADSL (Seguridad Mínima)](https://jarroba.com/cambiar-la-clave-por-defecto-de-acceso-al-menu-de-configuracion-del-router-adsl-seguridad-minima.md): Cómo cambiar la contraseña por defecto del Menú de Configuración del router ADSL desde Management > Access Control > Passwords, y qué pasa si usas Reset. - [Primer contacto con el Router ADSL – Acceder a su Menú de Configuración](https://jarroba.com/acceder-al-menu-de-configuracion-del-router-adsl.md): Aprende a acceder al menú de configuración de tu router ADSL desde el navegador: la IP 192.168.1.1, las claves por defecto y por qué conectarte por cable. - [¿Cómo proteger nuestra red inalámbrica Wi-Fi?](https://jarroba.com/como-proteger-nuestra-red-inalambrica-wi-fi.md): Por qué una red Wi-Fi es menos segura que el cable y cómo protegerla: cambiar los datos de fábrica del router, cifrar con una clave y filtrar por dirección MAC. - [Conocer para prevenir los peligros de Internet](https://jarroba.com/conocer-para-prevenir-los-peligros-de-internet.md): Repasamos los principales peligros de Internet en casa: robo de Wi-Fi y SMS Premium, robo de dinero, datos personales, equipos intermediarios y ataques destructivos. - [Punto de Acceso Inalámbrico – ¿Cómo funciona la Wi-Fi?](https://jarroba.com/punto-de-acceso-inalambrico-como-funciona-la-wi-fi.md): Qué es realmente Wi-Fi, qué es un Punto de Acceso Inalámbrico y cómo viaja un correo por el aire entre tu portátil y el router ADSL Wi-Fi. - [Router ADSL – ¿Cómo funciona esa caja que solo sirve para dar Internet?](https://jarroba.com/router-adsl-como-funciona-esa-caja-que-solo-sirve-para-dar-internet-nada-mas-y-nada-menos.md): Qué hay dentro de un router ADSL y cómo se conecta: diferencia entre LAN y WAN, puertos Ethernet RJ-45 y RJ-11, y las funciones que reúne en una sola caja. - [Proveedor de Servicios de Internet – ¿Cómo llega Internet hasta nuestra casa?](https://jarroba.com/como-llega-internet-hasta-nuestra-casa.md): Comparamos Internet con el agua o la luz para entender cómo llega a casa: qué es un ISP, para qué sirve el router ADSL y por dónde viajan los datos. ### Sistemas Operativos - [Sistema de numeración binario](https://jarroba.com/sistema-numeracion-binario.md): Qué es el sistema de numeración binario, cómo se relaciona con bits, bases y otros sistemas como octal, hexadecimal o base 64, y cómo se escriben en informática. - [Unidades de medida de la información](https://jarroba.com/unidades-medida-la-informacion.md): Bit, byte y prefijos binarios (kibi, mebi, gibi) frente a los decimales (kilo, mega, giga): para qué sirven, cómo convertirlos y cómo evitar confusiones. - [Bit](https://jarroba.com/bit.md): El bit, la unidad básica de información digital. Representa dos estados, el “sistema binario”. Algo tan sencillo, importante y con mucho potencial. - [Instalar Ubuntu en una máquina virtual con VirtualBox (Video)](https://jarroba.com/intalar-ubuntu-una-maquina-virtual-virtualbox-video.md): En este video-tutorial vamos a ver cómo instalar un Ubuntu en una máquina virtual con Virtualbox. - [Configurar un Apache en un servidor Linux (DigitalOcean) con Dominio y Subdominios (Video)](https://jarroba.com/configurar-un-apache-en-un-servidor-linux-digitalocean-con-dominio-y-subdominios-partei.md): Configura Apache en un servidor Linux de DigitalOcean con dominio y subdominios: DNS, virtualhosts, a2ensite y carpetas de cada web, paso a paso. - [Cómo crear entornos de desarrollo con Vagrant y Puppet (Video)](https://jarroba.com/como-crear-entornos-de-desarrollo-con-vagrant-y-puppet.md): Qué es Vagrant y cómo usarlo con Puppet y VirtualBox para que todo un equipo trabaje en el mismo entorno virtual con PHP, MySQL y MongoDB. - [Instalar Snow Leopard (OS) en VMware bajo Windows](https://jarroba.com/instalar-snow-leopard-ios-en-vmware-bajo-windows.md): Guía paso a paso para instalar Mac OS X Snow Leopard en una máquina virtual VMware bajo Windows: requisitos, BIOS, imagen expandida y carpetas compartidas. ### Tecnologias Web - [LAMP paso a paso en tu servidor](https://jarroba.com/lamp-paso-a-paso-en-tu-servidor.md): Aprender paso a paso a crear una web dinámica con la arquitectura LAMP completa: Linux, Apache, MySQL o MariaDB, PHP, Perl o Python. - [Usar Servidores y crear una web](https://jarroba.com/usar-servidores-y-crear-una-web.md): Instala Apache en un servidor Ubuntu, abre los puertos del firewall y publica una web con HTML, CSS y JavaScript usando Vim, un IDE y FileZilla por SFTP. - [Maven en Eclipse](https://jarroba.com/maven-en-eclipse.md): Como empezar a trabajar con Maven en Eclipse y usarlo. Instalación y uso paso a paso. Todo lo que hay que saber sobre Maven. - [Maven](https://jarroba.com/maven.md): Tutorial completo de Android. Te contamos todo lo que se necesita saber para ser un maestro con Maven - [Gráficas en páginas web con «Google Charts»](https://jarroba.com/graficas-en-paginas-web-con-google-charts.md): Aprende a crear gráficas en tu web con Google Charts, una alternativa gratuita a Highcharts: líneas, circular, y mapas GeoChart por países y regiones. - [AJAX con JSP y Servlets](https://jarroba.com/ajax-con-jsp-y-servelts.md): Ejemplo sencillo de AJAX con JSP y Servlets: un formulario de nombre, apellido y edad que añade filas a una tabla sin recargar la página. - [Graficas en páginas web con Highcharts](https://jarroba.com/graficas-en-paginas-web-con-highcharts.md): Cómo integrar gráficas de líneas y circulares en una página web con Highcharts y jQuery, y cómo pintarlas con datos de la base de datos usando json_encode en PHP. - [Banner rotatorio con JavaScript](https://jarroba.com/banner-rotatorio-con-javascript.md): Crea un banner rotatorio con JavaScript: dos arrays de imágenes y URLs, setTimeout para cambiar la imagen cada segundo y enlaces distintos en cada banner. - [Cómo programar Webs y Servlets en Eclipse](https://jarroba.com/como-programar-webs-y-servlets-en-eclipse.md): Configura Eclipse para programar webs y servlets: instala los plugins de desarrollo Web y Java EE, vincula Tomcat 7 y arranca el servidor local desde el IDE. - [Instalar un contenedor de Servlets local: Tomcat](https://jarroba.com/instalar-un-contenedor-de-servlets-local-tomcat.md): Guía para instalar Apache Tomcat 7 en Windows con el instalador de servicio, ejecutarlo como administrador y comprobar en localhost:8080 que funciona. - [Cómo configurar el Eclipse para programar en PHP (VIDEO)](https://jarroba.com/como-configurar-el-eclipse-para-programar-en-php-video.md): Video tutorial para configurar Eclipse y programar en PHP, usando un servidor local como XAMPP para interpretar y probar el código de ejemplo. - [Instalación del WordPress en un servidor local (XAMPP)](https://jarroba.com/instalacion-del-wordpress-en-un-servidor-local-xampp.md): Cómo instalar WordPress en local con XAMPP: copiar la carpeta a htdocs, crear la base de datos en phpMyAdmin, editar wp-config y acceder al escritorio. - [Instalación del XAMPP para Windows](https://jarroba.com/instalacion-del-xampp-para-windows.md): Aprende a descargar e instalar XAMPP en Windows paso a paso y a probar tu servidor local Apache con un sencillo ejemplo en PHP en la carpeta htdocs. ## Articles in English ### Serie: AI and You - [AI and You: the Complete Series for Getting an Edge Without Losing Yourself](https://jarroba.com/en/ai-and-you-the-complete-series-for-getting-an-edge-without-losing-yourself.md): introduction - [«I don’t want anything made with AI» – The consumer paradox](https://jarroba.com/en/i-dont-want-anything-made-with-ai-the-consumer-paradox.md): part 1 - [Why You Lose With (and Against) AI](https://jarroba.com/en/why-you-lose-with-and-against-ai.md): part 2 - [What You Have and AI Lacks](https://jarroba.com/en/what-you-have-and-ai-lacks.md): part 3 - [The Free Agent Trap](https://jarroba.com/en/the-free-agent-trap.md): part 4 - [At Machine Speed: How AI Has Broken the Cybersecurity Balance](https://jarroba.com/en/at-machine-speed-how-ai-has-broken-the-cybersecurity-balance.md): part 5 - [AI Regulation: The Dilemma Between Protecting and Falling Behind](https://jarroba.com/en/ai-regulation-the-dilemma-between-protecting-and-falling-behind.md): part 6 - [How to Avoid Being Replaced Without Selling Out to AI](https://jarroba.com/en/how-to-avoid-being-replaced-without-selling-out-to-ai.md): part 7 - [Tricks for Using AI Well](https://jarroba.com/en/tricks-for-using-ai-well.md): part 8 - [«If It Works, Don’t Touch It» and Other Excuses That No Longer Hold](https://jarroba.com/en/if-it-works-dont-touch-it-and-other-excuses-that-no-longer-hold.md): part 9 ### Serie: AI in Business: Expectations vs. Reality - [AI in Business: Expectations vs. Reality — Who Benefits, and at What Cost?](https://jarroba.com/en/ai-in-business-expectations-vs-reality-who-benefits-and-at-what-cost.md): introduction - [The Real Interests of Each Stakeholder in Enterprise AI Adoption](https://jarroba.com/en/the-real-interests-of-each-stakeholder-in-enterprise-ai-adoption.md): part 1 - [What AI Can and Cannot Do Today in Software Development](https://jarroba.com/en/what-ai-can-and-cannot-do-today-in-software-development.md): part 2 - [The Real Cost of AI: From the Democratic Promise to the Enterprise Model](https://jarroba.com/en/the-real-cost-of-ai-from-the-democratic-promise-to-the-enterprise-model.md): part 3 - [How to Adopt AI in Your Organization Without Making the Most Common Mistakes](https://jarroba.com/en/how-to-adopt-ai-in-your-organization-without-making-the-most-common-mistakes.md): part 4 ### Serie: Apache Kafka - [Apache Kafka](https://jarroba.com/en/apache-kafka-message-broker-guide.md): part 1 - [How to Install Apache Kafka](https://jarroba.com/en/how-to-install-apache-kafka.md): part 2 - [Apache Kafka Consumers and Producers with Java and Python](https://jarroba.com/en/apache-kafka-consumers-producers-java-python.md): part 3 - [Fault-Tolerant, Highly Available Apache Kafka Cluster](https://jarroba.com/en/fault-tolerant-highly-available-apache-kafka-cluster.md): part 4 ### Serie: CI/CD and AI: From Theory to Practice - [CI/CD and AI: From Theory to Practice — Series Index](https://jarroba.com/en/ci-cd-and-ai-from-theory-to-practice-series-index.md): introduction - [CI/CD: Introduction — What It Is, Why It Matters, and Who Does It](https://jarroba.com/en/ci-cd-introduction-what-it-is-why-it-matters-and-who-does-it.md): part 1 - [CI/CD: Core Concepts — pipeline, job, stage, step, and gates](https://jarroba.com/en/ci-cd-core-concepts-pipeline-job-stage-step-and-gates.md): part 2 - [CI/CD: Branching, Git Flow, and Pull Requests](https://jarroba.com/en/ci-cd-branching-git-flow-and-pull-requests.md): part 3 - [Pre-CI: General CI/CD Pipeline Architecture and Pre-checks](https://jarroba.com/en/pre-ci-general-ci-cd-pipeline-architecture-and-pre-checks.md): part 4 - [CI (Continuous Integration): analysis, tests, quality, and security](https://jarroba.com/en/ci-continuous-integration-analysis-tests-quality-and-security.md): part 5 - [CD (Continuous Delivery) — Part 1: packaging, SBOM, and remediation](https://jarroba.com/en/cd-continuous-delivery-part-1-packaging-sbom-and-remediation.md): part 6 - [CD (Continuous Delivery) — Part 2: Image Scan and Service Tests](https://jarroba.com/en/cd-continuous-delivery-part-2-image-scan-and-service-tests.md): part 7 - [CD (Continuous Delivery) — Part 3: Deploy to Dev and Smoke Tests](https://jarroba.com/en/cd-continuous-delivery-part-3-deploy-to-dev-and-smoke-tests.md): part 8 - [CD (Continuous Delivery) — Part 4: Deploy to Staging and Performance Smoke Tests](https://jarroba.com/en/cd-continuous-delivery-part-4-deploy-to-staging-and-performance-smoke-tests.md): part 9 - [CD (Continuous Delivery) — Part 5: LCA — Load, Stress, and Chaos Engineering](https://jarroba.com/en/cd-continuous-delivery-part-5-lca-load-stress-and-chaos-engineering.md): part 10 - [CD (Continuous Delivery) — Part 6: Final validations, Manual Approval, and Deploy to Production](https://jarroba.com/en/cd-continuous-delivery-part-6-final-validations-manual-approval-and-deploy-to-production.md): part 11 ### Serie: Docker - [Docker Basics: Docker Desktop and Docker Objects](https://jarroba.com/en/docker-desktop-and-docker-objects-basics.md): part 1 - [Docker Compose](https://jarroba.com/en/docker-compose-course.md): part 2 - [Docker Compose in a Project](https://jarroba.com/en/docker-compose-in-a-project.md): part 3 - [Docker Images: Complete Guide to Docker Commands](https://jarroba.com/en/docker-images-docker-commands-guide.md): part 4 - [Dockerfile: Directives and Dockerizing Projects](https://jarroba.com/en/dockerfile-directives-dockerizing-projects.md): part 5 - [Advanced Dockerfile: Multi-Stage Builds, Registries, and Tricks](https://jarroba.com/en/advanced-dockerfile-multi-stage-registry-tricks.md): part 6 ### Serie: Docker - [Docker Basics: Docker Desktop and Docker Objects](https://jarroba.com/en/docker-desktop-and-docker-objects-basics.md): part 1 - [Docker Compose](https://jarroba.com/en/docker-compose-course.md): part 2 - [Docker Compose in a Project](https://jarroba.com/en/docker-compose-in-a-project.md): part 3 - [Docker Images: Complete Guide to Docker Commands](https://jarroba.com/en/docker-images-docker-commands-guide.md): part 4 - [Dockerfile: Directives and Dockerizing Projects](https://jarroba.com/en/dockerfile-directives-dockerizing-projects.md): part 5 - [Advanced Dockerfile: Multi-Stage Builds, Registries, and Tricks](https://jarroba.com/en/advanced-dockerfile-multi-stage-registry-tricks.md): part 6 ### Serie: Fragments in Android - [Fragments in Android](https://jarroba.com/en/fragments-in-android.md): part 1 - [Programming Fragments in Android](https://jarroba.com/en/programming-fragments-in-android.md): part 2 ### Serie: MEAN: Mongo, Express, Angular and Node - [MEAN (Mongo-Express-Angular-Node) Full Stack JavaScript Development (Part I)](https://jarroba.com/en/mean-stack-full-stack-javascript-development-part-1.md): part 1 - [MEAN (Mongo-Express-Angular-Node) Web Application Example (Part II)](https://jarroba.com/en/mean-mongo-express-angular-node-web-app-example.md): part 2 ### Serie: Multitasking in Android - [Multitasking in Android](https://jarroba.com/en/multitasking-in-android.md): part 1 - [AsyncTask in Android](https://jarroba.com/en/asynctask-in-android.md): part 2 ### Serie: Multithreading in Java - [Multitasking and Threads in Java with Examples (Thread & Runnable)](https://jarroba.com/en/multitasking-threads-java-thread-runnable.md): part 1 - [Multitasking and Threads in Java with Examples II (Runnable & Executors)](https://jarroba.com/en/multitasking-threads-java-runnable-executors.md): part 2 ### Serie: MySQL Database Course - [MySQL Database Course – Part I – (Video)](https://jarroba.com/en/mysql-database-course-part-1-installation.md): part 1 - [MySQL Database Course – Part II (Video) – Entity-Relationship](https://jarroba.com/en/mysql-database-course-part-2-entity-relationship.md): part 2 - [MySQL Database Course – Part III – (Video) Definition/Manipulation](https://jarroba.com/en/mysql-database-course-part-3-definition-manipulation.md): part 3 - [MySQL Database Course – Part IV – (Video) INNER JOIN](https://jarroba.com/en/mysql-database-course-part-4-inner-join.md): part 4 - [MySQL Database Course – Part V – (Video) «Group By»](https://jarroba.com/en/mysql-database-course-part-5-group-by.md): part 5 ### Serie: Pandas in Python with Examples - [Pandas in Python, with Examples – Part I – Introduction](https://jarroba.com/en/pandas-python-examples-part-1-introduction.md): part 1 - [Pandas in Python, with Examples – Part II – Reading/Writing, Merge & GroupBy](https://jarroba.com/en/pandas-python-examples-part-ii-io-merge-groupby.md): part 2 - [Pandas in Python, with Examples – Part III – Pivot_table](https://jarroba.com/en/pandas-python-examples-pivot-table.md): part 3 ### Serie: Polymorphism in Java - [Polymorphism in Java (Part I), with Examples](https://jarroba.com/en/polymorphism-in-java-part-1-examples.md): part 1 - [Polymorphism in Java -Interface- (Part II), with Examples](https://jarroba.com/en/java-polymorphism-interface-part-2-examples.md): part 2 ### Serie: Python Course - [Fast, Easy, Specialized and Free Python Course](https://jarroba.com/en/free-python-course.md): introduction - [Python Course – 0. Development Environment for Python](https://jarroba.com/en/python-course-development-environment-setup.md): part 1 - [Python Course – 1. Introduction](https://jarroba.com/en/python-course-1-introduction.md): part 2 - [Python Course – 2. Basic Data Types](https://jarroba.com/en/python-course-basic-data-types.md): part 3 - [Python Course – 3. Collections](https://jarroba.com/en/python-course-3-collections.md): part 4 - [Python Course – 4. Flow Control Structures](https://jarroba.com/en/python-course-flow-control-structures.md): part 5 - [Python Course – 5. Functions](https://jarroba.com/en/python-course-functions.md): part 6 - [Python Course – 6. Libraries/Packages](https://jarroba.com/en/python-course-libraries-packages.md): part 7 - [Python Course – 7. Exceptions](https://jarroba.com/en/python-course-7-exceptions.md): part 8 - [Python Course – 8. Files](https://jarroba.com/en/python-course-8-files.md): part 9 ### Serie: Python Environments - [Python Environments: Stock Python and Anaconda (base)](https://jarroba.com/en/python-environments-stock-python-anaconda-base.md): part 1 - [Python Virtual Environments: Standard Python and Anaconda](https://jarroba.com/en/python-virtual-environments-standard-anaconda.md): part 2 - [Pipenv: A Python Virtual Environment Manager](https://jarroba.com/en/pipenv-python-virtual-environment-manager.md): part 3 ### Serie: What Is Innovation? - [What Is Innovation? Part I (Concepts and Examples)](https://jarroba.com/en/what-is-innovation-part-one-concepts-examples.md): part 1 - [What Is Innovation? Part II (Social Model of Technology Adoption)](https://jarroba.com/en/what-is-innovation-social-model-technology-adoption.md): part 2 - [What Is Innovation? Part III (Types of Innovation)](https://jarroba.com/en/what-is-innovation-part-3-types.md): part 3 - [What Is Innovation? Part IV (Uncertainty in Innovation)](https://jarroba.com/en/what-is-innovation-uncertainty-in-innovation.md): part 4 ### Artificial intelligence - [LangChain: Things I Wish I Knew Before Getting Started (Part I)](https://jarroba.com/en/langchain-runnables-lcel-part-i.md): LangChain from scratch: Runnables, LCEL, and PromptTemplates for building pipelines with LLMs. LangChain Runnables LCEL: how to create pipelines with LLMs step by step. - [Top papers that made the LLM era possible](https://jarroba.com/en/top-papers-that-made-the-llm-era-possible.md): A technical and chronological guide to the key research papers that built the era of large language models, from Transformers to modern open LLMs. - [How to Generate Images of Your Face with Flux.1 for Free!](https://jarroba.com/en/generate-images-your-face-flux-1-free.md): Learn how to train a LoRA on Flux.1 to generate images of your own face for free, using the replicate.com service. Step-by-step guide. - [CPU vs GPU in Deep Learning: How Big Is the Difference in Training Time?](https://jarroba.com/en/cpu-vs-gpu-deep-learning-training-time.md): Do you know how much faster a Deep Learning model trains on a GPU than on a CPU? In this article we measure the training time difference and show you. - [Political Toxicity in Tweets](https://jarroba.com/en/political-toxicity-in-tweets.md): Example of using a Spanish classification model on Hugging Face, built by Newtral's NLP team, that scores how much "political toxicity" a tweet generates. - [How to Install TensorFlow with GPU on Windows](https://jarroba.com/en/install-tensorflow-gpu-windows.md): Want to install TensorFlow with GPU support on Windows without losing your mind? In this tutorial we show you how to install it step by step. - [What Do We Need to Know to Install TensorFlow with GPU Correctly?](https://jarroba.com/en/how-to-install-tensorflow-with-gpu.md): Installing TensorFlow and getting it to work with your GPU is easy: you just need to know what to install and which versions are compatible with each other. - [Map: Learning Algorithms and Concepts of (Deep) Machine Learning](https://jarroba.com/en/map-learning-algorithms-deep-machine-learning-concepts.md): A map of the Learning Algorithms and key concepts in Machine Learning and Deep Learning, organized so you can get a clear overview of both fields. - [Anonymous scraping by TOR network](https://jarroba.com/en/anonymous-scraping-by-tor-network.md): In this tutorial we will explain how to configure a proxy server for scraping websites anonymously through the TOR network - [Analyzing Soccer Results with Power BI](https://jarroba.com/en/soccer-results-analysis-power-bi.md): Business Intelligence turns data into information and information into knowledge for business decisions. See it in action analyzing Spanish soccer results with Power BI. - [Selecting the Optimal Number of Clusters](https://jarroba.com/en/selecting-optimal-number-of-clusters.md): One of the problems when applying a Clustering method (K-means or EM) is choosing the number of Clusters. Learn the elbow method, dendrograms and the gap. - [Expectation-Maximization in Python and Scikit-learn, with Examples](https://jarroba.com/en/expectation-maximization-python-scikit-learn-examples.md): Expectation-maximization is a statistical clustering method similar to K-means, but with a probabilistic approach. Learn how it works with Python examples. - [K-means in Python and Scikit-learn, with Examples](https://jarroba.com/en/k-means-python-scikit-learn-examples.md): K-means is a clustering method that splits objects into K groups by minimizing inertia. Learn how it works and how to use it in Python with scikit-learn. - [What Is Clustering?](https://jarroba.com/en/what-is-clustering.md): Clustering is the task of grouping a set of unlabeled objects into subsets of objects called Clusters. Learn how it differs from classification. - [What Is Machine Learning?](https://jarroba.com/en/what-is-machine-learning.md): Machine Learning (ML) is a branch of Artificial Intelligence (AI) that aims to build systems able to learn on their own from a data set, without explicit programming. - [Web Scraping in Python (BeautifulSoup), with Examples](https://jarroba.com/en/python-web-scraping-beautifulsoup-examples.md): Web scraping is a set of techniques for automatically getting the content of web pages through their HTML code. Learn how with Python and BeautifulSoup. - [Web Scraping in Java with JSoup (with Examples)](https://jarroba.com/en/java-web-scraping-jsoup-examples.md): Web scraping is a set of techniques for automatically extracting the content of web pages through their HTML code. Learn how to do it in Java with JSoup. - [Football Match Results Data Set for Prediction (Machine Learning)](https://jarroba.com/en/football-matches-results-dataset-machine-learning.md): Download a data set of Spanish first and second division football match results, from the 1970-71 season to the current one, for Machine Learning prediction. - [Recommender Systems Based on Collaborative Filtering (K-Nearest Neighbors)](https://jarroba.com/en/collaborative-filtering-recommender-systems-k-neighbors.md): Learn how collaborative filtering recommender systems work with the K-nearest neighbors technique, similarity metrics (MSD, Pearson, cosine) and a worked example. - [Introduction to Neural Networks: The Perceptron (Video)](https://jarroba.com/en/introduction-neural-networks-perceptron-video.md): Learn how artificial neurons work and how a perceptron solves the AND, OR and XOR logic gates, with a Neuroph Studio video example. - [What Are Recommender Systems?](https://jarroba.com/en/what-are-recommender-systems.md): Learn what recommender systems are, how Amazon, YouTube and Filmaffinity use them, and the 4 types: content-based, demographic, collaborative and hybrid. - [Genetic Algorithms – Example](https://jarroba.com/en/genetic-algorithms-example.md): Step-by-step example of a genetic algorithm that finds the maximum of a function over [0-15]: chromosomes, crossover, mutation and a downloadable Java program. - [What Is Evolutionary Computation?](https://jarroba.com/en/what-is-evolutionary-computation.md): Learn what evolutionary computation is, how genetic algorithms represent, reproduce and mutate individuals, and when you should (and shouldn't) use them. - [Installing Python Robotics (Pyro) (VIDEO)](https://jarroba.com/en/installing-python-robotics-pyro-video.md): Learn how to install Pyro (Python Robotics) step by step on Windows XP in this video tutorial, also valid for newer versions of Windows. ### Books - [100% Free Android Book](https://jarroba.com/en/free-android-book-100-percent.md): 100% free Android book that teaches everything you need to know about Android. Explained in a fun, easy way with hundreds of images. ### Databases - [ETL: Extract, Transform, and Load](https://jarroba.com/en/etl-extract-transform-and-load.md): ETL is used for massive, real-time data processing (Big Data): Extract data from different sources, Transform it into a useful structure, and Load it where you can use it. - [Install Apache Spark on Any Operating System and Learn to Program It with Python, Scala or Java](https://jarroba.com/en/install-apache-spark-program-python-scala-java.md): Install and test Apache Spark step by step with Python, Scala and Java, also with Jupyter Notebook and JupyterLab. Work with Big Data the easy way. - [Python MongoDB Driver (pymongo) with Examples (Video)](https://jarroba.com/en/python-mongodb-driver-pymongo-examples.md): Learn how to use the Python driver (pymongo) for MongoDB with a hands-on example: connecting to the server and building a simple CRUD. - [Java MongoDB Driver, with Examples (Video)](https://jarroba.com/en/java-mongodb-driver-with-examples.md): In this post we build a simple example of how to use the Java driver to work with MongoDB: connecting to the server and running basic CRUD operations. - [MongoDB Course – Part I (Video) – «Introduction»](https://jarroba.com/en/mongodb-course-part-1-introduction-video.md): Start our practical MongoDB course: learn what a document-oriented database is, how MongoDB stores JSON data, and how it compares to relational databases. - [Installing MongoDB on Mac OS X](https://jarroba.com/en/install-mongodb-on-mac-os-x.md): Learn how to install MongoDB on a Mac step by step: download, unpack, configure, register the server on OS X and add it to your PATH. ### Hardware Design - [Xilinx ISE Download and Installation Tutorial](https://jarroba.com/en/xilinx-ise-download-and-installation-tutorial.md): Learn how to download and install the free Xilinx ISE WebPACK on Windows, step by step: create your account, install the tool and activate the license. ### Mobile apps - [How to Use Multiple GitHub Accounts over HTTPS](https://jarroba.com/en/use-multiple-github-accounts-https.md): Learn how to use several GitHub accounts over HTTPS: configure git so each repository gets its own credentials in your keychain and avoid 403 errors. - [Android Architecture – ART vs Dalvik](https://jarroba.com/en/android-architecture-art-vs-dalvik.md): Android architecture explained in a technical yet easy way. ART vs Dalvik compared, APK contents, AOT and JIT compilation, and the Odex vs Deodex difference. - [Attributes for Android Designers (tools:xxxxx)](https://jarroba.com/en/android-designer-attributes-tools-xxxxx.md): Learn the tools:xxxxx attributes in Android: design-time helpers like tools:ignore, context, layout and listitem that make building your layouts easier. - [inflate() in Android – Inflating and Attaching Views](https://jarroba.com/en/android-inflate-inflating-attaching-views.md): Learn what Android's inflate() method really does, the difference between inflating and attaching Views, and how to use it in Fragments, Dialogs and Adapters. - [Android Error: The Android SDK Won’t Let You Update](https://jarroba.com/en/android-sdk-error-cannot-update.md): Android SDK update failing with a 'folder failed to be renamed or moved' warning? Learn why it happens and two simple ways to fix it. - [Speeding Up the Android Emulator](https://jarroba.com/en/speed-up-android-emulator-haxm.md): Learn how to speed up the Android emulator with Intel HAXM: install it, enable virtualization in the BIOS and get your emulator running in seconds. - [Android Error – Eclipse Doesn’t Show the Android Buttons After Installing the ADT and the SDK](https://jarroba.com/en/eclipse-android-buttons-missing-after-adt-sdk-install.md): Eclipse doesn't show the Android SDK Manager and AVD Manager buttons after installing the ADT and SDK? Here's how to bring them back in a few steps. - [Auto Layout iOS 7 (Video)](https://jarroba.com/en/auto-layout-ios-7-video-2.md): Learn how to adapt your iOS app to every iPhone screen size with Auto Layout in iOS 7. Watch the video tutorial and follow the steps with screenshots. - [Android ListView in Just a Few Lines](https://jarroba.com/en/android-listview-in-few-lines.md): Learn how to build an Android ListView with the least code possible, using ListActivity, SimpleCursorAdapter and a MatrixCursor. Clean, short and easy. - [Android Context](https://jarroba.com/en/android-context-explained.md): Learn what Android's Context is, the types that exist, how to get it, and how to avoid memory leaks, explained with a simple example and code. - [Tab Bar Controller in Objective-C – Example (Video)](https://jarroba.com/en/tab-bar-controller-objective-c-example-video.md): Learn how to work with a Tab Bar Controller in Objective-C and manage each of its views independently, with a video tutorial and example code. - [Collection View (Grids) in Objective-C: Example (Video)](https://jarroba.com/en/collection-view-grids-objective-c-example-video.md): Learn how to build dynamic Collection Views (UICollectionView) and grids on iPhone with Objective-C in this step-by-step video tutorial and example project. - [Playing Sounds in Android (Video)](https://jarroba.com/en/playing-sounds-in-android.md): Learn how to play sounds and audio files in Android with the MediaPlayer library in this video tutorial, and download the full project from GitHub. - [UITableView in Objective-C: Example (Video)](https://jarroba.com/en/uitableview-objective-c-example-video.md): Learn how to build dynamic tables with UITableView on iPhone in Objective-C, with a video tutorial, a UINavigationBar and a downloadable project. - [Android Error – java.lang.NoClassDefFoundError for No Apparent Reason](https://jarroba.com/en/android-noclassdeffounderror-no-apparent-reason.md): Getting a java.lang.NoClassDefFoundError in Android for no apparent reason? Follow these two simple fixes in Eclipse to get your project working again. - [ListView Expansion: Custom GridView and Spinner in Android](https://jarroba.com/en/android-listview-expansion-gridview-spinner.md): Answers to the most common ListView questions in Android: custom GridView, custom Spinner, clickable Views inside rows and simulating a RadioGroup. - [Introduction to Android Studio (Video)](https://jarroba.com/en/introduction-to-android-studio-video.md): Watch our video intro to Android Studio, Google's IDE for Android apps: basic setup, a comparison with Eclipse + ADT, and a fix for Windows startup issues. - [Intent – Passing Data Between Activities – Android App (Video)](https://jarroba.com/en/intent-pass-data-between-activities-android.md): Learn how to pass data from one Activity to another in an Android app using an Intent after a button click, with a step-by-step video tutorial in Eclipse. - [ListView in Android: Building a Custom List](https://jarroba.com/en/android-listview-custom-list-adapter.md): Learn how to create an Android ListView quickly and effectively. Everything you need to know about ListView and Adapter in Android, with full example code. - [UIWebView -iPhone- (Video)](https://jarroba.com/en/uiwebview-iphone-video-tutorial.md): Learn how to load a web page in a UIWebView on iPhone and show a loading indicator with UIActivityIndicatorView, so Apple approves your app. Video tutorial. - [Multiple Picker Views in One View (iPhone) (Video)](https://jarroba.com/en/multiple-pickerviews-in-one-view-iphone.md): Learn how to get several pickers in a single iPhone view using one UIPickerView fed by multiple NSArrays. Watch the video and download the project. - [Switching Automatically from One ViewController to Another (iPhone)](https://jarroba.com/en/switch-viewcontroller-automatically-iphone.md): Learn how to switch from one ViewController to another automatically on iPhone, with no user interaction, using an NSTimer and a Storyboard ID. - [Android Error – The Connection to adb Is Down and a Severe Error Has Occurred](https://jarroba.com/en/android-error-connection-to-adb-is-down.md): Getting the Eclipse error "The connection to adb is down, and a severe error has occured"? Here are two simple ways to restart adb and fix it. - [Android Error – SDK Installer Doesn’t Detect the Java JDK](https://jarroba.com/en/android-sdk-installer-jdk-not-found.md): The Android SDK installer can't find the Java JDK and won't let you continue? Here are three solutions, including the common Windows 8 case. - [Activity – Understanding and Using an Android Activity](https://jarroba.com/en/android-activity-understand-and-use.md): Learn what an Android Activity really is, how its lifecycle works, and how to create and launch activities with a full working example, step by step. - [NSTimer in Objective-C: Example (Video)](https://jarroba.com/en/nstimer-objective-c-example-video.md): Learn how NSTimer works in Objective-C with a simple video tutorial: an app that increments an integer variable every second. Project download included. - [Passing Data Between ViewControllers Using Storyboards and Segues (Video)](https://jarroba.com/en/pass-data-between-viewcontrollers-storyboards-segues.md): Learn how to pass data between ViewControllers in iOS using Storyboards and Segues, with a video tutorial and the prepareForSegue method explained. - [How to Fix Errors in Android](https://jarroba.com/en/how-to-fix-android-errors.md): A collection of posts that show you how to fix the most common errors you may run into when developing Android apps with Eclipse, the ADT and the SDK. - [[DEPRECATED] Getting the Fingerprint and API Key for Android Maps (VIDEO)](https://jarroba.com/en/get-fingerprint-api-key-android-maps-video.md): Video tutorial on getting the default Android Maps API key for your emulator and the one from your own certificate's fingerprint, to publish your app. - [Setting Up the Tools You Need to Develop for Android](https://jarroba.com/en/set-up-tools-for-android-development.md): Learn how to get your Android environment ready: use the SDK Manager, create an emulator with the AVD Manager, and set up LogCat filters in Eclipse. - [Installing the Android SDK and Linking It with Eclipse](https://jarroba.com/en/install-android-sdk-link-with-eclipse.md): Learn how to install the Android SDK and link it to Eclipse with the ADT plugin, step by step, so your Android development environment works perfectly. - [Android Error – The Emulator Disconnects and Doesn’t Launch the App](https://jarroba.com/en/android-emulator-disconnected-app-not-launching.md): Does Eclipse show "Emulator-XXXX disconnected" even though the Android emulator works fine? Find out why it happens and how to fix it quickly. - [Android Error – Errors on Methods with @Override Annotations, Listener Types or Overridden Methods](https://jarroba.com/en/android-error-override-annotations-listener-methods.md): Getting errors on every @Override annotation after importing or copying code into your workspace? Find out why it happens and how to fix it. - [Android Error – Problems with an Imported or Sample Android Project](https://jarroba.com/en/android-error-imported-sample-project-problems.md): Getting a FileNotFoundException on AndroidManifest.xml with an imported or sample Android project in Eclipse? Here is how to fix it step by step. - [Android Error – Problems Installing the ADT or SDK](https://jarroba.com/en/android-error-problems-installing-adt-sdk.md): Getting "Cannot complete the install because one or more required items could not be found" when installing the Android ADT or SDK? Here is how to fix it. - [Android Error – Error in Imported Libraries](https://jarroba.com/en/android-error-imported-libraries-dalvik.md): Getting "Conversion to Dalvik format failed with error 1" in your Android project? Here's how to fix the error caused by imported libraries, step by step. - [Android Error – Different Certificate When Trying to Reinstall the App on the Emulator or Phone](https://jarroba.com/en/android-error-different-certificate-reinstall-app.md): Getting a 're-installation failed due to different application signatures' error in Android? Learn why it happens and how to fix it step by step. - [Android Error – Debug Certificate Expired](https://jarroba.com/en/android-error-debug-certificate-expired.md): Android project suddenly shows a red cross after a year? Your debug certificate has expired. Learn how to fix it by deleting debug.keystore in Eclipse. - [Android Error – Lost References](https://jarroba.com/en/android-error-lost-references.md): Getting errors across your whole Android project and "The type java.lang.String cannot be resolved"? Here's a quick fix using Organize Imports in Eclipse. - [Android Error – Higher Compiler Compliance Level Required](https://jarroba.com/en/android-error-compiler-compliance-level-required.md): Getting the Android error "requires compiler compliance level" in Eclipse? Here are three simple solutions to fix it step by step. - [Android Error – A Newer ADT Version Is Required](https://jarroba.com/en/android-error-newer-adt-version-required.md): Getting the Android error "This Android SDK requires Android Developer Toolkit version X or above"? Learn how to install or update the ADT plugin in Eclipse. - [Android Error – Android SDK Not Found](https://jarroba.com/en/android-error-sdk-not-found.md): Fix the Android error "Location of the Android SDK has not been setup in the preferences" that appears when you create a new Eclipse workspace. - [Android Error – Skipping an Indexed File](https://jarroba.com/en/android-error-skipping-index-file.md): Getting the "skipping index file" error in your Android project? Learn how to fix it by removing the file, cleaning the project and restoring the file. - [Android Error – Eclipse Throws an Error That Doesn’t Exist Anywhere](https://jarroba.com/en/android-eclipse-error-that-does-not-exist.md): Eclipse shows a red X on your Android project but no error anywhere? Follow these step-by-step solutions to fix the phantom error and the R.java problem. - [Android Error – The Log Shows Nothing](https://jarroba.com/en/android-error-log-shows-nothing.md): Is your Android Log empty even though the emulator or device is connected? Learn how to fix this common Eclipse error with a quick restart. - [Android Error – Application Does Not Specify an API Level](https://jarroba.com/en/android-error-application-does-not-specify-api-level.md): Fix the Android warning "Application does not specify an API level requirement" by adding minSdkVersion to your Manifest.xml, so you can publish to the Market. ### Networks - [Build Your Own Software Server (Sockets with Python)](https://jarroba.com/en/build-your-own-software-server-python-sockets.md): Learn step by step how to build your own server with Python sockets. Keep a real-time connection or monitor devices. Open a port in the firewall. - [Client vs Server](https://jarroba.com/en/client-vs-server-architecture-explained.md): Client and Server is an architecture for communicating and splitting up tasks. The Client asks for something and the Provider (Server) offers what was asked. - [How Servers and Hosting Services Work](https://jarroba.com/en/how-servers-and-hosting-services-work.md): Learn how servers and hosting services work, from DNS and ISPs to creating your own cloud VPS server and connecting to it securely over SSH. - [Hamming Distance, Weight, Space and Spheres Explained](https://jarroba.com/en/hamming-distance-weight-space-spheres.md): Learn Hamming distance, Hamming weight, Hamming space and spheres, plus how error-correcting codes detect and fix errors, with Hamming(7,4) as the example. - [Hamming Code: Error Detection and Correction](https://jarroba.com/en/hamming-code-error-detection-correction.md): Hamming code to detect and correct errors. Step-by-step examples for fixing errors using redundancy bits and the syndrome matrix. Learn how it works. - [Check Digit – Error Detection](https://jarroba.com/en/check-digit-error-detection.md): The check digit covers several hash codes, such as the parity bit, the digit generated by the Luhn algorithm, the verification letter of national ID numbers, and more. - [Hash Code](https://jarroba.com/en/hash-code-how-it-works.md): How does a hash code work? Hash tables and uses like digest, fingerprint, checksum, redundancy, parity bits, CRC and md5sum, with practical examples. - [Client-Server: The Client Request](https://jarroba.com/en/client-server-client-request.md): How the Internet works, made easy. Client-Server architecture, the client request, the parts of a URL, and HTTP Request headers explained with examples. - [Change the Default Password for the ADSL Router Configuration Menu (Basic Security)](https://jarroba.com/en/change-default-adsl-router-password.md): Learn how to change the default password for your ADSL router's configuration menu, step by step, and keep your network private and secure from intruders. - [First Contact with Your ADSL Router – Accessing Its Configuration Menu](https://jarroba.com/en/access-adsl-router-configuration-menu.md): Learn how to log in to your ADSL router's configuration menu from a browser, which default credentials to try, and how the admin panel is laid out. - [How to Protect Our Wi-Fi Wireless Network](https://jarroba.com/en/how-to-protect-wi-fi-wireless-network.md): Learn why a Wi-Fi network is vulnerable, how data can be intercepted, and how to protect it with encryption keys, router settings and MAC address filtering. - [Know the Dangers of the Internet to Prevent Them](https://jarroba.com/en/know-internet-dangers-to-prevent-them.md): Learn the biggest dangers of the Internet at home: Wi-Fi theft, stolen money, personal data, middleman attacks and more. Know them to protect yourself. - [Wireless Access Point – How Does Wi-Fi Work?](https://jarroba.com/en/wireless-access-point-how-wifi-works.md): Learn what a wireless access point is, how Wi-Fi really works, and how your laptop and your Wi-Fi ADSL router exchange data through the air. - [ADSL Router – How Does That Box That Just Gives You Internet Work?](https://jarroba.com/en/adsl-router-how-it-works.md): Find out how your ADSL router works: LAN vs. WAN, RJ-45 and RJ-11 ports, and what's really inside that box your ISP sends you. - [Internet Service Provider – How Does the Internet Get to Our Home?](https://jarroba.com/en/how-internet-reaches-our-home.md): Find out how the Internet gets to your home: what an ISP does, what your ADSL router really is, and the path data takes from the web to your computer. ### Operating systems - [Binary: Combinations and Conversion](https://jarroba.com/en/binary-combinations-and-conversion.md): Learn how numeral system combination tables work and convert between binary, decimal, hexadecimal and octal with simple mental math. - [Binary Number System](https://jarroba.com/en/binary-number-system.md): Learn what the binary number system is, how it relates to decimal, octal, hexadecimal and base 64, and how to read bases and number notations. - [Units of Measurement for Information](https://jarroba.com/en/units-of-measurement-for-information.md): Learn the units of information: bit, byte, kilo vs kibi, GB vs GiB. Understand the old and new systems so nobody fools you about storage or speed. - [Bit](https://jarroba.com/en/bit-basic-unit-of-digital-information.md): The bit, the basic unit of digital information. It represents two states: the binary system. Something so simple, yet important and full of potential. - [Hash Tables (or Hash Maps): How They Work](https://jarroba.com/en/hash-tables-how-they-work.md): Hash Table explained simply. What is a Hash Table and how does it work without writing code? A key type of "data structure" every developer should know. - [Installing Ubuntu in a Virtual Machine with VirtualBox (Video)](https://jarroba.com/en/install-ubuntu-virtual-machine-virtualbox-video.md): In this video tutorial you'll learn how to install Ubuntu in a virtual machine with VirtualBox, plus the commands to set up a shared folder. - [How to Configure Apache on a Linux Server (DigitalOcean) with a Domain and Subdomains (Video)](https://jarroba.com/en/configure-apache-linux-server-digitalocean-domain-subdomains.md): Learn how to set up Apache on a Linux server at DigitalOcean with your own domain and subdomains using VirtualHosts, step by step, with a video. - [How to Create Development Environments with Vagrant and Puppet (Video)](https://jarroba.com/en/create-development-environments-vagrant-puppet.md): Learn how Vagrant and Puppet let you build portable, reproducible development environments with PHP, MySQL and MongoDB, so your whole team works the same way. - [Install Snow Leopard (OS X) on VMware under Windows](https://jarroba.com/en/install-snow-leopard-vmware-windows.md): Step-by-step tutorial to install Mac OS X Snow Leopard in a VMware virtual machine on Windows: requirements, BIOS setup, drivers and shared folders. ### Programming languages - [Python vs NumPy vs GPU (TensorFlow): Execution Times](https://jarroba.com/en/python-vs-numpy-vs-gpu-tensorflow-execution-times.md): Want to know how much faster a GPU is than a CPU for training neural networks? We measure execution times for Python, NumPy and TensorFlow on a GPU. - [Install Jupyter Notebook and JupyterLab from the Terminal from Scratch and Learn How to Use Them](https://jarroba.com/en/install-jupyter-notebook-jupyterlab-terminal-guide.md): Install Jupyter Notebook and JupyterLab easily on any operating system and learn how to work in an interactive, multi-language environment. - [Generators in Python – The Foundation of Streaming](https://jarroba.com/en/python-generators-streaming-foundation.md): Python generators let you stream data in real time and get each item only when it's consumed. A great balance between processing and memory. Learn them here. - [Return in Python: Every Type of Return Explained](https://jarroba.com/en/return-in-python-types-explained.md): Return in Python means "we're done". Functions with: Return and one value, Return and several values, Return None, Return void, No Return, and more. - [Mapping and MutableMapping in Python](https://jarroba.com/en/mapping-and-mutablemapping-in-python.md): Learn how to build your own dictionary-like classes in Python with Mapping and MutableMapping: magic methods, lifecycle, repr, str and a full working example. - [Specialize Your Own Collection in Python](https://jarroba.com/en/specialize-your-own-collection-python.md): Mapping, Sequence or Collection in Python: you choose the best one for the data structure you want to build. A simple explanation of everything you need. - [Python Dictionary Views: keys, values, and items](https://jarroba.com/en/python-dictionary-views-keys-values-items.md): In Python Views, if you change something in the underlying dictionary (a value or a key), the change is reflected inside the Views. Learn how they work. - [Python repr vs str](https://jarroba.com/en/python-repr-vs-str.md): Understand repr vs str in Python and learn how to use them in any custom class. Examples of using repr for debugging. - [Hashables in Python](https://jarroba.com/en/hashables-in-python.md): A hashable is any object that returns its "Hash Code" when asked, and that code stays the same for the whole life of the object. Learn how it works in Python. - [Mutable and Immutable Types in Python](https://jarroba.com/en/mutable-and-immutable-types-python.md): Learn whether a variable can change (mutable) or not (immutable). Mutable: List, Dict, Set. Immutable: String, Int, Float, Bool, Tuple, Range, Decimal. - [Building Your Own Collection in Python](https://jarroba.com/en/build-your-own-collection-in-python.md): Learn how to build your own Collection in Python step by step: Container, Sized and Iterable explained, plus the difference between an Iterator and an Iterable. - [Streaming Tricks: Generators, Buffers, and Caches](https://jarroba.com/en/streaming-generators-buffer-and-cache.md): Learn how to build a data stream by balancing memory use and processing time: buffer data for a steady flow, generate data on demand, and cache results. - [*args and **kwargs in Python, with Examples](https://jarroba.com/en/args-kwargs-python-examples.md): One of the things we all overlook when starting to learn Python, and one of the most puzzling, is functions (or methods) that take *args and **kwargs as parameters. - [venv (virtual environments) in python](https://jarroba.com/en/virtual-environments-venv-in-python-2.md): In this post we will show examples of how to use virtual environments (venv) in python to isolate our projects between each other - [How to Build the Java 9 JDK](https://jarroba.com/en/how-to-build-jdk-9.md): Learn how to build JDK 9 from source code, just ahead of its imminent release. A step-by-step guide to get the new Java version running on your machine. - [Singleton Pattern in Python, with Examples](https://jarroba.com/en/singleton-pattern-python-examples.md): In this article we describe the Singleton pattern in Python, a pattern that makes sure a class has only one instance. Learn two ways to implement it. - [Java Type Inference: The Diamond Operator](https://jarroba.com/en/java-type-inference-diamond-operator.md): Java's diamond operator lets you cut down on verbosity when writing your code. Learn how it works with generics and type inference, and where it falls short. - [Gson (JSON) in Java, with Examples](https://jarroba.com/en/gson-json-java-examples.md): GSON is a Java API developed by Google to convert Java objects to JSON (serialization) and JSON to Java objects (deserialization). Learn it with examples. - [6 Ways to Improve Performance in Python](https://jarroba.com/en/6-ways-improve-python-performance.md): In this article we describe a series of recommendations and best practices for programming in Python (version 2.7) so your code runs faster and cleaner. - [Reading and Writing Files in Python, with Examples](https://jarroba.com/en/reading-and-writing-files-in-python.md): In this tutorial you'll learn how to read and write files in Python, one of the most useful and commonly used tasks when programming. Examples included. - [Singleton Pattern in Java, with Examples](https://jarroba.com/en/singleton-pattern-java-examples.md): Learn the Singleton design pattern in Java: a software engineering pattern that limits the creation of objects of a class to one, with code examples. - [Sorting Lists in Python, with Examples](https://jarroba.com/en/sorting-lists-python-examples.md): Learn the different ways to sort a list in Python, specifying the field, substring, attribute, etc. to sort by, with clear and practical examples. - [Annotations in Java](https://jarroba.com/en/annotations-in-java.md): Java annotations are simple notes that can change how your program works. Learn to use and create them, with Reflection and Spring dependency injection. - [Reflection in Java](https://jarroba.com/en/reflection-in-java.md): Reflection in Java lets you pick a class you wrote earlier and inspect or modify it while the program runs. It's easy to learn with practical examples. - [Python Dictionary, with Examples](https://jarroba.com/en/python-dictionary-examples.md): Learn how Python dictionaries work: declaring them, looping over key-value pairs and using methods like get, pop, update and more, with practical examples. - [Reading and Writing Files in Java, with Examples](https://jarroba.com/en/reading-writing-files-java-examples.md): In this tutorial we'll see how to read and write files in Java, one of the most useful and commonly used tasks when programming. Learn it with examples. - [Python Lists, with Examples](https://jarroba.com/en/python-lists-examples.md): Lists in Python are a data structure that stores an ordered collection of items, which don't have to be of the same type. Learn how to use them with examples. - [Pattern Matching – Regular Expressions](https://jarroba.com/en/pattern-matching-regular-expressions.md): Everything about regular expressions (Regexp) and pattern matching, with Java, PHP and JavaScript examples covering every possibility - [Exceptions in Java, with Examples](https://jarroba.com/en/exceptions-in-java-with-examples.md): Learn what exceptions are in Java, how the Throwable hierarchy works, and how to handle errors with try - catch - finally, with simple, practical examples. - [Interfaces in Java 8: The Default Method, with Examples](https://jarroba.com/en/java-8-interface-default-method-examples.md): Learn how the default method in Java 8 interfaces works, how it lets you add behavior without touching your classes, and how it simulates multiple inheritance. - [Enum (Enumerations) in Java, with Examples](https://jarroba.com/en/java-enum-enumerations-with-examples.md): Learn what enums are in Java, how they work as special classes, and how to add attributes and private constructors, with football examples. - [How to Configure Code Formatting in Eclipse](https://jarroba.com/en/configure-code-formatting-in-eclipse.md): Learn how to customize, export and share a code formatting style in Eclipse for Java and PHP so your whole team writes clean, consistent code. - [Inheritance in Java, with Examples](https://jarroba.com/en/inheritance-in-java-with-examples.md): Learn what inheritance is in object-oriented programming and how it works in Java, using extends, protected and super with a clear, practical example. - [Map in Java, with Examples](https://jarroba.com/en/java-map-examples.md): Learn how to use the Java Map interface with examples: HashMap, TreeMap and LinkedHashMap, their key methods, iterators and working with your own objects. - [Sorting an ArrayList in Java](https://jarroba.com/en/sort-arraylist-in-java.md): Learn how to sort an ArrayList in Java with Collections.sort and Comparator, for both simple values and objects, in ascending or descending order. - [Debug Mode in Eclipse for Java (Video)](https://jarroba.com/en/debug-mode-eclipse-java-video.md): Learn how to use debug mode in Eclipse to debug a Java program: breakpoints, step-by-step execution with F5-F8, and a video tutorial. - [Multitasking and Threads: Easy, With Lots of Benefits](https://jarroba.com/en/multitasking-and-threads-easy-benefits.md): Learn what multitasking and threads are, how concurrency and parallelism differ, and why cores matter, explained with simple comic-style examples. - [Sorting Arrays in Java (with Their Indices)](https://jarroba.com/en/sort-arrays-in-java-with-indices.md): Learn how to sort Java arrays in ascending or descending order and get their indices after sorting, using the SortArray API with int, float, double and String. - [Tables with JavaFX and FXML (Video)](https://jarroba.com/en/tables-with-javafx-and-fxml.md): Learn how to work with a table element in JavaFX and FXML: a simple example of adding, editing and deleting rows in a table, with a video tutorial. - [ArrayList in Java, with Examples](https://jarroba.com/en/java-arraylist-examples.md): Learn how to use ArrayList in Java: add, remove and iterate elements, store objects, and work with nested ArrayLists, with practical examples. - [Plotting Functions in JavaFX (LineChart)](https://jarroba.com/en/plot-functions-javafx-linechart.md): Learn how to plot functions like f(x)=x^2 in JavaFX using a LineChart, with SceneBuilder, the controller code and downloadable NetBeans and Eclipse projects. - [Introduction to JUnit (Video)](https://jarroba.com/en/introduction-to-junit-video-tutorial.md): Learn the basics of JUnit, the Java unit testing framework, with a video tutorial, a table of assert methods and the full example code to download. - [Introduction to Graphical User Interfaces with JavaFX and SceneBuilder (Video)](https://jarroba.com/en/intro-javafx-scenebuilder-graphical-interfaces-video.md): Learn how to build a graphical user interface with JavaFX, NetBeans and Scene Builder in this video tutorial, with the full example project to download. - [Python Course – Part I – (Video) «Setting Up Eclipse»](https://jarroba.com/en/python-course-part-1-setting-up-eclipse.md): Learn how to set up Eclipse to program in Python with PyDev. Watch the video tutorial and try a simple script to check that everything works. - [How to Program in C with Xcode on Mac (VIDEO)](https://jarroba.com/en/program-in-c-with-xcode-mac-video.md): Learn how to create, compile and run a C project with Xcode on your Mac. Watch the video tutorial and grab the sample code used in it. - [Programming Paradigms](https://jarroba.com/en/programming-paradigms-explained.md): What is a programming paradigm? Learn the main ones: structured, functional, logic, object-oriented and aspect-oriented programming, with example languages. - [A Lot of Java in One Simple Tutorial (for Dummies)](https://jarroba.com/en/java-tutorial-for-dummies-car-engine-example.md): Learn Java basics by building a car engine in Eclipse: variables, methods, constructors, objects, visibility and if-else, explained step by step. - [Workspace for Storing the Projects We Create in Eclipse](https://jarroba.com/en/eclipse-workspace-storing-your-projects.md): Learn what the Eclipse workspace really is, how it relates to a folder on your computer, and create your first Java project, package and class step by step. - [How to Install Eclipse the Right Way (One IDE Among Many)](https://jarroba.com/en/how-to-install-eclipse-properly.md): Learn how to download and install Eclipse step by step: pick the right version, set up your workspace, install Java and the JDK, and fix common startup errors. - [Learn to Program by Understanding What an Integrated Development Environment (IDE) Is](https://jarroba.com/en/learn-to-program-what-is-an-ide.md): New to programming? Learn what an Integrated Development Environment (IDE) is, which tools it includes, and why one IDE can't cover every language. ### Software engineering - [Kruchten’s «4+1» View Model (for Dummies)](https://jarroba.com/en/kruchten-4-plus-1-view-model-dummies.md): Kruchten's "4+1" model uses multiple views to describe a software-intensive system's architecture, in line with the IEEE 1471-2000 standard. Learn how it works. - [What Modeling Can Do for You](https://jarroba.com/en/what-modeling-can-do-for-you.md): Discover why modeling matters in software development: how plans and diagrams speed up production, prevent errors and let teams work together in parallel. ### Web Technologies - [LAMP Step by Step on Your Own Server](https://jarroba.com/en/lamp-step-by-step-on-your-server.md): Learn step by step how to build a dynamic website with the full LAMP architecture: Linux, Apache, MySQL or MariaDB, and PHP, Perl or Python. - [Using Servers and Building a Website](https://jarroba.com/en/using-servers-and-building-a-website.md): Learn what you can do with a physical server: install Apache, build your first website, edit it with Vim or an IDE, upload files over SFTP and pick a domain. - [Maven in Eclipse](https://jarroba.com/en/maven-in-eclipse-step-by-step.md): Learn how to get started with Maven in Eclipse and use it. Step-by-step installation and usage. Everything you need to know about Maven. - [Maven](https://jarroba.com/en/maven-complete-tutorial-for-beginners.md): Complete Maven tutorial. Learn everything you need to know to master Maven: install it, create projects, lifecycles, plugin goals and the pom.xml file. - [Charts on Web Pages with Google Charts](https://jarroba.com/en/charts-web-pages-google-charts.md): Learn how to create line, pie and geo charts on your web pages with the free Google Charts API and JavaScript, with complete code examples. - [AJAX with JSP and Servlets](https://jarroba.com/en/ajax-with-jsp-and-servlets.md): Learn how to add AJAX to JSP and Servlets with a simple example: update a table without reloading the page. Full code and project available to download. - [Charts on Web Pages with Highcharts](https://jarroba.com/en/charts-web-pages-highcharts.md): Learn how to add line and pie charts to your web pages with Highcharts JS and jQuery, and feed them with JSON data from a database using PHP. - [Rotating Banner with JavaScript](https://jarroba.com/en/rotating-banner-with-javascript.md): Learn how to build a rotating banner with JavaScript: images that change every few seconds and link to different pages. Includes a downloadable example. - [How to Program Web Apps and Servlets in Eclipse](https://jarroba.com/en/programming-web-apps-servlets-eclipse.md): Learn how to set up Tomcat in Eclipse, install the web development plugins and run a local server to program web apps and servlets step by step. - [Installing a Local Servlet Container: Tomcat](https://jarroba.com/en/install-local-servlet-container-tomcat.md): Learn how to install Apache Tomcat on Windows step by step, run it as administrator and check that your local Servlet container works. - [How to Set Up Eclipse for PHP Programming (VIDEO)](https://jarroba.com/en/configure-eclipse-for-php-programming-video.md): Learn how to set up the Eclipse IDE for PHP development with a local XAMPP server. Follow our video tutorial and try the example PHP code step by step. - [Installing WordPress on a Local Server (XAMPP)](https://jarroba.com/en/install-wordpress-local-server-xampp.md): Learn how to install WordPress on a local XAMPP server step by step: create the database, configure wp-config and finish the setup from your browser. - [Installing XAMPP on Windows](https://jarroba.com/en/installing-xampp-on-windows.md): Learn what XAMPP is, how to download and install it on Windows, and test your setup with a simple PHP example running on your local Apache server.