Alle Beiträge von mic91668

LOAD DATA INFILE von DATETIMES

Wenn die Datumswerte in der .csv nicht gerade zufällig im MySQL-Format vorliegen, kann ein INSERT INTO INFILE diese Daten nicht richtig in die entsprechende Spalte laden und sie werden auf 0 gesetzt.

1. Schritt: richtiges Datumsformat finden

In einer .csv Datei liegt alles nur als Text vor. Dieser Text muss nun erstmal in ein Datum verwandelt werden. Dies geschieht mit der 
STR_TO_DATE()-Funktion. Um das richtige Format zu finden, kann man nun das Datum im .csv kopieren und hier einfügen. Anschließend fummelt man so lange an dem Format, bis die Konvertierung gelingt. Das sieht dann beispielsweise so aus:

2. Schritt: richtig in INSERT INTO FILE einbauen

Leider ist es in INSERT INTO FILE nicht ganz elegant gelöst, einen Import durchzuführen, wenn die Spalten in der .csv von den Spalten in der MySQL-Tabelle abweichen. So müssen erstmal alle Spalten mit Namen in der entsprechenden Reihenfolge aufgeführt werden, also z.B. 

LOAD DATA INFILE 'C:/projects.csv'
INTO TABLE t_remote             
FIELDS TERMINATED BY ';' 
LINES TERMINATED BY '\n' 
IGNORE 1 LINES
(id, coid, comp, ptitle, ptime, ptime2, pother, parea, pdesc, purl, pextid, @created, pcity)
SET created = STR_TO_DATE(@created, '%d.%m.%Y %H:%i')
; 

Selenium auf Intellij & Firefox zum laufen bekommen

Eine ausführliche (aber leider nicht mehr aktuelle) Anleitung findet sich hier: 
https://www.guru99.com/intellij-selenium-webdriver.html

Hier eine Kurzanleitung, die voraussetzt, dass ein aktuelles IntelliJ mit einem aktuellen JDK bereits läuft:

IntelliJ startklar machen

Deine Selenium-Tests programmierst Du am besten in Java, weil Java im Selenium-Projekt am weitesten verbreitet ist. Daher das entsprechende .zip hier downloaden:

Das .zip nach C:\Users\Michael\Desktop\Selenium oder einen beliebigen anderen Ordner entzippen.

In IntelliJ ein neues Java-Projekt anlegen.

Firefox-Driver startklar machen

Download neueste 
geckodriver-vX.XX.X-win64.zip von 
https://github.com/mozilla/geckodriver/releases 

Das .zip nach
C:\Users\Michael\Desktop\Selenium oder einen beliebigen anderen Ordner entzippen.

Testprogramm schreiben

In IntelliJ Rechtsklick auf src -> New -> Java Class

package com.company;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class Main {

public static void main(String[] args) {
System.setProperty("webdriver.gecko.driver", "C:\\Users\\Michael\\Desktop\\Selenium\\geckodriver.exe");
WebDriver driver = new FirefoxDriver();
driver.get("http://seleniumhq.com");
}
}

Rechtsklick auf die TestSelenium-Klasse und Run klicken.

Checkliste: wie erkenne ich einen Ego-Programmierer?

Ego-Programmierer schaden dem Team v.a. langfristig. Kurzfristig mögen sie dem Team erstmal Beschleunigung verschaffen, weil sie gewisse Programmierfertigkeiten besitzen und erstmal Probleme lösen. Langfristig muss ein Team diese kurzfristige Erleichterung aber teuer bezahlen, weil der Ego-Programmierer die technische Schuld der Codebase mit schwer bis gar nicht verständlichem Code erhöht. Wie aber erkenne ich solche Ego-Progammierer? Folgende Checkliste speist sich aus teuer erkaufter Erfahrung:

Dem Ego-Programmierer genügt es nicht, die Realität einfach abzubilden, weil das seine lächerlichen Kollegen auch gerade noch so hinbekommen. Erst durch zusätzliche möglichst abstrakte Entitäten mit Namen wie IntermediatorFactory, TransactionalBuilderObject, ConnectionSingleton, CompositeAdapterClass, ServiceMediatorController, usw. läßt es sich vom Programmierpöbel abheben. Ohne die Gang of Four fehlte ihm die Rechtfertigung eine verständliche Codebase in SEINE Codebase zu verwandeln. 

Schreibt ein durchschnittlicher Programmierer aus Zeitmangel oder 14-Uhr-Loch-Blut-Im-Hirn-Mangel schwerverständlichen Code, entschuldigt er sich bei Dir. Nicht so der Ego-Programmierer: er grinst dich blöd an. Und mit blöd meint er dich.

Der Ego-Programmierer packt möglichst viele Gedankengänge in eine Codezeile – weil er’s kann.

Der Ego-Programmierer verwendet häufig Abkürzungen als Bezeichner, weil nur Anfänger sprechende Namen benutzen.

Während sich die Welt schon mit 3 Schichten geschlagen gibt, läuft der Ego-Programmierer erst zur Höchstform auf, wenn sein Debugger auf einem Call-Stack mit 20+ Schichten anhält.

Der Ego-Programmierer schreibt weder Kommentare noch eine Dokumentation, weil’s einfach vor dem Chef nicht gut rüberkommt, wenn die Urlaubsvertretung auch etwas hinbekommt.

Der Ego-Programmierer denkt gar nicht daran, alles Überflüssige wegzulassen – er hat nun mal geniale Gedanken, die sich irgendwie im Code spiegeln müssen …