WSUS unter OS X
22. Nov
Es gibt zwar eine Anleitung, wie man das WSUS Offline Update unter OS X ans laufen bekommt, aber das hat bei mir nicht sauber funkttioniert. Daher hier meine Anleitung.
MacPorts, und damit XCode müssen installiert sein. Auf dem Terminal anschließend folgendes installieren:
port install xmlstarlet cabextract wget dos2unix cdrtools md5deep
Nun muss noch die DownloadUpdates.sh angepasst werden. Das diff habe ich bei PasteBin abgelegt.
Was habe ich getan? Der stat-Befehl hat eine andere Syntax, er wird verwendet, um festzustellen, ob sich in den Katalogen zwischen zwei Ausführungen von DownloadUpdates.sh etwas verändert hat. Außerdem ist das Programm hashdeep nicht zu gebrauchen. Wahrscheinlich ein x32/x64-Problem. Da wir aber md5deep installiert haben, wurde uns bereits ein frischen Kompilat im $PATH abgelegt. Und damit das Skript dieses verwendet, kann man entweder einen Symlink anlegen, oder das Skript verändern. Aufgrund der Herumprobiererei habe ich letztere Variante gewählt.
Die fertige DownloadUpdates.sh kann man sich auch direkt herunterladen.
Was mache ich nun damit?
Ich habe mir ein Skript gemacht, das regelmäßig die Downloads vornimmt. Wenn ich sie dann brauche (und daran denke) brenne ich das client-Verzeichnis entweder auf eine DVD-RW oder auf einen Stick. Das Skript könnte so aussehen:
#!/bin/bash
UPDATER=./DownloadUpdates.sh
LANG=deu
FLAGS="/dotnet /msse /wddefs"
# Win 7 32 Bit
$UPDATER w61 $LANG $FLAGS
# Win 7 64 Bit
$UPDATER w61-x64 $LANG $FLAGS
# Server 2008 / Vista 32 Bit
$UPDATER w60 $LANG $FLAGS
# Server 2008 / Vista 64 Bit
$UPDATER w60-x64 $LANG $FLAGS
# XP 32 Bit
$UPDATER wxp $LANG $FLAGS
VirtualBox HDD-Image vergrößern
16. Nov
Ich musste die Tage eine Windows-Server VM aufsetzen, um etwas zu testen. Da ich meine SSD nicht zu stark füllen wollte, habe ich dem Festplattenimage “nur” 20 GB dynamischen Speicher gegönnt.
Nach der Installation und ca. 220 Patches später sollte dann das eigentliche Tool installier werden. Aber dann waren die 20 GB auch schon voll. Nun dachte ich, es stünden mir viele Wege offen, den Platz zu erhöhen, aber denkste.
- VM runterfahren, Plattenimage vergrößern. Geht nicht. VirtualBox bietet diese Möglichkeit nicht, oder zumindest nicht unter OS X an.
- Zweites Image dranhängen und Windows sagen, dass es als Dynamischer Datenträger verwendet werden soll, womit das vorhandene Image bzw. die Platte C erweitert werden soll.
Das Konvertieren in einen Dynamischen Datenträger hat prima mit C: und dem neuen D: geklappt, aber leider können Systempartitionen, also die, wo Windows selbst drauf ist, nicht erweitert werden.
Meine sehr umständliche Lösung:
- C: als 20GB-Image drin lassen, neues 40GB-Image als D: hinzufügen. Dabei auf die Reigenfolge der SATA-Ports der VM achten.
- In der VM: D: in einen Dynamischen Datenträger verwandeln, 20GB Partition anlegen.
- D: als Spiegelung von C: einrichten, syncen lassen.
- VM runterfahren, das erste Image, also C:, aus der VM entfernen.
- Mit Windows-DVD/Image die VM starten
- Reparaturkonsole ausführen, dort diskpart starten, mit select 0 und extend die Partition auf ihr Maximum erweitern, also 40GB.
- Mit exit und exit diskpart und die Reparaturkonsole beenden.
- Neustarten und hoffentlich freuen.
IBM ServeRAID macht (keine) Probleme
19. Mai
Da hat man mal eine IBM xSeries 346 in den Fingern und ist enttäuscht, dass es die Platten nicht tun – denkt man! Wie kommt man da drauf? Man schaltet den Server ein und nur eine LED an den Bays bzw. den HDD-Rahmen gehen an. Nimmt man eine Platte raus und schiebt sie vorsichtig rein (vorsichtig = im Submilimeterbereich langsam) bleibt die LED an. Dreck im Bay? Wackler im SCSI-Stecker? Das BIOS verrät auch nix.
All das traf nicht zu. Das Tiny-RAID-Utility, das man als BIOS des RAID-Controllers bezeichnen kann, bietet so gut wie keine Infos und es lässt sich auch nichts konfigurieren. Man muss sich die ServeRAID Tool CD bei IBM runterladen.
Nach dem booten des Standard-Linux wird bei Ankunft in rc3 natürlich erstmal das wichtigste gemacht: Eine andere Konsolenschriftart geladen, welche Comic Sans nicht ganz unähnlich sieht. Und auch wichtig: Maus anschließen! Anderenfalls kotzt irgendein Maus-Programm die Konsole voll und man landet in einem Dialog, der sich via Tastatur nicht bedienen lässt. Tipp: USB-Mäuse funktionieren. In meinem Fall sollte ich erstmal den RAID-Controller updaten. Entgegen anderer Informationen im Internet _muss_ man nicht die exakte Version für seinen Controller laden.
Aber das Tool an sich funktioniert sehr gut. Hot Swap geht, Arrays definieren geht, HDDs identifizieren geht, Arrays identifizieren geht. Also alles was man braucht. Und da merkt man dann: Die LEDs der Platten sind komplett Software-Steuerbar. Ist die LED aus, beutetet das nur, dass die Platte nicht aktiv ist. So einfach ist das.
Spring Roo default.jspx validiert nicht
18. Okt
Wer eine Google-Once-Lösung zum Problem mit Roo generierten Projekten sucht, bei denen Eclipse die default.jspx nicht validiert bekommt, dem sei hiermit geholfen.
Ersetze
<c:if test="${pageContext.request.userPrincipal != null}">
durch
<c:if test="${pageContext['request'].userPrincipal != null}">
Diese Lösung zerstört sich beim Release von Roo 1.1 automatisch.
https://fisheye.springsource.org/changelog/spring-roo?cs=24d165652520fc638303d69aa55400e43af9f19e
StarCraft 2 Mac Probleme
29. Jul
Juhuu! StarCraft 2 ist endlich da (“It’s all about time!”), Amazon hat überpünktlich geliefert und letzten Dienstag konnte man es dann auch endlich installieren. Das hat zwar manchen zu lange gedauert, aber ich war froh, es überhaupt anspielen zu können.
Nach dem starten der Kampagne und durchgelaufenem Fortschrittsbalken des Ladebildschirms kam jedoch die Ernüchterung:
Der Desktop begrüßte mich wieder mit der Meldung
EXC_BAD_ACCESS (0x00000001)
EXC_BAD_ACCESS KERN_PROTECTION_FAILURE 0x00000005
(Siehe auch: Battle.Net Forum)
Im Forum hat dann ein Blizzardmitarbeiter auf eine FAQ hingewiesen, die mich weiterbrachte. Die Kiddies im Forum meinten natürlich, dass das alles nix bringt und Blizzard stinkt. Mit etwas Geduld und geht es aber. Was habe ich getan?
- Rechte reparieren mit dem Festplatten-Dienstprogramm.
Ich hatte zuvor eine neue Platte eingebaut und via Time Machine vollständig wiederhergestellt. Evtl. ist dabei, oder bei meinem System überhaupt (es war noch mein erstes OS X) etwas im argen gewesen. Vielleicht waren auch die MacPorts schuld, auf jeden Fall hat das Dienstprogramm einige 1000 Dateien neue Rechte verpasst. - SC2 neu installieren.
Danach klappe es immernoch nicht. Im Stack Trace las ich aber von einem Thread, der ein file_open durchführen wollte … wenn der Installer irgendwo etwas platziert hat, wo der Programm nich mehr ran kommt, ist klar, das es nicht funktioniert. Also nochmal drüberinstalliert und schon hat es geklappt.
Ich freue mich jedenfalls jetzt auf viele Stunden SC2.
Spring MVC Form TagLib: Disable checkbox
15. Jul
Notiz für mich und für alle, die bei einer Spring WebApp die Form-Tag Library nutzen.
Soll beispielsweise eine Checkbox für den Nutzer nicht veränderbar sein, so würde man in XHTML folgendes schreiben:
<input type="checkbox" name="zutat" value="salami" checked="checked" disabled="disabled" />
So wäre für immer Salami ausgewählt. Der Spring-Tag sieht dazu aber so aus:
<form:checkbox path="pizza['salami']" disabled="true" />
Schreibt man disabled=”disabled”, wird dies schlichtweg beim Rendern ignoriert.
Algorithmik
17. Apr
Ich hatte gerade eine Idee für den schlechtesten Sortieralgorithmus, den es zum Sortieren von Dateien glaube ich gibt:
Aufgabe: Sortiere Dateien nach Größe.
Lösung: Starte pro Datei einen Thread und kopiere die Dateien nach /tmp. Die Reihenfolge, in der die Threads enden ist die aufsteigende Folge Ihrer Größe. Voraussetzung ist ein fairer Scheduler und kein Caching. Das wird vor dem kopieren am besten abgestellt oder man kopiert direkt auf Blockebene der Festplatte.
Compile Error s2-liplianin Ubuntu 9.10
21. Jan
Und wieder eine Notiz an die Welt da draußen, die mit ihren anfänglichen C-Kenntnissen auf die Suche nach einem Fehler waren, der sich wie in folgendem Listing ausdrückt: http://pastie.org/pastes/421392
Leider spuckt Google auch nur dieses Listing von jemandem, der scheinbar das selbe Problem hat, aus.
Damit Google auch das hier findet: error: 'struct v4l2_ext_controls32' has no member named 'controls'
Und was wars? Nix! Im wahrsten Sinne. Es fehlt nämlich eine Datei in den Linux-Headern bei Ubuntu. Wie kann das kommen? Ganz einfach: Das Makefile löscht sie nach einem make rminstall. Ich denke nicht, das dies beabsichtigt ist.
Na ja, wie bekommt man es wieder hin?
aptitude purge linux-headers-2.6.31-17-server
aptitude install linux-headers-2.6.31-17-server
Klar, es gibt auch ein reinstall, aber dabei kam die Datei nicht zurück. Und diejenigen, die mit dpkg blind umgehen können, können auch rausfinden, welche Datei nun gefehlt hat. Ich wollte (musste) schnell den TV-Empfang wiederherstellen. Blöd, wenn das dev-System im Wohnzimmer steht.
Ach, und noch ein Tipp für die Leute, die Mercurial noch nie angewendet haben: make update holt Änderungen ab und “aktiviert” diese dann im lokalen repo. Dann einfach make -j4 && make install und wir sind wieder aktuell.
Google Conversion Code debuggen
21. Jan
Mal wieder was für die Kategorie: Merken!
Ist man dabei, für einen Kunden den Conversion Code von Google einzupflegen, fragt man sich, ob denn die Conversion wirklich abgesetzt wurde. Firebug zeigte nichts an, Cache war deaktiviert, woran kanns noch liegen? Aufschluss bringt ein ?google_debug an die URL anzuhängen. Aber das muss direkt nach dem Skriptnamen kommen, sonst bekommts der Conversion Code nicht mit. Danach können ruhig die GET-Parameter kommen.
Von OpenSource und Bäckern
06. Jan
Als ich noch bei einer mittelständischen Computerkette im Verkauf tätig war (ich war jung, Student und brauchte das Geld) kam es zur folgenden Situation mit einem Kunden:
- Kunde Hallo! Ich brauche einen DSL-Router. Welchen können Sie empfehlen?
- Ich Der Linksys Router hier ist ein guter.
- Kunde Ah ja. Warum? Also, was macht ihn besser als die anderen?
- Ich Nun, z.B. hat er eine open source Firmware… Kunde unterbricht mich, er scheint mit dem Begriff was anfangen zu können.
- Kunde Oh! Nein, dann nehme ich den auf keinen Fall. Der ist ja dann total unsicher.
Tja, was soll man da sagen. Zur Erklärung oder Aufklärung kam es nicht, der Kunde verließ ziemlich schnell das Geschäft. In Gedanken beschäftige ich mich manchmal dennoch mit der damaligen Situation, denn wer weiß, wann man nochmal jemandem erklären muss, was open source ist und warum das nicht sicherer ist. Ich würde es nun folgendermaßen tun:
Stellen Sie sich zwei Bäcker nebeneinander vor. Der rechte verkauft Rosinenbrötchen, der andere ebenfalls. Geht man beim rechten ins Geschäft und fragt nach dem Rezept, weil sie einem so gut schmecken, würde man nur ausgelacht mit der Begründung “Da könnt ich ja gleich den Laden zu machen!”.
Beim linken hängt das Rezept im Schaufenster. Jeder kann es sehen. Man muss nichtmal ins Geschäft dafür gehen. Es kommt vor, dass Omas ins Geschäft kommen und sagen “Wenn sie das Mehl in der Milch länger quellen lassen, schmeckts noch besser!”. Oder ein Lebensmittelingenieur gibt den Tipp, die Fliegen durch Rosinen zu ersetzen. Alles wird vom Bäcker ausprobiert und wenn es sich bewährt hat, mit ins Rezept aufgenommen.
Klar, manche schreiben sich das Rezept ab und backen es nach. Da ist auch nichts gegen einzuwenden. Die meisten bleiben jedoch bei ihrem Stammbäcker, denn dort wird das Rezept am ehesten verbessert.
Mit der Zeit kommen sogar mehr Kunden zum linken. Denn so ein Kerngeschäft wie der tägliche Brot- und Brötcheneinkauf ist Vertrauenssache.
Wer jetzt den Einwand hegt “Hey, der Bäcker der rechten Bäckerei könnte sich doch auch immer am Rezept der linken bedienen!” hat volkommen recht. Die Lizenz besagt jedoch, dass alle Änderungen jedoch dem Autor des Rezepts mitgeteilt werden müssen.
Letzte Kommentare