October 29th, 2008 Category: Programacion Zend Framework
1 Comment »
Encontre varios links interesantes para compartir. Es muy bueno el video que hay en el blog para webmasters de google, sobre los sitemap, para los que no tienen muy en claro para que sirve, o como usarlo es ideal, ademas esta explicado muy claro.
Tambien hay un ejemplo de uso Zend_Captcha.
Hace unas semanas en la lista de Zend Framework hispano surgio una discusion sobre si era bueno o no empezar a programar en PHP con Zend Framework, tambien encontre un link donde tocan el tema.
Zend Framework
- Zend Framework good for beginners or no? – Code Utopia
- Scraping websites with Zend_Dom_Query – raphael.on.php
- A Zend_Captcha exaple – Robert Basic
- Zend framework and the twitter api – Dave Development
- Profiling queries with Zend_Db and optimizing them by hand – Tech Founder
SEO
- La importancia de la arquitectura de enlaces – Google para webmasters
- Los sitemap al descubierto – Google para webmasters
Programacion en general
October 27th, 2008 Category: php5
4 Comments »
Comparto esta funcion para generar claves aleatorias. Es facil de usar y de entender.
{
$consonants .= '@#$%';
}
$password = '';
$alt = time() % 2;
for ($i = 0; $i < $length; $i++) {
if ($alt == 1) {
$password .= $consonants[(rand() % strlen($consonants))];
$alt = 0;
} else {
$password .= $vowels[(rand() % strlen($vowels))];
$alt = 1;
}
}
return $password;
}
?>
October 22nd, 2008 Category: linux
No Comments »
Hay pocos comandos que den tanto poder a un usuario de linux como kill -9.
Este video me lo pasaron hace un tiempo, pero hoy me acorde de su existencia y lo quise compartir con ustedes.
KILL DASH NINE!!!!
October 22nd, 2008 Category: linux
5 Comments »
En los articulos anteriores sobre esta herramienta, di mi punto de vista sobre vim, el otro dia navegando un poco para perder el tiempo me encontre con un blog nuevito pero con una seria de articulos muy interesantes, que enseñan a usar vim como el IDE para PHP. Por ahora hay escrito 4 articulos, y seguramente tenga material para algun otro mas.
Aca les paso los links, para que puedan tener otro punto de vista.
-
Vim el IDE para PHP (Parte 1)
-
Vim el IDE para PHP (Parte 2)
-
Vim el IDE para PHP (Parte 3)
-
Vim el IDE para PHP: Xdebug (parte 4)
De paso aprovecho para tirar algunos tips que fui incorporando.
- Si quieren ver mas de un archivo a la vez, pueden hacer desde el modo consola ctrl + w + n para ver dividr la pantalla en dos en forma horizontal, con ctrl + w + v, la dividen en forma vertical. Se pueden mover por las divisiones con ctrl + w + w.
- Si quieren abrir un archivo desde la consola :e nombre del archivo, lo pueden buscar con “tab”
- Si lo que buscan es agregar el contenido de un archivo a uno abierto :r nombre del archivo.
- Si quieren pasar a minuscula o mayuscula todas las letras de una linea desde la consola guu, o gUU para generar el efecto contrario.
- Si lo que quieren es cambiar el case de una sola palabra con ~
- Si tienen mas de un archivo abierto, con :qall cerramos todo

October 22nd, 2008 Category: varios
No Comments »
Estos dias estuve con el sitio caido porque contrate un VPS, y me mande un par de cagadas con los dns, y eso llevo a mucho tiempo de inactividad.
Lo importante es que ahora deje dreamhost. El motivo para mi fue basico, el servidor de mysql se caia cada dos por tres, esto me genero mas de un problema con mis clientes y algunos irreparables. La gente a veces no entiende que uno no tiene el servidor en el cuarto, y puede ir y meter mano cuando quiera y entiendo que eso sea dificil de comprender, por eso decidi cambiar. Ademas buscaba algo mas potente.
La gente de datawebhosting, me ofrecio un VPS (algo asi como un dedicado compartido, donde cada cuenta tiene control absoluto ), el servicio anda de 10 y la atencion mejor.
Con ayuda de la gente de datawebhosting, y de Gonzalo Gorosito, pude solucionar mis cagadas.
Voy a subir un post proximamente de las cosas que necesitamos para configurar nuestro propio Servidor, para que no les pase lo mismo.
October 12th, 2008 Category: linux
No Comments »
Estos meses estuve probando varias distros de linux, y la que mas me rindió fue fedora core 8, la estoy usando en el trabajo (por oblación), y anda de 10. De hecho es con la única que tuve problemas y pude resolverlos sin muchas vueltas.
Primero fue ubuntu, muy lindo al principio, muy cómodo el inmenso repositorio, pero nunca termino de andar bien, como dijo una vez Cesar Casas en la lista de web&beer es un flan, muy lindo pero inestable. Tuve muchos problemas, con el entorno gráfico, cada vez que instalaba algo o modificaba algo, cualquier cosa, se desconfiguraba el xorg.conf.
Otro punto en contra de ubuntu, es que se me colgaba mucho con el flash player, no así con Fedora core 8 ni con Debian.
Estas y otras cosas me hicieron probar Debian, que en un principio empeze con Etch, que es la versión estable, me gusto mucho las mil formas de instalarlo, bajarme un cd básico, un cd semi completo, o los 20 mil dvds con programas.
Con el tiempo me di cuenta que tenia muchos problemas porque las versiones de los programas eran muy viejas y no estaban en los repositorios normales. Así que decidí instalar Debian Lenny una beta que es mucho mas estable que cualquier versión de ubuntu.
Pero siempre un pero, instale todos los programas de 10, el servidor con ZendCore, mysql, Zend Studio, y Firefox3 (que mas puedo pedir?), cuando quiero instalar los drivers NVIDIA me trabo un poco, porque era incompatible con mi versión de gcc, la cual al parecer era mas nueva que la que requerían los drivers de NVIDIA ( un poco extraño, pero es así), terminado de resolver este problema. Me empieza a desagradar la parte gráfica (mucho), cuando instale vim 7 los colores que uso no me gusto para nada, sumado a eso que el maldito adsl anda peor que nunca, decidí irme a Fedora Core 9.
Algo para destacar en debian, que no me paso ni en fedora ni ubuntu, es que el flash player se instale desde el mismo browser, siempre me tuve que bajar el flash player e instalarlo a mano.
Lo del Adsl aun me resulta raro, con ubuntu andaba de 10, cada vez que iniciaba la pc iniciaba perfectamente la conexion, y solo tenia que abrir el firefox, con debian no, tenia que iniciar la sesión, hacer un ps aux | grep dsl, matar el proceso, apagar el modem, prenderlo y recién ahí rezar para que me tome la conexion.
Y bueno, como tengo bien particionado el disco, puedo cambiar de distros cuando quiero sin perder lo que tenga instalado.
Mis particiones son
/home –> mis usuarios
/opt –> mis aplicaciones
/usr/local –> aca es donde esta el apache, y mysql
y otra para el /, tambien para el swap.
Seguramente la mejor distro en un servidor sea debian sin duda, pero fedora es la combinacion perfecta entre performance e interfaz de usuario.
October 9th, 2008 Category: Zend Framework
1 Comment »
Cualquiera puede crear un xml valido con las reglas para los sitemap, pero como le decimos a google que nuestro sitemap es www.dominio.com/sitemap.xml ?
La primera es con una regla de rewrite, pero para hacer esto vamos a usar Zend_Controller_Router_Route_Regex.
Esta lib nos permite crear un alias para nuestros modulos, por ejemplo si nosotros invocamos a www.dominio.com/sitemap.xml, podemos decirle que en realidad llame a www.dominio.com/xml/sitemap/, podria decirle a google que busque directamente en www.dominio.com/xml/sitemap/, pero hay una teoria que te indexa mejor si es un .xml, asi que vamos a darle el gusto y llamarlo asi.
Si nosotros queremos remapear esa url para que lo envie a www.dominio.com/xml/sitemap/, desde el bootstrap hacemos lo siguiente.
$controller = Zend_Controller_Front::getInstance();
$controller->setControllerDirectory( './application/controllers' );
$controller->throwExceptions( true );
$router = $controller->getRouter();
$route = new Zend_Controller_Router_Route_Regex(
'^sitemap.xml$',
array(
'controller' => 'xml',
'action' => 'sitemap'
)
);
$router->addRoute('sitemap', $route);
$controller->dispatch();
Y con esto ya es suficiente, para que desde nuestro browser entremos desde www.dominio.com/sitemap.xml a www.dominio.com/xml/sitemap/, esto tambien podriamos hacerlo para todas las paginas, para que terminen siempre en html, y enviarlas al modulo correspondiente para que sea mas SEO friendly, pero eso es mejor hacerlo desde el .htaccess.
Si cargamos en google, esta url para los sitemap, nos va a dar un error 404, y eso es porquqe no encuentra al url desde el bot. Todavia no descubri porque pasa esto, pero la unica manera de solucionarlo es agregandole una barra al final, quedando de esta manera.
www.dominio.com/sitemap.xml/
Para crear el sitemap, solo necesitamos un controller, que traiga los datos correspondientes de los modelos, y en la vista arme el xml
October 8th, 2008 Category: varios
No Comments »
Metodología Open de Gestión de Proyectos GEDPRO. Esta metodología tiene como objetivo dotar a los Project Managers de un método para gestionar todo el ciclo de vida de los proyectos.
Top 10 de expresiones regulares en PHP
Guia de estilo de codigo en Python
Herramientas y ejemplos para mejorar tu trabajo como freelance
Appcelerator PHP videos on Youtube. Una serie de videos con notas de lo que dejo la ZendCo 08.
20 Excellent AJAX Effects You Should Know
Y por ultimo un video de la web semantica
October 7th, 2008 Category: linux Programacion
6 Comments »
Vi es editor de texto por excelencia en linux, cualquier servidor del mundo con algun linux tiene el vi instalado.
Muchos programadores (generalmente los viejos, cof cof Cesar cof cof), usan vi como IDE, pero como vimos en otro post, no es algo que merezca mi reconocimiento.
Para entender vi tenemos que saber que hay 3 modos, insertar/reemplazar, consola y visual. Para poder editar el texto como en cualquier editor, tenemos que ingresar en este modo, y lo hacemos con la tecla insert o la tecla i.
Modo Insert
En este modo podemos movernos igual que lo hacemos con el notepad, nano, gedit y otros editores. Con las flechas nos desplazamos, para un lado, en este modo voy a destacar el uso de ctrl +d y ctrl + i, para tabular para un lado o para el otro, hay otras combinaciones que se pueden ver en el manual que se pueden descargar abajo, y en la chuleta.
Modo Consola
Cuando queremos acceder al modo consola lo hacemos con la tecla “esc”.Aca podemos salir ingresando la combinacion “:q”, guardar con “:w”, guardar y salir con “:x”, tambien podemos forzar los comandos con el simbolo !, si hicimos algun cambio en el archivo y no queremos guardarlo al salir, forzamos esta salida con “:q!”, los camandos van sin las comillas (“).
En este modo tenemos mil opciones, pero voy a destacar las comunes.
/palabra a buscar
con la tecla n (siempre en modo consola), buscamos el siguiente resultado de la busqueda.
* Buscar y reemplazar un texto.
:1,$ s/palabra_a_buscar/palabra_a_reemplazar/g
Cuidado que aca le estamos diciendo que busque de la linea uno hasta la ultima, si quieren pueden decirle que lo haga desde la linea 23, hasta la 48.
* Copiar pegar, y borrar una linea
Para copiar una linea usamos la tecla “y” dos veces, y para pegarla la tecla “p”.
* Para borrar una linea dos veces la tecla “d”.
Si nos equivocamos y queremos volver atras apretamos la tecla “u”.
Hay otras combinaciones mas pero estas son las que por lo menos yo mas uso.
Modo Visual
Este modo es util cuando queres seleccionar una porcion de texto, copiarla y pegarla o en la misma instancia del vi, o abrir otro archivo, y pegarla en otro vi.
nota: El modo copiar y pegar de Vi, es solo para vi, no sirve para copiarlo en otros editores.
La forma de hacerlo es desde el modo consola apretar la tecla “v”, con las flechitas seleccionamos el texto que queremos copiar, apretamos solo una vez la tecla “y”, volvemos a entrar en el modo de consola y apretamos la tecla “p”, si todo salio bien tiene que pegarse el texto que seleccionamos. Podemos probar copiar algo desde el modo visual, cerrar el vi, y volver a abrir otro archivo y pegar el texto que copiamos en el otro archivo.
Por ahora es el unico uso que le doy, por ahi se le puede dar otro, con vi nunca se sabe los limites.
Tip: Para pegar un texto , y que al pegarlo no se desindente, desde el modo consola escribimos “:se paste”.
Vi y PHP
Hay una version mejorada de vi, que es Vim (el paquete es vim-full, en .deb, y .rpm), desde vim podemos decirle que nos coloree el texto, que nos indente el texto automaticamente, que tabule con espacios y mil cosas mas, podemos decirles que nos busque si la funcion esta en el archivo y la autocomplete, etc.
Si nosotros abrimos un archivo con extension diferente a .php, y no lo colorea automatiamente como archivo php podemos decirle que lo interprete como tal muy facilmente ejecutando desde el modo consola del vim “:se ft=php”, no solo para los php, sino para casi cualquier lenguaje. Al ejecutar este comando automaticamente se nos colorea el texto.
Vim usa un archivo de configuracion que se encuentra en el home de cada usuario, ese archivo se va a ejecutar cada vez que se ejecute el vim, ahi podemos decirle, que nos indente por cuatro espacios, que reemplaze las tabulaciones por espacios, que nos muestre el numero de lineas, etc. Para editar este archivo desde el shell ingresamos el siguiente comando.
$ vim ~/.vimrc
o
$vim /home/nobre_usuario/.vimrc
En mi archivo de configuracion tengo las siguientes configuraciones
set ts=4 “tabstops are 4 (for all code)
set sw=4 “shiftwidth is 4
set expandtab “Reemplaza los tabs por espacios
set showmatch “briefly jump to matching brackets
set showmode “the mode we’re in
Desde este archivo se puede hacer infinidad de cosas, realmente de todo, pero con esto creo que es suficiente.
Para complementar la info voy a dejarles un manual para descargar de vim, y una chuleta para el uso.
Descarga | Manual de vim
Descarga | Chuleta de vim
October 2nd, 2008 Category: linux Programacion Zend
8 Comments »
Toda mi vida desarrolle sobre editores tipo editplus, notepad ++, también use algo un poco mas avanzado como dreamweaver que te auto completaba las funciones, y alguno que otro mas. Pero hace dos años que uso Eclipse, y la cosa cambio mucho para mi, tengo todo, lo que necesito en una sola aplicacion, no tengo que switchear nada con ctrl + tab tengo todo integrado, svn, auto completado, formateador de código, funciones para renombrar una variable, debuger, el maravilloso outline que me muestra todas las propiedades, metodos de una clase, el explorador de archivo y hasta un navegador web para probarlo (aunque sigo usando Firefox), y muchas cosas mas que al tenerlas automatizadas ni me acuerdo. Pero lo importante, es que tengo todo lo que necesito para desarrollar, y esto es importante porque no pierdo tiempo en buscar el nombre de la función de otro archivo o que parámetros recibe el método de una clase porque automaticamente me sugiere todo, con la opción de seleccionar con las flechitas cual quiero, y auto completarme todo. O el fantástico ctrl + shift + f, el cual después de escribir código a lo loco me corrige todo los errores de indentacion en milisegundos, sin que necesite revisarlo.
La idea de escribir este articulo me surgió después de leer el articulo con la compilacion de 10 recomendaciones hechas por “especialistas” y en el punto 5 recomendaba usar algún IDE para acelerar los procesos de desarrollo de software, y no solo acelerar sino para unificar, como conté en otro articulo con una combinacion de teclas todos podemos tener el mismo estándar de indentacion, sin tener que chequear el código. Además se facilita mucho el uso del svn, y para una persona sin conocimientos de subversión,, se hace muy fácil, hacer un commit, agregar archivos al repositorio, actualizar, etc. Voy mas allá y digo que podes usar svn sin tener idea de lo que es.
Pero no quiero quedarme solo en eso, sino que además es extensible, podemos agregarle plugins, para javascripts, para css, para html, porque no para ruby, o python, o cualquier otro lenguaje que se nos ocurra.
Yo uso Zend Studio for Eclipse que si bien es pago, solo unos u$s 300, es un producto completisimo, pero también esta la alternativa libre, Eclipse PDT. Los dos son productos excelentes y cumplen la mayoría de las funciones.
Por otro lado tenemos el famoso y potente VI, que en definitiva es un editor de texto, pero realmente poderoso, se pueden hacer cosas que en Eclipse no. Es 100% configurable, y muchas de las funcionalidades de los IDE actuales, se pueden implementar para VI. Estamos en contacto directo con la consola que nos da mas control y poder a la hora de programar, pero a que costo?
Digo esto porque si el VI tiene cosas buenas, la amigabilidad no es una de esas cosas.
En un articulo escrito por un compañero de trabajo, menciona que el VI tiene una curva de aprendizaje muy grande, y acá es donde no me cierra.
Todo desarrollador web debería saber usar básicamente el VI, me refiero a poder copiar, pegar, buscar, buscar y reemplazar cadenas. Pero no es algo simple esto es totalmente distinto a cualquier otro editor de texto gráfico, pero tiene que ser una necesidad ya que muchas veces vamos a tener que meter las manos en servidores remotos, que no tienen entorno gráfico y otra de las características de VI, es que en cualquier servidor Linux del mundo escribís VI, y lo encontras.
Recomiendo la lectura del articulo VIM com IDE, porque muchas de las cosas que mencione arriba que se podían hacer con un IDE, muestra como hacerlas para VIM.
Pero, si bien en VIM se puede hacer lo mismo que se hace con un IDE (hasta lei que se puede integrar el svn), para hacer un search and replace, en vim tendriamos que hacer
:1,$ s/cadena_original/cadena_nueva/g
Esto con Eclipse es mucho mas intuitivo y facil, solo tenmos que apretar ctr + f completar los campos y ctr + a para que haga un reemplazo generl.
Por ahí soy todavía soy un chico windows y soy reacio a lo no amigable, pero mas allá de eso tengo en claro que cada herramienta cumple su propósito, y para desarrollar no hay nada como un IDE.
Obviamente nadie desarrolla en bash con Eclipse, pero aoca hablamos de programacion web. Tampoco creo que muchos locos anden usando VIM para programar en JAVA, y ni hablar de .net.
Los linuxeros de alma no van a estar muy deacuerdo conmigo, pero es una realidad, la consola te da poder pero no es comoda y mucho menos amigable, y no hablo solo por mi o por un usuario avanzado, sino tambien de los programadores recien iniciados que ya bastante problemas tienen aprendiendo a usar el lenguaje, como para agregarle la carga de aprender a usar algo tan exigente como VI.






