Abstecher objektorientiertes programmieren in Python

Inspiriert durch das Kapitel objektorientiertes Programmieren in Python, habe ich es gewagt, einen Abstecher in diese Richtung zu machen.

Vorweg: Es ist nicht ganz einfach. 🙂 Für mich -als nicht programmierer- ist einiges nicht „einfach mal so“ nachvollziehbar.

Grundlagen

In der oo-P (objektorientierten Programmierung) gibt es Klassen und Methoden und Attribute. Das ist zumindest das, was ich bislang „gelernt“ habe.

Nehmen wir folgendes Beispiel:

class artikel: # Es wird die Klasse artikel definiert
    def __init__(self):
        self.lagerstand = 0 # Diese Klasse bekommt das Attribut lagerstand = 0

    def erfassen (self, menge): # Es wird die Methode "erfassen" definiert
        self.lagerstand = self.lagerstand + menge

    def verkaufen(self, menge): # Es wird die Methode "verkaufen" definiert
        self.lagerstand = self.lagerstand - menge
        print 'Lagerstand: ', self.lagerstand

notebook = artikel() # Erzeugt eine sog. Instanz der Klasse artikel
desktop = artikel () # Erzeugt eine weitere sog. Instanz der Klasse artikel

Somit haben wir nun also die Klasse artikel. In der Klasse artikel, sind die Methoden erfassen und verkaufen definiert. wobei diese Methoden genau eine Variable entgegen nehmen, nämlich die menge der verkauften bzw. der eingekauften Artikel.

Starten wir nun das Programm und geben in der Python Shell folgendes ein:

notebook.erfassen(5)

nimmt die Instanz notebook der Klasse Artikel als den Wert 5 als Variable menge entgegen und rechnet dann lt. Programm self.lagerstand = self.lagerstand + menge aus.

Da Lagerstand = 0 haben wir dann also den lagerstand 5.

Die Eingabe von

notebook.lagerstand

in der Python-Shell ruft die Variable lagerstand der Klasseninstanz notebook auf. Diese sollte jetzt auf 5 stehen.

desktop.lagerstand ist noch bei null, da wir ja mit der Instanz notebook gearbeitet haben.

Soweit, so gut… jetzt heißt es üben üben üben und vor allem verstehen 🙂

 

 

 

Ebay – mittlerweile eine Piratenbucht?

Obwohl ich eigentlich sehr selten auf Ebay etwas verkaufe, erfreute ich mich bislang doch an 100% positiven Bewertungen. Klar, es ist mir ein Anliegen nur funktionierende gebrauchte Ware zu verkaufen und den Käufer damit zufrieden zu stellen.

Vor kurzem bot ich eine kleine Cam für Modelle zum Verkauf an. Die Cam war ca. 2 Monate alt, funktionierte einwandfrei und wurde von mir nur deshalb verkauft, da ich mit der Bildqualität nicht zufrieden war. HD ist mir lieber 😉

Der Ebay-Kaufpreis betrug einen Bruchteil des Neuwertes, aber egal! Bevor sie nur bei mir herumliegt…

Die Kaufabwicklung an sich ging problemlos über die Bühne. Komischerweise bekam ich aber vom Käufer keine Wertung. Daraufhin erkundigte ich mich bei selbigem, ob er mit der Ware zufrieden ist und bittete um eine entsprechende Bewertung.

Sehr überrascht war ich, als ich lesen musste, das die Cam bei ihm nicht funktionert. Die SD-Card (die ich nicht mit verkauft hatte) wurde angeblich extrem heiß.

Nach erfolgloser Fehlersuche (per Email) hab ich dem Käufer vorgeschlagen, dass ich die Cam zurücknehme und vereinbarte mit ihm, dass er mir die Cam zurück schickt und ich ihm, sobald die Cam inkl. Zubehör bei mir eingetroffen ist, das Geld auf sein Konto überweise.

Der Käufer willigte ein… Ich ersuchte um seine Kontodaten… und plötzlich wart Stille im Postfach… keine Antwort nichts…

Vergangenes Wochenende staunte ich, als ich eine Email des Käufers erhielt, in der kundgetan wurde, dass er mich nun negativ bewertet hat, da ICH mich nicht mehr gemeldet hab und sein nächster Schritt die Meldung bei Ebay sei.

In der Bewertung lese ich dann: Defekte Ware, SD-Card aufgerissen…

SD-Card aufgerissen? Ich hatte doch gar keine SD-Card mitverkauft…

Also erneute Kontaktaufnahme und bitte um Klarstellung seiner Vorgangsweise…

Schließlich besteht er darauf, dass ich ihm das Geld überweise und er mir erst dann die Ware zurück schickt… Zugesagt und vereinbart war jedoch, dass es genau umgekehrt läuft: Erst Ware retour, dann der Geldbetrag. Davon wollte der Käufer aber offenbar nichts mehr wissen.

Aufgrund dieses Szenarios befürchte ich, dass ich – wenn ich die Überweisung zuvor tätige – ohne Cam und ohne Retourbetrag da stehe…

Ich hab das nun zur Schlichtung an Ebay übergeben. Was bleibt ist ein doch sehr fader Beigeschmack! Da werd ich in Zukunft wohl lieber zum Sammler… 🙁

Gigabyte 970A UD3 AM3 – Netzwerkprobleme

Vor kurzem hab ich mein doch schon älteres Mainboard gegen ein aktuelles Gigabyte Mainboard ausgetauscht. Das neue Board unterstützt Hybrid EFI, hat jedoch noch ein Award Bios, kann aber bereits von Festplatten > 2 TB booten.

Verbindungsprobleme

Egal, ob mit Linux Mint 11, Debian Testing, Linux Mint Debian Edition oder Sabayon, irgendwie verhielt sich die Netzwerkkarte der Marke Realtek RTL8111E chip (10/100/1000 Mbit) mit den – von den Distributionen zur Verfügung gestellten Treibern – komisch.

Unter Sabayon wurde die Netzverbindung zwar hergestellt, sie war jedoch gleich nach dem Systemstart in Gnome nicht verfügbar. Dies äusserte sich zum Beispiel so, dass der Firefox immer erst nach einem Reload der aktuellen Startseite etwas anzeigte. (Sonst gabs ein Server nicht gefunden).

Unter Debian Testing, Linux Mint 11 und auch Linux Mint Debian Edition, war die NIC anfangs „da“ und man konnte auch eine Verbindung herstellen. Kurz danach jedoch, ging die Verbindung in die Knie und funktionierte nur noch – wenn überhaupt – sporadisch.

Lösung des Problemes

  • Man sucht die Website von Realtek auf und ladet die Datei LINUX driver for kernel 2.6.x and 2.4.x (Support x86 and x64)herunter.
  • Diese entpackt man dann in ein Verzeichnis
  • Dann stellt man sicher, dass man die Kernel Sources zum momentan verwendeten Kernel (uname -a bzw. uname  -r gibt Aufschluß über den installierten Kernel) installiert hat. Die Kernel Sources haben in apt, synaptic etc. in meinem Fall z.B. den Namen linux-headers-2.6.38-8. Bei euch kann das natürlich – abhängig vom verwendeten Kernel – abweichen!
  • Danach öffnet man eine Konsole als root, oder greift auf sudo zurück und wechselt in das Verzeichnis, in das man die heruntergeladene Datei entpackt hat. Dort sollte es dann die Dateien autorun.sh,  log.txt,  Makefile,  README und den Ordner  src geben
  • Die Installation startet man (als root!) durch Eingabe von ./autorun.sh

Bei mir hat das Installationsscript problemlos funktioniert und das neue Modul (den Nic-Treiber) installiert.

Eine Recherche im Internet bringt übrigens zu Tage, dass es offenbar schon länger Probleme mit dieser NIC bzw. dem Standardmodul gibt…

 

4 Jahre pc-howto.com

Juhu, ich habe gerade festgestellt, dass  es meinen Blog bereits 4 Jahre lang gibt. Unglaublich, wie die Zeit vergeht.

Anfangs ging es etwas schleppend voran. Ich hatte -warum auch immer- Probleme, entsprechende Themen, die vielleicht den einen oder anderen interessieren, zu finden.

Natürlich mangelte es deshalb auch an entsprechendem Feedback, was mich nicht unbedingt motivierte viel zu schreiben.

Schließlich war mein How-to zu Vsftp irgendwie der „Startknopf“ meines -bis zu diesem Zeitpunkt eher toten- Blog. Erste Kommentare trudelten ein.

Das Howto wird  im Internet wohl ziemlich oft gefunden und sorgt für Besucher. Das hat mich  sehr gefreut und es war für mich ein gehöriger Ansporn, mehr Energie ins bloggen zu stecken.

Zusätzlich dazu sorgte auch die Verlinkung auf planet.debianforum.de für regelmäßige Hits. Danke dafür an das Debianforum!

Mittlerweile macht es einfach nur Spaß! Ich freue mich immer, wenn ich Feedback von Lesern bekomme und meine Beiträge vielleicht das eine oder andre mal zu einer Problemlösung beitragen!

Vielen Dank an die Leser meines Blog!

PS: Ich gebe zu, es ist auch als Nachschlagewerk recht angenehm. Ich merke mir nicht mehr alles… 😉

Wichtigkeit eines Backup des /efs Ordners des Samsung Galaxy S (Roaming DREI)

Ich poste hier eine 1:1 Kopie dessen, was ich auch im Forum android-Hilfe.de gepostet habe:

Ich habe heute ein SGS1 von Gingerbread 2.3.3 auf 2.3.4 (JVR) gebracht, danach auf Darkcore Kernel.

Abschließend dann noch die GOA-Custom Firmware auf dem Handy installiert.

So und nach einen Wipe und Factory Reset hatte ich dann das Problem, dass das DREI Handy nur noch roamte bzw. bei ausgeschaltetem Roaming keine Einbuchung in das Netz von 3 (Anzeige am Sperrscreen 3AT) mehr möglich war.

Internetseitig gab es nur noch Edge, was ganz klar darauf hindeutete dass das Handy über A1 fährt. Auch der Sperrscreen zeigte nur ein 3. Ein nächstes Indiz dafür dass sich das SGS wohl nicht richtig im DREI AT Netz einbuchen konnte.

Erster Gedanke: Naja spiel ich halt meine modifizierte spn-conf.xml ein. Also eingespielt, Handy aus und wieder ein geschaltet. Und…… noch immer nix, kein HSDPA, nur Edge kein 3AT nur 3(A1).

Nachdem ich ja IMMER eine Sicherung des EFS Ordners (…die nv_data.*) durchführe, bevor ich experimente starte, hab ich die Originaldateien von der Datensicherung wieder auf das SGS gespielt.

Das Handy neu gestartet, dann Paketdaten deaktivert – etwas gewartet – und Paketdaten wieder aktiviert.

Und siehe da: HSDPA , Netz = 3AT Sperrscreen = 3AT

Ich nehme deshalb an, dass es sowohl an der nv_data.* liegt UND an der modifizierten spn-conf.xml. (siehe Beitrag über Roaming)

BITTE IMMER eine Datensicherung Ordner /efs -> nv_data*.* durchführen BEVOR IHR IRGENDETWAS am Originalzustand des SGS ändert! Am Besten gleich die spn-conf.xml mitsichern! Die nv_data kann auch mit dem Product Code Checker gesichert werden. Anleitungen hierfür im Forum android-hilfe.de