Hola
en esta ocasión quiero hablarles de este framework...
No llevo mucho tiempo usando este framework, pero ahora estoy con un grupo con el que traduciremos de a poco la ayuda y daremos ejemplo de uso, el nombre del grupo es
codeigniter-spanish, y estamos en google groups por si quieran ver en que andamos...
Bueno, primero quiero darles una idea de que es un framework, su significado textual seria "cuadro de trabajo" o simplemente "marco".
Y que facilidades nos brinda? preguntaran
Ok dejenme darles algunos ejemplos... para elaborar un sitio desde cero, uno tiene que crear sus funciones, objetos metodos, y todo lo demas, por ejemplo para acceder a la base de datos, conectarse, realizar consultas, inserciones, updates, tiene que crear sus javascripts para distintas cosas, tiene que hacer una infinidad de cosas, que no son propiamente dichas de uso directo para la pagina sino que son "herramientas" para desarrollar.
Bueno... esas herramientas son las que brinda el codeigniter, no me voy a detener a explicarles todo, porque seria un larguisimo trabajo, pero les invito a ver el tutorial (en ingles) heho por derek jones de como hacer un blog en 20 minutos... Realmente no es un blog con todas las funcionalidades, pero si se quiere algo lindo y terminado, tal vez lo hagas en 5 horas, jeje, no se si sea asi de cierto, pero los invito a ver...
el link para ver es el siguiente:
http://codeigniter.com/tutorials/watch/intro/
Este link es para tener una introduccion a lo que es el codeigniter, y es la base para el segundo tutorial:
http://codeigniter.com/tutorials/watch/blog/
Con un poco de eso ya podemos tener una idea de como utilizar la herramienta, aunque tiene muchas facilidades, tambien esta construido para consumir la menor cantidad de recursos posibles, ya que los controladores, helpers o "asistentes" se van cargando a medida que se necesiten, solo unas cuantas funcionalidades se cargan por defecto lo que facilita enormemente el trabajo al servidor en el que trabajan ya que no se desperdician muchos recursos de memoria, procesador, etc.
Ademas este framework permite a los usuarios utilizar las funciones independientemente, osea no es necesario usar el framework por completo, sino que solo puedes usar algunas de sus funcionalidades, esto es porque practicamente cada parte realiza un trabajo especifico, y no hay una interdependencia muy fuerte con las demas partes...
Una de las cosas mas importante que se tienen con el codeigniter es que funciona con el patron MVC (Model View Controller), y que es eso? se preguntaran algunos, y bue... no es otra cosa que la programacion en capas... por un lado se tienen a la capa Modelo, que es la que se encarga de los accesos a base de datos, osea maneja lo que se llama "la logica del negocio".
El controlador basicamente lo que se encarga es de direccionar los pedidos que puedan venir desde la Vista, y llamar a los 'metodos' que se encuentren en el modelo y viceversa, los resultados obtenidos desde el modelo pasarlos a la vista correspondiente
Y la capa de vista es la capa que el usuario ve, por lo tanto, en mi caso, que no soy un diseñador grafico y los conceptos de colores, mezclas y demas asuntos, se los dejo a alguien que si sabe lo que hace, y de esa forma nos permite concentrarnos en lo que realmente importa, la programacion, ademas que permite escribir codigo limpio y ordenado...
Se que no es muy claro, pero les dejo un link a wikipedia:
http://es.wikipedia.org/wiki/Modelo_Vista_Controlador
ok, eso es todo por ahora amigos, no tengo mas tiempo para seguir escribiendo, asi que abruptamente voy a terminar esta entrada...
Saludos y hasta la proxima entrada!!!
domingo, 23 de marzo de 2008
miércoles, 27 de febrero de 2008
motor InnoDB de MySQL y Tablas Relacionales
Hola amig@s, en esta ocasion quiero escribir sobre el motor innodb que es un motor de base de datos que trae el mysql, junto con el MyISAM; por defecto cuando trabajamos con MySQL que viene con el paquete appserv (para windows) el motor de base de datos innodb esta desactivado, para activarlo, basta con modificar el my.conf que se encuentra en la carpeta donde se instala la aplicacion en mi caso:
D:\AppServ\MySQL\my.ini
la linea que dice
#default-storage-engine=INNODB
debemos descomentar, esto hacemos removiendo el '#' que tiene al comienzo y mas abajo buscamos una linea que dice:
skip-innodb
y la comentamos agregando antes el simbolito '#' (sin las comillas) y listo, reiniciamos el servicio de mysql que en windows hacemos escribiendo:
net stop mysql
y luego
net start mysql
y ya debería estar activado, ahora ya se pueden usar foreing keys en las tablas
para hacer esto probamos con el phpMyAdmin donde podemos hacerlo de una forma muy sencilla tanto escribiendo el código SQL o utilizando el modo grafico (que ayuda mucho) para dar un ejemplo voy a hacerlo en forma de texto es decir codigo sql vamos a crear tres tablas, de las cuales una va a tener dos clave foraneas de las otras dos tablas; el ejemplo seria de la siguiente manera:
tendremos una tabla usuario, otra tabla que se llame preferencias (que por ejemplo tiene las distintas preferencias en una pagina web) y otra tabla que se llame preferencia de usuarios donde se almacenara las preferencias de cada usuario
para hacer esto probamos con el phpMyAdmin donde podemos hacerlo de una forma muy sencilla tanto escribiendo el código SQL o utilizando el modo grafico (que ayuda mucho) para dar un ejemplo voy a hacerlo en forma de texto es decir codigo sql vamos a crear tres tablas, de las cuales una va a tener dos clave foraneas de las otras dos tablas; el ejemplo seria de la siguiente manera:
tendremos una tabla usuario, otra tabla que se llame preferencias (que por ejemplo tiene las distintas preferencias en una pagina web) y otra tabla que se llame preferencia de usuarios donde se almacenara las preferencias de cada usuario
CREATE TABLE `usuario`
(
`id` int(10) NOT NULL auto_increment,
`nombre` varchar(50) NULL,
`apellido` varchar(50) NULL,
`email` varchar(100) NOT NULL,
primary key (`id`)
);
CREATE TABLE `preferencias`
(
`id` int(10) NOT NULL auto_increment,
`nombre` varchar(20) NULL,
`descripcion` text NULL,
primary key(`id`)
);
CREATE TABLE `preferencias_usuarios`
(
`id_usuario` int(10) NOT NULL,
`id_preferencia` int(10) NOT NULL,
PRIMARY KEY (`id_usuario`,`id_preferencia`)
);
ALTER TABLE preferencias_usuarios
ADD CONSTRAINT nombre_del_constraint FOREIGN KEY (id_usuario)
REFERENCES usuario(id) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT nombre_otro_constraint FOREIGN KEY (id_preferencia) REFERENCES preferencias(id) ON DELETE CASCADE ON UPDATE CASCADE;
de este modo podemos cargar usuarios luego servicios y por ultimo las preferencias de nuestro usuario y para probar que funciona cambiamos o 'editamos' nuestra tabla usuarios y editamos el id, luego revisamos en la tabla preferencias de usuarios para ver si se actualizaron los campos asi de sencillo con esto logramos mantener la integridad de nuestros datos y nos quita la tediosa tarea de hacer todos estos controles por código
otra forma de crear los foreign key es desde la misma definicion de la tabla pero para esto importa muchisimo el orden de creacion de tablas, para nuestro sencillo ejemplo es claro que primero deben crearse las tablas usuario y preferencias para luego crear la ultima tabla.
la forma seria similar a esto:
otra forma de crear los foreign key es desde la misma definicion de la tabla pero para esto importa muchisimo el orden de creacion de tablas, para nuestro sencillo ejemplo es claro que primero deben crearse las tablas usuario y preferencias para luego crear la ultima tabla.
la forma seria similar a esto:
create table `preferencias_usuarios2`
(
`id_preferencia` int(10) not null,
`id_usuario` int(10) not null,
primary key (`id_preferencia`,`id_usuario`),
foreign key(`id_preferencia`) references preferencias(id) ON UPDATE CASCADE ON DELETE CASCADE,
foreign key (`id_usuario`) references usuario(id) on update cascade on delete cascade
);
obs:
no soy ningún 'máster' en base de datos, la mayor parte de lo que se aprendí fue leyendo practicando y 'quemando' osea no es 100% técnico lo que digo pero creo que se entiende y si piensan que algo no esta bien, ruego me envíen un mail a mi correo http://tinymailto.com/p431i7o o dejen su comentario en este blog
la informacion original sin 'mi toque' la pueden encontrar en la pagina oficial de mysql
http://dev.mysql.com/doc/refman/5.0/es/innodb-foreign-key-constraints.html por ultimo quiero aclarar que la base de datos usada para el ejemplo es la Versión del servidor: 5.0.24a-community-nt-log o algo asi. osea en sintesis la version 5.0
que ademas soporta 'stored procedures' y 'functions, que serian procedimientos y funciones almacenadas... de lo que hablare mas adelante cuando 'haya jugado' un poco mas con esto...
Eso es todo por ahora
hasta la proxima!!!!
no soy ningún 'máster' en base de datos, la mayor parte de lo que se aprendí fue leyendo practicando y 'quemando' osea no es 100% técnico lo que digo pero creo que se entiende y si piensan que algo no esta bien, ruego me envíen un mail a mi correo http://tinymailto.com/p431i7o o dejen su comentario en este blog
la informacion original sin 'mi toque' la pueden encontrar en la pagina oficial de mysql
http://dev.mysql.com/doc/refman/5.0/es/innodb-foreign-key-constraints.html por ultimo quiero aclarar que la base de datos usada para el ejemplo es la Versión del servidor: 5.0.24a-community-nt-log o algo asi. osea en sintesis la version 5.0
que ademas soporta 'stored procedures' y 'functions, que serian procedimientos y funciones almacenadas... de lo que hablare mas adelante cuando 'haya jugado' un poco mas con esto...
Eso es todo por ahora
hasta la proxima!!!!
lunes, 25 de febrero de 2008
Mack2 (Manga Anime Colsplay & karoke )
El sábado pasado (23-02-2008) tuve la oportunidad de ser participe del Mack2 realizado en el CPJ (Centro Paraguayo Japones) No estuve a cargo ni de la animación ni en un stand de presentación, pero próximamente podría contemplarse la posibilidad (lol), siendo mas precisos estuve en la entrada, controlando el acceso a los visitante, revisando bolsos y carteras (no se imaginan todo lo que por ahí se encuentran, pero no está en mi animo revelarselos ahora...
No puedo decir que lo que se retuvo fueran cosas fuera de lo común, por lo general eran utilerias como katanas, cuters (no se si asi se escriba, pero es la herramienta para cortar papel y similares), tijeras, tachas puntiagudas y kunais, los que fueron devueltos a sus respectivos dueños a la salida del evento claro esta.
La mayoria eran traidas por gente que se cospleyo de personajes que usan esas cosas y se olvidaron que en el reglamento estaba prohibido armas o utilerias que fueran "de verdad".
El evento se desarrollo con total tranquilidad y normalidad
a continuacion algunas fotos del evento:
mi compañero en el trabajo de "control de Sellos" alone acompañado de dos hermosas señoritas
Aqui tenemos a Gaby cospleyada de Elfa de la leyenda de zelda

un personaje cospleyado de hitachi uchiha de los akatsuki de la serie "naruto"

y otro mas cospleyado de guepardo de la serie "X men"
y otro muy buen cosplayer es este, imitando a kenshin himura de la serie "rurouni kenshin" tambien conocida como "samurai x"
Ademas hubo ventas de revistas, exposicion de trabajos como los siguientes:





Para cerrar el evento estuvieron varias bandas, la que recuerdo es viernes 13 que pusieron a vibrar a todos los participantes, con temas como "Halloweed be thy name", y otros que tocaron el himno de los caballeros del zodiaco y Saint Seya. No se si asi se llamen propiamente los temas, pero es una suposicion.
En fin el evento estuvo Fabulantastico!! como se diria en algun anime...jejeje
hasta la proxima!!
No puedo decir que lo que se retuvo fueran cosas fuera de lo común, por lo general eran utilerias como katanas, cuters (no se si asi se escriba, pero es la herramienta para cortar papel y similares), tijeras, tachas puntiagudas y kunais, los que fueron devueltos a sus respectivos dueños a la salida del evento claro esta.
La mayoria eran traidas por gente que se cospleyo de personajes que usan esas cosas y se olvidaron que en el reglamento estaba prohibido armas o utilerias que fueran "de verdad".
El evento se desarrollo con total tranquilidad y normalidad
a continuacion algunas fotos del evento:
mi compañero en el trabajo de "control de Sellos" alone acompañado de dos hermosas señoritas
Aqui tenemos a Gaby cospleyada de Elfa de la leyenda de zelda
un personaje cospleyado de hitachi uchiha de los akatsuki de la serie "naruto"

y otro mas cospleyado de guepardo de la serie "X men"
Ademas hubo ventas de revistas, exposicion de trabajos como los siguientes:
En fin el evento estuvo Fabulantastico!! como se diria en algun anime...jejeje
hasta la proxima!!
lunes, 4 de febrero de 2008
Truco para poder tener virtual host en modo local
Hola amig@s que visitan el blog...
En esta ocasión quiero publicar un pequeño truco que aprendí con mi amigo Cesar Rodas, se trata de unas modificaciones que se hacen a dos archivos especificamente, para poder obtener varias dominios locales en una sola maquina...
Normalmente solemos tener cuando usamos aplicaciones como el appserv, para acceder a la pagina que desarrollamos las direcciones http://localhost/ o http://127.0.0.1/ o el nombre que le damos a la maquina desde windows, pero esas son todas, y si tenemos varios proyectos en paralelo, tenemos que escribir algo similar a http://localhost/proyecto1/ http://localhost/proyecto2/ etc...
Pues con este metodo podremos acceder a algo asi como
http://proyecto1.com
http://proyecto.com y asi sucesivamente, sin preocuparnos porque el path real
sea
c:\AppServ\www\proyecto1\
o
c:\AppServ\www\proyecto2\
Los archivos que debemos modificar para lograr esto son:
el httpd.conf que es el archivo de configuraciones del apache, que en mi configuracion se encuentra almacenada en
c:\AppServ\apache\conf\httpd.conf
y el archivo
host
que se encuentra en
C:\WINDOWS\SYSTEM32\DRIVERS\etc\hosts
en el archivo host
deberian encontrar algo asi como
127.0.0.1 localhost
y lo que hacen es agregar todos los nombres que quieran uno al lado de otro tras el localhost
por ejemplo
127.0.0.1 foro.phparaguay.com joomla.phparaguay.com blog.phparaguay.com phpmyadmin.phparaguay.com ventiladorcito.com
entonces cada vez que en su browser/navegador escriban cualquiera de esos nombres, se apuntara a la direccion ip 127.0.0.1 que en este caso es de loopback osea nuestra maquina...
ahora deberemos modificar el httpd.conf de modo a que el apache redireccione a la carpeta que nosotros deseemos para que surta efecto nuestro truquillo
para eso agregamos las siguientes lineas al final del archivo httpd.conf
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin root@phparaguay
ServerName ventiladorcito.com
DocumentRoot "C:/Appserv/www/joomla"
</VirtualHost>
<VirtualHost *:80>
ServerAdmin root@phparaguay
ServerName joomla.phparaguay.com
DocumentRoot "C:/Appserv/www/joo15"
</VirtualHost>
<VirtualHost *:80>
ServerAdmin root@phparaguay
ServerName foro.phparaguay.com
DocumentRoot "C:/Appserv/www/beta1"
</VirtualHost>
<VirtualHost *:80>
ServerAdmin root@phparaguay
ServerName blog.phparaguay.com
DocumentRoot "C:/Appserv/www/blog"
</VirtualHost>
<VirtualHost *:80>
ServerAdmin root@phparaguay
ServerName phpMyAdmin.phparaguay.com
DocumentRoot "C:/Appserv/www/phpMyAdmin"
</VirtualHost>
claro esta que estos son las direcciones que pusimos en el ejemplo anterior...
la linea del server name es la que "escucha" nuestro apache y redirecciona a la carpeta
que el document root le señale... hay otras lineas que podemos poner tambien... pero las he omitido con el proposito de simplificar las cosas.
Cabe destacar que recomiendo hacer un backup de ambos archivos antes de probar nada, para evitar cualquier tipo de problemas que puedan surgir...
Guarden ambos archivos, y prueben...
Agradezco a Cesar por haberme mostrado el truco, que el ya tenia bajo la manga hace mucho tiempo ;)
Saludos y hasta la proxima!!!
En esta ocasión quiero publicar un pequeño truco que aprendí con mi amigo Cesar Rodas, se trata de unas modificaciones que se hacen a dos archivos especificamente, para poder obtener varias dominios locales en una sola maquina...
Normalmente solemos tener cuando usamos aplicaciones como el appserv, para acceder a la pagina que desarrollamos las direcciones http://localhost/ o http://127.0.0.1/ o el nombre que le damos a la maquina desde windows, pero esas son todas, y si tenemos varios proyectos en paralelo, tenemos que escribir algo similar a http://localhost/proyecto1/ http://localhost/proyecto2/ etc...
Pues con este metodo podremos acceder a algo asi como
http://proyecto1.com
http://proyecto.com y asi sucesivamente, sin preocuparnos porque el path real
sea
c:\AppServ\www\proyecto1\
o
c:\AppServ\www\proyecto2\
Los archivos que debemos modificar para lograr esto son:
el httpd.conf que es el archivo de configuraciones del apache, que en mi configuracion se encuentra almacenada en
c:\AppServ\apache\conf\httpd.conf
y el archivo
host
que se encuentra en
C:\WINDOWS\SYSTEM32\DRIVERS\etc\hosts
en el archivo host
deberian encontrar algo asi como
127.0.0.1 localhost
y lo que hacen es agregar todos los nombres que quieran uno al lado de otro tras el localhost
por ejemplo
127.0.0.1 foro.phparaguay.com joomla.phparaguay.com blog.phparaguay.com phpmyadmin.phparaguay.com ventiladorcito.com
entonces cada vez que en su browser/navegador escriban cualquiera de esos nombres, se apuntara a la direccion ip 127.0.0.1 que en este caso es de loopback osea nuestra maquina...
ahora deberemos modificar el httpd.conf de modo a que el apache redireccione a la carpeta que nosotros deseemos para que surta efecto nuestro truquillo
para eso agregamos las siguientes lineas al final del archivo httpd.conf
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin root@phparaguay
ServerName ventiladorcito.com
DocumentRoot "C:/Appserv/www/joomla"
</VirtualHost>
<VirtualHost *:80>
ServerAdmin root@phparaguay
ServerName joomla.phparaguay.com
DocumentRoot "C:/Appserv/www/joo15"
</VirtualHost>
<VirtualHost *:80>
ServerAdmin root@phparaguay
ServerName foro.phparaguay.com
DocumentRoot "C:/Appserv/www/beta1"
</VirtualHost>
<VirtualHost *:80>
ServerAdmin root@phparaguay
ServerName blog.phparaguay.com
DocumentRoot "C:/Appserv/www/blog"
</VirtualHost>
<VirtualHost *:80>
ServerAdmin root@phparaguay
ServerName phpMyAdmin.phparaguay.com
DocumentRoot "C:/Appserv/www/phpMyAdmin"
</VirtualHost>
claro esta que estos son las direcciones que pusimos en el ejemplo anterior...
la linea del server name es la que "escucha" nuestro apache y redirecciona a la carpeta
que el document root le señale... hay otras lineas que podemos poner tambien... pero las he omitido con el proposito de simplificar las cosas.
Cabe destacar que recomiendo hacer un backup de ambos archivos antes de probar nada, para evitar cualquier tipo de problemas que puedan surgir...
Guarden ambos archivos, y prueben...
Agradezco a Cesar por haberme mostrado el truco, que el ya tenia bajo la manga hace mucho tiempo ;)
Saludos y hasta la proxima!!!
Etiquetas:
apache,
appserv,
multiples sitios locales,
virtual host local
Suscribirse a:
Entradas (Atom)
