sábado, 2 de agosto de 2008

Instalar FreeBSD en Dell PowerEdge R300

FreeBSD 7.0 por defecto no trae soporte para las tarjetas de red de los PowerEdge R300, el chipset es un BCM5722 (Broadcom).

La solución es instalar FreeBSD 7.0 para amd64 (http://www.freebsd.org/platforms/amd64.html). 

La instalación debe hacerse como se haría normalmente. Una vez el procedimiento, es necesario conseguir la versión de los sources más actualizada posible, para ello, desde otra computadora (con FreeBSD o con otro sistema
 operativo unix-Like) pueden bajarse utilizando un cliente de cvsup de la siguiente manera:

1. Cree un archivo (nombre_del_archivo.sup) con el siguiente contenido:

*default host=cvsup5.FreeBSD.org
*default base=/var/db
*default prefix=/usr
*default release=cvs tag=RELENG_7
*default delete use-rel-suffix
*default compress
src-all

2. Ejecute el siguiente comando:

 cvsup -g -L 2 nombre_del_archivo.sup

Eso va a descargar la última versión estable del kernel de FreeBSD, según prefix (ver primera instrucción) los sources quedarán en /usr. Este parámetro puede ser cambiado. 

3. Una vez finalizada la descarga, comprima el directorio de /usr/src de la siguiente manera:

cd /usr; tar cjvf ~/src.bz2 src

4. Copie el archivo recién comprimido a algún medio de almacenamiento externo, como un CD o un dispositivo USB.

5. Copie el archivo en el servidor recién instalado y descomprímalo usando:

tar xjvf src.bz2 -C /usr

6. Compile e instale el nuevo kernel ejecutando los siguientes comandos (como root):
# cd /usr/src/sys/amd64/conf
# config GENERIC
# cd /usr/src
# make buildkernel KERNCONF=GENERIC && make buildkernel KERNCONF=GENERIC && reboot
Listo,  una vez que el equipo reinicie, podrá verse que ya existe soporte para la(s) tarjeta(s) de red.

jueves, 10 de julio de 2008

PHP: Igual versus Idéntico


Según la documentación de PHP, el operador '==' devuelve verdadero (TRUE) sin sus operandos son iguales, mientras que '===' devuelve verdadero si los operandos son iguales y además del mismo tipo (idénticos).

Recién nos encontramos con que al hacer las comparaciones:


121574312008178411518235 == 121574312008178402299047
121574312008178411518235 === 121574312008178402299047

ambas devuelven verdadero, esto no resulta tan extraño si vemos que el valor "real" de ambos números, que es:

1.2157431200818E+23

Esto significa que estamos comparando:

1.2157431200818E+23 con: 1.2157431200818E+23

Como pueden ver, ambos son "idénticos".

Ahora bien, resulta ser que:

'121574312008178411518235' ==  '121574312008178402299047'

Ahora sí, esto si resulta extraño.

El problema "real" acá es que como PHP es un lenguaje no tipado (typeless), no hay una forma adecuada de decirle al lenguaje que se trata de un string. Intentamos haciendo typecasting, pero el comportamiento es el mismo.

Usando el operador '===', la siguiente comparación retorna falso:
'121574312008178411518235' ===  '121574312008178402299047'

Acá está el ejemplo completo:

<?php
echo "<pre>\n";
$a = 121574312008178411518235;
$b = 121574312008178402299047;

if ($a == $b){
printf("$a == $b\n");
} else {
printf("$a != $b\n");
}
if ($a === $b){
printf("$a === $b\n");
} else {
printf("$a !== $b\n");
}

$a = '121574312008178411518235';
$b = '121574312008178402299047';

echo "\n";
if ($a == $b){
printf("$a == $b\n");
} else {
printf("$a != $b\n");
}
if ($a === $b){
printf("$a === $b\n");
} else {
printf("$a !== $b\n");
}
echo "</pre>\n";
?>

Las pruebas fueron realizadas utilizando:

PHP 5.2.5, Apache 2.2.6/Mac OSX 10.5.3 (Leopard)
PHP 5.2.6 Apache 2.2.8/FreeBSD 7.0-STABLE

miércoles, 9 de julio de 2008

Problema al subir archivos con Safari


Recientemente nos encontramos con un problema al intentar subir archivos (de texto) a un sitio web (parte de un proyecto) utilizando Safari.


El navegador intenta (aparentemente) subir el archivo, pero al final falla y en algunos casos despliega un mensaje indicando que el servidor no responde. El problema no se al utilizar navegadores basados en Gecko (como Firefox).

Como referencia, en este proyecto estamos utilizando Zend_Framework versión 1.5.2; sin embargo aclaramos que la pulga no tiene nada que ver con su uso, es por ello que en este artículo usted podrá descubrir la solución.

Si usted es muy impaciente, simplemente agregue header("Connection: close"); a la página donde se encuentra el formulario.

Ahora bien, supongamos que nuestro controller se llama: UploadController y que el el formulario se encuentra en index.phtml, que es controlado por el método indexAction(). A continuación un poco de código.

El formulario:
<form enctype="multipart/form-data" action="/upload/doit"
method="post">
Filename:<input type="file" name="archivo" id="archivo" />
<input type="submit" id="submit" />
</form>

El método:
public function  indexAction()
{
header("Connection: close");
}
Con la intención de comprobar el funcionamiento la carga de archivo, el método doitAction() está definido de la siguiente manera:
public function  doitAction() 
{
echo "<pre>";
print_r($_FILES);
echo "</pre>";
exit;
}

Si al intentar subir un archivo, doitAction() muestra los detalles del archivo, el problema ha sido resuelto.No existe evidencia lógica para pensar que este problema tenga alguna relación con el uso del framework, lo mismo podría suceder usando otros frameworks como CodeIgniter, Qcodo, etc. Si este es el caso, o bien no está utilizando ningún framework, intente adaptar y aplicar la solución para impacientes.

viernes, 1 de febrero de 2008

¿Cómo imprimir con una LaserJet 1020 en Leopard?


Al igual que en Tiger, en OS X 10.5 (Leopard) no hay soporte "oficial" para la impresora HP LaserJet 1020; sin embargo ponerla a funcionar es muy fácil, sólo require seguir algunos pasos.

Los enumeramos a continuación (Los pasos 1 y 2 pueden ignorarse si su instalación de Leopard está limpia -sin intentos previos de instalación de la 1020-):

1. Asegúrese que en el directorio /Library/Reciepts no exista nada con nombre "HP 1020" (o algo similar).

2. Abra las "Preferencias del Sistema" e ingrese a la configuración de impresoras, asegúrese que no exista ninguna configuración para la HP 1020 (si existe, elimínela).

3. Descargue la la imagen de los instaladores de la serie 1022 disponible aquí (si el link no funciona intente con algunos resultados de esta búsqueda).

4. Instale el driver que recién descargó.

5. Elimine todos los archivos y directorios de /Library/Printers/hp/laserjet, excepto el correspodiente a la 1020 (1020Series).

6. Mueva todo el contenido del folder de la 1020 (1020Series) a /Library/Printers/hp/laserjet.

7. Ingrese a la configuración de impresoras (como en el paso 2) y agregue una nueva impresora; si la impresora ya está conectada a algún puerto USB debería aparecer al escoger agregar.

8. Si la impresora no aparece en la lista (al ejecutar el paso 7), asegúrese que esté bien conectada al puerto USB y reinicie su computadora; al volver repita el paso anterior.

Una vez que termines la configuración solo queda probar si todo funcionó.

viernes, 25 de enero de 2008

Grupo de Usuarios PHP en Costa Rica

Un grupo de entusiastas PHPeros está dando los primeros pasos para formalizar en un grupo de usuarios acá en Costa Rica.

Los avances ya se notan, lo primero fue el dominio (costaricaphp.org) que ya es la cara principal del grupo y lo último que nos han ofrecido es la lista de distribución de correos.

La primera reunión será el Martes 29 de Enero del 2008, a partir de las 6pm en el aula 205 de la Escuela de Ciencias de la Computación en la UCR.

Desde ya aplaudimos la iniciativa y ofrecemos nuestra colaboración para hacer realidad el proyecto; también agradecemos a quienes están detrás de la iniciativa.

Acá les dejamos el mapa para que se ubiquen un poco:

lunes, 14 de enero de 2008

Google Phone, lo que sigue

Desde hace algún tiempo se vienen creando nuevas tecnologías para telefonía móvil; los blackberries iniciaron la conquista de los usuarios más exigentes.

Con la llegada del iPhone, Apple hizo su primer aporte a las tecnologías de comunicación móvil; sin embargo su gran "error" fue hacer un contrato de exclusividad con AT&T. Esto ha evitado que se vendan "abiertamente" sus aparatos.

La tendencia creemos que será el desarrollo de aplicaciones nativas para estos aparatos que faciliten aún más el uso de los diferentes servicios disponibles en Internet. Acá hay una lista de aplicaciones disponibles para iPhone que incluye juegos, herramientas, etc.

A diferencia de Apple, Google está trabajando en una plataforma completamente abierta; donde se podrán programar cualquier tipo de aplicaciones sin necesidad de violar términos de uso, etc.

Se trata de Android, una pila de software que incluye sistema operativo, librerías, framework de aplicaciones, aplicaciones, etc. Sus características principales son:

- La existencia de un framework de aplicaciones que permitirá la reutilización y el reemplazo de componentes.
- Navegador web basado en WebKit.
- Optimización de gráficos en 2D y 3D basada en OpenGL.
- SQLite para almacenamiento estructurado de datos.
- Soporte multimedial (audio, video, imágenes, etc).
- Soporte GSM.
- Soporte bluetooth, EDGE, 3G y WiFi.
- Soporte a cámaras, GPS, etc.

Android está basado en Linux 2.6 y sobre éste recaen los principales servicios del sistema, como seguridad, manejo de memoria, procesos, conectividad, etc.

Google ofrece un conjunto de herramientas para el desarrollo de aplicaciones que están disponibles en la página de Android. Entre estas herramientas se encuentra un emuldor en el que se pueden instalar y probar aplicaciones hechas para los teléfonos que corrererían el sistema operativo de Google.

La imagen es un screenshot de Google Maps corriendo sobre el emuldor, lo que se observa en el mapa son los alrededores del Mall San Pedro y la Fuente de la Hispanidad.

martes, 7 de agosto de 2007

El BCR y el Phishing

Hoy recibimos dos correos electronicos que en apariencia fueron enviados desde el Banco de Costa Rica, y subrayamos apariencia porque usan toda la imagen corporativa del BCR para hacer creer que fue enviado desde el banco.

A continuación el contenido del Correo:

-------><--------





Estimado Cliente de Banco de Costa Rica,

Banco de Costa Rica le comunica que nuestros servidores de procesos bancarios han sido actualizados y están ya operativos.

Sin embargo debido a la ingente cantidad de usuarios que usan Internet como medio de pago seguro, nos vemos en la obligación de pedirle su colaboración para una rápida restauración de los datos en las nuevas plataformas.
Si no ha entrado en su cuenta bancaria en los últimos 12 minutos se ruega lo haga de inmediato para evitar cualquier posible problema en su cuenta o futura pérdida de datos.

Debe entrar a su cuenta haciendo click sobre el enlace correspondiente a su tipo de cuenta:

Para Personas: http://www.bancobcr.com/login.asp?verificaridentidad=personas

Para Empresas: http://www.bancobcr.com/login.asp?verificaridentida=empresas

Banco de Costa Rica pone a su disposición, sin costo adicional nuevos servidores que cuentan con la última tecnología en protección y encriptación de datos.
BANCO DE COSTA RICA
-------><--------

Este correo no es otra cosa que un ejemplo de phishing, una técnica de Ingeniería social, que pretende obtener información confidencial, en este caso su número de cédula y su contraseña de la Oficina Virtual del BCR.

Una vez que los usuarios del banco ingresen sus datos, los delincuentes detrás del engaño serán capaces de entrar a su verdadera cuenta en el BCR y transferir su dinero a cuentas de terceros.

Los correos que recibimos tenían enlaces (links) falsos y obviamente no nos interesa agregarlos dentro del artículo para evitar confusiones o bien enviarles posible víctimas.

A a pesar que todo parece verdadero, no lo es. A continuación demostramos lo anterior (hacer click para ampliar).

La siguiente imagen muestra el verdadero enlace para Banca Personal:


La siguiente imagen muestra el verdadero enlace para Banca Empresarial:


Como puede verse, en ambos casos hay un link al dominio nikolashn.com, que al parecer es propiedad de un tal Vladimir Sipcic; quien probablemente no se da ni cuenta que su dominio está siendo utilizado para robar dinero.

Para finalizar queremos sugerirle que se informe con su banco para evitar ser víctima de este tipo de fraudes; el banco no se responsabiliza por el uso que usted le de al usuario y contraseña de ingreso a la Oficina Virtual; pues es usted quien de forma "voluntaria" lo está entregando a un tercero. Siempre utilice el sitio oficial del banco (http://www.bancobcr.com/); desconfié de lo que no conoce o no está seguro.

Esperamos que este artículo le sea de utilidad y le ayude a proteger sus recursos.