Kategorien
Software

Check SSL certificate expiry with PHP and curl

Today I wanted to create a simple way to check the expiry date of my SSL certificates to avoid getting hit by unexpected error messages in the browser (although I’m using Lets Encrypt auto-renew features, I sometimes get a container with an expired certificate). I’m already using CachetHQ as my statuspage with a custom PHP script that I run on an old webspace without any other scripting features.

So, I went ahead and created this abomination of a script to give me a simple JSON output with all my URLs and their expiry in days:

<?php
header('Content-Type: application/json');

$urls = array("https://url1" => -1, "https://url2" => -1);

foreach ($urls as $url => $expiry) {
	$ch = curl_init();
	curl_setopt($ch, CURLOPT_URL, $url);
	curl_setopt($ch, CURLOPT_CONNECT_ONLY, true);
	curl_setopt($ch, CURLOPT_CERTINFO, true);
	curl_exec($ch);
	$certInfo = curl_getinfo($ch, CURLINFO_CERTINFO);
	curl_close($ch);
	$expiryDate = date_create_from_format("M d H:i:s Y T", $certInfo[0]['Expire date']);
	$expiry = $expiryDate->diff(new DateTime())->days;
	$urls[$url] = $expiry;
}

print(json_encode($urls));

The output looks something like this:

{"https:\/\/url1":66,"https:\/\/url2":59}

Because it’s getting late on an already long day, I’ll leave it at this and think about integrating it into my CachetHQ setup on another day.

Maybe it helps out when you’re looking for a simple thing to play with though.

*Update* I have now integrated the check into my script and will get notified before any certificate expires. I have 57 days until this happens for one of the certificates.

Kategorien
Software

Antivirus ist ein Virus

Heute morgen scrollte ein Artikel über die schäbigen Praktiken eines Antiviren-Herstellers durch meinen Feed Reader:

[…] the Avast antivirus program installed on a person’s computer collects data, and that Jumpshot repackages it into various different products that are then sold to many of the largest companies in the world. Some past, present, and potential clients include Google, Yelp, Microsoft, McKinsey, Pepsi, Sephora, Home Depot, Condé Nast, Intuit, and many others.

[…]

The data obtained by Motherboard and PCMag includes Google searches, lookups of locations and GPS coordinates on Google Maps, people visiting companies‘ LinkedIn pages, particular YouTube videos, and people visiting porn websites.

https://www.vice.com/en_us/article/qjdkq7/avast-antivirus-sells-user-browsing-data-investigation

Ich selbst habe auf meinen Rechnern ja schon seit Ewigkeiten keinen Virenscanner mehr installiert, ausser den Windows-eigenen Mechanismen. Dazu noch sinnvoller Umgang mit Emails (also nicht immer ohne Zögern auf jeden Anhang oder Link klicken) und Popups zur Anforderung von Admin-Rechten und ich kann mich schon gar nicht mehr dran erinnern, ob und wann ich mal einen Virus auf meinen eigenen Rechnern hatte. Offline Backups verhindern im schlimmsten Fall den Verlust meiner Daten.

Spätestens seit die kostenlosen Varianten der Antivirus-Tools immer mehr Popups angezeigt haben und Zusatzdienste installieren wollten, hab ich das ganze Zeug aufgegeben. Windows Defender läuft und prüft Dateien; alles andere ist Schlangenöl.

Mittlerweile hat Avast auch ein Statement veröffentlicht:

As CEO of Avast, I feel personally responsible and I would like to apologize to all concerned.
Protecting people is Avast’s top priority and must be embedded in everything we do in our business and in our products. Anything to the contrary is unacceptable.
For these reasons, I – together with our board of directors – have decided to terminate the Jumpshot data collection and wind down Jumpshot’s operations, with immediate effect.

https://blog.avast.com/a-message-from-ceo-ondrej-vlcek

Kategorien
Software

Abgelaufene Zertifikate in Firefox für Android

Update 2 Das Update auf Firefox 66.0.4 behebt die Situation und die Studies können wieder deaktiviert werden.

Update Mozilla hat ein Update zu der Situation in ihrem Blog gepostet. Der offiziell vorgeschlagene Fix für das abgelaufene Zertifikat für Desktop-Firefox ist jetzt dasAktivieren von Firefox Studies. Am einfachsten geht das über die Eingabe von about:studies in der Adresszeile und von dort kann man dann zu den Einstellungen wechseln, um die Studies überhaupt einzuschalten.

Mozilla ist ein Schnitzer unterlaufen: Zertifikate für die Signierung von AddOns sind abgelaufen und auf meinem Android-Smartphone waren heute morgen alle AddOns deaktiviert. Ohne Ublock Origin und uMatrix gehe ich aber nicht mehr ins Netz, deshalb habe ich temporär die folgende Einstellung vorgenommen:

  • about:config in die Adresszeile eingeben
  • nach xpinstall.signatures.required suchen
  • Wert auf false setzen

Damit wird die Prüfung der Signatur komplett deaktiviert! Das ganze muss natürlich wieder rückgängig gemacht werden, wenn Mozilla das abgelaufene Zertifikat bei sich ersetzt.

Kategorien
Software

Switching from ZNC to TheLounge

I’m still using IRC (yes, I’m the one) and previously I installed Hexchat on all my machines and ZNC on my server to connect to my favorite networks and channels. But it’s not always possible to install an application nor run the portable app from my USB stick. I didn’t want to use a hosted service like irccloud neither, so I set out to find an alternative.

Luckily a user on mastodon called muesli pointed me to the project thelounge, which aims to provide an self-hostable application similar to irccloud.

Here’s a simple docker-compose.yml to start the application up:

version: '3' services:
   thelounge:
     image: thelounge/thelounge:latest
     ports:
       - "9000:9000"
     restart: always
     volumes:
       - thelounge:/var/opt/thelounge
 # bind lounge config from a volume, not from the host file system
   volumes:
     thelounge:

Personally I don’t use the exposed port, because I run everything behind a reverse proxy on my installation, but if you run this locally, you can now access thelounge at http://localhost:9000.

If you want to modify the configuration, you have to do so inside the volume thelounge. I’m running temporary containers to edit them:

docker run --rm -it -v YOURPREFIX_thelounge:/data -w /data alpine vi /data/config.js

Replace YOURPREFIX which whatever your local directory name is. If you are not sure, you can list all docker volumes and search for the right one:

docker volume ls | grep thelounge
Kategorien
Software

Neuer Texteditor: Sublime Text

Ich bin ja öfter mal auf der Suche nach einem neuen Texteditor, mit dem ich die täglichen Aufgaben erledigen kann, die nicht unbedingt den Start von meinem IntelliJ Ultimate erfordern. Die letzten Monate war das oft Visual Studio Code, das sich seit dem holprigen Start in einen guten Allround-Editor verwandelt hat. Aber wirklich zufrieden war ich damit nicht und deshalb hab ich mich nach einer Alternative umgesehen.

Gelandet bin ich bei Sublime Text, ein nicht-freier, kostenpflichtiger
Editor – und nach einigen Wochen habe ich mich auch dazu entschlossen, eine Lizenz zu kaufen. Mit 80US$ nicht ganz billig, aber ich stehe seit längerem auf dem Standpunkt, dass man für gute Software auch bezahlen – oder im Fall von Open Source Software, seine eigenen Zeit für z.B. Pull Requests investieren kann.

Hier noch eine Liste von Packages, die ich verwende:

Am wichtigsten ist sicher Package Control, mit dem kann man die Pakete suchen und mit einem Tastendruck auch gleich installieren kann. Integration von git muss natürlich auch sein und GitGutter ermöglicht über die linke Seitenleiste des Editors (auf der ich auch immer die Zeilennummer eingeblendet habe) einen schnellen Blick auf die letzten Änderungen. Filter Lines ist wahrscheinlich ein Spezialfall, aber ich habe öfter die Notwendigkeit aus einer großen Datei bestimmte Zeilen rauszusuchen. Das Handling von sehr großen Dateien (größer 100000 Zeilen) ist in den meisten Editoren eher unhandlich, deshalb filtere ich mir die gesuchten Zeilen einfach mit dem Package in ein neues Editorfenster und mache von dort weiter.

Die SideBarEnhancements erweitern die Ordner-Ansicht um ein paar nützliche Aufgaben, wie Reveal in Sidebar um eine geöffnete Datei zu finden oder einfache Dateioperationen wie Löschen, Umbenennen usw. In die gleiche Richtung geht A File Icon, das die Sidebar einfach um ein paar schöne (und vor allem schnell zu erkennende) Dateisymbole erweitert. Was ähnliches bietet Terminal, um schnell per Command Palette ein Terminalfenster im Projektverzeichnis zu öffnen.

Das ganze habe ich auf einem USB Stick installiert, damit ich meine Konfiguration mitnehmen kann. Ich werde das ganze aber jetzt auf meinen Rechnern installieren, damit ich von einer SSD laufe.

Kategorien
Software

How to speed up Maven and Eclipse?

At work I am constantly bugged by modal dialogs in my Eclipse whenever the m2e plugin starts any kind of long-running Maven action, like downloading artifacts from our company repository. It startet to get really annoying a couple of weeks ago when almost every single one of our own artifacts downloaded only with a few kB/s. So I started to investigate some of the usual suspects:

To test network speed I did regular HTTP Get requests and tried downloading our artifacts from different computers around the network. All downloads were much faster than the downloads inside my Eclipse installation.

Then I removed all proxy settings from my set up, although I already had exclude rules for our Nexus repository. No improvement.

My Maven settings are pretty bare from the start, but I tried to strip everything from old projects and only kept my custom repository location and some other stuff related to my local set up. I also upgraded to Maven 3.2.3, just to have to latest version. No improvement.

Then I took another look at the Nexus repository and tried to add a custom routing for our artifacts. Instead of looking into all configured repositories (or whatever Nexus decided to route based on internal automatic routing rules…) I added the first to elements of our company groupId to a custom routing and let Nexus only look in the hosted snapshot and release repositories.

Finally, that seems to bring an improvement and now download speed and overall maven performance in Eclipse is much, much higher. I’m not quite sure that the annoying modal dialogs will not pop up in my face anymore, but at least I feel like I am not constantly waiting for Eclipse anymore…

Kategorien
Software

Exclude posts from your Ghost frontpage

Today I tried to exclude posts tagged wod from my frontpage. The blogging software Ghost that I am using to run this blog recently released v0.4.2 which supports the new #has helper.

Unfortunately the new helper is not documented, so after reading some of the discussions on the pull requests and the issues I just tried to code the necessary part in my index.hbs file:

{{! Don't output posts tagged 'wod' on frontpage }}
{{#has tag="wod"}}
{{else}}
 <OUTPUT POST AS USUAL>
{{/has}}

Now all posts tagged wod were excluded from the listing on my frontpage. But when I clicked through the pagination, I noticed that instead of having 5 posts on all pages I got varying number of posts – the helper excluded the posts, but the pagination is not aware of this change in the list of posts to display.

Maybe I didn’t get the #has helper right, or maybe there is a better method to exclude posts before they hit the frontpage at all.

Do you exclude posts from your frontpage using Ghost? If so, I’d be more than happy if you leave a comment.

Kategorien
Software

Chocolatey für einfache Installationen unter Windows

Vor ein paar Wochen bin ich über Chocolatey gestolpert, in einem Blogpost von Scott Hanselman mit dem Titel “Is the Windows user ready for apt-get?”. Als Debian User bin ich den Komfort von apt-get natürlich gewohnt und wenn es eine ähnliche Software auch für Windows gibt, will ich das natürlich ausprobieren.

Also hab ich den folgenden Code-Schnippsel in eine Eingabeaufforderung kopiert und damit Chocolatey installiert:

@powershell -NoProfile -ExecutionPolicy unrestricted -Command "iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))" && SET PATH=%PATH%;%systemdrive%\chocolatey\bin

Anschliessend kann man auf der gleichen Eingabeaufforderung direkt das erste Tool installieren:

cinst f.lux

Damit wird das kleine Tool f.lux installiert, das die Bildschirmhelligkeit morgens und abends runter regelt, damit man nicht so fies geblendet wird. 🙂

Und so einfach ist eigentlich jede Installation, egal ob man einen SumatraPDF oder VirtualBox installieren möchte. Meistens klappt das so intuitiv, dass man blind cinst PROGRAMM eintippen kann. Ansonsten hilft es, eine kleine Suche zu starten:

choco list 7zip

Damit wird die Liste der verfügbaren Anwendungen durchsucht und die Treffer ausgegeben. Jetzt sucht man sich die richtige Anwendung raus und installiert sie

choco install 7zip.commandline

Damit habe ich mir die Kommandozeilen-Variante von 7zip installiert. Ansonsten kann man auch cinst 7zip oder cinst 7zip.install verwenden.

Ich habe mir in meinem Wiki eine Liste meiner Tools zusammengestellt, so dass ich nach einer Neuinstallation sofort alles notwendige zusammen habe.

Kategorien
Software

Anwendung in das Menü von Ubuntu hinzufügen

Ich habe ein paar Anwendungen, die ich manuell aus einem Tarball installiere und die daher nicht automatisch im Menü von Ubuntu auftauchen. Trotzdem will ich diese Anwendungen per Super-Taste starten können.

Damit man selbst Shortcuts für solche Anwendungen anlegen kann, ist ein zusätzliches Softwarepaket notwendig. Auf der Kommandozeile (ihr könnt ein Terminal mit der Tastenkombination STRG+ALT+T öffnen) fügt ihr dieses Paket mit dem folgenden Befehl hinzu:

sudo apt-get install --no-install-recommends gnome-panel

Anschliessend kann man mit dem folgenden Befehl einen neuen Shortcut für eine Anwendung hinzufügen:

gnome-desktop-item-edit --create-new .local/share/applications/Teamspeak.desktop

Ich habe mir damit einen Link zu Teamspeak erstellt. Anschliessend kann ich Teamspeak über das Menü wie jede andere Anwendung starten. Weitergeholfen hat mir hierbei eine gute Antwort auf askubuntu.com.

Kategorien
Software

How to create a Minecraft Mod with Forge

Most of this is taken from a somewhat incomplete tutorial at Minecraftforge.

First things first:

  • Install Eclipse
  • Install the gradle integration from eclipse marketplace
  • Download the forge sourcecode
  • Unzip it somewhere
  • Open a command line in that directory (on Windows 7, press the WIN key, type “cmd” and press ENTER, then type “cd INSERT_DIRECTORY_YOU_UNZIPPED_FORGE_HERE”)
  • Let gradle generate project files for Eclipse: .gradlew.bat setupDecompWorkspace –refresh-dependencies and then .gradlew eclipse
  • Start your Eclipse, import an existing project from INSERT_DIRECTORY_YOU_UNZIPPED_FORGE_HERE
  • Right click on the project, choose Configure -> Convert to gradle project
  • Right click on the project, choose Run as… -> 1 Gradle Build, check the clean and build task and run it (or type gradle clean build)

After all of this, browse to directory build/libs in INSERT_DIRECTORY_YOU_UNZIPPED_FORGE_INTO_HERE. You should find a JAR file including your mod there. :unamused:

If you want to run your mod, you can use the following gradle tasks:

  • gradle runClient – will start minecraft with your mod
  • gradle runServer – will start a minecraft server with your mod

If you run both tasks, you can connect with your modded client to your modded server and check if everything works as expected.

I’ve heard that if you put your eclipse workspace into the eclipse subfolder in your INSERT_DIRECTORY_YOU_UNZIPPED_FORGE_INTO_HERE you get a launch configuration for those tasks for free. I didn’t try that, and created the launch configurations myself:

Client

  • Main Class: net.minecraft.launchwrapper.Launch
  • Arguments: --version 1.6 --tweakClass cpw.mods.fml.common.launcher.FMLTweaker --accessToken FML
  • VM Arguments: -Dfml.ignoreInvalidMinecraftCertificates=true

Server

  • Main Class: cpw.mods.fml.relauncher.ServerLaunchWrapper