viernes, 31 de julio de 2009

Yahoo! Widgets

Yahoo! Widgets no es nada nuevo en realidad, pero nunca se me dio por ver que onda, resulta que la version que tienen ahora rinde bastante para hacer pequeños programitas o widgets, muchas ventajas y esta muy facil de usar, con un buen manual, y los foros, no necesitas mucho mas.
Usa XML al estilo de Flex o Silverlight, y Javascript para el coding, es un buen lenguaje muy facil de usar y extender, asi que es una buena opcion.
En fin, en un dia, logre hacer esta pequeña app.
Tiene una ventaja muy buena, la ventana la podes diseñar en photoshop, con los botones y eso, basicamente, la interface, y con un script que te da Yahoo! lo pasas a XML, despues solo agregas las funciones.
Muy comodo, y sera mi opcion para futuros pequeños programas.
Lo unico malo que le veo es la extrema seguridad, te pide por adelantado que especifiques que vas a hacer, si leer o escribir archivos del sistema, en que carpeta, si ver algun sitio web, etc, pero bueno, no es tan malo, vere si puedo hacer algun juego simple, siempre me gusta hacerlos en cualquier lenguaje.
Asi que bueno, se los recomiendo!

domingo, 19 de julio de 2009

Almost Pretty Urls

Bueno estaba esperando a mi nena y me puse a ver frameworks de PHP, termine CakePHP esta genial de hecho, solo hay un componente que no me va mucho, ACL, es bastante dificil de usar y no le entendi la onda, ademas parece ser muy util, y no implementarlo usando CakePHP seria una lastima, asi que me puse a ver ademas que mas habia, y termine con un pequeño framework lightweight, Kohana, lo checare, pero me llamo la atencion, estaba viendo la Wiki y viene por default con como yo le digo "Almost Pretty Urls", es algo que se me ocurrio hace tiempo, nunca lo habia visto o prestado atencion a eso y aca tambien estaba implementado, entonces pense: Bueno, parece ser muy popular eso, vamos a postearlo.
La funcion es simple, y hace que las Urls se vean mucho mas bonitas (No como con mod_rewrite pero mejor que nada)

Simplemente llamen esta funcion siempre, ponganla en un archivo global de su app.

function fakeModRewrite()
{
$path = $_SERVER['PHP_SELF'];
$p = explode('/', $path);
array_shift($p);
array_shift($p);
$total = count($p);
$i = 0;
$fg = array();
while(($i <= $total) && ($total%2==0))
{
$fg[$p[$i]] = $p[$i+1];
$i+=2;
}
array_pop($fg);
$_GET = array_merge($fg, $_GET);
}


Hara que las urls se vean sitio.com/index.php/a/b/c/d
Eso es equivalente a sitio.com/?a=b&c=d
Mejor no? x)

martes, 14 de julio de 2009

CakePHP Primera Impresion


Ya estube jugando este dia con CakePHP y me parece bastante bonito, no necesita configuracion practicamente, "convention over configuration" funciona bastante bien, es bastante parecido a ruby pero muchisimo mas compatible y facil de instalar, y funciona tambien con muchas bases de datos.
Los modelos son faciles de linkear, estilo Django, me esta gustando mucho, ya hare un articulo sobre eso pero no sin primero hacer una app :)
En CakePHP se trabaja primero con la base de datos, despues con bake haces los modelos, views y controllers, o simplemente lo haces manualmente, y tenes Scaffold, en segundos, planeo utilizarlo...
Cada vez mas vago yo, ya no escribo Javascript normal desde que tengo JQuery, y quizas CakePHP me ayude mucho a la hora de hacer apps en PHP x)
Vere si hago una app (compleja), la subo y la comparto por aca!

lunes, 13 de julio de 2009

Cake PHP


La verdad hace años programo en PHP y nunca se me ocurrio usar un framework, pero ahora que estoy tan en la onda esa, instale EasyPHP (PHP + Mysql + Apache) y estoy probandolo, comentare que me parece y si realmente simplifica el desarrollo, es un framework muy popular que usa el modelo MVC y tiene buenos comentarios, los libros que consegui (de hecho solo seguire uno) no tienen muy buenos comentarios pero servira para empezar.
Lo bueno de este framework es que es en PHP, es decir no necesita ninguna configuracion rara ni dificil para los servidores de hoy en dia... La mayoria viene con soporte para PHP y MySQL, eso es todo lo que necesitas para poder usar Cake!
Por supuesto tambien tiene 'pretty urls' asi que necesitas mod_rewrite pero es opcional, por supuesto. Ahora vere como funciona este framework y comentare que me parece.

viernes, 10 de julio de 2009

Prevenir SQL Injection


Bueno ultimamente he estado en muchos sitios que son vulnerables a este tipo de ataques, si bien PHP no permite ejecutar varias queries en un mysql_query, si es un SELECT se pueden sacar muchos datos, entre ellos el nombre de usuario y password del admin, si es un login, podes facilmente logear como administrador, si es un INSERT o UPDATE tambien se pueden hacer muchas cosas, en fin... Si te estas preguntando que es SQL Injection, imaginate este sitio

sitio.com/?page=1

eso podria ser algo en php, como
$id = $_GET['id'];
$q = mysql_query("SELECT * FROM tabla WHERE `id`='$id'");
$r = mysql_fetch_array($q);
echo $r['contenido'];

Ahora que pasa si como pagina yo pongo

sitio.com/?page=1'; DROP TABLE 'tabla'; --

Asi es, la query ahora es
"SELECT * FROM tabla WHERE `id`='1'; DROP TABLE 'tabla'; -- '"

Como decia, PHP no permite hacer esto, dos queries en un mysql_query, pero otros lenguajes si, o quizas algun descuido, quien sabe, pero si hay formas que se puede llegar a ejecutar eso, y si es un login?
"SELECT * FROM users WHERE `user`='user' AND `pass`='pass'"

Se convertiria en
"SELECT * FROM users WHERE `user`='user' -- 'AND...."

Eso es, entrar como el usuario que desees, el admin es el mas vulnerable, en fin, casi todos los sitios usan bases de datos, y PHP + Mysql es muy comun, asi que mucho cuidado con eso! Ahora mostrare como cuidarte de esto en PHP, simplemente llama esta funcion en index o donde incluyas las demas paginas, si no usas ese sistema, siempre en donde ejecutes alguna query
function clean()
{
foreach($_POST as $key => $val)
{
$_POST[$key] = stripslashes(strip_tags(htmlspecialchars($val, ENT_QUOTES)));
$$key = stripslashes(strip_tags(htmlspecialchars($val, ENT_QUOTES)));
}
foreach($_GET as $key => $val)
{
$_GET[$key] = stripslashes(strip_tags(htmlspecialchars($val, ENT_QUOTES)));
$$key = stripslashes(strip_tags(htmlspecialchars($val, ENT_QUOTES)));
}
foreach($_COOKIE as $key => $val)
{
$_COOKIE[$key] = stripslashes(strip_tags(htmlspecialchars($val, ENT_QUOTES)));
$$key = stripslashes(strip_tags(htmlspecialchars($val, ENT_QUOTES)));
}
}


Enjoy!

miércoles, 8 de julio de 2009

Adobe Flex


Parece que hoy en dia, Eclipse esta de moda, es que hay que aceptarlo, es un IDE genial con un soporte genial de plugins... Aptana y Flex se basan en Eclipse, y tiene milies de plugins, en fin...Esto es sobre Flex.
Flex es un producto de Adobe (Originalmente de Macromedia) que sirve para querar RIA's. RIA significa Rich Application Development. Es como Flash para programadores.
El lenguaje principal es ActionScript, pero para la layout y muchas funciones hibridas, utiliza MXML, ademas de un IDE impecable, me tomo un dia aprender lo suficiente para hacer una aplicacion que lea un xml externo y muestre en una lista imagenes con una descripcion, agregar efectos, y muchos detalles, con Flex es asi de facil, que eso no te tomara mas de 20-30 lineas de codigo.
El lenguaje como dije, ademas de ActionScript, resaltaria MXML, para mi, un programador de Java/C# y PHP/Python/Web Developer, ver esos lenguajes fue como pasar de C# a Java.
Una aplicacion de FX es simplemente, un archivo el cual tiene MXML y embedido ActionScript, luego es "compilado" con el SDK a un SWF, y eso es todo. Pero el IDE tiene una vista de WYSIWYG, podes hacer drag-and-drop y acomodar los componentes, bien al estilo Visual Basic.
Realmente me parece muy simple y conveniente, la unica razon que me mantenia alejado de flash se borro y decidi utilizarlo :)
Ahora voy a mostrar basicamente que es MXML, como veran XML es del lenguaje eXtensible Markup Language, M es por Macromedia (Flex existia cuando macromedia aun existia).
Es importante la X. Extensible, significa que podes extenderlo, y es lo que lo hace genial para definir la interface y datos.
ActionScript es un lenguaje bastante parecido a php y java practicamente no tiene curva de aprendizaje si conoces esos, y MXML es solo agarrarle la mano en 1 o 2 dias de programar, y ya lo tenes, ademas el IDE ayuda mucho.
Hay muchisimos tutoriales, con iniciativa en muy poco tiempo se pueden hacer aplicaciones Flash que nunca pensaste podrias!
En conclusion, muy recomendable, escribire un Knol sobre eso y lo publicare pronto.

Google Chrome OS: El sistema operativo de Google


Como anuncio google, estan trabajando en su sistema operativo, el cual afirman sera basado en linux, muy muy rapido, muy orientado a web, y a la performance y facilidad de uso. Ellos quieren que solo necesites enchufar una impresora para que funcione en tu pc, como deberia ser.
Un sistema operativo de google "is something Microsoft has been worried about for a long time," dijo Matt Rosoff, analista con Directions de Microsoft. En español eso seria "Un SO de Google es algo que nos ha estado preocupando por un largo tiempo", pero tambien afirma que no se verian amenzados ahora, sino en como 10 años, considerando que el SO de google sale el 2010. (A fines del 2009 saldria el codigo a la comunidad opensource)
Vale mencionar que el OS de Google sera gratis y opensource, todas las ventajas de linux y muchas nuevas de Google por venir, tambien es importante mencionar los afiliados de Google en esta campaña: Acer, Adobe, ASUS, Hewlett-Packard, Lenovo, Qualcomm, Satanas, Umbrella Corp, Texas Instruments.
Acer y Asus son de los mas populares fabricantes, y HP no se queda atras, esta trabajando duramente con estos tipos y sus chips, para optimizar todo lo que puedan el SO.
Tengo curiosidad, espero no sea 100% orientado a web y se pueda instalar eclipse y IDE's, y programas como Gimp o hasta AMSN o alguna compatibilidad especial de Google, en fin, aver que trae, seguro sera algo simplista y con mucho potencial, pero el potencial si no se utiliza se convierte en desperdicio, asi que espero sea para bien.
Go Google!

martes, 7 de julio de 2009

Fonts que deberias usar

Mi lado de diseñador no se ha mostrado mucho en este blog, sin embargo es que asi soy, no me interesa ya tanto el diseño, pero si me interesan los nuevos hacks de CSS y tips, ya que soy un desarrollaor web completo, no me limito ni a plataforma ni framework ni lenguaje ni diseño ni css ni nada, hago todo y siempre busco aprender cosas nuevas, y me cruze con un lindo set de fonts que se pueden usar porque son bastante comunes en Windows y Mac.
Las fonts son:
  • Palatino Linotype
  • Tahoma
  • Impact
  • Century Gothic
  • Arial Black
  • Arial Narrow
  • Copperplate / Copperplate Gothic Light
  • Gill Sans / Gill Sans MT
  • Segoe Ui
Usar letras raras le da un pequeño boost a nuestros diseños, y mas si son simplistas!
Enjoy!

lunes, 6 de julio de 2009

Having fun with Django


Bueno, me dio por aprenderlo y en un futuro no muy lejano quizas usarlo con AppEngine, Django.
Estoy siguiendo este libro el cual es gratis y me parece muy bueno, sera buena referencia, y ya estoy entendiendo la idea del framework.
Tambien vi Rails pero ese lo dejare para mas adelante, la idea es hacer una app interesante en Django, y despues portarla a AppEngine con Django, cambian muchas cosas, pero para eso tengo que tener bien claro los dos frameworks.
Tambien estube viendo silverlight, y despues de Django, leere el cortito libro que encontre de Silverlight 2, y posteare como me va con eso, parece bastante util y no viene mal ver las tecnologias de microsoft, siempre son faciles de developear y tenes el soporte que muchos lo usan y seguira siendo desarrollada.
En fin, Django esta bueno, Python esta bueno, aunque no soy un fan, admito que si esta bueno.
Posteare mi futura app en Django en un futuro :)