sábado, 30 de abril de 2011

ORACLE PHP APACHE LINUX

En Manejo e Implementacion de Archivos se nos dejo trabajar un webservice en mysql y un cliente en oracle, todo iba bien hasta iniciar con oracle, pase 4 o 5 dias viendo que iba mal, pues los tutoriales oficiales no daban resultados, al fin logre armar uno con la documentacion de oracle y otras fuentes, aca lo comparto:

Utilizaremos Ubuntu 11.04, necesitamos como minimo 5GB de espacio libre en disco.

*las lineas en azul deben de introducirse en una terminal como super usuario (root).

Paso 1: agregar los repositorios de oracle para debian unstable
sudo gedit /etc/apt/sources.list
agregamos:
deb http://oss.oracle.com/debian unstable main non-free
a;adimos la llave GPG:
sudo wget http://oss.oracle.com/el4/RPM-GPG-KEY-oracle -O- | sudo apt-key add -
sudo apt-get update

sudo apt-get install libaio1
Paso 2: Instalar Oracle XE
sudo apt-get install oracle-xe
una vez instalado lo configuramos
sudo /etc/init.d/oracle-xe configure
podemos dejar los valores por default

puerto http:8080

puerto database listener:1521

password system y sys: nuestrapass


Paso 3: instalamos PHP5
sudo apt-get install apache2

sudo apt-get install php5-common php5 php5-dev libapache2-mod-php5 php5-cli
Paso 4: instantclient
Lo descargamos desde la pagina de Oracle: http://www.oracle.com/technetwork/topics/linuxsoft-082809.html el instaclient Basic y el SDK

creamos una carpeta donde lo almacenaremos
sudo mkdir /opt/oracle

cd /opt/oracle
descomprimimos aca el contenido de client y el sdk, y renombramos la carpeta instantclient_11_2 a instaclient
sudo mv instantclient_11_2 instantclient

cd instantclient
Creamos Links Simbolicos:
ln -s libclntsh.so.11.1 libclntsh.so

ln -s libocci.so.11.1 libocci.so
Paso 4: Compilar OCI8
Antes con un paquete se podia descargar, pero fue movido de lugar y por lo tanto ya no sirve la instruccion, asi que nos dirigimos a: http://pecl.php.net/package/oci8

y bajamos la version "stable" mas reciente (en este tuto 1.4.5) y la descomprimimos en /usr/local/src

nos movemos a la carpeta en la terminal y ejecutamos:
cd /usr/local/src

cd oci8-1.4.5

phpize
Exportamos la linea
sudo echo export ORACLE_HOME=/opt/oracle/instantclient
luego:

./configure -with-oci8=shared,instantclient,/opt/oracle/instantclient
sudo make

sudo make install
por ultimo, agregamos la extension oci8 al php5.ini

sudo echo extension=oci8.so >> /etc/php5/apache2/php.ini
y reseteamos Apache:
sudo /etc/init.d/apache2 restart

Paso 5: Probar la conexion.

Si seguimos los pasos correctamente, todo esta listo para una prueba de conexion, en la carpeta /var/www , creamos un archivo php, al que llamaremos prueba.php con el siguiente contenido:

<?php

$conn = oci_connect('system','nuestrapass','127.0.0.1/XE');

if($conn){
echo 'it works!';
}

?>

ahora lo que queda es ir a http://localhost/prueba.php

si todo marcha bien deberiamos de ver el mensaje de exito.




Eso es todo, ahora ya podemos usar nuestras querys y demas cosas en Oracle, saludos!.

viernes, 29 de abril de 2011

Panchita: The Zombie Slayer [Java game]

Uno de mis grandes sue;os es programar videojuegos, es algo que desde peque;o me ha apasinado; ser capaz de crear mundos fantasticos, historias y personajes memorables con lineas de codigo.

La idea de "Panchita: The Zombie Slayer" es crear un juego similar a los que soliamos jugar en nuestras NES/SNES, siendo simple pero adictivo, controlamos a "panchita" quien tiene que escapar de una ciudad infestada por zombies.

Se preguntara porque java y no otro lenguaje mas habituado a los videojuegos, pues... creo que java es tan capaz de ser usado para crear juegos como lo es C u otro lenguaje, ademas tiene la bondad de ser multiplataforma y programo mejor en el haha.

El proyecto esta mas complejo de lo que inicialmente pense, y pelear contra el dragon legendario de compiladores no me deja mucho tiempo para trabajar en el, pero espero terminarlo en un futuro proximo. Ahora aca un peque;o video de lo que llevo.

lunes, 25 de abril de 2011

Notificaciones Ubuntu

Ubuntu tiene notificaciones de sistema, para cuando conectamos a una red inalambrica, cuando nuestro reproductor multimedia cambio de cancion, o cuando tenemos un mensaje nuevo en nuestra app de IM. Esto ultimo se me hace bastante molesto ya que la notificacion queda en pantalla un largo tiempo, quitando un poco de privacidad a mis conversaciones *caradetroll*.



esto lo arreglamos con:

sudo mv /usr/share/dbus-1/services/org.freedesktop.Notifications.service /usr/share/dbus-1/services/org.freedesktop.Notifications.service.disabled


y reseteamos.

Si lo queremos de vuelta solo cambiamos el "disabled" por "enabled".