Como montar imagenes en WinXP sin gastar un centavo
Para aquellos que no sepan, se puede montar una imagen (.ISO, .UDF, .CDFS, .JO, ROCK) en Windows XP y no tienes que quemarlo en un CD o DVD, simplemente lo puedes cargar como un drive virtual y puedes hacer todo lo que necesites hacer como si estuviera en un lector de CD/DVD

Para aquellos que si saben sobre estas herramientas pero no confian instalar cualquier herramienta que se encuentren en Internet, hay una pequeña herramienta de Microsoft que hace el trabajo de manera sencilla y eficiente

Solo baja el Virtual CDRom Control Panel tool del sitio de Microsoft y sigue las instrucciones que vienen en el archivo readme:

1. Copia VCdRom.sys a tu directorio %systemroot%\system32\drivers folder.
2. Ejecuta VCdControlTool.exe
3. Click "Driver control"
4. Si el boton "Install Driver" esta disponible, dale click. Navega al folder %systemroot%\system32\drivers, seleciona VCdRom.sys, y da click en Open.
5. Click "Start"
6. Click OK
7. Click "Add Drive" para agregar un drive a la lista. Asegurate que el drive agregado no es un drive local, si lo es, continua dando click en "Add Drive" hasta que la letra del drive corresponda a una que este disponible en tu sistema.
8. Selecciona un drive que no este en uso de la lista de drives y da click en "Mount".
9. Navega a donde tienes guardada la imagen que quieres montar, seleccionala y da click
OK". UNC (los que son como \\servidor\folder...) no deben ser usados, aunque drives mapeados deberian funcionar bien.

Ahora puedes usar el drive que configuraste como si fuera un drive local de CD-ROM. Cuando termines puedes desmontar, detener y remover el driver de memoria usando la herramientita.

Eso es todo
CAPTCHA invisible
Checando la orden de mi iPhone =o))) en ATT me tope con este CAPTCHApense que solo tenia que dar enter, ya que no veia ningun caracter, pero...



=o(
Como borrar directorios .svn recursivamente de manera facil
De hecho puedes usar esto para borrar cualquier directorio que necesites borrar recursivamente, pero hoy lo necesitaba especificamente para los folders .svn y google solo me daba la respuesta para linux y unas soluciones muy extrañas para Windows.

Aqui esta una solucion muy simple que funciona desde la linea de comando (la forma facil =oP):

for /f "usebackq" %d in (`"dir *.svn /ad/b/s"`) do rd /s/q "%d"

mas que nada dejo esto aqui para mi porque se que lo necesitare en el futuro, pero espero que pueda ayudar a alguien mas por ahi J
Delta corre en Linux en sus aviones
Tomada este fin de semana pasado en un viajecito que nos aventamos a las Vegas, son las pantallas que estan detras de los asientos
No se puede actualizar funcion de SQL mientras la estas debugueando
El articulo aplica a: SQL debugging
keywords: SQL, debugging, VS2005, functions, stored procedures

Esto lo aprendi en dias pasados mientras que estaba conectado usando RD (Remote Desktop) a mi computadora del trabajo y estaba debuggeando una funcion SQL desde VS2005; luego encontre un bug en esta y procedi a actualizar la funcion externamente usando Microsoft SQL Server Management Express (uff, que cansado decir todo eso), pero al ejecutar el alter function tomaba muchisimo tiempo y nunca regresaba, pense que era algo que tenia que ver con mi sesion RD, asi que me conecte directamente al servidor e intente de nuevo con el mismo resultado, despues de algunos minutos de esperar a SQL a que actualizara mi funcion me di cuenta que estaba debugueando y estaba detenido en un breakpoint en esa funcion, cerre VS, intente de nuevo y listo, funciono instantaneamente.

Pues si, fue mi culpa, pero nunca me dio un timeout ni tampoco un mensaje indicando cual era el problema, que pasaria si dos desarrolladores estuvieran trabajando en la misma cosa?
Talvez podrian hacer algo en esa area para arreglar ese problema, no creo que sea demasiado dificil, despues de todo sabe que esta bloqueada, porque no dar un mensaje al usuario?

Creo que esto mismo aplica a stored procedures pero no lo he probado

Pero bueno, queria compartir mi experiencia con ustedes, y espero que esto le sirva a alguien.
Bienvenido a la familia


Pues al fin sucumbi y me uni al club, compre la iMac 24" 3.06 GHz =o), la pantalla de 24 pulgadas es buenisima, hace que mi "viejo" monitor de 21" se vea chiquito

Hasta ahora he encontrado varias cosas que me han decepcionado sobre la "usabilidad" de la Mac, supongo que tenia expectativas demasiado altas por los comentarios de la mayoria de la gente que tiene Macs; simplemente el hecho de que la primera aplicacion en el sistema es el "Finder" ya me hace sospechar que algo no estas en su lugar, hasta ahorita los problemas mas grandes que tengo:

- los short cut keys son muy diferentes (estoy batallando bastante para escribir esto)
- Instalas una aplicacion y desaparece, tienes que encontrarla usando el Finder (por supuesto
- click derecho, donde esta el #$%&** click derecho!!! - lo encontre, tienes que dar "ctrl+click" lo cual no me gusta nada, despues encontre que lo puedes configurar pero no funciona muy bien, tienes que retirar bastante tu dedo izq
- los botones del mouse (o la falta de estos)
- window resizing, porque es que solo puedo hacer resize desde la esquina inferior derecha???
- cuando estas escribiendo el HOME no se va al inicio, y el END no se va al final, aaarggh, esto me esta matando ahora mismo

Ya le instale el Fusion y Windows Vista dentro de este, hasta ahorita todo ha funcionado bien, veamos si esto mejora ya que me familiarice mas

El "Bienvenido a la familia" es lo que nos dijeron en la tienda cuando compramos la Mac, aqui les seguire actualizando sobre mis quejas experiencias
Twitter esta caido, yo culpo a tweetwheel.com
Twitter esta caido de nuevo, a este paso va a ser muy dificil que alguna otra de las redes sociales populares de estos tiempos le quite la posicion #1 como la peor red social en cuando a "up time" se refiere; pueden checar la lista aqui:

Social network downtime Jan-Apr 2008

Yo culpo a tweetwheel.com jeje, y ustedes a quien culpan??
Asi es como NO se manejan los errores
Visto en cierto sitio popular de futbol, se me ocurrio ver el resto del mensaje y obtuve version del OS, servidor web, PHP, algunos directorios y la direccion ip interna del servidor.

por favor jovenes atrapen errores y guardenlos en algun log y solo muestren errores amigables al usuario, por ejemplo "los datos no estan disponibles en este momento, por favor intentelo mas tarde", o algo asi
Lo que quisiera ver en la siguiente version de C#
Mitch Denny escribio sobre lo que el quisiera para la siguiente version de C# (mucha otra gente ha escrito sobre este tema ultimamente)

Lo que Mitch propone es tener un atajo para formatear strings, lo cual nos permitiria ir de algo asi
string s=string.Format(”{0}{1}{2}”, a, b, c);
a esto:
string s=@(”{0}{1}{2}”|a|b|c);

En este caso particular no me gusta la alternativa que propone, lo unico que esta haciendo es reemplazar la "," con el caracter "|" y haciendo el nombre mas corto.
Uno podria escribir su propia funcion "de envoltura":
//*** podrias llamarla "f" si quisieras
static string fmt(string format, params object[] parameters) {
return string.Format(format, parameters);
}

y la usarias asi:
string s=fmt("{0}{1}{2}",a,b,c);

Lo cual nos da practicamente el mismo resultado que lo propuesto por Mitch

Otro problema es que esta propuesta resuelve un problema muy especifico el cual es formatear strings y podemos obtener casi el mismo resultado escribiendo una funcioncita

El caso es que con tanta gente dando su opinion sobre lo que les gustaria ver en la siguiente version de C#, pues yo tambien tengo mi idea
lista de argumentos sin coma

algo asi:
string s=fmt("{0}{1}{2}" a b c);

El alcance de este cambio seria muchisimo mayor y de hecho le quitaria algo de "azucar de sintaxis" (syntactic sugar) al lenguaje

Ahora bien, este cambio seguramente no ocurrira, debido a que esta es la familia de los lenguajes C y ademas me parese que el cambio seria bastante significativo, pero como este es mi blog pues yo pongo mi idea =o)

Por cierto una de las ideas que me ha parecido buena es la de tener argumentos nombrados, con lo cual se podrian mandar llamar funciones de la manera

AlgunaFuncion(Parametro1 = "Algun valor", Parametro2=10);

Esta idea me parece excelente, una de las cosas que eliminaria seria la confusion que generan los parametros booleanos, y ya no tendriamos que usar Enum para esos casos
C# vNext wishlist: comma less argument list
Mitch Denny has a post about his feature request for the next version of C#

he wants to have a shortcut to format strings, which would basically allow you to go from this
string s=string.Format(”{0}{1}{2}”, a, b, c);
to this:
string s=@(”{0}{1}{2}”|a|b|c);

I don't think I like the proposed alternative, all you are doing is replacing the "," with the "|" character and making the name shorter.
You could always write your own little wrapper:
//*** you could call it "f" if you wanted
static string fmt(string format, params object[] parameters) {
return string.Format(format, parameters);
}

and get
string s=fmt("{0}{1}{2}",a,b,c);

which is almost the same as the proposed solution

another problem is that this proposal solves a very particular problem which is string formatting and we can get pretty much the same by writing our own little wrapper

but anyway, it gave me an idea for my own feature request
comma-less arguments

string s=fmt("{0}{1}{2}" a b c);

The scope of this change is much wider and actually "desugars" the language

now this change will most likely not happen, since this is a C family language and would take a significant change to the parser but this is my own wish/feature request so there you have it
Instalando VS2008
Se bajo bastante rapido, ya lo queme usando las herramientas del Resource Kit Tools, y ya se esta instalando... hay muchisimas cosas nuevas en VS2008, he aqui un sumario:

- multi targetting support
- podras crear aplicaciones para .NET 2.0 (VS2005) o el nuevo .NET 3.5

- ASP.NET AJAX y soporte para Javascript
- para los que han usado el framework de ASP.NET AJAX, ahora ya viene instalado por default, a los que no lo hallan usado, se estan perdiendo de algo buenisimo, ya blogueare al respecto

-VS2008 Web Designer y soporte para CSS
- un diseñador muy mejorado para HTML, el mismo que salio en los productos de Expression Web, entre otras cosas ofrece muy buena integracion con CSS

- Mejoras en el lenguaje
- LINQ
- hay muchisimo material que bloguear sobre esto

tambien habra algunos add-ins muuuuuuuy interesantes, entre otras cosas
- F#
- MVC
- Herramientas para SilverLight
- Web Deployment project

fuente: ScottGu's blog
Bajando VS2008
aun no esta listado en la seccion de msdn subscriber downloads, nosotros lo encontramos dando click en "sign out", de ahi nos mando a esta pagina, (tienes que estar usando IE para ver las ligas) y en la parte de abajo hay una lista de subscriber downloads, das click ahi en "Visual Studio 2008 * Edition...", te pregunta por tu password, y te lleva directo a bajar el software

13% hasta ahorita, la velocidad es bastante buena... tengo que ir por unos DVDs =o)
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
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)
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!
More Posts Next page »