lunes, 2 de diciembre de 2013

Instalar Apache, MySql y PHP en Debian Squeeze

Instalar Apache, MySql y PHP en Debian Squeeze es muy sencillo, sólo debemos realizar los siguientes pasos:


Instalar Apache

Abrimos la terminal y escribimos:
$sudo apt-get install apache2

Al finalizar la instalación abrimos un explorador de internet y escribimos http://localhost  en la dirección. Nos deberá mostrar un It Works! si instalación se realizó de forma correcta.


Instalar PHP

Abrimos la terminal y escribimos:
$ sudo apt-get install php5

Al finalizar la instalación reiniciamos los servicios de Apache:
$ sudo /etc/init.d/apache2 restart


Instalar MySQL

Abrimos la terminal y escribimos:
$ sudo apt-get install mysql-server

Durante el proceso de instalación, se nos pedirá que escribamos una contraseña para el usuario de root. Escribimos la contraseña presionamos ALT y SPACE o Barra espaciadora para Aceptar.


Al terminar la instalación volvemos a reiniciar Apache:
$ sudo /etc/init.d/apache2 restart



Instalar PHPmyadmin

Abrimos la terminal y escribimos:
$ sudo apt-get install phpmyadmin


Se nos pedirá seleccionar el servidor para ejecutar phpmyadmin. Seleccionamos Apache2 con barra espaciadora, presionamos Tabulador para mover el foco al botón y nuevamente, usando la barra espaciadora aceptamos.


PHPmyadmin preguntará si deseamos configurar nuestra base de datos con dbconfig-common. Indicamos que Sí. Seguidamente deberemos proporcionar la contraseña de administrador de la base de datos, escribimos la que previamente seteamos en la configuración de MySQL.



En la siguiente pantalla proporcionaremos una contraseña para la aplicación de phpmyadmin en la base de datos. Una vez finalizada la instalación, reiniciamos Apache, abrimos nuestro explorador de internet y escribimos la dirección localhost/phpmyadmin e ingresamos con nuestra contraseña de root







miércoles, 6 de noviembre de 2013

Publicar web service en Eclipse con conexion a Oracle

Requisitos:
-Eclipse
-JDBC
-Apache Tomcat

Hay dos formas de realizar un webservice: Top down y Bottom up. En este post les daré un ejemplo utilizando la forma Bottom up, que significa que generaremos el WSDL a partir de un método en Java. Para ello abrimos Eclipse y seleccionamos la opción File->New->Other->Web->Dynamic Web Project.



  
Escribimos un nombre para nuestro proyecto, en este caso Ejemplo_webService. Seleccionamos Apache Tomcat en Target runtime y damos click en Finalizar.


Para que nuestro webservice pueda conectarse a oracle, es necesario agregar el jdbc a nuestro classpath. Puedes descargar la versión adecuada del jdbc según tu base de datos aqui, o si ya tienes instalado el cliente de oracle, simplemente lo ubicas en la carpeta jdbc de tu instalación.
Para asignar el jdbc al classpath debes dar click derecho sobre el proyecto->Properties, Seleccionar la pestaña Java Build Path, Selecciona Libraries y Add External JARs.



Lo siguiente que debemos hacer es crear un paquete, para ello, damos click derecho en el proyecto->New->Package. Escribimos un nombre para nuestro paquete, en este caso  com.oraclecon

 

 
Una vez creado nuestro paquete java, solo nos falta crear nuestra clase en java que contendrá el código que generará el webservice, para ello damos click derecho sobre nuestro paquete->New->Class. Asignamos un nombre para nuestra clase, en este caso Oracle_conexion

 

Pega el siguiente código en el archivo generado:


package com.oraclecon; import javax.jws.WebMethod; import javax.jws.WebParam; import javax.jws.WebService; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; @WebService() public class Oracle_conexion { private static final String driver = "oracle.jdbc.driver.OracleDriver"; private static final String database = "jdbc:oracle:thin:@//localhost:1521/SID"; private static final String usuario = "usuario"; private static final String password = "password"; private static String resultado; /** * Web service operation */ @WebMethod(operationName = "obtieneDepto") public static String obtieneDepto(@WebParam(name = "empleado") String empleado) throws SQLException { Connection conn = null; PreparedStatement preparedStatement = null; String query = "SELECT DEPARTAMENTO_ID FROM DEPARTAMENTO WHERE EMPLEADO ='" + empleado + "'"; try { conn = conexionbd(); preparedStatement = conn.prepareStatement(query); ResultSet rs = preparedStatement.executeQuery(); resultado = rs.getString(1); } catch (SQLException e) { System.out.println(e.getMessage()); } finally { if (preparedStatement != null) preparedStatement.close(); if (conn != null) conn.close(); } return resultado; } private static Connection conexionbd() { Connection conexionbd = null; try { Class.forName(driver); } catch (ClassNotFoundException e) { System.out.println(e.getMessage()); } try { conexionbd = DriverManager.getConnection(database, usuario, password); return conexionbd; } catch (SQLException e) { System.out.println(e.getMessage()); } return conexionbd; } }


El código nos indica que nuestro webservice se conectará a una base de datos oracle (debes cambiar los campos de SID, usuario y password por los tuyos propios), recibirá un string como parámetro que contendrá el nombre del empleado y retornará el nombre del departamento a donde pertenece.

Para generar el webservice damos click derecho sobre nuestro java class->Web Services->Create Web Service.
En la opción Web Service Type seleccionamos Bottom up Java Bean Web Service, subimos las dos barras hasta la opción Test Service y Test Client respectivamente y chequeamos la opción Publish the Web Service. Clickeamos en Finalizar para que Eclipse genere el webservice.



Se abrirá la pestaña Web Services Test Client, con la URL del webservice generado donde podrás ejecutar los métodos públicos de tu web service, en este caso, el método obtieneDepto()



Más adelante postearé cómo consumir un webservice en Java.
Puedes descargar este proyecto en github.



domingo, 27 de octubre de 2013

Conectar una máquina virtual en VirtualBox en red al host

Establecer una conexión de red entre una máquina virtual de VirtualBox con el host es sencillo, abres VirtualBox y seleccionas la opción Archivo ->Preferencias->Red
Clickea la opción de Agregar Red para agregar una red Sólo-Anfitrión



Clickea el ícono de Configuración de la máquina virtual y Selecciona la pestaña Red. Habilita un adaptador de red Sólo-Anfitrión y selecciona la red que acabas de crear.



Para verificar la IP que la maquina virtual tiene asignada, basta con abrir la terminal y escribir sudo ifconfig para usuarios de linux, o ipconfig para usuarios de windows. Con esto veremos la información de la nueva red que creamos con la máquina virtual





domingo, 13 de octubre de 2013

Añadir OracleClient a un proyecto .NET

Soy una novata en .NET, asi que cuando quise realizar una conexión a Oracle, me perdí.  Tenía mi DataSource funcionando para Oracle, así que creí que todas las librerias necesarias para conectarme a mi base de datos estaban instaladas, pero .NET no podía reconocer una instrucción para Oracle desde mi código.
Encontré que el problema era que necesitaba añadir una referencia de OracleClient desde mi proyecto, y la forma más fácil que encontré fue esta:

En el panel de Solution Explorer clikear en la opción Add Reference, o ir a Project->Add Reference. En la pestaña de .NET escoger la referencia System.Data.OracleClient y clikear en Ok para añadir.


martes, 1 de octubre de 2013

Cómo habilitar el touchpad en Debian Squeeze

Una de las cosas que noté al instalar Debian Squeeze en mi laptop, fue el touchpad. No venia activado, aunque hacerlo funcionar fue fácil.
Para activarlo tienes que instalar gsynaptics, escribiendo en la consola:

$ sudo apt-get install gsynaptics


Una vez instalado, nos dirigimos a Sistema->Preferencias->Pointing Devices y desmarcamos la casilla 'Desactivar el touchpad'

martes, 17 de septiembre de 2013

Llamar a una función PHP en javascript

PHP se ejecuta en el servidor y javascript en el cliente, por lo que no podemos hacer llamadas a una función PHP dentro de javascript, pero sí podemos hacerlo por medio de AJAX.

Para hacerlo, debemos crear un archivo .PHP donde tendremos el código de nuestra función y desde ajax hacemos el llamado. Suponiendo que nuestro archivo de PHP sea funcion.php con el siguiente código:


<?php $codigo = $_POST['codigo']; $conn = oci_connect('usuario', 'password', 'dbname'); $query = 'SELECT NOMBRE, DEPTO FROM EMPLEADO WHERE CODIGO=' . $codigo; $exec = oci_parse($conn, $query); oci_execute($exec); $resultado = oci_fetch_array($exec, OCI_ASSOC); //manejo de excepciones y errores echo $resultado; ?>

El código en javascript debe quedar asi:


<script> $.ajax({ type: "POST", url: "funcion.php", data: { "codigo" : "codigo" }, success: function(data){ alert(data); } }); </script>

viernes, 16 de agosto de 2013

Instalar ckeditor en Drupal 7

CKEditor es un editor de texto que permite la edición fácil de contenido, sin trabajar directamente con etiquetas HTML. 
Para empezar a usarlo, debes tener instalado un editor de texto wysiwyg. Yo trabajo con el módulo Wysiwyg, el cual permite trabajar con múltiples editores.
Para instalarlo, debes ir a la página de descargas de drupal (https://drupal.org/project/wysiwyg) y copiar el enlace de la descarga del paquete .tar.gz o .zip si es tu caso. 



Vamos a la pestaña de Módulos en drupal, y clickeamos la opción de Instalar nuevo módulo:
Pegamos el enlace de la descarga del paquete de nuestro editor de texto y damos click en Instalar. Para los que tengan problemas con las credenciales (como me sucedió a mí), puedes ver mi post


Si todo va bien, nos aparecerán tres enlaces. Clickeamos el segundo enlace para activar el módulo:

  
En el grupo de Interfaz de usuario activamos Wysiwyg y guardamos la configuración.


Antes de instalar ckeditor, debemos instalar primero el contenedor. Para hacerlo debemos ir a la página del proyecto de ckeditor en drupal (https://drupal.org/project/ckeditor). Descargamos el paquete y lo extraemos en la carpeta sites/all/modules.
Lo siguiente es instalar el módulo de ckeditor. Nos dirigimos a la página de descargas de ckeditor y descargamos la versión Full (http://ckeditor.com/download). 


Extraemos el paquete en la carpeta de /sites/all/modules/ckeditor, que es donde instalamos el contenedor. Verás que esa carpeta únicamente contiene un archivo de texto, donde si lees las instrucciones, te dirá que es allí donde debes instalar el módulo de ckeditor. 

Activamos el módulo de ckeditor en la pestaña de Módulos, en el grupo de Interfaz de Usuario 


Por último asignamos permisos a los usuarios en la pestaña de Personas y ajustamos los perfiles en de ckeditor en la pestaña de Configuración. 
Ahora ya podemos sacarle provecho a las herramientas de ckeditor!



martes, 6 de agosto de 2013

Conexión a PHP con Oracle 11g

Para realizar la conexión con PHP a Oracle 11g debemos activar la libreria OCI. Para hacerlo, sólo debes buscar el archivo de configuración php.ini (que se encuentra en la carpeta de instalación de PHP) y descomentar la línea que contiene la extensión php_oci8_11g.dll.
Para descomentar solo tienes que borrar el ';' al principio de la línea.



Reinicias tu servidor (en mi caso Apache), y crea un archivo .php para hacer la conexión con oracle, que debería quedar como:

<HTML> <?php $campo = "contenido a insertar"; $conn = oci_connect("usuario", "password", "localhost/bd"); if (!$conn) echo "Error de conexion"; else { $query = "insert into tabla (CONTENIDO) values ('$campo')"; $statement = oci_parse($conn, $query); $execute = oci_execute($statement); if ($execute) echo "Insercion Exitosa"; else echo "Error"; } ?> </HTML>

Este código conecta a una base de datos Oracle y realiza una inserción a una tabla. Para conectarte sólo debes cambiar a tu usuario, password y nombre de tu base de datos


viernes, 26 de julio de 2013

Instalar Yii Framework en Windows

Para instalar el Framework de Yii debes asignar la carpeta donde se encuentra PHP como variable de sistema. Para hacerlo, debes ir a Mi PC ->Propiedades -> Opciones Avanzadas -> Variables de Entorno. Localiza la variable Path en el grupo de Variables del Sistema.
Agrega la ubicación de php, que en mi caso, fue C:\wamp\bin\php\php5.4.3



Abre el explorador de windows y accede a la ruta C:\wamp\www (en caso de usar wamp como servidor web). Crea una carpeta llamada yiiapp (éste será el nombre de tu aplicación web)

Descarga el framework de yii desde la página oficial o directamente desde aqui
Descomprime el archivo y cópialo dentro de la carpeta C:\wamp\www
Renombra la carpeta que acabas de copiar como yii. Abre la terminal y escribes:

C:\wamp\www>cd yii\framework
C:\wamp\www\yii\framework>yiic webapp C:\wamp\www\yiiapp


Yii te preguntará si deseas crear una aplicación web. Presiona 'y' y listo.


Para acceder a tu aplicación debes abrir el explorador de internet e ir a http://localhost/yiiapp/


miércoles, 17 de julio de 2013

Drupal pide credenciales al instalar por FTP

Hace tiempo que vengo lidiando con el molesto mensaje de drupal que pide credenciales al instalar por FTP, así que decidí encontrar la solución. 
El mensaje lo obtenía cada vez que intentaba instalar por FTP en drupal 7, donde me pedía credenciales para continuar:
 
 

La solución la encontré al asignar como propietario de la carpeta /sites/default al usuario www-data, que es el usuario de apache que ejecuta los scripts de drupal. 
Para hacerlo sólamente escribimos en la terminal:

$ chown -R www-data sites/default


miércoles, 10 de julio de 2013

Cómo Instalar paquetes .rpm en Debian

Alien es un software muy útil si deseas convertir un paquete .rpm en paquete .deb.
Para instalarlo únicamente tienes que digitar en la consola:

$ sudo apt-get install alien

O descargarlo desde la página oficial: http://joeyh.name/code/alien/

Para convertir el paquete rpm a .deb:

$ alien -d nombre_fichero.rpm

Para instalar el paquete .deb generado:

$ alien -i nombre_fichero_generado.deb


Tambien puedes convertir formatos zip y .tgz





miércoles, 26 de junio de 2013

Conexión a PostgreSQL en Java

Para realizar una conexión a una base de datos Postgres desde Java, debemos tener instalado el driver JDBC en nuestra pc, el cual podemos obtener aqui
Lo siguiente es crear un archivo java donde pegaremos el código de abajo, o si utilizan netbeans o eclipse, pueden crear un proyecto web y crear un java class pegando el siguiente código, cambiando los parámetros de usuario y password con los propios.


import java.sql.*; public class Postgresql { public String driver = "org.postgresql.Driver"; public static String database = "jdbc:postgresql://localhost:5432/postgres"; public static String usuario = "postgres"; public static String password = "tu_password"; public Connection conn=null; public boolean Conexion_postgres(){ try{ Class.forName(driver); conn = DriverManager.getConnection(database, usuario, password); }catch (Exception ex){ System.out.println(ex.getMessage()); } if(conn!=null){ System.out.println("exito"); return true; }else{ System.out.println("fallo"); return false; } } public static void main(String[] args) { Postgresql conexionbd = new Postgresql(); conexionbd.Conexion_postgres(); } }

martes, 18 de junio de 2013

Cómo formatear la fecha y hora en SQL Developer

 
Al ejecutar un query en SQL Developer que contenga algún campo datetime, veremos que éste sólo despliega la fecha. Para mostrar la fecha y la hora podemos formatear la fecha, pero eso tendríamos que hacerlo para cada query que ejecutemos.

Una forma práctica para resolver el problema es crear un script sql para formatear la hora, así cada vez que iniciemos  SQL Developer, éste leerá el script y formateará la hora. 
Para hacerlo debemos abrir un editor de texto y escribir:

alter session set nls_date_format = 'DD-MON-YYYY HH24:MI:SS'

Guardamos el documento con la extensión .sql y seleccionamos en SQL Developer el menú Herramientas -> Preferencias -> Base de Datos, donde seleccionamos la ubicación del archivo que acabamos de crear. 



domingo, 26 de mayo de 2013

Autoincrement en Oracle

Oracle, a diferencia de otros motores de base de datos como MySql, no soporta la instrucción Autoincrement, pero siempre podemos hacer uso de esa característica.

Para hacerlo, debemos primero crear una secuencia, que es donde llevaremos el incremento. La secuencia puede crearse de modo gráfico, o ejecutando un script como este: 

create sequence ejemplo_seq
start with 1
increment by 1
nomaxvalue;

Donde podemos especificar el número con el que iniciará y el incremento, en este caso lo incrementamos en 1




El segundo paso es crear un trigger (o disparador) para correr la secuencia. También lo podemos crear en forma gráfica o con el siguiente script:

create trigger ejemplo_trigger
before insert on  <nombre_tabla>
for each row
begin
select ejemplo_seq.nextval into :new.id from dual;
end;

Con la instrucción "select ejemplo_seq.nextval into :new.id from dual;" le indicamos al trigger que ejecute la secuencia con el siguiente valor y lo asigne al nuevo registro que estamos creando.


martes, 21 de mayo de 2013

Cómo solucionar el error NTFS-fs al montar USB en Debian

Al conectar un disco duro externo USB en Debian, pude darme cuenta de que  ¡no  montaba!

Este era el error que me mostraba:



Al ver el detalle del problema con dmesg | tail en la consola, pude verificar que el problema consistia en que el tamaño de mi disco duro externo excedia al tamaño reconocido por debian, que es de 2 terabytes, cuando el mio era de 2.5 TB.

Si a alguno le pasa lo mismo que a mi, la solución que encontré fue instalando el paquete ntfs-3g:

$ sudo apt-get install ntfs-3g



jueves, 16 de mayo de 2013

Instalar impresora en red en Debian

Instalar la impresora compartida en red de la oficina no fue una tarea fácil, sobre todo porque no encontré mucha información al respecto, asi que para que no se me olvide nada y talves para ayudar a más de alguno que ande con el mismo problema, escribo la nota con todos los pasos que me ayudaron a resolverlo.

En primer lugar Debian viene instalado con CUPS, que es un sistema de impresión para Gnome o KDE con un entorno sencillo y accesible para configurar nuestras impresoras.

Para acceder a CUPS simplemente escribimos la dirección http://localhost:631 en nuestro navegador web, desde aqui podemos gestionar nuestras impresoras compartidas en red.

En caso de que no tengamos CUPS instalado, ingresamos la siguiente instrucción en la linea de comandos:

$ sudo apt-get install cups

Accedemos a CUPS e ingresamos a la pestaña de Administración para añadir la impresora. Hasta aqui deberia andar todo bien.
Es posible que ocurra que no podamos imprimir, para eso verificamos si tenemos el paquete hplip instalado, si no lo tenemos, lo instalamos:


$ sudo apt-get install hplip

y verificamos si hay algun error:
$ hp-check -t

En mi caso, el problema que tenia era que mi usuario no pertenecía al grupo lp y lpadmin, por lo que tuve que agregarlo:
# adduser usuario lp
# adduser usuario lpadmin

Por último solo queda configurar la impresora con el comando:
# hp-setup



sábado, 11 de mayo de 2013

Crear modelos Master-Detalle en Django

Podemos crear un modelo conteniendo dos o más clases en django con la clase  ModelAdmin. La clase ModelAdmin es la representación de un modelo en la interfaz del administrador, que nos permite establecer el tipo de relación entre las clases 
que le incluyamos.

La clase ModelAdmin ya viene activada por defecto, pero en versiones anteriores es necesario añadir django.contrib.admin al bloque INSTALED_APPS del archivo settings.py para poder utilizarlo

Como ejemplo de cómo utilizar ModelAdmin, crearemos el modelo Master-Detalle de una factura, para ello editamos el archivo models.py y creamos las clases necesarias:

class factura(models.Model):
    nombre = models.CharField(max_length=40, blank=True)
    nit_cliente = models.CharField(max_length=10, blank=True)
    fecha = models.DateField(null=True)
    total = models.IntegerField(null=True, blank=True)
def  __unicode__(self):
    return self.total

class detalle_factura(models.Model):
    factura = models.ForeignKey(factura, db_column='factura_id')
    cliente = models.IntegerField(null=True, blank=True)
    producto = models.ForeignKey(producto, db_column='producto_id')
    cantidad = models.IntegerField()
    subtotal = models.IntegerField()
def  __unicode__(self):
    return self.subtotal


Ahora creamos el modelo utilizando ModelAdmin y lo añadimos al sitio Admin:

class detalle_facturaInline(admin.TabularInline):
    model = detalle_factura

class facturaAdmin(admin.ModelAdmin):
    inlines = (detalle_facturaInline,)

admin.site.register(factura, facturaAdmin)
   

Con esto ya tenemos el modelo Master-Detalle listo.



 Para más información visita la documentación de Django: docs.djangoproject.com/en/dev/ref/contrib/admin


martes, 7 de mayo de 2013

Instalar Eclipse (Android SDK) en Debian

Android SDK es un paquete que contiene todas las librerias API, el IDE de Eclipse y las herramientas necesarias para desarrollar aplicaciones en Android.

Para empezar a desarrollar en Android, la forma más facil es instalando el ADT Bundle, que incluye los componentes esenciales del Android SDK y una versión de Eclipse, todo en una sola descarga.
Para descargarlo, vamos a la página oficial de desarrolladores de android: developer.android.com/sdk/index.html#ExistingIDE y descargamos el paquete adt-bundle-linux-x86-20130219.zip

Uno de los requisitos para instalar el ADT Bundle es tener instalado el JVM de Java en la version 1.6 o mayor. Si no lo tienes instalado, puedes descargarlo aqui: www.oracle.com/technetwork/java/javase/downloads/jre7-downloads-1880261.html?ssSourceSiteId=otnes
Aceptamos los acuerdos de licencia y descargamos el paquete jre-7u21-linux-i586.tar.gz, que es el Java SE para linux

Para instalarlo, abrimos la terminal y escribimos:
$ su
mkdir -p /usr/java

Esto nos creará una carpeta java en el directorio /usr, que será allí donde alojaremos nuestra instalación del JRE de Java
Nos dirijimos a la carpeta que acabamos de crear, descomprimimos el paquete JRE y creamos un enlace simbólico de nombre default, para utilizarlo en nuestra variable PATH, para ello escribimos en la terminal:

cd /usr/java
tar -zxvf jre-7u21-linux-i586.tar.gz
ln  -s jre1.7.0_21 default

Ahora editamos el archivo bashrc para apuntar nuestra instalación de java al PATH:

gedit /home/nombre_usuario/.bashrc

export PATH=/usr/java/default/bin:$PATH
export JAVA_HOME=/usr/java/default


Guardamos los cambios en el archivo y cerramos la terminal. Abrimos una nueva terminal para comprobar la instalación de java escribiendo:


java -version

Aqui nos debería aparecer el numero de la version de java que acabamos de instalar, que en este caso es la 1.7.0_21

Añadimos una variable de entorno global para que eclipse pueda utilizar java, escribiendo en la terminal (siempre con derechos de superusuario):



gedit /etc/profile.d/java.sh

#!/bin/sh


export PATH=/usr/java/default/bin:$PATH
export JAVA_HOME=/usr/java/default


Guardamos el archivo y cerramos la terminal
 
Ahora procedemos a instalar el ADT Bundle que contiene Eclipse, para ello abrimos la terminal y escribimos:


$ su
mv adt-bundle-linux-x86-20130219.zip /home/nombre_usuario
unzip adt-bundle-linux-x86-20130219.zip

Ya con esto tenemos instalado Eclipse, pero tenemos que indicarle la ruta del JRE de nuestro PATH, y para ello, escribimos en la terminal:


gedit /home/nombre_usuario/adt-bundle-linux-x86-20130219/eclipse/eclipse.ini

editamos el archivo eclipse.ini, añadiendo la siguiente linea al final del fichero:
eclipse -vm /home/nombre_usuario/java/jre1.7.0_21/bin

Guardamos los cambios y reiniciamos.
Ya solo nos falta añadir un enlace a eclipse en el menu principal. Vamos a Sistema->Preferencias->Menu Principal
En la pestaña Programación seleccionamos Elemento Nuevo y escogemos que sea tipo Aplicación. En el campo de Nombre escribimos Eclipse y en el campo Comando ubicamos el ejecutable de Eclipse, que se encontrará en /home/sara/adt-bundle-linux-x86-20130219/eclipse



 
Damos un click en el icono para cambiarlo, y seleccionamos el archivo icon.xpm de la ubicación anterior.

Ahora solo tenemos que ir a Aplicaciones->Programación->Eclipse para empezar a desarrollar en Android.