<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xml:base="https://saschadiercks.de/">
	<channel>
		<title>Feed | Sascha Diercks</title>
		<link>https://saschadiercks.de/</link>
		<description>Get the latest updates from Sascha Diercks</description>
		<language>en</language>
			
			
				
				<item>
					<title>Use Shortcuts.app to run System commands through Spotlight</title>
					<link>https://saschadiercks.de/posts/spotlight-shortcuts-applescript/</link>
					<description>&lt;figure&gt;
	&lt;img src=&quot;https://saschadiercks.de/posts/spotlight-shortcuts-applescript/spotlight.png&quot; alt=&quot;run system commands with
spotlight&quot;&gt;
	&lt;figcaption&gt;run system commands with
spotlight&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Alfred is such a great application, and I am a Mega-Supporter, but I also
like to use &amp;quot;native&amp;quot; tools as much as possible - like I do when I build
things for the web... and I also like to tinker with Software.
So one day I go a little bored and clicked my way through the shortcuts.app
and recognized, that you are able to run AppleScript with it. Since
Spotlight can also run commands from the Shortcuts.app I was just wondering
if I could use it to run system commands.&lt;/p&gt;
&lt;p&gt;Why would I do that you might ask. You know Alfred is great and super-fast
but I often use it for quite a limited amount of things:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;run system commands
&lt;ul&gt;
&lt;li&gt;empty the trash, hibernate the mac and much more&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;open applications&lt;/li&gt;
&lt;li&gt;find files&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These are my main use cases, but when I work with Jira I often add Emojis
(like the warning sign). For that use-case you need a plugin as you do for
other tasks, like converting units. And that is the nice thing with Alfred,
you can extend it to your liking.&lt;/p&gt;
&lt;p&gt;Spotlight on the other side supports a lot of features out ot the box (like
converting units), but it takes a little more effort to extend it. You need
to build functionality
with the Shortcuts.app - and since the Shortcuts.app actually supports
AppleScript, you are able to do things like restarting your Mac, like you
can do with Alfred. I know, I could run AppleScripts directly with Spotlight
when they are converted into an app, but if you run a script, that restarts
you Mac, you simply get into a loop, if reopen applications is not disabled,
which is pretty annoying.&lt;/p&gt;
&lt;figure&gt;
	&lt;img src=&quot;https://saschadiercks.de/posts/spotlight-shortcuts-applescript/shortcuts-app.png&quot; loading=&quot;lazy&quot; alt=&quot;System commands inside
Shortcuts&quot;&gt;
	&lt;figcaption&gt;System commands as shortcuts&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2 id=&quot;the-system-commands&quot; tabindex=&quot;-1&quot;&gt;The System commands &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/spotlight-shortcuts-applescript/#the-system-commands&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;So I&#39;ve built some shortcuts, that simply run AppleScript and do things I
could only do with Alfred before. Here is a list of them:&lt;/p&gt;
&lt;h3 id=&quot;quit-all-apps&quot; tabindex=&quot;-1&quot;&gt;Quit all Apps &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/spotlight-shortcuts-applescript/#quit-all-apps&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;I often run it at the end of the working day, before shutting down the device.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-AppleScript&quot;&gt;- get list of open apps
tell application &amp;quot;System Events&amp;quot;
	set allApps to displayed name of (every process whose background only is false) as list
end tell

-- leave some apps open
set exclusions to {&amp;quot;AppleScript Editor&amp;quot;, &amp;quot;Automator&amp;quot;, &amp;quot;Finder&amp;quot;, &amp;quot;LaunchBar&amp;quot;}

-- quit each app
repeat with thisApp in allApps
	set thisApp to thisApp as text
	if thisApp is not in exclusions then
		tell application thisApp to quit
	end if
end repeat
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;shutdown&quot; tabindex=&quot;-1&quot;&gt;Shutdown &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/spotlight-shortcuts-applescript/#shutdown&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Because the MacBook doesn&#39;t have an eject key anymore.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-AppleScript&quot;&gt;tell application &amp;quot;Finder&amp;quot;
	shut down
end tell
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;restart&quot; tabindex=&quot;-1&quot;&gt;Restart &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/spotlight-shortcuts-applescript/#restart&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Quickly restart your device without using the menu and without being stuck
in an endless reboot loop.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-AppleScript&quot;&gt;tell application &amp;quot;Finder&amp;quot;
	restart
end tell
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;sleep&quot; tabindex=&quot;-1&quot;&gt;Sleep &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/spotlight-shortcuts-applescript/#sleep&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Send the Mac to hibernation mode.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-AppleScript&quot;&gt;tell application &amp;quot;Finder&amp;quot;
	sleep
end tell
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;eject-all-drives&quot; tabindex=&quot;-1&quot;&gt;Eject all drives &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/spotlight-shortcuts-applescript/#eject-all-drives&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;If you want to take away your device when it is still mounted to some drives.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-AppleScript&quot;&gt;tell application &amp;quot;Finder&amp;quot; to eject (every disk whose ejectable is true)
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;mount-drives&quot; tabindex=&quot;-1&quot;&gt;Mount Drives &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/spotlight-shortcuts-applescript/#mount-drives&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;The downside is you need to manually edit the list of drives (myDrives) in the
script, but then it works perfectly fine.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-AppleScript&quot;&gt;set myDrives to {&amp;quot;Time Machine&amp;quot;, &amp;quot;Games&amp;quot;}
repeat with drive in myDrives
	set driveName to drive
	set driveInfo to do shell script &amp;quot;diskutil list | grep \&amp;quot;&amp;quot; &amp;amp; driveName &amp;amp; &amp;quot;\&amp;quot;&amp;quot;
	set driveID to last word of driveInfo
	do shell script &amp;quot;diskutil mount &amp;quot; &amp;amp; driveID &amp;amp; &amp;quot;&amp;quot;
end repeat
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;empty-trash&quot; tabindex=&quot;-1&quot;&gt;Empty trash &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/spotlight-shortcuts-applescript/#empty-trash&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Because who wants to right-click on the bin to empty it.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-AppleScript&quot;&gt;tell application &amp;quot;Finder&amp;quot;
	set warns before emptying of trash to false
	empty trash
end tell
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;what-you-need-to-do&quot; tabindex=&quot;-1&quot;&gt;What you need to do &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/spotlight-shortcuts-applescript/#what-you-need-to-do&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;If you don&#39;t want to install Alfred or a similar alternative like
Quicksilver or Launchbar, you can add the scripts listed above to shortcuts
like this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;open the shortcuts.app&lt;/li&gt;
&lt;li&gt;click the &lt;code&gt;+&lt;/code&gt;-sign to add a new shortcut&lt;/li&gt;
&lt;li&gt;change color and icon&lt;/li&gt;
&lt;li&gt;add a name in the opening window&lt;/li&gt;
&lt;li&gt;search for &lt;code&gt;Applescript&lt;/code&gt;in the searchbox on the right&lt;/li&gt;
&lt;li&gt;double-click &lt;code&gt;run AppleScript&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;paste the script from this page &amp;quot;below the hammer&amp;quot;&lt;/li&gt;
&lt;li&gt;click the &amp;quot;hammer&amp;quot; to format/build the script&lt;/li&gt;
&lt;li&gt;close the window&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This way you can extend spotlight to run system commands - which is quite nice.&lt;/p&gt;
&lt;figure&gt;
	&lt;img src=&quot;https://saschadiercks.de/posts/spotlight-shortcuts-applescript/applescript-as-shortcut.png&quot; loading=&quot;lazy&quot; alt=&quot;add applescript
to shortcuts&quot;&gt;
	&lt;figcaption&gt;add applescript to shortcuts&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2 id=&quot;the-downside&quot; tabindex=&quot;-1&quot;&gt;The downside &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/spotlight-shortcuts-applescript/#the-downside&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The downside currently is, that the shortcuts are pretty much hidden down in
the list of spotlight, but that is about to getting changed with macOS
Ventura, where you can reorder the results (again).&lt;/p&gt;
</description>
					<pubDate>Sat, 15 Oct 2022 02:00:00 +0000</pubDate>
					<dc:creator>Sascha Diercks</dc:creator>
					<guid>https://saschadiercks.de/posts/spotlight-shortcuts-applescript/</guid>
				</item>
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
				
				<item>
					<title>Prefer WebPageTest for performance-testing</title>
					<link>https://saschadiercks.de/notes/prefer-webpagetest-for-performance-testing/</link>
					<description>&lt;p&gt;As you might know this website runs on &lt;a href=&quot;https://eleventy.dev/&quot;&gt;11ty&lt;/a&gt; as it is a slick tool to build and maintain a fast website.
Eleventy is a SSG - a static site generator, that automatically updates links and so on.&lt;/p&gt;
&lt;p&gt;Eleventy is build by &lt;a href=&quot;https://saschadiercks.de/notes/prefer-webpagetest-for-performance-testing/&quot;&gt;Zach Leatherman&lt;/a&gt; and he also created a leaderboard listing the fastest websites build with eleventy.
As I&#39;m always trying to get the best perfromance out of a website, I was instantly hooked.&lt;/p&gt;
&lt;p&gt;Sadly, a while ago, my site crashed down in rankings, although I got the four hundred ratings on lighthouse. What was going on?
Based on the rankings on the leaderboard, my SEO-score went down to 92.&lt;/p&gt;
&lt;p&gt;So I ran the usual tests:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://pagespeed.web.dev/&quot;&gt;Pagespeed insights&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://web.dev/measure/&quot;&gt;Measure page quality on web.dev&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;But I got four hundreds everywhere, so that didn&#39;t help much 🤔
So I decided to run my site through &lt;a href=&quot;https://www.webpagetest.org/lighthouse&quot;&gt;lighthouse on WebPageTest&lt;/a&gt; and I finally got the result - I broke my robots.txt.&lt;/p&gt;
&lt;p&gt;So if I have one recommendation for you - &lt;strong&gt;prefer testing your website on &lt;a href=&quot;https://www.webpagetest.org/&quot;&gt;WebPageTest&lt;/a&gt;&lt;/strong&gt; (or use it as an addition to other tools) it might uncover things you&#39;ll not see through other services, and they have other great features as well.&lt;/p&gt;
</description>
					<pubDate>Wed, 13 Jul 2022 02:00:00 +0000</pubDate>
					<dc:creator>Sascha Diercks</dc:creator>
					<guid>https://saschadiercks.de/notes/prefer-webpagetest-for-performance-testing/</guid>
				</item>
			
			
				
				<item>
					<title>A great talk: be the browsers mentor not its micromanager</title>
					<link>https://saschadiercks.de/notes/a-great-talk:-be-the-browsers-mentor-not-its-micromanager/</link>
					<description>&lt;p&gt;Recently I stumbled upon a great talk by &lt;a href=&quot;https://mobile.twitter.com/hankchizljaw&quot;&gt;Andy Bell&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Since I&#39;m addicted to writing and optimizing CSS this was a must watch.
By the end of the talk I was close to applauding, but that would&#39;ve been pointless, since no one was around.&lt;/p&gt;
&lt;p&gt;Anyways, Andy shows how to create a responsive layout by using modern css and he manages it to do it without breakpoints, which is awesome.
He even uses Tailwind - which is a framework I totally hate - but he is using it in a way you probably wouldn&#39;t be able to guess.&lt;/p&gt;
&lt;p&gt;So here is a short overview of the things he covers in the talk:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;progressive enhancement&lt;/li&gt;
&lt;li&gt;fluid typography&lt;/li&gt;
&lt;li&gt;fluid layout&lt;/li&gt;
&lt;li&gt;nice approach of implementing grids&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So give it a watch: &lt;a href=&quot;https://heypresents.com/talks/be-the-browser-s-mentor-not-its-micromanager&quot;&gt;https://heypresents.com/talks/be-the-browser-s-mentor-not-its-micromanager&lt;/a&gt;&lt;/p&gt;
</description>
					<pubDate>Tue, 12 Jul 2022 02:00:00 +0000</pubDate>
					<dc:creator>Sascha Diercks</dc:creator>
					<guid>https://saschadiercks.de/notes/a-great-talk:-be-the-browsers-mentor-not-its-micromanager/</guid>
				</item>
			
			
				
				<item>
					<title>Allow Google to crawl CSS and JS</title>
					<link>https://saschadiercks.de/notes/allow-google-to-crawl-css-and-js/</link>
					<description>&lt;p&gt;A couple of years ago a SEO spoke to me and mentioned, that you should prevent the googlebot from crawling css and js.
You know for &amp;quot;search engine optimisation&amp;quot;-reasons.
Sadly I followed that recommendation.&lt;/p&gt;
&lt;p&gt;So recently I noticed, that this is a mistake, because if you&#39;re doing this:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;User-agent: *
Disallow: /assets/css/
Disallow: /assets/fonts/
Disallow: /assets/js/
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now, the googlebot will no longer crawl your files in these directories. If you&#39;re working with the search-console, you&#39;ll likely
get message about links being to close to each other and to small to use on mobile devices.&lt;/p&gt;
&lt;p&gt;So make sure, to redact these entries from you robots.txt so the googlebot is able to crawl those directories.
Then that problem is gone and Google will hopefully notice, that your site is optimised for mobile devices.&lt;/p&gt;
</description>
					<pubDate>Mon, 11 Jul 2022 02:00:00 +0000</pubDate>
					<dc:creator>Sascha Diercks</dc:creator>
					<guid>https://saschadiercks.de/notes/allow-google-to-crawl-css-and-js/</guid>
				</item>
			
			
			
			
				
				<item>
					<title>Notes about web development and other things</title>
					<link>https://saschadiercks.de/notes/</link>
					<description>
	


	
		&lt;div class=&quot;postlist border-top&quot;&gt;
			&lt;a href=&quot;https://saschadiercks.de/notes/prefer-webpagetest-for-performance-testing/&quot; class=&quot;ui-list__link layout postlist__link&quot;&gt;
				&lt;div class=&quot;layout__item layout__item--75 no-grow postlist__header&quot;&gt;



					&lt;h2 class=&quot;margin-bottom--50 postlist__title&quot;&gt;
					
						Prefer WebPageTest for performance-testing
					
					&lt;/h2&gt;
					&lt;p class=&quot;margin-bottom--50 postlist__description&quot;&gt;
						
							You might discover problems the other tools won&amp;#39;t tell you
						
						
					&lt;/p&gt;
				&lt;/div&gt;
				&lt;div class=&quot;layout__item layout__item--25 no-grow postlist__meta&quot;&gt;
					
						&lt;div class=&quot;post__date&quot;&gt;
							13 Jul 2022
						&lt;/div&gt;
					
					
				&lt;/div&gt;
			&lt;/a&gt;
		&lt;/div&gt;
	

	
		&lt;div class=&quot;postlist border-top&quot;&gt;
			&lt;a href=&quot;https://saschadiercks.de/notes/a-great-talk:-be-the-browsers-mentor-not-its-micromanager/&quot; class=&quot;ui-list__link layout postlist__link&quot;&gt;
				&lt;div class=&quot;layout__item layout__item--75 no-grow postlist__header&quot;&gt;



					&lt;h2 class=&quot;margin-bottom--50 postlist__title&quot;&gt;
					
						A great talk: be the browsers mentor not its micromanager
					
					&lt;/h2&gt;
					&lt;p class=&quot;margin-bottom--50 postlist__description&quot;&gt;
						
							Andy Bell gave a great talk about how to write responsive layouts with modern CSS
						
						
					&lt;/p&gt;
				&lt;/div&gt;
				&lt;div class=&quot;layout__item layout__item--25 no-grow postlist__meta&quot;&gt;
					
						&lt;div class=&quot;post__date&quot;&gt;
							12 Jul 2022
						&lt;/div&gt;
					
					
				&lt;/div&gt;
			&lt;/a&gt;
		&lt;/div&gt;
	

	
		&lt;div class=&quot;postlist border-top&quot;&gt;
			&lt;a href=&quot;https://saschadiercks.de/notes/allow-google-to-crawl-css-and-js/&quot; class=&quot;ui-list__link layout postlist__link&quot;&gt;
				&lt;div class=&quot;layout__item layout__item--75 no-grow postlist__header&quot;&gt;



					&lt;h2 class=&quot;margin-bottom--50 postlist__title&quot;&gt;
					
						Allow Google to crawl CSS and JS
					
					&lt;/h2&gt;
					&lt;p class=&quot;margin-bottom--50 postlist__description&quot;&gt;
						
							A small mistake to avoid when dealing with the googlebot
						
						
					&lt;/p&gt;
				&lt;/div&gt;
				&lt;div class=&quot;layout__item layout__item--25 no-grow postlist__meta&quot;&gt;
					
						&lt;div class=&quot;post__date&quot;&gt;
							11 Jul 2022
						&lt;/div&gt;
					
					
				&lt;/div&gt;
			&lt;/a&gt;
		&lt;/div&gt;
	


</description>
					<pubDate>Mon, 04 Jul 2022 02:00:00 +0000</pubDate>
					<dc:creator>Sascha Diercks</dc:creator>
					<guid>https://saschadiercks.de/notes/</guid>
				</item>
			
			
				
				<item>
					<title>Articles about web development</title>
					<link>https://saschadiercks.de/posts/</link>
					<description>
	


	
		&lt;div class=&quot;postlist border-top&quot;&gt;
			&lt;a href=&quot;https://saschadiercks.de/posts/spotlight-shortcuts-applescript/&quot; class=&quot;ui-list__link layout postlist__link&quot;&gt;
				&lt;div class=&quot;layout__item layout__item--75 no-grow postlist__header&quot;&gt;



					&lt;h2 class=&quot;margin-bottom--50 postlist__title&quot;&gt;
					
						Use Shortcuts.app to run System commands through Spotlight
					
					&lt;/h2&gt;
					&lt;p class=&quot;margin-bottom--50 postlist__description&quot;&gt;
						
							Did you know, that you can use Shortcuts, Spotlight and some AppleScript to build an Alfred replacement (sort of).
						
						
					&lt;/p&gt;
				&lt;/div&gt;
				&lt;div class=&quot;layout__item layout__item--25 no-grow postlist__meta&quot;&gt;
					
						&lt;div class=&quot;post__date&quot;&gt;
							15 Oct 2022
						&lt;/div&gt;
					
					
				&lt;/div&gt;
			&lt;/a&gt;
		&lt;/div&gt;
	

	
		&lt;div class=&quot;postlist border-top&quot;&gt;
			&lt;a href=&quot;https://saschadiercks.de/posts/personalnews-your-news-feed-chronologically-sorted/&quot; class=&quot;ui-list__link layout postlist__link&quot;&gt;
				&lt;div class=&quot;layout__item layout__item--75 no-grow postlist__header&quot;&gt;



					&lt;h2 class=&quot;margin-bottom--50 postlist__title&quot;&gt;
					
						personalNews - your news feed. Chronologically sorted
					
					&lt;/h2&gt;
					&lt;p class=&quot;margin-bottom--50 postlist__description&quot;&gt;
						
							Learn more about the development and why I started the project.
						
						
					&lt;/p&gt;
				&lt;/div&gt;
				&lt;div class=&quot;layout__item layout__item--25 no-grow postlist__meta&quot;&gt;
					
						&lt;div class=&quot;post__date&quot;&gt;
							01 Jul 2022
						&lt;/div&gt;
					
					
				&lt;/div&gt;
			&lt;/a&gt;
		&lt;/div&gt;
	

	
		&lt;div class=&quot;postlist border-top&quot;&gt;
			&lt;a href=&quot;https://saschadiercks.de/posts/browserstartpage-the-speeddial-for-all-your-browsers/&quot; class=&quot;ui-list__link layout postlist__link&quot;&gt;
				&lt;div class=&quot;layout__item layout__item--75 no-grow postlist__header&quot;&gt;



					&lt;h2 class=&quot;margin-bottom--50 postlist__title&quot;&gt;
					
						BrowserStartpage – the SpeedDial for all your Browsers
					
					&lt;/h2&gt;
					&lt;p class=&quot;margin-bottom--50 postlist__description&quot;&gt;
						
							Host your bookmarks yourself and use them in all browsers. Find out a few details about the development here.
						
						
					&lt;/p&gt;
				&lt;/div&gt;
				&lt;div class=&quot;layout__item layout__item--25 no-grow postlist__meta&quot;&gt;
					
						&lt;div class=&quot;post__date&quot;&gt;
							24 Aug 2017
						&lt;/div&gt;
					
					
				&lt;/div&gt;
			&lt;/a&gt;
		&lt;/div&gt;
	

	
		&lt;div class=&quot;postlist border-top&quot;&gt;
			&lt;a href=&quot;https://saschadiercks.de/posts/social-media-is-communication-not-a-childs-play/&quot; class=&quot;ui-list__link layout postlist__link&quot;&gt;
				&lt;div class=&quot;layout__item layout__item--75 no-grow postlist__header&quot;&gt;



					&lt;h2 class=&quot;margin-bottom--50 postlist__title&quot;&gt;
					
						Social media is communication, not a game
					
					&lt;/h2&gt;
					&lt;p class=&quot;margin-bottom--50 postlist__description&quot;&gt;
						
							In the past few days, mistakes in the area of social media could be observed that well-known companies had committed.
						
						
					&lt;/p&gt;
				&lt;/div&gt;
				&lt;div class=&quot;layout__item layout__item--25 no-grow postlist__meta&quot;&gt;
					
						&lt;div class=&quot;post__date&quot;&gt;
							17 Jan 2013
						&lt;/div&gt;
					
					
				&lt;/div&gt;
			&lt;/a&gt;
		&lt;/div&gt;
	

	
		&lt;div class=&quot;postlist border-top&quot;&gt;
			&lt;a href=&quot;https://saschadiercks.de/posts/dangers-and-problems-when-using-sliders-and-carousels/&quot; class=&quot;ui-list__link layout postlist__link&quot;&gt;
				&lt;div class=&quot;layout__item layout__item--75 no-grow postlist__header&quot;&gt;



					&lt;h2 class=&quot;margin-bottom--50 postlist__title&quot;&gt;
					
						Dangers and problems when using sliders and carousels
					
					&lt;/h2&gt;
					&lt;p class=&quot;margin-bottom--50 postlist__description&quot;&gt;
						
							Why they are bad and what you can do about it
						
						
					&lt;/p&gt;
				&lt;/div&gt;
				&lt;div class=&quot;layout__item layout__item--25 no-grow postlist__meta&quot;&gt;
					
						&lt;div class=&quot;post__date&quot;&gt;
							15 Oct 2012
						&lt;/div&gt;
					
					
				&lt;/div&gt;
			&lt;/a&gt;
		&lt;/div&gt;
	

	
		&lt;div class=&quot;postlist border-top&quot;&gt;
			&lt;a href=&quot;https://saschadiercks.de/posts/debug-mobile-websites-in-safari/&quot; class=&quot;ui-list__link layout postlist__link&quot;&gt;
				&lt;div class=&quot;layout__item layout__item--75 no-grow postlist__header&quot;&gt;



					&lt;h2 class=&quot;margin-bottom--50 postlist__title&quot;&gt;
					
						Debug mobile websites in Safari
					
					&lt;/h2&gt;
					&lt;p class=&quot;margin-bottom--50 postlist__description&quot;&gt;
						
							We live in a time when customers no longer visit and use websites exclusively with their home PC. This circumstance leads to the fact that we (have to/should) develop websites in such a way that they can run on multiple devices.
						
						
					&lt;/p&gt;
				&lt;/div&gt;
				&lt;div class=&quot;layout__item layout__item--25 no-grow postlist__meta&quot;&gt;
					
						&lt;div class=&quot;post__date&quot;&gt;
							11 Oct 2012
						&lt;/div&gt;
					
					
				&lt;/div&gt;
			&lt;/a&gt;
		&lt;/div&gt;
	

	
		&lt;div class=&quot;postlist border-top&quot;&gt;
			&lt;a href=&quot;https://saschadiercks.de/posts/test-the-speed-of-mobile-websites-with-the-network-link-conditioner/&quot; class=&quot;ui-list__link layout postlist__link&quot;&gt;
				&lt;div class=&quot;layout__item layout__item--75 no-grow postlist__header&quot;&gt;



					&lt;h2 class=&quot;margin-bottom--50 postlist__title&quot;&gt;
					
						Test the speed of mobile websites with the Network Link Conditioner
					
					&lt;/h2&gt;
					&lt;p class=&quot;margin-bottom--50 postlist__description&quot;&gt;
						
							You are developing mobile websites and want to know how the speed and page load feels to the user?
						
						
					&lt;/p&gt;
				&lt;/div&gt;
				&lt;div class=&quot;layout__item layout__item--25 no-grow postlist__meta&quot;&gt;
					
						&lt;div class=&quot;post__date&quot;&gt;
							22 Aug 2012
						&lt;/div&gt;
					
					
				&lt;/div&gt;
			&lt;/a&gt;
		&lt;/div&gt;
	

	
		&lt;div class=&quot;postlist border-top&quot;&gt;
			&lt;a href=&quot;https://saschadiercks.de/posts/why-qr-codes-are-not-suitable-for-the-masses/&quot; class=&quot;ui-list__link layout postlist__link&quot;&gt;
				&lt;div class=&quot;layout__item layout__item--75 no-grow postlist__header&quot;&gt;



					&lt;h2 class=&quot;margin-bottom--50 postlist__title&quot;&gt;
					
						Why QR codes are not suitable for the masses (and what you can do about it)
					
					&lt;/h2&gt;
					&lt;p class=&quot;margin-bottom--50 postlist__description&quot;&gt;
						
							What can I do to increase conversion?
						
						
					&lt;/p&gt;
				&lt;/div&gt;
				&lt;div class=&quot;layout__item layout__item--25 no-grow postlist__meta&quot;&gt;
					
						&lt;div class=&quot;post__date&quot;&gt;
							13 May 2012
						&lt;/div&gt;
					
					
				&lt;/div&gt;
			&lt;/a&gt;
		&lt;/div&gt;
	


</description>
					<pubDate>Sun, 03 Jul 2022 02:00:00 +0000</pubDate>
					<dc:creator>Sascha Diercks</dc:creator>
					<guid>https://saschadiercks.de/posts/</guid>
				</item>
			
			
				
				<item>
					<title>Some side projects</title>
					<link>https://saschadiercks.de/projects/</link>
					<description>
	


	
		&lt;div class=&quot;postlist border-top&quot;&gt;
			&lt;a href=&quot;https://saschadiercks.de/projects/personalnews/&quot; class=&quot;ui-list__link layout postlist__link&quot;&gt;
				&lt;div class=&quot;layout__item layout__item--75 no-grow postlist__header&quot;&gt;



					&lt;h2 class=&quot;margin-bottom--50 postlist__title&quot;&gt;
					
						personalNews
					
					&lt;/h2&gt;
					&lt;p class=&quot;margin-bottom--50 postlist__description&quot;&gt;
						
							Your news - as a timeline. In chronological order.
						
						
					&lt;/p&gt;
				&lt;/div&gt;
				&lt;div class=&quot;layout__item layout__item--25 no-grow postlist__meta&quot;&gt;
					
						&lt;div class=&quot;post__date&quot;&gt;
							01 Jul 2022
						&lt;/div&gt;
					
					
				&lt;/div&gt;
			&lt;/a&gt;
		&lt;/div&gt;
	

	
		&lt;div class=&quot;postlist border-top&quot;&gt;
			&lt;a href=&quot;https://saschadiercks.de/projects/browserstartpage/&quot; class=&quot;ui-list__link layout postlist__link&quot;&gt;
				&lt;div class=&quot;layout__item layout__item--75 no-grow postlist__header&quot;&gt;



					&lt;h2 class=&quot;margin-bottom--50 postlist__title&quot;&gt;
					
						browserStartpage
					
					&lt;/h2&gt;
					&lt;p class=&quot;margin-bottom--50 postlist__description&quot;&gt;
						
							Host your own speed dial to be used in ALL browsers
						
						
					&lt;/p&gt;
				&lt;/div&gt;
				&lt;div class=&quot;layout__item layout__item--25 no-grow postlist__meta&quot;&gt;
					
						&lt;div class=&quot;post__date&quot;&gt;
							30 Jun 2022
						&lt;/div&gt;
					
					
				&lt;/div&gt;
			&lt;/a&gt;
		&lt;/div&gt;
	

	
		&lt;div class=&quot;postlist border-top&quot;&gt;
			&lt;a href=&quot;https://saschadiercks.de/projects/little-helpers/&quot; class=&quot;ui-list__link layout postlist__link&quot;&gt;
				&lt;div class=&quot;layout__item layout__item--75 no-grow postlist__header&quot;&gt;



					&lt;h2 class=&quot;margin-bottom--50 postlist__title&quot;&gt;
					
						little Helpers
					
					&lt;/h2&gt;
					&lt;p class=&quot;margin-bottom--50 postlist__description&quot;&gt;
						
							Small collection of tools for developers (WIP)
						
						
					&lt;/p&gt;
				&lt;/div&gt;
				&lt;div class=&quot;layout__item layout__item--25 no-grow postlist__meta&quot;&gt;
					
						&lt;div class=&quot;post__date&quot;&gt;
							31 May 2022
						&lt;/div&gt;
					
					
				&lt;/div&gt;
			&lt;/a&gt;
		&lt;/div&gt;
	



&lt;!--
- little Helpers
- BrowserStartpage
- PersonalNews
- CSSClock
- EM-Calculator for Alfred
- Wallpapers
- XML/XSLT
--&gt;
</description>
					<pubDate>Sat, 02 Jul 2022 02:00:00 +0000</pubDate>
					<dc:creator>Sascha Diercks</dc:creator>
					<guid>https://saschadiercks.de/projects/</guid>
				</item>
			
			
				
				<item>
					<title>personalNews</title>
					<link>https://saschadiercks.de/projects/personalnews/</link>
					<description>&lt;p&gt;PersonalNews is a small web application, you can host on your own server.
You can run it as an application on your mobile device as well.
This way you are always getting the latest of your favorite news. You&#39;ll always be up to date.&lt;/p&gt;
&lt;figure&gt;
	&lt;img src=&quot;https://saschadiercks.de/projects/personalnews/iphone.jpg&quot; loading=&quot;lazy&quot; alt=&quot;personalNews on the iPhone&quot;&gt;
	&lt;figcaption&gt;personalNews on the iPhone&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/projects/personalnews/#features&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;add your own selection of RSS or Atom-Feeds&lt;/li&gt;
&lt;li&gt;group several feeds into channels&lt;/li&gt;
&lt;li&gt;news are ordered chronologically&lt;/li&gt;
&lt;li&gt;dark mode 🌗&lt;/li&gt;
&lt;li&gt;possibility to blacklist words&lt;/li&gt;
&lt;li&gt;runs in every browser&lt;/li&gt;
&lt;li&gt;... or even in a webpanel in Vivaldi&lt;/li&gt;
&lt;li&gt;perfect for mobile devices&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;why-i-built-this&quot; tabindex=&quot;-1&quot;&gt;Why I built this &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/projects/personalnews/#why-i-built-this&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;I&#39;m always swapping browsers and of course I&#39;m also a user of &lt;a href=&quot;https://vivaldi.com/&quot;&gt;Vivaldi&lt;/a&gt;.
Vivaldi has a lot of smart features and one of them are &lt;a href=&quot;https://www.youtube.com/watch?v=ByragdrJKSA&quot;&gt;webpanels&lt;/a&gt;.
Think of webpanels as an overlay you can open anytime, that contains an additional url.
I think Vivaldi is the first browser to implement something like this.&lt;/p&gt;
&lt;p&gt;I&#39;ve added &lt;a href=&quot;https://mobile.twitter.com/saschadiercks&quot;&gt;twitter&lt;/a&gt;, &lt;a href=&quot;https://vue-hn.now.sh/top&quot;&gt;Hacker news&lt;/a&gt; and &lt;a href=&quot;https://getpocket.com/a/read/1910148094&quot;&gt;pocket&lt;/a&gt; as webpanels and I&#39;m pretty happy with it.
But one thing was still missing - a newsfeed that&#39;ll only display news I&#39;m interested in.&lt;/p&gt;
&lt;p&gt;So I did what every other developer would possibly do as well - I&#39;ve built my own solution.
I then decided to design and develop personalNews.
At that time, it was important to me that the feed should run in a Vivaldi web panel - so I started with a mobile
first approach.
The site is now responsive and can also be used in the browser or as a standalone application as well.&lt;/p&gt;
&lt;p&gt;And I&#39;ve updated the backend to act as an API as well, so you could build your own frontend on it.&lt;/p&gt;
&lt;p&gt;If you want to know some more details about the development &lt;a href=&quot;https://saschadiercks.de/posts/personalnews-dein-nachrichtenfeed.-chronologisch-sortiert/&quot;&gt;you can read more here&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;what-were-my-goals-at-that-time&quot; tabindex=&quot;-1&quot;&gt;What were my goals at that time? &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/projects/personalnews/#what-were-my-goals-at-that-time&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Build and easy way to skim the news I&#39;m interested in.&lt;/li&gt;
&lt;li&gt;The news should get sorted in a chronological order (think of twitter)&lt;/li&gt;
&lt;li&gt;I often look at the newsfeed in the night - so automatic dark mode is a must&lt;/li&gt;
&lt;li&gt;I wanted to learn new things.&lt;/li&gt;
&lt;li&gt;I always aim for performance and this means avoid using bloated frameworks. Everything was built from scratch using
HTML, CSS, vanilla JavaScript and PHP for the backend&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Building this was a lot of fun, and I hope you can find this tools as useful as I and some other people do.&lt;/p&gt;
</description>
					<pubDate>Fri, 01 Jul 2022 02:00:00 +0000</pubDate>
					<dc:creator>Sascha Diercks</dc:creator>
					<guid>https://saschadiercks.de/projects/personalnews/</guid>
				</item>
			
			
				
				<item>
					<title>personalNews - your news feed. Chronologically sorted</title>
					<link>https://saschadiercks.de/posts/personalnews-your-news-feed-chronologically-sorted/</link>
					<description>&lt;p&gt;Are you like me?
Do you regularly watch the news?
Your feed reader is always full?
You like timelines because they are the easiest way for you to read the news?
Then my little side project &lt;em&gt;personalNews&lt;/em&gt; is probably something for you.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;personaNews&lt;/em&gt; is news in a timeline.
Sorted chronologically and with a blacklist to avoid messages that are not important to you.&lt;/p&gt;
&lt;p&gt;If you still like to read your news at night, you will be happy about the night mode?
Originally, I developed &lt;em&gt;personalNews&lt;/em&gt; for the web panel of the Vivaldi browser - currently,
I use &lt;em&gt;personalNews&lt;/em&gt; exclusively on my smartphone. But first things first...&lt;/p&gt;
&lt;figure&gt;
	&lt;img src=&quot;https://saschadiercks.de/posts/personalnews-your-news-feed-chronologically-sorted/personal-news-iphone.jpg&quot; loading=&quot;lazy&quot; alt=&quot;PersonalNews on the iPhone&quot;&gt;
	&lt;figcaption&gt;PersonalNews on the iPhone&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2 id=&quot;from-ios-to-vivaldi&quot; tabindex=&quot;-1&quot;&gt;From iOS to Vivaldi &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/personalnews-your-news-feed-chronologically-sorted/#from-ios-to-vivaldi&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;A few years ago, I spent a long time looking for a news app that would give me a quick overview of what was happening.
I had a timeline in mind like the ones used on Twitter or Facebook.
This way, the headlines can be scanned quickly.
If there is something interesting, the details can be read.
The app should be structured as simply as possible.
After testing several apps, I have been using &lt;a href=&quot;https://itunes.apple.com/de/app/newsflash-deutschland/id472447733&quot;&gt;Newsflash&lt;/a&gt; for quite a long time.&lt;/p&gt;
&lt;p&gt;It then quickly turned out to be a disadvantage that I was limited to the feeds provided by that app.
Just at that time I tested the &lt;a href=&quot;https://vivaldi.com/&quot;&gt;Vivaldi&lt;/a&gt; browser, which - to my knowledge - is currently the only
browser that offers the web panels.&lt;/p&gt;
&lt;p&gt;Web panels are, to put it simply, mobile websites that can be opened next to the current website.
For services like &lt;em&gt;Twitter&lt;/em&gt;, &lt;em&gt;Pocket&lt;/em&gt; or &lt;em&gt;Hackernews&lt;/em&gt;, this is the perfect place to be quickly at hand.
However, I quickly realised that this was also the perfect place for news feeds.
For this reason, I started the development of &lt;em&gt;personalNews&lt;/em&gt;. A small feed reader based on PHP.&lt;/p&gt;
&lt;h2 id=&quot;the-concept&quot; tabindex=&quot;-1&quot;&gt;The concept &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/personalnews-your-news-feed-chronologically-sorted/#the-concept&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The basic concept was simple&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Bundling of different feeds and chronological output in a timeline&lt;/li&gt;
&lt;li&gt;Support of Atom and RSS&lt;/li&gt;
&lt;li&gt;Bundling of different feeds into several channels&lt;/li&gt;
&lt;li&gt;Configuration via JSON and processing via PHP&lt;/li&gt;
&lt;li&gt;No use of frameworks to keep loading times as short as possible.&lt;/li&gt;
&lt;li&gt;The few interactive elements should be implemented via vanilla Javascript.&lt;/li&gt;
&lt;/ul&gt;
&lt;figure&gt;
	&lt;img src=&quot;https://saschadiercks.de/posts/personalnews-your-news-feed-chronologically-sorted/pn-vivaldi-desktop.jpg&quot; loading=&quot;lazy&quot; alt=&quot;PersonalNews in the web panel in the Vivaldi browser&quot;&gt;
	&lt;figcaption&gt;PersonalNews in the web panel in the Vivaldi browser&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2 id=&quot;the-implementation&quot; tabindex=&quot;-1&quot;&gt;The implementation &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/personalnews-your-news-feed-chronologically-sorted/#the-implementation&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;I began to read out a first feed and process it via PHP. I chose the RSS feed of the Tagesschau as the feed. The first step was to break down the feed into individual elements and variables and enrich them with information that the feed itself did not provide. As an example, I would like to mention a human-readable date format for the publication of the individual news item, the icon of the source or the domain of the same. In this case &lt;a href=&quot;http://www.tagesschau.de/&quot;&gt;www.tagesschau.de&lt;/a&gt;.
I wanted the processing of the data to be as modular as possible so that I could quickly extend the programme.
I decided to divide the processing of the feed into individual functions that are called one after the other.&lt;/p&gt;
&lt;p&gt;The basic procedure is as follows:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Load feed, decompose and store the data in a multi-dimensional array. A timestamp, which is used for chronological sorting, is created at this point from the publication date.&lt;/li&gt;
&lt;li&gt;The array is output in an HTML construct so that a sorted timeline is created.&lt;/li&gt;
&lt;li&gt;The texts of the messages are to be limited to a maximum character length. However, when the character length is reached, the current record should still be output in full.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Admittedly, at this point this process is still &amp;quot;over the top&amp;quot;, but with the second feed at the latest, the chronological sorting becomes relevant. In addition, during the implementation, I already had various ideas for expanding the software. For example, a blacklist for unwanted messages.&lt;/p&gt;
&lt;p&gt;The next step was to start reading in another feed to test the chronological sorting. I think it was the news feed from &lt;a href=&quot;https://zeit.de/&quot;&gt;www.zeit.de&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Now it was time to implement another format - namely Atom. It turned out that Atom and RSS are quite similar. The easiest way to recognise the format seemed to me to check whether the individual messages are stored in a &amp;quot;channel&amp;quot; or an &amp;quot;entry&amp;quot;.
So I wrote a function that does exactly this check and hooked it in front of the decomposition of the feeds.&lt;/p&gt;
&lt;p&gt;The result was now an HTML output of several feeds in a chronological sorting of the individual news items. Exactly the result I wanted. Great :)&lt;/p&gt;
&lt;figure&gt;
	&lt;img src=&quot;https://saschadiercks.de/posts/personalnews-your-news-feed-chronologically-sorted/pn-iphone.jpg&quot; loading=&quot;lazy&quot; alt=&quot;The news feed on the iPhone&quot;&gt;
	&lt;figcaption&gt;The news feed on the iPhone&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2 id=&quot;the-design&quot; tabindex=&quot;-1&quot;&gt;The design &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/personalnews-your-news-feed-chronologically-sorted/#the-design&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Now began the part that was easy for me. Styling the timeline using CSS. In the first step, I created a mobile view so that &lt;em&gt;personalNews&lt;/em&gt; could run in a Vivaldi web panel. I quickly came up with the idea of a dark mode.&lt;/p&gt;
&lt;p&gt;It should be possible to switch between two different themes using Javascript. Both themes are configured in SCSS variables and converted to CSS using gulp. The dark mode switch itself sets a corresponding class on and writes this value into the localsStorage, as well as a PHP session, so that the last selected mode is available the next time the page is loaded.&lt;/p&gt;
&lt;p&gt;It was time to release &lt;em&gt;personalNews&lt;/em&gt; to the Vivaldi community. The feedback from the Vivaldi developers and the community was good, so I continued to develop the software. I also quickly put together a website showing the basic features of &lt;em&gt;personalNews&lt;/em&gt;. It took about two hours to implement and you shouldn&#39;t look too closely at the code there... &lt;a href=&quot;http://saschadiercks.de/landing/personalnews/&quot;&gt;personalNews landing page&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;grouping-multiple-feeds-as-a-channel&quot; tabindex=&quot;-1&quot;&gt;Grouping multiple feeds as a channel &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/personalnews-your-news-feed-chronologically-sorted/#grouping-multiple-feeds-as-a-channel&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Since I wanted to bundle feeds by topic, I started to extend the code accordingly. The configuration should also be done via JSON. Several feeds are written here into an array, which serves here as a container for a channel. The selected channel should also be saved so that the timeline is loaded that was last active after &lt;em&gt;personalNews&lt;/em&gt; was left or closed.
Using Ajax, PHP code is triggered that loads the feeds and saves the currently selected channel in a session.&lt;/p&gt;
&lt;h2 id=&quot;blacklisting-keywords-and-url&quot; tabindex=&quot;-1&quot;&gt;Blacklisting: Keywords and URL &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/personalnews-your-news-feed-chronologically-sorted/#blacklisting-keywords-and-url&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Since I am not a big football fan, the sports news is of little relevance to me. I therefore developed a PHP function that should perform the blacklisting of elements. The blacklist should also be configurable in the JSON file. The implementation is quite simple. All keywords in the JSON file are converted into an array and its contents are compared with the title and the text of the message. If there is a match, a blacklist flag is added to the feed array so that this message is skipped in the output. To reduce the loops over the messages, the title of the message and its text are combined into a string.&lt;/p&gt;
&lt;p&gt;In order to exclude entire subdirectories or domains, the URL of the source is added to the title and the text. It turned out that the Tagesschau also uses URLs from &lt;a href=&quot;http://www.sportschau.de/&quot;&gt;www.sportschau.de&lt;/a&gt; in the feed. Other sources use the subdirectory /sport. So, to suppress all sports news, the keyword &lt;em&gt;sport&lt;/em&gt; can be included - as a result, all sports news from sources with &lt;em&gt;sport&lt;/em&gt; in the URL are suppressed in &lt;em&gt;personalNews&lt;/em&gt;.&lt;/p&gt;
&lt;figure&gt;
	&lt;img src=&quot;https://saschadiercks.de/posts/personalnews-your-news-feed-chronologically-sorted/personal-news-ipad.jpg&quot; loading=&quot;lazy&quot; alt=&quot;PersonalNews on iPad&quot;&gt;
	&lt;figcaption&gt;PersonalNews on iPad&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2 id=&quot;becoming-responsive&quot; tabindex=&quot;-1&quot;&gt;Becoming responsive &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/personalnews-your-news-feed-chronologically-sorted/#becoming-responsive&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;personalNews&lt;/em&gt; already worked in web panels and on mobile devices, but on larger screens the news was difficult to read. With a simple CSS media query, I developed a two-column view of the news. However, the titles (the headlines) of the news are displayed on the left and the abbreviated texts on the right. This has the advantage that the headlines can be scanned quickly, and if interest is aroused, the texts can be read - namely on the right half of the screen.&lt;/p&gt;
&lt;h2 id=&quot;get-personalnews&quot; tabindex=&quot;-1&quot;&gt;Get personalNews &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/personalnews-your-news-feed-chronologically-sorted/#get-personalnews&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;You can find the &lt;em&gt;personalNews&lt;/em&gt; on Github. There you can download all files. A demo version of the current version can be found here &lt;a href=&quot;https://demo.saschadiercks.de/personalnews/&quot;&gt;https://demo.saschadiercks.de/personalnews/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;All files and documentation can be found on Github at &lt;a href=&quot;https://github.com/saschadiercks/personalNews&quot;&gt;https://github.com/saschadiercks/personalNews&amp;quot;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I hope personalNews will be as useful to you as it is to me. You can save &lt;em&gt;personalNews&lt;/em&gt; on your homescreen or bookmark it. For me, &lt;em&gt;personalNews&lt;/em&gt; has become one of the most used sites - and no, I don&#39;t use any other news app anymore.&lt;/p&gt;
</description>
					<pubDate>Fri, 01 Jul 2022 02:00:00 +0000</pubDate>
					<dc:creator>Sascha Diercks</dc:creator>
					<guid>https://saschadiercks.de/posts/personalnews-your-news-feed-chronologically-sorted/</guid>
				</item>
			
			
				
				<item>
					<title>browserStartpage</title>
					<link>https://saschadiercks.de/projects/browserstartpage/</link>
					<description>&lt;p&gt;Are you switching browsers often?
Are you tired, that every browser uses it&#39;s own speed dial, and you can&#39;t import that in your new browser?
The solution: host your own speed dial!
This is especially useful if you need/want to share a bunch of links with friends or colleagues.&lt;/p&gt;
&lt;p&gt;browserStartpage is a speed dial, you can host on your own webserver.
You can configure your content using a JSON-file.
I made it themeable as well, so every part of it can be changed to your liking.&lt;/p&gt;
&lt;p&gt;Thanks to the many possibilities to store and show links, you no longer have to synchronize your bookmarks in different browsers.&lt;/p&gt;
&lt;figure&gt;
	&lt;img src=&quot;https://saschadiercks.de/projects/browserstartpage/startpage-macbook-iphone.jpg&quot; loading=&quot;lazy&quot; alt=&quot;browserStartpage works on all devices&quot;&gt;
	&lt;figcaption&gt;browserStartpage works on all devices&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/projects/browserstartpage/#features&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;easily configure everything using JSON&lt;/li&gt;
&lt;li&gt;completely themeable (including background images)&lt;/li&gt;
&lt;li&gt;open a collection of links in a modal (typical use cases are several environments of systems)&lt;/li&gt;
&lt;li&gt;add an additional sidebar for even more bookmarks&lt;/li&gt;
&lt;li&gt;host it on your own server&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;why-i-built-this&quot; tabindex=&quot;-1&quot;&gt;Why I built this &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/projects/browserstartpage/#why-i-built-this&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Many links accumulate on my computers both professionally and privately.
Be it various links to systems, backends or developer sites, in the end the bookmarks bar was always overcrowded and unwieldy.
I therefore developed a start page that I could maintain via an XML file.
That page was hosted on an in-house system and became very popular over the years that it has been set up as the default
home page on all the company&#39;s new computers.
It was pretty ugly but very useful, so I added some themes.
I was never quite happy with it, and I demanded to add new features.
Finally, I decided to build a new version as a side project in my spare time.&lt;/p&gt;
&lt;p&gt;If you want to know more about the development, &lt;a href=&quot;https://saschadiercks.de/posts/browserstartpage-das-speeddial-fur-alle-browser/&quot;&gt;you can read this blogpost&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;what-were-my-goals-at-that-time&quot; tabindex=&quot;-1&quot;&gt;What were my goals at that time? &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/projects/browserstartpage/#what-were-my-goals-at-that-time&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The page should provide a simple sidebar for various links and of course it should get built in a responsive way.
The most important thing were the tiles, which should give me quick access to the most important links.
The links should be able to be divided into different categories.&lt;/p&gt;
&lt;p&gt;Equipped with these basic functionality, I published the page on Github.&lt;/p&gt;
&lt;p&gt;I received a lot of positive feedback there and since I wanted to use the site professionally too,
the requirements have grown so that modal dialogs and theming are now also possible as well.&lt;/p&gt;
&lt;p&gt;I hope you&#39;ll find this page as useful as I do. :)&lt;/p&gt;
</description>
					<pubDate>Thu, 30 Jun 2022 02:00:00 +0000</pubDate>
					<dc:creator>Sascha Diercks</dc:creator>
					<guid>https://saschadiercks.de/projects/browserstartpage/</guid>
				</item>
			
			
				
				<item>
					<title>little Helpers</title>
					<link>https://saschadiercks.de/projects/little-helpers/</link>
					<description>&lt;p&gt;Little helpers sind kleine Tools, die dir die Arbeit erleichtern sollen.
Besonders einfach ist die Umrechnung von absoluten auf relative Font-Größen.&lt;/p&gt;
&lt;p&gt;Little helpers is a small collection of tools, that will help you getting things done.
I especially build this to calculate relative font-sizes.&lt;/p&gt;
&lt;figure&gt;
	&lt;img src=&quot;https://saschadiercks.de/projects/little-helpers/little-helpers-iphone.jpg&quot; loading=&quot;lazy&quot; alt=&quot;Easily convert font-sizes&quot;&gt;
	&lt;figcaption&gt;Easily convert font-sizes&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/projects/little-helpers/#features&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;convert pixel to (r)em&lt;/li&gt;
&lt;li&gt;easily copy/paste results&lt;/li&gt;
&lt;li&gt;calculate percentages&lt;/li&gt;
&lt;li&gt;calculate conversions&lt;/li&gt;
&lt;li&gt;instant feedback during input&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;why-i-built-this&quot; tabindex=&quot;-1&quot;&gt;Why I built this &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/projects/little-helpers/#why-i-built-this&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Calculating font-sizes is a recurring task for frontend developers.
Many developers use websites specifically designed for this purpose.&lt;/p&gt;
&lt;p&gt;For this type of conversion, Zach Leatherman created a workflow using &lt;a href=&quot;https://gist.github.com/zachleat/c135c079f802934006978e2257086cc3&quot;&gt;text expander&lt;/a&gt;.
I really liked the idea but I&#39;m a mega supporter of &lt;a href=&quot;https://www.alfredapp.com/&quot;&gt;Alfred&lt;/a&gt;, so I wanted to build on top of that.
&lt;a href=&quot;https://github.com/saschadiercks/little-helpers/tree/master/alfred&quot;&gt;You can get the worflow for Alfred on github&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The workflow worked very fine on my private device but on a company device you are usually not allowed to install own
software, so I&#39;ve built a website specifically for converting font-sizes.
I wanted a super easy way to copy/paste values and select between rem and em-values.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Since the default font-size is 16px the base-calculation is based on this value.&lt;/li&gt;
&lt;li&gt;A checkbox toggles between em and rem&lt;/li&gt;
&lt;li&gt;there is a copy function&lt;/li&gt;
&lt;li&gt;you will also get a comment you can paste in your css&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So the output looks like this and can simply be copied into your CSS, SCSS, LESS or whatever:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-CSS&quot;&gt;.75rem; /*-- 12px / 16px --*/
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;In the meantime I&#39;ve added some additional calculations as well.&lt;/p&gt;
</description>
					<pubDate>Tue, 31 May 2022 02:00:00 +0000</pubDate>
					<dc:creator>Sascha Diercks</dc:creator>
					<guid>https://saschadiercks.de/projects/little-helpers/</guid>
				</item>
			
			
			
				
				<item>
					<title>BrowserStartpage – the SpeedDial for all your Browsers</title>
					<link>https://saschadiercks.de/posts/browserstartpage-the-speeddial-for-all-your-browsers/</link>
					<description>&lt;figure&gt;
	&lt;img src=&quot;https://saschadiercks.de/posts/browserstartpage-the-speeddial-for-all-your-browsers/startpage-imac-tablet.jpg&quot; loading=&quot;lazy&quot; alt=&quot;The BrowserStartpage on an iMac and the iPad&quot;&gt;
	&lt;figcaption&gt;The BrowserStartpage on an iMac and the iPad&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Do you remember the time when Internet Explorer virtually dominated the web and there was not much choice of browsers?
Fortunately, those days are long gone and we have a wide range of good browsers to choose from. Every browser has its own strengths, so it is not always easy to find the right browser for your own surfing habits. I currently use the Mac both professionally and privately, and so four of my favourite browsers have now crystallised out of the masses. Let me say right away that they are the four browsers that everyone knows: Safari, Firefox, Chrome and - perhaps not yet so well known - Vivaldi.
Each with its advantages and disadvantages, which I would like to outline briefly here:&lt;/p&gt;
&lt;h2 id=&quot;safari&quot; tabindex=&quot;-1&quot;&gt;Safari &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/browserstartpage-the-speeddial-for-all-your-browsers/#safari&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The browser comes with macOS and offers good speed as well as the practical iCloud Sync, which, among other things, keeps bookmarks in sync between devices. The developer tools are solid but nothing spectacular. Unfortunately, the browser just feels too &amp;quot;fiddly&amp;quot; for me, and I&#39;m in need of better DevTools. The elements of the user interface are extremely small and visually it fits in well with macOS, but Safari just doesn&#39;t suit my taste at the moment.&lt;/p&gt;
&lt;h2 id=&quot;firefox&quot; tabindex=&quot;-1&quot;&gt;Firefox &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/browserstartpage-the-speeddial-for-all-your-browsers/#firefox&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Mozilla&#39;s browser had its heyday as the first serious competitor to Internet Explorer and then fell behind over time. In the meantime, however, Mozilla has recognised this and is consistently developing the browser further. It is fast, offers a Firefox sync and has quite good developer tools. Moreover, the browser itself does not pass any data to Google. Actually, it&#39;s my browser of choice - if it weren&#39;t for Google&#39;s Chrome.&lt;/p&gt;
&lt;h2 id=&quot;chrome&quot; tabindex=&quot;-1&quot;&gt;Chrome &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/browserstartpage-the-speeddial-for-all-your-browsers/#chrome&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Google entered the browser market quite late, but nevertheless very successfully. It is not without reason that Chrome has become the most widely used browser. Chrome is fast, reliable and offers extremely good developer tools that are constantly being developed further. Of course, you have to be aware that Google has an interest in spreading the browser as widely as possible. Google sells advertising. These are optimally tailored to your surfing behaviour in order to achieve the highest possible match of interests and thus higher click rates on the advertisements displayed. The bottom line is that advertising generates more revenue. Is Chrome also available without Google?&lt;/p&gt;
&lt;h2 id=&quot;vivaldi&quot; tabindex=&quot;-1&quot;&gt;Vivaldi &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/browserstartpage-the-speeddial-for-all-your-browsers/#vivaldi&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The company that develops the Vivaldi browser is led by the ex-CEO of Opera, Jon von Tetzchner, and has brought a pretty good browser onto the market with Vivaldi. Like Chrome, Vivaldi is based on the &lt;em&gt;Chromium&lt;/em&gt; project and contains many useful functions. Splitscreen of web pages and the web panels are the highlights from my point of view. The developer tools correspond to those of Chrome - but are usually always updated a little later. Unfortunately, Vivaldi reacts a bit sluggish here and there, but this can be fixed with a few adjustments in the configuration. (Here is the link to the corresponding adjustments: &lt;a href=&quot;https://www.ghacks.net/2017/02/13/how-to-speed-up-the-vivaldi-web-browser/&quot;&gt;https://www.ghacks.net/2017/02/13/how-to-speed-up-the-vivaldi-web-browser/&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;browserswitching-and-speeddials&quot; tabindex=&quot;-1&quot;&gt;Browserswitching and Speeddials &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/browserstartpage-the-speeddial-for-all-your-browsers/#browserswitching-and-speeddials&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;As you can see, every browser has its advantages and disadvantages, and it&#39;s not always easy for me to choose my favourite. As already mentioned, I currently use Firefox (in the developer edition). Switching from one browser to the next is usually not a big problem. Bookmarks can usually be imported into the new browser without any problems.&lt;/p&gt;
&lt;p&gt;All browsers now have a speed dial. As a rule, the most frequently visited pages are stored in a speed dial and you can usually &amp;quot;pin&amp;quot; your favourite websites here so that they are not replaced by other pages. Unfortunately, speed dials are also the big problem when you change browsers. As a rule, they cannot simply be transferred to the new browser, or they are not synchronised between the devices.&lt;/p&gt;
&lt;figure&gt;
	&lt;img src=&quot;https://saschadiercks.de/posts/browserstartpage-the-speeddial-for-all-your-browsers/startpage-iphone.jpg&quot; loading=&quot;lazy&quot; alt=&quot;BrowserStartpage on iPhone&quot;&gt;
	&lt;figcaption&gt;BrowserStartpage on iPhone&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2 id=&quot;browserstartpage-the-idea&quot; tabindex=&quot;-1&quot;&gt;BrowserStartpage - the idea &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/browserstartpage-the-speeddial-for-all-your-browsers/#browserstartpage-the-idea&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;This was also the trigger for my BrowserStartpage project. I had reached the point where I hardly used my bookmarks and my really often used links were stored in a speed dial. How could I transfer them to another browser or keep them synchronised between the browsers? Create all the links manually in the new browser? Wait until the new browser had rebuilt the page on its own? No, none of this was a good solution. I began to design and develop my own Speeddial.&lt;/p&gt;
&lt;h3 id=&quot;the-requirements&quot; tabindex=&quot;-1&quot;&gt;The requirements &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/browserstartpage-the-speeddial-for-all-your-browsers/#the-requirements&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;The initial requirements for the Speeddial were quickly taken up:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;it should be able to be hosted on its own web server&lt;/li&gt;
&lt;li&gt;it should work on all devices, i.e. also responsively&lt;/li&gt;
&lt;li&gt;it should offer the possibility to divide the content into several areas - keyword &amp;quot;tabs&lt;/li&gt;
&lt;li&gt;the currently opened tab should be saved in the browser, so that the next time I open the page, it will open in the same way I left it.&lt;/li&gt;
&lt;li&gt;the Speeddial should make as few requests as possible to the web server in order to achieve a high speed even on mobile devices&lt;/li&gt;
&lt;li&gt;the maintenance should be quite simple and later also automatable&lt;/li&gt;
&lt;li&gt;later on it should be possible to create your own themes to adapt the site to your own taste&lt;/li&gt;
&lt;li&gt;It should be possible to export the site later, so that the Speeddial also works without its own web server and can be synchronised. For example, as a static page, synchronised via Dropbox.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;from-the-idea-to-implementation&quot; tabindex=&quot;-1&quot;&gt;From the idea to implementation &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/browserstartpage-the-speeddial-for-all-your-browsers/#from-the-idea-to-implementation&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;I started to create a first, static prototype. A collection of links, decorated with screenshots. That was a pretty good start. I synchronised the result via iCloud and set the page as the start page in all browsers.&lt;/p&gt;
&lt;figure&gt;
	&lt;img src=&quot;https://saschadiercks.de/posts/browserstartpage-the-speeddial-for-all-your-browsers/startpage-macbook.jpg&quot; loading=&quot;lazy&quot; alt=&quot;The BrowserStartpage also looks good on the Macbook&quot;&gt;
	&lt;figcaption&gt;Die BrowserStartpage macht auch auf dem Macbook eine gute Figur&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h4 id=&quot;the-tabs&quot; tabindex=&quot;-1&quot;&gt;The tabs &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/browserstartpage-the-speeddial-for-all-your-browsers/#the-tabs&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;Logically, the tabs had to be realised with Javascript. No big problem with jQuery - but since I wanted to generate as few requests and as little traffic as possible, I started to implement the tabs with regular Javascript. This would save me the approx. 80kB of the jQuery library.&lt;/p&gt;
&lt;p&gt;The page should also be functional without Javascript, since, for example, Javascript cannot be executed on iCloud on mobile devices. This resulted in the fallback that the tabs would jump to the corresponding areas when clicked instead of switching them. The page would now work without Javascript - this is also called &lt;em&gt;progressive enhancement&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Now it was time to save the last opened tab. I decided to use the &lt;em&gt;localStorage&lt;/em&gt; here - a small local storage that can be used by the browser. The ID of the currently clicked tab is stored there and read out the next time it is called up. If this ID is not or no longer available in the Speeddial, the default ID is used. This could also be done with a cookie, but in contrast to the &lt;em&gt;localStorage&lt;/em&gt;, they can be deleted quite easily.&lt;/p&gt;
&lt;h4 id=&quot;minimising-the-calls&quot; tabindex=&quot;-1&quot;&gt;Minimising the calls &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/browserstartpage-the-speeddial-for-all-your-browsers/#minimising-the-calls&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;As the next step, I wanted to optimise the caching of the files so that the browser only downloads files that have actually been changed. I wanted to transfer as little data as possible over the mobile network on the iPhone. I decided to use the &lt;em&gt;application cache&lt;/em&gt;. This is realised via a manifest file in which all files are listed that the browser should store locally.
If the web server is not accessible, the page can still be used because the data is saved locally the first time it is called up. Even a forced reload in the browser does not put the page out of operation. Another practical advantage of the implementation is that the Speeddial is also functional if the web server does not respond.&lt;/p&gt;
&lt;p&gt;The Javascript and CSS I created are now loaded directly into the page to avoid further requests. Also it is a single page application (well, sort of) so caching doesn&#39;t play a big role here.&lt;/p&gt;
&lt;h4 id=&quot;data-maintenance&quot; tabindex=&quot;-1&quot;&gt;Data maintenance &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/browserstartpage-the-speeddial-for-all-your-browsers/#data-maintenance&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;Since I plan to change the speeddial directly on the page at some point, I wanted to outsource the content to be displayed to a file. A configuration file, if you will. Since the later changes in the Speeddial would probably be realised via Javascript, I decided to choose the json format for the configuration of the contents. Currently, the following contents are specified in the json file:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tab names and structure&lt;/li&gt;
&lt;li&gt;Link targets of the tiles&lt;/li&gt;
&lt;li&gt;Graphics for the link&lt;/li&gt;
&lt;li&gt;Description of the link&lt;/li&gt;
&lt;li&gt;Background graphic&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This content is currently read in via PHP and the Speeddial is created from it. The static HTML is currently no longer used. In addition, the already mentioned &lt;em&gt;application cache&lt;/em&gt; is also built up dynamically. The advantage now is that additional tabs and links can be specified in the json file. The &lt;em&gt;application cache&lt;/em&gt; is then updated without further intervention and the page can now be expanded relatively easily. Only the graphics for the links still have to be created manually, but this can also be automated later.&lt;/p&gt;
&lt;h4 id=&quot;css-and-javascript&quot; tabindex=&quot;-1&quot;&gt;CSS and Javascript &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/browserstartpage-the-speeddial-for-all-your-browsers/#css-and-javascript&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;The Javascript, as I already mentioned, is now loaded directly into the page, but exists, like the CSS, as a separate file on the server. Both Javascript and CSS are generated using &lt;em&gt;Gulp&lt;/em&gt;. Line breaks and spaces are removed to save data. The CSS is developed using SCSS to facilitate later theming.&lt;/p&gt;
&lt;figure&gt;
	&lt;img src=&quot;https://saschadiercks.de/posts/browserstartpage-the-speeddial-for-all-your-browsers/startpage-macbook-iphone.jpg&quot; loading=&quot;lazy&quot; alt=&quot;The start page on different devices&quot;&gt;
	&lt;figcaption&gt;The start page on different devices&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2 id=&quot;get-the-speeddial&quot; tabindex=&quot;-1&quot;&gt;Get the Speeddial &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/browserstartpage-the-speeddial-for-all-your-browsers/#get-the-speeddial&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The Speeddial is developed by me in a local PHP environment. I simulate a PHP-capable web server here using &lt;em&gt;Vagrant&lt;/em&gt;. If this is all Bohemian woods for you, that&#39;s no problem - all the relevant data for using the Speeddial is in one directory. You only need the PHP environment if you want to build on the project.&lt;/p&gt;
&lt;p&gt;You can find the Speeddial on Github. There you can download all the files. You can find a demo version of the current version here &lt;a href=&quot;https://demo.saschadiercks.de/startpage/&quot;&gt;https://demo.saschadiercks.de/startpage/&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;There are only a few links here, but there are enough to test the functionality.&lt;/p&gt;
&lt;p&gt;All files and a documentation in English can be found on Github at &lt;a href=&quot;https://github.com/saschadiercks/browserStartpage&quot;&gt;https://github.com/saschadiercks/browserStartpage&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I hope the Speeddial will be as useful to you as it is to me. Switching between browsers or using different browsers at the same time is no longer a problem - they all use the same Speeddial.&lt;/p&gt;
&lt;p&gt;Oh yes, I have also linked the browsers described here in the demo file.&lt;/p&gt;
&lt;p&gt;If you are wondering how I created the screenshots in the devices: With &lt;a href=&quot;http://magicmockups.com/&quot;&gt;Magic Mockup&lt;/a&gt; you can insert your screenshots into the corresponding templates.&lt;/p&gt;
</description>
					<pubDate>Thu, 24 Aug 2017 02:00:00 +0000</pubDate>
					<dc:creator>Sascha Diercks</dc:creator>
					<guid>https://saschadiercks.de/posts/browserstartpage-the-speeddial-for-all-your-browsers/</guid>
				</item>
			
			
			
			
				
				<item>
					<title>Social media is communication, not a game</title>
					<link>https://saschadiercks.de/posts/social-media-is-communication-not-a-childs-play/</link>
					<description>&lt;p&gt;In the past few days, mistakes in the area of social media could be observed that well-known companies had committed. I got the impression that although social media is used for marketing purposes, it has not yet been fully integrated into corporate structures. At this point I would like to use two examples to explain that social media is a dialogue and not a children&#39;s playground!&lt;/p&gt;
&lt;h2 id=&quot;case-1-social-media-is-communication&quot; tabindex=&quot;-1&quot;&gt;Case 1: Social media is communication &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/social-media-is-communication-not-a-childs-play/#case-1-social-media-is-communication&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;A campaign announced a new product that was not available at the announced time. Many people were waiting for this product and understandably wondered when it would be available. In their distress, they turned to the company&#39;s Twitter channel with questions, suggestions and suspicions. To no avail, the messages were hardly responded to!&lt;/p&gt;
&lt;p&gt;If you manage a social media channel, be it Twitter, Facebook, Google+ or any other channel, expect that customers will want to interact with you.&lt;/p&gt;
&lt;p&gt;It may be that you only see the Twitter stream as a replacement for your RSS feed and just want to keep customers informed, yet, and I guarantee it, customers will try to contact you through this channel. The worst thing you can do in such a case is to ignore the customer. In such a case, you disappoint the customer and this in turn can shake the customer&#39;s trust in you. In the worst case, you lose the customer!&lt;/p&gt;
&lt;p&gt;You claim that you are using social media as a communication channel, but you forget the true meaning of &amp;quot;communication&amp;quot;. I may quote Wikipedia at this point:&lt;/p&gt;
&lt;p&gt;&amp;quot;Communication ... is the exchange or transmission of information. ... By &amp;quot;exchange&amp;quot; is meant a mutual give and take.&amp;quot; &lt;a href=&quot;http://de.wikipedia.org/wiki/Kommunikation&quot;&gt;Source:Wikipedia&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You have neglected the exchange, namely the mutual give and take. No dialogue has been established with the customer - rather, you are holding a monologue which you are posting on the Internet.&lt;/p&gt;
&lt;h3 id=&quot;this-is-what-you-can-do&quot; tabindex=&quot;-1&quot;&gt;This is what you can do: &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/social-media-is-communication-not-a-childs-play/#this-is-what-you-can-do&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Avoid the monologue - enter into a dialogue with your customers! Answer questions, thank them for tips! It&#39;s so easy and it builds trust in you and your brand!&lt;/p&gt;
&lt;h2 id=&quot;case-2-unreliable-support&quot; tabindex=&quot;-1&quot;&gt;Case 2: Unreliable support &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/social-media-is-communication-not-a-childs-play/#case-2-unreliable-support&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;A dialogue with customers naturally means a certain amount of work for you as a company, but surely you have employees who you have assigned to social media activities? If you can answer this in the affirmative, I would like to ask you another question: is your social media account sufficiently looked after? Can you react quickly enough, e.g. at the weekend?&lt;/p&gt;
&lt;p&gt;In a concrete case, it recently happened that a Twitter account was hijacked by a well-known association and direct messages were sent to the followers (readers or customers) in their name! The direct messages contained a link to a Facebook page that aimed to read out the access data of the person who followed the link. On the Facebook target page, the customer was asked to confirm the Twitter account by entering their access data in the form. This was a form that corresponded to the Twitter design, but there was a problem with a character that was not displayed correctly. This kind of thing is suspicious based on experiences with other Spm sites! A more detailed investigation then revealed that the form was on a Russian server, which probably did not belong to Twitter.&lt;/p&gt;
&lt;p&gt;The attackers chose a very good time for this action: Friday afternoon!&lt;/p&gt;
&lt;p&gt;The account holder was not warned until Monday morning. So a malicious link was circulating in the known account for several days!&lt;/p&gt;
&lt;p&gt;I don&#39;t wish it on you, but such a problem can happen to any of us and in such a case we should be able to react quickly!&lt;/p&gt;
&lt;p&gt;If social media is only a channel for you that is not continuously managed, customers can quickly fall into the traps described above or similar ones. You should then be able to react quickly, otherwise you are also putting your customers&#39; trust in you at risk!&lt;/p&gt;
&lt;h3 id=&quot;this-is-what-you-can-do-1&quot; tabindex=&quot;-1&quot;&gt;This is what you can do: &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/social-media-is-communication-not-a-childs-play/#this-is-what-you-can-do-1&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Don&#39;t gamble away trust and continuously monitor your accounts! There will always be a customer who points out such problems to you. Then you can quickly eliminate the problem!&lt;/p&gt;
&lt;p&gt;However, this requires employees who are prepared to react quickly and possibly even at the weekend. Such employees strengthen the customers&#39; trust in you, because these employees want to and can quickly fix such problems as the one described above!&lt;/p&gt;
&lt;p&gt;These are employees you can rely on!&lt;/p&gt;
&lt;p&gt;You see: Social media is communication and not child&#39;s play!&lt;/p&gt;
</description>
					<pubDate>Thu, 17 Jan 2013 01:00:00 +0000</pubDate>
					<dc:creator>Sascha Diercks</dc:creator>
					<guid>https://saschadiercks.de/posts/social-media-is-communication-not-a-childs-play/</guid>
				</item>
			
			
			
			
				
				<item>
					<title>Dangers and problems when using sliders and carousels</title>
					<link>https://saschadiercks.de/posts/dangers-and-problems-when-using-sliders-and-carousels/</link>
					<description>&lt;p&gt;I recently came across an interesting article (well, again) that described how sliders and carousels are nice to look at, but can still be a conversion killer. Sliders and carousels were dismissed here as a fad that needs to be questioned. Read the article: &lt;a href=&quot;http://conversionxl.com/dont-use-automatic-image-sliders-or-carousels-ignore-the-fad/&quot;&gt;Don&#39;t Use Automatic Image Sliders or Carousels, Ignore the Fad&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Since I&#39;m not a big fan of sliders, carousels and other things that move around on websites, I&#39;d like to take the article as an opportunity to look a little more closely at these advertising tools.&lt;/p&gt;
&lt;h2 id=&quot;sliders-and-carousels-they-re-everywhere-aren-t-they&quot; tabindex=&quot;-1&quot;&gt;Sliders and carousels - they&#39;re everywhere... aren&#39;t they? &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/dangers-and-problems-when-using-sliders-and-carousels/#sliders-and-carousels-they-re-everywhere-aren-t-they&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Sliders and carousels are all the rage right now, and even large shopping sites are using these elements as advertising tools.&lt;/p&gt;
&lt;p&gt;Examples include &lt;em&gt;Baur&lt;/em&gt;, &lt;em&gt;Bon Prix&lt;/em&gt;, &lt;em&gt;Zalando&lt;/em&gt; and &lt;em&gt;Mirapodo&lt;/em&gt;. The popular framework for responsive Websites &lt;em&gt;Foundation&lt;/em&gt; also comes with a slider. &lt;em&gt;Bootstrap&lt;/em&gt; is no exception here - I simply don&#39;t want to list them all.&lt;/p&gt;
&lt;p&gt;However, other large sites such as &lt;em&gt;Asos&lt;/em&gt;, &lt;em&gt;H&amp;amp;M&lt;/em&gt;, &lt;em&gt;Otto&lt;/em&gt; and &lt;em&gt;Tchibo&lt;/em&gt; rely on static graphics. Even &lt;em&gt;Amazon&lt;/em&gt; uses moving elements only very sparingly.&lt;/p&gt;
&lt;p&gt;Are there any good reasons for the decision not to use sliders and carousels?&lt;/p&gt;
&lt;p&gt;Obviously, opinions differ somewhat here, so let&#39;s just approach the topic analytically!&lt;/p&gt;
&lt;h2 id=&quot;the-advantages&quot; tabindex=&quot;-1&quot;&gt;The advantages &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/dangers-and-problems-when-using-sliders-and-carousels/#the-advantages&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;First, let&#39;s take a look at the advantages.&lt;/p&gt;
&lt;p&gt;Obviously, you can fit a lot of content into a small space with the help of a slider. In this case, sliders are also often used as an argument for doing without various graphics and replacing them with a large slider. &amp;quot;If we play the content one after the other, we get an area for beautiful, large images!&amp;quot;&lt;/p&gt;
&lt;p&gt;If we animate the slider, the page also looks extremely modern. At this point, the argument &amp;quot;movement generates attention&amp;quot; is often used. However, this only works to a limited extent - but we will come to that in a moment.&lt;/p&gt;
&lt;h2 id=&quot;the-drawbacks&quot; tabindex=&quot;-1&quot;&gt;The drawbacks &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/dangers-and-problems-when-using-sliders-and-carousels/#the-drawbacks&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Now we come to the disadvantages of the sliders. Strictly speaking, the advantages of the sliders are also the biggest criticism of this element!&lt;/p&gt;
&lt;p&gt;Several contents can be placed in one area, but in the end the contents are also hidden. The customer may only see a fraction of the content.&lt;/p&gt;
&lt;p&gt;For this reason, sliders are often animated. At first, this sounds very good, but it has a decisive disadvantage: the slider can attract too much attention! This can go so far that customers no longer engage with the rest of the page. Of course, this also has the effect that the slider distracts or disturbs the customer - Let&#39;s put it simple, they are annoying!&lt;/p&gt;
&lt;p&gt;Let me explain that briefly:&lt;/p&gt;
&lt;p&gt;According to Susan M. Weinschenk, there are two types of vision. Central vision and peripheral vision. Through central vision, people catch things directly in the eye - they focus on something specific. Peripheral vision, on the other hand, takes place in the peripheral areas of the field of vision. It has been used since time immemorial to detect danger. If we perceive a movement in the edge of our field of vision, we can&#39;t help but focus on it, because it could represent a danger. We are then disturbed in our current action. This can be very annoying for users and becomes noticeable as follows:&lt;/p&gt;
&lt;p&gt;The user has passed the slider and found it uninteresting. He now engages with the content elsewhere on the website. The slider is now in the user&#39;s peripheral field of vision and keeps drawing attention to itself through animation. This can be perceived as extremely annoying.&lt;/p&gt;
&lt;p&gt;Between us: do you want to be disturbed in your concentration by an element on a website? Certainly not!&lt;/p&gt;
&lt;h2 id=&quot;the-issues&quot; tabindex=&quot;-1&quot;&gt;The issues &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/dangers-and-problems-when-using-sliders-and-carousels/#the-issues&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Sliders and carousels can also cause problems. Let&#39;s go through these at this point as well:&lt;/p&gt;
&lt;p&gt;Sliders and carousels currently (still) require Javascript. You may have to develop a fallback here if the Javascript fails - for whatever reason. A good fallback could be a div that has a scrollbar on the horizontal axis.&lt;/p&gt;
&lt;p&gt;Several large images in a slider quickly lead to higher data volume, which can lead to longer loading times. Especially in the mobile sector, this can be very annoying! The customer should be able to work with the website as quickly as possible. So you definitely want to add &lt;code&gt;loading=&amp;quot;lazy&amp;quot;&lt;/code&gt; to your images.&lt;/p&gt;
&lt;p&gt;The animations can also cause problems, because I have often seen that the phases in which the content of a slider is shown were far too short. In the worst case, the slider lacks controls, forcing the client to watch the entire run-through of a slider. The navigation of a slider or carousel is often displayed much too small in favour of the graphics - in this case, the operation of a slider is very tiring.&lt;/p&gt;
&lt;figure&gt;
	&lt;img src=&quot;https://saschadiercks.de/posts/dangers-and-problems-when-using-sliders-and-carousels/slider-carousel.png&quot; loading=&quot;lazy&quot; alt=&quot;An example of the structure of a good slider&quot;&gt;
	&lt;figcaption&gt;An example of the structure of a good slider&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2 id=&quot;you-would-like-to-use-sliders-anyways&quot; tabindex=&quot;-1&quot;&gt;You would like to use sliders anyways? &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/dangers-and-problems-when-using-sliders-and-carousels/#you-would-like-to-use-sliders-anyways&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Then please note the following.&lt;/p&gt;
&lt;p&gt;As you can see, there is a lot to consider when using a slider. Some points speak against a slider. However, if you still want to use sliders or a carousel on your website, please note or consider the following points:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Several contents can be combined in one area in a slider. This means that content can easily be overlooked. Also, the customer does not know the content in the slider and does not wait until all have been shown!
Prioritise the content. The first content should be your most important argument. Tell the customer the content of the slider from the beginning! Click areas or small banners, in which you briefly discuss the content, next to or below the slider would be a possibility!&lt;/li&gt;
&lt;li&gt;Sliders attract attention. Unfortunately, they may attract too much attention, so that they can be distracting!
Don&#39;t let sliders play automatically and make sure the controls are understandable and appropriately sized. Give the user control over the slider!&lt;/li&gt;
&lt;li&gt;Sliders are (still) dependent on Javascript!
Provide a fallback in case your Javascript does not work or the customer accesses your website without Javascript. Also avoid Flash! Flash and large amounts of Javascript can slow down smaller computers! In the worst case, your website will crash the browser. This can be very annoying when the shopping basket is full!&lt;/li&gt;
&lt;li&gt;Sliders make for a larger data volume!
Load the hidden content of a slider &lt;strong&gt;after&lt;/strong&gt; the page has been completely loaded. A static ad is better than a slow page!
Load smaller images for mobile devices to present a fast page to the customer!&lt;/li&gt;
&lt;li&gt;Test, test, test
Test in A/B tests whether your sliders are accepted by the customer. If your content is ignored, you may be giving away money! Please note: a long dwell time on a page may not be a positive sign! This can also indicate problems with your content.
Measure the conversion of your content. Be sure to test a static version against your slider!&lt;/li&gt;
&lt;/ul&gt;
</description>
					<pubDate>Mon, 15 Oct 2012 02:00:00 +0000</pubDate>
					<dc:creator>Sascha Diercks</dc:creator>
					<guid>https://saschadiercks.de/posts/dangers-and-problems-when-using-sliders-and-carousels/</guid>
				</item>
			
			
				
				<item>
					<title>Debug mobile websites in Safari</title>
					<link>https://saschadiercks.de/posts/debug-mobile-websites-in-safari/</link>
					<description>&lt;p&gt;We live in a time when customers no longer visit and use websites exclusively with their home PC. This circumstance leads to the fact that we (have to/should) develop websites in such a way that they can run on multiple devices.&lt;/p&gt;
&lt;p&gt;There are different techniques here, such as &lt;em&gt;Responsive Design&lt;/em&gt; or custom template sets for different device classes. No matter which solution we prefer - we have to test the site to make sure that the customer can use it without any problems. Since Safari 6.0, websites can be tested on the iPhone with the help of the web inspector integrated in Safari. If the mobile view of the website is not displayed correctly on the iPhone, we can work on the page live via the web inspector and solve the problem. This is much faster than trying to fix the error locally, uploading the file to the server and calling up the page again. In the worst case, we repeat this procedure several times for the same error.&lt;/p&gt;
&lt;p&gt;With Safari 6.0, this is now much easier. In this article I describe what exactly is required and how this test environment can be set up.&lt;/p&gt;
&lt;h2 id=&quot;two-ways-of-debugging&quot; tabindex=&quot;-1&quot;&gt;Two ways of debugging &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/debug-mobile-websites-in-safari/#two-ways-of-debugging&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;There are two ways to test mobile websites. Both via the iPhone simulator and via a real iOS device!
As a third option you can use the desktop version of Safari as well, but there might be rendering differences.&lt;/p&gt;
&lt;p&gt;Safari version 6.0 or higher is required for both cases! In addition, a developer mode activated in Safari is a prerequisite!&lt;/p&gt;
&lt;p&gt;This can be activated in &lt;em&gt;Safari &amp;gt; Preferences&lt;/em&gt; under the item &lt;em&gt;Advanced&lt;/em&gt;! Simply tick the box and the item &lt;em&gt;Show develop menu in menu barr&lt;/em&gt; appears in the menu bar!&lt;/p&gt;
&lt;figure&gt;
	&lt;img src=&quot;https://saschadiercks.de/posts/debug-mobile-websites-in-safari/entwicklermodus.jpg&quot; loading=&quot;lazy&quot; alt=&quot;The developer mode can be activated in preferences - advanced&quot;&gt;
	&lt;figcaption&gt;The developer mode can be activated in preferences - advanced&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2 id=&quot;debugging-with-the-ios-simulator-and-the-web-inspector&quot; tabindex=&quot;-1&quot;&gt;Debugging with the iOS Simulator and the Web Inspector &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/debug-mobile-websites-in-safari/#debugging-with-the-ios-simulator-and-the-web-inspector&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Under &lt;em&gt;OS X&lt;/em&gt;, it has been possible for some time to test websites and apps locally, i.e. in a simulator. The iOS simulator is part of the free Developer Tools &lt;a href=&quot;https://itunes.apple.com/de/app/xcode/id497799835?mt=12&quot;&gt;and can be downloaded here from the Mac App Store&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;If we now open any website in the iOS simulator, we have the possibility in the Safari browser (the desktop version) to access and manipulate the page in the iPhone simulator via &lt;em&gt;Developer &amp;gt; iPhone Simulator &amp;gt; ...&lt;/em&gt; with the web inspector!&lt;/p&gt;
&lt;figure&gt;
	&lt;img src=&quot;https://saschadiercks.de/posts/debug-mobile-websites-in-safari/webinspektor-simulator.jpg&quot; loading=&quot;lazy&quot; alt=&quot;The Webinspector accesses the simulator&quot;&gt;
	&lt;figcaption&gt;The Webinspector accesses the simulator&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2 id=&quot;remote-debugging-with-the-webinspector-and-the-iphone&quot; tabindex=&quot;-1&quot;&gt;Remote debugging with the Webinspector and the iPhone &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/debug-mobile-websites-in-safari/#remote-debugging-with-the-webinspector-and-the-iphone&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;It is similarly easy to access websites on a real iPhone. The prerequisite for this is that the iPhone is connected to the computer via USB. In addition, the &lt;em&gt;Web Information&lt;/em&gt; option must be activated on the iPhone. This requires at least iOS 6.&lt;/p&gt;
&lt;p&gt;The &lt;em&gt;web information&lt;/em&gt; can be activated as follows:
&lt;em&gt;Preferences &amp;gt; Safari &amp;gt; Advanced&lt;/em&gt;&lt;/p&gt;
&lt;figure&gt;
	&lt;img src=&quot;https://saschadiercks.de/posts/debug-mobile-websites-in-safari/webinformationen.jpg&quot; loading=&quot;lazy&quot; alt=&quot;Activate the web information to grant Safari access to the iPhone&quot;&gt;
	&lt;figcaption&gt;Activate the web information to grant Safari access to the iPhone&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Once the iPhone is connected to the computer, we can now access and edit the website in desktop Safari via &lt;em&gt;Developer &amp;gt; iPhone name &amp;gt; ...&lt;/em&gt;!&lt;/p&gt;
&lt;h2 id=&quot;mac-only&quot; tabindex=&quot;-1&quot;&gt;Mac only &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/debug-mobile-websites-in-safari/#mac-only&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The iPhone Simulator has always required the Macintosh as a platform, and Safari 6.x is not yet available for any other platform. Unfortunately, it is very likely that this will remain the case in the future!&lt;/p&gt;
</description>
					<pubDate>Thu, 11 Oct 2012 02:00:00 +0000</pubDate>
					<dc:creator>Sascha Diercks</dc:creator>
					<guid>https://saschadiercks.de/posts/debug-mobile-websites-in-safari/</guid>
				</item>
			
			
			
			
			
			
			
			
				
				<item>
					<title>Test the speed of mobile websites with the Network Link Conditioner</title>
					<link>https://saschadiercks.de/posts/test-the-speed-of-mobile-websites-with-the-network-link-conditioner/</link>
					<description>&lt;p&gt;You are developing mobile websites and want to know how the speed and page load feels to the user - and as realistically as possible? If you still have a Mac, then you&#39;re in luck, because you can easily throttle the throughput of your network with the Apple &lt;em&gt;Network Link Conditioner&lt;/em&gt;. You can then test how fast or slow the website would open for the user under, say, Edge.&lt;/p&gt;
&lt;h2 id=&quot;websites-should-be-as-fast-as-possible&quot; tabindex=&quot;-1&quot;&gt;Websites should be as fast as possible &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/test-the-speed-of-mobile-websites-with-the-network-link-conditioner/#websites-should-be-as-fast-as-possible&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;You probably know this situation: you switch on the television and want to relax in front of the set. Just the short waiting time until the picture finally appears bothers you unpleasantly. It&#39;s only three or four seconds, but the waiting time is annoying.&lt;/p&gt;
&lt;p&gt;It&#39;s no different on the web, every site should load as fast as possible. People hate delays, so it&#39;s a blessing that you have access to DSL with 6Mbit or faster bandwidth at your home computer.
Yes, that is really very pleasant, but unfortunately somewhat counterproductive for the development of mobile websites. You would like to test whether the website can also be loaded appropriately fast for the user who is not in the home WLAN with his mobile device, but on the road in a bus, with a slow mobile network. This used to be a problem, but with the appropriate equipment you can test your websites on your home computer as if you were sitting next to your user on the bus.&lt;/p&gt;
&lt;h2 id=&quot;do-you-have-a-mac-then-it-will-be-easy&quot; tabindex=&quot;-1&quot;&gt;Do you have a Mac? Then it will be easy! &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/test-the-speed-of-mobile-websites-with-the-network-link-conditioner/#do-you-have-a-mac-then-it-will-be-easy&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;What you need to throttle the speed is Apple&#39;s &lt;em&gt;Network Link Conditioner&lt;/em&gt;. This software is a component of the Developer Tools. However, it is not delivered with these tools by default, but must be installed afterwards.&lt;/p&gt;
&lt;h2 id=&quot;developer-tools-xcode&quot; tabindex=&quot;-1&quot;&gt;Developer Tools? Xcode? &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/test-the-speed-of-mobile-websites-with-the-network-link-conditioner/#developer-tools-xcode&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Xcode is a component of the Apple Developer Tools. Xcode can be used to write apps for the Mac and iOS - and since both the Mac and iOS devices access the same architecture, Apple&#39;s only offers Xcode for Mac OSX. So if you work under Windows, you have to look for another solution to throttle your network.&lt;/p&gt;
&lt;h2 id=&quot;the-network-link-condtioner-is-it-already-installed&quot; tabindex=&quot;-1&quot;&gt;The Network Link Condtioner, is it already installed? &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/test-the-speed-of-mobile-websites-with-the-network-link-conditioner/#the-network-link-condtioner-is-it-already-installed&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;If you search the net for the possibility to install Link Conditioner, it happens that you come across descriptions that assume that the software is already installed. For example here: &lt;a href=&quot;http://mattgemmell.com/2011/07/25/network-link-conditioner-in-lion/&quot;&gt;Network Link Conditioner in Lion - Matt Gemmel&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;So let&#39;s check that out first:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Open the Finder&lt;/li&gt;
&lt;li&gt;Locate the folder Applications &amp;gt; Utilities (or: CMD + Shift + U).&lt;/li&gt;
&lt;li&gt;Is there a folder there called &amp;quot;Network Link Conditioner&amp;quot;?&lt;/li&gt;
&lt;li&gt;Fine - in the folder there is a PrefPane file that you can install by double-clicking in the system settings. Then you are ready and can use the software.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;installing-the-network-link-condtioner-retroactively&quot; tabindex=&quot;-1&quot;&gt;Installing the Network Link Condtioner retroactively &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/test-the-speed-of-mobile-websites-with-the-network-link-conditioner/#installing-the-network-link-condtioner-retroactively&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;To install the &lt;em&gt;Network Link Condtioner&lt;/em&gt; afterwards, you need a &lt;a href=&quot;https://developer.apple.com/membercenter/&quot;&gt;free Apple Developer Account&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Once you have created it, download the Developer Tools, more specifically &lt;a href=&quot;https://itunes.apple.com/de/app/xcode/id497799835?mt=12&quot;&gt;&lt;em&gt;Xcode&lt;/em&gt; from the Mac App Store&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The download and installation take a few minutes!&lt;/p&gt;
&lt;p&gt;Now start &lt;em&gt;Xcode&lt;/em&gt;. The following menu will take you to the website where you can download the &lt;em&gt;Network Link Conditioner&lt;/em&gt;:
Xcode &amp;gt; Open Developer Tools &amp;gt; More Developer Tools&lt;/p&gt;
&lt;p&gt;Now log in to the website with your new or existing developer account.&lt;/p&gt;
&lt;p&gt;You now have the option of installing various developer tools. Look for the &lt;em&gt;Hardware IO Tools for Xcode&lt;/em&gt; right away. You can usually press CMD + F and find the file directly with the browser search, because it should already be listed on the page. Among other things, this file contains the &lt;em&gt;Network Link Conditioner&lt;/em&gt;. Load and open the disk image.&lt;/p&gt;
&lt;p&gt;Double-click on &lt;em&gt;Network Link Conditioner.prefpane&lt;/em&gt; to start the installation.&lt;/p&gt;
&lt;p&gt;The &lt;em&gt;Network Link Conditioner&lt;/em&gt; now is accessible in the system settings.&lt;/p&gt;
&lt;h3 id=&quot;here-are-the-steps-at-a-glance&quot; tabindex=&quot;-1&quot;&gt;Here are the steps at a glance &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/test-the-speed-of-mobile-websites-with-the-network-link-conditioner/#here-are-the-steps-at-a-glance&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;h2 id=&quot;all-in-all-it-is-a-time-consuming-process-so-here-is-an-overview-of-all-the-steps&quot; tabindex=&quot;-1&quot;&gt;All in all, it is a time-consuming process, so here is an overview of all the steps. &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/test-the-speed-of-mobile-websites-with-the-network-link-conditioner/#all-in-all-it-is-a-time-consuming-process-so-here-is-an-overview-of-all-the-steps&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Create a developer account&lt;/li&gt;
&lt;li&gt;Install Xcode via the Mac App Store&lt;/li&gt;
&lt;li&gt;Launch Xcode&lt;/li&gt;
&lt;li&gt;Select Xcode &amp;gt; Open Developer Tools &amp;gt; More Developer Tools&lt;/li&gt;
&lt;li&gt;Log in to the website that opens&lt;/li&gt;
&lt;li&gt;Search for &lt;em&gt;Hardware IO Tools for Xcode&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;Download the file&lt;/li&gt;
&lt;li&gt;Install &lt;em&gt;Network Link Conditioner.prefpane&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;what-you-can-do-with-the-new-software&quot; tabindex=&quot;-1&quot;&gt;What you can do with the new software &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/test-the-speed-of-mobile-websites-with-the-network-link-conditioner/#what-you-can-do-with-the-new-software&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;If you now start the &lt;em&gt;Network Link Conditioner&lt;/em&gt; via the system setting, you can set different network speeds via the pull-down menu &lt;em&gt;Profiles&lt;/em&gt;. You do not modify your entire network with the settings - only the Mac is slowed down.&lt;/p&gt;
&lt;p&gt;Together with the iPhone simulator, which is also in Xcode, you can experience your mobile website almost as a visitor would use it on the bus. Of course, not all households have a high-speed DSL connection yet, so it&#39;s worth slowing down your own website for the desktop with the tool as well!&lt;/p&gt;
&lt;h2 id=&quot;one-more-note&quot; tabindex=&quot;-1&quot;&gt;One more note: &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/test-the-speed-of-mobile-websites-with-the-network-link-conditioner/#one-more-note&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;If you restart the computer, the settings of the &lt;em&gt;Network Link Conditioner&lt;/em&gt; are reset! So you don&#39;t have to remember for several days which profile you worked with the last time!&lt;/p&gt;
&lt;p&gt;And now good luck testing your website - is it fast enough when you open it via the &lt;em&gt;Edge, Lossy Network&lt;/em&gt; profile?&lt;/p&gt;
</description>
					<pubDate>Wed, 22 Aug 2012 02:00:00 +0000</pubDate>
					<dc:creator>Sascha Diercks</dc:creator>
					<guid>https://saschadiercks.de/posts/test-the-speed-of-mobile-websites-with-the-network-link-conditioner/</guid>
				</item>
			
			
				
				<item>
					<title>Why QR codes are not suitable for the masses (and what you can do about it)</title>
					<link>https://saschadiercks.de/posts/why-qr-codes-are-not-suitable-for-the-masses/</link>
					<description>&lt;p&gt;Most of us who work with or on the web are now familiar with QR codes. But now, hand on heart, how many QR codes have you already scanned - not to test the code for your own project, but to retrieve additional information, for example?
Not that often, right? Let&#39;s see if it can be different for the average user.&lt;/p&gt;
&lt;p&gt;What exactly QR codes are can be found on various websites, so I won&#39;t go into the details here.
Put very simply, a QR code is a link! A link that, among other things, can make it possible to switch from one medium to another. This can be a change from a print campaign to a website or a customer hotline. Ultimately, it is a link that should relieve the user of tedious typing. It sounds practical, yet there is a lot of friction.&lt;/p&gt;
&lt;figure&gt;
	&lt;img src=&quot;https://saschadiercks.de/posts/why-qr-codes-are-not-suitable-for-the-masses/qr-saschadiercks.png&quot; loading=&quot;lazy&quot; alt=&quot;an example QR code&quot;&gt;
	&lt;figcaption&gt;An example QR code&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2 id=&quot;not-everyone-owns-a-smartphone&quot; tabindex=&quot;-1&quot;&gt;Not everyone owns a smartphone &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/why-qr-codes-are-not-suitable-for-the-masses/#not-everyone-owns-a-smartphone&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;In 2011, a big growth was predicted for QR codes - and that was still for the then current year.
Sure, the number of smartphone users is constantly increasing, and so is the chance that one&#39;s own code will be scanned. And yet, there are still many users who do not own an iPhone, Samsung Galaxy or other smartphone. These users resort to a device that cannot scan QR codes. These people may even surf the web, but have no way of installing additional software on their device.&lt;/p&gt;
&lt;h2 id=&quot;users-do-not-recognise-codes-or-confuse-them&quot; tabindex=&quot;-1&quot;&gt;Users do not recognise codes or confuse them &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/why-qr-codes-are-not-suitable-for-the-masses/#users-do-not-recognise-codes-or-confuse-them&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;According to some studies, QR codes have gained in popularity, but not every user is familiar with them. Many people have probably seen the codes or a variation of them before, and that is precisely the problem. Methods similar to the QR code are also used in other areas - a good example of this is the data matrix, which is used on parcels and letters. It looks very similar to the QR code, but other contents are encoded. The user assumes that the data matrix contains a link and scans it. However, contrary to expectations, no website is called up and, in the worst case, no feedback is given at all. The user now transfers this negative experience to conventional QR codes and ignores them from then on.&lt;/p&gt;
&lt;h2 id=&quot;the-codes-are-used-incorrectly&quot; tabindex=&quot;-1&quot;&gt;The codes are used incorrectly &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/why-qr-codes-are-not-suitable-for-the-masses/#the-codes-are-used-incorrectly&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;My job as a designer requires me to observe people in order to solve problems that these people have in their daily lives.
I could also observe people trying to deal with QR codes. One problem people have with QR codes - they photograph the code with the camera integrated in the smartphone and expect an action from the smartphone. Of course, this does not happen and so the QR code (in the best case only the one that has just been photographed) is ignored.&lt;/p&gt;
&lt;h2 id=&quot;an-additional-application-is-needed&quot; tabindex=&quot;-1&quot;&gt;An additional application is needed &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/why-qr-codes-are-not-suitable-for-the-masses/#an-additional-application-is-needed&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Here is an opportunity for software developers. Develop camera software that independently recognises QR codes and offers the user an action option. Optimally, this functionality should already be implemented in the operating system. Apple, Google or Microsoft, are you reading this?
Unfortunately, this functionality is unknown to me so far and so we have to resort to third-party software. This is also an important point that the user must be aware of.&lt;/p&gt;
&lt;h2 id=&quot;scanner-and-camera-of-different-quality&quot; tabindex=&quot;-1&quot;&gt;Scanner and camera of different quality &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/why-qr-codes-are-not-suitable-for-the-masses/#scanner-and-camera-of-different-quality&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;If the user could actually be persuaded to install an application on his device that is capable of reading QR codes, a big step has been taken. However, there is already a wide variety of software in the app stores of this world, which also differ in how well they can recognise and read the codes. The cameras of the smartphones also play their part. Not every smartphone is equipped with a camera of the quality of the iPhone 4S.&lt;/p&gt;
&lt;h2 id=&quot;the-fear-of-scanning-the-code&quot; tabindex=&quot;-1&quot;&gt;The fear of scanning the code &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/why-qr-codes-are-not-suitable-for-the-masses/#the-fear-of-scanning-the-code&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Last but not least, there remains the emotional hurdle of users to scan your QR code. Far too often we hear all kinds of messages about the dangers lurking on the web - and not just since yesterday! Dialers, viruses, phishing and also reports about attacked &amp;amp; manipulated smartphones have played their part. Users are becoming more cautious!
Often, reading software for QR codes redirects the user directly to a page on the web without first announcing what happens next. While this is convenient, it carries with it a high potential for uncertainty. The user cannot see what is behind the code and in the worst case ignores it. &amp;quot;Is my smartphone at risk if I scan this code?&amp;quot;&lt;/p&gt;
&lt;h2 id=&quot;what-can-i-do-to-increase-conversion&quot; tabindex=&quot;-1&quot;&gt;What can I do to increase conversion? &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/why-qr-codes-are-not-suitable-for-the-masses/#what-can-i-do-to-increase-conversion&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;I already mentioned that a QR code is first and foremost a link and so the rules of web links also apply to QR codes for the most part.&lt;/p&gt;
&lt;p&gt;Before you print a code, consider in the first step: the scanners installed on smartphones, as well as the cameras used, are of varying quality. Therefore, it has proven useful to print the code in the size of 3cm x 3cm!&lt;/p&gt;
&lt;p&gt;Counter users&#39; fears and describe what the customer can expect behind the code. It is also important to place a fitting &lt;strong&gt;Call to Action&lt;/strong&gt;. Of course, the statement should be as promotional as possible!&lt;/p&gt;
&lt;p&gt;The code should relieve the user of tedious typing, but not all users have a smartphone with a camera and scanner installed. Therefore, always print a &lt;strong&gt;related URL&lt;/strong&gt; to enable these customers to use the offer as well. If the URLs are different, the code and URL can also be evaluated separately. In addition, the URL shown should be as short as possible, because nobody likes typing on a mobile phone! Perhaps you can equip your website with its own linkshortner?&lt;/p&gt;
&lt;p&gt;You should also reward the user for taking the trouble to scan your code. Don&#39;t just throw him onto your company&#39;s homepage. Meet his expectations, make the effort easier for him or reward him with incentives.&lt;/p&gt;
&lt;h2 id=&quot;let-s-summarise&quot; tabindex=&quot;-1&quot;&gt;Let&#39;s summarise &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/why-qr-codes-are-not-suitable-for-the-masses/#let-s-summarise&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;There are many reasons why a user may ignore your QR codes, but you may be able to attract him as a customer through a QR code if you...&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;... print the code in an easily scannable way&lt;/li&gt;
&lt;li&gt;... integrate a promotional call-to-action&lt;/li&gt;
&lt;li&gt;... offer a URL as an alternative&lt;/li&gt;
&lt;li&gt;... keep the alternative URL short&lt;/li&gt;
&lt;li&gt;... reward the user&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bonus-do-you-already-have-your-own-app&quot; tabindex=&quot;-1&quot;&gt;Bonus: Do you already have your own app? &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/why-qr-codes-are-not-suitable-for-the-masses/#bonus-do-you-already-have-your-own-app&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;In that case, it might be worth integrating a code-reading functionality here. You can then refer to it in your print ads and ask the customer to scan the printed QR code with your app. In this case, you may manage to get users to use your app in the future when they stumble across a code of your company.&lt;/p&gt;
&lt;h2 id=&quot;further-information&quot; tabindex=&quot;-1&quot;&gt;Further information &lt;a class=&quot;direct-link&quot; href=&quot;https://saschadiercks.de/posts/why-qr-codes-are-not-suitable-for-the-masses/#further-information&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;If you want to delve a little deeper into the technology behind QR codes, may I refer you to the Career Bible, which, in addition to Wikipedia, gives a nice overview of QR codes and their function.
&lt;a href=&quot;http://karrierebibel.de/qr-code-2011-wird-das-jahr-des-barcode-marketing/&quot;&gt;http://karrierebibel.de/qr-code-2011-wird-das-jahr-des-barcode-marketing/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;It only remains for me to wish you much success with the use of QR codes...&lt;/p&gt;
</description>
					<pubDate>Sun, 13 May 2012 02:00:00 +0000</pubDate>
					<dc:creator>Sascha Diercks</dc:creator>
					<guid>https://saschadiercks.de/posts/why-qr-codes-are-not-suitable-for-the-masses/</guid>
				</item>
			
	</channel>
</rss>
