Development Workflow optimieren

Immer wieder ertappe ich mich, wie ich beim Start eines neues Projektes nach denselben Dingen suche. Dabei könnte ich sie auch einfach einmal hier aufschreiben, dann hätte ich sie gleich.

All-Inkl Nameserver-Einstellungen für extern registrierte Domains, dabei gilt es:

  1. Die Domain im KAS von All-inkl anzulegen und danach
  2. Die Nameserver beim externen Domainanbieter anzupassen, mit den nachfolgenden Einstellungen:
1. ns5.kasserver.com
2. ns6.kasserver.com

Aktualisierung der Entwicklungsumgebung:

sudo apt update -y && sudo apt full-upgrade -y && sudo apt autoremove -y && sudo apt clean -y && sudo apt autoclean -y

// Quelle: https://askubuntu.com/questions/733434/one-single-command-to-update-everything-in-ubuntu

Weitere Einträge folgen.

Zeilenumbrüche von Excel in Access konvertieren

Wer beim Import von Daten von Excel nach Access feststellt, das die Zeilenumbrüche nicht mehr da sind, kann sie mit dem folgenden Update-Statement wiederherstellen:

UPDATE Tabelle_mit_Text_Spalte SET Spalte_mit_Text = Replace(Spalte_mit_Text, Chr(10), Chr(13) + Chr(10))

Wie man sieht, sind die Umbrüche beim Datenimport von Excel nach Access nicht verloren gegangen, nur verwendet Access andere als Excel.

Larava Code Snippet: Components und Slot

Ein Beispiel im Video zu den Neuerung in Laravel 7 mit dem Titel “Supercharged Blade Components” von Jeffrey ist, wie auch in den Kommentaren festgestellt wird, in Minute 3:30 nicht ganz nachvollziehbar. Folgender Code wird (von mir gekürzt) dargestellt:

// File: resources/views/welcome.blade.php
<x-layout>
  <x-slot name="Foobar>
    Foobar Inhalt
  </x-slot>

Inhalt hier
</x-layout>

Daneben gibt es noch ein Components, welcher entsprechend der Defintion <x-layout> auch layouts.blade.php heißen muss:

// File: resources/views/components/layout.blade.php
@if(isset($Foobar))
  Standard-Inhalt
@endif

<div>
{{$slot}}
</div>

Auf den ersten Blick würde man jetzt erwarten, dass “Foobar Inhalt” ausgegeben wird. Dem ist jedoch nicht so, da die definierte Variable $Foobar zwar abgefragt, aber nicht ausgegeben wird. Damit “Foobar Inhalt” angezeigt wird, müßte im layout.blade.php-Components folgendes angepasst werden:

// File: resources/views/components/layout.blade.php
// Old-Version
@if(isset($Foobar))
  Standard-Inhalt
@endif

// New-Version
@if(isset($Foobar))
  $Foobar
@endif

Siehe hierzu auch die offizielle Dokumentation von 5.4

Viel interessanter finde ich jetzt jedoch, dass sich die Components jetzt auch verschachteln lassen. Man kann jetzt also auch folgendes machen:

// File: resources/views/welcome.blade.php
<x-layout>
  <x-slot name="Foobar>
    <x-Foobar variable="wert"/>
  </x-slot>

Inhalt hier
</x-layout>

Somit hat man die Möglichkeit einen Standard-Wert in der jeweiligen Component zu hinterlegen und diesen bei Bedarf in der View zu aktivieren bzw. auch die Möglichkeit den zu überschreiben und ggf. durch eine andere Component zu ersetzen.

Unabhängig davon, kann ich die Videos von Jeff jedem der sich mit Laravel beschäftigt wärmstens empfehlen!

DIY: Browser Extension

Eine Browser-Extension bzw. Erweiterung selbst zu programmieren ist gar nicht so schwierig wie man vielleicht meint. Zudem sind die Einsatzmöglichkeiten wirklich vielfältig. Nachfolgend aufgelistet ein paar Ressourcen, die gut als Einstieg zur Erstellung der eigenen ersten Erweiterung dienen können:

Über Google bin ich bei Mozilla fündig geworden. Auf Github findet sich ein Repository mit vielen verschiedenen Beispiel-Erweiterungen die als Grundlage für das eigene Projekt dienen können.

In dem nachfolgenden Video wird gezeigt, wie man über about:debugging (in die URL-Zeile vom Browser eintippen und mit Enter bestätigen) eine Erweiterung schnell und einfach temporär einbinden kann:

Please accept YouTube cookies to play this video. By accepting you will be accessing content from YouTube, a service provided by an external third party.

YouTube privacy policy

If you accept this notice, your choice will be saved and the page will refresh.

Mittels about:addons kann die Erweiterung einfach per Klick immer wieder deaktiviert und aktiviert werden. So kann man schnelle und einfach Änderungen an der Erweiterung testen.

Mozilla bietet unter dem Schlagwort “Anatomy of an extension” eine interessante Übersicht der verschiedenen Möglichkeiten, eine Erweiterung in den Browser zu integrieren. Nach meinem derzeitigen Verständnis gibt es drei Möglichkeiten:

  1. Hintergrundskripte: diese laufen die ganze Zeit im Browser im Hintergrund und sind nicht abhängig von der jeweiligen Webseite, sondern werden sogar bei der Betrachtung von PDFs ausgeführt. Über das Schlagwort “background.js” findet man weitere relevante Informationen dazu.
  2. Sidebars, Pop-ups, Options-Pages: hier hast du die Möglichkeit eigene HTML-Seiten einzubinden, welche mit dem Hintergrundskript kommunizieren können.
  3. Content scripts: diese werden direkt in die jeweilige Webseite eingebettet, können von dieser aber auch blockiert werden. Über das Schlagwort “content_scripts.js” finden sich Informationen dazu.

Wie fängt man jetzt am besten an? Ich habe damit angefangen mit das Repo mit den Beispielen von Github herunterzuladen und mir die verschiedenen Erweiterungen anzuschauen. Wenn bereits eine grobe Idee der Erweiterung existiert, kann man einfach mal schauen, welche davon der Idee am nächsten kommt. Diese kann man dann in Firefox temporär einbinden, wie oben im Video erläutert und auch gleichzeitig in einer IDE öffnen und anfangen ein bisschen zu experimentieren.

Hinweis: einE oft verwendete Debug-Ausgabe ist sicherlich “alert(123);”, dies ist jedoch bspw. bei den Background-Skripten nicht verfügbar. Was jedoch immer funktioniert ist “console.log(123);” jedoch erscheint die die Ausgabe nicht wie sonst üblich in der Konsole, welche man mittels Strg+Umschalt+I öffnet, sondern in der Konsole, die mit Strg+Umschalt+J geöffnet wird.

Dieser Hinweis findet sich auch nochmals fast am Ende in einer gelben Box.

Praxis-Tipp: Ich habe mir die Seiten “about:debugging” und “about:addons” als Lesezeichen direkt in die “Lesezeichen-Symbolleiste” gelegt.

Außerdem habe ich mir das kleine Freeware-Programm “DeskPins” besorgt, mit welchem die Browser-Konsole, welche mittels Strg+Umschalt+J aktiviert wird, immer im Vordergrund bleibt.

Laravel bei All-Inkl installieren

Für die Installation von Laravel gibt es eine Doku und sogar ein kostenloses Video. Darin wird empfohlen Laravel via Composer zu installieren. Letzteres steht standardmäßig auf einem All-Inkl Hosting zunächst nicht zur Verfügung. Aber All-Inkl stellt eine kleine Anleitung bereit, mittels der Composer installiert werden kann.

Der Aufruf von laravel new blog schlägt jedoch trotzdem mit folgender Meldung fehl sh: composer: command not found, obwohl Composer ordnungsgemäß installiert ist, was mittels dem Aufruf composerüberprüft werden kann.

Ursächlich dafür ist, laut Support von All-Inkl:

Die Verwendung des Befehls “laravel new” ist in der chroot Umgebung nicht möglich, da hier die nötige Verlinkung mit Composer nicht möglich ist. Sie müssen hier den Alternativen Befehl “composer create-project –prefer-dist laravel/laravel ZIEL_ORDER” nehmen.

Dieses Szenario wird auch auf der Installationsseite von Laravel beschrieben.

 

© 2020 BugBlog.de

Theme by Anders NorénUp ↑