Blogia
Ambigel + Foto[b]log

tecnología

Busquedas en Internet Explorer con Google Colombia

Google

Después que pude poner a GOOGLE como mi motor de búsqueda predeterminado en Internet Explorer, al buscar algún término me dirigía a GOOGLE UK (inglaterra).

En el archivo adjunto encontrarán la clave de regedit que corregirá esto por ustedes...

Seguir leyendo y ver video ->

Recuerda, he mudado el blog a WORDPRESS: http://ambigel.wordpress.com donde encontrarás contenido mas actualizado.

La visión de STEVE JOBS sobre el trabajo en equipo y APPLE como la STARTUP mas grande del mundo

Esta es una traducción personal (la hice yo) y no literal de la entrevista sostenida, creo que se puede aprender mucho sobre dirección de las empresas y el liderazgo.

Uno de los secretos claves de Apple es que es una increíble empresa de colaborativa, sabes cuantos comités hay en Apple? cero, no hay comités.

Seguir leyendo y ver video ->

Recuerda, he mudado el blog a WORDPRESS: http://ambigel.wordpress.com donde encontrarás contenido mas actualizado.

Sitios Webs para móviles

Los que desarrollamos sitios WEB nos encontramos a menudo con la necesidad de hacer un sitio adaptable tanto para equipos de escritorio (desktop o laptops) y que también pueda usarse en dispositivos móviles como celulares y tablets (Apple Ipad, Motorola Xoom, Samsung Galaxy Tab y otros).  Lastimosamente no siempre usar los estándares brindará el mejor resultado, ya que muchos dispositivos no logran interpretarlos correctamente, de esto me di cuenta esta semana ya que creía que con solo programar WEB SEMÁNTICA era suficiente y al probar mi web en una BLACKBERRY esta la interpretaba no en versión para móviles sino como una página web normal y requería hacer acercamientos (zoom) y desplazamientos para poder leerla.

Pantallazo de la página en el pc

Pantallazo de la página en el celular

SOLUCIÓN #1, SOLUCIÓN ESTÁNDAR: UN ESTILO VISUAL PARA CADA DISPOSITIVO

Además de programar WEB SEMÁNTICA debemos especificar para que tipo de dispositivo es cada plantilla de estilos, siendo "screen" los estilos especificados para computadores, "handheld" para dispositivos de mano y hay muchos otros dispositivos: http://www.w3.org/TR/CSS2/media.html

<link href='/css/benkos-screen.css' rel='stylesheet' type='text/css' media='screen'>
<link href='/css/benkos-handheld.css' rel='stylesheet' type='text/css' media='handheld'>

Sin embargo esto no funciona siempre, por ejemplo el navegador de la BLACKBERRY se identifica como "screen" y no como "handheld", y no encontré en Internet una solución, los siguientes puntos explican como sortear el problema.

 

SOLUCIÓN #2, SOLUCIÓN POPULAR: CREAR UN SITIO PARA CADA TIPO DE DISPOSITIVO

Esto requiere de una página muy básica que permita preguntar o autodetectar que dispositivo usa el visitante y llevarlo a la página específica para este; esto lo vemos cuando navegamos a Google desde un celular y este nos redirige de http://www.google.com a http://m.google.com

SOLUCIÓN #3, MI SOLUCIÓN: FORZAR LA APLICACIÓN DEL ESTILO CORRECTO

Primero que todo, debemos incluir una etiqueta para que la página no aparezca como una miniatura, sino que busque ajustarse en la pantalla actual; en este momento es que programar WEB SEMÁNTICA va a ser importante.

<meta name="viewport" content="width=device-width" />

 

Al agregar la línea se mejora la apariencia de la página, ya parece un diseño para móviles

Luego tenemos dos opciones para forzar una plantilla de estilos, la primera es en javascript muy básico el cual puede correr en la mayoría de celulares, pero hace que nuestra página no pase el validador de la W3C:

<script type="text/javascript" >
var plataforma = navigator.platform;
var dispositivo = (plataforma == "Win32" || plataforma == "Win64" || plataforma == "MacPPC" || plataforma == "MacIntel" || plataforma == "X11" || plataforma == "Linux i686") ? "screen" : "handheld";
document.write("<link href='/benkos/css/benkos-" + dispositivo + ".css' rel='stylesheet' type='text/css' media='screen, handheld'></link>");
</script>

 

La segunda opción es en PHP y funciona de la misma forma que la solución de javascript con la ventaja que nuestra página si pasará el validador de la W3C 

<?php
$plataforma = $_SERVER["HTTP_USER_AGENT"];
$dispositivo = (strpos($plataforma, 'Windows') || strpos($plataforma, 'Linux') || strpos($plataforma, 'Macintosh')) ? 'screen' : 'handheld';
echo "<link href='/benkos/css/benkos-$dispositivo.css' rel='stylesheet' type='text/css' media='screen, handheld'></link>n";
?>

 

El resultado ya es el esperado y tiene diseño css

En las dos opciones verán que en media se utilizan los dos tipos de dispositivos para asegurarnos que siempre se muestre el contenido como queremos sin importar como se identifique el celular a si mismos (como la BLACKBERRY). Mientras que para tablets podríamos aplicar la plantilla original ya que se aprovecharía mejor el tamaño de la pantalla:

Espero que le sea de ayuda a todos

Caldo de Gallina Colombiano (con 25% de cilántro)

Caldo de Gallina Colombiano (con 25% de cilántro)

Ahora robándole un poco de terreno a los ingenieros industriales, muchas veces la innovación consiste en darle una respuesta práctica a una interrogante común, es así que de tanto ver a mi mujer (@PAHOLACHOCOLATE) cocinar me he dado cuenta que hay elementos fundamentales en la cocina colombiana y dos de ellos son el caldo de gallina y el cilántro, así veo que sería muy provechoso crear un caldo de gallina que además tenga un concentrado de cilantro en el 25% de su cuerpo, concentrando en los restantes 75% el mismo sabor de siempre.

Dejo mi idea aquí con el ánimo esta llegue a una empresa de este tipo o a un visionario y compartamos ganancias por la idea.

Igualmente dejo abierta la posibilidad de regionalizar el mismo concepto, ejemplo: en lugares o paises que la comida típica o normal lleve digamos ají (chile) o cualquier otro tipo de condimento que sea básico.

 

MIGRAR APLICACION PHP DE LA LIBRERIA MYSQL A MYSQLi

MIGRAR APLICACION PHP DE LA LIBRERIA MYSQL A MYSQLi

 

Siempre buscando como mejorar mis aplicaciones, me encontré que ahora MYSQL tiene una nueva librería o métodos, en muchos casos mencionan las ventajas como el performance pero yo no vi la diferencia, sin embargo decidí migrar por que es el siguiente paso evolutivo:

Script de conexión a la base de datos:


    function Conectarse() {
        if (!($link = new mysqli(’localhost’, ’root’, ’xxxxxxxxxx’))) {
            echo "Error conectando al servidor de base de datos.";
            exit();
        }
       
        if (!($link->select_db(la_super_base))) {
            echo "Error seleccionando la base de datos.";
            exit();
        }
        return $link;
    }
?>


    include("conex.php");
    $link=Conectarse();
?>


Lo más rápido es empezar a utilizar el comando reemplazar de tu editor (en mi caso uso notepad++):

Antes: mysql_query($consulta, $link)
Despues: $link->query($consulta)

A: mysql_fetch_array($result)
D: $result->fetch_object()

A: $row["
D: $row->

Seleccionar el área donde tienes el acceso a los rows y hacer reemplazo solo en esa área o seleccion

A: "]
D:   (reemplazar por nada o valor nulo o vacío)

A: mysql_error()
D: $link->error

A: mysql_num_rows($result)
D: $result->num_rows

Básicamente a mi me encanta reutilizar variables y este era el caso de una variable que siempre llamo $cadena, pero me di cuenta durante esta migración que:

Lo mejor es hacer la sentencia de query muy sencilla algo como $result = $link->query($cadena);
Que reutilizar variables es bueno, es bueno tener una variable genérica para usar y usar, pero para las búsquedas es mejor tener una especial, para que todas tus consultas te queden iguales, por ejemplo $result = $link->query($consulta) y te sea mas fácil migrar en el futuro.

FUENTES / SOURCES
http://sentidoweb.com/2007/06/19/ventajas-de-usar-mysqli.php
php.net/manual/en/book.mysqli.php

 

MEJORANDO LA SEÑAL DE WIFI CON LATAS DE CERVEZA

IMPROVE YOUR WIFI SIGNAL WITH A BEER CAN

Hay mucha ciencia en esto (reflexión, arcos, ondas, etc) pero llevaba mucho tiempo sin internet, con dos laticas de cerveza (y la cabeza un poco mareada) las corté y las puse en forma de parabólicas ...sobre las dos antenas de mi router linksys wrt54gl + (ddwrt-mini-v24sp2 + autoap-ng) con lo cual logré aumentar su ya grande capacidad, lo esencial es que el material debe ser aluminio, creo que con otros metales también se puede pero este es como el preferido.  Lo mas interesante de esto, es que aumentás la señal sin modificar físicamente el equipo o comprando unas antenas, por ejemplo unas linksys mas grandecitas valen casi U$50, a mi me parece caro… por ese mismo valor se pueden construir unas antenas de mayor capacidad, aunque comprar los pigtails (conectores para la antena) sale bastante difícil.

Me basé en el siguiente post: http://linuxman.blogsome.com/2007/12/18/antenas-baratas-2-la-ez-12/

A photo on Flickr

 

Probando Chrome, el (nuevo) navegador de GOOGLE

Probando Chrome, el (nuevo) navegador de GOOGLE

 

Llevo 5 horas probando CHROME, el navegador de GOOGLE y podría excederme escribiendo un gran artículo, sobre sus bondades técnicas o sus desventajas; pero solo tengo dos impresiones rápidas que decir:

  1. Creo que usa el motor Gecko (Mozilla Firefox) o Khtml (konqueror/kde/trolltech-nokia), pues renderiza muy parecido a estos.
  2. Creo que GOOGLE lo lanza como apuesta para incrementar el uso de sus aplicaciones webs como Google Docs, Gmail, etc; en su ya declarada competencia con Microsoft.
Argumento mi última afirmación en que ni Internet Explorer ni Mozilla Firefox logran hacer un buen render de estas aplicaciones y cualquier otra basada en Ajax, pues se "come" grandes recursos; por ejemplo cuando uno tiene varias tabletas en IE o en FF y vuelve a donde tiene una Spreadsheet de Google, hay perdidas de tiempo en redibujar la página.
En conclusión, todos los productos de GOOGLE salen en BETA (p.e. GMAIL), lo cual significa que tenemos una versión final (lo confirman en about:version) y me ha parecido, muy estable, muy respetuoso de los recursos del PC y muy rápido.

 

19 Pulgadas | 19 inchs

A photo on Flickr

El día de hoy me he comprado el Acer a1916ws, tiene entrada Analógica y DVI, es WIDESCREEN y bastante barato para lo que debería... instalación rápida en SLACKWARE LINUX, solo tuve que modificar el xorg.conf para agregar la resolución de este (1440x900) y listo. El próximo mes cambio los periféricos de la línea blanca a la negra para que combinen.

Nuevos retos

A photo on Flickr

Un nuevo reto ha llegado a mi vida laboral y por eso he estado un poco olvidado de la web, ahora además de coordinar el equipo de instalaciones y reparaciones de ADSL para TELEFÓNICA-TELECOM en la ciudad de QUIBDO, debo hacer lo mismo para el nuevo producto de TELEFÓNICA TELEVISIÓN DIGITAL (o DTH como lo llamamos internamente)

TastyMenu


TastyMenu es un applet para el panel de KDE que es un reemplazo al Kmenu por defecto, a pesar de que está basado en KBFX o se parece a BAGHIRA’s STARTER; TastyMenu gana en que está pensado mas en la Accesibilidad que en ser otro recurso visual.

Para poder lograr la compilación en Slackware 10.2 con KDE.3.5.X es necesario entrar a todos los Makefile (3 en total) y reemplazar toda referencia de kde3 a solo kde, luego hay que editar [src/tastylistview.cpp] e incluir una libreria así:
#include

Aquí podés descargar el archivo de binarios (tastymenu-0.1-i386-1.tgz), aúnque ya lo he enviado a Linuxpackages.net, espero su aprovación.
md5sum: 605cfeced30869de5637749c09cc1642

manualidades: Squid & Bind



Estos días me he puesto de manualidades, como ven en la foto (2004) arreglando una bicicleta y seguí con SQUID y BIND, para la creación de un proxy-caché y un DNS propio, el deseo es independizarme de mi ISP (TELECOM / TELEFONICA) por velocidad y por estabilidad, igualmente mi DNS consultará al DNS de mi ISP y guardará en caché las direcciones previamente consultadas; además el día que falle el DNS de mi ISP (ya pasó una vez por unas cuantas horas) el consultará directamente a los cuarteles generales de Internet.

INSTALACIÓN


Curiosamente SLACKWARE no trae el SQUID, bueno; solo tuve que descargarlo de linuxpackages.net:
#installpkg squid-2.5.STABLE13-i486-1maew.tgz
Para instalar el BIND, este se encuentra en el CD1 de slackware
#installpkg /mnt/cdrom/slackware/n/bind-9.3.1-i486-1.tgz

CONFIGURACIÓN


BIND: Para configurar BIND, solo hace falta agregar cuatro líneas en /etc/named.conf (no estoy equivocado, es named), 1- forwarders, unos DNS antes de consultar a la raíz de Internet, 2- forwards first, 3- allow-querry por seguridad solo permitir la red local, 4- notify no
/etc/named.conf


options {
directory "/var/named";
/*
* If there is a firewall between you and nameservers you want
* to talk to, you might need to uncomment the query-source
* directive below. Previous versions of BIND always asked
* questions using port 53, but BIND 8.1 uses an unprivileged
* port by default.
*/
// query-source address * port 53;
forwarders { 192.168.1.1; 200.21.200.2; 200.21.200.79; };
forward first;
allow-query { 127.0.0.1; 192.168.1/24; };
notify no;
};

//
// a caching only nameserver config
//
zone "." IN {
type hint;
file "caching-example/named.ca";
};

zone "localhost" IN {
type master;
file "caching-example/localhost.zone";
allow-update { none; };
};

zone "0.0.127.in-addr.arpa" IN {
type master;
file "caching-example/named.local";
allow-update { none; };
};


y culminaremos con #echo "nameserver 127.0.0.1" > /etc/resolv.conf

SQUID: para configurarlo hará basta retocar el /etc/squid/squid.conf como lo dice cualquier tutorial sobre SQUID, luego ya que he pasado por varias distros (RedHat, SuSE, Fedora) he visto algunas cosas que me agradan y tomo estas características y las aplico; de esta manera creé un lanzador de servicios para SQUID, no soy un experto en bash-scripting pero se hace lo que se puede, a este engendro lo llamé así:
/etc/rc.d/rc.squid



#!/bin/sh
# /etc/rc.d/rc.squid, created by Alexander Andrade
# Creative Commons License

f_start()
{
/usr/sbin/squid -D
echo "SQUID started"
}

f_stop()
{
/usr/sbin/squid -k shutdown

echo -n "stoping SQUID (be patient) "

while [ -f /var/lib/squid/logs/squid.pid ]
do
echo -n "."
sleep 3
done

echo " done"
}

f_restart()
{
f_stop
f_start
}

f_reconf()
{
/usr/sbin/squid -k reconfigure
}

f_status()
{
if [ -f /var/lib/squid/logs/squid.pid ]; then
echo "SQUID is runing"
else
echo "SQUID is stoped"
fi
}

case "$1" in
’start’)
f_start
;;
’stop’)
f_stop
;;
’status’)
f_status
;;
’reconfigure’)
f_reconf
;;
’restart’)
f_restart
;;
*)
echo "Usage: $0 start|stop|restart|reconfigure|status"
esac



Cuando instalé mi primer SQUID por desconocimiento los archivos de logs en menos de dos semanas me llegaron a ocupar 500MB, para solucionar esto existe la aplicación llamada LOGROTATE, que cada determinado tiempo (requiere CRON) o dado el tamaño adquirido por los archivos a vigilar, los puede borrar o truncar; creando pequeñas copias comprimidas para poder hacerle seguimientos en caso de fallos. Para lograr toda esta magia solo tendremos que crear un archivo como el siguiente el cual me copié de Fedora y lo modifiqué para que se me acomode
/etc/logrotate.d/squid


/var/lib/squid/logs/access.log {
weekly
rotate 5
copytruncate
compress
notifempty
missingok
}

/var/lib/squid/logs/cache.log {
weekly
rotate 5
copytruncate
compress
notifempty
missingok
}

/var/lib/squid/logs/store.log {
weekly
rotate 5
copytruncate
compress
notifempty
missingok
# This script asks squid to rotate its logs on its own.
# Restarting squid is a long process and it is not worth
# doing it just to rotate logs
postrotate
/usr/sbin/squid -k rotate
endscript
}


Ahora por último solo hay que cuadrar que el sistema cargue el SQUID al inicio del sistema y lo descargue bien al finalizar, para lo primero solo tenemos que ejecutar lo siguiente
#echo "/etc/rc.d/rc.squid start" >> /etc/rc.d/rc.local
Para lo segundo tuve que modificar un archivo básico del sistema lo cual es muy riesgoso, y en el deseo de no volverlo a modificar he creado un archivo llamado /etc/rc.d/rc.local.stop que es lo contrario al rc.local y se va a encargar de ejecutar comandos previos al apagado del sistema, luego tendremos que entrar al mítico archivo /etc/rc.d/rc.0 (te recomiendo hacer un backup antes)... buscamos la entrada correspondiente a PCMCIA (no importa si tenés un pc de sobremesa) y justo debajo de esta incluimos
/etc/rc.d/rc.0



# Shutdown OWNER’S services:
if [ -x /etc/rc.d/rc.local.stop ] ; then
. /etc/rc.d/rc.local.stop
fi


Luego solo tendremos que agregar una linea en el respectivo archivo así:
#echo "/etc/rc.d/rc.squid stop" >> /etc/rc.d/rc.local.stop
#chmod +x /etc/rc.d/rc.local.stop
De esta manera, la próxima vez que tengamos que hacer algo previo al cierre del sistema lo agregamos a este archivo de esta manera.

Fedora Core 5


BORDEAUX, es el nombre del nuevo fedora (Fedora Core 5 / FC5), cada vez que estreno distro me pregunto de donde sacan el nombre (FC1=Yarrow, FC4=Stenz, FC5=Bordeaux); pero lejos de eso otra cosa que me llama la atención es que cada distro es mas rápida que la anterior, contrario a lo que pasa con otros sistemas operativos como lo es MICROSOFT WINDOWS; que con cada versión necesita el doble de recursos que la versión anterior para funcionar mínimamente, ejemplo:

W95 = ram: 16mb, cpu: 586 (Pentium Pro)
W98 = ram: 64mb, cpu: PII
WME = ram: 128, cpu: PIII
WXP = ram: 256, cpu: PIV
WVT (proximo) = ram: 2GB, cpu: aún no fabricado.

NOVEDADES

Además de traer un kernel mas reciente (la pieza software de mayor calidad del planeta), trae KDE3.5, es mas rápida que FC4, según mi parecer administra mejor la RAM.
Click aquí para ver una lista mas completa.

INSTALACION SENCILLA E INTUITIVA

Descargué las imagenes iso/cd para poder comercializar con el, el método que usé fue bajarlo por Bittorrent que para bajar archivos gigantescos (3GB) es lo mas indicado, mediante una conexión T1 solo me tomó cerca de 10 horas y los md5 me dieron perfectos.

Esta vez anaconda es mucho mas sencillo, sin perder funcionalidad; me reconoció todos los aparatos y por primera vez instalé desde las imágenes iso (sin necesidad de quemar los CDs) bueno, en realidad solo quemé el primero y el boot-prompt que coloca (para los mas verdes, el pantallazo del CD) le escribí

linux askmethod

Luego de cargar todo me preguntó en que disco duro y en que carpeta tenía las iso y la instalación de Fedora que normalmente se realiza en 45 minutos se realizó en 17 y eso que es un disco ATA-33.

Solo me preguntó el idioma en cual proceder la instalación, el idioma del teclado y si deseaba compatibilidad para otros idiomas en el sistema, luego que tipo de instalación quería (desktop=hogar, development=desarrollo de aplicaciones, servidor), escogí desktop con la opción de escoger que paquetes quería instalar; Fedora viene casado con gnome, entonces lo desmarqué y marqué KDE que me gusta más.


NO TODO ES GLORIA

Terminada la instalación, cuando estaba cargando los servicios para BLUETOOTH se quedó muerto y como yo no los uso entré por el rescue (disco de rescate) y los desactivé, luego al lanzar las Xs (entorno gráfico) el sistema súbitamente se me moría, busqué en los logs y no veía rastros de problemas, llegué a pensar que era problemas de IRQ, pero tampoco hasta que se me ocurrió desactivar el splash-screen (rhgb) de cargue del sistema y listo.

ACTUALIZACION:

Este problema es del driver radeon, he medio solucionado el problema poniendo como driver fbdev, el cual no es ni medianamente acelerado; en la noche probaré con los nuevos drivers propietarios de ATI

Mi tarjeta de video es una ATI RADEON 9200SE 128Mb y me presentaba el mismo problema con los módulos (drivers) propietarios de ATI bajo FC3 y FC4, básicamente es que cuando hace el cambio desde el RHGB al Xorg el hardware está siendo usado por otro módulo.

Además no te crea las entradas en el fstab para la utilización (puntos de montaje) de unidades extraibles como los son floppy y unidades de CD/DVD, lo cual decrimenta la calidad para nuevos usuarios; ellos dicen que esto es por que ya no usan HAL.


UN PASO A LA GLORIA

Solucionado estos problemas, empecé a personalizar algunas cosas, gracias a Dios la carpeta home (archivos y configuraciones personales, similar al DOCUMENT AND SETTINGS de los sistemas Windows NT/XP) los tengo en otra partición solo tuve que crear mi usuario y listo.

Solo me resta solucionar dos cositas:

1. El configurador de paquetes pirut (reemplazo de system-config-packages | redhat-config-packages), cada vez que es lanzado me saca un error de que no encontró la url o la ruta, mas tarde aclaro esto cannot retrieve software information.
2. Los vínculos a las unidades de CDR y DVD-RW no me funcionan, me saca un sobre un problema con el HAL, ahora me pongo a investigar sobre eso.


EL SCREENSHOT

Hoy, una dulce mujer, colores mielosos (de miel), bueno parece un theme para ubuntu ;)

System: FC5@intel
Wallpaper: Mandy Moore
Icons: Vista-inspirated (i hate microsoft)

Panel invisible (transparent)
taskbar externa + auto escondible (autohide)
Menús transparentes (transparent)

Pero aún no se como hacer para que los iconos del panel aumenten de tamaño al pasar el mouse (zooming)

QUE ES DISEÑO ILIMITADO?