Als ich versuchte ein bash Script welches sich selbst aktualisiert sobald eine neuere Version verfügbar ist und sich selbst noch einmal mit der neuen Version aufruft mit den initialen Scripaufrufparametern bekam ich Probleme. Beim erneuten Aufruf wurden die Parameter nicht mehr genau so übergeben wie sie initial eingegeben wurden. Besonders Leerzeichen in Stringparametern bereiteten Probleme. Der Scripupdate soll ja für den Aufrufen unbemerkt stattfinden und der Aufrufer immer die aktuellste Version benutzen.

Wenn man git zur Codeverwaltung benutzt lernt man immer wieder neue Befehle kennen, die einem bei der Codeveraltung helfen. Anbei meine stetig wachsende Sammlung von Befehlen die ich oft - aber auch weniger häufig benutze um meinen Code zu verwalten. Speziell die weniger häufig benutzten muss man immer wieder mal nachsehen.

Bislang habe ich meinen Code in einem lokalen Git auf meinem Desktop verwaltet. Da ich auch remote von einem lokalen Labtop oder per VPN verbundenen remoten Labtop auf den Code zugreifen möchte musste das lokale Git Repository umgestellt werden. Bei mir läuft eine kleine Raspberry als LAN Server und der ist dafür ideal.

Es finden sich diverse Beiträge zu dem Thema im Netz aber es dauerte etwas bis ich die optimale Lösung gefunden habe. Es ist nicht schwer wenn man weiss wie.

Es ist ganz hilfreich wenn man mit einer Raspberry bestimmte Schaltvorgänge zeit- und sonnenauf- sowie -untergangsgesteuert vornehmen kann. Deshalb habe ich mich mal ein wenig umgesehen wie man sowas leicht rausbekommen kann. Dabei habe ich APIs im Internet gefunden, die bei der Ermittlung von beiden Informationen helfen und dann ein kleines Python Script bedingt durch die API-Nutzung innerhalb kürzester Zeit geschrieben. gneadr hat noch eine andere interessante Variante herausgefunden die ich noch etwas modifiziert habe. Allerdings wird dort der Ort der Stelle, an der die IP Adresse vom Internetprovider verteilt wird, als Basis genommen, und das kann z.T. sehr weit von der eigentlichen geographischen Position entfernt sein (bei mir z.B. 30 km).

 

Eben bin ich über einen sehr schönen und ausführlichen Beitrag (all about redirections) gestolpert, in dem die bash Redirections erklärt werden. Nach dem Lesen des Artikels hat man sie verstanden. Ist allerdings in Englisch. Dieser Artikel ist einer von fünfen in der Reihe 'bash one-liners' - Working with files, working with strings, working with history und navigating around, die ebenso sehr hilfreich sind.

Python allows to bundle a lot of Python files with py2exe in one executable for Windows. That way a simple call of this exe allows to start the Python program. No installation is required. I don't like windows and use Linux instead. That's why I had to search for a similar solution on Linux. I just want to have all my Python code bundled in one shell script and to be able to distribute one bash file only instead of the whole set of python files.
 
I just faced an issue I thought should be easy to solve. I wanted to know which Linux distribution a bash script runs on. There exists a proposal of the FSB (Free Standards Group) to implement lsb_release which delivers all the info.Unfortunately it's not implemented by all Linux distributions so I installed various distributions on VMWare to get a clue how to write code to extract the Linux distribution. Finally I wrote a bash script and python script to extract the Linux distribution.
Da ich gerade dabei bin mich mit Python vertraut zu machen. Anbei Links die mir dabei geholfen haben bzw noch helfen Python effektiv einzusetzen.
 
Wer ist nicht schon bei der Umrechung von Fahrenheit, Reaumur und Celsius verzweifelt. Letzten Winter war es sehr kalt und im nciht mehr existenten Minthouse Forum gab es Diskussionen bzgl der Umrechnungen. Deshalb habe ich ein kleines Groovy Programm geschrieben welches typische Groovyfunktionalitäten wie z.B. closures benutzt, um diese Umrechnungen vorzunehmen. Das Schöne an Groovy ist, das diese Programme automatisch unter der Decke den java Compiler aufrufen. Damit entfällt der typische Compile an Run Schritt bei Java und ermöglich schnellere Entwicklung und Test von Groovy Programmen. Einfach das Groovy Programm ändern und einfach wieder aufrufen. So wie man es von Python kennt. Vor dem Aufruf muss man allerdings erste Groovy installiert haben. Unter Linux geht das z.B. mit apt-get install groovy
Python bietet standardmäßig py2exe an um eine Menge von Python Scripts in einem Windows Executable zusammenzupacken. Danach muss nur dieses exe unter WIndows aufgerufen werden und das Pythonprogramm läuft los. Es ist dazu keine Installation des Programmes notwendig. Da ich kein Windows sondern Linux habe suchte ich nach einer Lösung die mir ein bash Script aus mehreren Python Files erzeugt so dass ich nur eine Datei verteilen muss anstatt den ganzen Satz meiner Python Module.
 
Wie lernt man eine Progammiersprache? Indem man sich in die Syntax und Semantik einliest und parallel dazu auch gleich kleine Beispiele in dieser neuen Programmiersprache schreibt. Anbei ist ein kleines Javascript Programm welches ich in diesem Zuge geschrieben habe und welches Text einliest und die Buchstaben der Worte nach gewissen Regeln durcheinanderwürfelt. Erstaunlicherweise kann man dann immer noch die Texte lesen. Dieselbe Logik habe ich schon hier mit Python und CGI implementiert.Dort finden sich auch weitere Hintergrundinformationen zu dem verwendeten Algorithmus. Es ist zweisprachig auf Deutsch und Englisch ausgelegt. Anhängig von der Browsersprache wird alles in Deutsch oder ansonsten in Englisch angezeigt.