Kleine Helferlein für Webentwickler

Als Webentwickler hat man viele Tools und kleine Helferlein, die man fast täglich gebraucht. Ob es jetzt die IDE, das Mail-Programm, der Bug-Tracker, Skype oder einfach nur der Browser ist – jeder kennt sie und benutzt sie mehrmals am Tag. Aber was ist mit all den Helferlein, die nicht täglich zum Einsatz kommen? Auch diese kleinen Unterstützer haben es mal verdient gewürdigt zu werden. Hier meine Sammlung an Tools und Helferlein, die zwar nicht regelmäßig zum Einsatz kommen, aber dennoch zur Stelle sind, wenn man sie braucht:

HTTrack
Dieses kleine Tool speichert eine komplette Website für den Offline-Gebrauch. Dabei werden alle Seiten statisch und einzeln als HTML abgespeichert. Das gleiche gilt natürlich auch für die auf der Seite verwendeten Bilder, CSS und JavaScripts.

Handbrake
Handbrake ist ein Programm zum einfachen Konvertieren von Videos. Solchen Programmen gibt es zwar wie Sand am Meer, aber für Webentwickler ist Handbrake wegen der Option „web optimized“ besonders interessant. So lassen sich alle möglichen Video-Formate in streambare MP4-Videos für’s Web verwandeln.

Xenu’s Link Sleuth
Mit diesem Helferlein kann eine Website auf defekte Links überprüft werden. Der Crawler durchsucht alle Seiten nach Links und folgt ihnen. Links, die zu nicht mehr erreichbaren Seiten führen, werden später in einem Bericht dokumentiert.

Wireshark
Das letzte Mittel, wenn es darum geht, Fehler im Netzwerk auszumachen und zu analysieren. Netzwerkfehler, zum Beispiel bei doppelt belegter IP, kommen zwar nur selten vor, aber wenn, dann ist Wireshark zur Stelle – auch wenn die Handhabung an der ein oder anderen Stelle etwas klobig ausfällt.

LanguageTool
Eigentlich sollte das LanguageTool in der Liste für häufig verwendete Tools auftauchen, denn korrekte Rechtschreibung und Grammatik halte ich für so wichtig, dass alle Texte darauf kontrolliert werden sollten. Aber das bleibt wohl ein Traum. Dennoch: Wer mal ein Office-Dokument, eine wichtige Mail oder einen Blog-Artikel schreibt, sollte den Text vorher einmal durch das LanguageTool korrigieren lassen. Und für OpenOffice, LibreOffice und Firefox wird sogar eine Extension bereitgestellt.

JAP
Manchmal kommt es vor, dass eine Website bei mir eine völlig andere Ausgabe erzeugt als jemand anderem. In den meisten Fällen ist daran der Client-Cache Schuld, aber ab und zu liegt es auch an der IP-Adresse, zum Beispiel, wenn man für seine eigene IP eine erweiterte Fehlerausgabe aktiviert hat, die sonst niemand sehen soll. Dann ist es durchaus sinnvoll mal kurz über eine andere IP-Adresse auf die Seite zu schauen. Dafür eignet sich JAP hervorragend, da es nur den Browser über einen Proxy umleitet und nicht den gesamten Internetverkehr des Rechners. Als Alternative ist dabei auch noch TOR zu nennen.

Habt ihr auch nützliche Tools, die ihr nur selten verwendet? Schreibt es in die Kommentare!

TYPO3 Fluid > POST-Parameter in Paginate-ViewHelper übernehmen

Manchmal benötigt man für eine Pagination zusätzliche Übergabeparameter. Zum Beispiel, wenn man für eine Listenansicht zuvor ausgewählte Filter, Sortierungen oder sonstige Parameter verwendet. Mit Hilfe des Standard-ViewHelpers Paginate von TYPO3, lässt sich das kinderleicht umsetzen:

View Code HTML5
<f:widget.paginate objects="{myObjects}" as="paginatedObjects" configuration="{itemsPerPage: 5, addQueryStringMethod: 'POST,GET'}">
...
</f:widget.paginate>

Wie man sieht, braucht man dem Konfigurations-Attribut lediglich den Wert „POST,GET“ für addQueryStringMethod hinzuzufügen, damit Fluid alle vorhandenen Parameter aus POST und GET an die Seitenlinks anhängt.

Im Übrigens lässt sich das auch bei eigenen Widgets anwenden. Dafür gibt man das addQueryStringMethod-Attribut an den Link-Widget-ViewHelper:

View Code HTML5
<f:widget.link arguments="{page: 1}" addQueryStringMethod="POST,GET">Seite 1</f:widget.link>

OpenLayers 3 > Zoom per Maus-Scroll deaktivieren

Wer das Zoomen per Maus-Scroll deaktivieren möchte, braucht seinem Map-Objekt lediglich eine zusätzliche Code-Zeile hinzufügen:
interactions: ol.interaction.defaults({mouseWheelZoom:false})
Die Steuerung über die Zoom-Buttons sowie per Touch bleiben davon unberührt.

Hier noch mal ein komplettes Beispiel:

View Code JAVASCRIPT
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/ol3/3.9.0/ol.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/ol3/3.9.0/ol.min.css" type="text/css" media="all" />
<div id="map"></div>
<script type="text/javascript">
	var map = new ol.Map({
		layers: [
			new ol.layer.Tile({
				source: new ol.source.OSM()
			})
		],
		interactions: ol.interaction.defaults({mouseWheelZoom:false}),
		target: 'map',
		view: new ol.View({
			center: ol.proj.fromLonLat([9.0, 51.0], 'EPSG:3857'),
			projection: ol.proj.get('EPSG:3857'),
			zoom: 7
		})
	});
</script>