LivePhotos – KickOff

Ich dachte mir, ich teste LivePhotosKit mal. Hier ein LivePhoto vom KickOff.

🐍 + iOS = 💕 – Pythonista is awesome

Die Programmiersprache, in der ich am liebsten Arbeite ist Python. Eigentlich hatte ich mal angefangen Ruby zu lernen, aber dieses Unterfangen habe ich wegen zwei Programmen gekippt. Das eine ist Sublime Text 31. Das zweite ist Pythonista.

Pythonista

Pythonista ist eine IDE fĂŒr Python auf iOS. Das heißt grundsĂ€tzlich erstmal, dass sich in Pythonista Python Scripts schreiben, aber auch ausfĂŒhren lassen. Aber wie es sich fĂŒr eine gute IDE gehört, hört es dabei nicht auf. Ole Moritz hat viele wirklich großartige Features eingebaut, die Python auf iOS richtig einfach machen.

Python 2, 3 und Module

Seit der Version 3.0 kommt Pythonista mit der Möglichkeit Scripts einfach und gezielt mit Python3 oder mit Python (2) zu entwickeln. Mein Default Interpreter ist Python 3.5, aber sollte ich mal Python 2 brauchen, lĂ€sst sich ĂŒber einen long press auf das Play-Symbol einfach Python 2 als Interpreter auswĂ€hlen.

Zu sehen ist das Run-Menu von Pythonista
]4 Das Run-Menu von Pythonista mit Zugriff auf Unittests und andere Interpreter

Pythonista kommt dabei mit der Python Standard Library, eigenen Modulen fĂŒr die Entwicklung auf iOS und folgenden Third Party Modulen:

  • bs4 — BeautifulSoup 4
  • Bottle: Python Web Framework
  • Dropbox for Python
  • evernote
  • faker
  • feedparser — Universal Feed Parser
  • Markdown
  • markdown2 — A fast and complete implementation of Markdown in Python
  • paramiko
  • Python Imaging Library
  • qrcode — Pure python QR Code generator
  • Requests – HTTP for Humans
  • xmltodict

Die Pythonista-eigenen Module sind es aber, die Pythonista so wirklich nĂŒtzlich machen, weil sie die Kommunikation mit iOS ermöglichen. Ich will im Folgenden ein paar beleuchten.

ui

FĂŒr eine wirklich gute Bedienung der eigenen Programm braucht es auf iOS ein besseres User Interface als das CLI. DafĂŒr wird das ui Modul mitgeliefert, welches es sehr einfach ermöglicht graphische User Interfaces zu bauen, die sich so verhalten, wie ich es von iOS GUIs erwarte. Um den Einstieg zu erleichtern gibt es außerdem einen graphischen Editor in dem, Ă€hnlich zu Interface Builder, sich Interfaces zusammen schieben lassen – nur halt per Touch. Über das ui Modul lĂ€sst sich dann die ui.View in das Script laden und mit der Programmlogik verknĂŒpfen.

Damit schafft Pythonista, was ich mir fĂŒr macOS wĂŒnschen wĂŒrde. Native GUI mit Python.

appex

Mit der 3.0 kam außerdem die Pythonista Extension fĂŒr das iOS Share Sheet und das Modul appex (App Extension) dazu. Damit wird es endlich möglich Daten von einer App in Richtung Pythonista weiter zu geben ohne den Umweg ĂŒber das Clipboard, mit all seinen Limitierungen, zu gehen. Das Modul bringt Methoden fĂŒr die ĂŒblichsten Daten mit: Photos, Text, URLs, File Paths, VCards und selbstverstĂ€ndlich die “rohen” Daten.

speech

FĂŒr dieses Modul ist die Online-Dokumentation leider nicht ganz aktuell. Denn auf iOS 10 ist speech nicht mehr nur text-to-speech, sondern auch speech-to-text.

The speech module provides speech synthesis and recogntion functionality on iOS.

Und hier ist es fĂŒr mich echt spannend geworden. Bisher benutze ich die App Just Press Record, mit der per Apple Watch App schnell kurze Audioaufnahmen gemacht werden können. Die App kann direkt den gesprochenen Text transkribieren. Aber leider schmeißt sie den Text nicht einfach in eine separate Text-Datei. Über das Share Share Sheet lĂ€sst sich die Aufnahme oder das Transkript wiederum mit Pythonista teilen. Nun lĂ€sst sich die Spracherkennung in Pythonista machen und/oder der erkannte Text von Pythonista weiterverarbeiten. Text in Datei Speichern, neue Aufgabe im Projekt-Management-Tool mit REST-full API anlegen, Text automatisch Twittern und vieles mehr, kein Problem.

All the checks

Style Police is coming

Hinter dem SchraubenschlĂŒssel Symbol versteckt sich der “Style Check”. Damit wird der eigene Code darauf geprĂŒft ob er dem PEP8 Style Guide entspricht. In den Einstellungen lassen sich teile des Guides deaktivieren.

Besonders gut ist der Style Check fĂŒr mich um leere Zeilen mit Leerzeichen zu entdecken, die fĂŒr das EinrĂŒcken automatisch eingefĂŒgt werden.

Flaky

Im gleichen Menu lÀsst sich auch der Code mit pyflakes auf Syntaxfehler etc. kontrollieren, ohne das Programm laufen zu lassen.

Zu sehen ist das Tool-Menu von Pythonista
]11 Das Tool-Menu mit dem Style-Checker und Analyser

Tests

Mit dem long press auf das “Play” Symbol lassen sich nicht nur Python2 und 3 als Interpreter auswĂ€hlen, sondern auch Tests anstoßen.

Ja, vollkommen richtig: Pythonista kommt mit Unittest-Support. Ihr könnt also test-driven entwickeln. TatsĂ€chlich ist es dabei sogar möglich in Tests zu ĂŒberprĂŒfen, ob die Views on screen sind, welche Subviews sie haben etc. Ziemlich cool wie ich finde.

But there’s more

Today View Widget

Neben den App Extensions bringt Pythonista 3 ab iOS 10 ein Widget fĂŒr die Today View im iOS Notification Center mit. Damit werden kleine Helfer sehr schnell und einfach zugĂ€nglich.

Zu sehen ist ein Pythonista Widget in der Today View
]13 Eines der Pythonista Beispielwidgets, was den aktuellen Inhalt der Zwischenablage anzeigt.

Editorial

Eine zweite App von Ole Moritz ist Editorial, ein mit Python erweiterbarer Text-Editor. Ich selbst benutze die Erweiterungen nicht wirklich, aber damit tun sich viele coole Möglichkeiten auf.

Kommandozeile in der Konsole

Pythonista bringt zwar eine interaktive Konsole mit, aber eine richtige Kommandozeile ist das leider nicht. So ist es, sicherlich den Regeln der Plattform geschuldet, nicht wirklich einfach z.B. third party Module mit git nach zu installieren etc.. DafĂŒr gibt es aber Lösungen wie z.B. stash. Damit bekommt die Konsolen View eine neue Subview in der eine mehr oder weniger vollstĂ€ndige Shell lĂ€uft. Mit all den Vorteilen die so eine Shell mit sich bringt.

Zu sehen ist das Interface von Pythonista in dem die StaSH Shell angezeigt wird
]15 Ein Blick auf die StaSH Shell in Pythonista

Fazit

Pythonista 3 ist momentan fĂŒr 10,99 € im AppStore zu haben. FĂŒr Leute mit iOS GerĂ€ten, die Python (auch auf AnfĂ€ngerInnenniveau) können und außerdem Lust und Ideen haben auf iOS zu programmieren ist Pythonista eine großartige Wahl. Eine vollstĂ€ndig native App wird weiterhin Vorteile gegenĂŒber “Pythonista-Apps” haben, aber Pythonista bietet einen leichten Zugang zum Programmieren und zeigt was Xcode fĂŒr iOS mindestens können mĂŒsste (sollte es je fĂŒr iOS kommen).

Da in den letzten Wochen mal wieder die Debatte aufkam, was Regeln von sozialen Netzwerken wie FaceTube und Twitter fĂŒr (queer-)feministische Inhalte bedeuten, hier ein kleiner Blick in die selbe Debatte 2009.

Gender Trouble in Web 2.0: Gender Relations in Social Network Sites, Wikis and Weblogs

Abstract:

This paper explores gender relations on social network sites, wikis and weblogs: the gendered design and use, presentations of gendered identities, possibilities for feminist, queer and gender politics, and the negotiations of gender topics in web 2.0. It provides a review of early feminist discourses regarding the internet and some theoretical considerations on web 2.0 and feminism. It goes on to discuss initial empirical results obtained from other studies about gender relevance in web 2.0 as well as my own findings based on considerations of online documentation and press reports about two gender relevant incidents in web 2.0. This overview shows that while an insistence on binary gender roles can be observed in the design and use of social network sites, weblogs offer space for diverse identity constructions as well as for queer subject construction and politics without referring to offline identities. Finally, wikis as well as social network sites appear to provide a platform for tough struggles about gender issues