Beiträge von MarkusH

    Und auch Wichtig, nicht jedem Tip befolgen, der irgendwo steht.


    Da gibt es bei Facebook Tips wie man ohne 10km laufen die Eier ausbrühten
    kann. Man legt das Handy auf den drehenden Teller der Mikrowelle.
    Den da kommt nur Schrott dabei raus, HANDY-Schrott!!


    Und auch ohne Pokemon, niemals das Handy in die Mikrowelle legen!

    Der Postillon hat keine Falschmeldung am 1. April veröffentlicht, den wörtlich heisst es da:

    Zitat

    Falschmeldungen? Nicht mit uns! Wie in jedem Jahr seit seiner Gründung (1845) boykottiert der Postillon den überaus schändlichen 1. April. Deutschlands größte Tages- und Nachtzeitung der Welt setzt damit ein Zeichen gegen die albernen Lügen und Aprilscherze, die in vielen weniger seriösen Medien an diesem Tag verbreitet werden.

    http://www.der-postillon.com/2…-falschmeldungen-der.html

    Habe am Sonntag mal wieder Zeit gehabt mich mit Simutrans zu befassen. Ich habe es auf einer Raspberry Pi 2 B mit dem Betriebssystem Raspbian gespielt, die CPU ist mit dem 900 MHz mit die schnelleste aber das macht sich nur beim Zoomen bemerkbar und das der Zeitzähler nicht so schnell vergeht. Das beim Spielspass macht das keinen Unterschied.


    Ich habe die Strategie ausprobiert, zuerst die Personenbeförderung auszubauen, also mit Strassenbahnen und Bussen, leider kam dabei nicht viel Geld in die Kasse, erst als ich die Kohle zu einem Kraftwerk befördert habe kam richtig Geld in die Kasse.


    Habe heute in den sozialen Netzwerken gesehen das es eine neue Version zum Download gibt, Simutrans 120.1.1



    Installer for Windows


    MS Windows user should use the Online-Installer: http://sourceforge.net/project…line-install.exe/download
    Those versions do support IPv6 on windows. As a result it will not run on any windows OS below XP.


    If you want to download manually, you will need an executable and a pak set.


    Executables
    http://sourceforge.net/project…/files/simutrans/120-1-1/


    PakSets - graphic packages


    Pak64 120.0.1
    pak64 Basics http://sourceforge.net/project…ak64-120-0-1.zip/download
    64pak food chain http://sourceforge.net/project…n-food-112-2.zip/download


    Pak64.german 112.3 (new)
    Version 112.3 http://forum.simutrans.com/ind…35eba0a75963d&topic=14226

    Web-Framework oder Webtoolkits gibt es wie Sand am Meer, aber ich möchte über eines mit dem Namen "Django " schreiben. Das ist laut Webseite ein "high-level Python Web framework", das die schnelle Entwicklung und sauber, pragmatischen Entwurf fördert.


    Erstmal auf der Zunge zergehen lassen. Web ist klar, Python ist die Programmiersprache, Framework ein Grundgerüst und high-level wörtlich übersetzt: auf höchster Ebene. Jetzt klingt es so, nur noch um die Logik und Ausgabe kümmern und fertig. Und fast so ist es.


    Erste Schritte in die Webentwicklung mit Django


    Auf der Django Webseite gibt es ein gutes Einsteiger Tutorial in englischer Sprache. Das habe ich durchgearbeitet und war sehr hilfreich. Zuerst wird ein Projekt angelegt, dann eine App erstellt. Die App bekommt ein Datenmodel, in den Tutorial wird das beispielhalt mit einer Umfrage gezeigt, in dem Datenmodel werden die Antwortmöglichkeiten einer Frage zugeordnet.

    Published 04 Januar 2015
    Updated: 22 Oktober 2015
    By MarkusH


    Wer Simulationen mag oder Eisenbahnstrecken bauen möchte, sollte sich Simutrans unbedingt anschauen.
    Ich haben mich auch vom Spiel Simutrans längere Zeit faszinieren lassen. Das ist eine wirklich gut gemachtes Wirtschaftssimulation für Transport und Verkehr und wird kostenlos zum Download angeobten, der Quellcode wird frei angeboten und die Weiterentwicklung ist gewünscht. Zum Spielbeginn sollten zuerst die Kraftwerke mit Kohle versorgen, das bringt Geld für den weiteren Ausbau ein, aber richtig viel Geld gibt es beim Personentransport mit dem Flugzeug. Interessiert? Das Spiel läuft auf Linux, Win und Mac.


    Leider gibt es im Moment für Debian 8 "Jessie" keine aktuelle Version, nur die Version von Debian 7, die Version 112. Um mit der aktuellen Version spielen zu können habe ich mir Simutrans Homepage die Linux x64 SDL
    zip Datei sowie den Grafiksatz PAK128.german heruntergeladen. Zuerst die Spieledatei Datei entpackt in ein Verzeichnis nach Wunsch, und dann der Grafiksatz PAK128.german in das gleiche Verzeichnis entpackt. Die
    simutrans und get_pak.sh ausführbar gemacht. Die fehlenden Bibliotheken nachinstalliert, in meinem Fall war es

    Code
    1. # apt-get install libsdl-mixer1.2:i386 libbz2-1.0


    Bei Youtube gibt es mit dem Suchbegriff Simutrans viele Videos zu sehen:
    https://www.youtube.com/results?search_query=simutrans


    A. Kuller hat noch einen Tip gegeben: gleich am Anfang sich auf die Passagierbeförderung konzentrieren und diese Zufrieden beförderen (das heißt, moderne Verkehrsmittel und keine überfüllten Haltestellen) da kommt schnell viel Geld in die Kasse.


    Das Schöne an Simutrans, jeder kann seine Ideen verwirklichen.


    Wer möchte kann zum Beispiel auch auf einer Deutschlandkarte spielen: http://maps.simutrans.com/europe.html

    Published: Fr 04 September 2015
    Updated: Mi 30 September 2015
    By MarkusH


    Auf dieser Seite möchte ich eine Liste für deutsche Python Webseiten bereitstellen:


    Python Webseiten


    Python-Forum.de


    • Das deutsche Python-Forum


    Wikibooks: Python unter Linux


    • Das Pythonbuch bei Wikibooks, enthält viele Scripte zum Testen und Probieren.


    Python Einführungsvortrag


    • Python ist eine leicht zu lernende, objektorientierte Programmiersprache.
    • Plattformunabhängig: Windows, Unix und Mac
    • Interpretierte Sprache (Script-Sprache)


    Python Codeschnipsel


    Matplotlib und Pylab


    • Wissenschaftliche Grafiken unter Python


    Spezialmethoden in Python


    • Operatorüberladung, Anpassung des grundlegenden Objektverhaltens,
      Funktionsobjekte, eigene Collections und einiges mehr wird bei
      Python mit Hilfe der Methoden mit den doppelten Unterstrichen erledigt.


    Blob Valentine


    Eine mit Python programmierte Animation zum Valentinstag.


    Python Tutorials


    Python-Kurs


    • Willkommen zum Python-Kurs-Tutorial, einem Kurs, der sich zum Selbststudium eignet.


    Tutorial für das Erstellen von einfachen Textmenüs


    • Viele Anfänger stehen vor dem Problem, zur Steuerung ihrer typischen
      kleinen einsteigerfreundlichen Tools - wie Adressverwaltungen, Telefonbücher,
      TODO- Listen, usw. - ein Menüsystem zu implementieren.


    Das Python-Tutorial


    • Diese Python-Tutorial ist eine sehr gute Einführung in die Welt von Python.
      Und ist mit 18 Kapitel auch sehr umfangreich. Ist die Übersetzung des
      offiziellen Python-Tutorials der Version 3.3. und steht unter der
      Apache License 2.0.


    Wikipedia Python


    • Die Programmiersprache Python auf Wikipedia


    PyGame Anleitung in Englisch


    • mache bei diesem Link eine Ausnahme, den sonst sind die Beiträge auf
      dieser Seite in deutscher Sprache, aber der Beitrag erklärt PyGame
      wirklich gut und ist mit vielen Bildern und Quellcode sehr
      übersichtlich geschrieben.


    Schlangengerangel für Kinder, Programmieren lernen mit Python


    "Schlangengerangel für Kinder, Programmieren lernen mit Python" ist die
    deutsche Übersetzung des Buches "Snake Wrangling For Kids" von Jason R. Briggs.


    Es ist ein eBook für Kinder ab 8, die eine Programmiersprache lernen
    wollen. Es behandelt anhand von Python 3 die grundlegenden Konzepte.


    Das Buch liegt in 3 verschiedenen Formen vor (eins für Mac, eins für
    Linux und eins für Windows).


    The Hitchhiker’s Guide to Python!


    Welcome to The Hitchhiker’s Guide to Python.

    Published: 04 Januar 2015
    Updated: 19. September 2015
    By MarkusH


    Debian ist einer der bekanntesten und grössten GNU/Linux Betriebssystemen. Und demnächst wird die nächste Version 8 "Jessie" veröffentlicht. Sie wird die Nachfolge von Debian 7 "Wheezy". Die aktuelle Version ist Debian 7.8 vom 10. Januar 2015. Und Debian 7.0 wurde ursprünglich am 4. Mai 2013 freigegeben.


    Also ich habe bei meinem alten Rechner das neue Debian hochgerüstet, sprich die Paketliste auf Jessie geändert und ein dist-upgrade durchgeführt. Zuvor die grafische Oberfläche beendet, damit ich mir sicherer war das wenn die Bildschrimansteuerung aktualisiert wird der Computer nicht abstürzt. Ach ja, es ist wichtig zuvor die Daten zu sichern, falls beim Update etwas schief läuft und die Festplatte formatiert werden muss. Bei eine Linux Neuinstallation teile ich die Festplatte in zwei Partitionen, 20GB - 40GB für das Betriebssystem und Programme und den Rest als home Verzeichnis, sprich für die Daten.


    Die größte Änderung von Debian 8 "Jessie" ist die Umstellung des Systemhochlaufes, mit dem Dienst systemd werden die Geräte, bzw. Dienste möglichst parallel gestartet und so wird der Hochlauf verkürzt, früher wurden mit init die Dienste hintereinander gestartet. Und diese Umstellung hat bei mir Problemlos funktioniert, leider habe ich den Hochlauf zuvor nicht gemessen und kann nicht sagen wieviel es genau
    gebracht hat.


    Von der Pythonseite aus betrachtet, wurde PyQt5 für Python 2 (python-pyqt5) und 3 (python3-pyqt5) neu hinzugenommen. Python 2.7 ist der Standardaufruf.


    Die Debian 8 Installer können von der Entwickler-Ecke heruntergeladen werden.


    Und für das Lesen und Schreiben auf SDXC Speicherkarten gibt es das Paket exfat-fuse.

    Ich habe diesen Text von Mihnea Dobrescu-Balaur übersetzt, um zu zeigen wie andere über die Programmiersprache Python denken.
    Der Autor war damit einverstanden und hat mir seine Einwilligung am 22.11.2013 gegeben, mit Bitte um den Verweis zu seiner Seite.


    www.mihneadb.net/post/python-the-best-first-programming-language/


    von Mihnea Dobrescu-Balaur.


    Ich begann die Programmierung in der Schule zu lernen, und habe mit C angefangen. Es war ein bisschen kompliziert, sich mehr auf die Speicherverwaltung als auf Algorithmen zu kümmern, aber ich wusste nicht was ich jetzt weiß und ich war wirklich daran interessiert, also ging ich diesen Weg.


    Danach wurde mir in der Universität im Einsteigerkurs auch C gelehrt. Bis dahin kannte ich andere Programmiersprachen, insbesondere Python, und sah, wie Menschen ohne Vorkenntnisse mit C kämpften begann ich mich zu fragen, ob Python eine bessere erste Sprache wäre. Beim Betreuen einiger Programmierungskurse und Durchführen einiger Python-Workshops, bin ich überzeugt, dass Python die beste erste Programmiersprache ist.
    Lassen Sie mich Ihnen sagen warum das so ist.


    Hier ist ein Vorgeschmack darauf, wie der Pythoncode aussieht:



    def contains(numbers, value):
    for n in numbers:
    if n == value:
    return True
    return False


    nums = [1, 2, 3, 7, 13, -2, 4, 8, 9]
    result = contains(nums, 7)
    print result # True


    Ich zeigte den Leuten ohne Programmiererfahrung diese Code-Snippet und sie haben kein Probleme mit dem Lesen und Verstehen des Verhalten. Ich hörte ihr Feedback und reflektierte es und kam vier wichtigen Aspekte, die ich denke das Python die erste Programmiersprache ist, die jemand lernen sollte. Es ist eine hohe, dynamische (und dynamisch typisierte) Programmiersprache, mit einen Ausdruckskraft, die die Lesbarkeit des Codes verbessert.


    [Blockierte Grafik: http://localhost:8000/python-logo-inkscape.svg]


    Python ist eine Hochsprache. Dies hat nicht unbedingt viel sagen, da C auch als eine Hochsprache bezeichnet wird.Formulieren wir es als "höhere Sprache als C". Dies bedeutet, dass Python eine Abstraktionsebene bietet, in der sie sich sich auf Algorithmen konzentrieren können und was Ihr Programm zu tun hat, versteckt sie die Tatsache, dass der Computer eine dumme Maschine ist, die nur binär versteht. Beispiele hierfür sind viel - Sie müssen nicht den Speicher manuell verwalten, Python sagt, wenn Sie außerhalb der Grenzen auf eine Liste zugreifen, Strings haben eingebaute Unterstützung und die Standard-Bibliothek wird bereitgestellt mit gut dokumentierten Funktionen meist mit dem was du tun will. Außerdem haben Sie Zugriff auf alle Datenstrukturen, die Sie es für das Studium des Programmierens benötigen.


    Die Definition einer dynamischen Programmiersprache ist, wie Wikipedia erwähnt, ein bisschen unscharf, aber der Hauptaspekt, die Python zur einener freundliche Sprache macht,
    ist die runtime. Dank den haben wir dynamische Typisierung, einfach Selbstbeobachtung und Reflexion, alle gebündelt und sind in dem Python-Interpreter zugänglich.
    Dies fördert Newcomer mit Live-Code experimentieren und ermöglicht eine engere Feedback-Schleife bei der Arbeit an Projekten. Keine Ahnung, was die Funktion macht?
    Versuchen Sie es in der Interpreter! Fragen Sie sich, welche Funktionen ein Modul zur Verfügung stellt?
    Nutze die Funktion dir!
    All diese Sachen machen das Experimentieren einfacher und senkt die Zeit für die Erstellung von Prototypen.


    Wie einfach es ist eine Idee auszudrücken und wie knapp Sie es tun können:
    Für mich hängt die Ausdruckskraft einer Programmiersprache von zwei Dingen zusammen.
    Ich fühle, dass Python es Ihnen ermöglicht, eine Menge Sachen in ein paar Zeilen Code zu erledigen,
    ohne die Lesbarkeit (The Zen of Python) darunter leidet.
    Es sind die kleinen Dinge, wie die Möglichkeit zu schreiben



    3 < x < 10


    , die Ihnen ermöglicht, kurze, schöne Code zu schreiben.
    Liste Comprehensions sind ein weiteres Beispiel des mächtige Syntax:


    numbers = [1, 2, 3, 4, 5, 6, 7, 8]
    evens = [x for x in numbers if x % 2 == 0]



    Die Syntax ist ähnlich wie in der Mathematik verwendetet Set-builder Notation, die es zugleich leistungsfähig und lesbar macht.


    Last but not least, ist die Lesbarkeit eine wesentliche Stärke von Python.
    Ich denke, der wichtigste Grund dafür ist, die Vertiefung als Teil der Syntax.
    Python verwendet keine geschweiften Klammern, um Codeblöcke begrenzen,
    es reichen Einrückungen. Für Anfänger bedeutet dies, sie müssen gut gegliederte Code
    für ihre Programmarbeit schreiben, und später, bedeutet dies, dass der Code das Lesen anderer Menschen einfacher wird.


    Außerdem verwendet Worte Python, in denen andere Sprachen Symbole und Zahlen verwenden würden(and , or , True , False etc.), womit es näher an den gesprochenen algorithmischen Code (Pseudocode) ist.


    Versuchen Sie dieses. Lesen Sie die folgenden Code-Schnipsel laut.
    Welcher ist leichter zum Verstehen?
    Anmerkung: Das Beispiel ist natürlich im Englischen besser zu verstehen,
    aber für and = und, or = oder, true = wahr, false = falsch einsetzen gibt es den Sinn wieder.


    is_even = (a % 2 == 0) ? 1 : 0;


    Python
    is_even = True if a % 2 == 0 else False


    Natürlich konnten wir nur den Vergleich als Ausdruck benutzt habe, aber der Punkt war,
    den ternären Konstrukt zu zeigen.


    Da die Syntax dem Pseudocode ähnelt können Anfänger eine Arbeitsimplementierung eines Algorithmus sie ziemlich leicht begreifen.
    Dann dank Python Lesbarkeit und dynamischen Natur können sie frei experimentieren, um sicherzustellen, dass sie den jeweiligen Algorithmus verstehen.


    Für alle genannten Gründen (und mehr), denke ich, Python ist die Programmiersprache für den Unterricht.
    Um diesen Anspruch auf die Probe zustellen hat ROSEdu Py4School ein Programm gestartet,
    in dem Hochschullehrer und Studenten Python, als Alternative zu C zu lernen. Lehrer und Studenten lieben es.


    Zusammenfassend ist Python eine Einsteigerfreundliche, aber mächtige Sprache.
    Die Anfänger konzentrieren sich auf Algorithmen, lassen die systemnahen Implementierungsdetails außer Acht,
    dank einem ausdrucksstarken und gut lesbaren Syntax. Ich denke, das macht Python zu der besten ersten Programmiersprache.


    am 18.11.2013 geschrieben.

    Wetterstation von Tinkerforge


    Die Heimautomation wird immer Preisgünstiger, und durch einfache Minicomputer wie den Raspberry Pi, die im Handel nur 40 Euro kostet, ist ein interessanter Faktor. Ich konnte mich nicht diesem Thema entziehen und habe mir einen Bausatz einer Wetterstation und den Minicomputer gekauft. Auf dem Minicomputer läuft Raspbian und ist installiert auf der SD-Karte mit der Hilfe vom NOOBS Setup. Und die Installation hat nur paar Minuten gedauert.


    Die Tinkerforge Wetterstation ist fertig aufgebaut


    Die Wetterstation von tinkerforge ist fertig zusammengebaut und an die Raspberry Pi angeschlossen und darauf ein Python Programm zu Anzeige am Display und es ist fhem installiert. Das neueste Debian Paket von der fhem Webseite heruntergeladen und mit sudo dpkg -i fhem-5.6.deb und dann ein sudo apt-get -f install installiert werden.


    Das Python Programm meldet die Werte an fhem, das ein bekannte Software in der Heimautomatisierung ist.


    Und so kann ich die Werte der Wetterstation im Browser oder am Handy anschauen.


    Die Tinkerforge Wetterstation ist fertig aufgebaut


    Innenansicht



    Die Änderungen in der fhem.cfg:

    Code
    1. define illuminance dummy
    2. attr illuminance room Wetterstation
    3. define humidity dummy
    4. attr humidity room Wetterstation
    5. define air_pressure dummy
    6. attr air_pressure room Wetterstation
    7. define temperature dummy
    8. attr temperature room Wetterstation


    Die Werte werden wie im diesem Beispiel über Telnet an den fhem Server geschrieben.


    Mein Quelltext kann angeschaut und verwendet werden.


    Ich möchte auch der Seite blog.smartnoob.de danken, die mir wertvolle Tips gab.


    Tinkerforge hat seit 2015 einen eigenen Prozessor, den sogenannten Red Brick, der Anstelle der Raspberry Pi verwendet werden kann.
    Bei meiner Wetterstation ist mir aufgefallen das die Temperatur um 1 bis 2°C zu hoch ist, das kommt daher da der Sensor mit auf dem Luftdruck Modul sitzt und in erster Linie die Temperatur vom Chip misst um den Luftdruckwert zu kompensieren. Wer es genauer haben möchte kann sich ein separates Temperatur Bricklet kaufen und über ein Master Brick anschliessen oder Tausch mit einem anderen Bricklet. Bohrlöcher für andere Bricklet sind an Gehäuse vorhanden.

    Das Zahlenratespiel für die Kommandozeile.


    für ein kleines Spiel zwischendurch. Für alle, die gerne kleine textbasierte (ohne GUI) Spielchen spielten, dürften Interesse an meinem Zahlenratespielchen haben.


    Finde den Astronaut im Koordinatensystem, bei dem das Raumschiff während eines Asteroidensturm beschädigt wurde, und alle Systeme ausgefallen sind! Beeile dich, den nur 20 Runden ist Zeit! Die drei Koordinaten sind im Bereich von 0 bis 100. Für einen lang anhalteten Spielspass gibt es eine Bestenliste, die nach Zeit und Runden sortiert ist und die Daten in einer lokalen SQlite3 Datenbank speichert. Das Spiel war mein erstes Programm mit einer Datenbank.


    Das Programm verzichtet auf ein Grafisches User Interface (GUI).
    Stattdessen wurde ein Menü nach dem Tutorial von Lysander verwendet. Und wurde von BrokenSoul1979 erstellt. Das Programm hat mittlerweile schon drei Sterne auf Github gekommen.


    Es läuft auf MacOS, Windows und Linux, und überall dort wo sich Python installieren läßt!


    Start


    Das Spiel benötigt Python 3


    Und der Quellcode kann auf github.com/MarkusHackspacher/Lost_in_space heruntergeladen werden.


    Start mit: python start.py

    Wie ein einfaches Banner erstellt wird, ist meisten klar, ein Grafikprogramm öffen, Datei Neu auswählen und die gewünschte Größe, dann den Hintergrund und einen Text eintragen. Etwas komplizierter, aber ähnlich ist es wenn das Banner animiert werden soll, da werden paar Bilder im gleichen Format erstellt und dann in ein GIF Bild zusammen gefügt. Zum Beispiel, das Banner soll 468 Pixel breit und 80 Pixel hoch werden, die Einzelbilder müssen dann auch die gleiche Größe haben.
    Auf dem ersten Bild ist z.B. ein großer Text zu sehen, das bekommt den Dateinamen frame_0001.gif, das zweite Bild hat zwei kleine Textzeilen und wird als frame_0002.gif gespeicht, das dritte heißt frame_0003.gif und ein Logo ist darauf zusehen.
    Und mit dem Linuxbefehl "gifsicle --delay=10 --loop frame*.gif > ani.gif" wird daraus das animierte Bild erstellt, bzw. herstellen, für die nach animiertes Bild herstellen gesucht haben, dass aber in diesem Zusammenhang eigentlich falsch ist, da das Bild nur aus den vorhandenen Daten heraus generiert wird.


    Aber hier möchte ich aufzeigen wie ein animiertes GIF Bild mit einen Text erstellt wird.


    animiertes Banner:


    Und selbstverständlich habe ich das mit Python gemacht, nach dieser Anleitung:
    http://www.mbeckler.org/inkscape/svgani/.
    In diesem wird das Bild mit einem Farbverlauf animiert und ist der Quellcode für das Beispiel zu Download
    (Python 2.7) bereitgestellt.
    Dabei habe ich eine skalierbare Vektorgrafik (engl. Scalable Vector Graphics) kurz SVG erstellt
    mit meinem Text, diese Editiert und einen Ablauf geschrieben, diese Daten dann als einzelne Bilder
    ausgegeben und als animiertes GIF gewandelt.


    Also mit Inkscape eine .svg Grafik erstellt mit dem Text, die x und y Werte im Texteditor umbenannt,
    unter dem Link ist der Text der SVG Datei.



    Die Datei sieht in Inkscape nicht besonders ansprechend aus,
    da sie Positionsangaben mit x_position und y_position deklariert sind und somit setzt
    Inkscape die Werte auf Null in die rechte obere Ecke:


    Banner bearbeitet mit Inkscape


    In die Setting Datei den Dateinamen der .svg Datei eingetragen und mit meinen Animationablauf gefüllt:



    Die Animation startet mit dem Wert 50 und wird in 14 Schritten auf
    140 erhöht, der Index Wert in in die XY Position geschrieben
    und der Text wandet dabei nach oben links aus dem Bild heraus.
    Die zweite Phase startet rechts ausserhalb vom Bild und die Textposition
    wandert nach links und durch die cosinus Funktion wird eine leichte
    auf/ab Bewegung erzeugt.


    Und wie beschrieben das Pythonscript starten, dann werden die viele frame_xxxx.gif Daten erzeugt, und mit


    Code
    1. gifsicle --delay=10 --loop frame*.gif > ball_ani.gif --colors 3


    in eine animierte gif Datei wandeln. Wer diesen Befehl nicht zur
    Verfügung hat, kann das Bild auch mit dem Grafikprogramm Gimp erstellen.

    Habe ein Cup Tippspiel Programm geschreiben. Der Name der Python Software heißt pyCupBettingund den Quelltextkönnt ihr bei Github anschauen und herunterladen. Als Lizenz habe ich GPL gewählt. Die Daten werden in einer lokalen Dakenbank gespeichert, ich nutze dabei das ORM von SQLAlchemy da die Zugriffe auf die Datenbank über die Variable erfolgt. Und nicht mit SQL Befehlen nach den Daten suchen muss. Als Textmenü verwende ich classymenu.py aus den Tutorial von Lysander.
    Die Datei habe ich abgeändert damit ich eine Auswahlliste anzeigen kann. Das Programm kann in Deutsch, Englisch und seit neuesten, dank Sascha Mester in Esperanto gestartet werden.


    Der Sinn des Tools ist die Vorrundenergebnise in der Gruppenphase und den Sieger eines Fußballweltmeisterschaftstunieres zu Tippen, natürlich geht auch jedes andere Tunier sofern eine Gruppenphase gespielt wird. Die Grundfunktionen wären alle Spiele auf eine Seite auszudrucken und dann diese den Tipper zum Ausfüllen zu Verfügung stellen, natürlich auch die Tipp- und Ergebnisseingabe. Dazu kommt die Ergebnissrechnung, für den richtigen Siegen gibt es einen Punkt, für den richtigen Torabstand zwei Punkte und für das exakte richtige Ergebniss drei Punkte. Und den Ausdruck des Ergebniss, das Ganze habe ich im ersten Schritt ohne GUI realisiert, die Eingaben sollen in der Kommandozeile gemacht werden. Auf der technischen Seite, ich habe einen Datenbankmanager mit Objektrelationale Abbildungverwendet und bin damit echt super zufrieden. Und damit habe ich mir echt viel Entwicklungszeit gespart und kann
    SQLAlchamy nur weiter empfehlen.


    Version 0.1


    pyCupBetting hat seit dem 27. März die erste Versionsnummer 0.1 bekommen, das heißt das Programm funktioniert soweit, die Bedienung ist aber noch nicht so ausgereift, bzw. könnte Benutzerfreundlicher sein. Zum Beispiel, wenn noch keine Teamnamen eingegeben sind, braucht das Wettbewerbsmenü nicht sichtbar sein. Und wenn ein Eintrag gelöscht wurde, muss die Menüebene kurz verlassen werden, damit sich die Daten aktualisieren.


    Start


    Das Programm benötigt Python3.x und sqlalchemy. Installieren Sie zunächst Python und danach kann sqlalchemy installiert werden:


    easy_install SQLAlchemy oder


    pip SQLAlchemy


    den Quelltext
    herunterladen und mit python pycupbetting.py starten. Bei Fehlermeldung oder Wünschen einfach einen Kommentar hinterlassen, ich werde antworten.


    Als Erweiterung wäre möglich:


    Eine komfortable Eingabe über eine GUI, z.B. alle Mannschaften einer Gruppe können mit Drag und Drop zu den Partien zusammen gestellt werden.


    Eine grafische Fiederkurve der Positionen der Tipper, auch zum Ausdrucken.


    Eine flexible Gestalltung damit das Programm für z.B. Championsleage und EM verwendet werden kann.


    Datenbank


    Die Datenbank hätte die folgende Struktur:


    team: ID, Name, Gruppe


    games: ID, team_A, team_B, result_A, result_B, start_date


    User, ID, Name, email


    Bets: ID, user, game, bet_A, bet_B


    Die Daten werden mit SQLAlchemy Object Relational Mapper verwaltet.


    Webseite (zeigt die README Datei): markushackspacher.github.io/pycupbetting/

    Das Programm eine Alternative zur Stift&Papier-Methode beim Notieren der Ergebnisse z.B. bei Computer Fußballspiele.


    Es speichert die Mitspieler und Ergebnisse in einer SQLite Datendank auf der Festplatte mit dem Namen "datenbank.sqlite".


    Es können neue Mitspieler hinzugefügt werden, der Name kann geändert und gelöscht werden.Und selbst verständlich können neue Partien hinzugefügt, geändert und gelöscht werden. Und auch das Datum der Partie oder des Spiels kann eingetragen oder geplant werden.


    Download bei Github


    Das Programm starten:
    ./pyfootballmngr.py


    Neu ab 5.12.2012: Das Datum wird mit dem Qt4.CalendarWidget dargestellt.


    Neu ab 24.8.2013: das Programm ist jetzt auch in deutsch, die Sprache wird automatisch ausgewählt, kann aber auch im Startparameter übergeben werden z.B.: ./pyfootballmngr.py de oder ./pyfootballmngr.py en. Version
    1.0


    Ab 15. Februar: Startbar mit Python 2.7 oder 3, Qt4 und Qt5
    Unterstützung


    Das Programm benötigt Python 2.7 oder 3.x und pyQt4 bzw. pyQt5 für Python.


    Bei Linux brauchst du auf deinen Rechner diese Programme, Python selbst, pyQt4 bzw. pyQt5 und optimal die Versionsverwaltung Git.
    Diese Installierst du mit diesem Befehl:


    sudo apt-get install python-qt4 git


    Dann kopiert du den Quellcode des Programms auf deinem Rechner, entweder das zip File von den Projekt herunterladen oder eleganter mit der Verwaltung herunterladen:



    git clone https://github.com/MarkusHackspacher/pyfootballmngr.git


    Dieser Befehl ladet den Quelltext herunter und kopiert ihn in das pyfootballmngr Verzeichnis.In das Verzeichnis wechseln:
    cd pyfootballmngr


    Das Programm starten:
    ./pyfootballmngr.py

    Auf meiner Seite möchte ich euch die Programmiersprache Python anhand von Programmbeispielen vorstellen. Der Umfang der Sprache ist sehr groß und läßt sich durch Module sehr gut erweitern. Sie kann als Scriptsprache eingesetzt werden oder mit einen Grafischen Toolkit wie Tkinter oder Qt als benutzerfreundliche Programm


    Wikipedia sagt dazu:


    Python


    ist eine universelle höhere Programmiersprache. Ihre Entwurfsphilosophie betont Programmlesbarkeit. Ihr Gebrauch von Einrückung zur Blockbegrenzung ist ungewöhnlich unter populären Programmiersprachen.


    Wenn Python auf dem Rechner installiert ist, kann mit


    HalloWelt.py:


    print ("Hallo Welt")


    in einer Datei mit Endung .py, Hallo Welt auf den Bildschirm ausgegeben werden. Bei Fragen oder Wünsche könnt ihr unter dem entsprechenden Beitrag einen Kommentar hinterlassen.


    Dazu gibt es auch viel deutsche Onlinehilfe:


    Wikibook: Python unter Linux


    Einfacher und übersichtlich Code, einfaches arbeiten mit Dateien, wie z.B. Excellisten auswerten.
    Die Software und IDE ist frei und dazu noch Plattformunabhänig!

    Beim Lesen von dieser Seite Zugriff vom WLAN Handy auf den Computer! ist mir die Idee zu einer GUI für den kleinem Webserver gekommen. Aber nicht nur praktisch für Dateien über das WLAN auf ein Smartphone zu laden, sondern auch echt hilfreich wenn ein Computer noch nicht richtig ins Netzwerk eingebunden ist bzw. noch keinen Zugriff darauf hat. Da kann der Webserver schnell weiterhelfen um paar Dateien auf den Computer zu laden.


    Mit diesem Python Programm wird ein HTTP Server bedient. Und die Bedienung ist echt einfach, nur das Verzeichnis auswählen wo der Zugriff erfolen soll und den Server mit "Startserver" starten.

    Bedienung


    Wenn der Server gestartet ist kann über den Browser http://127.0.0.1:8080 oder die Rechneradresse + :8080 auf aus angewählte Verzeichnis zugegriffen werden. Zu sehen sind dann im Browser die Dateien in diesem Verzeichnis, befindet sich eine index.html Datei wird diese geöffnet. Praktisch um mit einem Handy mit WLAN auf den Rechner zuzugreifen. Das Programm ist mit Python programmiert und läuft unter allen anderen Betriebssystemen, auf denen Python läuft. Für die Oberfläche habe ich Tk verwendet, die sind schon bei Python mitdabei. Wer einen Webserver suchet, der dazu noch ein Uploadbutton bietet, wird bei Droopy fündig.
    Download und Ausführen


    Das Programm benötig Python


    Und dann den passenden Quelltext für Python 2 oder Python 3 in eine Datei \"webserver.pyw\" kopieren und die Datei starten. Der Trick bei dem Programm ist, der SimpleHTTPServer wird in einem extra Thread unabhängig vom Hauptthread gestartet und wird dann mit dem Ende vom Hauptprogramm beendet.


    Der Quelltext für Python 2.7 und 3.x: gist.github.com
    Download als zip.


    Gestartet wird es mit


    Code
    1. python webserver.py


    Wenn das schwarze Fenster stört das automatisch mit erscheint, die Dateiendung in .pyw und das Programm wird ohne zusätzliches Fenster gestartet.


    Den Code könnt ihr frei verwenden und ändern!


    Anwendungen


    Bei dem Openstreemapeditor ID ist in Javascript programmiert und benötigt einen Server, den Server kann mit python -m SimpleHTTPServer oder mit meiner GUI gestartet werden.