git push deploy to docker

UntitledBin ziemlich zufrieden, mit dem jetzt erreichten Setup, für das automatisierte Deployment unserer Serveranwendungen. Jeder im Team kann jetzt via Jenkins eine aktuelle Version der Anwendungen deployen.

Dazu haben wir über die letzten Monate die verschiedenen bisherigen Artefakte (war, jar) in Docker Images verpackt, docker-compose Konfigurationen für die verschiedenen Installationsumgebungen erstellt (Test, Produktion, Intern, …) und zuletzt noch git repositories mit Hooks eingerichtet, die bei einem Push das Deployment anstoßen.

Ich denke ich werde dazu in einer der nächsten Podcast Episoden des Donau Tech Radios mehr erzählen und eventuell noch einen Blog Artikel verfassen.

Microsoft Quartalszahlem

Windows Phone kommt nicht aus den Löchern

TypesScript 1.8 Beta

wurde heute hier vorgestellt: http://blogs.msdn.com/b/typescript/archive/2016/01/28/announcing-typescript-1-8-beta.aspx

Für mich genialstes neues Feature: der TypeScript Compiler compiliert jetzt auch JavaScript. Dadurch kann man alle seine JS Files gleich mit in den Build Prozess geben und dann nach und nach in TS konvertieren.

Außerdem spart man sich die Definition Files (.d.ts) wenn der Compiler die JS Files gleich mit analysieren kann.

Ich glaub ich muss die Beta gleich mal in unserem größten JavaScript/TypeScript-Mix-Projekt testen.

Die Legende vom App Killer

Es gibt nicht viele Sachen, über die ich mich schnell, furchtbar aufregen kann. Eine davon ist, wenn technisches Halbwissen als Wahrheit verbreitet wird, und dann zu dummen Angewohnheiten führt.

Man könnte natürlich sagen: dagegen kann man nichts machen, aber mir geht es da wie in diesem xkcd Klassiker:

duty_calls

Im konkreten Fall geht es um die Angewohnheit, mancher iPhone Benutzer (ich bin mir gar nicht sicher ob es iPad Benutzer auch trifft), regelmässig Apps zu beenden/killen.

Sie glauben damit den Batterieverbrauch ihres iPhones zu senken und Speicher zu sparen. Leider wurdediese Idee in den letzten Jahren immer wieder mal in diversen Magazine abgedruckt und als “Tipp” verkauft. Auch heute noch findet man die schrägsten Artikel dazu bei einer Google Suche.

app-switcher

Tatsache ist aber, dass das Killen der Apps auf diesem Wege das Gegenteil von Gut ist, weil:

  • durch das Killen der App wird Speicher freigegeben und die App muss beim nächsten Start wieder neu in den Speicher geladen werden, was mehr Strom braucht als wenn sie bereits im Speicher ist
  • die App”läuft” sowieso nicht im Hintergrund sondern wird beim verlassen über den Home Button in einen Ruhezustand versetzt und darf evtl. noch wichtige Vorgänge zu Ende führen
  • iOS wirft die Apps die bereits am längsten im Ruhezustand sind sowieso aus dem Speicher wenn es den Speicher für andere Apps benötigt die gerade geöffnet wurden

Es bringt also absolut nichts, regelmässig seine die Apps auf seinem iPhone “raus zu swipen”, sondern hat nur negative Nebeneffekte – bitte lasst das!

Youtube P.I.P.

Mit iOS 9 hat Apple das Multitasking auf iPads stark verbessert. Neben der Möglichkeit mehrere Apps nebeneinander am Screen anzuzeigen, finde ich den Picture-in-Picture Modus für Videos am coolsten.

Bei der eingebauten iOS Video App, Amazon Instant Video und Twitch funktioniert das zum Beispiel schon. Wenn man ein Video in diesen Apps laufen hat, kann man einfach auf den Homescreen oder in eine andere App wechseln und das Video in einem kleinen Fenster am iPad weiterlaufen lassen.

Leider haben noch nicht alle Entwickler ihre Apps upgedated, um diese Funktion zu unterstützen. Youtube, Netflix, und TV Thek App können das leider deshalb noch nicht.

IMG_0012

Für Youtube Videos gibt es einen Workaround. Wenn man die URL des Videos in das Eingabefeld auf Youtube P.I.P. kopiert, kann man das danach geladene HTML5 Video auch parallel weiterlaufen lassen, während man wieder produktiv wird ;)

Java ist in den letzten Monaten wieder viel populärer geworden

Laut aktuellem TIOPE Index hat Java den Vorsprung auf die am zweitmeisten verbreitete Programmiersprache C wieder stark vergrössert (um fast 6%). Das wundert mich – was hat dazu beigetragen dass Java gerade in den letzten Monaten wieder so populär geworden ist?

Screen Shot 2016-01-18 at 16.51.32

Zuerst habe ich gedacht da zählt auch Groovy und Scala mit rein, aber die werden extra gelistet.

Gut zu sehen auch, dass sich Swift verdient von Platz 25 auf 14 vorgeschoben hat. Am meisten hat Groovy dazu gewonnen – von Platz 82 vor auf 17.

JavaScript und Swift wird für heuer sogar ein Top Ten Platz vorhergesagt – kann ich mir auch gut vorstellen ;)

LTE Ausbau Weichstetten

Nachdem ich jetzt seit beinahe einem Jahr einen vernünftigen Internetanschluss zuhause in Weichstetten habe (ich habe berichtet), gibt es noch eine Sache die mich im digitalen Leben hier gestört hat: die Netzabdeckung meines Mobilfunkanbieters A1.

Wie man auf nachfolgender Karte erkennen kann ist im gesamten Ort nur maximal EDGE Geschwindigkeit bei der Datenverbindung möglich.

Screen Shot 2016-01-16 at 22.24.06

Auch bei Sprachtelefonie muss man aufpassen, dass man im richtigen Zimmer ist um genügend Empfang zu haben und den Gesprächsteilnehmer verstehen zu können.

Nun habe ich schon öfter versucht herauszufinden, ob sich da etwas ändern wird und ob man dazu etwas beitragen kann. Diese Woche habe ich dann erfahren, dass es so aussieht, als ob Mitte des Jahres 2016 der Sender, der uns hier in Weichstetten abdeckt, auf LTE umgerüstet werden soll.

IMG_0393

Was für super Nachrichten! Ich hoffe, dass das nicht nur die Geschwindigkeit der Datenverbindung, sondern auch die grundsätzliche Empfangsqualität verbessert.

Dabei bin ich auch darauf aufmerksam geworden, dass A1 seit November Voice over LTE (VoLTE) anbietet. Bei VoLTE wird das Gespräch mit einem viel besseren Audio Protokoll über die LTE Datenverbindung übertragen, als bei GSM genutzt wird. Wenn beiden Gesprächspartner das nutzen, sollte man das deutlich an der Sprachqualität merken.

Allerdings bin ich mir nicht sicher, ob mein Tarif dieses Feature enthält und ob die Konfiguration für mein iPhone 6s verfügbar ist.

Why I hate your Single Page App

6e1b5ab3ef1593413f1bee4e5a6e6ae7Vor ein paar Tagen hat Stefan Tilkov einen interessanten Artikel mit dem Titel “Why I hate your Single Page App” geschrieben. Sein Hauptkritikpunkt an Single Page Apps ist, dass sie die klassischen Funktionen des Webs oft nicht unterstützen: z.B. Browser History, Refresh und eindeutige Links auf Resourcen in der Webapp.

Meiner Erfahrung nach muss man aber auch schon länger in Webanwendungen, die AJAX nutzen oder viel mit jQuery oder dergleichen machen, darauf achten, dass diese Browserfunktionen unterstützt werden. Genau wie bei Single Page Apps, muss auch dort etwas mehr Aufwand reingesteckt werden, um zum Beispiel bei client-side Pagination eines Datagrids dem User zu erlauben, mit dem Back-Button wieder auf die vorige Seite zu kommen.

Der Artikel kommt auf jeden Fall für mich zeitlich gerade ganz passend, weil ich heuer vor habe mich mehr mit Angular und Konsorten auseinanderzusetzen. Außerdem wird Stefan Tilkov auch demnächst in Linz sein und die Opening Keynote “One size does not fit all: Carving up stuff for fun and profit” der Topconf halten.

keep ssh-agent for sudo

I am working a lot via ssh on different Linux servers. For authentication on those I always use a ssh key. I am also tunneling my ssh key for git to those servers because I often need to work with git repositories there (containing configuration files for example).

Of course I need those ssh keys also when I am working with sudo and last week I had to make this work on a new server again. The trick is to configure the following line in the /etc/sudoers file:

Defaults env_keep+=SSH_AUTH_SOCK

This keeps the environment of SSH_AUTH_SOCK around while in the sudo context and sudo git will work with my credentials.