File && || folder deleting in C#

Recently, I´ve been playing around with file and folder deleting from C# applications. I´ve seen two issues very easy to workaround that might help you.

1.- System.Drawing.Bitmap.FromFile() locks the file used.

If you try to delete a folder containing a bitmap you used in that manner, it will fail, as it´ll be locked by your application. In order to avoid this behavior, you can just clone the bitmap an dispose the original. Just like this:


Bitmap tempBitmap = (Bitmap)Bitmap.FromFile(filename);
mStoredBitmap = new Bitmap(tempBitmap);
tempBitmap.Dispose();

Of course, there are many ways to fix this. This one clones the bitmap from memory so the file can be unlocked in the dispose.

2.- How to delete a file or folder sending it to the recycle bin?

This is a pretty obvious need and, at first sight, there´s no direct support for that in plain C#. In this link, you will find some information about this.

Among the solutions offered there, there´s a very easy and direct one (if you don´t mind to add a reference to Microsoft.VisualBasic dll in yor application).

Just add that reference, and instead of System.IO.Directory.Delete(), use this one:

Microsoft.VisualBasic.FileIO.FileSystem.DeleteDirectory
(
filename or folder,
Microsoft.VisualBasic.FileIO.UIOption.OnlyErrorDialogs,
Microsoft.VisualBasic.FileIO.RecycleOption.SendToRecycleBin
);

Cheers!

Sistema de copia de archivos en Windows Vista

Los informáticos sabemos hacer la tira de cosas.

Por ejemplo, sabemos pintar una cadena de ADN enterita en 3D, sin dejarnos ni un solo cromosoma. Sabemos hasta guiar una sonda espacial a lo largo y ancho del cosmos, sin que se choque ni una sola vez con Bender ni la civilizción de Malacai (el que se arranca un brazo para bromear...).

Sin embargo, hay una tarea que se nos resiste. Realmente debe de ser algo que solo está al alcance de cuatro programadores rusos y algunos semi-dioses, porque desde los tiempos más remotos de Windows 3.11, seguimos sin ser capaces de calcular cuánto van a tardar en copiarse un puñado de ficheros.

Ciertamente, entiendo la problemática. Sé que es dificil, muy dificil... y probablemente yo no sabría hacerlo mejor de lo que lo hacía Windows XP. ¡Pero coño! cuando hoy me he encontrado con esta "Vista" los pelillos se me han puesto como picos de escarpias...





47.760 días y 2 horas. Tiene que ser la ostia llevar cuarentaysietemil días esperando y que todavía te queden dos horas eh?

En fin, que eso son aproximadamente 130 años, 292 días.... y 2 horas, por supuesto...

Más vale que al final la copia se hizo en 4 minutos... ¿Como carajo se puede programar un algoritmo que ante un retardito de caca llegue a la conclusión de que va a tardar 130 años? ¿Es que los chicos de Vista no conocen aquello de descartar datos basura?

Bueno, como soy un tío con fé, en breve espero poder decir ....

---- God bless the Service Pack 1 ----

porque nos haya resulelto cosillas como esta. A mi la verdad, me exasperan...

Saludos secuaces!

The Evolution Show (I)

Muy buenas a todos.

En primer lugar, agradecer a toda la gente que se acercó por el Palacio de Congresos Municipal de Madrid para asistir al Evolution Show, y de paso probar la tecnología Simax.

En segundo lugar, a Microsoft, que como siempre nos hizo pasar un rato genial, y nos dió la oportunidad de presentar por primera vez en público el producto.

En fin, que muchas gracias a todos. Tuvimos una muy buena acogida y espero que la gente pasara un buen rato.

Aqui va una fotillo del stand. Trataré de subir más poco a poco.





Saludos secuaces !

Aviso Programación Gráfica. Upna

Aviso a mis alumnos de Programación Gráfica (Ingenería en Telecom, Upna).

Esta semana que viene no habrá clase ni el lunes 25 por la mañana ni el jueves 28 por la mañana, y que estoy fuera de viaje. Si que habrá práctica el lunes por la tarde, con Iosu.

Trataremos de recuperar las horas cuando se pueda.

Avisad por favor a quienes conozcáis, por si hay alguien que todavía no lo sepa. Un saludo a todos,

Iñaki.

Simax en The Evolution Show (Microsoft). IFEMA 26 y 27 de Feb. 2008

La próxima semana, más concretamente los días 26 y 27 de Febrero, el equipo de Simax estará presente en el IFEMA, mostrando un prototipo del simulador de conducción y acompañando a nuestros coleguillas de Microsoft. Todo ello en el evento:

The Evolution Show (Lanzamiento Windows Server 2008, Visual Studio 2008 y SQL Server 2008)

Más información aqui:

http://www.microsoft.com/spain/lanzamiento2008/default.mspx

How to disable the Error Report Tool in Windows Vista (dw20.exe)

If you are a software developer, it´s quite frequent that applications crash when thery´re not finished. If you usually open the task manager to take a look, you´ve probably noticed that a process called dw20.exe kicks in everytime an app crash.

Well I honestly still don´t know if that process was the cause, but since I installed vista, application crashes were very slow to recover. I´ve been googling around for a way to disable that process, and it has taken like ten minutes for me to find the solution.

The trick is: SET YOUR CONTROL PANEL TO CLASSIC VIEW. Something I probably shoulded have done earlier... ;).

The option you need only appears in the classic view. Its "Problem reports and Solutions" or "Informes de problemas y soluciones", in spanish.

Right there, select "Change configuration" and then "Advanced configuration". Then select "Disable error reporting" and that´s it.

I´ll tell how it works now. Cheers!

Howto set an InitialDirectory to FolderBrowserDialog

If you still don´t know, this might be useful:

The FolderBrowserDialog that comes boundled with .Net doesn´t have a InitialDirectory property. Maybe that´s why so many programs make us navigate through a hunderd folders again and again.

Well, making the FolderBrowserDialog to pre-select a folder is piece of cake. Just do the following:

this.folderBrowserDialog1.RootFolder = Environment.SpecialFolder.MyComputer;
this.folderBrowserDialog1.SelectedPath = "C:\\ whateveryouwanthere \\";
this.folderBrowserDialog1.ShowDialog();

Easy as that!

I must say that it´s still kindof lazy when trying to resolve paths which include things like this:

@"c:\Windows\System\..\System32"

(Don´t look at me like that! this sometimes happens with automatically-generated paths... ;)

Don´t know why, but it seems that FolderBrowserDialog doesn´t re-use the same routines for parsing paths as the rest of the .Net. Some people say this is a bug... Anyway I guess it doen´t like the "\..\" thing.

An easy way to fix it, is to parse the "hot" path with the DirectoryInfo class. It is much stronger than the folderBrowser and can handle it:

System.IO.DirectoryInfo info = new DirectoryInfo(@"c:\Windows\System\..\System32" );
this.folderBrowserDialog1.SelectedPath = info.FullName;

And that´s it.

Hope it helped. Cheers!

1962 Volkswagen T1 beats Porsche and Aston Martin

Imagine you are a rich guy. Or even better, imagine you are a poor programmer that suddenly sells it´s software to a big company by, let´s say, 140.000 euros.

You will obviously want to leave the freak group of your town, become popular and a well known computer geek. The first step is to buy a decent car... let´s say: a nine-eleven or an Aston Martin. What´s next?

Easy. Take it into Nürburgring for some fast laps. You are cool. You FEEL cool. You look cool. You look the bravest lion around there. And then... it happens...

The 1962 VW T1 with a little bit of improvement.

Jaaa jaaaa jaaaa....

MMC cannot open the file XXX.msc

A copule of weeks ago, my home machine started to show a weird behavior. Suddenly, both Diskeeper nor the normal windows defrag.msc didn´t work.

The message was something like:

"mmc cannot open the file XXX.MSC. This may be because the file does not exist,is not an MMC console, or was created by a later version of MMC. This may also because you do not have sufficient access rights to the file "

Right, after googling it I´ve found several solutions. Ones say that this fixed their problem (enabling offline files). Others (like me) fixed it running:

regsvr32 "C:\windows\system32\msxml3.dll"

This will re-register msxml3.dll. If successful, a dialog will come up saying that, and now your msc files should work again.

I don´t have a clue about what caused this problem. Anyone knows?

Thanks!

Encuentro NavarraDotNet con Unai Zorrilla y el Maligno

Esta tarde, a las 18:30, se celebrará un nuevo encuentro de NavarraDotNet en el que podremos disfrutar de la compañía de Unai Zorrilla (MVP Compact Framework)

Os paso la info:

Evento: Unai Zorrilla viene a la 3º quedada de NavarraDotNet 2.0!!
Día: jueves, 10 de enero de 2008;
hora: 18:30
Lugar: Centros de Excelencia de Software. Polígono Industrial Mocholi. Plaza CEIN. Noain

Organiza: NavarraDotNet con la colaboración de PlainConcepts, Masbytes y CES

Invitado especial: Unai Zorrilla (Microsoft MVP Compact Framewok)

Link para el registro.

Agenda:

18:30: Reunión del grupo de usuarios NavarraDotNet: últimas novedades y elección del plato a degustar. Se comentarán las últimas peripecias con el servidor, la situación de los preparativos de las próximas actividades y demás chascarrillos. También votaremos in-situ para elegir uno de los siguientes temas para la charla que, justo a continuación, nos dará Unai Zorrilla.

Este es el menú del día:

- Nuevos modelos de acceso a datos en plataforma Microsoft
- Desarrollo de aplicaciones para dispositivos móviles
- Windows Workflow Foundation
- Windows Comunication Foundation

19:00: Ponencia de Unai Zorrilla

21:00: Nos llevamos a Unai a cenar

Los comerciales de Dell utilizan nicknames castizos... Me Parto!

No se si es impresión mía, pero cada vez estoy más convencido de algo que es francamente inquietante:

"Los comerciales de Dell utilizan nicknames castizos"

Ja jaaaaaa... es que me parto.

Quizá era tartamudeo agudo, pero hubiera jurado que el comercial que me atendió hace un par de meses no era español. A pesar de que su email era Daniel_Rodriguez@dell.com. Yo pensé... "quizá sea hijo de españoles o latinos, y por eso tiene ese nombre..."

Pues resulta que hoy he hablado con Miguel_Sanz (no, no es nuestro queridísimo presidente de la comunidad), un franchute de los de pro, son sus "egues" (erres) y sus "pog favogues".

Será que les da apuro reconocer que la central de atención telefónica está en Calasparra (más bien en la France, porque te llaman con un prefijo +33)... ¿Cuánta pasta se gastará esta peña en teléfono? En fin, gracioso...

Por cierto, un apunte. No seáis primos como yo antes y cuando pidáis algo a Dell, siempre llamad a un comercial, que os harán alguna ofertilla. Si lo pedís por internet, os quedáis con el precio oficial.

History

In 1976, a new supercomputer designed and developed by Seymour Cray and it´s team (Cray Research) was announced. It was the Cray-1. The first unit was installed in Los Alamos National Laboratory for $8.8 million, could perform 133 megaflops (millions of floating point operations per sec.) and had 8 Mb of memory.
In the pic, the Cray-1 at Deusches Museum:


That can seem quite old but, as you can see, it´s not bad at all for the seventies:

1984: PC 8088 - 4,77 MHz −→ 500 flops
1990: PC 80386 - 20 MHz −→ 160 Kiloflops
1997: PC Pentium II - 266 MHz −→ 66 Megaflops
2004: PC Pentium 4 - 3 GHz −→ 660 Megaflops

Well, now with the 8.8 million dollars we could buy like 9.000 Pentium 4, but that´s not the point... je je... You can read more about the Cray-1 here and here.

Another fun one is the Telefunken TR4. It was first presented even earlier than the Cray, in 1962. It had a Word length of 52 bits and a ferrite core RAM of 32768 words. Huge, isn´t it?


Last, but not less: the The IBM System 360-20.
It is supposed to be the first minicomputer to include an operating system. As you can see in the following picture, I really don´t understand what "mini" stands for in that term ;)


Well, compared to the Telefunken, it´s indeed a minicomputer.

In fact, the 20 model was the cheapest one of the 360 family. It had a magnetic core memory of 4 Kb and was developed in 1966. Another pic:

See you!