Opera als mein Standardbrowser

Vor ein paar Tagen habe ich zu Opera als Standardbrowser gewechselt, als Teil meines anhaltenden Versuchs, Google aus meinem täglichen Gebrauch so weit wie möglich zu verbannen.

Kleine Randnotiz, das hier ist gestern passiert:

Zurück zum Browser. Hier erstmal die Links zu den Extensions, die ich installiert habe:

Tampermonkey ist eigentlich nur installiert, weil ich hin und wieder selbst ein paar Userscripts schreibe, um mir störrische Webapps hinzubiegen. Theoretisch könnte ich auch ohne auskommen, vor allem, weil im Moment eh nur 2 meiner Skripte für die Arbeit laufen.

Völlig unentbehrlich dagegen sind uBlock Origin und uMatrix. Während das erste ein völlig unkomplizierter Adblocker auch für Einsteiger ist, sollte uMatrix nur von erfahrenen Nutzern installiert werden, die wissen, was ein XHR ist und wieso man manchmal externe Frames auf einer Seite zulassen möchte.

HTTPS Everywhere hatte ich anfänglich auch installiert, allerdings kann uMatrix das gleiche. Dazu einfach in den Optionen von uMatrix auf den Tab Privatsphäre wechseln und die Option Nur HTTPS: verbiete gemischte Inhalte. aktivieren.

uMatrix setup to replace HTTPS Everywhere

Eins der Hauptfeatures eines Browser (neben Extensions und Verfügbarkeit auf Linux, Android und Windows) ist für mich die Möglichkeit, meine Einstellungen, den Verlauf, die geöffneten Tabs zu synchronisieren. Da Opera auf Chrome basiert, gibt es diesen Mechanismus – allerdings ist ein Account bei Opera notwendig. Bis habe ich nur bei Firefox einen selbst-gehosteten Sync-Service gefunden – allerdings war die Dokumentation damals grottig. Und auch Firefox hat mich nicht so recht überzeugt, vielleicht sollte ich mal wieder einen Blick auf den Browser werfen.

Mein erstes Fazit zu Opera: Guter Browser, auch auf Android. Macht was er soll, ist schnell und die Bedienung ist für einen Chrome-Nutzer keine Überraschung.

Using haproxy to load balance tomcat instances with Docker

Today I wanted to set up my local environment with a load balancer for
my tomcats. To get started, I took a look at the
dockercloud-haproxy image and the provided example configuration
for docker-compose:

version: '2'
services:
  web:
    image: dockercloud/hello-world
  lb:
    image: dockercloud/haproxy
    links:
      - web
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    ports:
      - 80:80

You can run this example right away and open http://localhost to see the
load balance hello-world page. To scale the web service, use
docker-compose scale web=2 and reload the page a couple of times. You
should see the hostname changing with each request, as haproxy is
using a roundrobin load-balancing strategy by default in this image.

To make this a bit more specific to my use case, I decided to replace
the hello-world image with the official tomcat image. Because I
like small images, I also decided to use tomcat:alpine.

version: '2'
services:
  web:
    image: tomcat:alpine
    volumes:
      - ./index.jsp:/usr/local/tomcat/webapps/ROOT/index.jsp:ro
  lb:
    image: dockercloud/haproxy
    links:
      - web
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    ports:
      - 80:80

I added a volume and a custom JSP to make this example a bit more my
own:

<html>
<body>
This is host <strong><%= java.net.InetAddress.getLocalHost().getHostName() %></strong>.
</body>
</html>

If you run this example with docker-compose up -d && docker-compose
scale web=2
you can again reload http://localhost a couple of times and
you should see a message like This is host 76ce0ef9f152..
Congratulations, you now have (very simple) load balanced tomcat setup.

Next steps would be to replace the simple tomcat setup with a real
cluster
to get session replication.