Hornklauseln und Minimalbelegung: Markierungsalgorithmus
Tuesday, 19. August 2008
Schritt 1: Umformen
Dieser Schritt ist nicht unbedingt nötig, vereinfacht die Sache aber. Die Klauseln werden umgeformt in Implikationsform.Dies funktioniert nach folgenden Regeln:
Bei negativen und positiven Elementen wird das positive gefolgert:
{Q,¬A,¬B} := ((A & B)->Q)Nur negative Elemente folgern !T (wird ausgewertet zu 0):
{¬Q, ¬A,¬B}:=((A & B & Q)-> !T)Ein positives Element folgert sich aus T (wird ausgewertet zu 1):
{Q}:=(T->Q)
Ein Beispiel:
Aus
M:= { {a,¬c}, {c}, {¬a, b, ¬c} } {¬b, ¬c, a, ¬d)wird
(c -> a) & (T -> c) & ((a & c) -> b) & ((b & c & d) -> a)
Schritt 2: Initialmarkierung
Nun werden die Element markiert, die aus einem T gefolgert werden:M1: (c¹ -> a) & (T -> c¹) & ((a & c¹) -> b) & ((b & c¹ & d) -> a)
Schritt 3: Whilemarkierung
Schritt für Schritt werden alle bisher unmarkierten Elemente markiert, die aus Elementen gefolgert werden, die schon alle(!) markiert sind.Abbruchbedingungen:
1. Es gibt nichts mehr zu markieren: erfüllbar
2. Es wäre !T zu markieren: unerfüllbar.
Dem Beispiel von oben folgend:
M2: (c¹ -> a²) & (T -> c¹) & ((a² & c¹) -> b) & ((b & c¹ & d) -> a²)
M3: (c¹ -> a²) & (T -> c¹) & ((a² & c¹) -> b³) & ((b³ & c¹ & d) -> a²)
=> erfüllbar.
Schritt 4: Auswertung
Teil der Minimalbelegung sind nun die markierten Elemente. In diesem Fall sind das alle außer d:a | b | c | d |
1 | 1 | 1 | 0 |
Quelle
Deutschland braucht mehr Autobahnen
Monday, 18. August 2008
Es ist doch völlig inkonsequent, nur ein paar tausend Arbeitslose in Pflegeheime zu stecken. Da fehlt das große Denken, Kreativität, Vision.
Viel effektiver wäre es doch, Autobahnen bauen zu lassen. Wir haben 4 Millionen Arbeitslose, das sind 4 Millionen potentielle Bauarbeiter. Mit denen könnten wir kostengünstig schadhafte Stellen ausbessern und neue Teilstücke errichten.
Statt Autobahnen zu bauen könnte man natürlich auch Gleise verlegen und herstellen. Das wäre doch mal eine Chance für den Transrapid. Und schon erstrahlt Deutschland in neuem Glanze.
Zugleich ersetzen wir so die bisherige Sozialpolitik durch etwas besseres, denn sozial ist, was Arbeit schafft.
Falls dafür das Geld fehlt, können wir uns ja einen Kredit bei den Amerikanern besorgen.
Iron Man
Monday, 18. August 2008
Wollt nur mal anmerken, dass Iron Man ein guter Film ist. Actionreich, unterhaltsam, gut gespielt.
Vom Registrierungswahn
Sunday, 17. August 2008
Bei twoday hat man nur 3 MB freien Speicher, wenn man nicht bezahlen will. Das ist für mich derzeit keine Option, später vielleicht.
Also musste ich diese Beschränkung umgehen: Bilder extern hochladen.
Nur wo macht man sowas am besten?
Imageshack&Co fallen raus, weil zu unübersichtlich und ohne Garantie, dass die Bilder immer online bleiben.
Was mir als nächstes einfiel war flickr. Ein großer Name, kennt man von früher, es ist sicher möglich, dort hochgeladene Bilder direkt zu verlinken und so hier zu nutzen.
Also dorthin zum Registrieren. Man sieht vielleicht schon mein Problem:
Da werden mir zu viele Daten abgefragt.
Ich will nur Bilder hochladen, kein Bankkonto eröffnen. Warum soll ich dann meinen echten Namen und meine Adresse angeben? Ich habe probiert, diese Angaben wegzulassen, das ging nicht. Falsche Daten eingeben will ich aber auch nicht.
Also nach einer Alternative gesucht. Und gefunden: Googles picasa-Webalben funktionieren auch ohne Software. Zur Registrierung benötigt man dort nichts weiter als eine E-Mail-Adresse.
ubuntuusers owned
Friday, 15. August 2008
Man verzeihe meine Sprache. Aber der Ausdruck passt. In meinen ersten Beitrag zum Thema Zeilenumbrüche auf ubuntuusers verlinkte ich Wohnmobils Supportanfrage als Beispiel dafür, dass neue User mit dem Ignorieren des Enters ihre Probleme haben. Damals war das ein einziger Block mit der verzweifelten Frage als PS am Ende, wie man denn hier einen Absatz mache:
Nun, offensichtlich hat er seinen Weg gefunden. Und wunderbar gezeigt, dass das Ignorieren des Enters null bringt, sogar kontraproduktiv ist. Gut lesbar ist der Beitrag nämlich immer noch nicht - dank zweifachem Enter sogar schlechter lesbar, als wenn das einfache Enter nicht ignoriert worden wäre:
Nicht ganz ein iPhone
Friday, 15. August 2008
Wie man Codetags in html realisiert
Wednesday, 13. August 2008
Eine ganze Weile schon habe ich mich daran gestört, dass ich hier keine ordentlichen code-tags zur Verfügung habe. Zumindest dachte ich das :)
Zuerst wollte ich mir durch ein div class="code" helfen.
Problem dabei: Es wurde immer noch umgebrochen wo möglich, anstatt in einer Zeile zu lassen, was in eine Zeile gehört. Auch Leerzeichen wurde ignoriert.
Lösung: Das pre-tag, bei mir in der css wie folgt definiert:
pre { font-family: monospace; margin: 0 14px 5px 14px; padding: 2px 0 2px 10px; border: 1px solid #bbb; font-size:1.1em; text-align:none; overflow:auto; }
BASH: return statt exit
Tuesday, 12. August 2008
Darüber bin ich gerade böse gestolpert: In eigenen Unterfunktionen darf man nicht mit exit arbeiten, sondern mit return. Exit ist nur für das Ende des ganzen Skripts bestimmt und vorher nicht mit $? auslesbar.
Also:
abc(){ ... return 0 } abc if [[ $? -eq 0 ]];then echo in fi
funktioniert,
abc(){ ... exit 0 } abc if [[ $? -eq 0 ]];then echo in fi
dagegen nicht.
Was bringt eigentlich ein selbstgebackener Kernel?
Tuesday, 12. August 2008
Auf neuer Hardware lohnt es sich meiner Erfahrung nach nicht, den Kernel an das eigene System anzupassen - wenn man nicht einen bestimmten Patch einspielen muss. Man hat viele Möglichkeiten, Fehler zu machen, investiert in das Konfigurieren und dann nochmal in das Kompilieren viel Zeit, um dann ein paar Sekunden schneller zu starten.
Auf alter Hardware sieht die Sache ganz anders aus. Der Toshiba Satellite 4030 läuft derzeit mit 150 Mhz, weil sonst die Festplatte spinnt (wahrscheinlich wird sie zu heiß). Bei solcher "Leistung" macht ein angepasster Kernel eine Menge aus:
Startzeit mit Standardkernel: 2:46
Startzeit mit angepasstem Kernel: 1:21
(Zusätzlich zu der Startzeit wäre hier ein kleiner Benchmark zur normalen Performance interessant, welcher bietet sich dafür an?)
Mit Startzeit ist hier die verstrichene Zeit von der Kernelauswahl in Grub bis zur Loginmöglichkeit in tty1 gemeint.
Wer das nachvollziehen will: Dieser Anleitung folgen (der git-Variante, bei mir war 2.6.24-20 aktuell), als Ausgangspunkt kann man meine -config (config, 57 KB) nutzen (wie das geht, wird bei ubuntuusers erklärt). Das Gentoo-wiki ist dann sehr hilfreich.
Meine Config ist allerdings ganz sicher nicht optimal, Verbesserungsvorschläge willkommen.
Anno 1602
Saturday, 9. August 2008
Anno 1602 wollte ich mal wieder spielen. Ich dachte, ich mach es mir einfach, und habe Windows gestartet. Ein Fehler: Das Spiel ließ sich nichtmal installieren.
Nachdem mir die Lösungssuche zu blöde wurde, ging ich dann doch den vermeintlich schweren Weg. Dieser stellte sich als einfach heraus: Es läuft problemlos unter Ubuntu Hardy mit wine-1.0.
Eröffnungsfeier
Friday, 8. August 2008
Habe ich eigentlich eine etwas andere Eröffnungsfeier gesehen als Matussek für den Spon?
Sicher, ich kann mich täuschen. Aber das waren doch keine Kinder, die das Zeichen für Harmonie malten. Und die Kommentatorin sagte laut meinem Kopf auch nicht "natürlich die Friedenstaube", sondern "Das ist sicher die Friedenstaube", denn sie artikulierte dadurch die vorher bei den Proben erfahrene Unsicherheit, was das Zeichen bedeuten solle. Klingt jetzt hier nicht nach dem großen Unterschied, im Zusammenhang des Artikels wirkt es aber schon anders - Unsicherheit gegen Beiläufigkeit.
"Wir wissen natürlich, dass unter diesen Kostümen auch Tibeter und Uiguren stecken, denen alles andere als zum Tanzen zumute ist", das sagte sie dagegen recht sicher nicht, sie bezog sich doch wohl nicht auf die Menschen unter den Kostümen (wäre auch unsinnig, wer unter den Kostümen steckt, dürfte sie kaum gewusst haben), sondern auf die von ihnen dargestellten Minderheiten.
Also, entweder habe ich in der kurzen Zeit wirklich schon viel verdreht, dann ist es interessant zu sehen, wie schnell das geht. Oder da wurde im Detail ungenau wiedergegeben. Ist das normal?
(Dem Kern des Artikels, dass die Kommentatoren als "kritisches Gewissen" auftraten und dass dies ungewöhnlich ist, stimme ich zu. Das habe auch ich so wahrgenommen.)
Falsche Rechte beim Kernelbacken
Thursday, 7. August 2008
Entpackt man die Kernelquellen als Root, z.B. durch ein
sudo git clone git://kernel.ubuntu.com/ubuntu/ubuntu-hardy.git ubuntu-hardy
stimmen nachher die Zugriffsrechte nicht mehr. Es kommt beim Kompilieren die Meldung:
"dpkg-deb: Control-Verzeichnis hat falsche Zugriffsrechte 2755 (muss >=0755 und <=0775 sein)"
Die Lösung findet sich im Debianforum und lautet:
chmod -R a-s .
Toshiba Satellite 4030 CDT mit Linux
Tuesday, 5. August 2008
Dieses stabile Laptop mit Ubuntu Hardy laufen zu lassen schien anfangs problemlos zu funktionieren. Mit der neuen Wlan-Karte und den dadurch erreichbaren neuen Möglichkeiten wie einer grafischen Oberfläche tauchten neue Probleme auf. Deshalb hier eine Auflistung dessen, was gut funktionierte und was weniger gut.
Installation
Die Installation mittels einer Minimal-Installation klappte problemlos. Die Partitionswahl ist egal, man sollte aber daran denken, eine ausreichend große Swap-Partition einzurichten.
Lüfter und ACPI
Weniger gut funktionierte die Temperaturregulation: Der Lüfter wollte nicht drehen. Die LösungEin Teil der Lösung: Er war verklemmt, ein bißchen Anschubsen half.
Allerdings müssen dafür wohl allgemeine Voraussetzungen erfüllt sein. Damit der Laptop die Temperatur richtig messen und diese Daten nutzen kann, muss acpi aktiviert werden. Dafür muss die Option "acpi=force" in die /boot/grub/menu.lst hinzugefügt werden. Außerdem sollte das Modul "toshiba_acpi" in die /etc/modules eingetragen werden.
Im Notfall lässt sich der Lüfter dann ein einem Rootterminal per
echo "force_on:1">/proc/acpi/toshiba/fan
aktivieren.
Dazu noch ein Hinweis: Mit
cat /proc/acpi/thermal_zone/THRM/temperatur
lässt sich die Tempteratur auslesen. Hier pendelt sie sich gerade bei 71°C ein. Bei 95°C sollte der Laptop sich selbst ausschalten, besser aber wäre es, ihn schon vorher abzuschalten - oder den Lüfter zu aktivieren, falls das funktioniert.
Auflösung
Mit einer reduzierten Farbtiefe (das sieht man nicht) lässt sich das gesamte Display nutzen. Dafür editiert man die /etc/X11/xorg.conf wie folgt:
Section "Monitor" Identifier "Configured Monitor" Option "PreferredMode" "1024x768" VertRefresh 60.0 - 90.0 HorizSync 30.0 - 96.0 EndSection Section "Screen" Identifier "Default Screen" Monitor "Configured Monitor" Device "Configured Video Device" DefaultDepth 16 EndSection
Batteriemodus und Leistung
Leider realisiert der Satellite nicht ohne weiteres, dass er nun am Strom hängt und nicht mehr den Batteriemodus wählen soll.
Dieser lässt sich im Bios konfigurieren. Ich habe ihn auf maximale Leistung gestellt, der Lüfter werkelt nun die ganze Zeit. Momentan stört mich das aber nicht und es ist so deutlich besser nutzbar.
Ins Bios gelangt man, indem man während der Anzeige des Toshiba-Begrüßungsbildschirms Escape drückt.
Softwareauswahl
Im Leistungsmodus mit 300 Mhz ist auch moderne Software gut nutzbar, vorausgesetzt man hat 128 MB Arbeitsspeicher zur Verfügung. Hier läuft gerade IceWM als Fenstermanager, Firefox 3 samt Pidgin parallel, und ein xterm ist auch offen. Natürlich swappt er so ein bißchen, aber das ist notwendig und nicht störend - es kommt kaum zu Hängern.
Mit dem Programm toshset oder den toshutils aus den Quellen sollten zudem die meisten Feinheiten am Laptop selbst einstellbar sein. Die Funktionstasten funktionierten aber von Anfang an, hier ist keine weitere Software nötig.
Ausblick, Probleme, Fazit
Noch zu testen ist, wie man den Laptop gezielt heruntertakten kann. Auch Suspend bzw. Hibernate habe ich noch nicht ausprobiert. Zudem hatte ich gerade mit Verbindungsabbrüchen des Wlans zu kämpfen, die wohl durch Pidgin ausgelöst wurden.
Trotzdem bleibt festzuhalten, dass der Satellite 4030 trotz seines Alters gut mit Ubuntu zusammenarbeitet. Die bisherigen Probleme waren recht einfach lösbar, die kommenden dürften das ebenfalls sein. Als kleine Surfstation ist es schon jetzt nutzbar.
Das größte Problem bisher war die fehlende Dokumentation, ich fand kaum brauchbare Quellen im Internet. Dies könnte sich noch als sehr hinderlich erweisen.