Dupe Files - Preview Screenshots

29. Aug 2008 21:07 (bearbeiten)


Ich arbeite gerade wieder an einem meiner Lieblings-Projekte "Dupe Files". Ein Projekt, das ich leider vor langer Zeit unvollständig liegen gelassen habe. Die letzte lauffähige Dupe Files Version stammt von 2005 und wurde von mir noch unter Delphi entwickelt.

Die aktuelle Version entwickle ich stattdessen unter Visual Basic .NET, da ich beruflich nun viel mit dieser Sprache zu tun habe. In der ersten Testversion hatte ich leichte Geschwindigkeitsprobleme bei mehreren 10.000 Dateien. Hinzu kommt, dass das Klassendesign nicht besonders gut gewählt war.

Etwa 3 Jahre und wesentlich mehr Erfahrung später läuft nun auch die neue .NET Version so schnell (wenn nicht schneller) wie die alte Delphi Version (hier kann die letzte alte Version heruntergeladen werden).

Hier einige Screenshots. Bis zur fertigen Version dauert es allerdings noch etwas...

Wie man sieht zeigt Dupe Files nun nur noch Duplikat-Dateien an. Alle anderen werden der Übersicht und der Performance wegen gar nicht erst angezeigt. Ich dachte, was soll der Benutzer mit Dateien anfangen, die gar nicht doppelt sind? Also weg damit...

Außerdem experimentiere ich gerade mit ListViewGroups zur gruppierten Darstellung der Einträge. Über die Bezeichnungen (Small, Medium, Large, Huge) bin ich aber noch nicht ganz glücklich.

Ubiquity für Firefox

29. Aug 2008 21:02 (bearbeiten)


Mehr zu Ubiquity gibts in den Mozilla Labs.

Max Payne Poster

29. Aug 2008 20:47 (bearbeiten)


Nachdem ich nun einige Mark Wahlberg Filme gesehen habe, in denen er ziemlich gut gespielt hat (Shooter, The Happening) , bin ich doch positiv auf die Erscheinung von Max Payne gestimmt.

Und die Poster sehen auch ziemlich gut aus, obwohl sie mich etwas zu sehr an den Stil von Sin City erinnern...

Tags ¦ und

Piracy is not theft

29. Aug 2008 20:41 (bearbeiten)


Ein kleiner aber feiner Unterschied (den zugegebenermaßen allerdings nicht jeder gleich wahrnimmt).

Tags ¦ , , und

One condition: i drive my own car

25. Aug 2008 16:28 (bearbeiten)


Alle Jason Statham und Transporter Fans können gespannt sein. Im November 2008 kommt der dritte Teil der Reihe in die Kinos. Mit dabei ist Robert Knepper, bekannt aus Prison Break und Hitman.

Hier gehts zum Trailer.

Tags ¦ , und

VB .NET: Advanced logging method

24. Aug 2008 20:39 (bearbeiten)


The following function adds aMessage to the applications DefaultLogWriter. The DefaultLogWriter is a nice little feature included in Visual Basic .NET which allows you to automatically create a log file in the "Documents and Settings" folder of your application to which you can add your log entries via WriteLine(aMessage).

The function below also adds some more information to the log entry itself. It adds the current date and time and also retrieves the calling method from stack, which can be useful for tracking down a bug (thanks go out to skybound.ca for his help here).

The output could look like this:

"23.08.2008 16:15:43 : CreateListViewItem : Added new item"
  1. Public Shared Sub AddToLog(ByVal aMessage As String)
  2.  
  3. If Not My.Settings.Logging Then Exit Sub
  4.  
  5. Dim nle As String ' new list entry
  6. Dim acn As String ' A caller name
  7.  
  8. ' if logging of stack is enabled put together some info
  9. ' note: i put this as an option to the application.settings because when adding many entries to the log you might want to speed up things a bit by disabling logging the stack info
  10. If My.Settings.LogStack Then
  11.  
  12. Dim sf As System.Diagnostics.StackFrame
  13. ' the calling method is always frame 1 of the call stack (the current method is frame 0)
  14. sf = New System.Diagnostics.StackTrace().GetFrame(1)
  15. acn = sf.GetMethod.ReflectedType.Name & "." & sf.GetMethod.Name
  16.  
  17. Else
  18. acn = ""
  19. End If
  20.  
  21. ' setup log string
  22. nle = Now.ToShortDateString & " : " & Now.ToShortTimeString & " : " & acn & " : " & aMessage
  23.  
  24. ' Add to log
  25. ' note: you could also add the nle string to a listbox or something else...
  26. My.Application.Log.DefaultFileLogWriter.WriteLine(nle)
  27. My.Application.Log.DefaultFileLogWriter.Flush()
  28. End Sub

Tags ¦ , und

VB .NET: Binary compare files

24. Aug 2008 20:23 (bearbeiten)


This little function compares two files byte for byte and returns true if they are equal.

  1. Public Shared Function Compare(ByVal aFilename1 As String, ByVal aFilename2 As String) As Boolean
  2.  
  3. Dim fs1 As New System.IO.FileStream(aFilename1, IO.FileMode.Open, IO.FileAccess.Read)
  4. Dim fs2 As New System.IO.FileStream(aFilename1, IO.FileMode.Open, IO.FileAccess.Read)
  5.  
  6. If fs1.Length <> fs2.Length Then
  7. Return False
  8. End If
  9.  
  10. For i As Integer = 0 To fs1.Length - 1 Step i + 1
  11. If fs1.ReadByte <> fs2.ReadByte Then
  12. Return False
  13. End If
  14. Next
  15.  
  16. fs1.Close()
  17. fs2.Close()
  18.  
  19. Return True
  20. End Function

Tags ¦ , und