Das Ubuntuusers-Supporttool

Du hast eine Idee für ein Projekt?
Andyh
User
Beiträge: 319
Registriert: Dienstag 8. Januar 2008, 19:52
Kontaktdaten:

Hallo

@Lunar
Upps da habe ich ja woll "shell=True" unterschlagen

Klassen mache ich eingentlich immer gerne der ordung wegen

Die Rückgabe werte sind nicht komisch du weis nur nicht wie ich mir das denke :D

@cofi
Ich lege immer gleiche eine __init__ an weil fast immer eine brauche, nur nicht immer gleich an anfang und wenn ich si dann brauche ist sie schon da.
alles in die __init__ zu legen um es einfache abzuruffen hört sich nicht schlecht an.

mir gehts es jetzt erstmal darum soviel wie möglich informationen zusammel gestallten kann ich das dann noch in ruhe.

Also wenn ihr denket da fehlt noch was Grundlegendes dan bitte melden!

Gruß
Andyh
Meinen Dickschädel schon bemerkt?
Ich bin jetzt FACHARBEITER (Zerspanungsmechaniker)!!!
[code]import sys

if sys.platform == "win32":
print "this program only runs on operating systems!!!"
sys.TotalError()[/code]
lunar

Andyh hat geschrieben:Upps da habe ich ja woll "shell=True" unterschlagen
In einem ordentlichen Programm wäre "shell=True" unnötig. Die Zeichenkettenverarbeitung kannst du auch in Python erledigen, dazu benötigt es weder grep noch awk.
Klassen mache ich eingentlich immer gerne der ordung wegen
In deinem Fall erhöhen die Klassen weder die Übersicht noch gestalten sie das Programm ordentlicher, sie erhöhen nur unnötigerweise die Komplexität. Klassen sind kein Selbstzweck.
busfahrer
User
Beiträge: 111
Registriert: Donnerstag 9. Oktober 2008, 17:42

Hallo
eine frage an die "Profis" :wink:

Was wäre denn die empfehlenswertere Funktion(sie tun ja wohl beide das selbe) oder ist das egal und Geschmacksache?

das Original

Code: Alles auswählen

def processor_arch(): 
    '''get information about 32 or 64 bit version''' 
    process = subprocess.Popen(['uname', '-ar'], stdout=subprocess.PIPE) 
    process.wait() 
    data = process.stdout.read() 
    processor_arch = data.split()[-2] 
    return processor_arch
und so hab ich sie jetzt gebaut

Code: Alles auswählen

def processor_arch(): 
    '''get information about 32 or 64 bit version''' 
    process = subprocess.Popen(['uname', '-ar'], stdout=subprocess.PIPE) 
    data = process.communicate()[0].split()[-2]
    return data
Gruß...busfahrer
Alles wird gut ;-)
encbladexp
User
Beiträge: 61
Registriert: Freitag 7. März 2003, 19:28
Kontaktdaten:

Die Lizenz ist natürlich noch Verhandlungssache, man könnte also auch BSD nehmen. Die Features sind aber gewünscht, den es muss gehen egal ob man Ubuntu, Kubuntu, Xubuntu oder ggf. überhaupt kein X hat.

mfg Betz Stefan
BlackJack

@busfahrer: Erst einmal ist es unsinnig `uname` so aufzurufen, dass es maximal viele Informationen liefert, wenn man nur eine davon haben möchte, statt nur das abzufragen *was* man haben möchte:

Code: Alles auswählen

bj@s8n:~$ uname -m
i686
Und dann würde der Profi eher das hier schreiben:

Code: Alles auswählen

import platform

processor_arch = platform.machine
Wobei man den Namen nicht abkürzen sollte, der DocString passt nicht zur Information, die da geliefert wird.

Und *wenn* man über externe Programme geht, die mehrere Informationen auf einen Schlag liefern können, dann sollte man das auch ausnutzen und alle Abfragen und zwischenspeichern.
Benutzeravatar
snafu
User
Beiträge: 6740
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

BlackJack hat geschrieben:Ich zweifle allerdings so ein bisschen den Sinn von dem Vorhaben an. Es gibt doch schon solche Werkzeuge, z.B. `lshw`.
`lshw` mit dem Frontend `lshw-gtk` ist natürlich ein super Tool, das jedoch sehr umfangreich ist und einen Anfänger u.U. überfordern könnte. Denn man muss IMHO beachen, dass speziell bei Ubuntu der Anfängeranteil relativ groß ist und stetig zunimmt. Es soll nicht abwertend klingen (schon gar nicht der Distribution gegenüber), aber man hat es da *teilweise* wirklich mit DAUs zu tun, die einfach nur wollen, dass ihr Ubuntu wieder läuft (ok, das wollen wir alle... ^^). Ich weiß ja nicht, wie dein Eindruck davon ist. Ich beziehe mich vor allem auf Foren außerhalb von "Shell und Programmieren".

Ich vermute also (ohne in den UU-Thread geguckt zu haben), dass nur Basisinformationen geliefert werden sollen, um z.B. schnell sagen zu können, welches Grafikkartenmodell oder wieviel Arbeitsspeicher man hat. Und - unter der Annahme, dass es vielleicht 10-15 Zeilen Ausgabe werden - wenn man gar nicht klar kommt, kopiert man einfach die komplette Liste ins Forum. Ein Helfer kann dann in den "ganz üblen Fällen" das Grafikkartenmodell im Internet recherchieren, wenn er Zusatzinfomationen braucht.

Also ein solches Szenario wäre das einzige, wo es Sinn machen kann, ein entsprechendes Programm zu schreiben. Etwas anderes fällt mir auch nicht ein.
lunar

Gemäß Murphys Law ist in diesen 10-15 Zeilen (du meinst wirklich, dass du den Zustand eines Systems in zehn Zeilen erfassen kannst?!) meist genau die Informationen nicht enthalten, die gerade wirklich nötig wären.

Insofern sehe ich da keinen Sinn. Für Standardfragen hat Ubuntuusers.de das schöne Wiki, darüber hinaus gehende Fragen von Anfänger resultieren meist daraus, dass jemand an einer Schraube gedreht hat, die er nicht versteht. Überspitzt gesagt: Die Ausgabe von "uname -a" hilft genau gar nichts, wenn jemand in einem Anfall von Abenteuerlust seine PAM-Konfiguration zerstört hat und sich deswegen nicht mehr anmelden kann :)

Außerdem empfände ich es als mühsam, unter vielen irrelevanten Informationen die wichtigen herauszusuchen. Meist kommt man schneller zum Ziel, wenn man dem Hilfesuchenden en detail erklärt, wie er die zwei, drei wichtigen Kommandos schnell selbst im Terminal ausführen kann.
Barabbas
User
Beiträge: 349
Registriert: Dienstag 4. März 2008, 14:47

Naja, ich glaube schon, dass das Tool in dieser Hinsicht sinnvoll ist: Wenn jemand Probleme mit dem Internet hat, soll das Tool vorab schonmal relevante Daten sammeln - dazu gehört mit Sicherheit nicht die GraKa - aber ifconfig und die interfaces. Ein Neuling weiß das nicht. Mit dem Tool hat er die notwendigen Angaben gleich an der Hand.

Kurz: Unabhängig ob man das Tool sinnvoll findet: Es ist durchaus möglich und praktikabel, auf Grund einer zugeschnittenen Problemauswahl relevante Hardware- und Konfigurationsinformationen zu sammeln. Die möglichen Gründe für ein nicht-funktionierendes Internet sind endlich. Ich gehe stark davon aus, dass gerade im kommerziellen Bereich durchaus mit ähnlichen Lösungen gearbeitet wird.
encbladexp
User
Beiträge: 61
Registriert: Freitag 7. März 2003, 19:28
Kontaktdaten:

Im verlinkten Thread zu Ubuntuusers habe ich jetzt meinen Vorschlag mal gepostet. Dieser ist halt sehr Modular aufgebaut und kann mit makeself zu einer einzigen Datei gemacht werden.

mfg Betz Stefan
Antworten