Springe zum Hauptinhalt

Wer Nexus OSS nutzt, um seine fertigen Binärartefakte abzulegen, möchte dies natürlich auch für seine APKs machen. Da ich momentan beruflich an einer Android-App arbeite, habe ich nun meine Erfahrungen damit sammeln dürfen. Und damit ich beim nächsten Mal nicht wieder über dieselben Fallstricke stolpere, werde ich es hier Schritt für Schritt erläutern.

Meine bisherigen Erfahrungen mit Gradle sind (glücklicherweise) kaum der Rede wert, sodass zuerst eine ausführliche Google-Recherche auf dem Programm stand. Diese führte mich auch alsbald zum Maven-Plugin für Gradle und der folgenden Konfiguration für uploadArchives:

apply plugin: 'maven'

uploadArchives {
  repositories {
    mavenDeployer {
      repository(url: "file://localhost/tmp/myRepo/")
    }
  }
}

Ein entsprechender Aufruf mit gradlew clean assemble uploadArchives lief zwar erfolgreich durch, aber es wurden keinerlei Artefakte abgelegt. So wurde ich dann auf den Gradle-Userguide Publishing artifacts aufmerksam und mir wurde klar, dass die APKs deklariert werden müssen, damit uploadArchives auch weiß, was hochgeladen werden soll.

Weiterlesen…

So abgedroschen solche Redensarten zwar sind, finde ich erstaunlich, wie gut sie immer wieder auf bestimmte Situationen passen. Aktuell geht es mir um mein Problem, mich für eine "Freizeitbeschäftigung" zu entscheiden. Irgendwie habe ich so viele Dinge angefangen oder in meiner Pipeline, dass es häufig vorkommt, dass ich vor lauter Unwille mich zu entscheiden, dann doch einfach auf dem Sofa liege und mich passiv von der Content-Industrie berieseln lasse.

Aktuell stehen die folgenden Dinge auf meiner ToDo-Liste (ohne bestimmte Reihenfolge):

  • Diesen Blog um weitere hoffentlich interessante Einträge erweitern.
  • Den Rezeptemanager weiter schreiben. Aktuell hänge ich daran, die Authentifizierung/ Authentisierung zu integrieren. Genauer möchte ich JWTs mit Spring Security verheiraten, was bislang leider immer misslang.
  • Hugo als Alternative zu Nikola zu evaluieren.
  • Mich intensiver mit aktuellem SQL beschäftigen, denn der Spruch "Still using Windows 3.1? So why stick to SQL-92" hat schon seine Daseinsberechtigung.
  • Mich intesiver mit Haskell beschäftigen, denn die Konzepte faszinieren mich immer wieder.
  • Mich endlich mal genauer mit rust befassen, weil ich auch von diesen Konzepten fasziniert bin, vor allem vom Borrowing.
  • Mich mal mit Elixir beschäftigen. Die Erlang VM ist einfach der Wahnsinn, was Robustheit und Concurrency angeht und durch Elixir gibt es auch eine zeitgemäße Syntax für die Erlang VM.
  • Die kleine Matheakademie endlich um die von meiner Frau heiß ersehnten Erfolge erweitern.
  • Mich weiter mit der Fotografie und Darktable beschäftigen.
  • Meine Planungen für ein TowerDefense-Spiel in die Realität umsetzen.
  • Mich endlich wieder mehr mit dem Hacking Lab oder IT-Security im Allgemeinen beschäftigen.
  • Mit meiner Frau die Planungen unserer Fantasywelt weitertreiben.

Asciidoctor PDF

Eine befreundete Firma hat mittlerweile gemerkt, dass sie auch dem hier beschriebenen Problem aufgesessen ist. Schließlich kann ja jedes Kind Word bedienen, oder? So gern ich in diesen Momenten am liebsten Sätze wie "Ich hab's dir ja gesagt." von mir geben würde, biete ich in solchen Situationen auch gern meine Hilfe an. Aus diesem Grund wird nun testweise eins der Dokumente, die regelmäßig aktualisiert und versioniert Dritten zur Verfügung gestellt werden, auf AsciiDoc umgestellt. Im selben Zug soll auch gleichzeitig noch git zur Änderungsverfolgung und Versionierung eingeführt werden, aber das ist eine andere Herausforderung, über die ich vielleicht ein andermal schreiben werde.

Weiterlesen…

Ein anderer Denkansatz

Leider ist schon wieder einige Zeit seit dem letzten Post vergangen. Im letzten Post habe ich etwas über die Historie von funktionaler und imperativer Programmierung geschrieben. Dieser hier soll sich nun mit dem, im Vergleich zur imperativen Programmierung, anderen Denkansatz beschäftigen. Die hier gezeigten Quellcode-Beispiele beruhen dabei auf Java für die imperativen Beispiele bzw. auf Haskell für die funktionalen Beispiele. Ich werde bei den gezeigten Beispielen versuchen nur im Sprachstandard vorhandene Funktionen nutzen und nicht auf Bibliotheksfunktionen zurückgreifen.

Bei der imperativen Programmierung beschreibt man detailliert die Schritte, die vom Computer ausgeführt werden müssen, um die Aufgabe zu erfüllen. Im Gegensatz dazu wird bei der funktionalen Programmierung nicht beschrieben WIE etwas berechnet werden soll, sondern WAS. Nicht umsonst gehören funktionale Programmiersprachen zu den deklarativen Programmiersprachen.

Durch die Funktionen wird, genauso wie in der Mathematik, die "Welt" im Ist-Zustand dargestellt bzw. definiert. Generell ist die funktionale Programmierung mit ihren Begrifflichkeiten und Konzepten sehr stark an der Mathematik angelehnt. Das macht es nicht matheaffinen Menschen nicht gerade leicht, birgt aber den großen Vorteil, dass man, wenn man es geschafft hat die Konzepte zu verstehen, sich auf den mathematischen Hintergrund dieser Konzepte verlassen kann. Dadurch kann dann die Richtigkeit eines Programms mit "relativ" wenig Aufwand bewiesen werden, zumindest im Vergleich zu imperativen Programmen.

Weiterlesen…

Funktionale Programmierung ist in aller Munde und überall werden Konzepte aus der funktionalen Programmierung in imperative Sprachen übernommen. Auch ich bin momentan dabei, mir besagte Konzepte genauer anzusehen und möchte meine gewonnenen Erkenntnisse hier in Form einer Artikelserie veröffentlichen. Den Auftakt soll aber erst mal ein kleiner geschichtlicher Rückblick machen.

Ich muss zugeben, dass ich die Geschichte immer faszinierender finde, je mehr ich darüber recherchiert habe.

Weiterlesen…

Diesen Beitrag möchte ich meiner kleinen Schwester und all den Anderen widmen, die der Meinung sind, Hausarbeiten, Abschlussarbeiten etc. mit Word verfassen zu müssen und dabei nicht in der Lage sind, Seitenzahlen, Inhaltsverzeichnisse oder andere Notwendigkeiten zu integrieren. Im Endeffekt geht es bei solchen Arbeiten doch eigentlich nur darum, ein PDF mit dem gewünschten Inhalt zu erstellen, um es entweder digital einzureichen oder auszudrucken.

Was ist gegen WYSIWYG-Textverarbeitungsprogramme einzuwenden?

  1. Sie bieten zu viele Möglichkeiten, sie falsch zu bedienen. Es fängt schon damit an, dass man einen Absatz unabhängig seiner Formatvorlage formatieren kann, so dass, wenn man nicht aufpasst, Wildwuchs entsteht. So habe ich schon Dokumente sehen dürfen, bei denen sich der Verfasser gewundert hat, dass die Generierung des Inhaltsverzeichnisses nicht funktionierte. Die Ursache war schnell gefunden, wenn man sich die Gliederung des Dokuments angesehen hat, denn es existierten für das Programm keine Überschriften. Für das menschliche Auge waren die Überschriften vorhanden, aber alle angeblichen Überschriften hatten die Formatvorlage Absatz.
  2. Die Versionierung bzw. Änderungsnachverfolgung ist kompliziert und viele haben davon noch nie gehört. Noch dazu ist es umständlich, mit mehreren Personen ein einzelnes Dokument zu bearbeiten, da die verschiedenen Versionen eines Dokuments erstmal wieder zu einem Dokument zusammengeführt werden müssen.

Was gibt es für Alternativen?

Weiterlesen…

The Phoenix Project

Ich hätte nie gedacht, dass ich wirklich mal ein Buch lese, welches zugleich Fachbuch und Roman ist, das mich wirklich so begeistert, dass ich eine Rezension darüber schreiben möchte. Aber diese kaum vorstellbare Situation ist nun eingetreten. Vorab möchte ich feststellen, dass mir für diesen Beitrag keine Vorteile versprochen wurden und ich das Buch ganz regulär im Handel erworben habe. Es handelt sich dabei um das Buch The Phoenix Project - A Novel About IT, DevOps, and Helping Your Business Win von Gene Kim, Kevin Behr und George Spafford.

The Phoenix Project erzählt auf unnachahmliche Weise die Geschichte von Bill Palmer, einem Abteilungsleiter für den Midrange-Rechner-Bereich des Autoteileherstellers Parts Unlimited. Die Marktsituation von Parts Unlimited ist sehr angespannt, die Konkurrenz ist immer einen Schritt voraus. Bills Überlebenstaktik war immer, unter dem Radar zu fliegen und nicht aufzufallen. So kommt der Tag, an dem Bill, als er spät dran ist, auf dem Weg zur Arbeit von der Personalchefin in ihr Büro zitiert wird. Dort angekommen erfährt er, dass sein Chef und dessen Chef, der CIO, nicht mehr in der Firma weilen und er nun nun der Leiter des IT-Betriebs werden soll und diese Wahl vom CEO persönlich getroffen wurde. Bill nimmt sich fest vor die Beförderung abzulehnen, aber irgendwie schafft es der charismatische CEO Steve Masters ihn im Gespräch so zu überfahren, dass es ihm nicht gelingt, die Beförderung abzulehnen.

Weiterlesen…

Auf ein Neues

Endlich wieder online, nach fast 9 Monaten. Nun auch hoffentlich mit etwas mehr Durchhaltevermögen meinerseits.

Wie sich unschwer erkennen lässt, hat sich das Design auch leicht verändert. Aber nicht nur vor den Kulissen hat sich einiges getan, sondern auch hinter den Kulissen. Von Jekyll bin ich auf Nikola gewechselt. Die Pythonwelt ist mir dann doch etwas geläufiger als das Ruby Universum. Am Konzept der verwendeten Software hat sich nicht viel getan. Nikola erzeugt ebenfalls statische HTML-Seiten, welche ich offline in Markdown schreiben kann. Alles ist in einfachen Textdateien geschrieben und lässt sich wunderbar mit git verwalten. Durch das statische HTML wird auch auf dem Server keinerlei Code ausgeführt und somit ist die Sicherheit für den Server auch um einiges höher als es bei dynamischen Inhalten sein kann.

Also einfach mal regelmäßig hier vorbeischauen und hoffen, dass ich Zeit und Lust hatte, einen neuen Beitrag zu verfassen.