{
  "version": "https://jsonfeed.org/version/1",
  "title": "Running Blind",
  "home_page_url": "http://runningblind.com",
  "feed_url": "http://runningblind.com/feeds/json",
  "author" : {
    "name" : "Josh Goebel",
    "url" : "https://twitter.com/dreamer3"
  },
  "icon" : "",
  "favicon" : "",
  "items": [
  {
    "title": "Cold Weather as proof against Global Warming",
    "date_published" : "2019-01-30T13:32:00-05:00",
    "date_modified" : "2019-01-30T13:32:00-05:00",
    "id" : "http://runningblind.com/2019/01/30/cold-weather-as-proof-against-global-warming",
    "url" : "http://runningblind.com/2019/01/30/cold-weather-as-proof-against-global-warming",
    "external_url" : "https://daringfireball.net/linked/2019/01/30/cold-weather-global-warming",
    "author" : {
      "name" : "Josh Goebel"
    },
    "content_html" : "<p>Gruber:</p>\n\n<blockquote>\n  <p>Holding up cold weather as proof that global warming isn’t happening is like hitting a winning streak at the blackjack table and saying “Who says the casino has an advantage?”</p>\n</blockquote>\n\n<p>Exactly.</p>\n" 
  },
  {
    "title": "Samsung Space Monitor Optimizes Desk Space With Minimalist Design",
    "date_published" : "2019-01-28T16:25:00-05:00",
    "date_modified" : "2019-01-28T16:25:00-05:00",
    "id" : "http://runningblind.com/2019/01/28/samsung-space-monitor-optimizes-desk-space-with-minimalist-design",
    "url" : "http://runningblind.com/2019/01/28/samsung-space-monitor-optimizes-desk-space-with-minimalist-design",
    "external_url" : "https://design-milk.com/samsung-space-monitor-declutters-desk-space/",
    "author" : {
      "name" : "Josh Goebel"
    },
    "content_html" : "<p><img src=\"https://design-milk.com/images/2019/01/Samsung-Space-Monitor-4.jpg\" alt=\"\" /></p>\n\n<blockquote>\n  <p>The Samsung Space Monitor’s sleek adjustable display revolves around an integrated clamp-secured arm engineered to allow the 27-inch or 32-inch screen to angle from a fully upright position toward the user with only a slight pull.</p>\n</blockquote>\n\n<p>Neat idea for someone unfamiliar with monitor arms and VESA mounts.</p>\n" 
  },
  {
    "title": "Using a newer Ruby with Alfred Workflows (rbenv)",
    "date_published" : "2019-01-28T15:51:00-05:00",
    "date_modified" : "2019-01-28T15:51:00-05:00",
    "id" : "http://runningblind.com/2019/01/28/using-a-newer-ruby-version-with-alfred-workflows-w-rbenv",
    "url" : "http://runningblind.com/2019/01/28/using-a-newer-ruby-version-with-alfred-workflows-w-rbenv",
    "author" : {
      "name" : "Josh Goebel"
    },
    "content_html" : "<p>This was a bit easier than I was expecting:</p>\n\n<figure class=\"highlight\"><pre><code class=\"language-shell\" data-lang=\"shell\"><span class=\"c\"># of course you'd need your own path here</span>\n<span class=\"nv\">PATH</span><span class=\"o\">=</span><span class=\"s2\">\"</span><span class=\"nv\">$PATH</span><span class=\"s2\">:/Users/jgoebel/.rbenv/bin/\"</span>\n<span class=\"nb\">eval</span> <span class=\"s2\">\"</span><span class=\"k\">$(</span>rbenv init -<span class=\"k\">)</span><span class=\"s2\">\"</span>\nrbenv shell 2.5.0\nruby <span class=\"nt\">-v</span></code></pre></figure>\n\n<p>Pipe that into Large Type and you should see the familiar <code class=\"highlighter-rouge\">ruby 2.5.0 ... etc</code>.</p>\n" 
  },
  {
    "title": "How to Customize Control Center on watchOS",
    "date_published" : "2019-01-28T15:15:00-05:00",
    "date_modified" : "2019-01-28T15:15:00-05:00",
    "id" : "http://runningblind.com/2019/01/28/how-to-customize-control-center-on-watchos",
    "url" : "http://runningblind.com/2019/01/28/how-to-customize-control-center-on-watchos",
    "external_url" : "https://thesweetsetup.com/how-to-customize-control-center-on-watchos/",
    "author" : {
      "name" : "Josh Goebel"
    },
    "content_html" : "<blockquote>\n  <p>To customize the Control Center, swipe up from the watch face, scroll down (you can do this with the crown), and tap Edit. The icons will start jiggling, which means you can drag them into any order you like. When you’re done, just tap Done at the bottom of the screen. While you can’t remove icons from the Control Center, you can move the least used ones to the bottom, as just 6 icons appear on the screen without scrolling.</p>\n</blockquote>\n\n<p>I had an Apple Watch for years before I knew you could do this.  And then the other day I lost a few minutes trying to long-hold on the icons (like you do on Home) to get them to jiggle because I’d forgotten to scroll down to find “Edit”.</p>\n\n<p>Immediately I moved DND to the top left, and it’s been great.</p>\n" 
  },
  {
    "title": "Passwords and Muscle Memory",
    "date_published" : "2019-01-28T15:00:00-05:00",
    "date_modified" : "2019-01-28T15:00:00-05:00",
    "id" : "http://runningblind.com/2019/01/28/passwords-and-muscle-memory",
    "url" : "http://runningblind.com/2019/01/28/passwords-and-muscle-memory",
    "external_url" : "http://inessential.com/2019/01/24/passwords_and_muscle_memory",
    "author" : {
      "name" : "Josh Goebel"
    },
    "content_html" : "<blockquote>\n  <p>Yesterday I was unable to login to one of my (personal, not work) computers because I had forgotten my password. …</p>\n</blockquote>\n\n<blockquote>\n  <p>But that still meant a few hours where I wasn’t sure if I’d be able to login to my personal computers. Which is definitely a scary thing. Even though important things are backed up elsewhere (NetNewsWire’s code is on GitHub, for instance), it’s still scary.</p>\n</blockquote>\n\n<p>I don’t type passwords from muscle memory (or maybe I do, but the password itself always pops into my brain first before I start typing).  I do kind of understand the fear though.  Sometimes I wonder what would happen if I had a brain issue/fluke of some kind and simply forgot my 1Password master password…</p>\n\n<p>Seems 1Password doesn’t have an extra “backup key” - like OS X has when encrypting your disks.  I suppose you could always write down your actual master password and place it in a safety deposit box at the bank?  Is any better way to deal with this? (other than turning your 1Password into a Family/Team account)</p>\n" 
  },
  {
    "title": "Imagine a world without ads targeted by personal information",
    "date_published" : "2019-01-28T11:46:00-05:00",
    "date_modified" : "2019-01-28T11:46:00-05:00",
    "id" : "http://runningblind.com/2019/01/28/imagine-a-world-without-ads-targeted-by-personal-information",
    "url" : "http://runningblind.com/2019/01/28/imagine-a-world-without-ads-targeted-by-personal-information",
    "external_url" : "https://m.signalvnoise.com/imagine-a-world-without-ads-targeted-by-personal-information/",
    "author" : {
      "name" : "Josh Goebel"
    },
    "content_html" : "<blockquote>\n  <p>Just try to imagine that world without ad targeting. It’s hard to imagine that it wouldn’t be a better one.</p>\n</blockquote>\n\n<p>Indeed, just imagine.  <a href=\"https://youtu.be/r4P1v662U4E/\">Imagine (John Lennon)</a></p>\n" 
  },
  {
    "title": "I’ll pay what they’d pay",
    "date_published" : "2019-01-28T11:42:00-05:00",
    "date_modified" : "2019-01-28T11:42:00-05:00",
    "id" : "http://runningblind.com/2019/01/28/i-ll-pay-what-they-d-pay",
    "url" : "http://runningblind.com/2019/01/28/i-ll-pay-what-they-d-pay",
    "external_url" : "https://m.signalvnoise.com/ill-pay-what-theyd-pay/",
    "author" : {
      "name" : "Josh Goebel"
    },
    "content_html" : "<blockquote>\n  <p><strong>Jason Fried:</strong>  I wish ad-supported services could look at my average usage (# of pages I’ve viewed, ads I’ve seen, etc), and give me an option to directly pay them the same amount they would have charged the advertisers for my slice of views/clicks/etc. No ads for me, they get paid as if they were serving me ads.</p>\n</blockquote>\n\n<p>I’d love to see a company or two try this.  I bet for one the logistics would be a lot more complex/expensive, but I suppose they could build that into the equation.  The bigger worry though is that people who feel this way are likely in the minority - most would prefer to continue to get their services for “free”, since they either don’t mind or don’t comprehend the cost they are truly paying for those “free” services.</p>\n" 
  },
  {
    "title": "A tiny screw shows why iPhones won't be 'Assembled in USA'",
    "date_published" : "2019-01-28T11:33:00-05:00",
    "date_modified" : "2019-01-28T11:33:00-05:00",
    "id" : "http://runningblind.com/2019/01/28/a-tiny-screw-shows-why-iphones-won-t-be-assembled-in-usa",
    "url" : "http://runningblind.com/2019/01/28/a-tiny-screw-shows-why-iphones-won-t-be-assembled-in-usa",
    "external_url" : "https://sixcolors.com/link/2019/01/a-tiny-screw-shows-why-iphones-wont-be-assembled-in-usa/",
    "author" : {
      "name" : "Josh Goebel"
    },
    "content_html" : "<blockquote>\n  <p>Caldwell couldn’t make lots of screws for Apple, even though it once had the capacity, because that part of its business was beaten by cheaper competition in China years before. (The article also quite rightly points out that U.S. workers are paid far more than Chinese workers and also don’t live under an authoritarian government that can compel them to work all day and all night.)</p>\n</blockquote>\n\n<blockquote>\n  <p>… they can’t simply move manufacturing back to the United States like the President of the United States keeps saying.</p>\n</blockquote>\n\n<p>The older (wiser?) I get the more I realize nothing is ever as simple as it seems.  Nothing is ever as black and white as it seems.  The real world seems to be almost infinitely gray and complex.</p>\n" 
  },
  {
    "title": "A Camera is Watching You in Your AirBnB",
    "date_published" : "2019-01-18T22:57:00-05:00",
    "date_modified" : "2019-01-18T22:57:00-05:00",
    "id" : "http://runningblind.com/2019/01/18/a-camera-is-watching-you-in-your-airbnb",
    "url" : "http://runningblind.com/2019/01/18/a-camera-is-watching-you-in-your-airbnb",
    "external_url" : "http://jeffreybigham.com/blog/2019/who-is-watching-you-in-your-airbnb.html",
    "author" : {
      "name" : "Josh Goebel"
    },
    "content_html" : "<blockquote>\n  <p>Well dearest host, it is not my responsibility to tell you what I was doing. But, to ease your mind, I’ll tell you we were doing one of two things – either we were having a drug and sex party[1] with 100 of our closest friends, or we went to bed at 9:15 exhausted from kids and being on EST.  What was I trying to hide on New Year’s Eve… indeed.</p>\n</blockquote>\n\n<p>Absolutely hilarious little snippet in the middle of all this AirBnB camera drama.  Glad they got their money back.  I’ve had a few pleasant AirBnB experiences over the years.</p>\n" 
  },
  {
    "title": "Linux systemd Affected by Memory Corruption Vulnerabilities, No Patches Yet",
    "date_published" : "2019-01-15T15:59:00-05:00",
    "date_modified" : "2019-01-15T15:59:00-05:00",
    "id" : "http://runningblind.com/2019/01/15/linux-systemd-affected-by-memory-corruption-vulnerabilities-no-patches-yet",
    "url" : "http://runningblind.com/2019/01/15/linux-systemd-affected-by-memory-corruption-vulnerabilities-no-patches-yet",
    "external_url" : "https://www.bleepingcomputer.com/news/security/linux-systemd-affected-by-memory-corruption-vulnerabilities-no-patches-yet/",
    "author" : {
      "name" : "Josh Goebel"
    },
    "content_html" : "<blockquote>\n  <p>Discovered by researchers at Qualys, the flaws are two memory corruption vulnerabilities (stack buffer overflow - CVE-2018-16864, and allocation of memory without limits - CVE-2018-16865) and one out-of-bounds error (CVE-2018-16866).</p>\n</blockquote>\n\n<blockquote>\n  <p>They were able to obtain local root shell on both x86 and x64 machines by exploiting CVE-2018-16865 and CVE-2018-16866. The exploit worked faster on the x86 platform, achieving its purpose in ten minutes; on x64, though, the exploit took 70 minutes to complete.</p>\n</blockquote>\n\n<p>Count another “told ya so” for all the <code class=\"highlighter-rouge\">systemd</code> haters.  Not a religious issue to me personally, but I do see where they are coming from.</p>\n" 
  },
  {
    "title": "You are scared of dying",
    "date_published" : "2019-01-15T15:21:00-05:00",
    "date_modified" : "2019-01-15T15:21:00-05:00",
    "id" : "http://runningblind.com/2019/01/15/you-are-scared-of-dying",
    "url" : "http://runningblind.com/2019/01/15/you-are-scared-of-dying",
    "author" : {
      "name" : "Josh Goebel"
    },
    "content_html" : "<p>You are afraid of dying - and, tell me, is the kind of life you lead really any different than being dead?</p>\n" 
  },
  {
    "title": "Shocker: Facebook's \"Clear History\" Privacy Feature is Vaporware",
    "date_published" : "2019-01-15T11:30:00-05:00",
    "date_modified" : "2019-01-15T11:30:00-05:00",
    "id" : "http://runningblind.com/2019/01/15/shocker-facebook-s-clear-history-privacy-feature-is-vaporware",
    "url" : "http://runningblind.com/2019/01/15/shocker-facebook-s-clear-history-privacy-feature-is-vaporware",
    "external_url" : "https://daringfireball.net/linked/2018/12/28/facebook-privacy",
    "author" : {
      "name" : "Josh Goebel"
    },
    "content_html" : "<blockquote>\n  <p><strong>Gruber:</strong> I don’t think it was hard, per se, but that the entire announcement was bullshit intended to distract people from the biggest privacy scandal in company history — and Facebook is a company riddled with privacy scandals.</p>\n</blockquote>\n\n<p>Still not regretting my decision to leave Facebook years ago one bit.</p>\n" 
  },
  {
    "title": "Unikernels are unfit for production",
    "date_published" : "2019-01-15T10:27:00-05:00",
    "date_modified" : "2019-01-15T10:27:00-05:00",
    "id" : "http://runningblind.com/2019/01/15/unikernels-are-unfit-for-production",
    "url" : "http://runningblind.com/2019/01/15/unikernels-are-unfit-for-production",
    "external_url" : "https://www.joyent.com/blog/unikernels-are-unfit-for-production",
    "author" : {
      "name" : "Josh Goebel"
    },
    "content_html" : "<blockquote>\n  <p>So, what’s the problem with unikernels? Let’s get a definition first: a unikernel is an application that runs entirely in the microprocessor’s privileged mode. (The exact nomenclature varies; on x86 this would be running at Ring 0.) That is, in a unikernel there is no application at all in a traditional sense; instead, application functionality has been pulled into the operating system kernel. (The idea that there is “no OS” serves to mislead; it is not that there isn’t an operating system but rather that the application has taken on the hardware-interfacing responsibilities of the operating system — it is “all OS”, if a crude and anemic one.)</p>\n</blockquote>\n\n<blockquote>\n  <p>So those are the reasons for unikernels: perhaps performance, a little security theater, and a software crash diet. As tepid as they are, these reasons constitute the end of the good news from unikernels. Everything else from here on out is bad news: costs that must be borne to get to those advantages, however flimsy.</p>\n</blockquote>\n\n<p>Worth a read if you think Unikernels are the new hotness.</p>\n\n<blockquote>\n  <p>Unikernels are entirely undebuggable. There are no processes, so of course there is no ps, no htop, no strace — but there is also no netstat, no tcpdump, no ping! And these are just the crude, decades-old tools. There is certainly nothing modern like DTrace or MDB. From a debugging perspective, to say this is primitive understates it: this isn’t paleolithic — it is precambrian. As one who has spent my career developing production systems and the tooling to debug them, I find the implicit denial of debugging production systems to be galling, and symptomatic of a deeper malaise among unikernel proponents: total lack of operational empathy. Production problems are simply hand-waved away — services are just to be restarted when they misbehave. This attitude — even when merely implied — is infuriating to anyone who has ever been responsible for operating a system.</p>\n</blockquote>\n\n<p>He mentions a talk he gave at DockerCon 2015 where he received strong applause after emphasizing the need to debug rather than just restart systems.  I do see the point, but I also think the industry is kind of pulling the other direction on this as a whole.  If your system is generally reliable [enough] and easily distributed, then there is a certain elegance to the notion or just ignoring edge cases completely and just letting them die.</p>\n\n<p>When you had one huge server any small issue with it was worthy of detailed investigation - but when you have 10,000 tiny servers and it only takes 20 seconds to spool up a new one… it becomes a lot harder to justify the debugging and pragmatism starts to kick in.  Hard to say whether this will bite us in the long-run.</p>\n\n<p>It probably already is having a negative effect on personal computer software reliability in general.  It’s easy to forgive <a href=\"http://vivaldi.com\">Vivaldi</a> for getting sluggish after a few days since it restarts so smoothly and preserves it’s state so well, but it would certainly be nicer if I never had to restart it.</p>\n" 
  },
  {
    "title": "Apple's China Problem Redux",
    "date_published" : "2019-01-15T10:25:00-05:00",
    "date_modified" : "2019-01-15T10:25:00-05:00",
    "id" : "http://runningblind.com/2019/01/15/apple-s-china-problem-redux",
    "url" : "http://runningblind.com/2019/01/15/apple-s-china-problem-redux",
    "external_url" : "https://daringfireball.net/linked/2019/01/02/apple-china-ben-thompson",
    "author" : {
      "name" : "Josh Goebel"
    },
    "content_html" : "<blockquote>\n  <p>Apple does make great hardware — hardware so good that to some extent it sells itself. But the core of Apple’s platforms are the OS’s — the software, not the hardware. I’d much rather run MacOS on a ThinkPad and iOS on a Pixel phone than run Windows on a MacBook Pro and Android on an iPhone XS.</p>\n</blockquote>\n\n<p>So true.  A ThinkPad running official and supported OS X would be quite something.</p>\n\n<blockquote>\n  <p>If the appeal of iPhone in China is only or even just mostly about the hardware — because the software that matters is WeChat (or anything else that is cross-platform), not iOS and its native exclusive ecosystem — then China is never going to be a consistent market for Apple.</p>\n</blockquote>\n\n<p>Sad, but I think this might be true.  Going to be tougher for Apple in China than other places.</p>\n" 
  },
  {
    "title": "Stop Slacking",
    "date_published" : "2019-01-15T10:21:00-05:00",
    "date_modified" : "2019-01-15T10:21:00-05:00",
    "id" : "http://runningblind.com/2019/01/15/stop-slacking",
    "url" : "http://runningblind.com/2019/01/15/stop-slacking",
    "external_url" : "https://stopslacking.com/",
    "author" : {
      "name" : "Josh Goebel"
    },
    "content_html" : "<blockquote>\n  <p>Reply to Slack messages via email. Stay focused.</p>\n</blockquote>\n\n<p>What a great idea.</p>\n" 
  },
  {
    "title": "YAGNI to the rescue",
    "date_published" : "2019-01-15T10:15:00-05:00",
    "date_modified" : "2019-01-15T10:15:00-05:00",
    "id" : "http://runningblind.com/2019/01/15/yagni-to-the-rescue",
    "url" : "http://runningblind.com/2019/01/15/yagni-to-the-rescue",
    "external_url" : "https://swizec.com/blog/dry-footgun-remember-yagni/swizec/8856",
    "author" : {
      "name" : "Josh Goebel"
    },
    "content_html" : "<blockquote>\n  <p>You spotted an opportunity to optimize, but you were too early. You should avoid generalizing code until it is absolutely obvious that you should.</p>\n</blockquote>\n\n<blockquote>\n  <p>The more use-cases you have, the easier to know what to generalize. I mean, how can you know which functionality your components share if you don’t even have those components yet?</p>\n</blockquote>\n\n<blockquote>\n  <p><strong>You can’t.</strong></p>\n</blockquote>\n\n<p>YAGNI, always good advice.</p>\n" 
  },
  {
    "title": "Mf — Abusing Ruby’s Operator Precedence",
    "date_published" : "2018-12-31T13:23:00-05:00",
    "date_modified" : "2018-12-31T13:23:00-05:00",
    "id" : "http://runningblind.com/2018/12/31/mf-abusing-ruby-s-operator-precedence",
    "url" : "http://runningblind.com/2018/12/31/mf-abusing-ruby-s-operator-precedence",
    "external_url" : "https://medium.com/@baweaver/mf-abusing-rubys-operator-precedence-ccf3f071bad8",
    "author" : {
      "name" : "Josh Goebel"
    },
    "content_html" : "<blockquote>\n  <p>You may have seen Ruby 2.6’s Proc composition, but did you know there are far more operators you can abuse using Ruby’s proc coercion ( &amp; )? Get ready for another wild ride!</p>\n</blockquote>\n\n<p>Fun and potentially useful if Ruby is your thing:</p>\n\n<div class=\"language-ruby highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code><span class=\"n\">json_data</span><span class=\"p\">.</span><span class=\"nf\">map</span><span class=\"p\">(</span><span class=\"o\">&amp;</span><span class=\"no\">Mf</span><span class=\"p\">[</span><span class=\"s1\">'name'</span><span class=\"p\">])</span>\n</code></pre></div></div>\n" 
  },
  {
    "title": "Bundles and Packages",
    "date_published" : "2018-12-27T17:56:00-05:00",
    "date_modified" : "2018-12-27T17:56:00-05:00",
    "id" : "http://runningblind.com/2018/12/27/bundles-and-packages",
    "url" : "http://runningblind.com/2018/12/27/bundles-and-packages",
    "external_url" : "https://nshipster.com/bundles-and-packages/",
    "author" : {
      "name" : "Josh Goebel"
    },
    "content_html" : "<blockquote>\n  <p>In this season of giving, let’s stop to consider one of the greatest gifts given to us by modern computer systems: the gift of abstraction.</p>\n</blockquote>\n\n<blockquote>\n  <p>Consider those billions of people around the world who use computers and mobile devices on a daily basis. They do this without having to know anything about the millions of CPU transistors and SSD sectors and LCD pixels that come together to make that happen. All of this is thanks to abstractions like files and directories and apps and documents.</p>\n</blockquote>\n\n<p>Indeed, we stand on the shoulders of giants - giant abstractions - or perhaps giant layers of abstractions.  Without them we’d all be sweating over the decision between NAND gates and NOR gates for every new project - and that would be no fun at all.</p>\n\n<p>Also seems to be a great article in general if you’d like to learn more about Bundles and Packages.</p>\n" 
  },
  {
    "title": "Why It's Hard to Escape Amazon's Long Reach",
    "date_published" : "2018-12-27T17:04:00-05:00",
    "date_modified" : "2018-12-27T17:04:00-05:00",
    "id" : "http://runningblind.com/2018/12/27/why-it-s-hard-to-escape-amazon-s-long-reach",
    "url" : "http://runningblind.com/2018/12/27/why-it-s-hard-to-escape-amazon-s-long-reach",
    "external_url" : "https://www.wired.com/story/why-hard-escape-amazons-long-reach/",
    "author" : {
      "name" : "Josh Goebel"
    },
    "content_html" : "<blockquote>\n  <p>It’s now the largest provider of cloud computing services and a maker of home security systems. Amazon is a fashion designer, advertising business, television and movie producer, book publisher, and the owner of a sprawling platform for crowdsourced micro-labor tasks. The company now occupies roughly as much space worldwide as 38 Pentagons. It has grown so large that Amazon’s many subsidiaries are difficult to track—so we catalogued them all for you. This is our exhaustive map of the Kingdom of Amazon.</p>\n</blockquote>\n\n<p>I didn’t disagree with the intro, but I laughed at this whole “Kingdom of Amazon” hyperbole a little until I read the article.  Yikes.  It’s more than a little scary, seriously.  Amazon has been slowly growing more concerning in my mind.  A year or so ago I switched my Prime membership back to monthly and perhaps this year I’ll cancel it completely.  Right now it’s only Kindle Unlimited that keeps me hanging on.  I’ve been leaning a lot more on local libraries this past year though, and that might just be the trick that finally helps me break away.</p>\n" 
  },
  {
    "title": "iPhone's new Fortnite's 60fps mode tested - and it's a tech milestone",
    "date_published" : "2018-12-27T16:44:00-05:00",
    "date_modified" : "2018-12-27T16:44:00-05:00",
    "id" : "http://runningblind.com/2018/12/27/iphone-s-new-fortnite-s-60fps-mode-tested-and-it-s-a-tech-milestone",
    "url" : "http://runningblind.com/2018/12/27/iphone-s-new-fortnite-s-60fps-mode-tested-and-it-s-a-tech-milestone",
    "external_url" : "https://www.eurogamer.net/articles/digitalfoundry-2018-how-epic-games-runs-fortnite-at-60fps-on-iphone",
    "author" : {
      "name" : "Josh Goebel"
    },
    "content_html" : "<blockquote>\n  <p>However, the reality is that running the last-gen A11 Bionic flat-out would overheat the device, leading to lower CPU and GPU clocks, severely impacted performance and highly compromised battery life. Epic’s solution is simple then - lock to 30fps and in the process give the device the thermal headroom to stay cool enough to run at peak frequencies.</p>\n</blockquote>\n\n<blockquote>\n  <p>It’s a completely different ballgame with the A12 Bionic found in the iPhone XS, XS Max and the cheaper but just as capable iPhone XR (which Epic supplied for Fortnite 60fps testing). Epic says that the extra processing power allows Fortnite to complete a frame in the eight to 10ms range, meaning that there’s still plenty of ‘down time’ for the silicon. Apple’s move to TSMC’s new 7nm process also opens up the thermal headroom required to maintain peak clocks.</p>\n</blockquote>\n\n<p>Imagine a world where Apple was actually seriously interesting in gaming… what might be possible?</p>\n" 
  },
  {
    "title": "clear and simple code",
    "date_published" : "2018-12-27T12:58:00-05:00",
    "date_modified" : "2018-12-27T12:58:00-05:00",
    "id" : "http://runningblind.com/2018/12/27/clear-and-simple-code",
    "url" : "http://runningblind.com/2018/12/27/clear-and-simple-code",
    "author" : {
      "name" : "Josh Goebel"
    },
    "content_html" : "<p>In my experience junior developers write clear and simple code, because it’s easy for them to understand; mid-range developers write complicated code, because it proves what a clever developer they are; and senior developers write clear, simple code, so that they won’t have to answer questions from junior and mid-range developers about how it works.</p>\n" 
  },
  {
    "title": "Windows",
    "date_published" : "2018-12-25T10:18:00-05:00",
    "date_modified" : "2018-12-25T10:18:00-05:00",
    "id" : "http://runningblind.com/2018/12/25/windows",
    "url" : "http://runningblind.com/2018/12/25/windows",
    "external_url" : "http://bitcannon.net/post/windows/",
    "author" : {
      "name" : "Josh Goebel"
    },
    "content_html" : "<blockquote>\n  <p>On and off over the last year or so I have spent some time in Windows 10. Mostly with the Eve V, but also on my XPS 15. I have found the experience pretty terrible on many occasions. The hostility and lack of respect towards the user shown by Microsoft and some Windows software developers is egregious and angers me every time I encounter it.</p>\n</blockquote>\n\n<blockquote>\n  <p>I’m aware that the vast majority of computer users manage to use Windows but I’ve concluded it’s not for me. I find it unpleasant to use, slow, full of junk, and offensive to its users.</p>\n</blockquote>\n\n<p>Scathing critique of Windows, though after looking at his sample screen shots I can’t say I disagree.</p>\n" 
  },
  {
    "title": "Feminism’s Dependency Trap",
    "date_published" : "2018-12-25T08:51:00-05:00",
    "date_modified" : "2018-12-25T08:51:00-05:00",
    "id" : "http://runningblind.com/2018/12/25/feminism-s-dependency-trap",
    "url" : "http://runningblind.com/2018/12/25/feminism-s-dependency-trap",
    "external_url" : "https://quillette.com/2018/12/20/feminisms-dependency-trap/",
    "author" : {
      "name" : "Josh Goebel"
    },
    "content_html" : "<blockquote>\n  <p>A further concern I have with the message and tone of contemporary feminism is that women have evidently forgotten that we have power over men as a result of the fact that we’re women—men adore us, and almost all their efforts at work or at home or in social settings, are made to win our approval, if not our admiration. In short, I am bewildered by the fact that in a culture in which The Patriarchy has never had less power over women, women seem to want to attribute to it a greater power than men in fact have, thereby confining women to a position of victimhood and powerlessness.</p>\n</blockquote>\n\n<blockquote>\n  <p>…</p>\n</blockquote>\n\n<blockquote>\n  <p>The orthodox line of feminism is that women don’t need men, and that it is men who keep women in a state of dependence. This is the doctrine of women’s liberation: we are trying to liberate ourselves from our dependency on men. Pragmatically speaking, the notion that we don’t need men is largely true. (As a single mother and single woman, I’m certainly poorer than my married counterparts, but I am running a family household successfully, if chaotically.) Paradoxically, however, the rhetoric of orthodox feminism implies the reverse: we need men in order to prove to ourselves that we don’t. I don’t need to sleep with a stuffed animal at night, but were I to insist on mentioning this at every opportunity, it would become abundantly clear that the idea dominated me. At a time when Western women have achieved economic independence, control over their reproductive rights, legal equality, and equal professional opportunities, the continued obsession with the need to win independence from the thing that we are, in every measurable way, already independent from, reveals just how subservient we are to the idea of powerful men. After all, only a child still dependent on the comfort of a stuffed toy needs to insist to herself that she isn’t.</p>\n</blockquote>\n\n<p>Worth some thought.</p>\n" 
  },
  {
    "title": "California considers a texting tax",
    "date_published" : "2018-12-24T18:11:00-05:00",
    "date_modified" : "2018-12-24T18:11:00-05:00",
    "id" : "http://runningblind.com/2018/12/24/california-considers-a-texting-tax",
    "url" : "http://runningblind.com/2018/12/24/california-considers-a-texting-tax",
    "external_url" : "https://www.engadget.com/2018/12/13/california-texting-tax/",
    "author" : {
      "name" : "Josh Goebel"
    },
    "content_html" : "<blockquote>\n  <p>Cell phone owners in California could soon pay extra for the privilege of sending text messages, thanks to landline-era legislation and changing usage patterns. According to recent public law filings, the state’s Public Utilities Commission (PUC) is considering a plan that would bill users a monthly fee for any text message services they use, and phone service carriers aren’t happy about it.</p>\n</blockquote>\n\n<p>Feels not so long ago that SMS became a free element of most cellular plans… and now the government wants to start taxing it?  Ugh.</p>\n\n<blockquote>\n  <p>And of course, there’s always the risk that applying such a charge will push consumers away from traditional SMS altogether, which would certainly impact the PUC’s estimated $44.5 million figure, and subsequently the people the charge is meant to help in the first place.</p>\n</blockquote>\n\n<p>A completely valid concern and definitely a possibility - <strong>if people even notice the new charges on their bill</strong>.  I don’t see anything mentioned about how much the tax could be.</p>\n\n" 
  },
  {
    "title": "A College Student Was Told to Remove a ‘Fuck Nazis’ Sign Because It Wasn’t ‘Inclusive’",
    "date_published" : "2018-12-24T18:04:00-05:00",
    "date_modified" : "2018-12-24T18:04:00-05:00",
    "id" : "http://runningblind.com/2018/12/24/a-college-student-was-told-to-remove-a-fuck-nazis-sign-because-it-wasn-t-inclusive",
    "url" : "http://runningblind.com/2018/12/24/a-college-student-was-told-to-remove-a-fuck-nazis-sign-because-it-wasn-t-inclusive",
    "external_url" : "https://daringfireball.net/linked/2018/12/24/nazi-inclusion",
    "author" : {
      "name" : "Josh Goebel"
    },
    "content_html" : "<p>Gruber:</p>\n\n<blockquote>\n  <p>Essential reading in today’s world: Popper’s Paradox of Tolerance. In the mid-20th century there wasn’t any debate in the West over whether we should tolerate the intolerant, because they had to fight the Nazis in a bloody war. We don’t want to learn this lesson that way again.</p>\n</blockquote>\n\n<blockquote>\n  <p>When someone draws a goddamn swastika on a “Happy Hanukkah” sign, “Fuck Nazis” is the appropriate response.</p>\n</blockquote>\n\n<p>Amen. “Fuck Nazis”, indeed.</p>\n" 
  },
  {
    "title": "What kind of fuck you give me?",
    "date_published" : "2018-12-23T23:03:00-05:00",
    "date_modified" : "2018-12-23T23:03:00-05:00",
    "id" : "http://runningblind.com/2018/12/23/what-kind-of-fuck-you-give-me",
    "url" : "http://runningblind.com/2018/12/23/what-kind-of-fuck-you-give-me",
    "author" : {
      "name" : "Josh Goebel"
    },
    "content_html" : "<p>What kind of fuck you give me? What kind? American people, eight kind of fuck. Love fuck, hate fuck, sex-only fuck, break-up fuck, make-up fuck, drunk fuck, buddy fuck, pity fuck.</p>\n" 
  },
  {
    "title": "jekyll-feed: You aren't gonna need it",
    "date_published" : "2018-12-22T10:52:00-05:00",
    "date_modified" : "2018-12-22T10:52:00-05:00",
    "id" : "http://runningblind.com/2018/12/22/jekyll-jekyll-feed-you-don-t-need-it",
    "url" : "http://runningblind.com/2018/12/22/jekyll-jekyll-feed-you-don-t-need-it",
    "author" : {
      "name" : "Josh Goebel"
    },
    "content_html" : "<p>I think I’m going to turn this into a series of posts, about a lot of popular Jekyll plugins - and how you just <a href=\"https://en.wikipedia.org/wiki/You_aren%27t_gonna_need_it\">aren’t gonna need them</a>.  We’ll see how far we get.  And where better to start than <a href=\"https://github.com/jekyll/jekyll-feed/\">jekyll-feed</a>? The popular feed plug-in that publishes an Atom feed that includes your 10 most recent posts, <a href=\"https://github.com/jekyll/jekyll-feed/pull/107\">no more</a>, <a href=\"https://github.com/jekyll/jekyll-feed/issues/174\">no less</a>, and <a href=\"https://github.com/jekyll/jekyll-feed/pull/193\">no option</a> <a href=\"https://github.com/jekyll/jekyll-feed/issues/213\">to configure that number</a>.</p>\n\n<p>This bugs me. I’ve seen Feedly do annoying things with a small number of feeds in the past.  I have some feeds I like to read periodically, but not regularly.  Very rarely some of these same feeds would start disappearing their old items far too quickly (like within a few weeks, not a month).  <em>But I digress, and maybe this didn’t have anything to do with their feeds.</em></p>\n\n<p>In any case 10 seems like a completely arbitrary number to me and also a bit small for my personal tastes.  <strong>Thankfully, you don’t need <code class=\"highlighter-rouge\">jekyll-feed</code> or it’s limitations.</strong>  I glanced at <a href=\"https://daringfireball.net/\">Daring Fireball’s</a> atom.xml feed for a little inspiration and just built my own from there.  Here’s what it looks like:</p>\n\n<h3 id=\"atomxml\">atom.xml</h3>\n\n<figure class=\"highlight\"><pre><code class=\"language-xml\" data-lang=\"xml\">---\nlayout: null\n---\n<span class=\"cp\">&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;</span>\n<span class=\"nt\">&lt;feed</span> <span class=\"na\">xmlns=</span><span class=\"s\">\"http://www.w3.org/2005/Atom\"</span><span class=\"nt\">&gt;</span>\n <span class=\"nt\">&lt;title&gt;</span>{{ site.title | xml_escape }}<span class=\"nt\">&lt;/title&gt;</span>\n <span class=\"nt\">&lt;subtitle&gt;</span>{{ site.description | xml_escape }}<span class=\"nt\">&lt;/subtitle&gt;</span>\n <span class=\"nt\">&lt;link</span> <span class=\"na\">href=</span><span class=\"s\">\"{{ site.url }}/atom.xml\"</span> <span class=\"na\">rel=</span><span class=\"s\">\"self\"</span> <span class=\"na\">type=</span><span class=\"s\">\"application/atom+xml\"</span><span class=\"nt\">/&gt;</span>\n <span class=\"nt\">&lt;link</span> <span class=\"na\">href=</span><span class=\"s\">\"{{ site.url }}/\"</span> <span class=\"na\">rel=</span><span class=\"s\">\"alternate\"</span> <span class=\"na\">type=</span><span class=\"s\">\"text/html\"</span><span class=\"nt\">/&gt;</span>\n <span class=\"nt\">&lt;id&gt;</span>{{ site.url }}/<span class=\"nt\">&lt;/id&gt;</span>\n <span class=\"nt\">&lt;generator</span> <span class=\"na\">uri=</span><span class=\"s\">\"https://jekyllrb.com/\"</span> <span class=\"na\">version=</span><span class=\"s\">\"{{ jekyll.version }}\"</span><span class=\"nt\">&gt;</span>Jekyll<span class=\"nt\">&lt;/generator&gt;</span>\n\n <span class=\"nt\">&lt;updated&gt;</span>{{ site.time | date_to_xmlschema }}<span class=\"nt\">&lt;/updated&gt;</span>\n\n <span class=\"nt\">&lt;author&gt;</span>\n   <span class=\"nt\">&lt;name&gt;</span>{{ site.author.name | xml_escape }}<span class=\"nt\">&lt;/name&gt;</span>\n   <span class=\"nt\">&lt;email&gt;</span>{{ site.author.email | xml_escape }}<span class=\"nt\">&lt;/email&gt;</span>\n   <span class=\"nt\">&lt;uri&gt;</span>{{ site.author.url | xml_escape }}<span class=\"nt\">&lt;/uri&gt;</span>·\n <span class=\"nt\">&lt;/author&gt;</span>\n <span class=\"nt\">&lt;rights&gt;</span>Copyright © {{site.time |date: \"%Y\" }} {{site.author.name}}<span class=\"nt\">&lt;/rights&gt;</span>\n\n {% for post in site.posts limit:30 %}\n <span class=\"nt\">&lt;entry&gt;</span>\n   <span class=\"nt\">&lt;title&gt;</span><span class=\"cp\">&lt;![CDATA[{{ post.title }}]]&gt;</span><span class=\"nt\">&lt;/title&gt;</span>\n   {%- if post.link_to %}\n   <span class=\"nt\">&lt;link</span> <span class=\"na\">rel=</span><span class=\"s\">\"alternate\"</span> <span class=\"na\">type=</span><span class=\"s\">\"text/html\"</span> <span class=\"na\">href=</span><span class=\"s\">\"{{ post.link_to }}\"</span><span class=\"nt\">/&gt;</span>\n   <span class=\"nt\">&lt;link</span> <span class=\"na\">rel=</span><span class=\"s\">\"related\"</span> <span class=\"na\">type=</span><span class=\"s\">\"text/html\"</span> <span class=\"na\">href=</span><span class=\"s\">\"{{ site.url }}{{ post.url }}\"</span><span class=\"nt\">/&gt;</span>\n   {%- else %}\n   <span class=\"nt\">&lt;link</span> <span class=\"na\">rel=</span><span class=\"s\">\"alternate\"</span> <span class=\"na\">type=</span><span class=\"s\">\"text/html\"</span> <span class=\"na\">href=</span><span class=\"s\">\"{{ site.url }}{{ post.url }}\"</span><span class=\"nt\">/&gt;</span>\n   {%- endif %}\n   <span class=\"nt\">&lt;id&gt;</span>{{ site.url }}{{ post.id }}<span class=\"nt\">&lt;/id&gt;</span>\n   <span class=\"nt\">&lt;published&gt;</span>{{ post.date | date_to_xmlschema }}<span class=\"nt\">&lt;/published&gt;</span>\n   <span class=\"nt\">&lt;updated&gt;</span>{{ post.last_modified_at | default: post.date | date_to_xmlschema }}<span class=\"nt\">&lt;/updated&gt;</span>\n   <span class=\"nt\">&lt;content</span> <span class=\"na\">type=</span><span class=\"s\">\"html\"</span><span class=\"nt\">&gt;</span><span class=\"cp\">&lt;![CDATA[\n     {{ post.content | markdownify }}\n   ]]&gt;</span><span class=\"nt\">&lt;/content&gt;</span>\n <span class=\"nt\">&lt;/entry&gt;</span>\n {% endfor %}\n\n<span class=\"nt\">&lt;/feed&gt;</span></code></pre></figure>\n\n<p>The <code class=\"highlighter-rouge\">post.link_to</code> conditional is just how I do my link/commentary style posts - allowing the default link to point the content itself rather than to my blog post.  If your use case is simpler just remover that if/else; and that’s half the point of just using a template rather than a plug-in - so easy to bend to your own use.</p>\n\n<p>Why alternate between <code class=\"highlighter-rouge\">CDATA</code> and <code class=\"highlighter-rouge\">xml_escape</code>?  No reason.  I may just as likely go back and change them all to CDATA later.  It that’s your style, go for it.  My goal here isn’t to say “use my great templates” or to publish another feed plug-in - it’s to point out how easy this all is to do it yourself - the way you want.</p>\n\n<p>But perhaps you’ve head <a href=\"https://www.dwcau.com.au/xml-dead-long-live-json/\">XML is dead</a> or at the very least <a href=\"https://everypageispageone.com/2016/01/28/why-does-xml-suck/\">it sucks</a>.</p>\n\n<h3 id=\"feedjson\">feed.json</h3>\n\n<figure class=\"highlight\"><pre><code class=\"language-json\" data-lang=\"json\"><span class=\"err\">---</span><span class=\"w\">\n</span><span class=\"err\">layout</span><span class=\"p\">:</span><span class=\"w\"> </span><span class=\"kc\">null</span><span class=\"err\">·</span><span class=\"w\">\n</span><span class=\"err\">---</span><span class=\"w\">\n</span><span class=\"p\">{</span><span class=\"w\">\n  </span><span class=\"s2\">\"version\"</span><span class=\"p\">:</span><span class=\"w\"> </span><span class=\"s2\">\"https://jsonfeed.org/version/1\"</span><span class=\"p\">,</span><span class=\"w\">\n  </span><span class=\"s2\">\"title\"</span><span class=\"p\">:</span><span class=\"w\"> </span><span class=\"s2\">\"{{site.title}}\"</span><span class=\"p\">,</span><span class=\"w\">\n  </span><span class=\"s2\">\"home_page_url\"</span><span class=\"p\">:</span><span class=\"w\"> </span><span class=\"s2\">\"{{site.url}}\"</span><span class=\"p\">,</span><span class=\"w\">\n  </span><span class=\"s2\">\"feed_url\"</span><span class=\"p\">:</span><span class=\"w\"> </span><span class=\"s2\">\"{{site.url}}{{site.json_feed}}\"</span><span class=\"p\">,</span><span class=\"w\">\n  </span><span class=\"s2\">\"author\"</span><span class=\"w\"> </span><span class=\"p\">:</span><span class=\"w\"> </span><span class=\"p\">{</span><span class=\"w\">\n    </span><span class=\"s2\">\"name\"</span><span class=\"w\"> </span><span class=\"p\">:</span><span class=\"w\"> </span><span class=\"s2\">\"{{site.author.name}}\"</span><span class=\"p\">,</span><span class=\"w\">\n    </span><span class=\"s2\">\"url\"</span><span class=\"w\"> </span><span class=\"p\">:</span><span class=\"w\"> </span><span class=\"s2\">\"{{site.author.url}}\"</span><span class=\"w\">\n  </span><span class=\"p\">},</span><span class=\"w\">\n  </span><span class=\"s2\">\"icon\"</span><span class=\"w\"> </span><span class=\"p\">:</span><span class=\"w\"> </span><span class=\"s2\">\"\"</span><span class=\"p\">,</span><span class=\"w\">\n  </span><span class=\"s2\">\"favicon\"</span><span class=\"w\"> </span><span class=\"p\">:</span><span class=\"w\"> </span><span class=\"s2\">\"\"</span><span class=\"p\">,</span><span class=\"w\">\n  </span><span class=\"s2\">\"items\"</span><span class=\"p\">:</span><span class=\"w\"> </span><span class=\"p\">[</span><span class=\"w\">\n  </span><span class=\"p\">{</span><span class=\"err\">%-</span><span class=\"w\"> </span><span class=\"err\">for</span><span class=\"w\"> </span><span class=\"err\">post</span><span class=\"w\"> </span><span class=\"err\">in</span><span class=\"w\"> </span><span class=\"err\">site.posts</span><span class=\"w\"> </span><span class=\"err\">limit</span><span class=\"p\">:</span><span class=\"mi\">30</span><span class=\"w\"> </span><span class=\"err\">%</span><span class=\"p\">}</span><span class=\"w\">\n  </span><span class=\"p\">{</span><span class=\"w\">\n    </span><span class=\"s2\">\"title\"</span><span class=\"p\">:</span><span class=\"w\"> </span><span class=\"p\">{{</span><span class=\"w\"> </span><span class=\"err\">post.title</span><span class=\"w\"> </span><span class=\"err\">|</span><span class=\"w\"> </span><span class=\"err\">jsonify</span><span class=\"w\"> </span><span class=\"p\">}},</span><span class=\"w\">\n    </span><span class=\"s2\">\"date_published\"</span><span class=\"w\"> </span><span class=\"p\">:</span><span class=\"w\"> </span><span class=\"p\">{{</span><span class=\"w\"> </span><span class=\"err\">post.date</span><span class=\"w\"> </span><span class=\"err\">|</span><span class=\"w\"> </span><span class=\"err\">date_to_xmlschema</span><span class=\"w\"> </span><span class=\"err\">|</span><span class=\"w\"> </span><span class=\"err\">jsonify</span><span class=\"w\"> </span><span class=\"p\">}},</span><span class=\"w\">\n    </span><span class=\"s2\">\"date_modified\"</span><span class=\"w\"> </span><span class=\"p\">:</span><span class=\"w\"> </span><span class=\"p\">{{</span><span class=\"w\"> </span><span class=\"err\">post.last_modified_at</span><span class=\"w\"> </span><span class=\"err\">|</span><span class=\"w\"> </span><span class=\"err\">default</span><span class=\"p\">:</span><span class=\"w\"> </span><span class=\"err\">post.date</span><span class=\"w\"> </span><span class=\"err\">|</span><span class=\"w\"> </span><span class=\"err\">date_to_xmlschema</span><span class=\"w\"> </span><span class=\"err\">|</span><span class=\"w\"> </span><span class=\"err\">jsonify</span><span class=\"p\">}},</span><span class=\"w\">\n    </span><span class=\"s2\">\"id\"</span><span class=\"w\"> </span><span class=\"p\">:</span><span class=\"w\"> </span><span class=\"s2\">\"{{ site.url }}{{ post.id }}\"</span><span class=\"p\">,</span><span class=\"w\">\n    </span><span class=\"s2\">\"url\"</span><span class=\"w\"> </span><span class=\"p\">:</span><span class=\"w\"> </span><span class=\"s2\">\"{{ site.url }}{{ post.id }}\"</span><span class=\"p\">,</span><span class=\"w\">\n    </span><span class=\"p\">{</span><span class=\"err\">%-</span><span class=\"w\"> </span><span class=\"err\">if</span><span class=\"w\"> </span><span class=\"err\">post.link_to</span><span class=\"w\"> </span><span class=\"err\">%</span><span class=\"p\">}</span><span class=\"w\">\n    </span><span class=\"s2\">\"external_url\"</span><span class=\"w\"> </span><span class=\"p\">:</span><span class=\"w\"> </span><span class=\"p\">{{</span><span class=\"w\"> </span><span class=\"err\">post.link_to</span><span class=\"w\"> </span><span class=\"err\">|</span><span class=\"w\"> </span><span class=\"err\">jsonify</span><span class=\"w\"> </span><span class=\"p\">}},</span><span class=\"w\">\n    </span><span class=\"p\">{</span><span class=\"err\">%-</span><span class=\"w\"> </span><span class=\"err\">endif</span><span class=\"w\"> </span><span class=\"err\">%</span><span class=\"p\">}</span><span class=\"w\">\n    </span><span class=\"s2\">\"author\"</span><span class=\"w\"> </span><span class=\"p\">:</span><span class=\"w\"> </span><span class=\"p\">{</span><span class=\"w\">\n      </span><span class=\"s2\">\"name\"</span><span class=\"w\"> </span><span class=\"p\">:</span><span class=\"w\"> </span><span class=\"p\">{{</span><span class=\"err\">site.author.name</span><span class=\"w\"> </span><span class=\"err\">|</span><span class=\"w\"> </span><span class=\"err\">jsonify</span><span class=\"w\"> </span><span class=\"p\">}}</span><span class=\"w\">\n    </span><span class=\"p\">},</span><span class=\"w\">\n    </span><span class=\"s2\">\"content_html\"</span><span class=\"w\"> </span><span class=\"p\">:</span><span class=\"w\"> </span><span class=\"p\">{{</span><span class=\"w\"> </span><span class=\"err\">post.content</span><span class=\"w\"> </span><span class=\"err\">|</span><span class=\"w\"> </span><span class=\"err\">markdownify</span><span class=\"w\"> </span><span class=\"err\">|</span><span class=\"w\"> </span><span class=\"err\">jsonify</span><span class=\"w\"> </span><span class=\"p\">}}</span><span class=\"err\">·</span><span class=\"w\">\n  </span><span class=\"p\">}{</span><span class=\"err\">%</span><span class=\"w\"> </span><span class=\"err\">if</span><span class=\"w\"> </span><span class=\"err\">forloop.last</span><span class=\"w\"> </span><span class=\"err\">==</span><span class=\"w\"> </span><span class=\"kc\">false</span><span class=\"w\"> </span><span class=\"err\">%</span><span class=\"p\">},{</span><span class=\"err\">%</span><span class=\"w\"> </span><span class=\"err\">endif</span><span class=\"w\"> </span><span class=\"err\">%</span><span class=\"p\">}{</span><span class=\"err\">%-</span><span class=\"w\"> </span><span class=\"err\">endfor</span><span class=\"w\"> </span><span class=\"err\">%</span><span class=\"p\">}</span><span class=\"w\">\n  </span><span class=\"p\">]</span><span class=\"w\">\n</span><span class=\"p\">}</span></code></pre></figure>\n\n<p>And of course don’t forget to add your fancy new feeds to the <code class=\"highlighter-rouge\">&lt;head&gt;</code> section of your template:</p>\n\n<div style=\"font-size:0.9em\">  \n\n<figure class=\"highlight\"><pre><code class=\"language-html\" data-lang=\"html\"><span class=\"nt\">&lt;link</span> <span class=\"na\">rel=</span><span class=\"s\">\"alternate\"</span> <span class=\"na\">type=</span><span class=\"s\">\"application/atom+xml\"</span> <span class=\"na\">href=</span><span class=\"s\">\"{{site.url}}/atom.xml\"</span> <span class=\"nt\">/&gt;</span>\n<span class=\"nt\">&lt;link</span> <span class=\"na\">rel=</span><span class=\"s\">\"alternate\"</span> <span class=\"na\">type=</span><span class=\"s\">\"application/json\"</span> <span class=\"na\">href=</span><span class=\"s\">\"{{site.url}}/feed.json\"</span> <span class=\"nt\">/&gt;</span></code></pre></figure>\n\n\n</div>\n" 
  },
  {
    "title": "Transitioning to Subscriptions",
    "date_published" : "2018-12-22T10:19:00-05:00",
    "date_modified" : "2018-12-22T10:19:00-05:00",
    "id" : "http://runningblind.com/2018/12/22/transitioning-to-subscriptions",
    "url" : "http://runningblind.com/2018/12/22/transitioning-to-subscriptions",
    "external_url" : "https://supermegaultragroovy.com/products/capo/support/mac/direct-customer-transition.html",
    "author" : {
      "name" : "Josh Goebel"
    },
    "content_html" : "<blockquote>\n  <p>While other companies may require all their existing paid customers to subscribe in order to get future updates, we instead decided that none of our existing customers should require a subscription! Slowly, we hope to earn each one of your subscriptions by continuing to deliver great updates to the features you have, and by introducing exciting, subscriber-only features that (we hope) will be difficult for you to pass up.</p>\n</blockquote>\n\n<p>What a great approach.  And some funny examples to top it off:</p>\n\n<blockquote>\n  <p>Capo {VERSION_FROM_THE_FUTURE} adds an all-new Virtual Reality Song View that allows you to walk through your favorite songs! Want to isolate an instrument? Take a virtual lawn-mower and trim away the sounds you want to eliminate. <em>Pretty cool, right? Unfortunately, you would not get this for free.</em></p>\n</blockquote>\n" 
  },
  {
    "title": "Replace \"master\" and \"slave\" terms in Redis",
    "date_published" : "2018-12-22T10:07:00-05:00",
    "date_modified" : "2018-12-22T10:07:00-05:00",
    "id" : "http://runningblind.com/2018/12/22/replace-master-and-slave-terms-in-redis",
    "url" : "http://runningblind.com/2018/12/22/replace-master-and-slave-terms-in-redis",
    "external_url" : "https://github.com/antirez/redis/issues/3185",
    "author" : {
      "name" : "Josh Goebel"
    },
    "content_html" : "<p>Suggestion on Github issues for Redis:</p>\n\n<blockquote>\n  <p>The summary is: master and slave have racial meanings (especially in North America, but also more generally) and it would be good to avoid them.</p>\n</blockquote>\n\n<p>I’m anti-slavery (of course) but I think some of this recent “sensitivity” to all topics is a bit ridiculous.</p>\n\n<p>Some great comments:</p>\n\n<blockquote>\n  <p>Mariano Pérez Rodríguez: Most words have a plethora of meanings, it is YOU (the reader) the one who\nchooses to take a system’s dynamic description term as a racial thing, so,\nmaybe you should just not do it.</p>\n</blockquote>\n\n<blockquote>\n  <p>Itamar Haber: IMO dominatrix and submissive is the politically correct terminology, since\nit is in fact consensual as well as puts the gentler gender in the proper\nplace.</p>\n</blockquote>\n\n<blockquote>\n  <p>Just some guy: It’s slave/master which are very well established terms for “the thing that controls the databus” or “the bit of software that dictates what the others do and coordinates things and the other ones that obey”. If it was “Massah” and “N!gger” I’d totally agree with you.</p>\n</blockquote>\n\n<p>And the conclusion:</p>\n\n<blockquote>\n  <p>TLDR: If I would start Redis from scratch I would pick a different terminology. \n… 3.Redis has a SALVEOF NO ONE command that was designed on purpose as a freedom message.\nSo I’ll leave it as it is.</p>\n</blockquote>\n\n<p>But it gets better:</p>\n\n<blockquote>\n  <p>Again, by using this term in Redis and by linking to external pages, I want to take the opportunity to remember that we are all slaves. Slaves of businesses, of food advertising, of industrial complex, of politically correct rules to follow, and so forth. Feel free to address the same problem in different ways in other software projects, but for Redis I want to purse this way I said.</p>\n</blockquote>\n" 
  },
  {
    "title": "Rising Instagram Stars Are Posting Fake Sponsored Content",
    "date_published" : "2018-12-22T09:45:00-05:00",
    "date_modified" : "2018-12-22T09:45:00-05:00",
    "id" : "http://runningblind.com/2018/12/22/rising-instagram-stars-are-posting-fake-sponsored-content",
    "url" : "http://runningblind.com/2018/12/22/rising-instagram-stars-are-posting-fake-sponsored-content",
    "external_url" : "https://www.theatlantic.com/technology/archive/2018/12/influencers-are-faking-brand-deals/578401/",
    "author" : {
      "name" : "Josh Goebel"
    },
    "content_html" : "<blockquote>\n  <p>A decade ago, shilling products to your fans may have been seen as selling out. Now it’s a sign of success. “People know how much influencers charge now, and that payday is nothing to shake a stick at,” said Alyssa Vingan Klein, the editor in chief of Fashionista, a fashion-news website. “If someone who is 20 years old watching YouTube or Instagram sees these people traveling with brands, promoting brands, I don’t see why they wouldn’t do everything they could to get in on that.”</p>\n</blockquote>\n\n<blockquote>\n  <p>Sydney Pugh, a lifestyle influencer in Los Angeles, recently staged a fake ad for a local cafe, purchasing her own mug of coffee, photographing it, and adding a promotional caption carefully written in that particular style of ad speak anyone who spends a lot of time on Instagram will recognize. “Instead of [captioning] ‘I need coffee to get through the day,’ mine will say ‘I love Alfred’s coffee because of A, B, C,’” Pugh told me. “You see the same things over and over on actual sponsored posts, so it becomes really easy to emulate, even if you’re not getting paid.”</p>\n</blockquote>\n\n<p>I bet brands love this.  So much about modern consumerism culture just makes me sad.  I hope I’m getter truly wiser and not just curmudgeonly.</p>\n" 
  }
  ]

}
