Text-Underlining fürs Web
Der klassische Weg, ausgewählten Text zu unterstreichen, ist die Anwendung von text-decoration: underline
. Was dabei häufig übersehen wird: Auch mit border-bottom
, box-shadow
, background-image
, SVG-Filtern, weiteren Werten der Eigenschaft text-decoration
oder in einem Canvas mit Underline.js können Unterstreichungen umgesetzt werden. In einem Tutorial erläutert John Jameson die Vor- und Nachteile jeder dieser Methoden und veranschaulicht, welche Art der Unterstreichung jeweils erreicht werden kann. Unser Fazit: Es lohnt sich durchaus, die Alternativen zu text-decoration: underline
einmal genauer zu betrachten und für sein Projekt die passende Variante auszuwählen.
6 Tipps für use
-Ausdrücke in PHP
Jeder PHP-Code macht von use
Gebrauch. Der use
-Operator dient dazu, ein Alias im Namespace anzulegen bzw. zu importieren. Ebenso findet der Ausdruck in Traits und Closures seine Anwendung. Für einen sauberen und gut lesbaren Code ist eine ebenso saubere und korrekte Anwendung von use
unumgänglich. Das haben auch die Köpfe hinter exakat.io erkannt und die Best Practices im Umgang mit use
einmal zusammengestellt. Dazu gehört etwa:
- Niemals unbenutzte Klassen importieren. Das verhindert „toten“ Code und unnötige Konfusion.
- Immer mit Aliases arbeiten.
use
-Ausdrücke immer zu Beginn des Namespace platzieren. Das wirkt sich positiv auf die Read- und Usability des Codes aus.- Nicht den gleichen Alias für verschiedene Klassen benutzen.
- Für eine bessere Lesbarkeit:
use
-Ausdrücke gruppieren. - Die Anzahl der verwendeten
use
-Ausdrücke unter zehn halten.
Android-Concurrency mit HaMeR
Jeder Android-Entwickler weiß um die Wichtigkeit, aber auch die Schwierigkeit der Android-Concurrency. Das HaMeR-Framework kann dabei behilflich sein, Android-Code Concurrency-tauglich zu machen. Die Basis bilden hier die Methoden Handler
, Message
und Runnable
. Tin Megali veranschaulicht in seinem Tutorial aufbauend auf diesen Grundlagen, wie man eine einfache App mithilfe von HaMeR erstellt und wie das Framework mit den verschiedenen Concurrency-Varianten umgeht. Außerdem zeigt er, dass HaMeR je nach Bedarf Vorteile gegenüber eines simplen AsyncTask
hat. Das komplette Projekt lässt sich auf GitHub einsehen.
System Center Operations Manager Management Pack Preview für APM
Microsoft stellt das System Center Operations Manager (SCOM) Management Pack für App Performance Monitoring (APM) in Visual Studio Application Insights zur Verfügung. Die Technical Preview soll es Entwicklern ermöglichen, Application Insights APM für Web-Apps auf eigenen Servern direkt in der Operations-Manager-Konsole zu konfigurieren. Über einen Wizard kann ausgewählt werden, welche Web-Apps mit neuen oder schon bestehenden App-Insights-Ressourcen verknüpft werden sollen. Darüber lassen sich Web-Anwendungen beobachten und Reports erstellen. Wenn die Einstellungen dann laufen, ermittelt das Management Pack automatisch neue Instanzen der Web-App auf den beobachteten Servern. Zudem deployt es die Monitoring-Infrastruktur und sendet die Daten automatisch an Azure. Die Preview steht hier zum Download bereit.
Oktober-Update für .NET Core 1.0
Hinter dem Oktober-Update für .NET Core 1.0 verbirgt sich genau eine Aktualisierung: Nutzer von macOS Sierra können ab sofort ohne Probleme .NET Core auf ihrem System installieren. Der .NET Core 1.0.2 macOS SDK Installer kann über den .NET-Blog heruntergeladen werden; für Windows- und Linux-Nutzer ändert sich nichts.
Rust 1.12.1 & Rust Language Server
Mit Rust 1.12.1 steht ab sofort eine neue Version der Programmiersprache zur Verfügung. Da mit der Veröffentlichung von Rust 1.12, einem der bedeutendsten Releases seit Rust 1.0, einige tiefgreifende Änderungen einhergingen – allen voran der Umzug zu einem neuen Compiler-Backend auf Rust-MIR-Basis – wird nun eine Patch-Version abseits des Release-Plans nötig. Denn große Veränderungen bergen auch immer Risiken: Nach dem Release wurden einige zuvor nicht festgestellte Regressions deutlich, die den MIR betreffen. Aus diesem Grund gibt es nun kurz vor Veröffentlichung von Rust 1.13 mit Rust 1.12.1 ein Patch für diese Probleme. Ausführliche Informationen zu allen Issues finden sich im zugehörigen Blogbeitrag.
Zudem hat das Rust-Team ein erstes Release des Rust Language Server (RLS) veröffentlicht. Mit RLS sollen IDEs und Code-Editoren aktuelle Daten und kontextuelle Informationen zum entsprechenden Rust-Code erhalten. Derzeit befindet sich das Projekt aber noch in einem Pre-Alpha-Stadium. RLS ist damit eine der ersten Implementierungen des Language-Server-Protokolls, das Red Hat, Codenvy und Microsoft Mitte des Jahres vorgestellt haben. Das geplante einheitliche Programmiersprachenprotokoll soll vor allem die Arbeit mit verschiedenen Tools auf unterschiedlichen Plattformen vereinfachen.