Categoría: Tutorial

Leyendo Información desde Encuestas o Formularios en Google Forms con Pentaho Data Integration a través de Google Sheets

Ayer un cliente me indicó que le encantaría que a través de Internet, los clientes potenciales de su negocio puedan registrarse en algún formulario y que “mágicamente” la información pueda consultarla a través de su combinación de CRM y ERP.

Le dije que eso no iba a suceder mágicamente, pero ciertamente yo podría ayudarlo con el truco que haría parecer que sí.

A continuación, cómo lo hice.

Configurando el acceso al API de Google Sheets

Paso 1. Crear un proyecto en Google Cloud

Esto lo podemos realizar directamente la consola de Google APIs. Accede al vinculo https://console.developers.google.com y presiona “CREATE”

Google API Console Dashboard
Continue reading “Leyendo Información desde Encuestas o Formularios en Google Forms con Pentaho Data Integration a través de Google Sheets”
Anuncios

Tu primera WebApp en CodeIgniter + Bootstrap casi desde Cero (Formulario de Registro, Login, Base de Datos y cifrado de Contraseña)

La animación que estás viendo describe el producto final de este tutorial. Tras completarlo habrás aprendido lo siguiente:

  • Instalar XAMPP.
  • Hacer uso de una instancia de CodeIgniter.
  • Aprovechar las capacidades de Bootstrap.
  • Manejo de sesión de usuario con CodeIgniter.
  • Validación de formularios con CodeIgniter.
  • Uso de base datos con CodeIgniter.
  • Manejo y almacenamiento seguro de contraseñas con PHP.

Si bien este tutorial es bastante sencillo, es deseable tener conocimientos básicos de PHP, SQL, HTML, CSS, JavaScript y jQuery. Si consideras que me falta explicar algo, por favor hazme la pregunta en la sección de comentarios que yo amablemente respondo rápido.

Leer más

Cómo configurar la conexión a SQLServer mediante JDBC (NetBeans, Java 8, SQLServer Express 2016, Windows 10…)

Nunca antes, luego de haber aprendido cómo conectarme a distintas bases de datos mediante JDBC, me había costado tanto una como lo fue con SQLServer (casi 15 minutos). Gracias a Google, Stack Overflow y conocimiento previo salió medianamente rápido, pero vamos, que a esta gente le gusta complicar a veces las cosas.

Archivo de propiedades de conexión (config.properties)

Ya sabemos que es de muy mala educación, y prohibido además, hard-codear valores o atributos que pueden cambiar en el tiempo de una computadora, una red, etc… a otra; entre ellos las propiedades de conexión a una base de datos. Es por eso, que lo ideal es colocarlo en un archivo de propiedades como los que estamos acostumbrados a hacer:

#Ubicado en src\res\config.properties
db.url=jdbc:sqlserver://servidor\\SQLEXPRESS;databaseName=nombre_bd;integratedSecurity=true
db.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
db.user=usuario
db.password=clave

Respecto a los valores db.url y db.driver, recordemos que cada manejador de base datos  (o DBMS, como quieran llamarlo) tiene su forma de establecer estos valores, los que les indico funcionan con SQLServer Express 2016; acá mucha mas información respecto a cómo formar la url.

Y una clase en Java sencilla que lo lea:

package th.control.db;

import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.Properties;

/**
 *
 * @author jescobar
 */
public final class DBConnection {
 static InputStream inputStream;
 static Connection conn;
 
 public static void connect() throws Exception {
 inputStream = Class.forName("th.control.db.DBConnection").getClassLoader().getResourceAsStream("config.properties");
 
 Properties prop = new Properties();
 
 prop.load(inputStream);
 
 
 Class.forName(prop.getProperty("db.driver"));
 conn = DriverManager.getConnection(
 prop.getProperty("db.url"), 
 prop.getProperty("db.user"), 
 prop.getProperty("db.password"));
 
 System.out.println("Me conecté!!!");
 }
}

Todo bien, compila al pelo, pero al ejecutar un indeseado java.lang.NullPointerException te aparece en la línea donde intentas cargar el archivo de propiedades mediante el método prop.load(inputStream).

run:
Exception in thread "main" java.lang.NullPointerException
 at java.util.Properties$LineReader.readLine(Properties.java:434)
 at java.util.Properties.load0(Properties.java:353)
 at java.util.Properties.load(Properties.java:341)
 at th.control.db.DBConnection.connect(DBConnection.java:26)

El punto es que ni NetBeans ni Eclipse te van a decir dónde colocar el archivo para que sea leído, debes especificar en cada IDE que rutas incluir en el classpath. En NetBeans una solución sencilla es moverlo al directorio src.

#Ubicado en src
db.url=jdbc:sqlserver://servidor\\SQLEXPRESS;databaseName=nombre_bd;integratedSecurity=true
db.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
db.user=usuario
db.password=clave

Ahora tu problema va a ser otro…

Continue reading “Cómo configurar la conexión a SQLServer mediante JDBC (NetBeans, Java 8, SQLServer Express 2016, Windows 10…)”