<?xml version="1.0" encoding="utf-8"?>
    <feed xmlns="http://www.w3.org/2005/Atom">
        <title>Anselm Hannemann</title>
        <link href="https://helloanselm.com/atom.xml" rel="self"/>
        <link href="https://helloanselm.com/"/>
        <updated>Tue, 20 Dec 2016 12:07:36 +0100</updated>
        <id>https://helloanselm.com/</id>
        <author>
            <name>Anselm Hannemann</name>
            <email>hello@helloanselm.com</email>
        </author>
        
        <entry>
            <title>The World uses the Internet (differently)</title>
            <link href="https://helloanselm.com/2016/the-world-uses-the-internet/"/>
            <updated>2016-12-07T00:00:00+01:00</updated>
            <id>https://helloanselm.com.com/2016/the-world-uses-the-internet</id>
            <content type="html"><![CDATA[ <p>At some point during building a new web project we will define a browser support matrix. 
But if we’re honest, how do we <em>usually</em> define this list? Developers tend to add their bias 
regarding old, or browsers that don’t support all modern code standards. Other people in a project
prefer to look into the current web server statistics and base their decision on these numbers. 
Both approaches are not correct though, and here’s why.</p>

<h2 id="the-developer-bias">The Developer Bias</h2>

<p>Every developer will understand and admit that we’re biased which browsers we <em>want</em> to support. 
Therefore a decision made with that bias will likely not reflect reality of people who will try to 
access the website/app.</p>

<h2 id="the-analytics-fallacy">The Analytics Fallacy</h2>

<p>Okay, instead we’re now going to look at the current analytics data that we have from the current project.
I mean, wouldn’t it be great if we build browser support based on who really uses our services?</p>

<p>The fallacy here is that this takes an existing project’s data and assumes that the audience will be 
the same. If we do that, we can be very assured that the audience will be the same. But this isn’t great. 
By taking the existing data we admit that we don’t want to provide a better solution to more people. 
People that couldn’t access the website before will likely not be able to do so in future. And these people 
won’t show up in your analytics.</p>

<p>When building an international website, have you considered that your Google Analytics will lack data from China?
In China, Google Analytics is blocked at government-level, so all Chinese users won’t show up in your statistics. 
Now, with that in mind, would you reconsider supporting UC Browser if you know that you have thousands of users from 
China accessing your website via this mobile browser? In fact, for Asia, <a href="http://gs.statcounter.com/#all-browser-as-monthly-201606-201611">this browser accounts for 17.4% of the traffic</a> (as of December 2016), 
more than Firefox or Internet Explorer together.</p>

<p>If your business or service should be available in Africa, have you considered that <a href="http://gs.statcounter.com/#all-browser-af-monthly-201606-201611">35.4% (as of December 2016) of 
people there use a mobile phone and Opera Mini</a> 
as a browser to access websites? Opera Mini here is on a race with Chrome for the number one position and quite even with it, 
leaving all common other browsers way behind. Now remember how Opera Mini works: It’s a proxy browser that won’t show up 
with its real user-requests in your Google Analytics as well.</p>

<p>With that facts in mind, we realize that we need to rethink our way to decide for browser support.</p>

<h2 id="the-need-for-assumptions">The Need for Assumptions</h2>

<p>One way of defining proper browser support is to look at your actual statistics and try to figure out where there could be issues.
If your website isn’t responsive yet, consider how different the numbers would look like if the project would be a great experience 
on a variety of devices, not only on Desktop or mainstream smartphones.
If your website doesn’t have users from certain countries or continents, consider why that is and think about what needs to be done 
to include people from these countries. Think about connectivity, costs for internet access, different devices, different languages.
<a href="https://www.webworldwide.io/">The Web Worldwide</a> helps you getting more context on that; it’s a research by Akamai, one of the biggest 
content delivery service providers worldwide and shows how people in different countries are connected to the internet with 
which connection speed and on which type of network and how much this costs them.</p>

<p>You see that I want to you <em>assume</em> what users your platform <em>could</em> get if only the circumstances are good for them.
By doing that, we can suddenly think of reaching millions of new users with the project. 
Now it’s time to think about the consequences of including <em>all of these possible users</em>.</p>

<h2 id="the-need-for-trade-offs">The Need for Trade-Offs</h2>

<p>It’s clear that it would be a desire now for any product owner to reach <em>all</em> users worldwide.
Unfortunately, nearly all capacities at projects are limited. This means we need and should find trade-offs now, 
and this is totally fine as we have thought of the available chances and now are able to evaluate how important they are 
for the project.</p>

<p>If your product affects German people, it’s okay to not translate the project into 42 or more languages.
We should not forget to target as many users as possible, so a German language and English language for the 
non-German-speaking people living in Germany would still be desired.
As the audience is Germany, we could happily decide now that we don’t need to support UC Browser (it’s not a thing here), 
and we can also think about not supporting Opera Mini (not much used here).
We could decide not to host the infrastructure on Amazon Web Services or Google Cloud Engine and not to use a global CDN for it, 
since this causes more work but little value for German users.</p>

<p>But if your project needs to be available worldwide, we need to make the trade-off on the developer side. 
We must provide a basic experience to all the people and if that means that we can’t use certain technologies, then 
it should be decided to not use the technology. It’s often that we choose developer convenience over users (and that could comply with 
projects like the local one described above) but now is not the case where we should.</p>

<h2 id="the-roundup">The Roundup</h2>

<p>By expanding our view from <em>current users</em> towards <em>possible users</em> we’re reframing our bias towards an opportunity 
and can turn a project into success by opening up the availability of it to more users than previously. </p>

<p>Lastly, I can recommend <a href="http://blog.chriszacharias.com/page-weight-matters">this article by Chris Zacharias</a> who worked for YouTube 
back when he wrote it and how they experienced this on their platform: By reducing the page weight of YouTube, suddenly 
the number of users increased drastically.</p>
 ]]></content>
        </entry>
        
        <entry>
            <title>The Divergence of Developers — Think out of the Box</title>
            <link href="https://helloanselm.com/2016/the-divergence-between-developer/"/>
            <updated>2016-10-22T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2016/the-divergence-between-developer</id>
            <content type="html"><![CDATA[ <p>On Twitter, we like to discuss the latest technologies and ideas like how to integrate
CSS the best way into our web app stacks using ES6 modules. One after another ES7 feature
is being pushed into browsers, and yet we tend to forget what the majority of developers
need. It’s due to us living in this tiny bubble called Social Media—channels not everyone
is following.</p>

<p>When we look at what has been added to browsers this year, you can see amazing statistics.
Microsoft’s Edge browser got support for complete ES6 standard, and browsers pushed hard
to implement security features and improve the performance. New features such as WOFF2 for
webfonts, Web Notifications API, VP9 video playback, <code>calc()</code>, are great and some of them
help every developer. Most of these features are not used by the majority of developers though.
Who uses VP9 today, or the Web Notifications API? Not the normal developer.
The issue is: We got plenty of new, great features but I’m pretty sure that most of these
features are not used very frequently by developers. They might be used by some big sites,
but not by the normal developer in an agency working on corporate websites and similar
projects. Instead, these developers are still suffering from the lack of basic features in browsers.
Which, you ask?</p>

<p><a href="http://caniuse.com/#search=grid">CSS Grids are still not supported anywhere</a> to its full extend, meaning we as developers
can’t use it for production.</p>

<p>SVG’s <code>&lt;use&gt;</code> method, used to display icons in a sprite, is still not usable from 3rd-party
domains due to the missing CORS implementation.</p>

<p><code>&lt;details&gt;&lt;summary&gt;</code> is still <a href="http://caniuse.com/#search=summary">not supported by every browser</a>,
<a href="http://caniuse.com/#search=clip-path">clip-path</a> is still not usable, we can’t use <code>:has()</code> yet,
<code>position: sticky</code>, the <code>vmax</code> unit, <code>tab-size</code>, <code>all: initial</code>, <code>font-size-adjust</code>, Scroll Snap Points,
and many other useful features.</p>

<p>Now for a fun fact: <code>object-fit</code> and <code>object-position</code> are still <a href="https://wpdev.uservoice.com/forums/257854-microsoft-edge-developer/suggestions/6263790-object-fit-and-object-position">not supported in Edge</a>
despite the fact it’s been
requested since over two years now and has over 2800 votes—a number most of the already
implemented, edge-case ES6 features never reached. This shows quite good that all the browser
companies follow a marketing strategy and instead of providing helpful features, rather
spend time on completing a feature-set so they can claim <em>100% ES6 support</em>.
It’s nice that the people in the Edge team tell us that they listen to developers but it’s
hard to believe that when I read through essential CSS features that are still not in Edge,
but most other browsers.</p>

<p><strong>In 2016, no single CSS feature that has a big impact for developers has been landed in all
major browsers. It’s even hard to find significant additions in each browser, which makes me
even more sad.</strong></p>

<p><strong>We don’t yet have any solution for locking down aspect-ratios.</strong> Hell yes, it’s 2016
and we can’t define an aspect-ratio for videos, images or other containers. I see people
complaining about CSS hacks, about ugly markup and JavaScript solutions on photographic
websites for displaying nice picture-grids. But there’s literally no way to do it with
plain CSS at the moment since neither <code>object-fit</code> nor <code>aspect-ratio</code> is supported by all
browsers.</p>

<p>In nearly every client-project that wasn’t a product itself but a website, I was requested
to build a design where I need <code>object-fit</code>, <code>aspect-ratio</code>, <code>position: sticky</code>. And
for most I could have saved a lot of hours if CSS Grids would’ve been available for all browsers.
Instead, I now can use ES6 features I don’t even need for complex web applications (there’s still
Babel for you) in the browser.</p>

<p>We have to think about the people we don’t have on our radar. The people that don’t
participate on Twitter, Google Plus, Facebook, and are not raising their hands at conferences.
They are still the majority of developers—not we, the little “Twitter-bubble”. We may shape
the future of the web, but it’s our duty to care about <em>all</em> developers, not just us.</p>

<p>Now, can we please give this feedback nicely back to the browser vendors and W3C people?
Yes, let them know. Write them on Twitter, via Email, on bug trackers, on uservoice, at
conferences.</p>

<hr>

<p><em>PS: It’s still hard to trace down what has been changed in Chrome since they’re the only
company that publishes no useful changelogs. I expressed my feelings to the Developer Relations team
on this often enough that I can now say: I don’t care about Chrome’s changes anymore. This
sadly means I could be wrong on some things here by missing a Chrome change, but it’s certainly
not a big change—otherwise we’d all know about it.</em></p>
 ]]></content>
        </entry>
        
        <entry>
            <title>Enough Vacation — An Individual Goal</title>
            <link href="https://helloanselm.com/2016/enough-vacation-time/"/>
            <updated>2016-10-04T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2016/enough-vacation-time</id>
            <content type="html"><![CDATA[ <p>Let’s talk about vacation and time-off from your day to day job. I’m not a perfect
example myself but in the last seven years working as a freelancer I’ve gotten some
ideas about what my body expects from me, what my brain expects and how I need to
force myself to take vacation. Some things I learned <a href="https://helloanselm.com/notes/vacation-time-off/">the harder way</a>.</p>

<p><em>It’s <a href="http://geekmentalhelp.com/">Geek Mental Health Week</a> again but this post is
not limited to “Geeks” or any other group of people — it’s for everyone.</em></p>

<p>I recently read a comment by a reader of my weekly summary of web development resources.
<a href="https://www.smashingmagazine.com/2016/09/web-development-reading-list-152/#comment-1291800">The comment</a>
targets my four week vacation that I took in September to clear my mind a bit and
recover my motivation for work, and that it’s not my first time this year. As negative
as this sounds, there’s a more important, hidden message in there:
<strong>Taking more than two weeks of vacation per year is not a choice everyone has.</strong>
And that makes me sad. I didn’t realize how privileged I am (among others in Germany
and other countries) where by law an employer needs to offer employees at least
20 days of vacation per year, and most companies extending this to even 30+ days.</p>

<p>It makes me realize <a href="https://m.signalvnoise.com/employee-benefits-at-basecamp-d2d46fd06c58#.la4gqgbl5">how crazily futuristic and careful some startups treat their
employees</a>
by giving them the opportunity to choose as many days off as they want and even
enforce them to take off at least 30 days a year.</p>

<p>But then you read such a comment where the author gets two weeks of vacation and
even has a hard time to actually take those few days off. Then I also know how
many startups and agencies encourage people to stay longer in the office, to not
take days off, to <a href="https://twitter.com/m_ott/status/782589124230389760/photo/1">not stop working when people are tired but only when the work
is finished</a>.</p>

<p>But while it’s a privilege to take five weeks off this year in summary
(makes 25 vacation days), it’s important to take care of yourself. Who profits from
an person that is mentally or physically not healthy anymore (burn-out, exhaustion)?
No one, not even your employer. It’s <abbr title="them is a gender neutral synonym for him/her here">them</abbr>
how then needs to find other people to get the work done, it’s them who need to pay
for the people who can’t do their work anymore because of health problems. It’s
just short-sighted to use people for quick work until they’re burnt-out.</p>

<p>I suffered from lack of motivation and exhaustion before I took my four week vacation.
I now know that taking one four-week vacation in one year is not the best option,
and I now also know that taking one or two days off to do sports is not relaxing for the
body or the mind — it’s simply distraction from your main work but involves a lot
of thinking and physical fitness as well.</p>

<p>As employers, we need to make sure that employees, contractors, anyone who works for
the company takes appropriate care of themselves, takes vacation, gets relaxation.
Encourage people to regularly take vacation, to make sports regularly, to enjoy
a massage from time to time or something like that to stay healthy.</p>

<p>As employee or freelancers, we need to make sure to care about all this on our own.
If the employer wants to force you to work more, have a talk, show them this article,
let them know about more sustainable work concepts that don’t let people burn out.</p>

<p>If you have experience with these kind of issues or want to share your opinion,
please do so and write me an email, or add a comment <a href="https://medium.com/@helloanselm/enough-vacation-an-individual-goal-bb8fe68886ab#.rap3b0c8c">on Medium</a>.</p>
 ]]></content>
        </entry>
        
        <entry>
            <title>How AMP supercharges link rot</title>
            <link href="https://helloanselm.com/2016/amp-supercharges-link-rot/"/>
            <updated>2016-07-16T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2016/amp-supercharges-link-rot</id>
            <content type="html"><![CDATA[ <p>First of all, I’m not going to dismiss the huge performance benefits and research concepts of AMP here. There’s a more important story here to look at: <strong>Link rot.</strong></p>

<p>Yesterday, I read about <a href="http://fusion.net/story/325231/google-deletes-dennis-cooper-blog/">a story where an artist lost his entire work</a> when Google switched off the old Blogger platform. This threw thousands of blogs into nirvana. Google announced this, but the key problem remains: If the domain itself and all its subdomains are offline, no-one can set a redirect to a new location. With AMP, it’s a similar though a bit different topic.</p>

<p>AMP has been built to improve website’s performance. According to one of the core managers of the project, AMP has been built to live now and go away. In a few years when the media publishers integrated the technical concepts into their default websites, AMP will die.</p>

<p>If that is true, it’s already clear what happens in a few years: A massive scale of link rot. The main reason for it: The AMP project offers a CDN to host the pages currently. Of course this is in control of Google and not in control of the publisher. When project support ends, all <a href="https://twitter.com/cramforce/status/754111360200417280">CDN links will be broken</a> <em>(this is the example that triggered my thoughts about this issue, could be any other example)</em>.</p>

<p>Now, some publishers are clever enough to publish AMP version on their own hostname. That’s already a big step forward, but as maintainer of the WDRL I can say: When a technical URL change is being done, most people don’t redirect old URLs to new ones. And this is what will happen to most AMP URLs: <strong>AMP URLs will break</strong>.</p>

<p>Think twice if you want to share AMP URLs anywhere in public. No-one should link to them, and instead we should always try to link to the simplest, most likely preserved URL of a website that we can find.</p>

<h3 id="note-addendum"><em>Note/Addendum:</em></h3>

<p>Medium isn’t much different here. Twitter isn’t. Facebook isn’t. Tumblr isn’t. Blogspot isn’t. The articles there will disappear at some point the same way Blogger blogs did. Blogger was big a few years ago and all people said: “This won’t go away, they can’t delete all this content”. In fact, they did. It’s a business and if the business isn’t sustainable, it gets shut down.</p>
 ]]></content>
        </entry>
        
        <entry>
            <title>If you use Let’s Encrypt and have Apple News Bot, act now</title>
            <link href="https://helloanselm.com/2016/block-apple-newsbot-letsencrypt/"/>
            <updated>2016-07-08T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2016/block-apple-newsbot-letsencrypt</id>
            <content type="html"><![CDATA[ <p>Since quite some time I wondered why Apple’s News Bot hehaves so agressively on WDRL’s site.
It creates about 20-40000 requests to my server each day. This week I finally found the reason
due to <a href="https://www.slightfuture.com/webdev/excessive-applenewsbot-requests">this article</a>. AppleNewsBot
is incompatible with Let’s Encrypt certificates and gets more agressive when detecting that it can’t fetch
the data.</p>

<p>Apparently, this issue has been reported to Apple already months ago but until now, 
the “botnet” (I think it’s valid to call it like this in that case) is still behaving the same.
Therefore to reduce my server load, I wanted to have a solution without adding Cloudfront or similar services upfront.</p>

<p>On an Apache Server it’s as easy as this:</p>
<div class="highlight"><pre><code class="language-" data-lang=""># Block Apple News Bot
RewriteCond %{HTTP_USER_AGENT} AppleNewsBot [NC]
RewriteRule ^$ /status-429.php [L]
</code></pre></div>
<p>And this is the content of the PHP file:</p>
<div class="highlight"><pre><code class="language-" data-lang="">&lt;?php
header('HTTP/1.1 429 Too Many Requests', false, 429);
echo "Too Many Requests\n\nDear AppleNewsBot, please fix your Lets Encrypt support bug: https://www.slightfuture.com/webdev/excessive-applenewsbot-requests";
</code></pre></div>
<p>Now you might wonder why I used a PHP file here instead of returning a <a href="https://tools.ietf.org/html/rfc6585#section-4"><code>429</code> HTTP-status code</a> directly from Apache. 
The reason is quite simple though: My shared hoster uses the stable releases of RedHat Linux which ships only some 2.2 version of Apache.
This old version (it’s getting bugfixes but no new features) does simply not know about <code>429</code> yet, <a href="https://tools.ietf.org/html/rfc6585">introduced as late as in 2012</a>.</p>

<p>So if you’re on nginx or Apache 2.4, you can return the <code>429</code> code directly from there. If you’re stuck on Apache 2.2, this is the solution you searched for.</p>
 ]]></content>
        </entry>
        
        <entry>
            <title>Using VPN and Tor for Web Development</title>
            <link href="https://helloanselm.com/2016/using-vpn-tor-for-web-development/"/>
            <updated>2016-05-30T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2016/using-vpn-tor-for-web-development</id>
            <content type="html"><![CDATA[ <p>Many developers might ask why I would use a <a href="https://www.vpnmentor.com/blog/what-is-a-vpn-and-do-you-need-one/">VPN</a> or Tor network. Besides some of these
networks being able to protect your privacy, they offer developers a huge other feature:
Slowness and different locations to test your application and website.</p>

<h3 id="check-a-cdn-s-cache">Check a CDN’s Cache</h3>

<p>If you use a CDN to serve your assets, you sometimes need to purge / invalidate the
cache for a file. But most CDNs don’t do this instantly but take quite a while to do so.
Especially Amazon Cloudfront can be quite unreliable for that but with a VPN, you
can easily connect to various locations around the world to check what version of a
document you get from the CDN’s Edge server.</p>

<h3 id="test-on-a-slow-connection">Test on a slow connection</h3>

<p>VPN providers won’t like this, but even when many VPN servers provide high-speed
connections nowadays, you can easily enforce slow and unreliable network conditions
using some special VPNs. NordVPN for example offers a <a href="https://nordvpn.com/features/double-encryption-double-vpn/">Double VPN</a>
or <a href="https://nordvpn.com/features/strict-no-logs-policy-tor-over-vpn/">Tor over VPN</a>,
and while they’re not super bad you’ll notice a high latency and slow connection.
This can be useful to test your application under slow connections (and this is way
more reliable than any simulated software connection throttling like in the Developer Tools
of a browser).</p>

<h3 id="check-regulations-and-performance-issues-from-different-locations">Check regulations and performance issues from different locations</h3>

<p>Being able to use remote connections in various countries and locations around the world
enables you to test if something is being blocked, intercepted or modified through the
ISP of the country. Also, you quickly notice performance issues for example when
a country has no own CDN Edge server.</p>
 ]]></content>
        </entry>
        
        <entry>
            <title>The Responsibility Mindset With Artificial Intelligence</title>
            <link href="https://helloanselm.com/2016/the-responsibility-mindset/"/>
            <updated>2016-04-27T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2016/the-responsibility-mindset</id>
            <content type="html"><![CDATA[ <p>The key in getting <a href="https://forum.ind.ie/t/tech-titans-are-busy-privatising-our-data/1149">the problem of data-farming by global companies</a> right, is to make people understand what is happening right now. It’s not about Facebook and Google here — we’re right in the middle of a whole generation that is unable to cope with the topic of privacy.</p>

<p>With the super-fast growing world of digitalisation and artificial intelligence, users cannot grasp the impact of it to our privacy anymore. Michael P. Lynch puts it right <a href="http://www.csmonitor.com/World/Passcode/Security-culture/2016/0422/Why-does-our-privacy-really-matter">in this interview worth reading</a>:</p>

<blockquote>
<p>“Lots of people don&#39;t grasp the core reasons why privacy matters. Perhaps this isn&#39;t surprising. It&#39;s fundamentally a philosophical problem.” — Michael P. Lynch</p>
</blockquote>

<p>Currently, we have two main issues here:</p>

<p><strong>The one is developers</strong> for whom the easiest solution is still to build a private, locked-down cloud-based solution. This is because it’s super hard to do both, a good product with all its complicated features, and good, secure and maintainable infrastructure. There’s currently no real solution available to build distributed infrastructures for Artificial Intelligence — you need a lot of computing power, you need a secure environment while you as software provider still need feedback and issue reporting for improving the solution.
Look at cars like Tesla, BMW, Mercedes or whatever luxury cars with security and convenience features; they offer you great drive assistants that “learn” how to prevent car accidents. This is great, but on the other hand, they only learn because they send the data to the cloud so that engineers and the system itself can learn from previous issues and improve. I personally would not know how to do this in a locked-down-to-the-owner solution. Also, how do you do software updates in a decentralised solution? This is not any safer than a centralised system. The only thing a company could do here is to provide a solid privacy policy to users and to tell users that one does not store sensitive personal data on the same system that has the car driving information. But for the user, he/she still needs to fully trust the company that this is true and not to be changed in future.</p>

<p><strong>For the users</strong>, it’s an even tougher problem than for the developers. Most users do not even understand why privacy matters.</p>

<blockquote>
<p>“To be honest, I’m tending towards saying that most people shouldn’t need to understand privacy. I’d love to have this as a ‘manifested’ standard in every government.” — Anselm</p>
</blockquote>

<p>Of course, people want to profit from the tech-boom that’s still going on and that is not only promising but really producing <em>convenient solutions</em>. Most of the solutions available for home automation are convenient products that support people and make their lives easier.
A smart thermostat is great because it saves energy while putting off the <em>thinking-about-it load</em> from people. A device that is in your kitchen and lets you buy things you need, is convenient because you will not have forgotten about the empty soy sauce bottle next time you are in the supermarket to make your groceries. You simply have not forgotten because you directly told your smart device that you need it when you recognise it and it’ll add it to you digital shopping cart. A messenger that lets you connect to people you hardly know is a great thing because human beings are social and are happier when we talk to other people. I’ve made lots of friends through Facebook groups for example with people who have the same interests as I.
Why should I as user be in charge of finding out what a company stores of my private data? Does it even matter as we read in newspapers that metadata is the most important value and that even <em>‘true end-to-end encrypted services’</em> still produce and send metadata that can be used to track me or build a profile.</p>

<blockquote>
<p>“A.I. assistants can give you the news, order you a pizza, and tell you a joke. All you have to do is trust them—completely.” — Will Oremus</p>
</blockquote>

<p>A.I. assistants, because of the reasons I stated above for the developers, are convenient. <a href="http://www.slate.com/articles/technology/cover_story/2016/04/alexa_cortana_and_siri_aren_t_novelties_anymore_they_re_our_terrifyingly.html">All you have to do is trust them—completely.</a></p>

<hr>

<p>What we need now is an ethical approach towards building software and services responsibly. This is where every single developer, product manager and company leader in the world can do something: If see it as our personal responsibility to protect our users’ privacy, data and security, we would build better solutions. I explicitly state <em>we</em> here as this targets <em>me</em> as well.</p>

<p><strong>What I haven’t yet figured yet</strong> is out how we can achieve both, grasping technology that we need to build such solutions (I’m talking about all the languages we need to know, frameworks, technical backgrounds) <strong><em>and</em></strong> the lesser obvious <em>know-how</em> about accessibility, performance, privacy, decentralised infrastructures and security.
The main reason why unpatched, insecure and non-accessible products exist so frequently nowadays is because people don’t know about all these specific topic but are still the persons who should lead the development in companies, agencies.</p>

<p>Let‘s remember that blaming Facebook or Google to be the bad guys is an easy thing to do but it’s not necessarily helpful in that context. In fact, I recognise this is often an excuse for oneself. But if we want to improve the situation, we need all developers in the world to understand that we are always to some point part of the problem and every successful big change was lead by someone changing its own habits, its own requirements to what one wants to deliver as quality work.
If we set this goal for ourselves, we can teach others to do this as well.</p>

<p>This of course, will not alone change the data-collecting no-privacy mindset but I see this as the base for other actions to be taken.</p>

<p><em>Now, let me know what you want to change and how you think we could achieve more people to think about these problems so that the human population who’s not programmers don’t need to be frightened and end up in a society like it’s described in the (not so much anymore) “science fiction” book <a href="https://en.wikipedia.org/wiki/Nineteen_Eighty-Four">Nineteen Eighty-Four</a>.</em></p>

<p>— Anselm</p>

<hr>

<p><em>Note: This has been written as response to <a href="https://forum.ind.ie/t/tech-titans-are-busy-privatising-our-data/1149/4">“Tech titans are busy privatising our data”</a> initially,
but turned out to be a lenghty response that is a blog post itself.</em></p>
 ]]></content>
        </entry>
        
        <entry>
            <title>Open Service Worker Questions</title>
            <link href="https://helloanselm.com/2016/open-service-worker-questions/"/>
            <updated>2016-02-04T00:00:00+01:00</updated>
            <id>https://helloanselm.com.com/2016/open-service-worker-questions</id>
            <content type="html"><![CDATA[ <p>Recently, Service Workers made quite some noise and people encourage to use this very newest technology on every website. But when I looked at the implementation and specification, I ended up having more questions than answers to it.</p>

<p><em>Note: This post is not a rant about Service Workers. I believe they are a great technology and help us as developers creating better services. This is just an expression of my initial thoughts as a browser user having a detailed view on this new technology.</em></p>

<p>A few weeks ago, I had a chat with Tobias Tom about Service Workers. He challenged it as we were talking about web performance, caching, and privacy. During that, we digged deeper into Service Workers and tried to find out how they are implemented currently in Chrome and Firefox. And for a feature that is available (partially) <a href="https://jakearchibald.github.io/isserviceworkerready/">in stable versions of browsers</a>, what I found out made me worrying about it.</p>

<p><s>First, it’s interesting to see that browsers have implemented a technology for which only a <a href="https://slightlyoff.github.io/ServiceWorker/spec/service_worker/">W3C editor’s draft is available</a> on a personal github page by Alex Russell is available as “web standard”. It’s under heavy development and obviously misses quite some points.</s>
It seems I was wrong about no official standard being available because there is indeed a stable <a href="https://www.w3.org/TR/service-workers/">Working Draft spec</a>. Thanks for point this out, <a href="https://twitter.com/jaffathecake/status/695190880710434816">Jake</a>.</p>

<h2 id="permissions">Permissions</h2>

<p>The first thing I noticed after making sure that Service Worker are enabled (Chrome is behind flags) was that I found no user setting or any hint in the developer tools about service workers. From my first impression, I had expected to either get a notification (as it’s being done for geolocation or other APIs) or at least being able to debug it and see contents and details in the developer tools. Two points here:</p>

<ul>
<li>As a user I expected to be notified about a page wanting to store things for offline or later usage on my machine</li>
<li>As a user I expected to be able to delete the cache of Service Workers and with it the Service Workers itself (this is not true for Firefox as of today)</li>
<li>As a developer, I expect to be able to debug it and see Service Worker content in the developer tools in a dedicated view. This is not true as of today for Chrome and Firefox (although they claim support for this but it’s rudimentary and does not allow modifying the cache or similar things)</li>
<li>As a specification reader, I expected the specification to contain something about permissions. As a matter of fact, neither the Permission API, User Notification API nor the word “permission” can be found in the spec as of today. The only thing that can be found is that there’s interest in <a href="https://notifications.spec.whatwg.org/#service-worker-api">making Web Notifications available to Service Workers</a> so if a developer is responsible, he can ask for permission before starting the service worker offline action.</li>
</ul>

<h2 id="concerns-about-transparency-and-user-control">Concerns about Transparency and User Control</h2>

<p>Currently, both Chrome and Firefox <em>seem</em> (I have no evidence on that, sorry) to use the generic browser cache for Service Workers. The problem with that is, I hadn’t expected this.</p>

<p><strong>Firefox</strong> for example has the network settings view with settings for the Cache and a dedicated section about “Offline Web Content and User Data”, listing the permissions setting for that and the websites using this. However, <strong>websites using service workers are not listed nor affected by this setting.</strong>
Going into the details, I found out that there is a dedicated Service Worker control page available under this URL: <code>about:serviceworkers</code>. This lists all the Service Workers that are registered. Unfortunately, a user is not able to unregister all of them at once—the cool thing is, it contains many details to find out what an active service worker is doing.</p>

<p>Chrome on the other hand, has changed this and does not offer any differentiation on that anymore. That means, you can only control Service Workers by deleting your entire browser cache. Fortunately, at least Chrome deletes also the service worker itself when doing that. You can keep track of Service Workers by typing in this URL into Chrome: <code>chrome://serviceworker-internals/</code>.</p>

<p><strong>A Little Detail:</strong> Let’s just add a little detail on both of the internal browser control pages: None of them contains useful or semantic, let alone accessible markup here. So unless you’re able to see the page, that is completely useless. It’s also useless to parsers so I wasn’t able to write a script for Chrome that clears the workers as they use a span without a class or other reliable identifier as button here. Thanks for that, browser vendors!</p>

<h2 id="concerns-about-storage-limits">Concerns about Storage Limits</h2>

<p>So as the two big browser vendors that have implemented Service Workers so far agreed on using the generic browser cache for it, a user is out of control on what is stored on his/her device. That given, the only control is to limit the cache size—which is exactly what I’ve done to prevent Service Workers eating up my storage. The problem with that is, that by limiting the generic cache I fetch more data and create more traffic to servers.</p>

<p>So why did I limit my cache size manually? There is a simple few reasons for it:</p>

<ol>
<li>I don’t want to let my browser eat up my disk space</li>
<li>There seems no limit what Service Workers can register to store offline per Service Worker. So any website I visit can store huge amounts of data in the background. This could include images, CSS, JavaScript, videos.</li>
<li>Ad providers or any malicious site can store JavaScript in Service Workers and might be able to track me and serve malicious code to me.</li>
<li>If someone compromises a usually trustworthy website, the attacker of course will register a service worker to be as persistent as possible in the user’s browser and can therefore alter the content of the website even if the server is not under his control anymore. Wanna know more about this? Yay, <a href="http://sakurity.com/blog/2015/08/13/middlekit.html">go here</a> and <a href="https://vagosec.org/papers/timing-attacks_ccs2015.pdf">to this PDF in Section 3.5</a>.</li>
</ol>

<h2 id="conclusion">Conclusion</h2>

<p>Tobias immediately reflected on why Safari hasn’t started implementing Service Workers yet. We assumed, that as in the past, Safari cares about great user experience and therefore will only implement it if the permission issues are solved. Of course, this is only a vague assumption without any evidence here.</p>

<p>I really hope that no mobile browser will implement Service Worker without providing more control to the user here. And by raising these issues here, I want to ask the browser vendors and spec writers to fix that behavior before Service Worker become really popular.</p>

<h3 id="update-1">Update 1</h3>

<p>It seems I have offended people with my “badly researched” article. To be clear on that, this article may not be technically entirely correct – I said it before and can only repeat it. This article reflects my thoughts, my personal opinion and my open questions from what I know of Service Workers and from what I found out of using a browser and trying to change its settings (without opening developer tools or weird internal pages). It is a sharing of an experience as a normal web browser user that cares about his cache, privacy, security and storage quota.</p>

<p>Thankfully, <a href="https://gist.github.com/jakearchibald/755326a20c51c23e1b21">Jake Archibald spend some time and replied to my article with some explanations</a>. I also noted down additional thoughts as a comment over there after the new information I gathered from the gist.</p>
 ]]></content>
        </entry>
        
        <entry>
            <title>Why You Should Choose Your Own HTTPS.</title>
            <link href="https://helloanselm.com/2016/choose-your-own-https/"/>
            <updated>2016-01-06T00:00:00+01:00</updated>
            <id>https://helloanselm.com.com/2016/choose-your-own-https</id>
            <content type="html"><![CDATA[ <p>I often hear from developers that they use Cloudflare to secure their sites. The service acts as a CDN and DDoS protection and offers free HTTPS for your website. The only thing you need to do is moving your domain’s DNS servers to Cloudflare’s. But this isn’t the whole truth.</p>

<p><em>Note that this isn’t a particular problem of Cloudflare but a disclosure of a common misapprehension of their service.</em></p>

<h3 id="the-challenge-aka-marking-http-as-insecure">“The Challenge” <abbr>aka</abbr> “Marking HTTP as insecure”</h3>

<p>With recent moves from browser vendors to push secure connections between the browser and the server, they started <a href="https://blog.mozilla.org/security/2015/04/30/deprecating-non-secure-http/">“deprecating HTTP”</a>. But while the intention is good, it forces people to make decisions. Decisions about topics they don’t know much about.</p>

<p>For many web developers, and for nearly all non-professional website builders, HTTPS is a tough challenge. It’s never been easy to get a SSL (today TLS) certificate. It’s hard to configure your server properly, and <a href="http://wiki.hetzner.de/index.php/Ed25519/en">even hosting companies fail at this these days</a>. For most people, it’s either a costly option to add a certificate to their shared hosting service or impossible.</p>

<p>Since December, <a href="https://letsencrypt.org/">Let’s Encrypt</a> is in public beta. This is a great thing because it enables many developers to get and deploy TLS-certificates easily. But it’s restricted to having CLI access, which, for the majority of website owners, is a big burden that they’re unwilled to take.</p>

<p>Having discussed this topic over and over again with various developers and site owners it’s clear to me, that if HTTPS is not a default option that comes with the hosting service for free, most people won’t be able to provide it to users. My hope is that in 2016, service providers and browser vendors together will get this sorted out and HTTPS is painless for everyone—not just a few developers with CLI access on their servers.</p>

<h3 id="a-3rd-party-can-t-fix-it">A 3rd party can’t fix it</h3>

<p>So why did I start this article with Cloudflare? <a href="https://www.cloudflare.com/">Cloudflare</a> is a website optimisation service that also offers a pretty good free tier. It’s probably the most used performance optimisation tool out there and with that, it achieved to be one of the biggest DNS service provider world-wide.</p>

<p>I used Cloudflare back when my website and <a href="https://wdrl.info/">wdrl.info</a> were hosted on github pages. I used it for the same reason most people do and I did because I also didn’t understood the security implications. I’m now here to make clear what services like Cloudflare can do and what not.</p>

<h4 id="what-can-a-3rd-party-service-do-for-me">What can a 3rd party service do for me?</h4>

<ul>
<li>Act as a CDN to deliver content faster to your users and to save load and bandwidth on your origin server</li>
<li>Optimise your assets (compression, concatenation, etc)</li>
<li>Protect your origin server from DDoS attacks and from SQL injections or similar things</li>
<li>Show you statistics of your users</li>
<li>Provide HTTPS support <em>(note the wording here)</em></li>
</ul>

<h4 id="what-can-t-a-3rd-party-service-do-for-me">What can’t a 3rd party service do for me?</h4>

<ul>
<li>Protect your origin server against security issues in your application</li>
<li>Provide a really secure HTTPS connection (in some cases it could)</li>
</ul>

<h4 id="the-privacy-and-security-problem-of-3rd-parties">The privacy and security problem of 3rd parties</h4>

<p>Now, as cool as Cloudflare seems at a first glance, there is a problem with it. They collect statistics and you can’t control what they collect. You move the DNS to their servers and they basically route every request through their servers. Their <a href="https://www.cloudflare.com/security-policy/#information-collection">security policy</a> for example states that they “sometimes log these visitors’ interactions in order to provide a better service”. They say that they <a href="https://www.cloudflare.com/security-policy/#cookies">add cookies</a> on the users’ browser to <a href="https://www.cloudflare.com/features-analytics/">track users</a>. They even state that they may provide all collected data to third parties (although they say to strip data from IP, name, email).</p>

<p>Is that a service you want to expose every visitor of your website to? Even if the company itself has only the best intentions, an attacker could still steals this massive data-set and expose it.</p>

<h4 id="https-secure-hypertext-transfer-protocol">HTTPS = Secure Hypertext Transfer Protocol</h4>

<p>Now back to HTTPS, our original topic here. Browser vendors have been pushing hard to ensure that a connection between the browser and the origin server is secure. Usually, you can achieve this with a TLS-certificate. It’s been the way for more than a decade now but only recently, <a href="#details-https-issues">a few problems have been discovered</a> with the technique. Thankfully, smart people are fixing them.</p>

<p>Let’s say you host your website at a service provider that doesn’t give you an affordable option to enable HTTPS on your custom domain. Cloudflare gives you the option to <a href="https://www.cloudflare.com/ssl/">upgrade your connection with SSL</a> for free. Cool eh? Not so much. What happens is that the user requests the website and sees it uses HTTPS (the green lock icon in the browser). But the connection from your origin server to Cloudflare’s servers is still unprotected, exposing all the data that is shared there to the public. The result: The user thinks it’s a safe website but it simply isn’t.</p>

<p>Okay, let’s now assume you have a hosting service that has some kind of SSL (github for example) and you now use HTTPS via Cloudflare. Cool, eh? Not so much. The Full SSL option does not even validate the certificate at all, the Strict SSL option does this. But still, Cloudflare reads your content, analyses it, optimises it (unencrypted, it’s even unknown how they communicate internally between their servers), re-encrypts the content and sends it over to the browser with their certificate.</p>

<p>To be honest, Cloudflare makes this as clear as they can. They never say anything else but yet, most people don’t know that their website is still insecure although it has a green badge in the browser bar. Most people don’t include Cloudflare in their privacy policy (but it’d be required).</p>

<p><strong>Let’s change that. Don’t just recommend a service to people, tell them about the implications. Reflect twice before you give your data to a third party.</strong></p>

<h3 id="update-1">Update 1</h3>

<p>I <a href="https://css-tricks.com/interview-web-security/">answered some more questions regarding HTTPS in this CSS-Tricks article</a>. Check it out to understand some of the mentioned techniques here a little bit better.</p>

<h3 id="update-2-amp-2-1">Update 2 &amp; 2.1</h3>

<p>A reader of my article, <a href="https://laukstein.com/">Binyamin Laukstein</a> contacted Cloudflare support and got some answers (Quote from email not altered by me).</p>

<blockquote>
<p>1 - All internal cloudflare communication is encrypted.<br>
2 - Our cached content is stored encrypted.<br>
3 - We do provide separate encryption between our visitor &lt;-&gt; edge and from edge &lt;-&gt; origin. If we did not do this there would be no way to cache the resources our customers want, or provide many of the security benefits we provide.<br>
4 - we do not provide re-encrypted data or origin content to third parties.</p>
</blockquote>

<p>First, thanks for investigating and sending me the reply. However, I wonder why this is not written on the website anywhere. Unfortunately, the response from you doesn’t contain any details on what they encrypt how and what server logs they keep. I from their ToS that they cooperate with governments and its institutions and hand out all details they have to them if they need to (which at the minimum would be the server logs in this case).</p>

<p>But remember, as said in my article, Cloudflare is only one example. Another one could be Amazon Web Services that probably has the same issues. ;)</p>

<hr>

<h3 id="appendix-explanations">Appendix / Explanations</h3>

<p>As said initially, this post is not a rant about a specific third party service but should only make people aware of some fatal misunderstandings of the used techniques. We’re all in this boat together to make the web more secure and I’m glad that Cloudflare does exactly that for thousands of sites. This post is about the thousands of sites that only make users believe a site is secure.</p>

<p>Here are a few more explanations to details in the article:</p>

<p><details class="details" id="details-https-issues">
  <summary class="details-summary">Some Details on HTTPS issues</summary></p>

<p><h4>HSTS</h4>
  <p>You can use <a href="https://en.wikipedia.org/wiki/Downgrade_attack">protocol downgrade attacks</a> and <a href="https://en.wikipedia.org/wiki/Session_hijacking">cookie hijacking</a> on HTTPS connections to get access to the user’s data. Today, this can be prevented with a technique called <abbr>HSTS</abbr>: <a href="https://developer.mozilla.org/en-US/docs/Web/Security/HTTP_strict_transport_security">HTTP Strict Transport Security</a>. It tells the browser to never connect to a specific domain with any insecure protocol. Unfortunately, this only works starting from the second request to the site.</p></p>

<p><h4>HPKP</h4>
  <p>Clever thieves can get a fraudulent or mis-issued certificate to gain access. This can be prevented by using <abbr>HPKP</abbr>: <a href="https://developer.mozilla.org/en-US/docs/Web/Security/Public_Key_Pinning">HTTP Public Key Pinning</a>. Unfortunately, this is also a Trust on First Use (TOFU) technique, as explained for HSTS. Browser vendors currently maintain a manually collected list of keys to avoid this, but you need to submit the information on your own and it’s pretty inefficient.</p></p>

<p><h4>MITM Certificates</h4>
  <p>A couple of hardware vendors <a href="https://en.wikipedia.org/wiki/Superfish#Lenovo_security_incident">have sold devices</a> with software that silently allows <abbr title="Man in the middle">MITM</abbr> attacks. That way, they can inject ads or any other content on HTTPS websites without the user noticing it. Gladly, <a href="https://blogs.technet.microsoft.com/mmpc/2015/12/21/keeping-browsing-experience-in-users-hands/">Microsoft wants to prohibit this</a> and all companies doing that yet, have been shit-stormed when it became public. Please note also the difference between this and <a href="https://security.stackexchange.com/questions/82586/superfish-vs-corporate-mitm">a corporate proxy</a>.</p>
</details></p>
 ]]></content>
        </entry>
        
        <entry>
            <title>See The Progress</title>
            <link href="https://helloanselm.com/2015/see-the-progress/"/>
            <updated>2015-12-16T00:00:00+01:00</updated>
            <id>https://helloanselm.com.com/2015/see-the-progress</id>
            <content type="html"><![CDATA[ <p>With Firefox 43 we have the possibility to natively disable known trackers. With the new privacy protection mode you can do more than you think. An experiment worth trying.</p>

<p>I’ve been experimenting quite a lot with <a href="https://support.mozilla.org/en-US/kb/tracking-protection-pbm">Firefox’ new tracking protection</a> recently. It revealed some quite interesting things about where we’re at in the web. Unfortunately, it’s not as good as you might think and here’s why.</p>

<p>You might have heard that <a href="http://uk.businessinsider.com/facebook-2g-tuesdays-to-slow-employee-internet-speeds-down-2015-10?IR=T">Facebook has introduced 2G Tuesdays</a> to make developers aware of the performance implications. We can do this in many more occasions, one of them is emulating package loss with mobile data, another one ad-blocking. And as ad-blocking and privacy-extensions are on a quick rise currently with native solutions coming up as well, we should consider this a common use-case for our products we build.</p>

<p>Here’s how you can enable it:</p>

<video src="https://imguber-anselmhannemann.netdna-ssl.com/firefox-protection-mode/firefox-tracking-protection-test.mp4" controls poster="https://imguber-anselmhannemann.netdna-ssl.com/firefox-protection-mode/firefox-tracking-protection-test-poster.png"></video>

<p><a href="https://imguber-anselmhannemann.netdna-ssl.com/firefox-protection-mode/firefox-tracking-protection-test.gif">Grab it as gif here</a> <em>[33MB]</em></p>

<p>What does this mean? I can only encourage you <a href="https://support.mozilla.org/en-US/kb/tracking-protection-pbm#w_to-change-your-blocklist">enable Firefox’ Privacy Protection Strict Mode</a> at last one day per week and see what works and what doesn’t. You might not think that it has much impact but in fact, the web is very broken. Many applications require jQuery from the Cloudfront service which <a href="https://github.com/disconnectme/disconnect-tracking-protection/blob/master/services.json#L1822">is on the Disconnect block list</a>. If you now have your own JavaScripts not on Cloudfront it can’t find <code>$</code> as jQuery is blocked. If you have your JavaScript and CSS on Cloudfront as well, all these resources are blocked, too.</p>

<p>I can conclude that most problems I found occurred with <abbr title="Single Page Application">SPA</abbr>s. Trello couldn’t provide a login anymore, Todoist does show a blank page (not even their website is available anymore), and many other applications and websites are at least without JS and CSS, some without any content. The most common error besides using <code>cloudfront.net</code> hostnames for their assets was that they rely on some external JavaScript variables and don’t test for it, causing the whole JavaScript to break in case the 3rd party script was blocked.</p>

<p>You can avoid this by doing a few things:</p>

<ul>
<li>If you use Cloudfront, make sure to use a <a href="https://aws.amazon.com/cloudfront/custom-ssl-domains/">custom HTTPS certificate</a>, and thus, <a href="http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CNAMEs.html">a custom hostname</a> that isn’t blacklisted. This doesn’t fix the root issue that Cloudfront tracks the user (statistics), but at least the app is still usable.</li>
<li><a href="http://calendar.perfplanet.com/2015/reducing-single-point-of-failure-using-service-workers/">Reduce the Single Point of Failure using Service Workers</a>.</li>
<li>Be sure to read this article on <a href="http://calendar.perfplanet.com/2015/third-party-content-in-an-http2-and-ad-blockers-world/">Third Party Content in an HTTP/2 and ad blockers world</a> by Yoav Weiss.</li>
<li>Always test if a variable exists, and if not, don’t let it break your entire JavaScript. Especially when your app is relying on JavaScript.</li>
<li>Never (ever!) rely on the availability of any third-party (also not on an external CDN). Your app should work without it and you should have a backup plan when a 3rd party you rely on is not available.</li>
</ul>
 ]]></content>
        </entry>
        
        <entry>
            <title>Using Web Fonts The Best Way (in 2015).</title>
            <link href="https://helloanselm.com/2015/using-webfonts-in-2015/"/>
            <updated>2015-10-08T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2015/using-webfonts-in-2015</id>
            <content type="html"><![CDATA[ <p>I recently researched font loading again as I wanted to use a local copy of a font and serve it as fast and smooth as possible. This is a quite different approach to when you use TypeKit or Google fonts and their simple copy/paste snippets…</p>

<p>Over the past months there have been <a href="https://viget.com/extend/the-font-face-dilemma">a few articles</a> <a href="https://www.filamentgroup.com/lab/font-events.html">taking care</a> of <a href="http://www.zachleat.com/web/foft/">different font loading optimization techniques</a>. Reading all of them, I ran into a few other issues that are not covered there. Finally, I wanted to have one resource combining the information of the others. Some code snippets are borrowed or adapted from the articles I linked here.</p>

<h3 id="the-goals">The Goals</h3>

<ol>
<li><a href="#load-async">Load web fonts asynchronously</a></li>
<li><a href="#avoid-reflows">Avoid big reflows in layout</a></li>
<li><a href="#prefetch">Load web fonts as fast as possible</a></li>
<li><a href="#cache">Avoid loading web fonts for recurring visitors</a></li>
</ol>

<p>Now let’s try to reach our goals step by step:</p>

<p><a id="load-async"></a></p>

<h3 id="1-load-webfonts-asynchronously">1. Load webfonts asynchronously</h3>

<p>As you have to call the web font locally via <code>@font-face</code> you usually have a blocking request. To avoid this, you need to put the <code>@font-face</code> code into a separate stylesheet that you call via JavaScript. There is the simple <a href="https://github.com/filamentgroup/loadCSS"><code>loadCSS</code></a> function from filamentgroup you can use. This is the most basic variant.</p>

<blockquote>
<p>You can also use typekit’s <a href="https://github.com/typekit/webfontloader#custom">webfontloader</a> with custom web fonts which since version 1.6.8 uses native Font Loading API if available.</p>
</blockquote>

<p>But now we also have the <a href="https://github.com/bramstein/fontfaceobserver/">Font Face Observer</a>, then we have a <a href="https://github.com/bramstein/fontloader">Font Loader</a> making use of the fresh <a href="http://www.w3.org/TR/css-font-loading/">W3C Font Load Events</a> and we have <a href="https://gist.github.com/hdragomir/8f00ce2581795fd7b1b7">a script which Smashing Magazine makes use of</a> which actually solves a few more of this article’s points (but not all).</p>

<p>So where do we start now? First, we exclude the Font Loader providing a polyfill for the latest web standard. It is too large to have this in as part of a performance optimization step. It will definitely be cool in future to use this but unless natively available it doesn’t make sense to use it. Instead, we can use Font Face Observer in the meantime. It only weighs in at 5kb (minified, not gzipped).</p>

<p>Cool, let’s start. You can get the <a href="https://github.com/bramstein/fontfaceobserver/">Font Face Observer</a> script via npm, bower or git(hub). Include the script into your <code>&lt;head&gt;</code>.<br>
<strong>Note:</strong> Setting the <code>async</code> attribute randomly adds an unwanted <abbr title="Flash of invisible text">FOIT</abbr> additionally to the <abbr title="Flash of unstyled text">FOUT</abbr> to your website.</p>

<p>Now we need to initialize the font face observer. You can do this with an inline script or with an external script included in the <code>&lt;head&gt;</code>. I’m showing the demo using the browserify / CommonJS variant in an external script and loaded the script as <a href="https://www.npmjs.com/package/fontfaceobserver">npm dependency</a>:<br>
First, we need to require the library:</p>

<pre><code class="language-javascript">
    var FontFaceObserver = require('fontfaceobserver');
</code></pre>

<p>Now let’s define the fonts and font variants we want to observe:</p>

<pre><code class="language-javascript">
    var observer = new FontFaceObserver('Fira Sans', {
        weight: 400
    });
</code></pre>

<p>You can use <code>weight</code>, <code>style</code>, <code>variant</code>, <code>featureSettings</code>, <code>stretch</code> here as options. Now we want to initialize the observer on our defined font settings.
We still need to set the CSS class that the font has been loaded. That is done via the following Promise:</p>

<pre><code class="language-javascript">
    observer.check().then(function () {
        document.documentElement.classList.add('webfont-loaded');
    }, function () {
        console.info('Web font could not be loaded in time. Falling back to system fonts.');
    });
</code></pre>

<p><details class="details">
  <summary class="details-summary">A more advanced example with multiple web fonts</summary></p>

<p>Let’s add this with a more complex set of web fonts and styles which is more like we would use it in normal projects:</p>

<pre><code class="language-javascript">
    var fontfaceobserver = require('fontfaceobserver');
    var fontObservers = [];
    var fontFamilies = {
        'Fira Sans': [
            {
                weight: 400
            },
            {
                weight: 600
            }
        ],
        'Fira Mono': [
            {
                weight: 400
            }
        ]
    }

    Object.keys(fontFamilies).forEach(function(family) {
        fontObservers.push(fontFamilies[family].map(function(config) {
            return new FontFaceObserver(family, config).check()
        }));
    });

    Promise.all(fontObservers)
        .then(function() {
            document.documentElement.classList.add('webfont-loaded');
        }, function() {
            console.info('Web fonts could not be loaded in time. Falling back to system fonts.');
    });
</code></pre>

<p></details></p>

<p>With that, we’re done implementing the Font Face Observer and have set the class when the font is ready. Now we should reflect that in our CSS:</p>

<pre><code class="language-css">
    body {
        font-family: sans-serif;
    }
    .webfont-loaded body {
        font-family: 'Fira Sans', sans-serif;
    }
</code></pre>

<p><a id="avoid-reflows"></a></p>

<h3 id="2-avoid-big-reflows-in-layout">2. Avoid big reflows in layout</h3>

<p>We now have a seamless and reliable system to inject our web font when it’s available. That of course means that initially, users will get the fallback font you’ve defined. While this is a good thing because they can already start reading the text, it means users will get a flash and restyling, often resulting in a jump of words due to the font change.</p>

<p>We want to aim for a better experience here. This consists of two steps:</p>

<ol>
<li>First, you need to find the best fallback fonts to your web font. This is best done with <a href="http://ffffallback.com/">this little bookmarklet</a> and the <a href="http://fontfamily.io/">compatibility check over here</a>.
When you’ve found a good fallback font you’re half done. But no font looks the same and even the nearest fallback font has glyphs with a different width or a different x-height. Fortunately, CSS gives us some tools to optimize this. The fresh <a href="http://www.w3.org/TR/css3-fonts/#font-size-adjust-prop"><code>font-size-adjust</code></a>  property exists to adjust the fallback font to your web font or the other way round. Set this to to adjust the x-height of the typeset. It’s a bit tricky to use so I recommend to try some values in the dev tools (or read up the formula in the linked article if you’re more into maths). Usually you will end up somewhere between <code>0.40</code> and <code>0.70</code> as value.<br></li>
<li>After matching the x-height, we now start to adjust the <code>letter-spacing</code>. This is relatively easy and by setting the value in super small steps (i.e. <code>-0.01em</code>) you ensure it still looks good and is readable. Now you should be at a point where you have a very similar font rendering of the fallback font to your web font. To see the difference during testing, you can add a timeout to the function that sets the <code>webfont-loaded</code> CSS class.</li>
</ol>

<p><a id="prefetch"></a></p>

<h3 id="3-load-webfonts-as-fast-as-possible">3. Load webfonts as fast as possible</h3>

<p>This one is relatively simple. In fact we’ve already done much to load our web fonts as fast as possible and inject them at the right time. The last thing you can do now is to add a <code>preload</code> header for the web font files.</p>

<p><em>Note/Update: I previously stated to use <code>prefetch</code> which is <a href="https://twitter.com/AndyDavies/status/652042630487015424">wrong</a>. Instead, you should use preload which is nearly unsupported and has the drawbacks stated below.</em></p>

<pre><code class="language-markup">
    &lt;link rel="preload" href="FiraSans-Regular.woff"&gt;
    &lt;link rel="preload" href="FiraSans-SemiBold.woff"&gt;
</code></pre>

<p>As you can see I only used the <code>woff</code> fonts here. This is because we shouldn’t call all the different formats in here. This little snippet tells the browser that if possible it should download these resources already. If you’d add all formats here, the browser would download them all which is kind of useless. However, all browsers that support <code>prefetch</code> support WOFF, too. If you want to use woff2, this is not true anymore and you should avoid adding these headers.</p>

<p><a id="cache"></a></p>

<h3 id="4-avoid-loading-web-fonts-again-for-recurring-visitors">4. Avoid loading web fonts again for recurring visitors</h3>

<p>To avoid that the users have to re-download web fonts over and over again and don’t run the late JavaScript font face observer when the font is already available from cache, we can use cookies or localStorage. While the cookie script only looks if the font is in the browser’s cache, the localStorage variant will put the fonts in the longer lasting localStorage and retrieve it from there if a user visits the site again.</p>

<p>I won’t give a preference here as both have some advantages. While the localStorage will be safer to ensure it’s cached, it’s <a href="http://calendar.perfplanet.com/2012/is-localstorage-performance-a-problem/">a bit slower</a> than using cookies and the native browser cache. Use what you prefer and what will probably work better for your project.</p>

<blockquote>
<p>This method is somehow unreliable. A browsers’ cache is not directly related to cookie storage so if one or the other is deleted but not both, this method can cause a blocking font load.</p>
</blockquote>

<ul>
<li><p><strong>Using cookies</strong>, the simplest code using <abbr title="Server Side Includes">SSI</abbr> would something like that:
<pre><code class="language-markup">
&lt;!--#if expr=&quot;$HTTP_COOKIE=/webfont-loaded=true/&quot; --&gt;
&lt;html lang=&quot;en&quot; class=&quot;webfont-loaded&quot;&gt;
&lt;!--#else --&gt;
&lt;html lang=&quot;en&quot;&gt;
&lt;!--#endif --&gt;
</code></pre></p></li>
<li><p><strong>Using localStorage</strong>, you can use <a href="https://gist.github.com/hdragomir/8f00ce2581795fd7b1b7">this gist</a> with the code  used by Smashing Magazine on their website.</p></li>
</ul>

<p>While it works pretty good you should consider that using localStorage might still be a bit slower than using the native cache and, what is more important, this fills up the user’s disk space and is only per domain. So if a user visits another site using the same web font, the <abbr title="user agent / browser">UA</abbr> downloads it again.</p>

<h2 id="what-s-next">What’s next?</h2>

<p>As we have seen in the past months and years, the way we implement web fonts changes all the time. Browsers will implement the Font Load Events, there will even be CSS properties that help you dealing with the FOIT. <a href="https://tabatkins.github.io/specs/css-font-display/#font-display-desc"><code>font-rendering</code></a>, <code>font-rendering: swap</code> will hopefully make all the things I described here much easier.</p>

<p>If you want to save some bytes by excluding several styles or weights of the web fonts, you can control the browser’s behavior if faux styles are allowed or not with <a href="http://www.w3.org/TR/css3-fonts/#font-synthesis-prop"><code>font-synthesis</code></a>.</p>
 ]]></content>
        </entry>
        
        <entry>
            <title>Safari isn’t the new IE but it’s also not user centric</title>
            <link href="https://helloanselm.com/2015/safari-isnt-ie-nor-user-centric/"/>
            <updated>2015-07-01T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2015/safari-isnt-ie-nor-user-centric</id>
            <content type="html"><![CDATA[ <p>We all know the discussions about Apple’s Safari browser. And while the one party is saying <a href="https://github.com/h5bp/lazyweb-requests/issues/181">“it’s the new Internet Explorer”</a>, <a href="http://m.imore.com/safari-isnt-new-ie-its-user-centric-web">others counter state</a> “it’s the user centric web”. I don’t fully agree with both parties.</p>

<h2 id="it-s-the-new-ie">It’s the new IE</h2>

<p>Well, I can’t say that sentence is entirely wrong. With Apple’s engineers hiding all their development from the public and several occurrences where Apple invents their own “webstandard” (it isn’t – it’s just a proprietary, hurting the web invention) it is undeniable that Safari has the wrong process. They lack important features like WebRTC/ORTC, Service Worker, <code>&lt;picture&gt;</code> and have a comparably slow release-cycle. That way they are staying behind all the other browsers out there today and users will get a worse web experience than if they’d used Firefox or Chrome. That is based on the fact that progressive enhancement is not broadly used, and not all features can be enhanced progressively (like video chat).</p>

<h2 id="it-s-the-user-centric-web">It’s the user centric web</h2>

<p>Other people say, Safari concentrates rather on the user than on the developer. And while I agree in some parts, I have to deny this, too. Fact is, the Apple engineers come up with cool things like the reader mode, the twitter update bar, shared links, AirPlay, Picture in Picture. That is cool but often relies on proprietary hard- and software (AirPlay). The engineers don’t take the recommended approach of finding a universal and standardized syntax to achieve such technologies but implement some custom code that <a href="https://readable-email.org/list/whatwg/topic/apple-s-new-link-rel-icon-mask-not-quite-favicon-syntax-causing-problems-in-other-browsers-needs-standardization">sometimes even breaks other browsers</a>. This comes at a cost: The open web suffers from such solutions and users cannot freely choose their browser when they want to have these features.</p>

<h2 id="safari-curates-their-featureset-better">Safari curates their featureset better</h2>

<p>I have to agree that Chrome is an example of <em>implement most suggestions fast and easy</em>. I don’t particularly like this approach because later on, a performance lack might be discovered leading to the removal of an already existing and used feature. That is really hurting the web and its technologies.</p>

<p>Safari does it differently by not adopting new stuff so fast. But they also don’t adapt long finished web standards which is also kind of wrong because they leave their users behind. And it’s not user-centric at all if the user can’t see some content in a nice way or can’t initialize/join a video call.</p>

<h2 id="there-is-no-public-discussion">There is no public discussion</h2>

<p>The probably biggest issue with Safari right now is that the Apple team is not having an open discussion. And because of that, they build proprietary, website breaking stuff and more important, they neglect their developers and users. A developer who does not communicate with the product’s users does not know what they want to have. Be it developers asking for ES6 support or be it a user who wants the web application he’s visiting offline (Service Worker) or less transferred bytes (<code>&lt;picture&gt;</code>) or a video call with another person only having a webbrowser available (WebRTC). That way it’s easy to say they are user-centric but it’s a denial of the users in reality.</p>

<h2 id="what-to-do">What to do?</h2>

<p>In fact there’s not much to do for us as developers. We can of course go the same way we went with Internet Explorer 6 when this one became too old but still wide-spread: Publicly shaming the browser. But if you remember, it took Microsoft quite a couple of years to take action and focus on the IE product again. I don’t think it’s a feasible way to do the same with Apple’s Safari.</p>

<p>I’d rather address issues with Safari, embrace use cases for the most wanted features and share them to the appropriate mailing lists (Apple engineers do indeed read WHATWG lists), in blog posts or ping WebKit/Safari engineers or DevRels on twitter. Apple needs a more direct contact to web developers and we should start this dialog.</p>
 ]]></content>
        </entry>
        
        <entry>
            <title>Performance is King but so is Privacy and Data Ownership</title>
            <link href="https://helloanselm.com/2015/perf-is-king-so-is-ownership/"/>
            <updated>2015-05-15T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2015/perf-is-king-so-is-ownership</id>
            <content type="html"><![CDATA[ <p>Today I switched my website from GitHub Pages and Cloudflare back to my own servers. It wasn’t that hard but there are also some drawbacks I want to report.</p>

<h2 id="reasons-for-switching">Reasons for Switching</h2>

<p>It’s super easy to set up github pages and as they have ruby installed it’s even easier to run your Jekyll based site on it. You can also add custom domains to it which I did. At some point in the past years I wanted to encrypt the user’s session and <a href="/2014/ssl/">enabled SSL via Cloudflare</a>. But there is an issue with the whole workflow while it’s super easy:</p>

<ul>
<li>GitHub owns your data. If it’s down (i.e. DDoS), your site is, too.</li>
<li>GitHub has a <a href="/2014/github-pages-redirect-performance/">problem with A-Record Domains using no <code>www.</code></a>.</li>
<li>GitHub has only unofficial HTTPS support on GitHub pages and none for custom domains.</li>
<li>Cloudflare wants to handle your nameservers and DNS entirely.</li>
<li>Cloudflare has only free shared SSL certificates (which have some drawbacks).</li>
<li>Cloudflare only mocks your HTTPS connection to the next server. No one knows if it’s encrypted all the way back to GitHub.</li>
<li>Both GitHub and Cloudflare are vulnerable to DDoS and might be down.</li>
<li>In case you need to switch your site due to an outage / shutdown one of the companies’ will be down for at least (depending on Cloudflare settings) 48hrs completely.</li>
<li>Cloudflare does not allow 3rd party CDNs anymore (at least in the free plan).</li>
</ul>

<h2 id="preparations">Preparations</h2>

<p>First I needed to set up the project infrastructure for my Jekyll project. I wanted my workflow to stay the same so I needed <code>git</code> on the server. In fact, I preferred to do the <code>jekyll build</code> on my local machine now instead of the server so I don’t necessarily need ruby on the server, even though my shared hosting package at <a href="https://uberspace.de/">Uberspace</a> does support that as well.</p>

<p>Second, I need my own SSL/TLS Certificate. I used <a href="https://sslmate.com/">sslmate</a> for that creating Comodo certs in an super easy way. That was actually very easy already. I created them locally so I now needed to push them to the server via SSH (please be very careful here and keep everything secure and private in this step) and notified my hoster so he can configure the server to use it.</p>

<p>The domain was already allowed and configured for the server so now I only had to switch the nameserver and DNS to the uberspace host. This can take up to 48hrs to populate to everyone. Ready. My site runs on my own hosting service again, the certificate is my own which I can fully trust and I still have an easy workflow to push content to my site.</p>

<h2 id="trouble">Trouble</h2>

<p>But not everything went fine for me. In fact, there are a couple of drawbacks:</p>

<ul>
<li>My site might be slower for everyone far away from Germany as the site now runs from a single server in Germany again (previously was choosing nearest server worldwide by github). <em>This can be done, too, but for now it’s too much effort.</em></li>
<li>My site was down for a couple of hours due to me failing on the DNS change and my hoster to tell me that the IP running SSL services is another one than for HTTP.</li>
<li>There is no easy integration for creating and configuriing SSL certificates at shared hosting services yet.</li>
<li>You really need to know about the potential impacts of DNS, SSL, HSTS and changing nameservers.</li>
<li>My Github website repository went on serving all content (solved manually by support staff)</li>
<li>I needed to redirect gh-pages to their github.io domain on my server.</li>
</ul>

<p>This experience again showed me how hard it still is for a normal user (and I’d call myself tech-experienced and CLI-aware already) to configure HTTPS properly.</p>

<p>It made me think about the hard push by browser vendors to HTTPS and question that in regard to people who don’t have the possibility to configure their webspaces (I know a lot of them where this wouldn’t have been possible at all without switching to a way more expensive package) or simply don’t have the skills and endurance of trying it out.</p>
 ]]></content>
        </entry>
        
        <entry>
            <title>Native Scrolling</title>
            <link href="https://helloanselm.com/2015/altering-scroll-behavior/"/>
            <updated>2015-03-16T00:00:00+01:00</updated>
            <id>https://helloanselm.com.com/2015/altering-scroll-behavior</id>
            <content type="html"><![CDATA[ <p>Usually I am the one who says ‘Let the developer change every default browser behaviour’. Except, there are behaviours that, when customised, can hurt the user’s experience more than a custom behaviour could help. Such a case is custom scrolling.</p>

<p>In the past week I visited a lot of different websites. Not the usual web development websites that I visit all the time but very different normal websites: Product pages and travel websites which are much more likely to be seen by normal users than my web development pages. But on some pages I experienced  serious issues to navigate. Many of them used custom scroll behaviour. And not in a way you would assume, like binding animations (i.e. fading in elements on scroll) to scroll events but they actually altered the scroll behaviour itself. Some altered the speed which I found the worst, others blocked the scrolling entirely to jump to the next or previous section of a page.</p>

<p>The main issue with that is that even I as an experienced web user couldn’t read some product specifications as I failed to scroll slow enough (or more precisely, to scroll only a few pixels which seemed to be the threshold on a page to go to the next page), resulting that I always switched not one section but two or three and was unable to go where I wanted to.</p>

<p><img src="https://helloanselm.com/img/blog/2015/altering-scroll-behaviour/custom-scrolling-1.gif" alt="An animated screenshot showing my try to read content from top to bottom scrolling but I fail utterly due to custom scrolling behaviour"></p>

<p>The same issue occurred on sites making scrolling faster. It is a key principle of a scroll device experience that I can set the speed of scrolling to my own default in the OS settings. A page altering this now leads to issues because the user can’t scroll in the speed he’s used to. This means he can’t read the content of a site anymore which should be <em>the</em> ultimate goal of a website.</p>

<h3 id="do-it-right-do-it-properly">Do it right, do it properly</h3>

<p>Now you could say: ‘Do it right, do it properly’. But what if people use Wordpress Themes that include this behaviour?</p>

<p>Facing the facts, that is what most people do and what causes most issues nowadays.</p>

<p>Again, why would you alter the default scroll speed? I agree that we probably shouldn’t prevent the jumping to next section behaviour on scroll because web-apps sometimes want to do this and although I think a proper responsive concept shouldn’t have a <em>paging mode</em> I also accept that people use this for an application style.</p>

<p>But maybe a smart browser would automatically fix issues like a threshold which is too small to navigate or disables the function then. Because currently, it’s going the other way round. It seems that Blink wants to <a href="https://docs.google.com/document/d/1VnvAqeWFG9JFZfgG5evBqrLGDZYRE5w6G5jEDORekPY/edit#heading=h.kd0gtwwz5bf9">provide native binding to scrolling</a>. While they seem to be aware of some issues they want to allow hiding scroll bars (which is bad because it’s a great indicator for the user) and don’t prevent too fast scrolls on the snap point navigation.</p>

<p>For altering the default scroll speed I honestly couldn’t come up with a valid use-case. If you have one, let me know. To me this is one of the worst and contra productive UX ”improvements“ people have done so far.</p>
 ]]></content>
        </entry>
        
        <entry>
            <title>A Channel To Write.</title>
            <link href="https://helloanselm.com/2015/a-channel-to-write/"/>
            <updated>2015-03-02T00:00:00+01:00</updated>
            <id>https://helloanselm.com.com/2015/a-channel-to-write</id>
            <content type="html"><![CDATA[ <p>Lately, <a href="https://wdrl.info/">WDRL</a> for me has not only been a way to curate and share the best links in web development but also a way to write things that are important for me. It’s a great feeling when I send out my thoughts on the list (usually in the introduction) and get heart-warming replies from my readers.</p>

<p>What started out as a simple bullet point list on my blog now is a hand written letter with still some kind of list with links but very much personal (and sometimes biased) written lines in it. Each letter makes me more confident, stronger in sharing things to make the web and our web developers’ lives a better place.</p>

<p>Cheers,<br>
Anselm</p>
 ]]></content>
        </entry>
        
        <entry>
            <title>Don’t fight but start supporting each other</title>
            <link href="https://helloanselm.com/2015/dont-fight-but-support-each-other/"/>
            <updated>2015-01-13T00:00:00+01:00</updated>
            <id>https://helloanselm.com.com/2015/dont-fight-but-support-each-other</id>
            <content type="html"><![CDATA[ <p>It’s cool to be trendy and it’s cool to bash other people and products. Wait, what? It isn’t cool to harass people, it isn’t cool to fight with other persons. We need to be smarter in the ways we communicate with each other. <a href="https://storify.com/helloanselm/don-t-fight-but-start-supporting-each-other">Today showed it again</a>.</p>

<p><em>Addendum / Note: I’m not on either side in the following example. It just shows a hopefully neutral view on how different persons deal with others.</em></p>

<p>Ind.ie is a company that wants to re-invent how internet platforms nowadays work. They want such platforms to be de-centralized, user-focused, privacy-aware and still sustainable. This is an acknowledgeable goal and while I always thought it will be a challenge to achieve this with just a team of four people I wanted to support this goal.</p>

<p>In my opinion they haven‘t done everything the way I think they should’ve but no company does so. And every human fails at some things as well. So when they launched their crowd-funding campaign (which gladly exceeded their minimum goal) I didn’t thought it was the right way to ask people for money. Especially as I never got what I expected and every time at least half a year later than promised from similar campaigns I wanted to support their goals.</p>

<p>I want the independent, privacy aware web to succeed. I want to support people who are in search of new ways to make money on the internet without selling its users’ data to other companies. I want the web as it was thought to win.</p>

<p>It was confusing to read, that <a href="https://ind.ie/blog/focus/">indie will re-focus their goals</a> and will drop every product but their social network and will focus on get this running on Mac OS X.</p>

<p>I thought it was wrong to focus on the small portion of Mac users, leaving out all the normal PC users and not using the web’s full potential instead.</p>

<p>That’s why I asked them via email what the long-term goals are and if they’ll really drop the other things promised during the crowd-funding campaign.</p>

<p>But <a href="https://storify.com/helloanselm/don-t-fight-but-start-supporting-each-other">what I saw on Twitter really disgusted me</a>: Suddenly, people started fights against indie, against the founder, Aral Balkan. People even took his letter introduction as offensive, inappropriate. In that he mentioned the cruelties that happened in Paris last week and how sad that was.
Of course this is an unrelated event to their re-focus, of course he knows that. But he wanted to let people know how sad he’s about that day in the history and how important it is to do the best you can to make the world a better place.</p>

<p>It’s sad that people pick unrelated things up to fight against people who want to make the world a little better. It’s sad that people fight against something good.</p>

<p>It may not have been the most clever type of communication by indie. It may not be the best decision to disappoint their very own supporters. It may not even have been their intent though. And bear in mind, they’re just four people, most of them developers who want to create something. They’re not marketing people, they’re not big companies. For me, exactly this makes them personable. For me, this was the reason to support them. And for me this is the reason why I didn’t invest in four products but in these four people to let them do whatever they think is best with my $100.</p>

<p>You might not think the same (and that’s good). But is this a reason to personally attack and harass people in public? I wonder why nobody sees this as harassment. Especially people who are against harassment in general. And of course an offensive reply doesn’t help in such a context but <em>if you try to be smarter</em> than the one who’s talking with you, you will be heard and you will be the one who has better chances to succeed.</p>

<p>Wouldn’t it be better to suggest a helpful debate about the problems you feel? Wouldn’t it be better to write to the people that can help you with the problem you face directly? Maybe you have ideas that nobody else considered yet? I think it would.</p>

<p><strong>Be smart and don’t fight. Peace is best done by being and behaving peaceful and showing respect to other people.</strong></p>

<p>Have a good day,
Anselm</p>
 ]]></content>
        </entry>
        
        <entry>
            <title>My 2014 in recap</title>
            <link href="https://helloanselm.com/2014/my-2014-in-recap/"/>
            <updated>2014-12-31T00:00:00+01:00</updated>
            <id>https://helloanselm.com.com/2014/my-2014-in-recap</id>
            <content type="html"><![CDATA[ <p>2014 is over now and as in the past year I want to recap the past year and reflect what happened.</p>

<p><em>Note: This is a personal article and there’s at least no technical take away in here.</em></p>

<p>2014 started with a big change. In December 2013 I said ‘yes’ to my biggest project
yet in my career and I started January, 6th, in my new team. This included moving
from Munich to Cologne for what I thought would last six month and took out 9.5 months.
For me this was a tough decision as my girlfriend, my friends and my beloved mountains stayed in Munich. Nevertheless as it’s only planned for half a year and the opportunity was great, I decided to do this step and it was absolutely right. I had the chance to work with my friend <a href="https://drublic.de/">Hans</a> to build a super large-scale front end infrastructure at <a href="http://vaillant-group.com/">Vaillant</a> and met a lot of amazing developers, managers, other people and with a lot of them, I became friends. I learned a lot about scalability, maintainability and working together as people in larger teams.</p>

<p><img src="/img/blog/2014/12/2014-recap/1-bouldering.jpg" alt="me bouldering (climbing) in Cologne">
<img src="/img/blog/2014/12/2014-recap/2-cafe.jpg" alt="me in a lovely small coffee shop in Cologne"></p>

<p>In fact, I really enjoyed the new city. Cologne is a beautiful, nice city with a lot of small coffee roasters, and other independent shops. It also has a lot of nice bars and people to meet. When I went to the park once to enjoy the sun, I stumbled over some slackliners and I became friends with them immediately. From that sunny and warm day in March I went slacklining every possible weekend, improving my personal skills a lot (previously I could walk around 25m, now I’m walking 50m and tried to walk even longer lines around 100 meters).</p>

<p><img src="/img/blog/2014/12/2014-recap/3-slackline.jpg" alt="me slacklining in a park in Cologne"></p>

<p>Work-wise I learned how to scale a front-end architecture to drive dozens of websites later on, build a toolchain around it and how to build it rock-solid with more than ten people working on the code-base. Together with Hans we built our own tools, scripts, decoupled tools from each other and came up with a very stable architecture that works for everyone in the team. I met a lot of great friends in this project and hope we’ll stay in contact in the future.</p>

<hr>

<p>Over easter, I decided to make a short four day trip to Italy for some mountainbiking with one of my best friends. We took his car, put our bikes in and went to the Lake of Garda. The first two days were amazing and we had a lot of fun although the 2nd was very rainy and we went to the sunny Venice for an afternoon. Pssst... biking in the city is strongly forbidden (if you wonder).</p>

<p><img src="/img/blog/2014/12/2014-recap/4-mtb.jpg" alt="our mountainbikes in front of the lake Garda">
<img src="/img/blog/2014/12/2014-recap/5-venice.jpg" alt="The city Venice">
<img src="/img/blog/2014/12/2014-recap/6-venice.jpg" alt="The city Venice"></p>

<p>The third day, it was Sunday, I saw that my mother had called me. Somehow I felt it
was important and usually she tries not to call me during vacation. I called her back
and she told me that my grandfather had died last night. He had been in hospital for some days before but initially all said it wasn’t something serious. Finally, on friday they re-checked him and found out that he’d urgently need stents and other stuff.</p>

<p>We all knew that he wouldn’t live forever but no one had expected it so quickly as he
was all well, had no serious illness and most of the time was happy. But he always said
“I don’t want to be in need of another person to live”. And as he heard that this wouldn’t be possible anymore (you will need assistance if you get stents at this age),
I think he decided to not live anymore.</p>

<p>The following days were very tough and while I stayed the same day and went biking to
think about it and get a clearer mind, we went back to Munich the next morning and I stayed the whole week with my family. It wasn’t tragic and we knew it’s the best for him and probably his own decision but still it’s very sad and forces you to think about family, life and all these things. He’ll always be remembered, I learned a lot from him.</p>

<hr>

<p>In early May, me and Christian Schäfer (also known as “Schepp”) went to London to attend the netawards ceremony. I had been nominated as <a href="https://thenetawards.com/">Young Developer of the Year 2014</a> and also opendevicelab.com was nominated as Game Changer of the year. And while I did not win, I enjoyed being there meeting lots of people and having a very fine dinner.</p>

<p>The obligatory visit to the btconf in Düsseldorf followed and was as always a great experience. Especially because we were able to see the impressive fireworks of the Japan festival and we had an amazing Web Platform Doc Sprint the day before the conference.</p>

<p><img src="/img/blog/2014/12/2014-recap/7-japanfestival.jpg" alt="me bouldering (climbing) in Cologne">
<img src="/img/blog/2014/12/2014-recap/8-docsprint.jpg" alt="me bouldering (climbing) in Cologne"></p>

<p>On a weekend I travelled to Rüsselsheim (near Frankfurt) to visit a large slackline festival. That was the chance to walk new lines I’ve never been able to do before. I finally were able to try out my first highline (about 15m high, 15 long), failed miserably (could walk like 3-4 steps) but it was a great (though painful) experience.</p>

<p><img src="/img/blog/2014/12/2014-recap/13-slackline.jpg" alt="the first highline I was standing on"></p>

<hr>

<p>In June, my own conference <a href="http://2014.pubkon.eu/">PUBKON</a>, took place for the third time. It was a lot of effort and a great success regarding what people left us as feedback, even though we struggled a lot in advance as tickets didn’t sell too well and break-even was reached only two weeks prior to the event.</p>

<p><img src="/img/blog/2014/12/2014-recap/15-pubkon.jpg" alt="PUBKON audience and rooms"></p>

<p>Late June, I also met with <a href="https://twitter.com/asciidisco">Sebastian</a>, <a href="https://twitter.com/drublic">Hans</a>, <a href="https://twitter.com/agorilla">Simon</a> and David to speak about making an event in Cologne. Turned out we all want to do such a thing and the result was our own front-end conference which took place in September.</p>

<hr>

<p>In July I decided to keep on working for my biggest ever project for three more months.
The only change was that I was going to work from my homeoffice most of the time and
I only was in the office for the sprint plannings and reviews. This meant I had two residences to manage and travel between each during the week which is quite exhausting if you do it regularly. But to be honest, being able to work remotely worked very fine. I could start working earlier (not the usual 9 to 5 schedule as in the office) and were more flexible. I could also focus more on my work as no one could distract me, except in HipChat (which you can easily set to N/A state). And communication with my team worked very good as well, we constantly chatted, WebRTC’ed and had a lot of fun. To summarise: Working remote in a 99% on-site team worked very fine for me, even better than I would have expected.</p>

<hr>

<p>I started August taking two weeks off and go on vacation. Initially I planned
to go to Switzerland’s Berner Alps with some friends and my mountainbike but the weather was very bad and made our plans impossible (it had snow over there). So we changed plans and went climbing in the Frankenjura in Germany, a great place with many many spots and interesting routes. I climbed my first 8- at the end of the week (okay, scale is not the same as in the Alps, but still…).</p>

<p><img src="/img/blog/2014/12/2014-recap/9-soiernspitze.jpg" alt="hiking the Soiernspitze">
<img src="/img/blog/2014/12/2014-recap/14-climbing-franken.jpg" alt="me climbing a 7- route in the Frankenjura"></p>

<hr>

<p>September started with <a href="http://reasons.to/">Reasons To Be Creative</a> where I met great friends again and made some new and also finally went to Brighton and Cambridge. It was very nice and I can only recommend the conference, if you’re up for creative inspiration.</p>

<p>Only two days later I attended the <a href="http://www.redbull.com/de/de/bike/events/1331636353775/red-bull-district-ride">Red Bull District Ride</a> in Nuremberg which was awesome. Mountainbikers rode directly though the masses of people in the city and did amazing tricks in the air.</p>

<hr>

<p>Then, on September 26th, another side project I had been involved in for four months took place. Together with Hans Christian Reinl, Sebastian Golasch, Simon Koch, and David Yasli I organized my first web related conference. The so called <a href="http://www.nightlybuild.io/">NightlyBuild conference</a> was thought as after-work conference was a lot of effort and we managed to invite speakers such as Aral Balkan, Alice Bartlett, Ian Feather, Nico Hagenburger, Jasmin Boje and Steffen Süpple to make the evening a great experience for every attendee. In summary it was a great success and we sold out only a couple of weeks after we launched tickets. We’re currently thinking about how we proceed with this project and if we want to make it happen again.</p>

<p><img src="/img/blog/2014/12/2014-recap/16-nightlybuild.jpg" alt="The audience and stage of the NightlyBuild conference"></p>

<hr>

<p>October was the last month for my main client this year and it turned out well. The
project made great progress and as of now, most things I’ve helped building launched
successfully.</p>

<p>I then attended the second <a href="https://border-none.net/2014">border:none</a> conference which was made in a completely new format as a creator-conference and it did make much sense to attend it. I learned a lot of new stuff about security, privacy and the indie web.</p>

<p>Then I travelled to Cardiff with Hans to attend TheWeb.is, a web conference by Craig Lockford, and flew back to Berlin where the first <a href="http://beyondtellerrand.com/berlin-2014/">beyond tellerrand</a> by my friend Marc Thiele in Berlin took place. It’s always a great place to meet a mass of nice people and friends.</p>

<hr>

<p>The last conference of the year was on the list in November: <a href="http://www.dotcss.io/">dotCSS and dotJS</a> in Paris, France. For that, I decided to make it a short-trip with my girl-friend and while I met nice people at the conferences and learned new interesting stuff we also had the chance to visit the city and enjoyed a few days of vacation together.</p>

<p><img src="/img/blog/2014/12/2014-recap/10-paris.jpg" alt="">
<img src="/img/blog/2014/12/2014-recap/11-paris.jpg" alt=""></p>

<hr>

<p>In December, I got an inquiry if I could help a Munich start-up cleaning up and refactoring their historically grown codebase. Unfortunately they had already started doing it and needed me as soon as possible which meant I only could work eight days for them. But in this short timeframe I still managed to re-build the principles of their infrastructure on a new toolchain, set up stricter coding conventions and decreased their output CSS code by nearly 80% on their production site. It was also a great team with a vision of their product and I’m eager to know when their re-factoring will be finished and go live.</p>

<p>Also in December I took some days to work on my own projects, like WDRL to refactor the code, improve the design and readability and to figure out how to make the project at least not a loss (money wise). I’m still not finished and have big plans with it but I think I at least gave it some love it really deserves. With over 4.5k subscribers receiving a fron-end article summary each week WDRL is my biggest side-project today and I am truly humbled by all the great feedback I get for it.</p>

<p><img src="/img/blog/2014/12/2014-recap/12-rotwandmtb.jpg" alt="Snowy alps where we were mountainbiking"></p>

<p>For Christmas I took some days off again and enjoyed it with my family and friends. I have made a couple of new year resolutions already; I hope you’ve made some, too, and together we can start improving the world, our livings and lifes a bit more. Happy new Year! :)</p>
 ]]></content>
        </entry>
        
        <entry>
            <title>Towards a more sustainable WDRL</title>
            <link href="https://helloanselm.com/2014/towards-a-more-sustainable-wdrl/"/>
            <updated>2014-12-18T00:00:00+01:00</updated>
            <id>https://helloanselm.com.com/2014/towards-a-more-sustainable-wdrl</id>
            <content type="html"><![CDATA[ <p>I recently questioned myself a lot how to grow <a href="https://wdrl.info/">WDRL</a> and make
this non-profit side project a bit more sustainable. At the end of 2014, 1 &frac12;
years after its foundation I want to share a little bit more about it.</p>

<p>But first, I want to thank all my supporters, readers and all the people who wrote the stuff
I’m linking to each week. You’re all amazing!</p>

<h3 id="i-wanted-to-change-something">I wanted to change something</h3>

<p>A few months ago, after more than a year spending many hours a month on this project, I
recognized that this project as it was isn’t sustainable and I might not be able to
continue my work on it in future if I don’t change something.</p>

<h3 id="what-i-invest-into-wdrl">What I invest into WDRL</h3>

<p>To figure out what I did and what to change I needed to do an anaysis of the current
amount of work. Back then I counted about 5hrs per week spending on curating the content.
That means re-reading the articles and decide if they fit into the list, sorting out articles,
finding new content for sections that haven’t enough articles yet, writing the letter.
It also means writing it for online, then converting all the links with goo.gl for the Newsletter service so
it isn’t treated as spam (hopefully), send tests, review, send the email out and publish
the new issue online, on twitter, etc.</p>

<p>Additionally I usually spend 1hr per month working on the website (mostly fixing stuff,
reviewing issues for broken links, etc.) and 3hrs in communication (Twitter and replying to emails).</p>

<p><strong>That makes around 25 hours a month I am investing into this project.</strong></p>

<p>Money-wise I currently invest around 10 EUR per month for the domain and hosting.
As soon as I hit 5000 subscribers I need to either search a sponsor for a newsletter service
or need to pay at least around 80EUR per month for the service. This actually costs me money.</p>

<p><strong>Seeing these numbers clearly showed me that this won’t work forever.</strong></p>

<h3 id="make-it-sustainable">Make it sustainable</h3>

<p>The first thing everyone thinks about when trying to make money from something ‘free’
is advertising. But there are a couple of reasons why I don’t like it on my project:</p>

<ul>
<li>I don’t have good statistics on my readers (TinyLetter doesn’t track much and I don’t want for privacy reasons)</li>
<li>I don’t like having general ads in my front-end related letter</li>
<li>I don’t have many subscribers (regarding what advertising companies say)</li>
<li>I don’t like having ads in a high quality product myself</li>
</ul>

<p><strong>So I thought about other ways to get some money in.</strong> I added <a href="https://gratipay.com/Anselm%20Hannemann/">GratiPay</a>
and <a href="https://flattr.com/profile/helloanselm">Flattr</a> to the project to let people support me.
Flattr is used by some people to support me but is making about 2-3EUR per month which is nearly nothing.
GratiPay instead works better since I added <a href="https://wdrl.info/support/">clear</a> statements
about the <a href="https://wdrl.info/costs/">costs</a> on the website.</p>

<p><strong>I now receive 19EUR per week from GratiPay, making 76 EUR a month</strong> (excluding Paypal costs to get the money). Adding
the donation from Flattr and Bitcoin (which doesn’t make very much at the moment) this makes roughly 80EUR per month.
This would still not cover my fixed costs when I need to pay for a Mailchimp account. But it’s
a start and I’m glad that I could make the project nearly a not-loss project in only a few months.</p>

<h3 id="the-remaining-problem">The remaining problem</h3>

<p>The biggest problem remains. <strong>With so many subscribers (for me 4.7k is incredibly much!)
I have 12 regular supporters</strong> at the moment (GratiPay shares the total amount of weekly supporters), adding
3-4 irregular supporters who donate via Flattr or Bitcoin.</p>

<p><strong>This means 0.31% of my subscribers currently support this project with money.</strong></p>

<p>0.10EUR per month from each reader (only newsletter subscribers) would even pay &frac13; of my work time on the project.</p>

<p>0.50 EUR per month by each I could cover my work time and all expenses for services with my
regular hourly rate so it would be completely sustainable business.</p>

<p>I know it will never happen that everyone pays for it but this calculation shows how incredibly
low the amount would be if more people support such projects.</p>

<h3 id="start-giving-your-help">Start giving your help</h3>

<p>This is not a crowd-funding, this is not the demand to give me money. This is a plea to you:
If you profit from a service, from a resource, give back. Sometimes this can mean contributing<em>,
sometimes this means money</em>*. Whatever it is—if you love something, support it.</p>

<p>Finally, this doesn’t only apply to WDRL, it does to so many other services made by people
like you and me.</p>

<p>Thanks for reading, please give me feedback (via <a href="mailto:hello@helloanselm.com">Email</a> or twitter) and
enjoy Christmas holidays! &hearts;</p>

<p>—Anselm</p>

<hr>

<ul>
<li>* For WDRL, see: <a href="https://github.com/anselmh/wdrl/issues">https://github.com/anselmh/wdrl/issues</a></li>
<li>** For WDRL, <a href="https://gratipay.com/Anselm%20Hannemann/">GratiPay me</a> or <a href="https://github.com/anselmh/wdrl/issues/14">help me implementing Stripe</a>.</li>
</ul>
 ]]></content>
        </entry>
        
        <entry>
            <title>Add a single SVG Chart to your Page</title>
            <link href="https://helloanselm.com/2014/add-simple-charts-to-your-page/"/>
            <updated>2014-10-28T00:00:00+01:00</updated>
            <id>https://helloanselm.com.com/2014/add-simple-charts-to-your-page</id>
            <content type="html"><![CDATA[ <p>I recently made an improvement to <a href="http://wdrl.info/">WDRL’s website</a> and wanted to integrate a pie chart. It was clear to use SVG here but as I use variable data I wanted to do this via JavaScript. There are tons of chart libraries but I was curious to find a small solution that works fine for just one or two charts on a site.</p>

<p>Interestingly, people always share jQuery plugins, huge chart libraries if you ask them for a solution. While this is fine if you have a lot of charts to display it probably serves a lot of overhead to websites that only need to show one simple chart.</p>

<p>My first approach was to use the <a href="http://snapsvg.io/">Snap.svg</a> library which is awesome because it has built-in animations for all charts and therefore produces very nice results in nearly no time. The thing that bothered me was that the library itself is heavy with 70kb (minified, not gzipped) and that the integration of it felt a little bit akward from the coding style. That said, this is a completely personal perference that didn’t fit to me.</p>

<p>So I wrote it on my own. Thankfully there are a few tutorials that explain how this works. I adapted some code examples, <a href="https://www.inkling.com/read/javascript-definitive-guide-david-flanagan-6th/chapter-21/drawing-a-pie-chart-with">mainly this one by David Flanagan</a> which helped me out on the mathematic formulae, and wrote my own code:</p>
<div class="highlight"><pre><code class="language-" data-lang="">var pieChart = function (data, width, height, cx, cy, r, colors, labels, lx, ly) {
    var svgns = 'http://www.w3.org/2000/svg';
    var chart = document.createElementNS(svgns, 'svg:svg');
    var total = 0;
    var angles = [];
    var startAngle = 0;
    var i = 0;

    chart.setAttribute('width', width);
    chart.setAttribute('height', height);
    chart.setAttribute('viewBox', '0 0 ' + width + ' ' + height);

    // Add all data values so we know how big the whole pie is
    for (i = 0; i &lt; data.length; i++) {
        total += data[i];
    };

    // Now figure out how big each slice of the pie is. Angles in radians.
    for (i = 0; i &lt; data.length; i++) {
        angles[i] = data[i] / total * Math.PI * 2;
    };

    // Loop through each slice of pie.
    for (i = 0; i &lt; data.length; i++) {
        var path = document.createElementNS(svgns, 'path');
        var labelColor = document.createElementNS(svgns, 'rect');
        var label = document.createElementNS(svgns, 'text');
        var endAngle = startAngle + angles[i];
        var x1 = cx + r * Math.sin(startAngle);
        var y1 = cy - r * Math.cos(startAngle);
        var x2 = cx + r * Math.sin(endAngle);
        var y2 = cy - r * Math.cos(endAngle);
        var big = 0;
        var d;
        var labelShare = Math.round(((data[i] / total) * 100)) + '%: ';

        if (endAngle - startAngle &gt; Math.PI) {
            big = 1;
        }

        d = 'M ' + cx + ',' + cy + // Start at circle center
        ' L ' + x1 + ',' + y1 + // Draw line to (x1,y1)
        ' A ' + r + ',' + r + // Draw an arc of radius r
        ' 0 ' + big + ' 1 ' + // Arc details...
        x2 + ',' + y2 + // Arc goes to to (x2,y2)
        ' Z'; // Close path back to (cx,cy)

        // Now set attributes on the &lt;svg:path&gt; element
        path.setAttribute('d', d);
        path.setAttribute('fill', colors[i]);
        chart.appendChild(path);

        // The next wedge begins where this one ends
        startAngle = endAngle;

        // Now draw a little matching square for the key
        labelColor.setAttribute('x', lx);
        labelColor.setAttribute('y', ly + 30*i);
        labelColor.setAttribute('width', 20);
        labelColor.setAttribute('height', 20);
        labelColor.setAttribute('fill', colors[i]);
        chart.appendChild(labelColor);

        // Add label to the right of the rectangle
        label.setAttribute('x', lx + 30);
        label.setAttribute('y', ly + 30*i + 18);
        label.setAttribute('font-family', '"jaf-bernino-sans", sans-serif');
        label.setAttribute('font-size', '16');

        // Add DOM node for the text to the &lt;svg:text&gt; element
        label.appendChild(document.createTextNode(labelShare + labels[i]));
        chart.appendChild(label);
    }

    return chart;
};

// ServicesChart
var serviceChartWrapper = document.querySelector('#chart-a');
var serviceChartData = [80, 10, 2];
var serviceChartColors = ['#017E61', '#01A57F', '#02E4B0'];
var serviceChartLabels = ['Label 1', 'Label 2', 'Label 3'];
var servicesChart = pieChart(serviceChartData, 450, 200, 100, 100, 100, serviceChartColors, serviceChartLabels, 220, 50);

// Append Charts to DOM
if (serviceChartWrapper) {
    serviceChartWrapper.appendChild(servicesChart);
};
</code></pre></div>
<p><a href="https://github.com/anselmh/wdrl/blob/gh-pages/js/main.js">View the whole file here</a>. The script generates a SVG pie chart and takes variables for the data (that is used to cut the slices), label descriptions and colors for the slices. For sure this isn’t the most flexible solution and the code could be abstracted a lot more but I really wanted to cut file size down and create it to display a few pie charts and nothing more. It’s as small as 2kb (minified, not gzipped) so it saved me about 68kb. Of course, it lacks of the chart animation for example but this wasn’t my goal.</p>

<p>Hopefully that short article and script helps you a little bit. If you have improvements or suggestions, just let me know <a href="https://twitter.com/helloanselm">via Twitter</a> or <a href="mailto:hello@anselm-hannemann.com?subject=Feedback%20to%20SVG20%Chart20%Article">E-Mail</a>!</p>
 ]]></content>
        </entry>
        
        <entry>
            <title>SSL</title>
            <link href="https://helloanselm.com/2014/ssl/"/>
            <updated>2014-10-16T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2014/ssl</id>
            <content type="html"><![CDATA[ <p>You might already have noticed some changes when visiting my website. I enabled
HTTPS/SSL via <a href="https://www.cloudflare.com/">Cloudflare</a> and <a href="https://www.maxcdn.com/">MaxCDN</a>. With that you’re now also getting this site
served through SPDY / HTTP/2.</p>

<h2 id="preparations">Preparations</h2>

<p>Nearly none. Except <strong>you need to change your nameservers to Cloudflare nameservers</strong> so they
can handle your requests. This can take up to 48hrs to be distributed to the
nameservers over the world.</p>

<p>You also need:</p>

<ul>
<li>Free (or paid) Cloudflare account (if you use SharedSSL)</li>
<li>A paid MaxCDN plan (but anyone of this will work if you use SharedSSL)</li>
<li>A hoster which let’s you target your domain’s Nameservers to Cloudflares Namerservers (not all do)</li>
</ul>

<h2 id="enable-ssl-and-spdy">Enable SSL and SPDY</h2>

<p>Uhm, that was literally the easiest thing. Just sign in to your accounts, enable
shared SSL options, enable SPDY / HTTP/2, too, to get the speed boost.</p>

<p>For MaxCDN, go to manage your pull zone, switch to the EdgeSSL tab, enable Shared SSL and SPDY in one go.
You now need to rewrite all your URLs to be protocol relative (i.e. <code>/</code>)
and to use the new SSL enabled hostname (it’s different if you don’t use custom domain and custom SSL).
It took my 1 minute.</p>

<p>For Cloudflare, it’s a bit more complicated (by nature) as you have more options.
First, set up your domain and target your domain to the new nameservers. You now adjust your settings.
I chose low security profile, IPv6 support (yay, “full-in”), Pseudo IPv4 off, SPDY 3.1 on,
Always online, and flexible SSL on.
You want to disable RocketLoader if you’re using SPDY, and depending on how you deal with assets
you also don’t want to let them minify your JS, CSS.</p>

<h2 id="drawbacks">Drawbacks</h2>

<p>As currently I’m only using a shared SSL option this means in some browsers users get a warning
that the certificate doesn’t match my domain name. Some very restrictive, old proxies therefore will not
show my site anymore without adding an exception. And, as I haven’t enabled IPv4 fallback, the user
needs to support IPv6 to visit my website.</p>

<p><strong>Well, that’s it. Nothing special, it was very easy. Try yourself and secure your site!</strong></p>

<h2 id="further-options">Further options</h2>

<ul>
<li><p>GitHub Pages: Yup, that’s where my content lies. To redirect your <code>http</code> pages to SSL you need
to set up a page rule in Cloudflare. Just set the pattern to <code>http://helloanselm.com/*</code> and add the rule <code>Always use HTTPS: on</code>.</p></li>
<li><p>Get your own certificate: This avoids non-matching domain issues in browsers and can be even more secure.
But in that case you’d need a paid Cloudflare account and also (if applicable) a paid premium MaxCDN account.</p></li>
</ul>
 ]]></content>
        </entry>
        
        <entry>
            <title>Quick Trick: Responsive Print Media Queries</title>
            <link href="https://helloanselm.com/2014/unified-media-queries/"/>
            <updated>2014-08-20T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2014/unified-media-queries</id>
            <content type="html"><![CDATA[ <p>Do you write <code>@media screen</code> into your media query? Stop it.
It limits you more than it usually helps.</p>

<p>If you have a look at this example:</p>
<div class="highlight"><pre><code class="language-" data-lang="">@media only screen (min-width: 43em) {
    /* Your CSS here */
}
</code></pre></div>
<p>This of course will work on your smartphone, tablet and desktop as expected.
But if won’t apply if you, for example, print the page. Because you’ve limited
the query to only apply to <code>screen</code>.</p>

<p>Did you really intend that? I guess not. It’s more effort to write and limits you.
Instead, write this:</p>
<div class="highlight"><pre><code class="language-" data-lang="">@media (min-width: 43em) {
    /* Your CSS here */
}
</code></pre></div>
<p>This will apply to all media types, even print. The cool thing is, all your
adaptions for mobile will also apply to printed stuff. Because no, DIN A4 isn’t
the only format people will print. Some print C4, DIN A5 / A3 or a totally
different paper format and you layout will adapt accordingly.</p>
 ]]></content>
        </entry>
        
        <entry>
            <title>Dynamically colorize videos with CSS</title>
            <link href="https://helloanselm.com/2014/dynamically-colorize-videos-with-css/"/>
            <updated>2014-06-26T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2014/dynamically-colorize-videos-with-css</id>
            <content type="html"><![CDATA[ <p>How do you colorize a video in the very same colors you use in your webdesign? Of course, in CSS. Now what do you do if you have different colors and want them to be reflected in your video? Yes, you animate it.</p>

<p><strong>Caution: The following technique is a proof-of-concept that might have a heavy impact on your CPU &amp; GPU. Please do not ever use this technique in real / client projects until the performance issue has been resolved.</strong></p>

<h2 id="the-demo">The Demo</h2>

<p><em>Please wait a bit until the video starts playing. Embeded demo takes a little bit… works currently best in Chrome (Canary).</em></p>

<p data-height="480" data-theme-id="0" data-slug-hash="KGilq" data-default-tab="result" class='codepen'>See the Pen <a href='http://codepen.io/anselmh/pen/KGilq/'>Fullscreen Video Hue</a> by Anselm Hannemann (<a href='http://codepen.io/anselmh'>@anselmh</a>) on <a href='http://codepen.io'>CodePen</a>.</p>

<script async src="//codepen.io/assets/embed/ei.js"></script>

<h2 id="the-html">The HTML</h2>

<p>The HTML is pretty straight forward. As the <code>&lt;video&gt;</code> element (just as <code>&lt;img&gt;</code>) don’t support pseudo elements, there’s no way to do this with just one element. If you fancy this solution to be ugly, feel free to create a web component including this source so it’ll be hidden in the ShadowDOM. Instead, use a simple video element with a source child (in this case only one but be sure to add more to support all browsers) and an empty div element. The 2nd element is only presentational which might not be ideal but as it doesn’t contain any special role or content in it, it doesn’t harm either regarding accessibility or similar.</p>
<div class="highlight"><pre><code class="language-" data-lang="">&lt;video controls="no-controls"&gt;
    &lt;source src="http://media.xiph.org/mango/tears_of_steel_1080p.webm"&gt;
&lt;/video&gt;
&lt;div class="videohue"&gt;&lt;/div&gt;
</code></pre></div>
<h2 id="the-css">The CSS</h2>

<p>Regarding the CSS, an animation is needed showing your animated hue on the video. Use autoprefixer to make it working in older browsers that only support a prefixed animation syntax. Further on, set up your hue element to match the size of the video by positioning it absolutely above the video element, stack it over it and call the animation. Done.</p>
<div class="highlight"><pre><code class="language-" data-lang="">/*
 * The Animation
 */

@keyframes colorize {
    0% {
        background: rgba(255, 0, 0, 0.5);
    }
    25% {
        background: rgba(0, 255, 0, 0.5);
    }
    50% {
        background: rgba(0, 0, 255, 0.5);
    }
    75% {
        background: rgba(0, 115, 115, 0.5);
    }
    100% {
        background: rgba(125, 0, 115, 0.5);
    }
}

/*
 * Create the hue effect
 */

video {
    position: relative;
    width: 100vw;
    height: 100vh;
    object-fit: cover;
}

.videohue {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    z-index: 10;
    animation: 20s colorize infinite both;
}
</code></pre></div>
<p>So this is the explanation for this cool effect but as written initially, using current machines and browsers this causes heavy performance issues so you shouldn’t use it in production. If you want to have this effect now, please read the next section…</p>

<h2 id="the-proper-way-to-do-it-currently">The proper way to do it (currently)…</h2>

<p>It’s simple: Just do the hue animation completely in the video editing / post-processing app of your choice (e.g. Adobe After Effects). This way, there’s no performance impact at all as you’re pre-processing the whole video colorizing effect in prior. But maybe some day we’ll have powerful enough machines and able to work with such techniques.</p>

<h2 id="final-words-and-other-experiments">Final words and other experiments</h2>

<p>There’s not much to add to it. Except, I played around a bit more and here is another demo I want to show you. Currently does only work in Chrome. Thanks to <a href="http://tearsofsteel.org/">Tears of Steel</a> for the open source video material.</p>

<p data-height="480" data-theme-id="0" data-slug-hash="BLcHC" data-default-tab="result" class='codepen'>See the Pen <a href='http://codepen.io/anselmh/pen/BLcHC/'>Fullscreen Video Hue</a> by Anselm Hannemann (<a href='http://codepen.io/anselmh'>@anselmh</a>) on <a href='http://codepen.io'>CodePen</a>.</p>

<script async src="//codepen.io/assets/embed/ei.js"></script>

<p><small>(CC) Blender Foundation | mango.blender.org</small></p>
 ]]></content>
        </entry>
        
        <entry>
            <title>A Webstandard It Is…</title>
            <link href="https://helloanselm.com/2014/a-webstandard-it-is/"/>
            <updated>2014-06-20T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2014/a-webstandard-it-is</id>
            <content type="html"><![CDATA[ <p>Nearly three years <a href="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2011-August/032977.html">after the initial request</a> for a native responsive images solution in HTML, <code>&lt;picture&gt;</code>, <code>srcset</code> and <code>sizes</code> finally are officially a web standard.</p>

<p>Both, WHATWG and W3C landed patches in the past week including the <code>&lt;picture&gt;</code> element and its attributes to the HTML5 specification.</p>

<p>And here are the specifications for each on WHATWG and W3C sites:</p>

<ul>
<li><a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/edits.html#the-picture-element">WHATWG <code>&lt;picture&gt;</code></a></li>
<li><a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/edits.html#attr-img-srcset">WHATWG <code>srcset</code></a></li>
<li><a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/edits.html#attr-img-sizes">WHATWG <code>sizes</code></a></li>
<li><a href="http://www.w3.org/html/wg/drafts/html/master/embedded-content.html#the-picture-element">W3C <code>&lt;picture&gt;</code></a></li>
<li><a href="http://www.w3.org/html/wg/drafts/html/master/embedded-content.html#attr-picture-source-srcset">W3C <code>srcset</code></a></li>
<li><a href="http://www.w3.org/html/wg/drafts/html/master/embedded-content.html#attr-picture-source-sizes">W3C <code>sizes</code></a></li>
</ul>

<p>This is the official part, the living standard is always to be found at <a href="http://picture.responsiveimages.org/">picture.responsiveimages.org</a> to which you can submit bugs and issues on GitHub via <a href="http://responsiveimages.org/">RICG</a>.</p>

<p>This is a good point to say thank you to all who are involved into Responsive Images work. Special thanks goes to:</p>

<ul>
<li>Mathew Marquis, the chairman</li>
<li>Marcos Cacares, the one who fought for it in the webstandard consortiums</li>
<li>Yoav Weiss, the one who made all possible (technically, implementation-wise)</li>
<li>Geri Coady, who did the design work</li>
<li>Simon Pieters, Tab Atkins, Matthew Wilcox, Bruce Lawson, Eric Portis, John Schoenick, Robin Berjon, Adam Bradley, Jason Grigsby, Scott Jehl, Kornel Lesinski, David Newton, and a whole lot more people who are all awesome!</li>
</ul>
 ]]></content>
        </entry>
        
        <entry>
            <title>Responsive Images In Your Browser</title>
            <link href="https://helloanselm.com/2014/responsive-images-coming/"/>
            <updated>2014-05-29T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2014/responsive-images-coming</id>
            <content type="html"><![CDATA[ <p>Exciting news have been coming up this week. Responsive Images are finally being implemented. Chrome is <a href="https://codereview.chromium.org/265763010/">offering <code>&lt;picture&gt;</code></a> in version 37 behind flags, which means it’s in Canary since this week and hopefully in released stable v37 in August, 2014. Firefox has <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=870022#c55">all the patches</a> nearly finished and will ship soon in Nightly channel.</p>

<p>Long awaited, discussed over the past three years, a webstandard for responsive images <a href="http://caniuse.com/#search=srcset">will be usable</a> in new browsers by mid of the year. The <a href="http://picture.responsiveimages.org/"><code>&lt;picture&gt;</code> element</a> and <a href="http://www.w3.org/html/wg/drafts/srcset/w3c-srcset/"><code>srcset</code>, <code>sizes</code></a> will be the thing to use when you need to serve images in different sizes and resolutions.</p>

<h2 id="the-future">The Future</h2>

<p>With Chrome (therefore Opera) and Firefox supporting Responsive Images two major browser vendors support the webstandard. But still, two other big players are still missing: WebKit (Safari) and Internet Explorer.</p>

<h3 id="webkit-safari">WebKit / Safari</h3>

<p>The RICG recently crowd-funded the implementation for Blink and WebKit. That means, Yoav Weiss has not only put massive work into the Blink implementation but has already started porting the codebase to WebKit, too. Hopefully, WebKit will approve the patch and therefore get Responsive Images as well.</p>

<h3 id="internet-explorer">Internet Explorer</h3>

<p>FThe Internet Explorer team officially can’t say anything specific, but at least has both, <code>&lt;picture&gt;</code> and <code>srcset</code> <a href="http://status.modern.ie/pictureelement?term=pic">‘under consideration’</a> which is a good sign. Also, if three of the four big players will support it, they will likely follow up soon.</p>

<p>After three years of much trouble, many discussion and frustration this makes me very excited! Thanks to all the people supporting me, RICG and other people helping us making this dream become true.</p>

<h2 id="learn-more">Learn more</h2>

<ul>
<li>Chris Coyier’s Screencast: <a href="http://css-tricks.com/video-screencasts/133-figuring-responsive-images/">Figuring out Responsive Images</a></li>
<li>Martin Wolf’s blog post: <a href="http://martinwolf.org/2014/05/07/the-new-srcset-and-sizes-explained/">The new <code>srcset</code> and <code>sizes</code> explained</a></li>
<li>The whole picture about <a href="http://responsiveimages.org/"><code>&lt;picture&gt;</code> and <code>srcset</code> and everything else by the Responsive Images Community Group</a></li>
</ul>
 ]]></content>
        </entry>
        
        <entry>
            <title>Testing mouse events and CSS states with PhantomCSS</title>
            <link href="https://helloanselm.com/2014/testing-css-states-with-phantomcss/"/>
            <updated>2014-05-02T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2014/testing-css-states-with-phantomcss</id>
            <content type="html"><![CDATA[ <p>In a large-scale ongoing component-driven front-end project it is likely that you’ll encounter regression bugs. This is the point where you should consider adding regression tests. I want to show you how to test your layout using <a href="https://github.com/chrisgladd/grunt-phantomcss">PhantomCSS</a> (a tool using <a href="http://casperjs.org/">CasperJS</a> (1.1) and <a href="http://phantomjs.org/">PhantomJS</a> to make screenshots and compare them) and even <strong>emulate CSS states</strong>.</p>

<p>See how to set up and <a href="https://github.com/chrisgladd/grunt-phantomcss#the-phantomcss-task">configure PhantomCSS</a> in the official docs and <a href="https://github.com/chrisgladd/grunt-phantomcss#basic-visual-tests">read how to write basic tests</a>. <em>(I’ll not explicitly cover this but focus on my advanced test)</em></p>

<h3 id="tl-dr">TL;DR;</h3>

<p>The following is a test case to find regression bugs in your component including CSS states like <code>:hover</code>, <code>:active</code>, <code>:visited</code>. This shows a basic test case that shows the general approach, not every single state in detail:</p>
<div class="highlight"><pre><code class="language-" data-lang="">casper.start('http://localhost:8001/test/visual')
    .then(function () {
        phantomcss.screenshot('.selector', 'screenshotname');
    })
    .then(function () {
        this.mouse.move('.selector a.button'); // Trigger :hover state
    })
    .then(function () {
        this.mouse.down('.selector a.button--large'); // Trigger :active state
    });

casper.on('mouse.move', function(resource) {
    phantomcss.screenshot('.selector', 'screenshotname-hover');
});

casper.on('mouse.down', function(resource) {
    phantomcss.screenshot('.selector', 'screenshotname-active');
});
</code></pre></div>
<h3 id="the-explanation">The Explanation</h3>

<p>So what does it do? First, we start by creating a new instance of Casper with <code>casper.start()</code>. We add our location as parameter—in my case I started a server on port <code>8001</code> via <a href="https://github.com/gruntjs/grunt-contrib-connect"><code>grunt-connect</code></a> and point it to my comonent’s visual test file.</p>

<p>You then can add your chain of actions / tests which should be executed by CasperJS. The <code>then()</code> function makes sure this is done in the given order as by default Casper handles things asynchronously. Inside, specify your test case. This can vary from simply creating a screenshot (like in the example above) up to a <a href="http://casperjs.readthedocs.org/en/latest/quickstart.html#now-let-s-scrape-google">complex JavaScript test</a> to trigger JS driven actions in your component. <code>phantomcss.screenshot()</code> creates a screenshot at the <a href="https://github.com/chrisgladd/grunt-phantomcss#responsive-layout-testing">configured screen size</a> (configuration is done in the grunt task).</p>

<p>Now the interesting part is when I say to move the mouse to a specific selector. This lets me trigger a <code>:hover</code> state as the mouse is now over my element with the styled hover-effect. The problem is, simply doing a screenshot now wouldn’t work as for whatever reason, the hover state isn’t triggered when PhantomJS makes the screenshot.</p>

<p>So I investigated searching for solutions, found many misleading but similar questions on Stack Overflow. Finally, after reaching out on Twitter, Ian Feather pointed me to the <a href="http://casperjs.readthedocs.org/en/latest/events-filters.html">CasperJS Events</a>, by luck. And, he was right. In fact, you need to listen to the mouse event with a casper event listener and then trigger the screenshot:</p>
<div class="highlight"><pre><code class="language-" data-lang="">casper.on('mouse.move', function(resource) {
    phantomcss.screenshot('.selector', 'screenshotname-hover');
});
</code></pre></div>
<h3 id="looks-easy-didn-t-you-know-that">Looks easy, didn’t you know that?</h3>

<p>This isn’t a big deal I think but still I didn’t found a single resource leading me to this solution to I thought to better write this down for everyone.</p>

<p>Hope you find it useful and if you have feedback, please let me know on <a href="https://twitter.com/helloanselm">Twitter</a> or via <a href="mailto:hello@anselm-hannemann.com?subject=Feedback:%20Testing%20CSS%20with%20PhantomCSS">E-Mail</a>.</p>
 ]]></content>
        </entry>
        
        <entry>
            <title>Analyzing the GitHub Pages Waterfall Chart</title>
            <link href="https://helloanselm.com/2014/github-pages-redirect-performance/"/>
            <updated>2014-04-08T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2014/github-pages-redirect-performance</id>
            <content type="html"><![CDATA[ <p>Using GitHub pages is common practice today, especially using it as host for your Open Source project’s website. But also, websites like mine, rely on GitHub’s pages service. But recently I stumbled over a little caveat—which helps GitHub to prevent attacks.</p>

<p><em>Please be aware this post is written as of April, 2014 and things might have changed when you read this post. You find the links with the proper information right here in the article.</em></p>

<p><em><strong>Update</strong>: As of end of April, GitHub again updated their gh-pages infrastructure and <a href="https://help.github.com/articles/setting-up-a-custom-domain-with-github-pages">wrote about it on their manual page</a>. Check it out how to properly configure your custom domain to avoid the effect described here.</em></p>

<p>While I already wrote about problems with <a href="https://helloanselm.com/2013/use-a-cdn-on-github-pages/">using GitHub pages as a CDN to serve static files</a> I always was pretty convinced of the world-wide load performance with GitHub pages. As I optimized my website’s performance last week, I got a tweet from Andy Davies telling me a strange behavior about the initial load of the page:</p>

<blockquote class="twitter-tweet" data-conversation="none" lang="en"><p><a href="https://twitter.com/helloanselm">@helloanselm</a> <a href="https://twitter.com/WebPerfNews">@WebPerfNews</a>  1st waterfall redirect pattern seems quite common with GH pages</p>&mdash; Andy Davies (@AndyDavies) <a href="https://twitter.com/AndyDavies/statuses/450305634698035200">March 30, 2014</a></blockquote>

<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

<p>I never have discovered this and it does not affect everyone. But as I could confirm it in the Webpagetests for <a href="http://www.webpagetest.org/result/140330_RE_1b398b7fe4b8e6ca24088a7fd8ae1350/">1st load</a>, <a href="http://www.webpagetest.org/result/140330_13_GJF/1/details/">also from another location</a> it bothered me so I reached out to the awesome GitHub support.</p>

<p>Only a few hours later I got the answer to this behavior:</p>

<blockquote>
<p>What you&#39;re seeing is an intentional 302 redirect for GitHub Pages. Our DDoS mitigation technology samples the HTTP traffic in order to detect bots and DDoS precursors, and issues HTTP 302 responses to smoothly redirect users that are not bots.<br>
This particular redirect activity only happens for GitHub Pages with custom domains that are set up with DNS A records pointing directly to our Pages IP addresses. In order to avoid the redirects, you could use a sub domain, e.g. blog.example.com, instead of an apex domain, e.g. example.com, as a CNAME for your GitHub Page. This sub domain will be backed by our Content Delivery Network and won&#39;t return a 302.</p>
</blockquote>

<p>This behavior is also somehow documented in the Github blog under <a href="https://github.com/blog/1715-faster-more-awesome-github-pages">Faster, more awesome Github pages</a> and <a href="https://help.github.com/articles/setting-up-a-custom-domain-with-pages">Setting up custom domains with pages</a>.</p>

<h2 id="comparing-github-pages-to-local-hoster">Comparing GitHub Pages to local hoster</h2>

<p>Yesterday I got a newsletter from MaxCDN, the provider of my CDN, with announcements of new tools. They now offer a tool to <a href="http://tools.maxcdn.com/">compare the ping of two sites</a> but also the <a href="http://tools.maxcdn.com/http">first and last byte of two websites</a>.</p>

<p>This came in handy to compare the first byte times between my local dealer site and my GitHub site leading to the following result which I already anticipated:</p>

<p><img src="https://helloanselm.com/img/blog/gh-pages-redirect-performance-comparison.png" alt="Chart showing the GitHub pages response times being faster than locale’s compared world-wide"></p>

<p>While my locale provider is much faster serving the site in my own country, GitHub does a far better job even with the redirect if you look at the request response time from e.g. Asia or America. Due to the long distance to Germany (where my local provider serves the site from) it’s much faster to go to Githubs Firewall and Servers which serve from their ‘always local’ servers than going the long distance half around the world.</p>

<h2 id="what-does-that-mean-now">What does that mean now?</h2>

<p>If you use GitHub pages with custom domain depending on your configuration it might happen that people will experience a redirect and therefore a long response time before they can see your website.</p>

<p>If you are serving a locale community this means you might want to avoid using GitHub pages (state April, 2014) for your site. But if you’re serving a global community, you still might go better with GitHub pages than with your local provider. So as so often, it depends who’s your target audience.</p>
 ]]></content>
        </entry>
        
        <entry>
            <title>Parsing Iconfont Characters Automatically</title>
            <link href="https://helloanselm.com/2014/parsing-iconfont-characters-automatically/"/>
            <updated>2014-03-27T00:00:00+01:00</updated>
            <id>https://helloanselm.com.com/2014/parsing-iconfont-characters-automatically</id>
            <content type="html"><![CDATA[ <p>Recently I had to fix some issues in an iconfont. In the end all was tracked down to a corrupt WOFF font file but during the debugging process I found a neat solution to display all characters including unicodes of an iconfont automatically.</p>

<blockquote>
<p>Be aware that the following technique will only work if you have a SVG file of the font.</p>
</blockquote>

<p>A common problem with iconfonts is that an icon is somehow related to a unicode character. Usually you display icon using pseudo-elements in CSS requiring the unicode of the character. But how do you determine what icon is used on which character code if you are not the creator of the font?</p>

<p>In a current project we use a lot of components and write visual tests for each of them. Except, the iconfont hadn’t had a proper one. For that test I needed to display all characters of the font somehow but didn’t know (and don’t want to) how the characters are referenced. But more importantly, I thought, would be extendability, when later on, characters are added.</p>

<h2 id="how-i-came-to-my-solution">How I came to my solution</h2>

<p>This was the time when I thought about somehow it must be possible to parse a webfont to get that information or, worst case, running through a unicode table and show the results where applied. Fortunately the latter isn’t needed as we have a SVG font. SVG is written as ‘readable’ markup and so is a SVG icon-font. Each character has a DOM node with attributes and the vector points that define the character. And here we start:</p>

<h2 id="the-svg-webfont">The SVG WebFont</h2>

<p>The following code snippet is a sample of a character from an SVG icon font:</p>
<div class="highlight"><pre><code class="language-" data-lang=""><span class="cp">&lt;?xml version="1.0" standalone="no"?&gt;</span>
<span class="cp">&lt;!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" &gt;</span>
<span class="nt">&lt;svg</span> <span class="na">xmlns=</span><span class="s">"http://www.w3.org/2000/svg"</span><span class="nt">&gt;</span>
    <span class="nt">&lt;defs&gt;</span>
        <span class="nt">&lt;font</span> <span class="na">id=</span><span class="s">"vsir-iconfont"</span> <span class="na">horiz-adv-x=</span><span class="s">"250"</span> <span class="nt">&gt;</span>
            <span class="nt">&lt;font-face</span> <span class="na">units-per-em=</span><span class="s">"100"</span> <span class="na">ascent=</span><span class="s">"80"</span> <span class="na">descent=</span><span class="s">"-20"</span> <span class="nt">/&gt;</span>
            <span class="nt">&lt;glyph</span> <span class="na">unicode=</span><span class="s">" "</span> <span class="na">horiz-adv-x=</span><span class="s">"50"</span> <span class="na">d=</span><span class="s">""</span> <span class="nt">/&gt;</span>
            <span class="nt">&lt;glyph</span> <span class="na">unicode=</span><span class="s">"!"</span> <span class="na">horiz-adv-x=</span><span class="s">"100"</span> <span class="na">d=</span><span class="s">"M83.522656250000011</span>
              <span class="err">38.628515624999999</span> <span class="err">C85.970996093749989</span> <span class="err">38.628515625000006</span>
              <span class="err">90.867675781250000</span> <span class="err">38.628515625000006</span> <span class="err">93.316015624999977</span>
              <span class="err">38.628515625000006</span> <span class="err">C94.026953124999977</span> <span class="err">38.628515625000006</span>
              <span class="err">94.737695312500023</span> <span class="err">z"</span> <span class="nt">/&gt;</span>
        <span class="nt">&lt;/font&gt;</span>
    <span class="nt">&lt;/defs&gt;</span>
<span class="nt">&lt;/svg&gt;</span>
</code></pre></div>
<p>The interesting part here is the <code>&lt;glyph&gt;</code> element which wraps each character and its attribute <code>unicode=&quot;!&quot;</code>. We now have an identifier to get every glyph of the font (the DOM element) and its unicode reference which here is our unique identifier (as a font can only have one glyph for one unicode-expression).</p>

<h2 id="displaying-the-icons-in-our-html">Displaying the Icons in our HTML</h2>

<p>To display the font icons we need three things:</p>

<ol>
<li>The HTML Markup</li>
<li>The Scss/CSS styles that actually display the font through generated content</li>
<li>The JavaScript that dynamically fetches all available glyphs of the font</li>
</ol>

<h3 id="the-html">The HTML</h3>

<p>Easy. Besides the reference to our CSS Style Sheet in the head of the HTML we only need two lines of HTML:</p>
<div class="highlight"><pre><code class="language-" data-lang="">&lt;div id="svg" style="display: none;"&gt;&lt;/div&gt;
&lt;table class="icons"&gt;
    &lt;thead&gt;
        &lt;tr&gt;
            &lt;td&gt;Symbol&lt;/td&gt;
            &lt;td&gt;Unicode (CSS)&lt;/td&gt;
        &lt;/tr&gt;
    &lt;/thead&gt;
&lt;/table&gt;
</code></pre></div>
<p>The first is the container where we want to load our SVG font into to read the DOM. We will do this via AJAX load to ensure the font is loaded when we run our additional scripts through it. I tried some things with iFrames (objected because of no cross-browser <code>seamless</code> support) and <code>&lt;object&gt;</code> (didn’t work too good and I don’t like using the object element) but in the end the scripted solution works best for automated tests in my opinion.
As we only want to access the DOM but don’t want to see the DOM we need to add the <code>display: none;</code> attribute here.
The second, the <code>&lt;table&gt;</code> element, is where we want to display our icons along with the corresponding unicode character.</p>

<h3 id="the-scss-css">The Scss/CSS</h3>

<p>First, we want to include our webfont with the CSS3 <code>@font-face</code> rule. This is an example using Scss as preprocessed CSS language.</p>
<div class="highlight"><pre><code class="language-" data-lang="">@font-face {
    font-family: iconfont;
    src: url('iconfont.eot');
    src: url('iconfont.eot?#i') format('embedded-opentype'),
         url('iconfont.woff') format('woff'),
         url('iconfont.ttf') format('truetype'),
         url('iconfont.svg#') format('svg');
    font-weight: normal;
    font-style: normal;
}
</code></pre></div>
<p>We now want to display all the things so we need to add the unicodes that are available through the SVG DOM as generated content.</p>
<div class="highlight"><pre><code class="language-" data-lang="">// CSS Code here
td {
    font-family: iconfont;
}
</code></pre></div>
<h3 id="the-javascript-part">The JavaScript part</h3>

<p>I use jQuery here but if you don’t need to support older browsers you can easily replace the jQuery methods with the native ones.</p>
<div class="highlight"><pre><code class="language-" data-lang="">$(window).load(function () {
    var svgns = 'http://www.w3.org/2000/svg';
    var svgUrl = '../fonts/iconfont.svg';

    $('#svg').load(svgUrl, function (svgUrl) {
        // Insert content of the SVG file in our invisible DOM node
        $('#svg').append(svgUrl);

        // Find all glyph nodes in the SVG file
        var svg = $('svg').find('glyph');
        // Add unicode escaping for CSS
        var unicodePrefix = '\\';
        var iconOutput = '';
        var icons = [];
        var i = 0;

        for (i=0; i &lt; svg.length; i++) {
            var unicode = svg[i].getAttribute('unicode').toString();

            icons.push(unicode);
        }

        for (i=0; i &lt; icons.length; i++) {
            var iconChar = icons[i].charCodeAt();

            iconChar = iconChar.toString(16); // Convert to string format
            iconOutput += '&lt;tr&gt;&lt;td class="icon--' + icons[i] + '"&gt;' +
                            icons[&lt;i&gt;&lt;/i&gt;] +
                            '&lt;/td&gt;&lt;td&gt;&lt;code&gt;' +
                            unicodePrefix +
                            iconChar +
                            '&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;';
        }

        $('.icons').append(iconOutput);
    });
});
</code></pre></div>
<h2 id="the-result">The Result</h2>

<p>I’ve created <a href="http://jsbin.com/ziwol/7">a JSBin demo</a> using the <a href="http://fontawesome.io/">FontAwesome</a> icon font used by Bootrstrap. <em>Note: As I’m relying on an external CDN here, I hope this demo still works when you view it.</em></p>

<p><a class="jsbin-embed" href="http://jsbin.com/ziwol/7/embed?html,css,js,output">JS Bin</a><script src="http://static.jsbin.com/js/embed.js"></script></p>
 ]]></content>
        </entry>
        
        <entry>
            <title>Embed responsively and with a fallback</title>
            <link href="https://helloanselm.com/2014/embed-responsively-and-with-fallback/"/>
            <updated>2014-03-20T00:00:00+01:00</updated>
            <id>https://helloanselm.com.com/2014/embed-responsively-and-with-fallback</id>
            <content type="html"><![CDATA[ <p>This post will show you how to provide fallbacks for embedded code from Codepen, JSbin or other services. It’s super easy but often forgot.</p>

<h2 id="why">Why?</h2>

<p>If you’ve ever been reading your timeline viewing a blog post that includes a codepen while on the train you might already know why. All of the code snippet services are heavily relying on their own JavaScripts. If they can’t be loaded or the service is offline as a whole, the whole blog post can be useless as the core of it, the source code, isn’t loaded. That is why we want to avoid fully relying on JavaScript and instead provide a fallback when JavaScript isn’t available.</p>

<h2 id="how">How?</h2>

<p>The good old <code>&lt;noscript&gt;</code> element comes into handy. While many of the sharing codes already include some noscript content, it often only contains a HTML link to the code-snippet itself again. This is not very useful and it would be a much better user experience if a user could still see the whole code and result. The only difference in fact should be that the live code-example might not be available. But all important code is available. All the time.</p>

<p>Format the fallback content in a way that users will not recognize anything went wrong.</p>

<p>Here’s how a possible CodePen implementation could look like:</p>
<div class="highlight"><pre><code class="language-" data-lang="">&lt;p data-height="268" data-theme-id="0" data-slug-hash="djbmp" data-default-tab="result" class='codepen'&gt;See the Pen &lt;a href='http://codepen.io/anselmh/pen/djbmp'&gt;Drop shadow for 2 elems preserving the intersection&lt;/a&gt; by Anselm Hannemann (&lt;a href='http://codepen.io/anselmh'&gt;@anselmh&lt;/a&gt;) on &lt;a href='http://codepen.io'&gt;CodePen&lt;/a&gt;.&lt;/p&gt;
&lt;script async src="//codepen.io/assets/embed/ei.js"&gt;&lt;/script&gt;
&lt;noscript&gt;
    &lt;h3&gt;HTML&lt;/h3&gt;
    &lt;pre&gt;&lt;code&gt;
    &lt;div class="block"&gt;
        &lt;div class="innerblock"&gt;
            &lt;p&gt;Content and other markup&lt;/p&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;/code&gt;&lt;/pre&gt;

    &lt;h3&gt;CSS&lt;/h3&gt;
    &lt;pre&gt;&lt;code&gt;
    body {
        background: black;
    }

    .block {
        width: 80%;
        margin: 1em auto;
    }
    &lt;/code&gt;&lt;/pre&gt;

    &lt;h3&gt;Result&lt;/h3&gt;
    &lt;img src="result.png" alt="Your alt text here"&gt;
&lt;/noscript&gt;
</code></pre></div>
<p>This, of course, works also with JSBin, and all other services that provide embedded snippets relying on scripts to show them.</p>

<h2 id="be-a-good-example">Be a good example</h2>

<p>When you are including a code snippet you try to teach people something. Therefore you already want to be a good example how to make things on the web for other people. Make the experience for your users even better by regarding no JavaScript users (you know it’s mainly not those who disable it but people on wireless networks)! The users will thank you…</p>
 ]]></content>
        </entry>
        
        <entry>
            <title>Drop shadow for 2 elements preserving the intersection in CSS</title>
            <link href="https://helloanselm.com/2014/drop-shadows-for-two-coherent-elements-preserving-intersection-in-css/"/>
            <updated>2014-03-11T00:00:00+01:00</updated>
            <id>https://helloanselm.com.com/2014/drop-shadows-for-two-coherent-elements-preserving-intersection-in-css</id>
            <content type="html"><![CDATA[ <p>The following code is what I figured out as a solution for drop shadows on two coherent elements while preserving the intersection in plain CSS. This is especially useful for a toggle slide-up/-down function used on a page.</p>

<p data-height="268" data-theme-id="0" data-slug-hash="djbmp" data-default-tab="result" class='codepen'>See the Pen <a href='http://codepen.io/anselmh/pen/djbmp'>Drop shadow for 2 elems preserving the intersection</a> by Anselm Hannemann (<a href='http://codepen.io/anselmh'>@anselmh</a>) on <a href='http://codepen.io'>CodePen</a>.</p>

<script async src="//codepen.io/assets/embed/ei.js"></script>

<noscript>
### HTML

    <div class="block">
      <div class="innerblock">
        <p>To display a box-shadowed container including an overlapping Toggle button which ‘inherits’ the box-shadow of its outer element.</p>
      </div>
      <a href="#" class="block_toggle">Show / Hide</a>
    </div>

### CSS

    body {
      min-height: 30em;
    }

    .block {
      position: relative;
      z-index: 10;
      width: 80%;
      height: 6em;
      margin: 1em auto;
      padding: 0.25em 0.5em;
      box-shadow: 0 2px 3px rgba(0, 0, 0, 0.25);
    }

    .innerblock {

    }

    .block_toggle {
      position: absolute;
      top: 100%;
      left: 50%;
      z-index: 20;

      width: 8rem;
      margin-left: -5rem; /* 4rem + 1rem, because padding is added up */
      padding: 0.5rem;
      text-align: center;
      background: #fff;
      color: #ab1113;

      /* This adds the box shadow of the toggler */
      box-shadow: 0 3px 3px 0px rgba(0, 0, 0, 0.25),
                  3px 1px 3px -2px rgba(0, 0, 0, 0.25),
                  -3px 1px 3px -2px rgba(0, 0, 0, 0.25);
    }

![Screenshot of the result showing two connected elements with outer drop-shadows](https://helloanselm.com/img/blog/drop-shadow-coherent-elements.png)
</noscript>

<p>Feel free to use it on your page, fork it or leave a comment on the pen.</p>

<p>As a variant you could also use pseudo-elements to add the box shadows on the left / right side. Also, the code for positioning the coherent boxes is only for demo—not necessarily the best for your use-case.</p>

<h2 id="variant-for-a-flexible-handler">Variant for a flexible handler</h2>

<p>If you don’t know the exact width of the toggle button you can achieve the centering of it in a different way. Please note that this won’t work in older browsers like IE8:</p>

<p>Instead of setting a margin on the element, put a CSS transform on it (and don’t forget to add applying prefixes).</p>
<div class="highlight"><pre><code class="language-" data-lang="">.block_toggle {
  transform: translate(-50%, 0);
}
</code></pre></div> ]]></content>
        </entry>
        
        <entry>
            <title>Web Performance: One or thousands of Media Queries?</title>
            <link href="https://helloanselm.com/2014/web-performance-one-or-thousand-media-queries/"/>
            <updated>2014-03-03T00:00:00+01:00</updated>
            <id>https://helloanselm.com.com/2014/web-performance-one-or-thousand-media-queries</id>
            <content type="html"><![CDATA[ <p><strong>The question if multiple media queries hurt performance pops up very often.
Because naturally as a developer you think it can’t be good for performance if
you let the browser evaluate them often. Out of curiosity, I researched a bit on
that and found interesting insights…</strong></p>

<p>I hadn’t any clue how to track down media query evaluation of a browser (you
can’t do that with DevTools), except forking the core and adding timers to it
(which is no option as I don’t know any C++). So the logical step for me was to
ask engineers on twitter about it:</p>

<blockquote class="twitter-tweet" lang="en"><p>Do you know if there’s impact on CSS evaluation performance if CSS has 10 or 100 Media-Queries inlined? +<a href="https://twitter.com/yoavweiss">@yoavweiss</a> <a href="https://twitter.com/addyosmani">@addyosmani</a> <a href="https://twitter.com/paul_irish">@paul_irish</a></p>&mdash; Anselm Hannemann (@helloanselm) <a href="https://twitter.com/helloanselm/statuses/423452770528952320">January 15, 2014</a></blockquote>

<blockquote class="twitter-tweet" lang="en"><p><a href="https://twitter.com/helloanselm">@helloanselm</a> If there is a measurable performance impact, I&#39;d consider it a bug :)</p>&mdash; Yoav Weiss (@yoavweiss) <a href="https://twitter.com/yoavweiss/statuses/423510524714708992">January 15, 2014</a></blockquote>

<blockquote class="twitter-tweet" lang="en"><p><a href="https://twitter.com/helloanselm">@helloanselm</a> In theory, it sure seems like it. Might be worth trying to measure, tho (If you have the time &amp; will to do so)</p>&mdash; Yoav Weiss (@yoavweiss) <a href="https://twitter.com/yoavweiss/statuses/423514135679082496">January 15, 2014</a></blockquote>

<h2 id="a-look-into-the-source">A look into the source</h2>

<p>This is a pretty theoretical but still helpful answer because it led me to the
next step: Have a look at the source. In times where everything is on GitHub it’s
easy to dig into the source of anything that is open-source. WebKit and Gecko are,
so their source code is to be found on Github.</p>

<p>Both engines do serialize and strip out duplicated media-queries so they only
need to evaluate each media query once. Also they cache the queries so that they
can re-use it later on. You can view source of <a href="https://github.com/WebKit/webkit/blob/master/Source/WebCore/css/MediaQuery.cpp">WebKit</a> or <a href="https://github.com/mozilla/gecko-dev/blob/master/layout/style/nsIMediaList.h">Gecko</a> here.</p>

<p>Of course this doesn’t mean there is no difference but looking at the source there
shouldn’t be a performance issue. Also, I guess there is no performance lack when
evaluating hundreds of different media queries that is recognizable / measurable.</p>

<h2 id="conclusion">Conclusion</h2>

<p>It doesn’t matter if you use one big or multiple media-queries in your code
assuming your values are mostly the same. It shouldn’t matter if your values are
different for each(!) of your hundreds of media-queries but could affect performance
(found no way to track this down). The only thing I could add here is that using
many inline media queries often is that they’re <a href="http://benfrain.com/inline-or-combined-media-queries-in-sass-fight/">increasing the size of your CSS</a>
(unless your gzipping it) and that affects performance as it’s loaded blocking.</p>

<p>So all in all, happy media-querying!</p>

<h3 id="update-clarification-collected-from-feedback"><em>Update / Clarification collected from feedback</em></h3>

<p><strong>It does matter how many <em>different</em> media queries you use on the site when you’re
resizing the browser window.</strong> This can cause a massive CPU and memory load which
even can crash your browser but as this is not a valid performance test (no user
constantly resizes its browser, we should always focus on non-rezining events only).
Also, these experiences sound really as they are a buggy behavior (which somehow
is seen in the comments in source code).</p>

<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>
 ]]></content>
        </entry>
        
        <entry>
            <title>Nominated for the netawards 2014</title>
            <link href="https://helloanselm.com/2014/netwards-2014/"/>
            <updated>2014-01-31T00:00:00+01:00</updated>
            <id>https://helloanselm.com.com/2014/netwards-2014</id>
            <content type="html"><![CDATA[ <p><a href="https://thenetawards.com/vote/young-developer/anselm-hannemann/"><img src="https://helloanselm.com/img/blog/nomination-netawards-2014.png" alt="Screenshot of the netawards voting page with my profile on it"></a></p>

<p>Wow. <strong>I am nominated for the netawards 2014 as Young Developer of the Year</strong>. This is huge and when I read this first I couldn’t believe it. I’m still totally stoked about the support and only can say <strong>“Thank you for your support!”</strong>.</p>

<p>Of course I’d be happy if you give me your vote:</p>

<p><a class="btn--big--positive" style="display: block; text-align: center;" href="https://thenetawards.com/vote/young-developer/anselm-hannemann/">Vote for me</a></p>

<p>Thanks again to anyone who nominated me and to everyone who will vote for me. You’re all awesome. &hearts;</p>
 ]]></content>
        </entry>
        
        <entry>
            <title>Is it time for CSS Regions Yet?</title>
            <link href="https://helloanselm.com/2014/is-it-time-for-regions-yet/"/>
            <updated>2014-01-29T00:00:00+01:00</updated>
            <id>https://helloanselm.com.com/2014/is-it-time-for-regions-yet</id>
            <content type="html"><![CDATA[ <p><strong>The past week a lot of discussion came up about CSS Regions. Initiated by <a href="http://alistapart.com/blog/post/css-regions-considered-harmful">Håkon Wium Lie’s article on AListApart</a> saying “CSS Regions considered harmful”, followed by a <a href="http://flippinawesome.org/2014/01/27/css-regions-matter/">counter-article</a> and <a href="http://news.cnet.com/8301-1023_3-57617840-93/reversing-course-google-rejects-adobe-web-publishing-tech/">a decision by Blink to drop CSS Regions for now</a> the web community is now split in half—half of them in sympathy of CSS Regions—half of them saying it’s currently a hacky technique. And that is the true problem.</strong></p>

<p>About two years ago <a href="http://html.adobe.com/webplatform/layout/regions/">Adobe presented a new technique</a> to the world: <a href="http://dev.w3.org/csswg/css-regions/">CSS Regions</a>. They provide what has been possible in layout applications for decades now. With Regions it’s possible to let text flow into or around vector shaped paths. To present the new technique, Adobe implemented it into a fork of Chromium (which is WebKit/Blink driven). Since then, a webstandard has been written and is currently available as Editor’s Draft. Microsoft implemented Regions into Internet Explorer 11 (<code>-ms</code>-prefixed), Safari implemented them into Safari 7 and iOS7 with <code>-webkit</code>-prefix.</p>

<p>Håkon Wium Lie, one of the founders of CSS, wrote a very opinionated article in which he states that CSS Regions are considered harmful for several reasons. I will list them in short here:</p>

<ul>
<li>“Regions use Dummy <code>&lt;div&gt;</code>s”</li>
<li>“Regions are not responsive”</li>
<li>“Confusing text flow”</li>
<li>“Verbosity”</li>
<li>“Code reuse”</li>
</ul>

<p>Quite a list, right? The problem is, they’re simply not the full truth. As many opinion pieces or articles stating something is “harmful” it only shows one perspective. In this case, against CSS Regions.</p>

<p>But let’s face the issues and track them down.</p>

<p>First, as I already mentioned, CSS Regions are currently an Editor’s Draft. This means, they are not a standard yet and it also means, they need to be improved to become a standard. This alone implies that the current status will <em>have</em> some issues but it also implies they’re likely being fixed soon.</p>

<h3 id="additional-markup">Additional markup</h3>

<p>I am absolutely no fan of unnecessary, presentational code in our markup. This was the first thing I didn’t like about CSS Regions when I saw them first time in London, two years ago. But I know, currently there is no real way to get around that with the current toolset of CSS. Adobe wants (or wanted?) to tackle that apparently—they started writing on <a href="http://dev.w3.org/csswg/css-pseudo/">CSS Pseudo-Elements Level 4</a> in 2012. Unfortunately there hasn’t been any progress since then.</p>

<p>For me (personally), CSS Regions is considered ‘hacky’ as long as they need additional presentational markup. But bear in mind, it’s not CSS Regions’ fault but only a dependency on the extension of the Pseudo Elements spec.</p>

<h3 id="responsiveness">Responsiveness</h3>

<p>If you look at Adobe’s CSS Regions demos they’re all the same: Great looking layouts that are presented to the users on a big screen. But they never (at least in the four presentations I’ve seen) showed them to work responsively. In my opinion, this has been one of the biggest problems of CSS Regions—Adobe not showing how this works while everybody is talking about Responsive Web Design. They missed an opportunity here but gladly <a href="http://flippinawesome.org/2014/01/27/using-css-regions-in-responsive-designs/">Brian Rinaldi wrote an article how to use Regions in a Responsive Design</a>. You see, this is not impossible.<br>
I still think CSS Regions’ responsiveness is not very good but it’s not impossible to get it work and there’s always room to improve it.</p>

<h3 id="the-confusing-text-flow">The Confusing Text flow</h3>

<p>Well, I won’t write much about this but looking at Håkon’s example images I realized this is completely only his opinion. I find his proposal massively confusing and like the current spec much more. So this is highly debatable.</p>

<h3 id="verbosity">Verbosity</h3>

<p>A good call. Verbosity seems to be the latest thing to kill new webstandards. It was the same for the <code>&lt;picture&gt;</code>-element before finally some more people realized that verbosity often also means simplicity. And, in my opinion, webstandards should be simple to follow and to understand.<br>
Seeing this from a performance view, gzipping the webpage should make this a non-issue very easily. And you should serve your page gzipped anyways.</p>

<h3 id="code-reuse">Code Reuse</h3>

<p>CSS Regions style currently isn’t appliable to any new page and text. This is true but is that what we want when we use CSS Regions? I don’t believe so.</p>

<h2 id="why-blink-is-dropping-it">Why Blink is dropping it</h2>

<p>After some thoughts on where Regions stand today and what they can or cannot do, I now want to explain why Blink engineers decided to drop CSS Regions from their engine.</p>

<p>When you look at the things <a href="https://groups.google.com/a/chromium.org/forum/#!msg/blink-dev/Z5OzwYh3Wfk/IWooaY5FZowJ">where Blink should go in 2014</a>, it is mainly speed and performance. The reason why Blink dropped CSS Regions is because they currently perform badly in Blink. I don’t know much more details about the implementation but I know that IE10/IE11 and Safari 7 are super fast browsers and they implemented CSS Regions in there. Therefore I believe it is an issue with Blink alone but that shouldn’t matter.</p>

<p>It is totally reasonable to drop an highly experimental technique which is not a finished webstandard yet because of whatever reason. It might not always be great for people who are working and fighting for that feature but you can’t deny that a fast changing specification can cause massive workload and problems.</p>

<p>I am not suprised that CSS Regions have bad performance. They are a powerful toolset which requires massive calculations and of images and text along vector paths. Now apply this for a responsive design and imagine how this can affect a browser’s performance…</p>

<p>But isn’t it just rational to drop such a feature if it doesn’t work right now <em>and</em> is still experimental? In my opinion it is.</p>

<p>What surprised me was people starting to say “As Blink drops CSS Regions all is lost now and it’s going to die as a standard now”. Regions won’t die just because Blink drops them for the next time. Regions are still important. Blink is only one engine and there are many others that support the development of Regions right now. Keep on improving the webstandards.</p>

<p>If they’re good enough and perform well, I’m sure they will get implemented sooner or later. The best thing you can do is to improve the spec, test cases, file bugs and improve the webstandards and proposals itself. Thanks for caring!</p>
 ]]></content>
        </entry>
        
        <entry>
            <title>[SOLD] Apple MacBook Pro 15” Mid 2010</title>
            <link href="https://helloanselm.com/2014/selling-macbookpro/"/>
            <updated>2014-01-03T00:00:00+01:00</updated>
            <id>https://helloanselm.com.com/2014/selling-macbookpro</id>
            <content type="html"><![CDATA[ <p>I am selling one of my work machines as I never used it too much in favor of my MacBook Air 11”.
The powerful (still today!) MacBook Pro got an manual upgrade by me with an SSD (via <a href="http://hardwrk.com/en/ssd-hdd-adapter-kit-for-macbook-pro.html">Hardwrk Kit</a>) and has been taken with care.
Most of the time it was on a Desktop stand, connected to an external Monitor.</p>

<h2 id="facts-tech-data">Facts / Tech Data:</h2>

<ul>
<li><a href="http://support.apple.com/kb/sp582">Apple MacBook Pro Mid 2010</a> (6,2)</li>
<li>Intel Core i5 2.4GHz</li>
<li>15.4 inch display with 1680 x 1050px</li>
<li>8 GB RAM</li>
<li>NVIDIA GeForce GT 330M with 256MB GDDR3 &amp; Intel HD Graphics with 256MB shared SDRAM</li>
<li>Mini DisplayPort</li>
<li><strong>NO CD/DVD SuperDrive</strong></li>
<li><strong>120GB Kingston Hyper X SSD</strong> (use this as OS X disc)</li>
<li><strong>320GB HDD</strong> (the default Apple one)</li>
<li>only 51 Battery Cycles!</li>
<li>Runs Mac OS X 10.9</li>
</ul>

<h2 id="price">Price</h2>

<p>As this thing is in a very good condition and I only sell it because I don’t need it,
I want to have <strong>950 EUR</strong> excl. VAT and shipping. This in my opinion is a very fair price
and is based on official calculations by several online sellers.
I will include a nice bag for it, too. Of course power adapter will also be included.</p>

<h2 id="pictures">Pictures</h2>

<p>If you want additional photos, please ask.</p>

<p><img src="http://imguber.anselmhannemann.netdna-cdn.com/mbp/macbookpro-1.jpg" alt=""></p>

<p><img src="http://imguber.anselmhannemann.netdna-cdn.com/mbp/macbookpro-2.jpg" alt=""></p>

<p><img src="http://imguber.anselmhannemann.netdna-cdn.com/mbp/macbookpro-3.jpg" alt=""></p>

<p><img src="http://imguber.anselmhannemann.netdna-cdn.com/mbp/macbookpro-4.jpg" alt=""></p>

<p><img src="http://imguber.anselmhannemann.netdna-cdn.com/mbp/macbookpro-5.jpg" alt=""></p>

<p><img src="http://imguber.anselmhannemann.netdna-cdn.com/mbp/macbookpro-6.jpg" alt=""></p>

<p><img src="http://imguber.anselmhannemann.netdna-cdn.com/mbp/macbookpro-7.jpg" alt=""></p>

<p><img src="http://imguber.anselmhannemann.netdna-cdn.com/mbp/macbookpro-8.jpg" alt=""></p>
 ]]></content>
        </entry>
        
        <entry>
            <title>My Year 2013 in Review</title>
            <link href="https://helloanselm.com/2014/my-year-2013-in-review/"/>
            <updated>2014-01-02T00:00:00+01:00</updated>
            <id>https://helloanselm.com.com/2014/my-year-2013-in-review</id>
            <content type="html"><![CDATA[ <p>With 2013 the past year already, I write this recap to remember what I did in that year. 2013 was amazing for me and 2014 will begin with some changes like me moving to Cologne for the next six months.</p>

<hr>

<p>In <strong>January 2013</strong> I had the opportunity to speak at the newcomer conference <a href="http://takeoffconf.com/2013">TakeOff in Lille</a>. It was a super-cold but an amazing time there: The hosts, all the other people and the beer were just lovely!</p>

<hr>

<p>Next up we all met in Berlin to document the Web at the <strong>Web Platform Doc Sprint</strong>:
<a href="http://www.flickr.com/photos/szene/8459312560/in/faves-smooth-graphics/"><img src="https://helloanselm.com/img/blog/2013-in-review/andreas-dantz--wpds.jpg" alt="People at the Web Platform Doc Sprint sitting around documenting the web"></a></p>

<hr>

<p>A few weeks later during deepest winter I travelled to Vienna where <strong><a href="http://events.jquery.org/2013/eu/">jQuery Conf Europe</a></strong> took place at the impressive location Palais Liechtenstein.
<img src="http://distilleryimage0.ak.instagram.com/81eef1927cc811e2ad5822000aaa094d_7.jpg" alt="Attendees in Palais Liechtenstein"></p>

<hr>

<p>Just two weeks later the first <strong><a href="http://uxmunich.com/">UX Munich Conference</a></strong> opened its doors where I had the pleasure to listen to some great talks. I also did some conference notes:
<img src="http://distilleryimage7.ak.instagram.com/e9860c4c8ca311e29dbc22000a1f9e59_7.jpg" alt="book with sketch notes of the conference"></p>

<hr>

<p>In March I decided to get a new digital camera. I wanted to take more photos than before again and therefore wanted to have a digital cam (previously I only had several great old analog cameras). So <a href="https://helloanselm.com/2013/fuji-x-e1/">I bought a Fujifilm X-E1</a>.
<img src="http://distilleryimage11.ak.instagram.com/d2593a6c961211e2984522000a1f8ad9_7.jpg" alt="My new Camera"></p>

<hr>

<p>Now followed two weeks <strong>Bouldering in Fontainebleau</strong>, a camping vacation with my friends that simply was so enjoyable that it&#39;s hard to describe. After an exhausting 2012 these 10 days off were solid gold for my work motivation (and for my bouldering skills).</p>

<hr>

<p>Right back from vacation the final preparations for my own conference—<strong><a href="http://pubkon.eu/">the PUBKON</a></strong>—went on. The conference itself, done the second time in 2013, gladfully was a huge success and we had an amazing time with all the attendees and speakers in Berlin.</p>

<p><img src="https://helloanselm.com/img/blog/2013-in-review/pubkon.jpg" alt="The PUBKON event space showing the atmosphere with all the attendees">
<img src="https://helloanselm.com/img/blog/2013-in-review/pubkon-key.jpg" alt="Me and my colleagues on stage opening the event"></p>

<hr>

<p>Because I’m a bit silly, I spontaneously said ‘Yes’ when I was asked by the usual German conference crew if I wanna join on <strong>FrontTrends</strong> just two days later. Directly from Berlin I took the train to Warsaw which is a super lovely city I definitely want to visit again. The food, beer, and weather was great as was the time I&#39;ve spend there…</p>

<p><img src="https://helloanselm.com/img/blog/2013-in-review/FrontTrends-1.jpg" alt="Warsaw center by night">
<img src="http://distilleryimage4.ak.instagram.com/7f25c9b6ac3611e2892122000a9f13f9_7.jpg" alt="the conference crew drinking beers">
<img src="http://distilleryimage4.ak.instagram.com/12ca9644ae6511e28f8322000a9f18ae_7.jpg" alt="enjoying the spring outside during conference"></p>

<hr>

<p>Back at home I finished to build my DIY shelf made out of wine-boxes. Easy, but damn cool!
<img src="http://distilleryimage9.ak.instagram.com/3a3d9cb6b4ba11e2819022000a1f99d8_7.jpg" alt=""></p>

<hr>

<p>Summer came to Germany and I started to improve my Slackline skills and had very much fun with the guys from Munich who are much better than I.
<img src="http://distilleryimage0.ak.instagram.com/00d3e176b8a011e28fcc22000aa801f0_7.jpg" alt=""></p>

<hr>

<p>In May I went to Düsseldorf to attend to the beyondtellerand conference which is always one of the best events I’ve ever been to.
<img src="http://distilleryimage1.ak.instagram.com/84176afcc69d11e2852a22000a9e0709_7.jpg" alt=""></p>

<hr>

<p>When we (Jay, Christian, I) got nominated for the <strong>netawards</strong> at the end of 2012 with our non-profit platform <a href="http://opendevicelab.com/">OpenDeviceLab.com</a> we never thought we’ll be part of the ceremony. In fact, we got invited, and took it as a chance to visit London again—a great city by itself.</p>

<p><img src="http://distilleryimage3.ak.instagram.com/8acd82e2c9e411e2948e22000a1f9d45_7.jpg" alt="">
<img src="http://distilleryimage1.ak.instagram.com/4687351aca3411e2ab5722000a1f9684_7.jpg" alt=""></p>

<p>By luck I met Alex Duloz there, who sports <a href="https://the-pastry-box-project.net/">The Pastry Box Project</a> and we had a nice talk during breakfast. He’s a great guy I definitely want to see again soon. I also wrote a piece for TPB later on which is to be found <a href="https://the-pastry-box-project.net/anselm-hannemann/2013-october-3">here</a>.</p>

<hr>

<p>Most weekends I’ve spent at home, I forced myself to go outside. I went hiking, climbing, Mountainbiking or Slacklining in the Mountains to re-fuel my power:</p>

<p><img src="http://distilleryimage10.ak.instagram.com/05a28e2cd6bf11e299de22000aaa0494_7.jpg" alt="">
<img src="http://distilleryimage4.ak.instagram.com/e4411b4cd69911e2a72522000a1fb586_7.jpg" alt=""></p>

<p>During the week just in the evening I sometimes tried to walk on a Waterline (that is a Slickline rigged over a river or lake) but I wasn’t too successful except that it cooled me down often ;)
<img src="http://distilleryimage4.ak.instagram.com/cc8b5d88d75611e2ba6522000aaa0486_7.jpg" alt=""></p>

<hr>

<p>In June finally I got <strong>my first printed book</strong> which I wrote with two other authors.
<img src="http://distilleryimage7.ak.instagram.com/1e0b5f56d9cc11e2ada322000a1fbcdb_7.jpg" alt=""></p>

<p>Back then I decided to move the Reading Lists from my blog to a separate project, now called <strong><a href="http://wdrl.info/">WDRL</a></strong>. I started the project with just a few readers, but the last months it grew massively and I’m stoked about the <a href="https://helloanselm.com/2013/the-wdrl-project-evolves/">success of this project</a>.</p>

<hr>

<p>When the X-Games came to Munich I had to watch the Mountainbike Slopstyle event and <a href="https://helloanselm.com/2013/x-games-munich/">took some photos</a>.
<img src="http://farm4.staticflickr.com/3785/9176385439_fe6f8b33fa_b.jpg" alt="">
<img src="http://farm4.staticflickr.com/3773/9176439077_9fd0f64856_b.jpg" alt=""></p>

<hr>

<p>August brought me a new Mountainbike which I completely built up manually from scratch with custom parts and all that cool stuff:
<img src="http://distilleryimage6.ak.instagram.com/8a408b8c01cd11e3b79722000aeb11d7_7.jpg" alt="">
With the new bike, a few tours had to be made:
<img src="http://distilleryimage5.ak.instagram.com/ac96eab4036211e3b87b22000aaa07f6_7.jpg" alt=""></p>

<hr>

<p>The last week in August and the first week of September I spent in the Provence, France for vacation. It was a really relaxing time enjoying the beauty of the nature.
<img src="http://distilleryimage10.ak.instagram.com/4fe716ea100f11e3962a22000a1f930e_7.jpg" alt="Wine field at sunset">
<img src="http://distilleryimage3.ak.instagram.com/5c880a3a10b911e38ed122000a9f1311_7.jpg" alt="swimming pool">
<img src="http://distilleryimage6.ak.instagram.com/0180425c130b11e3a77722000a1fbc49_7.jpg" alt="fresh tomatos">
The last day of the trip was my birthday and so we went home driving through the Alps enjoying the beauty of mountains:
<img src="https://helloanselm.com/img/blog/2013-in-review/glacier.JPG" alt="Glacier in Central Alps, Switzerland"></p>

<hr>

<p>Back home for one day, I packed my stuff to get back to Switzerland only one day later. I had the pleasure to speak at the Swiss Publishing Days in Winterthur near Zurich.
<img src="http://distilleryimage1.ak.instagram.com/36aeeeb81a6511e3964f22000ae801df_7.jpg" alt=""></p>

<hr>

<p>Only a few days later, I was on my way to Bologna (by train) to head to From The Front conference which is super lovely each time.
<img src="http://distilleryimage8.ak.instagram.com/10dde878204211e3a91222000aeb1b9a_7.jpg" alt="Italian Alps shot from train">
<img src="http://distilleryimage10.ak.instagram.com/3f69a99620a311e3a54022000ae911f0_7.jpg" alt="Pre Conference Dinner at Pizzeria">
<img src="http://farm4.staticflickr.com/3788/10105341415_707a4a9ac6_b.jpg" alt="Bologna seen from the top"></p>

<p>This time I added four more days to the Italy trip so I could explore a bit of Italy. I first went to Manarola, a very beautiful place in Cinque Terre. I enjoyed the last bits of summer by sitting at the coast, visiting the area and trying out Sea-Kayaking.
<img src="http://farm4.staticflickr.com/3696/10105385166_f4f680f826_b.jpg" alt="">
<img src="http://farm6.staticflickr.com/5488/10105339945_7072d81b19_b.jpg" alt="">
Then, for one day, I went to Florence, which is also a very nice city I enjoyed much during this short stay.
<img src="http://farm8.staticflickr.com/7334/10105384476_b9309b5d19_b.jpg" alt=""></p>

<p>2013 has really been an eye-opener to me. I changed lot of my habits to work, to life and to think. I have written down some parts of these changes, and while they may not work for you, here is the list of articles:</p>

<ul>
<li><a href="https://helloanselm.com/2013/working-on-the-road/">Working on the Road</a></li>
<li><a href="https://medium.com/lessons-learned/aca10dead168">How Sharing is Part of my Job</a></li>
<li><a href="https://the-pastry-box-project.net/anselm-hannemann/2013-october-3">The Value and Importance of Content</a></li>
<li>Live with less things, donate what you don’t need. I cleared my book shelf and spend them to people who needed them.</li>
<li>Sport and Outdoor activities are really important to me.</li>
<li>Take it easy.</li>
</ul>

<hr>

<p>In October I went to Nuremberg for the <strong>border:none</strong> conference which was a small event hosted by Marc Thiele and Joschi Kuphal. It was super cool but also the very first ODL Admin Meetup took place the day after which for me personally was a very important day as we could discuss how Open Device Labs can work, how they should work and how we could help each other with the ODLs.</p>

<p>The day before the conference I went bouldering with <a href="https://twitter.com/faulancr">Dirk</a>:
<img src="https://pbs.twimg.com/media/BXWaT9mIYAEChDo.jpg:large" alt="Me hanging on the top in bouldering room">
<img src="http://farm6.staticflickr.com/5498/10609139156_5bb52a1f27_b.jpg" alt="The crowd of attendees at border:none conference"></p>

<hr>

<p>In Munich, I spoke at the WebTechCon 2013 about “<a href="http://slidedeck.io/anselmh/webtechcon-13--we-are-not-there-yet">We’re not There Yet</a>”.</p>

<p>Days later, I gave a slightly modified but similar talk at the super cool MODxPO EU 2013 in Cologne. It was really a pleasure to speak to all the attendees there.
<a href="http://www.flickr.com/photos/jaygilmore/10724169735/sizes/l/in/faves-smooth-graphics/"><img src="http://farm3.staticflickr.com/2859/10724169735_9efa6fe565_b.jpg" alt="Me on stage at MODXpo Conference"></a></p>

<hr>

<p>When I came back from Cologne, my colleagues and me moved to a new office space in Munich. The new bureau is much bigger than the old one and so much nicer that I enjoy being there all the time since we moved there.</p>

<hr>

<p>On November, 20th Hans-Christian and me finally launched the <strong><a href="https://helloanselm.com/2013/introducing-init/">INIT Project</a></strong> which is a Front-End Framework to help you using a solid and good workflow.</p>

<p>Only days later, my first official polyfill—the <a href="https://helloanselm.com/2013/fix-image-resizing-with-object-fit/">CSS <code>object-fit</code> Polyfill</a>—went live with the massive help by Christian Schäfer.</p>

<hr>

<p>In December I again went to Düsseldorf for the Play &amp; Make Conference which gave me much inspiration and had super awesome talks.</p>

<hr>

<h1 id="2014">2014</h1>

<p>Last but not least, some news: Starting in January I will move to Cologne for around six months. There is a new job waiting for me with some cool people and new challenges and I am happily awaiting to live in another city for half a year. If you’re near Cologne, send me a message.</p>

<h2 id="i-want-to-do-better">I want to do better</h2>

<p>Surely there are things I want to improve in the new year. 2013 was awesome, I managed to improve my work-life balance a lot and cannot complain what I achieved. But without improvement it would be boring so I have the following plan:</p>

<ul>
<li>Travel to new places (maybe outside Europe)</li>
<li>Do different conferences than the usual ones I attended several times now</li>
<li>Improve time management for my work</li>
<li>Improve JavaScript skills</li>
<li>Speak at conferences again</li>
<li>Work on my project ideas finally</li>
<li>Do more sport</li>
</ul>

<p>Wish you all the best and a good start into 2014!<br>
Anselm</p>
 ]]></content>
        </entry>
        
        <entry>
            <title>Fix Image Resizing with object-fit</title>
            <link href="https://helloanselm.com/2013/fix-image-resizing-with-object-fit/"/>
            <updated>2013-11-25T00:00:00+01:00</updated>
            <id>https://helloanselm.com.com/2013/fix-image-resizing-with-object-fit</id>
            <content type="html"><![CDATA[ <p>As a webdeveloper you probably know how image/media behavior sucks regarding responsive webdesign. Some quick CSS fixes solve your issues usually:</p>
<div class="highlight"><pre><code class="language-" data-lang="">img {
    max-width: 100%;
    height: auto;
}
</code></pre></div>
<p>But there is more than that. You may want to set an foreground image to fill its wrapping element, containing its intrinsic aspect-ratio and also want it to be repositioned always to center. Or, if you ever wanted to resize an iframe responsively in its initial aspect-ratio you might got into real trouble. Of course there are <a href="http://embedresponsively.com/">fixes for that</a> kind of problem, too, but they all in all one can say:</p>

<blockquote>
<p>Media resizing behavior is outta control!</p>
</blockquote>

<h2 id="let-39-s-fix-that">Let&#39;s fix that</h2>

<p>Yes, we&#39;re going to fix this now. There&#39;s a webstandard for it, it&#39;s the CSS property called <a href="http://www.w3.org/TR/css3-images/#the-object-fit"><code>object-fit</code></a>. With that you&#39;ll set an media-element&#39;s size like you&#39;ve been able to set for background images via <code>background-size</code> for a long time now. <code>object-fit</code> can have the following values:</p>

<p><img src="http://www.w3.org/TR/css3-images/img_scale.png" alt=""></p>
<div class="highlight"><pre><code class="language-" data-lang="">img {
    /* Fills image into the parent element so it's fully covered. Contains aspect-ratio. */
    object-fit: cover;

    /* Fills image into the parent element so the img is fully shown. Can create letterboxes. */
    object-fit: contain;

    /* Fills image into the parent element so it's fully covered. Shrinks image, not respecting aspect-ratio. */
    object-fit: fill;
}
</code></pre></div>
<p>But browser support is as following:</p>

<p>| Browser | natively? |
|----------|------------|
| Internet Explorer | - |
| Google Chrome | v31+ |
| Firefox | v36+ |
| Safari OS X | 7.1+ |
| Safari iOS | 8+ |
| Opera | v19+ |</p>

<h2 id="fix-the-browser-support">Fix the browser support</h2>

<p>As the browser support is not that good I wanted to have a interim solution. If you wanna depend on jQuery there also is a polyfill. The problem is, this polyfill isn&#39;t that performant as it calculates the image sizing live at runtime. <br>
When I started to write a vanilla JavaScript polyfill I realized the very same problem. While the solution I chose kind of worked, it didn&#39;t please me. Fortunately, when I asked <a href="https://twitter.com/derSchepp">Christian Schaefer</a> for a code review, he came up with a much smarter idea.</p>

<p>Christian rewrote the whole code to work with CSS classes that are applied via JavaScript depending on the current &#39;situation&#39; / &#39;state&#39; of the image in a container. Additionally we wrap an <a href="https://hacks.mozilla.org/2013/05/speed-up-app-development-with-x-tag-and-web-components/">x-tag</a> around the image element to be able to apply a CSS-only style solution. This way there&#39;s no need to constantly calculate sizes of the image to drastically improve the performance of the polyfill.</p>

<p>Well, enough said&mdash;check out the <a href="https://github.com/anselmh/object-fit/"><code>object-fit</code> Polyfill</a> on GitHub.
It&#39;s also available via bower and <a href="https://www.npmjs.com/package/object-fit">npm</a>. Simply enter the following into your command line:</p>
<div class="highlight"><pre><code class="language-" data-lang="">npm install object-fit
</code></pre></div>
<p>or</p>
<div class="highlight"><pre><code class="language-" data-lang="">bower install object-fit
</code></pre></div>
<p>And this will get you the polyfill as a component. By the way, there is no need for Modernizr. We have a neat and very small feature-test baked right into the polyfill.</p>

<p>Thanks to Christian for his great support and contributions!</p>

<p>-Anselm</p>
 ]]></content>
        </entry>
        
        <entry>
            <title>Introducing INIT</title>
            <link href="https://helloanselm.com/2013/introducing-init/"/>
            <updated>2013-11-20T00:00:00+01:00</updated>
            <id>https://helloanselm.com.com/2013/introducing-init</id>
            <content type="html"><![CDATA[ <p>Today I want to share an announcement with you: Finally, after months of work, <strong><a href="http://use-init.com/">INIT 1.0</a> has been released today</strong>.<br>
Founder of the project <a href="http://drublic.de/">Hans-Christian Reinl</a> has written an announcement post at <a href="http://thenittygritty.co/reducing-boilerplate-code-front-end-init">The Nitty Gritty</a> and I am happy to be co-author of the project.</p>

<p><a href="http://use-init.com/"><img src="https://helloanselm.com/img/blog/init.png" alt="Logo of the INIT framework"></a></p>

<h2 id="what-is-init">What is INIT?</h2>

<p>INIT is based upon HTML5 Boilerplate and adds more structure for SCSS files, JavaScripts, includes build tasks and a whole lot more.</p>

<h2 id="learn-more">Learn more</h2>

<p>You can read more about the project in the <a href="https://github.com/drublic/init/blob/master/docs/TOC.md">official docs</a>.<br> If you have questions, ask me via E-Mail or Twitter. Happy to hear your feedback!</p>
 ]]></content>
        </entry>
        
        <entry>
            <title>How the WDRL Project Evolves</title>
            <link href="https://helloanselm.com/2013/the-wdrl-project-evolves/"/>
            <updated>2013-11-11T00:00:00+01:00</updated>
            <id>https://helloanselm.com.com/2013/the-wdrl-project-evolves</id>
            <content type="html"><![CDATA[ <p>At the End of June, 2013, I started a new project called <a href="http://wdrl.info/">Web Development Reading List (WDRL)</a>. It was the <a href="https://helloanselm.com/2013/introducing-wdrl/">logical evolvement</a> of my weekly blog posts containing interesting links of our industry. When I started the newsletter, after just two weeks it already got 100 subscribers, not counting the people reading the online archive.</p>

<h2 id="it-grew-and-outgrew">It grew and outgrew…</h2>

<p>Now, four months later, I have over 500 subscribers who receive and enjoy my weekly link lists.
This is amazing but I wasn&#39;t satisfied with the current workflow and solutions. Until this week, users had only the option to get an email or read online but there had been no RSS feed.
Also, I wanted to give people the ability to propose links to WDRL. As I used plain static hand-written HTML before, all this wasn&#39;t possible in an easy way. I also needed to write the draft in TinyLetter and then copy/paste everything over to my online archive manually. The project was growing constantly and I needed to give it a proper environment again…</p>

<h2 id="what-changed">What Changed</h2>

<p>This weekend I drastically changed the workflow. I now use Jekyll to build the still static HTML site which now has templates, which now has an <a href="http://wdrl.info/feed.xml">RSS feed</a>, and which now has a <a href="http://wdrl.info/submit/">submission form</a>. The latter is powered by free Wufoo so after 100 entries per month it will be blocked. This is okay for me as 100 external links are quite enough to handle for me.</p>

<p>And finally, the project now lives on its own place: <a href="http://wdrl.info/">wdrl.info</a>.</p>

<h2 id="support-and-a-big-thank-you">Support and a big Thank You</h2>

<p>The project is and will be free forever although I am thinking of how to finance all the time I am spending on the project (roughly 8-10hrs per issue). As I don&#39;t like ads too much and am fan of keeping everything open, as a first step I enabled GitTip. That means <a href="https://www.gittip.com/Anselm%20Hannemann/">you can donate for WDRL</a> if you want to.</p>

<p>But the best thing is: This project started as a small personal list and grew so much in just a few months that I just want to thank you for all your support and that you enjoy reading the list. You are awesome! &hearts;</p>

<p>-Anselm</p>
 ]]></content>
        </entry>
        
        <entry>
            <title>Do you really test your websites?</title>
            <link href="https://helloanselm.com/2013/do-you-really-test-your-websites/"/>
            <updated>2013-10-16T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2013/do-you-really-test-your-websites</id>
            <content type="html"><![CDATA[ <p>Last week I asked my Twitter followers to answer a short survey about their testing behavior regarding web projects. I&#39;ll now show you the results and do some conclusions from them.</p>

<h2 id="do-you-test-your-responsive-design-in-all-major-desktop-browsers">Do you test your Responsive Design in all major Desktop browsers?</h2>

<p><img src="https://helloanselm.com/img/blog/survey-testing-desktop.png" alt="Chart: Only 72% of users test their sites on all desktop browsers"></p>

<ul>
<li>72% say they test their sites on all major desktop browsers</li>
<li>28% don&#39;t do it</li>
</ul>

<p><strong>Conclusion:</strong> The reason I asked this question was that I had the feeling more than only a few people don&#39;t test their responsive webdesigns on all major desktop browsers. <strong>With 28% of users confirming that I strongly think there is the need to improve the testing workflow</strong>. Also, I can imagine that users don&#39;t sell the importance of testing the design to the client which is even worse.</p>

<h2 id="do-you-test-your-responsive-design-on-real-mobile-devices">Do you test your Responsive Design on real mobile devices?</h2>

<p>This question is the base for my survey and what I wanted to see as an outcome of the survey is how people define &#39;I tested my code on mobile devices&#39;. This being said I expected a even less people testing on real devices.</p>

<p><img src="https://helloanselm.com/img/blog/survey-testing-mobiledevices.png" alt="Chart: 91% test on real devices"></p>

<p><strong>Conclusion:</strong> 91% doing real device testing is cool but I believe this number is due to the fact my followers are aware of the need to test on mobile. I don&#39;t think this number is very representative but it is to hope the real number is not too far away.</p>

<h2 id="the-tricky-one-on-which-real-devices-do-you-test-on">The tricky one: On which real devices do you test on?</h2>

<p>On purpose I set this response as textarea so everyone can only enter on which devices he tests and to make sure he can also add less known devices. For me it&#39;s harder to do an conclusion but I took the time and here&#39;s my conclusion:</p>

<p><strong>Conclusion:</strong> Majority of survey <strong>responders test on three or four devices</strong> which is already a great thing. No wonder, <strong>iPhone and iPad are on top of the list</strong>, followed by Androids (mostly Nexus or Samsung Galaxy) while Blackberrys or Windows Phones only have 5-10% users. Abstracted by the models most provided I can say only very <strong>few test on older devices</strong> (not speaking of iPhone4 being an older one) which definitely means there&#39;s place for improvement.</p>

<h2 id="do-you-have-the-devices-all-at-work-would-you-want-to-test-on-more-but-simply-don-39-t-have-them">Do you have the devices all at work? Would you want to test on more but simply don&#39;t have them?</h2>

<p><img src="https://helloanselm.com/img/blog/survey-testing-devicesatwork.png" alt="Chart: most users would want to test on more devices"></p>

<p>This question exactly approved what I already thought. Most people only test on devices they have at home/work. While this is totally understandable it also means that for example the idea of <strong><a href="http://opendevicelab.com/">Open Device Labs</a></strong> and sharing test devices is not very wide spread. Please help spread the word and tell your co-workers. Open Device Labs are a great way to test on devices you don&#39;t have at home.</p>

<p><strong>Conclusion: Open Device Labs would solve what users said in the survey: &quot;Do you want to test on more devices?&quot; (82% said yes).</strong></p>

<p>Thanks for listening. <a href="https://docs.google.com/forms/d/128zseBJt2wbHpZhWxLK0iwouM3_teAoIEw-I5xJ2NdU/viewanalytics">Full results here</a>.</p>
 ]]></content>
        </entry>
        
        <entry>
            <title>Prefetching CSS Resources</title>
            <link href="https://helloanselm.com/2013/prefetch-css-resources/"/>
            <updated>2013-10-13T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2013/prefetch-css-resources</id>
            <content type="html"><![CDATA[ <p>If you use images in CSS backgrounds or in <code>::before</code> and <code>::after</code> pesudo-elements the browser is not able to prefetch these resources with its prefetch algorithm. This is because this algorithm only searches for image resources in the HTML source.</p>

<p>To read the sources given in CSS the user agent would have to parse the CSS first which is a big performance bottleneck. This is the reason why browsers don&#39;t do it. Now as we know this, we might want to solve that.</p>

<p>It is relatively easy: As CSS is not parsed yet, a browser takes all sources that are written in the HTML source regardless if you prevent the image from being shown to the user by applying <code>display: none;</code> to the html class. In short, write the following in your HTML source:</p>
<div class="highlight"><pre><code class="language-" data-lang="">&lt;div class="preload"&gt;
    &lt;img src="img/css-background-image.jpg" alt=""&gt;
&lt;/div&gt;
</code></pre></div>
<p>And in your CSS you write:</p>
<div class="highlight"><pre><code class="language-" data-lang="">.preload {
    display: none !important;
}
</code></pre></div>
<p>Now the prefetching algorithm of a modern browser is able to fetch the image source and as soon as the CSS is parsed the image is yet just available and can be displayed immediately. Otherwise during fetching the external source while executing the CSS this would shortly block the page and impact the performance of your site.</p>

<p>A few notices on that technique you should be aware of:</p>

<ul>
<li>If no CSS is applied to the page for whatever reason the image is shown to the user (which might not be intended).</li>
<li>You don&#39;t need to set an <code>alt=&quot;&quot;</code> text on the <code>img</code> elements as this is a non-descriptive layout image which probably isn&#39;t inteded to be read out by screenreaders. Be aware we <a href="http://webaim.org/techniques/images/alt_text#decorative">need to set it as empty attribute</a> to prevent some screenreaders from reading the source of the graphic. I know screenreader should not read <code>display: none;</code> but in fact some do and also if no CSS is applied, the empty alt-attribute still works so I found this the better technique.</li>
<li>This technique also works for image resources that are used in JavaScripts.</li>
</ul>

<p>That&#39;s it, I hope it helps. Thanks for reading!</p>

<hr>

<p><em>I received some feedback by <a href="http://rodneyrehm.de/en/">Rodney Rehm</a> and want to add some things now:</em></p>

<h2 id="google-chrome-39-s-subresources">Google Chrome&#39;s subresources</h2>

<p>Not a webstandard yet, Google Chrome tackles the prefetching problem <a href="http://www.chromium.org/spdy/link-headers-and-server-hint/link-rel-subresource">within a link element</a> in the head section of your HTML document:</p>
<div class="highlight"><pre><code class="language-" data-lang="">&lt;link rel="subresource" href="img/css-background-image.jpg"&gt;
</code></pre></div>
<p>Browser support (as of now): Google Chrome only.</p>

<h2 id="removing-the-preload-element-from-dom">Removing the preload element from DOM</h2>

<p>You can of course, and if you already use JavaScript in your page easily clean the DOM up after the subresources have been loaded. This can be done by a small snippet like this with jQuery:</p>
<div class="highlight"><pre><code class="language-" data-lang="">$(document).ready(function() {
    $('.preload').remove();
});
</code></pre></div>
<p>If you&#39;re not using jQuery, consider using a <a href="https://github.com/addyosmani/jquery.parts/blob/master/jquery.documentReady.js">DOM Ready snippet</a> and do this manually:</p>
<div class="highlight"><pre><code class="language-" data-lang="">&lt;script src="js/jquery.documentReady.js"&gt;&lt;/script&gt;
&lt;script&gt;
    $(function(){
        var preloadNode = document.querySelector('.preload');
        if (preloadNode.parentNode) {
            preloadNode.parentNode.removeChild(preloadNode);
        }
    });
&lt;/script&gt;
</code></pre></div>
<hr>

<h2 id="update-1">Update 1:</h2>

<p>Chrome and Mozilla Firefox support <a href="https://developer.mozilla.org/en/docs/Link_prefetching_FAQ"><code>&lt;link rel=&quot;prefetch&quot;&gt;</code></a> to tackle that problem. And recently, <a href="http://msdn.microsoft.com/en-us/library/ie/dn265039(v=vs.85).aspx">IE 11 joined the party</a> providing support for prefetching, too.</p>

<hr>

<p><em>Credit notice: I am not sure where I found this technique first but <a href="http://csswizardry.com/">Harry</a> at least uses it so I guess I owe him the credit although I added the alt-attribute for better screenreader compatibility even if the CSS is not loaded.</em></p>
 ]]></content>
        </entry>
        
        <entry>
            <title>Working on the Road</title>
            <link href="https://helloanselm.com/2013/working-on-the-road/"/>
            <updated>2013-10-06T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2013/working-on-the-road</id>
            <content type="html"><![CDATA[ <p>This year I changed my way of doing vacation. I changed my way of life. Joy is the most desireable feeling of life, and when you get it, you are able to do great things. It does not matter if you are working or not, with joy you will do things better.</p>

<p>I almost stopped doing the typical kind of vacation, laying on the beach relaxing. I tend to get bored very quick relaxing. This year I made a lot of small &#39;vacations&#39; &mdash; I just visited other countries and cities for a conference and appended 2-3 more days to explore the site. This is the perfect mix out of work and exploring when I don&#39;t do any outdoor sports (which is the other kind of vacation I do).</p>

<p>But as I am a freelancer I also need to do some tasks when I&#39;m aborad. It would work doing nothing for a few times but being at around 15 conferences a year means you need to do some work during that days, too. Working in a hotel is usually pretty boring so I decided to work in a coffee shops or even on a tower. Would you believe I am very productive on such days? I am and I will explain why&hellip;</p>

<p><img src="https://helloanselm.com/img/blog/20130920-Italy--web-20.jpg" alt="Photo from Manarola, Italy, showing a lovely village and the sea coast"></p>

<p>To be honest it is exhausting to travel a lot. You need to plan things, travel, will get irregular sleep and all that stuff. And you also need to care about where to stay, how to finance it, how to get internet and where to charge your devices. Yes, this can be a big problem.</p>

<h3 id="sleep">Sleep</h3>

<p>I usually pick a good hotel for a one or two days and hostels or an apartment the other days. This means even if one of the locations is badly chosen you have no worry as you know it will be better in one or two days. While this also saves costs it has another advantage: Staying in cheaper hostels you easily get in contact with other people &mdash; and I met great people there.</p>

<h3 id="mobile-data-plans">Mobile Data Plans</h3>

<p>In some countries it is not very easy to get a data SIM card for your phone but I never failed so far. Italy and Switzerland need your Passport or ID as Germany want to have to give you a card while in Poland you just pay 10 bucks to get 1GB of data. Plans are very different but it is always cheaper than your foreign contract. With a data plan in your pocket you are now set to work wherever you are. This is fun and last week I even wrote this blog post on a tower in Bologna. Pretty cool having a view over the whole city while working and writing, isn&#39;t it?</p>

<h3 id="power">Power</h3>

<p>The main problem I always have is battery power. My MacBook Air lasts usually for 3.5hrs now, including one recharge of my iPhone which has a pretty ridiculous last of battery when tethering. This is not very long, so take care to find a coffee shop or restaurant where you can recharge. Otherwise, you&#39;re lucky if you have chosen your hostel near the city center so you can simply go home and recharge there. In Italy I clearly prefer sitting in the sun enjoying an Espresso while charging my computer.</p>

<p><img src="https://helloanselm.com/img/blog/20130920-Italy--web-1.jpg" alt="A table with a cup of Espresso"></p>

<hr>

<h3 id="excerpt-force-yourself-to-just-do-it">Excerpt: Force yourself to just do it</h3>

<ul>
<li><strong>Buy a conference ticket in another country</strong>
This can be a good reason to travel to a new country and while you will learn something new at the conference while meeting new but maybe also known people what give you sort of security you can extend this journey by a few days traveling to other cities around.</li>
<li><strong>Just book it</strong>
I personally am not a person that decides very quickly. Honestly, I am the person who shifts decisions until it may be too late. But if you just force yourself to book immediately when you have the idea, just do it. It&#39;s easy – no one wants to spend money for nothing and now you will have to do that trip.</li>
<li><strong>Take some friends with you</strong>
Sometimes it is better to take some friends with you. This can be good friends but I recommend to do those travels with people that work in your industry but you don&#39;t know too much. People you met at conferences or even only know from twitter can (but surely aren&#39;t for sure)  be a good choice. Knowing someone is important and makes you feel more comfortable while traveling in an all new country.</li>
</ul>

<hr>

<p>I never experienced major trouble which I couldn&#39;t solve easily by myself. Of course bad things happen &mdash; on my last trip my charger broke and I needed to search half a day for an Apple Store because I had to finish some work on that day &mdash; what did I do? Bought it, walked up to a nice place over Florence and worked with this view in front of me:</p>

<p><img src="https://helloanselm.com/img/blog/20130920-Italy--web-28.jpg" alt="View over the city of Florence"></p>

<p>This look pretty fantastic, doesn&#39;t it? To be honest, my trips aren&#39;t <em>that</em> cool all the time. Sometimes it is just visiting a city for two days and it rains and rains. But to make my message short I give you one advice:</p>

<p>Wether you&#39;re just changing the location of your work in the same city or traveling to foreign countries – it all counts and all makes a difference. By being at foreign places you&#39;ll have new impressions, maybe even a foreign language or unknown culture. This is where our mind comes into place: When you see something new your brain thinks how to connect this to your known world. And that&#39;s where ideas develop.</p>

<p>It might be the wrong thing to travel if you need a project to be finished – it is actually hard to just work after a schedule being abroad. But if you need some inspiration or new ideas it might be the best idea to just leave your usual place to work&hellip;</p>

<p><img src="https://helloanselm.com/img/blog/20130920-Italy--web-16.jpg" alt="Sunset over the ocean"></p>
 ]]></content>
        </entry>
        
        <entry>
            <title>Handle Deprecated and Unmaintained Repositories</title>
            <link href="https://helloanselm.com/2013/handle-deprecated-unmaintained-repositories/"/>
            <updated>2013-08-08T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2013/handle-deprecated-unmaintained-repositories</id>
            <content type="html"><![CDATA[ <p>It&#39;s very likely you set up a public and maybe Open Source repository on github or services like bitbucket. Those are services where developers find all their needed Open Source stuff: Libraries, Polyfills, Code examples. But a big problem is, one never really knows if a repository is still actively maintained.</p>

<p>This article takes on several steps how to deal with repositories that you aren&#39;t developing actively anymore. I encourage you to invest the 5-minutes declaring your repository as &#39;inactive&#39; so people know this might not be up-to-date anymore.</p>

<h2 id="updating-the-repository-39-s-title">Updating the Repository&#39;s title</h2>

<p>Most people just look at a repository&#39;s name. Therefore, inactive repositories should reflect this in their title byprefixing them with <strong>[DEPRECATED]</strong> or <strong>[INACTIVE]</strong>.</p>

<h2 id="updating-the-metadata">Updating the Metadata</h2>

<p>The first and easiest approach is to update Metadata. Write a notice to your README.md file directly as first Headline:</p>

<blockquote>
<p>[DEPRECATED] Your Repo name</p>
</blockquote>

<p>or write inactive instead:</p>

<blockquote>
<p>[INACTIVE] Your Repo name</p>
</blockquote>

<p>You can then have a follow up paragraph with more details about the state of repository (still usable or not recommended to use anymore).</p>

<h2 id="adding-a-console-message">Adding a console message</h2>

<p>Another approach is to give a decent hint to developers using your code in the Web developer console. But be aware that not every developer uses DevTools and Console so this is likely to be overseen. I think it is a good additional way to inform users about the deprecation by adding a message like this to your JavaScript:</p>
<div class="highlight"><pre><code class="language-" data-lang="">console.warn('Important notice: This library is deprecated and not actively developed anymore.');
</code></pre></div>
<h2 id="39-removing-39-the-code-from-the-repository">&#39;Removing&#39; the code from the repository</h2>

<p>If your repository is deprecated and the code you provide might be even invalid or non-working you might consider removing the code. Don&#39;t do that! Instead, just move the code away from master branch (clean this one) into another branch so people don&#39;t see the code by default but still can access it. You might want to tag the last good working release with git-tags.</p>

<h2 id="update-articles-and-blog-posts">Update Articles and Blog posts</h2>

<p>Don&#39;t forget to update your blog posts and articles. They are likely to be found in Search engines and people might want to know instantly that this is deprecated, especially if you provide a zip or tarball download (remove them).</p>

<h2 id="link-to-alternatives">Link to Alternatives</h2>

<p>If there is another, still maintained library doing the same thing, add a reference to it on your library so people find an alternative solution for their problem.</p>

<hr>

<p><em><strong>You don&#39;t need to do all of those things but if you only do one or two of those points you will help many people using your library or finding it through search engines. Thanks for helping keep the web clean and up-to-date!</strong></em></p>

<p><em>By the way: If you&#39;re near Zurich, Switzerland you should attend the <a href="http://lanyrd.com/2013/web-platform-doc-sprint-zurich/">WebPlatformDocSprint</a>. It&#39;s fun and helps to improve the web.</em></p>
 ]]></content>
        </entry>
        
        <entry>
            <title>Große Buchverschenkaktion</title>
            <link href="https://helloanselm.com/2013/buecher-verschenkaktion/"/>
            <updated>2013-08-05T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2013/buecher-verschenkaktion</id>
            <content type="html"><![CDATA[ <p><em>The following post is written in German as this is the main and probably only target audience.</em></p>

<p>Bereits vor einigen Wochen überkam mich das Gefühl, dass ich zu viele Sachen habe, die ich nicht brauche. Unter anderem viele Fachbücher und DVDs, die der ein oder andere von euch vielleicht haben möchte.</p>

<p><strong>Daher verschenke ich nun folgende Sachen</strong>:</p>

<p>Ihr könnt die Sachen entweder in München bei mir abholen oder ich schicke sie euch zu (dann würde ich nur um Erstattung der Versandkosten bitten).</p>

<p>Wer etwas haben möchte, schreibt mir bitte einfach eine E-Mail an hello [at] anselm-hannemann.com mit den Sachen, die er haben möchte. Ich versuche die Liste hier so aktuell wie möglich zu halten:</p>

<h2 id="dvds">DVDs:</h2>

<ul>
<li><s>3x: <a href="https://www.video2brain.com/de/videotraining/html-und-css">HTML und CSS von video2brain</a></s></li>
<li><s>3x: <a href="https://www.video2brain.com/de/videotraining/moderne-websites-mit-dreamweaver-cs5-5-html5-css3-und-jquery">Moderne Websites mit Dreamweaver CS5.5, HTML5, CSS3 und jQuery</a></s></li>
</ul>

<h2 id="b-cher">Bücher</h2>

<ul>
<li><s>1x: <a href="http://www.dpunkt.de/buecher/3545/git.html">Git, dpunkt</a></s></li>
<li><s>1x: <a href="http://www.dpunkt.de/buecher/3777/epub-f%26uuml%3Br-%28in%29designer.html">ePub für InDesigner, dpunkt</a></s></li>
<li><s>1x: <a href="http://www.packtpub.com/html5-boilerplate-web-development/book">HTML5 Boilerplate Web Development, Packt Publishing</a></s></li>
<li><s>1x: <a href="http://www.oreilly.de/catalog/sqlpg2ger/">SQL kurz &amp; gut, O`Reilly</a></s></li>
<li><s>1x: <a href="http://www.amazon.de/schriftdesign-allan-haley-B%C3%BCcher/s?ie=UTF8&amp;keywords=Schriftdesign%20Allan%20Haley&amp;page=1&amp;rh=n%3A186606%2Ck%3ASchriftdesign%20Allan%20Haley">Schriftdesign, mitp</a></li>
<li><s>1x: <a href="http://www.dpunkt.de/buecher/2537.html">Barrierefreiheit verstehen und umsetzen, dpunkt</a></s></li>
<li><s>1x: <a href="http://html5-buch.de/">HTML5 von Peter Kröner 2. Auflage, OpenSourcePress</a></s></li>
<li><s>1x <a href="http://www.galileodesign.de/1727">Der erfolgreiche Webdesigner, Galileo Design</a></s></li>
<li><s>1x <a href="http://www.youtube.com/watch?v=VKSfevX1vXg">ABC3D von Marion Bataille, Carlsen</a></s></li>
</ul>

<h2 id="papiermuster">Papiermuster</h2>

<ul>
<li><s>1x <a href="http://www.laser-line.de/serviceandsupport/muster/blackbox.php">LASERLINE Blackbox</a></s></li>
<li><s>1x Paket mit div. Römerturm Papiermusterbüchern</s></li>
</ul>

<p>Eine doch ganz ansehnliche Liste an Büchern, kostenlos (bis auf den Versand) an euch. Einfach so. Weil Verschenken Spaß macht und ich mehr Platz haben möchte.</p>
 ]]></content>
        </entry>
        
        <entry>
            <title>The Revival of Newsletters</title>
            <link href="https://helloanselm.com/2013/the-revival-of-newsletters/"/>
            <updated>2013-07-30T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2013/the-revival-of-newsletters</id>
            <content type="html"><![CDATA[ <p>As a dedicated worker you have to stay informed about the latest news and technology in your job. This counts for web developers, designers as well as many other jobs that develop vastly over just a few months or years. It is hard to stay up-to-date while still getting work done – that’s why we need some selection.</p>

<p>Newsletters – a medium which has been struggling for years now since every company sends out weekly or even daily mails that only disturb you during work. It is a medium that is very powerful but can easily and has been used in a bad manner (think of plain product advertising).</p>

<p>If you look on the web you can find thousands of blogs and articles describing lots of new techniques and tools. But simply finding them is a hard thing, and so is ‘filtering’. Of those thousands of articles only a few are really important. Selecting means reading a lot of articles on which you will spend about 1-3hrs every day doing that (at least that is an approx. time of what I do for <a href="http://wdrl.helloanselm.com/">WDRL</a>).
It is clear this is not manageable for most employees or freelancers.</p>

<h2 id="how-to-stay-up-to-date">How to Stay Up-to-date</h2>

<p>Staying up-to-date is easy if you learn from others who already went through the whole process of trying and failing. There are three ways how to access such ‘resources’:</p>

<ol>
<li><strong>The Manual Way</strong>: Searching, Filtering on your own. A lot of work but it might help you finding exotic topics and things other people don’t know. But be careful you don’t ‘burn-out’.</li>
<li><strong>Conferences</strong>: On conferences Experts for specific topics are invited just to share their knowledge with you. They clearly know what they are talking about and you can profit from them in a short time like one or two days.</li>
<li><strong>Summaries</strong>: Some people write subsumptions from the overload of articles and share them. This is done on blogs, magazines, social networks or via the good old email. Such reading list save you the filtering-work.</li>
</ol>

<p>All three ways are good ways to keep yourself on the latest technologies but the last one is clearly the easiest and is available to everyone. I won’t dig deeper into the first two solutions in this post.</p>

<h2 id="but-why-the-hell-email">But why the hell email?</h2>

<p>This is a valid question but it is fairly simple: As example, I maintained a Reading List for over 1.5 years – first published on my blog, now as a Newsletter. By publishing it on a blog I hadn’t solved the key problem: Finding the right resources. One still needed to search for my blog or follow me on Social Media to know of the latest Reading List on my blog.</p>

<p>Email is our tool we couldn’t work without today and to keep it short: It is our main work management tool. So why not including education into it?</p>

<p>Of course you could argue RSS readers do exactly the same: Notifying you of new posts – but with newsletters like my ReadingList you get a (almost) weekly summary with selected resources that matter. You get it via email meaning you can sort this in the proper folder or mark it as you want. Read it later without forgetting about it – it just is one step simpler than most other solutions.
And if not, I for my own list, provide an online archive that can be accessed by everyone. With a massive increase of readers by introducing a Newsletter for WDRL I think providing it via Email has been a success for me. In reverse, this could also mean I hit a nerve and people really like the idea of getting resources via Email.</p>

<p>I am not sure this fully explains why Newsletters are on the uprise again but I heard a lot about overworking, over-sharing (“death to bullshit”) and think summaries via email can ease those problems.</p>

<p>Discuss this topic on Branch:</p>

<script type="text/javascript" src="http://embed-script.branch.com/assets/embed/embed.m.js?body=0" data-branch-embedid="fwwpqMMz8X8" ></script>

<noscript><a href="http://branch.com/b/the-revival-of-newsletters">The Revival of Newsletters</a></noscript>
 ]]></content>
        </entry>
        
        <entry>
            <title>X-Games Munich</title>
            <link href="https://helloanselm.com/2013/x-games-munich/"/>
            <updated>2013-06-30T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2013/x-games-munich</id>
            <content type="html"><![CDATA[ <p>Photos from today at X-Games Munich MTB Slope Style. <a href="http://www.flickr.com/photos/smooth-graphics/sets/72157634415652660/">See the full set on Flickr</a>.</p>

<p><img src="http://farm8.staticflickr.com/7327/9178612360_8bfc0f26b0_b.jpg" alt="Mountainbiker jumping over a kicker at X-Games Munich">
<img src="http://farm4.staticflickr.com/3773/9176439077_9fd0f64856_b.jpg" alt="Mountainbiker doing a backflip at X-Games Munich">
<img src="http://farm3.staticflickr.com/2838/9176458225_bd79bf4fe7_b.jpg" alt="Mountainbiker jumping over a kicker at X-Games Munich">
<img src="http://farm4.staticflickr.com/3672/9176454283_72dd0e0df6_b.jpg" alt="Mountainbiker driving over a ramp at X-Games Munich">
<img src="http://farm4.staticflickr.com/3785/9176385439_fe6f8b33fa_b.jpg" alt="Mountainbiker driving over ramp at X-Games Munich"></p>

<p><a href="http://www.flickr.com/photos/smooth-graphics/sets/72157634415652660/">See the full set on Flickr</a>. All pictures are under Creative Commons 3.0 <a href="http://creativecommons.org/licenses/by-nc-sa/3.0/">CC BY-NC-SA</a> license.</p>
 ]]></content>
        </entry>
        
        <entry>
            <title>Introducing WDRL</title>
            <link href="https://helloanselm.com/2013/introducing-wdrl/"/>
            <updated>2013-06-29T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2013/introducing-wdrl</id>
            <content type="html"><![CDATA[ <p>For nearly two years now I constantly wrote the so called and beloved by many &#39;Reading Lists&#39; on my blog. This is going to have an end by now. What sounds sad for many is exciting for me.</p>

<p>I never was convinced that my blog is the proper place for the Reading Lists. Until now it was just the best I had found. In the past weeks it came into my mind what the Reading Lists are really supposed to achieve:</p>

<h2 id="summarize"><em>Summarize</em></h2>

<p>Reading Lists are for people who weren&#39;t able to follow all the articles and news about web development in the past week or two. Fixing that by providing just another blog post couldn&#39;t be the answer to that. Trying to fix that I realized this being tough as every reader has his own reading behavior.</p>

<p>One thing was important for me: Archives of the Reading Lists. What haven&#39;t been there for the past 50 Reading Lists on my blog should definitely be fixed in the new project. Further, I wanted to target the users that are not on my twitter stream.</p>

<p>The result of my considerations is the new <strong><a href="http://wdrl.helloanselm.com/">&quot;Web Developer&#39;s Reading List&quot;</a></strong> which also has its <a href="https://github.com/anselmh/wdrl">source on github</a>. While it basically is a Newsletter served through the awesome service <a href="http://tinyletter.com/">TinyLetter</a> you can also <a href="http://wdrl.helloanselm.com/archive/">read the issues online in the Archives</a>.</p>

<p>After just five days I already have a lot of subscribers and just sent out the first issue of the WDRL two days ago. The feedback I received over the last week gives me the reassurance that giving the Reading Lists a new home was the right decision. That honestly makes me very happy &mdash; finally I feel this might be the proper channel for this kind of content.</p>

<p>I want to thank you for all your support and feedback, keep it coming and support the Reading List by just recommending it to other people.</p>

<p>Cheers,
Anselm</p>
 ]]></content>
        </entry>
        
        <entry>
            <title>Webdev Reading List 10</title>
            <link href="https://helloanselm.com/2013/reading-list-10/"/>
            <updated>2013-06-07T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2013/reading-list-10</id>
            <content type="html"><![CDATA[ <ul>
<li><p>The <strong><a href="http://css-tricks.com/sass-style-guide/">Sass Style Guide</a></strong> by Chris Coyier is a helpful guide how to structure your Sass workflow</p></li>
<li><p><strong><a href="http://purecss.io/">Pure.css</a></strong> is a CSS library serving reusable small modules you can use in your projects</p></li>
<li><p>We now have <strong><a href="http://nodegh.io/">NodeGH</a></strong>! It&#39;s github for node.js which means you can finally use github specific tools in your commandline</p></li>
<li><p>An <strong><a href="https://github.com/google/ios-webkit-debug-proxy">iOS WebKit Debug Proxy</a></strong> has landed on github giving you the power of Chrome DevTools to iOS Safari</p></li>
<li><p><a href="http://buildwithcraft.com/">Craft 1.0</a> is out &ndash; a simple and beautiful CMS</p></li>
<li><p>Using Grunt? Love ImageOptim? Here is <strong><a href="https://github.com/JamieMason/grunt-imageoptim">GruntImageOptim</a></strong> for OS X</p></li>
<li><p><strong><a href="http://www.html5rocks.com/en/tutorials/speed/script-loading/">Deep dive into the murky waters of script loading</a></strong> by Jake Archibald is a fun while serious read telling you about blocking scriptload in browsers</p></li>
<li><p>A List Apart: <strong><a href="http://alistapart.com/article/the-design-of-code-organizing-javascript">The Design of Code: Organizing JavaScript</a></strong></p></li>
<li><p>Scott Jehl&#39;s <strong><a href="https://github.com/scottjehl/picturefill">picturefill now uses <code>&lt;span&gt;</code> elements</a></strong></p></li>
</ul>
 ]]></content>
        </entry>
        
        <entry>
            <title>OpenDeviceLabs, SmashingMagazine, netawards</title>
            <link href="https://helloanselm.com/2013/open-device-labs-smashingmag/"/>
            <updated>2013-06-03T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2013/open-device-labs-smashingmag</id>
            <content type="html"><![CDATA[ <h2 id="beyondtellerand-conference">Beyondtellerand Conference</h2>

<p>The last week was a special week for me. First, the awesome (and probably best web conference I know of) <a href="http://2013.beyondtellerrand.com/">beyondtellerand 2013</a> took place. I met a lot of new people and had a great time enjoying all the well chosen speakers.</p>

<p><a href="http://www.flickr.com/photos/szene/8900156360/"><img src="http://farm6.staticflickr.com/5465/8900156360_56a782e59f_z.jpg" alt="Josh Brewer – Photoshop lies! And other sobering truths about Product Design by andreasdantz on Flickr"></a></p>

<p>The second day was something special for me – my first SmashingMag article was published this day.</p>

<h2 id="open-device-labs-ndash-why-should-we-care">Open Device Labs &ndash; Why Should We Care?</h2>

<p>On Tuesday, May 28th 2013 <a href="http://www.smashingmagazine.com/2013/05/28/open-device-labs-why-should-we-care/">my first <strong>Smashing Magazine</strong> article</a> came out. It is a general introduction into Device Testing on Real Devices and the possibility to save costs by crowdsourcing devices in shared places around the world – so called Open Device Labs.</p>

<p><a href="http://www.smashingmagazine.com/2013/05/28/open-device-labs-why-should-we-care/"><img src="https://helloanselm.com/img/blog/smashingmag-odl--screenshot-1.png" alt="Screenshot of the Smashing Magazine article about Open Device Labs"></a></p>

<p>If you have thoughts about it, please share them as comments on the article and I&#39;d be happy if you share the article to spread the word about Open Device Labs!</p>

<h2 id="netawards">netawards</h2>

<p>On Friday, May 31th 2013 I flew to London early in the morning to participate the .netmag <strong><a href="http://www.thenetawards.com/">netawards</a> 2013</strong>. I was nominated with the <strong><a href="http://opendevicelab.com/">opendevicelab.com</a> project</strong> as Game Changer Of The Year together with Christian &quot;The Schepp&quot; Schäfer and Jay Meissner. We are still super excited about the nomination itself. We haven&#39;t won the award but appreciate all support and help! I also met many new people from the web scene and had good conversations and a great time!</p>

<p><img src="https://helloanselm.com/img/blog/netawards-1.jpg" alt="Photo of the awesome location of netawards 2013, a big old decorated hall"></p>
 ]]></content>
        </entry>
        
        <entry>
            <title>Reading List #9</title>
            <link href="https://helloanselm.com/2013/reading-list-9/"/>
            <updated>2013-05-22T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2013/reading-list-9</id>
            <content type="html"><![CDATA[ <p>It&#39;s about testing, better code, typography, accessibility and &ndash; of course &ndash; web performance!</p>

<ul>
<li><p><strong><a href="http://www.fivesimplesteps.com/products/colour-accessibility">Geri Coady&#39;s book about Color Accessibility</a></strong> has just been published by five simple steps. It&#39;s as cheap as &pound;2 as an E-Book.</p></li>
<li><p><strong><a href="http://muledesign.com/2013/05/welcome-recent-graduates/">&quot;Welcome, Recent Graduates!&quot;</a></strong></p></li>
<li><p>Summary slide deck about web performance: <strong><a href="https://speakerdeck.com/steveworkman/putting-your-site-on-a-diet">&quot;Putting Your Site on a Diet&quot;</a></strong></p></li>
<li><p>Smashingmag published the <strong><a href="http://www.smashingmagazine.com/2013/05/17/typographic-design-patterns-practices-case-study-2013/">&quot;Typographic Design Patterns And Current Practices (2013)&quot;</a></strong>.</p></li>
<li><p>Rebecca Murphey published her article <strong><a href="http://alistapart.com/article/writing-testable-javascript">&quot;Writing Testable JavaScript&quot;</a></strong> on A List Apart.</p></li>
<li><p><a href="https://plus.google.com/+IlyaGrigorik/posts/Uxgvk35ntL2?e=-RedirectToSandbox">Chrome 29 adds SPDY speed</a> for everyone</p></li>
<li><p><a href="https://github.com/geddski/grunt-release">grunt-release</a> is a package which automates the release process</p></li>
</ul>

<p>Yes, that&#39;s it for the last days.</p>
 ]]></content>
        </entry>
        
        <entry>
            <title>Reading List 8</title>
            <link href="https://helloanselm.com/2013/reading-list-8/"/>
            <updated>2013-05-13T02:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2013/reading-list-8</id>
            <content type="html"><![CDATA[ <p>Last weeks cool stuff in the webd development blogs.</p>

<ul>
<li><p><strong>Mapbox announced that they have a new technique serving <a href="http://mapbox.com/blog/vector-tiles/">vector map tiles</a></strong> which is super-awesome. Unfortunately this seems yet to be a closed beta</p></li>
<li><p>You now can <strong><a href="https://gist.github.com/sergejmueller/5500879">Detecting WebP support with Header Vary Accept</a> on Apache</strong> servers</p></li>
<li><p>Benedikt Kastl wrote a <strong><a href="http://benediktkastl.de/summary_lena.htm">comparison of the current jpeg libraries and Photoshop does best!</a></strong></p></li>
<li><p>Yoav Weiss blogged his quick research results and found out that <strong><a href="http://blog.yoav.ws/2013/05/How-Big-Is-Art-Direction">art-direction on responsive images</a> might be a bigger thing than we all thought!</strong></p></li>
<li><p><a href="http://remysharp.com/2013/04/19/i-know-jquery-now-what/">I know jQuery. Now what?</a> Remy Sharp telling you don&#39;t always need jQuery. I agree!</p></li>
<li><p>Rodney Rehm wrote on Smashingmagazine: <a href="http://coding.smashingmagazine.com/2013/04/26/css3-transitions-thank-god-specification/">Thank God We Have A Specification!</a> and is telling about the problems he experienced with CSS transitions. A super interesting in-depth article about browser implementations of standards.</p></li>
<li><p><a href="https://medium.com/i-m-h-o/78b651e58065">The Importance of finding your Un-Comfort zone</a> requests you to push your limits by traveling into your &#39;uncomfort zone&#39;.</p></li>
</ul>
 ]]></content>
        </entry>
        
        <entry>
            <title>The (missing) Awareness Of Pagesize</title>
            <link href="https://helloanselm.com/2013/the-awareness-of-pagesize/"/>
            <updated>2013-05-06T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2013/the-awareness-of-pagesize</id>
            <content type="html"><![CDATA[ <p>I just read that article which gives an overview on what average websites consist of and compares to responsive websites:
<a href="http://www.guypo.com/mobile/what-are-responsive-websites-made-of/">What are Responsive Websites made of?</a>.</p>

<p>What I saw there made me think what is wrong with the average website:</p>

<p><img src="https://helloanselm.com/img/blog/rwd-page-reqs-by-ftype-res.png" alt="infographic about the balance of HTML, CSS, JS and Images on responsive vs non-responsive websites showing average of 1.4MB, 2/3rd images, too much JavaScript"></p>

<p>First, it is about <strong>the pagesize itself</strong>:
1.4MB is the average. I cannot imagine why so many websites need so much &#39;information&#39; that they are this large. A normal website shouldn&#39;t be larger than ~500kb I&#39;d say, many can be even smaller. Surely there are some pages where this does not apply but even on heavily image driven websites you can achieve a pagesize of 1.4MB (spoken about a website I&#39;ve build recently with many images).</p>

<p>Second, the <strong>image size problem</strong>:
This is a bigger problem because we have to start with optimizing images with tools like <a href="http://imageoptim.com/">ImageOptim</a> or <a href="https://github.com/technopagan/adept-jpg-compressor">Adept</a>. This way we remove the clutter from the image which is not needed for web.
But then, when we look at the image size chart on Guy Podjarny&#39;s site we see that images are more than 2/3rd of the whole site. The problem isn&#39;t the size itself but that images are optimized for high resolution displays or Desktop-sized images that aren&#39;t needed on mobile. This is what I&#39;ve been always telling about why we need <a href="http://responsiveimages.org/">responsive images</a>.
Recently <a href="http://www.stevesouders.com/blog/2013/04/26/i/">performance people jumped up to the train</a> which increased awareness again. Jason Grisby last week wrote on <a href="http://blog.cloudfour.com/sensible-jumps-in-responsive-image-file-sizes/">what to consider on a RWD site</a> when it goes to images.
Yoav Weiss – our RICG browser-implementation-hero – wrote a test repository called <a href="https://github.com/yoavweiss/Sizer-Soze">Sizer-Soze</a> to show the actual impact of using non-resized images on a responsive website.</p>

<p>Third, the <strong>CSS and JavaScript size</strong>. This made me gasp for air when I saw the <em>average(!)</em> file size of CSS and JS used on a normal website. 220kb of JavaScript is the average on a single random website out there. This is incredibly much especially when you consider this is not the maximum but average! I&#39;ve built several websites, some of them heavily driven by JavaScript but none of them reached the 200kb marker.
What does this tell us? I assume people don&#39;t write JavaScript but include jQuery for ease. Then, searching for a specific functionality, they find a plugin that has this feature and include it. They don&#39;t care about the cost and size of this plugin or wether it would have been simple to write the functionality itself. This is where we need to crate awareness to the normal developers: You should only use what you need. And don&#39;t include jQuery just because you need a form validation or animated property. There are many options besides including a big framework.</p>

<p><strong>To improve web performance we not only need to be aware ourselves about the cost of a single image or a jQuery plugin but also need to tell other developers how to easily improve the performance of their website.</strong>
This sometimes can be a tough job but I encourage you to do it anyway. It helps you and all other people around the world.</p>
 ]]></content>
        </entry>
        
        <entry>
            <title>Reading List 7</title>
            <link href="https://helloanselm.com/2013/reading-list-7/"/>
            <updated>2013-04-22T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2013/reading-list-7</id>
            <content type="html"><![CDATA[ <p>A short list of the past seven days in web technology.</p>

<ul>
<li><p><a href="http://csswizardry.com/2013/04/shame-css/">shame.css</a> is an approach to self-identify messed up quick-fix code in its own file so you can get this fixed afterwards when you have the time for it.</p></li>
<li><p>Care about <a href="http://typecast.com/blog/designing-for-a-responsive-web-means-starting-with-type-first">Type first</a> says typecast and points to the importance of typography in responsive webdesign.</p></li>
<li><p>Chris Heilmann wrote about how to <a href="http://christianheilmann.com/2013/04/21/showing-multimedia-fallback-content-when-no-supported-source-is-found/">show multimedia fallback content properly</a> when no supported source is found.</p></li>
<li><p>Steve Souders found out that <a href="http://www.stevesouders.com/blog/2013/04/21/html5-video-bytes-on-ios/">iOS does download video data although it shouldn&#39;t</a></p></li>
<li><p><a href="http://2013.fromthefront.it/">The Frontend Brothers are on a mission from the web again</a> – Conference in Bologna which I&#39;d say was one of the best I attended last year!</p></li>
<li><p><a href="http://blog.jquery.com/2013/04/18/jquery-2-0-released/">jQuery 2.0</a> has been released! Yes, it breaks older browser support. More information behind the link.</p></li>
<li><p><a href="https://github.com/drublic/init/">init</a> by Hans-Christian Reinl now supports require.js and has TravisCI integration</p></li>
<li><p>Last but not least: <strong><a href="http://lists.w3.org/Archives/Public/public-respimg/2013Apr/0001.html">Help us on writing Layout Tests for RICG</a></strong></p></li>
</ul>
 ]]></content>
        </entry>
        
        <entry>
            <title>Reading List 6</title>
            <link href="https://helloanselm.com/2013/reading-list-6/"/>
            <updated>2013-04-13T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2013/reading-list-6</id>
            <content type="html"><![CDATA[ <p><strong>Short list of the last week&#39;s best articles in web technology</strong></p>

<ul>
<li><p>What is this <strong><a href="http://www.broken-links.com/2013/04/10/the-template-element/">&lt;template&gt;-element</a></strong></p></li>
<li><p><strong><a href="http://phuu.net/2013/04/11/keeping-open-source-secrects.html">Keeping Open Source secrets</a></strong>. Tom Ashworth writes how to keep shared secrets or similar private data secret in your open source projects.</p></li>
<li><p><strong><a href="http://stylemanual.org/">Stylemanual</a></strong> is an important resource to look at from time to time especially for writers.</p></li>
<li><p><strong><a href="http://adamschwartz.co/log/">How to style console.log()</a></strong> by Adam Schwartz</p></li>
<li><p><strong><a href="https://github.com/sindresorhus/grunt-concurrent">grunt-concurrent</a></strong> by the awesome Sindre Sorhus speeds up build tasks in grunt.</p></li>
<li><p>An interesting browser concept called <strong><a href="http://dewith.com/2013/helm-a-browser-concept/">Helm</a></strong></p></li>
<li><p>A blog post about the shitty complex with touch and pointer events by Patrick H. Lauke: <a href="https://hacks.mozilla.org/2013/04/detecting-touch-its-the-why-not-the-how/">Detecting touch: it&#39;s the &#39;why&#39;, not the &#39;how&#39;</a></p></li>
<li><p>Brad Frost gave a presentation and it&#39;s worth to view this from time to time:
<iframe src="http://player.vimeo.com/video/63437853?title=0&amp;byline=0&amp;portrait=0&amp;color=e01b6a" width="720" height="405" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe></p></li>
</ul>
 ]]></content>
        </entry>
        
        <entry>
            <title>Reading List 5</title>
            <link href="https://helloanselm.com/2013/reading-list-5/"/>
            <updated>2013-03-26T00:00:00+01:00</updated>
            <id>https://helloanselm.com.com/2013/reading-list-5</id>
            <content type="html"><![CDATA[ <p><strong>Gosh, it has been some weeks already that I&#39;ve published my last reading list. A new issue now.</strong></p>

<ul>
<li><p><strong><a href="http://layervault.tumblr.com/post/42361566927/progressive-reduction">Progressive Reduction</a></strong> is a nice UI technique focussing on reduction.</p></li>
<li><p><strong><a href="https://github.com/necolas/issue-guidelines/blob/master/CONTRIBUTING.md">Before you file an issue, please read this before</a></strong> I am really hoping this will be regarded more often.</p></li>
<li><p><strong><a href="https://github.com/viljamis/responsive-nav.js">responsive-nav.js</a></strong> by Viljami Salminen  its an UX approach of offering a simple and good usable navigation on different devices. <a href="http://viljamis.com/responsive-nav/">Check the demo to get an idea</a>.</p></li>
<li><p>Object Oriented JavaScript – <strong><a href="http://javascriptissexy.com/oop-in-javascript-what-you-need-to-know/">What you need to know</a></strong></p></li>
<li><p>Say what you want about measuring FPS in Chrome but this is more important: <strong><a href="http://ariya.ofilabs.com/2013/03/frame-rate-hud-on-chrome-for-android.html">Measure FPS on Chrome for Android</a></strong>. Why? Because it gives you a lot of insights on how your website renders on mobile browsers which are really different from Desktop ones.</p></li>
<li><p><strong><a href="https://github.com/necolas/suit/">&#39;Suit&#39;</a></strong> – a simple UI framework for modern browsers by Nicolas Gallagher.</p></li>
<li><p>I held a talk about <strong>Responsive Images</strong> in Lille at <a href="http://takeoffconf.com/">TakeOff Conference</a> in January. <strong><a href="http://www.youtube.com/watch?v=pPOeg5WAhgw">Here is the video on YouTube</a></strong> and <a href="http://slides.anselm-hannemann.com/respimg-takeoff/">my slides</a>.</p></li>
</ul>
 ]]></content>
        </entry>
        
        <entry>
            <title>Fuji X-E1</title>
            <link href="https://helloanselm.com/2013/fuji-x-e1/"/>
            <updated>2013-03-26T00:00:00+01:00</updated>
            <id>https://helloanselm.com.com/2013/fuji-x-e1</id>
            <content type="html"><![CDATA[ <p><strong>I bought a new camera and decided to go with the Fuji X-E1. It loosk so damn beautiful and retro and is one of the best small cameras technically right now.</strong></p>

<p><img src="https://helloanselm.com/img/blog/fuji-e1_1.jpg" alt="Photo of the Fuji X-E1 camera in Retro-Look">
<img src="https://helloanselm.com/img/blog/fuji-e1_2.jpg" alt="Photo of the Fuji X-E1 camera in Retro-Look"></p>
 ]]></content>
        </entry>
        
        <entry>
            <title>Use a CDN on GitHub pages</title>
            <link href="https://helloanselm.com/2013/use-a-cdn-on-github-pages/"/>
            <updated>2013-03-25T00:00:00+01:00</updated>
            <id>https://helloanselm.com.com/2013/use-a-cdn-on-github-pages</id>
            <content type="html"><![CDATA[ <p><strong>After switching my content from a <a href="/2013/blogging-with-jekyll/">CMS to Jekyll</a> based github pages I still had to deal with some drawbacks. Now I am using a CDN for static files…</strong></p>

<h2 id="isn-39-t-github-a-cdn">Isn&#39;t github a CDN?</h2>

<p>Yes it is. Github serves your content of github pages via several servers around the world which basically means it is a Content Delivery Network.</p>

<p>Unfortunately as it only serves static files you are not able to modify headers or similar things through a server configuration file. As github is mainly made for serving code repositories that are likely to change often, they set cache expires very low. A CSS or JavaScript is set to 10mins which isn&#39;t ideal performance-wise.</p>

<h2 id="to-the-help-a-real-cdn">To the help: A real CDN</h2>

<p>Some weeks ago, a guy from <a href="http://www.maxcdn.com/">MaxCDN</a> reached out to me if I am interested in using their CDN for my website. After some correspondence we came to an agreement that they will sponsor my website with a free account while I give Kudos in my footer.</p>

<p>I now set up my CDN which was so easy that I couldn&#39;t believe it. First when I considered the change I thought of the drawback to deliver the images to another remote repository somehow. Luckily the smart guys from MaxCDN took care of that by providing &quot;<a href="http://support.netdna.com/pullzone/custom-integration/">pull and push zones</a>&quot;. That means for your existing site you just set your domain to the CDN one after have set up the custom pull zone in dashboard. My calls looked like this before:</p>
<div class="highlight"><pre><code class="language-" data-lang="">&lt;img src="/img/anselmhannemann.jpg"&gt;
</code></pre></div>
<p>Now I just changed the path to:</p>
<div class="highlight"><pre><code class="language-" data-lang="">&lt;img src="/img/anselmhannemann.jpg"&gt;
</code></pre></div>
<p>and have my CDN image. Everything else is done by MaxCDN. How easy is this?</p>

<p>By the way – their entry plans are from ~$40/yr so it&#39;s cheap to get it.</p>

<h2 id="the-results">The results</h2>

<ol>
<li>My load time decreased again as I am now serving from the nearest servers available to the users. It seems they have more at MaxCDN than github offers.</li>
<li>Images cache is now set to 12 months instead of 10 minutes. A super improvement in performance for recurring visitors.</li>
<li>My PageSpeed increased now to 93/100 points. What still holds me back are Webfonts. But with a load time (unload) of 418ms on my home page I might have one of the fastest websites currently available.</li>
</ol>

<h2 id="thank-you">Thank you!</h2>

<p>Thanks a bunch, <a href="http://www.maxcdn.com/">MaxCDN</a> for hosting my assets! It is a pleasure to recommend your service.</p>

<p><a href="http://www.maxcdn.com/"><img src="https://helloanselm.com/img/netdna-color.svg" width="300"></a></p>
 ]]></content>
        </entry>
        
        <entry>
            <title>Why you should use &amp;lt;main&amp;gt;</title>
            <link href="https://helloanselm.com/2013/main-element/"/>
            <updated>2013-03-18T00:00:00+01:00</updated>
            <id>https://helloanselm.com.com/2013/main-element</id>
            <content type="html"><![CDATA[ <p>This element being a rookie to HTML5 is still very unknown. I assume many normal developers never even heard of it yet. I want to quickly write up why every developer should know this element.</p>

<p>Steve Faulkner proposed the <a href="http://www.w3.org/html/wg/drafts/html/master/grouping-content.html#the-main-element"><code>&lt;main&gt;</code> element</a> some months ago to the WHATWG and W3C and it now went into specification of HTML5.</p>

<p>As the name already says, the <code>&lt;main&gt;</code> element is a one time per document element which wraps the main content of the document. Most developers already use a <code>&lt;div id=&quot;main&quot;&gt;</code> or something similar wrapping their main content of the page. But because a div does not have any semantic meaning and for accessibility it would be great to identify the main content of a page, the <code>&lt;main&gt;</code> element will improve your site&#39;s accessibility a lot.</p>

<p>So the usage of the element is pretty simple:
The <code>&lt;main&gt;</code> element is used once per page and should be used wrapping your main content. That means, it will take its place between the body&#39;s <code>&lt;header&gt;</code> and <code>&lt;footer&gt;</code> element. Here is an example:</p>
<div class="highlight"><pre><code class="language-" data-lang=""><span class="nt">&lt;html&gt;</span>
    <span class="nt">&lt;head&gt;</span>
        <span class="c">&lt;!-- head information here --&gt;</span>
    <span class="nt">&lt;/head&gt;</span>

    <span class="nt">&lt;body&gt;</span>

        <span class="nt">&lt;header&gt;</span>
            <span class="c">&lt;!-- Your site's header here --&gt;</span>
        <span class="nt">&lt;/header&gt;</span>

        <span class="nt">&lt;main</span> <span class="na">role=</span><span class="s">"main"</span><span class="nt">&gt;</span>
            <span class="c">&lt;!-- Site's main content here --&gt;</span>
        <span class="nt">&lt;/main&gt;</span>

        <span class="nt">&lt;footer&gt;</span>
            <span class="c">&lt;!-- Your site's footer here --&gt;</span>
        <span class="nt">&lt;/footer&gt;</span>
    <span class="nt">&lt;/body&gt;</span>
<span class="nt">&lt;/html&gt;</span>
</code></pre></div>
<p>As you can see I&#39;ve added the <code>role=&quot;main&quot;</code> ARIA attribute to the main element. That is because the main element is not widely supported by all browsers yet. For accessibility reasons this attribute will &#39;polyfill&#39; the main element&#39;s meaning for screenreaders.</p>

<p>You might wonder if you can use this element while many browsers do not support this at the moment? Don&#39;t worry: If a browser does not support the element, it will be interpreted as div-element but still gets the ARIA role.</p>

<p>One thing you should add as layout fallback is one line of CSS to get the proper block-styling of the element:</p>

<pre><code class="language-css">main {
    display: block;
}
</code></pre>

<p>This is already included in Nicolas Gallagher&#39;s <a href="https://github.com/necolas/normalize.css/">normalize.css</a> and therefore in HTML5Boilerplate as well.</p>

<p><em>Notice: While WHATWG stating in its specification on main element that the element can be used as a sectioning element, this is clearly wrong. People of W3C and Steve Faulkner are on it so hopefully this will be fixed soon. It is a unique per document element indeed.</em></p>
 ]]></content>
        </entry>
        
        <entry>
            <title>Blogging with Jekyll, Markdown and GitHub pages</title>
            <link href="https://helloanselm.com/2013/blogging-with-jekyll/"/>
            <updated>2013-03-11T00:00:00+01:00</updated>
            <id>https://helloanselm.com.com/2013/blogging-with-jekyll</id>
            <content type="html"><![CDATA[ <p><strong>As already announced I now switched my engine behind the whole site. From MODX CMS I am now using static files generated through Jekyll and rendered on GitHub&#39;s pages CDN.</strong></p>

<h2 id="what-has-changed">What has changed?</h2>

<p>Pretty much changed. Beginning with the backend which I dropped completely in favor of Jekyll, followed by rewriting the complete frontend code including a complete design change. It is a fresh, new website with more important information about me.</p>

<h2 id="dropping-the-backend-and-switch-to-jekyll">Dropping the backend and switch to Jekyll</h2>

<p>This was a rather long decision I&#39;ve made over the last few months. Until now, I had MODX as CMS. It powered my blog and the homepage. While a CMS works great for most people it didn&#39;t for me. I just didn&#39;t need the whole backend stuff. Also I couldn&#39;t write my posts on mobile very good due to the heavy manager.</p>

<p>By switching to <a href="https://github.com/mojombo/jekyll">Jekyll</a> I now have simple Markdown files. I write them in <a href="http://www.iawriter.com/mac/">iAWriter</a> on Desktop, Mobile, Tablet synced via Dropbox. So I now can edit from everywhere and by pushing the files to github pages via Jekyll I get ready html-files as output while keeping all original data. This is flexible and I can always switch hosts to my own server or to another CDN.</p>

<h2 id="frontend-code">Frontend-Code</h2>

<p>The frontend code is again based on the still incredible <a href="http://html5boilerplate.com/">HTML5Boilerplate</a> but I am using a customized build of <a href="https://github.com/drublic/init">Hans-Christian Reinl&#39;s init project</a>. This combines Sass language for CSS with several more cool things. I just dropped grunt.js because it does not make too much sense to use grunt.js as build tool while having Jekyll and ruby already for that.</p>

<h2 id="performance">Performance</h2>

<p><a href="/2012/high-performance-blog/">I recently optimized the old website for better performance</a>. I now rebuilt the whole website with performance in mind. For that I do several things:</p>

<h3 id="prefetch-dns-for-all-requested-domains">Prefetch DNS for all requested domains</h3>
<div class="highlight"><pre><code class="language-" data-lang="">&lt;link rel="dns-prefetch" href="//helloanselm.com"&gt;
&lt;link rel="dns-prefetch" href="//fonts.googleapis.com"&gt;
&lt;link rel="dns-prefetch" href="//ajax.googleapis.com"&gt;
</code></pre></div>
<h3 id="load-webfonts-asynchronously">Load Webfonts asynchronously</h3>

<p>This is a personal choice but as I am relying on a CDN for serving the webfonts I preferred the asynchronous loading of the fonts. This is done by the following code snippet.</p>

<pre class="language-javascript"><code>
WebFontConfig = {
    google: { families: [ 'Istok+Web:400,700:latin' , 'Lora:400,700:latin' ] }
};
(function() {
    var wf = document.createElement('script');
    wf.src = ('https:' == document.location.protocol ? 'https' : 'http') + '://ajax.googleapis.com/ajax/libs/webfont/1/webfont.js';
    wf.type = 'text/javascript';
    wf.async = 'true';
    var s = document.getElementsByTagName('script')[0];
    s.parentNode.insertBefore(wf, s);
})();
</code></pre>

<p><a href="https://gist.github.com/anselmh/5133497">View as gist</a></p>

<p>This all results in a super fast load time. As the site is served through a CDN, delays are much less than before when serving everything from just German servers. Even on mobile networks the site loads very fast.</p>

<h2 id="url-redirects">URL Redirects</h2>

<p>This is a bit trickier than usual and as GitHub pages only serve static content you are not able to send 301 redirects or similar. This is with what you have to deal when moving to static pages. You can either just use the same URL structure as you&#39;ve had before or you can redirect the user via JavaScript on your 404.html page.
I&#39;ve chosen to to the latter. My URL structure is now simpler than before. I don&#39;t care too much about Google and therefore it does not matter that my previous links will break here. For the users I rewrite my URL with a small JavaScript pattern in my 404.html so they still get my blog posts.</p>

<h2 id="file-bugs-or-contribute">File bugs or contribute</h2>

<p>As I am hosting and serving the site on GitHub, you can <a href="https://github.com/anselmh/anselmh.github.com">file issues to the repository</a> or send a pull-request. I am happy to discuss specific topics in the bug tracker with you.</p>

<h2 id="comments">Comments</h2>

<p>As before I don&#39;t provide a possibility to comment. Due to change to Jekyll this won&#39;t be possible anymore except by using tools like Branch or discourse. But I prefer using Twitter, app.net, Google Plus or the GitHub issue tracker for that. So please use these tools instead.</p>
 ]]></content>
        </entry>
        
        <entry>
            <title>Reading List 4-13</title>
            <link href="https://helloanselm.com/2013/reading-list-4-13/"/>
            <updated>2013-02-01T00:00:00+01:00</updated>
            <id>https://helloanselm.com.com/2013/reading-list-4-13</id>
            <content type="html"><![CDATA[ <p><strong>Catch up! Second reading list for this week. Again wonderful content came up so I decided to show them to you as usual on Friday even the last list was published only two days ago.</strong></p>

<ul>
<li><p><strong>A draft <a href="http://meiert.com/en/blog/20130130/how-to-order-css-selectors/">how to order your CSS selectors</a></strong>. Many good thoughts in it, so if you care about your CSS read it!</p></li>
<li><p>Mariana Mota wrote a lovely blog post for <strong><a href="http://www.marianamota.com/portfolio/designers-have-you-ever-attended-a-hackday-do-it/">Designers, have you ever attended a hackday? Do it.</a></strong> and mentions good points why everyone should do that!</p></li>
<li><p><strong>Improving Readability</strong> can sometimes be tricky. <a href="http://blogs.adobe.com/webplatform/2013/01/30/balancing-text-for-better-readability/">Adobe Webplatform team found a solution</a>.</p></li>
<li><p>A List Apart writer Jeffrey Zeldman wrote <strong><a href="http://alistapart.com/blog/post/on-alt-text">on alt-text</a></strong> and its usage by web developers</p></li>
<li><p><strong>How do you test CSS?</strong> Of course, write, save, upload, reload, view, debug. No! <strong><a href="http://csste.st/slides/">Here&#39;s how</a></strong></p></li>
<li><p>Did you know you can <strong><a href="http://germanforblack.com/post/41822392266/github-workflow">turn GitHub issues into pull-requests</a></strong> with hub?</p></li>
<li><p>Audio recording of <strong><a href="https://soundcloud.com/mkgn/mkgn03-aral-balkan">Aral Balkan&#39;s The high cost of free</a></strong> talk. I listened easily to the 44mins because it&#39;s easy to follow and all makes sense. Kindly <a href="http://twitter.com/aral">Aral</a> offered me to upload his slides so here you go: <a href="https://speakerdeck.com/aral/the-high-cost-of-free">watch his slides to the audio recording</a>.</p></li>
</ul>

<h3 id="offtopic">Offtopic</h3>

<p>If you love Outdoor and sports movies, <a href="http://anthillfilms.com/">check out this showreel</a>. An awesome film team.</p>

<p><iframe src="http://player.vimeo.com/video/51547420?title=0&amp;byline=0&amp;portrait=0&amp;color=555555" width="720" height="405" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe> <p><a href="http://vimeo.com/51547420">Anthill Films 2012 Demo Reel</a></p></p>
 ]]></content>
        </entry>
        
        <entry>
            <title>Reading List 3-13</title>
            <link href="https://helloanselm.com/2013/reading-list-3-13/"/>
            <updated>2013-01-30T00:00:00+01:00</updated>
            <id>https://helloanselm.com.com/2013/reading-list-3-13</id>
            <content type="html"><![CDATA[ <p><strong>Lots of new interesting articles have been released in the past days that are worth sharing:</strong></p>

<p><img src="http://thenittygritty.co/content/home/004-the-future-of-the-web-a-draft/fossystart@2x.png" alt="infographic comparing a centralized service with a distributed client-web"></p>

<ul>
<li><p><strong>Today The Nitty Gritty published a huge article by <a href="https://twitter.com/bastianallgeier">Bastian Allgeier</a>: A draft for the <a href="http://thenittygritty.co/the-future-of-the-web-a-draft">future of the web</a>.</strong> This is an excellent read going through the problems of our nowadays social media life and centralized personal data. I can only recommend but you damn should read that piece of text!</p></li>
<li><p>Often it turns out people reading articles written on a high-level do not think about how to deal with the content in their actual work. This lead Harry Roberts write this excellent summary about <strong><a href="http://csswizardry.com/2013/01/you-know-your-context-on-critical-thinking-and-thinking-for-yourself/">Know your context and think for yourself</a></strong></p></li>
<li><p>Another excellent blog post about how our industry works when you are hired can be found here: Kyle Neath writes about his story to get work <strong><a href="http://warpspire.com/posts/pixels-dont-care/">and tells how hard it can be</a></strong>. He states it gets better today and this is totally right but still it is very hard to get a job in a company like Google if you don&#39;t have studied. Companies, give up your prejudices and be brave!</p></li>
<li><p><strong><a href="http://coding.smashingmagazine.com/2012/11/05/writing-fast-memory-efficient-javascript/">Write efficient JavaScript</a></strong> by Addy Osmani is great to learn what to avoid when you write JavaScript.</p></li>
<li><p>Free online course <strong><a href="http://www.igvita.com/2013/01/15/faster-websites-crash-course-on-web-performance/">Faster Websites: Crash Course on Web Performance</a></strong> by Ilya Grigorik</p></li>
<li><p>Mr. Hans-Christian Reinl has some really good <strong><a href="https://github.com/drublic/SASS-Mixins">SASS-Mixins</a></strong> in his github account. They include some cool stuff that makes your CSS life easier. Recently shorthand syntax for some were added.</p></li>
<li><p>The <strong>a11y</strong> project published an <strong><a href="http://a11yproject.com/checklist.html">accessibility checklist for web developers</a></strong>. I think that is a good way to improve accessibility on your site. Check it!</p></li>
<li><p>Jay published a <a href="http://klick-ass.com/awesomeness/opendevicelab-com-a-directory-to-a-global-movement/">blogpost about opendevicelab.com</a> :)</p></li>
</ul>
 ]]></content>
        </entry>
        
        <entry>
            <title>Reading List 2-13</title>
            <link href="https://helloanselm.com/2013/reading-list-2-13/"/>
            <updated>2013-01-30T00:00:00+01:00</updated>
            <id>https://helloanselm.com.com/2013/reading-list-2-13</id>
            <content type="html"><![CDATA[ <p><strong>Boom! New link list this week has some very cool stuff for you! Read:</strong></p>

<ul>
<li><p>After several months of work my project with Andre Jay Meissner and Christian Schäfer called <strong><a href="http://opendevicelab.com/">opendevicelab.com</a></strong> just launched! This project helps you to find places where you can test websites, web-apps on many mobile devices.</p></li>
<li><p><strong><a href="http://www.netmagazine.com/features/truth-about-structuring-html5-page">Problematic of the HTML5 semantic elements</a></strong> describes why several HTML5 elements do not work. Everyone is confused if to use section or article element but how to solve that? Read the article to get more information about this topic.</p></li>
<li><p><strong><a href="http://girldevelopit.com/">Girl, develop it!</a></strong> is a site that encourages girls to develop more things. I like the idea and support it because there are too less women in our industry IMO.</p></li>
<li><p>What we have now, what is coming and how the future of webstandards could be… This is what the following article is telling you: <strong><a href="http://www.netmagazine.com/features/2012-2013-web-standards-perspective">2013: web standards in perspective</a></strong></p></li>
<li><p>Mozilla landed <strong><a href="https://hacks.mozilla.org/2013/01/firefox-development-highlights-h-264-mp3-support-on-windows-scoped-stylesheets-more/">scoped styles and @supports in Firefox</a></strong> – yay!</p></li>
<li><p><strong><a href="http://conferencesburnedbypaypal.tumblr.com/">Conferences burned by PayPal</a></strong> is a site that tells you about how PayPal is dealing with conference organizers and why you really should be aware of these problems and consider twice if you want to offer PayPal payment.</p></li>
<li><p><strong><a href="http://net.tutsplus.com/tutorials/tools-and-tips/source-maps-101/">About source maps and where we are</a></strong> – by the way: Google&#39;s CDNed jQuery has it enabled since 1.9.0</p></li>
<li><p>Last night <strong><a href="https://github.com/blog/1379-zen-writing-mode">GitHub announced Zen mode</a></strong>. That mode allows you to go fullscreen when editing, writing files, wiki or issues. Cool thing I will use regularly.</p></li>
<li><p>My dear friend Mathew Marquis has build a cool tool that helps you writing documentation pages for HTML files <strong><a href="https://github.com/filamentgroup/X-rayHTML">X-rayHTML</a></strong></p></li>
</ul>
 ]]></content>
        </entry>
        
        <entry>
            <title>Book: HTML5 Boilerplate Development</title>
            <link href="https://helloanselm.com/2013/book-html5-boilerplate-development/"/>
            <updated>2013-01-15T00:00:00+01:00</updated>
            <id>https://helloanselm.com.com/2013/book-html5-boilerplate-development</id>
            <content type="html"><![CDATA[ <p><strong>From time to time I find enough time to read technical books. When I heard that a book for HTML5 Boilerplate, my favorite HTML framework I&#39;ve been using for years now, is coming I just had to read it.</strong></p>

<p>First, the <a href="http://www.amazon.com/HTML5-Boilerplate-Web-Development-ebook/dp/B009RR0IFE">book</a> starts with the basics of the <strong><a href="http://html5boilerplate.com/">HTML5 Boilerplate</a></strong>. It explains the components of it, like clearfix, normalize.css, modernizr, etc. Most of you won&#39;t need to read that but it adds to why HTML5 Boilerplate has all these components in it.</p>

<p>I am missing another project listed in the directory where you can download builds. If you work with a build tool (or even are used to grunt.js) you should also consider using <a href="https://github.com/drublic/init">@drublic&#39;s init project</a>. This is only for advanced users but still it could have been in the book ;)</p>

<p>After reading all the basics in Chapter 1 you start over in the next chapter creating a project with HTML5 Boilerplate. This also starts using <strong>git</strong>, so if you&#39;re not familiar with git you learn it as well here. Additional explanation is taken on loading jQuery via CDN, third party libraries, icons, protocol relative URLs, and all the little things that are implemented in H5BP but are barely noticed (or understood) by developers.</p>

<p>Chapter 3 tells you about <strong>proper HTML5 markup and how to use the predefined CSS classes</strong> in your own project. <em>This is a very important part of the book as I know that most people using H5BP don&#39;t understand or even know about these predefined helper classes that make your life easier.</em></p>

<p>Then follows a chapter about how to deal with jQuery and plugins as well as how to use Modernizr tests to add elements or properties safely. The book then explains how you can see the results of these tests in your browser using developer tools.</p>

<p>If you ever wondered what this <a href="https://github.com/h5bp/html5-boilerplate/blob/master/.htaccess">.htaccess</a> file does, the next chapter will tell you. All the cool tricks done in the project are explained and let you understand more of servers, clients and performance issues.</p>

<p>Now, you basically know about all the cool things you can do with HTML5Boilerplate but unfortunately one often has to deal with older browsers, too. H5BP has several helpers built in for old IE and you will learn how to use them and what you have to take care of if you build a modern responsive website.
As SASS as a CSS preprocessor language becomes more and more popular, there is a section how you can convert your styles from CSS to SASS.
But we&#39;re not finished yet, there are tons of things that are not build into HTML5Boilerplate by default but can speed up your site, increase SEO level or other things. This book brims over with cool tricks!</p>

<p>Now you might be finished with your cool new project but still have to deploy it. This can be automated with build scripts. <a href="http://nimbupani.com/">Divya Manian</a>, the author of the book, tells you how to deal with a build tool to automate your deployment process and let these tools do all the concatenation, compression stuff you won&#39;t do manually. Now if you&#39;ve read all that, you will be an expert of frontend development. No, basically I can say, if you read it and can develop under these guidelines as well as understand what you do, you are a rock solid developer.</p>

<p>Go further? Yes, there is another chapter telling you more cool stuff you might rarely use but still it shows you what is possible.</p>

<h2 id="so-what-do-i-think">So what do I think?</h2>

<p><strong>You might already read out of context that I think this is a good book. Surely much of the content can be found in the <a href="https://github.com/h5bp/html5-boilerplate/wiki">github wiki or docs</a> but it is not the same to read the book or wiki. While the wiki is good to lookup one specific thing you don&#39;t understand, the book is telling you the whole story from beginning to the end. And even me, using the HTML5Boilerplate since many years, found some interesting things in the book I didn&#39;t know of.</strong></p>

<p>So if you want to buy it, I recommend <a href="http://www.packtpub.com/html5-boilerplate-web-development/book">buying &quot;HTML5Boilerplate Development&quot; from packtpub</a>.</p>
 ]]></content>
        </entry>
        
        <entry>
            <title>Reading List 1-13</title>
            <link href="https://helloanselm.com/2013/reading-list-1-13/"/>
            <updated>2013-01-11T00:00:00+01:00</updated>
            <id>https://helloanselm.com.com/2013/reading-list-1-13</id>
            <content type="html"><![CDATA[ <p><strong>Freshly recovered from one week of holidays I now catch up the latest things happened between Christmas and now. And as usual I am again a bit late with the list.</strong></p>

<ul>
<li><p>Ooh, that is a harsh title. But Yoav Weiss knows what he&#39;s talking about when he says: <strong><a href="http://mobile.smashingmagazine.com/2013/01/09/bandwidth-media-queries-we-dont-need-em/">Bandwidth media queries we don&#39;t need them</a></strong></p></li>
<li><p>Bryan Jones introduced its own <strong>HTML preprocessor in CodeKit 1.4</strong>. This means you now can use variables in HTML using the <a href="http://incident57.com/codekit/kit.php">.kit file format</a>. Holy shit this is what we want!</p></li>
<li><p>PPK published a huge article about <strong><a href="http://www.quirksmode.org/css/images/">implementation of CSS gradients</a> in the User Agents</strong></p></li>
<li><p>jng5 released the first version of her supercool responsive email boilerplate. This is incredibly useful! Check out <strong><a href="http://internations.github.com/antwort/">Antwort</a></strong></p></li>
<li><p>Monotype released its new product called <strong><a href="https://skyfonts.com/">Skyfonts</a></strong>. An app that let&#39;s you rent fonts for a specific time frame. We finally have a good product again for fonts. The good: That makes it cheap to buy a font for client-work.</p></li>
<li><p><strong><a href="http://www.igvita.com/slides/2012/webperf-crash-course.pdf">Web Performance Crash Course</a></strong> - PDF slides about basics of web performance optimization techniques.</p></li>
<li><p>You wondered about how to deal with lightboxes on mobile? This is a hard one but Brad Frost has an answer in his project <strong><a href="http://bradfrostweb.com/blog/post/conditional-lightbox/">Conditional Lightbox</a></strong></p></li>
</ul>

<h2 id="conference-advisory">Conference advisory:</h2>

<ul>
<li><p>UX design conference in Munich, Germany, with Nishant Kothary, Leisa Reichelt, Vitaly Friedman, Bastian Allgeier and more awesome speakers. <strong><a href="http://uxmunich.com/">UXMunich.com</a></strong></p></li>
<li><p>Last chance to grab a ticket for <strong><a href="http://takeoffconf.com/">TakeOff Conference</a></strong> in Lille</p></li>
<li><p>Hey, you should help move the web forward! So attend to the <strong><a href="http://web-platform-doc-sprint-berlin.eventbrite.com/">Web Platform Doc Sprint</a></strong> in Berlin</p></li>
<li><p>Finally I will attend to the <strong><a href="http://events.jquery.org/2013/eu/">jQuery Europe</a></strong> in Vienna. Sounds awesome!</p></li>
<li><p>and last but not least, the only big publishing conference in Europe is happening in Berlin: <strong><a href="http://2013.pubkon.eu/">PUBKON 13</a></strong> - <em>register fast, tickets will sell out fast.</em></p></li>
</ul>
 ]]></content>
        </entry>
        
        <entry>
            <title>Merry Christmas and… a Reading List</title>
            <link href="https://helloanselm.com/2012/merry-christmas-reading-list/"/>
            <updated>2012-12-20T00:00:00+01:00</updated>
            <id>https://helloanselm.com.com/2012/merry-christmas-reading-list</id>
            <content type="html"><![CDATA[ <p><strong>This will be the last Reading List for this year and at that time also a space for some announcements. Unless tomorrow world explodes, 2013 will be an awesome year!</strong></p>

<h2 id="holidays">Holidays</h2>

<p>First, I will be in holidays for the next few days and back on January, 6th.
Don&#39;t expect an answer or anything else via email, twitter oder other communication. I won&#39;t have access to phone or internet during this time.</p>

<h2 id="projects">Projects</h2>

<p>Second, there will be an awesome project launching very soon and be sure you don&#39;t miss anything. To do so, <strong>follow <a href="https://twitter.com/labuporg">@labuporg on twitter</a> or <a href="https://twitter.com/klick_ass">@klick_ass</a> and <a href="https://twitter.com/derSchepp">@derSchepp</a></strong>.</p>

<p>Also I will start working on a project which is for one of the biggest IT software company in Europe. It will be a fully responsive website or call it interactive online magazine for their data center.</p>

<h2 id="conferences">Conferences</h2>

<p>Don&#39;t think I will stop going to conferences. Here is my planned list you also can see on <a href="http://lanyrd.com/profile/anselmhannemann/future/">lanyrd</a>:</p>

<ul>
<li><p>I will speak at <strong><a href="http://takeoffconf.com/">TakeOff Conference</a></strong> in Lille together with <a href="https://twitter.com/drublic">@drublic</a>, <a href="https://twitter.com/rodneyrehm">@rodneyrehm</a>, <a href="https://twitter.com/asciidisco">@asciidisco</a>.</p></li>
<li><p>I will speak at <a href="http://www.fogra.org/fogra-veranstaltungen/schulungen/dps-deu/">FOGRA Digital Publishing Symposium</a> in Munich</p></li>
<li><p>I will host the <strong><a href="http://2013.pubkon.eu/">PUBKON 2013</a></strong> in Berlin on April, 18th-20th. You can save a early bird ticket now and support my conference</p></li>
</ul>

<p>And I will attend to many other conferences. To keep up, see my lanyrd profile.</p>

<h2 id="christmas-reading-list">Christmas Reading List</h2>

<ul>
<li><p>WHATWG <a href="http://www.whatwg.org/specs/web-apps/current-work/temp">works on <strong>sortable tables</strong></a>. A huge step here!</p></li>
<li><p>An <strong><a href="http://www.kaikkonendesign.fi/typography/">interactive Guide to Blog Typography</a></strong> - simply well done.</p></li>
<li><p><strong><a href="http://html5bones.com/">HTML5Bones</a></strong> by Ian Devlin is a super simplified HTML framework without all those libraries you probably don&#39;t need.</p></li>
<li><p><strong><a href="http://www.alistapart.com/articles/vexing-viewports/">Vexing Viewports</a></strong> is an article you should read to better understand how pixels, User Agents and device-screens work (together).</p></li>
<li><p><a href="http://www.w3.org/TR/2012/WD-html-main-element-20121217/">&lt;main&gt;-element is coming!</a></p></li>
<li><p>Steve Souders on <strong><a href="http://www.stevesouders.com/blog/2012/12/14/a-good-blog-post/">What makes a good blog post</a></strong></p></li>
</ul>

<p>Now there is only one thing to do:</p>

<h2 id="merry-christmas-and-a-happy-new-year">Merry Christmas and a happy new year!</h2>
 ]]></content>
        </entry>
        
        <entry>
            <title>Weekly Reading List</title>
            <link href="https://helloanselm.com/2012/weekly-reading-list/"/>
            <updated>2012-12-14T00:00:00+01:00</updated>
            <id>https://helloanselm.com.com/2012/weekly-reading-list</id>
            <content type="html"><![CDATA[ <p><strong>I missed last weeks reading list due to some outage of my site. I apologize and hope to compensate with this list which is even longer. Enjoy!</strong></p>

<h2 id="last-week">Last week:</h2>

<ul>
<li><p><strong><a href="http://thenittygritty.co/">The Nitty Gritty</a></strong>
is a new frontend development resource with high-level articles created by fellows <a href="https://twitter.com/drublic">@drublic</a> and <a href="https://twitter.com/hellokahlil">@hellokahlil</a>.</p></li>
<li><p><strong><a href="http://blog.rodneyrehm.de/archives/19-jQuery-The-Little-Things-2.html">jQuery - The little things - 2</a></strong>
by <a href="http://twitter.com/rodneyrehm">@rodneyrehm</a> tells you about JavaScript security and some useful jQuery helpers</p></li>
<li><p><strong><a href="http://24ways.org/2012/think-first-code-later/">Think First, Code Later</a></strong>
is a great article why you should think first before start writing code.</p></li>
<li><p><strong><a href="https://mkw.st/p/devoxx12-securing-the-client-side/#slide-0">Securing the client side</a></strong>
by Mike West is a slide set about how to secure your frontend with SSL and prevent XSS and more vulnerabilities.</p></li>
</ul>

<h2 id="this-week">This week:</h2>

<ul>
<li><p><strong><a href="http://thesassway.com/intermediate/responsive-web-design-in-sass-using-media-queries-in-sass-32">Using Media Queries in Sass 3.2</a></strong>
Many of you might already know about this but for those who don&#39;t, here is a nice wrap up how to use media-queries with SASS in a new way.</p></li>
<li><p>tympanus
shared yet another great example of good interface concept with its <strong><a href="http://tympanus.net/Tutorials/FullscreenBookBlock/">Fullscreen Book Block</a></strong> - simple as clever technique.</p></li>
<li><p><strong>Chris Coyier</strong>
shared his <strong><a href="http://css-tricks.com/slides-from-some-recent-presentations/">recent presentations on CSS-Tricks</a></strong>. Even if you think you know that content already, view them and repeat!</p></li>
<li><p><a href="http://workingdraft.de/100/"><strong>Workingdraft podcast</strong> from Germany recorded podcast number 100</a>!
For that, they invited Paul Irish!</p></li>
<li><p>Rebecca Murphey
wrote about <strong><a href="http://rmurphey.com/blog/2012/12/10/js-conditionals/">JavaScript conditionals</a></strong> and says: Learn the basics the right way</p></li>
<li><p>Christian Schäfer
alias <strong>&quot;The Schepp&quot; has just landed his <a href="http://hg.csswg.org/test/file/61bd6c6a6d4e/contributors/christianschaefer/submitted/css3-values-and-units/apply-&amp;-readout-viewportunits-on-css2.1-properties-(160-tests).html">test about CSS-Values</a> in W3C repository</strong>. Worth noticing to show how a proper W3C-test is done!</p></li>
<li><p>Learn about
<strong><a href="http://www.fastcompany.com/3002676/magical-tech-behind-paper-ipads-color-mixing-perfection">The Magical Tech Behind Paper For iPad&#39;s Color-Mixing Perfection</a></strong></p></li>
<li><p>It is <strong>christmas time</strong>
and if you see this video by Authenticjobs, <strong><a href="http://www.authenticjobs.com/seven/charitywater/">consider donating some money for water</a></strong></p></li>
</ul>
 ]]></content>
        </entry>
        
        <entry>
            <title>You wonder why 'The Daily' failed?</title>
            <link href="https://helloanselm.com/2012/you-wonder-why-the-daily-failed/"/>
            <updated>2012-12-04T00:00:00+01:00</updated>
            <id>https://helloanselm.com.com/2012/you-wonder-why-the-daily-failed</id>
            <content type="html"><![CDATA[ <p><strong>Yesterday Rupert Murdoch announced the end of &#39;The Daily&#39; for the iPad. Media gone wild but actually the failure is no surprise.</strong></p>

<p>Rupert Murdoch is a clever man who invested a lot of money in his tablet product very early. He was one of the men who did understand that a tablet magazine cannot be a print-derivate and also costs money you won&#39;t get back after just a few months.</p>

<p>Nevertheless he now realized that it is too expensive to keep the production of &#39;The Daily&#39; for iPad. Here are some reasons why the magazine has failed:</p>

<ol>
<li><p><strong>Costs:</strong> Back in July up to 170 employees <a href="http://allthingsd.com/20120731/the-daily-lays-off-a-third-of-its-staff/">worked</a> on &#39;The Daily&#39;. This is a huge amount of people and even after a lay off round in August cutting 50 people off this means the production costs are very high. The initial costs for the publication are estimated at $30million! If you want to read more about the costs, <a href="http://daringfireball.net/2012/12/why_the_daily_failed">Daring Fireball nailed it</a>.
<em>Are you really wondering why this concept wouldn&#39;t work out finally?</em></p></li>
<li><p><strong>iPad-only</strong>: The publication is an iPad only application with no way to read the newspaper on a Android device or as web-magazine.</p></li>
<li><p><strong>Fixed layouts</strong>: The publication is a fixed layout. This is the same problem most common digital publishing solutions have for now. Instead of making a responsive and adaptive layout that automatically adapts to the different screen-sizes you have to publish a version for each single screen-size.
It is easy to say that this is much more effort each day than not caring about single sizes.</p></li>
</ol>

<p><strong>Long story, short conclusion: Start smart (small team), serve everywhere, be responsive!</strong></p>
 ]]></content>
        </entry>
        
        <entry>
            <title>Reading List #26</title>
            <link href="https://helloanselm.com/2012/reading-list-26/"/>
            <updated>2012-11-29T00:00:00+01:00</updated>
            <id>https://helloanselm.com.com/2012/reading-list-26</id>
            <content type="html"><![CDATA[ <p><strong>After another week not maintaining my list (I apologize!) <br>here are a bunch of new and interesting links.</strong></p>

<ul>
<li><p><strong><a href="http://blog.joelambert.co.uk/2012/11/26/offline-first-a-better-html5-user-experience/">Offline First</a></strong> shares some thoughts why you should decouple your webapp from the server and other online dependencies</p></li>
<li><p>Again W3C, WHATWG and developers are in a fight about a new element. After picture it is now about the  <strong><a href="http://blog.adrianroselli.com/2012/11/new-main-element-approved-then-blocked.html">&lt;main&gt;-element</a></strong> a rather sad story for web standards as this element would improve accessibility</p></li>
<li><p>Do you understand how srcset would work? Try the <strong><a href="http://responsiveimagescg.github.com/picture-refimp/demo/">srcset sample parser by RICG</a></strong> to see what image would be chosen by the user agent</p></li>
<li><p>tympanus again published a good article about how to <strong><a href="http://tympanus.net/codrops/2012/11/20/learning-principles-for-improving-your-css/">learn principles to improve your CSS</a></strong></p></li>
<li><p><a href="https://twitter.com/klick_ass">Andre Jay Meissner</a> shared his thoughts on <strong><a href="http://www.youtube.com/watch?v=C9uDIVo0RsQ&amp;list=SP509C20F61AD025B3&amp;feature=g-list">mobile device testing and OpenDeviceLabs</a></strong> in this video interview by t3n</p></li>
<li><p>Second, he shared a really important quote by <a href="https://twitter.com/wilto">Mat Marquis (@wilto)</a> at <a href="http://2012.beyondtellerrand.com/">beyondtellerand</a> <strong><a href="https://twitter.com/klick_ass/status/270481479908331520">&quot;Best viewed in the 1st world&quot;</a></strong></p></li>
<li><p>The famous <strong>OFFSCREEN Mag did a little X-Mas gift-list</strong>. Great for inspiration but even better, if you tweet about it, they might choose you an buy you something of this gift-list. <strong><a href="http://www.offscreenmag.com/xmas/">Read it here</a></strong></p></li>
<li><p>Peter-Paul Koch (PPK) wrote about another forgotten group: <strong><a href="http://www.quirksmode.org/blog/archives/2012/11/conference_dive_11.html">non-native speakers</a></strong> &ndash; whilst many write about black-vs-white or men-women he shares some insights about non-native (mostly English) speakers</p></li>
<li><p>But there might be some hope: Read this article on <strong><a href="http://www.nczonline.net/blog/2012/11/20/the-front-end-summit-new-speaker-program/">how to find unknown but great speakers</a></strong></p></li>
<li><p>The workingdraft team was part of the beyondtellerand:web conference and recorded an <strong><a href="http://workingdraft.de/97/">interview with Bruce Lawson</a></strong> by Opera about webstandards and Opera browser</p></li>
<li><p>Finally I am <strong><a href="http://anselm-hannemann.com/blog/2012/11/28/conference-coverage/">searching for feedback on conference video coverage</a></strong> and if it is good to share it for free. Please share and promote this link to make conferences better</p></li>
</ul>

<p>As usual you can give feedback on the reading list on <a href="https://twitter.com/anselmhannemann">twitter</a>, <a href="https://alpha.app.net/anselm">ADN</a> or <a href="https://plus.google.com/111125333979619018462/posts/cV2itbDkpbM">Google Plus</a></p>
 ]]></content>
        </entry>
        
        <entry>
            <title>Should conference coverage be free for everyone?</title>
            <link href="https://helloanselm.com/2012/conference-coverage-free/"/>
            <updated>2012-11-28T00:00:00+01:00</updated>
            <id>https://helloanselm.com.com/2012/conference-coverage-free</id>
            <content type="html"><![CDATA[ <p><strong>Recently I often had discussion wether conference video coverage should be available for free regardless one attended to the conference or not. Time to ask you!</strong></p>

<p>I would be pleased if you spread the word and share this post. I want to make a real survey here with enough votes to be representative for everyone. Until now I received by far not enough votes yet.</p>

<p><strong>When I reach at least 1000 votes, I will evaluate and share the results in public</strong>. I want to achieve that conference organizers know what their audience think about it. And I want happier attendees on every conference! :)</p>

<iframe src="https://docs.google.com/spreadsheet/embeddedform?formkey=dGZqclBYYUxuS0dQOElULXhvd3RISVE6MQ" width="320" height="380" frameborder="0" marginheight="0" marginwidth="0">Wird geladen...</iframe>

<p>And if you want to <strong>share your opinion</strong>, add some notes or just want to shout at me, <strong><a href="https://twitter.com/anselmhannemann">mention me on Twitter</a>, <a href="https://alpha.app.net/anselm">on ADN</a>, <a href="https://plus.google.com/111125333979619018462/posts/V49kvz17CD7">comment on Google Plus</a></strong> or <a href="http://news.ycombinator.com/item?id=4841615">on news.ycombinator</a>.
I really appreciate your feedback.</p>
 ]]></content>
        </entry>
        
        <entry>
            <title>Reading List #25</title>
            <link href="https://helloanselm.com/2012/reading-list-25/"/>
            <updated>2012-11-16T00:00:00+01:00</updated>
            <id>https://helloanselm.com.com/2012/reading-list-25</id>
            <content type="html"><![CDATA[ <p><strong>The 25th anniversary of the Reading List on my blog will be just another… list! Nothing special, just the facts of the week.</strong></p>

<ul>
<li><p><a href="http://lists.w3.org/Archives/Public/public-respimg/2012Nov/0012.html">The planning minutes of RICG</a> – feedback from TPAC, improving srcset, file bugs, complete website, Drupal8 launch</p></li>
<li><p><a href="http://labs.ft.com/2012/11/using-an-iframe-to-stop-app-cache-storing-masters/">Fixing the ApplicationCache with an iFrame</a> – FT tells how to do that. Crazy stuff!</p></li>
<li><p><a href="https://blog.lizardwrangler.com/2012/11/15/reinventing-the-web/">Reinventing the Web</a></p></li>
<li><p><a href="http://www.wired.com/gadgetlab/2012/11/ff-mat-honan-password-hacker/">Kill the password!</a> because it&#39;s unsafe. Excellent and long detailed article on our digital life secrets.</p></li>
<li><p><a href="http://meiert.com/en/blog/20121112/the-css-problem/">The CSS problem</a>. Well written article about CSS is growing too large while CSS 2 has not nearly been understood by authors. This non-sustainable growth is a big problem for CSS.</p></li>
<li><p><strong>[DE] Der <a href="http://2013.pubkon.eu/tickets/">PUBKON13 Ticketverkauf</a> ist gestartet! Noch gibt es wenige SuperEarlyBird Tickets.</strong></p></li>
</ul>

<p><em><a href="https://plus.google.com/111125333979619018462/posts/3xymiVocoTn">Discuss on Google Plus</a></em></p>
 ]]></content>
        </entry>
        
        <entry>
            <title>Reading List #24</title>
            <link href="https://helloanselm.com/2012/reading-list-24/"/>
            <updated>2012-11-10T00:00:00+01:00</updated>
            <id>https://helloanselm.com.com/2012/reading-list-24</id>
            <content type="html"><![CDATA[ <p><strong>after a short break of one week, the Reading List is back!</strong></p>

<ul>
<li><p><strong>Responsive Images at #TPAC 2012</strong> in Lyon, presented by Marcos Cacares and Yoav Weiss:
<iframe src="http://player.vimeo.com/video/52789903?portrait=0&amp;badge=0&amp;color=ff0179" width="640" height="480" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe></p></li>
<li><p>Roundup video of TestTheWebForward in Paris 2012. Read the <a href="http://blogs.adobe.com/webplatform/2012/11/09/test-the-web-forward-paris/">blog entry by Adobe Team</a>, too.
<iframe src="http://player.vimeo.com/video/52914691?portrait=0&amp;badge=0&amp;color=ff0179" width="640" height="480" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe></p></li>
<li><blockquote class="twitter-tweet" lang="de"><p>This is the real world that browsers &amp; users deal with. <a href="http://t.co/k2Uj6rUg" title="http://mxr.mozilla.org/mozilla-central/source/browser/app/profile/firefox.js#227">mxr.mozilla.org/mozilla-centra…</a> &amp; <a href="http://t.co/nRs99TRv" title="http://my.opera.com/sitepatching/blog/2012/11/06/one-thousand-and-counting">my.opera.com/sitepatching/b…</a> <a href="https://twitter.com/search/%23dontbreaktheweb">#dontbreaktheweb</a></p>&mdash; Divya Manian (@divya) <a href="https://twitter.com/divya/status/266296995528990720" data-datetime="2012-11-07T21:52:05+00:00">November 7, 2012</a></blockquote>

<script src="//platform.twitter.com/widgets.js" charset="utf-8"></script></li>
<li><p><em>Yahoo! &amp; Sprint Displayed Passwords at Scale. What Happened?</em> <a href="http://storify.com/lukew/yahoo-display-password-test">Interesting story of #UX design</a></p></li>
<li><p>The <strong><a href="http://www.quirksmode.org/blog/archives/2012/11/principles_of_m.html">principles of measuring connection speed</a></strong> by ppk</p></li>
<li><p>Using HTML5Boilerplate? Then fucking get the <strong><a href="http://www.amazon.com/HTML5-Boilerplate-Web-Development-ebook/dp/B009RR0IFE/">h5bp book by Divya</a></strong></p></li>
<li><p>Using git? Then <strong><a href="http://johnkary.net/git-add-p-the-most-powerful-git-feature-youre-not-using-yet/">start using git add -p!</a></strong></p></li>
<li><p>Have many devices in your office? Time to <strong><a href="http://viljamis.com/blog/2012/building-a-device-stand/">build a device-stand</a></strong> for them.</p></li>
<li><p><strong>IE10</strong> is out and you should know about the <strong><a href="http://www.stuffandnonsense.co.uk/blog/about/getting-prepared-for-windows-8-and-internet-explorer-10">new @viewport rules</a></strong>.</p></li>
</ul>

<p>Phew, that again are some really cool links this week. Enjoy it!</p>
 ]]></content>
        </entry>
        
        <entry>
            <title>I am a high performance blog</title>
            <link href="https://helloanselm.com/2012/high-performance-blog/"/>
            <updated>2012-11-02T00:00:00+01:00</updated>
            <id>https://helloanselm.com.com/2012/high-performance-blog</id>
            <content type="html"><![CDATA[ <p><strong>With my new layout I have a high performance web blog now. With just a hand full of requests and nearly now assets it is super fast.</strong></p>

<p>Roundup:</p>

<ul>
<li>removed typekit (saves nearly ~250kb) and ~8 requests, using &quot;Helvetica Neue&quot;</li>
<li>removed unnecessary content (social blabla)</li>
<li>removed comments</li>
<li>removed all images (except content images on blog entries)</li>
</ul>

<p>Now I have a blog using 9.81kb of space, 5 requests and a DOMonload @637ms (from same country as server). Awesome, right? Share your comments on <a href="https://plus.google.com/111125333979619018462/posts/6XJCtXAM8KN">Google Plus</a>.</p>
 ]]></content>
        </entry>
        
        <entry>
            <title>Update on responsive images</title>
            <link href="https://helloanselm.com/2012/update-on-responsive-images/"/>
            <updated>2012-11-01T00:00:00+01:00</updated>
            <id>https://helloanselm.com.com/2012/update-on-responsive-images</id>
            <content type="html"><![CDATA[ <p><strong>After being quiet for several weeks here on my blog (except the weekly reading lists) I want to share some of the recent things that have happened on responsive images. There has been quite some progress since the last article.</strong></p>

<p>The <a href="http://www.w3.org/community/respimg/">W3C ResponsiveImagesCommunityGroup</a> lead by <a href="https://twitter.com/wilto">Mat Marquis</a> has grown to 168 participants as of today. It is great to have so much support and the support by group members has been awesome so far.</p>

<p>But to be honest still many people don&#39;t see a reason why a solution for responsive images is needed. We gained responses like that: Can&#39;t this be achieved already with SVG? Isn&#39;t that possible with CSS3? Hey, there is <a href="filamentgroup.com/lab/rwd_img_compression/#commentNumber7">this cool new approach for Retina here</a> &ndash; did you saw it?
That means, we did a bad job on educating people. And that is why Mat and Marcos built the <strong><a href="http://responsiveimages.org/">responsiveimages.org</a></strong> website. This site is an overview of:</p>

<ul>
<li><a href="http://picture.responsiveimages.org/">What is the picture-element?</a></li>
<li><a href="http://dev.w3.org/html5/srcset/">What is the srcset-attribute?</a></li>
<li><a href="http://usecases.responsiveimages.org/">What are the use-cases for each?</a></li>
<li><a href="http://demos.responsiveimages.org/">Demo space</a></li>
</ul>

<p>Talking about the demo page: <strong>We have a <a href="https://github.com/yoavweiss/RespImg-WebCore/downloads">working Chromium Build</a></strong> by Yoav Weiss which can make use of the picture-element already. Isn&#39;t that amazing what a community can do on its own? Of course this still is far away from perfect but it is a start and makes clear that it is no problem to integrate it in today&#39;s UserAgents.</p>

<h2 id="w3c-tpac-meeting-in-lyon">W3C TPAC Meeting in Lyon</h2>

<p>Today was a very important day for the Reponsive Images group. This week, the W3C has its annual meeting called #TPAC in Lyon.</p>

<p>Fortunately Mat has talked with W3C to get a slot for the responsive images problem. It has been confirmed that they get the chance to talk about this at TPAC and Marcos and Yoav who were in Lyon did a great job <a href="http://responsiveimagescg.github.com/meta/presentations/TPAC2012/">presenting the current situation to the W3C</a>. Afterwards there was quite a discussion: <a href="http://www.w3.org/2012/11/01-html-wg-minutes.html#item03">Read the MinutesList of the meeting</a>.</p>

<h2 id="what-to-do-next">What to do next?</h2>

<p>We gather user evidence of our current picture-element implementation and are searching for a combination with srcset.
I will <strong>create a FAQ</strong>-document where facts are explained, why picture is so important to have and usual questions are answered. This will be coming soon to the respimg-page I hope.
Mat is now refactoring the demo-overview-page to have a better look and we try to improve the page and its content in the next days. We are still searching for good examples where responsive images work and demos showing this use-case.</p>

<p>And if you know <strong>somebody working on the WebP-format</strong>, please: We want to talk with them! We have quite some ideas and would love to discuss them with WebP developers. Thanks in advance for any hints or contacts! :)</p>

<p><strong><a href="https://plus.google.com/111125333979619018462/posts/gsqzhH4CAYh">&rarr; Discuss on Google Plus</a></strong></p>
 ]]></content>
        </entry>
        
        <entry>
            <title>Reading List #23</title>
            <link href="https://helloanselm.com/2012/reading-list-23/"/>
            <updated>2012-10-26T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2012/reading-list-23</id>
            <content type="html"><![CDATA[ <p><strong>I&#39;m in rush, have to catch my train to Paris so just the raw list today :)</strong></p>

<ul>
<li><p>Make your own GitHub with <a href="https://github.com/gitlabhq/gitlabhq">GitLab</a></p></li>
<li><p><a href="http://responsiveimages.org/">ResponsiveImages.org</a> is live and covers the main parts of the spec, the issues and the use-cases. Check it out!</p></li>
<li><p>Your own Crowdfunding with <a href="http://selfstarter.us/">SelfStarter</a></p></li>
<li><p><a href="http://www.codinghorror.com/blog/2012/10/the-future-of-markdown.html">The Future of Markdown</a></p></li>
<li><p><a href="http://www.rvl.io/anselm">rvl.io</a> - ya know reveal.js? This is the online editor and platform</p></li>
<li><p>Joshua Davis at BTPlay:
<iframe src="http://player.vimeo.com/video/52161889?title=0&amp;byline=0&amp;portrait=0&amp;badge=0&amp;color=8b5e3b" width="576" height="324" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe></p></li>
</ul>
 ]]></content>
        </entry>
        
        <entry>
            <title>Reading List #22</title>
            <link href="https://helloanselm.com/2012/reading-list-22/"/>
            <updated>2012-10-19T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2012/reading-list-22</id>
            <content type="html"><![CDATA[ <p><strong>Another week, another list. I stumbled upon several links that are very interesting (at least for me). So check it out!</strong></p>

<ul>
<li><p>Kirby CMS has been <a href="http://getkirby.com/blog/1-1-1">released in new versions</a>.</p></li>
<li><p><a href="http://www.netmagazine.com/features/your-mobile-site-slower-you-think">Your mobile site is slower than you think</a></p></li>
<li><p>Simulate different network conditions with <a href="http://maniacdev.com/2012/02/tip-simulating-different-network-conditions-to-make-sure-your-ios-app-doesnt-screw-up-on-3g/">Network Link Conditioner</a> for Max OS X</p></li>
<li><p><a href="http://www.netmagazine.com/news/responsive-image-proposals-gather-pace-122293">Responsive image proposals gather pace</a> on netmag</p></li>
<li><p>How to build good HTML5 Form validation: <a href="http://www.html5rocks.com/en/tutorials/forms/constraintvalidation/">CONSTRAINT VALIDATION: NATIVE CLIENT SIDE VALIDATION FOR WEB FORMS</a></p></li>
<li><p>Using <a href="http://bricss.net/post/33788072565/using-sass-source-maps-in-webkit-inspector">SASS source maps in WebKit Inspector</a></p></li>
<li><p>Deployd is a platform that makes building complex backends simple. Build APIs for web and mobile apps in minutes instead of days. <a href="http://deployd.com/">Check it out</a></p></li>
<li><p>Thoughts on <a href="http://gist.io/3822990">BEM for inuit.css</a></p></li>
</ul>

<h2 id="digital-publishing">Digital Publishing</h2>

<ul>
<li>WoodWing just announced the Beta of <a href="http://www.smartdps.com/">SmartDPS</a></li>
</ul>
 ]]></content>
        </entry>
        
        <entry>
            <title>Reading List #21</title>
            <link href="https://helloanselm.com/2012/reading-list-21/"/>
            <updated>2012-10-12T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2012/reading-list-21</id>
            <content type="html"><![CDATA[ <p><strong>This week was stuffed with great content on the web. I still have about 35 tabs opened in my browser to read on. So this reading list will be big. But as every week the web changes and evolves fast!</strong></p>

<p>First I want to promote an event here because it is in my personal interest to get as many interested people there as possible…</p>

<h2 id="help-test-the-web-forward">Help Test The Web Forward!</h2>

<p><img src="/assets/images/blog/2012-10-11_readinglist/testtwf.png" alt="header image for test the web forward in Paris"></p>

<p><a href="http://drublic.de/blog/conference-test-the-web-forward/">Hans wrote</a> about the last weeks stuffed with conferences and calls for participation on <a href="http://testthewebforward.org/paris-2012.html">TestTheWebForward in Paris</a> later this month.</p>

<p>If you want to contribute to W3C or WHATWG or just want to help <a href="http://movethewebforward.org/">MoveTheWebForward</a> you should attend to the hacker-session in Paris on October, 26th-27th. You will learn how to write tests for browsers and specs and how to report back to make the web a better place!</p>

<h2 id="weekly-reading-list">Weekly Reading List</h2>

<ul>
<li><p>Besides <a href="https://github.com/kig/multires/tree/master/spif">SPIF</a> which is a problematic responsive file format due to HTTP-Request header changes are needed to get this working there now is <strong><a href="http://fhtr.org/multires/">MultiRes</a></strong>. It is an image format which loads the specific needed image resolution depending on your device resolution responsively. Of course it is still very experimental but already working with JavaScript.</p></li>
<li><p>Did you know it is <strong>better to serve Retina images with super-low quality</strong> (JPEG/WebP) instead of high quality standard images and you can still save filesize with this? <a href="http://blog.netvlies.nl/design-interactie/retina-revolution/">Daan Jobsis wrote about it</a> with some examples</p></li>
<li><p>The <strong><a href="http://www1.webplatform.org/">WebPlatform</a></strong> is live. This huge project is supported by all major forces of the web: developers, UA-vendors, documenters, engineers. It is a platform where you should looking at when searching for some web-tech documentation. Don&#39;t use W3Schools (really, you never should have been using it)! Read the <a href="http://www.quirksmode.org/blog/archives/2012/10/webplatformorg.html">article by PPK</a> for more information</p></li>
<li><p>If you had the chance to attend to Fronteers12 Jam session and listened to Rodney Rehm you already heard of some basics how to design your API code. Now here is his <a href="http://coding.smashingmagazine.com/2012/10/09/designing-javascript-apis-usability/">extended version on smashingmag.com</a>. A long article telling interesting insights on best-practices for JavaScript code</p></li>
<li><p>Don&#39;t initialize all the things in <strong>jQuery.ready()</strong>! Better use <a href="http://www.elijahmanor.com/2012/10/dont-initialize-all-things-in.html">just in time initialization</a></p></li>
<li><p>Chris Heilmann <a href="http://christianheilmann.com/2012/10/08/fronteers12-qa-results-quick-reviews-and-impressions-from-the-stage/">summed up the Fronteers 2012</a>. If you missed the conference just check his post</p></li>
<li><p>If you haven&#39;t already heard of <strong><a href="http://misoproject.com/">Miso</a></strong> and have huge client projects with documentation you might want to check it out. It is a web tool for interactive storytelling and documentation.</p></li>
<li><p><a href="http://demo.agektmr.com/flexbox/">Flexbox Creator</a></p></li>
</ul>

<h2 id="apps">Apps</h2>

<ul>
<li><strong><a href="http://taskbox.co/">Taskbox</a></strong> is a Kickstarter project I would love to back but as I currently am an Android user and support the open-platform and the open-web approach I won&#39;t. For now they only are building an iOS app which shall make work with email faster and much easier.</li>
</ul>
 ]]></content>
        </entry>
        
        <entry>
            <title>#Notes on Fronteers 2012</title>
            <link href="https://helloanselm.com/2012/notes-on-fronteers-2012/"/>
            <updated>2012-10-08T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2012/notes-on-fronteers-2012</id>
            <content type="html"><![CDATA[ <p><strong>I wrote some notes at the Fronteers Conference 2012 and I now want to share them with you. They are made analogue so they are just photos here. If you want to know more, please look at the <a href="fronteers.nl/congres/2012/schedule">Schedule</a>.</strong></p>

<p><img src="/assets/images/blog/2012-10-08_NotesFronteers/boulton.jpg" alt="note of session Adapting to Responsive Design by Mark Boulton">
note of session Adapting to Responsive Design by Mark Boulton</p>

<p><img src="/assets/images/blog/2012-10-08_NotesFronteers/osmani.jpg" alt="note of session The New And Improved Developer Toolbelt by Addy Osmani">
note of session The New And Improved Developer Toolbelt by Addy Osmani</p>

<p><img src="/assets/images/blog/2012-10-08_NotesFronteers/ppk.jpg" alt="note of session A Pixel is not a Pixel by Peter-Paul Koch">
note of session A Pixel is not a Pixel by Peter-Paul Koch</p>

<p><img src="/assets/images/blog/2012-10-08_NotesFronteers/graul.jpg" alt="note of session Using JS to build bigger, better datavis to enlighten and elate by Alex Graul">
note of session Using JS to build bigger, better datavis to enlighten and elate by Alex Graul</p>

<p><img src="/assets/images/blog/2012-10-08_NotesFronteers/bynens.jpg" alt="note of session Ten things I didn’t know about HTML by Mathias Bynens">
note of session Ten things I didn’t know about HTML by Mathias Bynens</p>

<p><img src="/assets/images/blog/2012-10-08_NotesFronteers/hay.jpg" alt="note of session Style guides are the new Photoshop by Stephen Hay">
note of session Style guides are the new Photoshop by Stephen Hay</p>

<p><img src="/assets/images/blog/2012-10-08_NotesFronteers/accessibility.jpg" alt="note of session Accessibility panel by Antoine Hegeman, Bor Verkroost, Bram Duvigneau &amp; Chris Heilmann">
note of session Accessibility panel by Antoine Hegeman, Bor Verkroost, Bram Duvigneau &amp; Chris Heilmann</p>

<p><img src="/assets/images/blog/2012-10-08_NotesFronteers/verou1.jpg" alt="note of session More CSS secrets: Another 10 things you may not know about CSS by Lea Verou">
note of session More CSS secrets: Another 10 things you may not know about CSS by Lea Verou</p>

<p><img src="/assets/images/blog/2012-10-08_NotesFronteers/verou2.jpg" alt="note of session More CSS secrets: Another 10 things you may not know about CSS by Lea Verou">
note of session More CSS secrets: Another 10 things you may not know about CSS by Lea Verou</p>

<p><img src="/assets/images/blog/2012-10-08_NotesFronteers/desandro.jpg" alt="note of session Keep it Simple, Smartypants by David DeSandro">
note of session Keep it Simple, Smartypants by David DeSandro</p>

<p><img src="/assets/images/blog/2012-10-08_NotesFronteers/wijering.jpg" alt="note of session The State of HTML5 Video by Jeroen Wijering">
note of session The State of HTML5 Video by Jeroen Wijering</p>

<p><img src="/assets/images/blog/2012-10-08_NotesFronteers/hawksworth.jpg" alt="note of session I can smell your CMS by Phil Hawksworth">
note of session I can smell your CMS by Phil Hawksworth</p>

<p><img src="/assets/images/blog/2012-10-08_NotesFronteers/murphey.jpg" alt="note of session JS Minty Fresh: Identifying and Eliminating Smells in Your Code Base by Rebecca Murphey">
note of session JS Minty Fresh: Identifying and Eliminating Smells in Your Code Base by Rebecca Murphey</p>

<p><img src="/assets/images/blog/2012-10-08_NotesFronteers/russel.jpg" alt="note of session What the legacy web is keeping from us by Alex Russell">
note of session What the legacy web is keeping from us by Alex Russell</p>
 ]]></content>
        </entry>
        
        <entry>
            <title>CreateTheWeb London</title>
            <link href="https://helloanselm.com/2012/create-the-web-london/"/>
            <updated>2012-10-07T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2012/create-the-web-london</id>
            <content type="html"><![CDATA[ <p><strong>Last Tuesday I was invited to join the Adobe CreateTheWeb tour in London. Adobe just announced and released a bunch of promising Edge suite tools for web designers and developers so I was expecting a great event to come…</strong></p>

<p><img src="/assets/images/blog/2012-10-08_CreateTheWeb/flight.jpg" alt="sunrise during my red-eye flight to London"></p>

<p>And I had not been disappointed by Adobe. After my re-eye flight to London I met <a href="https://alpha.app.net/klick_ass">Jay</a> and <a href="https://twitter.com/maddesigns">Sven</a> in Heathrow. <a href="https://twitter.com/rodneyrehm">Rodney</a>, <a href="https://twitter.com/drublic">Hans</a> and <a href="https://twitter.com/derSchepp">Christian</a> were already at the venue when we arrived at Vue Cinemas <a href="http://html.adobe.com/events/">where the event</a> took place. We finally met many more people from the web development community from all over the world and had interesting conversations.</p>

<p>Remarkable were the sessions at CreateTheWeb. While there was a generic introduction on why and how Adobe changed its mind about the OpenWeb and now joins the line of OpenSource and Open web development.</p>

<h2 id="edge-suite">Edge Suite</h2>

<p>But the other sessions showing the new tools of the <a href="http://html.adobe.com/edge/">Adobe Edge suite</a> were pretty mind-openers for me. Before that I just thought Adobe Edge Animate is just another standard tool. But with all the other Edge apps like Inspect, Reflow and Code (known as Brackets) the company made a cool move to a better web-developer experience. That&#39;s because the tools are tiny and very useful.</p>

<h2 id="edge-inspect">Edge Inspect</h2>

<p>Most of you might have already heard the Adobe Shadow tool which is now renamed to <a href="http://html.adobe.com/edge/inspect/">Edge Inspect</a> and offers a great help to test and debug on many devices with aut-reload, remote inspection etc. And you can also extend with Remy Sharps <a href="http://jsbin.com/">jsbin</a> and <a href="http://jsconsole.com/">jsconsole</a>.
Unfortunately you can only set up to 2 connections at a time if you use Edge Inspect with a free CreativeCloud membership. Otherwise you need to pay $10/month or $50/month for the whole app-suite. But I already have the full membership and think it&#39;s totally worth the money.</p>

<h2 id="edge-reflow">Edge Reflow</h2>

<p>And there is this new tool called <a href="http://html.adobe.com/edge/reflow/">Edge Reflow</a>. It is not available already but there will be a beta in a few weeks ready to try it out. And it looks awesome for all of us. That is because it is a tool for designers who don&#39;t know much about HTML and CSS. But it offers a way to build responsive prototypes directly in HTML/CSS on a design basis (&quot;WYSIWYG&quot;). And it does a fairly good job looking at the output code. Sure there are still some bugs and not many features yet but it is already looking as promising that many web developers said:</p>

<blockquote>
<p>Release reflow already. People need tools to help them with the imaginative component of responsive layout #CreateTheWeb
<a href="https://twitter.com/rodneyrehm/statuses/253157183221559297">Rodney Rehm</a></p>
</blockquote>

<h2 id="brackets-edge-code">Brackets / Edge Code</h2>

<p>There is one tool that already had its fame some time ago. When Adobe released <a href="https://github.com/adobe/brackets">Brackets on github</a> they didn&#39;t say anything about it and still it was a TOP10 github repo for several weeks!</p>

<p>That is because this software is such a great project by different views: It is fully open-source. It is from developers for developers and with developers. It is a code editor written in HTML, CSS, JS for HTML, CSS, JS which makes it pretty usable and extendable. And it has some cool features like inline-cross-editing, inspection, live reload in Chrome etc.</p>

<h2 id="the-history-of-web-technologies">The history of web technologies</h2>

<p><img src="/assets/images/blog/2012-10-08_CreateTheWeb/divya.jpg" alt="Divya Manian showing history of web-technology"></p>

<p>This was the most inspiring and best talk for me on this day. <a href="http://nimbupani.com/index.html">Divya Manian</a> told a story about how the web evolved with more and more technologies like CSS3, WebGL, etc.. And the slides telling the story were fully interactive and created a wonderful atmosphere in the room. I think everyone was just fascinated by this talk.</p>

<p>Finally we had this amazing after-party with all the speakers and this lovely city-view:</p>

<p><img src="/assets/images/blog/2012-10-08_CreateTheWeb/pano.jpg" alt="panorama of London city"></p>

<p>And here is a video-summary of CreateTheWeb in London:</p>

<ol>
<li><a href="http://klick-ass.com/de/events/the-modern-web-needs-modern-tools-create-the-web-london/">In German</a></li>
<li><a href="http://www.youtube.com/watch?v=LmTo-bDCOU4&amp;feature=youtu.be">In English</a></li>
<li><a href="https://plus.google.com/u/0/photos/111125333979619018462/albums/5796481893447076881">My photo library</a></li>
</ol>
 ]]></content>
        </entry>
        
        <entry>
            <title>Reading List #20</title>
            <link href="https://helloanselm.com/2012/reading-list-20/"/>
            <updated>2012-10-05T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2012/reading-list-20</id>
            <content type="html"><![CDATA[ <p><strong>After being on several conferences the last days I have some new links for you this week.</strong></p>

<ul>
<li><p>The first is about the <strong><a href="http://klick-ass.com/events/the-modern-web-needs-modern-tools-create-the-web-london/">Adobe Create The Web tour</a></strong> where I actually was in London this Monday.</p></li>
<li><p>The netmagazine just published an article where <strong><a href="http://www.netmagazine.com/features/devs-respond-adobe-edge-suite">devs respond to Adobe edge Suite</a></strong> and state what&#39;s cool.</p></li>
<li><p>This is fresh stuff. Just today Phil Hawksworth held his talk <strong>&quot;<a href="https://speakerdeck.com/u/philhawksworth/p/i-can-smell-your-cms">I can smell your CMS</a>&quot;</strong> at the Fronteers Conference 2012.</p></li>
<li><p>Chris Heilmann just advertised this little tool at Fronteers: <strong><a href="http://www.makeymakey.com/">MaKey MaKey</a></strong> is a little keyboard extension with which you can do some awesome stuff!</p></li>
<li><p>Hixie has this cool tool: <strong><a href="http://software.hixie.ch/utilities/js/live-dom-viewer/">Live DOM viewer</a></strong> just gives you the DOM nodes of your markup live in the browser.</p></li>
<li><p>Here is a list of <strong><a href="http://www.w3.org/participate/eventscal.html">events by the W3C</a></strong></p></li>
</ul>

<p>And by the way: If you wanna go to a conference this year in Germany I have two tipps for you.</p>

<ul>
<li><p>Marc Thiele just do this absolutely awesome <strong><a href="http://2012.beyondtellerrand.com/">beyondtellerand</a></strong> conference. It&#39;s a frontend and design conference taking place in Düsseldorf in November 2012.</p></li>
<li><p>In Munich, the <strong><a href="http://push-conference.com/2012/">push.conference</a></strong> is a great option to get some inspiration about design.</p></li>
</ul>
 ]]></content>
        </entry>
        
        <entry>
            <title>Reading list #19</title>
            <link href="https://helloanselm.com/2012/reading-list-19/"/>
            <updated>2012-09-28T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2012/reading-list-19</id>
            <content type="html"><![CDATA[ <p><strong>After one week break from the weekly newslist here it is again. I was at FromTheFront last week which is a totally awesome italian frontend conference, so I couldn&#39;t manage to summarize the week last time. This time I have cool stuff for you:</strong></p>

<ul>
<li><p><a href="https://speakerdeck.com/u/snookca/p/your"><strong>Your CSS is a mess</strong></a> tells us how to write CSS in a better way. Told by the master himself &ndash; Jonathan Snook</p></li>
<li><p><a href="http://www.alistapart.com/articles/the-web-aesthetic/">The Web Aesthetic</a> by Paul Robert Lloyd is an article about you as creator, designer and decision-maker on the web. You decide wether the web looks good or not. It&#39;s definitely worth reading it.</p></li>
<li><p>Adobe held the CreateTheWeb conference in S.F. this Monday and they presented the whole Adobe Edge Web suite which is very cool. But they also showed us really great stuff: The <a href="http://html.adobe.com/webstandards/csscustomfilters/cssfilterlab/">CSS Filter Lab</a>.</p></li>
<li><p>If you are in web / mobile branch, <strong>create an Open Device Lab</strong>! See <a href="http://mobile.smashingmagazine.com/2012/09/24/establishing-an-open-device-lab/">on Smashing Mag how-to</a>.</p></li>
<li><p><em>&quot;Application cache is a douchebag&quot;</em> says Jake Archibald (who is now joining Google Developer Relations). <a href="https://speakerdeck.com/u/jaffathecake/p/application-cache-douchebag">This presentation</a> gives you a clue why AppCache is a douchebag.</p></li>
</ul>
 ]]></content>
        </entry>
        
        <entry>
            <title>Late Reading List #18</title>
            <link href="https://helloanselm.com/2012/reading-list-18/"/>
            <updated>2012-09-15T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2012/reading-list-18</id>
            <content type="html"><![CDATA[ <p><strong>My weekly reading list no. 18 is out. A bit later than normal but still worth reading.</strong></p>

<ul>
<li><p><a href="http://jqfundamentals.com/chapter/javascript-basics">JavaScript Basics</a> – here is where you learn to understand jQuery, JavaScript and the priciples of coding JS</p></li>
<li><p><a href="http://fronteers.nl/congres/2012/jam-session">Fronteers 2012 JamSession</a>: I will talk about responsive images and how you will be able to use it. So come, join for free and drink some beer with us. By the way, there will be awesome talks by Rodney, Marc and many more.</p></li>
<li><p>Miller Medeiros writes about <a href="http://blog.millermedeiros.com/solid-css/">Solid CSS</a>. Recommended for everyone who writes CSS.</p></li>
<li><p>jQuery <a href="http://viget.com/inspire/jquery-stick-em#When:17:28:04Z">Stick &#39;em</a> Plugin let you stick elements until user scrolls to a certain point.</p></li>
<li><p>Chris Coyier talks about a <a href="http://css-tricks.com/user-opt-out-responsive-design/">user Opt-Out for responsive design</a>.</p></li>
<li><p>The <a href="http://www.netmagazine.com/features/four-secrets-enhancing-creative-productivity">four secrets to enhancing creative productivity</a> on netmag.</p></li>
<li><p>The <a href="http://www.netmagazine.com/features/road-responsive-images">road to responsive images</a> is an article I wrote for the awesome netmagazine. You&#39;ll learn about the current development and how you will be able to use it in future.</p></li>
<li><p>David Storey writes: &quot;See your site like the rest of the world does. On the Nokia X2-01&quot; - if you do responsive design (you really should do!) read this.</p></li>
<li><p><a href="http://xiki.org/">Xiki</a> is a cool command line tool</p></li>
<li><p><a href="http://readymag.com/">Readymag</a> is a new tool for digital magazines build in HTML5! This is awesome!</p></li>
</ul>
 ]]></content>
        </entry>
        
        <entry>
            <title>#17: Testing tools</title>
            <link href="https://helloanselm.com/2012/testing-tools/"/>
            <updated>2012-09-07T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2012/testing-tools</id>
            <content type="html"><![CDATA[ <p><strong>After one week of pause I&#39;m quickly pushing another edition of my weekly link tipps before my birthday tomorrow.</strong></p>

<p>Here we go:</p>

<h2 id="testing-tools-and-suites">Testing tools and suites</h2>

<ul>
<li><p><a href="http://modernizr.com/news/modernizr-262/">Modernizr 2.6.2 is out</a> and has some new things: position sticky, CSS&#39;s @supports, input[form], bugfixes and improvements</p></li>
<li><p>Firefox 15 developer tools update <a href="http://anselm-hannemann.com/blog/2012/09/01/firefox-16-developer-tools-update/">with amazing new features</a>: make screenshots of selected elements, view media queries inside the not-resized browser window!</p></li>
</ul>

<h2 id="new-things">New things</h2>

<ul>
<li>We now have a <a href="http://updates.html5rocks.com/2012/08/Stick-your-landings-position-sticky-lands-in-WebKit">position: sticky; option in CSS</a></li>
</ul>

<h2 id="w3c-news">W3C news</h2>

<ul>
<li><p>The W3C moved a step forward and its specification of HTML <a href="https://github.com/w3c/html">is now on github</a>!</p></li>
<li><p>There is a big discussion going on about our <a href="http://lists.w3.org/Archives/Public/public-html/2012Aug/0427.html">responsive images thing</a> at W3C mailing list. If you want to discuss, just be part of it and sign the agreement to discuss with us!</p></li>
</ul>
 ]]></content>
        </entry>
        
        <entry>
            <title>Firefox 16 developer tools update</title>
            <link href="https://helloanselm.com/2012/firefox-16-developer-tools-update/"/>
            <updated>2012-09-01T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2012/firefox-16-developer-tools-update</id>
            <content type="html"><![CDATA[ <p><strong>In Firefox 16, Mozilla <a href="https://hacks.mozilla.org/2012/08/new-firefox-command-line-helps-you-develop-faster/">added new functionality</a> to their own developer tools. This is amazing as these tools hadn&#39;t had much features yet.</strong></p>

<h2 id="media-query-view">media-query view</h2>

<p>The new cool thing is the <strong>media-query view</strong> where you can view your website in different resolutions to <strong>test your CSS3 @media-queries</strong>. This is especially great as Firefox only resizes the website&#39;s viewport not the whole browser window. Why this is great? Because you are still able to use developer tools, as well as other browser-tabs in normal size.</p>

<p>I would say well done, Mozilla! :)</p>

<p><img src="/assets/images/blog/2012-09-01/firefox_16_inspection-tools.jpg" alt=""></p>

<h2 id="console">Console</h2>

<p>The other news is the <strong>new console</strong> where you can start controlling Firefox via console. <strong>Open the console with Shift + F2</strong> (add fn-key on OS X) and start typing.
Now, what can you do with it? <a href="http://christianheilmann.com/2012/08/15/browsers-have-a-presenter-mode-console-info/">Chris Heilmann shows</a> a super-cool way of using console.info() for presentations. Get inspired!</p>

<h2 id="cookie-edit">cookie edit</h2>

<p>By typing in <strong>&quot;cookie&quot;</strong> you can also view cookies now and edit them in your dev-tools.</p>

<h2 id="screenshots">screenshots</h2>

<p>Or you <strong>want some screenshots of the current view</strong>? Type:</p>
<div class="highlight"><pre><code class="language-" data-lang="">screenshot heading.png 0 false h1
</code></pre></div>
<p>and you will get a screenshot in PNG-format of your h1-headline without anything around it (false) and do it immediately (0). Cool, he?</p>

<p>What do you think about these new features? I must say I like them a much and will reconsider using Firefox for development or debugging. :) Thanks to the Mozilla developers for this awesome work!</p>
 ]]></content>
        </entry>
        
        <entry>
            <title>[Weekly] How to do better</title>
            <link href="https://helloanselm.com/2012/how-to-do-better/"/>
            <updated>2012-08-24T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2012/how-to-do-better</id>
            <content type="html"><![CDATA[ <p><strong>This friday we&#39;re talking about how to become a better web-person and some technical stuff!</strong></p>

<h2 id="being-a-better-web-citizen">Being a better web citizen</h2>

<p><a href="http://christianheilmann.com/">Chris Heilmann</a> posted a blog entry this week because he is annoyed by the going on rant on social media platforms about products, events and persons. He writes why ranting hurts people and doesn&#39;t do anything good to anyone. Finally after reading this blog hopefully some more people understand how to really help the web and other people in it.</p>

<ul>
<li><p><a href="http://christianheilmann.com/2012/08/20/being-a-better-web-citizen-complain-where-things-get-fixed/">BEING A BETTER WEB CITIZEN: COMPLAIN WHERE THINGS GET FIXED</a></p></li>
<li><p>Now there is a list by <a href="http://paulirish.com/">Paul Irish</a> that includes various genius developers that are not well known yet. He tries to recommend them to the masses and it&#39;s just lovely that he does that. Kinda cool move to promote other unknown good people! <a href="http://paulirish.com/2012/developers-we-admire/">Check it out!</a></p></li>
</ul>

<h2 id="responsive">Responsive</h2>

<ul>
<li><p><a href="http://iandevlin.com/">Ian Devlin</a> wrote about <a href="http://www.iandevlin.com/blog/2012/08/html5/responsive-html5-video">Responsive HTML5 video</a>. He shows what the problems are and concludes in the need of a responsive html-element which can handle multiple sources respecting media-queries… like the picture-element proposed by W3C now.</p></li>
<li><p><a href="http://www.html5rocks.com/en/mobile/high-dpi/">HIGH DPI IMAGES FOR VARIABLE PIXEL DENSITIES</a> is an article published on html5rocks.com which describes the problem of variable density-displays and data-handling. Interesting in-depth read.</p></li>
</ul>

<h1 id="css-whatwg-w3c-news">CSS / WHATWG / W3C News</h1>

<ul>
<li><p><a href="http://www.xanthir.com/blog/b4K_0">Cascading Attribute Sheet</a> by Tab Atkins Jr. is a proposed solution to have as easy syntax as CSS in HTML.</p></li>
<li><p>Fantasai explains the history of web layout <a href="http://fantasai.inkedblade.net/weblog/2012/css-layout-evolution/">Evolution of CSS Layout: 1990s to the Future</a>. Well written story that explains much about the process…</p></li>
</ul>
 ]]></content>
        </entry>
        
        <entry>
            <title>#15 Social, Shadow, CSS3-Layout</title>
            <link href="https://helloanselm.com/2012/reading-list-15/"/>
            <updated>2012-08-17T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2012/reading-list-15</id>
            <content type="html"><![CDATA[ <p><strong>New things arrived the web. This linklist is mostly about them.</strong></p>

<ul>
<li><p><a href="https://medium.com/">Medium.com</a> is a writing platform founded by the founder of twitter. He thinks it is time for a social writing network. Some say it&#39;s a clone of tumblr, some say, it&#39;s a big new thing. For me, it looks nice ;)</p></li>
<li><p><a href="http://branch.com/">Branch.com</a> is another new service about networking. It is made for talking about specific links / topics, generating a discussion which you can finally share or embed into your blog.</p></li>
<li><p>Adobe Edge <a href="http://labs.adobe.com/technologies/edge/">preview 6.1</a> came out but <a href="http://www.youtube.com/watch?v=EWdxqUQjsbY&amp;list=UU7-iNajG033J_66k16whthw&amp;index=1&amp;feature=plcp">as of yesterday</a> we know that preview 7 is coming very soon and has some awesome features :)</p></li>
<li><p><a href="https://fruux.com/">fruux.com</a> is a sync-service for everyone who won&#39;t rely on iCloud or has the trouble with iOS, Android or other devices. Sync calendars, contacts and other things between all your devices.</p></li>
<li><p>Fantasai shares the story about <a href="http://fantasai.inkedblade.net/weblog/2012/css-layout-evolution/">&quot;The Evolution of CSS Layout: 1990s to the Future&quot;</a>. It tells the story how we built CSS layout until now, it tells about real CSS layout that is coming soon via W3C specification and it tells about print comparisons. Very interesting story!</p></li>
<li><p>Adobe Shadow can be used in different ways. Use your own servers (using node.js + npm weinre), use <a href="http://blogs.adobe.com/shadow/2012/06/19/shadow-xip-io-virtual-hosts-workflow-simplified/">xip.io as proxy</a>, use it with <a href="http://blogs.adobe.com/shadow/2012/04/24/shadow-livereload-workflow/">LiveReload and iOS</a> or <a href="http://blogs.adobe.com/shadow/2012/06/04/shadow-typekit-localhost-workflow/">use typekit with localhost</a>. <em>And, be sure to check the <a href="http://labs.adobe.com/technologies/shadow/">labs site</a> the next hours and days. I expect something new to happen there…</em></p></li>
<li><p>At least, if you&#39;re a German reader (sorry again for all my English people), check out my video of <a href="http://www.adobe.com/de/event/creativesummer/web-mobile.html">Adobe&#39;s Creative Summer</a>. I talked about Adobe Dreamweaver CS6, Responsive Webdesign, Responsive Images, Adobe Shadow, PhoneGap and PhoneGap Build and the Adobe WebPlatform:
<iframe width="629" height="354" src="https://www.youtube-nocookie.com/embed/7AfXR-Ung9I" frameborder="0" allowfullscreen></iframe></p></li>
</ul>
 ]]></content>
        </entry>
        
        <entry>
            <title>Links #14</title>
            <link href="https://helloanselm.com/2012/reading-list-14/"/>
            <updated>2012-08-09T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2012/reading-list-14</id>
            <content type="html"><![CDATA[ <p><strong>Performance matters. Responsiveness too and style is important.</strong></p>

<ul>
<li><p>Check out <a href="http://james.padolsey.com/javascript/replacing-text-in-the-dom-solved/">how you could solve</a> the problem of DOM replacement.</p></li>
<li><p>The <a href="http://www.webperformancetoday.com/2012/07/31/33-best-web-performance-links-of-q2-2012/">best web-performance links of Q2/2012</a></p></li>
<li><p>How to <a href="http://www.strangeloopnetworks.com/blog/how-to-use-a-waterfall-chart-to-interpret-web-performance-data/">interpret a waterfall chart</a> to understand website performance</p></li>
<li><p>Why your JavaScript Code might be slow and <a href="http://moduscreate.com/javascript-performance-tips-tricks/">how you can improve your site&#39;s JS performance</a></p></li>
<li><p>Firefox for Android is here since a couple of weeks. Now we even got <a href="http://starkravingfinkle.org/blog/2012/08/firefox-for-android-remote-debugging-is-here/">remote debugging</a>!</p></li>
<li><p>HAIR is a <a href="https://github.com/skeltoac/HAIR">concept for a responsive image web protocol</a></p></li>
<li><p>Adobe published the Regions module for CSS and <a href="http://www.html5rocks.com/en/tutorials/regions/adobe/">here is a tutorial</a> how to create magazine layouts with that</p></li>
<li><p>Ian Devlin published an article writing about the <a href="http://html5doctor.com/multimedia-troubleshooting/">problems with multimedia in HTML5 and how to troubleshoot</a></p></li>
<li><p>[DE] Interessiert an Dreamweaver CS6, PhoneGap, Responsive Webdesign und Brackets oder Adobe Shadow? Ich zeige all das im <a href="http://www.adobe.com/de/event/creativesummer/web-mobile.html">Creative Summer am Mittwoch, 15.8.2012</a>.</p></li>
</ul>
 ]]></content>
        </entry>
        
        <entry>
            <title>picture and srcset is coming</title>
            <link href="https://helloanselm.com/2012/picture-and-srcset-is-coming/"/>
            <updated>2012-08-06T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2012/picture-and-srcset-is-coming</id>
            <content type="html"><![CDATA[ <p><strong>Responsive images are finally coming over the W3C&#39;s official HTML5 specification. Mathew Marquis, chair of the W3C Community Group <a href="http://www.w3.org/community/respimg/">&quot;Responsive Images&quot;</a> has some news for all of us…</strong></p>

<p>After months of waiting, discussion, problems, restrictions we now have an official statement by <a href="http://www.w3.org/community/respimg/2012/08/04/picture-in-the-html5-spec/">Mathew Marquis</a>:</p>

<blockquote>
<p>Paul Cotton, one of the HTML WG Chairs, has arranged for me to work with several members of the HTMLWG on a final draft of the <code>picture</code> specification, as we discussed at the HTML WG weekly teleconference on July 26th.</p>

<p>picture is tentatively slated for inclusion under the HTML5 umbrella, rather than being pushed to HTML.next. The status of the proposal can be tracked via the W3C Bugtracker. I’ll be working with Adrian Bateman and Frank Oliver from Microsoft on a formal specification in the coming weeks, and will have an update on our progress by August 16th <a href="https://www.w3.org/html/wg/tracker/actions/220">on bugtracker</a>.</p>

<p>Laura Carlson has also been working to gather feedback from the HTML WG Accessibility Task Force on the proposed markup, in addition to being tremendously helpful in navigating the standards process. Welcome to the RICG, Laura!</p>
</blockquote>

<p>This finally means we will have an official <a href="http://www.w3.org/">W3C</a> powered specification for reponsive images and so we hopefully will get support by browser vendors soon. I am very excited that Microsoft shows its interest on that specification as they are a major browser vendor and additionally one of the both who provide prefetching and preparsing in their browsers which will be a problem with responsive images.</p>

<p>Stay tuned to get more updates about responsive images.</p>
 ]]></content>
        </entry>
        
        <entry>
            <title>Publishers make smaller magazines!</title>
            <link href="https://helloanselm.com/2012/publishers-make-smaller-magazines/"/>
            <updated>2012-07-30T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2012/publishers-make-smaller-magazines</id>
            <content type="html"><![CDATA[ <p><strong>After iPad-magazines established now since over one year, it is time to get better. This is what some magazines already did when it is about their interaction design and the readability. But there is one major lack: performance and size of the magazines.</strong></p>

<h1 id="publishers-make-smaller-magazines">Publishers make smaller magazines!</h1>

<p>After iPad-magazines established now since over one year, it is time to get better. This is what some magazines already did when it is about their interaction design and the readability. But there is one major lack: performance and size of the magazines.</p>

<p>iPad-magazines <strong>usually have a download size of 300MB</strong> for each issue. This is unsually big for one magazine I always thought. The first Adobe Digital Publishing Suite magazine, WIRED, had about 500MB. There followed some other magazines that even were bigger than that.</p>

<p>Now, as software and technology evolved, we have other possibilities and <strong>are able to do much smaller magazines</strong>. The problem is, many publishers don&#39;t go that way. When a year ago the first iPad magazines went live there only was one way to publish: PNG-articles with uncompressed assets. This resulted in very large files. Now this is the past and we are able to publish to different resolutions with so called &quot;renditions&quot; and we can use the PDF-format to create smaller files using vector-formats.
This results in a <a href="http://digitalpublishing.tumblr.com/post/19602372558/new-ipad-the-big-questions-and-answers">usually 1/4th</a> of the size of a PNG-stack. So if you use this for the iPad3 you get the same size as a PNG-stack for standard iPad. Quality and speed indeed is much better with PDF-stacks as the size is much smaller.</p>

<p>What I experience is that most publishers serve the iPad3 to satisfy users with a high resolution screen. What they don&#39;t care are all the users with an iPad1 or iPad2. Often they have to download exactly the same filesize as high resolution users. This is completely unnecessary and causes crashes on these devices. <strong>Today it is possible to serve different resolutions to different devices</strong>. It is no problem to serve a rendition for 1024px<em>768px and another for 2048</em>1536px as well as many others for the Android devices. One even doesn&#39;t have to create two InDesign documents but only a second folio in the Adobe DPS with a different resolution. This can be done automated using the <a href="http://projects.nordsueddesign.de/sidecarxml/#">sidecar.xml generator</a> by Johannes Henseler and <a href="http://help.adobe.com/en_US/digitalpubsuite/using/WS67cb9e293e2f1f60606c7754128c7a9c00e-7fff.html#WS9293e1fb3b977c5c-128928b4131735b260a-8000">the multi-import functionality</a> (except it <a href="http://blogs.ulrich-media.ch/2012/07/dps-artikel-updaten-uber-sidecarxml.html">doesn&#39;t work</a> with local folios).</p>

<p><strong>So dear publishers, make smaller articles using</strong>:</p>

<ul>
<li>PDF-stacks instead of PNG-stacks</li>
<li>HTML-stacks where it makes sense</li>
<li>compress images and assets wherever possible</li>
<li>try to reduce video assets inline</li>
</ul>

<p>Your readers will thank you.</p>
 ]]></content>
        </entry>
        
        <entry>
            <title>Can I update to Apple Mountain Lion with Adobe CS6?</title>
            <link href="https://helloanselm.com/2012/can-i-update-to-apple-mountain-lion-with-adobe-cs6/"/>
            <updated>2012-07-25T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2012/can-i-update-to-apple-mountain-lion-with-adobe-cs6</id>
            <content type="html"><![CDATA[ <p><strong>Many people feared it and love it: The point when Apple releases its new OS. It always is the same game, you don&#39;t really know if Adobe apps would work fine on the system after upgrading.</strong></p>

<p>I installed <strong>Mountain Lion</strong> which took me 45mins including download. Sorry, I&#39;ve got FTTH here and downloading such large files is fun and my SSD installed the system in about 15min.</p>

<p>Now to the facts:</p>

<ul>
<li>OS X Mountain Lion works great here.</li>
<li>Adobe InDesign CS6 works.</li>
<li>Adobe InDesign CS5.5 works.</li>
<li>Adobe Illustrator CS6 works.</li>
<li>Adobe Premiere CS6 works.</li>
<li>Adobe After Effects CS6 works.</li>
<li>Adobe Media Encoder CS6 works.</li>
<li>Adobe Bridge CS6 works.</li>
<li>Adobe Photoshop CS6 works.</li>
<li>Adobe Dreamweaver CS6 works.</li>
<li>Adobe Edge works.</li>
</ul>

<p>Some other maybe helpful Apps that work:</p>

<ul>
<li>TweetBot (had one crash but it is in Alpha, so hey)</li>
<li>Sparrow Mail</li>
<li>Skype</li>
<li>Firefox, Chrome</li>
<li>Reflection 1.4 (update through App&#39;s own update mechanism to latest build!)</li>
<li>ImageOptim</li>
<li>Coda2</li>
<li>Transmit</li>
<li>Microsoft Office 2011</li>
</ul>

<p><em>Now some additional info: This tests are personal tests on my machine which is a MacBook Air 2011. I also tested with my MacBook Pro 15&quot; (Mid 2012) and an external CinemaDisplay (via DisplayPort, not Thunderbolt). I cannot guarantee that this is working on your machine, too, but hope that this helps you. If you find wrong information or a bug, please notify me!</em></p>

<h2 id="update">UPDATE</h2>

<p>Some issues have been reported when using Adobe CS6 with a beamer (VGA) and MacBookPro 13&quot; (late 2011). I cannot confirm crashes but you maybe should test it before your next presentation.</p>
 ]]></content>
        </entry>
        
        <entry>
            <title>13th roundup of the week</title>
            <link href="https://helloanselm.com/2012/reading-list-13/"/>
            <updated>2012-07-19T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2012/reading-list-13</id>
            <content type="html"><![CDATA[ <p><strong>Now this week was full of work, full of news and awesome things. Let&#39;s round-up.</strong></p>

<ol>
<li><p><strong>Reflection 1.4 beta2</strong> is <a href="http://www.reflectionapp.com/download/Mac/Reflection_1.4b2.dmg">ready to download</a>. The version features iOS6 and Mountain Lion support, and will feature <a href="http://reflectionapp.com/updates/notes/1.4.html">some more features later on</a> in upcoming betas.</p></li>
<li><p>Want to <strong>load TypeKit async</strong> and non-blocking? Then <a href="https://github.com/typekit/typekit-async-patterns">here is a github repo</a> how to solve these problems and enhance the webfont experience on your website.</p></li>
<li><p><strong><a href="https://github.com/kickingvegas/12pt-should-be-the-same-everywhere/blob/master/absoluteMeasurementDPI.md">Get resolution independent on font-sizes</a></strong>. This small repo shows why you should offer resolution independent font-sizes on your website or application.</p></li>
<li><p>Adobe WebPlatform Team published an <strong><a href="http://blogs.adobe.com/webplatform/2012/07/10/image-progress-event-progress/">article about image progress events</a></strong>. This is about the loading progress of images on a website and how to control and target it. This will be very helpful to control the image loading on websites and it is helpful for responsive images as well as you can control which image to load on which device/resolution/UA.</p></li>
<li><p>With the problem of responsive images, Matt Wilcox brought up another problem and a solution for it: <strong>HTML variables</strong>. This would have been super useful for responsive images media-queries, anchors and URLs as well as other markup patterns. We left that out for the responsive images solution but now Ville V. Vanninen (AKA sakamies) <a href="https://github.com/sakamies/headcase.js">published a javascript</a> that allows to use these variables on your HTML.
<em>Just be aware that this can completely break your markup and website if JS is disabled and that the script increases your initial load time.</em></p></li>
<li><p>Christian Heilmann <a href="https://plus.google.com/111552931212713155841/posts/RkpYBcJQf5S">asks for your help</a>. He wants to know what <strong>Javascript frameworks you&#39;re using</strong> when developing a mobile (web-)App. Just <a href="https://docs.google.com/spreadsheet/viewform?formkey=dGZ3b2l0WTI5YkVUZjZhLWZZWnhsc1E6MQ">fill out his quick survey</a> to move the web forward.</p></li>
<li><p>The popular <strong>caniuse.com</strong> website for browser support of HTML5 and CSS support now includes mobile Firefox and mobile Chrome. See how to <a href="http://caniuse.com/feed/132">display these edge-browsers here</a>.</p></li>
<li><p><strong>&quot;Deploy via FTP is so 90`s&quot;</strong> – yes, that is what <a href="http://coderwall.com/kerrick">Kerrick</a> Long <a href="http://coderwall.com/p/xczkaq">shared on his coderwall</a>. And he&#39;s right – just use git instead.</p></li>
</ol>

<p>And that&#39;s it for the week.</p>
 ]]></content>
        </entry>
        
        <entry>
            <title>Links of the week</title>
            <link href="https://helloanselm.com/2012/reading-list-12/"/>
            <updated>2012-07-13T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2012/reading-list-12</id>
            <content type="html"><![CDATA[ <p><strong>Have you ever heard history-stories that are not that boring as in school? Then you might be excited by my first link of the week.</strong></p>

<ol>
<li><a href="http://thespace.org/items/s00007p8">60 years in 60 poems</a> on thespace.org</li>
</ol>

<blockquote>
<p>„Do you remember the Queen&#39;s Coronation? The Kennedy assassination? Beatniks and hippies? The Miners&#39; Strike and Greenham Common? The Great Storm and the Ash Cloud?“</p>
</blockquote>

<p><a href="http://thespace.org/items/s00007p8">
<img src="/assets/images/blog/2012-07-12/60yrs60stories.png" alt="infographic to audible history">
</a></p>

<ol>
<li><p>Tobias Schneider published a draft for a new way to deal with emails and ended up with: <a href="http://www.vanschneider.com/work/mail/">Re-Designing the classic email client</a>.</p></li>
<li><p>This blog post is about how to deal with typography on mobile devices. While webfonts are very common these days, they often are not working on smartphones. So we need to deal this issue: <a href="http://blog.templatemonster.com/2012/07/05/mobile-typography-optimization/">Why Should We Optimize Mobile Website Typography</a>.</p></li>
<li><p>Eric Bidelman by Google published the <a href="https://plus.google.com/111125333979619018462/posts/LFad9PCRvP4">Google I/O presentation slidedeck</a> on Google Code. The HTML5 framework supports most of the cool stuff like fullscreen, code-highlighting, speaker notes, slide overview, presenter mode and more.</p></li>
<li><p>When we are talking about Google I/O, <a href="http://christianheilmann.com/2012/07/02/google-io-2012-notes-lots-of-them/">here is Chris Heilmann&#39;s summary of the best talks</a>.</p></li>
<li><p>Here is a <a href="http://5by5.tv/webahead/25">podcast about responsive images</a> on 5by5.tv with Mat Marquis from Filament Group who has a lead role in W3CG responsive images.
He first explains what it is all about and why we need the solution and then goes further into the whole story.</p></li>
</ol>
 ]]></content>
        </entry>
        
        <entry>
            <title>What's wrong with Adobe Proto</title>
            <link href="https://helloanselm.com/2012/whats-wrong-with-adobe-proto/"/>
            <updated>2012-07-12T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2012/whats-wrong-with-adobe-proto</id>
            <content type="html"><![CDATA[ <p><strong>When Adobe published Adobe Proto I was thrilled. They promised a wireframe / prototyping tool that makes it easy to set up wireframes for websites on an iPad. The concept indeed is super simple but the app itself has many bugs.</strong></p>

<p>And because of these bugs, <a href="http://www.adobe.com/products/proto.html">Adobe Proto</a> currently won&#39;t work for many people. It may work for some projects and some people but for me, it wouldn&#39;t. And here is why:</p>

<h1 id="pixel-based-layout">Pixel based layout</h1>

<p>While we are currently desigining fluid layouts and multi-device experiences, Adobe Proto only allows a preset of fixed layouts. You have the choice between 960px, 992px, 768px, 320px and 480px. No fluid option is given while Adobe Dreamweaver CS6 got the fluid-grid layout option. Why is this not included in Proto? Shouldn&#39;t be much effort.</p>

<h1 id="not-optimized-for-responsiveness">Not optimized for responsiveness</h1>

<p>It would be very cool to have one wireframe with more than one views. This could easily be achieved by adding more drawing areas to one file. With that we could handle responsive webdesigns inside Adobe Proto.</p>

<h1 id="grids-are-insuffiecient">Grids are insuffiecient</h1>

<p>The grids that Adobe Proto has included are insufficient and missing a configurator or customize panel. I currently only have the possibility to choose 8, 10, 12, 14, 16 columns. What the hell are these options for? The only one I can imagine to use is 12 columns. But why isn&#39;t there an option for 1, 2, 3, 4 columns? Or even 24? These missing defaults along with collumn gutter of 8, 10, 16, 20, 24, 28 are not really helpful. The problem is, I have to choose one of them and cannot insert my own values.</p>

<h1 id="no-alignment-to-grid">No alignment to grid</h1>

<p><img src="/assets/images/blog/2012-07-12_Proto/dw-proto_0-2.png" alt="screenshot of Adobe Proto App with wireframe on it"></p>

<p>After you&#39;ve created a new document based on a grid system you start drawing your layout. You might think that if you draw, the box would align magically to the grid system. No, you&#39;re wrong. Adobe Proto doesn&#39;t align your box to the grid system what makes your layout look awful and results in wrong CSS code afterwards. This is a major drawback if you want to do a wireframe that you can use as codebase.</p>

<h1 id="creative-cloud-app-not-available-dreamweaver-officially-not-ready-for-proto">Creative Cloud App not available, <s>Dreamweaver officially not ready for Proto</s></h1>

<p>While Adobe announced on Creative Cloud presentation that you can use the whole product family including the new Touch apps, this is only partially the truth. It is possible to use Proto and of course it is possible to use Adobe Dreamweaver. But you might think you can use both together and edit your wireframes from Proto inside of Dreamweaver. But the gateway still is not available.
In fact you can get it working manually. You just have to install the <a href="http://labs.adobe.com/technologies/protoextension/">beta plugin for Dreamweaver from Adobe Labs</a> and download your cloud files from creative.adobe.com manually. After installing the plugin you can open the .pro (Proto) files in Dreamweaver. The plugin will convert the wireframe into HTML and CSS code and you can start editing your site.</p>

<p><strong>UPDATE</strong>: Since of today Dreamweaver 6.0.1 update coming via Creative Cloud supports opening Adobe Proto files. Adobe integrated the former plugin into the Dreamweaver core.</p>

<h1 id="the-output-code">The output (code)</h1>

<p><img src="/assets/images/blog/2012-07-12_Proto/dw-proto_1.png" alt="screenshot of Adobe Dreamweaver with html output on it"></p>

<p>But if you are looking at what the Dreamweaver extension extracted from Proto wireframe, you will think again if you really want to use this tool for code.</p>

<p>As written before the boxes don&#39;t align to the grid. The converted CSS is totally blown-up by unnecessary properties and pixel-based layout stuff. But it misses a browser-reset or normalize. The HTML is a mix between HTML5, XHTML and wrong tags.
I set up a headline in Adobe Proto by choosing the headline-text-tool in the App. Now the result of this is a p-tag which is definitely not a headline-tag.</p>

<p><img src="/assets/images/blog/2012-07-12_Proto/dw-proto_2.png" alt="screenshot of Adobe Proto App with wireframe on it"></p>

<p>So my conclusion to Adobe Proto ist: If you only do a quick wireframe that isn&#39;t used for anything else than to share an idea, Adobe Proto might be a great help for you. If you want to use it for a real layout, wait for a maybe coming update that fixes all the things I wrote about. This tool is not ready yet. Sorry Adobe!</p>
 ]]></content>
        </entry>
        
        <entry>
            <title>My Coding Style and Guidelines</title>
            <link href="https://helloanselm.com/2012/my-coding-style-and-guidelines/"/>
            <updated>2012-07-07T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2012/my-coding-style-and-guidelines</id>
            <content type="html"><![CDATA[ <p>Harry Roberts was the first one <a href="http://csswizardry.com/2012/04/my-html-css-coding-style/">publishing his coding style for HTML/CSS</a>, <a href="http://drublic.de/blog/my-coding-style-and-guidelines/">Hans-Christian Reinl</a> followed the call to write down its own and now I will share my style, too.</p>

<p>I really should mention that this is only how I work. It doesn&#39;t mean by far that you should follow my style here from this day on but maybe I do some things you might use yourself in future projects.</p>

<p>Please let me know if you think that there are ways to do certain things better or in a more understandable way through comments.</p>

<h1 id="philosophy">Philosophy</h1>

<p>My own coding philosophy is simple: Make it as simple as it can be but understandable for everyone without explaining it in comments. The code should be self-explaining. If it is not, then use short comments to explain what you did. If your code is clean and self-explaining it will semantically be correct in most cases.</p>

<h1 id="frameworks">Frameworks</h1>

<p>I personally thought for a long time that I do not want to use frameworks because they are limiting my freedom of code. As I do not like to rewrite existing code for other purposes but prefer to write my own code I do not like many frameworks that have default output of code. This is why I do not like most CMS either and prefer <a href="http://modx.com/">MODX</a> or <a href="http://getkirby.com/">Kirby</a>.
But it totally makes sense to share ideas and reuse existing best practices. The <a href="http://html5boilerplate.com/">HTML5Boilerplate</a> exactly does it in the way I like it &ndash; it provides me a default minimal output of HTML I have to write on every website anyway. Not more, not less.</p>

<h1 id="html">HTML</h1>

<p>As HTML5 is not as strict in its syntax requirements as it was before, we could experiment with a lot looser code-style: &lt;li&gt;s are not requiring closing, some attributes do not require quotes, tags not needing to be lowercase and elements like &lt;hr /&gt;s not needing to be self-closing and much more. Above what I prefer or why I do not use the short-style:</p>

<h2 id="unquoted-attributes">Unquoted attributes</h2>

<p>The possibility to use unquoted attributes is no option for me. In HTML5 you&#39;re able to write <code>&lt;p class=myclass&gt;</code>. This is valid syntax and works for an example like this. But as I recommend to <em>write maintainable and scalable code</em>  I prefer writing with quotes. That allows me to add additional classes or other values later on. An unquoted attribute-value with space wouldn&#39;t be possible, so this is no option for me.</p>

<h2 id="no-self-closing-tags">No self closing tags</h2>

<p>In HTML5 it is not necessary anymore to add trailing slashes to self-closing tags. I prefer to set them because it tells me this element is closed then but this is personal choice and I would never give an advice which one to choose here.</p>

<h2 id="optional-closing-tags">Optional closing tags</h2>

<p>As mentioned before you don&#39;t have to close tags like &lt;li&gt;. This is a nice time-saver and as I use separate lines and tab-spaces this doesn&#39;t screw up your code-readability. But unfortunately most editors, IDEs, CMS and other software do not understand this behavior and could screw up the whole code I prefer to not do this in live-projects.
In fact, I use this style for private use when writing my HTML5-based presentation slides etc. And fortunately this works in Design-mode of Dreamweaver CS6 so this is like building the slides in Powerpoint.</p>

<h2 id="code-indentation">Code indentation</h2>

<p>I prefer using tabs because spaces are bad to maintain.</p>

<h2 id="whitespace">Whitespace</h2>

<p>I often changed my style on whitespace in the past. Now I use a lot of whitespace in the last year. This is mainly because of better code readability and maintainability. I just section the html-elements by applying or avoiding whitespace:</p>
<div class="highlight"><pre><code class="language-" data-lang="">&lt;dl&gt;
    &lt;dt&gt;&lt;/dt&gt;
    &lt;dd&gt;&lt;/dt&gt;

    &lt;dt&gt;&lt;/dt&gt;
    &lt;dd&gt;&lt;/dt&gt;

    &lt;dt&gt;&lt;/dt&gt;
    &lt;dd&gt;&lt;/dt&gt;
&lt;/dl&gt;

&lt;div class="promo"&gt;
    &lt;p&gt;&lt;strong&gt;Pellentesque&lt;/strong&gt; senectus&lt;/p&gt;
    &lt;a href="#" class="btn"&gt;Lorem&lt;/a&gt;
&lt;/div&gt;
</code></pre></div>
<p><hr></p>

<h1 id="css">CSS</h1>

<p>So that was my HTML coding-style but what about my CSS? This is a bit more tricky as it is another language. And there are preprocessors etc which also have their very own style.</p>

<h2 id="ids">IDs</h2>

<p>Some people lie Harry Roberts say &quot;never use IDs&quot;. I do not. I think IDs are valid and I use them regularly in projects. They are unique identifiers and that is what you have to consider when using IDs. If you are not as experienced with CSS I&#39;d recommend to just use classes but if you know what you do, IDs are a great help to identify single unique elements on a website. But always be careful and think if about it twice. Often you can use a class instead of an ID.</p>

<h2 id="comments">Comments</h2>

<p>This is where I differ from many developers. While many developers say comments have to be written in code to explain what I wrote, I am very careful with comments. You might find not more than 10 comments on a website / stylesheet sometimes in my sites. This is because I always try to write self-explaining code. That means either the elements explain theirselves or the classnames do that. I think this is the most effective and understandable way.
Of course I write basic comments to section the stylesheet for quick finding the right section.</p>
<div class="highlight"><pre><code class="language-" data-lang="">/* /NORMALIZE */
/* MAINSTYLE */
</code></pre></div>
<h2 id="the-shared-section">The shared section</h2>

<p>I try do this exactly like Harry Roberts. The shared section defines default values that apply to many basic selectors. Harry explained it as variables in vanilla CSS:</p>
<div class="highlight"><pre><code class="language-" data-lang="">a,.brand,h1,h2,h3,h4,h5,h6{
   color:#BADA55;
}
</code></pre></div>
<h2 id="formatting">formatting</h2>

<p>I do it the standard way:</p>
<div class="highlight"><pre><code class="language-" data-lang="">selector{
    color: #fff;
}
</code></pre></div>
<p>CodeKit does the minify for the production files.</p>

<h2 id="vendor-prefixes">Vendor prefixes</h2>

<p>I like the way writing vendor prefixes in the clean way. Although it needs a bit handcraft formatting it is worth it:</p>
<div class="highlight"><pre><code class="language-" data-lang="">selector{
    -webkit-box-sizing: border-box;
       -moz-box-sizing: border-box;
        -ms-box-sizing: border-box;
         -o-box-sizing: border-box;
            box-sizing: border-box;
}
</code></pre></div>
<h1 id="summary">Summary</h1>

<p>So that basically is my code-style. I hope it is helpful for some of my readers and maybe inspires you at some point but be aware that I would never would suggest you to change to my style. If you read <a href="http://csswizardry.com/2012/04/my-html-css-coding-style/">Harry&#39;s</a>, <a href="http://drublic.de/blog/my-coding-style-and-guidelines/">Hans&#39;</a> and my code-style you can see that we three differ completely in some points. So reconsider what is the best for <em>you</em>…</p>

<p>If you do write your own, please tweet it at me with the hashtag <a href="http://twitter.com/search/#codestyle">#codestyle</a>, that way everyone can easily keep track of any posts.</p>
 ]]></content>
        </entry>
        
        <entry>
            <title>#11 The crazy weekly</title>
            <link href="https://helloanselm.com/2012/reading-list-11/"/>
            <updated>2012-07-06T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2012/reading-list-11</id>
            <content type="html"><![CDATA[ <p><strong>This week there is a very extraordinary ship in my link list. Why? Because it is so crazy you have to see it. But some webdev and DPS stuff is also attached :)</strong></p>

<ul>
<li><p>This is Wally, the mega yacht. Check out their website to see more awesome boats: <a href="http://www.wally.com/why/"><img src="/assets/images/blog/2012-07-06/wy.jpg" alt="mega-yacht on sea"></a></p></li>
<li><p>Now <a href="https://speakerdeck.com/u/matthewreidsma/p/responsive-web-design-for-libraries-get-beyond-the-myth-of-the-mobile-web-1">this presentation</a> shows you a summary on what is responsive webdesign. It really is worth it!
<script async class="speakerdeck-embed" data-id="4fe7fa63558e2d001f020d47" data-ratio="1.3333333333333333" src="//speakerdeck.com/assets/embed.js"></script></p></li>
<li><p>Improved developer tooling, <a href="http://addyosmani.com/blog/improved-developer-tooling-and-yeoman/">read</a> an see the video.</p></li>
<li><p><a href="http://thephuse.com/development/build-responsive-websites-faster-with-sass/">How to build</a> responsive webdesigns faster with SASS.</p></li>
<li><p>Now let&#39;s face it: Finally there seems to be a way to <a href="http://digitalpublishing.tumblr.com/post/26564811021/cross-publication-linking-bonus-qr-codes">link between DPS publications</a> and it is not that hacky as the last try by Johannes was. As a bonus learn how to create QR codes for a DPS-publication link.</p></li>
</ul>

<h3 id="update">UPDATE:</h3>

<p>I just forgot one good link:</p>

<ul>
<li>This is about a student who <a href="http://www.minimallyminimal.com/journal/2012/7/3/the-next-microsoft.html">rebranded Microsoft to a better brand</a>.
<img src="http://www.minimallyminimal.com/storage/post-images/microsoft/m09.jpg?__SQUARESPACE_CACHEVERSION=1341179392750" alt=""></li>
</ul>
 ]]></content>
        </entry>
        
        <entry>
            <title>Adobe Digital Publishing Suite for Pro's</title>
            <link href="https://helloanselm.com/2012/adobe-digital-publishing-suite-for-pros/"/>
            <updated>2012-07-03T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2012/adobe-digital-publishing-suite-for-pros</id>
            <content type="html"><![CDATA[ <p><strong>I recently held a talk at Deutsche Publishing-Konferenz 2012 in Munich about Adobe&#39;s Digital Publishing Suite. Now the conference organizers (you might know I am part of it) published the video of the session. The presentation slides are build in, so just enjoy it. Only requirement is you understand German as it was a German conference.</strong></p>

<p><iframe src="http://player.vimeo.com/video/45066872?color=D13066" width="780" height="439" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe> <p><a href="http://vimeo.com/45066872">Digital Publishing-Suite für Profis</a> from <a href="http://vimeo.com/dpkonf">Deutsche Publishing-Konferenz</a> on <a href="http://vimeo.com">Vimeo</a>.</p></p>
 ]]></content>
        </entry>
        
        <entry>
            <title>#10 – Anniversary of the links of the week!</title>
            <link href="https://helloanselm.com/2012/reading-list-10/"/>
            <updated>2012-06-29T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2012/reading-list-10</id>
            <content type="html"><![CDATA[ <p><strong>Some new stuff arrived this week and you should be part of it. So take note of it and share again.</strong></p>

<ul>
<li><p>Parallax scrolling library with zero dependencies. So no jQuery or iScroll needed. It is fast, unobstrusive and seems to be a good alternative to stellar.js: <a href="https://github.com/Prinzhorn/skrollr">Skrollr</a></p></li>
<li><p>This tool makes EPUBs with fixed layouts out of InDesign documents: <a href="http://www.rorohiko.com/wordpress/manuals/fixed-layout-epub-assistant-in-indesign-epubcrawler/">EPUB Crawler</a></p></li>
<li><p>A responsive ebook build with webstandards. This is what Kristofer Layon did:
<iframe width="640" height="360" src="https://www.youtube-nocookie.com/embed/rKqpjhkaCc8" frameborder="0" allowfullscreen></iframe></p></li>
<li><p>Stalemate: <a href="http://morgamic.com/2012/04/26/stalemate-are-you-building-a-culture-of-silence/">Are you building a culture of silence</a>? This is an article about communication problems in our culture. Workers should speak up, people should be open to this:</p></li>
<li><p>While the previous article describes the problems, this site is awesome and <a href="http://weareallaweso.me/">tells you why you are</a>, too!</p></li>
<li><p><a href="http://xip.io/">xip.io</a> is a wildcard DNS for everyone by 37signals. You can use this to get a wildcard DNS for your own IP. This is very useful for testing purposed when you need a nameserver. And it works with Adobe Shadow and similar products.</p></li>
</ul>
 ]]></content>
        </entry>
        
        <entry>
            <title>Links of the week #9 – Work, Life and Side Projects</title>
            <link href="https://helloanselm.com/2012/reading-list-9/"/>
            <updated>2012-06-21T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2012/reading-list-9</id>
            <content type="html"><![CDATA[ <p><strong>Some new stuff arrived this week and you should be part of it. So take note of it and share again.</strong></p>

<ul>
<li><p>Paul Boag writes in the Smashing Magazine about <a href="http://www.smashingmagazine.com/2012/06/19/work-life-and-side-projects/">Work, Life and Side Projects</a>. This is a very useful read for your life. Just think about it and maybe change some things to improve your developer&#39;s life&hellip; :)</p></li>
<li><p><a href="http://www.html5rocks.com/en/tutorials/security/content-security-policy/">An Introduction to Content Security Policy</a> describes how to secure down your website and content for the user and serving all correct via SSL and avoid XSS.</p></li>
<li><p><a href="http://everytimezone.com/">Visual time zone converter</a>. Yeah! If you need an iOS App, check out <a href="http://itunes.apple.com/de/app/synchronize/id371177261?mt=8">Synchronize</a>.</p></li>
<li><p><a href="http://www.igvita.com/2012/06/14/debunking-responsive-css-performance-myths/">Debunking Responsive CSS Performance Myths</a> – this article shows what myths you might heard of are wrong. So read it, and rethink if you are right on responsive CSS performance.</p></li>
<li><p>Hell yeah, Front Trends 2012 videos are live! Check them out <a href="https://vimeo.com/user9986068">here</a> or watch two of them in my blog:
<iframe src="http://player.vimeo.com/video/44182484?byline=0&amp;color=d13066" width="630" height="354" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>
<iframe src="http://player.vimeo.com/video/44297900?byline=0&amp;color=d13066" width="630" height="354" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe></p></li>
</ul>
 ]]></content>
        </entry>
        
        <entry>
            <title>[Weekly Roundup #8] Links of the week</title>
            <link href="https://helloanselm.com/2012/reading-list-8/"/>
            <updated>2012-06-15T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2012/reading-list-8</id>
            <content type="html"><![CDATA[ <p><strong>After some weeks of silence for the links of the week here is the new issue.</strong></p>

<ul>
<li><p><a href="https://www.blossom.io/">Blossom.io</a> &ndash; a project management tool for $9/month which looks promising and as easy as the new Basecamp is (by the way: the new Basecamp is awesome except it has no mobile website view).</p></li>
<li><p>Here is a nice article about the <a href="http://www.typotheque.com/articles/opentype_features_in_web_browsers">new CSS3 OpenType features</a> and how you can use it. Also a comparison chart is there to display which browsers support the specific styles.</p></li>
<li><p>Finally this silly scaling bug is resolved in iOS6:
<blockquote class="twitter-tweet" lang="de"><p>I have seen it with my own eyes: as of iOS 6.0, the orientationchange/scale bug is dead.<a href="http://t.co/kfeBye74" title="http://filamentgroup.com/examples/iosScaleBug/">filamentgroup.com/examples/iosSc…</a></p>&mdash; Mat “Wilto” Marquis (@wilto) <a href="https://twitter.com/wilto/status/212636063762628608" data-datetime="2012-06-12T20:02:42+00:00">Juni 12, 2012</a></blockquote>
<script src="//platform.twitter.com/widgets.js" charset="utf-8"></script></p></li>
<li><p>I am talking about responsive images in German podcast <a href="http://workingdraft.de/73/">&quot;Working Draft&quot;</a> and  about CSS compositing, CSS blending, Quota Management API and CORS.
As of this, Matthew Wilcox <a href="http://dev.opera.com/articles/view/responsive-images-problem/">wrote for the Opera Dev Channel</a> a big summary of the topic, too.</p></li>
<li><p>If you thought SPDY is this brilliant performant and superfast new &quot;HTTP&quot; you might be wrong. Guy Podjarny <a href="http://www.guypo.com/technical/not-as-spdy-as-you-thought/">shows the results</a>.</p></li>
<li><p>iOS6 will have increased AppCache and now is up to 25MB:
<blockquote class="twitter-tweet" lang="de"><p>Hey, <a href="https://twitter.com/search/%2523iOS6">#iOS6</a> will have increased HTML5 <a href="https://twitter.com/search/%2523AppCache">#AppCache</a> up to 25MB (5MB currently)!</p>&mdash; Anselm Hannemann (@anselmhannemann) <a href="https://twitter.com/anselmhannemann/status/212435080516349952" data-datetime="2012-06-12T06:44:04+00:00">Juni 12, 2012</a></blockquote>
<script src="//platform.twitter.com/widgets.js" charset="utf-8"></script></p></li>
<li><p>The <a href="http://taitems.tumblr.com/post/24936855546/what-ios-6-mobile-safari-offers-front-end-devs">new tools for developers in iOS6</a>.</p></li>
<li><p>Apple presented its own maps tool for iOS6 so they don&#39;t have to rely on Google&#39;s Maps. Here is a comparison what the tools look like each other: <a href="http://ganzfrische.frischmil.ch/post/24944710178">&quot;Your own maps, eh?&quot;</a></p></li>
<li><p>I wrote an <a href="http://screengui.de/magazin/magazin-archiv/detail/e-payment-css4-boilerplates.html">article about MODX Revolution</a> in the German magazine &quot;Screenguide&quot;. If you haven&#39;t tried MODX yet and you&#39;re from Germany get this issue. It also contains several very interesing articles in the same issue of the magazine about web development, HTML5 and CSS4.</p></li>
</ul>
 ]]></content>
        </entry>
        
        <entry>
            <title>Why I removed the Social Media Buttons</title>
            <link href="https://helloanselm.com/2012/social-media-icons/"/>
            <updated>2012-06-12T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2012/social-media-icons</id>
            <content type="html"><![CDATA[ <p><strong>There has been some discussion about social media buttons on websites. Because most of the buttons are crap by code-design and can break your website it is worth considering to remove them.</strong></p>

<p>As <a href="http://informationarchitects.net/blog/sweep-the-sleaze/">Oliver Reichenstein by iA</a> wrote last week, it is not worth it embedding the social media buttons. Here is why I removed them now:</p>

<ul>
<li><p>I already removed Facebook Button several months ago because the servers by Facebook sometimes are really slow and actually affected my site&#39;s performance. After removing these lacks were eliminated.</p></li>
<li><p>All these buttons rely on external servers which of I do never know they are online. And if they are not or have an overload your site will hold loading until this widget works.</p></li>
<li><p>They are not worth it. The design is mostly ugly and the users often do not click the buttons at all.</p></li>
<li><p>Users who share my blog posts actively do it anyways and the response might be bigger than with an predefined sharing-text.</p></li>
</ul>

<p>And additionally the existing heise.de SocialButton script which loads images by default and executes the real code after the first click relies on jQuery which I don&#39;t really need here.</p>

<p>Thanks for understanding, and please share my articles manually. It also makes your timeline prettier. Just reference my twittername <a href="https://twitter.com/anselmhannemann">@anselmhannemann</a> if you like.</p>
 ]]></content>
        </entry>
        
        <entry>
            <title>Creating interactive Overlays for Adobe DPS with Edge</title>
            <link href="https://helloanselm.com/2012/creating-interactive-overlays-for-adobe-dps-with-edge/"/>
            <updated>2012-05-29T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2012/creating-interactive-overlays-for-adobe-dps-with-edge</id>
            <content type="html"><![CDATA[ <p><strong>Adobe Edge (currently in 6th preview release) is a new product by Adobe to create HTML5-animations and interactive content natively in HTML5/JavaScript. Here is a tutorial how to use it for the Adobe Digital Publishing-Suite.</strong></p>

<p>Since <a href="http://labs.adobe.com/technologies/edge/">preview 6 of Adobe Edge</a> you are able to directly export your Adobe Edge animations for Adobe DPS. Since it is only HTML it was possible to easily use it ever since but with the new export and InDesign CS6 you have all settings already set. Your overlay is set automatically and you only have to import the .oam-file into InDesign.</p>

<ol>
<li><p>Build your animation in Adobe Edge
<img src="/assets/images/blog/2012-05-29_EdgeID/edge-1.png" alt="screenshot of building an animation in Adobe Edge"></p></li>
<li><p>Go to &quot;File &rarr; Publish Settings…&quot; and select the tab for &quot;InDesign/DPS&quot;. There you choose the destination for the export and the name as well as you can set a Poster Image (if none set, it will create one automatically). Press okay.
<img src="/assets/images/blog/2012-05-29_EdgeID/edge-3.png" alt="screenshot of publish settings panel in Adobe Edge"></p></li>
<li><p>After that you now go to &quot;File &rarr; Publish&quot; and Adobe Edge exports the chosen export-options.</p></li>
<li><p>Navigate in your Finder to the publishing folder. You will find an .oam-file. This is your zipped HTML container which now will be imported in InDesign.</p></li>
<li><p>Open up Adobe InDesign (CS6+) and create your new file (or choose an existing one). Then import your .oam-file using the Place-option. Then just place your frame on the InDesign page as you would do normally. InDesign automatically creates an HTML-overlay in your Overlay Creator panel.
<img src="/assets/images/blog/2012-05-29_EdgeID/edge-6.png" alt="screenshot of importing the Edge file in InDesign"></p></li>
<li><p>View it on your iPad or on Desktop Preview (which has some bugs if you have very special animation, so it is safer to use a real device). Done.</p></li>
</ol>

<p>Here are all the files to download and test. Please note this is under full copyright and only for testing purposes.</p>

<p><a href="/assets/files/blog/2012-05-29_EdgeID/dps-edge-tutorial.zip">Download Assets</a></p>
 ]]></content>
        </entry>
        
        <entry>
            <title>Creative Cloud - Suite 6 IDUG DE-Tour 2012</title>
            <link href="https://helloanselm.com/2012/creative-cloud-suite-idug/"/>
            <updated>2012-05-15T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2012/creative-cloud-suite-idug</id>
            <content type="html"><![CDATA[ <p>Right after the <a href="http://anselm-hannemann.com/blog/2012/05/">DPK12</a> I had some days to organize my normal life. Only several days later, I travelled to Düsseldorf where the <a href="http://www.indesignusergroup.com/chapters/rhein-ruhr/">IDUG Rhein/Ruhr</a> gave the kick-off to the <a href="http://indesignusergroup.de/">CS6 IDUG DE-Tour</a>.</p>

<p><img src="https://fbcdn-sphotos-a.akamaihd.net/hphotos-ak-snc7/303481_10150721696892101_88302222100_9548598_1346317964_n.jpg" width="650"></p>

<p>I travelled to most of the German chapters of the InDesign User groups and supported them to present the brand new Creative Suite 6 and Creative Cloud. Along with Ingo Eichel and Markus Jasker from Adobe the chapter representatives and I presented the new features of the applications in CS6.</p>

<ol>
<li><p>My first stop was at the FH Düsseldorf where over 90 people attended to the event and we had a great start with IDUG-RR. <img src="https://fbcdn-sphotos-a.akamaihd.net/hphotos-ak-snc7/410926_398737123500273_179343735439614_1221399_120775511_o.jpg" width="650"></p></li>
<li><p>In Cologne we had over 100 people listening to us in the Betahaus Cologne and the nice after-party for our chapter rep Tim Gouder who had his birthday the next day. <img src="https://fbcdn-sphotos-a.akamaihd.net/hphotos-ak-snc7/319847_10150721690987101_88302222100_9548531_544786294_n.jpg" width="650"></p></li>
<li><p>My third stop was in Berlin where we had two separate meetings: one in the afternoon and one in the evening. Counting them together we had more than 110 people attending and the feedback was great!
The days after, I stayed in Berlin and had some great days there, meeting some really cool people! <img src="http://www.idug-berlin.de/wp-content/uploads/2012/05/DSC_0298.jpg" width="650"></p></li>
<li><p>The following Monday I arrived at Frankfurt/Offenbach where the next meeting was held. The IDUG Rhein/Main held the meeting at the &quot;Weinstube&quot; (wine-bar) with a great atmosphere. Also more than 60 people were sitting in the small rooms and listened carefully to the news of the Creative Suite 6.</p></li>
<li><p>Now I skipped the meeting in Stuttgart where Orhan Tançgil replaced my part and the meeting in Zurich/Bern (Switzerland) where Haeme Ulrich and Michel Mayerle showed the news.
Instead, I had two days spare before our meeting in Munich was held on thursday. Our special guest besides Ingo Eichel from Adobe was <a href="http://www.einmanncombo.de/">Klaas Posselt</a> from the IDUG Berlin. We had over 110 people in our room at <a href="">tgm</a> and got very positive feedback from the crowd! Also we had free beer after the show because we had something to party: IDUG Munich had its 4th birthday on this meeting! That means the IDUGM exists already for four exciting years!</p></li>
<li><p>Finally I arrived at Hamburg together with Klaas the next day and we had one of the worst hotel experience. 125€ per night (and person) for a chamber which had no wifi, no TV and very bad service. Nevertheless we had a wonderful IDUG meeting in Hamburg and showed some more news about Creative Cloud and CS6.
To finish the last wonderful weeks we had a great dinner and a great night!</p></li>
</ol>

<p>For those who didn&#39;t attend to one of the meetings I will also say what I talked about at the meetings: I showed off the features of Adobe Photoshop CS6, Dreamweaver CS6, Adobe Edge and Adobe Digital Publishing Suite 2.0!</p>

<p>Now I will need some time to recover and doing the &quot;normal&quot; working stuff. Some nice projects are waiting for me and I am looking forward to the next weeks of summer! :)</p>
 ]]></content>
        </entry>
        
        <entry>
            <title>Deutsche Publishing-Konferenz 2012</title>
            <link href="https://helloanselm.com/2012/deutsche-publishing-konferenz-2012/"/>
            <updated>2012-05-14T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2012/deutsche-publishing-konferenz-2012</id>
            <content type="html"><![CDATA[ <p>My last blog post has been published several weeks ago. I apologize the delay and want to report what happened. But first I want to say thank you to all my supporters and people helped me making all the great things recently!</p>

<p>Most of you may have already heard that I have been co-organizing a big conference in Germany: The <a href="http://publishing-konferenz.de/">&quot;Deutsche Publishing-Konferenz 2012&quot;</a>.
Last year I started to think about doing a conference for publishing in Germany. I also met with <a href="http://pub-com.de/">Hans Neumair</a> and <a href="http://complizenwerk.de/eigner">Wolf Eigner</a>, my <a href="http://www.indesignusergroup.com/chapters/munich/">IDUG Munich</a> colleagues who had the same idea. Back then there were no such events here but the demand by people was high. With <a href="http://einmanncombo.de/">Klaas Posselt</a>, <a href="http://51nullacht.de/">Stephan Mitteldorf</a>, <a href="http://indesign-blog.de/">Tim Gouder</a> and Hans Neumair I started to organize this event in Munich. Our host <a href="http://www.cmt.de/">c//m//t GmbH</a> supported us in the background, thanks for that! We worked very hard for the last 13 months to let this be an awesome event. And that it was! This is me presenting some cool DPS stuff on the main stage…</p>

<p><img src="http://farm8.staticflickr.com/7236/7159485260_e2dd953954_z.jpg" alt="Anselm on stage showing Adobe Digital Publishing Suite tricks" title="DPS for Pros by Anselm Hannemann at DPK12"></p>

<p>On April, 27th, when all things finally had been prepared and all speakers had arrived at the Hotel Vitalis in Munich the DPK12 opened its doors for over 200 attendees.
After the keynote we had the chance to present a very unique and special thing to our attendees – the Adobe Creative Suite 6 was showed live the first time in Europe (I really don&#39;t know if worldwide but chance is very good!) only 3 days after Adobe announced it online!</p>

<p><a href="http://rufus.deuchler.net/">Rufus Deuchler</a> showed the most awesome features of Photoshop CS6, Illustrator CS6 and InDesign CS6 as well as other cool stuff. Also the Creative Cloud has been presented live (which is also pretty awesome because it has never been shown live before!) with Touch Apps and Cloud sync. People were pretty impressed by this new stuff and the public response was great!</p>

<p>Friday evening the conference party took place with a show-programm and the after-party with some speakers and the internal-staff (us) ended late.
Luckily the weather was very nice and we had sunny days without any clouds at 27-32°C!! What a nice play together… ;)</p>

<p><img src="http://farm8.staticflickr.com/7217/7159497586_9d958486af_z.jpg" alt="Rufus on stage showing the CS6" title="Rufus Deuchler showing the Creative Suite 6 live at DPK12 on main stage"></p>

<p>The next day started with a relaxed kick-off at 10a.m. but when Tim Gouder presented InDesign tips and tricks the room was full while Markus Jasker and Ingo Eichel presented the Creative Cloud live to the crowd next door!
Some other great talks followed and finally we reached the end of the event at 5p.m.. The feedback for DPK12 was so amazing that we were totally blown away by the positiveness and great response!
Thanks to all who attended the event and liked, supported or somehow said something about it!</p>

<p>As a side note I have to give the link to my presentation I held at DPK12 about <strong>&quot;Adobe Digital Publishing Suite for Pro&#39;s&quot;</strong> here. You can find the slides at: <a href="anselm-hannemann.com/slides/#!/presentations/DPK12-DPSPro/1">anselm-hannemann.com/slides/</a>. You should view the presentation in a modern browser to see full experience or print it as raw-sheet.</p>
 ]]></content>
        </entry>
        
        <entry>
            <title>Why the WHATWG somehow sucks!</title>
            <link href="https://helloanselm.com/2012/why-the-whatwg-somehow-sucks/"/>
            <updated>2012-05-13T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2012/why-the-whatwg-somehow-sucks</id>
            <content type="html"><![CDATA[ <p><strong>Yesterday I found out that the WHATWG has failed once again. That seems nothing new to some people because there were several issues with the WHATWG recently but here is another topic where the WHATWG completely seem to have failed: Responsive images.</strong></p>

<p>Mathew Marquis posted a <a href="http://www.w3.org/community/respimg/2012/05/11/respimg-proposal/">new topic in our W3C responsive images group</a>. This blew me away because he wrote that in WHATWG IRC chat they were discussing a solution for responsive images in HTML.</p>

<p>You all know (if you are a reader of my blog or follow me) that this is what the W3C group and I discuss since 9 months now. I started the topic back in August 2011 on the WHATWG mailing list. This is where all the solution had its beginning and somehow (I cannot imagine why) I thought people from WHATWG are reading this mailing list. And surely I know they do because they even replied to the topic which had been in mailing lists for months (last post with solutions was end of January this year). So here we have discussed <a href="https://gist.github.com/1158855">my proposed extension of the img-tag</a>, the new element now called picture-element and many many other solutions.</p>

<p>Now after 9 months, the WHATWG IRC channel <a href="http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2012-May/035746.html">proposed yet another solution</a> with the awful syntax looking like this:</p>
<div class="highlight"><pre><code class="language-" data-lang="">&lt;img src="face-600-200@1.jpg" alt="" set="face-600-200@1.jpg 600w 200h 1x, face-600-200@2.jpg 600w 200h 2x, face-icon.png 200w 200h"&gt;
</code></pre></div>
<p>Now, this solution had its roots when Apple released the &quot;new iPad (3)&quot; and needed to serve responsive images. They started to use a similar syntax in CSS. No standard. I don&#39;t know if any of the people how now proposed this syntax are working on real websites and ever thought about standard-ways. It does not seem so because this syntax is hardly maintainable, awful and not easy to write. Additionally we never had such a syntax in HTML or CSS before.</p>

<p>To make it short: The topic appeared in our W3C responsive images group and now after only 2 days we already had 160 replies stating nearly all that the WHATWG-proposal is total crap and the picture-element is in favour. Also <a href="https://gist.github.com/1158855">my img-tag extension</a> would be way better than the proposal.</p>

<p>Now please discuss here or <a href="http://www.w3.org/community/respimg/2012/05/11/respimg-proposal/">in the group</a> what you think about this topic.</p>

<p><em>Disclaimer: I won&#39;t offend any of the WHATWG-members with the title of my blog post. But this topic should not have appeared at all and I only want to make this better in the future. So please, before posting and discussing new solutions, search the internet, first read the existing solutions and topics and then you might not even start a new discussion. This is the first thing I learned when I started using the internet and forums. Thank you for listening!</em></p>
 ]]></content>
        </entry>
        
        <entry>
            <title>A chance for WebP?</title>
            <link href="https://helloanselm.com/2012/a-chance-for-webp/"/>
            <updated>2012-04-14T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2012/a-chance-for-webp</id>
            <content type="html"><![CDATA[ <p><strong>WebP (&quot;Weppy&quot;) is this image format we heard much about. The format has been developed by Google and has a better compression than JPEG while it saves bytes on graphics also comparing to PNG. Unfortunately only 33% of the browsers support it yet. Time for a change…</strong></p>

<h2 id="first-some-explanations-why-we-need-the-change">First some explanations why we need the change</h2>

<p>We are having a problem with our devices right now. As there are more and more devices in our world that differ in screen resolution, size, projection, the problem of resolutions is getting worse.
The super simple explanation is: There is one picture you want to display on a 320x240px screen and at the same time have this image printed (300dpi) or displayed on an iPad3 (2048x1536px). How in hell should that work with current file-formats? It won&#39;t ever.</p>

<p>This is why we decided that we need responsive images / media. I am part of the <a href="http://www.w3.org/community/respimg/">W3C Community Working Group &quot;responsive images&quot;</a> and we came across many problems there. We discussed HTML-solutions, CSS-solutions, Javascript-solutions, Polyfills as well as about responsive image formats. Trying to come up with a standard solution is not as easy as you might think it is.
But our point today should focus only on one of these topics:</p>

<h2 id="responsive-file-formats">Responsive file formats</h2>

<p>The community thinks we should have a file-format which is able to serve different resolutions by the mobile-first concept. And this is what I am looking for as well. So we discussed if we could somehow take care of this issue in our W3C group and came to the point that we can&#39;t.
We are not responsible for file-formats but we are for HTML in this case. So we decided to outsource this problem. But it is in my personal interest that this topic reaches the right people: the browser vendors and the developers of WebP.</p>

<h2 id="why-webp">Why WebP?</h2>

<p>You now might wonder why this is only about <a href="https://developers.google.com/speed/webp/">WebP</a>. I talked to many people and each and every time we came to the conclusion that only WebP provides the power and possibilities to implement that concept.</p>

<p>First, I would like to mention that it is proven that the concept can be implemented into an image format. A similar approach can be found in the <a href="http://en.wikipedia.org/wiki/MrSID">MrSID-format</a> and it is partially implemented in JPE2000. This MrSID-format is able to &quot;stream&quot; images, in this case satellite pictures.</p>

<p>And now we need an image format which is good regarding to image quality (WebP is already for photos and graphics), which is universal (WebP combines JPEG and PNG / graphics and photos in one format), outputs small files (<a href="https://developers.google.com/speed/webp/docs/webp_lossless_alpha_study#results">WebP does</a>) and which is actively developed. All these point perfectly fit to WebP.
The file format is actively under development and as the market share is not that big yet we have the chance to now expand the format featuring this streaming behavior.
If you would like to use WebP today, you are already able to do so: Chrome and Opera support WebP natively. For all others some tough people developed a <a href="http://antimatter15.github.com/weppy/demo.html">WebP-shim for Firefox</a> and even a full <a href="http://webpjs.appspot.com/">Javascript-powered WebP-decoder</a>.</p>

<h2 id="spread-the-message">Spread the message</h2>

<p>I am sure that if WebP would offer such a feature, this format would become famous and maybe replace JPEG and PNG as a file format on digital devices.
<strong>So please</strong></p>

<ul>
<li><strong>share this post</strong></li>
<li><strong>ping the WebP community and developers</strong></li>
<li><strong>ping the browser vendors and Google</strong></li>
</ul>

<p><strong>This is a topic that would solve many problems for us web developers (no additional technique needed for responsive images in most cases), for the mobile network providers (saves bandwidth) and for the users (performance).</strong></p>

<p>Thanks in advance for helping this topic to be addressed!
-Anselm</p>
 ]]></content>
        </entry>
        
        <entry>
            <title>[Weekly Roundup #7] Hot links of the week</title>
            <link href="https://helloanselm.com/2012/reading-list-7/"/>
            <updated>2012-04-13T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2012/reading-list-7</id>
            <content type="html"><![CDATA[ <p><strong>My favorite links from the past days.</strong></p>

<ul>
<li><p>Some colors with great music!
<iframe width="640" height="360" src="https://www.youtube-nocookie.com/embed/Hh-o5g4tLVE" frameborder="0" allowfullscreen></iframe></p></li>
<li><p><strong>Adobe Shadow</strong> labs release 2 is here. Now with localhost support, Adobe Edge integration, Kindle Fire support and improved workflow:
<a href="http://labs.adobe.com/technologies/shadow/">Adobe Shadow x2</a></p></li>
<li><p><strong>Google Currents</strong> is available now. Read here about what it is and what it is not for: <a href="http://anselm-hannemann.com/blog/2012/04/12/some-thoughts-on-google-currents/">Thoughts about Google Currents</a></p></li>
<li><p>Read the <a href="http://rmurphey.com/blog/2012/04/12/a-baseline-for-front-end-developers/">baseline for frontend developers</a></p></li>
<li><p>Why Browsers suck so hard on audio-element with HTML5. Chris Heilman explains his <a href="http://thewebrocks.com/demos/audiosprite/">Audio sprite test</a>:
<a href="http://hacks.mozilla.org/2012/04/html5-audio-and-audio-sprites-this-should-be-simple/">HTML5 audio sprites should be simple!</a></p></li>
<li><p>Use good typo with modern browsers now. You can use in Safari, Chrome and Firefox (uses it by default on font-size above 20px):
<a href="http://aestheticallyloyal.com/public/optimize-legibility/">optimizeLegibility</a></p></li>
<li><p><strong>CSS Template Layout module.</strong> This is an approach to solve the long existing problems of CSS not being able to serve real layouts without HTML:
<a href="http://www.w3.org/TR/css3-layout/">CSS Template Layout WorkingDraft</a></p></li>
<li><p><strong>CSS blend modes</strong> are coming. This is awesome. Here&#39;s the <a href="http://vhardy.github.com/presentations/html5-community-meet-up-2012/#/7/14">summary of the W3C draft</a></p></li>
<li><p><strong>Using icon fonts</strong>: This is about the real accessibility problems with icon fonts.
<a href="http://pictos.cc/articles/using-icon-fonts/">Blog article about using icon fonts</a></p></li>
<li><p><strong>Easy HTML prototyping</strong>:
<a href="http://fireapp.handlino.com/">Fire.app</a></p></li>
</ul>

<p>Oh, that&#39;s it. Sorry, I have no more great links to share this week. Maybe next time!</p>
 ]]></content>
        </entry>
        
        <entry>
            <title>Some thoughts on Google Currents</title>
            <link href="https://helloanselm.com/2012/google-currents/"/>
            <updated>2012-04-12T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2012/google-currents</id>
            <content type="html"><![CDATA[ <p><strong>Google Currents is a digital publishing platform to create digital magazines for Android and iOS devices very easily. Within six steps you can create your own magazine with dynamic content.</strong></p>

<p>While you normally need to either know HTML, CSS and Javascript (Baker / Laker Framework) or have to buy expensive software like Adobe InDesign and Digital Publishing Suite Google now offers an easy way to publish your content as a digital magazine.</p>

<iframe width="640" height="360" src="https://www.youtube-nocookie.com/embed/5LOcUkm8m9w" frameborder="0" allowfullscreen></iframe>

<p>Google Currents is public and live since yesterday after being in beta since a few months. The platform is built as a single &quot;Kiosk&quot; app where you can have your own publication in. This is as easy as it could be: You only have to import your data from your blog or social media channels (YouTube, Google+, etc.). And you can integrate Google Docs into the magazine, too.
If you are a publisher you can start with the <a href="https://www.google.com/producer/">Google Currents producer</a> with the simple steps:</p>

<ol>
<li>Set your publication&#39;s name and meta and decide to use Google Analytics and if you want to have the user&#39;s e-mails.</li>
<li>Create &quot;sections&quot;. There you can split up your contents, for example a sections for your blog, one for the videos and one for social media news.</li>
<li>Now you manage your content. You can edit, remove and add content here. You have a preview all the time.</li>
<li>Media Library: Manage all your external media here.</li>
<li>ACLs: Grant access and rights to different users here. This is great when working with several people on the same issue.</li>
<li>Now distribute your publication! First you can test the publication by just capturing the QR-Code with your device where you have installed the <a href="http://itunes.apple.com/us/app/google-currents/id459182288">Google Currents App for iOS</a> or <a href="https://play.google.com/store/apps/details?id=com.google.android.apps.currents">Android</a>. You can also set a publication date when it should be live.</li>
</ol>

<p>So it&#39;s just that easy. The problem is, that&#39;s also all you <em>can</em> do. No real layout changes etc are possible. And when you look to the reader-app on your device you will notice why: It looks like a RSS-reader or like Zite app &ndash; by Google.</p>

<p><strong>Conclusion: Google Currents is a super easy way to publish your existing contents (blog, etc.) to this new Kiosk. The Kiosk seems to work similar to Apple&#39;s Newsstand (but simpler). If you want to have your own layout and other options, this might not be the right way to go.</strong></p>
 ]]></content>
        </entry>
        
        <entry>
            <title>[Special Roundup #1] New webfont technologies and tools</title>
            <link href="https://helloanselm.com/2012/webfont-technologies-tools/"/>
            <updated>2012-04-07T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2012/webfont-technologies-tools</id>
            <content type="html"><![CDATA[ <p><strong>This is a special roundup of links and facts about webfonts.  And happy easter by the way!</strong></p>

<h2 id="icon-fonts">Icon-fonts!</h2>

<ul>
<li><p>The last months you probably have seen many of those <strong>&quot;icon-fonts&quot;</strong>. They&#39;re just great and a huge improvement for icon usage on websites. But how in world should we know which one to use and where to get them from? Chris Coyer (CSS-Tricks) has summed up:
<a href="http://css-tricks.com/flat-icons-icon-fonts/">Flat Icons and Icon fonts</a></p></li>
<li><p>Here&#39;s <strong>Fontomas, a webfont / iconfont creator and subsetter</strong>. You can make a limited symbols subset, with reduced font size, merge symbols from several fonts to single file, access large collections of professional-grade open source icons. Customize your fonts now!
<a href="http://nodeca.github.com/fontomas/">Fontomas</a></p></li>
<li><p>Then we have <strong>Entypo, a great icon-font</strong> you can use in your projects. It&#39;s under Creative Commons CC-BY-SA license and free to use with attribution. The good part is it&#39;s nice, it&#39;s free, it&#39;s SVG and OpenType and will have a webfont-service soon:
<a href="http://www.entypo.com/">Entypo</a></p></li>
</ul>

<h2 id="subsetting-and-webfont-generators">Subsetting and webfont-generators!</h2>

<ul>
<li><p>Now back to technology: FontFont released a handful tool called <strong>&quot;FF Subsetter&quot; which let&#39;s you optimize your webfonts in just three steps</strong>. You upload your webfont, reduce (by removing letters etc) or customize the font to your own settings, and download your custom webfont. Use this if you use local webfonts!
<a href="http://www.subsetter.com/">FF Subsetter</a></p></li>
<li><p>I often had the problem to only have one font-file (even when it was explicitly a webfont, licensed) e.g. OpenType. But you all know we need to have at least 3-5 different formats of the font to get it working in all major browsers. This is where the <strong>Fontsquirrel @font-face generator</strong> jumps in: You upload your webfont and it will be processed by fontsquirrel to other formats. Then you can download your complete @font-face kit including all the different font-types (TrueType, EOT, SVG, SVGZ, WOFF), the bullet-proof html/css implementation. And you also can have an &#39;expert mode&#39; where you can set many options about rendering, x-height-matching, subsetting, etc.
<a href="http://www.fontsquirrel.com/fontface/generator">Fontsquirrel Webfont-Generator</a></p></li>
</ul>

<h2 id="typography-details">Typography details!</h2>

<ul>
<li>Google WebFonts with its API is one of the most known and important webfont resource we currently have. This combined with TypeKit and FontDeck is a powerful alliance and they now created a <strong>Open Source project called &quot;OpenTypography&quot;</strong>. This project has the goal to bring better typography to every device with a digital screen. It has very good but rather short explanations to typographic basics (or problems as they&#39;re known in the web today) such as Kerning, ligatures etc.
<a href="http://opentypography.org/">Open Typography project</a></li>
</ul>

<h2 id="webfont-licensing-improved">Webfont licensing improved?</h2>

<ul>
<li>But what about the future? We need lots of more options on typography for the web / screen. And one of the bad sides of the whole font-thing is licensing. <strong>FontSlice is a new service trying to reduce font-costs</strong> for digital fonts by only let users pay for letters / characters they are actually using. It is an interesting concept and I am curious about this.
<a href="http://www.fontslice.com/">FontSlice</a>
<iframe src="http://player.vimeo.com/video/39006356?color=ffffff" width="600" height="337" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe></li>
</ul>

<h2 id="what-else-happy-easter">What else? Happy easter!</h2>
 ]]></content>
        </entry>
        
        <entry>
            <title>[Weekly Roundup #6] Responsiveness &amp; jQuery things</title>
            <link href="https://helloanselm.com/2012/reading-list-6/"/>
            <updated>2012-04-05T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2012/reading-list-6</id>
            <content type="html"><![CDATA[ <p><strong>My favorite links from the past days. This week most are about reponsive design and jQuery</strong></p>

<h2 id="let-39-s-talk-about-useful-jquery-scripts">Let&#39;s talk about useful jQuery scripts:</h2>

<ul>
<li><p>a jQuery plugin that makes it easy to share and demo code in-page, using GitHub gists:
<a href="http://srobbin.com/jquery-plugins/intelligist/">Intelligist</a></p></li>
<li><p>Rodney Rehm wrote a blog post about hooks in jQuery. A very interesting but probably unknown thing – so just read what you can do with jQuery hooks:
<a href="http://blog.rodneyrehm.de/archives/11-jQuery-Hooks.html">jQuery Hooks</a></p></li>
<li><p>Envision is a javascript to create visualizations for live-charts. It looks very promising for stock live charts e.g.:
<a href="http://www.humblesoftware.com/envision">Envision</a></p></li>
<li><p>Javascript/CSS3 title attribute styling with this simple snippet from Christian Schäfer (<a href="https://twitter.com/#!/derSchepp">@derSchepp</a>) (fix by Rodney Rehm):
<a href="http://jsfiddle.net/rodneyrehm/jXefF/4/">title-style-snippet</a></p></li>
</ul>

<h2 id="responsiveness-enhanced-with-css3">Responsiveness enhanced with CSS3</h2>

<ul>
<li><p>A CSS3 only slider. Nothing new but using quite good markup and simple CSS3 to do this. Unfortunately not fluid but still worth a try? Or maybe I should have published my slider I&#39;ve written some months ago, looks like it&#39;s basically the same… ;)
<a href="http://demosthenes.info/blog/495/CSS3-Animated-Image-Slider-Tutorial">CSS3-Slider</a></p></li>
<li><p>A horizontal CSS3-media-query driven layout which switches to a vertical on small devices. Nice showcase and maybe it&#39;s a inspiration for your next layout?
<a href="http://tympanus.net/Tutorials/ResponsiveHorizontalLayout/">Responsive Horizontal Layout</a></p></li>
<li><p>Responsive content navigator is a tutorial also from typomanus.net showing a content navigator using CSS3 only. This is something cool but I&#39;m not convinced if it&#39;s the right way to go because you don&#39;t have URI&#39;s in there.
<a href="http://tympanus.net/codrops/2012/03/23/responsive-content-navigator-with-css3/">CSS3 content navigator</a></p></li>
</ul>

<h2 id="searching-for-the-right-gift">Searching for the right gift?</h2>

<ul>
<li>Here&#39;s a non-development link which I think could be useful to you. Search for a gift fitting to the friend (you have to answer a few questions about him/her and get a list of fitting gifts). Very cool!
<a href="https://wantful.com/">Wantful</a></li>
</ul>

<h2 id="now-get-to-business">Now get to business!</h2>

<ul>
<li>Google posted a video yesterday with smart glasses. Supercool, just watch!
<iframe width="640" height="360" src="https://www.youtube-nocookie.com/embed/9c6W4CCU9M4" frameborder="0" allowfullscreen></iframe></li>
</ul>

<h2 id="easter-yes">Easter? Yes!</h2>

<p>You heard right: On sunday/easter I will publish another blogpost for you. It will be all about webfonts. Stay tuned and look for a new blog post this sunday! Happy easter!</p>
 ]]></content>
        </entry>
        
        <entry>
            <title>[Weekly Roundup] Links &amp; Technologies #5</title>
            <link href="https://helloanselm.com/2012/reading-list-5/"/>
            <updated>2012-03-30T00:00:00+02:00</updated>
            <id>https://helloanselm.com.com/2012/reading-list-5</id>
            <content type="html"><![CDATA[ <p><strong>My favorite links from the past days.</strong></p>

<ul>
<li><p>Grad3 is a cool gradient generator which allows several settings and quick-settings to generate a proper CSS3 gradient. You also can select which prefixes should be applied and it features a property inspector!   <a href="http://grad3.ecoloniq.jp/">Grad3</a></p></li>
<li><p>Multi Device Layout patterns are layout patterns for responsive designs.  <a href="http://www.lukew.com/ff/entry.asp?1514">Multi Device Layout Patterns</a></p></li>
<li><p><a href="http://blogs.adobe.com/webplatform/2012/03/22/adobe-webkit-hackathon-summary/">Adobe WebKit Hackathon Summary</a></p></li>
<li><p>Playing with Adobe Edge:
<a href="http://corlan.org/2012/03/19/playing-with-adobe-edge/">Playing Adobe Edge</a></p></li>
<li><p>A github Wiki about javascript libraries dealing with touch events, multitouch, normalizing across the Webkit/IE touch models:
<a href="https://github.com/bebraw/jswiki/wiki/Touch">Touch Wiki</a></p></li>
<li><p>HTML5 roundup: magazine-style Web layouts with CSS regions:
<a href="http://arstechnica.com/business/news/2012/03/html5-roundup-magazine-style-web-layouts-with-css-regions.ars">CSS Regions and magazine layouts</a></p></li>
<li><p>Chris Heilmann talked about &quot;Enabling webmakers and creating happy users&quot; at his talk on the MDN Hack Day in New York city, January 2012. Here are the slides combinable and selectable. Choose what you want to see:
<a href="http://icant.co.uk/talks/mdnhackday-nyc/">Enabling webmakers and creating happy users</a></p></li>
<li><p>Scott Jehl not only has done the great but also dangerous picture-polyfill but opened up a github bugbase for all the device browser bugs (mostly mobile iOS or Android). This will be an important source to search for such bugs:  <a href="https://github.com/scottjehl/Device-Bugs/issues">Device-Bugs Bugbase</a></p></li>
<li><p>How can you debug mobile devices and what tools can you use:
<a href="https://docs.google.com/presentation/d/1CCD9U50auA8UqRIRzLY2KefEBRhmx6sYXWz3PsRadk0/edit?pli=1#slide=id.p">Debugging Mobile Web - Tools and Best Practices - BayQuery Mar&#39;12</a></p></li>
<li><p>How to design tables responsive for mobile devices (German, but understandable):
<a href="http://grochtdreis.de/weblog/2012/03/27/eine-tabelle-mobil-freundlich-machen/">Tables for mobile</a></p></li>
<li><p>&quot;Touch&quot; is a github wiki where most of the mobile frameworks are listed and referenced to create multi-touch gestures with javascript:
<a href="https://github.com/bebraw/jswiki/wiki/Touch">Touch-Wiki</a></p></li>
<li><p>After Microsoft has proposed its own thoughts and specs for HTTP2 a Google employee responds what&#39;s wrong there:  <a href="http://www.belshe.com/2012/03/29/comments-on-microsofts-spdy-proposal/">Comments on MS&#39; SPDY proposal</a></p></li>
</ul>
 ]]></content>
        </entry>
        
        <entry>
            <title>[Weekly Roundup] Links &amp; Technologies #4</title>
            <link href="https://helloanselm.com/2012/reading-list-4/"/>
            <updated>2012-03-23T00:00:00+01:00</updated>
            <id>https://helloanselm.com.com/2012/reading-list-4</id>
            <content type="html"><![CDATA[ <p><strong>This weeks hot projects and links about web-technology, digital publishing and other inspiring stuff.</strong></p>

<ul>
<li><p>Video from Matt Wilcox about responsive design and responsive images:
<a href="https://vimeo.com/38947881">link to vimeo</a> <iframe src="http://player.vimeo.com/video/38947881?title=0&amp;byline=0&amp;portrait=0&amp;color=ffffff" width="600" height="337" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe></p></li>
<li><p>German presentation by Jens Grochtdreis about backend, frontend and why it should be developed separately. Of course, HTML is simple but at least the environment isn&#39;t. We have thousands of devices, lots of crappy browsers and new technology like HTML5 APIs, all with its own problems. You shouldn&#39;t develop a frontend just as a side-product:  <a href="http://speakerdeck.com/u/flocke/p/am-ende-ist-doch-alles-html">Am Ende ist doch alles HTML</a></p></li>
<li><p>Smashing Magazine has its own conference! Marc Thiele is on bord – check it out!
<a href="http://smashingconf.com/">Smashing Conference</a></p></li>
<li><p>beyond tellerand &amp;ndash play! Get your ticket soon if you haven&#39;t yet. It&#39;ll be totally worth the money!
<a href="http://play12.beyondtellerrand.com/">BT-Play!</a></p></li>
<li><p>Optimize Legibility in CSS. It turns on kerning and ligatures:
<a href="https://twitter.com/#!/clauseggers/status/180843993767223296">optimizeLegibility</a></p></li>
<li><p><a href="http://html5snippets.com/">html5snippets.com</a></p></li>
<li><p>jQuery 1.7.2 has been released:
<a href="http://blog.jquery.com/2012/03/21/jquery-1-7-2-released/">jQuery announcement</a> – but <a href="http://ismothereffinjqueryup.drublic.de/">is it up on CDNs</a>?</p></li>
<li><p>Clean up your dirty markup online:
<a href="http://dirtymarkup.com/">dirtymarkup.com</a></p></li>
<li><p>Adobe announced Photoshop CS6 public beta on thursday. Try on your own:
<a href="http://labs.adobe.com/technologies/photoshopcs6/">Adobe Photoshop CS6 public beta download</a></p></li>
</ul>
 ]]></content>
        </entry>
        
        <entry>
            <title>The perfect CMS?</title>
            <link href="https://helloanselm.com/2012/the-perfect-cms/"/>
            <updated>2012-03-21T00:00:00+01:00</updated>
            <id>https://helloanselm.com.com/2012/the-perfect-cms</id>
            <content type="html"><![CDATA[ <p><strong>Yesterday I shouted about extJS and you might have seen me shouting about my loved MODX CMS recently. I was asked by several people what I use as CMS instead of MODX. Answer is: none. I am searching for the perfect. Let me explain…</strong></p>

<p>My first choice is MODX as a CMS. It is so easy to develop a website with it and I only get the output I want. But there are some severe problems I have with it: Some user-experience issues and some bugs which made developing a site a pain recently.</p>

<p>But what to do now? I don&#39;t like TYPO3, Drupal, Wordpress and these systems at all. What I want is a CMS which provides me a basic interface (layout like MODX), no fancy js-framework behind it but functional. Better let me make a list:</p>

<ul>
<li>simple but functional manager</li>
<li>no JS-driven manager (extJS, JQM), only jQuery or similar extensions for some fancy stuff</li>
<li>responsive by default, so it&#39;s usable on every device</li>
<li>easy customizable and extendable with HTML5, CSS and jQuery</li>
<li>easy rights management (ACL)</li>
<li>nested / multi Template Variables (like MIGX offers to MODX or Processwire has)</li>
<li>easy blog system</li>
<li>easy templating system (like MODX has)</li>
<li>Markdown editor (I don&#39;t need TinyMCE, no one does), Markdown WYSIWYG for clients</li>
<li>super-fast performance in frontend and backend, this is most important</li>
<li>writing articles though Dropbox (send via e-mail or import frmo Dropbox maybe? API itself seems to slow)</li>
<li>super easy way to handle forms (also multi-site forms) and store values</li>
</ul>

<p>So I hope someone jumps in and please let me know why there&#39;s no such system on the market or if there is one! Write comments, share it. I just want the CMS-world to be a better place.</p>
 ]]></content>
        </entry>
        
        <entry>
            <title>Why I really learned to hate extJS</title>
            <link href="https://helloanselm.com/2012/why-i-really-learned-to-hate-extjs/"/>
            <updated>2012-03-20T00:00:00+01:00</updated>
            <id>https://helloanselm.com.com/2012/why-i-really-learned-to-hate-extjs</id>
            <content type="html"><![CDATA[ <p><strong>MODX CMS started to use extJS when developing MODX Revolution. The whole backend uses it. Because it&#39;s super-easy to build a huge backend interface with the framework, they are totally stuck with it. The problem with it is, that extJS is big and unhandy.</strong></p>

<p>So when I started to use MODX 2.0.0pl first, I recognized that the backend is gorgeous. It was easy to handle as a user and for a CMS backend it is one of the most beautiful backends I&#39;ve ever seen. Everything is structured well and we even have context-menu to use.</p>

<p>Then after using Revolution some months and building several websites and even custom plugins, I started to quarrel with extJS. I recognized that the backend is super-slow when using it to develop a site. I am a power-user and click several times a second some times. I want sites to load as quick as possible.
This is where extJS really failed: It is a powerful but heavy framework. I think a framework which has a pageOnLoad of 4.30secs or better 5.9secs to fully load the manager is unacceptable. Also this is in 2.2.0pl2 where we nearly have the 4x speed due to caching etc. as we had in 2.0pl of MODX.</p>

<p>Another thing I started to really hate extJS is the full javascript-experience. Things are always animated even where it makes no sense and sometimes I have to wait on an action without getting a response like a spinner.
When I develop a site or write just a blog-entry I like to use several browser-tabs with my backend open. I like having one tab with my blog-entry I&#39;m writing on, one with another similar article and maybe another one with some site-structure open. This is nearly impossible when using the MODX manager made with extJS. We don&#39;t have a right click anymore where I can say: open in new tab which often would also fail because there&#39;s just a &quot;javascript:;&quot; command not a real URL. And I cannot press cmd / strg + click to open a button in a new tab. If I do press indeed, my current site is gone regardless I&#39;v saved my information or not. This, for me, is unacceptable.</p>

<p><strong>Please, people, build good interfaces!</strong> Spend some more time on your interfaces and make them work good. Especially when it is about accessibility and usability.
There are reasons that I didn&#39;t blog much about MODX recently. extJS problems are one of them. Processwire for example uses just jQuery and plain HTML and works ways better for me than any extJS site.</p>

<p><em>EDIT</em> I just wanted to be clear: This is not against MODX but as MODX uses extJS I use this as example. extJS for me just doesn&#39;t work. And all arguments that it is easy for developers don&#39;t count: You never should combine backend and frontend development. Why? Because it makes no sense from a UX perspective.</p>
 ]]></content>
        </entry>
        
        <entry>
            <title>[Weekly Roundup] Links &amp; Technologies #3</title>
            <link href="https://helloanselm.com/2012/reading-list-3/"/>
            <updated>2012-03-15T00:00:00+01:00</updated>
            <id>https://helloanselm.com.com/2012/reading-list-3</id>
            <content type="html"><![CDATA[ <p><strong>This weeks hot projects and links about web-technology, digital publishing and other inspiring stuff.</strong></p>

<ul>
<li><p>Super impressive video about a drawing with 3.2mio ink dots:
<a href="https://vimeo.com/33091687">link to vimeo</a> <iframe src="http://player.vimeo.com/video/33091687?title=0&amp;byline=0&amp;portrait=0&amp;color=ffffff" width="600" height="337" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe></p></li>
<li><p>Harry Roberts shared his thought of CSS best practice <a href="https://github.com/csswizardry/CSS-Guidelines">on github</a>. I shared on Google+ and got <a href="https://plus.google.com/111125333979619018462/posts/7Tv7qDZf2YK">these answers</a>.</p></li>
<li><p>Cutter.js is a javascript that adds ellipsis or cuts text without destroying html and content:
<a href="http://tcorral.github.com/Cutter.js/">Cutter.js</a></p></li>
<li><p><a href="http://www.alistapart.com/articles/for-a-future-friendly-web/">For a future-friendly web!</a></p></li>
<li><p>This A List Apart article is good: <a href="http://www.alistapart.com/articles/the-best-browser-is-the-one-you-have-with-you/">The best browser is the one you have with you</a></p></li>
<li><p><a href="http://cloudfour.com/first-thing-you-should-do-to-optimize-your-desktop-site-for-mobile/">optimize for mobile</a></p></li>
<li><p>Here&#39;s an article for web-developers and digital publishers: <a href="http://www.garciamedia.com/blog/articles/an_expert_discussion_of_the_ipad_3s_high_res_screen_and_impact_on_magazine_">Retina iPad problem explained</a></p></li>
<li><p>My slides from tgm-evening event about alternative software to create E-Books:
<a href="http://anselm-hannemann.com/slides/#!/presentations/iBooks/1">EPUB, HPUB, iBooks2 – what&#39;s up?</a></p></li>
<li><p>This site from Johannes Henseler says if you can and should update your tools for the Adobe Digital Publishing Suite. Why we needed this site? Because we had trouble several times already with these updates!
<a href="http://caniupdateadobedps.com/">Can and should I updatemy Adobe DPS tools?</a></p></li>
</ul>
 ]]></content>
        </entry>
        
        <entry>
            <title>[Weekly Roundup] Links &amp; Technologies #2</title>
            <link href="https://helloanselm.com/2012/reading-list-2/"/>
            <updated>2012-03-09T00:00:00+01:00</updated>
            <id>https://helloanselm.com.com/2012/reading-list-2</id>
            <content type="html"><![CDATA[ <p><strong>This weeks hot projects and links about web-technology, digital publishing and other inspiring stuff.</strong></p>

<p>I&#39;ll start with a personal concern &ndash; responsive images. Matthew Wilcox is one of the active members of the responsive images working group in the W3C where I am part of, too.
But we recently experienced many problems which are explained on his blog:</p>

<ul>
<li><a href="http://mattwilcox.net/archive/entry/id/1081/">Impending problems with authoring responsive designs</a></li>
</ul>

<p>And now my other suggestions for this week:</p>

<ul>
<li><p>A Slideshare presentation <strong>summarizing mobile / responsive website problems</strong>:
<a href="http://www.slideshare.net/yiibu/muddling-through-the-mobile-web/">Muddling through the mobile web</a></p></li>
<li><p><a href="http://css-tricks.com/thinking-async/"><strong>Thinking async</strong></a></p></li>
<li><p>Adobe just released a <strong>new tool called &quot;Shadow&quot;</strong>. It&#39;s a web-developer tool to <strong>remote inspect websites on smartphones or other devices</strong> through weinre and Google Chrome. A first tutorial is <a href="http://corlan.org/2012/03/07/introducing-adobe-shadow-a-new-way-to-debug-mobile-web-sites-and-apps/">available here</a> or <a href="http://uiux.de/artikel/adobe-shadow">one in German</a>.
<a href="http://labs.adobe.com/downloads/shadow.html">Adobe Shadow</a></p></li>
<li><p>A nice write-up of why you should forget about browser support and rethink wisely by David Bushell.
<a href="http://dbushell.com/2012/03/03/forget-about-browser-support/">Blog post: Forget about browser support</a></p></li>
<li><p>Kraken is an online website performance optimizer featuring image optimization, code minification, ico-converter.
<a href="http://kraken.io/">Kraken</a></p></li>
<li><p>A <strong>icon font-generator</strong> featuring many icon-fonts:
<a href="http://nodeca.github.com/fontomas/">Fantomas</a></p></li>
<li><p>Dillinger is a <strong>cloud-enabled HTML5 Markdown editor</strong>. Yay!!!
<a href="http://dillinger.io/">Dillinger</a></p></li>
<li><p>A <strong>one-in-all documentation for HTML5</strong>, CSS3, JavaScript, DOM, jQuery, PHP, Python. Extremely useful!
<a href="http://dochub.io/">DocHub</a></p></li>
<li><p>Test your <strong>javascript snippet performance</strong>.
<a href="http://jsperf.com/">jsperf</a></p></li>
<li><p>If you want to know what the best iPad Magazines could look like, you might be interested in my article I published yesterday. I featured 8 magazines which I think are the most beautiful and best readable tablet magazines.
<a href="http://anselm-hannemann.com/blog/2012/03/08/the-probably-best-ipad-magazines-so-far/">Blog post: THE PROBABLY BEST IPAD MAGAZINES SO FAR</a></p></li>
</ul>
 ]]></content>
        </entry>
        
        <entry>
            <title>The probably best iPad Magazines so far</title>
            <link href="https://helloanselm.com/2012/the-probably-best-ipad-magazines-so-far/"/>
            <updated>2012-03-08T00:00:00+01:00</updated>
            <id>https://helloanselm.com.com/2012/the-probably-best-ipad-magazines-so-far</id>
            <content type="html"><![CDATA[ <p><strong>This article summarizes the probably best tablet magazines so far. I might have missed one, then please provide the link via comment to this article.</strong></p>

<p>If you search for cool iPad magazines you might buy these ones here. They all are very cool magazines and worth the price they cost. The pictures shown here are just screens of the current issue and might be outdated directly after publishing this post. Please make your own opinion and share it on iTunes :).</p>

<ul>
<li><p><a href="http://itunes.apple.com/de/app/monte-magazin-01/id447344403?mt=8">MONTE Magazin: <img src="/assets/images/blog/2012-03-08_iPadMags/monte_2.jpg" alt="image of follow-up link to MONTE App in iTunes Store"></a></p></li>
<li><p><a href="http://itunes.apple.com/sa/app/m-magazine/id478671861?mt=8">Le Monde M Magazine: <img src="/assets/images/blog/2012-03-08_iPadMags/lemonde-m.jpg" alt="image of follow-up link to Le Monde Magazin App in iTunes Store"></a></p></li>
<li><p><a href="http://itunes.apple.com/us/app/adidas-outdoor-magazine/id504269058?mt=8">Adidas Outdoor Magazine: <img src="/assets/images/blog/2012-03-08_iPadMags/adidas-outdoor_1.jpg" alt="image of follow-up link to Adidas Outdoor Magazine App in iTunes Store"></a></p></li>
<li><p><a href="http://itunes.apple.com/us/app/mercedes-benz-magazine-04/id386312307?mt=8">Mercedes Magazin: <img src="/assets/images/blog/2012-03-08_iPadMags/mercedes-mag.jpg" alt="image of follow-up link to Mercedes Magazine App in iTunes Store"></a></p></li>
<li><p><a href="http://itunes.apple.com/de/app/de-bug-the-sound-of-berlin/id450812149?mt=8">DE:BUG Sound of Berlin: <img src="/assets/images/blog/2012-03-08_iPadMags/debug_1.jpg" alt="image of follow-up link to DE:BUG Magazine App in iTunes Store"></a></p></li>
<li><p><a href="http://itunes.apple.com/us/app/national-geographic-magazine/id418671597?mt=8">National Geographic: <img src="/assets/images/blog/2012-03-08_iPadMags/national-geographic_1.jpg" alt="image of follow-up link to National Geographic App in iTunes Store"></a></p></li>
<li><p><a href="http://itunes.apple.com/de/app/f.a.s.-die-sonntagszeitung/id474449757?mt=8">FAS: <img src="/assets/images/blog/2012-03-08_iPadMags/fas.jpg" alt="image of follow-up link to FAS App in iTunes Store"></a></p></li>
<li><p><a href="http://itunes.apple.com/de/app/the-red-bulletin/id428495907?mt=8">The RED Bulletin: <img src="/assets/images/blog/2012-03-08_iPadMags/red-bulletin.jpg" alt="image of follow-up link to The RED Bulletin App in iTunes Store"></a></p></li>
</ul>

<p><em>NOTICE/CREDITS: image credit is to the vendors of the linked magazines. Credit link is available on linked iTunes App description. I use the pictures to give users the chance to buy/download these magazines and help making the magazines more popular.</em></p>
 ]]></content>
        </entry>
        
        <entry>
            <title>[Weekly Roundup] Links &amp; Technologies #1</title>
            <link href="https://helloanselm.com/2012/reading-list-1/"/>
            <updated>2012-03-02T00:00:00+01:00</updated>
            <id>https://helloanselm.com.com/2012/reading-list-1</id>
            <content type="html"><![CDATA[ <p><strong>This week&#39;s hot projects and links you must read.</strong></p>

<ul>
<li><p><img src="/assets/images/blog/2012-03-02/01-normalize_s.png" alt="image of follow-up link to normalize.css">Nicolas Gallagher (<a href="https://twitter.com/#!/necolas">@necolas</a>) describes <strong>what his famous normalize.css does and how it works</strong>:
<a href="http://nicolasgallagher.com/about-normalize-css/">http://nicolasgallagher.com/about-normalize-css/</a></p></li>
<li><p><img src="/assets/images/blog/2012-03-02/02-verticalrythm_s.png" alt="image of follow-up link to .net magazine">Matthew Wilcox (<a href="https://twitter.com/#!/MattWilcox">@MattWilcox</a>) explains <strong>how to preserve vertical rythm with CSS and jQuery</strong> on his .net-Magazine article:
<a href="http://www.netmagazine.com/tutorials/preserving-vertical-rhythm-css-and-jquery">http://www.netmagazine.com/tutorials/preserving-vertical-rhythm-css-and-jquery</a></p></li>
<li><p><img src="/assets/images/blog/2012-03-02/03-devexperiments_s.png" alt="image of follow-up link to chrome dev experiments"><strong>Chromium Developer Tools experiments are now easily accessible</strong> via &quot;Enable Developer Tools experiments&quot; in chrome://flags in the last chromium build <strong>featuring ShadowDOM, IndexedDB</strong> etc.
<a href="https://plus.google.com/100132233764003563318/posts/7pbJUZCGk8U">https://plus.google.com/100132233764003563318/posts/7pbJUZCGk8U</a></p></li>
<li><p><img src="/assets/images/blog/2012-03-02/04-w3c-highres_s.png" alt="image of follow-up link to w3c high resolution time spec"><strong>HTML5</strong> gets a new spec called <strong>&quot;High Resolution Time&quot;</strong> which is now in Editor&#39;s Draft:
<a href="http://dvcs.w3.org/hg/webperf/raw-file/tip/specs/HighResolutionTime/Overview.html">http://dvcs.w3.org/hg/webperf/raw-file/tip/specs/HighResolutionTime/Overview.html</a></p></li>
<li><p><img src="/assets/images/blog/2012-03-02/05-operaanim_s.png" alt="image of follow-up link to Google Plus entry about css3 animations in Opera">We finally can expect <strong>CSS3 animations and transitions in Opera</strong> very soon:
<a href="https://plus.google.com/115203843155141445032/posts/VFCx8KnhiSF">https://plus.google.com/115203843155141445032/posts/VFCx8KnhiSF</a></p></li>
<li><p><img src="/assets/images/blog/2012-03-02/06-cachemanifvalid_s.png" alt="image of follow-up link to html cache manifest validator">If you work with <strong>HTML5&#39;s Cache Manifest</strong> you probably will validate that. Here&#39;s the tool by (<a href="https://twitter.com/#!/fhemberger">@fhemberger</a>):
<a href="http://manifest-validator.com/">http://manifest-validator.com/</a></p></li>
<li><p><img src="/assets/images/blog/2012-03-02/07-jstestnonmodernzr_s.png" alt="image of follow-up link to Google Plus entry about js ployfills">A simple <strong>design pattern for feature detection</strong> with non-dependant Modernizr support:
<a href="http://blog.joelambert.co.uk/2012/02/22/a-simple-design-pattern-for-feature-detection-with-non-dependant-modernizr-support/">http://blog.joelambert.co.uk/2012/02/22/a-simple-design-pattern-for-feature-detection-with-non-dependant-modernizr-support/</a>
And also read the problems expected with this approach in comment by Malte Ubl: <a href="https://plus.google.com/113127438179392830442/posts/b3NMDCQs7H9">https://plus.google.com/113127438179392830442/posts/b3NMDCQs7H9</a></p></li>
<li><p><img src="/assets/images/blog/2012-03-02/08-fontsquirrel_s.png" alt="image of follow-up link to fontsquirrel&#39;s font converter">Fontsquirrel offers a webfont generator to convert your Desktop fonts into webfont-formats incl. SVG, WOFF, EOT and advanced settings:
<a href="http://www.fontsquirrel.com/fontface/generator">http://www.fontsquirrel.com/fontface/generator</a></p></li>
<li><p><img src="/assets/images/blog/2012-03-02/09-nytperformance_s.png" alt="image of follow-up link to NYT article about performance">The NewYorkTimes published an article <strong>about performance on websites and the impact</strong>:
<a href="http://www.nytimes.com/2012/03/01/technology/impatient-web-users-flee-slow-loading-sites.html?_r=3&amp;hpw&amp;pagewanted=all">http://www.nytimes.com/2012/03/01/technology/impatient-web-users-flee-slow-loading-sites.html</a></p></li>
<li><p><img src="/assets/images/blog/2012-03-02/10-responsivesummit_s.png" alt="image of follow-up link to summary of the responsive summit"><strong>Elliot Jay Stocks (<a href="https://twitter.com/#!/elliotjaystocks">@elliotjaystocks</a>) was part of the &quot;responsive summit&quot; in London last week. Here&#39;s the summary</strong>:
<a href="http://elliotjaystocks.com/blog/responsive-summit/">http://elliotjaystocks.com/blog/responsive-summit/</a></p></li>
<li><p><img src="/assets/images/blog/2012-03-02/11-dptools_s.png" alt="image of follow-up link to comparison of digital publishing-tools"><strong>Comparison table of current Digital Publishing-Tools by me:</strong>
<a href="http://anselmh.github.com/Publishing-please/tools/">http://anselmh.github.com/Publishing-please/tools/</a></p></li>
</ul>
 ]]></content>
        </entry>
        
        <entry>
            <title>[Adobe DPS] (not) target your .folio with external links on iOS</title>
            <link href="https://helloanselm.com/2012/adobe-dps-link-apps/"/>
            <updated>2012-02-15T00:00:00+01:00</updated>
            <id>https://helloanselm.com.com/2012/adobe-dps-link-apps</id>
            <content type="html"><![CDATA[ <p><strong>This article describes why you cannot target your folio / your articles in your folio within iOS with a simple URL-scheme.</strong></p>

<blockquote>
<blockquote>
<p>&quot;Is there anyway to attache an .ics (ical appointment) to a link in the Digital Publishing Suite?&quot; <cite>by Anonymous</cite></p>
</blockquote>

<p>I don’t think so. If possible, try to make it in a webcontent and let the iPad decide what to do. <cite>by Johannes Henseler</cite></p>
</blockquote>

<p>iOS offers the possibility to use <a href="http://x-callback-url.com/specifications/">x-callback-url</a> for links on iOS. This means you can actually link from a link viewed on an iOS device to your target-app or even to specific articles.</p>

<p>As you might already know, the Digital Publishing Suite has its own protocol since some versions called navto://. Within that you are able to reference articles and pages of your .folio:</p>
<div class="highlight"><pre><code class="language-" data-lang="">navto://&lt;folioname&gt;:&lt;pagenumber&gt;
</code></pre></div>
<p>So as you might be able to register iOS procotols for your App regarding to iOS Developer guide, Adobe decided to not offer this possibility by providing one general protocol named &quot;navto&quot; instead of using a protocol with a valid unique-scheme like</p>
<div class="highlight"><pre><code class="language-" data-lang="">"navto_&lt;appuid&gt;://&lt;folioname&gt;:&lt;pagenumber&gt;
</code></pre></div>
<p>If they had done this, we could actually set URLs to inside-folios regardless how many Apps are on the iPad because each of them would have its unique URL scheme. This – in my opinion – seems very useful but we don&#39;t actually can influence this. And I don&#39;t think Adobe will change now, after many ppl using the old schemes, the scheme again.</p>

<p>Sorry, these are not good news but I wanted to share why this is impossible currently.
-Anselm</p>
 ]]></content>
        </entry>
        
        <entry>
            <title>What happened to responsive assets?</title>
            <link href="https://helloanselm.com/2012/what-happened-to-responsive-assets/"/>
            <updated>2012-01-19T00:00:00+01:00</updated>
            <id>https://helloanselm.com.com/2012/what-happened-to-responsive-assets</id>
            <content type="html"><![CDATA[ <p><strong>Already half a year ago I asked in the WHATWG and W3C mailing list about responsive images. Since then quite a few discussions sprout but if we reflect what happened, we can sum up: nothing.</strong></p>

<p>For those who don&#39;t know what this is all about, I&#39;ll explain quickly.</p>

<p>Since we&#39;ve been able to build &quot;<a href="http://www.alistapart.com/articles/responsive-web-design/">responsive</a>&quot; websites using CSS3&#39;s <a href="http://www.w3.org/TR/css3-mediaqueries/">@media-queries</a> to fit the styles of a website to device-screen viewports we only had one big problem left: We are able to set specific styles for mobile phones, tablets, large screens or even more for monochrome displays but nearly all of the early-adopters ran into problems during testing.
If you ever used a smartphone and a modern website you might have noticed that it takes several seconds to load a page.</p>

<p>The big problem is that we only can use one single image file and use this this to many different layouts via HTML. That also means we&#39;re serving a 1600px x 1200px image to a large monitor with a super-high-resolution of maybe 2560px x 1980px as well as to a simple &quot;feature-phone&quot; or smartphone with resolutions between 320px and 640px. With that in mind you can imagine what&#39;s wrong here: file-size. So there actually was, and still is, the need for a solution for that problem.</p>

<h2 id="first-and-best-approach-an-adaptive-image-file-format">First (and best) approach: an adaptive image file-format</h2>

<p>This would be the very best solution at all. We would have a file format for our assets (means images, graphics) which can serve different resolutions and along with that different file-sizes to a browser.
That sounds pretty cool but a bit unrealistic to you? Then I should mention there <em>are</em> some file-formats doing exactly this for video. So there already exist formats doing such stuff which made me (and <a href="http://twitter.com/derSchepp">some other people</a>) think it should be possible to do. I think it would be possible to do that within WebP, the image-format Google tries to introduce.
But of course there&#39;s the lack of browser support. All major browsers (Chrome, Firefox, Safari, Internet Explorer, Opera) have to support this format. And as we have seen on h.264 / ogg codecs this is something causes lot of trouble in WHATWG.</p>

<h2 id="responsive-html5-image-tag-attributes">Responsive HTML5 image tag attributes</h2>

<p>So I came up with another idea. This idea just came into my mind because if we would get this file-format solution in some years, we need an approach for the time being.</p>

<p>This was the time I created <a href="https://gist.github.com/1158855">this gist snippet</a> and shared via twitter:</p>
<div class="highlight"><pre><code class="language-" data-lang="">&lt;img src="myimage_xs.jpg" media-xs="(min-device-width:320px and max-device-width:640px)" media-src-xs="myimage_xs.jpg" media-m="(min-device-width:640px and max-device-width:1024px)" media-src-m="myimage_m.jpg" media-xl="(min-device-width:1024px)" media-src-xl="myimage_xsl.jpg"&gt;
</code></pre></div>
<p>After some discussion I shared my idea to the WHATWG mailing list and ended on <a href="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2011-August/032977.html">W3C&#39;s mailing list</a> later. There was some discussion about it but essentially the most important fact was to see that most people didn&#39;t even understand that we need this urgently.
After that, discussion came up on some <a href="http://drublic.de/blog/responsive-media/">blogs</a>, <a href="https://etherpad.mozilla.org/responsive-assets">Mozilla&#39;s Etherpad</a>, <a href="https://groups.google.com/forum/#!topic/jquery-standards/rl8886ZRs8o">jQuery Standards Group</a> but I never heard something since months now.</p>

<p><s></p>

<h2 id="update-another-valid-approach">Update: Another valid approach</h2>

<p>There’s <a href="http://ikelewis.com/the-future/">another approach</a> which might be a bit handier than mine because code is a bit cleaner. This syntax is also used on video and audio tag already to provide different file/codec-formats.</p>
<div class="highlight"><pre><code class="language-" data-lang="">&lt;img src="large-default-file.jpg"&gt;
    &lt;source src="smaller.jpg" media="max-width:600px"&gt;
    &lt;source src="tiny.jpg" media="max-width:320px"&gt;
&lt;/img&gt;
</code></pre></div>
<p>Although I’m not sure what happens to this approach when using old user agents or old parsers but in general there seem to be no problems about backwards-compatibility, too.
Here’s the explanation of syntax from the author (Isaac Lewis, http://ikelewis.com/):</p>

<p>This suggested spec change would create a syntactic placeholder for mobile browsers to find mobile versions of image URLs. Inside each ‹img› tag would be a ‹source› tag, containing a &quot;media&quot; and &quot;src&quot; parameter. The &quot;media&quot; parameter would contain the media query string that would trigger the use of the alternate image URL.
Legacy browsers would simply use the default URL provided by the wrapper ‹img› tag. Mobile browsers could look for ‹source› tags contained by ‹img› tags, and validate the media query to determine which URL to use to load the image.</p>

<p>I edited this gist <a href="https://gist.github.com/1668965">now here</a> to improve the syntax and compatibility to common and already used style:</p>
<div class="highlight"><pre><code class="language-" data-lang="">&lt;img src="large-default-file.jpg" media="screen and (min-width:601px)" alt="this is alternative text for default file" title="this is title for default file"&gt;
    &lt;source src="smaller.jpg" media="screen and (max-device-width:600px)" alt="this is alternative text for smaller file" title="this is title for smaller file"&gt;
    &lt;source src="tiny.jpg" media="screen and (max-device-width:320px)" alt="this is alternative text for tiny file" title="this is title for tiny file"&gt;
    &lt;source src="monochrome.jpg" media="monochrome" alt="this is alternative text for monochrome file" title="this is title for monochrome file"&gt;
&lt;/img&gt;
</code></pre></div>
<p>This provides the possibility to use real media-queries as syntax and detect also features like monochrome display (Kindle etc.).
We also could use alt and title text there. Thing is, browser-vendors need to implement it that way so the current alt text and title text is replacing the original one. But I think this isn’t a problem.
</s></p>

<p>** UPDATE2: This is a cancelled solution as it&#39;s not backwards-compatible due to how old browsers work with self-closing img-tag:</p>

<blockquote>
<p>The <img> tag can’t be opened up because of the way legacy browsers treat it as a self-closing tag.
  <img>
  more stuff
  </img>
The </img> tag would be treated as another img element in the DOM. And none of the contents between the <img> and the </img> would be considered as child elements. And a </img> with no src would hurt performance. See http://www.nczonline.net/blog/2009/11/30/empty-image-src-can-destroy-your-site/</p>

<p>You have to have a new tag.</p>
</blockquote>

<p>*from <a href="http://www.alistapart.com/comments/responsive-images-how-they-almost-worked-and-what-we-need/P20/#26">JohnAlbin</a></p>

<h2 id="excerpt-other-methods-with-php-and-javascript">Excerpt: other methods with PHP and JavaScript</h2>

<p>There are several attempts to offer responsive media via PHP or JavaScript to the browser. This is okay but doesn&#39;t work as standard solution for the problem.
<em>Point is:</em> We need a W3C standardized solution. And for that we need <em>semantically valid code</em>. As we&#39;ve seen on the <a href="https://etherpad.mozilla.org/responsive-assets">Mozilla Etherpad</a> in discussion panel we talked about semantics over there and with that most solutions won&#39;t work as they require additional non-semantic HTML elements.</p>

<h2 id="responsive-images-and-seo-or-advertising">Responsive images and SEO or advertising</h2>

<p><a href="http://we-are-gurus.com/en">Remi Grumeau</a> <a href="http://drublic.de/blog/responsive-media/#comment-237">mentioned a problem</a> with responsive media for Google SEO purposes. He asked how this will affect image search results if there are different image-sizes.
This is a valid argument but if we look at my proposed code-snippet there won&#39;t be a real problem as we define the &quot;master-image&quot; through the common src-tag on img-tag. We only add additional attributes to the element. So normally it shouldn&#39;t affect Google&#39;s crawling results at all and if, Google needs to adapt its logarithm to that.</p>

<p>And about responsive advertising there is a weblog article about that here: <a href="http://www.ravelrumba.com/blog/responsive-ad-demos/">Responsive Ads</a>. This is a pretty good proposal on how to deal with advertising on a responsive website. And as we would have the feature to have different files in one tag it only can be better for ads to serve device-specific ads.</p>

<h2 id="how-to-solve-the-problem">How to solve the problem</h2>

<p>So all in all we need a valid proposal for the <a href="http://lists.w3.org/">W3C mailing list</a> to get this started. I think my email request in July, 2011 wasn&#39;t clear enough to start discussion.</p>

<p>So let&#39;s start documenting a full and valid example of how responsive media could work in a standardized, semantically correct way.</p>

<p><strong>Are there any people willed to help me writing this proposal?
I would be pleased to have <em>at least one co-author</em> on board!</strong></p>

<p><hr></p>

<h2 id="update1"><a name="update1">UPDATE1</a></h2>

<p>Mat Marquis wrote <a href="http://www.alistapart.com/articles/responsive-images-how-they-almost-worked-and-what-we-need/">an article for A List Apart</a> about responsive images containing the most recent approaches, too. There&#39;s a huge discussion about the whole topic with many comments about basic stuff already dropped because of issues or lack of information.
I&#39;ve updated my article here with some valid comments:</p>

<h3 id="responsive-image-format">responsive image format</h3>

<p>This is a comment about what&#39;s &quot;the real and only final solution&quot;. I confirm with that.</p>

<blockquote>
<p>REAL FUTURE SOLUTION
The only real solution is an image format that is designed to download progressively to a specified size and potentially use spare bandwidth to download higher detail levels to allow for smooth scrolling. &gt;Essentially images would appear to work in a similar way to Google maps but all image behaviour is contained within the original image file and the code to download the appropriate level of detail is controlled by the server and the browser and is outside the general control of the developer.</p>
</blockquote>

<p><em>by <a href="http://www.alistapart.com/comments/responsive-images-how-they-almost-worked-and-what-we-need/P10/#14">tesmond</a></em></p>

<h3 id="prefetching-in-chrome">Prefetching in Chrome</h3>

<p>Then there&#39;s this comment about another problem with images loaded onload. We need a defer, async and lazy attribute for all media-elements in HTML!</p>

<blockquote>
<p>There is also another problem related with images. Lazy loading. With HTML5 we got async attribute to script element but no way to postpone image loading, force client to wait until image is really needed. &gt;For example imagine CSS3 based carousel with 10, 100 KB each sized images. We need to fallback to JS code to inject images to the page. In my opinion there should be something like test.png, when visible browser should request it and then apply all css rules (including effects, like transitions).</p>
</blockquote>

<p><em>by <a href="http://www.alistapart.com/comments/responsive-images-how-they-almost-worked-and-what-we-need/P30/#38">xorock</a></em></p>

<p>and <a href="http://www.alistapart.com/comments/responsive-images-how-they-almost-worked-and-what-we-need/P40/#41">another problem faced with modern browsers</a> like Google Chrome who uses prefetching of resources before parsing HTML. This would lead to download of all offered images (from small to large ones in responsive-element). <strong>But this has to be addressed by the Chrome devs and we shouldn&#39;t stop on developing this standard due to this edge-case!</strong></p>
 ]]></content>
        </entry>
        
        <entry>
            <title>Free Framework: »MODX Boilerplate«</title>
            <link href="https://helloanselm.com/2011/free-template-modx-boilerplate/"/>
            <updated>2011-03-18T00:00:00+01:00</updated>
            <id>https://helloanselm.com.com/2011/free-template-modx-boilerplate</id>
            <content type="html"><![CDATA[ <p><strong>»MODX Boilerplate« is a free HTML5-template for rapid website development with the MODX Revolution CMF. The template set had been developed for a fast, technically correct setup of a HTML5-frontend. By using it you can focus on more important things…</strong></p>

<p><strong>„<a href="https://github.com/anselmh/modx-boilerplate">MODX Boilerplate</a>“</strong> is a <strong>free HTML5-template</strong> for rapid website development with the <strong>MODX Evolution &amp; Revolution CMF</strong>. It's based on the widely-used HTML5Boilerplate but contains some additional scripts for increased performance as well as some code-snipptes for common usage.</p>

<p><strong>Notice: </strong>This template is only a raw HTML/CSS/JS-Framework. There's no layout in it to sustain the flexibility as MODX itself does. This framework is thought to help you creating a technically correct HTML5 website with backwards compatibility for older browsers. It's up to you what layout or techniques you want to use for your website.</p>

<h2>READ about it:</h2>

<ul>
<li><strong>here in blog</strong></li>
<li><strong><a href="http://modxcms.com/forums/index.php?topic=60841.0">MODX Forums</a></strong></li>
<li><strong>on github's <a href="https://github.com/smooth-graphics/modx-boilerplate/blob/master/README">README</a> or github's <a href="https://github.com/smooth-graphics/modx-boilerplate/wiki">Wiki</a></strong></li>
<li>view Screencast <a href="http://designfromwithin.com/using-the-fantasic-modx-boilerplate-part-1/">at designfromwithin.com</a></li>
</ul>

<h2>Contents of the package</h2>

<p>Due to the fact it's been created only for MODX and based on the HTML5Boilerplate, we use their file structures. We created the MODX assets structure for the template and preserved the Boilerplate folder structure inside. This is best practice even for new MODX users who don't know the whole structure.</p>

<p>Our package includes the following files:</p>

<ul>
<li><strong>HTML5Boilerplate</strong>: Structure (part.), HTML-Code (part.), etc.</li>
<li><strong>Modernizr</strong>: HTML5-Modernizr. For adding better HTML5 support to specific webbrowsers</li></li>
<li><strong>jQuery</strong>: latest build of jQuery library used min.</li></li>
<li><strong>MODX Chunks + Template</strong>: The HTML parts are split into 3 files you should use in MODX Manager (Chunk for header and footer, template with chunk calls for content)</li></li>
<li><strong>CSS files</strong>: Some CSS files are served, too. They provide basic settings as a CSS reset. They do not affect layout in a bad way.</li>
<li><strong>Dead Simple Grid</strong>: you can also use another css-file with the Dead simple grid system integrated. Features media-queries and dynamic layout.</li>
</ul>

<h2>Upcoming</h2>

<p>There will be some changes in future releases to get the package more flexible and powerful. See new releases on <a href="https://github.com/anselmh/modx-boilerplate">GitHub</a>.</p>

<h2>Get it</h2>

<p><strong>for MODX Revolution: <a href="https://github.com/anselmh/modx-boilerplate">https://github.com/anselmh/modx-boilerplate</a></strong></p>

<h3>See these great videos to start with MODX-Boilerplate:</h3>

<p>Menno Pietersen created video-tuorials for the MODX-Revolution-Boilerplate: <a href="http://designfromwithin.com/using-the-fantasic-modx-boilerplate-part-1/">Part 1</a> and <a href="http://designfromwithin.com/using-the-fantasic-modx-boilerplate-part-2/">Part 2</a></p>

<p><em><strong>I will not push new logs into this blog article anymore. Please look at the <a href="https://github.com/anselmh/modx-boilerplate/commits/master">commit history at github.com</a> to see what has changed.</strong></em></p>
 ]]></content>
        </entry>
        
        <entry>
            <title>How-to improve performance of your website</title>
            <link href="https://helloanselm.com/2011/how-to-improve-performance-of-your-website/"/>
            <updated>2011-03-08T00:00:00+01:00</updated>
            <id>https://helloanselm.com.com/2011/how-to-improve-performance-of-your-website</id>
            <content type="html"><![CDATA[ <p><strong>Some of today&#39;s websites put us back to 1994 while loading. This is due to some ignorance of the technical behavior of current browser engines and the fact that nearly any of these sites uses social plugins written in Javascript or wrong jQuery usage.</strong></p>

<p>Nowadays it's very easy for everyone to build a website based on a CMS. If you take a look on Wordpress, you'll find a huge variety of full-featured templates. They're free and you don't have to get into code for yourself.</p>

<p>Finally you add some JS-widgets for Facebook-button, twitter-button or other things to your site. Now if a visitor goes to your site and it takes about 10secs before he sees anything. If Facebook API is not available (which is quite often) it even could take longer! And if someone has a smartphone with UMTS he won't wait 1 minute to load your crappy website. But how to figure out what's being wrong and what can you do better? I'll now try to give you a short overview of the answers:</p>

<h2>1. Delayed loading of javascripts</h2>

<p>First thing are javascripts. They're blocking your website content until they're loaded if not placed right in HTML. Nearly every site today uses the jQuery-Framework, Google Analytics, the Tweet-Button or Facebook plugins.  All these scripts are up to 200kb in size and often they're linked in the head of the webseite because you've read that in some docs out there in the web.</p>

<p>But you can easily imagine how a webbrowser works: First the head of the website is loaded completely to get informations about the website and all links will be loaded and interpreted(!) within that step. Until now the real content of the website is not loaded at all.<br />If I have a head part which contains files that in summary are about 1.5mb and I now try to reduce it to 40kb (which indeed is possible), I'd see that the site which took about 30secs to load before now loads in 2secs! But how is that done without abandon the javascripts? So we can load javascript everywhere in our HTML markup and due to the fact that javascript is used on clientside we can load it after loading the whole content. So put the js links directly after your content but before the closing html-element and you'll have a huge difference in your loading behavior.</p>

<h2>2. Reduce the number of linked files</h2>

<p>Many people split their css files into several files to keep the survey of codes. Sometimes you have plugins that are loading their own css files additionally. <strong>That's <em>not</em> best practice!</strong></p>

<p>In general the rule is to combine as many files as possible in as few files as possible. For small site you now should have one single css file to be loaded initially. And of course you shouldn't load other files via @imports inside the css files as this is very slow. But the best practice is not best if it doesn't fit to your project. So if you need to target different devices it makes sense to load a main-css which targets all media and additionally another file per device. This can easily be done with css media-queries.</p>

<p>The same issue is with images: every single image generates a http-request and this takes time. To reduce that you can use <strong>CSS-Sprites</strong> if you have a couple of images with rollover or sth. like that to improve the speed of your website.</p>

<h2>3. Well formatted and valid HTML-structures</h2>

<p>A valid HTML-Code is a good condition for a fast interpretation by the browser. If there are errors here the browser has to fix them first and that takes time. You should take care of unnessecary elements (wrapper/empty-tags). <strong>summary: more code = more load-time, more errors = more load-time.</strong></p>

<h2><strong>4. Optimize your server / configure your CMS right</strong></h2>

<p>I'm sorry but I can't give too specific answers here as they rely on the server environment you use and not all are available on all servers. So if you have a good provider he lets you do cool things to reduce the server load.</p>

<p>Every CMS offers some <strong>Caching methods</strong>. They should be used in any setup if possible. If you need a uncached call maybe for dynamic content this can be done but should be the exception. MODX CMS by the way offers the correct methods for that by structure. However Wordpress needs plugins for the caching methods. And you should minify your javascipts and CSS files for a production environment.</p>

<p>If you have a cool provider you even can use a PHP accellerator via htaccess like gzip or PHPAccellerator. This increases load-time on server-side considerably. </p>

<h2>5. Javascript lazy-loading</h2>

<p>The last thing is about Javascript. You can use javascripts that can load other scripts in a specific order and they're doing it asynchronouous so there's a huge difference to commonly used loading behavior of the website. Some scripts that do it well are: <strong>control.js, head.js and Apache ANT Builder</strong>. Please consider to know how to use them correctly as they could break up speed improvements if not!</p>
 ]]></content>
        </entry>
        
        <entry>
            <title>Web fonts – A review</title>
            <link href="https://helloanselm.com/2011/webfonts-a-review/"/>
            <updated>2011-02-09T00:00:00+01:00</updated>
            <id>https://helloanselm.com.com/2011/webfonts-a-review</id>
            <content type="html"><![CDATA[ <p><strong>In the meantime, quite a number of different web services have become available, making it possible to display different font types even in your browser. It&#39;s a feature web designers have been wishing for ever since.</strong></p>

<p>It was only possible to use some default fonts (Arial, Helvetica, Verdana, Courier) in the past – and not even then you could be sure which font type visitors were displayed. By now, displaying the most extravagant font types on the World Wide Web is no longer a problem.</p>

<p>Font types for websites – what is already possible and how do solutions differ from one another?</p>

<p>In the meantime, quite a number of different web services have become available, making it possible to display different font types even in your browser. It's a feature web designers have been wishing for ever since, as it was only possible to use some default fonts (Arial, Helvetica, Verdana, Courier) in the past – and not even then you could be sure which font type visitors were displayed. By now, displaying the most extravagant font types on the World Wide Web is no longer a problem.</p>

<h2>History</h2>

<p>At the beginning, web designers helped themselves by using image-replacement techniques like for example sIFR and cufón, which were quite popular at first. However, they turned out to be mostly inapplicable and hard to operate for users in most cases, so many designers decided against their further use.</p>

<p>New CSS3 concepts of integrating font types via @font-face rule stirred up the debate. Almost instantly, browser suppliers got interested. Mozilla Firefox as well as Safari and Chrome mother WebKit quickly picked up this new CSS3 possibility, albeit not without various technical teething troubles. As usual some producers like Microsoft (Internet Explorer) refused to join in the process and problems with font files, licencing them and building a common standard remained. For further details, see Gerit van Aaken's presentation, dealing separately with this topic.</p>

<h2>The agony of choice </h2>

<p>The past year has brought a fast increase in services available. The following sections will give you and overview of the biggest 5 and their individual differences.</p>

<h4>typekit.com</h4>

<p><a href="http://typekit.com/">Typekit</a> probably is the most popular service, offering a wide range of type fonts and possibilities. However, it is not for free. In order to get full access to all functions, users have to pay $24,95/year. An optional free account does exist, but it contains branding and is considerably restricted as well. Low level plans are quite limited, so you can only use 1-2 domains and 2/5 type fonts. Traffic is not charged according to memory but to the number of visitors and provides sufficient space even if you only use the beginner's account. The “portfolio” plan, which costs $49,99/year, leaves little to be desired, the only restriction being only 500.000 pageviews/month.</p>

<p>The service offers more than 500 font families which can be looked through and tested in the backend. The possibility to place font types one below the other improves comparability. Depending on your preferred way to write codes, you have the choice between assigning to CSS classes and designing directly in the backend or working in the CSS file as before. For every font type, you only get the set typeface, saving traffic and shortening loading time. Furthermore, it is possible to insert fallbacks for browsers which are not compatible with the @font-face rule.</p>

<p>Typekit uses Javascript to load font-data. </p>

<h4>Google Font Directory /API</h4>

<p>For some time now, Google has been offering a free service, giving web designers the opportunity to insert font types via CSS or Javascript into their websites.</p>

<p>The selection of fonts is still very limited (status 9/2010) and presently offers 19 different font types, some of them containing different typefaces. The easy-to-use service, which requires no registration, provides a preview function, the already-mentioned typefaces and a code making fast and easy embedding of chosen fonts possible. The necessary typefaces can be selected or deselected as desired. By default, a HTML-CSS code is provided, but it is also possible to switch to a version for “advanced users”, which allows different variations via Javascript and the so-called “Web Font Loader”. Furthermore, font types can be downloaded.</p>

<p>Google Fonts together with Typekit (cooperating with Google Fonts) probably offers one of the best solutions among all solutions possible – due to the existing Google Code infrastructure, that is not very surprising. The service is compatible with Internet Explorer version 6 or later, Firefox (version 3.5 onward), Opera (version 10.5 onward), Safari (version 3.1 onward) as well as Chrome (version 4.25 onward), but unfortunately not with iPhone, iPad and Android. Due to OpenSource licences by Google, designers don’t have to worry about violating rights at all.</p>

<p>Summing up, this service is especially suitable for designers who prefer a simple and ultra flexible service and who are satisfied with only a small selection of font types.</p>

<p> </p>

<h4>WebINK.com</h4>

<p><a href="http://www.extensis.com/en/WebINK/pricing/index.jsp">WebINK</a> was only started in August 2010 and is still in its infancy. Extensis, the company distributing the product, is known for its font management system Suitcase. This service is slightly cheaper and can already be used for $0.99/month (about $12/year), however there is no free plan. Every Plan is restricted to only 3 domains (including an unlimited number of subdomains), which is, in my opinion, too restrictive for monthly fees up to $19,99. Apparently, on this point developers are still a little inflexible or overanxious towards the Web.</p>

<p>Designers can choose between more than 1000 different font types, all of them being verified and of excellent quality and leaving only little to be desired. However, this selection is restricted according to the chosen plan, as well as bandwidth, which is generously sized though.</p>

<p>In the backend of the software, you search the library, choose a font type and insert it into your website. It’s a simple system that’s fun, too.</p>

<p>All font types are inserted via @font-face rule. With a specifically generated authentication code the WebINK is linked to as source. The rest, like e.g. fontstyle, is done by their server. However, the interleaved way of calling up DNS is quite impractical. Apart from that, WebINK.com seems to be a viable solution. The service is compatible with Internet Explorer version 4.0 or later, Firefox (version 3.5 onward), Chrome (version 4.0 onward). Opera is not mentioned, but it should work with version 9.5 or later. Licencing of font types as well as legal matters is taken into their own hands by the provider, of course.</p>

<p>From a technical point of view, font types are stored on Amazon S3, known for its good performance and reliability. Due to compression of data, bandwidth is saved and loading time shortened remarkably, which comes in quite handy when dealing with font types comprising several megabytes.<br /><br /></p>

<p> </p>

<h2>Technical problems</h2>

<p>From a technical point of view, there are only two ways of inserting font data: via Javascript or via CSS. The latter method is to be preferred as it covers every user’s specific requirements and has a better performance as well.</p>

<p>Both solutions suffer from the same problem – data is only linked while actually being stored on servers belonging to providers somewhere in the Cloud. Problems with performance tend to turn up once in a while as designers and users are dependent of the servers working reliably. Particularly with small providers errors are often the case. Google presents quite a good performance concerning server performance and complex infrastructure. However, an additional DNS query is necessary, which has a negative effect on the entire performance of your website. Nowadays, this might even be reflected in Google’s search ranking, a controversy that cannot be avoided.</p>

<h2>What does the future hold in store?</h2>

<p>Well, no one can really see into the future, but let's hope that browser suppliers will find a better and more uniform way of dealing with font rendering. Furthermore, font distributors like Monotype Imaging and co should think about a concept for their font files which prevents licence problems and simplifies work for web designers (also from a legal point of view).</p>

<p>It's good to know that people are already partially aware of the problem and try to come up with solutions, but still these solutions do not meet the requirements of the W3C Working Draft for the use of font types on the Internet. The technical possibilities they offer are limited and services residing in the cloud form the only base, which is not always an advantage.</p>
 ]]></content>
        </entry>
        
    </feed>
