Nach 15 Jahren wieder ein Windows am PC

Mein Grub2 mit Hintergrundbild
Mein Grub2 mit Hintergrundbild
Nach 15 Jahren habe ich nun doch wieder ein Windows am PC, allerdings wie mein Grub zeigt, ist Windows 8.1 nur eine Alternative zu Ubuntu und ich habe es nur zu Lernzwecken installiert. Da ich mir ein neues Hobby zugelegt habe und Informatik studiere, bekam ich es kostenlos. Ich denke, dass ein Student der Informatik schon auch das neueste Windows kennen sollte. Das man es kostenlos erhält ist zwar nicht verwunderlich, aber die Installation war schon ganz interessant. Ich hatte Debian, Fedora und Ubuntu am PC und wollte mich auf diesem Gerät von Debian und Fedora trennen, weil ich hier ohnehin nur Ubuntu benutzte.
steht gerade am Tisch
steht gerade am Tisch

Den Downloadmanager, den man benötigt, um über die FernUniversität Hagen, vom Zentrum für Medien und IT – DreamSpark Premium, das Windows herunter laden zu können, wollte ich mit Wine unter Ubuntu bedienen, was aber nicht klappte. Weitere Bemühungen waren mir zu umständlich und da ich ohnehin eine Festplatte vorbereitet hatte, installierte ich mir eines der zwei Windows, die ich je hatte und selbst käuflich erwarb, nämlich Windows 3.0 und Windows 2000, also W2k. Erstaunlicher weise ging alles recht gut und ich hatte auch die Treiber-CD für meinen WLAN-Adapter noch, obwohl ich die gewöhnlich immer gleich nach dem Auspacken entsorge. Leider konnte man mit W2k auch den Downloadmanager nicht benutzen. Ihre Windows Version ist zu alt, oder ähnliches wurde mir gemeldet. Also brannte ich mir schnell eine kostenlose Trial-Version von Windows 7 in Ubuntu und installierte dieses. Wow, kaum installiert, war schon alles voll mit Müll und Adware, weil ich unter Windows ja einen Brenner brauchte. Das gewohnte apt-get install für jede erdenkliche, fantastische, kostenlose Open Source Software gibt es ja nicht in Windows, also tippte ich DVD-Burner in DuckduckGo ein und fand Nero. Ja, ich brauche es nur um eine ISO zu brennen, also wird mir da ebenfalls eine Trial-Version genügen, dachte ich. Leider installierte mir das Programm gleich mehrere unerwünschte Zusatzprogramme und eine bootbare DVD kann man mit der Trial-Version nicht brennen, da müssen sie das Produkt schon kaufen. Für einen Linux-Evangelisten ist das schockierend, aber ich fand dann doch eine SW, mit der ich, das inzwischen herunter geladene Image, brennen konnte. Ich war sehr froh, als ich die HD dann formatieren konnte und der, innerhalb von einigen Stunden angesammelte Malware-Mist, wieder weg war.
Dann erfolgte die Windows 8.1 Installation. Da ich keinem Betriebssystem zutraue, dass es auf andere Betriebssysteme Rücksicht nimmt, steckte ich die Festplatte mit meinem Ubuntu sicherheitshalber ab, obwohl ich schon in der Lage bin, mir einen neuen Bootsektor zu erstellen. Dann die Prozedur mit den Keys und Codes und ein Konto bei MS benötigt man auch, aber da war ich angenehm überrascht, dass ich mir einen Einmalzugangscode auf’s Handy schicken lassen konnte, als ich mich gleich zu Beginn nicht am System anmelden konnte. Das funktionierte ganz gut und mit meinem Firefox und Chrome habe ich teilweise sofort wieder eine gewohnte Umgebung, mit allen Lesezeichen und Kennwörtern.
Turbo_Pascal_60_screenshot
Na gut, was werde ich damit machen? Ob ihr es glaubt, oder nicht, ich habe ein tolles Pascal, Lazarus (auch zu Lernzwecken) auf meinem Ubuntu, aber hier versuche ich mir ein Turbo-Pascal aus dem Softwaremuseum von Borland zu installieren. Für C und C++ hätte ich sogar noch eine CD, aber Turbo-Pascal muss mir erst installieren. Bin gespannt, ob ich dazu eine DOS-Box benötige unter Windows. 😉
turbopascal Sapperlot, in Linux ging es ganz einfach und was benötige ich in Windows, damit ich ein Windows-Programm ausführen kann? Naja, ich werde es herausfinden, vielleicht benötigt man ja für jedes Programm ein eigenes Windows. 😛

Ich glaub’s nicht, auch unter Windows brauche ich die DOS-BOX, die ich unter Ubuntu verwende. Eigentlich war das oben, als Spaß gedacht. Na gut, also mit Turbo Pascal 7 für Windows 7 bzw. 8 geht es einfach und Ruck Zuck, aber eben auch über die DOS-BOX.

Weil ich gerade dabei bin, notiere ich mir die Meilensteine „meiner“ Betriebssysteme:
.) MS-DOS (und andere DOS) und Windows 3.0 neben Slackware und SuSe
.) Mandrake, Debian, BSD und in der Schule AIX, Solaris, Conversational Monitor System (CMS), Multiple Virtual Storage (MVS), OS/390, VM
.) dann diverse Linux-Distros und W2k
.) dann nur noch Debian am Server und auf PCs und am Laptop Ubuntu und Fedora, sowie Android am Handy (bis der Vertrag ausläuft, dann gebe ich mir CyanogenMod drauf).
Und jetzt wieder ein Windows 8.1 auf einem PC, obwohl ich immer gesagt habe, dass ich mir das sicher nicht antue. Aber für mein neues Hobby nehme ich es in Kauf.

(707)

Rising Star von RTL – Ach, ich wünsche Got To Dance und VoG auch so eine geniale „Wall“ und „App“

Ich muss zugeben, ich war von der Technik so beeindruckt, dass ich die rising Stars kaum gesehen habe. Wow, bei RTL könnte sich ProSieben und Sat1 eine Scheibe abschneiden. Den Unterschied kann ich gar nicht beschreiben. Auf ProSieben bekam man nicht einmal eine Nummer für’s Telefonvotig angeboten und die App von RTL ist so genial, wie the Wall.
Die haben es wirklich drauf, so sieht moderne Technik und modernes Marketing aus, Leute von ProSieben. Selbst wenn mir diese Musik und die Künstler überhaupt nicht gefallen hätten, was natürlich nicht der Fall ist, würde ich mich schon auf die näschste Sendung freuen, weil diese Wand und App einfach genial sind.

Ach, warum gibt es das nicht für GoT To Dance und Voice of Germany?

An RTL: Die Technik habt ihr ja schon bei RTL, also nutzt sie doch und organisiert die nächsten Shows von GoT To Dance, Voice of Germany und den Eurovision Song Contest auch gleich oder verborgt eure Technik an ProSieben und Sat1, denn die bekommen diesbezüglich gar nichts auf die Reihe.

Siehe dazu auch Rising Star.
Und so funktioniert die App.

Zu den Rising Stars möchte ich sagen, dass mir „The Latonius mit Gorilla“ am besten gefallen hat und „Denise Port mit I Will Never Let You Down“, sowie Christian Scheer, den nur 2 Prozent fehlten, hätte ich auch gerne noch einmal gesehen. Aber die Entscheidungen sind sowieso in Ordnung (kann ja gar nicht anderes sein, bei diesen Juroren) und RTL bekommt von mir für die Sendung, die Technik und alles drum herum 150%. Ihr seid wirklich sehr gut und die eigentlichen Stars für mich. 😉


Das Artikelbild stammt von rtl.de

(770)

Imperative Programmierung und PyNassi 1

Was mir in der OOP die UML leistet, bringt mir in der imperativen Programmierung das Struktogramm. Natürlich gibt es in der imperativen Programmierung auch einen Datenflußplan und einen Programmablaufplan und besonders für Assembler sind auch Speicherbelegungspläne noch immer in Verwendung, aber ich finde, dass das Struktogramm nach Nassi-Shneiderman (Wikipedia) am wichtigsten ist.
PyNassi führe ich in diesem Zusammenhang nicht nur an, weil mir das Projekt gefällt und weil man damit aus einem Struktogramm gleich einen Code generieren kann, sondern weil es auch aufzeigt, dass man auch in typischen OOP-Programmier- oder Skriptsprachen prozedural programmieren kann. Sehr sinnlos ist das in Java oder gar in Ruby, denn Ruby halte ich für die Programmiersprache in der das Konzept der OOP am konsequentesten umgesetzt wurde. Umgekehrt kann man theoretisch auch in C, Cobol oder gar in Assembler objektorientiert programmieren, obwohl das hoffentlich nie jemand von mir verlangt. Programmiersprachen sind nach vielen Kriterien einteilbar und auch bei den Paradigmen findet man unterschiedliche Einteilungen. Eine Betrachtung der historischen Entwicklung ist also unbedingt empfehlenswert. Eines haben aber alle Programmiersprachen gemeinsam, am Ende wird daraus auf verschieden Wegen direkt oder indirekt Maschinencode erzeugt, was erklärt, dass man sie auch leicht zweckentfremdet verwenden kann und zum Beispiel in Python, einer typischen OOP-Skriptsprache (also mit Interpreter statt Compiler) strukturierte Programme entwerfen und programmieren kann. Im Fall von PyNassi macht dies sogar Sinn, meistens sind imperative Programmfragmente in OOP-Sprachen aber völlig unangebracht und kontraindiziert.
In den nächsten Artikeln möchte ich auf folgende Punkte etwas näher eingehen:

  • Problemanalyse
  • Formularentwurfsblatt
  • Speierbelegungsplan
  • Datenflußplan
  • Programmablaufplan
  • Struktogramm
  • PyNassi

Eines möchte ich vorweg nehmen, denn es ist jedenfalls klar und nicht diskutierbar, dass die Eva die Chefin aller Anwendungsprogrammierer ist. Mit Eva meine ich natürlich die Eingabe, Verarbeitung und Ausgabe. 😉

(723)

Normalformen

Zuerst Beispiele für ein Literal,  Minterm und Maxterm
Literal = eine negierte oder nicht negierte Aussagenvariable.
Minterm = eine Konjunktion von (nicht unbedingt verschiedenen) Literalen.
Maxterm = eine Disjumnktion von Literalen.

Disjunktive Normalform (DNF)

Eine DNF ist eine Disjunktion von Mintermen, wie z. B. (p∧¬q∧w)∨(r∧s∧¬t)∨(s∧s∧f)

Konjunktive Normalform (KNF)

Eine KNF ist eine Konjunktion von Maxtermen, wie z. B.  (p∨¬q∨p∨f)∧(r∨s)∧t

Eine Basiskonjunktion ist ein Minterm, der alle gegebenen Aussagevariablen genau einmal als Literal (aber weder „w“ noch „f“) enthält.

Eine Basisdisjunktion ist ein Maxterm, der alle gegebenen Aussagevariablen genau einmal als Literal (ohne „w“ und „f“) enthält.

Für die Variablen p, q, r wäre also p∧¬q∧r eine Basiskonjunktion  und p∨q∨¬r eine Basisdisjunktion.

Eine kanonisch (ausgezeichnete) DNF (KDNF) ist eine disjunktive Verknüpfung von Basiskonjunktionen, bei der jede Basiskonjunktion höchstens einmal auftritt.

Eine kanonisch (ausgezeichnete) KNF (KKNF) ist eine konjunktive Verknüpfung von Basisdisjunktionen, bei der jede Basisdisjunktion höchstens einmal auftritt.

Die Konstante f alleine ist auch eine DNF bzw. w eine KNF.

Zu jeder aussagelogischen Formel gibt es eine KDNF (KKNF), die zu dieser äquivalent ist.

Beispiel:

Gesucht ist eine KDNF, die äquivalent ist zu: ¬(¬p→q)∨r

1) Wahrheitstafel erstellen

rot ist die Negation von p; türkis die Implikation, welche nur bei w →f falsch ist, sonst immer wahr; amber ist die Negation des Klammerinhalts, die mit r verknüpft wird.

p q r ¬(¬p→q) ∨r
w w w f (w) f  w  1
w w f (w) f  f
w f w (w) f  w  2
w f f (w) f  f
f w w (w) f  w  3
f w f (w) f f
f f w w (f) w  w  4
f f f w (f) w  w  5

Es gibt 5 Ergebnisse mit „w“ aus diesen Zeilen können die Literale übernommen werden, wenn die Voraussetzung  „w“ war, sonst wird die Negation übernommen, weil eine Basiskonjunktion nur dann wahr ist, wenn alle Literale wahr sind. Mit einer Konjugation ergeben sich die Basiskonjunktionen und wenn disjunktiv verknüpft werden, erhält man eine KDNF. Eine Disjunktion von Basiskonjunktionen ist genau dann wahr, wenn mindestens eine Basiskonjunktion wahr ist.

Zeile p q r Literale Basiskonjunktion
 1 w w w p q r p∧q∧r
 2  w  f  w  p  ¬q  r  p∧¬q∧r
 3  f  w  w  ¬p  q  r ¬p∧q∧r
 4  f  f  w  ¬p  ¬q  r  ¬p∧¬q∧r
 5  f  f  f  ¬p  ¬q  ¬r ¬ p∧¬q∧¬r

 

KDNF: (p∧q∧r)∨(p∧¬q∧r)∨(¬p∧q∧r)∨( ¬p∧¬q∧r)∨(¬ p∧¬q∧¬r)

Die KDNF hat genau die gleichen Wahrheitswerte wie die gegebene Formel und ist damit äquivalent zu ihr. Wenn in der Resultatsspalte nur „f“ vorkommen, dann ist „f“ die KDNF.

Bei den Verfahren zur Bildung der KKNF bzw. KDNF werden „und“ mit „oder“ und „f“ mit „w“ bzw. umgekehrt vertauchst, wie bei den Gesetzten von De Morgan, den Distributiv- und Verschmelzungsgesetzen, weil wegen des Dualitätsprinzips gilt:

Sind zwei Ausdrücke a und b, in denen nur die Junktoren ¬, ∧, und ∨ vorkommen äquivalent, dann sind auch die Formeln, die aus a und b dadurch entstehen, dass alle ∧ durch ∨, ∨ durch ∧, w durch f und f durch w erstetzt werden.

Z. B.: a ∧w↔a  es gilt daher auch a∨ f↔a

 

(699)

Ein- und Ersetzung, wichtige Äquivalenzen und Tautologien

Bei aussagenlogischen Formel sind aussagenlogisch indeterminiert, oder es handelt sich um Tautologien oder Kontradiktionen.
.) Tautologie – (immer wahr) wenn die Aussage unabhängig von ihren Variablen wahr ist. Z. B. (p→p)↔(¬q∨q)
.) Kontradiktion – (immer falsch) ist unabhängig von ihren Variablen falsch. Z. B. (p↔¬p)∨(r∧¬r)
.) Aussagenlogisch Indeterminiert – wenn die Aussage für mindestens eine Belegung der Variablen wahr und für mindestens eine Belegung falsch ist. Z. B. p→q∨r
Tautologien und aussagenlogisch indeterminierte Aussagen werden auch als erfüllbare Aussagen bezeichnet.
In der Aussagenlogik ist man u.a. an der Charakterisierung und Erzeugung von Tautologien interessiert.

Die Einsetzung

a[p/b] ist die Formel die aus a entsteht, wenn für jedes Vorkommen der Variable p in der Aussage a durch die Formel b eingesetzt wird.
Z. B.: a:  p→q→p
b: (r∨s)
a[p/b]: (r∨s)→q→(r∨s)
Einsetzungstheorem – Ist a eine Tautologie bzw. eine Kontradiktion, dann ist es auch a[p/b].
Durch Einsetzen wird aus einer Tautologie wieder eine Tautologie, bzw. aus einer Kontradiktion eine Kontradiktion.

Ersetzung

I) Jede Formel a ist Teilformel von sich selbst.
II) Ist a eine zusammengesetzte Formel, z. B. ¬b, b∨c, b→c, usw. dann sind auch b und c Teilformeln von a.
III) Jede Teilformel einer Teilformel von a ist ebenfalls eine Teilformel von a.

Z. B.:  a:  p→((¬q∨r)→s)

Teilformeln:
lt I) p→((¬q∨r)→s)
lt II) p, (¬q∨r)→s
lt III) ¬q∨r, s
lt III) ¬q∨r, s
lt III) ¬q, r
lt III) q
Ersetzungen sind mehrdeutig. 2 Formeln a und b sind äquivalent oder logisch gleich, wenn die Formel a↔b eine Tautologie ist.
Es gilt das Ersetzungstheorem:
Wenn b↔c ist, dann ist a↔a[[b/c]]
Ein- und Ersetzung, wichtige Äquivalenzen und Tautologien weiterlesen

(1014)