Disclaimer



Por cualquier cosa este es mi DISCLAIMER:
  • Todo lo que publico es para el aprendizaje de tecnologías informáticas.-
  • El software, libros o cualquier elemento que pongo a disposición (descargar) debe ser usado exclusivamente con fines académicos. Si te gusta algo COMPRALO !!!!
  • No apoyo la piratería, como diría mi madre ... no te metas con los frijoles de los demás.-

Si de casualidad dejó algo fuera ...... la intención es la que cuenta !!!!

Libros Blogger

Aquí van un par de libros acerca de Google Blogger. Son recientes y además dan muy buenos consejos para dejarlo vergón (plantillas, SEO, W3C, etc.) y sacarle provecho ($$$). Espero que te gusten (Niña Sniff Sniff).-

Los links (dd) son :



CAKEPHP (Parte 3)

Antes de comenzar a explicar el proceso de instalación y configuración de CAKEPHP, permitanme decirles algo: como mencione casi al final de la Parte 2 (eso de respetar el nombre de las tablas y los campos) me faltó mencionarles un pequeño detalle (sorry, la hice de pendex). La onda es que CAKEPHP estandariza los nombres para las tablas y los campos a utilizar en la base de datos, de la siguiente manera:

  • El nombre de la Tabla tiene que ir en plural. CAKEPHP gestiona todo en inglés, asi que tengan cuidado tambien al poner en plural ya que por ejemplo si llaman a una tabla "Perfiles", el framework (cuando llegue el momento, como en las fk) lo usará como "Perfile".-
  • El nombre para la llave primaria debe ser siempre "id", el cual debe de ser tipo entero autoincrementable.-
  • El nombre para la llave foránea debe seguir el formato tablareferenciada_id, por ejemplo: en la tabla "Estudios" verán "aspirante_id" que es la fk, la cual hace referencia a "Aspirantes".-
Entremos propiamente a lo que nos toca hacer hoy.-

Requerimientos para el framework:

  • Apache Web Server, con el módulo mod_rewrite habilitado (pueden usar IIS, Cherokee u otros, pero Apache es el recomendado).-
  • MySQL Server.-
  • PHP 4.3.2 o superior, con las librerías php_mysql y php_mysqli habilitadas (esto si solo se ocupa MySQL, pero el framework da soporte tambien a: PostgreSQL, Microsoft SQL Server, Firebird, IBM DB2, Oracle, SQLite, ODBC, ADOdb).-

Descargar el framework:

Nos vamos al sitio oficial y hacemos click en:



Con lo cual verán:



Observen la parte derecha de la página:



Elijan cake_1.2.3.8166.zip (si van a trabajar en Linux agarren cake_1.2.3.8166.tar.gz). Después de esto les aparecerá una página en la cual amablemente les pedirán una donación para el proyecto, si tienen pisto haganlo, si no solo hagan click en:



Cuando el navegador (o gestor de descargas) les pregunte donde guardarlo, diganle en el escritorio (o a su gusto).-

Nota:
  • Al momento de hacer esta publicación la versión actual de CAKEPHP es la 1.2.3.8166. Si al momento en que ustedes visiten la página hay otra más reciente, solo asegurense que sea una versión estable.-

Disque instalando:

Ahora copien el archivo recien descargado a su directorio web (DocumentRoot).-

En Windows generalmente es el siguiente:

C:\Archivos de programa\Apache Software Foundation\Apache2.2\htdocs\

En Linux (al menos en mi Sabayon):

/var/www/localhost/htdocs/

O donde ustedes lo tengan configurado (revisar httpd.conf de Apache).-

En mi Fucking Windows queda así:



Descomprimanlo:



Con lo que les quedará así:



Eliminen el archivo comprimido:



Ahora renombren el directorio cake_1.2.3.8166 con eval:



OK !!! ya esta instalado !! ... sin broma. Obviamente el devergue es a la hora de configurar todo.-

Configurando:

Como se mencionó en los requerimientos deben habilitar el módulo mod_rewrite de Apache, este módulo le da la potestad (si no me equivoco) a Apache de crear/reescribir los archivos que esten en su DocumentRoot o cualquier otro directorio (mientras se le especifique). Para eso abrimos el archivo httpd.conf que en Windows esta en:

C:\Archivos de programa\Apache Software Foundation\Apache2.2\conf\

Nos vamos a buscar la sección Dynamic Shared Object (DSO) Support (por la línea 49 en mi archivo). Aquí es donde se le dice a Apache que cargue los módulos, buscamos exactamente:

#LoadModule rewrite_module modules/mod_rewrite.so

El caracter "#" indica que la línea esta como comentario, o sea que Apache lo ignora. se la quitamos:



Notas:
  • Si no tiene el caracter "#", no hagan nada.-
  • Deben recordar que después de hacer cualquier cambio en el archivo de configuración deben reiniciar el servicio para que haga efecto:



Además, según ciertos autores (Ahsanul Bari & Anupom Syam) también deben ir a la línea 225 (según mi archivo) a modificar AllowOverride (para el directorio en el que estará CAKEPHP .... DocumentRoot), para que quede algo asi:



Hasta aquí con Apache, ahora vamos con PHP. Deben habilitar las librerías php_mysql y php_mysqli (ya que en nuestro caso la base de datos fué implementada para MySQL) en el archivo de configuración de PHP, o sea php.ini. A diferencia del archivo de configuración de Apache, los comentarios en el php.ini se definen con el caracter ";". Despues de quitarselos, más o menos debería quedar así:



Nota:
  • Reinicien Apache !

Terminamos con las configuraciones, por cualquier cosa aqui pueden descargar los archivos de configuración de Apache y PHP (según los cambios mencionados y tal como los tengo en mi máquina) para que los puedan comparar.-

Ahora trabajaremos en el propio CAKEPHP:

Abran su navegador web y digiten en la barra de direcciones:



Con lo que les aparecerá:



Dicha página es la página por defecto del CAKEPHP. Esta nos brinda de cierta información que necesitamos para terminar de configurar el CAKEPHP. Al inicio de la página verán un Notice (1024) con el contenido:



Aquí les dicen que la variable Security.salt que se encuentra en el archivo core.php en el directorio app/config/ el cual según nuestro caso es C:\Archivos de programa\Apache Software Foundation\Apache2.2\htdocs\eval\app\config\ o sea:



Debe ser modificada (su valor). Esta variable almacena la "semilla" para los procesos de encriptación que realice CAKEPHP (login, guardar, etc.). Abrimos el archivo (por el momento en PSPad) y nos vamos a la línea 151 (en mi caso) y encontramos:



Le cambiamos los ultimos 4 caracteres (o los que ustedes quieran), quedando:



Notas:
  • Solo esto modifiquen !
  • Recuerden guardar los cambios.-


Regresando a la página default de CAKEPHP, después de lo de Security.salt veremos:



Aqui se nos dice que le directorio temporal tmp contenido en C:\Archivos de programa\Apache Software Foundation\Apache2.2\htdocs\eval\app\ o sea:



Tiene permisos de escritura, en caso de no tenerlos la cagaste! ... bromas, simplemente tienes que usar un usuario que tenga permisos de Administrador (en Windows). Si usas Linux tienes que abrir una consola como root y digitar:



Claro, estando en el directorio app o sea /var/www/localhost/htdocs/eval/app/ (en mi Sabayon).-

Despues vemos en la página:



Nos puede valer verga ....

Lo mas importante:



CAKEPHP nos esta diciendo que no hay ninguna configuración para que nuestra aplicación accese alguna base de datos determinada. Precisamente nos dice que no existe el archivo donde se guarda la configuración antes mencionada (en el directorio app/config). Para configurar este detallito, hay 2 formas posibles:

  1. Hacer lo que dice la página, renombrar el archivo database.php.default a database.php y hacer los cambios respectivos dentro de él.-
  2. Ejecutar un comando en consola.-

Y como yo soy el que hago y deshago, haremos la 2a opción.-
Lo vergón de CAKEPHP es que viene ya con ciertos comandos (scripts) para facilitarle la vida a la mara, a estos comandos se les llama BAKE. Abran una consola en C:\Archivos de programa\Apache Software Foundation\Apache2.2\htdocs\eval\cake\console\



Ahi encontrarán un archivo llamado cake.bat el cual ejecutará y llamará todos los script necesarios. Ahora digiten los siguiente: cake

La salida será:



Como cualquier script nos muestra una pequeña ayuda de como usarlo. Debemos fijarnos en lo que dice acerca del parámetro -app. Según esto, siempre debemos de colocar este parámetro y pasarle como valor la ruta (absoluta o relativa) de nuestra aplicación (incluyendo al subdirectorio app). En nuestro caso será (ya todo):

cake bake -app "C:\Archivos de programa\Apache Software Foundation\Apache2.2\htdocs\eval\app"

Lo que saldrá:



Aquí CAKEPHP les esta diciendo que hay que configurar el acceso a la base de datos, esto sucede ya que:

  1. Es primera vez que se ejecuta correctamente el BAKE.-
  2. No hay archivo de configuración para la base de datos.-

Regresando a la consola, lo primero que les pregunta es le nombre (Name) para la configuración (o conexión), BAKE les recomienda "default". Todo lo que BAKE muestre entre corchetes es el valor por defecto o recomendación. Presionen ENTER. Inmediatamente les sale la siguiente pregunta:



Es para saber con que controlador van a trabajar, drásticamente que base de datos vamos a usar. Según ven les muestra toda la variedad a la que CAKEPHP le da soporte y les muestra entre corchetes mysql. Presionen ENTER otra vez (recuerden que la base de datos que diseñamos fué para MySQL). Ahora se ve:



Se les pregunta si la conexión a la base de datos será Persistente o no. Como no es necesario para nuestra aplicación, presionemos ENTER para que agarre el valor por defecto (o sea: no). Ahora viene lo bonito:



En donde esta el servidor de la base de datos ? (en buen salvadoreño), obviaamente solo le damos ENTER ya que por defecto nos dice que esta en localhost. En caso de no ser así, aquí es donde deben digitar la IP de la máquina que esta dando el servcio de MySQL. Luego:



A traves de que puerto esta el servicio de MySQL ? les aparece por defecto una "n", no se preocupen, con esa variable BAKE maneja el valor para 3306. En caso de que se esta brindando el servcio por un puerto diferente, si deben digitar el numero de este. Un ENTER otra vez ....



Cuál es el usuario ? por defecto es "root". ENTER again !



Ojo !!!! aquí deben digitar la clave de acceso para el usuario que definieron anteriormente. Después de digitarlo, que creen ? si .... otro ENTER



Database Name .... el nombre de la base de datos, según el nombre que yo le puse. digito: eval. Ni siquiera se les ocurra tomar el nombre por defecto! ... another ENTEEEEEEEEEEEERRRRRRRRRRRRRRRRRRRRRRRRR



El prefijo para las tablas ....... ENTER



Codificación de las Tablas ................... ENTER ....



Al fiiinnnnnnnnnnn !!!!!
Nos sale un resumen de lo que hemos configurado (disque). Se nos pregunta si todo esta bien, claro que lo esta! ... presionen ENTER



Arghhhhh !! ..... CAKEPHP puede usar más de una conexión a base de datos. En nuestro caso ..... solo demosle un ENTER



VERGON !! Ahora si terminamos, si todo salió bien BAKE ha creado el archivo de configuracón database.php en el subdirectorio app/config y ya estamos de nuevo con el prompt del sistema. Demosle un vistazo a dicho archivo:



Pequeño no ? Lo pudimos haber digitado no ? Por lo que podemos ver: la configuración en si es una clase, los parámetros de la configuración estan almacenados en un arreglo .... estaba fácil !

Después de hacer todo este devergue, vamonos ahora con nuestro navegador web y refresquemos la página (F5):



VERGON !! todo esta verde, o sea todo esta bien hechito !!

Estamos cansados ? ..... SI !!!!

Bueno, dejemoslo hasta aquí.-

En la Parte 4 comenzaremos a generar los mantenimientos para las tablas.-

Bueno, hasta aquí.-

CAKEPHP (Parte 2)

Continuando con el tutorial de CAKEPHP, definiremos ahora los requerimientos para el proyecto que vamos a realizar. Empecemos:

Como primer punto se asume que el lector tiene los conocimientos (básicos al menos) acerca de:

  • Lenguajes de programación
  • Servidores Web
  • Bases de Datos
  • Programación Orienta a Objetos

Qué es el Proyecto?

Desarrollaremos un "Sistema de Selección y Contratación de Personal" para los diferentes puestos de trabajo disponibles en una organización determinada. Vale aclarar que no se creará un producto completo ni complejo, lo haremos de la forma más tranquila ya que la intención de este disque tutorial es aprender a usar el CAKEPHP y no dominar todos los aspectos/secretos de: diseño/normalización de base de datos, POO, diseño gráfico ... blah blah blah.-

Qué necesitaremos (aparte del CAKEPHP)?
  • PHP
  • MySQL
  • TCPDF
  • Apache Web Server
  • Un editor de PHP
  • Un gestor de MySQL
  • Un navegador web
  • Documentación
  • Tus ganas de metidear!

Qué es lo que yo uso?
  • PHP 5.2.6
  • MySQL Server 5.0
  • Apache 2.2.8
  • Adobe Dreamweaver CS4
  • Mozilla Firefox 2.0.0.12
  • NuSphere phpEd 5.2
  • SQL Maestro for MySQL 8.3
  • BSPlayer 2.28
  • Windows XP uE 9.5
  • Un vergo de Marlboros Rojos

Notas:
  • NuSphere es catalogado como uno de los mejores editores para PHP, pero tambien puede usar Netbeans, Dephi for PHP o Komodo.-
  • SQL Maestro for MySQL es un gestor visual para admministrar MySQL, pero puedes usar lo que usan la mayoría: phpMyAdmin.-
  • El proyecto lo desarrollaré en Windows, pero fácilmente lo puedes desarrollar en el Linux de tu predilección.-
  • Los cigarrillos que menciono es debido a que es el vicio que me llevará a la tumba: programar sin fumar es como tener sexo sin erección!
  • La instalación y configuración de estos componentes no esta comtemplado en este tutorial (zoquenla!).-

La Base de Datos:

Ejecutando SQL Maestro for MySQL:



Me muestra su ventana principal:



Después de analizar y diseñar, el resultado es:



En donde:
  • Usuarios: las personas autorizadas para usar el sistema.-
  • Empresas: las organizaciones en las que se lleva el control de las plazas.-
  • Plazas: los puestos de trabajo para una organización determinada.-
  • Perfiles: las caracteristcas de las plazas.-
  • Evaluaciones: exámenes para los aspirantes que desean una plaza.-
  • Preguntas: las interrogantes del exámen.-
  • Respuestas: las posibles respuestas del exámen
  • Contestadas: las respuestas del aspirante al exámen.-
  • Notas: resultados obtenidos al realizar una evaluación.-
  • Aspirantes: personas interesadas en obtener una plaza.-
  • Estudios: histotial de estudios del aspirante.-
  • Referencias: historial de referencias del aspirante.-
  • Experiencias: historial de experiencias laborales del aspirante.-
  • Contratados: aspirantes que han sido contratados.-

El script de la base de datos lo pueden bajar aqui, a menos claro que quieran crear toda la base solo observando la imágen anterior. Los detalles de el porque de la estructura los iremos hablando en su momento, pero les recomendaría que mantengan los nombres de las tablas y los campos tal como los he definido.-

Recuerden que cuando empezemos a desarrollar el proyecto deben tener los servicios de Apache y MySQL arriba.-

En la Parte 3 hablaremos de la preparación del ambiente de trabajo para comenzar propiamente con el desarrollo del proyecto, o sea: instalar y configurar CAKEPHP.-

Bueno, hasta aquí.-

Baka

Como siempre aburrido, solo que ahora también soy un grandisimo




Por suerte solo es temporal, para regresar a mi normal I.Q. tengo que:
  • Hacer el borrador para 3er parcial de Base de Datos
  • Ver Angeles y Demonios
  • Ver un "poco" de pornografía
  • Dejar de metidear la plantilla del blog
  • Dejar de verles las niñas a ..........
  • Terminar el proyecto de Protocolos de Comunicación
  • Averiguar quién putas me esta vinculando/calumniando con el devergue que hay en la universidad mierdera
  • Ver los capítulos 5, 6 y 7 de Beautiful Days
  • Continuar con el tutorial de Cake ...
Solo que:
  • No tengo muchas ganas de hacer algo
  • Quisiera ponerme una gran VERGUERA !!!!
  • Y me acabo de dar cuenta de algo ......... por la gran puta! ya estoy publicando pendejadas! ........ arghhhh! ...... las putas de mis abuelas!

Usando ZShare



Si desean tener sus archivos guardados en un servidor de internet y compartirlos con la mara, pueden usar ZShare.net.-

Este servicio, es como los que ofrece megaupload o rapidshare. En estos momentos que ellos empiezan, estan dando ciertos incentivos para que la mara se les prenda (subscripción gratis, 1GB de espacio, etc.). La verdad resulta cómodo usar este servicio, trataré de decirles como. Empecemos:

Al ir al sitio http://zshare.net/ aparecerá lo siguiente:



Como pueden ver, ya les ofrece subir archivos sin necesidad de subscribirse. Pero digamos que quieren hacer todo por las buenas, hagan click en la opción del Sign up Now que se encuentra en el lado izquierdo



Con lo cual les aparecerá:



Digiten los valores obligatorios (todos .... ja!) para:
  • Primer Nombre (First Name)
  • Apellido (Last Name)
  • Usuario (Username)
Hagan click en:



Para verficar si el nombre de usuario esta disponible, si no lo esta cambienlo y vuelvan a hacer click, sigan llenando los datos que piden, para que quede algo asi:



Ya por último hagan click en Create my account. Si todo sale bien les mostrará:



Revisen su correo y activen la cuenta. Ya con esto puede abrir sesión haciendo click en:



Con le que les aparecerá:



Digiten su nombre de usuario y clave:



Hagan click en Login, ya con esto se les mostrará (según mi login):



A mi me muestra el listado de todos los archivos que tengo almacenados, en su caso les aparecerá vacío. Este listado lo pueden ver cada vez que hagan click en My Uploads, localizado en el último dock del lado izquierdo:



Ahora, digamos que quieren subir un archivo, se hace click en Upload new file (en el mismo dock), con lo que verán:



Aquí, hagan click en Examinar para buscar el archivo (localmente) a subir. Por cierto: no se el porque pero cuando digitan algo en la parte de Description (lo cual es opcional) agarra llave, mejor dejenlo en blanco:



Asegurense de que este chequeado la opción de que estan de acuerdo (blah blah blah ....) y hagan click en:



Con lo que comenzará el proceso de subida:



Cuando termine todo, les aparecerá:



Lo que les muestra:
  • Link de Descarga Directa
  • Link de Eliminación del Archivo
  • Link a los Foros
  • Publicidad
  • Algunas opciones de correo
Ahora mi listado (My Uploads) queda así:



Si acaso tienen la necesidad de subir un vergo de archivos, hagan click en Upload multiple files (siempre en el dock antes mencionado) y la página a mostrar es:



Y sigan los pasos antes mencionados.-

Por cierto, en el listado de sus archivos (My Uploads) pueden editarlos a su gusto (o sea: eliminar) y pueden ver/revisar el link de descarga directa, etc.-

Bueno, hasta aquí.-