<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>flopreynat.com</title>
  <link href="http://www.flopreynat.com/atom.xml" rel="self" />
  <link href="http://www.flopreynat.com/"/>
  <updated>2017-05-31T20:46:42+00:00</updated>
  <id>http://www.flopreynat.com</id>
  <author>
    <name>flo preynat</name>
    <email>me@flopreynat.com</email>
  </author>
  
    <entry>
      <title>No camera was found</title>
      <link href="http://www.flopreynat.com/blog/no-camera-was-found.html" />
      <updated>2017-05-31T00:00:00+00:00</updated>
      <id>http://www.flopreynat.com/blog/camera-not-detected-hangout</id>
      <content type="html">&lt;p&gt;You’re most likely running on Mavericks, or El Capitan, are using your mac or a monitor with integrated camera, and keep on getting something along the lines of ‘no camera was found’ messages from Hangout or other web conferencing apps.&lt;/p&gt;

&lt;p&gt;Issue happened to me on dozens of times with an Apple Thunderbolt.&lt;/p&gt;

&lt;p&gt;This post isn’t intended to get to the bottom of this issue. So you can put back the screwdrivers where they belong.
These few lines are only here to present you with a workaround, and remind myself of this little fix.&lt;/p&gt;

&lt;p&gt;So,… Issue seems related to the VDCAssistant process getting invoked every time the camera is being used by an app, but not properly closing, hence blocking its future use.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Kill ‘em all&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Open the terminal, and run the following command:&lt;/p&gt;

&lt;pre&gt;
&lt;code class=&quot;language-ruby&quot;&gt;
$ sudo killall VDCAssistant
&lt;/code&gt;
&lt;/pre&gt;

&lt;p&gt;You’ll need to input your master password. Camera should be up again. 
For now…&lt;/p&gt;

&lt;p&gt;As I said, just a workaround.&lt;/p&gt;

&lt;p&gt;So long.&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Responsive email design framework MJML to the test</title>
      <link href="http://www.flopreynat.com/blog/responsive-email-design-framework-mjml.html" />
      <updated>2017-05-16T00:00:00+00:00</updated>
      <id>http://www.flopreynat.com/blog/responsive-email-design-framework-mjml</id>
      <content type="html">&lt;p&gt;Email design is a real pain in the arse. We all know that. Therefore I decided to give &lt;a href=&quot;https://mjml.io/&quot;&gt;mjml&lt;/a&gt; a go. For those who don’t know of mjml.io, it’s a responsive email design framework built by a team of developers at &lt;a href=&quot;https://www.mailjet.com&quot;&gt;Mailjet&lt;/a&gt;, a competitor of &lt;a href=&quot;https://mailchimp.com/&quot;&gt;Mailchimp&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The beauty of this framework results in the fact that you create something very much close to html, using an MJML markup language, and as mentioned in its detailed documentation, &lt;em&gt;“its semantic syntax makes it easy and straightforward and its rich standard components library speeds up your development time and lightens your email codebase.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;MJML’s open-source engine, which is - by the way - written in &lt;a href=&quot;https://nodejs.org/en/&quot;&gt;NodeJS&lt;/a&gt; (hence easily installed via &lt;a href=&quot;https://www.npmjs.com/package/mjml&quot;&gt;npm&lt;/a&gt;), leverages ReactJS and takes your mjml email designs to process high quality responsive HTML compliant with best practices. That’s the whole idea.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Easy and quick, Responsive, Component based&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;As I had nothing much to work with for starters, I decided to use somebody else’s work, and picked this beautiful minimalistic &lt;a href=&quot;https://dribbble.com/shots/1518379-Newsletter&quot;&gt;newsletter&lt;/a&gt; (designed by Dmitri Litvinov) I found on dribbble.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/mjml-dribbble-model.jpg&quot; alt=&quot;newsletter model&quot; title=&quot;newsletter model&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I won’t go into the details of the design process but with the help of the doc, I put all the components together in a matter of minutes, generated the html template using the terminal and the follwowing syntax:&lt;/p&gt;

&lt;pre&gt;
&lt;code class=&quot;language-ruby&quot;&gt;
mjml yourfile.mjml
&lt;/code&gt;
&lt;/pre&gt;

&lt;h4 id=&quot;results&quot;&gt;Results&lt;/h4&gt;

&lt;p&gt;Here’s the final result of my work in both gmail and protonmail. 
Something not only esthetic but fully functional.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/mjml-results.jpg&quot; alt=&quot;mjml results&quot; title=&quot;mjml results&quot; /&gt;&lt;/p&gt;

&lt;h4 id=&quot;verdict&quot;&gt;Verdict&lt;/h4&gt;

&lt;p&gt;If you’re willing to send what looks like a professional responsive email, without having to use a third-party design service, then I defo advise you to give mjml a shot.&lt;/p&gt;

&lt;p&gt;So long.&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>DuckDuckGo hacks for developers</title>
      <link href="http://www.flopreynat.com/blog/duckduckgo-hacks-for-developers.html" />
      <updated>2017-04-18T00:00:00+00:00</updated>
      <id>http://www.flopreynat.com/blog/duckduckgo-hacks-for-developers</id>
      <content type="html">&lt;p&gt;DuckDuckGo is by far the best search engine out there. For your own privacy for starters, and also as a great little tool for us dev folks, adept of quick tech &amp;amp; code answers, and geeky little features.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Smarter Search!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A few tips and tricks that you may not know of. I’ve been using some for few for months, and only discovered others in the last few days.&lt;/p&gt;

&lt;h4 id=&quot;navigation&quot;&gt;Navigation&lt;/h4&gt;

&lt;p&gt;Navigate through search results using Vim Line Navigation
k – navigate upwards
j – navigate downwards&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/duckduckgo-navigation.gif&quot; alt=&quot;duckduckgo navigation&quot; title=&quot;duckduckgo navigation&quot; /&gt;&lt;/p&gt;

&lt;h4 id=&quot;cheatsheets&quot;&gt;Cheatsheets&lt;/h4&gt;

&lt;p&gt;DuckDuckGo offers a wide range of cheatsheets. Try them out. Just type the language, app, or software of your choice + cheatsheet.
e.g. &lt;a href=&quot;https://duckduckgo.com/?q=jquery+cheatsheet&amp;amp;t=ffab&amp;amp;ia=cheatsheet&quot;&gt;“jquery cheatsheet”&lt;/a&gt;, &lt;a href=&quot;https://duckduckgo.com/?q=css+cheatsheet&amp;amp;t=ffab&amp;amp;ia=cheatsheet&quot;&gt;“css cheatsheet”&lt;/a&gt;, &lt;a href=&quot;https://duckduckgo.com/?q=javascript+cheatsheet&amp;amp;t=ffab&amp;amp;ia=cheatsheet&quot;&gt;“javascript cheatsheet”&lt;/a&gt;, etc&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/duckduckgo-cheatsheet.jpg&quot; alt=&quot;duckduckgo cheatsheet&quot; title=&quot;duckduckgo cheatsheet&quot; /&gt;&lt;/p&gt;

&lt;h4 id=&quot;validators-converters-and-beautifiers&quot;&gt;Validators, converters and beautifiers&lt;/h4&gt;

&lt;p&gt;&lt;a href=&quot;https://duckduckgo.com/?q=json+validation&amp;amp;ia=answer&quot;&gt;“JSON Beautifier &amp;amp; Validator”&lt;/a&gt;, &lt;a href=&quot;https://duckduckgo.com/?q=HTML+beautifier&amp;amp;ia=answer&quot;&gt;“HTML beautifier”&lt;/a&gt;, &lt;a href=&quot;https://duckduckgo.com/?q=sass+to+css&amp;amp;ia=answer&quot;&gt;“Sass to Css Converter”&lt;/a&gt;, and more…&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/duckduckgo-json-validation.jpg&quot; alt=&quot;duckduckgo json validation&quot; title=&quot;duckduckgo json validation&quot; /&gt;&lt;/p&gt;

&lt;h4 id=&quot;colors&quot;&gt;Colors&lt;/h4&gt;

&lt;p&gt;&lt;a href=&quot;https://duckduckgo.com/?q=color+picker&amp;amp;ia=answer&quot;&gt;“Color picker”&lt;/a&gt; with RGB, HSV, CMYK conversion and &lt;a href=&quot;https://duckduckgo.com/?q=%23000000&amp;amp;ia=answer&quot;&gt;“Hex code converter”&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/duckduckgo-color.jpg&quot; alt=&quot;duckduckgo color&quot; title=&quot;duckduckgo color&quot; /&gt;&lt;/p&gt;

&lt;h4 id=&quot;qa&quot;&gt;Q/A&lt;/h4&gt;

&lt;p&gt;…on coding questions like &lt;a href=&quot;https://duckduckgo.com/?q=how+to+select+img+with+jquery&amp;amp;ia=qa&quot;&gt;“how to select img with jquery”&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/duckduckgo-qa.jpg&quot; alt=&quot;duckduckgo q&amp;amp;a&quot; title=&quot;duckduckgo q&amp;amp;a&quot; /&gt;&lt;/p&gt;

&lt;h4 id=&quot;bangs&quot;&gt;Bangs&lt;/h4&gt;

&lt;p&gt;If you wish to look for something on a specific site, like Stack Overflow (!stack + query) or CSS-Tricks (!csstricks + query). The list of bangs is &lt;a href=&quot;https://duckduckgo.com/bang&quot;&gt;“here”&lt;/a&gt;.
Here’s a cool one you can try yourselves: &lt;a href=&quot;!caniuse flexbox&quot;&gt;“!caniuse flexbox”&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/duckduckgo-bangs.jpg&quot; alt=&quot;duckduckgo bangs&quot; title=&quot;duckduckgo bangs&quot; /&gt;&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Personal Data Privacy: start off 2017 on the right foot</title>
      <link href="http://www.flopreynat.com/blog/personal-data-privacy-in-2017.html" />
      <updated>2017-01-03T00:00:00+00:00</updated>
      <id>http://www.flopreynat.com/blog/personal-data-privacy-2017</id>
      <content type="html">&lt;p&gt;&lt;strong&gt;New year new start&lt;/strong&gt;. What a great opportunity to start it off on the right foot and greatly improve your behaviour and overall awareness on the personal data privacy subject. You will feel great and you will start breaking the chain!&lt;/p&gt;

&lt;p&gt;As discussed last time &lt;a href=&quot;http://flopreynat.com/blog/data-privacy-matters.html&quot;&gt;we talked on the matter&lt;/a&gt;, our personal data privacy matters a lot, and yet, it is being violated more and more.&lt;/p&gt;

&lt;p&gt;A quick glimpse at the news tell us &lt;a href=&quot;http://www.androidauthority.com/prime-minister-mays-surveillance-law-729874/&quot;&gt;the UK and Theresa May are trying to pass a law&lt;/a&gt; that will make it obligatory for internet providers to store every user’s history for up to a year (although &lt;a href=&quot;http://curia.europa.eu/juris/document/document.jsf?text=&amp;amp;docid=186492&amp;amp;pageIndex=0&amp;amp;doclang=EN&amp;amp;mode=req&amp;amp;dir=&amp;amp;occ=first&amp;amp;part=1&amp;amp;cid=516300&quot;&gt;the text has just been declared unlawful by EU’s Highest Court&lt;/a&gt;), or the &lt;a href=&quot;https://netzpolitik.org/2016/projekt-aniski-wie-der-bnd-mit-150-millionen-euro-messenger-wie-whatsapp-entschluesseln-will&quot;&gt;German secret services are allegedly wanting to decrypt messengers like WhatsApp&lt;/a&gt; via the ANISKI project. 
Mass surveillance is a hot topic, and defo on the rise these days.&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;h3 id=&quot;big-deal-i-have-nothing-to-hide&quot;&gt;Big Deal, I have nothing to hide.&lt;/h3&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;br /&gt;
Killing the ‘nothing to hide’ argument is probably the easiest thing in the world, so try it yourselves (just for fun) if an idiot tells you he/she has nothing to hide, with this set of decent questions/requests I heard a few folks suggest.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;“Why the fuck do you have curtains in your house?”&lt;/li&gt;
  &lt;li&gt;“Hand me all your passwords if you have fuck all to hide then.”&lt;/li&gt;
  &lt;li&gt;“Give me your bank receipts of last year, since there’s nothing spectacular in there.”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Bottom line is: I don’t have anything to hide. &lt;br /&gt;
&lt;strong&gt;But I don’t have anything I feel like showing you, either.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;h3 id=&quot;so-why-is-mass-surveillance-wrong&quot;&gt;So Why is Mass Surveillance wrong?&lt;/h3&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;it invades our private life space&lt;/li&gt;
  &lt;li&gt;we have absolutely no control of what is being recorded&lt;/li&gt;
  &lt;li&gt;nor how long it is being stored&lt;/li&gt;
  &lt;li&gt;it might not reflect reality&lt;/li&gt;
  &lt;li&gt;it might reflect the reality and we might not want to let people know things&lt;/li&gt;
  &lt;li&gt;it inhibits free speech&lt;/li&gt;
  &lt;li&gt;it inhibits free association&lt;/li&gt;
  &lt;li&gt;it puts free press in real danger&lt;/li&gt;
  &lt;li&gt;it kills creativity&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;it has yet to be proved successful in the fight against terrorism&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;h3 id=&quot;the-thing-is-this-is-far-from-new&quot;&gt;The thing is, …this is far from new.&lt;/h3&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;br /&gt;
As discussed in this series’ first post, people farming, or automated data processing by the likes of facebook, google and the rest is not only something we signed for (by agreeing to the unread and unreadable services’ terms and conditions), but something we have absolutely accepted as THE standard web app model. As in free but far from private.&lt;/p&gt;

&lt;p&gt;Examples are countless, but to name only one, feel free to check &lt;a href=&quot;https://www.uber.com/legal/terms/us/&quot;&gt;Über’s latest terms of use update&lt;/a&gt;, where you grant Über a worldwide, perpetual, irrevocable, transferable, royalty-free license, with the right to sublicense, to use, copy, modify, create derivative works of, distribute, publicly display, publicly perform, and otherwise exploit in any manner any User Content.&lt;/p&gt;

&lt;p&gt;Talking about Big Brothers, you will also enjoy those quotes from a Google executive, stating &lt;em&gt;“Google policy is to get right up to the creepy line and not cross it”&lt;/em&gt;, or even &lt;em&gt;“With your permission you give us more information about you, about your friends, and we can improve the quality of our searches […] We don’t need you to type at all.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;In addition, and as stated in a court filing, &lt;em&gt;“all users of email must necessarily expect that their emails will be subject to automated processing. Just as a sender of a letter to a business colleague cannot be surprised that the recipient’s assistant opens the letter, people who use web-based email today cannot be surprised if their emails are processed by the recipient’s [email provider] in the course of delivery.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;OK, so Google is kind of reading your emails, facebook is recording everything you do/post/interact with for ever, and even if you don’t use those services, you are being followed by countless trackers anywhere you go on the web. Not aware of this? Check out the &lt;a href=&quot;https://donottrack-doc.com/en/&quot;&gt;Do not track series&lt;/a&gt;, they surely will entertain you.&lt;/p&gt;

&lt;p&gt;So…
&lt;br /&gt;&lt;/p&gt;

&lt;h3 id=&quot;any-solutions-out-there&quot;&gt;Any solutions out there?&lt;/h3&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;br /&gt;
As clearly stated by Aral Balkan in &lt;a href=&quot;https://vimeo.com/190855745&quot;&gt;his talk&lt;/a&gt;, regulation, legislation, and ethical design are indeed the answers.&lt;/p&gt;

&lt;p&gt;But while waiting for our constitution reps to dump lobbyists and defend our digital rights, let’s do our part.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Let’s do our part and break the chain&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
  &lt;li&gt;Do not use Facebook/Gmail/etc… if you can&lt;/li&gt;
  &lt;li&gt;If you can’t, Do not put your whole life on Facebook, Twitter, etc…&lt;/li&gt;
  &lt;li&gt;Use &lt;a href=&quot;https://duckduckgo.com/&quot;&gt;DuckDuckGo&lt;/a&gt; as default search engine, as &lt;a href=&quot;https://duckduckgo.com/privacy&quot;&gt;they don’t track you&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Block laptop camera + laptop microphone if you are not using them&lt;/li&gt;
  &lt;li&gt;Turn off location on your mobile phone as much as you can&lt;/li&gt;
  &lt;li&gt;Turn off your phone at night&lt;/li&gt;
  &lt;li&gt;Use &lt;a href=&quot;https://www.torproject.org/&quot;&gt;Tor&lt;/a&gt; as much as you can on your desktop&lt;/li&gt;
  &lt;li&gt;Use &lt;a href=&quot;https://guardianproject.info/apps/orbot/&quot;&gt;Orbot&lt;/a&gt; (and hence Orfox) as much as you can on your android if you have one&lt;/li&gt;
  &lt;li&gt;If you don’t have enough patience, use &lt;a href=&quot;https://www.mozilla.org/en-US/firefox/new/&quot;&gt;Mozilla’s Firefox&lt;/a&gt; as default browser. Ok they get funded by the other big guns I’m talking about (as they need mozilla’s search traffic). But they’re non profit, big on privacy and encryption, so let’s give them credit.&lt;/li&gt;
  &lt;li&gt;Block trackers (&lt;a href=&quot;https://ind.ie/&quot;&gt;Better from Indie&lt;/a&gt; for Safari, &lt;a href=&quot;https://addons.mozilla.org/en-US/firefox/addon/ublock-origin/&quot;&gt;uBlock Origin&lt;/a&gt; or &lt;a href=&quot;https://addons.mozilla.org/fr/firefox/addon/ghostery/&quot;&gt;Ghostery&lt;/a&gt;… although I’m hearing things about Ghostery selling their stats back)&lt;/li&gt;
  &lt;li&gt;Get a &lt;a href=&quot;https://protonmail.com/&quot;&gt;Protonmail&lt;/a&gt; account ffs! Paying a small amount for private email is good for you, and a very decent model&lt;/li&gt;
  &lt;li&gt;Use &lt;a href=&quot;https://spideroak.com/&quot;&gt;Spideroak&lt;/a&gt; for cloud storage&lt;/li&gt;
  &lt;li&gt;Use Signal from &lt;a href=&quot;https://whispersystems.org&quot;&gt;Open Whisper Systems&lt;/a&gt; for encrypted text messaging&lt;/li&gt;
  &lt;li&gt;Use &lt;a href=&quot;https://framatalk.org&quot;&gt;Framatalk&lt;/a&gt; or similar tool for video conference&lt;/li&gt;
  &lt;li&gt;and probably the most important part of all:&lt;/li&gt;
&lt;/ul&gt;

&lt;pre&gt;
&lt;code class=&quot;language-bash&quot;&gt;
PASS THIS BLOODY MESSAGE ONTO YOUR FRIENDS AND RELATIVES !!
&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;&lt;br /&gt;
Otherwise, happy new year!&lt;/p&gt;

&lt;p&gt;Publicly yours.&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Create a PDF Compress Automator App</title>
      <link href="http://www.flopreynat.com/blog/pdf-compress-automator-app.html" />
      <updated>2016-12-20T00:00:00+00:00</updated>
      <id>http://www.flopreynat.com/blog/pdf-compress-automator-app</id>
      <content type="html">&lt;p&gt;Every time I want to compress pdfs on a new apple machine, I find myself looking for the same (great) posts on the subject, and rarely find the one I’m looking for.&lt;/p&gt;

&lt;p&gt;This is why I’m putting up this nice (personal) go-to blog post on how to easily and quickly set up a PDF Compress Automator App, as I use the app almost every day.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;small is beautiful&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Right so, the steps are as follows:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;Download the &lt;a href=&quot;https://github.com/joshcarr/Apple-Quartz-Filters&quot;&gt;Apple Quartz filters&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Move the filters to your ~/Library/ folder by launching Finder and using CMD + SHIFT + G to pull up the Go to access Library folder, and dropping a “Filters” folder containing the quartz filters in there.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Launch Automator and Create an Application by dragging the Apply Quartz Filter to PDF Documents from left to right, and set the desired options (eg Reduce to 150 dpi average quality - STANDARD COMPRESSION) before giving it a name (save it onto your desktop).&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Done deal.&lt;/p&gt;

&lt;p&gt;You can now drag your pdf to your newly-created PDF Compress Application, and you’ll get a fresh copy reduced in size (obviously)…&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>(Our Personal) Data Privacy Matters</title>
      <link href="http://www.flopreynat.com/blog/data-privacy-matters.html" />
      <updated>2016-11-17T00:00:00+00:00</updated>
      <id>http://www.flopreynat.com/blog/data-privacy-series</id>
      <content type="html">&lt;p&gt;(Our personal) Data Privacy is a big deal. If you, like me, get annoyed every time you receive an unwanted newsletter, or feel wary about looking up some specific items while logged in on google, you’ll know what I’m talking about.&lt;/p&gt;

&lt;p&gt;This subject has always been of great interest to me, both from personal and technoligcal stand points.
And as time passes by, and I see new generations of youngsters come into play, with absolutely no experience of what the time without the internet could have looked/felt like, it gets me thinking more and more about this situation, which I know isn’t new, but is not getting any better to say the least.&lt;/p&gt;

&lt;p&gt;This is the reason why I am launching today with this quick post a series of articles on the subject.
I have made drastic changes in my personal life theses last few weeks, and this blog is a great way to keep the words of advice from all savvy people resonate, and share my actions and overall experience in improving my personal data privacy.&lt;/p&gt;

&lt;p&gt;Let’s start with a cool prez from &lt;a href=&quot;https://ar.al/&quot;&gt;Aral Balkan&lt;/a&gt; who’s taken his &lt;a href=&quot;https://ind.ie/beyond-the-clouds/&quot;&gt;Beyond The Clouds&lt;/a&gt; prez to another level with ‘The Matrix, Inverted’, a great talk on people faming made in Malmö, at the &lt;a href=&quot;http://oredev.org/&quot;&gt;Øredev Conference&lt;/a&gt; earlier this month.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;If it’s free, YOU are the product&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For your info, I have been following Aral’s work for a few years now. Aral is big on Human Rights, Social Justice &amp;amp; Ethical Design, and runs &lt;a href=&quot;https://ind.ie/&quot;&gt;ind.ie&lt;/a&gt;, a small social enterprise striving for social justice in the digital age.
His eloquence and passion for defending data privacy are second to none.&lt;/p&gt;

&lt;p&gt;Enjoy the wise words!&lt;/p&gt;

&lt;iframe src=&quot;https://player.vimeo.com/video/190855745&quot; width=&quot;640&quot; height=&quot;360&quot; frameborder=&quot;0&quot; webkitallowfullscreen=&quot;&quot; mozallowfullscreen=&quot;&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;
&lt;p&gt;&lt;a href=&quot;https://vimeo.com/190855745&quot;&gt;The Matrix, Inverted&lt;/a&gt; from &lt;a href=&quot;https://vimeo.com/user4280938&quot;&gt;&amp;Oslash;redev Conference&lt;/a&gt; on &lt;a href=&quot;https://vimeo.com&quot;&gt;Vimeo&lt;/a&gt;.&lt;/p&gt;

</content>
    </entry>
  
    <entry>
      <title>Speed up your Salesforce admin search with Sid's Searchbox</title>
      <link href="http://www.flopreynat.com/blog/salesforce-admin-search.html" />
      <updated>2016-10-12T00:00:00+00:00</updated>
      <id>http://www.flopreynat.com/blog/salesforce-admin-search</id>
      <content type="html">&lt;p&gt;If you’re a Salesforce user, especially a developer or admin, you may spend most of your day in the Salesforce setup area, adding and editing apex classes, visualforce pages and adjusting other admin settings.&lt;/p&gt;

&lt;p&gt;Anything helping you stop wasting time on the setup area is more than welcome. Therefore I can only recommend you to give this chrome extension a go.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;In Search of Speed&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Made by Salesforce MVP and Dreamforce 16 superstar ;) Sid Nagavarapu, &lt;a href=&quot;https://chrome.google.com/webstore/detail/salesforce-searchbox/moaokcjghnjifeeahifofckbmhofjdbi&quot;&gt;“Salesforce Searchbox”&lt;/a&gt; is a great way to gain in productivity by adding to all config pages a simple search box, which will search in all configuration items on the page.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/salesforce-admin-search-account.jpg&quot; alt=&quot;salesforce search admin&quot; title=&quot;salesforce search admin&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The plugin supports some basic regex searches if you want to go fancy. In any case, you’ll speed up your searches and will defo spend more time providing the most value to the CRM users.&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>RSI and vertical mouse: a look back at the last 6 months</title>
      <link href="http://www.flopreynat.com/blog/rsi-vertical-mouse.html" />
      <updated>2016-09-21T00:00:00+00:00</updated>
      <id>http://www.flopreynat.com/blog/rsi-vertical-mouse</id>
      <content type="html">&lt;p&gt;Repetitive strain injury (RSI) is a frequent issue when you spend 10+ hours a day in front of a computer, and it is something I have unfortunately been experiencing these last few years.&lt;/p&gt;

&lt;p&gt;Since I own a mac, I have always been using a magic mouse, but as aching in my right hand (and arm) started to occur on a more regular basis, I started wondering whether this beautiful, yet - let’s be honest - way too small device was the root of my problem.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;DANGER MOUSE !&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Discussing the matter with my osteopath quickly led to the option of using a vertical mouse, helping you  keep your hand in a natural position. This is why I moved to ‘verticality’ 6 months ago, with the purchase of a basic &lt;a href=&quot;https://www.amazon.fr/gp/product/B00D84P8O8/ref=oh_aui_detailpage_o07_s00?ie=UTF8&amp;amp;psc=1&quot;&gt;“usb vertical mouse ZeleSouris”&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;A few reasons why I picked this low-budget mouse:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;this was going to be more like a pilot phase (so I thought)&lt;/li&gt;
  &lt;li&gt;non-wireless mice are less heavy (no batteries), hence easier to move&lt;/li&gt;
  &lt;li&gt;this specific device was not pricy hence more than worth a shot&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;6 months on and I have to admit this was the best choice ever. Getting used to it took only a few days as far as I was concerned. I doubt the mouse I picked is the best ever, but my RSI has gone for now.&lt;/p&gt;

&lt;p&gt;I can only advise you to ditch the good looks of the magic mouse for an old bulky mouse, a trackpad or a vertical mouse, should you suffer (or wish to prevent) from RSI.&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Wordpress staging environments on the cheap</title>
      <link href="http://www.flopreynat.com/blog/wordpress-staging-environment.html" />
      <updated>2016-08-30T00:00:00+00:00</updated>
      <id>http://www.flopreynat.com/blog/wordpress-staging-environment</id>
      <content type="html">&lt;p&gt;Staging environments are one of the keys of a (proper and) controlled deployment process, whatever the technology. Wordpress isn’t any different.&lt;/p&gt;

&lt;p&gt;You have a problem if you - like me - run a few things on wordpress, don’t consider it as a priority subject (hence do not have the time, nor the money to commit on the suject), …yet still want to make it a decent process.&lt;/p&gt;

&lt;p&gt;Typical “have it both ways” conundrum.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;DEV &amp;gt; STAGING ENVIRONMENT &amp;gt; PRODUCTION&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Anyway, here are a few options, my views on them, and eventually a decision.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Professional Wordpress hosting (Paid)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Best option is to get people (or an app) meant to do this for you. Defo the best option if this subject is top priority for you. &lt;a href=&quot;https://wpengine.com/support/staging/&quot;&gt;“WPEngine”&lt;/a&gt; or &lt;a href=&quot;https://mediatemple.net/community/products/wordpress/204645480/staging-sites-for-your-wordpress-hosting-service&quot;&gt;“Media Temple”&lt;/a&gt; come to mind to name only a few.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;WP Migrate DB Pro (Paid)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A popular plugin, often praised on &lt;a href=&quot;http://shoptalkshow.com/&quot;&gt;“ShopTalk Show”&lt;/a&gt;, &lt;a href=&quot;https://deliciousbrains.com/wp-migrate-db-pro/pricing/&quot;&gt;“WP Migrate DB Pro”&lt;/a&gt; is a great option to get your wordpress sites in sync (all content including media) with one click. Cool option to implement a push to production process. Starting at 89 box.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Note: I ain’t being sponsored for any of those paid options.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;As mentioned above, I can’t be investigating any resource in this subject. Yet, I want to be able to set up a few environments and sync content and settings in an easy (and quick process), without having to deal with media url issues (cough wordpress import cough).&lt;/p&gt;

&lt;p&gt;Let me emphasize on the repeatable process here since I really want to be able to do more than the usual local wp-cloud wp sync’ing. Testing things as they live on the web has got to be a pre-requisite. Things happen differently when not happening on local machines.&lt;/p&gt;

&lt;p&gt;Anyway, went with…&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;All-in-One WP Migration (Free)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As advertised, &lt;a href=&quot;https://wordpress.org/plugins/all-in-one-wp-migration/&quot;&gt;“the plugin”&lt;/a&gt; allows you to export your database, media files, plugins, and themes. You can apply unlimited find/replace operations on your database and the plugin will also fix any serialization problems that occur during find/replace operations.&lt;/p&gt;

&lt;p&gt;Not bad for a free option, and works like a charm to get those wordpress environments in sync.&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Create a dribbble API-powered portfolio in no time</title>
      <link href="http://www.flopreynat.com/blog/dribbble-api-portfolio.html" />
      <updated>2016-07-04T00:00:00+00:00</updated>
      <id>http://www.flopreynat.com/blog/dribbble-api-portfolio</id>
      <content type="html">&lt;p&gt;APIs are a foundational element in today’s tech world. They help you enrich your data, and remain the best, simplest and quickest way to integrate to other engines, apps … you name it.&lt;/p&gt;

&lt;p&gt;In this example, we’ll focus on a quick (and dirty) dribble to website integration, helping you generate a dribbble-api-powered portfolio, and kill two birds with one stone.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Leveraging APIs Matters&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Quick (code)pen below showing you in details how I did it.
Do not be too judgemental on the overall design, this was made in a few minutes, throwing bootstrap on a page before connecting to my dribbble account.&lt;/p&gt;

&lt;p&gt;The longest part was to register an application on your dribbble account. Simply log into your account, navigate to Account Settings &amp;gt; Applications, and register your app. You’ll be needing your Client Access Token to make this work…&lt;/p&gt;

&lt;p data-height=&quot;265&quot; data-theme-id=&quot;0&quot; data-slug-hash=&quot;oLgyZQ&quot; data-default-tab=&quot;js,result&quot; data-user=&quot;flopreynat&quot; data-embed-version=&quot;2&quot; class=&quot;codepen&quot;&gt;See the Pen &lt;a href=&quot;http://codepen.io/flopreynat/pen/oLgyZQ/&quot;&gt;dribbble portfolio with dribbble api v1&lt;/a&gt; by flo preynat (&lt;a href=&quot;http://codepen.io/flopreynat&quot;&gt;@flopreynat&lt;/a&gt;) on &lt;a href=&quot;http://codepen.io&quot;&gt;CodePen&lt;/a&gt;.&lt;/p&gt;
&lt;script async=&quot;&quot; src=&quot;//assets.codepen.io/assets/embed/ei.js&quot;&gt;&lt;/script&gt;

</content>
    </entry>
  
    <entry>
      <title>Mac Finder freezes... WTF</title>
      <link href="http://www.flopreynat.com/blog/mac-finder-freezes.html" />
      <updated>2016-05-29T00:00:00+00:00</updated>
      <id>http://www.flopreynat.com/blog/mac-finder-freezes</id>
      <content type="html">&lt;p&gt;Another blog post on Apple devices playing up (following the &lt;a href=&quot;http://flopreynat.com/blog/macbook-pro-boots-to-black-screen.html&quot;&gt;“boot to black screen”&lt;/a&gt; one) with this time, the way to resolve a frozen finder on OSX (Mavericks in my case).&lt;/p&gt;

&lt;p&gt;The thing happened to me a few months back, with Finder freezing over and over after a few seconds or minutes of usage, forcing me to force quit Finder on numerous occasions throughout the day.&lt;/p&gt;

&lt;p&gt;Fed up with this bug, and not willing to move away from the native file managing app, I eventually got it sorted out by simply using Mac’s Safe Mode, something that Windows users might be more inclined to be using on a regular basis.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Safe Mode baby&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I personnally had never used the safe mode before, despite around 10 years on apple.&lt;/p&gt;

&lt;p&gt;So if you have a frozen Finder, go for it…&lt;/p&gt;

&lt;p&gt;Follow these steps to start up into safe mode.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Start or restart your Mac.&lt;/li&gt;
  &lt;li&gt;Immediately after you hear the startup sound, press and hold the Shift key.&lt;/li&gt;
  &lt;li&gt;Release the Shift key when you see the Apple logo appear on the screen.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;After the Apple logo appears, it might take longer than usual to reach the login screen or your desktop. This is because your Mac performs a directory check of your startup disk as part of safe mode.&lt;/p&gt;

&lt;p&gt;To leave safe mode, restart your computer without pressing any keys during startup.&lt;/p&gt;

&lt;p&gt;(Taken from &lt;a href=&quot;https://support.apple.com/en-us/HT201262&quot;&gt;“Apple Support website”&lt;/a&gt;)&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Gulp throws Potentially unhandled rejection error</title>
      <link href="http://www.flopreynat.com/blog/gulp-throws-potentially-unhandled-rejection-no-writecb.html" />
      <updated>2016-04-27T00:00:00+00:00</updated>
      <id>http://www.flopreynat.com/blog/gulp-throws-potentially-unhandled-rejection</id>
      <content type="html">&lt;p&gt;So you’re using Gulp and you’re thrown a “Potentially unhandled rejection [2] Error: no writecb” and you have no idea what to do next…&lt;/p&gt;

&lt;p&gt;It was my case up to last night when running Gulp for the first time (I usually run Grunt) during the initialization of &lt;a href=&quot;https://reactforbeginners.com/&quot;&gt;Wes Bos’ “React for Beginners”&lt;/a&gt;, and the run of a gulp-stylus task.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Updates first&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Initial reaction should be to make sure you’re up to date with all components at hand. All modules being all on their latest versions, let’s turn to node.&lt;/p&gt;

&lt;p&gt;Quick check shows an outdated version, let’s get this updated. Here’s how to do it.&lt;/p&gt;

&lt;pre&gt;
&lt;code class=&quot;language-ruby&quot;&gt;
(sudo) npm cache clean -f
(sudo) npm install -g n
(sudo) n stable
node -v
v6.0.0
&lt;/code&gt;
&lt;/pre&gt;

&lt;p&gt;Try running gulp again. Error should have gone…&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Alfred App Review</title>
      <link href="http://www.flopreynat.com/blog/alfred-app-review.html" />
      <updated>2016-04-19T00:00:00+00:00</updated>
      <id>http://www.flopreynat.com/blog/alfred-app-review</id>
      <content type="html">&lt;p&gt;An app all windows users envy us if they have had the chance to take Mac’s already-powerful search feature to the next level, with Alfred - the award winning app and best butler I have ever known…&lt;/p&gt;

&lt;p&gt;Like any developer out there, I want to use the keyboard as much as I can. For productivity reasons first, and for others.&lt;/p&gt;

&lt;p&gt;Been using Alfred for years, and I can’t get bored of it. Don’t look at this post like an expert article on the subject, I have not even purchased the &lt;a href=&quot;https://www.alfredapp.com/powerpack/buy/&quot;&gt;Powerpack&lt;/a&gt;, feature unlocking the likes of workflows, integrations, and even remote control to your IOS devices.
To be totally honest, I have never really looked into the Powerpack, but I may be tempted to leverage their integration with Asana, another must-have IMHO.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;It serves me right!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Anyway, for now, I use Alfred the most simple way ever, but it just works for me. Here are a few things you can do with Alfred:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Quickly find a file by typing “find” + the name of the file&lt;/li&gt;
  &lt;li&gt;Launch any app without using the mouse&lt;/li&gt;
  &lt;li&gt;calculate anything quickly by just typing numbers and operations&lt;/li&gt;
  &lt;li&gt;Launch a search on any site (eg. google, twitter, youtube etc)&lt;/li&gt;
  &lt;li&gt;Launch a google image search&lt;/li&gt;
  &lt;li&gt;Look up a place on Maps&lt;/li&gt;
  &lt;li&gt;Quit all apps at the end of the working day&lt;/li&gt;
  &lt;li&gt;Empty the recycle bin&lt;/li&gt;
  &lt;li&gt;etc…&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can easily configure your shortcuts and have for example “google” shortened to “g” (just an example).&lt;/p&gt;

&lt;p&gt;In a nutshell, I love this app.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.alfredapp.com/&quot;&gt;Alfred 2 for Mac&lt;/a&gt;&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Leverage Sublime Text Macros to automate repeatable actions</title>
      <link href="http://www.flopreynat.com/blog/leverage-sublime-macros-to-automate-repeatable-actions.html" />
      <updated>2016-03-30T00:00:00+00:00</updated>
      <id>http://www.flopreynat.com/blog/leverage-sublime-macros-to-automate-repeatable-actions</id>
      <content type="html">&lt;p&gt;Sublime Text Macros are a smart little tool to automate repeatable (and often-repeated) patterns.&lt;/p&gt;

&lt;p&gt;For example, I need to build arrays from lists of things on a regular basis. As easy as it can be in sublime to perform such an operation, using the basic automation provided by Macros is the best way forward.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Automation, automation, automation&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Simply navigate to Tools/Record Macro to record what you want Sublime to do on your behalf, Save your macro with a ‘.sublime-macro’ extension and replay it as much as you need to.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://flopreynat.com/img/sublime-text-macros.gif&quot; alt=&quot;Sublime Text Macros&quot; title=&quot;Sublime Text macros&quot; /&gt;&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Grunt throws a Maximum call stack size exceeded error</title>
      <link href="http://www.flopreynat.com/blog/gruntjs-maximum-call-stack-size-exceeded-error.html" />
      <updated>2016-01-27T00:00:00+00:00</updated>
      <id>http://www.flopreynat.com/blog/gruntjs-maximum-call-stack-size-exceeded-error</id>
      <content type="html">&lt;p&gt;Grunt throws a ‘maximum call stack size exceeded’ error after running a simple task, and you haven’t got the slightest idea what it means. No sweat.&lt;/p&gt;

&lt;p&gt;But I can’t blame as this is just what happened to me today while working on a website redesign. The grunt task is a simple ‘imagemin’ task I decided to run separately, and I don’t recall having had the same issue before.&lt;/p&gt;

&lt;p&gt;Cut a long story short, you launch something along the lines of:
“grunt imagemin” in your terminal, and you’re thrown the following error:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;RangeError: Maximum call stack size exceeded&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Don’t name your task aliases like your tasks&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I did not find the issue in Grunt’s documentation as, ironically, it’s not the first hit on google serach results, but it’s in there.&lt;/p&gt;

&lt;p&gt;You can not name your tasks like the task itself, &lt;a href=&quot;http://gruntjs.com/frequently-asked-questions#why-am-i-getting-a-maximum-call-stack-size-exceeded-error&quot;&gt;as detailed here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;So I went from 
&lt;strong&gt;&lt;em&gt;grunt.registerTask(“imagemin”, [“imagemin”]);&lt;/em&gt;&lt;/strong&gt; to &lt;strong&gt;&lt;em&gt;grunt.registerTask(“imageminifier”, [“imagemin”]);&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;… and it worked like a charm.&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Record your screen in animated GIF format with Licecap</title>
      <link href="http://www.flopreynat.com/blog/record-screen-animated-gif.html" />
      <updated>2016-01-07T00:00:00+00:00</updated>
      <id>http://www.flopreynat.com/blog/record-screen-animated-gif</id>
      <content type="html">&lt;p&gt;I’m often being asked what screen recorder software I use, since I frequently document tutorials, emails, and other user guides with self-explanatory gifs.&lt;/p&gt;

&lt;p&gt;And since the app I use is 1. open source (hence free), 2. super light, and 3. very easy to use, I thought I would give Licecap the credit it deserves.&lt;/p&gt;

&lt;p&gt;As mentioned on &lt;a href=&quot;http://www.cockos.com/licecap/&quot;&gt;the app’s website&lt;/a&gt;, Licecap is a simple animated screen captures software. It probably has the least sexy logo ever, but the app is just great.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Show, don’t tell&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You open it, set your width, height, and click on record, and you’re done. Stop it, and you’ll get a nice looped gif file, you’ll be able to paste anywhere.&lt;/p&gt;

&lt;p&gt;How neat is that?! I had always thought it was for mac only, but it was originally for windows environments, so all of you can have a go at this little app.&lt;/p&gt;

&lt;p&gt;Thanks to &lt;a href=&quot;http://www.cockos.com/&quot;&gt;Cockos Incorporated&lt;/a&gt; for this beauty.&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Autocomplete file names in Sublime</title>
      <link href="http://www.flopreynat.com/blog/autocomplete-file-names-sublimetext.html" />
      <updated>2016-01-06T00:00:00+00:00</updated>
      <id>http://www.flopreynat.com/blog/autocomplete-file-names-sublimetext</id>
      <content type="html">&lt;p&gt;Another cool add-on to your Sublime with this great little plugin that allows you to autocomple your file names and speed up your coding.&lt;/p&gt;

&lt;p&gt;Use your &lt;a href=&quot;https://packagecontrol.io/&quot;&gt;Package Control&lt;/a&gt; (CMD + SHIFT + P) to install &lt;a href=&quot;https://github.com/BoundInCode/AutoFileName&quot;&gt;AutoFileName&lt;/a&gt; and start playing with it.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Autocomplete FTW!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Here’s a quick gif to show the plugin’s wonders.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://flopreynat.com/img/autofilename.gif&quot; alt=&quot;AutoFileName&quot; title=&quot;AutoFileName&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Been using for a long time now, but I reckon it hasn’t got the fame it deserves.&lt;/p&gt;

&lt;p&gt;Kudos to &lt;a href=&quot;https://twitter.com/boundincode&quot;&gt;@boundincode&lt;/a&gt; (Liam Cain), the creator behind AutoFileName.&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Macbook Pro boots to black screen... WTF</title>
      <link href="http://www.flopreynat.com/blog/macbook-pro-boots-to-black-screen.html" />
      <updated>2015-12-23T00:00:00+00:00</updated>
      <id>http://www.flopreynat.com/blog/macbook-pro-boots-to-black-screen</id>
      <content type="html">&lt;p&gt;So you boot your macbook pro, and you get… well not much. A black screen staring back at you while you frantically reach for your phone to check possible solutions to this problem.&lt;/p&gt;

&lt;p&gt;####PRAM Reset&lt;/p&gt;

&lt;p&gt;Look no further. The thing just happened to me and I managed to get through it by resetting the machine’s PRAM, which is - apparently -  a common troubleshooting technique when your favorite apple goes to f***.&lt;/p&gt;

&lt;p&gt;It allegedly should be the last resort when this kind of things happen. But as none of the other techniques I managed to find on the net did work, I’m only going to cover this one since, as mentioned above, it did the trick.&lt;/p&gt;

&lt;p&gt;So here how it’s gotta be done.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;CMD + ALT + P + R&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You reboot the mac, and as soon as you hear the boot-up sound, you hold down the magic key combination displayed above.&lt;/p&gt;

&lt;p&gt;I haven’t got the slightest idea what the problem was, and why I had to do this.
But it just does work.&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Move and resize windows with Spectacle</title>
      <link href="http://www.flopreynat.com/blog/move-and-resize-windows-with-spectacle.html" />
      <updated>2015-12-18T00:00:00+00:00</updated>
      <id>http://www.flopreynat.com/blog/move-and-resize-windows-with-spectacle</id>
      <content type="html">&lt;p&gt;Repositioning and resizing windows isn’t probably the most entertaining subject out there, but as we do those two all day long, let’s talk about it once and for all.&lt;/p&gt;

&lt;p&gt;I remember having blogged about this subject on another blog about 3 years ago, and today, I’m finding myself talking about this very same subject to various mac users (since it’s a native feature on windows), having failed to deal with the issue.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;CMD + ALT + LEFT/RIGHT&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;####Spectacle&lt;/p&gt;

&lt;p&gt;Cut a long story short. The app is called &lt;a href=&quot;https://www.spectacleapp.com/&quot;&gt;Spectacle&lt;/a&gt;. It’s very cool, simple, non-obtrusive and free.
And I’ve been using it for ever now.&lt;/p&gt;

&lt;p&gt;Once installed, you’ll have to enable access for assistive devices.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://www.flopreynat.com/img/spectacle1.jpg&quot; alt=&quot;Universal Access&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Review your shortcuts, change them if you wish, and start getting more productive with your open windows…&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://www.flopreynat.com/img/spectacle2.jpg&quot; alt=&quot;Spectacle shortcuts&quot; /&gt;&lt;/p&gt;

&lt;p&gt;You can run the app in the background but I suggest you add it in the status menu.&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>My Sublime Text Shortcuts CheatSheet</title>
      <link href="http://www.flopreynat.com/blog/sublime-text-shortcuts-cheatsheet.html" />
      <updated>2015-10-27T00:00:00+00:00</updated>
      <id>http://www.flopreynat.com/blog/sublime-text-shortcuts-cheat-sheet</id>
      <content type="html">&lt;p&gt;‘Have you documented your own Sublime Text shortcut cheatsheet?’ is a question I never get asked. But despite all your efforts to avoid the subject, here it is. In your face!&lt;/p&gt;

&lt;p&gt;This post is likely to get updated on a regular basis since I tend to learn new stuff every day. See, when you start low, you’re bound to progress more often than never :)&lt;/p&gt;

&lt;p&gt;So we’ve already spoken about &lt;a href=&quot;http://flopreynat.com/blog/sublimetext-clipboard-history.html&quot;&gt;ST3’s clipboard history capability&lt;/a&gt;. Here’s the rest of the stuff I use on a daily basis.&lt;/p&gt;

&lt;table&gt;
	&lt;tbody&gt;
		&lt;tr&gt;
			&lt;td&gt;Command + click&lt;/td&gt;
			&lt;td&gt;Multiple cursors&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;Command + C/V&lt;/td&gt;
			&lt;td&gt;(without selecting something) Copy/paste entire line&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;Command + O/S/W&lt;/td&gt;
			&lt;td&gt;Open/Save/Close file&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;Command + Control + P&lt;/td&gt;
			&lt;td&gt;Get List of Saved Projects&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;Command + X&lt;/td&gt;
			&lt;td&gt;Cut Line&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;Command + D&lt;/td&gt;
			&lt;td&gt;Grab similar occurences&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;Command + Control + G&lt;/td&gt;
			&lt;td&gt;Grab all occurences&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;Command + Shift + F&lt;/td&gt;
			&lt;td&gt;Find stuff through files &amp;amp; folders&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;Command + K B&lt;/td&gt;
			&lt;td&gt;Toggle sidebar&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;Command + K L&lt;/td&gt;
			&lt;td&gt;Go Lower case&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;Command + K U&lt;/td&gt;
			&lt;td&gt;Go Upper case&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;Command + Shift + /&lt;/td&gt;
			&lt;td&gt;Commenting/Uncommenting&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;Command + Control + up/down&lt;/td&gt;
			&lt;td&gt;Swap line order&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;Alt + drag&lt;/td&gt;
			&lt;td&gt;Initial a column select&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;Command + Shift + left/right&lt;/td&gt;
			&lt;td&gt;Select content from cursor to left/right end&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;Control + Shift + W&lt;/td&gt;
			&lt;td&gt;Wrap Line or Selection with Tag (absolute favourite)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;Command + Control + Shift +F&lt;/td&gt;
			&lt;td&gt;Enjoy Distraction-free fullscreen&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;Select + [/(&lt;/td&gt;
			&lt;td&gt;Wrap selection between parenthesis/brackets&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;More to come obviously…&lt;/p&gt;

&lt;p&gt;ps: get yourself a &lt;a href=&quot;https://www.sublimetext.com/buy&quot;&gt;licence&lt;/a&gt;, it’s only 70 box.&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Google Authenticator is producing the wrong codes</title>
      <link href="http://www.flopreynat.com/blog/google-authenticator-wrong-code.html" />
      <updated>2015-09-30T00:00:00+00:00</updated>
      <id>http://www.flopreynat.com/blog/google-authenticator-producing-wrong-code</id>
      <content type="html">&lt;p&gt;What do you do when your Google Authenticator produces the wrong codes, and there’s nothing much you can do about it?&lt;/p&gt;

&lt;p&gt;I’m a huge fan of the two-factor authentification, the now famous user identification system by means of the combination of two different components. It usually involves a password and some kind of time-based token available via an app on a mobile phone.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;2-step verification is officially the best thing since sliced bread&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So by now, we all know we’re talking about Google Authenticator. Great app, I use it all the time.&lt;/p&gt;

&lt;p&gt;Problem I just encountered: my mobile is in maintenance, and I bought myself a cheap Wiko for the few days/weeks to come, and I can not make the app work. No idea why, the time zone is set as it should, I ran a sync from the app, and it’s telling me that all is fine.&lt;/p&gt;

&lt;p&gt;So what do you do in such a bizarre situation. I found my answer on a forum, but as there’s not so much talk on the subject out there, this blog post may help some people stuck like me.&lt;/p&gt;

&lt;p&gt;Use this app: &lt;a href=&quot;https://play.google.com/store/apps/details?id=org.fedorahosted.freeotp&amp;amp;hl=en&quot;&gt;FreeOTP&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It seems a bit strange to be using a google feature with an app made by Red Hat. But the app is legit and approved, and more importantly it works like a charm, …even on a Wiko.&lt;/p&gt;

&lt;p&gt;And get yourself a decent phone though lol.&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Responsive video code snippet</title>
      <link href="http://www.flopreynat.com/blog/responsive-video-code-snippet.html" />
      <updated>2015-09-15T00:00:00+00:00</updated>
      <id>http://www.flopreynat.com/blog/responsive-video-code-snippet</id>
      <content type="html">&lt;p&gt;An ancient blogpost of mine, and this clever responsive video code snippet presented (at the time) by Ethan Marcotte, at btconf 2014 during his &lt;a href=&quot;https://beyondtellerrand.com/events/duesseldorf-2014/speakers/ethan-marcotte#talk&quot;&gt;Laziness In The Time Of Responsive Design&lt;/a&gt; talk.&lt;/p&gt;

&lt;p&gt;A quick way to make videos look good at any size, the height/width ratio of the media now respected.&lt;/p&gt;

&lt;p&gt;Enough chit chat.&lt;/p&gt;

&lt;pre&gt;
&lt;code class=&quot;language-css&quot;&gt;
.video-container {
    position: relative;
    height: 0;
    padding-bottom: 56.25%;
}
 
.video-container &amp;gt; * {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
}
&lt;/code&gt;
&lt;/pre&gt;

&lt;p&gt;There’s a &lt;a href=&quot;http://codepen.io/flopreynat/pen/KGAov&quot;&gt;codepen&lt;/a&gt; for it.&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Make Google Charts Responsive</title>
      <link href="http://www.flopreynat.com/blog/make-google-charts-responsive.html" />
      <updated>2015-09-08T00:00:00+00:00</updated>
      <id>http://www.flopreynat.com/blog/make-google-charts-responsive</id>
      <content type="html">&lt;p&gt;A quick blog post on how to make Google Charts play nicely in responsive mode. Nothing close to rocket science but still useful.&lt;/p&gt;

&lt;p&gt;For those who don’t know, &lt;a href=&quot;https://google-developers.appspot.com/chart/&quot;&gt;Google Charts&lt;/a&gt; is a visualization tool, a gallery of interactive charts and data tools that you can integrate into your website. You provide data through php, json and Google Charts display it nicely for you.&lt;/p&gt;

&lt;h4 id=&quot;issue&quot;&gt;Issue&lt;/h4&gt;

&lt;p&gt;By default, the charts come in the form of fixed width element which you can easily tweak to adapt to the now-famous ‘width:100%’ format. However the charts will only appear in that format when the page is loaded. They won’t dynamically resize when the browser window width is changed.&lt;/p&gt;

&lt;h4 id=&quot;solution&quot;&gt;Solution&lt;/h4&gt;

&lt;p&gt;You will need to add a little jquery to get that to work as expected.&lt;/p&gt;

&lt;pre&gt;
&lt;code class=&quot;language-javascript&quot;&gt;
	$(window).resize(function(){
	  	drawChart1();
	  	drawChart2();
	});
&lt;/code&gt;
&lt;/pre&gt;

&lt;p&gt;There’s obviously a &lt;a href=&quot;http://codepen.io/flopreynat/pen/BfLkA&quot;&gt;codepen&lt;/a&gt; for this.&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Using Jekyll plugins on Github</title>
      <link href="http://www.flopreynat.com/blog/jekyll-plugins-github.html" />
      <updated>2015-08-25T00:00:00+00:00</updated>
      <id>http://www.flopreynat.com/blog/jekyll-plugins-github</id>
      <content type="html">&lt;p&gt;A bit of reading for all jekyll newbies who, like me, decided to host their Jekyll site on Github pages (or are in the process to do so), and wouldn’t be aware of the limitations around the subject.&lt;/p&gt;

&lt;p&gt;I’ve been running this site on Jekyll for a few weeks only, and making discoveries along the way. When I decided to install and use &lt;a href=&quot;https://github.com/UsabilityEtc/responsive-youtube-jekyll-tag&quot;&gt;the first of many plugins available&lt;/a&gt;, I hit the wall and quickly realised the topic was far from an easy affair.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;tl;dr : Avoid using plugins if you can&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I’m not going to steal the words of David Lyons as he wrote a nicely-documented post on the subjet on &lt;a href=&quot;http://www.sitepoint.com/jekyll-plugins-github/&quot;&gt;sitepoint.com&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;To cut a long story short, Github only allows &lt;a href=&quot;https://help.github.com/articles/using-jekyll-plugins-with-github-pages/&quot;&gt;a few Jekyll plugins&lt;/a&gt; to run during build process.&lt;/p&gt;

&lt;p&gt;As David mentioned it, you’ll have a couple of work-arounds to get by.
I personnaly decided not to go with any of them.&lt;/p&gt;

&lt;p&gt;First of all, the current (folder/git) structure setup suits me and I didn’t want to disturb it. Second of all, I don’t have the intention to add a million plugins (as in I intend to use none of them). Lastly, I am the only person operating this site and thought a bit of markup within the post would not be the end of the world, should I need to add a responsive-ready video container (&lt;em&gt;reminder: it’s what I wanted to do in the first place&lt;/em&gt;).&lt;/p&gt;

&lt;p&gt;Anyway, once again, read David’s post. It’s worth a look (and a thought) if you intend to host your Jekyll site on Github pages.&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Sublime Text 3 Clipboard History</title>
      <link href="http://www.flopreynat.com/blog/sublimetext-clipboard-history.html" />
      <updated>2015-08-18T00:00:00+00:00</updated>
      <id>http://www.flopreynat.com/blog/sublimetext-clipboard-history</id>
      <content type="html">&lt;p&gt;I’ve recently moved to Sublime Text 3, having enjoyed several years of cruising on version 2. The latest version is now more than mature (hence my move) and has additional features ST2 was short of. The ability to browse through your clipboard history is defo one of them.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;⌘ + K then ⌘ + V&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It’s as simple as that, just go ⌘ + K before hitting your usual ⌘ + V and you’ll be able to pick from your latest clipboard entries.&lt;/p&gt;

&lt;p&gt;Everything is in the video below, made by &lt;a href=&quot;http://wesbos.com/&quot;&gt;Wes Bos&lt;/a&gt;, a web dev recently featured on the &lt;a href=&quot;http://shoptalkshow.com/episodes/176-with-wes-bos/&quot;&gt;ShopTalk show of July 27th&lt;/a&gt;.&lt;/p&gt;

&lt;div class=&quot;embed-responsive embed-responsive-16by9&quot;&gt;
  &lt;iframe class=&quot;embed-responsive-item&quot; width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/IaddB_GQ4Ps&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;
  &lt;/iframe&gt;
&lt;/div&gt;

&lt;p&gt;&lt;em&gt;Note, if you want to speed up your development, optimize your ST workflows and become a better developer, Wes has released &lt;a href=&quot;https://sublimetextbook.com/&quot;&gt;a book on the subject&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Adding Disqus comments to Jekyll</title>
      <link href="http://www.flopreynat.com/blog/adding-disqus-comments-jekyll.html" />
      <updated>2015-08-14T00:00:00+00:00</updated>
      <id>http://www.flopreynat.com/blog/adding-disqus-comments-jekyll</id>
      <content type="html">&lt;p&gt;Adding comments via Disqus to your Jekyll blog is something you probably want to do if you want a bit of life and interaction. Good news: it couldn’t be easier.&lt;/p&gt;

&lt;p&gt;There are installation instructions on the &lt;a href=&quot;https://help.disqus.com/customer/portal/articles/472138-jekyll-installation-instructions&quot;&gt;Disqus documentation&lt;/a&gt;, and on various places around the web, but I thought I would recap the lot for y’all.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“Great discussions are happening here”… so Disqus says. Unless nothing much will in fact happen, and you’re fine with this.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;First of all, sign up to &lt;a href=&quot;https://disqus.com/profile/signup&quot;&gt;Disqus&lt;/a&gt; then go &lt;a href=&quot;https://disqus.com/admin/create&quot;&gt;there&lt;/a&gt; to add Disqus to your site.&lt;/p&gt;

&lt;p&gt;Then generate a custom script for Jekyll, you’ll need to use the &lt;strong&gt;Universal Code&lt;/strong&gt; option here.&lt;/p&gt;

&lt;p&gt;Copy your script and paste it into a disqus.html template in /_includes.
Make sure you surround the script between the &lt;strong&gt;if page.comments&lt;/strong&gt; and  &lt;strong&gt;endif&lt;/strong&gt; liquid code lines.&lt;/p&gt;

&lt;p&gt;Then edit your _config.yml file to add the “comments: true” bit…&lt;/p&gt;

&lt;pre&gt;
&lt;code class=&quot;language-ruby&quot;&gt;
defaults:
  -
    scope:
      path: &quot;&quot; # an empty string here means all files in the project
      type: &quot;posts&quot; # previously `post` in Jekyll 2.2.
    values:
      author: flo preynat
      layout: &quot;post&quot;
      comments: true
&lt;/code&gt;
&lt;/pre&gt;

&lt;p&gt;Finally, go to your /_layouts/post.html template and add &lt;strong&gt;include disqus.html disqus_identifier=page.disqus_identifier&lt;/strong&gt; (between liquid handles) below the end of your blog post.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You’re done!&lt;/strong&gt;&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Jekyll contact form with Formspree</title>
      <link href="http://www.flopreynat.com/blog/jekyll-contact-form.html" />
      <updated>2015-08-10T00:00:00+00:00</updated>
      <id>http://www.flopreynat.com/blog/jekyll-contact-form</id>
      <content type="html">&lt;p&gt;So you got yourself a nice static site, and you want to give your audience a chance to talk to you (directly) with a simple contact form, something you might be used to having used wordpress, php, and a database.&lt;/p&gt;

&lt;p&gt;Except there ain’t no database here. Even less php back end. Hence you’ve got to rely on other ways to get personal messages sent to you.&lt;/p&gt;

&lt;p&gt;###Formspree - Functional HTML forms&lt;/p&gt;

&lt;p&gt;When I stumbled upon &lt;a href=&quot;http://formspree.io/&quot;&gt;Formspree&lt;/a&gt;, it did look like the perfect match.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Side note: Kudos to the crew that put the site together. Minimalistic, straight to the point and no fuss around the subject.&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Just send your form to our URL and we’ll forward it to your email. No PHP, Javascript or sign up required — perfect for static sites!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So, formspree is a tool apparently maintained by a community of developers, clearly stating no contents of the form submissions are stored (emails are sent using &lt;a href=&quot;http://www.mailgun.com/&quot;&gt;Mailgun’s API&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;You do think about privacy, but not for long. First of all, you ain’t giving much away, api or not. Folks are going to initiate discussions in a few words then you take over the talk, privately. No need to be paranoid… especially if (unlike me), you are giving away most of your life to facebook.&lt;/p&gt;

&lt;p&gt;###Easy peasy&lt;/p&gt;

&lt;p&gt;Just follow the steps described. Everthing works as expected. Add form elements and don’t forget to give them a name, they’ll be automatically taken into account during form submission.&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Free stock photos for your projects</title>
      <link href="http://www.flopreynat.com/blog/free-stock-photos-that-dont-suck.html" />
      <updated>2015-08-06T00:00:00+00:00</updated>
      <id>http://www.flopreynat.com/blog/free-stock-photos-that-dont-suck</id>
      <content type="html">&lt;p&gt;Just a go-to blog post (for myself really) when on the lookout for free stock photos (that don’t suck) for your web design projects, print needs et al.&lt;/p&gt;

&lt;p&gt;A lot of good and excellent sites for you to pick exceptionnally-pro-looking pics from… Here we go.&lt;/p&gt;

&lt;p&gt;The ones I’ve used from the start:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://join.deathtothestockphoto.com/&quot; title=&quot;Death to the Stock Photo&quot; target=&quot;_blank&quot;&gt;Death to the Stock Photo&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://unsplash.com/&quot; title=&quot;Unsplash&quot; target=&quot;_blank&quot;&gt;Unsplash&lt;/a&gt;, especially since &lt;a href=&quot;https://twitter.com/arthurWeill&quot; title=&quot;Arthur Weill&quot; target=&quot;_blank&quot;&gt;Arthur Weill&lt;/a&gt; released a little &lt;a href=&quot;http://www.arthurweill.fr/Unsplash/en&quot; title=&quot;Unsplash search engine&quot; target=&quot;_blank&quot;&gt;search engine for Unsplash&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;…and the rest of them, in alphabetical order:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.bara-art.com/&quot; title=&quot;Bara Art&quot; target=&quot;_blank&quot;&gt;Bara Art&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://barnimages.com/&quot; title=&quot;Barn Images&quot; target=&quot;_blank&quot;&gt;Barn Images&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://cupcake.nilssonlee.se/&quot; title=&quot;Cupcake&quot; target=&quot;_blank&quot;&gt;Cupcake&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://compfight.com/&quot; title=&quot;Compfight&quot; target=&quot;_blank&quot;&gt;Compfight&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://fancycrave.com/&quot; title=&quot;Fancy Crave&quot; target=&quot;_blank&quot;&gt;Fancy Crave&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.flickr.com/creativecommons/&quot; title=&quot;Flickr Creative Commons&quot; target=&quot;_blank&quot;&gt;Flickr Creative Commons&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://foodiesfeed.com/category/free-food-images/&quot; title=&quot;Foodies Feed&quot; target=&quot;_blank&quot;&gt;Foodies Feed&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://foodshot.co/&quot; title=&quot;Foodshot&quot; target=&quot;_blank&quot;&gt;Foodshot&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://freelyphotos.com/&quot; title=&quot;Freely Photos&quot; target=&quot;_blank&quot;&gt;Freely Photos&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://freenaturestock.com/&quot; title=&quot;ree Nature Stock&quot; target=&quot;_blank&quot;&gt;Free Nature Stock&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://furiouscamera.com/&quot; title=&quot;Furious Camera&quot; target=&quot;_blank&quot;&gt;Furious Camera&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://getrefe.tumblr.com/&quot; title=&quot;Getrefe&quot; target=&quot;_blank&quot;&gt;Getrefe&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.goodfreephotos.com/&quot; title=&quot;Good Free Photos&quot; target=&quot;_blank&quot;&gt;Good Free Photos&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.gratisography.com/&quot; title=&quot;Gratisography&quot; target=&quot;_blank&quot;&gt;Gratisography&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://isorepublic.com/&quot; title=&quot;Iso Republic&quot; target=&quot;_blank&quot;&gt;Iso Republic&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://jaymantri.com/&quot; title=&quot;Jay mantri&quot; target=&quot;_blank&quot;&gt;Jay mantri&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://jeshoots.com/&quot; title=&quot;jéshoots&quot; target=&quot;_blank&quot;&gt;jéshoots&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://littlevisuals.co/&quot; title=&quot;Little Visuals&quot; target=&quot;_blank&quot;&gt;Little Visuals&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://magdeleine.co/&quot; title=&quot;Magdeleine&quot; target=&quot;_blank&quot;&gt;Magdeleine&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://mmt.li/&quot; title=&quot;MMT&quot; target=&quot;_blank&quot;&gt;MMT&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.morguefile.com&quot; title=&quot;Morguefile&quot; target=&quot;_blank&quot;&gt;Morguefile&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.noblweb.com/&quot; title=&quot;Nobl Web&quot; target=&quot;_blank&quot;&gt;Nobl Web&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://nos.twnsnd.co/&quot; title=&quot;New Old Stock&quot; target=&quot;_blank&quot;&gt;New Old Stock&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.pexels.com/&quot; title=&quot;Pexels&quot; target=&quot;_blank&quot;&gt;Pexels&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://photopin.com/&quot; title=&quot;Photopin&quot; target=&quot;_blank&quot;&gt;Photopin&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://picjumbo.com/&quot; title=&quot;Picjumbo&quot; target=&quot;_blank&quot;&gt;Picjumbo&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://picography.co/&quot; title=&quot;Picography&quot; target=&quot;_blank&quot;&gt;Picography&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.raumrot.com/&quot; title=&quot;Raumrot&quot; target=&quot;_blank&quot;&gt;Raumrot&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://realisticshots.com/&quot; title=&quot;Realistic Shots&quot; target=&quot;_blank&quot;&gt;Realistic Shots&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://search.creativecommons.org/&quot; title=&quot;Creative Commons&quot; target=&quot;_blank&quot;&gt;Search Creative Commons&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://stocksnap.io/&quot; title=&quot;StockSnap.io&quot; target=&quot;_blank&quot;&gt;Stocksnap.io&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.sitebuilderreport.com/stock-up&quot; title=&quot;Stock Up&quot; target=&quot;_blank&quot;&gt;Stock up&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://startupstockphotos.com&quot; title=&quot;Startup stock photos&quot; target=&quot;_blank&quot;&gt;Startup stock photos&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://images.superfamous.com/&quot; title=&quot;&quot; target=&quot;_blank&quot;&gt;Superfamous&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://travelcoffeebook.tumblr.com/&quot; title=&quot;Travel Coffee Book&quot; target=&quot;_blank&quot;&gt;Travel Coffee Book&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://trunklog.com/&quot; title=&quot;Trunklog&quot; target=&quot;_blank&quot;&gt;Trunklog&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;How about that!&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Error installing jekyll: Failed to build gem native extension</title>
      <link href="http://www.flopreynat.com/blog/jekyll-failed-to-build-gem-native-extension.html" />
      <updated>2015-07-29T00:00:00+00:00</updated>
      <id>http://www.flopreynat.com/blog/jekyll-failed-to-build-gem-native-extension</id>
      <content type="html">&lt;p&gt;Though I would post this one since I did experience a few issues attempting to install jekyll, including this “Failed to build gem native extension” annoying error.&lt;/p&gt;

&lt;p&gt;Right, so you have it all installed. So you think. As advised on the jekyll site, you’ve done your:&lt;/p&gt;

&lt;pre&gt;
&lt;code class=&quot;language-bash&quot;&gt;
sudo gem update --system
&lt;/code&gt;
&lt;/pre&gt;

&lt;p&gt;Xcode and its command line tools are in there, but you still get an error while running:&lt;/p&gt;

&lt;pre&gt;
&lt;code class=&quot;language-bash&quot;&gt;
sudo gem install jekyll
&lt;/code&gt;
&lt;/pre&gt;

&lt;p&gt;something like:&lt;/p&gt;

&lt;pre&gt;
&lt;code class=&quot;language-bash&quot;&gt;
Building native extensions.  This could take a while...
ERROR:  Error installing jekyll:
ERROR: Failed to build gem native extension.
&lt;/code&gt;
&lt;/pre&gt;

&lt;p&gt;It appears that the installation order is vital, and therefore you should try to uninstall ruby, start from a clean situation, and reinstall it.&lt;/p&gt;

&lt;p&gt;It did fix it for me, so have a try if you’re stuck and you’re a numpty like me when it comes down to gems, CLI, and the rest.&lt;/p&gt;

&lt;p&gt;Start with:&lt;/p&gt;

&lt;pre&gt;
&lt;code class=&quot;language-bash&quot;&gt;
rvm get head
rvm reset
&lt;/code&gt;
&lt;/pre&gt;

&lt;p&gt;Then check what’s in there with:&lt;/p&gt;

&lt;pre&gt;
&lt;code class=&quot;language-bash&quot;&gt;
rvm list
&lt;/code&gt;
&lt;/pre&gt;

&lt;p&gt;Note what ruby version is installed, in my case it was ruby-2.0.0-p247.&lt;/p&gt;

&lt;pre&gt;
&lt;code class=&quot;language-bash&quot;&gt;
rvm remove ruby-2.0.0-p247
rvm cleanup
rvm repair
&lt;/code&gt;
&lt;/pre&gt;

&lt;p&gt;Only then go with:&lt;/p&gt;

&lt;pre&gt;
&lt;code class=&quot;language-bash&quot;&gt;
sudo gem update --system
sudo gem install jekyll
&lt;/code&gt;
&lt;/pre&gt;

&lt;p&gt;Hope this helps.&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Why Jekyll?</title>
      <link href="http://www.flopreynat.com/blog/why-jekyll.html" />
      <updated>2015-07-22T00:00:00+00:00</updated>
      <id>http://www.flopreynat.com/blog/why-jekyll</id>
      <content type="html">&lt;p&gt;I’ve got it easy on that one. Site is brand new, hence built from scratch, with absolutely no data to migrate/integrate. Picking a technology like Jekyll to build and run this new personal pad was therefore an easy choice to make.&lt;/p&gt;

&lt;p&gt;I’ve been using Wordpress (most times) and Perch (a few times) to create most of my personal/client/others’ websites, and despite having nagged a few times about performance or bloated code, it was most of the time down to me.&lt;/p&gt;

&lt;p&gt;Jekyll is however a static site generator, therefore no database, nor server-side languages are needed, which makes the site lightning fast, and bloody appealing for this particular use case…&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Transform your plain text into static websites and blogs&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Install was a bit of an experience, epecially if you don’t really know what you’re doing (like me). But since I managed to do it eventually, a fucking monkey would do it with one hand tied behind his back.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/jekyll-install.jpg&quot; alt=&quot;jekyll install&quot; title=&quot;Jekyll Install&quot; /&gt;&lt;/p&gt;

&lt;p&gt;####Host it on Github&lt;/p&gt;

&lt;p&gt;I can host all my stuff on Github and point my repo to a custom domain name in two moves, and I can enjoy what has been my dev workflow for quite a while (Like every modern developer out there, I’ve been versioning all my projects with git and Atlassian’s &lt;a href=&quot;https://bitbucket.org/&quot;&gt;Bitbucket&lt;/a&gt; for years).&lt;/p&gt;

&lt;p&gt;It’s early days but so far so good. Jekyll seems to be the perfect fit for any developer wanting to enjoy an easy CMS-like setup, just without all the fuss…&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Responsive Images Meetup: Coming together is a beginning</title>
      <link href="http://www.flopreynat.com/blog/responsive-images-meetup-coming-together-is-a-beginning.html" />
      <updated>2013-09-13T00:00:00+00:00</updated>
      <id>http://www.flopreynat.com/blog/responsive-images-meetup-coming-together-is-a-beginning</id>
      <content type="html">&lt;p&gt;Last time I talked about responsive images, I did mention I was due to go to the responsive images meetup in Paris, and as the long-awaited event happened a couple of days ago, I thought it would be nice to write a quick recap for the folks unable to make it.&lt;/p&gt;

&lt;h3 id=&quot;side-note&quot;&gt;SIDE NOTE&lt;/h3&gt;

&lt;p&gt;Before we get to the the nitty gritty, let me start this blog post with a quick line on the venue. The meetup took place in Mozilla’s Paris headquarters, a superb office located boulevard Montmartre, in Paris’ 9th arrondissement. What a place this is! Two snaps for your eyes.&lt;/p&gt;

&lt;p&gt;Mozilla really know how to welcome guests. Just saying.&lt;/p&gt;

&lt;h3 id=&quot;high-hopes&quot;&gt;HIGH HOPES&lt;/h3&gt;

&lt;p&gt;Having received a teasing email from &lt;a href=&quot;https://twitter.com/yoavweiss&quot;&gt;Yoav&lt;/a&gt; a couple of days prior to the get-together, and seen a number of known representatives from Apple, Google, Mozilla, Microsoft and Adobe inked on the presence sheet (unfortunately Bruce Lawson from Opera was unable to make it), I was very much looking forward to this event. After all, the web community (especially the developers) had been waiting over two years for some clear stand on the subject of responsive images from the big players, while, in the mean time, and according to the latest stats, 72% of responsive websites were still serving the same amount of data to ANY device.&lt;/p&gt;

&lt;h3 id=&quot;use-cases&quot;&gt;USE CASES&lt;/h3&gt;

&lt;p&gt;The day started off with a pre-recorded presentation of the problem at hand from &lt;a href=&quot;http://responsiveimages.org/&quot;&gt;RICG&lt;/a&gt;‘s front man &lt;a href=&quot;https://twitter.com/wilto&quot;&gt;Mat Marquis&lt;/a&gt;, and we quickly went to real case uses with an overview of the BBC and Akamai’s ways of handling the issue.&lt;/p&gt;

&lt;p&gt;Very interesting to see what large scale companies had been implementing, especially since the BBC and its 83 millions monthly views (2.6 millions views per day), as &lt;a href=&quot;https://twitter.com/integralist&quot;&gt;Mark McDonnell&lt;/a&gt; explained, had been using none of the so-far-proposed solutions , but ‘a form’ of javascript-dependent responsive image system. Lightweight, fast working on all devices solution, and implemented since 2011.&lt;/p&gt;

&lt;p&gt;I can only invite you to take a look at their project. The javascript is open-sourced and available on &lt;a href=&quot;https://github.com/BBC-News/Imager.js/&quot;&gt;Github&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Next, &lt;a href=&quot;https://twitter.com/guypod&quot;&gt;Guy Podjarny&lt;/a&gt; took the stand to explain Akamai’s sophisticated content delivery acceleration techniques including smart delivery (with Edge Device Characterization) using patterns of characteristics drawn from a database of mobile devices, front-end optimization, the still-in-beta image converter allowing art direction, and adaptive image compression taking into account the network conditions to define the quality of the served content.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://flopreynat.com/img/guy-podjarny.jpg&quot; alt=&quot;Guy Podjarny&quot; title=&quot;Guy Podjarny&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Quite a setup. Defo out of my league, and certainly destined to large scale sites. In a nutshell, not exactly what you would use to build the website of your local pub.&lt;/p&gt;

&lt;h3 id=&quot;a-look-back-at-the-proposed-solutions&quot;&gt;A LOOK BACK AT THE PROPOSED SOLUTIONS&lt;/h3&gt;

&lt;p&gt;DPR switching, Viewport switching and Art direction on our minds, and a few coffees down our throats, we went ahead and reviewed the proposed solutions.&lt;/p&gt;

&lt;p&gt;Apple’s &lt;a href=&quot;https://twitter.com/hober&quot;&gt;Theresa O’Connor&lt;/a&gt; presented the &lt;code class=&quot;highlighter-rouge&quot;&gt;srcset&lt;/code&gt; attribute, which defines the various image resources to be used, and the clues to help a user agent determine the most appropriate one to display, already implemented (at least a limited version of it) by webkit.&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;&amp;lt;img alt=&quot;The Breakfast Combo&quot;&lt;/code&gt;&lt;br /&gt;
&lt;code class=&quot;highlighter-rouge&quot;&gt;src=&quot;banner.jpeg&quot;&lt;/code&gt;&lt;br /&gt;
&lt;code class=&quot;highlighter-rouge&quot;&gt;srcset=&quot;banner-HD.jpeg 2x, banner-phone.jpeg 100w, banner-phone-HD.jpeg 100w 2x&quot;&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;The &lt;code class=&quot;highlighter-rouge&quot;&gt;picture&lt;/code&gt; element presented by Mozilla’s &lt;a href=&quot;https://twitter.com/marcosc&quot;&gt;Marcos Caceres&lt;/a&gt;, defining a declarative solution for grouping multiple versions of an image based on different criteria (format, resolution, orientation, and more), allowing the user agent to select the optimum image to be presented while providing the best solution (so far) for art direction.&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;&amp;lt;picture width=&quot;500&quot; height=&quot;500&quot;&amp;gt;&lt;/code&gt;&lt;br /&gt;
   &lt;code class=&quot;highlighter-rouge&quot;&gt;&amp;lt;source media=&quot;(min-width: 45em)&quot; src=&quot;large.jpg&quot;&amp;gt;&lt;/code&gt;&lt;br /&gt;
   &lt;code class=&quot;highlighter-rouge&quot;&gt;&amp;lt;source media=&quot;(min-width: 18em)&quot; src=&quot;med.jpg&quot;&amp;gt;&lt;/code&gt;&lt;br /&gt;
   &lt;code class=&quot;highlighter-rouge&quot;&gt;&amp;lt;source src=&quot;small.jpg&quot;&amp;gt;&lt;/code&gt;&lt;br /&gt;
   &lt;code class=&quot;highlighter-rouge&quot;&gt;&amp;lt;img src=&quot;small.jpg&quot; alt=&quot;&quot; lazyload&amp;gt;&lt;/code&gt;&lt;br /&gt;
   &lt;code class=&quot;highlighter-rouge&quot;&gt;&amp;lt;p&amp;gt;Accessible text&amp;lt;/p&amp;gt;&lt;/code&gt;&lt;br /&gt;
&lt;code class=&quot;highlighter-rouge&quot;&gt;&amp;lt;/picture&amp;gt;&lt;/code&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;‘HTTP Client Hints’ presented by Google’s &lt;a href=&quot;https://twitter.com/igrigorik&quot;&gt;Ilya Grigorik&lt;/a&gt;, which defines a set of HTTP headers allowing browsers to indicate a list of device and agent specific preferences, and drive servers to use these “client hints” to assist in content negotiation.
Ideal solution as the content served would match the environmental conditions of the client, ideal in the minimal developer effort sense (I knew you would love that one!), and also ideal as far as semantic is concerned (ie. a simple image tag ).&lt;/p&gt;

&lt;p&gt;But… we would need to use a new header where we would define the devicePixelRatio (DPR) of the terminal (e.g. CH: dpr=2) to pass the relevant info to the server, the current UA header being unable to do that. More on client hints &lt;a href=&quot;https://www.igvita.com/2013/08/29/automating-dpr-switching-with-client-hints/&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The ‘SVG’s Switch element’ presented by W3C’s &lt;a href=&quot;https://twitter.com/robinberjon&quot;&gt;Robin Berjon&lt;/a&gt;, &lt;a href=&quot;https://www.w3.org/TR/SVG2/struct.html#SwitchElement&quot;&gt;a solution&lt;/a&gt; already well supported today, already offering a built-in, working fallback. See his full presentation &lt;a href=&quot;http://berjon.com/presentations/20130910-ricg-switch/#/&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;&amp;lt;switch alt=&quot;Accessible text&quot;&amp;gt;&lt;/code&gt;&lt;br /&gt;
     &lt;code class=&quot;highlighter-rouge&quot;&gt;&amp;lt;img media=&quot;(min-width: 45em)&quot; src=&quot;large.jpg&quot;&amp;gt;&lt;/code&gt;&lt;br /&gt;
     &lt;code class=&quot;highlighter-rouge&quot;&gt;&amp;lt;img media=&quot;(min-width: 18em)&quot; src=&quot;med.jpg&quot;&amp;gt;&lt;/code&gt;&lt;br /&gt;
     &lt;code class=&quot;highlighter-rouge&quot;&gt;&amp;lt;img src=&quot;small.jpg&quot;&amp;gt;&lt;/code&gt;&lt;br /&gt;
&lt;code class=&quot;highlighter-rouge&quot;&gt;&amp;lt;/switch&amp;gt;&lt;/code&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;‘New Image Format’ presented by Yoav Weiss, a responsive image container containing internal layers which uses resizing and crop operations to deal with both resolution switching and art direction. In a nutshell, the encoder takes the original picture, the required output resolutions and if needed art direction pre-requisites, and outputs a layer per resolution.
As a picture is worth a thousand words, there you go:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://flopreynat.com/img/responsive-image-container.jpg&quot; alt=&quot;Responsive Image container&quot; title=&quot;Responsive Image container&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;what-now&quot;&gt;WHAT NOW?&lt;/h3&gt;

&lt;p&gt;DPR switching definitely seems to have made the top of the vast responsive images todo list. I have to admit I freaking love the concept of client hints presented by Ilya, but Google will certainly need an ally if we are to go this way… and it doesn’t look like it could be Mozilla, &lt;a href=&quot;https://twitter.com/davidbaron&quot;&gt;David Baron&lt;/a&gt; having shown little enthusiasm (to say the least) to go ahead and add more (unremovable) HTTP headers.&lt;/p&gt;

&lt;p&gt;The ‘srcset attribute’ and the ‘Picture element’ will make last call, and will definitely keep on getting tested. Both could emerge winners, srcset for its simplicity, and picture for its art direction friendliness, a popular aspect in the developers community.&lt;/p&gt;

&lt;p&gt;Expect some simplification in the markup, and a likely removal of possibly w and more likely h from the spec.&lt;/p&gt;

&lt;p&gt;Microsoft could have a card to play in this debate, with IE12 in the box, and a strong and obvious interest from Lead Principal Program Manager &lt;a href=&quot;https://www.linkedin.com/in/israel-hilerio-ba9a52b&quot;&gt;Israel Hilerio&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;final-words&quot;&gt;FINAL WORDS&lt;/h3&gt;

&lt;p&gt;A huge bravo to Marcos and Yoav for getting a crowd of proactive folks and professionals going for eight hours straight, on the sole subject of responsive images. And a massive ‘thank you’ for opening the doors to smaller companies and freelancers.&lt;/p&gt;

&lt;p&gt;Getting together is already a huge success, working together is the next step forward.&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Add a neat little breakpoint snippet to your Sublime</title>
      <link href="http://www.flopreynat.com/blog/sublime-breakpoint-snippet.html" />
      <updated>2013-05-15T00:00:00+00:00</updated>
      <id>http://www.flopreynat.com/blog/sublime-breakpoint-snippet</id>
      <content type="html">&lt;p&gt;Let’s get Sassy today with this little yet very useful Sublime Text 2 &lt;a href=&quot;https://gist.github.com/jnowland/5151162&quot;&gt;breakpoint snippet&lt;/a&gt; handmade by James Nowland and obviously editable as you wish.&lt;/p&gt;

&lt;p&gt;If, like me, you code a lot of responsive sites, chances are that you work with Sass and end up putting half a million @include breakpoint lines, working your site’s scss the modular way… as you do.&lt;/p&gt;

&lt;p&gt;Well, this little snippet will surely reduce your work, by allowing you to tabTrigger mq (or whatever you wanna call it) into the full @include breakpoint desired code lines.&lt;/p&gt;

&lt;p&gt;Open Sublime, go to Tools, then New Snippet. Copy and paste James’s code in there, and save. Your’re done. You can type mq and tab in your scss and enjoy the ride.&lt;/p&gt;

&lt;h3 id=&quot;the-snippet&quot;&gt;The Snippet&lt;/h3&gt;

&lt;p&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;&amp;lt;snippet&amp;gt;&lt;/code&gt;&lt;br /&gt;
&lt;code class=&quot;highlighter-rouge&quot;&gt;&amp;lt;content&amp;gt;&amp;lt;![CDATA[&lt;/code&gt;&lt;br /&gt;
&lt;code class=&quot;highlighter-rouge&quot;&gt;@include breakpoint(${1:papa-bear / mama-bear / baby-bear}) {&lt;/code&gt;&lt;br /&gt;
&lt;code class=&quot;highlighter-rouge&quot;&gt;${2:}&lt;/code&gt;&lt;br /&gt;
&lt;code class=&quot;highlighter-rouge&quot;&gt;}&lt;/code&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;]]&amp;gt;&amp;lt;/content&amp;gt;&lt;/code&gt;&lt;br /&gt;
&lt;code class=&quot;highlighter-rouge&quot;&gt;&amp;lt;!-- Optional: Set a tabTrigger to define how to trigger the snippet --&amp;gt;&lt;/code&gt;&lt;br /&gt;
&lt;code class=&quot;highlighter-rouge&quot;&gt;&amp;lt;tabTrigger&amp;gt;mq&amp;lt;/tabTrigger&amp;gt;&lt;/code&gt;&lt;br /&gt;
&lt;code class=&quot;highlighter-rouge&quot;&gt;&amp;lt;!-- Optional: Set a scope to limit where the snippet will trigger --&amp;gt;&lt;/code&gt;&lt;br /&gt;
&lt;code class=&quot;highlighter-rouge&quot;&gt;&amp;lt;!-- &amp;lt;scope&amp;gt;source.python&amp;lt;/scope&amp;gt; --&amp;gt;&lt;/code&gt;&lt;br /&gt;
&lt;code class=&quot;highlighter-rouge&quot;&gt;&amp;lt;/snippet&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;h3 id=&quot;the-result-in-sublime&quot;&gt;The result in Sublime&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;http://flopreynat.com/img/breakpoint-snippet.jpg&quot; alt=&quot;Sass Breakpoint snippet in Sublime&quot; title=&quot;Sass Breakpoint snippet in Sublime&quot; /&gt;&lt;/p&gt;
</content>
    </entry>
  
</feed>