Heute möchte ich mich mit dem Medium mit der höchsten Speicherdichte beschäftigen. - Dem Flash - Speicher.
So zuerst einmal etwas zur Entwicklung dieser Technologie, die dem Laien unter dem Namen USB - Stick bekannt ist. Was weis ich bis jetzt darüber? Nun diese anfangs relativ unzuverlässige Technologie hat sich an Moores Gesetz gehalten uns seine Speicherdichte ist explodiert. Ich kann mich noch an die guten alten 50 - 500 Mb zeiten erinnern, was ich für diese kleinen Dinger bereits für ausserordentlich halte. Mittlerweile passen auf einen handelsüblichen "Stick" bis zu 20 Gb. Oder ist es schon wieder mehr? 200? - Noch mehr?
Wie gesagt diese Entwicklung finde ich erstaunlich. Nun, wie funktioniert das und brauchen wir eigentlich noch magnetische und optische Speichermedien?
Beginnen wir doch mit den technischen Details: Laut Wikipedia lautet die exakte Bezeichnung EEPROM (Electrically Erasable Programmable Read-Only Memory ) also elektrisch löschbarer, programmierbarer " Nur-Lese-Speicher". Also das mit dem "Nur-Lese-Speicher" kommt schonmal von den guten alten Zeiten der Entwicklung der ROM speicher.
Ok zugegeben. ich weis, das es sich um einen mikroeletrischen Baustein handelt, der mit Mikrotransistoren arbeitet. Mit wirklich kleinen Transistoren, die schon mit quantenmechanischen Effekten Arbeiten.
Ich glaube ich werde mich dieses Themas genauer annehmen und auch den technischen Aufbau genauer untersuchen. Ich werde mich dabei wieder an Wikipedia orientieren. und was mich stört, oder meiner Meinung nach fehlt ergänzen.
Weiter gehts mit Teil 2
Montag, 16. Mai 2011
Montag, 9. Mai 2011
Oxid Commons Teil I
Am Donnerstag und Freitag vergangene woche fannden die OXID-Commons statt.
Natürlich musste ersteinmal angereist werden, und auch der Weg zum Hotel wollte gefunden sein. In diesem Zusammenhang kann ich das Caritas Tagungszentrum wärmstens empfehlen. Gute Preise, ausgezeichnete Verpflegung ( Frühstück ) und eine tolle Aussicht über das wunderschöne Freiburg mit seinen irreführenden Bewohnern.
Die Commons fanden in der Rothaus Arena in der Messe Freiburg statt. Es ging, wer wollte anderes erwarte, selbstverständlich um alles rund ums eCommerce und zahlreiche Dienstleister stellten sich vor.
Besonders interessant fand ich den Vortrag zum neuen Shop von Steinigke Showtechnik, der von der Entwicklerfirma Mayflower komplett neu entwickelt wurde.
Der alte Shop wurde seit 2001 in Eigenarbeit weiterentwickelt und war nun endgültig so obsolete, dass man sich zu einem kompletten Neubeginn entschied.
Besonders interessant war, das der Shop sich sowohl an Businesskunden, wie auch an Privatkunden richtete. Das sollte unser Shop auch können, obwohl Privatkunden den größten Teil unserer Kundschaft ausmachen sind Businesskunden ebenfalls in unserem Kundenstamm.
Mithilfe des SCRUM-Designverfahrens wurde der Shop mit einer stark verbesserten Funktionalität und einem Backend auf Basis von PHP 5.3 und Open Suse ausgestattet. Er unterstützt HTML 5 und JavaScript zur Verwendung auf mobilen Endgeräten.
Weitere Details zum Vortrag von Burda Direkt und dessen neuen Zeitschriftenshop gibts Morgen.
Mittwoch, 4. Mai 2011
LISP
Heute möchte ich mich an einen kleinen Vortrag über die Prgrammiersprache LISP heranwagen, die immer noch in informatikvorlesungen gelehrt oder angesprochen wird.
LISp ist ein recht ungewöhnlicher Zeitgenosse. Es basiert, wie ich mithilfe von Wikipedia erfahren konnte auf dem Breits in meinem Blog angesprochenen Lambda - Kalkühl.
LISP sthet für LISt Processing. Seine Grundstruktur besteht aus Atomen ( Einzelne "Skalarwerte" also Zahlen oder Buchstaben ) und Listen.
Die Sprache macht keinen expliziten Unterschied zwischen Daten und Anweisungen. Listen können beides enthalten, was es möglich macht, die Daten, mit denen gearbeitet wird zur Laufzeit zu verändern. Auch die Freigabe beziehungsweise Allokation von Speicherplatz vor dem Anlegen neuer Variablen ist nicht notwendig, da Datentypen Dynamisch zur Laufzeit aufgebaut werden.
LISP verwendet bei seinen Anweisungen noch die Präfix - Schreibweise, wie es auch bei alten Rechenmaschinen üblich war. Diese Schreibweise ermöglicht eine Bessere hierarchisierung von Anweisungen bei einer Berechnung.
LISp ist ein recht ungewöhnlicher Zeitgenosse. Es basiert, wie ich mithilfe von Wikipedia erfahren konnte auf dem Breits in meinem Blog angesprochenen Lambda - Kalkühl.
LISP sthet für LISt Processing. Seine Grundstruktur besteht aus Atomen ( Einzelne "Skalarwerte" also Zahlen oder Buchstaben ) und Listen.
Die Sprache macht keinen expliziten Unterschied zwischen Daten und Anweisungen. Listen können beides enthalten, was es möglich macht, die Daten, mit denen gearbeitet wird zur Laufzeit zu verändern. Auch die Freigabe beziehungsweise Allokation von Speicherplatz vor dem Anlegen neuer Variablen ist nicht notwendig, da Datentypen Dynamisch zur Laufzeit aufgebaut werden.
LISP verwendet bei seinen Anweisungen noch die Präfix - Schreibweise, wie es auch bei alten Rechenmaschinen üblich war. Diese Schreibweise ermöglicht eine Bessere hierarchisierung von Anweisungen bei einer Berechnung.
Montag, 2. Mai 2011
Quantencomputer
Heute möchte ich mein Halbwissen unter beweis stellen und zeigen, dass ich von Quantencomputern einfach keinen Schimmer habe.
Zuerst einmal: Was ist das überhaupt?
Ein Quantenkomputer ist eine Maschine, die sich die Eigenschaften subatomarer Teile zunutze macht. Auf diesem Gebiet der Physik, in diesen Größenordnungen finden die Regeln der Klassischen Physik keine Anwendung mehr. Es wird alles unscharf und wahrscheinlichkeiten spielen eine grosse Rolle.
Nun einige dieser Eigenschaften, die expreimentell nachgewiesen wurden zeigen, dass man sie theoretisch nutzen könnte um damit unglaublich schnelle Computer zu bauen.
Diese Computer könnten einige Probleme, die mit Klassischen Berechnungsmethoden sehr lange dauern würden wesentlich effizienter berechen. Das Bekannteste Beispiel hierfür ist der Shor-Algorithmus, der Quantenmechanische Effekte ausnutzt um Zahlen in ihre Primfaktoren zu zerlegen.
Quantencomputer arbeiten mit sogenannten Qubits, verschränkten Quanten, die im Prinzip die selbe Funktion erfüllen wie Bits in klassischen Computern. Allerdings kann ein Qubit mit seinen Superpositionen bis zu 4 Zustände annehmen und nicht, wie ein klassisches Bit nur 2.
Nun bin ich aber leider mit meinem Latein schon am ende. Weitere Erklärungen müsste ich abschreiben, da mein Verständnis im Bereich der Quantenphysik sehr begrenz ist.
Das Superpositionsprinzip und die Verschränkung von Teilchen spielen ein Rolle. Allerdings hae ich bei meiner Recherche keine Einfache Erklärung für eine Anwendung gefunden.
Zuerst einmal: Was ist das überhaupt?
Ein Quantenkomputer ist eine Maschine, die sich die Eigenschaften subatomarer Teile zunutze macht. Auf diesem Gebiet der Physik, in diesen Größenordnungen finden die Regeln der Klassischen Physik keine Anwendung mehr. Es wird alles unscharf und wahrscheinlichkeiten spielen eine grosse Rolle.
Nun einige dieser Eigenschaften, die expreimentell nachgewiesen wurden zeigen, dass man sie theoretisch nutzen könnte um damit unglaublich schnelle Computer zu bauen.
Diese Computer könnten einige Probleme, die mit Klassischen Berechnungsmethoden sehr lange dauern würden wesentlich effizienter berechen. Das Bekannteste Beispiel hierfür ist der Shor-Algorithmus, der Quantenmechanische Effekte ausnutzt um Zahlen in ihre Primfaktoren zu zerlegen.
Quantencomputer arbeiten mit sogenannten Qubits, verschränkten Quanten, die im Prinzip die selbe Funktion erfüllen wie Bits in klassischen Computern. Allerdings kann ein Qubit mit seinen Superpositionen bis zu 4 Zustände annehmen und nicht, wie ein klassisches Bit nur 2.
Nun bin ich aber leider mit meinem Latein schon am ende. Weitere Erklärungen müsste ich abschreiben, da mein Verständnis im Bereich der Quantenphysik sehr begrenz ist.
Das Superpositionsprinzip und die Verschränkung von Teilchen spielen ein Rolle. Allerdings hae ich bei meiner Recherche keine Einfache Erklärung für eine Anwendung gefunden.
Freitag, 29. April 2011
Hard und Software
Hard und Software
Heute möchte ich mich diesen beiden elementaren Bestandteilen widmen. Die klassische Antwort auf die Frage: " Was ist der Unterschied zwischen Hard und Software " lautet: " Hardware ist das, was man Anfassen kann, Software alles, was man eben nicht anfassen kann" selbstverständlich beziehe ich mich hier auf die Bestandteile eines Computers.
Die Hardware sind dabei die mechanischen oder elektronischen Bauteile der Maschine. Momentan wird fieberhaft daran gearbeitet die Quote an mechanischen Bauteilen so weit wie möglich zu senken.
Dabei fällt mir ein, dass das endgültige Ziel der Computerentwicklung sein wird, auch auf elektronsiche Bauteile zu verzichten.
Wie? Nun das steht noch in den Sternen, aber die Technologie, die hierzu in der lage sein wird und deren auftreten das Antlitz der Welt verändern wird ist das Quantum Computing. Ich muss mir merken auch darüber unbedingt noch einmal einen Blogeintrag zu machen.
Nun aber zurück zur konventionellen Computertechnologie.
Also, die Hardware ist der Teil des Computers, der das tut, was Ergebnisse liefert. Die Software ist die notwendige Information dafür.
Auf wikipedia steht der Satz: " Software ist im Voraus geleistete geistige Arbeit ". Formidabel. Genau so habe ich das auch immer empfunden. Bei der Entwicklung von Software überlegt man sich die Arbeitsschritte, die zur Bewältigung einer Aufgabe notwendig sind im vorraus, und versucht dann auf möglichst effiziente Weise der Maschine, die diese Arbeit tun soll zu erklären wie.
Eine KI wie bei Star Trek, der man sagen kann, was man getan haben möchte ( "Computer bitte spring aus dem Fenster") wäre dabei ein großer Fortschritt in sachen Programmentwicklung. Allerdings wäre eine Künstliche Intelligenz, die diese Vorgänge beherrschte wohl in der Lage selbst die Notwendigkeit von Programmen zu erkennen und diese zu schreiben.
Hier haben wir also noch ein Thema: Künstliche Intelligenz ( das mag ich am liebsten!?)
Heute möchte ich mich diesen beiden elementaren Bestandteilen widmen. Die klassische Antwort auf die Frage: " Was ist der Unterschied zwischen Hard und Software " lautet: " Hardware ist das, was man Anfassen kann, Software alles, was man eben nicht anfassen kann" selbstverständlich beziehe ich mich hier auf die Bestandteile eines Computers.
Die Hardware sind dabei die mechanischen oder elektronischen Bauteile der Maschine. Momentan wird fieberhaft daran gearbeitet die Quote an mechanischen Bauteilen so weit wie möglich zu senken.
Dabei fällt mir ein, dass das endgültige Ziel der Computerentwicklung sein wird, auch auf elektronsiche Bauteile zu verzichten.
Wie? Nun das steht noch in den Sternen, aber die Technologie, die hierzu in der lage sein wird und deren auftreten das Antlitz der Welt verändern wird ist das Quantum Computing. Ich muss mir merken auch darüber unbedingt noch einmal einen Blogeintrag zu machen.
Nun aber zurück zur konventionellen Computertechnologie.
Also, die Hardware ist der Teil des Computers, der das tut, was Ergebnisse liefert. Die Software ist die notwendige Information dafür.
Auf wikipedia steht der Satz: " Software ist im Voraus geleistete geistige Arbeit ". Formidabel. Genau so habe ich das auch immer empfunden. Bei der Entwicklung von Software überlegt man sich die Arbeitsschritte, die zur Bewältigung einer Aufgabe notwendig sind im vorraus, und versucht dann auf möglichst effiziente Weise der Maschine, die diese Arbeit tun soll zu erklären wie.
Eine KI wie bei Star Trek, der man sagen kann, was man getan haben möchte ( "Computer bitte spring aus dem Fenster") wäre dabei ein großer Fortschritt in sachen Programmentwicklung. Allerdings wäre eine Künstliche Intelligenz, die diese Vorgänge beherrschte wohl in der Lage selbst die Notwendigkeit von Programmen zu erkennen und diese zu schreiben.
Hier haben wir also noch ein Thema: Künstliche Intelligenz ( das mag ich am liebsten!?)
Dienstag, 26. April 2011
Assembler und Maschinensprache
Assembler und Maschinensprache
Teil 2
Gut. Um zu demonstrieren wie zäh die Abarbeitung von Maschinencode erscheint.
Hier ein Programm im Assembler von http://andremueller.gmxhome.de/intro.html#firstprog für den Befehlssatz des x86 Prozessors
Das Knobelvergnügen daran war ( oder ist ) die Ressourcen so Optimal wie Möglich zu nutzen und durch einen Programmkniff einen Zyklus zu sparen, oder 2 oder 10. Andererseits erkennt man auf diesem Wege auch Fehler und Probleme in der Archikektur der Prozessors und seiner Befehle.
Teil 2
Gut. Um zu demonstrieren wie zäh die Abarbeitung von Maschinencode erscheint.
Hier ein Programm im Assembler von http://andremueller.gmxhome.de/intro.html#firstprog für den Befehlssatz des x86 Prozessors
TITLE Das erste Programm ;Diese Zeile ist optional IDEAL ;IDEAL-Modus einschalten MODEL SMALL ;Speichermodell STACK 100 ;100 Bytes für den Stack DATASEG ;Beginn des Datensegments derText db 'Das erste Programm$' ;1. CODESEG ;Beginn des Codesegmentes start: ;2. STARTUPCODE mov ah, 009h ;3. mov dx, OFFSET derText ;4. int 21h ;5. EXITCODE END start ;6.
Nun noch die Erklärung der einzelnen Zeilen:
- Hier wird die Zeichenkette definiert, die ausgegeben werden soll
- Dies ist die Anfangsmarke für Code (s. auch weiter unten)
- In das Prozessorregister AH den Wert 9 schreiben
- Das Prozessorregister DX mit der Adresse des Ausgabestrings beschreiben
- Aufruf eines Interrupts;
- Die Endmarkierung für die Assemblierung; alles, was jetzt noch kommt, wird vom Assemblierer ignoriert
Das Knobelvergnügen daran war ( oder ist ) die Ressourcen so Optimal wie Möglich zu nutzen und durch einen Programmkniff einen Zyklus zu sparen, oder 2 oder 10. Andererseits erkennt man auf diesem Wege auch Fehler und Probleme in der Archikektur der Prozessors und seiner Befehle.
Assembler und Maschinensprache
Assembler und Maschinensprache
Teil 1
Heute möchte ich mich mit dem beschäftigen, was sich die unbedarften von 30 bis 40 Jahren unter einem Computer, beziehungsweise der Arbeit damit vorgestellt haben. Assemblercode hat das erste Klischee der Computernerds geprägt. Hinter ihren grünen Bildschirmen Sitzend und kryptischen unverständlichen Kram lesend.
Ich gebe zu, Assemblercode ist eine beleidigung für das Auge. Er ist dröge, schwer zu lesen und sogar wenn man sich ein wenig damit auskennt - ein einfacher wechsel des Befehlssatzes und schon ist man wieder vollkommen unbedarft.
Ein Assembler ist ein "Hilfsprogramm das in Maschinennaher Sprache geschrieben wurde" . Nun fragt sich, wie dieses Programm geschrieben wurde, da es selbst eben diesem Zweck dient. Es ist ein wenig wie mit dem Huhn und dem Ei.
Alle heutzutage eher populären Vorstellungen des Programmierens mit Verzweigungen und Schleifen, mit Feldern etc. haben Ihren Ursprung in kompliziert einfachen Vorgängen, die sich sehr kluge Menschen vor langer zeit einmal ausgedacht haben, damit die Maschinen, die sie entwickelten das taten, was sie wollten. Durch die von Neumann - Architektur und der Verwendung einer Zentralen Recheneinheit, sovie Abarbeitungsroutinen bei Speicher - Lese und Schreibzugriffen kristallisierten sich über die Zeit hinweg gewisse Routinen heraus. Diese Routinen verwenden Mikroprozessoren heute, um ihre Opreationen anzustellen.
Jeder einzelne Assemblerbefehl tut nur unheimlich wenig, wie man hier sehen kann. Die Möglichkeiten daraus faszinierende Anwendungen zu bauen kommt erst durch die oft erwähnte unglaubliche Gewschwindigkeit, mit der Sie ausgeführt werden.
Teil 1
Heute möchte ich mich mit dem beschäftigen, was sich die unbedarften von 30 bis 40 Jahren unter einem Computer, beziehungsweise der Arbeit damit vorgestellt haben. Assemblercode hat das erste Klischee der Computernerds geprägt. Hinter ihren grünen Bildschirmen Sitzend und kryptischen unverständlichen Kram lesend.
Ich gebe zu, Assemblercode ist eine beleidigung für das Auge. Er ist dröge, schwer zu lesen und sogar wenn man sich ein wenig damit auskennt - ein einfacher wechsel des Befehlssatzes und schon ist man wieder vollkommen unbedarft.
Ein Assembler ist ein "Hilfsprogramm das in Maschinennaher Sprache geschrieben wurde" . Nun fragt sich, wie dieses Programm geschrieben wurde, da es selbst eben diesem Zweck dient. Es ist ein wenig wie mit dem Huhn und dem Ei.
Alle heutzutage eher populären Vorstellungen des Programmierens mit Verzweigungen und Schleifen, mit Feldern etc. haben Ihren Ursprung in kompliziert einfachen Vorgängen, die sich sehr kluge Menschen vor langer zeit einmal ausgedacht haben, damit die Maschinen, die sie entwickelten das taten, was sie wollten. Durch die von Neumann - Architektur und der Verwendung einer Zentralen Recheneinheit, sovie Abarbeitungsroutinen bei Speicher - Lese und Schreibzugriffen kristallisierten sich über die Zeit hinweg gewisse Routinen heraus. Diese Routinen verwenden Mikroprozessoren heute, um ihre Opreationen anzustellen.
Jeder einzelne Assemblerbefehl tut nur unheimlich wenig, wie man hier sehen kann. Die Möglichkeiten daraus faszinierende Anwendungen zu bauen kommt erst durch die oft erwähnte unglaubliche Gewschwindigkeit, mit der Sie ausgeführt werden.
Abonnieren
Posts (Atom)