Comentarios Recientes

Navegadores de mis visitantes: Firefox arriba, IE abajo

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

Number of View: 1702

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

Frameworks: ¿Son realmente factibles?

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

Number of View: 1461

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.

Tabla de Comparación de tipos de datos en PHP

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

Number of View: 1999
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

Demo de VideoLAN Movie Creator: Excelente!!!

| Categorías Linux, Software Libre, Tecnologia | | Comentario 0

Number of View: 515

Antes de ayer les traíla la maravillosa noticia de que los muchachos del proyecto VideoLAN, los mismos creadores del sumamente poderoso reproductor VLC, están desarrollando un proyecto llamada VideoLAN Movie Creator (VLMC), y hoy les traigo un video de una demostración en Linux del funcionamiento de este nuevo y esperado proyecto.

20% de Divorcios gracias a Facebook

| Categorías facebook, internet, Redes Sociales, twitter | | Comentario 0

Number of View: 1673

Divorce Online es una empresa que se dedica a brindar asistencia en cuanto a tramites legales y esas cosas para un divorcio.  Según Mark Keenan, director de esta empresa, el 20% de los divorcios, de alguna u otra manera, están ligados a Facebook.  Los motivos de estos divorcios han sido por conversaciones y cosas que, como ya les había comentado antes, no se deben hacer :P .

Aunque no estoy de acuerdo con que usted le sea infiel a su pareja o que haya haciendo cosas por ahí, por lo menos señor@s sean algo más discretos, usan las redes sociales de una mejor manera, pues como les había dicho: “Donde está nuestra privacidad?”, aquellas cosas que nos hacen interesantes…

Google Nexus One: Video que da mas detalles

| Categorías google, Linux, Noticias, Sistemas Operativos, Tecnologia, telecomunicaciones | | Comentario 0

Number of View: 481

En este video se pueden observar más características en cuanto al software de este móvil de Google.  Ya estamos cansados de ver la interfaz de Android, pero aquí se pueden apreciar ciertas diferencias que lo caracterizan y que me parecen interesantes:

VideoLAN Movie Creator

| Categorías Software Libre, Tecnologia | | Comentario 1

Number of View: 824

Los desarrolladores del proyecto VideoLAN, autores del excelente VLC Media Player, anunciaron oficialmente en una reciente reunión en París su nuevo VideoLAN Movie Creator (VLMC), una aplicación de edición video que ofrecerá herramientas para “crear películas de calidad semi-profesional” pero que al mismo tiempo se mantendrá “simple y amigable para el usuario”.

Cabe destacar que VLC Media Player es un reproductor realmente excelente, tanto en Windows como en Linux( mi experiencia en Mac se ha limitado a PHP, así que no puedo opinar).  Este nuevo proyecto me parece muy interesante y confío en un buen trabajo de parte de estos chicos.

Para leer el articulo original: VivaLinux.com.ar

La Web es el futuro(si no te has dado cuenta que es el presente)

| Categorías facebook, google, internet, Linux, Microsoft, Personal, Redes Sociales, Sistemas Operativos, Tecnologia, telecomunicaciones, twitter | | Comentario 1

Number of View: 1603

Cada día nos hacemos más dependientes de Internet, y ahora aún más con todos los Smartphones que tenemos en el mercado y los que se aproximan.  Las redes sociales nos hacen presión y nos dicen: “No te vayas!! Me necesitas!!”, y les hacemos caso.  Ya no sólo escuchamos música en nuestras computadoras mientras trabajamos o jugamos o navegamos, sino que hay todo un mundo diferente en la Web.

Con la llegada al medio de la Web 2.0, Web services,  Cloud Computing, entre otras cosas, me parece a mí que no hay grandes necesidades de Aplicaciones de Escritorio mas que para aquellas aplicaciones que necesariamente deban acceder el hardware del equipo, es decir, aplicaciones de bajo nivel.

Es por esto que Google ha tenido esa iniciativa de crear un Sistema Operativo basado en un Navegador(Google Chrome).  Hay personas que se están olvidando sus Laptops, pues con su iPhone hacen todo lo que “necesitan”.

Aparte de esto, cada día vemos como empresas han migrado sus Aplicaciones de Escritorio a Aplicaciones Web.  Y esa es la tendencia.  Un ambiente más ligero, más agradable a la vista, más seguro y sobre todo, pero muy sobre todo, totalmente multiplataforma.

Multiplataforma.  Microsoft Windows, GNU/Linux, Mac OS…Chrome OS??? Cual elegirías tú? Cuál versión? Por qué no nos olvidamos de eso y preguntamos: cuál Navegador voy a utilizar? Qué importa! Ya todos son buenos! Multiplataforma, el gran dolor de cabeza de los desarrolladores de Software.

Increíblemente estoy diciendo que Google Chrome OS tendrá su futuro…Yo mismo me negaba a creerlo, pero sí, sólo así podremos romper los problemas de compatibilidad de aplicaciones…Multiplataforma…Multiplataforma…La Web es el Futuro

Resumen de Noticias.

| Categorías Apple, google, internet, mysql, Noticias, Tecnologia, telecomunicaciones | | Comentario 0

Number of View: 609

MySQL 5.5 Beta : Slashdot.org

Terminales HTC para el 2010: Androidapps.es

iPhone 46% del mercado Japonés de SmartPhones: Slashdot.org

Google Multado con 300,000.00 €: MuyComputer.com

Especificaciones Bluetooth 4.0 : MuyComputer.com

Firefox 3.6: Drag & Drop

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

Number of View: 875

La próxima versión de Firefox, entre otras cosas, nos viene con Drag & Drop para formularios.  La idea es que en vez de usar la forma tradicional de subir archivos, hagas drag & drop de los archivos dentro del formulario.  Miren:

Preview KDE 4.4

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

Number of View: 609

Este par de videos (ambos disponibles también en HD) muestran algunas de las novedades que traerá KDE 4.4, planeado para el próximo mes de Febrero, tal como ya están disponibles en la rama inestable de su repositorio de desarrollo.

Fuente: VivaLinux.com.ar

LTE (4G) en Suecia!!A

| Categorías internet, Tecnologia, telecomunicaciones | | Comentario 0

Number of View: 458

Según la definición de LTE en Wikipedia:

LTE (Long Term Evolution) es un nuevo estándar de la norma 3GPP. Definida para unos como una evolución de la norma 3GPP UMTS (3G) para otros un nuevo concepto de arquitectura evolutiva (4G). De hecho LTE será la clave para el despegue del internet móvil, servicios como la transmisión de datos a más de 300 metros y videos de alta definición, gracias a la tecnología OFDMA, serán de uso corriente en la fase madura del sistema.

En Suecia ya se empezó a implementar este maravilloso servicio en 2 ciudades.  Hasta el momento es muy reducido el número de clientes que podrán tener acceso al servicio, ya sea porque hay muy pocos equipos que soporten esta nueva generación como por los 57 Euros mensuales que costará el servicio.

En un principio se podrá acceder a velocidades de hasta 52Mbps pero se planea llevarlo a 80Mbps.

Fuente: MuyComputer.com

iPHP: Shell Interactivo para PHP

| Categorías PHP, Programacion | | Comentario 0

Number of View: 755

iPHP es un proyecto que planea desarrollar un Shell interactivo para PHP, al igual que existe en Python y el “irb” en Ruby, que realmente son herramientas muy poderosas y, a mi entender, muchas veces necesarias.  Hace un buen tiempo que estuve esperando esto, pues muchas veces he sentido la necesidad de una aplicación de este tipo.

El Interactive Shell es un Shell que permite evaluar expresiones arbitrarias y que muestra el resultado en tiempo real a medida que vas escribiendo tu script.  Este Shell es sumamente útil si estamos Debbuging, probrando cosas rápidamente, en fin, una herramienta muy poderosa.

Aquí les dejo algo para que vean de que se trata:

iphp is an interactive php shell that solves a number of painful problems with normal php shells:

  • Fatal Error handling – iphp doesn’t die even if your code does.
  • readline support
  • autocomplete support (tab key)
  • history support across runs
  • support ctags tags files
  • implemented as a class for integration with your framework
  • require support (supports dynamic includes)
  • autoload support

Example:

> new ArrayObject(array(1,2))

ArrayObject Object
(
[0] => 1
[1] => 2
)

> $_[0] + 1
2

Limites de Twitter

| Categorías internet, Noticias, Redes Sociales, twitter | | Comentario 2

Number of View: 756

En Twitter también existen límites, los cuales intentan evitar que se utilice el servicio como SPAM.  En MuyComputer.com publican un artículo de cual cito lo siguiente:

Twitter muestra un mensaje de error en el navegador cuando por ejemplo se sobrepasan las 1.000 actualizaciones diarias desde cualquier dispositivos, los 250 mensajes directos en un día o 150 solicitudes de API por hora. Después de 24 horas, se vuelve a tener este amplio margen de maniobra dentro del servicio de microblogging.

Respecto al número de usuarios seguidos, Twitter no permite un seguimiento masivo de usuarios y por ello sólo ofrece la posibilidad de tener 100 followings nuevos al día. Además, el número de followers y followings debe estar compensado: no es lógico que un usuarios siga a 10.000 perfiles mientras que él sólo le siguen 100. La balanza debe estar compensada.

Cada usuario sólo puede crear 20 listas independientemente de que sean públicas o privadas. Además, dentro de cada lista no puede haber más de 500 seguidores. En el caso de las búsquedas, sólo se pueden guardar un máximo de 10.

Para leer el artículo completo: MuyComputer.com

Parametros en la linea de comandos en PHP

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

Number of View: 1208

Mucha gente tiene la confusión de si se puede o no correr un programa escrito en PHP desde la línea de comandos.  Pues aquí les respondo que sí y les traigo algo para que vayan comprendiendo su funcionamiento.

El siguiente ejemplo se trata de un pequeño compresor de archivos con una técnica muy barata que he hecho para una clase de Codificación y que luego les mostraré de qué se trata.

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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
< ?php
/**
* Compress.php
*
* ejemplo de corrida:
* $ php compress.php  ARCHIVO_ENTRADA
* $ php compress.php -d ARCHIVO_ENTRADA  ARCHIVO_SALIDA
*/
//saber los parametros que fueron pasados al correr el programa
if($argc < 2 )
    exit("Debe especificar al menos el archivo de entrada.\n");
 
define('COMPRESS',1);
define('UNCOMPRESS',2);
 
//saber que opcion se ha tomado
/**
 * La opcion '-c' es para comprimir
 * La opcion '-d' es para decomprimir
 * si no se especifica opcion, se va a comprimir
 */
if($argv[1][0] == '-') {
    switch($argv[1]) {
        case '-c':
            $action = COMPRESS;
            break;
        case '-d':
            $action = UNCOMPRESS;
            break;
        default:
            die("Opcion '{$argv[1]}' Incorrecta. Utilice '-c' para comprimir y '-d' para decomprimir.\n");
    }
    //archivo de entrada
    $source_file = $argv[2];
    //se verifica si el usuario especifico archivo de salida, de lo contrario
    // se verifica si se va a comprimir para generar el fichero de salida.
    // Si es para decompresion, se debe especificar el fichero de salida.
    if($argc > 3)
        $destination_file = $argv[3];
    else if($action == COMPRESS){
        $ext = end(explode(".", $source_file));
        $destination_file = str_replace(basename($source_file),str_replace($ext,'wmz',basename($source_file)),$source_file);
    }else{
        die ("Debe especificar el archivo de salida, no se conoce la extension del archivo original\n.");
    }
}
else {
    //Lo mismo que el paso anterior, pero ahora se sabe que es compresion porque
    // no se especificó una opcion y se asume compresion.
    $action = COMPRESS;
    $source_file = $argv[1];
    if($argc > 2)
        $destination_file = $argv[2];
    else {
        $ext = end(explode(".", $source_file));
        $destination_file = str_replace(basename($source_file),str_replace($ext,'wmz',basename($source_file)),$source_file);
    }
}
 
//Incluimos la clase BitMapping
//Notese que se producirá un error Fatal si no existe el fichero BitMapping.php
require_once 'BitMapping.php';
// Crear instancia
$compressor = new BitMapping($source_file,$destination_file);
//Proceder a Comprimir o Decomprimir
switch($action) {
    case COMPRESS:
        $compressor->compress();
        break;
    case UNCOMPRESS:
        $compressor->uncompress();
        break;
}
?>

En los próximos días publicaré la Class que comprime y decomprime =)