Página prototipo para LabSOM

Una de las cosas que me está dando gusto, es que LabSOM (si ese proyecto de redes neuronales) ya se encuentra en sus últimas etapas.

Por lo pronto ya tengo una versión prototipo para su sitio web. 😀

Anuncios

¿Emacs como ide para Java?

Una de las cosas que me faltan por hacer, es convertir a Emacs como mi editor primario. Entonces, ¿qué me falta para eso?

La respuesta es simple: Java. Actualmente todo el trabajo que realizo con Java es través de Netbeans, lo cuál me hace tener que estar cambiando entre Emacs y Netbeans, haciendo que tenga que estarme moviendo mucho entre ventanas.

A pesar de que he probados varias bibliotecas que permiten trabajar con Java en Emacs, creo que no me he dado el tiempo suficiente para probarlas a profundidad. Tendré que hacerlo tarde o temprano.

A continuación hago una lista de las cosas que me gustan de trabajar con Netbeans:

  • Autocompletado de código. Esta parte podría trabajarla vía autocomplete o vía company-mode.
  • Imports automáticos. Aquí no tengo idea de como hacer que trabaje de igual forma en Emacs.
  • Herramientas para hacer uso de Java 8.
  • Templates para proyectos y archivos.
  • Navegación sencilla entre clases.
  • Snippets. Podría trabajarlo vía yasnippet.
  • Sugerencias de refactoring inteligentes.
  • Inspección de jerarquías de clases.
  • Análisis de errores al vuelo.
  • Distintos tipos de source code refactoring.
  • Integración con Herramientas como maven, ant o gradle.
  • El uso sencillo del Debugger o el profiler.
  • Herramientas para realizar pruebas unitarias.
  • Herramientas para Análisis del código.

Creo que no hay una o más herramientas que trabajando juntas me den las mismas capacidades que las de Netbeans. Así que o tendré que esperar o comenzar a construir mis propias herramientas. Lo más probable es que me decante por lo segundo.

Herramientas para migraciones de bases de datos.

Existen diversos tipos de herramientas para realizar migraciones de bases de datos (Schema migration, database migration, database change management en inglés). Estas herramientas están diseñadas para administrar cambios incrementales y reversibles sobre esquemas de bases de datos relacionales.

Una migración sobre un esquema es realizada siempre que se necesite actualizar o revertir un cambio sobre un esquema de una base de datos relacional.

En este texto, mostraré las herramientas disponibles y de las más oídas para trabajar con migraciones para bases de datos.

Flyway

  • Herramienta desarrollada para interactuar con Java
  • Bases de datos soportadas:
    • Oracle
    • SQL Server
    • SQL Azure
    • DB2
    • MySQL
    • MariaDB
    • Google Cloud
    • PostgreSQL
    • Redshift
    • Otras…
  • Herramientas de Java con las que interactua
    • Maven
    • Gradle
    • Ant
  • 6 Comandos básicos
    • Migrate
    • Clean
    • Info
    • Validate
    • Baseline
    • Repair

Liquibase

  • Herramienta desarrollada para interactuar con Java
  • Bases de datos soportadas
    • MySQL
    • PostgreSQL
    • Oracle
    • SQL Server
    • Sybase
    • DB2
    • Apache Derby
    • Otras
  • Herramientas Java con las que interactua
    • Maven
    • Ant
  • Muchos comandos dependiendo de lo que se quiera hacer

Datical DB

  • Sin interacción directa con Java
  • Bases de datos soportadas
    • Oracle
    • DB2
    • MySQL
    • SQL Server
    • PostgreSQL
    • Otras
  • Muchos comandos dependiendo de lo que se quiera hacer. Similar a Liquibase.

Active Record (migrations)

  • Herramienta hecha con Ruby
  • Bases de datos soportadas
    • PostgreSQL
    • MySQL
  • Comandos basados en definir cosas en Ruby

Ruckusing-migrations

  • Herramienta hecha en PHP
  • Bases de datos soportadas
    • PostgreSQL
    • MySQL
    • Sqlite
  • Varios comandos basados en lo que se quiera hacer.

Phinx

  • Herramienta hecha en PHP
  • Bases de datos soportadas
    • MySQL
    • PostgreSQL
    • SQLite
    • SQL Server
  • Varios comandos basados en lo que se quiera hacer.

MyBatis Migrations

  • Framework de persistencia para Java.
  • Bases de datos soportadas
    • Cualquiera bajo JDBC
  • Configuración basada en SQL, Java y XML

Ragtime

  • Biblioteca para realizar migraciones de datos estructurados hecha en Clojure
  • Bases de datos soportadas
    • Cualquiera bajo JDBC
  • Configuración basada en SQL

Lobos

  • Biblioteca para realizar migraciones de bases de datos escrita en Clojure.
  • Bases de datos soportadas
    • H2
    • MySQL
    • PostgreSQL
    • SQLite
    • SQL Server
  • Configuración bajo clojure

Data Mining Studio

Estoy en el desarrollo de un nuevo proyecto, en el que voy a trabajar con diversos algoritmos de minería de datos.

Para esto, hay que implementar varios tipos de algoritmos tales como:

  • Redes neuronales
  • Regresión lineal
  • Árboles de decisión
  • Modelos estadísticos
  • Agrupamiento o clustering
  • Reglas de asociación

Por el momento apenas está en etapa de concepción, pero espero tener noticias pronto.