Sunday, October 21, 2007

This application has failed to start because js3250.dll was not found.

Este problema ha sido reportado por mucho tiempo en Firefox, y hasta ahora parece que no hay una respuesta, los mensajes de error son:

"This application has failed to start because js3250.dll was not found. Re-installing the application may fix the problem."
"The Procedure entry point in JS_HasInstance could not be located in the dynamic link library js3250.dll"

Algunos sugieren desinstalar/reinstalar Firefox, crear un nuevo profile, remover FF completamente antes de reinstalar, bajar un archivo nuevo js3250.dll, borrar un trojan ipv6monl.dll, etc; algunas soluciones funcionan para algunas personas, pero parece que no hay una respuesta definitiva, esto es lo que me funciono a mi

En mi caso el problema solo se manifestaba bajo un usuario con acceso restringido (no administrador); mire en el folderC:\Program Files\Mozilla Firefox y el archivo js3250.dll estaba ahi, asi que ejecute firefox.exe directamente y corrio bien, entonces cambie el shortcut para que apuntara a este lugar (realmente no se a donde apuntaba el shortcut original, solo decia "firefox.exe" en el Target) y hasta ahorita esta funcionando bien

Ojala que esto sea de ayuda para alguien

Wednesday, October 17, 2007

mis predicciones (sobre Leopard) para la proxima semana

- Apple tendra la venta de hardware y software (MacPro, MacBookPro y Leopard) mas grande en su historia.
- Habra gente acampando para ser los primeros en comprar Leopard.
- Se agotaran existencias en varias tiendas.
- Con eso la adopcion de Macs crece al menos en un 25%.
- Empezaremos a ver fallos y actualizaciones muy pronto en varias aplicaciones.
- Tambien veremos varios (muchos?) fallos graves de seguridad en su sistema operativo en lo que resta del año y de ahi para adelante

...Y yo espero poder contribuir a la causa! =0)

Tuesday, October 16, 2007

Pequeña refactorizacion para trabajar con tipos nullables

Este articulo aplica a: C# 2.0

C# 2.0 nos trajo una nueva caracteristica: tipos nullables, seguramente ya sabes que son y los has usado por algun tiempo, pero, cuantas veces has visto (o escrito) codigo como este:

//SomeClass.SomeObject.BoolProperty es de tipo bool?

if (SomeClass.SomeObject.BoolProperty.HasValue && SomeClass.SomeObject.BoolProperty.Value)...
//algun codigo

porque no puedes escribir:
if (SomeClass.SomeObject.BoolProperty)...

Ya que no compilaria

El problema que tengo con ese codigo es que es repetitivo y es muy largo, entonces que podemos hacer?
Puedes escribirlo asi:

if (SomeClass.SomeObject.BoolProperty??false)

mucho mejor no? si BoolProperty tiene un valor y el valor es true, nos regresara true, de lo contrario regresara false; ahora, por supuesto que puedes usar la misma tecnica con otros tipos de datos que sean nullable, veamos algunos ejemplos:

string firstName;
public string FirstName { get{ return firstName??""; }}

Este codigo nos aseguraria que FirstName nunca regrese null (Estoy seguro que has visto muchisimos "object reference not set blablabla" debido a que te falta este codigo)

Otros ejemplos:
int? result;
...
return result??-1; //si no obtuvimos algun resultado, devolver -1
---------------------------------------------------
bool? result;
...
return result??false;
---------------------------------------------------

Eso es todo, espero que les sirva
Recuerda que el mejor codigo, es... no codigo!