Beiträge von osiris

    @plantschkuh: Vielen Dank für die ausfürlichen Erklärungen!


    Ich bin inzwischen etwas tiefer in die Thematik eingetaucht und es haben sich konkretere/weitere Fragen ergeben:

    Zitat

    das Ergebnis wird üblicherweise wieder normalisiert gespeichert

    1.
    Wie ist eigentlich die Definition von "normalisiert" bzw. "normiert"?

    1.2
    0 lässt sich nicht als normierte (Gleitpunkt-)Zahl darstellen, weil die erste stelle einer normieren Zahl immer ungleich 0 ist (warum auch immer).
    Aber als nicht-normierte Gleitpunktzahl (short real) würde dass dann doch etwa so aussehen:

    V..E................M
    0 00000000 00000000000000000000000


    2.
    Entspricht single short real und double long real?

    3. Zur Darstellung des Exponenten:

    Der wird ja zumeist als Exponent + Bias gespeichert. Bei short real beträgt der Biaswert 127, bei long real 1023.

    Nun bin ich auf folgenden Widerspruch gestoßen:
    Bei einer Zahl mit 8-Bit-Exponent ist der kleinste möglich Exponent -128, der größte 127. Aber wie kann das sein, wenn der Exponent immer als Summe von e + 127 gespeichert wird?
    Wenn e bspw. mal 120 wäre, wäre die Summe ja gar nicht mehr mit 8 Bit darstellbar. Der größte mögliche Exponent wäre demnach 0. 80

    Ich habe das ganze mit apt-get install kdebase installiert, weil ich das kde-Paket zu überladen finde.

    ich hab mich mal etwas schlauer gemacht, was die Sache angeht und es ist wohl so, dass es durchaus arge Probleme geben kann, wenn man das Desktop Enviornment, dass man bei der Installation ausgewählt hat komplett entfernen will.

    Es scheint im Übrigen auch gar nicht wirklich Sinn zu machen, weil manche Programme bestimmte Teile/Bibliotheken von GNOME benötigen.

    Nun ja, ich habe GNOME jetzt einmal komplett weggespült, in dem ich alle dazugehörigen Pakete mit aptitude purge entfernt habe.
    Aber es sind trotzdem noch irgendwelche Konfigurationsdateien übrig geblieben.

    KDE lief deswegen auch nicht schneller - sondern nach wie vor ungeheuer langsam (!).
    Ich hab jetzt GNOME wieder installiert.
    Ganz sauber war das natürlich nicht, aber es ist erstmal benutzbar.

    Ich will aber wirklich auf KDE umsteigen. Außerdem hab ich festgestellt, dass die Konfiguration von Debian sehr zeitraubend ist (im Gegensatz z.B. zu Ubuntu).

    Außerdem arbeite ich zur Zeit auch teilweise mit openSuse (unter KDE) und bin davon sehr angetan.

    Ich habe mir deshalb gedacht, dass ich mir einfach openSuse 10.3 als Grundsystem installiere und dann noch Ubuntu Studio für den ganzen Medienkram.

    Hallo,
    es wäre schön, wenn ihr mir mal mit meinen Fragen zu Gleitpunktzahlen weiterhelfen könntet.

    Folgendes ist mir bisher noch relativ unklar:

    1.
    Das Vorzeichenbit einer Gleitpunktzahl gibt an, ob diese negativ oder positiv ist. Es handelt sich also auch hier einfach um eine Zweierkomplementdarstellung?

    2.
    Die Position des Dezimalpunktes ergibt sich aus dem Exponenten in der technisch-wissenschaftlichen Schreibweise einer Zahl.
    In der Binärdarstellung sind dann bspw. 8 Bit für diesen Exponenten reserviert.

    Nun bin ich mir aber nicht ganz sicher über den Umgang des Systems mit diesem Exponenten:

    2.1
    Wenn das System eine Zahl geliefert bekommt, wie stellt es dann den Wert des Exponenten fest?

    2.2
    Wie wird eine dezimale Gleitpunktzahl in eine binäre umgewandelt und andersrum?

    2.3
    Was passiert, wenn 2 Zahlen mit unterschiedlichen Kommastellen addiert werden?

    z.B.:

    86,538
    + 4,7223

    Zu einer Überschreitung des Zahlenbereiches kann es bei so einer Rechnung ja eigentlich nicht kommen, weil für die Binärdarstellung ja der Zahlenbereich der Zahl mit dem höheren Exponenten (86,538) bentuzt werden muss.

    Wie verhält es sich hier mit dem Exponenten der Summe?
    Wird immer automatisch der größte Exponent aus den Summanden (hier 2) auch für das Ergebnis gewählt? Wäre sinnvoll. Aber andererseits könnte man das Ergebnis auch als 0,086538*10^3 oder 865,38*10^-1 darstellen.

    Hallo.
    Ich habe ein paar Probleme, weil mir mein System (Debian Lenny) den Umstieg von GNOME auf KDE ziemlich schwer macht.
    Ich hatte zuerst versucht, GNOME komplett zu entfernen, was offenbar nicht ganz geglückt ist.

    Seit dem hagelte es nur Probleme. Die GNOME-Programme schwirrten im KDE-Menü umher, KDM brauchte ewig um mir ein Loginformular anzuzeigen und nach dem Abmelden leuchtete der Bildschirn freundlich in allen Farben und zeigte allerhand lustige Sonderzeichen. Da blieb mir dann nichts anderes übrig, als mein Notebook manuell auszuschalten, weil es auf nichts mehr reagierte.

    Nun habe ich guten Willens GNOME nochmal installiert - und zwar komplett mit allem unnützen Zeug (abiword, gnome-games-extra usw.).
    Nun funktioniert auch alles wieder, obwohl KDM immer noch in Zeitlupe läuft.

    Meine Frage ist nun: Wie werde ich GNOME vollständig (mit allen Programmen und Bibliotheken) und möglichst sauber los?

    Ich möchte eine Neuinstallation des Systems ganz gerne umgehen, weil es mittlerweile ganz gut läuft und es bis dahin ein recht steiniger Weg war.

    Kann mir da mal jemand einen Tipp geben?

    Hallo,
    ich würde gerne in PHP zufällige Passworter mit einer Länge von 8 Zeichen generieren.
    Ich habe das momentan so gelöst:

    Dabei gibt es nun ein Problem:

    Ich bekomme teilweise Passwörter geliefert, die nur 2 Stellen haben oder ganz leer sind. Außerdem enthalten die ausgegebenen Zeichenketten oft ein Â.
    Das hängt damit zusammen, dass Zeichen wie "<", ">", und "&" in HTML spezielle Bedeutungen haben. Wenn dahinter dann kein sinnvoles HTML kommt wird das Passwort einfach abgeschnitten und wenn sinnvoller Code folgt, entstehen Zeichen, die in $charset nicht enthalten sind.

    Um das zu vermeiden, müsste ich die Zeichenfolge $pwd in PHP als für HTML unbedeutsam kennzeichnen, weil ich $spex der Übersicht wegen so lassen will wie es ist. Wie macht man sowas?

    Stellt sich dieses Problem eigentlich auch beim Versand der PWs per Mail und der Abfrage am Login?
    Wohl eher nicht oder?

    Danke im Voraus!

    Hallo,
    ich arbeite gerade an einem Registrationsskript für einen kleinen Onlinedienst.

    Dort muss man einfach seine Mailadresse 2x eingeben und bekommt dann ein Passwort zugesandt.
    Natürlich muss die Mailadresse vorher irgendwie abgecheckt werden.
    Dabei bin ich auf folgendes Problem mit den Toplevel-Domains gestoßen:

    Ich würde gerne überprüfen, ob die Topleveldomain nur aus Buchstaben besteht.
    Das kann man mit preg_match machen und es würde wohl etwa so aussehen:

    PHP
    preg_match('/^[a-z]+$/i', $toplevel)

    Ich verstehe aber den Syntax leider nicht ganz.
    Wofür steht das "+$" und das "i"?
    Eigentlich ist mir der komplette Ausdruck "/^[a-z]+$/i" ein kleines Rätsel.
    Ich weiß zwar, was das bedeutet, kann's aber nicht "wörtlich" übersetzen.
    php.net hat mich dahingehend leider auch nicht wirklich befriedigt.

    Kann mir das mal jemand aufschlüsseln?

    So, ich bin jetzt etwas weiter:

    Die Datensätze aus der HTML-Tabelle habe ich in einem array indiziert.
    Und die Buttons werden jeweils dynamisch bei einer Suchanfrage durchnummeriert.
    Das funktioniert so, dass ich den Index der Einträge für das Array, dass in der Suchfunktion erstellt wird auch gleich als [b]value[b] an die dabei erzeugten Submitbuttons übergebe, also:


    Die Editbuttons haben folglich die [b]values[b] ed0 bis ed$i und die Löschbuttons analog del0 usw.

    Es ist also jetzt so, dass der Index eines Suchtreffers in einer Tabellenzeile (bzw. im Array $ids) mit dem numerischen Teil des [b]values[b] der Knöpfe in dieser Zeile übereinstimmt.

    Nun zum eigentlichen Problem:

    Die Ausführung des Editier- oder Löschskriptes (edit.php, del2.php) hängt zum einen vom Buchstabenteil (wie heißt das wissenschaftlich? alpha...?) und zum anderen vom numerischen Teil des [b]values[b] des Knöpfchens ab.

    Problem: Wie zerteile ich bspw. ed35 in "ed" und 35?

    Ich stelle mir den Aublauf dann etwas so vor (bissl Pseudocode):

    In den Dateien edit.php und del2.php müsste dann jeweils $y ausgewertet werden, also entweder

    "Lösche array[$y]"

    oder

    "Editiere array[$y]".

    Aber erstmal müsste ich eben wissen, wie ich die Variable aufteile oder evtl. einfach umwandle.

    Danke im Voraus!

    Hallo,
    ich habe ein kleines Problemchen bei der Übergabe eines Arrays aus einer Suchfunktion.
    Wenn ich in PHP ein Array mit

    PHP
    retrun[$array]

    aus einer Funktion übergebe, liegt global ein namenloses Feld vor(?).

    Um die einzelnen Werte dieses Feldes auszulesen, müsste ich den Syntax

    list( $var1, $var2....) = funktion($x)

    verwenden.

    Das Problem ist jetzt nur:
    1. Ich möchte alle Elemente des Arrays ausgeben.
    2. Das Array, dass in der Suchfunktion erzeugt wird ist logischerweise immer verschieden groß, weil darin die Treffer zu Anfrage indiziert werden.

    Ich bräuchte also irgendwas, das wie

    PHP
    list([color='white'][b]all[/b][/color]) = funktion($x)

    funktioniert.

    Habt ihr da einen Tipp?

    Nochmal eine weitere Frage:

    Wenn ich mich bei meinem Datenbankfrontend im Adminbereich bewege, werden mir alle Sätze aus der Datenbank in einer Tabelle ausgegeben, aber im Unterschied zum normalen Usermodus gibt es in jeder Zeile einen Knopf zum Bearbeiten und einen zum Löschen des Datensatzes.

    Wenn man da drauf klickt, dann wird jeweils die php-Datei für den Editier- oder den Löschvorgang ausgeführt.
    So weit, so gut.
    Die Frage ist jetzt nur, wie ich dem System klarmache, welchen Eintrag ich löschen möchte.
    Die Tabelleneinträge sind ja "loser Text" und nicht indiziert, die Buttons auch nicht.

    Ich müsste also diese Sachen irgendwie in Relation zu den Knöpfen mit Indizes versehen (Knopf-ID = Eintrags-ID oder so...).

    Wie kann man sowas elegant lösen?

    Hallo,
    folgende Frage zu .htaccess:

    Wenn ich auf einem Apache-Server einen bestimmten Bereich schützen will, benutze ich dazu ja die Dateien .htaccess, .htpasswd und .htgrp (bei Apache 2 ist das wahrscheinlich schon anders...).

    Nun gibt es da die beiden Optionen allow from und deny from, die man z.B. in einem Campusnetz dazu nutzen kann, Zugriffe aus bestimmten Subnetzen zu unterbinden oder eben nicht.

    Normalerweise legt man da auch eine Rangordnung fest:

    oder deny, allow -> Gebote heben Verbote auf

    Heißt also, dass ich bspw. zunächst mal alles verbieten kann, also:

    deny from all -> niemand darf irgendwas

    allow from 232.323.666 -> dies gilt jetzt nicht mehr für alle Requests, die von dieser IP kommen.

    Nun meine eigentliche Frage:

    Was hätte es für einen Sinn eine order allow, deny zu setzen?

    Wenn ich einmal alles erlaube, brauche ich es ja nicht mehr zu verbieten.
    Na ja, sicher macht das an irgendeiner Stelle Sinn. Sonst gäbe es diese Möglichkeit ja nicht.
    Nur wo liegt der?

    Vielleicht wird sich das auch in Zukunft ändern, wenn die Entwickler aufhören zu kiffen. :ahhh:

    Dass die Kifferei nun der Hauptgrund dafür ist, kann man wohl als "verkürzte Argumentationslinie" bezeichnen... :D


    Mit Javascript wollte ich das eigentlich nicht realisieren, weil ich eher ein Freund von serverseitigen Skripten bin.

    Ich werde das mit dem tabindex mal nachschauen und ansonsten einfach den Button umsetzen. Dann muss eben das "Design" leiden.

    Hallo,
    ich habe mal ein paar Fragen zum Design von Nutzerschnittstellen für Datenbanken:

    Ich habe eine MySQL - Datenbank erstellt, die der Nutzer über ein Formular mit PHP-Script durchsuchen kann. Das war eigentlich nicht schwer.

    Nun bin ich dabei eine administrative Seite zu gestalten. Da gestaltet sich das Ganze etwas schwieriger, denn der Administrator soll:

    - die Datenbank (wie der Nutzer) durchsuchen können
    - neue Datensätze eintragen können
    - bestehende Datensätze editieren und löschen können

    Es müssen also jeweils verschiedene PHP-Anweisungen ausgeführt werden.
    Da das Ganze in ein und dem selbem Dokument passieren soll, habe ich das momentan folgendermaßen gelöst:

    Praktisch die ganze Seite ist ein Formular und es gibt verschiedene Submit-Buttons, die alle den selben name haben. PHP schaut dann, welchen value der betätigte Button hat und fügt dann (in einer switch-Anweisung) per include das benötigte Skript ein.

    Ich hoffe mal, dass das kein allzu dilettantischer Ansatz ist, denn er funktioniert recht gut. :D

    Nur ein Problem gibt's: Wenn man auf einer Seite mit einem HTML-Formular Retrun drückt, dann wird das Formular mit dem ersten verfügbaren Submit-Button ausgeführt.
    Ich hätte es gerne so, dass bei eben dieser Aktion die Datenbank vom Admin einfach nach allen Einträgen durchsucht wird.
    Und das wäre auch so, wenn der Suchbutton der erste Submit-Button wäre. Aufgrund des Seitenlayouts, ist das aber der zweite.
    Nun meine Frage: Gibt es eine Möglichkeit festzulegen, welcher Submit-Button bei der Eingabe von Return benutzt wird?

    Alternativ könnte ich ja auch einfach die buttons anders setzen, aber das will ich eigentlich nicht. :)

    Hallo, ich habe mal noch eine kleine Verbesserung in der Funktion eingebaut, die prüft, ob die Eingabe eine Binärzahl ist.

    Wenn ich die Anführungszeichen weglasse, kann man jedes beliebige Zeichen (außer die Zahlen ungleich 0 und 1) auf der Tatsatur eingeben, ohne, dass eine Fehlermeldung kommt. Diese repräsentieren dann jeweils den Wert 0.
    Das liegt wahrscheinlich daran, dass es sich bei $input[$pos] um eine Zeichenkette und nicht um eine Integer-Variable handelt. Wenn ich die Überprüfung dann aber mit Integer-Werten (also ohne "") durchführe, kommt es dazu, dass auch Buchstaben und Sonderzeichen akzeptiert werden, denn: intval(a) = 0

    ...für das was Du machen möchtest, müsste das locker reichen.

    @trim: http://at.php.net/manual/en/function.trim.php
    @preg_match: http://at.php.net/manual/en/function.preg-match.php
    @bindec: http://at.php.net/bindec

    Das mag stimmen, aber mein Ziel ist es nicht in erster Linie schnell verwertbaren und effizienten Code zu produzieren.
    Ich will verstehen (und selber bestimmen), was passiert, damit ich ein wenig mehr über Algorithmen und Programmierung (spez. Modularisierung) lerne.
    Würde ich da die fertigen Funktionen benutzen, wäre das wohl eher kontraproduktiv.

    beefy: Danke für das Beispiel. Ich werd das erstmal mit den 8 Stellen fertig machen und dann eine Version für beliebig lange Zeichenketten erstellen. Alles der Reihe nach eben... :)
    EDIT: Ich habe jetzt den eigentlichen Fehler in meinem Programm entdeckt.

    Code
    $prod = $input[$pos]*2[color='red'][b]^[/b][/color](7-$pos);

    Anscheinend bedeutet ^ in PHP was anderes als "hoch".

    Ich habe das Problem jetzt erstmal so gelöst:

    PHP
    $prod = $input[$pos]*pow(2 ,(7-$pos));

    Gibt es auch eine Möglichkeit das ohne die Funktion pow() zu machen? Ich müsste nur die korrekte Schreibweise für "a hoch x" wissen.

    Code
    for ($pos = 7; $pos [COLOR=Red]<[/COLOR]= 0; $pos--) {

    diese zeile wolltest du bestimmt nicht so.

    Ja, stimmt. Hab das mal in >= geändert.

    Und wenn man dazu noch nicht mal das Wort return richtig schreiben kann, haut das natürlich nicht hin. :D

    Jetzt bin ich schonmal soweit, dass überhaupt ein Ergebnis geliefert wird. Das ist zwar immer 0. Aber ich hoffe mal, dass ich den entsprechenden Fehler noch finde.