tag:blogger.com,1999:blog-365028922009-06-09T11:42:58.700-05:00Omix Blog , Desarrollo de Software y mas..Lo unico que nos falta por hacer, es lo que aun no hemos intentado ....Omar Flores Martinezhttp://www.blogger.com/profile/13610683451731530372noreply@blogger.comBlogger52125tag:blogger.com,1999:blog-36502892.post-68348035811657182162009-06-06T11:51:00.001-05:002009-06-06T11:51:52.222-05:00Envio de correos con PHPMailer<p><a href="http://phpmailer.sourceforge.net/">PHPMailer</a> es una clase escrita en PHP que facilita el envío de correo, añadiendo facilidad en el envío de correos con adjuntos, en formato HTML y con diferentes codificaciones, soporte para imagenes embebidas, headers personalizados y además funciona con múltiples servidores de correo.</p> <p>El primer paso es <a href="http://sourceforge.net/project/showfiles.php?group_id=26031">descargar PHPMailer</a>, aquí encontraremos dos archivos: <strong>class.phpmailer.php</strong> el cual contiene las funciones para el envío de correo y <strong>class.smtp.php</strong> para enviar correo mediante servidores SMTP.</p> <p>yo lo he utilizado con mi cuenta de yahoo y su servidor smtp y funciona sin ningun problema.</p> <p>Aqui les dejo el ejemplo que hice:</p> <span style="color: rgb(128, 0, 0);"><?php<br /> <span style="color: rgb(153, 204, 0);">//en el directorio includes deberan estar class.phpmailer.php y class.smtp.php<br /> // primero hay que incluir la clase phpmailer para poder instanciar un objeto de la misma</span><br /> require "includes/class.phpmailer.php";<br /><span style="color: rgb(153, 204, 0);"> //instanciamos un objeto de la clase phpmailer</span><br /> $mail = new phpmailer();<br /><span style="color: rgb(153, 204, 0);"><br /> //Con PluginDir le indicamos a la clase phpmailer donde seencuentra la clase smtp </span><br /> $mail->PluginDir = "includes/";<br /><br /> <span style="color: rgb(153, 204, 0);"> //Con la propiedad Mailer le indicamos que vamos a usar un servidor smtp</span><br /> $mail->Mailer = "smtp";<br /><br /> <span style="color: rgb(153, 204, 0);"> //Asignamos a Host el nombre de nuestro servidor smtp</span><br /> $mail->Host = "smtp.mail.yahoo.com";<br /><br /> <span style="color: rgb(153, 204, 0);"> //Le indicamos que el servidor smtp requiere autenticación</span><br /> $mail->SMTPAuth = true;<br /><br /><span style="color: rgb(153, 204, 0);"> //Le decimos cual es nuestro nombre de usuario y password</span><br /> $mail->Username = "cuenta@yahoo.com.mx";<br /> $mail->Password = "password";<br /><br /> <span style="color: rgb(153, 204, 0);">//Indicamos cual es nuestra dirección de correo y el nombre que queremos que vea el usuario que lee nuestro correo</span><br /> $mail->From = "cuenta@yahoo.com.mx";<br /> $mail->FromName = "Nombre a mostrar p/e Pedrito Andrade";<br /><br /> //el valor por defecto 10 de Timeout lo cambiamos por 30<br /> $mail->Timeout=30;<br /><br /> <span style="color: rgb(153, 204, 0);"> //Indicamos cual es la dirección de destino del correo</span><br /> $mail->AddAddress("cuenta@destino.com");<br /><br /> <span style="color: rgb(153, 204, 0);">//Asignamos asunto y cuerpo del mensaje<br /> //El cuerpo del mensaje lo ponemos en formato html, haciendo<br /> //que se vea en negrita</span><br /> $mail->Subject = "Probando phpmailer";<br /> $mail->Body = "<b>Mensaje de prueba mandado con phpmailer en formato html</b>";<br /><br /> <span style="color: rgb(153, 204, 0);"> //Definimos AltBody por si el destinatario del correo no admite email con formato html </span><br /> $mail->AltBody = "Mensaje de prueba mandado con phpmailer en formato solo texto";<br /><br /> <span style="color: rgb(153, 204, 0);">//se envia el mensaje, si no ha habido problemas<br /> //la variable $exito tendra el valor true</span><br /> $exito = $mail->Send();<br /><br /> <span style="color: rgb(153, 204, 0);"> //Si el mensaje no ha podido ser enviado se realizaran 4 intentos mas como mucho<br /> //para intentar enviar el mensaje, cada intento se hara 5 segundos despues<br /> //del anterior, para ello se usa la funcion sleep </span><br /> $intentos=1;<br /> while ((!$exito) &amp;&amp; ($intentos < 5)) {<br /> sleep(5);<br /> $exito = $mail->Send();<br /> $intentos=$intentos+1; <br /> }<span style="color: rgb(153, 204, 0);">//while</span><br /> <br /> if(!$exito)<br /> {<br /> echo "Problemas enviando correo electrónico a ".$valor;<br /> echo "<br/>".$mail->ErrorInfo; <br /> }<br /> else<br /> {<br /> echo "Mensaje enviado correctamente";<br /> }<br />?></span><div class="blogger-post-footer">http://omixisc.blogspot.com<img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36502892-6834803581165718216?l=omixisc.blogspot.com'/></div>Omar Flores Martinezhttp://www.blogger.com/profile/13610683451731530372noreply@blogger.com0tag:blogger.com,1999:blog-36502892.post-68051941662028435932009-05-14T13:33:00.002-05:002009-05-14T13:36:25.747-05:00Nominacion de proyectos en SourceforgeSaludos lectores, les comento q he entrado al 2009 Community Choice Award de <a href="http://www.sourceforge.net/">sourceforge.net</a> con los pequeños proyectos que tengo hopedados en ese es servidor web que ofrece servicios de ayuda para el desarrollo de proyectos open source.<br /><br />aqui los enlaces para darle seguimiento.<br /><span style="font-weight:bold;"><br />Control BioAcceso.</span> Control de Asistencias Biometrico<br /><br /><a href="http://sourceforge.net/community/cca09/nominate/?project_name=Control BioAcceso&project_url=http://controlbioacces.sourceforge.net/"><img src="http://sourceforge.net/images/cca/cca_nominate.png" border="0"/></a><br /><br /><span style="font-weight:bold;">VAccess.</span> Control de Asistencias por lectura de codigos de barra<br /><a href="http://sourceforge.net/community/cca09/nominate/?project_name=VAccess&project_url=http://vaccess.sourceforge.net/"><img src="http://sourceforge.net/images/cca/cca_nominate.png" border="0"/></a><br /><br />Saludos y espero su aporte.<div class="blogger-post-footer">http://omixisc.blogspot.com<img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36502892-6805194166202843593?l=omixisc.blogspot.com'/></div>Omar Flores Martinezhttp://www.blogger.com/profile/13610683451731530372noreply@blogger.com0tag:blogger.com,1999:blog-36502892.post-10580690323973731972009-04-08T12:38:00.001-05:002009-04-08T12:43:26.404-05:00Ya casi Ubuntu 9.10 Karmic KoalaMostrando el conteo de dias para el lanzamiento de Karmic Koala...<br /><script type="text/javascript" src="http://www.ubuntu.com/files/countdown/display2.js"></script><div class="blogger-post-footer">http://omixisc.blogspot.com<img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36502892-1058069032397373197?l=omixisc.blogspot.com'/></div>Omar Flores Martinezhttp://www.blogger.com/profile/13610683451731530372noreply@blogger.com2tag:blogger.com,1999:blog-36502892.post-71398022797946992842009-03-31T16:16:00.002-06:002009-03-31T16:22:33.365-06:00Bases de datos HSQLDB<h2>¿Qué es HSQLDB?</h2>HSQLDB <acronym title="Hypersonic SQL Data Base" lang="en"></acronym>es un sistema de gestión de base de datos relacionales escrito en Java. Como principal ventaja tiene su velocidad y su reducido tamaño. Además, puede mantener la base de datos en memoria o en ficheros en disco. <p> Se pueden realizar las operaciones más habituales de los sistemas de gestión de bases de datos (CRUD) usando sintaxis SQL, soporta triggers, integridad referencial... </p> <p> Como curiosidad,<acronym title="Hypersonic SQL Data Base" lang="en"></acronym> HSQLDB es el gestor de base de datos usado por "Base", el equivalente de Access dentro de Open Office.</p> <p>Más información sobre <a href="http://www.hsqldb.org/doc/guide/">hsqldb</a><acronym title="Hypersonic SQL Data Base" lang="en"></acronym><br /></p><p>Saludos ...<br /></p><div class="blogger-post-footer">http://omixisc.blogspot.com<img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36502892-7139802279794699284?l=omixisc.blogspot.com'/></div>Omar Flores Martinezhttp://www.blogger.com/profile/13610683451731530372noreply@blogger.com2tag:blogger.com,1999:blog-36502892.post-47259724471376488132009-02-17T10:19:00.003-06:002009-02-17T10:26:26.188-06:00Lenny is out !!!Hola, esta vez leo copio y pego..<br /><br /><p style="text-align: justify;"><strong>14 de febrero de 2009</strong></p><div style="text-align: justify;"> </div><p style="text-align: justify;">El Proyecto Debian se complace en anunciar la publicación oficial de la versión 5.0 de Debian GNU/Linux, nombre en clave <q>lenny</q>, tras 22 meses de desarrollo constante. Debian GNU/Linux es un sistema operativo libre que soporta un total de doce arquitecturas de procesador e incluye los entornos de escritorio KDE, GNOME, Xfce y LXDE. También ofrece compatibilidad con el estándar FHS v2.3 y software desarrollado para la versión 3.2 de LSB.</p><div style="text-align: justify;"> </div><p style="text-align: justify;">Debian GNU/Linux se ejecuta en ordenadores que van desde agendas hasta supercomputadoras, pasando por prácticamente cualquier sistema intermedio. Se da soporte a un total de doce arquitecturas: Sun SPARC (sparc), HP Alpha (alpha), Motorola/IBM PowerPC (powerpc), Intel IA-32 (i386), IA-64 (ia64), HP PA-RISC (hppa), MIPS (mips, mipsel), ARM (arm, armel), IBM S/390 (s390), y AMD64 de AMD y EM64T de Intel (amd64).</p><p style="text-align: justify;">El proyecto dedica la publicación de Debian GNU/Linux 5.0 <q>Lenny</q> a Thiemo Seufer, un desarrollador Debian que falleció el pasado 26 de diciembre de 2008 en un trágico accidente de coche. Thiemo participaba de muchas formas distintas en Debian. Mantenía algunos paquetes y era la persona que más ayudaba en la adaptación de Debian a la arquitectura MIPS. También era un miembro del grupo del núcleo, así como un miembro del grupo que trabaja en el instalador de Debian. Sus contribuciones han ido más allá del proyecto Debian: trabajó en la adaptación a MIPS del núcleo de Linux, en la emulación MIPS de qemu y en muchos proyectos pequeños, demasiados para describirlos todos aquí.</p><div style="text-align: justify;"> </div><p style="text-align: justify;">Echaremos de menos el trabajo, dedicación, amplio conocimiento técnico y la habilidad de compartir todo esto con otras personas de Thiemo. No olvidaremos todas sus contribuciones. El gran nivel del trabajo de Thiemo pondrá el listón alto a los que quieran continuar su trabajo.</p><div style="text-align: justify;"> </div><div style="text-align: justify;"> </div><p style="text-align: justify;"><br /></p><div style="text-align: justify;"><div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_b9fPPb_hp5w/SZrkHUODw3I/AAAAAAAAAFw/Te5jDCkYZ9I/s1600-h/lennybanner_indexed.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 200px; height: 163px;" src="http://1.bp.blogspot.com/_b9fPPb_hp5w/SZrkHUODw3I/AAAAAAAAAFw/Te5jDCkYZ9I/s200/lennybanner_indexed.png" alt="" id="BLOGGER_PHOTO_ID_5303802325520073586" border="0" /></a><a href="http://www.debian.org/News/2009/20090214">noticia oficial </a><br /></div><br />Saludos ...<br /></div><div class="blogger-post-footer">http://omixisc.blogspot.com<img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36502892-4725972447137648813?l=omixisc.blogspot.com'/></div>Omar Flores Martinezhttp://www.blogger.com/profile/13610683451731530372noreply@blogger.com0tag:blogger.com,1999:blog-36502892.post-61264115581390399542009-01-15T01:19:00.002-06:002009-01-15T01:41:26.782-06:00Crear un Pen Drive Usb Booteable de KnoppixSaludos a toda la comunidad de lectores, pues les cuento que he creado una usb booteable de GNU/Linux Knoppix, estas son las herramientas que utilice:<br /><br /><p>Hay que descargar Syslinux de aqui <a href="http://syslinux.zytor.com/index.php" onclick="javascript:pageTracker._trackPageview ('/outbound/syslinux.zytor.com');">http://syslinux.zytor.com/index.php</a>.</p> <p>Extraer syslinux en C:\syslinux-3.11.</p> <p>ejecutar en el interprete de comandos syslinux.exe que se encuentra en “C:\syslinux-3.11\win32\syslinux.exe (Unidad USB)”<br />p/e. “C:\syslinux-3.11\win32\syslinux.exe E:”</p> Ahora tenemos que copiar el contenido del disco de Knoppix a la USB<br /><p>El la USB , mover el contenido de /boot/isolinux a la raiz de la USB. Una vez realizado esto borrar el directorio boot.</p> <p>Tambien hay que eliminar el archivo ISOlinux.bin.</p> <p>Renombrar el archivo ISOlinux.cfg a SYSlinux.cfg.</p> <p>Esto es todo lo qu debemos hacer!<span style="font-weight: bold;"><br /></span></p>Solo nos queda reiniciar nuestra Pc e iniciar desde la USB.<br /><br />Espero le sea de utilidad ...<span style="font-weight: bold;"></span><div class="blogger-post-footer">http://omixisc.blogspot.com<img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36502892-6126411558139039954?l=omixisc.blogspot.com'/></div>Omar Flores Martinezhttp://www.blogger.com/profile/13610683451731530372noreply@blogger.com0tag:blogger.com,1999:blog-36502892.post-28644625265087397292008-11-19T23:40:00.003-06:002008-11-19T23:57:03.715-06:00Instalando Squid en Guindos Xp<div style="text-align: justify;">Hola comunidad de lectores.. esta vez he configurado un servidor proxy con squid en guindos xp debido a q' es el sistema q' manejan en la escuela donde lo puse, no se preocupen pronto lo migraré a GNU/Linux esa es la idea.<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_b9fPPb_hp5w/SST7XIZKgMI/AAAAAAAAAEU/0MZIwE1oqoE/s1600-h/proxy.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 200px; height: 134px;" src="http://1.bp.blogspot.com/_b9fPPb_hp5w/SST7XIZKgMI/AAAAAAAAAEU/0MZIwE1oqoE/s200/proxy.jpg" alt="" id="BLOGGER_PHOTO_ID_5270613838738915522" border="0" /></a></div><br /><div style="text-align: justify;">Un proxy nos sirve para permitir el acceso a Internet a todos los equipos de una organización cuando sólo se puede disponer de un único equipo conectado, esto es, una única dirección IP.<br />Un proxy permite a otros equipos conectarse a una red de forma indirecta a través de él.<br /><br />Cuando un equipo de la red desea acceder a una información o recurso, es realmente el proxy quien realiza la comunicación y a continuación traslada el resultado al equipo inicial.<br /></div><br /><br />Aqui les va que es lo q hice:<br /><br />1. Primero desarge el paquete de squid para windows aqui<br /><br />2. Descomprimimos el paquete con winrar en el disco local C:<br /><br />3. La carpeta que se descomprime en C: hay que renombrarla y llamarla squid<br /><br />4. Entramos a la carpeta C:/squid/etc y renombramos los archivos .deafult, para que siempre los tengamos originales guardados, los dejamos todos con extensión .conf<br /><br />5. Abrimos el archivo squid.conf con nuestro editor preferido.<br /><br />6. Allí buscamos la variable http_port podemos dejarla 3128 por defecto o poner 8080 o ambas.<br /><br />7. Buscamos la línea cache_dir ufs c:/squid/var/cache 100 16 256 y nos aseguramos que este descomentada (sin el símbolo # al principio de la linea); también podemos aumentar el tamaño de la memoria para el almacenamiento de 100 a otro valor por ej. 1000.<br /><br />8. Buscamos la línea visible_hostname y colocamos el nombre de nuestra máquina, si no lo sabes te vas a inicio y luego a ejecutar y tipeas msinfo32 allí verás el nombre del sistema.<br /><br />9. Buscamos la sección de las listas de acceso, se identifican porque contienen la palabra acl, es la sección ACCESS CONTROLS del squid.conf; allí buscamos donde dice:<br /><br /> acl all src 0.0.0.0/0.0.0.0<br /> acl manager proto cache_object<br /> acl localhost src 127.0.0.1/255.255.255.255<br /> acl to_localhost dst 127.0.0.0/8<br /> acl SSL_ports port 443 563<br /> acl Safe_ports port 80 # http<br /> acl Safe_ports port 21 # ftp<br /> acl Safe_ports port 443 563 # https, snews<br /> acl Safe_ports port 70 # gopher<br /> acl Safe_ports port 210 # wais<br /> acl Safe_ports port 1025-65535 # unregistered ports<br /> acl Safe_ports port 280 # http-mgmt<br /> acl Safe_ports port 488 # gss-http<br /> acl Safe_ports port 591 # filemaker<br /> acl Safe_ports port 777 # multiling http<br /> acl CONNECT method CONNECT<br /><br /> y debajo escribimos acl nuestra_red src 192.168.0.0/255.255.255.0 También podemos crear un archivo .txt y guardarlo en c:/squid/etc, en dicho archivo colocamos la o las IP que queramos que accedan a los servicios de red.<br /><br /> Ejemplo:<br /> 192.168.0.1<br /> 192.168.0.2<br /> 192.168.1.3<br /><br /> 192.168.3.45 , (sólo la máquinas con estas ip accederán a Internet)<br /> el archivo se nombra permitidos.txt y se guarda en c:/squid/etc, y entonces debajo de la línea acl CONNECT method CONNECT colocaríamos acl nuestra_red src “c:/squid/etc/permitidos.txt”; de la primera forma estaríamos dando acceso a toda la red y de esta sería acceso solo a algunas máquinas.<br /><br />10. Buscamos la línea http_access allow manager localhost y debajo de ella agregamos: http_acess allow nuestra_red<br /><br />11. Crear los siguientes directorios en forma manual<br /><br /> C:\squid\var\cache<br /> C:\squid\var\cache\00<br /> C:\squid\var\cache\01<br /> C:\squid\var\cache\02<br /> C:\squid\var\cache\03<br /> C:\squid\var\cache\04<br /> C:\squid\var\cache\05<br /> C:\squid\var\cache\06<br /> C:\squid\var\cache\07<br /> C:\squid\var\cache\08<br /> C:\squid\var\cache\09<br /> C:\squid\var\cache\0A<br /> C:\squid\var\cache\0B<br /> C:\squid\var\cache\0C<br /> C:\squid\var\cache\0D<br /> C:\squid\var\cache\0E<br /> C:\squid\var\cache\0F<br /><br /> O sea nos vamos al direcorio var y creamos un directorio llamado cache y luego dentro de éste creamos varios directotios nombrados de 00 hasta 0F (Esto es numeración Hexadecimal)<br /><br />12. Ir a menú Inicio, darle clic a ejecutar y escribir cmd y darle a aceptar (esto es para abrir una consola)<br /><br />13. Una vez en la consola escribir: c:/squid/sbin/squid –z y si todo ha salido bien no dará mensajes de error.<br /><br />14. Luego escribir c:/squid/sbin/squid –i lo cual instalará squid como servicio de Windows xp.<br /><br />15. Iniciar el servicio squid, ir a menú Inicio y hacer clic en ejecutar, luego escribimos services.msc y le damos clic a aceptar, esto nos abrirá la ventana de los servicios y allí buscamos a squid y lo iniciamos o reiniciamos.<br /><br />De esta forma ya tendremos nuestro Proxy-cache funcionando en Windows.<br /><br />Solo nos queda configurar nuestros navegadores web cliente con la direccion ip del servidor proxy y el puerto asignado.<br /><br />Saludos !!!<div class="blogger-post-footer">http://omixisc.blogspot.com<img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36502892-2864462526508739729?l=omixisc.blogspot.com'/></div>Omar Flores Martinezhttp://www.blogger.com/profile/13610683451731530372noreply@blogger.com0tag:blogger.com,1999:blog-36502892.post-60606646367947372462008-11-13T16:22:00.004-06:002008-11-13T16:55:22.927-06:00Sistemas Biometricos..<div style="text-align: justify;">Hola comunidad, esta ocasión comentaré un poco sobre los sistemas biométricos los cuales son métodos automáticos de verificación e identificación de un individuo utilizando características físicas y comportamientos precisos.<br /><br />La biometría es el estudio de métodos automáticos para el reconocimiento único de humanos basados en uno o más rasgos conductuales o físicos intrínsecos. El término se deriva de las palabras griegas "bios" de vida y "metrón" de medida.<br /><br />La "biometría informática" es la aplicación de técnicas matemáticas y estadísticas sobre los rasgos físicos o de conducta de un individuo, para “verificar” identidades o para “identificar” individuos.<br /></div><br /><span style="font-weight: bold;">Principales Tecnologías Biométricas</span><br /><ul><li> Huella Digital (Fingerprint)</li><li> Biometría de mano (Hand Geometry)</li><li> Iris</li></ul><span style="font-weight: bold;"><br />Otras Tecnologías Biométricas</span><br /><ul><li> Rostro</li><li> Voz</li><li> Firma</li><li> Patrones de venas</li></ul><br /><span style="font-weight: bold;">Características de Operación de Tecnologías Biométricas: </span><br /><ul><li> Huella Digital: Mide características y patrones de las líneas de las huellas. </li><li> Geometría de Mano: Medidas precisas del tamaño y forma de la mano. </li><li> IRIS: Cámara de video usada para examinar el Iris del ojo humano. </li><li> Rostro: Medición de características faciales utilizando una cámara. </li><li> Voz: Uso de Micrófono para capturar el habla y comparar patrones. </li><li> Firma: Se usa una pluma ó stylus para medir la velocidad, presión y dirección, gravando el patrón de una firma hecha a mano. </li></ul><br /><span style="font-weight: bold;">Procesos de Autentificación e Identificación biométrica</span><br /><ul><li> <span style="font-weight: bold;">Verificación:</span> Es el corroborar la identidad de una persona por medio de un dato previamente dado (como el nombre, una credencial, CURP, etc) y su huella digital, por ejemplo: yo digo que soy Juan Pérez y lo confirmo con mi huella digital.</li></ul><ul><li> <span style="font-weight: bold;">Identificación:</span> Es el corroborar la identidad de una persona utilizando solamente su huella digital, por ejemplo: coloco mi huella digital y el sistema automáticamente sabe que soy Juan Pérez.</li></ul><br /><div style="text-align: justify;">Mas adelante escribiré un poco sobre el desarrollo de un Sistema de Asistencias en Java controlado por medio de lectura de huellas dactilares, estén pendientes...<br /></div><br />Saludos !!!<div class="blogger-post-footer">http://omixisc.blogspot.com<img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36502892-6060664636794737246?l=omixisc.blogspot.com'/></div>Omar Flores Martinezhttp://www.blogger.com/profile/13610683451731530372noreply@blogger.com1tag:blogger.com,1999:blog-36502892.post-79770094878314735632008-11-06T00:51:00.002-06:002008-11-06T00:55:12.972-06:00Microsoft va por México ...Leo, copio y pego...<br /><div align="justify"> </div><div align="justify">Al menos 10,000 Pequeñas y Medianas Empresas (Pymes) mexicanas tendrán durante un año la licencia gratuita para operar un software de Microsoft diseñado específicamente para cubrir las necesidades del sector.<br /></div><div align="justify">“El Microsoft Office Small Business pretende incrementar la productividad de las Pymes al agilizar las tareas rutinarias, mejorar la atención de sus clientes y ganar tiempo para agregar valor a sus productos”, dijo el secretario de Economía, Gerardo Ruíz Mateos.<br /></div><div align="justify">Mediante la firma de un convenio entre la Secretaría de Economía (SE) y Microsoft, se anunció la herramienta de software, que se dirige principalmente a las Pymes que no tienen un administrador de red de tiempo completo ni recursos suficientes para realizar grandes inversiones en tecnología.<br /></div><div align="justify">Para obtener este beneficio, los micro, pequeños y medianos empresarios deberán registrarse durante noviembre y diciembre y recibirán gratuitamente, además del programa, el entrenamiento y la asesoría necesarios para aprovechar la al 100% la tecnología del producto.</div><div align="justify"> </div><div align="justify"><a href="http://www.cnnexpansion.com/negocios/2008/11/05/microsoft-apuesta-por-pymes-mexicanas">mas ...</a></div><div align="justify"> </div><div align="justify">Como ven la estrategia de Microsoft ? :S</div><div align="justify"> </div><div class="blogger-post-footer">http://omixisc.blogspot.com<img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36502892-7977009487831473563?l=omixisc.blogspot.com'/></div>Omar Flores Martinezhttp://www.blogger.com/profile/13610683451731530372noreply@blogger.com0tag:blogger.com,1999:blog-36502892.post-8788086980987656002008-09-25T00:24:00.002-05:002008-09-25T01:03:27.985-05:00Wifi en debian lenny<div style="text-align: justify;font-family:arial;"><span style="font-size:100%;"><br />Hace unos dias consegui un adaptador usb wifi TM_U220D con chipset <strong>ZyDAS zd1211</strong>, este dispositivo es 100% comptible con linux ya que en Ubuntu lo reconoce a la primera. Pero bueno la idea es echarlo a andar en Debian lenny, esto es bastante sencillo solo tenemos que copiar el <strong>firmware</strong> del producto dentro de un directorio especifico. Para descargarnos el <strong>firmware</strong> vamos a visitar este apartado en la web de <a href="http://sourceforge.net/" rel="nofollow" target="blank" onclick="javascript:urchinTracker ('/outbound/article/sourceforge.net');"><strong>SourceForge</strong></a> y nos descargaremos el archivo <a href="http://sourceforge.net/project/showfiles.php?group_id=129083&amp;package_id=187875&amp;release_id=544191" onclick="javascript:urchinTracker ('/outbound/article/sourceforge.net');"><strong><strong>zd1211-firmware-1.4.tar.bz2</strong></strong></a><br /></span></div><span style=";font-family:arial;font-size:100%;" ><br />Una vez descargado el archivo lo vamos a <strong>descomprimir</strong> con el programa <strong>bzip2</strong>, si no lo tienes puedes instalarlo con …</span> <p style="font-family:arial;"><span style="font-size:100%;"><strong>apt-get install bzip2</strong></span></p> <p style="font-family:arial;"><span style="font-size:100%;">Ahora vamos a descomprimir el fichero con …</span></p> <p style="font-family:arial;"><span style="font-size:100%;"><strong>bzip2 -dc zd1211-firmware-1.4.tar.bz2 | tar -xv</strong></span></p> <p style="font-family:arial;"><span style="font-size:100%;">Una vez descomprimido vamos a copiarlo en el directorio <strong>/lib/firmware</strong> y lo renombraremos por <strong>zd1211</strong><br /></span> </p><span style=";font-family:arial;font-size:100%;" ><strong>cp -R zd1211-firmware /lib/firmware/zd1211</strong><br /><br />Hasta el momento nuestro adaptador ya esta listo para haerlo funcionar y lo podemos comprobar haciendo un <span style="font-weight: bold;">dmesg</span><br /><br /><span style="font-weight: bold;">Para configurar la red inalambrica con WPA hacemos lo siguiente:</span><br /></span><pre style="font-family:arial;"><span style="font-size:100%;"># apt-get install wpasupplicant o lo puedes bajar desde <a href="http://packages.debian.org/etch/wpasupplicant">http://packages.debian.org/etch/wpasupplicant</a><br /></span></pre> <p class="Body" style="font-family:arial;"><span style="font-size:100%;"> Edita el archivo /etc/network/interfaces</span> </p> <div class="block" style="font-family:arial;"><pre><span style="font-size:100%;"># nano /etc/network/interfaces<br /></span></pre></div> <p class="Body" style="font-family:arial;"><span style="font-size:100%;"> Define el dispositivo como si fuese un dispositivo normal, pero agregando declaraciones específicas para WPA. Por ejemplo, </span></p> <div class="block" style="font-family:arial;"><pre><span style="font-size:100%;"># wireless network<br />auto eth1<br />iface eth1 inet dhcp<br /> wpa-driver wext<br /> wpa-conf /etc/wpa_supplicant.conf<br /></span></pre></div> <p class="Body" style="font-family:arial;"><span style="font-size:100%;"> En este caso, el Access Point o Router inalámbrico está configurado para asignar números IP con DHCP (caso más común). </span></p> <p class="Body" style="font-family:arial;"><span style="font-size:100%;"> Si la red usa números IP estáticos p/e , </span></p> <div class="block" style="font-family:arial;"><pre style="font-family:arial;"><span style="font-size:100%;"># wireless network<br />auto eth1<br />iface eth1 inet static<br /> address 192.168.0.2<br /> netmask 255.255.255.0<br /> network 192.168.0.0<br /> broadcast 192.168.0.255<br /> gateway 192.168.0.1<br /> wpa-driver wext<br /> wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf<br /><br /></span></pre><p class="Body" style="font-family:arial;"><span style="font-size:100%;"> Crea el archivo /etc/wpa_supplicant.conf con un editor, </span></p> <div class="block" style="font-family:arial;"><pre><span style="font-size:100%;"># nano /etc/wpa_supplicant.conf<br /></span></pre></div> <p class="Body" style="font-family:arial;"><span style="font-size:100%;"> Inserta las siguientes líneas, </span></p> <div class="block" style="font-family:arial;"><pre><span style="font-size:100%;">ctrl_interface=/var/run/wpa_supplicant<br /><br />network={<br /> ssid="miwifi"<br /> scan_ssid=1<br /> proto=WPA<br /> key_mgmt=WPA-PSK<br /> psk=mifrasesecreta<br />}<br /></span></pre></div><p class="Body" style="font-family:arial;"><span style="font-size:100%;"> Instala resolvconf para determinar automáticamente el DNS de la red, </span></p> <div class="block" style="font-family:arial;"><pre><span style="font-size:100%;"># apt-get install resolvconf<br /></span></pre></div> <p class="Body" style="font-family:arial;"><span style="font-size:100%;"> Reinicia la red con, </span></p> <div class="block"><pre><span style="font-size:100%;"><span style="font-family:arial;"># invoke-rc.d networking restart</span><br /><br /><span style="font-weight: bold;font-family:arial;" >Este fue mi resultado</span><span style="font-family:arial;"> </span><br /><br /><span style="font-family:arial;">eth1: unknown hardware address type 801</span><br /><span style="font-family:arial;">eth1: unknown hardware address type 801</span><br /><span style="font-family:arial;">Listening on LPF/wlan0/00:0e:8e:13:1d:d7</span><br /><span style="font-family:arial;">Sending on LPF/wlan0/00:0e:8e:13:1d:d7</span><br /><span style="font-family:arial;">Sending on Socket/fallback</span><br /><span style="font-family:arial;">ioctl[SIOCSIWAUTH]: Operation not supported</span><br /><span style="font-family:arial;">WEXT auth param 4 value 0x0 - Internet Systems Consortium DHCP Client V3.1.1</span><br /><span style="font-family:arial;">Copyright 2004-2008 Internet Systems Consortium.</span><br /><span style="font-family:arial;">All rights reserved.</span><br /><span style="font-family:arial;">For info, please visit http://www.isc.org/sw/dhcp/</span><br /><br /><span style="font-family:arial;">eth1: unknown hardware address type 801</span><br /><span style="font-family:arial;">eth1: unknown hardware address type 801</span><br /><span style="font-family:arial;">Listening on LPF/wlan0/00:0e:8e:13:1d:d7</span><br /><span style="font-family:arial;">Sending on LPF/wlan0/00:0e:8e:13:1d:d7</span><br /><span style="font-family:arial;">Sending on Socket/fallback</span><br /><span style="font-family:arial;">DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 4</span><br /><span style="font-family:arial;">DHCPOFFER from 172.16.0.1</span><br /><span style="font-family:arial;">DHCPREQUEST on wlan0 to 255.255.255.255 port 67</span><br /><span style="font-family:arial;">DHCPACK from 172.16.0.1</span><br /><span style="font-family:arial;">bound to 172.16.1.34 -- renewal in 35421 seconds.</span><br /><span style="font-family:arial;">done.</span><br /><br /><span style="font-family:arial;">Ahora ya esta todo listo.. y a navegar con la red inalambrica Saludos</span><br /></span></pre></div><pre><span style="font-size:100%;"><br /></span></pre></div><span style="font-size:100%;"><br /><br /><br /><br /></span><div class="blogger-post-footer">http://omixisc.blogspot.com<img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36502892-878808698098765600?l=omixisc.blogspot.com'/></div>Omar Flores Martinezhttp://www.blogger.com/profile/13610683451731530372noreply@blogger.com0tag:blogger.com,1999:blog-36502892.post-35306328870486076652008-09-10T11:06:00.002-05:002008-09-10T11:23:36.978-05:00Firefox y Chrome PackageQue tal ...<br /><br />A estas alturas la mayoría de nosotros ya hemos probado <strong>Google Chrome</strong>. Eso era hasta hace diez minutos, ya que les aviso de algo interesante, <strong>Chrome Package</strong>, un tema para Mozilla Firefox. <p>Este tema nos convierte, a simple vista, nuestro <strong>Mo</strong><strong>zilla Firefox</strong> en un <strong>Google Chrome</strong> cualquiera. Evidentemente sólo en aspecto y no en funcionalidades, ya que en ese sentido Firefox es Firefox. El acabado es brutal, como lo podemos ver en la imagen.</p><p>el tema no funciona bien al 100% ya que como avisan en <strong>Mozilla</strong> es un tema experimental. Así que esto es bajo nuestra propia responsabilidad, puedes hacer una copia de seguridad de tu perfil por si acaso. </p><p>Para poder descargarlo deberemos estar registrados en la web de Mozilla ya que, como he dicho antes, el tema es experimental.</p><p><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_b9fPPb_hp5w/SMfzjBcr2wI/AAAAAAAAADw/dk9tFrk49_I/s1600-h/chromefire.PNG"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_b9fPPb_hp5w/SMfzjBcr2wI/AAAAAAAAADw/dk9tFrk49_I/s200/chromefire.PNG" alt="" id="BLOGGER_PHOTO_ID_5244428074105953026" border="0" /></a></p><p>Buenos pues esta es una opcion mas para los que no pueden dejar totalmente Firefox</p><p>Saludos...<br /></p><div class="blogger-post-footer">http://omixisc.blogspot.com<img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36502892-3530632887048607665?l=omixisc.blogspot.com'/></div>Omar Flores Martinezhttp://www.blogger.com/profile/13610683451731530372noreply@blogger.com0tag:blogger.com,1999:blog-36502892.post-72571954862015179152008-09-01T23:53:00.002-05:002008-09-01T23:58:17.353-05:00Debian Squeeze será el sucesor de Lenny<em>Desde barrapunto.com leo, copio y pego...<br /></em><br /><em><a href="http://lists.debian.org/debian-devel-announce/2008/09/msg00000.html">El nombre del sucesor de Lenny</a> ha sido revelado en una de las listas de Debian. Siguiendo la tradición de nombrar versiones de Debian con nombres de personajes de Toy Story, la siguiente versión será "<a href="http://en.wikipedia.org/wiki/List_of_Toy_Story_characters#Squeeze_Toy_Aliens">Squeeze</a>", el nombre que reciben los <a href="http://nion.modprobe.de/blog/archives/650-squeeze.html">alienígenas verdes de tres ojos</a> que, en la primera película, aparecen en un juego de <i>Pizza Planet</i> y que creen que <i>el gancho</i> los elegirá y los llevará a un lugar mejor.</em><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://upload.wikimedia.org/wikipedia/en/c/cf/Squeezetoyalien.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 128px; height: 96px;" src="http://upload.wikimedia.org/wikipedia/en/c/cf/Squeezetoyalien.jpg" alt="" border="0" /></a>Saludos... y viva Debian !!!<br /><br /><br /><br /><br /><em><br /></em><img src="file:///C:/DOCUME%7E1/OMIXSO%7E1/CONFIG%7E1/Temp/moz-screenshot.jpg" alt="" /><div class="blogger-post-footer">http://omixisc.blogspot.com<img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36502892-7257195486201517915?l=omixisc.blogspot.com'/></div>Omar Flores Martinezhttp://www.blogger.com/profile/13610683451731530372noreply@blogger.com0tag:blogger.com,1999:blog-36502892.post-32011586804379660392008-06-07T07:22:00.002-05:002008-06-07T07:29:20.811-05:00Consola de UnixQue tal ... esta ocasion cometo algo relacionado con la consola de unix o tambien conocida con shell, todos los que somos linuxeros tenemos el habito de manejar la consola todos los dias... pero cuales son tus verdaderos habitos respecto a la consola ???<br /><br /><a href="http://www.ibm.com/developerworks/aix/library/au-unixtips/?ca=dgr-lnxw13goodunixhabits&amp;S_TACT=105AGX59&amp;S_CMP=GR">Aqui</a> les dejo un enlace donde nos dan unos buenos tips para tener un mejor manejo de ella<br /><br />Saludos !!!<div class="blogger-post-footer">http://omixisc.blogspot.com<img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36502892-3201158680437966039?l=omixisc.blogspot.com'/></div>Omar Flores Martinezhttp://www.blogger.com/profile/13610683451731530372noreply@blogger.com0tag:blogger.com,1999:blog-36502892.post-20219551193693231262008-06-02T12:16:00.002-05:002008-06-02T12:21:39.840-05:00Formularios css ajaxQ' tal buen dia..<br /><br />Navegando por ahi me encuentro esta <a href="http://www.noupe.com/ajax/47-excellent-ajax-css-forms.html">pagina</a> donde puedes encontrar 47 excelentes diseños de formularios web basados en css y ajax.<br /><br />Esto para aquellos q' nos gusta la programacion web pero no somos nada buenos para eso de la combinacion de colores ... jejeje<br /><br />Saludos ..<div class="blogger-post-footer">http://omixisc.blogspot.com<img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36502892-2021955119369323126?l=omixisc.blogspot.com'/></div>Omar Flores Martinezhttp://www.blogger.com/profile/13610683451731530372noreply@blogger.com0tag:blogger.com,1999:blog-36502892.post-23074652329136470362008-05-21T12:40:00.001-05:002008-05-21T12:43:22.881-05:00Protege el codigo de tus paginas web<div align="justify">Saludos comunidad, le cuento q' para proteger tu código de los copiones del Internet ahora es </div><div align="justify">muy fácil, sólo sigue los siguientes pasos:<br /></div><ol><li>Desconecta tu ordenador de internet. </li><li>Crea tu hoja de estilos. </li><li>Guárdala. </li><li>Apaga el ordenador. </li><li>Desmonta la caja del ordenador y saca el disco duro (si el archivo esta en un disco duro extraible puedes saltarte este paso). </li><li>Hazte con unos pasajes para un viaje por el atlántico. </li><li>Compra una caja fuerte, no es necesario que sea muy grande. </li><li>Mete el disco duro en la caja fuerte, mete tambien la llave y la combinación la pones aleatoria (no la apuntes en ningun lado ni la memorices). </li><li>Vete al viaje que has pagado (llevate la caja fuerte). </li><li>Cuando estes en medio del mar tira la caja fuerte (asegúrate de que nadie te vea). </li><li>Pégate un fiestazo en la disco del barco hasta que te caigas borracho. </li><li>¡Ya está! nadie podrá descargarse ahora esa maravillosa hoja de estilos ni copiar tus nuevas reglas e ideas. </li></ol><p align="justify"><br />Imaginen si los libros no se pudieran prestar ni copiar, pues no habría ningún tipo de conocimiento útil para nadie, pues con las webs es lo mismo, si no quieres compartir tu conocimiento no publiques nada.<br />Es bueno compartir, ya que asi aprendemos todos, aunque la internet no es nuestra hay maneras de hacer reconocer nuestro trabajo.<br />Piensalo muy bien ..... Seguimos navegando</p><div class="blogger-post-footer">http://omixisc.blogspot.com<img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36502892-2307465232913647036?l=omixisc.blogspot.com'/></div>Omar Flores Martinezhttp://www.blogger.com/profile/13610683451731530372noreply@blogger.com1tag:blogger.com,1999:blog-36502892.post-42378201382955981932008-05-12T08:13:00.003-05:002008-05-12T08:47:55.720-05:00Tu Host Gratis en las Web...Hola Buen Dia, platicando el otro dia con el kraxbox me paso un link para crear un host gratis con el subdomino site88.net. Este es el mio <a href="http://omix.site88.net/">http://omix.site88.net</a><br /><br />Esta es la pagina principal <a href="http://www.000webhost.com/">http://www.000webhost.com</a> en donde solo ingresas uno cuantos campos y seleccionas tu subdominio o dominio, para hospedar tus paginas web.<br /><br />Los servicios q' se ofrecen son 350 Mb de espacio en disco para todos tus archivos, soporte para php 5.2, mysql 5.0.4, el servidor claro q' es Apache 2.2.8, puedes accesar por medio de ftp y desde luego es un servidor sobre Linux solo q' la condicion es q' pongas un link a la pagina de 000webhost.<br /><br />Cuenta con un Control Panel desde donde puedes realizar todas las operaciones necesarias en tu host. Por ejemplo tiene phpMyAdmin para manipular a Mysql, en lo personal me gusta hacer SQL a mano jejeje :-)<br /><br />Bueno por lo menos para realizar pruebas es una buena eleccion este servicio gratuito.<br /><br />Saludos Be Free !!!<div class="blogger-post-footer">http://omixisc.blogspot.com<img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36502892-4237820138295598193?l=omixisc.blogspot.com'/></div>Omar Flores Martinezhttp://www.blogger.com/profile/13610683451731530372noreply@blogger.com0tag:blogger.com,1999:blog-36502892.post-81655292828896963162008-04-29T13:30:00.007-05:002008-04-29T14:00:15.525-05:00INTRO A REGEX EN PHPHola q' tal ?? bueno esta ocasion comentare un poco sobre Expresiones Regulares con php o REGEX para abreviar, ya que es un tema muy profundo q' debemos tocar siempre q' se trate de validar datos en una pagina web.<br /><br /><span style="font-weight: bold;">¿Que son las Expresiones Regulares?</span><br /><p>Son una serie de carácteres que forman un patrón, normalmente representativo de otro grupo de carácteres mayor, de tal forma que podemos comparar el patrón con otro conjunto de carácteres para ver las coincidencias.<br /><br />Las expresiones regulares estan disponibles en casi cualquier lenguaje de programación, pero aunque su sintaxis es relativamente uniforme, cada lenguaje usa su propio <i>dialecto</i>.<br /><br />Si es la primera vez que te acercas al concepto de expresiones regulares te animará saber que seguro que ya las has usado, aún sin saberlo.<br /></p><p>Por ejemplo, cuando en una ventana del BASH ejecutamos <code>ls *.sh</code> para obtener un listado de todos los archivos de un directorio, estamos utilizando el concepto de expresiones regulares, donde el <i>patrón</i> * coincide con cualquier cadena de caracteres.</p> <span style="font-weight: bold;">Unos ejemplos mas simples<br /><br /></span><code><code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);"><span style="color: rgb(255, 128, 0);">// este es nuestro patrón. Si lo comparamos con:<br /></span><span style="color: rgb(0, 0, 187);">am </span><span style="color: rgb(255, 128, 0);">// coincide<br /></span><span style="color: rgb(0, 0, 187);">panorama </span><span style="color: rgb(255, 128, 0);">// coincide<br /></span><span style="color: rgb(0, 0, 187);">ambicion </span><span style="color: rgb(255, 128, 0);">// coincide<br /></span><span style="color: rgb(0, 0, 187);">campamento </span><span style="color: rgb(255, 128, 0);">// coincide<br /></span><span style="color: rgb(0, 0, 187);">mano </span><span style="color: rgb(255, 128, 0);">// no coincide<br /></span><span style="color: rgb(0, 0, 187);">?></span> </span> </span></code></code> <p>Se trata sencillamente de ir comparando un patrón (<i>pattern</i>) que en este ejemplo es la secuencia de letras 'am'- con una cadena (<span style="font-style: italic;">string</span><i></i>) y ver si dentro de ella existe la misma secuencia. Si existe, decimos que hemos encontrado una <i>coincidencia</i> (match, en inglés).</p> <p>Otro ejemplo:</p> patrón: <span style="color: rgb(255, 0, 0);">el</span><br /><span style="color: rgb(255, 0, 0);">el</span> ala aleve d<span style="color: rgb(255, 0, 0);">el</span> leve abanico<br /><br /><span style="font-weight: bold;"><br />Caracteres y Meta Caracteres</span> <p>Nuestro patrón puede estar formado por un conjunto de carácteres (un grupo de letras, numeros o signos) o por <b>meta caracteres</b> que representan otros carácteres, o permiten una búsqueda contextual.<br /><br />Los meta-caracteres reciben este nombre porque no se representan a ellos mismos, sino que son interpretados de una manera especial. </p> <p>He aqui la lista de meta caracteres mas usados:</p> <p> <code> . * ? + [ ] ( ) { } ^ $ | \ </code><br /><br /><br /></p> <span style="font-weight: bold;">Meta Caracteres de Posicionamiento o Anclas<br /></span> <p>Los signos <tt>^</tt> y <tt>$</tt> sirven para indicar donde debe estar situado nuestro patrón dentro de la cadena para considerar que existe una coincidencia.<br /><br />Cuando usamos el signo <tt>^</tt> queremos decir que el patrón debe aparecer <i>al principio</i> de la cadena de carácteres comparada.</p><p> Cuando usamos el signo <tt>$</tt> estamos indicando que el patrón debe aparecer <i>al final</i> del conjunto de carácteres.<br /></p><p>O mas exactamente, antes de un caracter de <i>nueva linea</i><br /></p><p>Asi: </p> <code> <code><span style="color: rgb(0, 0, 0);"> <span style="color: rgb(0, 0, 187);"><span style="color: rgb(0, 119, 0);">^</span><span style="color: rgb(0, 0, 187);">am </span><span style="color: rgb(255, 128, 0);">// nuestro patrón<br /></span><span style="color: rgb(0, 0, 187);">am </span><span style="color: rgb(255, 128, 0);">// coincide<br /></span><span style="color: rgb(0, 0, 187);">cama </span><span style="color: rgb(255, 128, 0);">// no coincide<br /></span><span style="color: rgb(0, 0, 187);">ambidiestro </span><span style="color: rgb(255, 128, 0);">// coincide<br /></span><span style="color: rgb(0, 0, 187);">Pam </span><span style="color: rgb(255, 128, 0);">// no coincide<br /></span><span style="color: rgb(0, 0, 187);">Pamela </span><span style="color: rgb(255, 128, 0);">// no coincide<br /><br /></span><span style="color: rgb(0, 0, 187);">am</span><span style="color: rgb(0, 119, 0);">$ </span></span></span></code></code><code><code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);"></span><span style="color: rgb(255, 128, 0);">// nuestro patrón </span></span></code></code><code><code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 119, 0);"><br /></span><span style="color: rgb(0, 0, 187);">am </span><span style="color: rgb(255, 128, 0);">// coincide<br /></span><span style="color: rgb(0, 0, 187);">salam </span><span style="color: rgb(255, 128, 0);">// coincide<br /></span><span style="color: rgb(0, 0, 187);">ambar </span><span style="color: rgb(255, 128, 0);">// no coincide<br /></span><span style="color: rgb(0, 0, 187);">Pam </span><span style="color: rgb(255, 128, 0);">// coincide<br /><br /><br /></span><span style="color: rgb(0, 119, 0);">^</span><span style="color: rgb(0, 0, 187);">am</span><span style="color: rgb(0, 119, 0);">$<br /></span><span style="color: rgb(0, 0, 187);">am </span><span style="color: rgb(255, 128, 0);">// coincide<br /></span><span style="color: rgb(0, 0, 187);">salam </span><span style="color: rgb(255, 128, 0);">// no coincide<br /></span><span style="color: rgb(0, 0, 187);">ambar </span><span style="color: rgb(255, 128, 0);">// no coincide<br /><br /></span><span style="color: rgb(0, 0, 187);">?></span> </span> </code></code> <p>o como en el ejemplo anterior:</p> patrón: <span style="color: rgb(255, 0, 0);">^el</span><br /><span style="color: rgb(255, 0, 0);">el</span> ala aleve del leve abanico<br /><br /><span style="font-weight: bold;">Escapando Caracteres<br /><br /></span><p>Puede suceder que necesitemos incluir en nuestro patrón algun metacaracter como signo literal, es decir, por si mismo y no por lo que representa. Para indicar esta finalidad usaremos un carácter de escape, la barra invertida <tt>\</tt>.<br />Así, un patrón definido como <tt>12\$</tt> <i>no</i> coincide con una cadena terminada en 12, y sí con 12$:</p> patrón: <span style="color: rgb(255, 0, 0);">100$</span><br /><quote>el ala aleve del leve abanico cuesta 100$</quote><br />patrón: <span style="color: rgb(255, 0, 0);">100\$</span><br /><quote>el ala aleve del leve abanico cuesta <span style="color: rgb(255, 0, 0);">100$</span></quote><p>Fijate en los ejemplos anteriores. En el primero, no hay coincidencia, porque se interpreta "busca una secuencia consistente en el número 100 al final de la cadena", y la cadena no termina en 100, sino en 100$.<br />Para especificar que buscamos la cadena 100$, debemos escapar el signo $</p> <p>Como regla general, la barra invertida \ convierte en normales caracteres especiales, y hace especiales caracteres normales.</p><p>Las funciones básicas de expresiones regulares para comparar una cadena con un patrón son <a href="http://es2.php.net/manual/es/function.ereg.php" title="Ver manual de PHP"><span class="php-fun">ereg($patron, $cadena)</span></a> y <a href="http://es2.php.net/manual/es/function.eregi.php" title="Ver manual de PHP"><span class="php-fun">eregi($patron, $cadena)</span></a>.<br /></p><p>La diferencia entre ellas es que <span class="php-fun">ereg()</span> distingue entre mayúsculas y minúsculas y <span class="php-fun">eregi()</span> no.<br /></p><p>Estas funciones comprueban si la cadena cumple el patrón y devuelven el valor 1 (verdadero) o 0 (falso). Los argumentos de las funciones pueden ser cadenas o variables que contengan cadenas. Si el patrón es la cadena vacía, las funciones devuelven error.</p>Ejemplo:<br /><p>&lt;?php<br />$cadena1 = "1234567";<br />$cadena2 = "abcdefg";<br />$patron = "^[[:digit:]]+$";<br /><br /> if (eregi($patron, $cadena1)) {<br /> echo "&lt;p&gt;La cadena $cadena1 son sólo<br /> números.&lt;/p&gt;";<br />} else {<br /> echo "&lt;p&gt;La cadena $cadena1 no son sólo<br /> números.&lt;/p&gt;";<br />}<br /><br /> if (eregi($patron, $cadena2)) {<br /> echo "&lt;p&gt;La cadena $cadena2 son sólo<br /> números.&lt;/p&gt;";<br />} else {<br /> echo "&lt;p&gt;La cadena $cadena2 no son sólo<br /> números.&lt;/p&gt;";<br />}<br />?&gt;<br /></p><span style="font-weight: bold;">Sintaxis de las Expresiones Regulares<br /><br /></span><table border="1"><tbody><tr><th>Patrón</th> <th>Significado</th> </tr> <tr> <td>.</td> <td>cualquier carácter</td> </tr> <tr> <td>^c</td> <td>empezar por el carácter c</td> </tr> <tr> <td>c$</td> <td>terminar por el carácter c</td> </tr> <tr> <td>c+</td> <td>1 o más caracteres c</td> </tr> <tr> <td>c*</td> <td>0 o más caracteres c</td> </tr> <tr> <td>c?</td> <td>0 o 1 caracteres c</td> </tr> <tr> <td>\n</td> <td>nueva línea</td> </tr> <tr> <td>\t</td> <td>tabulador</td> </tr> <tr> <td>\</td> <td>escape, para escribir delante de caracteres especiales: ^ . [ ] % ( ) | * ? { } \</td> </tr> <tr> <td>(cd)</td> <td>caracteres c y d agrupados</td> </tr> <tr> <td>c|d</td> <td>carácter c o d</td> </tr> <tr> <td>c{n}</td> <td>n veces el carácter c</td> </tr> <tr> <td>c{n,}</td> <td>n o más caracteres c</td> </tr> <tr> <td>c{n,m}</td> <td>desde n hasta m caracteres c</td> </tr> <tr> <td>[a-z]</td> <td>cualquier letra minúscula</td> </tr> <tr> <td>[A-Z]</td> <td>cualquier letra mayúscula</td> </tr> <tr> <td>[0-9]</td> <td>cualquier dígito</td> </tr> <tr> <td>[cde]</td> <td>cualquiera de los caracteres c, d o e</td> </tr> <tr> <td>[c-f]</td> <td>cualquier letra entre c y f (es decir, c, d, e o f)</td> </tr> <tr> <td>[^c]</td> <td>que no esté el carácter c</td> </tr> <tr> <td>[[:alnum:]]</td> <td>cualquier letra o dígito (pero no vocales acentuadas, ñ, ç, etc.)</td> </tr> <tr> <td>[[:alpha:]]</td> <td>cualquier letra (pero no vocales acentuadas, ñ, ç, etc.)</td> </tr> <tr> <td>[[:digit:]]</td> <td>cualquier dígito</td> </tr> <tr> <td>[[:lower:]]</td> <td>cualquier letra minúscula (pero no vocales acentuadas, ñ, ç, etc.)</td> </tr> <tr> <td>[[:punct:]]</td> <td>cualquier marca de puntuación</td> </tr> <tr> <td>[[:space:]]</td> <td>cualquier espacio en blanco </td> </tr> <tr> <td>[[:upper:]]</td> <td>cualquier letra mayúscula (pero no vocales acentuadas, ñ, ç, etc.)</td></tr></tbody></table><br /><span style="font-weight: bold;">Ejemplos de Expresiones Regulares<br /><br /></span><table class="bordetbody" style="text-align: center;" border="1"><tbody><tr><th>Patrón</th> <th>Cadena</th> <th>¿Cumple?</th> <th>Comentario</th> </tr> <tr> <td rowspan="3">abc</td> <td>awbwc</td> <td>No</td> <td>Los caracteres tienen que estar seguidos.</td> </tr> <tr> <td>34abc</td> <td>Sí</td> <td>No importa que hayan caracteres antes...</td> </tr> <tr> <td>cbabcba</td> <td>Sí</td> <td>... o después.</td> </tr> <tr> <td>a2b</td> <td>g1da2b3</td> <td>Sí</td> <td>Las expresiones regulares detectan letras, números, ...</td> </tr> <tr> <td>áb</td> <td>3áb4</td> <td>Sí</td> <td>... incluso acentos, ...</td> </tr> <tr> <td>a\$b</td> <td>1a$b2</td> <td>Sí</td> <td>... salvo los caracteres ^ . [ $ ( ) | * + ? { \ €<br /> que deben llevar una contrabarra \ antes,<br /> además de \n (nueva línea) y \t (tabulador)</td> </tr> </tbody> <tbody> <tr> <td rowspan="2">[aeiou]</td> <td>bic</td> <td>Sí</td> <td>Los corchetes definen los caracteres admitidos en una posición ...</td> </tr> <tr> <td>bcd</td> <td>No</td> <td><br /></td> </tr> <tr> <td rowspan="2">[^aeiou]</td> <td>bic</td> <td>Sí</td> <td>... o no admitidos</td> </tr> <tr> <td>aei</td> <td>No</td> <td><br /></td> </tr> <tr> <td rowspan="2">[p-t]</td> <td>avr</td> <td>Sí</td> <td>Se pueden definir rangos de caracteres...</td> </tr> <tr> <td>av1</td> <td>No</td> <td><br /></td> </tr> <tr> <td rowspan="2">[B-D]</td> <td>PMD</td> <td>Sí</td> <td>... en minúsculas o mayúsculas ...</td> </tr> <tr> <td>AV1</td> <td>No</td> <td><br /></td> </tr> <tr> <td rowspan="2">[0-9]</td> <td>b9d</td> <td>Sí</td> <td>... o números</td> </tr> <tr> <td>bcd</td> <td>No</td> <td><br /></td> </tr> <tr> <td>[[:alpha:]]</td> <td><br /></td> <td><br /></td> <td>Cualquier carácter alfabético (sin acentos)</td> </tr> <tr> <td>[[:digit:]]</td> <td><br /></td> <td><br /></td> <td>Cualquier número</td> </tr> <tr> <td>[[:alnum:]]</td> <td><br /></td> <td><br /></td> <td>Cualquier número o carácter alfabéticos (sin acentos)</td> </tr> <tr> <td>[[:punct:]]</td> <td><br /></td> <td><br /></td> <td>Cualquier carácter que no sean letras y números (menos el euro)</td> </tr> <tr> <td>[[:space:]]</td> <td><br /></td> <td><br /></td> <td>Cualquier tipo de espacio en blanco</td> </tr> <tr> <td>[[:upper:]]</td> <td><br /></td> <td><br /></td> <td>Cualquier mayúscula (sin acentos)</td> </tr> <tr> <td>[[:lower:]]</td> <td><br /></td> <td><br /></td> <td>Cualquier minúscula (sin acentos)</td> </tr> </tbody> <tbody> <tr> <td rowspan="2">^ab</td> <td>cab</td> <td>No</td> <td>Los caracteres tienen que estar al principio</td> </tr> <tr> <td>abc</td> <td>Sí</td> <td>No importa que hayan caracteres después</td> </tr> <tr> <td rowspan="2">ab$</td> <td>abc</td> <td>No</td> <td>Los caracteres tienen que estar al final</td> </tr> <tr> <td>cab</td> <td>Sí</td> <td>No importa que hayan caracteres antes</td> </tr> <tr> <td rowspan="2">^ab$</td> <td>ab</td> <td>Sí</td> <td>Tiene que empezar y acabar por aba ...</td> </tr> <tr> <td>abab</td> <td>No</td> <td>... y no puede haber nada antes o después</td> </tr> </tbody> <tbody> <tr> <td rowspan="3">ab?c</td> <td>abcde</td> <td>Sí</td> <td>El carácter b puede estar entre a y c...</td> </tr> <tr> <td>acde</td> <td>Sí</td> <td>... o no estar entre a y c ...</td> </tr> <tr> <td>adcde</td> <td>No</td> <td>... pero no puede haber otro carácter</td> </tr> <tr> <td rowspan="3">a.c</td> <td>abc</td> <td>Sí</td> <td>El . representa cualquier carácter ...</td> </tr> <tr> <td>a c</td> <td>Sí</td> <td>... incluso el espacio el blanco, ...</td> </tr> <tr> <td>abdc</td> <td>No</td> <td>pero sólo un carácter</td> </tr> <tr> <td rowspan="3">ab+c</td> <td>abcde</td> <td>Sí</td> <td>El carácter b puede estar una vez...</td> </tr> <tr> <td>abbbcde</td> <td>Sí</td> <td>... o varias ...</td> </tr> <tr> <td>acde</td> <td>No</td> <td>... pero tiene que estar al menos una vez.</td> </tr> <tr> <td rowspan="3">ab*c</td> <td>abcde</td> <td>Sí</td> <td>El carácter b puede estar una vez...</td> </tr> <tr> <td>abbbcde</td> <td>Sí</td> <td>... o varias ...</td> </tr> <tr> <td>acde</td> <td>Sí</td> <td>... o ninguna.</td> </tr> <tr> <td rowspan="3">ab{3}c</td> <td>abbbc</td> <td>Sí</td> <td>Las llaves indican el número exacto de repeticiones del carácter, ...</td> </tr> <tr> <td>abbbbc</td> <td>No</td> <td>... no puede haber más ...</td> </tr> <tr> <td>abbc</td> <td>No</td> <td>... ni menos.</td> </tr> <tr> <td rowspan="5">ab{2,4}c</td> <td>abc</td> <td>No</td> <td>Se pueden definir rangos con límite inferior e inferior</td> </tr> <tr> <td>abbc</td> <td>Sí</td> <td><br /></td> </tr> <tr> <td>abbbc</td> <td>Sí</td> <td><br /></td> </tr> <tr> <td>abbbbc</td> <td>Sí</td> <td><br /></td> </tr> <tr> <td>abbbbbc</td> <td>No</td> <td><br /></td> </tr> <tr> <td>ab{2,}c</td> <td>abc</td> <td>No</td> <td>Se pueden definir rangos sin límite superior</td> </tr> <tr> <td>a(bc){2}d</td> <td>abcbcd</td> <td>Sí</td> <td>Los paréntesis definen agrupaciones de caracteres.<br /> En este caso bc tiene que aparecer repetido</td> </tr> <tr> <td rowspan="3">a(bc)?d</td> <td>abcd</td> <td>Sí</td> <td>Aquí bc puede estar ...</td> </tr> <tr> <td>ad</td> <td>Sí</td> <td>... o no estar, ...</td> </tr> <tr> <td>abd</td> <td>No</td> <td>... pero no puede aparecer sólo la b, o sólo la c u otro carácter</td> </tr> </tbody> <tbody> <tr> <td rowspan="4">a(b|d)c</td> <td>abc</td> <td>Sí</td> <td>Entre la a y la c puede estar el carácter b...</td> </tr> <tr> <td>adc</td> <td>Sí</td> <td>... o el carácter d, ...</td> </tr> <tr> <td>abdc</td> <td>No</td> <td>... pero no los dos, ...</td> </tr> <tr> <td>ac</td> <td>No</td> <td>... ni ninguno de ellos.</td> </tr> <tr> <td rowspan="4">^(ab)|(dc)$</td> <td>abc</td> <td>Sí</td> <td>Está la pareja ab ...</td> </tr> <tr> <td>adc</td> <td>Sí</td> <td>... o dc ...</td> </tr> <tr> <td>abdc</td> <td>Sí</td> <td>... o las dos, ...</td> </tr> <tr> <td>ac</td> <td>No</td> <td>... pero no ninguna</td> </tr> <tr> <td rowspan="3">^(ab)$|^(dc)$</td> <td>abc</td> <td>No</td> <td>Está la pareja ab, pero sobra la c ...</td> </tr> <tr> <td>adc</td> <td>No</td> <td>... o está la pareja dc, pero sobra la a.</td> </tr> <tr> <td>dc</td> <td>Sí</td> <td>Está una de las dos</td></tr></tbody></table><br /><p><br /></p><div class="blogger-post-footer">http://omixisc.blogspot.com<img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36502892-8165529282889696316?l=omixisc.blogspot.com'/></div>Omar Flores Martinezhttp://www.blogger.com/profile/13610683451731530372noreply@blogger.com0tag:blogger.com,1999:blog-36502892.post-2750608918121576432008-04-16T14:18:00.002-05:002008-04-16T14:22:17.655-05:00y tu que super Heroe eres ??De acuerdo a este <a href="http://www.thesuperheroquiz.com/">test</a> que encontre en <a href="http://planeta.glp.com.mx/">planteta glp</a> este fue mi resultado, cual es el tuyo... jajaja ...<br /><br />Tus resultados:<br /><b>Tu Eres <span style="font-size:6;">Superman (Superhombre)</span></b><br /><table><tbody><tr><td><table><tbody><tr><td>Superman (Superhombre)</td><br /><td><hr align="left" noshade="noshade" size="4" width="80"></td><td> 80%</td><br /></tr><tr><td>El Flash</td><br /><td><hr align="left" noshade="noshade" size="4" width="80"></td><td> 80%</td><br /></tr><tr><td>Iron Man (El Hombre de Hierro)</td><br /><td><hr align="left" noshade="noshade" size="4" width="75"></td><td> 75%</td><br /></tr><tr><td>Green Lantern (Linterna Verde)</td><br /><td><hr align="left" noshade="noshade" size="4" width="70"></td><td> 70%</td><br /></tr><tr><td>Hulk</td><br /><td><hr align="left" noshade="noshade" size="4" width="65"></td><td> 65%</td><br /></tr><tr><td>Catwoman (Gatúbela)</td><br /><td><hr align="left" noshade="noshade" size="4" width="55"></td><td> 55%</td><br /></tr><tr><td>Robin</td><br /><td><hr align="left" noshade="noshade" size="4" width="53"></td><td> 53%</td><br /></tr><tr><td>Batman</td><br /><td><hr align="left" noshade="noshade" size="4" width="50"></td><td> 50%</td><br /></tr><tr><td>Wonder Woman (Mujer Maravilla)</td><br /><td><hr align="left" noshade="noshade" size="4" width="45"></td><td> 45%</td><br /></tr><tr><td>Spider-Man (El Hombre Araña)</td><br /><td><hr align="left" noshade="noshade" size="4" width="40"></td><td> 40%</td><br /></tr><tr><td>Supergirl (Superchica)</td><br /><td><hr align="left" noshade="noshade" size="4" width="40"></td><td> 40%</td><br /></tr></tbody></table></td><br /><td>Tienes un caractetivo buena,<br />fuerte, y te gusta ayudar a otros.<br /><br /><img src="http://www.thesuperheroquiz.com/pics/superman.jpg" /></td><br /></tr></tbody></table><a href="http://www.thesuperheroquiz.com/es/"><br />Chascar aquí para tomar "¿Qué el super héroe es yo?" incuesta </a><div class="blogger-post-footer">http://omixisc.blogspot.com<img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36502892-275060891812157643?l=omixisc.blogspot.com'/></div>Omar Flores Martinezhttp://www.blogger.com/profile/13610683451731530372noreply@blogger.com0tag:blogger.com,1999:blog-36502892.post-59666175295909350892008-04-16T13:12:00.005-05:002008-04-16T14:02:09.175-05:00Nuevos Plugions para Compiz Fusion ..<div style="text-align: justify;">Leo a traves de <a href="http://fusioncast.blogspot.com/2008/04/episode-iv.html">FusionCast</a> los nuevos plugins que se pueden instalar a este maravilloso proyecto, donde tu escritorio se transforma en una serie de figuras que nunca te habrias imaginado.<br /><br />La verdad mis respetos a los desarrolladores de Compiz-Fusion, es algo q' vale la pena tratar de instalar en tu PC.<br /><br />En este caso debes compilar compiz-fusion desde las fuentes para obtener estos plugins ..<br /></div><br />Aqui el video<br /><center><br /><object height="355" width="425"><param name="movie" value="http://www.youtube.com/v/kKJBPCy2l3g&amp;color1=0x3a3a3a&amp;color2=0x999999&amp;hl=en"><param name="wmode" value="transparent"><embed src="http://www.youtube.com/v/kKJBPCy2l3g&amp;color1=0x3a3a3a&amp;color2=0x999999&amp;hl=en" type="application/x-shockwave-flash" wmode="transparent" height="355" width="425"></embed></object><br /></center><br /><br />Saludos !!!<div class="blogger-post-footer">http://omixisc.blogspot.com<img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36502892-5966617529590935089?l=omixisc.blogspot.com'/></div>Omar Flores Martinezhttp://www.blogger.com/profile/13610683451731530372noreply@blogger.com0tag:blogger.com,1999:blog-36502892.post-76160491117664531472008-04-03T13:15:00.004-06:002008-12-09T01:10:07.487-06:00EasyEclipse<div style="text-align: justify;">Saludos comunidad, esta ocasion les comento q' encontre <a href="http://www.easyeclipse.org/site/home/">EasyEclipse</a>, se trata de una distribución de <a href="http://www.eclipse.org/">Eclipse</a>, el cual es un entorno de desarrollo integrado (IDE), que viene empaquetado conjuntamente con todo lo que necesitas <em></em> para empezar a escribir código fuente en el lenguale que mas utilizas.<br /><br />Tiene distintos plugins útiles para programar en un determinado lenguaje Java, LAMP, PHP, Python o Ruby on Rails. En la misma web también están disponibles <a href="http://www.easyeclipse.org/site/plugins/index.html" title="Plugins para Eclipse">otros plugins</a> que puedes instalar de forma sencilla.<br /></div><br />Ademas EasyEclipse es Open Source<br /><br />Aqui puedes <a href="http://www.easyeclipse.org/site/distributions/index.html">descargar</a> EasyEclipse<br /><br /><span style="font-style: italic;"><br /></span><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_b9fPPb_hp5w/R_UvjYY0a4I/AAAAAAAAADE/kw7h1wFeN4A/s1600-h/easyphp.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_b9fPPb_hp5w/R_UvjYY0a4I/AAAAAAAAADE/kw7h1wFeN4A/s200/easyphp.png" alt="" id="BLOGGER_PHOTO_ID_5185102830875470722" border="0" /></a> Aqui EasyEclipse en un proyecto PHP<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_b9fPPb_hp5w/R_Uu0oY0a3I/AAAAAAAAAC8/rIi5f-_l4Dc/s1600-h/eecli.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_b9fPPb_hp5w/R_Uu0oY0a3I/AAAAAAAAAC8/rIi5f-_l4Dc/s200/eecli.png" alt="" id="BLOGGER_PHOTO_ID_5185102027716586354" border="0" /></a><br /> Splash de EasyEclipse<div class="blogger-post-footer">http://omixisc.blogspot.com<img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36502892-7616049111766453147?l=omixisc.blogspot.com'/></div>Omar Flores Martinezhttp://www.blogger.com/profile/13610683451731530372noreply@blogger.com0tag:blogger.com,1999:blog-36502892.post-35090162464436127172008-02-15T12:44:00.003-06:002008-12-09T01:10:07.607-06:00FrostWireHey !!! para las personas que les encanta bajar musica, videos, pdf's, etc y utilizan programas como Ares, Emule, Shareaza ... encontre a <a href="http://es.wikipedia.org/wiki/FrostWire"><span style="FONT-WEIGHT: bold">FrostWire</span></a> el cual es un cliente p2p de código abierto. Utiliza la red de <a title="Gnutella" href="http://es.wikipedia.org/wiki/Gnutella">Gnutella</a> y se basa en el muy conocido cliente <a title="LimeWire" href="http://es.wikipedia.org/wiki/LimeWire">LimeWire</a>. Está escrito en <a title="Lenguaje de programación Java" href="http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Java">Java</a>. También es compatible con la popular red de <a title="Bittorrent" href="http://es.wikipedia.org/wiki/Bittorrent">Bittorrent</a>. Una de las peculiaridades de este cliente es su rapidez y su disponibilidad en casi todas los <a title="Sistemas operativos" href="http://es.wikipedia.org/wiki/Sistemas_operativos">sistemas operativos</a> con versiones en <a title="Windows" href="http://es.wikipedia.org/wiki/Windows">Windows</a>, <a title="Mac OS" href="http://es.wikipedia.org/wiki/Mac_OS">Mac OS</a> y <a title="GNU/Linux" href="http://es.wikipedia.org/wiki/GNU/Linux">GNU/Linux</a>.<br /><br />Me gusto porque a diferencia de LimeWire, este es 100% libre, y la verdad para utilizar Ares corriendo en Linux emulandolo con Wine, no me agrada mucho la idea. No quiero que despues mi escritorio Linux este lleno de aplicaciones Windows jejeje ;).<br /><br />Los requerimientos para instalarlo solo es el Java Runtime Enviroment (aqui lo puedes descargar ->><a href="http://java.sun.com/j2se/1.4.2/download.html">JRE</a>)<br /><br />Descarga FrostWire de su pagina oficial <a href="http://www.frostwire.com/">aqui</a><br /><br />Aqui les dejo un screen de FrostWire corriendo sobre SlackWare<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_b9fPPb_hp5w/R7XiDyiz8uI/AAAAAAAAAC0/Cn5gj7EvDgY/s1600-h/snapshot1.png"><img id="BLOGGER_PHOTO_ID_5167284702212780770" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: pointer; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_b9fPPb_hp5w/R7XiDyiz8uI/AAAAAAAAAC0/Cn5gj7EvDgY/s200/snapshot1.png" border="0" /></a><div class="blogger-post-footer">http://omixisc.blogspot.com<img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36502892-3509016246443612717?l=omixisc.blogspot.com'/></div>Omar Flores Martinezhttp://www.blogger.com/profile/13610683451731530372noreply@blogger.com0tag:blogger.com,1999:blog-36502892.post-49215820502403961782008-02-11T13:17:00.001-06:002008-05-21T11:47:13.304-05:00Regresando a la BlogsferaHola ;) .. pues despues de un largo tiempo de estar ausente por este mi Blog, les cuento que estoy realizando mi Residencia Profesional en una empresa de Desarrollo de Software InovaWeb IT localizada en la Cd. de Puebla, una de las tareas que me asignaron es el manejo de Capas (layers) con <a href="http://es.wikipedia.org/wiki/Hojas_de_estilo_en_cascada">CSS</a> y <a href="http://es.wikipedia.org/wiki/Javascript">Javascript</a> :S, tambien aprendo mas cosas de Php y Smarty por su puesto todo esto sobre GNU/Linux <span style="FONT-STYLE: italic">Be free!!!</span>.<br /><br />Tambien sigo impartiendo clases de programacion en ICO Plantel Tepeaca (<span style="FONT-STYLE: italic">hay q' chambiarle</span>... ) por cierto ya voy a cumplir 1 año en ese trabajo :).<br /><br />De igual forma aparte de todo esto me cayo una chamba para desarrollar un sistema para Control de Personal, Pagos, Credenciales,etc.. para estas fechas el sistema ya casi esta listo para ser liberado...<br /><br />Como se daran cuenta ahora si ya no ando echando la hueva como antes .. jajaja Ahora si lo que me falta es tiempo jejeje....<br /><br />Bueno pues voy a publicar lo mas pronto posible la informacion acerca de los proyectos mencionados ..<br /><br /><span style="FONT-WEIGHT: bold; FONT-STYLE: italic">Saludos y nos seguimos leyendo ...</span><div class="blogger-post-footer">http://omixisc.blogspot.com<img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36502892-4921582050240396178?l=omixisc.blogspot.com'/></div>Omar Flores Martinezhttp://www.blogger.com/profile/13610683451731530372noreply@blogger.com2tag:blogger.com,1999:blog-36502892.post-84504922116429215202007-10-05T22:12:00.001-05:002008-05-21T11:47:46.620-05:00Creando un blog con CakePhp<div style="TEXT-ALIGN: justify">Saludos lectores, esta ocasion escribire acerca de como crear un blog con CakePhp, este ejemplo lo tome del sitio oficial de <a href="http://manual.cakephp.org/appendix/blog_tutorial">cakephp</a> este ejemplo constara de las siguientes operaciones:<br /></div><ul style="TEXT-ALIGN: left"><li>Consulta de Articulos</li><li>Agregar nuevos Articulos</li><li>Modificar Articulo</li><li>Eliminar Articulo</li></ul><div style="TEXT-ALIGN: justify">Tratare de ser lo mas explicito posible<br /><br />En primer lugar debemos crear nuestra tabla posts en Mysql:<br /></div><code><br />CREATE TABLE posts (<br />id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,<br />title VARCHAR(50),<br />body TEXT,<br />created DATETIME DEFAULT NULL,<br />modified DATETIME DEFAULT NULL<br />);<br /><br /><br />INSERT INTO posts (title,body,created)<br />VALUES ('Primer Post', 'Este es el cuerpo del primer post.', NOW());<br />INSERT INTO posts (title,body,created)<br />VALUES ('Segundo Post', 'Este es el cuerpo del segundo post.', NOW());<br />INSERT INTO posts (title,body,created)<br />VALUES ('Tercer Post', 'Este es el cuerpo del tercer post.', NOW());<br /></code><br /><div style="TEXT-ALIGN: justify">Ahora configuremos nuestra base de datos en cake, debemos abrir el archivo <span style="FONT-WEIGHT: bold">database.php</span> que se encuentra en <span style="FONT-WEIGHT: bold">/app/config/database.php </span><br /></div><code><br />var $default = array('driver' => 'mysql',<br />'connect' => 'mysql_connect',<br />'host' => 'localhost',<br />'login' => 'Tu_login',<br />'password' => 'Tu_password',<br />'database' => 'cake' );<br /><br /></code><div style="TEXT-ALIGN: left">Ahora crearemos nuestro Modelo Post<br /></div><code><br />< ? php class Post extends AppModel { var $name = 'Post'; var $validate = array( 'title' => VALID_NOT_EMPTY,<br />'body' => VALID_NOT_EMPTY<br />);<br />}<br />? ><br /></code><br /><div style="TEXT-ALIGN: justify">Aqui ponemos al array <span style="FONT-WEIGHT: bold">validate</span> para asegurarnos q' a la hora q' se este ingresando un articulo los campos title y body no queden vacios.<br />Mediante la creación de un modelo es que se puede interactuar con la base de datos, con él se tiene las fundaciones para hacer las operaciones de ver, agregar, editar y eliminar.<br />Los modelos en CakePhp los debemos colocar en <span style="FONT-WEIGHT: bold">/app/models</span>, en este caso el archivo que estamos creando es <span style="FONT-WEIGHT: bold">/app/models/post.php</span><br /></div><br /><div style="TEXT-ALIGN: left">Ahora pasamos a crear el Controlador<br /></div><code><br /><? php class PostsController extends AppController { var $name = 'Posts'; function index() { $total_rows = $this->Post->findCount();<br />$conditions = array("id"=>"> 0");<br />$fields = array("id", "title", "body", "created");<br />$order = "Post.id DESC";<br />$limit = 10;<br />$this->set('pagination', $total_rows);<br />$this->pageTitle='Pagina Inicial';<br />$this->set('posts', $this->Post->findAll($conditions, $fields, $order, $limit));<br />}<br />function view($id)<br />{<br />$this->pageTitle='Articulos';<br />$this->Post->id = $id;<br />$this->set('post', $this->Post->read());<br />}<br />function add()<br />{<br />$this->pageTitle='Agregar Post';<br />if (!empty($this->data))<br />{<br />if ($this->Post->save($this->data))<br />{<br />$this->flash('Your post has been saved.','/posts');<br />}<br />}<br />}<br />function delete($id)<br />{<br />$this->pageTitle='Borrar Articulo';<br />$this->Post->del($id);<br />$this->flash('The post with id: '.$id.' has been deleted.', '/posts');<br />}<br />function edit($id = null)<br />{<br />if (empty($this->data))<br />{<br />$this->Post->id = $id;<br />$this->data = $this->Post->read();<br />}<br />else<br />{<br />if ($this->Post->save($this->data['Post']))<br />{<br />$this->flash('Your post has been updated.','/posts');<br />}<br />}<br />}<br />}<br />? ><br /></code><br /><div style="TEXT-ALIGN: justify">El controlador es en donde se ejecutará toda la lógica de interacción con los posts. Debemos colocar este nuevo controlador en un archivo llamada posts_controller.php dentro del directorio <span style="FONT-WEIGHT: bold">/app/controllers</span><br /></div><br /><div style="TEXT-ALIGN: justify">Dentro de nuestro controlador colocaremos todos los metodos necesarios para realizar nuestras operaciones en este caso el metodo index lo observaremos cunado el cliente coloque esta URL www.example.com/posts/index esto quiere decir que hay un controlador "posts", el cual posee un método (o función) "index".<br /></div><br /><div style="TEXT-ALIGN: justify">Ahora que ya hemos conectado nuestra base de datos con el modelo y que la lógica ha sido definida en el controlador, vamos a crear una vista para el metodo index.<br />Las vistas de Cake deben ser colocadas en el directorio <span style="FONT-WEIGHT: bold">/app/views</span> cada una dentro de un directorio llamado de acuerdo al controlador al que pertenecen (en este caso tendremos que crear un directorio llamado "posts" asi <span style="FONT-WEIGHT: bold">/app/views/posts/index.thtml</span><br /></div><br /><code><br />&lt;h1&gt; Blog posts &lt;/h1&gt;<br /><br /><br />&lt;div id="cuerpo"&gt;<br /><br /><br />< ? php foreach ($posts as $post): echo $post['Post']['id']; ? ><br />&lt;div class="titulo"&gt;<br />&lt;h1&gt;<br />< ? php echo 'Titulo:'; echo $post['Post']['title']; echo '&lt;a href="/posts/add"&gt; Agregar Articulo &lt;/a&gt;'; ? ><br /><br />< ? php echo $html->link('Borrar',"/posts/delete/{$post['Post']['id']}",null,'Seguro?')?><br />< ? php echo $html->link('Editar', '/posts/edit/'.$post['Post']['id']);?><br />&lt;/h1&gt;<br /><br />&lt;h3&gt;<br />< ? php echo 'Creacion: '; echo $post['Post']['created']; ?><br />&lt;/h3 &gt;<br />&lt;/div&gt;<br /><br />&lt;div class="arti"&gt;<br />&lt;h4&gt;<br /><? php echo $post['Post']['body']; ?><br />&lt;/h4&gt;<br />&lt;/div&gt;<br /><? php endforeach; ?><br /><? php echo 'Articulos Publicados '. $pagination; ?><br />&lt;/div&gt;<br /></code><br />Esta es la vista para agregar un Articulo:<br />/app/views/posts/add.thtml<br /><br /><code><br />&lt;h1&gt; Agregar Articulo &lt;/h1&gt;<br />&lt;form method="post" action="url('/posts/add')?>"&gt;<br />&lt;p&gt;<br />Titulo:<br />input('Post/title', array('size' => '40'))?><br />tagErrorMsg('Post/title', 'Title is required.') ?><br />&lt;/p&gt;<br />&lt;p&gt;<br />Cuerpo del Articulo:<br />textarea('Post/body', array('rows'=>'10')) ?><br />tagErrorMsg('Post/body', 'Body is required.') ?><br />&lt;/p&gt;<br />&lt;p&gt;<br />submit('Guardar post') ?><br />&lt;/p&gt;<br />&lt;/form&gt;<br /></code><br /><br />Esta la vista para editar un Articulo:<br />/app/views/posts/edit.thtml<br /><br /><code><br />&lt;h1&gt; Editar Articulo &lt;/h1&gt;<br />&lt; form method="post" action="url('/posts/edit')?>" &gt;<br />hidden('Post/id'); ?><br />&lt;p&gt;<br />Title:<br />input('Post/title', array('size' => '40'))?><br />tagErrorMsg('Post/title', 'Title is required.') ?><br />&lt;/p&gt;<br />&lt; p &gt;<br />Body:<br />textarea('Post/body', array('rows'=>'10')) ?><br />tagErrorMsg('Post/body', 'Body is required.') ?><br />&lt;/p&gt;<br />&lt;p&gt;<br />submit('Actualizar') ?><br />&lt;/p&gt;<br />&lt; /form&gt;<br /></code><br />Aqui les dejo el archivo .css que utilice para este ejemplo, este lo debemos colocar dentro del directorio /app/webroot/css/ y nombrarlo "cake.generic.css"<br /><br /><code><br />*{<br />margin:0;<br />padding:0;<br />}<br />body{<br />font-family:"frutiger linotype","lucida grande",helvetica,arial,sans-serif;<br />text-align:center;<br />color:#333;<br />font-size: 76%;<br />}<br />/* General Style Info */<br />a{<br />color:#003d4c;<br />text-decoration:underline;<br />}<br />a:hover{<br />color:#003d4c;<br />text-decoration:none;<br />}<br />a img{<br />border:none;<br />}<br />h1, h2, h3, h4{<br />font-weight:normal;<br />}<br />h1{<br />color: #003d4c;<br />margin:2px ;<br />font-size: 140%;<br />}<br />h2{<br />color:#c6c65b;<br />padding-top: 1em;<br />margin:0.3em 0;<br />font-size: 180%;<br />}<br />h3{<br />color:#003d4c;<br />padding-top:2px;<br />font-size: 120%;<br />}<br />h4{<br />color:#660000;<br />padding-top:0.5em;<br />font-size:120%;<br />}<br /><br />ul, li {<br />margin: 0 12px 0 0;<br />padding-top: 2px;<br />}<br />#cuerpo{<br />color: black;<br />padding :10px 10px 10px 10px ;<br />border: 1px dotted #000000;<br />font-size: 80%;<br />}<br />.titulo{<br />color: black;<br />padding :10px 10px 10px 10px ;<br />border-top: 2px dotted orange;<br />font-size: 100%;<br />}<br />.arti{<br />color: #002e4d;<br />padding :20px 10px 50px 10px ;<br />font-size: 100%;<br />}<br />/* Layout */<br />#container{<br />text-align:justify;<br />border: 2px solid #000000;<br />margin: 10px 10px 10px 10px;<br />}<br />#header{<br />background-color:orange;<br />margin: 10px 10px 10px 10px ;<br />padding: 4px 20px;<br />border: 2px solid #666666;<br />}<br />#content{<br />/*clear:both;*/<br />padding: 00px 40px 10px 40px;<br />background-color: #eee;<br />color: #333;<br />border: 1px dotted #333333;<br />margin: 10px 10px 10px 10px;<br />width:680px;<br />}<br />#sidebar{<br />clear:both;<br />float:right;<br />padding: 10px 40px 10px 40px;<br />background-color: #eee;<br />color: #333;<br />border: 1px dotted #333333;<br />margin: auto 10px auto;<br />width:100px;<br />}<br />#footer{<br />clear:both;<br />padding: 6px 10px;<br />background-color:orange;<br />text-align: right;<br />border: 2px solid #999999;<br />margin: 10px 10px 10px 10px;/* n1=arriba n2=der n3=abajo n4=izq*/<br />}<br />/* forms */<br />form {<br />margin-top: 2em;<br />}<br />form div{<br />vertical-align: text-top;<br />margin-left: 1em;<br />margin-bottom:2em;<br />}<br />form div.date{<br />margin-left: 0em;<br />}<br />label {<br />display: block;<br />width: 140px;<br />font-size: 14px;<br />padding-right: 20px;<br />}<br />input[type=checkbox] {<br />float: left;<br />clear: left;<br />margin: 2px 6px 7px 2px;<br />}<br />input, textarea {<br />clear: both;<br />display:block;<br />font-size: 14px;<br />font-family: inherit;<br />}<br />select {<br />clear: both;<br />vertical-align: text-bottom;<br />font-size: 14px;<br />font-family: inherit;<br />}<br />option {<br />font-size: 14px;<br />font-family: inherit;<br />padding: 0 0.3em;<br />}<br />input[type=submit] {<br />display: inline;<br />vertical-align: bottom;<br />}<br />div.required {<br />clear: both;<br />color:#222;<br />font-weight:bold;<br />}<br /><br />div.submit {<br />clear: both;<br />margin-top: 40px;<br />margin-left: 140px;<br />}<br /></code><br /><br />Debemos colocar un layout para mostrar nuestras vistas en /app/views/layouts/default.thtml<br /><code><br /><?xml version="1.0" encoding="UTF-8"?><br /><br />&lt; html &gt;<br />&lt; head &gt;<br /><br />&lt; title &gt; Mi sitio :: < ? php echo $title_for_layout; ?> &lt; /title &gt;<br />&lt; /head &gt;<br /><br />&lt; body &gt;<br /><br />< ? php echo $content_for_layout ?><br /><br />&lt;/body &gt;<br />&lt; /html &gt;<br /></code><br />Ok pues espero sea de su agrado este ejemplo, mas adelante escribire algunos otros donde aremos uso de los helpers de Ajax<div class="blogger-post-footer">http://omixisc.blogspot.com<img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36502892-8450492211642921520?l=omixisc.blogspot.com'/></div>Omar Flores Martinezhttp://www.blogger.com/profile/13610683451731530372noreply@blogger.com0tag:blogger.com,1999:blog-36502892.post-86075633707102496782007-09-20T23:27:00.001-05:002008-12-09T01:10:07.831-06:00Python + Gtk = PyGtkHola !!! esta ocasion tratare de explicar un poco acerca de como podemos crear una aplicacion de ventana con gtk y python. Para instalar esta libreria debemos acerlo de la siguiente forma:<br /><br /><code><span style="FONT-WEIGHT: bold; FONT-STYLE: italic">apt-get install python-gtk2</span></code><br />Ahora debemos escribir el siguiente codigo en nuestro editor de textos favorito,<br /><code><br /><span style="FONT-WEIGHT: bold; FONT-STYLE: italic">$nano pygtk1.py</span><br /></code><br /><code><br />#!/usr/bin/env python<br /><br />#Importamos a las librerias con las q' trabajaremos<br />import pygtk<br />pygtk.require('2.0')<br />import gtk<br /><br />#Creamos nuestra ventana Principal<br />window = gtk.Window()<br />window = gtk.Window(gtk.WINDOW_TOPLEVEL)<br />window.connect("delete-event", gtk.main_quit)<br />window.set_title("Primeros pasos con GTK")<br />window.set_default_size(450,250)<br /><br />#Creamos un objeto layout para colocar nuestros widgets<br /><br />lay = gtk.Layout(None,None)<br />lay.set_size(440,240)<br /><br />#Creamos nuestros botones<br />b1 = gtk.Button(stock=gtk.STOCK_OK)<br />b2 = gtk.Button(stock=gtk.STOCK_CLEAR)<br /><br />nombre = gtk.Label("Escribe tu nombre: ")<br />datos = gtk.Label("")<br /><br />entry = gtk.Entry(max=30)<br />lay.put(nombre,50,50)<br />lay.put(entry,180,50)<br />lay.put(b1,170,100)<br />lay.put(b2,260,100)<br />lay.put(datos,200,180)<br /><br />#Definimos nuestras funciones que haran caso a las llamadas de los botones<br /><br />def on_b1_clicked(b1):<br />text=entry.get_text()<br />datos.set_text("Saludos " + text + " Bienvenido a PyGtk ")<br /><br />def on_b2_clicked(b2):<br />entry.set_text("")<br />datos.set_text("")<br /><br />#Añadimos las señales a la accion clicked de los botones<br />b1.connect("clicked", on_b1_clicked)<br />b2.connect("clicked", on_b2_clicked)<br /><br />#Agregamos nuestro objeto contendor a la ventana<br /><br />window.add(lay)<br />window.show_all()<br />gtk.main()<br /></code><br />Ahora ejecutamos nuestro programa asi:<br /><code><br /><span style="FONT-WEIGHT: bold; FONT-STYLE: italic">$python pygtk1.py</span><br /></code><br />Aqui puedes encontrar mas informacion <a href="http://www.pygtk.org/pygtk2tutorial-es/index.html">tutorial de Pygtk</a><br />Mas o menos asi les debe quedar<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_b9fPPb_hp5w/RvNNMbCozsI/AAAAAAAAACQ/ny1wNd88dho/s1600-h/gtk.png"><img id="BLOGGER_PHOTO_ID_5112514877808234178" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: pointer; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_b9fPPb_hp5w/RvNNMbCozsI/AAAAAAAAACQ/ny1wNd88dho/s200/gtk.png" border="0" /></a><br />Bueno espero sea de su agrado este sencillo ejemplo, tratare de ser mas explicito en las siguientes entradas ..<br /><br />Happy coding !!!<div class="blogger-post-footer">http://omixisc.blogspot.com<img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36502892-8607563370710249678?l=omixisc.blogspot.com'/></div>Omar Flores Martinezhttp://www.blogger.com/profile/13610683451731530372noreply@blogger.com2tag:blogger.com,1999:blog-36502892.post-47386337815784074642007-09-17T21:56:00.001-05:002008-12-09T01:10:08.183-06:00Primeros pasos con CakePhp<div style="TEXT-ALIGN: justify">Hola comunidad, pues despues de un largo rato de estar macheteandole a la documentacion de <a href="http://manual.cakephp.org/">CakePhp</a>, por fin me anime a escribir un poco acerca de la agotada configuracion que hay que hacerle a este framework :D, aqui les comparto mi experiencia:<br /></div><br /><div style="TEXT-ALIGN: justify">Cakephp implementa el patron de diseño <b>Modelo Vista Controlador (MVC)</b> que es un patrón de arquitectura de software que separa los <a title="Datos" href="http://es.wikipedia.org/wiki/Datos">datos</a> de una aplicación, la <a title="Interfaz de usuario" href="http://es.wikipedia.org/wiki/Interfaz_de_usuario">interfaz de usuario</a>, y la <a title="Lógica de control" href="http://es.wikipedia.org/wiki/L%C3%B3gica_de_control">lógica de control</a> en tres <a class="new" title="Componentes" href="http://es.wikipedia.org/w/index.php?title=Componentes&amp;action=edit">componentes</a> distintos. El patrón MVC se ve frecuentemente en aplicaciones <a title="Web" href="http://es.wikipedia.org/wiki/Web">web</a>, donde la vista es la página <a title="HTML" href="http://es.wikipedia.org/wiki/HTML">HTML</a> y el código que provee de datos dinámicos a la página, el controlador es el <a title="Sistema de gestión de base de datos" href="http://es.wikipedia.org/wiki/Sistema_de_gesti%C3%B3n_de_base_de_datos">Sistema de Gestión de Base de Datos</a> y el modelo es el modelo de datos. </div><ul><li><b>Modelo</b>: Esta es la representación específica de la información con la cual el sistema opera. La lógica de datos asegura la integridad de estos y permite derivar nuevos datos; por ejemplo, no permitiendo comprar un número de unidades negativo, calculando si hoy es el cumpleaños del usuario o los totales, impuestos o portes en un carrito de la compra.</li><li><b>Vista</b>: Este presenta el modelo en un formato adecuado para interactuar, usualmente la <a title="Interfaz de usuario" href="http://es.wikipedia.org/wiki/Interfaz_de_usuario">interfaz de usuario</a>.</li><li><b>Controlador</b>: Este responde a eventos, usualmente acciones del usuario e invoca cambios en el modelo y probablemente en la vista</li></ul>Aqui se observa el funcionamiento del patron MVC<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_b9fPPb_hp5w/Ru9Hkt6SdvI/AAAAAAAAACA/GjJbOVvMrF8/s1600-h/process.gif"><img id="BLOGGER_PHOTO_ID_5111382798213740274" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: pointer; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_b9fPPb_hp5w/Ru9Hkt6SdvI/AAAAAAAAACA/GjJbOVvMrF8/s200/process.gif" border="0" /></a>Bueno ahora vamos a la parte practica..<br /><br /><div style="TEXT-ALIGN: justify">Nos descargamos la version estable de Cakephp (<a href="http://cakeforge.org/frs/download.php/502/cake_1.1.17.5612.tar.gz">aqui el link</a>) y la guardamos en nuestro ruta de <span style="FONT-WEIGHT: bold; FONT-STYLE: italic">DocumentRoot</span><br /><br />En Debian la ruta para almacenar nuestras paginas es <span style="FONT-WEIGHT: bold; FONT-STYLE: italic">/var/www/ </span>(si has cambiado la ruta por default ahi coloca la bola .tar.gz), descomprimimos el archivo y lo renombramos como <span style="FONT-WEIGHT: bold; FONT-STYLE: italic">cake. </span><span style="font-size:+0;">Dentro de cake debemos tener los siguientes directorios: <span style="FONT-WEIGHT: bold; FONT-STYLE: italic">app/ cake/ docs/ index.php vendors/</span></span><br /></div><br /><div style="TEXT-ALIGN: justify">Tambien edita el archivo <span style="FONT-WEIGHT: bold; FONT-STYLE: italic">default</span> que esta en <span style="FONT-WEIGHT: bold; FONT-STYLE: italic">sites-available </span>dentro de la carpeta de apache2 y edita la linea DocumentRoot asi:<br /></div><br /><span style="FONT-WEIGHT: bold; FONT-STYLE: italic">DocumentRoot /var/www/cake/app/webroot/</span><br /><br /><div style="TEXT-ALIGN: justify">Para todo esto debemos tener instalado LAMP en nuestro sistema, ahora creamos una base de datos en Mysql llamada <span style="FONT-WEIGHT: bold; FONT-STYLE: italic">cake</span>. Bien solo nos falta modificar un archivo llamado <span style="FONT-WEIGHT: bold; FONT-STYLE: italic">database.php.default</span> que esta dentro de <span style="FONT-WEIGHT: bold; FONT-STYLE: italic">app/config/</span> lo abrimos y lo editamos asi:<br /></div><br /><code><br /><br />< ? php class DATABASE_CONFIG { var $default = array('driver' => 'mysql',<br />'connect' => 'mysql_connect',<br />'host' => 'localhost',<br />'login' => 'root',<br />'password' => '',<br />'database' => 'cake',<br />'prefix' => '');<br />}<br />?><br /><br /></code><br /><div style="TEXT-ALIGN: justify"><span style="font-size:100%;">Donde en el elemento database pondremos el nombre de nuestra base de datos, y lo guardamos con el nombre de <span style="FONT-WEIGHT: bold; FONT-STYLE: italic">database.php </span>Ahora solo nos queda checar en el navegador si ya funciona nuestro framework solo colocamos <span style="FONT-WEIGHT: bold; FONT-STYLE: italic">http://localhost</span> y debemos observar algo similar a esto:</span><br /></div><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_b9fPPb_hp5w/Ru9UBd6SdwI/AAAAAAAAACI/bhbcP4bT7Og/s1600-h/Fcake.png"><img id="BLOGGER_PHOTO_ID_5111396486274512642" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: pointer; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_b9fPPb_hp5w/Ru9UBd6SdwI/AAAAAAAAACI/bhbcP4bT7Og/s200/Fcake.png" border="0" /></a><br /><br />Nos vemos en la proxima entrada con un ejemplo mas con Cakephp... Happy Coding !!!<div class="blogger-post-footer">http://omixisc.blogspot.com<img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36502892-4738633781578407464?l=omixisc.blogspot.com'/></div>Omar Flores Martinezhttp://www.blogger.com/profile/13610683451731530372noreply@blogger.com0