Quantcast
Channel: .net – mynethome.de
Viewing all 72 articles
Browse latest View live

Von Autofriedhöfen und Zukunftstechnologien

0
0

Ich finde es spannend, den sich gerade vollziehenden Wandel in Sachen Transport und Fortbewegung mitzuverfolgen, der nicht nur durch rapide Umwälzungen im Kontext von Automatisierung und moderner Sensortechnik (für autonomes Fahren), sondern auch durch bisweilen grotesk anmutende Verhaltensweisen der kroßen und kleinen Aktuere auf dieser Bühne geprägt wird. Der Existenzkampf um den Verbrennungmotor ist da nur ein Beispiel. Der Dieselskandel hat das Thema vielleicht mehr ins Zentrum der Aufmerksamkeit gerückt, ist aber auch eher ein Nebenschauplatz. Dennoch gab es aus dem Kontext in den vergangenen Tagen ein paar bemerkenswerte Schlagzeilen, die ich gerne in Kombination festhalten möchte:

1. VW-Friedhöfe
Dieser Tage bin ich auf ein beeindruckendes Video von BBC gestoßen:

Die volle Meldung dazu, inkl. längerem Video, findet sich bei Reuters:
Reuters: VW storing around 300,000 diesels at 37 facilities around U.S.

2. Der Umsatzrekord

Diese Bilder stehen für mich in krassem Kontrast zu den gemeldeten Umsatzrekord von VW – wird vermutlich daran liegen das sie diese „Aufarbeitung des Dieselskandels“ nicht unmittelbar und vollständig in der aktuellen Bilanz niederschlägt. Ist ja auch mehr ein Prozess als ein Einmaleffekt ;-)

3. Die rettende Erfindung von Bosch

Doch es gibt Hoffnung für die vielen Autos – denn Bosch scheint ein Heilmittel gefunden zu haben, wie heise berichtet: Licht am Diesel-Horizont: Bosch senkt Abgaswerte dramatisch unter 1/10 des geforderten Wertes.

und nu?

Es bleibt Spannend, ob die Bosch-Technologie tatsächlich noch für höhere Wellen sorgen wird oder VW es gelingt damit den Kopf aus der Schlinge zu ziehen und vielleicht wieder Richtung Technologie- und damit Markführerschaft zu drängen – oder ist die E-Welle doch schon so groß, das man Diskussionen um Verbrennungsantriebe nurnoch Unterhaltungswert oder ein Nieschendasein zurechnen sollte? – Nachrichten u.a. aus China als riesigem Absatzmarkt lassen es vermuten und die Technologieforschritte scheinen Skeptikern („die Reichweite wie niw ausreichen!“) immer weiter den Wind aus den Segeln zu nehmen.


Micronaut.io: Size Limit for FileUploads

0
0

Recently, I’ve been tinkering with Micronaut.io a new application framework which looks quite promising so far.
A good introduction is provided in the documentation, by the examples on GitHub and some nice articles on the web like „Getting Started with Micronaut“ by Jonas Havers.

I had to dig a little bit to find out some things when implementing a file upload. So here are some notes about it, maybe it help ssomeone else ;)

The basic documentation on file uploads provided by the main doc is a good starting point.

Then one might stuble quickly on a fairly well known exception like:

{"_links":{"self":{"href":"/upload","templated":false}},"message":"The received length [1049482] exceeds the maximum content length [1048576]"}

Not straight-forward to find is that the section „body annotations“ provides an answer on what the config setting to adjust this is. Also, it hints for the annotation @Size to provide a value per endpoint which is useful to set different limits in differnt contexts.

For an example how the config is done via an application.yml file can be found in the serverConfiguration paragraph of the documentation.

An important thing to note is when dealing with form based file uploads, you might use enctype="multipart/form-data" and thus need another attribute to set the upload limit. That would be micronaut.server.multipart.maxFileSize. Thus, I ended up with with the config:

micronaut:
    application:
        name: sample-application
    server:
        maxRequestSize: 100MB
        multipart:
          maxFileSize: 100MB

Also, a a final note for this post, let me remind you that as Micronaut is fairly young, it helps to keep an eye on the FAQ and Problems section. I had the problem regarding the startup time, for example, for which the solution is provided there. So easy to solve if you know what to do ;-)

RegExp in Aktion: Suffix als Filterkriterium

0
0

Immer mal wieder bin ich froh, das es RegularExpressions gibt. Sie helfen sehr dabei, schnell Änderungen in umfangreichen, strukturierten Texten (z.B. Quellcode ;-) ) vorzunehmen.

Ab und zu passiert es mir, das ich mir einen regulären Ausdruck erarbeite und 2 Wochen später einen ähnlichen Fall habe, den RegExp aber nicht dokumentiert habe – und mir nochmal erarbeite. Das hilft zwar, das Schreiben regulärer Ausdrückezu üben, ist aber nicht unbedingt effizient ;-)

Daher fange ich mal an den Ausdruck, der mir heute geholfen hat festzuhalten:

Es geht darum, alle vorkommen von „document“ mit „documents“ zu ersetzen. Natürlich sollen dabei die Vorkommen, bei denen das „s“ bereits angehängt ist, nicht ersetzt werden um nicht mit einem „documentss“ zu enden. Zum Testen als die Varianten:

document
documentReader
documentsFolla
Document

Des Rätsels Lösung ist der Ausdruck

(document)(?!s)

Den man z.B. im Sublime Editor oder in IntelliJ IDEA problemlos verwenden kann, wie im Screenshot zu sehen.

Bei dem ?! handelt es sich um ein sogenanntes „negative lookahead“, mehr dazu unter regular-expressions.info

Have fun! :)

Kubernetes on a RaspberryPi cluster

0
0

Recently, I decided to revive the raspberry pi cluster I used for Kubernetes-Experiments a while ago.

The re-install based on the Hypriot images and installation manual was pretty much straight forward.
Even though I encountered two strange things:

  1. Two of my RaspberryPi don’t want to connect via wifi. They have the very same config set as all others. Seems like they have brokern wifi chips.
  2. The sample configuration for the Ingress object that uses Traefik a a load balancer didn’t work as described – it just says „404 page not found“ instead of showing the acual sample page.
    Reason here is the Error

    ERROR: logging before flag.Parse: E0824 11:36:50.295344 1 reflector.go:199] github.com/containous/traefik/vendor/k8s.io/client-go/tools/cache/reflector.go:94: Failed to list *v1beta1.Ingress: ingresses.extensions is forbidden: User „system:serviceaccount:kube-system:default“ cannot list ingresses.extensions at the cluster scope

    which I couldn’t fix right away and decided to learn on that at a later stage.

Before really starting to use the cluster, the first bullet point to me was to set up a registry that is used to pull the images from. First thing, to set up a registry, is faily easy with the registry docker image. On top of that, QNAP provides an „app“ (which is, in their context, a docker-compose to wire a set of containers together) that bundles the registry with an nginx and an redis cache.

Now, the actually point was how to tell the nodes to pull from that registry. First I thought I need to tell kubernetes. But as kubernetes delegates the docker commands to the docker instance running on each node, it’s a docker config setting.

By the way: To execute commands on all nodes at the same time, tmux-cssh has become a good friend of mine ;-)
Now, to configure my NAS as a trusted registry, I have to install the ca of the self-signed certificate on my nodes:

sudo -i
mkdir -p /etc/docker/certs.d/192.168.100.201:6088
ln -s /etc/docker/certs.d/192.168.100.201:6088 /etc/docker/certs.d/NAShostname:6088
scp admin@192.168.100.201:/etc/docker/tls/ca.pem /etc/docker/certs.d/192.168.100.201:6088/ca.crt

The link set using the „NAShostname“ is so that I can also use the name instead of the IP.

After that I’m able to push and pull images from & to my local private registry.

Let’s say I’d build a little application and pushed an image for that application based on a arm32v7 base image to my registry at „NAShostname:6088/armhf/application“. (Remember: CPU architecture matters! So you can’t use images build and running on your x86 or amd64 machine an a ARM based RaspberryPi!)
To run that application on my kubernetes cluster I have to:

Create a deployment

kubectl run demo --image=NAShostname:6088/armhf/application:latest --replicas=3 --port 8080

Expose that deployment to the outside world

kubectl expose deployment demo --type=LoadBalancer

The thing now is that the service created to expose the deployment never gets an IP address assigned. Status reads like:

$ kubectl get services demo
NAME         TYPE           CLUSTER-IP    EXTERNAL-IP   PORT(S)          AGE
demo         LoadBalancer   10.98.4.191   <pending>     8080:32390/TCP   26m

To solve this, we need to define an external IP manually. THe tricky part is to know what valid external IPs are. It turns out that only thos from node that are running one of the deployments pods are working.

Lets find out waht these are:

$ kubectl get pods -o=wide
NAME                          READY     STATUS    RESTARTS   AGE       IP           NODE      NOMINATED NODE
demo                          1/1       Running   0          1h        10.244.2.3   node04    none
demo                          1/1       Running   0          1h        10.244.1.3   node05    none
demo                          1/1       Running   0          1h        10.244.4.3   node02    none
$ kubectl get nodes --output=wide
NAME      STATUS    ROLES     AGE  VERSION   INTERNAL-IP     EXTERNAL-IP  OS-IMAGE                        KERNEL-VERSION         CONTAINER-RUNTIME
node02    Ready     none    11d  v1.11.2   192.168.100.105   none       Raspbian GNU/Linux 9 (stretch)  4.14.34-hypriotos-v7+  docker://18.6.0
node03    Ready     none    11d  v1.11.2   192.168.100.103   none       Raspbian GNU/Linux 9 (stretch)  4.14.34-hypriotos-v7+  docker://18.6.0
node04    Ready     none    11d  v1.11.2   192.168.100.100   none       Raspbian GNU/Linux 9 (stretch)  4.14.34-hypriotos-v7+  docker://18.6.0
node05    Ready     none    11d  v1.11.2   192.168.100.101   none       Raspbian GNU/Linux 9 (stretch)  4.14.34-hypriotos-v7+  docker://18.6.0
node06    Ready     master    11d  v1.11.2   192.168.100.102   none       Raspbian GNU/Linux 9 (stretch)  4.14.34-hypriotos-v7+  docker://18.6.0

Thus, we can use .105, .101 and .100 to expose our service:

$ kubectl edit services demo

Add the list „externalIPs:“:

apiVersion: v1 
kind: Service 
metadata: 
  creationTimestamp: 2018-08-19T08:20:03Z 
  labels: 
    run: demo 
  name: demo 
  namespace: default 
  resourceVersion: "1585558" 
  selfLink: /api/v1/namespaces/default/services/jetty-demo 
  uid: 804d3b3a-a776-11e8-a44f-b827eb388bbf 
spec: 
  clusterIP: 10.103.151.206 
  externalIPs: 
  - 192.168.100.105 
  - 192.168.100.102 
  - 192.168.100.100 
  externalTrafficPolicy: Cluster 
  ports: 
  - nodePort: 31285 
    port: 8080 
    protocol: TCP 
    targetPort: 8080 
  selector: 
    run: demo 
  sessionAffinity: None 
  type: LoadBalancer 
status: 
  loadBalancer: {}

After saving, we can finally access the application via one of the IPs on port 8080.

For me, that feels somewhat unstatifying as by the binding of the pod ip to access the application the flexibility promised by kubernetes is vanished. Thus I suspect the cluster is not working as expected at this point and there is a lot of stuff to learn – if you actually want to setup your own kubernetes.
Most of the times, I’ve been working with it as a hosted solution or in context of OpenShift – and thats probably also the reason why setting up and running k8s ist not so well documented that acutally using it afterwards.

If someone comes along these lines and has some suggestions or questions – I’d be very happy to see your comment ;-)

More interesting stuff:
* Build containers faster with Jib, a Google image build tool for Java applications
* Setup k8s on pi using Ansible

JPG with OpenJDK

0
0

Some articles in the web (e.g. on stack overflow) claim that OpenJDK does not have support to write JPG images.

Looking into it, I foudn that there is a JPEGImageWriter and a com.sun.imageio.plugins.jpeg.JPEG included with OpenJDK 11 (looking at version 11.0.1).

But this code does not produce an JPG as expeced:

BufferedImage bufferedImage = generateImage(new Date());

String fileName = "SampleFile";

if(!ImageIO.write(bufferedImage, "jpeg", new File(fileName + ".jpg"))){
    System.out.println("No writer for JPG found!");
}

It rather claims „No writer for JPG found!“ :(

Debugging a bit shows, that the JPEG ImageWriter ist available but not loaded due to the test image data I create in the generateImage() method above.

There, BufferedImage is created using

BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB)

But,  the type TYPE_INT_ARGB is not supported with JEPG and thus, the JPEGWriter not selected as a valid writer.

Changing the type to

BufferedImage.TYPE_3BYTE_BGR

fixes this and I’m able to write JPG with OpenJDK – hooray! ;-)

Thus, the claim that OpenJDK is not able to write JPG is not true (anymore), one just need to be aware to the implications the various ImageTypes have.

That also mean that I’ve been wrong last night when I repeated what I read about OpenJDK being incapable of writing JPG in Binärgewitter Podcast, Episode 214 (yet to be released, will update the link as soon as possible). Sorry for that!

Have fun and keep coding! ;-)

Wochenschau – Was ist in KW 3 passiert?

0
0

Released

Anfang der Woche haben wir zu Rico, einem OpenSource Projekt bei Karakun, Rico-Angular released:

  • https://www.npmjs.com/package/rico-angular
  • https://github.com/rico-projects/rico-angular

 Dabei handelt es sich um einen Adapter, der den JavaScript client für Rico, rico-js bequem unter Angular nutzbar macht.

Binärgewitter Folge 221 wurde am Donnerstag Abend aufgenommen und kurz darauf veröffentlicht.

Missing

Ein Mapping zwischen den Download-Keys für den Download der Android Commandline Tools („3859397“ in https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip) und den API / SDK Versionen. Die gehen nicht im gleichen Takt, aber die Zahlen aus dem DL Key sind doch auch keine Version? Verknüpfung und Übersicht fehlen mir.
Ein Ansatz könnte sein, in den Sourcs des Gradle Android Plugin zu suchen: https://stackoverflow.com/questions/41379103/source-code-of-googles-gradle-plugin-for-building-android – leider bin ich nicht mehr dazu gekommen, dem im Detail nachzugehen.

Issues

Der Issue in GitLab, der verhindert das man das iPad external Keyboard nutzen kann um unterwegs in der WebIDE zu programmieren, ist leider immer noch (reported beim Hackergarten in Dortmund im Sommer 2018) offen.

Mit NativeScript kann man zur Zeit keine Kotlin-Plugins verwenden, die Companion objekte verwenden:
https://github.com/NativeScript/android-runtime/issues/1178

Initiatives

Ein kleiner Erfolg im Sinne von PublicMoney? PublicCode! Die Tagesschau App ist auch auf dem alternativen/Freien F-Droid Store verfügbar: https://service.tagesschau.de/app/repo/ – Jetzt müsste sie nur noch OpenSource werden ;-)

Der Widerstand gegen Artikel 11 (Leistungsschutzrecht) und 13 (Upload-Filter, Zensur) der Urheberrechtsreform der EU braucht immernoch dringend Untersützung:
Germany, help save the Internet from the Copyright directive!
Bringt die Petition über 4,5 Mio Unterzeichner*Innen! 
https://savetheinternet.info/

Media

Gilette versucht mit einem Spot das Bild von „Mann“ das sie in ihrer Rasierer-Werbung verbreiten zu korrigieren.

Ich wurde Zitiert! Dank der Recherche von Timo wurde mir bekannt, das ich mit meinem Paper zu Android (lang ists her ;-) ) in dem Buch „Bring your own Device: Einsatz von privaten Endgeräten im beruflichen Umfeld – Chancen, Risiken und Möglichkeiten“ zitiert wurde. Yay! :P

Tools

Node Version Manager „nvm“

setzen der per default genutzten Version:

nvm alias default 10.15.0

Wo landen global installierte Module wenn man NVM verwendet?

~/.nvm/versions/node/<genutzte Version>/lib/node_modules/

list open ports on Linux

Man kann es nicht oft genug irgendwo hinschreiben ;-

netstat -tulpn

WiFi

WiFi / WLAN Netze über Ihre SSID lokalisieren? Mit https://wigle.net ! :-)

MySQL client für MacOSX

Mit SequelPro gibt es einen open source Client mit graphischer Oberfläche für MacOS X.

Matomo / Piwik

Für die Web-Traffic-Analyse Suite Matomo (früher Piwik) gibt es ein kostenpflichtiges Plugin, mit dem man die „Keywords not defined“ von Google wieder in sichtbare Suchebegriffe auflösen kann: Search Engine Keywords Performance

Wochenschau – Notizen aus KW 4

0
0

Tools

TeamCity Builds können BuildSteps nicht Abhängig von Begebenheiten ausführen („Conditional“). Das bedeutet zum Beispiel, das man nicht sagen kann „bau das, und wenn das der master branch ist, deploy es mit diesem Schritt“. Entweder, man packt das ins Buildsystem – wo es dann aber auch auf Systemen die nicht das CI System sind, zum Beispiel dem Rechner des Entwicklers, ausgeführt wird. Oder man richtet eine eigene Build-Config ein, die dann in Abhängigkeit, also „conditional“, ausgeführt werden kann. Es gibt einen Issue dazu bei Jetbrains (und den kann man auch „UpVoten“ … ;-) )

TravisCI wurde gekauft!

Communication

Interessantes Slidedeck: 10 Golden Social Media Rules for Developer Relations Manager

Neu entdeckt: NSFW YouTube YouTube nutzen ohne einen Account zu nutzen (und damit der Datenkrake weniger Daten zu liefern als sie gerne hätte). Mit ausführlicher FAQ.

Transportation

Deutschland regt sich über Gedankenspiele zum „Temo 130“ auf – und die CDU entlarvt sich dabei als „Partei der Automobilindustrie“. Tempo 130 würde nicht schaden – auch wenn ich gerne mal richtig schnell fahre, in der Regel lässt der Verkehrt es dann doch nicht zu und die Geschwindigkeitsdifferenz zwischen denen die auch in dichtem Verkehr versuchen schnell zu fahren und denen die mit Richtgeschwindigkeit (oder langsamer) fahren, macht das fahren sehr viel stressiger als nötig. Ein Vergleich mit Autobahnfahrten in unseren Nachbarländern wie der Schweiz, den Niederlanden oder Österreich lohnt sich. Ein Problem, was ich sehe ist, das eine Einführung des Tempolimits daran geknüpft ist, das es auch durchgesetzt werden muss. Sonst kommt man sich evtl. veräppelt vor, wenn man ordnungsgemäß fährt und doch weiter von Rasern gestresst wird ;-) Und diese Durchsetzung könnte dann wieder in lauteren Rufen nach Überwachungstechnologie münden, die wir nicht haben wollen…..

Food

Die Bahn hat die Vollkornschnitte aus dem Menü der ICE Bistros getrichen. Eine Fehlentscheidung – so hat die Speisekarte an Bord jetzt nix mehr was auf der Preis/Leistung/Geschmacksskala aktzeptabel ist. (Das sehen auch andere so ;-) ). Und die als Alternative angebotenen „Mediterranen Stullen“ sind ein graus. Völlig überladen mit Belag (irgendeine Creme mit Gemüse) und völlig überwürzt. Vielleicht kann man das ja im Rahmen der Qualitätsoffensive der Bahn korrigieren?

Hardware

Das MacBook hat seit 2006 laut einem Reperatur-Dienstleister einen Designfehler. Ich bin gespannt, ob Apple darauf wirklich mit einem Austauschprogramm reagiert und ob das bedeutet, das mein MBP zum 5ten Mal in die Werkstatt muss… 🙄🙈

Initiatives

Upload- und Urheberrechtsreform

In Ergänzung zum Post von letzter Woche habe ich als Kommentar schon angemerkt, das die Gesetzesnovelle auf Eis liegt .

Erstmal eine Gute Nachricht, doch muss der Druck und die Aufmerksamkeit noch steigen, um die Kuh final vom Eis zu bekommen. Julia Reda betont daher nochmal in einem Beitrag beim Deutschlandfunk: „Es wäre in jedermanns Interesse den #Artikel13 komplett zu entfernen“. Insgesamt ein hörenswerter Beitrag, auch über das erwähnte Statement hinaus. Viel Spaß beim Nachhören :)

Public Money – public Code!

Die FSFE hat eine neue Broschüre zum Thema!

Connectivity

Dieser Beitrag wurde fertiggestellt, während ich im Zug saß und mich einmal mehr daran erfreuen konnt, das weder das Wifi im ICE, noch die Mobilfunknetze von T-Mobile oder Telefonica eine stabile Datenverbindungs-Grundversorgung, die die Übertragung von mehr als ein paar Zeichen pro Sekunde erlauben würde, gewährleisten können. Insbesondere südlich von Karlsruhe… :-/

Wochenschau – Notizen aus KW 5

0
0

Security

Öffentlich gewordene Passwörter sind nach wie vor ein großes Ärgernis, nicht zuletzt ins Bewusstsein gerufen durch den Collection #1 Leak, der 22 Milliarden(!) offengelegt hat.

Einen sehenswerten Auftritt zum Thema hat Linus Neumann (CCC, LogbuchNetzpolitik) am 08.01. bei Markus Lanz gehabt. War zwar nicht in KW5, ist aber immernoch einen Link wert. Schliesslich war am Freitag der #StarkePasswörterTag. Er erklärt docht auch anschaulich, was 2-Faktor-Authentifizierung eigentlich ist und andere wissenswerte Dinge. Eignet sich auch gut, um es weniger IT-affinen Menschen zu zeigen, um etwas mehr awareness zu schaffen :)

Eine schöne Veranschaulichung dazu hat dann extra3 gebracht.

Und in den letzten beiden Folgen Logbuch Netzpolitik LNP283 und LNP284 wird der Themenkreis auch nochmal ausführlich behandelt.

Weitere nützliche Webseiten sind:

Transportation

Und es ging in der vergangenen Woche fröhlich weiter mit den Diskussionen rund um Tempo 130. Die Bundesregierung erteilt der Idee eine Absage, der Verkrehrsminister Scheuer bezeichnet die Möglichkeit, Unfallzahlen zu senken und Leben zu retten als „gegen jeden Menschenverstand“ und behauptet falsch, Deutschland hätte die sichersten Straßen der Welt.

Abgeordnetenwatch hat mal nachgefragt wie welche Abgeordneten dazu stehen – so kann man schön nachschauen, wie der im eigenen Bezirk gewählte Vertreter steht ;-)

Bei der Deutschen Bahn gibt es wieder fleissig Diskussionen, wo Geld für die weitere Sanierung herkommen kann und Stimmen, das man in der Regierung wohl nicht so recht weiss, wo hin man will. Erschrocken hat mich dabei, das die Chose mit der Privatisierung immer noch in vielen Köpfen zu sein scheint – obwohl ja gerade der Quatsch Schuld an einem Großteil der Misere ist (Kaputtsparen, um eine augenscheinlich attraktive Rendite für potentielle Investoren zu generieren.). Geld aus der Autobahnmaut und der Reduktion von Dieselfahrzeugen zu nehmen, klingt da doch viel plausibler.

Tooling

Awaitility

Zu meinem Lieblingsthema „End-To-End Test für Webapplikationen mit Geb“ hat Michael Kutz einen Artikel geschrieben.

Homebrew ist in Version 2.0 erschienen – und funktioniert jetzt auch unter Linux und Windows.

Oracle Java 8 wird nicht mehr gepflegt. Zeit auf OpenJDK umzusteigen und sich genau anzusehen, welche Schritte man benötigt um schnell auf eine aktuelle Version zu kommen (Java 9 und 10 kann man getrost überspringen, 11 muss das Ziel sein!) und sich einen Plan zurecht zu legen, wie man zukünftige Upgrade schnell umsetzt. Es ändert sich viel im Java Universum, nicht nur beim Release Zyklus.

Marketing & Food


Reparatur Fatboy Edison the Petit

0
0

Ich habe ein älteres Modell der Fatboy Edison the Petit Lampe.

Leider habe ich mir dieser kürzlich 2 Probleme gehabt: Zum einen war das mitgelieferte Netzteil nicht auffindbar, zum anderen funktionierte der Akku nicht mehr. Ersteres ist bei dem Modell ärgerlicher als bei den aktuellen Modellen, weil es noch nicht über einen USB Anschluss zum Laden verfügt.

Zu erstem Problem habe ich mich an den Fatboy Support gewandt. Leider konnte man dort meiner Bitte, mit die techn. Daten des Netzteil mitzuteilen nicht nachkommen, sondern mir nur ein Angebot für ein Ersatznetzteil über 20 € machen.

1/3 des aktuellen Neupreises der Lampe für ein Netzteil auszugeben, während ich so viele Netzteile bereits habe das die Wahrscheinlichkeit sehr sehr groß ist, das sich darunter ein kompatibles finden würde, habe ich nicht eingesehen.

Zum Glück, denn kurze Zeit später fand sich das Netzteil wieder. Falls jemand diesen Artikel auf der Suche nach genau dieser Information findet: Ausgangswerte sind 0.5A bei 5V.

Das zweite Problem erklärte sich direkt nach dem Aufschrauben der Lampe: Der Akku hatte sich aufgebläht.
Er trägt die Bezeichnung „ZH103048“, zu der das Internet die Werte 3.7V und 1500mAh liefert. Zum Glück hab ich noch einen Akku mit gleicher Spannung und etwas niedriger Kapazität greifbar gehabt, so dass die Lampe jetzt auch wieder bei Bedarf ohne Kabel eine Weile leuchtet :)

KW 6 in Stichpunkten

0
0

Die vergangene Woche war so ereignisreich, das ich nur wenige Stichpunkte habe – der Wesentlichste ist jedoch der zur Achterbahnfahrt des Artikel 13 der Urheberrechtsreform der EU.

Upload- und Urheberrechtsreform

Am 05. Februar kam die News von Julia Reda, das der Artikel wieder auf der Zielgeraden ist, und schlimmer als zuvor – kommt einem schon so vor als wenn die Ruhe davor ein Täuschungsmnöver gewesen wäre.

Am 08.02. gabs dann noch den Paukenschlag, das die Bundesregierung ihren Koalitionsvertrag bricht und sich voll hinter Artikel 13 und Uploadfilter stellt – ein Jammer, das die SPD unfähig und/oder unwillens ist, das auszuschlachten. Ihrerseits wird sie ja bei jedem unliebigen Kommentar mit Verweis auf den Koalitionsvertrag zum Schweigen verdonnert…

Hilfe zum Aktivismus liefert #saveYourInternet

Weiteres…

In Frankfurt fährt jetzt ein elektrisch angetriebenes Müllfahrzeug rum.

Holgi hat mit WR909 eine sehr hörenswerte WRINT Folge zur polistischen Landschaft in Deutschland im allgemeinen und der SPD im speziellen veröffentlicht.

KW 7: Einige Eckpunkte

0
0

Papierkorb ist kein Backup!

Die „Papierkorb“ Funktion von Nextcloud ist zwar praktisch, insbesondere weil dort auch von anderen in einem geteiltem Verzeichnis gelöschte Daten zwischengelagert werden – zu sehr sollte man sich dennoch nicht darauf verlassen. Denn es gibt eine Größenbeschränkung für selbigen. Das bedeutet dann in der Praxis, das man aus dem Papierkorb nur 80% eines Verzeichnisinhaltes wiederbekommt, weil die anderen Dateien über dem Grenzwert lagen.

Also doch lieber ein richtiges Backup, zum Beispiel mit Borg. Differentiell und De-Duplizierend und Restore funktioniert auch schnell. ;-)

Music

Einfach mal wieder Musik hören – ohne Streaming. Zum Glück gibt es immer noch einen vom guten alten Amarok Player abstammendes Projekt: Clementine.  Die Website wirkt frisch, aber es täuscht: das letzte Release ist von 2016 :(
Das zugehörige Github Projekt verzeichnet allerdings durchaus einige Aktivität und auf dem Buildsystem gibt es auch aktuelle Builds. Das Projekt hat eine aktive Buildbot Instanz die auch eine ansehnliche Matrix der Cross-Plattform builds produziert.

Security

Es gibt mal wieder einen Leak – diesmal bei 500px.

Politik

Die Kanzlerin rückt die Proteste für Klimaschutz von Schülern in den Kontext hybrider Kriegsführung.

Nazis in der Bundeswehr

Die Bundeswehr hat einen Skandal, der geflissentlich kleingehalten wird. Vor einigen Wochen habe ich das erste mal (Focus, Taz) davon gelesen, jetzt bestätigt es sich Berichten zufolge immer mehr: Es gibt eine Gruppe, die sich aus ehem. Spezial- und Elitesoldaten zusammensetzt und mit rechter Gesinnung einen Umsturz in der Bundesrepublik anstrebt.

Vor dem Hintergrund lässt mich der Artikel zum ersten Landesregiment für den Heimatschutz erschaudern. Bis 2026 soll dann „in jedem Bundesland ein Landesregiment mit einem charismatischen Kommandeur, einer Truppenfahne und einem Verband zwischen 800 und 2000 Reservisten zur Unterstützung von Polizei und Bundeswehr in Notlagen vorhanden ist.“

Zunächst einmal ist aber wirklich absurd, das es nicht mehr Aufruhr zu dem Thema „Gruppe Hannibal“ gibt. (Seite bei bento)

Urheberrechtsreform

Und doch beschlossen – zumindest als Ergebnis der Trilogverhandlungen.

https://www.sueddeutsche.de/digital/uploadfilter-ergebnis-eu-urheberrecht-1.4329775

Erstmal schockierend, aber was seit Mittwoch dann im Netz und auf der Straßein Köln betonen tausende, das sie keine Bots und gegen die Reform sind- los ist, ist schon beeindruckend. Weiter so!

Die Geschichte mit den Bots rührt übrigens daher, das man bei der CDU der Meinung ist, das alle von GMail Konten gesendete Mails von Bots stammen würden. Begründung ist, das sich die verabschiedete Reform ja gegen Google richten würde.
Schade nur, das man nicht bemerkt, das das komplett falsch ist. Google ist Anbieter der Technologie, die mit Umsetzung der Reform verpflichtend würde und zudem ein so großer Fisch das sie den Anforderungen – im Gegensatz zu vielen kleinen Konkurrenten – problemlos nachkommen könnten.

Tools

https://www.nsfwyoutube.com/ – YouTube anschauen ohne sich mit einem Google Konto anmelden zu müssen und ohne umfangreich getrackt zu werden.

Released

Binärgewitter 223 wurde aufgenommen (es gab auch einen Livestream ,-) ) und veröffentlicht.

KW 9: Worte

0
0

Politik

Urherberrechtsreform

Zur Urheberrechtsreform will ich daher eigentlich nicht viel schreiben, nur das Wichtigste: Ruft die Abgeordneten an und geht zu den Demos! (DANKE an die 3500 die gestern schon in Berlin aktiv waren!)
Wer noch nicht im Bilde ist: savetheinternet.info und Logbuch Netzpolitik 288

Eine gute Zusammenfassung findet sich auch im Twitter-Thread von Enno Park – eigentlich ist alles noch viel schlimmer. Es geht nicht nur im Artikel 13 und die Uploadfilter. Es geht auch um die Implementierung des in Neutschland und in anderen Ländern gescheiterten Leistungsschutzrechts für die ganze EU – ohne vorher evaluiert zu haben, was es bewirkt. Es geht um eine Umverteilung von Urhebern hin zu Rechteverwertern. Und um eine Entrechtung von Urhebern. (Es gibt einen Unroll dazu, für bessere Lesbarkeit)

Es bleibt als beim Aufruf, Aktiv zu werden: Haltet euch den 23. März frei und geht zu einer Demo! Und ruft Abgeordnete an!

Als wenn das nicht reichen würde, sind bereits weitere Schritte geplant, auf den aus der Urheberunrechtsreform resultierenden Vorschriften aufbauend die Zensurmaschine zu vervöllständigen:

Zum einen die automatische Erkennung und Unterdrückung „terroristischer Inhalte“als Link der Entwurf der Richtlinie (wurde bei mir mit falschem MIME-Type und ohne Dateinamen ausgeliefert, zum Lesen in .pdf umbenennen).

Und zum anderen der Vorschlag für ein Verbot von Tor, dem Netz im Netz das der anonymen Kommunikation verschrieben ist. Das lesenswerte Editorial der aktuellen c’t  fasst es zusammen.

Technologie

PDF Libraries

Möchte man PDFs erzeugen, landet man im Kontext von Java sehr schnell bei iText. Aber es gibt interessante Alternativen, zwei davon sind:

Tooling

Schnell einen regulären Ausdruck erzeugen? https://regexr.com/

Keynote, das Programm zum erstellen von Präsentationen von Apple, kann keine SVG Graphiken einbetten.
Der Workaround ist, ähnlich zum seltsam anmutenden Weg, PDF zu nehmen, um SVGs als Icons in iOS Apps zu verwenden, das SVG mit Safari in ein PDF zu setzen und dieses PDF dann in Keynote zu benutzen.
Jedoch nicht, wie es vielleicht naheliegend wäre über „export as PDF“, sondern über den Druckdialog und „Speichern als PDF“. Konturen gehen verloren und man kann zunächst auch keine Schlagschatten anwenden, aber man bekommt es zumindest „irgendwie“ hinüber.
Und Keynote hat noch ein As zu seiner Ehrenrettung im Ärmel: Man kann bei Bildern eine Transparenzfarbe wählen und so den weissen Hintergrund transparent setzen – und schon wird der Schlagschatten auch auf die Kontur des eigentlichen Bildes angewandt.

Released

Binärgewitter 224: Urheberunrecht

Es ist Karneval 🎉Alaaf!

KW10: In kleinen Schritten

0
0

Diese Woche war definitiv geprägt von der #Aritkel13 Front zur #Urheberunrechtsreform und den sich daran anschliessenden Themen zur Aufbau der Zensurinfrastruktur, die im Eintrag von letzter Woche angeschnitten wurden.

Der Terror-Filter, der praktisch die Uploadfilter in zweiter Auflage ist, hat nun auch einen Hashtag: #TerReg, Kurzform für Terror-Regulierung. Eine Aktionshilfe zu dem Thema bietet Digitalcourage.

Am Dienstag fanden viele Spontandemos statt und gestern, am Samstag wurde nachgelegt. Am 23. ist der große Aktionstag, auf zur Demo!

Zum Thema „Ruf die EU-Abgeordneten an!“ hat in der Logbuch-Netzpolitik Ausgabe 290 übrigens ein Hörer einen Erfahrungsbericht zum besten gegeben – sehr hörenswert!

Tooling

Die Spambekämpfung für den Mailserver wurde auf rspamd migriert, was einen sehr modernen und aufgeräumten Eindruck macht und sich in den ersten Tagen auch recht positiv zeigt. Motivation oder „Stein des Anstoßes“ war übrigen ein Vortrag zu rspamD auf der FrOSCon 2018.

Im Zuge dieser Migration bin ich über Mailcow gespolpert, das nach einem interessanten Projekt für ein gut handhabbares Mail-Server-Setup aussieht.

Released

Binärgewitter 225: Der gute Teil des Problems

KW 11: Kurznotiz

0
0

Ich bin praktisch schon auf dem Weg ins JavaLand – daher nur kurz etwas und keine politischen Ausführungen heute. Trotzdem nicht vergessen: Nächsten Samstag ist Demo-Tag!

Technologie

Nicht nur in der Java-Welt geht es bezüglich der unterstützten und gepflegten Versionen heiss her (siehe Artikel auf dem Karakun DevHub), sondern auch bei PHP muss man da sehr genau hinschauen, das die eingesetzte (und häufig auf einem öffentlich erreichbaren Webserver genutzte) PHP Version auch noch gepflegt wird. Dazu gibt es praktischer Weise auch eine Doku-Seite: PHP: Supported Versions

Spielend CSS Flexbox lernen: http://flexboxfroggy.com

Events

Es wird dieses Jahr wieder einen ganztägigen Hackergarten in Dortmund geben, am 12. 10. 2019. Details bei Meetup.

Medien

Marc-Uwe Kling’s Qualityland wird von HBO als Serie verfilmt!

KW 12: Nach der Demo…

0
0

Events

Letzte Woche war die diesjährige JavaLand Konferenz. Wieder eine rundum gelungene Veranstaltung mit der Öffnung der Fahrgeschäfte im Phantasialand am Dienstag Abend mit anschließender Party als Krönung. Ich konnte leider nur wenige Talks sehen, die kann ich dafür aber wärmstens empfehlen:

Videoaufzeichnungen gibt es wohl von einigen Vorträgen (da es einen Live-Stream gab), bis jetzt habe ich aber noch keine Info dazu gefunden, ob es diese denn später auch zum Nachschauen öffentlich geben wird. Zumindest kann man die Slides zu den Talk erhalten und vielleicht hat man ja Gelegenheit, die Speaker auf anderen Konferenzen zu treffen und zu sehen.

Donnerstag war dann auch noch der erste DevTreff in Siegburg, ein Meetup für Softwareentwickler. Auch dort gab es mit
„AWS Migration – wie der Monolith zur Cloud kam“ von Christian Kappen und
„Micro-Frontends im Rewe Shop“ von Nils Röhrig
zwei sehr interessante Themen.
Ich hoffe, das Meetup hat noch viele Fortsetzungen und freue mich sehr, das sich in dieser Form etwas in Siegburg regt ;-)

Politik / Urheberunrechtsreform

Die Demo am Samstag in Köln war sehr voll und ein Erfolg, SUPER das so viele Leute da waren, super das wir in über 50 Städten auf der Straße waren!

Was mich enttäuscht, ist aber die Nachrichtenlage. Insbesondere bei der Tagesschau, weil:

  • Teilnehmerzahlen werden sehr viel geringer genannt (ist scheibar aber eingängige Problem bei Demos)
  • obwohl in über 50 Städten demonstriert wurde, ist nur von „mehreren deutschen Städten“ die Rede
  • Man lässt Leute mit eindeutig einseitigen Interessen zu Wort kommen, ohne dies deutlich zu machen. So zum Beispiel Mathias Hornschuh und Charlotte Seither, die einfach als „Komponist“ vorgestellt werden, obwohl teil des Aufsichtsrat GEMA sind. Damit werden Interessen und Motivationen nicht vollständig dargestellt.
  • Während bei der Berichtserstattung die GEMA (s.o.) zu Wort kommt, findet man jedoch kein Interview mit Julia Reda. Ohne deren Arbeit wären die zweifelhaften Vorgänge in der EU Politik und der Bruch des Koalitionsvertrags (und damit des Wahlversprechens) wahrscheinlich deutlich weniger Beachtung gefunden hätten.
  • In dem Artikel von Samstag wird zwar Bundesjustizministerin erwähnt, nicht aber das sie bereits mehrmals die Gelegenheit hat verstreichen lassen, den Spuk zu beenden (und damit dem im Koalitionsvertrag festgehaltenen Wahlversprechen zu entsprechen). Die Doppelmoral, mit der SPD und CDU nun auftreten (auf der einen Seite haben die die Reform soweit gepusht und jetzt positionieren sie sich auf einmal dagegen) wird nicht in der Berichtserstattung erwähnt.

Ich hab leider den Eindruck, das gezielt Informationen weggelassen werden. Das ist sehr sehr ernüchternd, gerade weil ich die Tagesschau bisher praktisch für die letzte zuverlässige Nachrichtenquelle gehalten habe.
Bei der direkten Erfahrung mit diesem Thema liegt nun nahe, das Verhalten in der Berichtserstattung auf andere Themenbereiche zu interpolieren, und dann muss man davon ausgehen das die Tagesschau ihrem eigenen Anspruch – neutral und umfassend zu informieren – nicht gerecht wird. Das stimmt mich wütend und traurig. Und enttäuscht.

Die Situation führt sogar dazu das sich etablierte ZDF Journalisten (remember elektischer Reporter) zu drastischen Tweets genötigt fühlen.

Released

Binärgewitter 226


Einstieg in 3D Druck mit einem Creality Ender 3

0
0

Ich habe mich das ein Abenteuer eingelassen in die Welt des 3D Druck einzutauchen. Hier ein paar nützliche Links und das ein oder andere Update zu meinen Fortschritten.

Ein Paar Links und Videos:

Sehr Hilfreiches Video zum Aufbau:

Leveling und Inbetriebnahme:

Beim Leveling, dem Einstellen des Druck-Betts (es muss möglichst nahe an der Druckdüse und absolut gerade sein) habe ich die Erfahrung gemacht, das es wichtig ist, sich Zeit zu lassen und ein normales DIN A4 Blatt zu nehmen – nicht wie im Aufbau Video ein Stück von der Anleitung, das Papier ist zu dick.

Denn: Nach dem ersten Anlauf das Druckbett einzustellen und anschliessendem Start habe ich ein Foto von der ersten gedruckten Schicht an einen 3D-Druck erfahrenden Freund geschickt. Dank das geübten Auges auf der Gegenseite bekam ich prompt die Diagnose:

Hinten zu weit weg
Überall zu weit weg
Der Kopf muss näher ran

Also praktisch den Tipp, den Druck abzubrechen und nach einem entsprechendem Re-Leveling (mit 80g Papier) neu zu starten. Vielen Dank nochmal auf diesem Weg dafür :)

Und mit Hilfe der Infos aus diesen beiden Videos und dem sehr wichtigen Experten Tipp kam ich dann auch zum ersten Probedruck:

Größtenteils erfolgreich 🤩
Warum der Drucker zum Schluss kreativ wurde und statt der normalen Schädeldecke dem Hund eine Wuschel-Frisur gemacht hat, habe ich noch nicht herausgefunden. Ein erster check eines Troubleshooting Guide hat eider keine Antwort gegeben.
Ich bin dennoch sehr zufrieden mit dem Ergebnis :D

Ender-3: Druck mit OctoPrint

0
0

Nach meinem einigermaßen erfolgreichen ersten Druck will ich natürlich mehr – und brauche auch einen zweiten Druck, um den Fehler besser zu verstehen bzw. zu reproduzieren. Aber einfach nochmal den Hund oder „jetzt schon“ das Schiff 3DBenchy zu drucken ist doch langweilig, also direkt eines der Improvment-Parts. Meine Wahl fällt auf die Lüfterabdeckung.

Außerdem bin ich neugierig auf OctoPrint, das mir als sehr angenehme Variante, Druckdaten auf den Drucker zu bringen und den Drucker zu steuern, angepriesen wurde.

OctoPrint hat eine Weboberfläche und lässt damit die Abfrage der Druckerzustandsdaten und Steuerung von praktisch überall zu. Bei mir dann eher überall im lokalen Netz, da ich nicht vorhabe die WebUI im öffentlichen Internet verfügbar zu machen – wovor OctoPrint auch eindringlich warnt. Aber das reicht ja auch. Dann muss man immer zum Drucker laufen um zu gucken wie es ihm geht. :)

So kann ich es also nicht lassen, direkt zwei Dinge auszuprobieren – OctoPrint und einen „eigenen Druck“ (zu dem ich die gcode Datei selbst erzeuge und nicht mitgeliefert bekommen habe).

OctoPrint auf Pi geflasht (dabei das erste Mal unter Linux nicht dd sondern Etcher benutzt – als AppImage :) ) und eingerichtet. Parameter:

Printer settings

Form factor: Rectangular
Origin: Lower Left
Heated Bed: Yes (checked)
Width: 220mm
Depth: 220mm
Height: 250mm
Axes: Default**
Custom Bounding Box: No (unchecked)
Nozzle Diameter: 0.4mm
Number of Extruders: 1

Connection settings

Serial Port: /dev/ttyUSB0
Baudrate: AUTO

(aus diesem Artikel übernommen).

USB Kabel verbunden und Ender eingeschaltet. Die Verbindung klappt auf anhieb und Sensordaten sind auf dem WebUI sichtbar. Wunderbar 🤩

Nun also zu der Frage, wie ich zu Druckdaten komme. Die *.stl Dateien von Thingyverse kann ich nicht direkt verwenden. Weder auf dem Drucker noch im OctoPi. Man muss eine *.gcode Datei erzeugen und das meist genannte Mittel dazu heisst Cura, genauer Ultimaker Cura und ist für alle Plattformen kostenlos verfügbar. In Cura gibt es auch ein default-Setting für den Ender-3, sodass ich dieses wähle, die .stl Datei lade und mit „Slice“ die .gcode Datei erzeugen kann ohne mich in der Tiefe mit den möglichen Einstellungen dort auseinanderzusetzen.

Diese .gcode Datei kann ich über das OctoPrint WebUI an den Ender-3 schicken und auch den Druck starten. Ich bin gespannt ob das klappt :)

Also, der Druck ist gestartet und OctoPrint heizt das Bett und die Düse auf und visualisiert diesen Vorgang chic in einem Graphen. Nach erreichen der gewünschten Temperaturen legt der Drucker dann los – ich bin auf das Ergebnis gespannt :)

Und siehe da, dieser Druck klappt wunderbar, ohne „krausen Haare“:

Das Problem ist also nicht unmittelbar reproduzierbar und ich habe eine neue Lüfterabdeckung als erstes Upgrade für meinen Drucker :D

Mails später verschicken

0
0

Gerade habe ich mich mal wieder gefragt, ob es nicht eine Möglichkeit gibt, Mails nicht nur „später“ aka „beim nächsten Mal wenn das Mailprogramm Mails versendet“ zu verschicken, sondern zu einem vorab definieren Zeitpunkt. Also äquivalent zum „geplanten Post“ zu einem spätern Datum im WordPress.

Kurze Suche, kurze Antwort: Es geht. In Outlook (leider für die meisten der Standard) genauso wie in Thunderbird (per Addon). Knackpunkt ist in beiden Fällen, das das EMailprogramm selbst das versenden vornimmt, nicht der Server. Der eigene Rechner muss als eingeschaltet und am Netz sein.

Gibts dafür nicht auch was serverseitiges? :)

Images auf SD-Cards flashen

0
0

..kann man mit der Kommandozeile.

sudo dd bs=1m if=path_of_your_image.img of=/dev/rdiskn conv=sync

Wobei man sich halt sicher sein muss, das rdiskn das richtige Device ist, das Laufwerk nicht eingebunden ist, etc….

Oder mit balenaEtcher – falls man sich die dd-Befehle immer noch nicht gemerkt hat oder man das Aufspielen neuer SD-Card images jemandem zeigen will der nicht so gut mit der Kommandozeile vertraut ist ;-)

digitale Souveränität: gefährdet

0
0

Da schau an: Gut 1,5 Jahre nachdem ich hier mit dem Link auf die „Microsoft Dilemma“ Reportage darauf aufmerksam machen wollte, das man die Abhängigkeit von (Tech-)Konzernen sehr kritisch im Auge behalten muss, wird dies nun durch eine durch das Bundesinnemindesterium in Auftrag gegebene Studie bestätigt. Dort sieht man die „die digitale Souveränität des Staates gefährdet“.

Natürlich gibt es dazu einen gut zusammengefassten Artikel bei heise: Marktanalyse: Microsoft-Abhängigkeit führt zu „Schmerzpunkten“ beim Bund

In der Studie wird „OpenSource“ als Lösung genannt, doch da muss man vorsichtig sein – das Produkte unter OpenSource Lizenzen bereitgestellt werden schließt die als problematisch erkannten Punkte – Anbieterabhängigkeit wird nicht allein durch die Änderung der Lizenz ausgeräumt.

Auch das der bitkom in seinem Open Source Monitor 2019 bescheinigt das Open Source mittlerweile auch in der deutschen Wirtschaft angekommen ist, ist das nur ein Anfang und bis man sich auf die Schulter klopfen kann muss noch viel passieren. Insbesondere in Bezug auf die Finanzierung von Open Source Projekten, und da steht diametral entgegen das der genannte Open Source Monitor einmal mehr belegt, das die Mehrzahl der Unternehmen „Open Source“ vor allem als Kostensparmodell verstehen und sich um die Vorteile, die sich bei einem vollständigen Adaption des Modells ergeben, nicht scheren und sich damit auch nicht um den langfristigen bestand der Projekte aus denen sie Nutzen ziehen kümmern wollen.

„Open Source“ ist nicht das Gegenteil von „Kommerziell“. Ich hoffe stark (und arbeite daran mit ;-) ) das es nicht nochmal 30 Jahre dauert (`89 ist die GPL entstanden) bis das auch in der deutschen Wirtschaft verstanden wurde.

Viewing all 72 articles
Browse latest View live




Latest Images

Vimeo 10.7.0 by Vimeo.com, Inc.

Vimeo 10.7.0 by Vimeo.com, Inc.

HANGAD

HANGAD

MAKAKAALAM

MAKAKAALAM

Doodle Jump 3.11.30 by Lima Sky LLC

Doodle Jump 3.11.30 by Lima Sky LLC

Doodle Jump 3.11.30 by Lima Sky LLC

Doodle Jump 3.11.30 by Lima Sky LLC

Vimeo 10.6.1 by Vimeo.com, Inc.

Vimeo 10.6.1 by Vimeo.com, Inc.

Vimeo 10.6.0 by Vimeo.com, Inc.

Vimeo 10.6.0 by Vimeo.com, Inc.

Re:

Re:

Re:

Re: