Comentarios Recientes

OpenCV en PHP: Detectando caras en imagenes

| Categorías PHP, Programacion, Redes Sociales, Software Libre, internet | | Comentario 0

Hace unas semanas mi amigo David Tavarez publicó en su Blog un artículo sobre OpenCV, que no es mas que unas librerías bastante interesantes, que permiten identificar un rostro en una imagen.  Estas librerías no solo existen para PHP, sino que también la podemos encontrar en C++, Python, otros.

Les dejo una cita del post:

OpenCV wrapper to detect faces with PHP. The extension offers the two new functions: face_count() and face_detect(). In princible, they differ only by their return value. The first returns only the number of faces found on the given image and the other an associative array of their coordinates. face_count() serves only to save the loops for counting. Examples:
OpenCV in PHP example 1
OpenCV in PHP example 2

Face detection in pure PHP (without OpenCV). This is a PHP Class to face recognition without OpenCV, it use an data file, but not external libraries. We can use it with few code:

 
$detector = new Face_Detector('detection.dat');
$detector->face_detect('maurice_svay_150.jpg');
$detector->toJpeg();

Example:
Example FaceDetection

number of view: 42

Comandos interesantes: Manual wget

| Categorías Linux, Sistemas Operativos, Software Libre, Tutoriales, internet | | Comentario 0

Wget es un comando en Linux muy interesante y poderoso.  Su función más simple es descargar archivos desde la web, soportando transferencias sobre protocolos como FTP, HTTP y HTTPS.

Pues como se pueden descargar archivos, cuando intentamos descargar una página, simplemente WGET nos trae el contenido HTML de esta página.  Ahí es que viene lo de interesante, pues este comando tiene unas opciones sumamente poderosas, las cuales podemos utilizar para crear arañas, por ejemplo, como es la opción “-r”, que se refiere a recursivo.

(more…)

number of view: 46

Mi reflexión sobre Mozilla y el problema de H.264

| Categorías Apple, Software Libre, Tecnologia, google, internet | | Comentario 0

Hace varios días estamos escucFirefox HTML5hando las noticias de que Youtube y Vimeo presentan sus videos utilizando HTML5 en vez de utilizar Adobe Flash, y es algo realmente interesante.  Resulta que tanto Vimeo como Youtube han optado por utilizar H.264 para la compresión de video, un formato privativo el cual debe ser pagada una licencia para poder incluirlo en los navegadores web.

Firefox ya incluye HTML5 en sus versiones más recientes, pero sólo soporta el formato Ogg Theora, el cual es un formato libre, al igual que lo es Firefox. Por tanto, sólo Chrome y Safari son capaces de reproducir los videos, lo que podría significar un golpe bastante duro a Firefox.  Entonces aquí viene la discusión: Incluir soporte a un formato Privativo para usar Youtube, o utilizar un plugin como Flash, que también es privativo???

De repente no se que pensar, pero bueno, ninguna de las opciones pretende fomentar el uso de Software Libre, entonces, cuál es la discusión? Personalmente creo que Mozilla tiene mucho que pensar…Qué opinan ustedes??

number of view: 96

Libro GNU/Facil de Antonio Perpiñan y la FCLD

| Categorías Linux, Personal, Sistemas Operativos, Software Libre, Tecnologia, internet | | Comentario 0

Antonio Perpiñan es el presidente de la Fundación Código Libre Dominicano, una institución dedicada a la enseñanza y capacitación en Software Libre, en todas las áreas del Software.  Antonio Perpiñan ha escrito varios libros sobre GNU/Linux, desde los niveles más básicos hasta los más avanzados.

Ésta semana, la Fundación Código Libre Dominicano(FCLD) presenta la 4ta edición de GNU/Fácil, un libro orientado al aprendizaje de sistemas GNU/Linux para principiantes, basado en la super popular Distro Ubuntu Linux.  Hace ya unos años yo me apoyé en este libro y realmente lo recomiendo.

Además de este libro, podrán encontrar otros más para niveles más avanzados y aplicaciones más específicas como Networking, por ejemplo.

Pueden descargar los libros desde Aquí.

number of view: 98

Apple es el blanco, hasta para humoristas!

| Categorías Apple, Sistemas Operativos, Software Libre, Tecnologia, telecomunicaciones | | Comentario 0

Realmente debemos reconocer que Apple ha hecho un excelente trabajo en todo su trayectoria, muchas veces innovando, otras veces “mercadeando”;  y por qué no, satisfaciendo sus clientes.

Ahora tenemos con nosotros el tan esperado iPad, que muchos no lo ven como la gran cosa, y otros ya están preparando los llamados “iPad Killers”, así mismo como han intentando crear “iPhone Killers”.  Pero no sólo quienes fabrican dispositivos o quienes desarrollan Sistemas Operativos  están apuntando sus rifles hacia Apple, sino también humoristas.  Aquí esta la muestra :P :D :

iPad

number of view: 80

Resumen de Noticias…

| Categorías Apple, Linux, Microsoft, Noticias, Sistemas Operativos, Software Libre, Tecnologia, Windows, google, internet, twitter | | Comentario 0

number of view: 70

Firefox 3.6 + advertencia de no usar Internet Explorer

| Categorías Microsoft, Software Libre, internet | | Comentario 1

Como todos sabemos,  algunos países europeos han recomendado no usar Internet Explorer por razones de seguridad.   Esto ha desatado un ola de descargas de navegadores alternativos, como es el caso de Firefox.  Tanto así que en Alemania se han producido 300,000 descargas por encima del promedio.

Las descargas de Opera han aumentado alrededor de un 37%, y aunque no se tiene dato de Chrome, se supone que también ha aumentado el promedio de descargas.  Nuevamente podemos ver como Internet Explorer sigue perdiendo y perdiendo terreno en esta guerra.  Lo peor del caso(para Internet Explorer) es que en estos momentos la tendencia es cada vez más utilizar un navegador para todo lo que hacemos en nuestras computadoras(o smartphones).

Para hacer mas duro el golpe, Firefox acaba de lanzar su version 3.6, la cual promete ser mucha más rápida que la anterior versión, y trayendo nuevas caraterísticas bastante interesantes.  Veamos:

number of view: 157

Arranque de Ubuntu 10.04 con Plymouth

| Categorías Linux, Sistemas Operativos, Software Libre | | Comentario 2

Los chicos de Ubuntu pretenden acelerar el proceso de arranque del sistema cambiando USplash por Plymouth, algo que se verá como esto:

number of view: 156

Miguel De Icaza: Microsoft Most Valuable Professional!!!

| Categorías Linux, Microsoft, Software Libre, Windows | | Comentario 3

Logo Proyecto MonoPara quienes no lo saben, Miguel De Icaza es quien en 1997 inicia el sumamente utilizado entorno gráfico GNOME, utilizado como escritorio por defecto en distribuciones como Ubuntu o Fedora.  Miguel De Icaza también inicia el proyecto Mono, el cual ha aportado grandemente al lenguaje C# de Microsoft.

Es por estos grandiosos aportes que Miguel De Icaza ha sido nominado al codiciado premio de Microsoft MVP.

Y como dicen en VivaLinux.com.ar, ahora esperaremos a escuchar que opinará Richard Stallman, luego de que le haya llamado traidor a De Icaza

number of view: 167

Funcion para Debugging en PHP

| Categorías PHP, Programacion, Tutoriales, internet | | Comentario 0

Aquí les dejo una interesantísima función para imprimir el contenido de una variable, ya sea un objeto, un string, un array…

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
< ?php
function show_php($var,$indent='&nbsp;&nbsp;',$niv='0')
{
    $str='';
    if(is_array($var))    {
        $str.= "<b>[array][".count($var)."]<br />";
        foreach($var as $k=>$v)        {
            for($i=0;$i< $niv;$i++) $str.= $indent;
            $str.= "$indent<em>\"{$k}\"=>";
            $str.=show_php($v,$indent,$niv+1);
        }
    }
    else if(is_object($var)) {
 
        $str.= "<b>[objet]-class=[".get_class($var)."]-method=[";
        $arr = get_class_methods($var);
           foreach ($arr as $method) {
               $str .= "[function $method()]";
           }
        $str.="]-";
        $str.="</b>";
        $str.=show_php(get_object_vars($var),$indent,$niv+1);
    }
    else {
        $str.= "<em>[".gettype($var)."]</em>=[{$var}]<br />";
    }
    return($str);
}
?>

Esta interesante función fue tomada de PHP.net

number of view: 135

Piropos de un Nerd

| Categorías Linux, Microsoft, PHP, Programacion, Sistemas Operativos, Tecnologia, google, internet | | Comentario 0

  • El .gif que anima mi vida.
  • En la cama eres puro overclocking.
  • Tienes permisos de root en mi vida.
  • Tus deseos son signals para mí.
  • Te pienso más que las paginas indexadas por google.
  • Sin ti mi vida sería como una web sin CSS.

Artículo Completo Aquí

number of view: 158

Friendly URL solo con .htaccess y RewriteRule

| Categorías PHP, Programacion, Tutoriales, google, internet | | Comentario 1

Hace varios meses, les había mostrado como hacer URLs Friendly con .htaccess y PHP.  Hoy les muestro una forma de hacerlo que puede resultar más fácil y se presta a diferentes situaciones.
En el primer caso les mostraré  como hacer una URL que contenga algún “id” o parámetro, como para un e-commerce y los artículos.
RewriteBase /
RewriteRule ^(.*)-(.*).html$ products.php?id=$2

En este ejemplo, prodremos escribir URLs de este tipo:

http://www.ejemplo.com/mi_producto_favorito-451.html

Esto sería lo mismo que escribir:

http://www.ejemplo.com/products.php?id=451

De manera que estamos haciendo lo mismo, pero de manera “más estética” y aplicando nuestras técnicas de SEO ;) .

Otro ejemplo es algo más simple, pero funcional.  Ahora les muestro como crear, por ejemplo, documentos XML dinámicos.

RewriteBase /
RewriteRule ^googlefeed.xml$ googlebase.php
Este ejemplo realmente lo he utilizado para crear feeds para Google Base.  La idea es que el XML se genera “en vivo”, por así decirlo,  de manera que no se pierde ningún artículo a la hora de que el Robot de Google descargue el documento en cualquier momento.
number of view: 235

Navegadores de mis visitantes: Firefox arriba, IE abajo

| Categorías Apple, Linux, Microsoft, Redes Sociales, Sistemas Operativos, Software Libre, Windows, internet | | Comentario 1

Bueno aquí les muestro unas imágenes interesantes que muestran las tendencias de mis visitantes.  Como se podrá comprender, este no es un blog de noticias y pues la gente que lo visita sabe la diferencia entre un navegador y otro. Veamos:

Navegadores Visitantes Williams Mendez

Se puede observar que, gracias a Dios, los que utilizan Internet Explorer son menos hasta que los que usan Safari!!! Eso no es muy común, pero me alegra que la gente se de cuenta de que Internet Explorer es una porquería :P .

Y lo más interesante es que una muy gran parte de mis visitantes usan Microsoft Windows:

Sistemas Operativos Visitantes Williams Mendez

number of view: 182

Frameworks: ¿Son realmente factibles?

| Categorías PHP, Programacion, Zend Framework | | Comentario 3

El uso de Frameworks hace la vida de un programador, muchas veces, más sencilla o menos monótona, no teniendo así que escribir y reescribir el mismo código decenas de veces en aplicaciones diferentes.  Además de esto, hacen que se mantenga cierto patrón al escribir programas(siempre y cuando estemos conscientes de lo que estamos haciendo), dándole algo de uniformidad al código y se puede decir que un estilo fácil de entender.

Por otro lado, tenemos otras ventajas obvias, como es el uso de clases y métodos que no nos interesa desarrollar, ya sea porque sería complicado o porque no nos importa.

Es claro que estas maravillosas herramientas han aportado al ágil desarrollo de aplicaciones, de la misma manera que han contribuido a que no nos preocupemos por ciertos algoritmos, pues ya están hechos y listos para ponerlos en práctica.  También es una grandísima ventaja el hecho de trabajar con códigos bien revisados y probados(cuando utilizamos frameworks Open-Source o de empresas que pagan por su mantenimiento).

Ahora bien, todo eso es maravilloso cuando ya hemos estudiado un framework en específico, pues para muchos el hecho de tener que aprender un framework o peor aún, luego de haber aprendido un framework, cambiarse a otro, es una tarea casi tan complicada como escribir tu propio código o desarrollar tu propio framework.

Según este post: Do Frameworks Fail? When?, el uso de frameworks aún presenta tres problemas:

  • La curva de aprendizaje, que empeora cuando ya un framework no está siendo mantenido.
  • Eficiencia del Código: Muchas veces consumen muchos recursos y el programador no tiene control sobre esto.
  • El costo de Propiedad: Muchos te enseñan como hacer lo fácil, pero lo difícil seguirá siendo aún más difícil, y tendrás que invertir tiempo(lo cual es dinero) en buscar el framework más apropiado.

No por esto debemos dejar de utilizar un framework, pero si debemos tener en cuenta cuál es el que se ajusta a cada necesidad.

number of view: 339

Tabla de Comparación de tipos de datos en PHP

| Categorías PHP, Programacion, Software Libre | | Comentario 0

Comparisons of $x with PHP functions
Expression gettype() empty() is_null() isset() booleanif($x)
$x = “”; string TRUE FALSE TRUE FALSE
$x = null NULL TRUE TRUE FALSE FALSE
var $x; NULL TRUE TRUE FALSE FALSE
$x is undefined NULL TRUE TRUE FALSE FALSE
$x = array(); array TRUE FALSE TRUE FALSE
$x = false; boolean TRUE FALSE TRUE FALSE
$x = true; boolean FALSE FALSE TRUE TRUE
$x = 1; integer FALSE FALSE TRUE TRUE
$x = 42; integer FALSE FALSE TRUE TRUE
$x = 0; integer TRUE FALSE TRUE FALSE
$x = -1; integer FALSE FALSE TRUE TRUE
$x = “1″; string FALSE FALSE TRUE TRUE
$x = “0″; string TRUE FALSE TRUE FALSE
$x = “-1″; string FALSE FALSE TRUE TRUE
$x = “php”; string FALSE FALSE TRUE TRUE
$x = “true”; string FALSE FALSE TRUE TRUE
$x = “false”; string FALSE FALSE TRUE TRUE
Loose comparisons with ==
TRUE FALSE 1 0 -1 “1″ “0″ “-1″ NULL array() “php” “”
TRUE TRUE FALSE TRUE FALSE TRUE TRUE FALSE TRUE FALSE FALSE TRUE FALSE
FALSE FALSE TRUE FALSE TRUE FALSE FALSE TRUE FALSE TRUE TRUE FALSE TRUE
1 TRUE FALSE TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE
0 FALSE TRUE FALSE TRUE FALSE FALSE TRUE FALSE TRUE FALSE TRUE TRUE
-1 TRUE FALSE FALSE FALSE TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE
“1″ TRUE FALSE TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE
“0″ FALSE TRUE FALSE TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE
“-1″ TRUE FALSE FALSE FALSE TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE
NULL FALSE TRUE FALSE TRUE FALSE FALSE FALSE FALSE TRUE TRUE FALSE TRUE
array() FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE FALSE FALSE
“php” TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE
“” FALSE TRUE FALSE TRUE FALSE FALSE FALSE FALSE TRUE FALSE FALSE TRUE
Strict comparisons with ===
TRUE FALSE 1 0 -1 “1″ “0″ “-1″ NULL array() “php” “”
TRUE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
1 FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
0 FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
-1 FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
“1″ FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE
“0″ FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE
“-1″ FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE
NULL FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE
array() FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE
“php” FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE
“” FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE
number of view: 203