ollicle.comOliver Boermans is a design geek in Adelaide, South Australia: ollicle.com is a place for Ollie to rant, reflect and share.2023-02-03T00:00:00Zhttps://ollicle.com/Oliver Boermansollie@ollicle.comA simple CSS debugging utility bookmarklet2023-02-03T00:00:00Zhttps://ollicle.com/2023/feb/03/debug-css-bookmarklet/<p>I contributed a serious/not serious suggestion to <a href="https://mas.to/@patrickbrosset/109785690102638962">this conversation on Mastodon</a> earlier this week.</p>
<p><a href="https://mas.to/@patrickbrosset/">Patrick</a> was inspired, and like the proverbial elf in my night, made a tool <a href="https://patrickbrosset.com/lab/debug-css/">debug.css</a> which creates styles in your browser to outline elements whose styles have selectors which include <code>debug</code>.</p>
<h2>The bookmarket</h2>
<p>To avoid having to add the script to your HTML document, I’ve baked it (with some minor adjustments) into a bookmarklet published here: <a href="https://ollicle.com/projects/bookmarklets/css-debug/">css-debug project page</a>.</p>
Capturing video stills with a bookmarklet2022-12-04T00:00:00Zhttps://ollicle.com/2022/dec/04/video-still-bookmarklet/<p>Cough… My blog is back!</p>
<p>Last week a friend shared the video trailer for the upcoming <a href="https://www.youtube.com/watch?v=ZfVYgWYaHmE">Indiana Jones flick</a>, watching it I noticed how obviously superimposed Harrison Ford’s head looked on the horse rider. Not to knock the effects artists! Like the rest of us, I’m sure they were doing the best with what they had on hand.</p>
<p>This inane observation only fits my story because I went on to attempt to screenshot the offending image. Frustratingly, while the trailer was paused there was a bunch of user interface rubbish over the video image, including a dark overlay (maybe this was in Slack, I forget).</p>
<p>This little annoyance primed me this weekend when I was browsing my RSS feed and opened a post from Dave Rupert <a href="https://daverupert.com/2022/11/html5-video-capture-frame-still/">How to capture single frame from an HTML video</a>.</p>
<p>I’m not sure how Dave keeps his console scripts handy, but my approach is to create a bookmarklet.</p>
<h2>Making a bookmarklet</h2>
<p>Dave’s script in nice and simple:</p>
<pre><code>const v = document.querySelector('video')
let c = document.createElement('canvas')
c.height = v.videoHeight || parseInt(v.style.height)
c.width = v.videoWidth || parseInt(v.style.width)
const ctx = c.getContext('2d')
ctx.drawImage(v, 0, 0)
const wnd = window.open('')
wnd.document.write(`<img src="${c.toDataURL()}"/>`)
</code></pre>
<p>My first attempt to make it into bookmarklet was overly crude. I pasted the Dave’s JavaScript into a BBEdit document and ran John Gruber’s <a href="https://daringfireball.net/2007/03/javascript_bookmarklet_builder">JavaScript Bookmarklet Builder</a>.</p>
<p>It worked, but only the <em>first time</em> I clicked it without reloading the page.</p>
<p>The reason is not complicated, running the script again throws an error when the first <code>const</code> variable is encountered.</p>
<p>Preventing variables from being accidentally redefined is one of the reasons <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/const">const exists</a>. Running the script twice does exactly that. Side note: using this script in Chrome’s console dodges this problem since Google fixed it specially for the console: <a href="https://developer.chrome.com/blog/new-in-devtools-92/#const-redeclaration">Support for const redeclarations in the Console</a>.</p>
<p>Wrapping the script in an Immediately Invoked Function Expression (<a href="https://jsfunctions.io/immediately-invoked-function-expressions">IFFE</a>) fixes this by containing the defined const within the scope of a function.</p>
<pre><code>(function(){
/* code with const here */
})()
</code></pre>
<p>Progress! Subsequently though, I discovered that it was useful to reuse some of these variables after-all. In particular the reference to the opened window. Reusing the same window will collate multiple created images from a particular video in one place. Much more convenient than the alternative.</p>
<p>Dave’s first posted script presumed the size of the video in the page matched the size of the video. This resulting in images sat within a larger transparent box, depending on the scaling of the image. Looking into this I learnt the <a href="http://developer.mozilla.org/en-US/docs/Web/API/HTMLVideoElement">video element</a> provides <code>videoHeight</code> and <code>videoWidth</code> properties that match the pixel dimensions of the image grabbed by <code>getContext</code>. Meanwhile, with no help from me, Dave has updated his script to use these properties.</p>
<p>To shorten this story before it gets too dreary, this is what I ended up with:</p>
<pre><code>(function(w){
const capture = {
v: document.querySelector('video'),
c: document.createElement('canvas')
};
const cap = w.capture || capture;
cap.c.height = parseInt(cap.v.videoHeight);
cap.c.width = parseInt(cap.v.videoWidth);
cap.ctx = cap.c.getContext('2d');
cap.ctx.drawImage(cap.v, 0, 0);
cap.tab = cap.tab && cap.tab.opener ? cap.tab : w.open('capture');
cap.tab.document.write(`<img src="${cap.c.toDataURL()}"/>`);
w.capture = cap;
})(window);
</code></pre>
<h2>The bookmarket</h2>
<p>I’ve published the appropriately encoded (compiled?) bookmarket here: <a href="https://ollicle.com/projects/bookmarklets/video-still/">Video still bookmarklet</a>.</p>
<h2>Blogging the dream</h2>
<p>Yay me! Yay blogging! In summary:</p>
<ol>
<li>Read a useful tip for bloggers in my RSS reader.</li>
<li>Built something to make a tool based on the tip.</li>
<li>Encountered some problems.</li>
<li>Learnt some things researching the relevant web APIs.</li>
<li>Fixed the problems and published a new thing to my blog.</li>
</ol>
One2013-07-01T12:07:58Zhttps://ollicle.com/2013/jul/01/1/<p><picture><source type="image/avif" srcset="https://ollicle.com/assets/image/88rwpYXgXd-128.avif 128w, https://ollicle.com/assets/image/88rwpYXgXd-256.avif 256w, https://ollicle.com/assets/image/88rwpYXgXd-512.avif 512w, https://ollicle.com/assets/image/88rwpYXgXd-1024.avif 1024w" sizes="(min-width: 880px) 640px, (min-width: 640px) calc(87.27vw - 111px), (min-width: 500px) calc(23.33vw + 283px), calc(91.11vw - 37px)" /><source type="image/webp" srcset="https://ollicle.com/assets/image/88rwpYXgXd-128.webp 128w, https://ollicle.com/assets/image/88rwpYXgXd-256.webp 256w, https://ollicle.com/assets/image/88rwpYXgXd-512.webp 512w, https://ollicle.com/assets/image/88rwpYXgXd-1024.webp 1024w" sizes="(min-width: 880px) 640px, (min-width: 640px) calc(87.27vw - 111px), (min-width: 500px) calc(23.33vw + 283px), calc(91.11vw - 37px)" /><source type="image/jpeg" srcset="https://ollicle.com/assets/image/88rwpYXgXd-128.jpeg 128w, https://ollicle.com/assets/image/88rwpYXgXd-256.jpeg 256w, https://ollicle.com/assets/image/88rwpYXgXd-512.jpeg 512w, https://ollicle.com/assets/image/88rwpYXgXd-1024.jpeg 1024w" sizes="(min-width: 880px) 640px, (min-width: 640px) calc(87.27vw - 111px), (min-width: 500px) calc(23.33vw + 283px), calc(91.11vw - 37px)" /><img alt="A pile of Lego bricks in the midst of which a cluster of yellow bricks forms the digit one." loading="lazy" decoding="async" src="https://ollicle.com/assets/image/88rwpYXgXd-128.jpeg" width="1024" height="1024" /></picture></p>
<p>Bulletin Blog: <a href="https://web.archive.org/web/20140402035551/http://blog.bulletin.io/post/53754670878/announcing-bulletin-1-0">Announcing Bulletin 1.0!<svg width="16" height="16" role="img" aria-label="web archive" class="inline-icon"><use xlink:href="#web-archive"></use></svg></a></p>
Two2013-06-30T11:01:30Zhttps://ollicle.com/2013/jun/30/2/<p><picture><source type="image/avif" srcset="https://ollicle.com/assets/image/isV_AzjTJd-128.avif 128w, https://ollicle.com/assets/image/isV_AzjTJd-256.avif 256w, https://ollicle.com/assets/image/isV_AzjTJd-512.avif 512w, https://ollicle.com/assets/image/isV_AzjTJd-1024.avif 1024w" sizes="(min-width: 880px) 640px, (min-width: 640px) calc(87.27vw - 111px), (min-width: 500px) calc(23.33vw + 283px), calc(91.11vw - 37px)" /><source type="image/webp" srcset="https://ollicle.com/assets/image/isV_AzjTJd-128.webp 128w, https://ollicle.com/assets/image/isV_AzjTJd-256.webp 256w, https://ollicle.com/assets/image/isV_AzjTJd-512.webp 512w, https://ollicle.com/assets/image/isV_AzjTJd-1024.webp 1024w" sizes="(min-width: 880px) 640px, (min-width: 640px) calc(87.27vw - 111px), (min-width: 500px) calc(23.33vw + 283px), calc(91.11vw - 37px)" /><source type="image/jpeg" srcset="https://ollicle.com/assets/image/isV_AzjTJd-128.jpeg 128w, https://ollicle.com/assets/image/isV_AzjTJd-256.jpeg 256w, https://ollicle.com/assets/image/isV_AzjTJd-512.jpeg 512w, https://ollicle.com/assets/image/isV_AzjTJd-1024.jpeg 1024w" sizes="(min-width: 880px) 640px, (min-width: 640px) calc(87.27vw - 111px), (min-width: 500px) calc(23.33vw + 283px), calc(91.11vw - 37px)" /><img alt="Chopped pumpkin and carrot in a baking tray forming a digit two" loading="lazy" decoding="async" src="https://ollicle.com/assets/image/isV_AzjTJd-128.jpeg" width="1024" height="1024" /></picture></p>
<p>Dalton Caldwell: <a href="http://daltoncaldwell.com/where-will-google-reader-traffic-go">Where will Google Reader traffic go?</a></p>
Three2013-06-29T09:09:02Zhttps://ollicle.com/2013/jun/29/3/<p><picture><source type="image/avif" srcset="https://ollicle.com/assets/image/c_kJkG_tWL-128.avif 128w, https://ollicle.com/assets/image/c_kJkG_tWL-256.avif 256w, https://ollicle.com/assets/image/c_kJkG_tWL-512.avif 512w, https://ollicle.com/assets/image/c_kJkG_tWL-1024.avif 1024w" sizes="(min-width: 880px) 640px, (min-width: 640px) calc(87.27vw - 111px), (min-width: 500px) calc(23.33vw + 283px), calc(91.11vw - 37px)" /><source type="image/webp" srcset="https://ollicle.com/assets/image/c_kJkG_tWL-128.webp 128w, https://ollicle.com/assets/image/c_kJkG_tWL-256.webp 256w, https://ollicle.com/assets/image/c_kJkG_tWL-512.webp 512w, https://ollicle.com/assets/image/c_kJkG_tWL-1024.webp 1024w" sizes="(min-width: 880px) 640px, (min-width: 640px) calc(87.27vw - 111px), (min-width: 500px) calc(23.33vw + 283px), calc(91.11vw - 37px)" /><source type="image/jpeg" srcset="https://ollicle.com/assets/image/c_kJkG_tWL-128.jpeg 128w, https://ollicle.com/assets/image/c_kJkG_tWL-256.jpeg 256w, https://ollicle.com/assets/image/c_kJkG_tWL-512.jpeg 512w, https://ollicle.com/assets/image/c_kJkG_tWL-1024.jpeg 1024w" sizes="(min-width: 880px) 640px, (min-width: 640px) calc(87.27vw - 111px), (min-width: 500px) calc(23.33vw + 283px), calc(91.11vw - 37px)" /><img alt="Moss between interlocking pavers forms a wavy line somewhat like the digit three" loading="lazy" decoding="async" src="https://ollicle.com/assets/image/c_kJkG_tWL-128.jpeg" width="1024" height="1024" /></picture></p>
<p>Reader is Dead: <a href="http://readerisdead.com/">A collection of tools to help with the impending Google Reader shutdown</a></p>
Four2013-06-28T11:44:16Zhttps://ollicle.com/2013/jun/28/4/<p><picture><source type="image/avif" srcset="https://ollicle.com/assets/image/qQh3MidzYF-128.avif 128w, https://ollicle.com/assets/image/qQh3MidzYF-256.avif 256w, https://ollicle.com/assets/image/qQh3MidzYF-512.avif 512w, https://ollicle.com/assets/image/qQh3MidzYF-1024.avif 1024w" sizes="(min-width: 880px) 640px, (min-width: 640px) calc(87.27vw - 111px), (min-width: 500px) calc(23.33vw + 283px), calc(91.11vw - 37px)" /><source type="image/webp" srcset="https://ollicle.com/assets/image/qQh3MidzYF-128.webp 128w, https://ollicle.com/assets/image/qQh3MidzYF-256.webp 256w, https://ollicle.com/assets/image/qQh3MidzYF-512.webp 512w, https://ollicle.com/assets/image/qQh3MidzYF-1024.webp 1024w" sizes="(min-width: 880px) 640px, (min-width: 640px) calc(87.27vw - 111px), (min-width: 500px) calc(23.33vw + 283px), calc(91.11vw - 37px)" /><source type="image/jpeg" srcset="https://ollicle.com/assets/image/qQh3MidzYF-128.jpeg 128w, https://ollicle.com/assets/image/qQh3MidzYF-256.jpeg 256w, https://ollicle.com/assets/image/qQh3MidzYF-512.jpeg 512w, https://ollicle.com/assets/image/qQh3MidzYF-1024.jpeg 1024w" sizes="(min-width: 880px) 640px, (min-width: 640px) calc(87.27vw - 111px), (min-width: 500px) calc(23.33vw + 283px), calc(91.11vw - 37px)" /><img alt="Three empty syringe plungers arranged to form the digit four." loading="lazy" decoding="async" src="https://ollicle.com/assets/image/qQh3MidzYF-128.jpeg" width="1024" height="1024" /></picture></p>
<p>Macworld: <a href="https://www.macworld.com/article/221340/bye-bye-google-reader-alternative-rss-solutions-for-mac-and-ios-users.html">Bye-bye, Google Reader: Alternative RSS solutions for Mac and iOS users</a></p>
Five2013-06-27T11:19:31Zhttps://ollicle.com/2013/jun/27/5/<p><picture><source type="image/avif" srcset="https://ollicle.com/assets/image/zm-bNQ9Hyv-128.avif 128w, https://ollicle.com/assets/image/zm-bNQ9Hyv-256.avif 256w, https://ollicle.com/assets/image/zm-bNQ9Hyv-512.avif 512w, https://ollicle.com/assets/image/zm-bNQ9Hyv-1024.avif 1024w" sizes="(min-width: 880px) 640px, (min-width: 640px) calc(87.27vw - 111px), (min-width: 500px) calc(23.33vw + 283px), calc(91.11vw - 37px)" /><source type="image/webp" srcset="https://ollicle.com/assets/image/zm-bNQ9Hyv-128.webp 128w, https://ollicle.com/assets/image/zm-bNQ9Hyv-256.webp 256w, https://ollicle.com/assets/image/zm-bNQ9Hyv-512.webp 512w, https://ollicle.com/assets/image/zm-bNQ9Hyv-1024.webp 1024w" sizes="(min-width: 880px) 640px, (min-width: 640px) calc(87.27vw - 111px), (min-width: 500px) calc(23.33vw + 283px), calc(91.11vw - 37px)" /><source type="image/jpeg" srcset="https://ollicle.com/assets/image/zm-bNQ9Hyv-128.jpeg 128w, https://ollicle.com/assets/image/zm-bNQ9Hyv-256.jpeg 256w, https://ollicle.com/assets/image/zm-bNQ9Hyv-512.jpeg 512w, https://ollicle.com/assets/image/zm-bNQ9Hyv-1024.jpeg 1024w" sizes="(min-width: 880px) 640px, (min-width: 640px) calc(87.27vw - 111px), (min-width: 500px) calc(23.33vw + 283px), calc(91.11vw - 37px)" /><img alt="Yellow five on an magenta background with inscrutable black forms." loading="lazy" decoding="async" src="https://ollicle.com/assets/image/zm-bNQ9Hyv-128.jpeg" width="1024" height="1024" /></picture></p>
<p>Alex Kessinger: <a href="https://web.archive.org/web/20130701225735/http://www.rumproarious.com/feeding-our-reading-habits/">Feeding Our Reading Habits<svg width="16" height="16" role="img" aria-label="web archive" class="inline-icon"><use xlink:href="#web-archive"></use></svg></a></p>
Six2013-06-27T11:17:43Zhttps://ollicle.com/2013/jun/27/6/<p><picture><source type="image/avif" srcset="https://ollicle.com/assets/image/8m2trW1BRE-128.avif 128w, https://ollicle.com/assets/image/8m2trW1BRE-256.avif 256w, https://ollicle.com/assets/image/8m2trW1BRE-512.avif 512w, https://ollicle.com/assets/image/8m2trW1BRE-1024.avif 1024w" sizes="(min-width: 880px) 640px, (min-width: 640px) calc(87.27vw - 111px), (min-width: 500px) calc(23.33vw + 283px), calc(91.11vw - 37px)" /><source type="image/webp" srcset="https://ollicle.com/assets/image/8m2trW1BRE-128.webp 128w, https://ollicle.com/assets/image/8m2trW1BRE-256.webp 256w, https://ollicle.com/assets/image/8m2trW1BRE-512.webp 512w, https://ollicle.com/assets/image/8m2trW1BRE-1024.webp 1024w" sizes="(min-width: 880px) 640px, (min-width: 640px) calc(87.27vw - 111px), (min-width: 500px) calc(23.33vw + 283px), calc(91.11vw - 37px)" /><source type="image/jpeg" srcset="https://ollicle.com/assets/image/8m2trW1BRE-128.jpeg 128w, https://ollicle.com/assets/image/8m2trW1BRE-256.jpeg 256w, https://ollicle.com/assets/image/8m2trW1BRE-512.jpeg 512w, https://ollicle.com/assets/image/8m2trW1BRE-1024.jpeg 1024w" sizes="(min-width: 880px) 640px, (min-width: 640px) calc(87.27vw - 111px), (min-width: 500px) calc(23.33vw + 283px), calc(91.11vw - 37px)" /><img alt="Bold white six digit on a red background." loading="lazy" decoding="async" src="https://ollicle.com/assets/image/8m2trW1BRE-128.jpeg" width="1024" height="1024" /></picture></p>
<p>Mr. Reader blog: <a href="https://web.archive.org/web/20130629224802/http://mrreaderblog.curioustimes.de/post/53917037689/mrreader-v2-released">Mr. Reader v2.0<svg width="16" height="16" role="img" aria-label="web archive" class="inline-icon"><use xlink:href="#web-archive"></use></svg></a></p>
Seven2013-06-25T11:15:13Zhttps://ollicle.com/2013/jun/25/7/<p><picture><source type="image/avif" srcset="https://ollicle.com/assets/image/ksqc2EEs_3-128.avif 128w, https://ollicle.com/assets/image/ksqc2EEs_3-256.avif 256w, https://ollicle.com/assets/image/ksqc2EEs_3-512.avif 512w, https://ollicle.com/assets/image/ksqc2EEs_3-1024.avif 1024w" sizes="(min-width: 880px) 640px, (min-width: 640px) calc(87.27vw - 111px), (min-width: 500px) calc(23.33vw + 283px), calc(91.11vw - 37px)" /><source type="image/webp" srcset="https://ollicle.com/assets/image/ksqc2EEs_3-128.webp 128w, https://ollicle.com/assets/image/ksqc2EEs_3-256.webp 256w, https://ollicle.com/assets/image/ksqc2EEs_3-512.webp 512w, https://ollicle.com/assets/image/ksqc2EEs_3-1024.webp 1024w" sizes="(min-width: 880px) 640px, (min-width: 640px) calc(87.27vw - 111px), (min-width: 500px) calc(23.33vw + 283px), calc(91.11vw - 37px)" /><source type="image/jpeg" srcset="https://ollicle.com/assets/image/ksqc2EEs_3-128.jpeg 128w, https://ollicle.com/assets/image/ksqc2EEs_3-256.jpeg 256w, https://ollicle.com/assets/image/ksqc2EEs_3-512.jpeg 512w, https://ollicle.com/assets/image/ksqc2EEs_3-1024.jpeg 1024w" sizes="(min-width: 880px) 640px, (min-width: 640px) calc(87.27vw - 111px), (min-width: 500px) calc(23.33vw + 283px), calc(91.11vw - 37px)" /><img alt="Two cordless telephone handsets arranged to form a seven." loading="lazy" decoding="async" src="https://ollicle.com/assets/image/ksqc2EEs_3-128.jpeg" width="1024" height="1024" /></picture></p>
<p>Daniel Pasco: <a href="https://web.archive.org/web/20130628022925/http://blackpixel.com/blog/2013/06/netnewswire-4-open-beta.html">NetNewsWire 4 Open Beta<svg width="16" height="16" role="img" aria-label="web archive" class="inline-icon"><use xlink:href="#web-archive"></use></svg></a></p>
Eight2013-06-24T11:52:27Zhttps://ollicle.com/2013/jun/24/8/<p><picture><source type="image/avif" srcset="https://ollicle.com/assets/image/9BVzyx8skQ-128.avif 128w, https://ollicle.com/assets/image/9BVzyx8skQ-256.avif 256w, https://ollicle.com/assets/image/9BVzyx8skQ-512.avif 512w, https://ollicle.com/assets/image/9BVzyx8skQ-1024.avif 1024w" sizes="(min-width: 880px) 640px, (min-width: 640px) calc(87.27vw - 111px), (min-width: 500px) calc(23.33vw + 283px), calc(91.11vw - 37px)" /><source type="image/webp" srcset="https://ollicle.com/assets/image/9BVzyx8skQ-128.webp 128w, https://ollicle.com/assets/image/9BVzyx8skQ-256.webp 256w, https://ollicle.com/assets/image/9BVzyx8skQ-512.webp 512w, https://ollicle.com/assets/image/9BVzyx8skQ-1024.webp 1024w" sizes="(min-width: 880px) 640px, (min-width: 640px) calc(87.27vw - 111px), (min-width: 500px) calc(23.33vw + 283px), calc(91.11vw - 37px)" /><source type="image/jpeg" srcset="https://ollicle.com/assets/image/9BVzyx8skQ-128.jpeg 128w, https://ollicle.com/assets/image/9BVzyx8skQ-256.jpeg 256w, https://ollicle.com/assets/image/9BVzyx8skQ-512.jpeg 512w, https://ollicle.com/assets/image/9BVzyx8skQ-1024.jpeg 1024w" sizes="(min-width: 880px) 640px, (min-width: 640px) calc(87.27vw - 111px), (min-width: 500px) calc(23.33vw + 283px), calc(91.11vw - 37px)" /><img alt="A saucepan lid and a steamer on an oven tray forming an eight." loading="lazy" decoding="async" src="https://ollicle.com/assets/image/9BVzyx8skQ-128.jpeg" width="1024" height="1024" /></picture></p>
<p>DailyJS: <a href="https://web.archive.org/web/20130609075921/http://dailyjs.com/2013/05/30/angularjs-6/">AngularJS: Let's Make a Feed Reader – Adding Dependencies<svg width="16" height="16" role="img" aria-label="web archive" class="inline-icon"><use xlink:href="#web-archive"></use></svg></a></p>
Nine2013-06-24T11:49:19Zhttps://ollicle.com/2013/jun/24/9/<p><picture><source type="image/avif" srcset="https://ollicle.com/assets/image/kPunoxdZhL-128.avif 128w, https://ollicle.com/assets/image/kPunoxdZhL-256.avif 256w, https://ollicle.com/assets/image/kPunoxdZhL-512.avif 512w, https://ollicle.com/assets/image/kPunoxdZhL-1024.avif 1024w" sizes="(min-width: 880px) 640px, (min-width: 640px) calc(87.27vw - 111px), (min-width: 500px) calc(23.33vw + 283px), calc(91.11vw - 37px)" /><source type="image/webp" srcset="https://ollicle.com/assets/image/kPunoxdZhL-128.webp 128w, https://ollicle.com/assets/image/kPunoxdZhL-256.webp 256w, https://ollicle.com/assets/image/kPunoxdZhL-512.webp 512w, https://ollicle.com/assets/image/kPunoxdZhL-1024.webp 1024w" sizes="(min-width: 880px) 640px, (min-width: 640px) calc(87.27vw - 111px), (min-width: 500px) calc(23.33vw + 283px), calc(91.11vw - 37px)" /><source type="image/jpeg" srcset="https://ollicle.com/assets/image/kPunoxdZhL-128.jpeg 128w, https://ollicle.com/assets/image/kPunoxdZhL-256.jpeg 256w, https://ollicle.com/assets/image/kPunoxdZhL-512.jpeg 512w, https://ollicle.com/assets/image/kPunoxdZhL-1024.jpeg 1024w" sizes="(min-width: 880px) 640px, (min-width: 640px) calc(87.27vw - 111px), (min-width: 500px) calc(23.33vw + 283px), calc(91.11vw - 37px)" /><img alt="Ten cherry tomatoes forming the digit nine on a chopping board." loading="lazy" decoding="async" src="https://ollicle.com/assets/image/kPunoxdZhL-128.jpeg" width="1024" height="1024" /></picture></p>
<p>The Inquirer: <a href="https://web.archive.org/web/20130627133916/http://www.theinquirer.net/inquirer/news/2276854/facebook-wants-to-replace-google-reader-with-flipboard-style-app">Facebook wants to replace Google Reader with Flipboard style app<svg width="16" height="16" role="img" aria-label="web archive" class="inline-icon"><use xlink:href="#web-archive"></use></svg></a></p>
Ten2013-06-23T06:55:32Zhttps://ollicle.com/2013/jun/23/10/<p><picture><source type="image/avif" srcset="https://ollicle.com/assets/image/z9CmyUTKS9-128.avif 128w, https://ollicle.com/assets/image/z9CmyUTKS9-256.avif 256w, https://ollicle.com/assets/image/z9CmyUTKS9-512.avif 512w, https://ollicle.com/assets/image/z9CmyUTKS9-1024.avif 1024w" sizes="(min-width: 880px) 640px, (min-width: 640px) calc(87.27vw - 111px), (min-width: 500px) calc(23.33vw + 283px), calc(91.11vw - 37px)" /><source type="image/webp" srcset="https://ollicle.com/assets/image/z9CmyUTKS9-128.webp 128w, https://ollicle.com/assets/image/z9CmyUTKS9-256.webp 256w, https://ollicle.com/assets/image/z9CmyUTKS9-512.webp 512w, https://ollicle.com/assets/image/z9CmyUTKS9-1024.webp 1024w" sizes="(min-width: 880px) 640px, (min-width: 640px) calc(87.27vw - 111px), (min-width: 500px) calc(23.33vw + 283px), calc(91.11vw - 37px)" /><source type="image/jpeg" srcset="https://ollicle.com/assets/image/z9CmyUTKS9-128.jpeg 128w, https://ollicle.com/assets/image/z9CmyUTKS9-256.jpeg 256w, https://ollicle.com/assets/image/z9CmyUTKS9-512.jpeg 512w, https://ollicle.com/assets/image/z9CmyUTKS9-1024.jpeg 1024w" sizes="(min-width: 880px) 640px, (min-width: 640px) calc(87.27vw - 111px), (min-width: 500px) calc(23.33vw + 283px), calc(91.11vw - 37px)" /><img alt="Folded Messenger newspaper by some plants and gravel, juxtaposed with a circular concrete garden stepping stone – together forming ten" loading="lazy" decoding="async" src="https://ollicle.com/assets/image/z9CmyUTKS9-128.jpeg" width="1024" height="1024" /></picture></p>
<p>Gizmodo: <a href="https://gizmodo.com/turns-out-googles-reader-replacement-is-pretty-much-use-511622840">Turns Out Google’s Reader Replacement Is Pretty Much Useless</a></p>