Donnerstag, 2. Mai 2024

Alter Fernseher wieder cool

 Wir haben ewig unseren alten Fernseher nicht mehr benutzt, weil wir nur noch streamen. Da waren wir schon kurz davor einen neuen zu kaufen, aber haben dann doch noch einmal einen Amazon Fire Stick* ausprobiert. War ein voller Erfolg. Jetzt nutzen wir das alte Ding wieder regelmäßig.

Es lässt sich massig Software installieren. Sogar den Amazon Startbildschirm kann man austauschen um die Werbung dort los zu werden.

* Affiliation Link

Mittwoch, 19. Juli 2023

Laravel Forge: fatal: couldn't find remote ref refs/heads

On Laravel Forge I checked out a branch and deleted it from the git server by accident. Now I can not fetch and can not switch branch. Fun fact Forge tells me it switched while it did not:

forge@myserver:~/myserver.de$ git fetch 

fatal: couldn't find remote ref refs/heads/mybranch

fatal: the remote end hung up unexpectedly

This can be fixed be open and edit .git/config

In remote section replace the checked out branch mybranch with * two times:

[remote "origin"]

    url = git@bitbucket.org:me/mygit

--  fetch = +refs/heads/mybranch:refs/remotes/origin/mybranch 

++  fetch = +refs/heads/*:refs/remotes/origin/*

Save and quite.

Now you can run "git fetch" and "git checkout main".

I also deleted the old branch: git branch -d mybranch 

Donnerstag, 13. Juli 2023

Neato lidar laser not spinning

 

My Neato was starting and stopping but it did not move.

Turned out the lidar in the tower was not spinning. You can find a guide how to fix it on YouTube. In the video he uses an old motor from a CD Player he had. If you need to buy one you might be lost. I searched a long time. You can use a "solar" motor but they might break soon again.

I replaced it with RF-300FA-12350 DVD Player Motor from ebay (3,99€).
12V, Size: 24.4 x 12.4 mm with 19.4 mm shaft.

It is important to revers polarity. I cut of the old motor from the plug and soldered the red wire to the black one.

Also if you need to replace the side brush rubber, you can use a 25 x 2 mm seal. 3,50 € for 10 pieces.

Donnerstag, 19. November 2015

PHPStorm open local terminal in project folder

Not sure why this is not default, but can change this.

In Settings > Tools > Terminal change the "Shell path" and add your project path.

Windows: cmd.exe /K cd C:\your_project_path
Linux/Mac: ? (please leave a comment)

Donnerstag, 15. Oktober 2015

PHPStorm: fatal: protocol error: bad line length character: Erro

In PHPStorm I got with git pull and git push this error:

fatal: protocol error: bad line length character: Erro
An error has occurred while processing the shared archive file.
Unable to unmap shared space.

While command line and tortoise worked fine.

Fixed it by changing in PHPStorm settings in Version Control > Git:
"SSH executable" from "Build-in" to "Native"

Only toke me a few hours to figure this out :D

Dienstag, 29. September 2015

Allgemeine Zeitung: Eine Datenkrake am Rande der Legalität

Das Webseiten ihre Benutzer gerne ausspionieren ist bekannt. Die AZ geht jedoch noch einen Schritt weiter, in dem sie die Evercookie genannte Technik einsetzt. Eine Methode, die auch von der NSA bereits zur Spionage benutzt wurde.

Das besondere bei Evercookies ist, dass sie sich nicht löschen lassen und auch im "Private Surfen" Modus des Browser noch funktionieren. Darüber hinaus sind Cookies immer an eine Seite/Domain gebunden, wohingegen Evercookies diesen Sicherheits-Mechanismus durchbrechen und auch auf anderen Seiten den Benutzer weiter verfolgen.

Generell missbraucht die Technik zahlreiche Funktionen, die gar nicht zum Speichern von Daten gedacht sind und stört so deren eigentlichen Zweck. Wie ein Virus kopiert das Script seine Daten an alle verfügbaren Stellen. Löscht oder überschreibt man eine Speicherort, wird dieser automatisch aus den anderen Quellen wiederhergestellt. So zum Beispiel, wenn im Browser seine Cookies löscht.

Der Autor selbst gibt einige Gründe an warum man Evercookie nicht verwenden sollte und schreibt "Be warned! Evercookie can potentially cause problems for you or your users.". Aufgeführt sind Performance- und Darstellungs-Probleme, aber auch das es Ansehen und Ruf der Seite schaden kann.

Ich persönlich finde es eine Frechheit, was die AZ ihren Lesern zumutet. Zudem bezweifel ich, dass solche Hacker Methoden in Deutschland legal sind.


Der Evercookie ist bei der Allgemeinen Zeitung zur Zeit hier zu finden:


Update 01.10.2015

Da ich verwundert war, dass sich jemand in Deutschland traut Evercookies einzusetzen habe ich mal nach anderen Seiten gesucht ob dies eine verbreitete Technik ist. Bei der Quellcode-Suchmaschine meanpath findet sich jedoch nur 5 Treffer. Die meisten davon schein zwar eine deutsche .de Domain zu haben, aber zu einem ausländische Unternehmen zu gehören.

Außerdem habe ich noch einen Rechsanwalt gefunden, der die Verwendung in Deutschland ebenfalls als problematisch bewertet.


Mittwoch, 16. September 2015

Spam-Welle in Deutschland

Gerade läuft eine Spam-Welle. Die sehen u.a. so aus:

Guten Tag,
Wir bieten Ihnen Kredite zu guten Konditionen an von 2000 bis zu 100 000 Euro
Kreditantrag ist für Sie kostenlos.
Auch ohne Schufa!

Schaut man sich die Mail Header an, sieht man woher die Mail kommt:

Received: from edenbrent.com ([79.165.77.63]) by mx-ha.gmx.net (mxgmx105) with
 ESMTP (Nemesis) id xxxxxxxxxxxxxxxxx for ; Wed, 16
 Sep 2015 09:10:11 +0200
Received: by %108.16.130.32; Wed, 16 Sep 2015 11:04:03 +0300

Also von 108.16.130.32 über edenbrent.com. Die IP wird von einem Botnetz sein, das habe ich mir nicht weiter angeschaut. Interessanter ist der Host über den die Mails verschickt werden. Da gibt es noch viele weitere:



Es fällt sofort auf, dass es alles Wordpress Seiten sind, womit klar ist, dass die Seite wohl gehacked wurden und nun munter Spam verschicken.

Ich habe die Seitenbetreiber nun mal angeschrieben, aber bei der unendlichen Anzahl von Wordpress Seiten ist das natürlich mühsam. Interessant wäre zu wissen über welche Lücke die Seite gehacked wurden...


Mittwoch, 3. Juni 2015

Privacy vs AI

Das große Dillema des nächsten 10 Jahre. Immer mehr Sprachassistent schießen aus dem Boden. Siri, Google Now, Echo oder jetzt Musio. Autos werden künftig serienmäßig einen Assistent verbaut haben.

Die kleinen Helfer werden immer mehr können, doch der Harken: Sie funktionieren nur Online. Sie brauchen ein Rechen Cluster, dass ihnen die gewünschte Intelligenz einhaucht. Dafür wird es nötig Sprache live aus Autos, Wohnung, ... aus aller Welt in große Rechenzentren zu leiten. Der feuchte Traum eines jeden Geheimdienstes. Seit Snowden besteht kein Zweifel mehr daran, dass diese Daten kopiert und automatisch ausgewertet werden.

Da ist nur zu hoffen, dass steigende Rechen-Leistung bald für den Assistent zuhause ermöglichen, bevor sich das richtig durchsetzt.

Mittwoch, 22. April 2015

Index strikes back!

Das war ein Spaß heute. Es fing an, das PhpStorm keine Datei auf den Server geladen hat. Stattdessen reagiert es einfach nicht mehr. Remote Host öffnen... hängt. FileZilla... hängt. SSH.. ls.. hängt... hängt.... zeigt unendlich viele backup Dateien der index.php:

index.php.bak.553785435d2a1
index.php.bak.5537866e6dd85
index.php.bak.5537879a7f265
index.php.bak.553788c6b1cd0
index.php.bak.553789f2c3d3f

$ rm index.php.bak.*
/bin/rm: Argument list too long

Google... stackoverflow ftw

$find . -maxdepth 1 -name "index.php.bak.*" -print0 | xargs -0 rm

Haha, gewonnen, alles gut. Upload geht wieder. Remote Host... zweigt schon wieder index.php.bak.553793529fb77

$ ls -la

-rw-rw-rw-.  1 apache apache       index.php.bak.553790fab8794
-rw-rw-rw-.  1 apache apache       index.php.bak.553792268158b
-rw-rw-rw-.  1 apache apache       index.php.bak.553793529fb77

Alle 5 Minuten wird eine erstelle. Von apache, also irgendein Script...

$ crontab -e

Ist leer.

$ ls /etc/cron.*

Auch nichts dabei.

$ grep "index.php." -R *

Wieder nichts...

Schließlich findet sich im Apache Log der entscheidende Hinweis. Ein verschlüsseltes Fremd-Modul wird von außen alle 5 min. aufgerufen und macht irgendeinen mist.

Hersteller ist informiert. Derweil heißt es fleißig löschen...

Freitag, 23. Januar 2015

Detect client speed using JavaScript

You can detect how long it toke for the browser to load the page. With load I mean the download time. Have a look at window.performance it contains all the timings. Also see html5rocks.

if (window.performance && window.performance.timing)
{
    var download_time = (window.performance.timing.responseEnd           - window.performance.timing.responseStart);
    var speed = ($('html').html().length) / download_time;
    if (speed < 400)
    {
        alert('slow');
    }
    else    {
        alert('fast');
    }
}

Note that this works best it the page size is large. For small pages the TCP/IP overhead for is large compared to your download time. My page was about 19304 bytes and I was able to detect mobile vs desktop.

Also see this stackoverflow question.

This does not work for IE8 and Safari

Mittwoch, 17. Dezember 2014

IE Post empty with NTLM

With NTLM login enabled sometimes data send with POST is missing. This is because IE has an internal timeout and tries to recheck NTLM.

With fiddler you can see the problem. One hacky solution is to catch this request and response with a fake answer. After this the IE will send the normal POST data.

To get the correct NTLM response use fiddle during a NTLM login. Switch the inspector to "Auth" and look for the "Type: 1" response and replace below with long string behind "WWW-Authenticate: NTLM". Place this at the top of your page and it will catch and respond to any IE NTLM request.


$headers = apache_request_headers();
$auth = $headers['Authorization'];
if ($auth && substr($auth,0,5) == 'NTLM ')
{
    $msg = base64_decode(substr($auth, 5));
    if ($msg[8] == "\x01") {
        header('HTTP/1.1 401 Unauthorized');
        header('WWW-Authenticate: NTLM ');
        exit;
    }
}

Note: This might be a security risk. Make sure to check the user Session and send him to your NTLM login is needed.

Montag, 15. Dezember 2014

Nachricht schicken über die linux bash

Wer ist online?

# who
user1    pts/0        2014-12-15 11:33 (12.12.45.34)
user2 pts/1        2014-12-15 11:57 (56.23.53.54)

Nachricht an Benutzer user2 schicken:

# write user2 pts/2
Hallo,
nur mal so!

Ctrl+D zum Abschicken.


Montag, 1. Dezember 2014

Menschen und Roboter

Robot und Frank

Gestern hab ich den Film "Robot und Frank" geguckt und er hat meine Erwartungen voll erfüllt. Ich mag Filme, die sich mit der zunehmenden Verbreitung von Robotern auseinandersetzen. Die kritisch hinterfragen wie sie in die Gesellschaft integriert werden und welche Vor- und Nachteile sich daraus ergeben.


Real Humans

Thematisch die gleiche Richtung schlägt die schwedische Serie Real Humans ein. Diese ist selbst auf schwedisch mit englischem Untertitle noch sehr sehenswert. Inzwischen gibt es jedoch auch Deutschen Ton.



Die zweite Staffel gibt es zwar, aber konnte ich bisher nicht finden.

Donnerstag, 6. November 2014

webid-solutions ing-diba Warteschleife schummeln

Ich liebe Web-Anwendungen, vor allem wenn sie sauber geschrieben sind. Vor allem weil das JavaScript schön Open Source ist und man als Anwender die frei Kontrolle über die UI hat.

So habe ich neulich ein Konto bei der ING-DiBa angelegt und die bequeme Legitimation per Video-Call genutzt. Leider hängt man dabei recht lange auf der Webseite www.webid-solutions.de/diba und wartet auf einen Ansprechpartner. Besonders nervig, dass man nur alle 30 Sekunden neu Versuchen kann und dann wartet man wieder.

Die Warte Zeit kann man aber gut nutzen um eben mal den Source Code auf zu machen und die callSkype() Funktion zu suchen. Dort ist schnell die lästige alert() Meldung, dass man doch 30 Sekunden warten soll ersetzt durch ein automatisches neu versuchen. Einfach F12 und die Funktion in die Console kopieren und schon ist das Warten vorbei:

function callSkype() {
    var xmlhttp;
    var theUrl = "https://webid-gateway.de//service/skypename/cn/000112/ai/160746000";
    var d = new Date();
    var t = d.getTime();

    clickcounter = clickcounter + 1;
    if (clickcounter == 2) {
        document.getElementById("callback_box").style.display                  = "block";
    }
    if (window.XMLHttpRequest) {
        xmlhttp = new XMLHttpRequest();
    } else {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }

    xmlhttp.onreadystatechange = function () {
        if (xmlhttp.readyState == 4) {
            if (xmlhttp.responseText !== "") {
                window.location = "skype:"+xmlhttp.responseText                       +"?call&video=true";
            } else {
                // nein ich möchte nicht warten
                // sondern es direkt nochmal probieren:
                callSkype();
            }
        }

    }
    xmlhttp.open("GET", theUrl, true);
    xmlhttp.send(null);
    lastClick = t;
}
callSkype();

Dienstag, 16. September 2014

Jetzt ohne Werbung!

Wie angekündigt ist die Google Werbung hier im Blog nun abgeschaltet.

Ich muss jedoch anmerken, dass in den letzten 5 Monaten niemand auf einen Flattr Button gedrückt hat! Wahrscheinlich fehlt dazu hier das passende Publikum. Ich lass vorerst trotzdem Flattr mal noch drin...

Mittwoch, 18. Juni 2014

Passwörter verschicken

Webanwendungen sollte nie Passwörter verschicken sondern nur einen Passwort-Rest Link. Trotzdem kommt es in der Praxis leider manchmal vor das man jemand ein Passwort schicken will und der Empfänger leider kein GPG oder S/MIME hat.
Hier kann man dann ein passwort-geschützes Archiv schicken oder aber wenn sonst wirklich nichts geht einen Dienst wie https://onetimesecret.com/ benutzen. Das am besten jedoch nur, wenn man die Open Source Version selbst installiert hat. Mit https natürlich! Onetimesecret zeigt den Content nur einmal an und dann nie wieder.

Montag, 16. Juni 2014

Bitbucket: Search file size to find big files

To find big files in your repository you can press F12 and search in your browser using the Bitbucket Api. Here is an example:
function getFolder(name){
 $.getJSON(name, function(response)
 { 
  $.each(response.directories, function(i, a)
  { 
   getFolder(name + '/' + a);
  } );
  $.each(response.files, function(i,a){ 
   if (a.size > 1024*1024 ) console.log(name, a);
  });
 });
}

getFolder('https://bitbucket.org/api/1.0/repositories/<user>/<rep-slug>/src/master/');

Dienstag, 20. Mai 2014

ImageMagick batch convert jpg to tiff windows

To convert all files in current directory create a .bat file containing:

for %%f in (.\*) do (
 convert %%f tiff/%%~nf.tiff
)

Where %%~nf is a special operator returning the file name without extension.

Mittwoch, 14. Mai 2014

Schneller lesen mit OpenSpritz

Mit OpenSpritz kann man Texte schneller lesen. Gibt's als Android App und Chrome Plugin. Alles OpenSource.
Im Chrome Text markieren und Rechtsklick "Start Readline" schon geht es los. Pause mit Space falls es zu schnell geht kann man auch langsamer oder eben auch schneller stellen.

Dienstag, 13. Mai 2014

ImgBurn Graph Data

Gerade durchforste ich meine Festplatte mit WinDirStat nach unnützen Dateien als ich ein Verzeichnis von ImgBurn finde in dem über die letzten zwei Jahre protokolliert wurde was ich wann gebrannt hab. Ich brenne nicht viel waren nur 5MB für 63 CDs, aber gruselig das hier einfach ein Log geschrieben wird ohne das man informiert wird. Wenn diese Liste der Sicherheitskopien in falsche Hände gelangt...

%HOMEPATH%\AppData\Roaming\ImgBurn\Graph Data Files

Abstellen lässt sich das unter

Tools > Settings... > Graph Data > Capture Graph Data