Kategorien
Webdeveloper Tools

Wie kann ich meine Maus und Tastatur auf mehreren Computern benutzen?

Die Antwort ist Synergy damit kann man auch Betriebsystemübergreifend einen anderen Computer steuern, ohne die Maus/Tastatur umstecken zu müssen. Funktioniert unter Mac, Linux und Windows.

Kategorien
Server Administration Webdeveloper Tools

Linux vergleichen von Dateien innerhalb eines Ordners auf Dateiänderungen

Mit dem diff   Befehl unter Linux kann man sehr einfach herausfinden, welche Unterschiede es in zwei scheinbar identsichen Ordnern gibt.

Ein Anwendungsbeispiel wäre z.B. 2 Projekte miteinander zu vergleichen und die Unterschiede im Code herauszufinden.

#Ausgabe auf der Console stdout
diff -qr \
--exclude="css" \
--exclude="tmp" \
/myMaster/folder /mySlave/folder


#Pipen der Ausgabe in eine Datei oder less:
diff -ur \
--exclude="css" \
--exclude="tmp" \
/myMaster/folder /mySlave/folder | /tmp/diff.txt
Kategorien
MySQL

MySQL ProcessList unter Linux beobachten

Wenn man die Process List von MySQL sich ständig aktualisiert anzeigen lassen will, kann man den watch Lionux Befehl auf der Console dafür benutzen. Login, Host und Passwort müssen ggf. geändert werden:

watch -n 1 "mysql -u root --password='myPassword' -h localhost -s -e 'SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST WHERE 1 = 1;'"
Kategorien
Webdeveloper Tools

Jira Template für Request und Response für Backend

Man kann in Jira mit diesem Template leicht eine wohlformnatierte Request / Response zaubern:

{panel:title=Request}
    {code:xml}
       myRequest here
    {code}
{panel}

{panel:title=Response}
    {code:xml}
      myResponse here
    {code}
{panel}
Kategorien
Ansible Server Administration

PHP7 mit Ansible installieren

Mit Ansible kann man sehr einfach alle PHP7 von Ondrej’s Respository installieren mittels der Befehle:

- name: Remove old PHP7 ppa repository
  apt_repository: repo='ppa:ondrej/php-7.0' state=absent

- name: Add PHP7 ppa repository
  apt_repository: repo='ppa:ondrej/php'

- name: Install packages
  apt: pkg={{ item }} state=latest update_cache=yes
  with_items:
   - mysql-client
   - nginx
   - php7.0-cli
   - php7.0-fpm
   - php7.0-dev
   - php7.0-curl
   - php7.0-gd
   - php7.0-mbstring
   - php7.0-mcrypt
   - php7.0-mysql
   - php7.0-soap
   - php7.0-sqlite3
   - php7.0-xml
   - php7.0-zip
   - php7.0-bcmath
   - php7.0-ssh2
   - php-rrd
   - git
   - zlibc
  tags:
   - php
Kategorien
PHP PHPUnit Testing Webdeveloper Tools

Run PHPUnit Unit and Integrations test with different configurations in PHPStorm

If you want to develop unit and integration tests with PHPStorm you can easily bootstrap your application and run your tests. But if you want to develop real unit tests in your local development enviroment without having a database connection or a cache, you need to make sure, that your application is configured differently, when unit tests are running. In this article you will learn how to do that and how to make PHPStorm will automatically recognize which tests/tests suites you want to execute.

Requirement:

Your integration and unit tests are seperated in 2 directories, like:

/tests/unitTests
/tests/integrationsTests

Overview

Kategorien
Elasticsearch PHP

Elasticsearch Subquery Scoring Optimization

If you want to build a search query in Easticsearch where you can give documents a bonus score depending on how often a property can be found in other documents

– you need is a Subquery which is not supported by Elasticsearch, you need another better solution.

An Example for a Subquery is the problem:

Imagine a CD online shop. You want to score CDs ( = documents) higher which

1. match a term query AND

2. and which artist has many other CDs in your shop database

You would need a field, which aggragts the artist count in your mapping (artistCount for Example) and on query time and boost the artistCount field with the score:

{
    "query" : {
        "custom_score" : {
            "query" : {
                "match_all" : {}
            },
            "script" : "_score + (1 * doc.artistCount.integerValue)"
        }
    }
}

It would be also a good idea, to have a second index, which holds the artistCount information, because on every update of the inventory of your shop, the artsitCount needs to be recalculated.

 

 

Kategorien
PHP PHPUnit Testing

PDOException: You cannot serialize or unserialize PDO instances

Beim Mocken von Objekten mit PHPunit kann es zur Fehlermeldung:

PDOException: You cannot serialize or unserialize PDO instances

kommen, immer dann, wenn im Constructor eine PDO Instanz injeziert wird. Dies kann unterbunden werden durch:

class PDOMock extends PDO{
    public function __construct(){}
}
Kategorien
GIT Version Control

PHPStorm .idea Ordner aus dem GIT entfernen aber lokal behalten

Wenn man ausversehen den .idea Ordner mit in seiner GIT Versionierung übernommen hat, ist es leider über die IDE PHPStorm nicht möglich, diese wieder zu entfernen.

Man kann aber einfach über die Konsole einen Befehl ausführen, der den Ordner aus dem GIT entfernt und lokal weiter behält (kein löschen der mühsam eingerichteten Einstellungen!).

git rm --cached -r -f  .idea/

Danach sollte in der .gitignore der Ordner eingetragen werden:

/.idea
Kategorien
Hardware

NAS / externe Festplatte selbst retten und reparieren

Wenn einem mal wieder die Festplatte ohne Backup abgeschmiert ist oder das NAS einfach nicht mehr die Verbindung aufnehmen will zum eigenen Rechner, interessiert man sich für die Datenrettung von Festplatten.

Mit ein paar einfachen Schritten und Gadgets lässt sich das schnell von zu Hause aus machen.

1. Schritt: Externe Festplatte entkernen, NAS zerlegen

Dabei geht es genauso brutal zu, wie es sich anhört: Die modernen Verpackungen sind schwer zu knacken. Die Bergung der Festplatte aus dem Gehäuse ist oftmals schwieriger als gedacht, aber mit ein wenig Gewalt und Köpfchen möglch. Am wichtigsten ist, das Verstecke der kleinen Mini-Schraube zu finden, die hinter einem Aufkleber in der hintersten Ecke des Gehäuses zufällig platziert wurde, damit man sein Gerät auf jeden Fall nie wieder zusammen bauen kann.

Wenn man fertig ist mit seinem NAS sieht das in etwa so aus:

IMG_4954
Mein stark beschädigtes und garantiert nie mehr funktionsfähiges NAS, oben links ist die ausgebaute Festplatte zu sehen, die im nächsten Schritt ausgelesen wird. 3 Jahre hat es gehalten das Miststück, danke Samsung für den Müll

2. Schritt: Auslesen der Festplatte mit dem Kloner