<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Tipps &#8211; LGK Blog</title>
	<atom:link href="/category/tipps/feed/" rel="self" type="application/rss+xml" />
	<link>/</link>
	<description>Design, Ideas and Thoughts</description>
	<lastBuildDate>Fri, 04 Aug 2017 09:50:11 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.0</generator>

<image>
	<url>/wp-content/uploads/2022/04/favicon-150x150.png</url>
	<title>Tipps &#8211; LGK Blog</title>
	<link>/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>If / else statement inside of React Component&#8217;s Render method</title>
		<link>/if-else-statement-inside-of-react-components-render-method/</link>
					<comments>/if-else-statement-inside-of-react-components-render-method/#respond</comments>
		
		<dc:creator><![CDATA[Lars Kliesing]]></dc:creator>
		<pubDate>Fri, 04 Aug 2017 09:50:11 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Code Snippets]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Ideen]]></category>
		<category><![CDATA[Tipps]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[React]]></category>
		<category><![CDATA[React.js]]></category>
		<guid isPermaLink="false">/?p=1993</guid>

					<description><![CDATA[Sometimes (well, actually pretty often) you have to use conditional statements inside of React Component&#8217;s Render methods. You could do it like this: import React from "react"; class MyComponent extends React.Component { render() { return ( {"LGK" == "awesome" ? LGK is awesome! : LGK is not awesome :C } ); } } This works&#8230; <a class="more-link" href="/if-else-statement-inside-of-react-components-render-method/">Continue reading <span class="screen-reader-text">If / else statement inside of React Component&#8217;s Render method</span></a>]]></description>
										<content:encoded><![CDATA[<p>Sometimes (well, actually pretty often) you have to use conditional statements inside of React Component&#8217;s Render methods.</p>
<p>You could do it like this:</p>
<pre class="prettyprint lang-js">
import React from "react";

class MyComponent extends React.Component {
    render() {
        return (
            <div>
                {"LGK" == "awesome" ?
                    <h1>LGK is awesome!</h1>
                : 
                    <h1>LGK is not awesome :C</h1>
                }
            </div>
        );
    }
}
</pre>
<p>This works without any problem. But you always have to set the else part. But in many situations you only need the &#8220;if part&#8221;.<br />
In this case, this way is much nicer:</p>
<pre class="prettyprint lang-js">
import React from "react";

class MyComponent extends React.Component {
    render() {
        return (
            <div>
                {"LGK" == "awesome" &&
                    <h1>LGK is awesome!</h1>
                }
            </div>
        );
    }
}
</pre>
]]></content:encoded>
					
					<wfw:commentRss>/if-else-statement-inside-of-react-components-render-method/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Regular expression collection</title>
		<link>/regular-expression-collection/</link>
					<comments>/regular-expression-collection/#comments</comments>
		
		<dc:creator><![CDATA[Lars Kliesing]]></dc:creator>
		<pubDate>Mon, 08 May 2017 10:36:08 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Code Snippets]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Tipps]]></category>
		<category><![CDATA[example]]></category>
		<category><![CDATA[regex]]></category>
		<category><![CDATA[regular expression]]></category>
		<category><![CDATA[tutorial]]></category>
		<guid isPermaLink="false">/?p=1971</guid>

					<description><![CDATA[On this post I want to collect different regular expressions, that I used in my projects so I can find them very quick, when I need them in the future. For more useful regular expressions you should check out this page: Containing a string but not multiple others See the Pen Regex example: Containing String&#8230; <a class="more-link" href="/regular-expression-collection/">Continue reading <span class="screen-reader-text">Regular expression collection</span></a>]]></description>
										<content:encoded><![CDATA[<p>On this post I want to collect different regular expressions, that I used in my projects so I can find them very quick, when I need them in the future.<br />
For more useful regular expressions you should check out this page: <a href="https://projects.lukehaas.me/regexhub/" title="undefined" target="_blank"></a></p>
<h2>Containing a string but not multiple others</h2>
<p data-height="600" data-theme-id="0" data-slug-hash="GmOVBR" data-default-tab="js,result" data-user="lgkonline" data-embed-version="2" data-pen-title="Regex example: Containing String but not multiple others" class="codepen">See the Pen <a href="https://codepen.io/lgkonline/pen/GmOVBR/">Regex example: Containing String but not multiple others</a> by Lars Gerrit Kliesing LGK (<a href="http://codepen.io/lgkonline">@lgkonline</a>) on <a href="http://codepen.io/">CodePen</a>.</p>
<p><script async src="https://production-assets.codepen.io/assets/embed/ei.js"></script></p>
]]></content:encoded>
					
					<wfw:commentRss>/regular-expression-collection/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Try to avoid loops in JavaScript for better performance</title>
		<link>/try-to-avoid-loops-in-javascript-for-better-performance/</link>
					<comments>/try-to-avoid-loops-in-javascript-for-better-performance/#respond</comments>
		
		<dc:creator><![CDATA[Lars Kliesing]]></dc:creator>
		<pubDate>Mon, 03 Apr 2017 11:49:14 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Ideen]]></category>
		<category><![CDATA[Tipps]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[webdev]]></category>
		<guid isPermaLink="false">/?p=1961</guid>

					<description><![CDATA[Use objects instead of arrays A benefit of objects is that you can directly call its children elements (properties) by name. While arrays only have index numbers. Here is a simple example: const exampleDataArray = [ { id: 8462943, name: "Google", url: "http://google.com/" }, { id: 9847323, name: "Amazon", url: "http://amazon.com/" }, { id: 938442934,&#8230; <a class="more-link" href="/try-to-avoid-loops-in-javascript-for-better-performance/">Continue reading <span class="screen-reader-text">Try to avoid loops in JavaScript for better performance</span></a>]]></description>
										<content:encoded><![CDATA[<h1><small>Use objects instead of arrays</small></h1>
<p>A benefit of objects is that you can directly call its children elements (properties) by name. While arrays only have index numbers.</p>
<p>Here is a simple example:</p>
<pre class="prettyprint lang-js">
const exampleDataArray = [
	{
		id: 8462943,
		name: "Google",
		url: "http://google.com/"
	},
	{
		id: 9847323,
		name: "Amazon",
		url: "http://amazon.com/"
	},
	{
		id: 938442934,
		name: "Twitter",
		url: "http://twitter.com/"
	}
];

function getDataById(id) {
	for (let i = 0; i < exampleDataArray.length; i++) {
		if (exampleDataArray[i].id === id) {
			return exampleDataArray[i];
		}
	}
}
</pre>
<p>So in this example when I want to get an item by its ID or any other property I have to go through each other item first. Depending on how many items you have and how often you need to get one item, it can take lot of time.</p>
<p>If you use an object instead of an array it could look like this:</p>
<pre class="prettyprint lang-js">
const exampleDataObject = {
	8462943: {
		name: "Google",
		url: "http://google.com/"
	},
	9847323: {
		name: "Amazon",
		url: "http://amazon.com/"
	},
	938442934: {
		name: "Twitter",
		url: "http://twitter.com/"
	}
};

function getDataById(id) {
	return exampleDataObject[id];
}
</pre>
<p>This way we can directly point to the item we want and don't have to use a loop.</p>
]]></content:encoded>
					
					<wfw:commentRss>/try-to-avoid-loops-in-javascript-for-better-performance/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Viele Schriftarten enthalten alle Icons die du brauchst &#8211; also warum nutzt du sie nicht?</title>
		<link>/viele-schriftarten-enthalten-alle-icons-die-du-brauchst-also-warum-nutzt-du-sie-nicht/</link>
					<comments>/viele-schriftarten-enthalten-alle-icons-die-du-brauchst-also-warum-nutzt-du-sie-nicht/#comments</comments>
		
		<dc:creator><![CDATA[Lars Kliesing]]></dc:creator>
		<pubDate>Thu, 28 Jul 2016 14:26:57 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Eigene Einschätzungen]]></category>
		<category><![CDATA[Empfehlungen]]></category>
		<category><![CDATA[Ideen]]></category>
		<category><![CDATA[Tipps]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[font]]></category>
		<category><![CDATA[free]]></category>
		<category><![CDATA[Icon]]></category>
		<category><![CDATA[Service]]></category>
		<category><![CDATA[unicode]]></category>
		<guid isPermaLink="false">/?p=1925</guid>

					<description><![CDATA[&#9829; &#9782; &#5779; Emoticons sind aus sozialen Netzwerken längst nicht mehr wegzudenken. Sie werden vor allem dafür genutzt, Gefühle auszudrücken, etwas was durch Wörter häufig schwer auszudrücken ist. Oder sie untermahlen Geschriebenes, u.a. auch um Missverständnisse des Textes zu umgehen. Aber nicht nur beim Austauschen von Nachrichten sind Icons hilfreich. Für die User Experience sind&#8230; <a class="more-link" href="/viele-schriftarten-enthalten-alle-icons-die-du-brauchst-also-warum-nutzt-du-sie-nicht/">Continue reading <span class="screen-reader-text">Viele Schriftarten enthalten alle Icons die du brauchst &#8211; also warum nutzt du sie nicht?</span></a>]]></description>
										<content:encoded><![CDATA[<div class="wp-caption alignleft">
<div style="font-size: 7em;padding:0 16px;">&#9829; &#9782; &#5779;</div>
</div>
<p>Emoticons sind aus sozialen Netzwerken längst nicht mehr wegzudenken. Sie werden vor allem dafür genutzt, Gefühle auszudrücken, etwas was durch Wörter häufig schwer auszudrücken ist. Oder sie untermahlen Geschriebenes, u.a. auch um Missverständnisse des Textes zu umgehen.</p>
<p>Aber nicht nur beim Austauschen von Nachrichten sind Icons hilfreich. Für die User Experience sind Symbole ein wichtiger Bestandteil. Ein &#9776; öffnet ein Menü, ein 	&#128270; führt eine Suche aus und mit einem &#9829; favorisiere ich etwas.</p>
<p>Oh, hast du gesehen, wie ich Icons sogar hier im Artikel verwendet habe? Und das ging ganz einfach. Und damit kommen wir zum eigentlichen Thema dieses Artikels. &#12320;</p>
<p>Ich benutzte dafür keine Icon-Library wie <a href="http://fontawesome.io/" target="_blank">FontAwesome</a>. Für das &#12320; zum Beispiel habe ich nur folgendes als HTML geschrieben: <code>&amp;#12320;</code><br />
Damit habe ich einfach nur den Unicode für dieses Symbol benutzt. Denn eine Menge Icons haben &#8212; genauso wie Buchstaben und Ziffern &#8212; einen eigenen Unicode.<br />
Vorraussetzung dafür, dass das Symbol auch angezeigt wird, ist dass die verwendete Schriftart dieses auch enthält. </p>
<h2>Finde Icons mit Graphemica</h2>
<p>Graphemica sucht Icons im Unicode basierend auf Stichwörter.</p>
<p><a class="btn btn-primary" href="http://graphemica.com/" target="_blank">http://graphemica.com/</a></p>
<p>In der Suchleiste gibst du einfach ein was du brauchst. Auf der Detail-Seite zu einem Icon findest du dann die nötigen HTML-Codes zum Einbinden auf deine Seite.</p>
]]></content:encoded>
					
					<wfw:commentRss>/viele-schriftarten-enthalten-alle-icons-die-du-brauchst-also-warum-nutzt-du-sie-nicht/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Das &#8220;Thin Design&#8221;-Phänomen</title>
		<link>/das-thin-design-phaenomen/</link>
					<comments>/das-thin-design-phaenomen/#respond</comments>
		
		<dc:creator><![CDATA[Lars Kliesing]]></dc:creator>
		<pubDate>Sun, 08 May 2016 12:00:09 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Eigene Einschätzungen]]></category>
		<category><![CDATA[Ideen]]></category>
		<category><![CDATA[Tipps]]></category>
		<category><![CDATA[Zukunft]]></category>
		<category><![CDATA[Flat Design]]></category>
		<category><![CDATA[Thin Design]]></category>
		<guid isPermaLink="false">/?p=1889</guid>

					<description><![CDATA[&#8220;Dünn&#8221; als Schönheitsideal existiert nicht nur bei bei Menschen, sondern seit geraumer Zeit auch in der Typografie. Die Variante &#8220;Light&#8221; einer Schriftart ist mittlerweile Standard. Der Trend geht in diese Richtung, weil Bildschirme immer hochauflösender werden. In Zeiten von 4K und Retina Displays haben UX-Designer deutlich mehr Möglichkeiten Dinge auszuprobieren, die zuvor noch undenkbar waren.&#8230; <a class="more-link" href="/das-thin-design-phaenomen/">Continue reading <span class="screen-reader-text">Das &#8220;Thin Design&#8221;-Phänomen</span></a>]]></description>
										<content:encoded><![CDATA[<p>&#8220;Dünn&#8221; als Schönheitsideal existiert nicht nur bei bei Menschen, sondern seit geraumer Zeit auch in der Typografie.<br />
Die Variante &#8220;Light&#8221; einer Schriftart ist mittlerweile Standard.</p>
<p>Der Trend geht in diese Richtung, weil Bildschirme immer hochauflösender werden. In Zeiten von 4K und Retina Displays haben UX-Designer deutlich mehr Möglichkeiten Dinge auszuprobieren, die zuvor noch undenkbar waren. </p>
<p>&#8220;Thin Design&#8221; scheint ein Teil davon zu sein. Und es beschränkt sich nicht nur auf die Typografie. Wer in letzter Zeit die Design-Entwicklungen von Microsoft (Windows 10) und Apple (OS X, iOS) verfolgt hat, wird feststellen, dass auch Symbole vom Schlankheitswahn betroffen sind.</p>
<p>Hier mal ein Beispiel, das ich auf der Apple-Website gefunden habe:<br />
<a href="/wp-content/uploads/2016/05/scr-0223.jpg"><img width="998" height="278" src="/wp-content/uploads/2016/05/scr-0223.jpg" alt="Screenshot" class="size-full wp-image-1893 img-responsive" srcset="/wp-content/uploads/2016/05/scr-0223.jpg 998w, /wp-content/uploads/2016/05/scr-0223-300x84.jpg 300w, /wp-content/uploads/2016/05/scr-0223-768x214.jpg 768w" sizes="(max-width: 998px) 100vw, 998px" /></a></p>
<h2>Wo kann ich &#8220;Thin Design&#8221; einsetzen &#8211; wo nicht?</h2>
<p>Als UX-Elemente halte ich &#8220;Thin Design&#8221; für eine angebrachte Sache. Sowohl für Typografie, Symbole, aber auch für andere Controls, wie Buttons, Eingabefelder, Trennlinien.<br />
Linien sollten aber möglichst vektorbasiert erzeugt werden und nicht beispielsweise als Bitmap, um eine Skalierbarkeit zu ermöglichen. Es besteht nämlich die Gefahr, dass die Linien dadurch verschwinden könnten. Bei Webdesign könnten Thin-Elemente beispielsweise per CSS (Border) oder SVG erzeugt werden.</p>
<p>Unangebracht halte ich Thin Design allerdings beim Logo-Design. Ein Logo muss universell einsetzbar sein und eine starke und selbstbewusste Darstellung haben. Besteht eine Bildmarke nur aus dünnen Linien, kann es schnell untergehen, wenn nicht sogar verschwinden. In Fließtexten bieten sich &#8220;leichte&#8221; Schriftarten auch nicht an, weil dadurch die Lesbarkeit beeinträchtigt werden kann.</p>
<p>Beim Redesign der Nachrichten-Feeds auf Startmon.com habe ich mich auch mal am &#8220;Thin Design&#8221; orientiert.<br />
Du kannst es betrachten, wenn du auf <a href="https://startmon.com/" title="undefined" target="_blank">https://startmon.com/</a> gehst und dann bei &#8220;Nachrichten-Feeds&#8221; unten links auf den Maximieren-Button klickst.</p>
<a href="/wp-content/uploads/2016/05/scr-0224.png"><img loading="lazy" width="1024" height="673" src="/wp-content/uploads/2016/05/scr-0224-1024x673.png" alt="Screenshot" class="size-large wp-image-1903 img-responsive" srcset="/wp-content/uploads/2016/05/scr-0224-1024x673.png 1024w, /wp-content/uploads/2016/05/scr-0224-300x197.png 300w, /wp-content/uploads/2016/05/scr-0224-768x505.png 768w, /wp-content/uploads/2016/05/scr-0224.png 1223w" sizes="(max-width: 1024px) 100vw, 1024px" /></a>
]]></content:encoded>
					
					<wfw:commentRss>/das-thin-design-phaenomen/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Tumblr Bilder schneller im Vollbild betrachten</title>
		<link>/tumblr-bilder-schneller-im-vollbild-betrachten/</link>
					<comments>/tumblr-bilder-schneller-im-vollbild-betrachten/#respond</comments>
		
		<dc:creator><![CDATA[Lars Kliesing]]></dc:creator>
		<pubDate>Sun, 24 Apr 2016 15:20:34 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Empfehlungen]]></category>
		<category><![CDATA[LGK]]></category>
		<category><![CDATA[LGK Services]]></category>
		<category><![CDATA[Tipps]]></category>
		<category><![CDATA[HQ]]></category>
		<category><![CDATA[Service]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Tumblr]]></category>
		<guid isPermaLink="false">/?p=1883</guid>

					<description><![CDATA[Beim Stöbern durch Tumblr-Blogs spürst du vielleicht häufig das Verlangen, ein Bild in der vollen Dimension anzusehen. Denn in Blog-Posts sind die Bilder meistens komprimiert und um auf das volle Bild zu kommen kann schon mal zu einem Krampf führen. ^^ Deswegen habe ich für dieses Problem einen kleinen Service entwickelt. Dort gibst du die&#8230; <a class="more-link" href="/tumblr-bilder-schneller-im-vollbild-betrachten/">Continue reading <span class="screen-reader-text">Tumblr Bilder schneller im Vollbild betrachten</span></a>]]></description>
										<content:encoded><![CDATA[<p><figure id="attachment_1885" aria-describedby="caption-attachment-1885" style="width: 600px" class="wp-caption alignleft"><img loading="lazy" src="/wp-content/uploads/2016/04/showTumblrImage.png" alt="Tumblr-Bilder schneller in ganzer Pracht betrachten" width="600" height="600" class="size-full wp-image-1885" srcset="/wp-content/uploads/2016/04/showTumblrImage.png 600w, /wp-content/uploads/2016/04/showTumblrImage-150x150.png 150w, /wp-content/uploads/2016/04/showTumblrImage-300x300.png 300w" sizes="(max-width: 600px) 100vw, 600px" /><figcaption id="caption-attachment-1885" class="wp-caption-text">Tumblr-Bilder schneller in ganzer Pracht betrachten</figcaption></figure>Beim Stöbern durch Tumblr-Blogs spürst du vielleicht häufig das Verlangen, ein Bild in der vollen Dimension anzusehen.<br />
Denn in Blog-Posts sind die Bilder meistens komprimiert und um auf das volle Bild zu kommen kann schon mal zu einem Krampf führen. ^^</p>
<p>Deswegen habe ich für dieses Problem einen kleinen Service entwickelt. Dort gibst du die URL des Tumblr-Posts ein und du wirst direkt auf die Vollansicht weitergeleitet.</p>
<p><a href="http://lgk.io/show-tumblr-image" class="btn btn-primary btn-lg" target="">lgk.io/show-tumblr-image</a></p>
]]></content:encoded>
					
					<wfw:commentRss>/tumblr-bilder-schneller-im-vollbild-betrachten/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Tipp: Wie du über JEDES neue Video deines Lieblings-YouTubers informiert wirst</title>
		<link>/tipp-wie-du-ueber-jedes-neue-video-deines-lieblings-youtubers-informiert-wirst/</link>
					<comments>/tipp-wie-du-ueber-jedes-neue-video-deines-lieblings-youtubers-informiert-wirst/#respond</comments>
		
		<dc:creator><![CDATA[Lars Kliesing]]></dc:creator>
		<pubDate>Mon, 22 Feb 2016 18:32:32 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Empfehlungen]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Tipps]]></category>
		<category><![CDATA[Abo]]></category>
		<category><![CDATA[Algorithmus]]></category>
		<category><![CDATA[YouTube]]></category>
		<guid isPermaLink="false">/?p=1867</guid>

					<description><![CDATA[Der &#8220;Abo-Box&#8221;-Algorithmus von YouTube ist vor allem darauf ausgerichtet, dass Videos von Kanälen, die regelmäßig neuen Content bietet, größer beworben werden. So kommt es häufiger vor, dass ihr nicht erfahrt, dass euer Lieblings-YouTuber ein neues Video veröffentlicht hat. Glücklicherweise gibt es die Option (zwar gut versteckt), dieses Verfahren für einzelne Kanäle zu deaktivieren. So geht&#8230; <a class="more-link" href="/tipp-wie-du-ueber-jedes-neue-video-deines-lieblings-youtubers-informiert-wirst/">Continue reading <span class="screen-reader-text">Tipp: Wie du über JEDES neue Video deines Lieblings-YouTubers informiert wirst</span></a>]]></description>
										<content:encoded><![CDATA[<p>Der &#8220;Abo-Box&#8221;-Algorithmus von YouTube ist vor allem darauf ausgerichtet, dass Videos von Kanälen, die regelmäßig neuen Content bietet, größer beworben werden.<br />
So kommt es häufiger vor, dass ihr nicht erfahrt, dass euer Lieblings-YouTuber ein neues Video veröffentlicht hat.</p>
<p>Glücklicherweise gibt es die Option (zwar gut versteckt), dieses Verfahren für einzelne Kanäle zu deaktivieren. So geht es:</p>
<ul>
<li>Besucht <a href="http://youtube.com/" title="undefined" target="_blank">youtube.com</a> und meldet euch an.</li>
<li>Öffnet diesen Link, um zur Abo-Verwaltung zu gelangen: <a href="https://www.youtube.com/subscription_manager" title="Abos verwalten" target="_blank">https://www.youtube.com/subscription_manager</a></li>
<li>Es werden alle abonnierten Kanäle aufgelistet. Sucht euren gewünschten Kanal und klickt rechts auf das Zahnrad-Symbol.</li>
<li>Ein Dialog erscheint. Setzt dort den Haken bei &#8220;Ich möchte alle Mitteilungen zu diesem Kanal erhalten.&#8221; und klickt auf &#8220;Speichern&#8221;.</li>
</ul>
<p><img loading="lazy" src="/wp-content/uploads/2016/02/youtube-abo-scr-1024x587.jpg" alt="So bekommst du alle Videos eines YouTubers" width="1024" height="587" class="alignnone size-large wp-image-1871´img-responsive" srcset="/wp-content/uploads/2016/02/youtube-abo-scr-1024x587.jpg 1024w, /wp-content/uploads/2016/02/youtube-abo-scr-300x172.jpg 300w, /wp-content/uploads/2016/02/youtube-abo-scr-768x441.jpg 768w, /wp-content/uploads/2016/02/youtube-abo-scr.jpg 1201w" sizes="(max-width: 1024px) 100vw, 1024px" /></p>
]]></content:encoded>
					
					<wfw:commentRss>/tipp-wie-du-ueber-jedes-neue-video-deines-lieblings-youtubers-informiert-wirst/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Good way vs. bad way: Insert HTML elements with JavaScript</title>
		<link>/good-way-vs-bad-way-insert-html-elements-with-javascript/</link>
					<comments>/good-way-vs-bad-way-insert-html-elements-with-javascript/#respond</comments>
		
		<dc:creator><![CDATA[Lars Kliesing]]></dc:creator>
		<pubDate>Tue, 20 Oct 2015 15:23:11 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Empfehlungen]]></category>
		<category><![CDATA[Good way vs. bad way]]></category>
		<category><![CDATA[Tipps]]></category>
		<category><![CDATA[embed data]]></category>
		<category><![CDATA[manipulate DOM]]></category>
		<guid isPermaLink="false">/?p=1772</guid>

					<description><![CDATA[Bad way Good way Do you prefer another way? Please leave a comment.]]></description>
										<content:encoded><![CDATA[<h2 class="page-header"><span class="glyphicon glyphicon-thumbs-down text-danger"></span> Bad way</h2>
<p><iframe loading="lazy" width="100%" height="400" src="//jsfiddle.net/sxqdesp1/embedded/" allowfullscreen="allowfullscreen" frameborder="0"></iframe></p>
<h2 class="page-header"><span class="glyphicon glyphicon-thumbs-up text-success"></span> Good way</h2>
<p><iframe loading="lazy" width="100%" height="400" src="//jsfiddle.net/Ldax12ph/embedded/" allowfullscreen="allowfullscreen" frameborder="0"></iframe></p>
<p>Do you prefer another way? Please leave a comment.</p>
]]></content:encoded>
					
					<wfw:commentRss>/good-way-vs-bad-way-insert-html-elements-with-javascript/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Traffic verringern: JavaScript-Dateien kombinieren</title>
		<link>/traffic-verringern-teil-2-javascript-dateien-kombinieren/</link>
					<comments>/traffic-verringern-teil-2-javascript-dateien-kombinieren/#comments</comments>
		
		<dc:creator><![CDATA[Lars Kliesing]]></dc:creator>
		<pubDate>Mon, 11 May 2015 14:56:13 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Empfehlungen]]></category>
		<category><![CDATA[Tipps]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Bechleunigung]]></category>
		<category><![CDATA[Compiler]]></category>
		<category><![CDATA[Compress]]></category>
		<category><![CDATA[HTTP]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[JS]]></category>
		<category><![CDATA[Optimierung]]></category>
		<category><![CDATA[Traffic]]></category>
		<category><![CDATA[Uglify]]></category>
		<category><![CDATA[Web]]></category>
		<guid isPermaLink="false">/?p=1630</guid>

					<description><![CDATA[Für das Kombinieren und Minimieren von JavaScript-Dateien, habe ich UglifyJS2 auf GitHub gefunden. Das ist ein Node.js-Modul. Um es zu verwenden, muss also Node.js installiert sein. Um UglifyJS2 zu installieren, tippe Folgendes in ein Konsolen-Programm ein (ich benutze gerne PowerShell): npm install uglify-js -g Navigiere anschließend mit cd zu deinem Projekt-Ordner. In meinem Beispiel sieht&#8230; <a class="more-link" href="/traffic-verringern-teil-2-javascript-dateien-kombinieren/">Continue reading <span class="screen-reader-text">Traffic verringern: JavaScript-Dateien kombinieren</span></a>]]></description>
										<content:encoded><![CDATA[<p>Für das Kombinieren und Minimieren von JavaScript-Dateien, habe ich <a href="https://github.com/mishoo/UglifyJS2" title="" target="_blank">UglifyJS2 auf GitHub</a> gefunden.</p>
<p>Das ist ein Node.js-Modul. Um es zu verwenden, muss also <a href="https://nodejs.org/" title="" target="_blank">Node.js</a> installiert sein.</p>
<p>Um UglifyJS2 zu installieren, tippe Folgendes in ein Konsolen-Programm ein (ich benutze gerne PowerShell):</p>
<pre>
npm install uglify-js -g
</pre>
<p>Navigiere anschließend mit <code>cd</code> zu deinem Projekt-Ordner.</p>
<p>In meinem Beispiel sieht mein Projekt-Ordner so aus:</p>
<div class="pull-left alignleft well" style="min-width: 250px;">
<ul>
<li>js
<ul>
<li>jquery.js</li>
<li>main.js</li>
<li>search.js</li>
</ul>
</li>
<li>css
<ul>
<li>&#8230;</li>
</ul>
</li>
<li>index.html</li>
</ul>
</div>
<p>Führe nun diesen Befehl aus:</p>
<pre>
uglifyjs js/jquery.js js/main.js js/search.js -o js/script.min.js
</pre>
<p>Zuerst kommt der Befehl <code>uglifyjs</code>, anschließend die zu kombinierenden Dateien (durch Leerzeichen getrennt). Das <code>-o</code> steht für &#8220;Output&#8221; und kennzeichnet die Ausgabe-Datei. In diesem Fall <code>js/script.min.js</code>.</p>
<p>Wichtig bei der Eingabe ist auch die Reihenfolge der Dateien.</p>
<div class="clearfix"></div>
<p>Anschließend müsste unser Ordner so aussehen:</p>
<div class="pull-left alignleft well" style="min-width: 250px;">
<ul>
<li>js
<ul>
<li>jquery.js</li>
<li>main.js</li>
<li>search.js</li>
<li><strong>script.min.js</strong></li>
</ul>
</li>
<li>css
<ul>
<li>&#8230;</li>
</ul>
</li>
<li>index.html</li>
</ul>
</div>
<p>Und aus:</p>
<pre class="prettyprint lang-html">
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/main.js"></script>
<script type="text/javascript" src="js/search.js"></script>
</pre>
<p>wird:</p>
<pre class="prettyprint lang-html">
<script type="text/javascript" src="script.min.js"></script>
</pre>
<div class="clearfix"></div>
<h3>Erweiterungen für Entwicklungsumgebungen?</h3>
<p><img loading="lazy" src="/wp-content/uploads/2015/05/branding_256-150x150.png" alt="Brackets Branding" width="150" height="150" class="alignleft size-thumbnail wp-image-1649" srcset="/wp-content/uploads/2015/05/branding_256-150x150.png 150w, /wp-content/uploads/2015/05/branding_256.png 256w" sizes="(max-width: 150px) 100vw, 150px" /><br />
Für Brackets habe ich ein passendes Plugin gefunden: <a href="https://github.com/daPhyre/brackets-jscompiler" title="" target="_blank">JSCompiler2</a></p>
<p>Durch eine Konfigurations-Datei können somit auch die Ein- und Ausgabe-Dateien gespeichert werden, sodass für eine Neu-Kompilierung nur noch ein Knopfdruck nötig ist. Ziemlich praktisch also.</p>
<p>Für NetBeans scheint es nichts dergleichen zu geben. Für PHPStorm lässt sich UglifyJS anscheind einrichten: <a href="https://www.jetbrains.com/phpstorm/help/minifying-javascript.html" title="" target="_blank">https://www.jetbrains.com/phpstorm/help/minifying-javascript.html</a></p>
<hr>
<p>Ich habe auch einen Artikel über das Kombinieren von CSS-Dateien geschrieben: <a href="/website-gestaltung-beschleunigung-durch-kombinieren-von-css-dateien/" target="_blank">Website-Gestaltung: Beschleunigung durch Kombinieren von CSS-Dateien</a></p>
]]></content:encoded>
					
					<wfw:commentRss>/traffic-verringern-teil-2-javascript-dateien-kombinieren/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Website-Gestaltung: Beschleunigung durch Kombinieren von CSS-Dateien</title>
		<link>/website-gestaltung-beschleunigung-durch-kombinieren-von-css-dateien/</link>
					<comments>/website-gestaltung-beschleunigung-durch-kombinieren-von-css-dateien/#comments</comments>
		
		<dc:creator><![CDATA[Lars Kliesing]]></dc:creator>
		<pubDate>Fri, 08 May 2015 14:50:03 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Empfehlungen]]></category>
		<category><![CDATA[Tipps]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Beschleunigung]]></category>
		<category><![CDATA[HTTP]]></category>
		<category><![CDATA[LESS]]></category>
		<category><![CDATA[Optimierung]]></category>
		<category><![CDATA[Traffic]]></category>
		<category><![CDATA[Web Design]]></category>
		<guid isPermaLink="false">/?p=1601</guid>

					<description><![CDATA[Wer in einem Web-Projekt viele verschiedene CSS- und JavaScript-Bibliotheken verwendet, wird feststellen, dass sich im Quellcode eine Menge HTTP-Anfragen anhäufen können: ... Die feine Art ist das nicht. Der Browser muss so bei jedem Seitenaufruf jede einzelne Datei abklappern. Je nach Internet-Leistung des Besuchers kann das eine Weile dauern. Und jede Millisekunde, die der Nutzer&#8230; <a class="more-link" href="/website-gestaltung-beschleunigung-durch-kombinieren-von-css-dateien/">Continue reading <span class="screen-reader-text">Website-Gestaltung: Beschleunigung durch Kombinieren von CSS-Dateien</span></a>]]></description>
										<content:encoded><![CDATA[<p>Wer in einem Web-Projekt viele verschiedene CSS- und JavaScript-Bibliotheken verwendet, wird feststellen, dass sich im Quellcode eine Menge HTTP-Anfragen anhäufen können:</p>
<pre class="prettyprint lang-html">
<!DOCTYPE html>
<html>
	<head>
		<link rel="stylesheet" type="text/css" href="./lib/bootstrap/css/bootstrap.css">
		<link rel="stylesheet" type="text/css" href="./lib/bootstrap/css/bootstrap-theme.css">
		<link rel="stylesheet" type="text/css" href="./lib/bootstrap-fileinput/css/bootstrap-fileinput.css">
		<link rel="stylesheet" type="text/css" href="./css/main.css">
		<link rel="stylesheet" type="text/css" href="./css/home.css">
	</head>

	<body>
		...
	</body>
</html>
</pre>
<p>Die feine Art ist das nicht. Der Browser muss so bei jedem Seitenaufruf jede einzelne Datei abklappern. Je nach Internet-Leistung des Besuchers kann das eine Weile dauern.<br />
Und jede Millisekunde, die der Nutzer warten muss, ist eine Gefahr, dass dieser die Seite wieder verlassen will.</p>
<p>In diesem Artikel möchte ich ein paar Tipps geben, wie ihr CSS-Dateien kombinieren könnt, sodass der Browser nur noch jeweils eine Datei abfragen muss.</p>
<h3>Los geht&#8217;s: CSS-Dateien mit LESS verbinden</h3>
<p>LESS ist ein CSS Pre-Prozessor. LESS-Dateien beinhalten erweiterten CSS-Code, welcher anschließend durch einen Compiler zu einer normalen CSS-Datei kompiliert wird.</p>
<p>LESS-Dateien können mehrere LESS-Dateien importieren. Die kompilierte CSS-Datei sieht dann so aus, als hätte ich einfach die einzelnen Codes hintereinander eingefügt.</p>
<h3>Beispiel</h3>
<div class="row">
<div class="col-md-6">
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">./less/main.less</h4>
</p></div>
<pre class="prettyprint lang-css">
body {
	font-family: "Arial", sans-serif;
	font-size: 14px;
	color: #000;
}
</pre>
</p></div>
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">./less/home.less</h4>
</p></div>
<pre class="prettyprint lang-css">
#nav li#home {
	font-weight: bold;
	background-color: orange;
}
</pre>
</p></div>
</p></div>
<div class="col-md-6">
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">./less/style.less</h4>
</p></div>
<pre class="prettyprint lang-css">
@import url("main.less");
@import url("home.less");
</pre>
</p></div>
<p style="text-align: center;">
			<span class="glyphicon glyphicon-arrow-down"></span> LESS-Compiler generiert CSS
		</p>
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">./css/style.css</h4>
</p></div>
<pre class="prettyprint lang-css">
body {
	font-family: "Arial", sans-serif;
	font-size: 14px;
	color: #000;
}
#nav li#home {
	font-weight: bold;
	background-color: orange;
}
</pre>
</p></div>
<p style="text-align: center;">
			<span class="glyphicon glyphicon-arrow-down"></span> CSS-Datei minimiert
		</p>
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">./css/style.min.css</h4>
</p></div>
<pre class="prettyprint lang-css">
body{font-family:Arial,sans-serif;font-size:14px;color:#000}#nav li#home{font-weight:700;background-color:orange}
</pre>
</p></div>
</p></div>
</div>
<p>Bei vielen CSS-Dateien macht das auf jeden Fall Sinn. Für viele Entwicklungsumgebungen und Code-Editor gibt es passende Plugins, welche aus LESS-Dateien automatisch CSS-Dateien generieren. Unter anderem für <a href="https://github.com/jdiehl/brackets-less-autocompile" title="" target="_blank">Brackets</a>, <a href="http://vswebessentials.com/" title="" target="_blank">Visual Studio</a> oder auch NetBeans.</p>
<p>In dem Beispiel habe ich die <code>style.css</code> außerdem noch minimiert (zu: <code>style.min.css</code>). So schrumpft auch nochmal die Größe der End-Datei. Auch hierfür gibt es entsprechende Plugins. Mit <a href="http://cssminifier.com/" title="" target="_blank">CSS Minifier</a> geht das auch online.</p>
<h3>Vorher / nachher</h3>
<p>Wenn wir das auch noch mit unseren CSS-Frameworks machen wird aus:</p>
<pre class="prettyprint lang-html">
<link rel="stylesheet" type="text/css" href="./lib/bootstrap/css/bootstrap.css">
<link rel="stylesheet" type="text/css" href="./lib/bootstrap/css/bootstrap-theme.css">
<link rel="stylesheet" type="text/css" href="./lib/bootstrap-fileinput/css/bootstrap-fileinput.css">
<link rel="stylesheet" type="text/css" href="./css/main.css">
<link rel="stylesheet" type="text/css" href="./css/home.css">
</pre>
<p>schnell das hier:</p>
<pre class="prettyprint lang-html">
<link rel="stylesheet" type="text/css" href="./css/style.min.css">
</pre>
<p><strong>Was beachtet sei:</strong> Drch die Kombinierung ändern sich auch die Verweise. Bei Bootstrap bespielsweise müssen dann die Verweise zu den Font-Dateien geändert werden.<br />
Öffne dafür die <code>bootstrap.less</code> und ersetze alle <code>../fonts/</code> durch <code>../lib/bootstrap/fonts/</code>.</p>
<h3>JavaScript-Dateien kombinieren</h3>
<p>Gut, die Stylesheets haben wir somit auf eine Datei reduziert. Doch auch bei den JavaScript-Dateien auf einer Seite kann sich einiges ansammeln.</p>
<p>In einem seperaten Artikel möchte ich darauf eingehen, JavaScript-Dateien zu kombinieren.<br />
Der Link wird dann hier angefügt.</p>
]]></content:encoded>
					
					<wfw:commentRss>/website-gestaltung-beschleunigung-durch-kombinieren-von-css-dateien/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
	</channel>
</rss>
