tag:blogger.com,1999:blog-185511622024-03-07T15:12:17.439-06:00Blog de Carlos GConjuros para el hackerismo y otras deidades...Carlos Ghttp://www.blogger.com/profile/09121978431155592667noreply@blogger.comBlogger64125tag:blogger.com,1999:blog-18551162.post-13031170474205426052023-04-18T19:04:00.003-06:002023-04-18T19:04:45.894-06:00Desarrollo de aplicaciones web más fácil y rápido con CodeIgniter<p>Si eres un desarrollador web, probablemente estés buscando una manera más fácil y rápida de crear aplicaciones web. CodeIgniter es un framework de PHP que te puede ayudar a lograrlo. En este post, te explicaremos qué es CodeIgniter y por qué deberías considerar usarlo para tus proyectos.</p>
<p><span style="color: #2b00fe;"><br /><b>¿Qué es CodeIgniter?</b></span></p>
<p>CodeIgniter es un framework de PHP que se utiliza para el desarrollo de aplicaciones web. Fue desarrollado por EllisLab, pero ahora es mantenido por la comunidad de desarrolladores de CodeIgniter. Es un framework ligero, rápido y fácil de usar, que te permite escribir código de manera más eficiente y rápida.</p>
<p><br /><b><span style="color: #2b00fe;">¿Por qué deberías usar CodeIgniter?</span></b></p>
<p>Hay varias razones por las que deberías considerar usar CodeIgniter para tus proyectos de desarrollo web:</p>
<p><br />1. Es fácil de aprender</p>
<p>CodeIgniter es un framework muy fácil de aprender y usar. Tiene una documentación detallada y una comunidad activa de desarrolladores que pueden ayudarte a resolver cualquier problema que tengas. Si ya sabes PHP, no deberías tener problemas para empezar a trabajar con CodeIgniter.</p>
<p>2. Es rápido</p>
<p>CodeIgniter es un framework muy rápido. Utiliza una arquitectura MVC (Modelo-Vista-Controlador) que te permite separar la lógica de tu aplicación de la presentación. Esto hace que la aplicación sea más rápida y fácil de mantener.</p>
<p><br />3. Es seguro</p>
<p>CodeIgniter tiene muchas características de seguridad integradas, como la protección contra ataques CSRF (Cross-Site Request Forgery) y la validación de formularios. Esto hace que sea más fácil y seguro desarrollar aplicaciones web con CodeIgniter.</p>
<p><br />4. Es escalable</p>
<p>CodeIgniter es un framework muy escalable. Te permite agregar nuevas funcionalidades a tu aplicación sin tener que hacer grandes cambios en el código existente. Esto hace que sea más fácil escalar tu aplicación a medida que tu negocio crece.</p>
<p><br /><b><span style="color: #2b00fe;">Conclusión</span></b></p>
<p>Si estás buscando una manera más fácil y rápida de desarrollar aplicaciones web, CodeIgniter es una excelente opción. Es fácil de aprender, rápido, seguro y escalable, lo que lo convierte en un framework de PHP muy popular entre los desarrolladores web. Prueba CodeIgniter en tu próximo proyecto y experimenta por ti mismo lo fácil y eficiente que puede ser el desarrollo web.</p><div class="blogger-post-footer">http://cgarcia.blogspot.com</div>Carlos Ghttp://www.blogger.com/profile/09121978431155592667noreply@blogger.com0tag:blogger.com,1999:blog-18551162.post-78402920235715479012013-12-10T18:06:00.001-06:002013-12-10T18:06:20.436-06:00Usar la instancia de Codeigniter desde nuestras propias clases automáticamenteUn inconveniente que tiene CodeIgniter es que no se puede acceder de manera tradicional a los recursos del framework desde nuestras propias clases, tal como lo haríamos desde un controlador o bien un modelo.<br />
<br />
Generalmente tenemos que hacer algo como: <i>$CI = &get_instance();</i> para después usar ese objeto en la forma: <i>$CI->db->get(); </i>lo cual pues no se ve tan bien, como cuando hacemos las llamadas al puro estilo de CodeIgniter.<br />
<br />
Para resolver esto (si es que contamos con la versión de PHP 5.0 o superior), podemos utilizar el método mágico <i>__get()</i> para poder incluir las funcionalidades de la instancia de CodeIgniter en nuestra propia clase de manera transparente, del siguiente modo:<br />
<script src="https://gist.github.com/cgarciagl/7902502.js"></script>
<br />
Solo hay que agregar este método en nuestra clase y ya podremos hacer llamadas a las diferentes funciones de CodeIgniter de manera tradicional, como <i>$this->load->view()</i> ó <i>$this->db->get() </i><br />
<i><br /></i>
Los métodos mágicos en PHP son una gran herramienta y te invito a que los descubras y te enteres de la clase de cosas que pueden hacer por ti... por algo son "mágicos" =:-)<div class="blogger-post-footer">http://cgarcia.blogspot.com</div>Carlos Ghttp://www.blogger.com/profile/09121978431155592667noreply@blogger.com1tag:blogger.com,1999:blog-18551162.post-91913848288806089142012-09-18T13:25:00.001-05:002012-09-18T17:44:48.574-05:00Redirigir por JQuery usando el método POSTMe hice esta función de Javascript que usa JQuery para resolverme yo mismo un problema y espero que le sea de utilidad a alguien mas.<br />
<br />
Es muy común necesitar redirigir al usuario por javascript desde nuestro sitio web a otra página, lo cual es muy simple de hacer simplemente cambiando la propiedad <b>window.location.href</b> o bien abriendo una nueva pestaña en el navegador con la función <b>window.open()</b><br />
<br />
El problema está en si lo que se desea es redirigir el navegador a otra dirección web y además incluir en esa solicitud variables que viajen por el método POST, esto suele ser necesario cuando se consume alguna API, se desea autenticar automáticamente al usuario en algún sitio enviando sus credenciales, se desea consumir un servicio REST "<i>especial</i>", o simplemente enviar a una nueva página información que no sea visible en la dirección URL. Esta al parecer es una duda muy común en el sitio de stackoverflow y a menudo se confunde el problema con una solicitud AJAX (lo cual es muy simple de resolver usando JQuery), pero en este caso se requiere redirigir al usuario a otra página, no cargar contenido en segundo plano.<br />
<br />
La función <span style="background-color: white; color: #333333; font-family: Monaco, Courier, monospace; font-size: 11px; white-space: pre-wrap;">redirect_by_post</span><span class="br0" style="color: #444444; font-family: Monaco, Courier, monospace; font-size: 11px; white-space: pre-wrap;">(</span><span style="background-color: white; color: #333333; font-family: Monaco, Courier, monospace; font-size: 11px; white-space: pre-wrap;">purl</span><span class="sy0" style="color: #444444; font-family: Monaco, Courier, monospace; font-size: 11px; white-space: pre-wrap;">,</span><span style="background-color: white; color: #333333; font-family: Monaco, Courier, monospace; font-size: 11px; white-space: pre-wrap;"> pparameters</span><span class="sy0" style="color: #444444; font-family: Monaco, Courier, monospace; font-size: 11px; white-space: pre-wrap;">,</span><span style="background-color: white; color: #333333; font-family: Monaco, Courier, monospace; font-size: 11px; white-space: pre-wrap;"> in_new_tab</span><span class="br0" style="color: #444444; font-family: Monaco, Courier, monospace; font-size: 11px; white-space: pre-wrap;">) </span> recibe 3 parámetros muy sencillos, el primero es una cadena con la dirección url de la página a abrir, el segundo es un objeto javascript con las variables a enviar, y el tercero es un valor booleano que de ser verdadero indica que se desea abrir la página en una nueva pestaña del navegador y en caso de ser un valor falso se abre en la misma pestaña activa.<br />
<br />
Se puede ver un ejemplo de su uso aquí:<br />
<iframe allowfullscreen="allowfullscreen" frameborder="0" src="http://jsfiddle.net/cgarciagl/KU4B6/embedded/" style="height: 300px; width: 100%;"></iframe>
<br />
<br />
La función simplemente crea un formulario dentro del cuerpo de la página; lo inicializa para que trabaje tal como se le ha indicado a la función que debe comportarse, y una vez enviado el formulario lo elimina del DOM, esto permite trabajar dinámicamente el número de variables a enviar y funciona bien con los principales navegadores.<br />
<br />
Si le hacen alguna mejora a esta función pueden postearla en el <a href="https://gist.github.com/3744034" target="_blank">repositorio de GitHub</a> donde está alojada.<br />
<br />
Un saludo y espero les sirva <b> =:-)</b><div class="blogger-post-footer">http://cgarcia.blogspot.com</div>Carlos Ghttp://www.blogger.com/profile/09121978431155592667noreply@blogger.com12tag:blogger.com,1999:blog-18551162.post-28605546203664849012012-05-04T12:39:00.000-05:002012-05-04T12:39:45.021-05:00Como ha cambiado la educación en la era digitalEl día de ayer veía la transmisión semanal del sitio de <a href="http://mejorando.la/" target="_blank">mejorando.la</a>, y en la parte final de <a href="http://www.youtube.com/watch?v=P4R-3wbSx9o&feature=g-all-u" target="_blank">este show</a> se hablaba de como ha cambiado la educación en los tiempos modernos, con la disposición de sitios como la wikipedia favoreciendo la formación de los estudiantes de ahora.<br />
<br />
Esto me recuerda una vieja anécdota de cuando estudiaba el sexto grado de primaria en un modesto municipio del estado de Chiapas:<br />
<br />
Estando un día en clase, leíamos conjuntamente y en voz alta por turnos, una lección del libro de lecturas proporcionado por la secretaría de educación pública para los estudiantes de sexto grado.<br />
<br />
Esta lección trataba de un escrito que hacía un niño que decía vivir en un lugar llamado "<i>Kenya</i>"; y ahí se suscitó el primer debate, ya que el maestro, no sabía a ciencia cierta si dicha palabra se debía leer como "Ken-ia" o como "Ken-lla"... el caso es que en un momento de la clase parecíamos resignados a quedarnos con esa interrogante y bueno, podíamos vivir con esa duda de cualquier modo, (ninguno de mis compañeros planeaba viajar para ese país en esos tiempos).<br />
<br />
Pero más adelante en esa misma lectura el niño relataba que vivía "<i>a la sombra del kilimanjaro</i>", y pues no faltó la inocente alma que preguntó:<br />
<br />
<blockquote class="tr_bq">
<i><b>Maestro, ¿Qué es el Kilimanjaro?</b></i></blockquote>
El maestro peló tamaños ojotes y tuvo que admitir que no tenía ni la más pálida idea de que demonios era eso... no sabía si era un árbol o edificio, o algún otro artefacto que diera sombra; así que como es costumbre de los maestros, pues se quedó de tarea investigar cada quien por su cuenta que era el famoso <i>Kilimanjaro;...</i> en aquellos tiempos mi único material de consulta era un muy humilde diccionario donde no figuraba la palabreja, así que tuve que ir a la biblioteca municipal y hurgar entre montones de libros sin ningún éxito; incluso organizamos una excursión colectiva a los diferentes acervos académicos de nuestro pueblo, pero en ninguno de ellos había una referencia clara sobre que era lo que significaba esa palabreja, y al terminar el año escolar aún no habíamos aclarado esa duda.<br />
<br />
<h3>
Pero hoy en día...</h3>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://upload.wikimedia.org/wikipedia/commons/8/8c/Wikipedia-logo-v2-es.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://upload.wikimedia.org/wikipedia/commons/8/8c/Wikipedia-logo-v2-es.png" /></a></div>
El día de hoy en cuestión de minutos se pueden responder inquietudes como esta y con un esfuerzo mínimo, con solo poner en el buscador de Google la palabreja se pueden encontrar miles de referencias, fotografías, videos, visitas virtuales al lugar, etc!, hoy un niño de la edad que yo tenía en aquel entonces, puede resolver en unos segundos la duda que a mi me aquejó por varios meses; y pasar a lo que sigue y preguntarse cosas aún más complejas como "<i>¿Como se llamaba la mama de <a href="http://es.wikipedia.org/wiki/Grigori_Rasput%C3%ADn" target="_blank">Rasputín</a>?</i>" y contestarse el solo en unos minutos.<br />
<br />
Para mí que me ha tocado vivir esa transición y esta revolución de la información, de verdad que no dejo de sorprenderme día con día...<br />
<br />
¿Alguien más tiene una anécdota parecida?<div class="blogger-post-footer">http://cgarcia.blogspot.com</div>Carlos Ghttp://www.blogger.com/profile/09121978431155592667noreply@blogger.com4Xalapa Enríquez, VER, México19.5426237 -96.913744119.4827677 -96.9927081 19.6024797 -96.8347801tag:blogger.com,1999:blog-18551162.post-63310076403768940942012-04-24T21:52:00.003-05:002012-05-04T09:58:33.365-05:00Estaré en la CONISOFT 2012<a href="http://liim.izt.uam.mx/amis/conisoft2012/" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;" target="_blank"><img border="0" height="125" src="http://liim.izt.uam.mx/amis/conisoft2012/sites/default/files/banner/1.jpg" width="400" /></a>Del miércoles 25 al sábado 28 de abril, estaré en Guadalajara, Jalisco en el evento de <a href="http://liim.izt.uam.mx/amis/conisoft2012/" target="_blank">Conisoft 2012</a>.<br />
<br />
Estaré presentando un proyecto personal muy, muy interesante que espero que se llegue a convertir en algo realmente grande.<br />
<br />
Por si alguien quiere pasar a saludar, platicar, o enterarse de este proyecto, por allá nos vemos!!<div class="blogger-post-footer">http://cgarcia.blogspot.com</div>Carlos Ghttp://www.blogger.com/profile/09121978431155592667noreply@blogger.com2tag:blogger.com,1999:blog-18551162.post-15360987328394908492012-04-03T17:50:00.000-05:002012-04-03T17:50:56.839-05:00Mis proyectos en GitHubEstoy migrando algunos proyectos nuevos y no tan nuevos a la plataforma de GitHub para compartirlos con la comunidad de desarrolladores, para que vean de que clase de proyectos estoy compartiendo aquí tienen un pantallazo de uno de ellos:
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEishlEyCAPsMmrXxcJhbFzpfiVEzlFPllQSBqUVPvJHS4qgrc0Ua-A6OwOHWMRI4KuEkvI-3tiZaEgQstQ5FOzesegqshYA_xjQC5Ot2xV_WYS0vACQbF4lL_t2MbV_BUC67OyU/s1600/screen.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="301" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEishlEyCAPsMmrXxcJhbFzpfiVEzlFPllQSBqUVPvJHS4qgrc0Ua-A6OwOHWMRI4KuEkvI-3tiZaEgQstQ5FOzesegqshYA_xjQC5Ot2xV_WYS0vACQbF4lL_t2MbV_BUC67OyU/s400/screen.png" width="400" /></a></div>
<br />
Este proyecto lo encuentran en esta dirección: <a href="http://cgarciagl.github.com/Delphi-FPS/" target="_blank">http://cgarciagl.github.com/Delphi-FPS/</a><br />
<br />
Algunos proyectos como este mostrado aquí, son códigos que desarrollé en mis ratos de ocio, para aprender algunas nuevas técnicas de programación y para poner a prueba algunas teorías; pero bien podrían servirle a alguien como base para iniciar algún proyecto más elaborado.<br />
<br />
<br />
Poco a poco iré agregando más proyectos de los que espero tener retronalimentación y espero que les hagan Forks y participen aquellos a los que les llegue a interesar algún tema en particular...<br />
<br />
Mi cuenta de GitHub es: <a href="https://github.com/cgarciagl" target="_blank">https://github.com/cgarciagl</a> y ahí podrán encontrar los proyectos que les comparto, principalmente encontrarán proyectos desarrollados en Delphi y de PHP y Javascript; particularmente para los frameworks: <a href="http://www.codeigniter.com/" target="_blank">CodeIgniter </a>y <a href="http://jquery.com/" target="_blank">JQuery</a>...<br />
<br />
Saludos<div class="blogger-post-footer">http://cgarcia.blogspot.com</div>Carlos Ghttp://www.blogger.com/profile/09121978431155592667noreply@blogger.com4tag:blogger.com,1999:blog-18551162.post-3295990097451384912010-11-23T10:35:00.001-06:002010-11-23T10:35:06.635-06:00La única métrica válida en calidad de código<p><a href="http://lh5.ggpht.com/_93mjA9u4pb0/TOvtNgRrt7I/AAAAAAAAARo/dYpLCXtmQHs/s1600-h/wtfm%5B3%5D.jpg"><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="wtfm" border="0" alt="wtfm" src="http://lh5.ggpht.com/_93mjA9u4pb0/TOvtOQaI_ZI/AAAAAAAAARs/Y2bI6QnqUDA/wtfm_thumb%5B1%5D.jpg?imgmax=800" width="474" height="427" /></a></p> <div class="blogger-post-footer">http://cgarcia.blogspot.com</div>Carlos Ghttp://www.blogger.com/profile/09121978431155592667noreply@blogger.com2tag:blogger.com,1999:blog-18551162.post-48766885788855059552010-09-21T12:17:00.001-05:002010-09-21T12:17:59.719-05:00Mas humor de ingeniería de software =:-)<p>Con motivo de la clase de hoy de mi maestría sobre métricas de calidad ahora aquí van estas tiras</p> <p>estas son brillantes; </p> <p>Cuando las métricas se mal-versan:</p> <p><a href="http://lh5.ggpht.com/_93mjA9u4pb0/TJjotXyb_RI/AAAAAAAAAQo/Ii7kF6GHZMA/s1600-h/21164.strip%5B3%5D.gif"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="21164.strip" border="0" alt="21164.strip" src="http://lh5.ggpht.com/_93mjA9u4pb0/TJjouAJ4qxI/AAAAAAAAAQs/NxykJwbDaJs/21164.strip_thumb%5B1%5D.gif?imgmax=800" width="640" height="195" /></a> </p> <p>Lo que realmente sucede en una reunión de RTF (Revisión Técnica Formal)</p> <p><a href="http://lh6.ggpht.com/_93mjA9u4pb0/TJjouitnurI/AAAAAAAAAQw/uLGnB9DBkY4/s1600-h/1623.strip%5B3%5D.gif"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="1623.strip" border="0" alt="1623.strip" src="http://lh5.ggpht.com/_93mjA9u4pb0/TJjovRSPL0I/AAAAAAAAAQ0/GkxZzH33bx0/1623.strip_thumb%5B1%5D.gif?imgmax=800" width="644" height="204" /></a> </p> <p>En la misma reunión, al determinar las metas del proyecto:</p> <p><a href="http://lh6.ggpht.com/_93mjA9u4pb0/TJjov_s-a_I/AAAAAAAAAQ4/-urAAouJuYY/s1600-h/58812.strip%5B5%5D.gif"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="58812.strip" border="0" alt="58812.strip" src="http://lh6.ggpht.com/_93mjA9u4pb0/TJjowN0Fg6I/AAAAAAAAAQ8/B-4KxGfV5TQ/58812.strip_thumb%5B3%5D.gif?imgmax=800" width="640" height="200" /></a> </p> <p></p> <p></p> <p>Y cuando las estadísticas están cuchareadas (para recordar que correlación no indica causalidad):</p> <p><a href="http://lh3.ggpht.com/_93mjA9u4pb0/TJjoxESi8hI/AAAAAAAAARA/_KoGwRy2huA/s1600-h/40066.strip%5B3%5D.gif"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="40066.strip" border="0" alt="40066.strip" src="http://lh6.ggpht.com/_93mjA9u4pb0/TJjox-M6FSI/AAAAAAAAARE/8_8yDhY3cbs/40066.strip_thumb%5B1%5D.gif?imgmax=800" width="640" height="197" /></a></p> <div class="blogger-post-footer">http://cgarcia.blogspot.com</div>Carlos Ghttp://www.blogger.com/profile/09121978431155592667noreply@blogger.com1tag:blogger.com,1999:blog-18551162.post-47293388207117822622010-08-30T17:58:00.001-05:002010-08-30T17:58:48.092-05:00Humor Agil<p>Aprovechando que ahora estoy tomando clases sobre Metodologías Ágiles algo de la filosofía de <strong>Dilbert</strong>:</p> <p><a href="http://lh3.ggpht.com/_93mjA9u4pb0/THw3mPZypdI/AAAAAAAAAP4/3jmGYqmKS7A/s1600-h/dilbert-agile_programming%5B3%5D.gif"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="dilbert-agile_programming" border="0" alt="dilbert-agile_programming" src="http://lh6.ggpht.com/_93mjA9u4pb0/THw3msgvNgI/AAAAAAAAAP8/Y0i_2MiO8KE/dilbert-agile_programming_thumb%5B1%5D.gif?imgmax=800" width="568" height="199" /></a></p> <p><strong><font color="#ff0080">Pair Programming:</font></strong></p> <p><a href="http://lh6.ggpht.com/_93mjA9u4pb0/THw3nL4xqLI/AAAAAAAAAQA/hNgGqV71Q5I/s1600-h/dilbert-xp01%5B4%5D.gif"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="dilbert-xp01" border="0" alt="dilbert-xp01" src="http://lh5.ggpht.com/_93mjA9u4pb0/THw3nlp6QkI/AAAAAAAAAQE/rBdyf5tqJsQ/dilbert-xp01_thumb%5B2%5D.gif?imgmax=800" width="547" height="199" /></a> </p> <p><a href="http://lh3.ggpht.com/_93mjA9u4pb0/THw3n7urcNI/AAAAAAAAAQI/s3VaBNFz15I/s1600-h/dilbert-xp03%5B4%5D.gif"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="dilbert-xp03" border="0" alt="dilbert-xp03" src="http://lh4.ggpht.com/_93mjA9u4pb0/THw3oHA_ByI/AAAAAAAAAQM/XJ4QEuCKU_8/dilbert-xp03_thumb%5B2%5D.gif?imgmax=800" width="555" height="199" /></a></p> <p><strong><font color="#ff0080">Usuarios comprensivos:</font></strong> </p> <p><a href="http://lh3.ggpht.com/_93mjA9u4pb0/THw3oxVnb4I/AAAAAAAAAQQ/wdm4-y3gIc0/s1600-h/dilbert-xp02%5B4%5D.gif"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="dilbert-xp02" border="0" alt="dilbert-xp02" src="http://lh5.ggpht.com/_93mjA9u4pb0/THw3pCrQlhI/AAAAAAAAAQU/mdK2q5FCOtE/dilbert-xp02_thumb%5B2%5D.gif?imgmax=800" width="554" height="199" /></a></p> <p><font color="#ff0080"><strong>Jefes comprensivos:</strong></font></p> <p> <a href="http://lh3.ggpht.com/_93mjA9u4pb0/THw3pnV8U3I/AAAAAAAAAQY/7GEAKojdeiE/s1600-h/dilbert-agile%5B3%5D.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="dilbert-agile" border="0" alt="dilbert-agile" src="http://lh6.ggpht.com/_93mjA9u4pb0/THw3p-kezMI/AAAAAAAAAQc/JPuEwYmbOU8/dilbert-agile_thumb%5B1%5D.jpg?imgmax=800" width="561" height="199" /></a></p> <div class="blogger-post-footer">http://cgarcia.blogspot.com</div>Carlos Ghttp://www.blogger.com/profile/09121978431155592667noreply@blogger.com0tag:blogger.com,1999:blog-18551162.post-49023593092562375752009-10-21T19:58:00.000-05:002010-03-19T11:46:41.732-06:00Richard Stallman en Xalapa este 26 de Nov 2009<a href="http://infoaleph.files.wordpress.com/2008/09/richard_stallman_2005_chrys.jpg?w=333&h=365" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" src="http://infoaleph.files.wordpress.com/2008/09/richard_stallman_2005_chrys.jpg?w=333&h=365" style="cursor: hand; cursor: pointer; float: left; height: 335px; margin: 0 10px 10px 0; width: 303px;" /></a>El próximo 26 de noviembre del 2009 <a class="zem_slink" href="http://www.stallman.org/" rel="homepage nofollow" title="Richard Stallman">Richard Stallman</a>, fundador del movimiento <a class="zem_slink" href="http://www.gnu.org/" rel="homepage nofollow" title="GNU">GNU</a>, estará en <a class="zem_slink" href="http://maps.google.com/maps?ll=19.54,-96.9330555556&spn=0.1,0.1&q=19.54,-96.9330555556%20(Xalapa)&t=h" rel="geolocation nofollow" title="Xalapa">Xalapa</a> -la capital del estado de Veracruz- para impartir una conferencia como parte del Tour GULEV de <a class="zem_slink" href="http://en.wikipedia.org/wiki/Alternative_terms_for_free_software" rel="wikipedia nofollow" title="Alternative terms for free software">Software Libre</a> 2009.<br />
<br />
El Tour será un evento de 3 días en 3 ciudades: el 26 en Xalapa, Veracruz; el 27 en Puebla, Puebla; y el 28 en Guanajuato, Guanajuato.<br />
<br />
En Xalapa, el evento será en el Museo del Transporte. Para más información visite la <a href="http://go2.wordpress.com/?id=725X1342&site=infoaleph.wordpress.com&url=http%3A%2F%2Fgulev.org.mx%2Feventos%2Ftour2009%2F">página del evento</a>.<br />
<div class="zemanta-pixie" style="height: 15px; margin-top: 10px;"><a class="zemanta-pixie-a" href="http://reblog.zemanta.com/zemified/e1df7036-00ff-4f42-a17d-170f0c9e0922/" title="Reblog this post [with Zemanta]"><img alt="Reblog this post [with Zemanta]" class="zemanta-pixie-img" src="http://img.zemanta.com/reblog_e.png?x-id=e1df7036-00ff-4f42-a17d-170f0c9e0922" style="border: none; float: right;" /></a><span class="zem-script more-related pretty-attribution"><script defer="defer" src="http://static.zemanta.com/readside/loader.js" type="text/javascript">
</script></span></div><div class="blogger-post-footer">http://cgarcia.blogspot.com</div>Carlos Ghttp://www.blogger.com/profile/09121978431155592667noreply@blogger.com2tag:blogger.com,1999:blog-18551162.post-33437971843522257842009-10-20T02:42:00.000-05:002009-10-30T01:26:33.751-06:00Holly shit, soy un nerd!<div style="float: left; margin: 5px;"><a href="http://www.nerdtests.com/ft_nq.php"><br />
<img src="http://www.nerdtests.com/images/ft/nq/30ad9f68f8.gif" alt="I am nerdier than 94% of all people. Are you a nerd? Click here to take the Nerd Test, get geeky images and jokes, and talk on the nerd forum!" /></a></div><p>Ahora que no tenía mucho que hacer, bagabundeando por ahí llegué a esta encuesta que evalua que tan Nerd eres; y santos héroes del fobaproa Batman!! saqué <b>94%</b> !!! </p><p>Ya tenia yo conciencia de tener cierto nivel de frikismo, ¿pero tanto??, si llega a ser preocupante. Esta calificación me pone como un <i>kaiosama </i>de los nerds.</p><p>Ahora que en una introspectiva exhaustiva, debo confesar que si soy fan de algunas series de anime, he coleccionado algunos comics alguna vez en mi vida, me gustan mucho los juegos de video, paso muchas horas al día pegado a la computadora, soy super fan del universo de star wars (no asi de star trek), y tengo varias figuras de acción de superheroes en la casa, puedo pasarme toda una tarde viendo documentales en el animal planet, y en el <i>toilet </i>hay una pila de libros de diferentes temáticas que van desde algoritmos genéticos hasta de modelos estocásticos. Solo puedo alegar en mi defensa que nada de esto me enajena y que en realidad prefiero mil veces pasar una buena noche bohemia con vino y guitarras que una <i>noche de halo multiplayer online</i>. Aunque, si lleva su buena tajada de razón la susodicha encuesta.</p><p>Por cierto, ¿conocen ya la nueva forma de jugar <i>piedra, papel o tijera</i> al estilo nerd?, en la serie "<i>The big bang theory</i>" proponen que se agreguen 2 elementos nuevos al juego, de modo que el juego quedaría en "<i><b>piedra, papel, tijeras, lagarto, spock</b></i>", y las reglas pues son muy simples:</p><p></p><p></p><ul><li>Las tijeras cortan el papel</li>
<li>El papel cubre a la piedra</li>
<li>La piedra aplasta al lagarto</li>
<li>El lagarto envenena a Spock</li>
<li>Spock destroza las tijeras</li>
<li>Las tijeras decapitan al lagarto</li>
<li>El lagarto se come el papel</li>
<li>El papel refuta a Spock</li>
<li>Spock vaporiza la piedra</li>
<li>y, como siempre ha sido... La piedra aplasta las tijeras</li>
</ul><div>un diagrama lo ejemplifica mejor:</div><br />
<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxijEYflBDa0fSsQfhXBDQlJsQ_5v5UjxoXIbx0kVoiuCI9OMJclhFy-8VcEz28gN5B5uWc3M_WDIFIrrpX7n4fVA77gSVpqXwrhAt-K_IXkWWOUMPKnNI65KzDh4esMtC3G4l/s1600-h/piedra.png"><img style="cursor:pointer; cursor:hand;width: 400px; height: 388px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxijEYflBDa0fSsQfhXBDQlJsQ_5v5UjxoXIbx0kVoiuCI9OMJclhFy-8VcEz28gN5B5uWc3M_WDIFIrrpX7n4fVA77gSVpqXwrhAt-K_IXkWWOUMPKnNI65KzDh4esMtC3G4l/s400/piedra.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5394731043368583954" /></a><br />
<div><p>Esto con el fin de minimizar el riesgo de empates en el juego... claro que es preferente que esta versión se juegue en el idioma <i>klingon</i>, sino, pues es igual pero pierde parte del encanto =:-)</p></div><p><i>Que tengan una larga y prospera vida..</i>.</p><div class="blogger-post-footer">http://cgarcia.blogspot.com</div>Carlos Ghttp://www.blogger.com/profile/09121978431155592667noreply@blogger.com1tag:blogger.com,1999:blog-18551162.post-69109259808392984732009-10-04T02:02:00.000-05:002009-10-07T13:54:17.675-05:00Esquema de colores para PsPad<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4btfVZjWyRFo-fl8eNh7aoqGZY5WT9auJ3RbRU7ACRASNDYN4FseWD1hrePsniz1KFxHJpOo56hg-WJfI41XAja9JaxZ_fL2fQwdI8HyWe5RUviwAh9gI6lTsBOPpiLa5wC47/s1600-h/pspad.PNG"><img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 400px; height: 361px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4btfVZjWyRFo-fl8eNh7aoqGZY5WT9auJ3RbRU7ACRASNDYN4FseWD1hrePsniz1KFxHJpOo56hg-WJfI41XAja9JaxZ_fL2fQwdI8HyWe5RUviwAh9gI6lTsBOPpiLa5wC47/s400/pspad.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5388641019957279042" /></a><br /><a href="http://www.pspad.com/es/">PsPad </a>es un editor de texto gratuito para programadores que por lo menos para mi se ha convertido en herramenta indispensable para el trabajo día a día.<div><br /></div><div>Ahora les quiero compartir un esquema de colores que he hecho para este editor, los colores están inspirados en el de el editor para mac TextMate.</div><div><br /></div><div>El esquema se puede descargar de <a href="http://cgarcia.isgreat.org/CGT.INI">aquí</a>, espero lo disfruten tanto como yo =:-)<br /></div><br /><div style="height:2em;padding:1em 0 1em 0;text-align:center;background-color:#FFFFC9;">You can download it <a href="http://cgarcia.isgreat.org/CGT.INI">here</a>, enjoy =:-)<br /></div><div class="blogger-post-footer">http://cgarcia.blogspot.com</div>Carlos Ghttp://www.blogger.com/profile/09121978431155592667noreply@blogger.com2tag:blogger.com,1999:blog-18551162.post-9672567356836671412009-06-20T02:38:00.000-05:002009-06-20T03:22:31.019-05:00¿es que se acabó el encanto?Hace ya mucho tiempo que no publico algo en este blog acerca de la programación con Delphi y Firebird; tal vez algunos se pregunten si es que me he desencantado de su magia y he abandonado el sendero de la luz; pero no, no es así de hecho todos los dias trabajo con Delphi y Firebird, dandole mantenimiento a algunos programas que se han comercializado.<div><br /></div><div>Algo de trabajo me ha dado migrar algunas bases de datos desde Firebird 1.5 a Firebird 2.1, pero la verdad es que el cambio ha valido la pena y con creces, las nuevas características de la versión 2.1 son invaluables, y transportan a los servidores a un nuevo nivel. Y los clientes felices, ¿como sabes que un cliente es feliz? porque no te llama para quejarse... es muy raro que llamen para aplaudir un acierto, pero si hay algún problema puedes estar seguro que llamará :)</div><div><br /></div><div>No he probado la versión de Delphi 2009 así que poco puedo decir al respecto, la verdad creo que en mi caso pasará un rato para que llegue a dedicarle algo de tiempo a esta versión, pues algunas de las librerías que uso en mis proyectos, o no hay versión compatible con las nuevas reglas Unicode, o me sale en un billete actualizarlas solo para tener esta funcionalidad, lo cual no creo necesitar todavía. Tal vez mas adelante pero por ahora no está en mis planes.</div><div><br /></div><img src="http://tbn3.google.com/images?q=tbn:LS2_h1Hrn5Fd0M:http://eloisaozonas.files.wordpress.com/2008/12/nube.jpg" style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 124px; height: 93px;" border="0" alt="" /><div>Por lo pronto otros paisajes han llamado mi atención, el desarrollo web me sonrió y me mostró un cúmulo de posibilidades que antes no me eran ajenas pero que ahora puedo ver más claramente. Y es aquí donde he volcado mis atenciones en los últimos meses, he aprendido mucho en este aspecto, y es que el desarrollo de este tipo de aplicaciones es algo muy especial y en donde la cantidad de conceptos que debe uno manejar ha crecido exponencialmente en los últimos años; pero también he podido apreciar que el impacto social que se puede conseguir con esta clase de aplicaciones es bastante grande. Ya iré contando mis andanzas en el desarrollo web en futuros posts, y cual es mi nueva perspectiva de la web y el futuro de las aplicaciones <i>en las nubes</i>.</div><div class="blogger-post-footer">http://cgarcia.blogspot.com</div>Carlos Ghttp://www.blogger.com/profile/09121978431155592667noreply@blogger.com1tag:blogger.com,1999:blog-18551162.post-18029627139267074212008-07-31T03:51:00.002-05:002010-10-28T20:25:38.962-05:00¿Sabes lo que es un hashmap?Para los programadores de <strong>Java</strong> este concepto tal vez no sea tan extraño pues el uso de hashmaps es común, pero para los programadores de <strong>Delphi</strong> puede sonarles a nuevo.<br />
Un <strong>hashmap</strong> es una estructura de datos que permite crear un mapa en memoria para la rápida identificación de elementos a partir de un dato usado como llave. Puedes decir: <em>ok si conozco muchas estructuras de datos que permiten hacer eso, ¿cual es la diferencia con los hashmaps?;</em> bien, la principal es que <strong>los hashmaps son verdaderamente rápidos</strong>.<br />
La librería JCL incluye varias clases para la implementación de diferentes tipos de hashmaps, aquí mostraré una de estas para poder encontrar una cadena a partir de el valor de otra:<br />
<script src="http://pastie.org/1256990.js">
</script><br />
Y una vez hecho esto, encontrar una aguja dentro de ese gran pajar se reduce a una simple instrucción: <br />
<pre class="delphi" name="code">ShowMessage (Map.GetValue ('Llave5670'));</pre>En este caso hemos ejemplificado usando cadenas (que incluso usando hashmaps se gana mucha velocidad respecto a utilizar los clásicos derivados de TStrings, TStringList), pero las posibilidades se multiplican si te das cuenta de que puedes mapear <strong>grandes cantidades de objetos</strong> usando esta técnica. Estos pequeños grandes tips hacen la diferencia entre lo que puede parecer un lento cacharro, o un veloz jet a la hora de trabajar con cantidades de datos muy considerables.<div class="blogger-post-footer">http://cgarcia.blogspot.com</div>Carlos Ghttp://www.blogger.com/profile/09121978431155592667noreply@blogger.com12tag:blogger.com,1999:blog-18551162.post-5544466040317032642008-07-11T02:40:00.001-05:002008-07-11T13:04:22.832-05:00¿Y tu que tan Espartano eres?<p><img src="http://img215.imagevenue.com/loc371/th_60550_ist2_3114399_spartan_warrior1_122_371lo.jpg" align="left" /> No, no se trata de un concurso para ver quien grita mas fuerte "<strong>This is Spartaaa!</strong>",  Se trata de un <a href="http://ssdl-wiki.cs.technion.ac.il/wiki/index.php/Spartan_programming" target="_blank">estilo de programación</a> de hecho. Me he enterado hace poco de este estilo, y como ven en el enlace tiene que ver con la austeridad en todos los sentidos. </p> <p>Particularmente yo no soy tan espartano, me gusta anteponer la reutilización de código y la mantenibilidad por encima de la austeridad, por ejemplo siempre prefiero llamar a una variable: <strong>MediaAritmeticadelaMuestra</strong>, que simplemente <strong>M</strong>, lo mismo para las funciones y procedimientos. Aunque si dedico muy buena parte de mi tiempo de trabajo a optimizar y simplificar procesos ya hechos; no me preocupa demasiado el aprovechar hasta el más infimo bit de memoria; prefiero aprovechar las jerarquías de la VCL, y usar patrones de diseño a diestra y siniestra.</p> <p><a href="http://img130.imagevenue.com/img.php?image=61824_DSC01203_122_874lo.jpg" target="_blank"><img src="http://img130.imagevenue.com/loc874/th_61824_DSC01203_122_874lo.jpg" align="right" border="0" /></a>¿A cuantos aquí el estilo de programación se les parecería a esto si fuera uno de los 300?:</p> <div class="blogger-post-footer">http://cgarcia.blogspot.com</div>Carlos Ghttp://www.blogger.com/profile/09121978431155592667noreply@blogger.com1tag:blogger.com,1999:blog-18551162.post-6955505194279573232008-06-29T21:27:00.001-05:002008-07-03T13:46:18.549-05:00Instalar Zeos 6.6.2 rc en Delphi 2007<p><img src="http://img224.imagevenue.com/loc73/th_92902_ZeosLogo_122_73lo.jpg" align="left" /> Hay algunos <em>detallitos</em> para instalar este paquete de componentes particularmente en Delphi 2007 pero te comparto como puedes instalarlos sin problemas ajustando solo una línea de código.</p> <p>En primera se debe abrir el archivo ZeosDbo.groupproj de la carpeta <strong>Delphi11</strong> que se encuentra en la carpeta <strong>packages</strong> y compilar uno a uno los paquetes que aparecen en el <strong>Project Manager</strong>.</p> <p>De estos, el paquete a instalar es el que se llama ZComponentDesign.dproj, pero al instalarlo así nada mas solo da el mensaje de que el paquete ha instalado pero no registra ningún componente, para corregir esto solo hay que editar el código fuente del paquete, esto es dar click con el botón derecho del ratón sobre este paquete y seleccionar la opción <strong>View Source</strong> desde el <strong>Project Manager</strong>, y agregar la siguiente línea de código justo antes del <strong>end.</strong> final:</p> <blockquote> <p><strong>contains</strong> <br />  ZComponentReg in '..\..\src\component\ZComponentReg.pas';</p> </blockquote> <p>Una vez hecho esto es solo Guardar los cambios y volver a seleccionar <strong>Install</strong> y esta vez si estarán todos los componentes registrados.</p> <div class="blogger-post-footer">http://cgarcia.blogspot.com</div>Carlos Ghttp://www.blogger.com/profile/09121978431155592667noreply@blogger.com5tag:blogger.com,1999:blog-18551162.post-90573851190779872342008-06-02T02:19:00.001-05:002008-06-02T02:20:01.618-05:00Fable 2 para finales de año<p>Me gustan los RPG's, (bueno, no tanto los de combates por turnos) existen 2 títulos que me han gustado bastante, el primero es el "<strong>Ocarina of Time</strong>" de la serie de <strong>Zelda (</strong>un clásico de clásicos), creación del gran <strong>Shigeru Miyamoto</strong>, y el segundo fué <strong>Fable The Lost Chapters</strong> de <strong>LionHead</strong>, creado por <strong>Peter Moulineaux</strong>.</p> <p> Este último me gustó mucho por la ambientación y lo bien cuidado de ciertos detalles, como la excelente música, hasta donde llegó incluso el talento de el gran <strong>Danny Elfman</strong>.</p> <p>Consecuentemente me encuentro entre los miles de fans que esperan el lanzamiento de la secuela <strong>Fable 2</strong>, que ya ha sido anunciado para el otoño de este año 2008. Para que vean mas o menos de que va el asunto vean este avance del juego:</p> <div class="wlWriterSmartContent" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:805710e7-f6db-41d2-87d9-9e0d01a7dd34" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; width: 394px; padding-top: 0px"><div><object width="394" height="323"><param name="movie" value="http://www.youtube.com/v/CqliHpn7FWI"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/CqliHpn7FWI" type="application/x-shockwave-flash" wmode="transparent" width="394" height="323"></embed></object></div></div>   <p>¿¿Que tal?? ¿¿se ve bueno no??, hay muchos detalles muy interesantes , el señor Moulineaux es muy buen diseñador de <strong>video juegos</strong> y ha prometido una serie de características que destacarán a este juego de entre los demás de su tipo; una de estas muchas cosas que per-se ya es una gran mejora, es la utilización del motor físico de <a href="http://www.havok.com" target="_blank">Havok</a>, que es uno de los mejores y muy utilizado en otras recientes publicaciones de mucho éxito.</p> <p>El encanto que ha caracterizado las creaciones de Peter Moulineaux es el involucramiento de las emociones y la moral del jugador en la trama de la historia, el poder jugar y llegar a sentirte bien o mal por haber tomado cierta decisión, la sensación de tristeza por la perdida de un compañero, o la humillación que otros personajes hacen al protagonista por la derrota sufrida y que terminan por tocar el animo mismo del que juega el rol. Esto amigos es un todo un arte y existen muchos libros y artículos que hablan al respecto, de hecho tengo un libro electrónico muy bueno, que aborda este tema desde diferentes perspectivas y es estupendo, si a alguien le interesa este tema le puedo enviar una copia, solo tiene que solicitarlo. </p> <div class="blogger-post-footer">http://cgarcia.blogspot.com</div>Carlos Ghttp://www.blogger.com/profile/09121978431155592667noreply@blogger.com3tag:blogger.com,1999:blog-18551162.post-37020808955756700512008-05-29T19:41:00.001-05:002008-05-30T02:44:02.165-05:00¿Porque Delphi 2007?<p>Cuando me preguntan si he cambiado a <strong>Delphi 2007</strong> solo por seguir la moda <strong>geek</strong> o cuales son mis razones para haber dejado Delphi 6, les contesto: </p> <p>Bueno!!... son tantas cosas, que es difícil enumerarlas en orden de importancia, pero para muestra unos cuantos <strong>ejemplos</strong>:</p> <div class="wlWriterSmartContent" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:734e666c-65bd-44f4-bf5d-9fd0ecf70645" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; width: 410px; padding-top: 0px"><div><object width="410" height="337"><param name="movie" value="http://www.youtube.com/v/ky90Io32hLQ"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/ky90Io32hLQ" type="application/x-shockwave-flash" wmode="transparent" width="410" height="337"></embed></object></div></div> <div class="blogger-post-footer">http://cgarcia.blogspot.com</div>Carlos Ghttp://www.blogger.com/profile/09121978431155592667noreply@blogger.com2tag:blogger.com,1999:blog-18551162.post-24706511703156686592008-05-27T02:23:00.001-05:002008-05-28T22:47:29.258-05:00Delphi Latino BlogRoll<p>Seguramente muchos aquí conocen el sitio <a href="http://www.delphifeeds.com">www.delphifeeds.com</a>, un estupendo compendio de bitácoras acerca de Delphi y los productos de CodeGear, donde la comunidad angloparlante comparte muy interesantes artículos con el mundo.</p> <p>A decir verdad en español también hay una buena cantidad de sitios de bitácoras que ofrecen estupendos artículos, y la cantidad de estas crece día con día; y la gran mayoría realmente merece que se le haga una reseña completa.</p> <p>Por esta razón he incluido en mi <a href="http://cgarcia.blogspot.com/" target="_blank">Blog</a> una sección de las llamadas BlogRoll, donde aparecen automáticamente los últimos artículos de las Bitácoras que leo sobre Delphi en Español, para que todos aquellos que me hacen el honor de visitarme puedan también visitar alguna de estas fabulosas páginas, y así potenciarlas. Y también esto es con el afán de incentivar a los brillantes autores a seguirnos deleitando con contenido de gran calidad como nos tienen acostumbrados.</p> <p>Hasta el momento están incluidas en este BlogRoll bitácoras de renombrados programadores como: Ian Marteens, Nico Aragon, Al Gonzalez, Juan Antonio Castillo, Salvador Jover, Jose Castillo, Jhonny Suarez, y muchos, muchos mas.</p> <p>Si tienes una página sobre Delphi con sindicación y deseas ser agregado a esta lista solo tienes que pedirlo y con gusto te agregamos. Así que si tienes algo que decirnos o enseñarnos, adelante! Seguro que entre todos podemos convertir el <em>Embarcadero</em> en un <strong>Majestuoso Puerto</strong></p><div class="blogger-post-footer">http://cgarcia.blogspot.com</div>Carlos Ghttp://www.blogger.com/profile/09121978431155592667noreply@blogger.com8tag:blogger.com,1999:blog-18551162.post-88731662499598404052008-05-26T03:06:00.001-05:002009-07-01T16:50:56.739-05:00¿Buscas un buen hosting gratuito que soporte PHP/MySQL?<p>Dale una oportunidad a <a title="http://www.000webhost.com/" href="http://www.000webhost.com/">http://www.000webhost.com/</a> es <strong>gratis</strong>, sin publicidad, servidor FTP, transferencia de hasta 100GB, con los servicios de un <strong>hosting</strong> profesional y un desempeño bastante aceptable.</p> <p>Si el HTML no es tu fuerte, o no se te da muy bien el PHP, este sitio cuenta con un instalador automático de una gran variedad de sistemas manejadores de contenidos (<strong>CMS</strong>) como <strong>Joomla</strong>, <strong>Drupal</strong>, <strong>PHPNuke</strong>, etc; o si quieres montar tu propio foro puedes hacerlo con <strong>PHPBB</strong> con un solo click, o montar tu propio Blog o <strong>Tienda en línea</strong>, lo que se te ocurra.</p> <p>Lo he estado probando <strike>y me ha parecido muy bueno</strike>, y ahora lo comparto con ustedes. Que lo disfruten y aprovechen al máximo!</p><p><b><span class="Apple-style-span" style="color:#FF0000;">Update:</span></b></p><p>Me han borrado mi cuenta de <span class="Apple-style-span" style="color:#FF0000;">000webhost </span>sin decir agua va, y no tengo ni idea de porque haya sido, el caso es que se perdieron los sitios de prueba que tenía alojados ahí y no tengo modo de recuperar ni un solo bit de información. Lo bueno es que solo eran algunas cosillas de poca importancia que solo usaba para probar como funcionaban en linea, pero eso da una buena idea de que no se deben usar estos hostings gratuitos para cosas serias, sino que hay que tomarlos mas bien a la ligera.</p><p>Para mi hosteo en serio estoy usando el servicio del cloud de <a href="http://www.rackspacecloud.com/cloud_hosting_products/sites">RackSpace</a>, con este servicio te olvidas de cualquier inconveniente con la escalabilidad de tu página o servicio en linea, lo puedo recomendar porque me ha funcionado excelentemente bien con aplicaciones verdaderamente grandes, si te interesa te puedo ofrecer una opción para que el primer mes solo pagues la mitad, solo preguntame como, y te hago llegar un cupon de descuento especial.</p><div class="blogger-post-footer">http://cgarcia.blogspot.com</div>Carlos Ghttp://www.blogger.com/profile/09121978431155592667noreply@blogger.com13tag:blogger.com,1999:blog-18551162.post-23132275111935094702008-05-14T18:22:00.001-05:002008-05-14T18:26:12.743-05:00Respaldos remotos con Firebird<p>IBExpert (un <strong>gratuito</strong> gerenciador de Bases de Datos de Firebird) al estar conectado a una base de datos remota y entrar en la pantalla de Servicios y seleccionar la opción "<strong>Backup Database</strong>" nos dice el mensaje: "Take into account: Backup Files will be created in the server side!"</p> <p>Esto al querer seleccionar el nombre de archivo con el que queremos que haga el respaldo; pero, ¿que pasa si lo que yo quiero es que el respaldo lo haga en mi propia computadora, no en el servidor?</p> <p>Bien, en ese caso lo que puedo hacer es usar la linea de comandos y escribir esto:</p> <blockquote> <p>gbak -b -z SERVIDOR:BASEDEDATOS "C:\localbackup.fbk" -verbose -user SYSDBA -password masterkey</p> </blockquote> <p>Eso nos genera el respaldo en la máquina cliente, sin mayor problema. Solo hay que acotar que se necesita que en la máquina cliente se encuentre instalado <strong>Firebird</strong> o en su caso el servicio de GBAK para que esta magia funcione.</p> <div class="blogger-post-footer">http://cgarcia.blogspot.com</div>Carlos Ghttp://www.blogger.com/profile/09121978431155592667noreply@blogger.com0tag:blogger.com,1999:blog-18551162.post-25659856768037313652008-05-07T03:21:00.001-05:002008-05-07T10:12:51.873-05:00XBOX MEDIA CENTER un estupendo programa gratis y Open Source para tu consola<p>Hace algunos meses, compré una vieja consola de <strong>XBOX</strong> de 20 gigas en disco duro (si, de las negras),esto con el afán <img alt="XBOX MEDIA CENTER LOGO" src="http://farm4.static.flickr.com/3215/2473249546_3dbd794b5d_o.png" align="right" />de poder jugar algunos viejos juegos que nunca tuve oportunidad de jugar en su momento; en realidad nunca había tenido una consola de vídeo juegos propia, pero esta vez quería sacarle jugo a la televisión de 53 pulgadas que acababa de comprar. Todo iba bien, hasta que me enteré que podía conectar ese <strong>XBOX</strong> a mi laptop vía <strong>FTP</strong> y transferirle archivos a su disco duro; pero lo mejor fue cuando conocí el programa <a href="http://xbmc.org/" target="_blank">XBOX MEDIA CENTER</a>.</p> <p>El <strong>XBOX MEDIA CENTER</strong> (ó <strong>XBMC</strong>) convierte tu consola de vídeo juegos en  un completo centro de entretenimiento digital, de opciones muy variadas, es un reproductor multimedia completo, sus bondades son muchas, pero les enumeraré las que yo mas utilizo:</p> <ul> <li>Puedo ver las <strong>fotografías</strong> que saco con mi cámara digital, a lo grande en mi televisión, puedes rotar en automático las <strong>fotos</strong> o hacer zoom en la visualización de la <strong>foto</strong>, todo de una manera muy práctica con los controles del mando de la <strong>XBOX</strong>. Y aqui podemos repasar una y otra vez las fotos de las vacaciones, o las salidas a algún lugar interesante.</li> <li>Reproduce perfectamente archivos de audio de todos los formatos que conozco, incluso reconoce automáticamente los archivos <strong>CDG</strong> + <strong>MP3</strong>, lo que convierte a la consola en un fantástico <strong>Karaoke</strong>, así que ahora en la casa ¡todos los días hay fiesta!, y nos la pasamos bailando y cantando todo tipo de <strong>música</strong>, le he ido tomando gusto a todos los géneros musicales gracias a esta estupenda característica.</li> <li>Con los <strong>videos</strong> no se queda atrás, tiene integrados una enorme cantidad de CODECS con lo que prácticamente cualquier <strong>video</strong> descargado de la red puede visualizarse sin problemas, (incluido el formato <a href="http://es.wikipedia.org/wiki/RMVB" target="_blank">rmvb</a> que está tomando mucho auge por su alta calidad y el alto factor de compresión que utiliza); además el <strong>XBMC</strong> carga automáticamente archivos de <strong>subtítulos</strong> para las <strong>películas</strong>, lo que permite ver muy cómodamente <strong>series</strong>, <strong>películas</strong>, <strong>documentales</strong>, o los videos graciosos de YouTube, así que también tengo un cine personal en la sala de mi casa.</li> </ul> <p>Aparte de todo esto tiene soporte Zip/Rar, un interprete de scripts del lenguaje Python, visualizaciones de fondo impresionantes para la música, su propio servidor FTP, conexión en linea con YouTube y otros sistemas para ver los trailers de las nuevas películas... ufff, en fin que es un gran estuche de monerías y no me alcanza todo este post para enumerar todo lo bueno que tiene, pero en la página del proyecto se enteran mejor.</p> <p>El programa lo pueden conseguir principalmente en redes P2P y en algunos trackers de BitTorrent, es absolutamente <strong>gratis</strong> y está disponible el código fuente, definitivamente votaré por este proyecto en las futuras encuestas de SourceForge.</p> <p>Es increíble todo en lo que puede convertirse una vieja consola de menos de 100 dólares.</p> <p><img height="156" alt="XBOX MEDIA CENTER EN LA PARED" src="http://xbmc.org/gfx/teaser.jpg" width="407" /></p><div class="blogger-post-footer">http://cgarcia.blogspot.com</div>Carlos Ghttp://www.blogger.com/profile/09121978431155592667noreply@blogger.com3tag:blogger.com,1999:blog-18551162.post-53588368106855358852008-04-30T11:36:00.001-05:002008-04-30T11:48:36.832-05:00Ventana Virtual 3D con Delphi<p>¿Alguna vez pensaste en hacer una aplicación con Delphi a la que pudieras controlar de manera inalámbrica a distancia como la Wii o que la interfaz se ajustara automáticamente y en tiempo real a la posición de tu cuerpo con respecto a la pantalla?</p> <p>El señor <a href="http://vandinther.googlepages.com/home" target="_blank">Paul van Dinther</a> nos muestra que es bastante posible en el siguiente video usando Delphi y GLScene</p> <div class="wlWriterSmartContent" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:473cd990-f515-4a9b-998a-0e3fe81e6c4c" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; width: 410px; padding-top: 0px"><div><object width="410" height="337"><param name="movie" value="http://www.youtube.com/v/X8PevTuEWlg"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/X8PevTuEWlg" type="application/x-shockwave-flash" wmode="transparent" width="410" height="337"></embed></object></div></div> <blockquote> <p>This is a demonstration of a virtual window using OpenGL in GLScene (<a href="http://www.glscene.org)">http://www.glscene.org)</a> and Track IR (<a href="http://www.naturalpoint.com)">http://www.naturalpoint.com)</a></p> <p>This technology is being developed by Dinther Product Design to be applied to a range of simulator systems we build. The idea is to allow drivers to lean in order to look around obstacles as we do in a car all the time to cover blind spots.</p> </blockquote> <p>Cool... ¿no?, </p> <div class="blogger-post-footer">http://cgarcia.blogspot.com</div>Carlos Ghttp://www.blogger.com/profile/09121978431155592667noreply@blogger.com1tag:blogger.com,1999:blog-18551162.post-62754500676879678442008-04-30T10:49:00.001-05:002008-04-30T10:49:26.999-05:00Firebird SQL 2.1 ya está listo<p>La versión 2.1 del afamado motor de base de <img style="margin: 0px 5px 5px 0px" src="http://img140.imagevenue.com/loc1006/th_69981_firebird_122_1006lo.JPG" align="left" />datos, se esperaba desde finales del año pasado, y por fin ha visto la luz; <a href="http://jachguate.wordpress.com/2008/04/18/liberado-firebird-21/" target="_blank">Juan Antonio Castillo</a> en su bitácora nos habla de las novedades que presenta esta versión, que no son pocas. Hay muchas mejoras que en general han sido aplaudidas por la comunidad de desarrolladores.</p> <p>Yo he probado solo la versión <strong>embedded</strong>  hasta ahora, y en primera instancia si se nota una ganancia en velocidad en la resolución de las consultas (con respecto a la versión 1.5 que es la que utilizo), las nuevas características añadidas al SQL del motor permiten hacer cosas espectaculares con una sola consulta; lo que aún no he probado por usar la versión embedded es el desempeño del nuevo protocolo de red; se prometía que las mejoras serían de un 50% aproximadamente, y hay que poner a prueba esa afirmación.</p> <p>Si alguien ha hecho pruebas en este sentido sientase con libertad de compartirnos sus resultados.</p> <div class="blogger-post-footer">http://cgarcia.blogspot.com</div>Carlos Ghttp://www.blogger.com/profile/09121978431155592667noreply@blogger.com1tag:blogger.com,1999:blog-18551162.post-26472447303612520292008-04-29T03:26:00.001-05:002008-04-29T03:26:05.267-05:00JediCodeFormat un "embellecedor" del código<p>Si, a todos nos gusta lo bonito; y pocas cosas dan tanto gusto como encontrarte código bien ordenadito e identado apropiadamente. Existen muchos embellecedores de código por ahí, algunos comerciales y otros libres; de entre todos yo prefiero el <a href="http://jedicodeformat.sourceforge.net/" target="_blank">JediCodeFormat</a> que pertenece al conjunto de maravillas del proyecto JEDI. ¿Porque?, simple, porque provee del código fuente y porque las opciones que maneja son las mejores que he visto, y deja el código chulo de bonito. Además puedes compilar el paquete con la librería <a href="http://andy.jgknet.de/dspeedup/index.php?page=RtlVclOptimize" target="_blank">RTLVCLOptimize</a> y con las mejoras que esta unidad hace a las rutinas de tratamiento de cadenas, el proceso de formateo (de incluso un proyecto completo) es un tiro. Puedes configurar un botón en la barra de herramientas que automáticamente de formato a la unidad que estés editando en ese momento, y así hacerle el equivalente a un lifting facial instantáneo con un solo click.</p> <p>Les comparto el <a href="http://cid-279419858cb52ed7.skydrive.live.com/self.aspx/P%c3%bablico/JCFSettings.cfg" target="_blank">archivo de configuración</a> que yo utilizo, que me funciona perfectamente, y que hemos adoptado como un estándar de programación en mi departamento.</p> <p>Y recuerden: </p> <p>"Dios es real" (a menos que sea declarado integer o string). =:-)</p> <div class="blogger-post-footer">http://cgarcia.blogspot.com</div>Carlos Ghttp://www.blogger.com/profile/09121978431155592667noreply@blogger.com1