Musste heute wieder spontan schnell wissen, welche .NET Version installiert ist.

„Systemsteuerung/Software“ werden einige denken; ja sicher. Dort kann man die grobe Version sehen; v2.0, v3.5 oder so. Wenn man jetzt aber genauere Details haben möchte hilft das nicht. Hier eine schnelle Lösung:
Neue Batchdatei erstellen und folgendes reinkopieren:

@echo off

if "%1"=="" goto Start
if "%1"=="/Single" goto Single
if "%1"=="/TempVersion" goto TempVersion
echo wrong Option %1
exit

:Start
echo. 
echo.Installed .NET Framework-Versions :
echo.
for /D %%i in (%windir%\Microsoft.NET\Framework\v?"."*) DO call %0 /Single %%i

set info=Hotfix for Microsoft .NET Framework 3.0 - KB958483 - Dez 2008
set asm=%ProgramFiles%\Reference Assemblies\Microsoft\Framework\v3.0\PresentationFramework.dll
if exist "%asm%" call %OutExe% "%asm%" "%info%" "3.0.6920.1500"


set info=Hotfix for Microsoft .NET Framework 3.5 - KB958484 - Dez 2008
set asm=%ProgramFiles%\Reference Assemblies\Microsoft\Framework\v3.5\system.data.services.client.dll
if exist "%asm%" call %OutExe% "%asm%" "%info%" "3.5.30729.196"

echo.
pause && Goto Finish

:Single
set asm=mscorwks.dll
  if exist "%2\%asm%" call %0 /TempVersion %2 "%asm%"
set asm=Windows Communication Foundation\Infocard.exe
  if exist "%2\%asm%" call %0 /TempVersion %2 "%asm%"
set asm=Microsoft.Build.Tasks.v3.5.dll
  if exist "%2\%asm%" call %0 /TempVersion %2 "%asm%"
Goto Finish

:TempVersion
set CsFile=%TEMP%\VersionTmp.cs
set OutExe=%TEMP%\VersionTmp.exe
if exist %OutExe% call %OutExe% "%2\%~3" && goto Finish

echo. using System; using System.Diagnostics;                           >%CsFile%
echo. class Class1                                                     >>%CsFile%
echo. { static void Main(string[] args){                               >>%CsFile%
echo.   string pfad = Environment.ExpandEnvironmentVariables(args[0]); >>%CsFile%
echo.   FileVersionInfo v=FileVersionInfo.GetVersionInfo(pfad);        >>%CsFile%
echo.   if (args.Length == 3){string info = args[1];                   >>%CsFile%
echo.     string vCheck = args[2];                                     >>%CsFile%
echo.     if (v.ProductVersion != vCheck) return;                      >>%CsFile%
echo.     Console.WriteLine(info);                                     >>%CsFile%
echo.   } Console.WriteLine(v.ToString());                             >>%CsFile%
echo. }}                                                               >>%CsFile%
%2\csc /nologo /target:exe /out:%OutExe% %CsFile% 
%OutExe% "%2\%~3"

:Finish

Die Batch stammt von Frank Dzaebel, Dezember 2008.

Sie zeigt die genaue Version der installierten Frameworks an, Installationspfad und weitere Details. Kann durchaus hilfreich sein, das zu wissen.

Weitere, simple Möglichkeiten aber mit weniger Details:
Nummer 1:
Geht in den Ordner C:\WINDOWS\Microsoft.NET\Framework\ und schaut euch dort die Ordner an, die existieren. Anhand der Ordnernamen könnt ihr recht sicher die Installation sehen.
Nummer 2:
In der Registry unter HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\ die Unterordner angucken.

Schnell kann es passieren, wenn man sich mal eine kurze Zeit mit Ubuntu beschäftigt hat und es dann einen Monat brach lag: das Passwort ist weg und es war natürlich irgendwas schnell gewähltes, nirgends notiert und so. Shit happends; aber das lässt sich ändern.

ubuntu-reset-password-grubUbuntu wird ganz normal gestartet, und nach dem POST Screen drücken wir schnell [Esc] im richtigen Moment:

Danach kommt der GRUB, ein Bootloader bei unixbasierten Systemen; hier wählen wir das gewünschte System mit dem „(recovery mode)“ Anhang:
ubuntu-reset-password-boot

Nach dem typischen Linux wir-geben-eine-Menge-Scheiße-aus-und-beeindrucken-oder-verwirren-euch-damit-indirekt-Gedöns sehen wir ein Auswahlmenü im hübschen Blau-grau-Augenkrebs, wie man es von Windows auch schon kennt.
ubuntu-reset-password-usage
Hier wählen wir den „root“ Eintrag und betreten damit die Shell. Mit folgenden Befehlen könnt ihr sowohl den Nutzernamen herausfinden als auch dessen Passwort neu setzen:

ls /home

ls /home gibt den (oder die) Benutzernamen zurück. An sich wird einfach nur der Inhalt des Home-Ordners angezeigt, was aber das selbe Resultat hat 😉

passwd [username]

Den gewünschten Usernamen eintragen. Als nächstes müsst ihr 2x das neue Passwort eingeben. Ihr werdet dabei keine Veränderung des Eingabefelds sehen, weder die Eingabe noch Sternchen oder Ähnliches. Einfach eintippen und 2x mit [Enter] bestätigen.

exit

Damit kehrt ihr zu dem Recovery Menü zurück und könnt dort z.B. mit „resume“ das Booten von Ubuntu einleiten. Ihr könnt natürlich auch

reboot

nutzen um das System komplett neu zu starten.

Da werden sich jetzt viele denken, „Ist das nicht eine extreme Sicherheitslücke??„. Ja natürlich, wenn mehrere an dem Computer sitzen, sollte man sich diese Recovery Konsole sichern.
Es lässt sich sich der GRUB mit einem Passwort absichern. Am Anfang habt ihr die [Esc] taste gedrückt, um den GRUB zu betreten und dann ein System ausgewählt; hiernach lässt sich ein Passwort schalten.
Zuerst starten wir die GRUB shell mit dem

grub

Befehl. Dort gebt ihr dann den

md5crypt

Nun gebt ihr ein Passwort ein und bekommt von diesem Passwort den MD5 Hash. Kopiert den String und kehrt zurück in die Shell („quit“ als Befehl).
ubuntu-reset-password-grub-md51
Öffnet dann die Datei /boot/grub/menu.lst mit eurem Lieblingseditor („sudo“ davor nicht vergessen).
Dort fügt ihr nach jeder „initrd“ Zeile, die ihr sichern wollt, folgende Zeile ein:

password –md5 $1$w7Epf0$vX6rxpozznLAVxZGkcFcs

Also wenn wir z.B. den normalen und den Recovery Modus sperren wollen müsste das folgendermaßen aussehen:

title Ubuntu 8.10, kernel 2.6.27-7-generic
uuid 61fb1eea-3c4d-458c-a273-881aa042b461
kernel /boot/vmlinuz-2.6.27-7-generic root=UUID=61fb1eea-3c4d-458c-a273-881aa042b461 ro quiet splash
initrd /boot/initrd.img-2.6.27-7-generic
password –md5 $1$oer/1/$AVzOOZEZNE6lkWtV4bQRg/
quiet

title Ubuntu 8.10, kernel 2.6.27-7-generic (recovery mode)
uuid 61fb1eea-3c4d-458c-a273-881aa042b461
kernel /boot/vmlinuz-2.6.27-7-generic root=UUID=61fb1eea-3c4d-458c-a273-881aa042b461 ro single
initrd /boot/initrd.img-2.6.27-7-generic
password –md5 $1$oer/1/$AVzOOZEZNE6lkWtV4bQRg/

Wenn ihr jetzt im GRUB eins dieser gesicherten System auswählt seht ihr diese Abfrage:
ubuntu-reset-password-grub-pw
Pustekuchen, Arschkarte.

So das wars.

Diesen Dienst fand ich letztens auf den Wegen durch das Internet.
Yahoo Smush.it optimiert Bilder, sodass sich deren Dateigröße verringert. Dabei heißt es in der Beschreibung, dass es „lossless“ sein soll, also alle Aktionen sollen das Aussehen dabei nicht verändern.
Webentwickler sind immer daran interessiert, einem Bild so viel an Bytes abzuknöpfen, wie es nur geht, damit die Seite am Ende schneller lädt.

Testen wir den Dienst mal. Ich habe hier 4 Bilder. Sie sind alle gleich aber doch unterschiedlich. Also zeigen alle das Selbe, sind aber verschieden groß. Ich verlinke die Bilder nur, damit der Post nicht zu ladeintensiv wird.

Original .psd672KB:
[lässt sich leider nicht zeigen, weil WordPress keine .PSDs darstellen kann… Lusche]
Dieses Bild ist zumindest das Original aus Photoshop. Die Größe ist natürlich inakzeptabel. In Photoshop wird auch gleich eine .jpg Kopie abgespeichert. Diese ist nur noch 1/6tel so groß aber visuell nicht anders. (normales Speichern unter, höchste Qualität, 3 Durchgänge)

Höchste Qualität .jpg104KB:
windows-7-special
Das ist also unser Originalbild und dient als Vergleich.

Nun kommt Yahoo Smush.it. Es kann leider nur mit Bildern umgehen, die im Internet liegen, also muss man alle Bilder erst auf nen Webspace laden, bevor man sie dort verarbeiten kann. Da gibt es auf jeden Fall Nachholbedarf.

Smush.it Bild .jpg62KB:
smush-it-results
windows-7-special-2

Jetzt öffnet mal die 2 Bilder (vollquali und smushit Version) in 2 Tabs und switcht mal schnell hin- und her. Erkennt ihr einen Unterschied? Beachtet vor allem den Schatten der Schrift, dieser wird bei normaler .jpg Kompression normalerweise körnig und bleibt nicht so weich.

Jetzt komprimier ich das Originaljpg nochmal manuell:
70% Quali .jpg12KB:
windows-7-special-70
Vergleicht ihr diese Version mit den anderen dann fällt sofort ein Unterschied auf. Schriftschatten wurde körnig, Farben bekommen ein Rauschen, sogenannte .jpg-Artefakte. Dafür ist die Dateigröße nur noch 1/10tel vom Originalbild.

Man muss sich an dieser Stelle wohl entscheiden; Qualität oder Schnelligkeit.
Würdet ihr Smush.it nutzen oder verkleinert ihr die Bilder selber?

Einige kennen den Namen FrontMotion Firefox vielleicht schon. Und zwar ist das der normale Firefox, verpackt in einer .msi, die sich also auch automatisiert über das Netzwerk installieren lässt. In vielen Betrieben ist diese Version von Firefox zu finden.

Das Problem ist nun, wenn man vom FrontMotion Firefox 2 auf den normalen Firefox 3 wechseln möchte.
Normalerweise würde man Firefox 3 einfach installieren, dieser überschreibt dann die FF 2 Version. Das ist wegen FrontMotion schonmal gar nicht möglich.

Der nächste Schritt wäre, erst FM FF 2 zu deinstallieren und dann FF 3 zu installieren. Hier tut sich das Problem auf, dass nach der Installation von FF 3 dieser nicht mehr starten lässt. Das liegt daran, dass sich das angelegte Profil vom FM FF 2 mit dem neuen FF 3 Profil nicht verträgt.
Folgende Lösung:

  • FrontMotion Firefox 2 deinstallieren
  • Löschen der Ordner [Userprofiles]/Administrator/Anwendungsdaten/Mozilla
    und [Userprofiles]/Administrator/Lokale Einstellungen/Anwendungsdaten/Mozilla
  • Installieren von Firefox 3

Und dann sollte auch FF 3 wieder laufen, zudem mit den alten Profilen (ausser dem vom Administrator, aber das kann man ja vorher auch sichern), das heißt, ihr verliert nicht mal die Lesezeichen o.Ä.

Hoffe ich konnte dem einen oder anderen helfen.

Durch den Umzug auf den Webhoster All-Inkl ergaben sich hier und da kleine Schwierigkeiten.
Ich hatte zum Beispiel ein Problem mit den Besitzerrechten der WordPress Ordner, wie zum Beispiel „wp-content/uploads/“ oder „wp-content/gt-cache“ (gehört zum Global Tranlator Plugin).
Wenn man WordPress normal installiert werden bestimmte Ordner von den automatischen WordPress Scripts angelegt und die Besitzerrechte erhalten dann die Scripts, was auch vollkommen richtig ist.
Zieht man jetzt mit dem kompletten Blog auf einen anderen Hoster muss man alle Dateien auf den neuen Webspace via FTP hochladen. Dabei werden die Besitzerrechte geändert. Nun hat der FTP User die Besitzerrechte, nicht mehr das Script.
Das resultiert in verschiedensten Fehlermeldungen, die alle „Permission Denied“ ausgeben. Die normalen Berechtigungen von „755“ auf Ordnern und „644“ auf Dateien, wie es bei WordPress normal wäre, reichen hier nicht mehr aus. Abhilfe würde chmod „777“ schaffen aber es sollte jeder halbwegs gescheite Webmaster wissen, dass es sowas niemals geben sollte.

Also an alle All-Inkl Besitzer, die Probleme mit Besitzerrechten haben.
Prüft in eurem FTP Programm ob der Ordner, der Probleme macht (entnommen aus der Fehlermeldung natürlich), die richtigen Berechtigungen (755 z.B.) besitzt. Sollte es so sein und es gibt Fehlermeldungen dann ist der Besitzer dieses Ordners sicher euer All-Inkl Benutzername (z.B. w00b3a24).
Um das zu beheben geht in das KAS und dort unter Tools->Besitzrechte findet ihr Abhilfe.
Wählt den Nutzer „PHP-User“ und dann den Ordner (z.B. wp-content). Setzt das Häkchen von Rekursiv und bestätigt den Prozess.
all-inkl-besitzrechte-wordpress
Nach einigen Sekunden sollte Prozess abgeschlossen sein. Der gewählte Ordner gehört nun dem PHP User. Testet kurz, ob Updates/Installation von Plugins oder die benötigte Funktionalität damit korrigiert wurde. Wenn ja, Glückwunsch.
Nun solltet ihr wieder denselben Ordner (z.B. wp-content) zurück auf euren FTP-Benutzer zurückzustellen, damit die Rechte innerhalb von WordPress nicht durcheinandergewürfelt sind. Die WordPress-Funktionen sollten auch nach dem Reset zurück auf den FTP-Benutzer erhalten bleiben.

Wer in der letzten Woche mitgelesen hat wird meine Spambotprobleme bemerkt haben. Zur Erinnerung:

Ich bin möchte euch nun eine absolut geile Lösung vorstellen: NoSpamNX!

Das Plugin für WordPress installiert sich so simpel wie jedes andere auch, einfach herunterladen, in das Pluginverzeichnis schieben und dann aktivieren.

Die Funktionen sind überschaubar, reichen aber aus. Man kann die Spambots entweder komplett sperren, ihre Kommentare als Spam markieren und sie auch für einen bestimmten Zeitraum sperren.
nospamnx-funktionen

Das Ganze funktioniert wunderbar, ich habe das Plugin gestern Mittag aktiviert und seitdemnicht einen Spamkommentar bekommen. Und die Funktion bestätigt sich auch an den Zahlen.
nospamnx-statistik

Ihr könnt zusätzlich noch einige Ausnahmen hinzufügen aber das kommt seltener vor.

Eine Empfehlung für Jedermann. Und damit ihr euch die Mühe erspart, hier der direkte Download:

Download section
nospamnx.1.7 [.zip]

Der Plugin-Tipp kommt übrigends von Caschy, thx.

img_windows-7-rc
Wie ihr sicher schon bemerkt habt ist die RC1 von Windows Se7en nun zum Download verfügbar.
Auf der Windows 7 RC Downloadseite von Microsoft könnt ihr jetzt mit einem Live Account oder einem MS/MSDN-Passport den Download vom Release Candidate starten.

Meinen Lesern bietet ich folgende Services auf Anfrage an:

Die Zeiten von Windows 7 RC sind ja nun echt schon lange vorbei, also schaut in meinen Windows 7 Enterprise Post oder wandert durch die Weiten meines Blogs.

Vor dem Download von den Microsoft Server erhaltet ihr noch einen Windows-7 Key.
windows-7-rc-testphase-beginnt-key
HIER gibts 23 Windows 7 Keys!

Der Download selbst verläuft schnell, wie man das nicht anders vom Softwaregiganten erwarten würde. Mit über 6 MB/s ist die 2,5GB große Imagedatei auch in wenigen Minuten startbereit.
windows-7-rc-testphase-beginnt-download

Viel Spaß beim Testen, oder interessiert euch das RC / Windows 7 gar nicht?

Ich werde das System mal auf einer VM testen. Laut den Systemanforderungen

  • 1 GHz or faster 32-bit (x86) or 64-bit (x64) processor
  • 1 GB RAM (32-bit) / 2 GB RAM (64-bit)
  • 16 GB available disk space (32-bit) / 20 GB (64-bit)
  • DirectX 9 graphics processor with WDDM 1.0 or higher driver

begnüt es sich ja durchaus mit Hardware, die man mit einer VM simulieren kann.