<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>qbunt.com</title>
    <link>https://qbunt.com/</link>
    <description>Recent content on qbunt.com</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <lastBuildDate>Mon, 06 Jan 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://qbunt.com/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>2024 - A year in review 😵‍💫</title>
      <link>https://qbunt.com/posts/2024-year-in-review/</link>
      <pubDate>Mon, 06 Jan 2025 00:00:00 +0000</pubDate>
      
      <guid>https://qbunt.com/posts/2024-year-in-review/</guid>
      <description>&lt;p&gt;As I pull the glossy gift wrap off an &lt;del&gt;untarnished&lt;/del&gt; somewhat undamaged new year, I&amp;rsquo;m taking the opportunity to take a last look at the past year. This is an unusual reflection for me on successes and opportunities in my personal and professional life. I’ve never done this, but this year left a mark on me, and it needs sharing.&lt;/p&gt;
&lt;h2 id=&#34;theme&#34;&gt;Theme&lt;/h2&gt;
&lt;p&gt;In the spirit of &lt;a href=&#34;https://www.relay.fm/cortex&#34;&gt;Cortex&lt;/a&gt;, I’ve also always struggled with the new year and setting goals for myself. Resolutions suck. I&amp;rsquo;ll admit, Cortex has somewhat changed my mind about this, and setting a &lt;em&gt;theme&lt;/em&gt; to the year was just enough of the fresh approach I needed. One of the most interesting ideas for me, is that a theme is both a north star, and never completed.&lt;/p&gt;</description>
      <content>&lt;p&gt;As I pull the glossy gift wrap off an &lt;del&gt;untarnished&lt;/del&gt; somewhat undamaged new year, I&amp;rsquo;m taking the opportunity to take a last look at the past year. This is an unusual reflection for me on successes and opportunities in my personal and professional life. I’ve never done this, but this year left a mark on me, and it needs sharing.&lt;/p&gt;
&lt;h2 id=&#34;theme&#34;&gt;Theme&lt;/h2&gt;
&lt;p&gt;In the spirit of &lt;a href=&#34;https://www.relay.fm/cortex&#34;&gt;Cortex&lt;/a&gt;, I’ve also always struggled with the new year and setting goals for myself. Resolutions suck. I&amp;rsquo;ll admit, Cortex has somewhat changed my mind about this, and setting a &lt;em&gt;theme&lt;/em&gt; to the year was just enough of the fresh approach I needed. One of the most interesting ideas for me, is that a theme is both a north star, and never completed.&lt;/p&gt;
&lt;p&gt;After getting projects started in 2023, the initial guiding principle for the year was “The Year of Completion”. I loove starting a project that&amp;rsquo;s never finished, the last touches are never done and pile up. In many ways, this year &lt;strong&gt;has&lt;/strong&gt; driven me to complete more projects, but with completion, comes other brand new projects and new time to jump into new touches, features and chances to get further down the rabbit hole. Too often, I get caught up in the cycle, and just like it is with software, it&amp;rsquo;s never &lt;em&gt;really&lt;/em&gt; done. It was time to break that cycle.&lt;/p&gt;
&lt;p&gt;Great idea, didn&amp;rsquo;t turn out that way and it&amp;rsquo;s fine.&lt;/p&gt;
&lt;h2 id=&#34;back-from-burnoutsville&#34;&gt;Back from burnoutsville&lt;/h2&gt;
&lt;p&gt;2024 was challenging. I was tech lead on a very ambitious project, with wide focus, loose guidance, massive pressure, and heavy reliance on my technical experience. What made it hard, was the rejection of some of negative feedback, while relying on my expertise. It wasn’t great for my mental health, and in the most significant way in a nearly 2 decade career, it burnt me out. I&amp;rsquo;m super thankful that my workplace recognized it and took action. Burnout is real, and honestly, dangerous as hell.&lt;/p&gt;
&lt;p&gt;Work unexpectedly put me on a self-guided sabbatical. I was skeptical, worried that it was punitive and concerned for what would come afterwards. My boss reassured me, and put my mind at ease, and I eventually agreed that yeah, I needed a break. I haven’t written enough here, but I don’t take the breaks I need to for my own wellbeing, it was needed.&lt;/p&gt;

  &lt;figure class=&#34;left&#34; &gt;
    &lt;img src=&#34;https://qbunt.com/img/2025/disaster.jpg&#34;  alt=&#34;Our destroyed basement&#34;   /&gt;
    
      &lt;figcaption class=&#34;center&#34; &gt;Our destroyed basement&lt;/figcaption&gt;
    
  &lt;/figure&gt;


&lt;p&gt;The work break gave me the chance to &lt;del&gt;take a break&lt;/del&gt; rebuild our basement after an undiscovered leak rotted through much of our finished basement last year. This was extremely hard work, and in taking much of it on myself, I discovered new damage, forcing new repairs, expense and challenges. Far too many parallels to the project I was trying to recover from. What it taught me is that while I can rely on myself for a lot, I need help sometimes, and it&amp;rsquo;s OK to ask for it, especially when I&amp;rsquo;m cosplaying as a rookie contractor. I did rediscover some of the tangible satisfaction to completing something so physical in contrast with my very digital workplace.&lt;/p&gt;

  &lt;figure class=&#34;center&#34; &gt;
    &lt;img src=&#34;https://qbunt.com/img/2025/respirator.jpg&#34;  alt=&#34;A very n00b contractor&#34;   /&gt;
    
      &lt;figcaption class=&#34;center&#34; &gt;A n00b contractor&lt;/figcaption&gt;
    
  &lt;/figure&gt;


&lt;p&gt;I was &lt;em&gt;so&lt;/em&gt; ready to return to work and feel like I knew what I was doing again. I started with a project that I was ready to be solo developer on. Again, satisfying, a welcome challenge to get back to what I knew, but the lack of staffing beyond myself on that project was so frustrating, and I had zero idea what was headed my way next. I refocused on fundamentals, refreshing my knowledge, diving into little weird challenges and dusting the mental burden of the burnout project off me. I rediscovered that relationships I cultivated in the previous 2 years would help push me along. In that time, I was satisfied in work again, and the daily dread finally washed away. Well on the road to recovery, I restocked with new knowledge of where the boundaries in my professional life should be.&lt;/p&gt;

  &lt;figure class=&#34;center&#34; &gt;
    &lt;img src=&#34;https://qbunt.com/img/2025/floor.jpg&#34;  alt=&#34;Progress in rebuilding our basement&#34;   /&gt;
    
  &lt;/figure&gt;


&lt;h2 id=&#34;june&#34;&gt;June&lt;/h2&gt;
&lt;p&gt;One sunny Sunday afternoon at the end of June, armed with pool noodles and a shot at some mediocre ice cream, my family of goobers headed to the pool club. A nice reprieve from some California family visit, a chance to reconnect with friends at the pool with the kids. After some chatting, I stepped out of the pool and into the pooldeck shower ready to rinse the definitely very chloriney water off. I stepped into the shower, my foot stepping into the shower, immediately shot out to the left on slickest surface known to mankind, and I landed with my shoulder first on painted concrete.&lt;/p&gt;

  &lt;figure class=&#34;center&#34; &gt;
    &lt;img src=&#34;https://qbunt.com/img/2025/scene.jpg&#34;  alt=&#34;The scene of the accident&#34;   /&gt;
    
      &lt;figcaption class=&#34;center&#34; &gt;The scene of the accident&lt;/figcaption&gt;
    
  &lt;/figure&gt;


&lt;p&gt;I went to put my hand down to get up, and couldn&amp;rsquo;t move any part of my right arm. I could move my legs, I didn&amp;rsquo;t think I had injured my spine, or my head, there was no blood, I instantly assumed that I had simply dislocated my arm. I couldn&amp;rsquo;t breathe, the wind was completely knocked out of me. Someone finally saw me, called the lifeguard over, they stuffed me in an ambulance and rushed me to the hospital. I still had no idea what happened. I completely fractured the top of my right arm, just below my shoulder. Yes, I&amp;rsquo;m right-handed. The pain, the bruising, shock, sadness for the death of our family summer, anger at the maintenance guy that didn&amp;rsquo;t put a mat in the bottom of the shower, it was a tidal wave of pain and emotion.&lt;/p&gt;
&lt;p&gt;I don&amp;rsquo;t consider myself a clumsy person, but I&amp;rsquo;ve been in bike crashes. I&amp;rsquo;d never been in an ambulance. I&amp;rsquo;ve had bad injuries, burns, cuts, falls on the bike, some simple broken ribs, but &lt;em&gt;this&lt;/em&gt; was all new. I do, and have done a lot of physical work. Fall leaf work, lifting big things, like..being a Dad in New England, you do hard things, snowblow the driveway, stack wood, that kind of thing. I immediately had to stop all that &lt;em&gt;and&lt;/em&gt; work for ??? long, after just getting my feet under me again, it sucked. I instead tried to see it as a way for my girls to see their Dad overcome an obstacle, recover, adapt and again, rebuild my mobility. It was loads of PT, medical bills and time to recover. It taught me that I really needed to recognize my own vulnerabilities, spend the time recovering, and start anew. Even the little things you&amp;rsquo;d think would have been encouraging were again, new weird challenges that required adaptation. Can&amp;rsquo;t use a right hand to mouse with if you can&amp;rsquo;t move your right arm.&lt;/p&gt;

  &lt;figure class=&#34;center&#34; &gt;
    &lt;img src=&#34;https://qbunt.com/img/2025/broken.jpg&#34;  alt=&#34;Recovering from a broken shoulder&#34;   /&gt;
    
  &lt;/figure&gt;


&lt;p&gt;Also, healthcare in the US is a reprehensible nightmare that no human should have to face alone. It&amp;rsquo;s awful, and we all should do better. &lt;a href=&#34;https://www.stjude.org/give.html&#34;&gt;Donate anything to St. Jude, always&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;adaptation&#34;&gt;Adaptation&lt;/h2&gt;
&lt;p&gt;If you&amp;rsquo;ve made it this far, you&amp;rsquo;d be right in recognizing the theme for this year was damn near impossible. 6 months of PT, a burnout recovery, a stop/start re-entry to work, it was not what I had in the cards. An election that was, to say the least, a stressor on relationships and opinions. Tech job market in the toilet, AI about to break everything, crippling anxiety, a house actively trying to ruin me, it&amp;rsquo;s all kind of a mess.&lt;/p&gt;
&lt;p&gt;Adaptation is &lt;strong&gt;the&lt;/strong&gt; ballgame. No right arm? Guess you&amp;rsquo;re using a trackpad with your left hand now dood. Can&amp;rsquo;t shift the car with your right hand? I guess you&amp;rsquo;re left handed shifting now dipshit. Can&amp;rsquo;t mow the lawn because excruciating pain? Pay the neighbor kid to do it. Don&amp;rsquo;t know how to tile a bathroom? YouTube and the blind confidence of a two-bit contractor can get it done. Gotta adapt. That quickly became the entire theme and eclipsed all, and pushed my thinking into a new perspective. Finishing anything required constant adaptation, finishing, was the final adaptation.&lt;/p&gt;
&lt;p&gt;Eventually, I got my arm back, slowly. I figured out how to get the club to pay for the medical bills, talk to lawyers, figure out the expenses and how to get insurance to work with me. Then, the focus shifted back to work, building up on projects I&amp;rsquo;ve started, finally putting the finishing touches on huge efforts to get them live. &lt;em&gt;Finishing&lt;/em&gt; but also planning the next project, figuring how where the holes &lt;em&gt;could&lt;/em&gt; be and getting around them.&lt;/p&gt;

  &lt;figure class=&#34;center&#34; &gt;
    &lt;img src=&#34;https://qbunt.com/img/2025/adaptation.jpg&#34;  alt=&#34;Adaptation to a new set of abilities&#34;   /&gt;
    
      &lt;figcaption class=&#34;center&#34; &gt;Improvise, adapt, overcome&lt;/figcaption&gt;
    
  &lt;/figure&gt;


&lt;h2 id=&#34;wins&#34;&gt;Wins&lt;/h2&gt;
&lt;p&gt;Despite this overwhelmingly negative year, there were some wins that lifted the struggles of the year.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Recovering the shoulder, getting through PT and getting my arm back online, insurance debts settled&lt;/li&gt;
&lt;li&gt;Rebuilding &lt;a href=&#34;https://vynyl.com&#34;&gt;vynyl.com&lt;/a&gt; with a new architecture, new capabilities, on new infrastructure, on SvelteKit, Prismic &amp;amp; Cloudflare&lt;/li&gt;
&lt;li&gt;Finishing the basement rebuild&lt;/li&gt;
&lt;li&gt;Defining new targets for 2025&lt;/li&gt;
&lt;li&gt;Major project I led &amp;amp; architected will be distributed to all of CA&lt;/li&gt;
&lt;li&gt;Proving to my kids that you can recover after hardship&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;2025&#34;&gt;2025&lt;/h2&gt;
&lt;p&gt;So, what&amp;rsquo;s on tap for this year? After being forced to switch gears and heal for the majority of 2024, my theme for this year is &amp;ldquo;A Year of Strength&amp;rdquo;. Physically, I need to get myself in shape after focusing on one arm for a year. I&amp;rsquo;ve relied on cycling during the summer to get back in shape after consuming mostly cookies, eggnog, and coping food required to get through the holidays with two young kids and a Clark Griswold style of fatherhood. My diet, sleep, fitness routine, all need massive amounts of work.&lt;/p&gt;
&lt;p&gt;Professionally, my growth has stalled, and I also need strength training here. The &amp;ldquo;Year of Completion&amp;rdquo; will be ongoing, projects need finishing, plans need operationalizing, and relationships need maintenance. This for me, will be the first time I&amp;rsquo;m &amp;lsquo;double-majoring&amp;rsquo; in a theme. Strength will be focus one, but adaptation will be riding shotgun for a while.&lt;/p&gt;
&lt;p&gt;Largely:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Write here more, rebuild this site, pull in my portfolio, celebrate &amp;amp; share more wins&lt;/li&gt;
&lt;li&gt;Crush the open construction projects, do what&amp;rsquo;s required with the house, spend less money on the house&lt;/li&gt;
&lt;li&gt;Improve my physical well bring, build workout routine, improve diet and sleep&lt;/li&gt;
&lt;li&gt;Plot a new professional course, build strength&lt;/li&gt;
&lt;li&gt;Apply to speak at a conference, I have a lot to say, I miss being at conferences&lt;/li&gt;
&lt;li&gt;Improve my sleep hygiene, it&amp;rsquo;s crucial&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Have a great 2025, adapt, and crush it. Be kind, crush the haters. Thanks for reading :D&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>RSS is for winners 🏆</title>
      <link>https://qbunt.com/posts/rss-is-for-winners/</link>
      <pubDate>Thu, 17 Aug 2023 20:29:19 -0400</pubDate>
      
      <guid>https://qbunt.com/posts/rss-is-for-winners/</guid>
      <description>&lt;p&gt;After a really 💀 year of &lt;a href=&#34;https://www.theverge.com/2023/7/23/23804629/twitters-rebrand-to-x-may-actually-be-happening-soon&#34;&gt;Twitter&lt;/a&gt;, &lt;a href=&#34;https://www.theverge.com/2023/6/8/23754183/apollo-reddit-app-shutting-down-api&#34;&gt;Reddit&lt;/a&gt; and every other goddamn social network &lt;a href=&#34;https://fortune.com/2023/08/16/twitter-throttling-nyt-facebook-musk-5-second-delay/&#34;&gt;losing their minds&lt;/a&gt;, my refuge has been &lt;a href=&#34;https://aboutfeeds.com/&#34;&gt;RSS&lt;/a&gt;. Mastodon&amp;rsquo;s awkward, &lt;a href=&#34;https://bsky.app/&#34;&gt;Bluesky&lt;/a&gt; is real weird (keep it classy weirdos) and that&amp;rsquo;s all great. RSS has always felt like &lt;em&gt;my&lt;/em&gt; place because it has been my place since &lt;a href=&#34;https://en.wikipedia.org/wiki/Google_Reader&#34;&gt;the good old days&lt;/a&gt;. My journey through RSS went something like this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.wired.com/2013/06/why-google-reader-got-the-ax/&#34;&gt;Google Reader&lt;/a&gt; 🏆 (pour one out for the 🐐)&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://feedly.com/&#34;&gt;Feedly&lt;/a&gt; (somehow has gone super 👔, I don&amp;rsquo;t need that)&lt;/li&gt;
&lt;li&gt;loooong gap (Reddit/Twitter/Instagram/other social network addiction)&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://miniflux.app/&#34;&gt;Miniflux&lt;/a&gt; 🏴‍☠️&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;dude, RSS for real?! It&amp;rsquo;s 2023, I get all my news from Reddit/Threads/Mastodon/Bluesky, why?&lt;/p&gt;</description>
      <content>&lt;p&gt;After a really 💀 year of &lt;a href=&#34;https://www.theverge.com/2023/7/23/23804629/twitters-rebrand-to-x-may-actually-be-happening-soon&#34;&gt;Twitter&lt;/a&gt;, &lt;a href=&#34;https://www.theverge.com/2023/6/8/23754183/apollo-reddit-app-shutting-down-api&#34;&gt;Reddit&lt;/a&gt; and every other goddamn social network &lt;a href=&#34;https://fortune.com/2023/08/16/twitter-throttling-nyt-facebook-musk-5-second-delay/&#34;&gt;losing their minds&lt;/a&gt;, my refuge has been &lt;a href=&#34;https://aboutfeeds.com/&#34;&gt;RSS&lt;/a&gt;. Mastodon&amp;rsquo;s awkward, &lt;a href=&#34;https://bsky.app/&#34;&gt;Bluesky&lt;/a&gt; is real weird (keep it classy weirdos) and that&amp;rsquo;s all great. RSS has always felt like &lt;em&gt;my&lt;/em&gt; place because it has been my place since &lt;a href=&#34;https://en.wikipedia.org/wiki/Google_Reader&#34;&gt;the good old days&lt;/a&gt;. My journey through RSS went something like this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.wired.com/2013/06/why-google-reader-got-the-ax/&#34;&gt;Google Reader&lt;/a&gt; 🏆 (pour one out for the 🐐)&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://feedly.com/&#34;&gt;Feedly&lt;/a&gt; (somehow has gone super 👔, I don&amp;rsquo;t need that)&lt;/li&gt;
&lt;li&gt;loooong gap (Reddit/Twitter/Instagram/other social network addiction)&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://miniflux.app/&#34;&gt;Miniflux&lt;/a&gt; 🏴‍☠️&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;dude, RSS for real?! It&amp;rsquo;s 2023, I get all my news from Reddit/Threads/Mastodon/Bluesky, why?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Hear me out. In the age of every social network pivoting, folding, renaming to &lt;a href=&#34;https://www.popularmechanics.com/technology/apps/a44641211/twitter-x-unicode-symbol/&#34;&gt;a unicode letter&lt;/a&gt;, and losing their mind because of AI, RSS makes &lt;em&gt;so&lt;/em&gt; much sense &lt;em&gt;especially&lt;/em&gt; now. Blogs, turns out, are &lt;strong&gt;great&lt;/strong&gt;. RSS feeds, are still, freaking everywhere.&lt;/p&gt;
&lt;p&gt;Why?&lt;/p&gt;
&lt;p&gt;Independence. Anyone can publish an RSS feed, which means that &lt;em&gt;anyone&lt;/em&gt; can consume that feed. Because the tech&amp;rsquo;s been around for years, it works, it&amp;rsquo;s stable (enough) and there&amp;rsquo;s no VC opinions in the way.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;fine, ok, you make some compelling points 🤣 how can this possibly work?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;You&amp;rsquo;ve got a couple of solid options to get started, ramping up to running your own aggregator service.&lt;/p&gt;
&lt;p&gt;Easiest thing to start with is &lt;em&gt;just&lt;/em&gt; an RSS reader app and &lt;em&gt;maybe&lt;/em&gt; attach some kind of hosted service for sync support. I recommend the following:&lt;/p&gt;
&lt;h3 id=&#34;macos--ios&#34;&gt;macOS &amp;amp; iOS&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://netnewswire.com/&#34;&gt;NetNewsWire&lt;/a&gt; - Simple, syncs via iCloud, local, a bunch of hosted services&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://reederapp.com/&#34;&gt;Reeder&lt;/a&gt; - My &lt;em&gt;favorite&lt;/em&gt; reader, syncs with a bunch of services (more on that in a sec)&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://apps.apple.com/us/app/unread-2/id1363637349&#34;&gt;Unread&lt;/a&gt; - nice experience, little weird&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;android&#34;&gt;Android&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://play.google.com/store/apps/details?id=allen.town.focus.reader&amp;hl=en_US&amp;gl=US&#34;&gt;FocusReader&lt;/a&gt; - Super nice experience, can sync with Fever API&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://play.google.com/store/apps/details?id=be.martinelli.miniflutt&#34;&gt;Miniflutt&lt;/a&gt; - Solid fallback should the first fall through&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://play.google.com/store/apps/details?id=com.constantin.microflux&#34;&gt;Microflux&lt;/a&gt; - Supports Miniflux, well built&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;web-services&#34;&gt;Web Services&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://feedbin.com/&#34;&gt;Feedbin&lt;/a&gt; - $5/mo, solid support for many apps (some of the above)&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.inoreader.com/&#34;&gt;Inoreader&lt;/a&gt; - Free to start, $5/mo to get fancy ✨&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://feedly.com/i/welcome&#34;&gt;Feedly&lt;/a&gt; - $8/mo, but all the 👔 you could ever want&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://readwise.io/read&#34;&gt;Readwise Reader&lt;/a&gt; - $8/mo and very well done. Replaces several other things well&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;Got an app, what&amp;rsquo;s next?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Once you&amp;rsquo;re set up with an app, it&amp;rsquo;s blank. You&amp;rsquo;re here, &lt;a href=&#34;https://qbunt.com/index.xml&#34;&gt;so let&amp;rsquo;s start there&lt;/a&gt;. Subscribe to some killer &lt;a href=&#34;https://ooh.directory/&#34;&gt;feeds&lt;/a&gt; &lt;a href=&#34;https://blogroll.org/&#34;&gt;somewhere&lt;/a&gt;. Once you found some wicked killer feeds, add those links to that app you found and let the web be weird. Visit a site, add it to the reader, read, enjoy, that&amp;rsquo;s it. Sites will update, your reader will scrape those feeds, and you now have a customized, personal news feed. Always.&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;re satisfied, stop here&lt;/p&gt;
&lt;p&gt;😛&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;A few things about this setup (which is fine) bothered me. Any one of the hosted services folds, changes focus, or decides that web4 is the next big thing, your news feed goes away. If one of those apps goes away, again, you&amp;rsquo;re hosed. So how do we turn the ship into something that will never die (like RSS).&lt;/p&gt;
&lt;p&gt;Take matters into your &lt;em&gt;own&lt;/em&gt; hands 🏴‍☠️&lt;/p&gt;
&lt;p&gt;Over the past few years, between two mobile platforms, I went &lt;em&gt;deep&lt;/em&gt; into finding a solution to make this setup as robust as absolutely possible. I was after two things that could be relied upon:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;a service that I could run on my own&lt;/li&gt;
&lt;li&gt;a web/mobile/desktop app I could tolerate&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That solution was &lt;a href=&#34;https://miniflux.app/&#34;&gt;Miniflux&lt;/a&gt; running in my homelab setup in &lt;a href=&#34;https://miniflux.app/docs/installation.html#docker&#34;&gt;Docker&lt;/a&gt;. Simple thing to run in Docker, without a ton of fuss, and connect to some &lt;em&gt;killer&lt;/em&gt; reader apps or just work on the web.&lt;/p&gt;
&lt;p&gt;Miniflux has a couple absolutely hidden features that make this all work.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Connect Miniflux to &lt;a href=&#34;https://reederapp.com/&#34;&gt;Reeder&lt;/a&gt; on macOS/iOS via the Google Reader API&lt;/li&gt;
&lt;li&gt;Connect Miniflux to &lt;a href=&#34;https://netnewswire.com/&#34;&gt;NetNewsWire&lt;/a&gt; via through &lt;a href=&#34;https://github.com/Ranchero-Software/NetNewsWire/issues/2859#issuecomment-1019066748&#34;&gt;FreshRSS integration&lt;/a&gt; with the Google Reader API&lt;/li&gt;
&lt;li&gt;Connect Miniflux to &lt;em&gt;any&lt;/em&gt; other supported mobile app with the Fever API, or any of the other integrations&lt;/li&gt;
&lt;li&gt;Just use the very fast, simple web app&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can just pay for hosted Miniflux for $5/mo, but if you want to go the &lt;em&gt;full&lt;/em&gt; 🏴‍☠️, you can just &lt;a href=&#34;https://miniflux.app/docs/installation.html#docker&#34;&gt;run this stack yourself&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# docker-compose.yml&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;services&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;miniflux&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;image&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;miniflux/miniflux:latest&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;ports&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;80:8080&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;depends_on&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;db&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;condition&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;service_healthy&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;environment&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &lt;span style=&#34;color:#ae81ff&#34;&gt;DATABASE_URL=postgres://miniflux:secret@db/miniflux?sslmode=disable&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &lt;span style=&#34;color:#ae81ff&#34;&gt;RUN_MIGRATIONS=1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &lt;span style=&#34;color:#ae81ff&#34;&gt;CREATE_ADMIN=1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &lt;span style=&#34;color:#ae81ff&#34;&gt;ADMIN_USERNAME=admin&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &lt;span style=&#34;color:#ae81ff&#34;&gt;ADMIN_PASSWORD=test123&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;db&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;image&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;postgres:15&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;environment&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &lt;span style=&#34;color:#ae81ff&#34;&gt;POSTGRES_USER=miniflux&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &lt;span style=&#34;color:#ae81ff&#34;&gt;POSTGRES_PASSWORD=secret&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;volumes&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &lt;span style=&#34;color:#ae81ff&#34;&gt;miniflux-db:/var/lib/postgresql/data&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;healthcheck&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;test&lt;/span&gt;: [&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;CMD&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;pg_isready&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;-U&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;miniflux&amp;#34;&lt;/span&gt;]
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;interval&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;10s&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;start_period&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;30s&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;volumes&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;miniflux-db&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Then it&amp;rsquo;s a &lt;code&gt;docker-compose up -d&lt;/code&gt; and start the show. Point a domain at your IP and do some reverse proxying, and you&amp;rsquo;re off to the races.&lt;/p&gt;
&lt;p&gt;There&amp;rsquo;s a of different options in here, but get into it. RSS is great, the internet should be &lt;em&gt;weird&lt;/em&gt;, and everyone should have a wild little corner of the web. 🏴‍☠️&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>Deploying to Heroku in a monorepo with Github Actions</title>
      <link>https://qbunt.com/posts/deploying-a-monorepo-to-heroku-sanely/</link>
      <pubDate>Sun, 02 Oct 2022 20:00:00 +0000</pubDate>
      
      <guid>https://qbunt.com/posts/deploying-a-monorepo-to-heroku-sanely/</guid>
      <description>&lt;p&gt;Man I really need to write on this blog more, it&amp;rsquo;s been far too long.&lt;/p&gt;
&lt;p&gt;Heroku has made some &lt;a href=&#34;https://blog.heroku.com/next-chapter&#34;&gt;questionable business choices&lt;/a&gt; recently, but the one thing they got dead-right straight out of the gate was ease of setup. With very little work, you could go from a working thing locally, add a couple files, and &lt;code&gt;git push&lt;/code&gt; your way to a deployed environment. That simple interaction made so much complexity go away, I think many hosting services are still after the bar that Heroku set so early. A bunch have even gotten there, and acknowledge that it&amp;rsquo;s no longer 2010.&lt;/p&gt;</description>
      <content>&lt;p&gt;Man I really need to write on this blog more, it&amp;rsquo;s been far too long.&lt;/p&gt;
&lt;p&gt;Heroku has made some &lt;a href=&#34;https://blog.heroku.com/next-chapter&#34;&gt;questionable business choices&lt;/a&gt; recently, but the one thing they got dead-right straight out of the gate was ease of setup. With very little work, you could go from a working thing locally, add a couple files, and &lt;code&gt;git push&lt;/code&gt; your way to a deployed environment. That simple interaction made so much complexity go away, I think many hosting services are still after the bar that Heroku set so early. A bunch have even gotten there, and acknowledge that it&amp;rsquo;s no longer 2010.&lt;/p&gt;
&lt;p&gt;In that time, things have gotten a lot more complex.&lt;/p&gt;
&lt;p&gt;Github Actions has become ubiquitous for CI/CD, static hosting has gotten very simple, and web tooling has evolved very, &lt;strong&gt;very&lt;/strong&gt; quickly. One of the largest changes I&amp;rsquo;ve seen in this space is moving from single-project repos, to monorepos. Monorepos can make a ton of sense, especially when you have several services all interconnected into the same project. When it comes to deploying to our old friend Heroku though, a monorepo adds a new layer that Heroku has &lt;strong&gt;certainly&lt;/strong&gt; not kept up with.&lt;/p&gt;
&lt;p&gt;Deploying to Heroku with a single-project repo:&lt;br&gt;
&lt;code&gt;git push heroku main&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Deploying to Heroku &lt;strong&gt;with a monorepo&lt;/strong&gt;:&lt;br&gt;
&lt;code&gt;git subtree push --prefix apiOne heroku-apiOne master&lt;/code&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Okay&amp;hellip;what is the big deal&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;You&amp;rsquo;re now dealing with multiple Git origins, on potentially multiple stages, on multiple apps. It very quickly becomes unmanageable for a small team.&lt;/p&gt;
&lt;p&gt;When you aren&amp;rsquo;t using the Github/Heroku integration (say, for instance, because there was a &lt;a href=&#34;https://qbunt.com/&#34;&gt;massive data breach&lt;/a&gt;) but you still need to ship code, that gets a lot more complicated.&lt;/p&gt;
&lt;p&gt;The options then become:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Use the multi-procfile buildpack and get your &lt;code&gt;git push git@heroku.com:&amp;lt;app&amp;gt; main&lt;/code&gt; style deployments back (peppering your codebase with Procfiles)&lt;/li&gt;
&lt;li&gt;Deploy the apps locally with &lt;code&gt;git subtree&lt;/code&gt; and witness the endless errors with that 🤮&lt;/li&gt;
&lt;li&gt;Wait for the data breach mitigations to complete and reconnect Github and do ALL the CI/CD inside Heroku&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The way Heroku &lt;em&gt;wants&lt;/em&gt; everyone to use their service is to connect their Github account, and use hooks to determine when they should do a build &amp;amp; deploy step. There are a couple of issues with this (especially with the data breach behind us)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I don&amp;rsquo;t know about you, but I&amp;rsquo;m not &lt;strong&gt;super&lt;/strong&gt; ready to connect our private Github org back to the same place that just had a data breach&lt;/li&gt;
&lt;li&gt;Really hard to see if there&amp;rsquo;s something wrong directly from your repo&lt;/li&gt;
&lt;li&gt;You now have to have both Heroku &amp;amp; Github Actions open all the time to see if something fell over with the deployment or the build&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thankfully, you can bypass all of this &lt;a href=&#34;https://qbunt.com/&#34;&gt;with a plugin&lt;/a&gt; to the Heroku CLI. Instead of pulling from Github, you can &lt;em&gt;push out&lt;/em&gt; to Heroku. Benefit of this, is that now multiple services allow for this deployment style, so you can standardize on GH Actions instead of bending around each service&amp;rsquo;s deployment pipeline (looking at you Cloudflare Pages)&lt;/p&gt;
&lt;p&gt;Instead of connecting Github via their OAuth integration and potentially exposing your entire org, you can:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Create a Heroku API key&lt;/li&gt;
&lt;li&gt;Run the CI/CD in Github actions (where it&amp;rsquo;s convenient, can be standardized)&lt;/li&gt;
&lt;li&gt;Run a step in the action to tarball &lt;strong&gt;just a single app of your monorepo&lt;/strong&gt;, and deploy the tarball directly to Heroku&lt;/li&gt;
&lt;li&gt;Avoid any Heroku-specific deployment setups AND avoid the git-related headaches related to subtreeing&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The setup is really pretty straightforward if you&amp;rsquo;re familiar with Github Actions:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          - &lt;span style=&#34;color:#f92672&#34;&gt;uses&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;akhileshns/heroku-deploy@v3.12.12&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#f92672&#34;&gt;with&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;              &lt;span style=&#34;color:#f92672&#34;&gt;heroku_api_key&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;${{secrets.API_HEROKU_API_KEY}}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;              &lt;span style=&#34;color:#f92672&#34;&gt;heroku_app_name&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;${{secrets.API_HEROKU_APP_NAME}}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;              &lt;span style=&#34;color:#f92672&#34;&gt;heroku_email&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;${{secrets.API_HEROKU_EMAIL}}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;              &lt;span style=&#34;color:#f92672&#34;&gt;buildpack&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;https://github.com/heroku/heroku-buildpack-nginx.git&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;              &lt;span style=&#34;color:#f92672&#34;&gt;justlogin&lt;/span&gt;: &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          - &lt;span style=&#34;color:#f92672&#34;&gt;name&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;install build plugin&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#f92672&#34;&gt;run&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;heroku plugins:install heroku-builds&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          - &lt;span style=&#34;color:#f92672&#34;&gt;name&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;deploy tarball&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#f92672&#34;&gt;run&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;cd client/build &amp;amp;&amp;amp; heroku builds:create -a name-of-your-app&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;You can repeat that last &lt;code&gt;deploy tarball&lt;/code&gt; step as many times as you need, but what&amp;rsquo;s &lt;strong&gt;fantastic&lt;/strong&gt; about this, is that all you need is to be inside the folder, and you can tarball &amp;amp; deploy in a single step.&lt;/p&gt;
&lt;h2 id=&#34;what-are-the-downsides&#34;&gt;What are the downsides?&lt;/h2&gt;
&lt;p&gt;You&amp;rsquo;re really only missing out on the fancy multi-stage deployments that Heroku can be capable of,  but again, with the multi-buildpack setup, I don&amp;rsquo;t know how well that would work. Heroku is missing &lt;strong&gt;a ton&lt;/strong&gt; to support monorepo projects in general, and it&amp;rsquo;s kind of obnoxious that a service this expensive is this limited, BUT this at least lets you keep moving without rewriting your entire app.&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>Uses</title>
      <link>https://qbunt.com/uses/</link>
      <pubDate>Wed, 31 Aug 2022 21:34:00 +0000</pubDate>
      
      <guid>https://qbunt.com/uses/</guid>
      <description>&lt;p&gt;&lt;em&gt;Updated 3/2024 ~ updated with current software&lt;/em&gt;
In the style of &lt;a href=&#34;https://uses.tech/&#34;&gt;many other developers&lt;/a&gt; out there, I thought it&amp;rsquo;d be interesting to collect a list of things that I use throughout my day. Many of these are pretty common for a developer, but there are truly some gems in there (the command line tools especially). I spend most of my time on some kind of web development task, but that also changes to backend, administrating servers, writing Dockerfiles and interviews.&lt;/p&gt;</description>
      <content>&lt;p&gt;&lt;em&gt;Updated 3/2024 ~ updated with current software&lt;/em&gt;
In the style of &lt;a href=&#34;https://uses.tech/&#34;&gt;many other developers&lt;/a&gt; out there, I thought it&amp;rsquo;d be interesting to collect a list of things that I use throughout my day. Many of these are pretty common for a developer, but there are truly some gems in there (the command line tools especially). I spend most of my time on some kind of web development task, but that also changes to backend, administrating servers, writing Dockerfiles and interviews.&lt;/p&gt;
&lt;p&gt;Much of this gear is what I find myself using daily for development or for staying caffeinated and sane :D. Many of these things evolve throughout what I&amp;rsquo;m doing or the task at hand. For example, I typically use VSCode for config files or for projects in a language that I don&amp;rsquo;t write a lot of, but I use Webstorm for everything else.&lt;/p&gt;
&lt;h2 id=&#34;dev-tools&#34;&gt;Dev Tools&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.jetbrains.com/webstorm/&#34;&gt;Jetbrains Webstorm&lt;/a&gt;, &lt;a href=&#34;https://www.jetbrains.com/datagrip/&#34;&gt;DataGrip&lt;/a&gt;, &lt;a href=&#34;https://www.jetbrains.com/go/&#34;&gt;GoLand&lt;/a&gt; &amp;amp; &lt;a href=&#34;https://www.jetbrains.com/phpstorm/&#34;&gt;PHPStorm&lt;/a&gt; with &lt;a href=&#34;https://plugins.jetbrains.com/plugin/12226-vuesion-theme&#34;&gt;Vuesion theme&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://code.visualstudio.com/&#34;&gt;VSCode&lt;/a&gt; with &lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=sdras.night-owl&#34;&gt;Nightowl theme&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.jetbrains.com/lp/mono/&#34;&gt;Jetbrains Mono&lt;/a&gt; everywhere (so nice)&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.mozilla.org/en-US/firefox/developer/&#34;&gt;Firefox&lt;/a&gt; (I&amp;rsquo;d been using Chrome for a super long time, and decided to give this a shot for a while and I haven&amp;rsquo;t looked back yet)&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.git-tower.com/mac&#34;&gt;Tower&lt;/a&gt; for git&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://iterm2.com/&#34;&gt;iTerm2&lt;/a&gt;…version 3?&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://brew.sh/&#34;&gt;Homebrew&lt;/a&gt; and Cask&lt;/li&gt;
&lt;li&gt;&lt;del&gt;&lt;a href=&#34;https://github.com/trailofbits/algo&#34;&gt;Algo VPN&lt;/a&gt;&lt;/del&gt; &lt;a href=&#34;https://mullvad.net/en&#34;&gt;Mullvad VPN&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://ohmyz.sh/&#34;&gt;Oh my Zsh&lt;/a&gt; with &lt;a href=&#34;https://starship.rs/&#34;&gt;Starship prompt&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://marktext.app/&#34;&gt;MarkText&lt;/a&gt; - a great place to write markdown quickly&lt;/li&gt;
&lt;li&gt;Various command line toys for getting things done quickly, &lt;a href=&#34;https://github.com/junegunn/fzf&#34;&gt;fzf&lt;/a&gt;, &lt;a href=&#34;https://jonas.github.io/tig/&#34;&gt;tig&lt;/a&gt;, &lt;a href=&#34;https://github.com/sharkdp/bat&#34;&gt;bat&lt;/a&gt;, &lt;a href=&#34;http://denilson.sa.nom.br/prettyping/&#34;&gt;prettyping&lt;/a&gt;, &lt;a href=&#34;http://hisham.hm/htop/&#34;&gt;htop&lt;/a&gt;, &lt;a href=&#34;https://github.com/Canop/broot&#34;&gt;broot&lt;/a&gt;, &lt;a href=&#34;https://github.com/sharkdp/fd/&#34;&gt;fd&lt;/a&gt;, &lt;a href=&#34;https://dev.yorhel.nl/ncdu&#34;&gt;ncdu&lt;/a&gt;, &lt;a href=&#34;https://beyondgrep.com/&#34;&gt;ack&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;desktop&#34;&gt;Desktop&lt;/h2&gt;
&lt;p&gt;All the meatspace stuff that is on, close to, or makes up my desk:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.amazon.com/AmazonBasics-Premium-Single-Monitor-Stand/dp/B00MIBN16O&#34;&gt;AmazonBasics Monitor Arm&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://support.hp.com/us-en/document/c05962242&#34;&gt;HP Z27 Business monitor&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.ikea.com/us/en/p/gerton-tabletop-beech-50106773/&#34;&gt;Ikea Berton Desktop&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.fully.com/standing-desks/jarvis/jarvis-frame-only.html&#34;&gt;Fully Jarvis desk frame&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.amazon.com/Logitech-Advanced-Wireless-Illuminated-Keyboard/dp/B07S92QBCJ&#34;&gt;Logitech MX Keys Keyboard&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.amazon.com/Logitech-Master-Advanced-Wireless-Mouse/dp/B07S395RWD&#34;&gt;Logitech MX Master 3&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://steelseries.com/gaming-mousepads/qck-series#qck-medium&#34;&gt;Steelseries QCK Mouse Pad&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.amazon.com/TaoTronics-Charging-Temperatures-Brightness-Licensing/dp/B07QPS3JHK?ref_=TopRatedC&amp;pf_rd_p=bdb73aea-8477-5114-ae23-0a06b01f5467&amp;pf_rd_s=merchandised-search-6&amp;pf_rd_t=101&amp;pf_rd_i=1063292&amp;pf_rd_m=ATVPDKIKX0DER&amp;pf_rd_r=5FQXXPG0XGCAGVEYP13R&amp;pf_rd_r=5FQXXPG0XGCAGVEYP13R&amp;pf_rd_p=bdb73aea-8477-5114-ae23-0a06b01f5467&#34;&gt;Taotronics LED Desk Lamp&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.therooststand.com/&#34;&gt;Roost Stand&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.bose.com/en_us/products/headphones/over_ear_headphones/quietcomfort-35-wireless-ii.html#v=qc35_ii_black&#34;&gt;Bose QC 35 II&lt;/a&gt; (I would never buy these again)&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.anker.com/products/variant/powerport-5/A2124112&#34;&gt;Anker PowerPort 5&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Refurbed &lt;a href=&#34;https://store.hermanmiller.com/office/office-chairs/aeron-chair/2195348.html?lang=en_US&#34;&gt;Herman Miller Aeron&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;iPhone 15 Pro&lt;/li&gt;
&lt;li&gt;Airpods Pro 2&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.amazon.com/Ubiquiti-Networks-802-11ac-Dual-Radio-UAP-AC-PRO-US/dp/B015PRO512&#34;&gt;Ubiquiti Unifi UAP-AC-Pro Wifi Access Point&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Apple Macbook Pro 16&amp;quot; M1 Max&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://happymugcoffee.com/&#34;&gt;Happy Mug Coffee&lt;/a&gt;/&lt;a href=&#34;https://www.harney.com/&#34;&gt;Harney &amp;amp; Sons Tea&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://scargopottery.com/&#34;&gt;Scargo Hill Pottery mug&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;mac-apps&#34;&gt;Mac Apps&lt;/h2&gt;
&lt;p&gt;A very abridged list, but some of the important things I start in the morning:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://1password.com/&#34;&gt;1Password&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;del&gt;&lt;a href=&#34;https://www.alfredapp.com/&#34;&gt;Alfred&lt;/a&gt;&lt;/del&gt; &lt;a href=&#34;https://www.raycast.com/&#34;&gt;Raycast&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://todoist.com/&#34;&gt;Todoist&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://qbunt.com/&#34;&gt;Obsidian&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.figma.com/&#34;&gt;Figma&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.backblaze.com/&#34;&gt;Backblaze&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://rectangleapp.com/&#34;&gt;Rectangle&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.googleplaymusicdesktopplayer.com/&#34;&gt;&lt;del&gt;Google Play Music Desktop Player&lt;/del&gt;&lt;/a&gt; &amp;amp; Spotify&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://overcast.fm/&#34;&gt;Overcast&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Slack, Signal, Hangouts &amp;amp; GSuite&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;hardware&#34;&gt;Hardware&lt;/h2&gt;
&lt;p&gt;Not all of this I use directly every day, but most of it gets used in some form or another. The Lenovo box is what I run my home automation server on, and things like the Synology are used but in the background or by automation exclusively.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.synology.com/en-us/products/DS920+&#34;&gt;Synology DS920+&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.lenovo.com/us/en/desktops/thinkcentre/m-series-tiny/m93-m93p/&#34;&gt;Lenovo ThinkCentre M93p Tiny&lt;/a&gt; w/ &lt;a href=&#34;https://wiki.debian.org/DebianBuster&#34;&gt;Debian Buster&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Apple Macbook Pro 14&amp;quot; M1 Pro&lt;/li&gt;
&lt;li&gt;Apple iPad Pro 11&amp;quot; M1 w/ Pencil&lt;/li&gt;
&lt;li&gt;2x Apple iPad Air 2&lt;/li&gt;
&lt;li&gt;Testing devices&lt;/li&gt;
&lt;/ul&gt;
</content>
    </item>
    
    <item>
      <title>About Jeremy Bunting</title>
      <link>https://qbunt.com/about/</link>
      <pubDate>Mon, 14 Feb 2022 01:38:00 +0000</pubDate>
      
      <guid>https://qbunt.com/about/</guid>
      <description>&lt;p&gt;Hey there, I’m Jeremy Bunting, some people call me JB. I’ve been making browsers do stupid tricks for about 15 years. I really enjoy making tools and toys for the internet.&lt;/p&gt;
&lt;p&gt;On the work side, I’ve written software for the entire stack, but mainly on the front-end. I’ve written things from GCode to Go for embedded systems, and the most gratifying thing I get out of work is solving all the tiny problems to make a project happen. I’ve worked with some great people all over the world to build some incredible things.&lt;/p&gt;</description>
      <content>&lt;p&gt;Hey there, I’m Jeremy Bunting, some people call me JB. I’ve been making browsers do stupid tricks for about 15 years. I really enjoy making tools and toys for the internet.&lt;/p&gt;
&lt;p&gt;On the work side, I’ve written software for the entire stack, but mainly on the front-end. I’ve written things from GCode to Go for embedded systems, and the most gratifying thing I get out of work is solving all the tiny problems to make a project happen. I’ve worked with some great people all over the world to build some incredible things.&lt;/p&gt;
&lt;p&gt;I spent about 11 years in California, fell in love, got married and had 2 amazing girls. After spending far too much time in traffic, I dragged them all the way back to coastal beautiful Connecticut. I enjoy the cliché developer things, coffee, cycling, model aircraft, craft cocktails and spending time with his two goofball girls.&lt;/p&gt;

&lt;img src=&#34;https://qbunt.com/img/2022-02-14-906fa012-a890-4f81-98dd-dd6737ae0037.jpeg&#34;  class=&#34;left&#34;  style=&#34;border-radius: 2px; width: 400px;  margin: 0 auto;&#34;    /&gt;


&lt;p&gt;Yup, it is supposed to be upside down.&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>Tracking page exits with Mixpanel-js</title>
      <link>https://qbunt.com/posts/tracking-page-exits-with-mixpanel-js/</link>
      <pubDate>Wed, 05 Feb 2020 05:00:00 +0000</pubDate>
      
      <guid>https://qbunt.com/posts/tracking-page-exits-with-mixpanel-js/</guid>
      <description>&lt;p&gt;Oh mixpanel.&lt;/p&gt;
&lt;p&gt;After looking for far too long for a way in the &lt;a href=&#34;https://developer.mixpanel.com/docs/javascript-full-api-reference#section-mixpanel-track&#34;&gt;Mixpanel docs&lt;/a&gt; to find a way to track &lt;code&gt;session-end&lt;/code&gt; events with the &lt;a href=&#34;https://github.com/mixpanel/mixpanel-js&#34;&gt;Mixpanel JS library&lt;/a&gt;, I tried all the usual tricks to get the tracking event to fire correctly, &lt;code&gt;beforeunload&lt;/code&gt;, &lt;code&gt;unload&lt;/code&gt; and similar. Nothing was firing correctly. Having heard fairly recently about &lt;a href=&#34;https://developer.mozilla.org/en-US/docs/Web/API/Beacon_API&#34;&gt;the beacon API&lt;/a&gt;, I thought &amp;ldquo;Yeah, there&amp;rsquo;s no way there&amp;rsquo;s support for that in recent stuff yet&amp;rdquo;.&lt;/p&gt;</description>
      <content>&lt;p&gt;Oh mixpanel.&lt;/p&gt;
&lt;p&gt;After looking for far too long for a way in the &lt;a href=&#34;https://developer.mixpanel.com/docs/javascript-full-api-reference#section-mixpanel-track&#34;&gt;Mixpanel docs&lt;/a&gt; to find a way to track &lt;code&gt;session-end&lt;/code&gt; events with the &lt;a href=&#34;https://github.com/mixpanel/mixpanel-js&#34;&gt;Mixpanel JS library&lt;/a&gt;, I tried all the usual tricks to get the tracking event to fire correctly, &lt;code&gt;beforeunload&lt;/code&gt;, &lt;code&gt;unload&lt;/code&gt; and similar. Nothing was firing correctly. Having heard fairly recently about &lt;a href=&#34;https://developer.mozilla.org/en-US/docs/Web/API/Beacon_API&#34;&gt;the beacon API&lt;/a&gt;, I thought &amp;ldquo;Yeah, there&amp;rsquo;s no way there&amp;rsquo;s support for that in recent stuff yet&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://caniuse.com/#feat=beacon&#34;&gt;I was thankfully incorrect;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Unfortunately, this feature is documented in a series of pull requests, github issues and similar, so tracking down how you can use it was annoying, so I thought I&amp;rsquo;d document it here instead.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/mixpanel/mixpanel-js/pull/240&#34;&gt;This&lt;/a&gt; has more information than I could find on any of the Mixpanel official docs. I realize it&amp;rsquo;s a new PR, but the JS lib docs also mention Bower, probably not the most up to date.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-javascript&#34; data-lang=&#34;javascript&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;// for an individual track() call
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;mixpanel&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;track&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;my event&amp;#39;&lt;/span&gt;, {&lt;span style=&#34;color:#a6e22e&#34;&gt;my&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;props&amp;#39;&lt;/span&gt;}, {&lt;span style=&#34;color:#a6e22e&#34;&gt;transport&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;sendBeacon&amp;#39;&lt;/span&gt;});
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;// turn on for every Mixpanel call when page is unloading
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;// (you would use this to use sendBeacon for everything, including
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;// mixpanel.people calls)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;window.&lt;span style=&#34;color:#a6e22e&#34;&gt;addEventListener&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;`beforeunload`&lt;/span&gt;, &lt;span style=&#34;color:#66d9ef&#34;&gt;function&lt;/span&gt;() {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#a6e22e&#34;&gt;mixpanel&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;set_config&lt;/span&gt;({&lt;span style=&#34;color:#a6e22e&#34;&gt;api_transport&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;sendBeacon&amp;#39;&lt;/span&gt;});
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#a6e22e&#34;&gt;mixpanel&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;track&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;my event&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#a6e22e&#34;&gt;mixpanel&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;people&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;set&lt;/span&gt;({&lt;span style=&#34;color:#a6e22e&#34;&gt;foo&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;bar&amp;#39;&lt;/span&gt;});
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;});
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;// initialize for all tracking; not recommended as it will prevent any
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;// request-retry facilities
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;mixpanel&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;init&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;my token&amp;#39;&lt;/span&gt;, {&lt;span style=&#34;color:#a6e22e&#34;&gt;api_transport&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;sendBeacon&amp;#39;&lt;/span&gt;});
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;mixpanel&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;track&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;my event&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;After pulling my own hair out trying to track page exit or &lt;code&gt;session_end&lt;/code&gt; events, this is the right way to do it (as of today, released 9 days ago). Thankfully, this actually exists and appears to be working properly, not having this feature was going to require intricate timer events and silly stuff.&lt;/p&gt;
&lt;p&gt;If you have a choice though and you just need a couple stats, &lt;strong&gt;stop with this Mixpanel nonsense&lt;/strong&gt; and &lt;a href=&#34;https://usefathom.com/&#34;&gt;get some respectful tracking with Fathom&lt;/a&gt; instead. You can capture session duration without having to code it by hand.&lt;/p&gt;
&lt;p&gt;Like a neanderthal.&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>Added a `uses` post for submission on [uses.tech](https://uses.tech)</title>
      <link>https://qbunt.com/posts/added-a-uses-post-for-submission-on-uses-tech-https-uses-tech/</link>
      <pubDate>Fri, 24 Jan 2020 17:30:00 +0000</pubDate>
      
      <guid>https://qbunt.com/posts/added-a-uses-post-for-submission-on-uses-tech-https-uses-tech/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve added a &lt;a href=&#34;https://qbunt.com/uses&#34;&gt;uses&lt;/a&gt; page to this site so it could be submitted to the totally excellent (and super fascinating) &lt;a href=&#34;https://uses.tech&#34;&gt;uses.tech&lt;/a&gt;. I&amp;rsquo;m fascinated with the tools that people use to do their job, and it was pretty interesting to collect a list of all the crazy stuff I use to get my job done. I spend a lot of time at my desk, and seeing how other people set up their spaces and what they use has been cool&lt;/p&gt;</description>
      <content>&lt;p&gt;I&amp;rsquo;ve added a &lt;a href=&#34;https://qbunt.com/uses&#34;&gt;uses&lt;/a&gt; page to this site so it could be submitted to the totally excellent (and super fascinating) &lt;a href=&#34;https://uses.tech&#34;&gt;uses.tech&lt;/a&gt;. I&amp;rsquo;m fascinated with the tools that people use to do their job, and it was pretty interesting to collect a list of all the crazy stuff I use to get my job done. I spend a lot of time at my desk, and seeing how other people set up their spaces and what they use has been cool&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://qbunt.com/uses&#34;&gt;Check my list out here&lt;/a&gt; and check out everyone else&amp;rsquo;s setup at &lt;a href=&#34;https://uses.tech&#34;&gt;uses.tech&lt;/a&gt;!&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>Metro for Alfred 4</title>
      <link>https://qbunt.com/posts/metro-for-alfred-4/</link>
      <pubDate>Sun, 02 Jun 2019 07:00:00 +0000</pubDate>
      
      <guid>https://qbunt.com/posts/metro-for-alfred-4/</guid>
      <description>&lt;p&gt;Every once in a while I build a new theme for &lt;a href=&#34;https://www.alfredapp.com/&#34;&gt;Alfred&lt;/a&gt; because I use it so much, and I do enjoy having nice looking UI around. This one is different than the last few I&amp;rsquo;ve done, and this one I think will last a bit longer because it&amp;rsquo;s using such simple typesetting, I think it&amp;rsquo;s likely to age well.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://raw.githubusercontent.com/qbunt/alfredmetro/master/screenshot.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;Anyway, I hope you use it and enjoy it, if you do, please do share it around.&lt;/p&gt;</description>
      <content>&lt;p&gt;Every once in a while I build a new theme for &lt;a href=&#34;https://www.alfredapp.com/&#34;&gt;Alfred&lt;/a&gt; because I use it so much, and I do enjoy having nice looking UI around. This one is different than the last few I&amp;rsquo;ve done, and this one I think will last a bit longer because it&amp;rsquo;s using such simple typesetting, I think it&amp;rsquo;s likely to age well.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://raw.githubusercontent.com/qbunt/alfredmetro/master/screenshot.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;Anyway, I hope you use it and enjoy it, if you do, please do share it around.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/qbunt/alfredmetro&#34;&gt;Download it here&lt;/a&gt;&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>JetBrains editors popping `apropos` terminal when invoking actions</title>
      <link>https://qbunt.com/posts/jetbrains-editors-popping-apropos-terminal-when-invoking-actions/</link>
      <pubDate>Wed, 17 Apr 2019 07:00:00 +0000</pubDate>
      
      <guid>https://qbunt.com/posts/jetbrains-editors-popping-apropos-terminal-when-invoking-actions/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://qbunt.com/img/2019-04-17-KaRoFfHrDbDUw3rzL4_k9A.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;You may have noticed a new obnoxious behavior in the JetBrains/IntelliJ series of editors when invoking the actions menu &lt;code&gt;⌘+shift+A&lt;/code&gt;. Instead of the normal actions menu rendered by the editor, you get this menu explaining something unrelated.&lt;/p&gt;
&lt;p&gt;Being someone who hits this menu many times per day, this really jammed up my shit.&lt;/p&gt;
&lt;p&gt;To disable this, and save your sanity, go into System Preferences &amp;gt; Shortcuts &amp;gt; Services &amp;gt; Developer and uncheck the &lt;code&gt;Search man Page index in Terminal&lt;/code&gt; shortcut.&lt;/p&gt;</description>
      <content>&lt;p&gt;&lt;img src=&#34;https://qbunt.com/img/2019-04-17-KaRoFfHrDbDUw3rzL4_k9A.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;You may have noticed a new obnoxious behavior in the JetBrains/IntelliJ series of editors when invoking the actions menu &lt;code&gt;⌘+shift+A&lt;/code&gt;. Instead of the normal actions menu rendered by the editor, you get this menu explaining something unrelated.&lt;/p&gt;
&lt;p&gt;Being someone who hits this menu many times per day, this really jammed up my shit.&lt;/p&gt;
&lt;p&gt;To disable this, and save your sanity, go into System Preferences &amp;gt; Shortcuts &amp;gt; Services &amp;gt; Developer and uncheck the &lt;code&gt;Search man Page index in Terminal&lt;/code&gt; shortcut.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://qbunt.com/img/2021-03-22-macos_keyboard_terribleness.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;This wasn&amp;rsquo;t a problem until recently when Apple decided this shortcut was theirs. More information on the workaround is &lt;a href=&#34;https://intellij-support.jetbrains.com/hc/en-us/community/posts/360003430700--Apropos-terminal-pops-up-when-typing-cmd-shift-A-to-get-actions-bar&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Thank you to JetBrains for posting something about this that was easy enough to get indexed by Google.&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>Sweet Vue one-liner for inline SVGs in a component</title>
      <link>https://qbunt.com/posts/sweet-vue-one-liner-for-inline-svgs-in-a-component/</link>
      <pubDate>Tue, 26 Mar 2019 00:00:00 -0700</pubDate>
      
      <guid>https://qbunt.com/posts/sweet-vue-one-liner-for-inline-svgs-in-a-component/</guid>
      <description>&lt;p&gt;I came across this nice technique for keeping your markup in a &lt;a href=&#34;https://vuejs.org&#34;&gt;Vue&lt;/a&gt; app nice and clean, but still inlining the SVGs at compile-time with webpack. Because SVGs are xml, you can treat them like any other piece of markup with &lt;code&gt;html-loader&lt;/code&gt; and as a result, you get nicely integrated SVG content.
&lt;!-- raw HTML omitted --&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-html&#34; data-lang=&#34;html&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;&lt;span style=&#34;color:#f92672&#34;&gt;div&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;:key&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;type&amp;#34;&lt;/span&gt;  &lt;span style=&#34;color:#a6e22e&#34;&gt;v-html&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;require(`!html-loader!@/assets/${type}-line.svg`)&amp;#34;&lt;/span&gt;&amp;gt;&amp;lt;/&lt;span style=&#34;color:#f92672&#34;&gt;div&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pr</description>
      <content>&lt;p&gt;I came across this nice technique for keeping your markup in a &lt;a href=&#34;https://vuejs.org&#34;&gt;Vue&lt;/a&gt; app nice and clean, but still inlining the SVGs at compile-time with webpack. Because SVGs are xml, you can treat them like any other piece of markup with &lt;code&gt;html-loader&lt;/code&gt; and as a result, you get nicely integrated SVG content.
&lt;!-- raw HTML omitted --&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-html&#34; data-lang=&#34;html&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;&lt;span style=&#34;color:#f92672&#34;&gt;div&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;:key&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;type&amp;#34;&lt;/span&gt;  &lt;span style=&#34;color:#a6e22e&#34;&gt;v-html&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;require(`!html-loader!@/assets/${type}-line.svg`)&amp;#34;&lt;/span&gt;&amp;gt;&amp;lt;/&lt;span style=&#34;color:#f92672&#34;&gt;div&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Works super well and has the added benefit of side-stepping any preloading of SVGs you might need to do.&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>You should get a VPN (really)</title>
      <link>https://qbunt.com/posts/vpns/</link>
      <pubDate>Tue, 15 Jan 2019 22:10:37 +0000</pubDate>
      
      <guid>https://qbunt.com/posts/vpns/</guid>
      <description>&lt;p&gt;VPNs are super useful tools for keeping your information private for any reason. If you&amp;rsquo;re on coffee shop WiFi and need to do some banking (tho I&amp;rsquo;d advise strongly against doing this) you should do that on a VPN. A VPN is not a miracle solution for online security, and there are many security holes in even getting your data to the machine. If you have a virus or some other horrible thing on your machine, a VPN won&amp;rsquo;t help you. If you&amp;rsquo;re doing superduper sketchy stuff, you should probably just stop doing that stuff instead of thinking you&amp;rsquo;re crafty with a VPN.&lt;/p&gt;</description>
      <content>&lt;p&gt;VPNs are super useful tools for keeping your information private for any reason. If you&amp;rsquo;re on coffee shop WiFi and need to do some banking (tho I&amp;rsquo;d advise strongly against doing this) you should do that on a VPN. A VPN is not a miracle solution for online security, and there are many security holes in even getting your data to the machine. If you have a virus or some other horrible thing on your machine, a VPN won&amp;rsquo;t help you. If you&amp;rsquo;re doing superduper sketchy stuff, you should probably just stop doing that stuff instead of thinking you&amp;rsquo;re crafty with a VPN.&lt;/p&gt;
&lt;p&gt;That said, there are a couple of recommendations I have for VPNs, one easy and commercial, one slightly less easy and DIY.&lt;/p&gt;
&lt;h3 id=&#34;protonvpnhttpsprotonvpncom-free---24mo&#34;&gt;&lt;a href=&#34;https://protonvpn.com/&#34;&gt;ProtonVPN&lt;/a&gt;, free - $24/mo&lt;/h3&gt;
&lt;p&gt;An excellent commercial option with decent clients on all major mobile platforms. They are very serious about security and privacy, though being a commercial option, you&amp;rsquo;re still routing your traffic to someone else&amp;rsquo;s servers, there&amp;rsquo;s risk in doing that. ProtonVPN is from the same good ex-CERN Swiss folks that brought you &lt;a href=&#34;https://protonmail.com/&#34;&gt;ProtonMail&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;algohttpsgithubcomtrailofbitsalgo-choose-your-price&#34;&gt;&lt;a href=&#34;https://github.com/trailofbits/algo&#34;&gt;Algo&lt;/a&gt;, choose your price&lt;/h3&gt;
&lt;p&gt;The slightly more difficult but more secure option. This tool lets anyone with some command line knowledge set up their own IPSEC VPN on a server of their choosing. Works with iOS, Android, Mac, anything with an IPSEC VPN client. I strongly recommend going this route, even with the added complexity of setup. I&amp;rsquo;ve used Algo without issue for a long time. For those not entirely sold on setting something up yourself, &lt;a href=&#34;https://blog.trailofbits.com/2016/12/12/meet-algo-the-vpn-that-works/&#34;&gt;they have a great article on why you&amp;rsquo;d want to&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;For those wondering&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;What about all of the other options out there like Nord or anything else? I think my ISP or cell carrier has one.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;If that accomplishes what you&amp;rsquo;re after, go for it, but I would refer you to the aforementioned &lt;a href=&#34;https://blog.trailofbits.com/2016/12/12/meet-algo-the-vpn-that-works/&#34;&gt;TrailOfBits&lt;/a&gt; article I mentioned. Commercial VPNs aren&amp;rsquo;t necessarily as private as you think they are.&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>Removing terrible MS Word &#39;smart quotes&#39; in JS</title>
      <link>https://qbunt.com/posts/removing-smart-quotes/</link>
      <pubDate>Wed, 29 Nov 2017 01:20:19 +0000</pubDate>
      
      <guid>https://qbunt.com/posts/removing-smart-quotes/</guid>
      <description>&lt;p&gt;I just put this on Twitter, but I thought it could use a more permanent home. Eventually, I&amp;rsquo;ll just add it to &lt;a href=&#34;https://github.com/qbunt/toothpick.js&#34;&gt;Toothpick&lt;/a&gt;. For now though, I&amp;rsquo;m sure someone is struggling with it right now.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-javascript&#34; data-lang=&#34;javascript&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;const&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;replaceSmartQuotes&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;str&lt;/span&gt; =&amp;gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;str&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;replace&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;/[\u2018\u2019]/g&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#39;&amp;#34;&lt;/span&gt;).&lt;span style=&#34;color:#a6e22e&#34;&gt;replace&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;/[\u201C\u201D]/g&lt;/span&gt;, &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;‘”’&lt;/span&gt;)&lt;span style=&#34;color:#e6db74&#34;&gt;`
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
      <content>&lt;p&gt;I just put this on Twitter, but I thought it could use a more permanent home. Eventually, I&amp;rsquo;ll just add it to &lt;a href=&#34;https://github.com/qbunt/toothpick.js&#34;&gt;Toothpick&lt;/a&gt;. For now though, I&amp;rsquo;m sure someone is struggling with it right now.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-javascript&#34; data-lang=&#34;javascript&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;const&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;replaceSmartQuotes&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;str&lt;/span&gt; =&amp;gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;str&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;replace&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;/[\u2018\u2019]/g&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#39;&amp;#34;&lt;/span&gt;).&lt;span style=&#34;color:#a6e22e&#34;&gt;replace&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;/[\u201C\u201D]/g&lt;/span&gt;, &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;‘”’&lt;/span&gt;)&lt;span style=&#34;color:#e6db74&#34;&gt;`
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</content>
    </item>
    
    <item>
      <title>How to freeze your credit file</title>
      <link>https://qbunt.com/posts/how-to-freeze-your-credit-file/</link>
      <pubDate>Thu, 14 Sep 2017 05:08:56 +0000</pubDate>
      
      <guid>https://qbunt.com/posts/how-to-freeze-your-credit-file/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; Keeping the freeze links up to date on this post, I had to use it again recently and a couple were dead&lt;/p&gt;
&lt;p&gt;Because of the Equifax information breach, many people are curious about how they can protect their identity.&lt;/p&gt;
&lt;p&gt;I think many people think &lt;em&gt;well, the hackers have all my info, I can&amp;rsquo;t do anything, right?&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;You should assume your information has been compromised.&lt;/p&gt;
&lt;p&gt;What can you do about it? Literally the cheapest and easiest way to protect your identity is to freeze your credit file.&lt;/p&gt;</description>
      <content>&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; Keeping the freeze links up to date on this post, I had to use it again recently and a couple were dead&lt;/p&gt;
&lt;p&gt;Because of the Equifax information breach, many people are curious about how they can protect their identity.&lt;/p&gt;
&lt;p&gt;I think many people think &lt;em&gt;well, the hackers have all my info, I can&amp;rsquo;t do anything, right?&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;You should assume your information has been compromised.&lt;/p&gt;
&lt;p&gt;What can you do about it? Literally the cheapest and easiest way to protect your identity is to freeze your credit file.&lt;/p&gt;
&lt;p&gt;Contrary to what others &lt;em&gt;may&lt;/em&gt; say, there are are actually 4 (not 3) credit reporting bureaus, EquiFax, Experian, TransUnion &lt;em&gt;and&lt;/em&gt; Innovis (that&amp;rsquo;s the weird one).&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Why is this so important and what does it do?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Freezing your credit file places a PIN number protected hold on your credit file. You cannot take out loans, new credit cards, or open new lines of credit &lt;em&gt;without the PIN&lt;/em&gt;. If someone has access to your information, they can take out credit cards, open a mortgage, buy property, etc, but not without &lt;em&gt;access to some level of credit&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Freezing will prevent you from taking out new credit cards, buying cars, opening a home loan and the like. If you do this a lot, &lt;strong&gt;this isn&amp;rsquo;t for you&lt;/strong&gt;, though it&amp;rsquo;s very easy to lift a freeze for a week&lt;/p&gt;
&lt;p&gt;Credit freeze access is the law in 49 states (sorry Michigan), and is easy, inexpensive, and easy to lift if you need to (it may take 24 hours).&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Sounds kind of expensive, what does it cost?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;In California, the only agency that charged me was TransUnion &lt;del&gt;and it was $10. Worth every penny&lt;/del&gt;.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;em&gt;Update&lt;/em&gt;&lt;/em&gt;: As of 1/17/24, Transunion no longer charges for freezing your file.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Well I&amp;rsquo;m impervious because I have a credit monitoring service&amp;hellip;right?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The advice from &lt;a href=&#34;https://krebsonsecurity.com/2014/03/are-credit-monitoring-services-worth-it/&#34;&gt;Brian Krebs&lt;/a&gt; is pretty detailed. While one agency might provide a service, there are very few that cover all four agencies. Coverage and what these services &lt;em&gt;actually do&lt;/em&gt; is kind of all over the map and in some cases, may even be reselling information you want protected.&lt;/p&gt;
&lt;p&gt;Giving &lt;em&gt;someone else&lt;/em&gt; the responsibility to watch over my credit seems like a flawed concept. These &amp;lsquo;plans&amp;rsquo; are a great way to sell a service to make people feel like they&amp;rsquo;re doing something, when in reality, they&amp;rsquo;re mostly sold by the credit bureaus to build a new line of business for something they should be protecting anyway.&lt;/p&gt;
&lt;p&gt;A credit report freeze is effective, cheaper and actually does something.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Alright, how do I freeze my credit file?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Visit each one of these and register a freeze on your file. Be &lt;strong&gt;sure&lt;/strong&gt; to save the PIN they give you in a safe place. If you need to thaw your file for some reason, this PIN number is what you&amp;rsquo;ll need.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://freeze.transunion.com/sf/securityFreeze/landingPage.jsp&#34;&gt;Transunion&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.equifax.com/personal/credit-report-services/credit-freeze/&#34;&gt;Equifax&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.innovis.com/securityFreeze/index&#34;&gt;Innovis&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.experian.com/ncaconline/freeze#registration&#34;&gt;Experian&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Once you&amp;rsquo;ve done this, be sure to visit this link to opt-out of the pre-screened credit card offers via email and snailmail.
&lt;a href=&#34;https://www.optoutprescreen.com/?rf=t&#34;&gt;https://www.optoutprescreen.com/?rf=t&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Where do I find out more?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&#34;https://krebsonsecurity.com/2017/09/the-equifax-breach-what-you-should-know/&#34;&gt;Brian Krebs&lt;/a&gt; is the authority here. He was the guy to break the story on the Target breach and many, many more. Credit freezes are pretty simple and can &lt;em&gt;help&lt;/em&gt; protect your credit.&lt;/p&gt;
&lt;p&gt;Freezing your credit file is not a magic bullet, the Equifax breach is bad news. This is one measure you can put in place to help preserve your financial well-being.&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>Nature got pixels right before we did.</title>
      <link>https://qbunt.com/posts/nature-got-pixels-right-before-we-did/</link>
      <pubDate>Sun, 26 Feb 2017 19:59:34 +0000</pubDate>
      
      <guid>https://qbunt.com/posts/nature-got-pixels-right-before-we-did/</guid>
      <description>&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&#34; allowfullscreen=&#34;allowfullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/0wtLrlIKvJE?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;
      &gt;&lt;/iframe&gt;
    &lt;/div&gt;</description>
      <content>

    
    &lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&#34; allowfullscreen=&#34;allowfullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/0wtLrlIKvJE?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;
      &gt;&lt;/iframe&gt;
    &lt;/div&gt;

</content>
    </item>
    
    <item>
      <title>resin-wifi-env</title>
      <link>https://qbunt.com/posts/resin-wifi-env/</link>
      <pubDate>Mon, 13 Feb 2017 21:01:48 +0000</pubDate>
      
      <guid>https://qbunt.com/posts/resin-wifi-env/</guid>
      <description>&lt;p&gt;We&amp;rsquo;ve been using the excellent &lt;a href=&#34;https://resin.io/&#34;&gt;Resin&lt;/a&gt; platform for deploying Raspberry Pi&amp;rsquo;s en masse at work. One of the issues we frequently have is the wifi we&amp;rsquo;re connecting to is either unknown, or incorrect, so we have to update the wifi configuration on a group of devices. Because this need was not met by either &lt;a href=&#34;https://github.com/resin-io/resin-wifi-connect&#34;&gt;Resin-wifi-connect&lt;/a&gt; or anything else, we wrote a tiny app to pick configuration value out of the Resin environment variables.&lt;/p&gt;</description>
      <content>&lt;p&gt;We&amp;rsquo;ve been using the excellent &lt;a href=&#34;https://resin.io/&#34;&gt;Resin&lt;/a&gt; platform for deploying Raspberry Pi&amp;rsquo;s en masse at work. One of the issues we frequently have is the wifi we&amp;rsquo;re connecting to is either unknown, or incorrect, so we have to update the wifi configuration on a group of devices. Because this need was not met by either &lt;a href=&#34;https://github.com/resin-io/resin-wifi-connect&#34;&gt;Resin-wifi-connect&lt;/a&gt; or anything else, we wrote a tiny app to pick configuration value out of the Resin environment variables.&lt;/p&gt;
&lt;p&gt;That solution is called &lt;a href=&#34;https://github.com/SpinifexGroup/resin-wifi-env&#34;&gt;resin-wifi-env, available at Github here&lt;/a&gt;. This script is far from finished, but it&amp;rsquo;s provided a simple way for us to switch out wifi config on 80+ devices at a clip.&lt;/p&gt;
&lt;p&gt;I realize this won&amp;rsquo;t work for everyone, but the script uses a single environment variable like so:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;WIFI : [SSID]|[PSK]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This this sort of has to be a single variable because Resin will request a reboot of the device &lt;strong&gt;right&lt;/strong&gt; after you edit the first variable, and then you&amp;rsquo;re stuck with a broken wifi configuration and you&amp;rsquo;ve got very few ways to recover.&lt;/p&gt;
&lt;p&gt;Hope you like it if you&amp;rsquo;re using the Resin platform!&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>Smoked v2 for Alfred</title>
      <link>https://qbunt.com/posts/smoked-v2-for-alfred/</link>
      <pubDate>Mon, 13 Feb 2017 20:54:22 +0000</pubDate>
      
      <guid>https://qbunt.com/posts/smoked-v2-for-alfred/</guid>
      <description>&lt;p&gt;Small update to the theme I released last year. This one is a variation on what I pushed out, but has a little bit of a typographic nod to the Palm Pre (yes, that Palm Pre). I&amp;rsquo;ve been using it for a while, and haven&amp;rsquo;t updated this repo in a bit.
&lt;a href=&#34;https://github.com/qbunt/smoked/archive/v2.1.zip&#34;&gt;Download from GitHub&lt;/a&gt; and give it a whirl. I&amp;rsquo;ve deprecated the &amp;lsquo;Day&amp;rsquo; version because nobody was using it (including myself) and I didn&amp;rsquo;t really feel like maintaining it.&lt;/p&gt;</description>
      <content>&lt;p&gt;Small update to the theme I released last year. This one is a variation on what I pushed out, but has a little bit of a typographic nod to the Palm Pre (yes, that Palm Pre). I&amp;rsquo;ve been using it for a while, and haven&amp;rsquo;t updated this repo in a bit.
&lt;a href=&#34;https://github.com/qbunt/smoked/archive/v2.1.zip&#34;&gt;Download from GitHub&lt;/a&gt; and give it a whirl. I&amp;rsquo;ve deprecated the &amp;lsquo;Day&amp;rsquo; version because nobody was using it (including myself) and I didn&amp;rsquo;t really feel like maintaining it.&lt;/p&gt;

&lt;img src=&#34;https://qbunt.com/img/2017/02/smoked.png&#34;  alt=&#34;Smoked Theme&#34;  class=&#34;center&#34;  style=&#34;border-radius: 8px;&#34;    /&gt;


&lt;p&gt;Hope you enjoy it!&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>Updated Smoked themes for Alfred</title>
      <link>https://qbunt.com/posts/updated-smoked-themes-for-alfred-3/</link>
      <pubDate>Fri, 20 May 2016 21:01:19 +0000</pubDate>
      
      <guid>https://qbunt.com/posts/updated-smoked-themes-for-alfred-3/</guid>
      <description>&lt;p&gt;Updated my &amp;lsquo;Smoked&amp;rsquo; theme package for the excellent &lt;a href=&#34;https://www.alfredapp.com/&#34;&gt;Alfred&lt;/a&gt;. I took a bit more time on these than I did on the first release. There&amp;rsquo;s a new halo around the entire window, something that wasn&amp;rsquo;t possible in the earlier versions of Alfred.&lt;/p&gt;
&lt;p&gt;The screenshots of these are kind of difficult because the OS X capture doesn&amp;rsquo;t render the blur filter correctly. The only real difference is that the sub-title on the non-selected items isn&amp;rsquo;t visible by default.&lt;/p&gt;</description>
      <content>&lt;p&gt;Updated my &amp;lsquo;Smoked&amp;rsquo; theme package for the excellent &lt;a href=&#34;https://www.alfredapp.com/&#34;&gt;Alfred&lt;/a&gt;. I took a bit more time on these than I did on the first release. There&amp;rsquo;s a new halo around the entire window, something that wasn&amp;rsquo;t possible in the earlier versions of Alfred.&lt;/p&gt;
&lt;p&gt;The screenshots of these are kind of difficult because the OS X capture doesn&amp;rsquo;t render the blur filter correctly. The only real difference is that the sub-title on the non-selected items isn&amp;rsquo;t visible by default.&lt;/p&gt;
&lt;p&gt;I would love to &lt;a href=&#34;https://github.com/qbunt/smoked/issues&#34;&gt;hear any feedback over on Github&lt;/a&gt;. If you think something should be tweaked, feel free to open a PR, I&amp;rsquo;m pretty frequently tweaking this theme.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/qbunt/smoked/archive/v2.0.zip&#34;&gt;Download the entire pack here&lt;/a&gt;&lt;/p&gt;

&lt;img src=&#34;https://qbunt.com/img/2016/05/smoked.png&#34;  alt=&#34;Example of Smoked theme for Alfred&#34;  class=&#34;center&#34;  style=&#34;border-radius: 8px;&#34;    /&gt;


</content>
    </item>
    
    <item>
      <title>Short CPU freezes on OS X El Capitan</title>
      <link>https://qbunt.com/posts/short-cpu-freezes-on-os-x-el-cap/</link>
      <pubDate>Sun, 11 Oct 2015 17:51:36 +0000</pubDate>
      
      <guid>https://qbunt.com/posts/short-cpu-freezes-on-os-x-el-cap/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Update 1/11/16:&lt;/strong&gt;
Current version of Chrome 47.0.2526.106 resolves this behavior.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve been experiencing some short machine freezes while using both OS X Yosemite and El Capitan. Could not figure this out for a while and I think I found the culprit.&lt;/p&gt;
&lt;p&gt;These short freezes last about 2-4 seconds, only appear while Chrome (production) is running, and appear to freeze not just Chrome but the entire machine.&lt;/p&gt;
&lt;p&gt;When Chrome runs a software update in the background, it throws the following message in the console &lt;code&gt;&amp;quot;triggered DYLD shared region unnest for map&amp;quot;&lt;/code&gt;.&lt;/p&gt;</description>
      <content>&lt;p&gt;&lt;strong&gt;Update 1/11/16:&lt;/strong&gt;
Current version of Chrome 47.0.2526.106 resolves this behavior.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve been experiencing some short machine freezes while using both OS X Yosemite and El Capitan. Could not figure this out for a while and I think I found the culprit.&lt;/p&gt;
&lt;p&gt;These short freezes last about 2-4 seconds, only appear while Chrome (production) is running, and appear to freeze not just Chrome but the entire machine.&lt;/p&gt;
&lt;p&gt;When Chrome runs a software update in the background, it throws the following message in the console &lt;code&gt;&amp;quot;triggered DYLD shared region unnest for map&amp;quot;&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The Chromium &lt;a href=&#34;https://code.google.com/p/chromium/issues/detail?id=428858&#34;&gt;team knows about this issue&lt;/a&gt;. As mentioned in the issue thread, it appears that a bunch of messages get jammed into the system log, but it may not actually be the messages that are the issue.&lt;/p&gt;
&lt;p&gt;Hopefully a proper fix is released for this soon, I&amp;rsquo;ve been struggling to find this issue for a while.&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>NGinX Configuration with basic auth &amp; custom error messages</title>
      <link>https://qbunt.com/posts/nginx-configuration-with-basic-auth/</link>
      <pubDate>Fri, 25 Sep 2015 23:39:30 +0000</pubDate>
      
      <guid>https://qbunt.com/posts/nginx-configuration-with-basic-auth/</guid>
      <description>&lt;p&gt;If for some reason you need the following things out of an NGinX server:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Multiple virtual blocks&lt;/li&gt;
&lt;li&gt;Basic authentication (with IP whitelist of approved IPs&lt;/li&gt;
&lt;li&gt;Customized error messages&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;there are some things you should probably be aware of, as the virtual block configuration is not obvious.&lt;/p&gt;
&lt;p&gt;First off, custom error messages are straightforward &lt;em&gt;if and only if&lt;/em&gt; you do not have basic auth enabled.&lt;/p&gt;
&lt;p&gt;If you do, you need to ensure two things. Your &lt;code&gt;error_page&lt;/code&gt; flag needs to reside &lt;strong&gt;above&lt;/strong&gt; the location block of that specific virtual host.&lt;/p&gt;</description>
      <content>&lt;p&gt;If for some reason you need the following things out of an NGinX server:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Multiple virtual blocks&lt;/li&gt;
&lt;li&gt;Basic authentication (with IP whitelist of approved IPs&lt;/li&gt;
&lt;li&gt;Customized error messages&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;there are some things you should probably be aware of, as the virtual block configuration is not obvious.&lt;/p&gt;
&lt;p&gt;First off, custom error messages are straightforward &lt;em&gt;if and only if&lt;/em&gt; you do not have basic auth enabled.&lt;/p&gt;
&lt;p&gt;If you do, you need to ensure two things. Your &lt;code&gt;error_page&lt;/code&gt; flag needs to reside &lt;strong&gt;above&lt;/strong&gt; the location block of that specific virtual host.&lt;/p&gt;
&lt;p&gt;One thing I wasn&amp;rsquo;t aware of with NGinX virtual blocks is that the &lt;code&gt;root&lt;/code&gt; should be (at least in this configuration) inside the &lt;code&gt;location&lt;/code&gt; block. If you put the basic authentication at the &lt;code&gt;server&lt;/code&gt; level, it will apply to all locations inside that configuration.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s a consolidated example of how all the pieces go together.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;server &lt;span style=&#34;color:#f92672&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     listen &lt;span style=&#34;color:#ae81ff&#34;&gt;80&lt;/span&gt; default_server;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     listen &lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;::&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;:80 default_server ipv6only&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;on;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     server_name yoursitenamehere.com www.yoursitenamehere.com;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     root /var/www/yoursitenamehere.com/html;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     &lt;span style=&#34;color:#75715e&#34;&gt;# path to your custom error page &amp;amp; the error you&amp;#39;re handling&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     error_page 401 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;401&lt;/span&gt; /401.html;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     &lt;span style=&#34;color:#75715e&#34;&gt;# turn off basic auth, allow from all IPs,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     &lt;span style=&#34;color:#75715e&#34;&gt;# disallow public access to that page&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     location &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; /401.html &lt;span style=&#34;color:#f92672&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    	auth_basic off;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        allow all;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        internal;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     &lt;span style=&#34;color:#f92672&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     location / &lt;span style=&#34;color:#f92672&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#75715e&#34;&gt;# this is super important, unless you set this, &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#75715e&#34;&gt;# you&amp;#39;ll get the default nginx error pages across the board&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        proxy_intercept_errors on;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        try_files $uri $uri/ &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;404;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        index   index.html;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#75715e&#34;&gt;# satisfy first the whitelisted IPs&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#75715e&#34;&gt;# then fall back to basic, then fail everything else&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        satisfy any;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#75715e&#34;&gt;# Your whitelist IPs&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        allow 111.222.333.444;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        allow 555.666.777.888;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#75715e&#34;&gt;# basic auth&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        auth_basic &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Forbidden&amp;#34;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        auth_basic_user_file /etc/nginx/.htpasswd;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#75715e&#34;&gt;# tell everyone else to leave with your fancy error messages&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        deny all;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#f92672&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The key in the above configuration is this one line &lt;code&gt;proxy_intercept_errors on&lt;/code&gt;. This combined with containing the &lt;code&gt;root&lt;/code&gt; inside the location block, will allow NGinX to return your custom error page.&lt;/p&gt;
&lt;p&gt;Anyway, I recently burned some time with this, thought I&amp;rsquo;d share my findings, it was not easy to find a working combination of flags.&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>Cheap media server that plays anything</title>
      <link>https://qbunt.com/posts/osmc-pi-review/</link>
      <pubDate>Sat, 12 Sep 2015 18:23:57 +0000</pubDate>
      
      <guid>https://qbunt.com/posts/osmc-pi-review/</guid>
      <description>&lt;p&gt;&lt;em&gt;UPDATE 11/5/15&lt;/em&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;With the Pi 2, amperage requirements are significantly higher, presumably due to the doubling of cores in the machine, more IO, etc. I&amp;rsquo;m changing my recommendation to a different power supply that provides clean 2.5A power for the Pi 2.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Also, please note that the Pi 2 requires a microSD card instead of the standard SD card format from the original Pi, recommending a microSD card.&lt;/p&gt;</description>
      <content>&lt;p&gt;&lt;em&gt;UPDATE 11/5/15&lt;/em&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;With the Pi 2, amperage requirements are significantly higher, presumably due to the doubling of cores in the machine, more IO, etc. I&amp;rsquo;m changing my recommendation to a different power supply that provides clean 2.5A power for the Pi 2.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Also, please note that the Pi 2 requires a microSD card instead of the standard SD card format from the original Pi, recommending a microSD card.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;For years now I&amp;rsquo;ve been trying out different ways to play my digital video collection with something other than an AppleTV, Chromecast, Amazon Stick, Roku or anything else. I wanted to share my findings after relentlessly trying to find something that doesn&amp;rsquo;t suck. I &lt;em&gt;finally&lt;/em&gt; found something.&lt;/p&gt;
&lt;p&gt;The ideal for this magical solution would:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Play the entire collection (480P, 720P, MKV, AVI, MP4 etc)&lt;/li&gt;
&lt;li&gt;Not cost a lot. You&amp;rsquo;re watching TV after all.&lt;/li&gt;
&lt;li&gt;Make little/no noise&lt;/li&gt;
&lt;li&gt;Not take up a lot of space&lt;/li&gt;
&lt;li&gt;Not be fiddly, ideally, this wouldn&amp;rsquo;t require a server&lt;/li&gt;
&lt;li&gt;Not crash often&lt;/li&gt;
&lt;li&gt;Be controllable with a phone (Android &amp;amp; iOS)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These are some things I tried.&lt;/p&gt;
&lt;h3 id=&#34;take-1---the-macbook&#34;&gt;Take 1 - The Macbook&lt;/h3&gt;

&lt;img src=&#34;https://i.kinja-img.com/gawker-media/image/upload/18kzmia28t4asjpg.jpg&#34;  alt=&#34;Picture of macbooks&#34;  class=&#34;center&#34;  style=&#34;border-radius: 8px;&#34;    /&gt;


&lt;p&gt;I loved this thing, but eventually, I needed more juice than this little guy could deliver day-to-day. I quickly relegated this to media center duty using XBMC (now &lt;a href=&#34;http://kodi.tv/&#34;&gt;Kodi&lt;/a&gt;). Plex hadn&amp;rsquo;t really matured at this point, but was showing some promise. XBMC/Kodi on the Macbook worked really well, while it worked. Even had an IR receiver in the front!&lt;/p&gt;
&lt;p&gt;After years of this labor, the fan in this hard-working machine died a horrible black death. Laptops are terrible for playing video like this. You have to have a mouse and monitor attached, there&amp;rsquo;s little cooling, you&amp;rsquo;ll kill the fan, and then you just have a fried laptop. I&amp;rsquo;m sure the &lt;a href=&#34;http://www.intel.com/content/www/us/en/chipsets/gma-950-graphics-sales-brief.html&#34;&gt;Intel GMA950&lt;/a&gt; integrated GPU didn&amp;rsquo;t help. Welp, worked for a while.&lt;/p&gt;
&lt;p&gt;Laptops should be laptops. This was a terrible idea.&lt;/p&gt;
&lt;h3 id=&#34;take-2---the-appletv&#34;&gt;Take 2 - The AppleTV&lt;/h3&gt;

&lt;img src=&#34;https://d3nevzfk7ii3be.cloudfront.net/igi/ge1LZXKrXOHCboiX.medium&#34;  alt=&#34;Photo of an Apple TV&#34;  class=&#34;center&#34;  style=&#34;border-radius: 8px;&#34;    /&gt;


&lt;p&gt;I owned this AppleTV (2nd gen) for years. We used it for Netflix, Airplay and Pandora fairly frequently. It was okay for supported stuff but not great for playing my own video smoothly. That remote got lost &lt;em&gt;constantly&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;I played my own video on &lt;a href=&#34;https://plex.tv/&#34;&gt;Plex&lt;/a&gt; for a while with &lt;a href=&#34;https://github.com/iBaa/PlexConnect/wiki&#34;&gt;PlexConnect&lt;/a&gt;. This, however, also shackled my laptop back to media center duty, as &lt;a href=&#34;https://plex.tv/&#34;&gt;Plex&lt;/a&gt; required a server to transcode things into a codec that the AppleTV understands. Not ideal.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;d heard about people &lt;a href=&#34;http://seas0npass.org/&#34;&gt;jailbreaking AppleTV with Seas0npass&lt;/a&gt; as well, so I gave that a go, again with &lt;a href=&#34;http://kodi.tv/&#34;&gt;Kodi&lt;/a&gt;. This was the most crashy thing on the planet. Any remotely high-res files crashed the jailbreak immediately. After some logging, it was just completely out of RAM. That AppleTV had 256MB of RAM, so running a stripped down iOS + Kodi was just way too much.&lt;/p&gt;
&lt;p&gt;Eventually, we mostly stopped using the AppleTV and sold it, for &lt;a href=&#34;http://www.ebay.com/sch/i.html?_from=R40&amp;_trksid=p2050601.m570.l1313.TR12.TRC2.A0.H0.Xapple+tv+2.TRS0&amp;_nkw=apple+tv+2&amp;_sacat=0&#34;&gt;a crazy profit on eBay&lt;/a&gt;, it was the last version you could jailbreak after all. With the reports people have of their experience, I don&amp;rsquo;t miss it much.&lt;/p&gt;
&lt;p&gt;Maybe I needed a purpose built machine?&lt;/p&gt;
&lt;h3 id=&#34;take-22&#34;&gt;Take 2.2&lt;/h3&gt;
&lt;p&gt;I considered and priced out a tiny &lt;a href=&#34;http://www.intel.com/content/www/us/en/nuc/overview.html&#34;&gt;Intel NUC&lt;/a&gt; box. I couldn&amp;rsquo;t stomach the $500 to watch TV &amp;amp; movies.&lt;/p&gt;
&lt;p&gt;Onto the cheaper option&amp;hellip;&lt;/p&gt;
&lt;h3 id=&#34;take-3---the-raspberry-pi&#34;&gt;Take 3 - The Raspberry Pi&lt;/h3&gt;

&lt;img src=&#34;https://raspi.tv/wp-content/uploads/2015/03/Official-Raspberry-Pi-Case_1500.jpg&#34;  alt=&#34;Photo of a Raspberry Pi single board computer&#34;  class=&#34;center&#34;  style=&#34;border-radius: 8px;&#34;    /&gt;


&lt;p&gt;After receiving a &lt;a href=&#34;https://www.raspberrypi.org/&#34;&gt;Raspberry Pi&lt;/a&gt; from my brother as a gift, it needed a full time gig. The Pi&amp;rsquo;s SD card drive was well suited for messing around, and I had a couple of spare SD cards around as well, so I stretched it&amp;rsquo;s legs. Kodi was pretty well supported on these things, it would cost nothing. Why not?&lt;/p&gt;
&lt;p&gt;First, I tried &lt;a href=&#34;http://www.xbian.org/&#34;&gt;Xbian&lt;/a&gt;. Xbian&amp;rsquo;s a Debian Linux distribution with a Kodi install baked in. I was shocked that &lt;em&gt;any&lt;/em&gt; video would play on a machine that size, but &lt;em&gt;absolutely everything&lt;/em&gt; started playing, and very smoothly. Super impressive. The Pi is a great little machine for media center duty.&lt;/p&gt;
&lt;p&gt;This was better than the Macbook &lt;em&gt;or&lt;/em&gt; the AppleTV for local media playback and it was inexpensive.&lt;/p&gt;
&lt;p&gt;Still, despite what it says on &lt;a href=&#34;http://www.xbian.org/&#34;&gt;their site&lt;/a&gt;, I found Xbian to not be as well maintained as I&amp;rsquo;d hoped. It worked pretty well, but it wasn&amp;rsquo;t without it&amp;rsquo;s flaws. It crashed the Pi once in a while, didn&amp;rsquo;t get updates, and was more fiddly than I&amp;rsquo;d hoped.&lt;/p&gt;
&lt;p&gt;Then, I tried &lt;a href=&#34;https://osmc.tv/&#34;&gt;OSMC&lt;/a&gt;. This is still Kodi running on a stripped down version of Debian Jessie. They&amp;rsquo;ve done a custom skin specifically for the Raspberry Pi, and it&amp;rsquo;s been tuned really well for the platform. Much lighter than the stock Kodi skin.&lt;/p&gt;
&lt;p&gt;Install process is super easy, you download an app, stick in a card, wait a while, and it&amp;rsquo;s ready to boot. This was a step above, I&amp;rsquo;ve got nothing but good things to say. It gets updated, it&amp;rsquo;s fast, smooth, silent, and it doesn&amp;rsquo;t require a transcoding server. Completely ideal. There&amp;rsquo;s even a tiny app store.&lt;/p&gt;
&lt;p&gt;This was the holy grail. It does everything well.&lt;/p&gt;
&lt;h5 id=&#34;how&#34;&gt;How?&lt;/h5&gt;
&lt;p&gt;How can you do this? You&amp;rsquo;ll need a few things.&lt;/p&gt;
&lt;p&gt;Power Supplies &lt;a href=&#34;http://www.amazon.com/CanaKit-Raspberry-Supply-Adapter-Charger/dp/B00GF9T3I0/ref=sr_1_2?ie=UTF8&amp;qid=1446761332&amp;sr=8-2&amp;keywords=raspberry+pi+power+supply&#34;&gt;Pi 1 ~ $8&lt;/a&gt;, &lt;a href=&#34;http://www.amazon.com/CanaKit-Raspberry-Supply-Adapter-Charger/dp/B00MARDJZ4/ref=sr_1_1?ie=UTF8&amp;qid=1446761121&amp;sr=8-1&amp;keywords=raspberry+pi+2+power+supply&#34;&gt;Pi 2 ~ $10&lt;/a&gt; CanaKit makes  good ones. Definitely purchase a purpose built power supply, these things like clean power at the correct amperage.&lt;/p&gt;
&lt;p&gt;(Non-Pi 2) &lt;a href=&#34;http://www.amazon.com/SanDisk-Memory-SDSDUN-032G-G46-Newest-Version/dp/B00M55BMBE/ref=sr_1_12?ie=UTF8&amp;qid=1442042051&amp;sr=8-12&amp;keywords=SD+card&#34;&gt;SD Card ~ $8&lt;/a&gt; More than 4GB, and preferably class 10. Standard SD format for Pi Model A - B+, MicroSD for Pi 2.
(Pi 2) &lt;a href=&#34;http://www.amazon.com/dp/B00IVPU7KE/ref=twister_B00IYOCEG2?_encoding=UTF8&amp;psc=1&#34;&gt;microSD card recommended here.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.adafruit.com/products/814&#34;&gt;Optional USB WiFi adapter ~ $11&lt;/a&gt; Not needed if you just use ethernet (probably faster anyway).&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.amazon.com/Raspberry-Pi-Model-Desktop-Linux/dp/B00T2U7R7I&#34;&gt;Raspberry Pi ~ $40&lt;/a&gt; Mine is older, this one is quad core!!&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.raspberrypi.com/mpeg-2-license-key/&#34;&gt;Codec Keys ~ $4&lt;/a&gt; This sounds really complicated, but it&amp;rsquo;s just a short text string. You&amp;rsquo;ll want this for hardware decoding.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.amazon.com/Official-Raspberry-Pi-Foundation-Model/dp/B00ZW4RKFM/ref=sr_1_3?s=pc&amp;ie=UTF8&amp;qid=1442042426&amp;sr=1-3&amp;keywords=raspberry+pi+case&#34;&gt;Case ~ $12&lt;/a&gt; This new one is from the Pi foundation, seems well done. Interesting reading on the design &lt;a href=&#34;https://www.raspberrypi.org/blog/raspberry-pi-official-case/&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.amazon.com/AmazonBasics-High-Speed-HDMI-Cable-Supports/dp/B00870ZHCQ/ref=sr_1_2?ie=UTF8&amp;qid=1442043195&amp;sr=8-2&amp;keywords=hdmi&#34;&gt;HDMI cable ~ $5&lt;/a&gt; - if you don&amp;rsquo;t have one already.&lt;/p&gt;
&lt;p&gt;Then a remote of some kind. I use my phone.
&lt;strong&gt;Android&lt;/strong&gt;: &lt;a href=&#34;https://play.google.com/store/apps/details?id=org.leetzone.android.yatsewidgetfree&amp;hl=en&#34;&gt;Yatse&lt;/a&gt; is super solid, nice looking and reliable.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;iOS&lt;/strong&gt;: &lt;a href=&#34;https://itunes.apple.com/us/app/official-kodi-remote/id520480364?mt=8&#34;&gt;Kodi Remote (official)&lt;/a&gt; is a solid option, looks great on iPad. Or &lt;a href=&#34;https://itunes.apple.com/us/app/sybu-for-kodi-and-xbmc/id567524653?mt=8&#34;&gt;Sybu&lt;/a&gt; is pretty good too.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Any other IR remote&lt;/strong&gt;: The USB &lt;a href=&#34;https://flirc.tv/&#34;&gt;Flirc adapter&lt;/a&gt; will receive IR and send keypresses to the Pi. Even that weird old stereo remote in your junk drawer.&lt;/p&gt;
&lt;p&gt;Total cost for everything above, $93, though not everything is required. You probably have some/all of this kicking around, if not, you&amp;rsquo;d be hard pressed to find a better and more flexible option. It will play any format you toss it&amp;rsquo;s way, it&amp;rsquo;s silent, easy to use and tiny.&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;ve got a large media library and keep coming up with crazy tech chains to play it all, this is a &lt;em&gt;fantastic&lt;/em&gt; way to reduce the computers involved.&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>The Vintage parts of the MTA</title>
      <link>https://qbunt.com/posts/the-vintage-parts-of-the-mta/</link>
      <pubDate>Thu, 30 Jul 2015 03:28:23 +0000</pubDate>
      
      <guid>https://qbunt.com/posts/the-vintage-parts-of-the-mta/</guid>
      <description>&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&#34; allowfullscreen=&#34;allowfullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/Mjx3S3UjmnA?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;
      &gt;&lt;/iframe&gt;
    &lt;/div&gt;

&lt;p&gt;There are some crazy things about this video and how the NYC subway system works. Huge swaths of infrastructure are over 80 years old. They use cloth-covered wire as the means of connection between critical pieces of switching equipment. Thankfully, they&amp;rsquo;re getting slowly upgraded, but it&amp;rsquo;s going to take many many years.&lt;/p&gt;</description>
      <content>

    
    &lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&#34; allowfullscreen=&#34;allowfullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/Mjx3S3UjmnA?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;
      &gt;&lt;/iframe&gt;
    &lt;/div&gt;

&lt;p&gt;There are some crazy things about this video and how the NYC subway system works. Huge swaths of infrastructure are over 80 years old. They use cloth-covered wire as the means of connection between critical pieces of switching equipment. Thankfully, they&amp;rsquo;re getting slowly upgraded, but it&amp;rsquo;s going to take many many years.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m amazed it still works, but it&amp;rsquo;s been working 24/7 for the last 80 years.&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>Volvo LifePaint</title>
      <link>https://qbunt.com/posts/volvo-lifepaint/</link>
      <pubDate>Wed, 01 Apr 2015 03:56:37 +0000</pubDate>
      
      <guid>https://qbunt.com/posts/volvo-lifepaint/</guid>
      <description>&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&#34; allowfullscreen=&#34;allowfullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/CfWzeGlaFvI?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;
      &gt;&lt;/iframe&gt;
    &lt;/div&gt;</description>
      <content>

    
    &lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&#34; allowfullscreen=&#34;allowfullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/CfWzeGlaFvI?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;
      &gt;&lt;/iframe&gt;
    &lt;/div&gt;

</content>
    </item>
    
    <item>
      <title>OnShape CAD</title>
      <link>https://qbunt.com/posts/onshape-cad/</link>
      <pubDate>Sun, 22 Mar 2015 15:18:38 +0000</pubDate>
      
      <guid>https://qbunt.com/posts/onshape-cad/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://www.onshape.com/&#34;&gt;OnShape&lt;/a&gt; is a brand new creation from the original team that built out SolidWorks. This is sort of a combination of the concepts that makes Google Docs great mated with a world class solids modeling package. We can finally do all of these things in the browser and run it on something as low power as a cell phone.&lt;/p&gt;
&lt;p&gt;With a tool like this and the proliferation of inexpensive 3D printers, it&amp;rsquo;s hard to see this as anything except a major game changer. Collaborating on the same 3D document in real time is something nobody&amp;rsquo;s done before. The most welcome thing to me is branching and merging within a solids file. Merging changes in larger 3D packages has always been a chore and collaboration on a document like this could not exist without seamless merges.&lt;/p&gt;</description>
      <content>&lt;p&gt;&lt;a href=&#34;http://www.onshape.com/&#34;&gt;OnShape&lt;/a&gt; is a brand new creation from the original team that built out SolidWorks. This is sort of a combination of the concepts that makes Google Docs great mated with a world class solids modeling package. We can finally do all of these things in the browser and run it on something as low power as a cell phone.&lt;/p&gt;
&lt;p&gt;With a tool like this and the proliferation of inexpensive 3D printers, it&amp;rsquo;s hard to see this as anything except a major game changer. Collaborating on the same 3D document in real time is something nobody&amp;rsquo;s done before. The most welcome thing to me is branching and merging within a solids file. Merging changes in larger 3D packages has always been a chore and collaboration on a document like this could not exist without seamless merges.&lt;/p&gt;
&lt;p&gt;I can&amp;rsquo;t tell you how many times a designer would start a feature, try to refine it, hate the results and revert to an earlier file. It&amp;rsquo;s insane to me that nobody has done this before with solids modeling.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve recently taken a dive into RC aircraft and I can&amp;rsquo;t wait to see someone use this to design frames, components, gimbals or anything else with this tool and then open it up for collaboration. The idea that I can fork someone&amp;rsquo;s hardware design, add a component or feature all in the browser is pretty unreal. Add a 3D printer and you have Github for hardware.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;CAD modeling on an iPad. We live in the damn future.&lt;/p&gt;
&lt;/blockquote&gt;
</content>
    </item>
    
    <item>
      <title>Smoked Themes for Alfred</title>
      <link>https://qbunt.com/posts/smoked-themes-for-alfred/</link>
      <pubDate>Mon, 02 Mar 2015 03:47:12 +0000</pubDate>
      
      <guid>https://qbunt.com/posts/smoked-themes-for-alfred/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;Smoked Day&#34; src=&#34;https://github.com/qbunt/smoked/raw/master/smoked_day.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;I have an infatuation with the &lt;a href=&#34;http://www.alfredapp.com/&#34;&gt;Alfred&lt;/a&gt; app. It hits so many of the nerd things that I love, last year I put a theme together for Alfred to fit along with the way I have my machine set up.&lt;/p&gt;
&lt;p&gt;Today, I&amp;rsquo;m updating my theme significantly, and adding a brand new light theme to the mix.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/qbunt/smoked&#34;&gt;I&amp;rsquo;ve put it up on Github&lt;/a&gt;, feel free to change it up. Enjoy!&lt;/p&gt;</description>
      <content>&lt;p&gt;&lt;img alt=&#34;Smoked Day&#34; src=&#34;https://github.com/qbunt/smoked/raw/master/smoked_day.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;I have an infatuation with the &lt;a href=&#34;http://www.alfredapp.com/&#34;&gt;Alfred&lt;/a&gt; app. It hits so many of the nerd things that I love, last year I put a theme together for Alfred to fit along with the way I have my machine set up.&lt;/p&gt;
&lt;p&gt;Today, I&amp;rsquo;m updating my theme significantly, and adding a brand new light theme to the mix.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/qbunt/smoked&#34;&gt;I&amp;rsquo;ve put it up on Github&lt;/a&gt;, feel free to change it up. Enjoy!&lt;/p&gt;
&lt;p&gt;&lt;!-- raw HTML omitted --&gt;Import light theme&lt;!-- raw HTML omitted --&gt;
&lt;!-- raw HTML omitted --&gt;Import dark theme&lt;!-- raw HTML omitted --&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/qbunt/smoked/archive/master.zip&#34;&gt;Download both&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;Smoked Night&#34; src=&#34;https://github.com/qbunt/smoked/raw/master/smoked_night.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve baked one more theme that&amp;rsquo;s a little different. &lt;!-- raw HTML omitted --&gt;Hope you enjoy!&lt;!-- raw HTML omitted --&gt;&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>Node.js moves out of Joyent&#39;s Control</title>
      <link>https://qbunt.com/posts/node-js-moves-out-of-joyents-control/</link>
      <pubDate>Wed, 11 Feb 2015 17:40:32 +0000</pubDate>
      
      <guid>https://qbunt.com/posts/node-js-moves-out-of-joyents-control/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://www.joyent.com/about/press/joyent-moves-to-establish-nodejs-foundation&#34;&gt;Great news from Joyent&lt;/a&gt; about Node.js moving to break off into an open source foundation. Presumably this is a reaction to key players in the Node community breaking off to write &lt;a href=&#34;https://iojs.org/en/index.html&#34;&gt;io.js&lt;/a&gt; and the impact that will have on the platform&amp;rsquo;s growth. What I find interesting about this news is the stakeholders involved in the foundation, who are definitely not a small community (WalMart, PayPal, LinkedIn, Microsoft and others).&lt;/p&gt;</description>
      <content>&lt;p&gt;&lt;a href=&#34;http://www.joyent.com/about/press/joyent-moves-to-establish-nodejs-foundation&#34;&gt;Great news from Joyent&lt;/a&gt; about Node.js moving to break off into an open source foundation. Presumably this is a reaction to key players in the Node community breaking off to write &lt;a href=&#34;https://iojs.org/en/index.html&#34;&gt;io.js&lt;/a&gt; and the impact that will have on the platform&amp;rsquo;s growth. What I find interesting about this news is the stakeholders involved in the foundation, who are definitely not a small community (WalMart, PayPal, LinkedIn, Microsoft and others).&lt;/p&gt;
&lt;p&gt;My hope for this effort is that development continues to move into a stable direction, and Node moves far away from the unsupported, basically deprecated version of V8 it&amp;rsquo;s currently running on. The worry is that with all the big names in the ring, development will stop dead. We&amp;rsquo;ll see what happens, in the meantime, hey there&amp;rsquo;s &lt;a href=&#34;https://iojs.org/en/index.html&#34;&gt;io.js&lt;/a&gt;.&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>USTwo Designs collection of watch faces</title>
      <link>https://qbunt.com/posts/ustwo-designs-collection-of-watch-faces/</link>
      <pubDate>Thu, 11 Dec 2014 00:20:58 +0000</pubDate>
      
      <guid>https://qbunt.com/posts/ustwo-designs-collection-of-watch-faces/</guid>
      <description>&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&#34; allowfullscreen=&#34;allowfullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/h5hpIEKoeBc?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;
      &gt;&lt;/iframe&gt;
    &lt;/div&gt;

&lt;p&gt;USTwo just designed 40 watch faces for the Android Wear system of wearable devices. Better yet, &lt;a href=&#34;http://wear.ustwo.com/#resources&#34;&gt;they open sourced a ton of the resources they used&lt;/a&gt;. Exciting news for wearable computing and interesting to see people gaining the ability to customize their watch faces.&lt;/p&gt;</description>
      <content>

    
    &lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&#34; allowfullscreen=&#34;allowfullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/h5hpIEKoeBc?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;
      &gt;&lt;/iframe&gt;
    &lt;/div&gt;

&lt;p&gt;USTwo just designed 40 watch faces for the Android Wear system of wearable devices. Better yet, &lt;a href=&#34;http://wear.ustwo.com/#resources&#34;&gt;they open sourced a ton of the resources they used&lt;/a&gt;. Exciting news for wearable computing and interesting to see people gaining the ability to customize their watch faces.&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>Simple Unix permissions explanation</title>
      <link>https://qbunt.com/posts/simple-unix-permissions-explanation/</link>
      <pubDate>Thu, 11 Dec 2014 00:16:28 +0000</pubDate>
      
      <guid>https://qbunt.com/posts/simple-unix-permissions-explanation/</guid>
      <description>&lt;!-- raw HTML omitted --&gt;
&lt;p&gt;From an &lt;a href=&#34;https://speakerdeck.com/62gerente/bash-introduction?slide=28&#34;&gt;excellent presentation on Bash&lt;/a&gt;, a clear explanation of a complex concept in Unix. Permissions don&amp;rsquo;t have to be complicated.&lt;/p&gt;</description>
      <content>&lt;!-- raw HTML omitted --&gt;
&lt;p&gt;From an &lt;a href=&#34;https://speakerdeck.com/62gerente/bash-introduction?slide=28&#34;&gt;excellent presentation on Bash&lt;/a&gt;, a clear explanation of a complex concept in Unix. Permissions don&amp;rsquo;t have to be complicated.&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>Handy SSH config</title>
      <link>https://qbunt.com/posts/handy-ssh-config/</link>
      <pubDate>Wed, 19 Nov 2014 19:46:17 +0000</pubDate>
      
      <guid>https://qbunt.com/posts/handy-ssh-config/</guid>
      <description>&lt;p&gt;When you going into multiple servers at once, it can be handy to have a little leeway when you use password authentication. Let&amp;rsquo;s say you&amp;rsquo;re SSHing into one box, then another, then back to the first box.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;d be really nice not to have to paste that first password in again, wouldn&amp;rsquo;t it?&lt;/p&gt;
&lt;p&gt;From my buddy &lt;a href=&#34;http://fivesevenfive.org&#34;&gt;Phil&lt;/a&gt;, he&amp;rsquo;s got a handy SSH config that will recycle the first authenticated session when you try to connect again.&lt;/p&gt;</description>
      <content>&lt;p&gt;When you going into multiple servers at once, it can be handy to have a little leeway when you use password authentication. Let&amp;rsquo;s say you&amp;rsquo;re SSHing into one box, then another, then back to the first box.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;d be really nice not to have to paste that first password in again, wouldn&amp;rsquo;t it?&lt;/p&gt;
&lt;p&gt;From my buddy &lt;a href=&#34;http://fivesevenfive.org&#34;&gt;Phil&lt;/a&gt;, he&amp;rsquo;s got a handy SSH config that will recycle the first authenticated session when you try to connect again.&lt;/p&gt;
&lt;p&gt;Add this to your ~/.ssh/config file&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Host *
ForwardAgent yes
ControlMaster auto
ControlPath /tmp/ssh-cm-socket-%r@%h:%p
ControlPersist 86400
&lt;/code&gt;&lt;/pre&gt;
</content>
    </item>
    
    <item>
      <title>Dropping things in a vacuum</title>
      <link>https://qbunt.com/posts/dropping-things-in-a-vacuum/</link>
      <pubDate>Thu, 06 Nov 2014 18:41:21 +0000</pubDate>
      
      <guid>https://qbunt.com/posts/dropping-things-in-a-vacuum/</guid>
      <description>&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&#34; allowfullscreen=&#34;allowfullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/E43-CfukEgs?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;
      &gt;&lt;/iframe&gt;
    &lt;/div&gt;</description>
      <content>

    
    &lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&#34; allowfullscreen=&#34;allowfullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/E43-CfukEgs?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;
      &gt;&lt;/iframe&gt;
    &lt;/div&gt;

</content>
    </item>
    
    <item>
      <title>Smoked Alfred Theme</title>
      <link>https://qbunt.com/posts/smoked-alfred-theme/</link>
      <pubDate>Mon, 03 Nov 2014 18:12:49 +0000</pubDate>
      
      <guid>https://qbunt.com/posts/smoked-alfred-theme/</guid>
      <description>&lt;p&gt;UPDATE: &lt;strong&gt;There&amp;rsquo;s a new version &lt;a href=&#34;http://qbunt.com/smoked-themes-for-alfred/&#34;&gt;here&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://github.com/qbunt/smoked/raw/master/smoked_night.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;Just going to leave this right here.
&lt;a href=&#34;https://github.com/qbunt/smoked/archive/master.zip&#34;&gt;Download&lt;/a&gt;&lt;/p&gt;</description>
      <content>&lt;p&gt;UPDATE: &lt;strong&gt;There&amp;rsquo;s a new version &lt;a href=&#34;http://qbunt.com/smoked-themes-for-alfred/&#34;&gt;here&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://github.com/qbunt/smoked/raw/master/smoked_night.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;Just going to leave this right here.
&lt;a href=&#34;https://github.com/qbunt/smoked/archive/master.zip&#34;&gt;Download&lt;/a&gt;&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>Happy Friday</title>
      <link>https://qbunt.com/posts/happy-friday/</link>
      <pubDate>Sat, 25 Oct 2014 00:26:36 +0000</pubDate>
      
      <guid>https://qbunt.com/posts/happy-friday/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://qbunt.com/img/2014/Oct/pl4y8us.gif&#34;&gt;&lt;/p&gt;</description>
      <content>&lt;p&gt;&lt;img src=&#34;https://qbunt.com/img/2014/Oct/pl4y8us.gif&#34;&gt;&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>Mikey Dickerson on Healthcare.gov</title>
      <link>https://qbunt.com/posts/mikey-dickerson-on-healthcare-gov/</link>
      <pubDate>Wed, 01 Oct 2014 20:29:25 +0000</pubDate>
      
      <guid>https://qbunt.com/posts/mikey-dickerson-on-healthcare-gov/</guid>
      <description>&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&#34; allowfullscreen=&#34;allowfullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/7Vc8sxhy2I4?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;
      &gt;&lt;/iframe&gt;
    &lt;/div&gt;

&lt;p&gt;Enlightening to hear a candid story on what the hell happened with the largest web launch blunder certainly in my time.&lt;/p&gt;</description>
      <content>

    
    &lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&#34; allowfullscreen=&#34;allowfullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/7Vc8sxhy2I4?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;
      &gt;&lt;/iframe&gt;
    &lt;/div&gt;

&lt;p&gt;Enlightening to hear a candid story on what the hell happened with the largest web launch blunder certainly in my time.&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>Apple Fitness design &#39;borrowed&#39; from old Flash screensaver</title>
      <link>https://qbunt.com/posts/apple-fitness-design-borrowed-from-old-flash-screensaver/</link>
      <pubDate>Fri, 12 Sep 2014 06:02:09 +0000</pubDate>
      
      <guid>https://qbunt.com/posts/apple-fitness-design-borrowed-from-old-flash-screensaver/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://qbunt.com/img/2014/Sep/widget.jpg&#34;&gt;
&lt;a href=&#34;http://blog.pixelbreaker.com/polarclock&#34;&gt;PolarClock&lt;/a&gt; &lt;em&gt;circa 2008&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Built in Flash as a screensaver, an OS X Widget and apparently adapted to the iPhone. It was a free screensaver that I loved for many years. It&amp;rsquo;s a great design.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Not that PolarClock owns this shape, but this Apple Fitness design  feels like a ripoff. Even the &lt;em&gt;colors&lt;/em&gt; are similar.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://qbunt.com/img/2014/Sep/Screenshot-2014-09-11-22-47-37.png&#34;&gt;&lt;/p&gt;</description>
      <content>&lt;p&gt;&lt;img src=&#34;https://qbunt.com/img/2014/Sep/widget.jpg&#34;&gt;
&lt;a href=&#34;http://blog.pixelbreaker.com/polarclock&#34;&gt;PolarClock&lt;/a&gt; &lt;em&gt;circa 2008&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Built in Flash as a screensaver, an OS X Widget and apparently adapted to the iPhone. It was a free screensaver that I loved for many years. It&amp;rsquo;s a great design.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Not that PolarClock owns this shape, but this Apple Fitness design  feels like a ripoff. Even the &lt;em&gt;colors&lt;/em&gt; are similar.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://qbunt.com/img/2014/Sep/Screenshot-2014-09-11-22-47-37.png&#34;&gt;&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>Apple&#39;s half complete responsive design</title>
      <link>https://qbunt.com/posts/apples-half-complete-responsive-design/</link>
      <pubDate>Wed, 10 Sep 2014 15:05:54 +0000</pubDate>
      
      <guid>https://qbunt.com/posts/apples-half-complete-responsive-design/</guid>
      <description>&lt;p&gt;Not that Apple hasn&amp;rsquo;t made enough news this week, but this is far too disappointing to let go. Yesterday, along with the watch and the iPhone 6 announcment, Apple has made their website responsive (part of it anyway). What appears now is a totally broken design for many of their pages. Not small pages either. Clearly they thought about the product pages for the iPhone and the watch and just said &amp;ldquo;eh, that seems good&amp;rdquo;.&lt;/p&gt;</description>
      <content>&lt;p&gt;Not that Apple hasn&amp;rsquo;t made enough news this week, but this is far too disappointing to let go. Yesterday, along with the watch and the iPhone 6 announcment, Apple has made their website responsive (part of it anyway). What appears now is a totally broken design for many of their pages. Not small pages either. Clearly they thought about the product pages for the iPhone and the watch and just said &amp;ldquo;eh, that seems good&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;I hope the watch is more complete than this &lt;strong&gt;half ass web design&lt;/strong&gt; when it comes out next year.&lt;/p&gt;
&lt;p&gt;These are screenshots taken on an Android phone.&lt;/p&gt;

&lt;img src=&#34;https://qbunt.com/img/2014/Sep/Screenshot_2014-09-10-08-15-26-1.png&#34;  class=&#34;center&#34;  style=&#34;border-radius: 8px;&#34;    /&gt;



&lt;img src=&#34;https://qbunt.com/img/2014/Sep/Screenshot_2014-09-09-21-29-54-1.png&#34;  class=&#34;center&#34;  style=&#34;border-radius: 8px;&#34;    /&gt;



&lt;img src=&#34;https://qbunt.com/img/2014/Sep/Screenshot_2014-09-09-21-47-42-1.png&#34;  class=&#34;center&#34;  style=&#34;border-radius: 8px;&#34;    /&gt;


</content>
    </item>
    
    <item>
      <title>Chrome Extensions for winners</title>
      <link>https://qbunt.com/posts/chrome-extensions-for-winners/</link>
      <pubDate>Sat, 09 Aug 2014 16:28:12 +0000</pubDate>
      
      <guid>https://qbunt.com/posts/chrome-extensions-for-winners/</guid>
      <description>&lt;p&gt;In the same vein as &lt;a href=&#34;http://qbunt.com/the-toolbox/&#34;&gt;the toolbox post&lt;/a&gt; I put up in March, I wanted to post a list of my most-used Chrome extensions.&lt;/p&gt;
&lt;p&gt;I don&amp;rsquo;t use many Chrome extensions, but there are a few that I completely rely on every day. I get asked occasionally what these are and if I could share the links to some of these things, so here&amp;rsquo;s a list of the best ones.&lt;/p&gt;</description>
      <content>&lt;p&gt;In the same vein as &lt;a href=&#34;http://qbunt.com/the-toolbox/&#34;&gt;the toolbox post&lt;/a&gt; I put up in March, I wanted to post a list of my most-used Chrome extensions.&lt;/p&gt;
&lt;p&gt;I don&amp;rsquo;t use many Chrome extensions, but there are a few that I completely rely on every day. I get asked occasionally what these are and if I could share the links to some of these things, so here&amp;rsquo;s a list of the best ones.&lt;/p&gt;
&lt;h2 id=&#34;pushbullethttpschromegooglecomwebstoredetailpushbulletchlffgpmiacpedhhbkiomidkjlcfhogdhlen&#34;&gt;&lt;a href=&#34;https://chrome.google.com/webstore/detail/pushbullet/chlffgpmiacpedhhbkiomidkjlcfhogd?hl=en&#34;&gt;Pushbullet&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Allows for Android push notification mirroring on Chrome. Great for those things that don&amp;rsquo;t have a web UI. You can even reply to text messages, it&amp;rsquo;s like your computer just turns into your phone when you&amp;rsquo;re using it. Totally great.&lt;/p&gt;
&lt;p&gt;Indispensable for caller ID when your phone is on the desk and silent.&lt;/p&gt;
&lt;h2 id=&#34;full-page-screen-capturehttpschromegooglecomwebstoredetailfull-page-screen-capturefdpohaocaechififmbbbbbknoalclacl&#34;&gt;&lt;a href=&#34;https://chrome.google.com/webstore/detail/full-page-screen-capture/fdpohaocaechififmbbbbbknoalclacl&#34;&gt;Full Page Screen Capture&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Instead of using a standalone app, this actually captures the browser page you&amp;rsquo;re looking at, saving it as an image. Fantastic for archiving work.&lt;/p&gt;
&lt;h2 id=&#34;pagespeed-insightshttpschromegooglecomwebstoredetailpagespeed-insights-by-googplegfbjlmmehdoakndmohflojccoclihlen&#34;&gt;&lt;a href=&#34;https://chrome.google.com/webstore/detail/pagespeed-insights-by-goo/gplegfbjlmmehdoakndmohflojccocli?hl=en&#34;&gt;PageSpeed Insights&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Easily optimize your sites with PageSpeed Insights in Chrome. Faster is always better.&lt;/p&gt;
&lt;h2 id=&#34;clearcachehttpschromegooglecomwebstoredetailclear-cachecppjkneekbjaeellbfkmgnhonkkjfpdnhlen&#34;&gt;&lt;a href=&#34;https://chrome.google.com/webstore/detail/clear-cache/cppjkneekbjaeellbfkmgnhonkkjfpdn?hl=en&#34;&gt;ClearCache&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;One click cache clearing, no more menu digging.&lt;/p&gt;
&lt;h2 id=&#34;google-voicehttpschromegooglecomwebstoredetailgoogle-voice-by-googlekcnhkahnjcbndmmehfkdnkjomaanaooohlen&#34;&gt;&lt;a href=&#34;https://chrome.google.com/webstore/detail/google-voice-by-google/kcnhkahnjcbndmmehfkdnkjomaanaooo?hl=en&#34;&gt;Google Voice&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Listen to voicemail and respond to text messages received on your Google Voice number.&lt;/p&gt;
&lt;h2 id=&#34;postmanhttpschromegooglecomwebstoredetailpostman-rest-clientfdmmgilgnpjigdojojpjoooidkmcomcmhlen&#34;&gt;&lt;a href=&#34;https://chrome.google.com/webstore/detail/postman-rest-client/fdmmgilgnpjigdojojpjoooidkmcomcm?hl=en&#34;&gt;Postman&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Full REST console in Chrome. Great for testing out brand new API endpoints or just making sure your thing isn&amp;rsquo;t broken.&lt;/p&gt;
&lt;h2 id=&#34;googl-shortenerhttpschromegooglecomwebstoredetailgoogl-url-shorteneriblijlcdoidgdpfknkckljiocdbnlagkhlen&#34;&gt;&lt;a href=&#34;https://chrome.google.com/webstore/detail/googl-url-shortener/iblijlcdoidgdpfknkckljiocdbnlagk?hl=en&#34;&gt;Goo.gl shortener&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Long URLs are annoying. Put these in emails instead.&lt;/p&gt;
&lt;h2 id=&#34;jsonviewhttpschromegooglecomwebstoredetailjsonviewchklaanhfefbnpoihckbnefhakgolnmchlen&#34;&gt;&lt;a href=&#34;https://chrome.google.com/webstore/detail/jsonview/chklaanhfefbnpoihckbnefhakgolnmc?hl=en&#34;&gt;JSONView&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;This will organize JSON responses automagically, so you don&amp;rsquo;t have to look at it all compressed&amp;hellip;like an animal.&lt;/p&gt;
&lt;h2 id=&#34;swayfmhttpschromegooglecomwebstoredetailswayfm-unified-music-mediicckhjgjjompfgoiidainoapgjepncej&#34;&gt;&lt;a href=&#34;https://chrome.google.com/webstore/detail/swayfm-unified-music-medi/icckhjgjjompfgoiidainoapgjepncej&#34;&gt;Sway.fm&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;This thing is awesome. If you have a Mac, this will connect your media keys (play, pause, fwd &amp;amp; back) to your internet radio AND YouTube. If you have Pandora playing in some tab somewhere, you can pause it even with Chrome in the background.&lt;/p&gt;
&lt;h2 id=&#34;uberconferencehttpschromegooglecomwebstoredetailuberconference-extensionnpakjcgebghlhfgcmcoehmehicdhcjbbhlen&#34;&gt;&lt;a href=&#34;https://chrome.google.com/webstore/detail/uberconference-extension/npakjcgebghlhfgcmcoehmehicdhcjbb?hl=en&#34;&gt;UberConference&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Uberconference is a great, free, phone conference bridge. This thing will allow you to schedule conferences, setup new ones and notify everyone via text. Also, no PIN codes on Uberconference, auth is via the phone number.&lt;/p&gt;
&lt;h2 id=&#34;chrome-remote-desktophttpschromegooglecomwebstoredetailchrome-remote-desktopgbchcmhmhahfdphkhkmpfmihenigjmpp&#34;&gt;&lt;a href=&#34;https://chrome.google.com/webstore/detail/chrome-remote-desktop/gbchcmhmhahfdphkhkmpfmihenigjmpp&#34;&gt;Chrome Remote Desktop&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Full remote desktop to any machine you own or have access to in the browser. This makes &lt;em&gt;GoToMyPC&lt;/em&gt; seem like silly joke.&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>70 Years of Chevy type design</title>
      <link>https://qbunt.com/posts/70-years-of-chevy-dashboard-design/</link>
      <pubDate>Sat, 09 Aug 2014 04:56:29 +0000</pubDate>
      
      <guid>https://qbunt.com/posts/70-years-of-chevy-dashboard-design/</guid>
      <description>&lt;img src=&#34;https://qbunt.com/img/2014/Aug/chevrolet-1970-chevy-nova-speedometer.jpg&#34;  alt=&#34;Image of a vintage speedometer&#34;  class=&#34;left&#34;  style=&#34;border-radius: 8px;&#34;    /&gt;


&lt;p&gt;Very easy to get lost in &lt;strong&gt;&lt;a href=&#34;http://annyas.com/chevrolet-speedometer-design/&#34;&gt;this totally amazing compilation of type&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;</description>
      <content>
&lt;img src=&#34;https://qbunt.com/img/2014/Aug/chevrolet-1970-chevy-nova-speedometer.jpg&#34;  alt=&#34;Image of a vintage speedometer&#34;  class=&#34;left&#34;  style=&#34;border-radius: 8px;&#34;    /&gt;


&lt;p&gt;Very easy to get lost in &lt;strong&gt;&lt;a href=&#34;http://annyas.com/chevrolet-speedometer-design/&#34;&gt;this totally amazing compilation of type&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>Terry Gilliam&#39;s Monty Python Animation Secrets</title>
      <link>https://qbunt.com/posts/terry-gilliams-monty-python-animation-secrets/</link>
      <pubDate>Sat, 09 Aug 2014 04:50:16 +0000</pubDate>
      
      <guid>https://qbunt.com/posts/terry-gilliams-monty-python-animation-secrets/</guid>
      <description>&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&#34; allowfullscreen=&#34;allowfullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/xs7WaL44_Iw?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;
      &gt;&lt;/iframe&gt;
    &lt;/div&gt;

&lt;p&gt;Before computer animation and Pixar, there was this. Sheer creative genius.&lt;/p&gt;</description>
      <content>

    
    &lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&#34; allowfullscreen=&#34;allowfullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/xs7WaL44_Iw?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;
      &gt;&lt;/iframe&gt;
    &lt;/div&gt;

&lt;p&gt;Before computer animation and Pixar, there was this. Sheer creative genius.&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>Egghead.io</title>
      <link>https://qbunt.com/posts/egghead-io/</link>
      <pubDate>Sat, 09 Aug 2014 04:48:05 +0000</pubDate>
      
      <guid>https://qbunt.com/posts/egghead-io/</guid>
      <description>&lt;p&gt;If you&amp;rsquo;re checking out &lt;a href=&#34;http://angularjs.org/&#34;&gt;Google&amp;rsquo;s Angular&lt;/a&gt;, I highly recommend John Lindquist&amp;rsquo;s &lt;a href=&#34;http://egghead.io/lessons&#34;&gt;Egghead.io&lt;/a&gt; for learning the framework quickly and with lots of insight.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://angularjs.org/&#34;&gt;Angular&lt;/a&gt; is a super powerful framework and seems to be the way things are heading for building scalable large JS apps. If you&amp;rsquo;re building out a
larger client side app, it&amp;rsquo;s worth a look.&lt;/p&gt;</description>
      <content>&lt;p&gt;If you&amp;rsquo;re checking out &lt;a href=&#34;http://angularjs.org/&#34;&gt;Google&amp;rsquo;s Angular&lt;/a&gt;, I highly recommend John Lindquist&amp;rsquo;s &lt;a href=&#34;http://egghead.io/lessons&#34;&gt;Egghead.io&lt;/a&gt; for learning the framework quickly and with lots of insight.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://angularjs.org/&#34;&gt;Angular&lt;/a&gt; is a super powerful framework and seems to be the way things are heading for building scalable large JS apps. If you&amp;rsquo;re building out a
larger client side app, it&amp;rsquo;s worth a look.&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>John Cleese on Creativity</title>
      <link>https://qbunt.com/posts/john-cleese-on-creativity/</link>
      <pubDate>Sat, 09 Aug 2014 04:24:08 +0000</pubDate>
      
      <guid>https://qbunt.com/posts/john-cleese-on-creativity/</guid>
      <description>&lt;p&gt;&lt;strong&gt;update 9/4/14&lt;/strong&gt;&lt;br&gt;
This fantastic video doesn&amp;rsquo;t seem to play anymore due to a takedown request. So much for inspiration.


    
    &lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&#34; allowfullscreen=&#34;allowfullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/tmY4-RMB0YY?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;
      &gt;&lt;/iframe&gt;
    &lt;/div&gt;
&lt;/p&gt;</description>
      <content>&lt;p&gt;&lt;strong&gt;update 9/4/14&lt;/strong&gt;&lt;br&gt;
This fantastic video doesn&amp;rsquo;t seem to play anymore due to a takedown request. So much for inspiration.


    
    &lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&#34; allowfullscreen=&#34;allowfullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/tmY4-RMB0YY?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;
      &gt;&lt;/iframe&gt;
    &lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;I posted this a while ago, but I can&amp;rsquo;t help but put it up again. Worth the long watch.&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>Nomos factory</title>
      <link>https://qbunt.com/posts/nomos-factory/</link>
      <pubDate>Mon, 28 Apr 2014 20:27:49 +0000</pubDate>
      
      <guid>https://qbunt.com/posts/nomos-factory/</guid>
      <description>&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&#34; allowfullscreen=&#34;allowfullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/UwpP_s8LV_Y?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;
      &gt;&lt;/iframe&gt;
    &lt;/div&gt;

&lt;p&gt;I love a good &amp;lsquo;how it&amp;rsquo;s made&amp;rsquo; video, and I love watches too. Nice combination of high-tech and handcraft.&lt;/p&gt;</description>
      <content>

    
    &lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&#34; allowfullscreen=&#34;allowfullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/UwpP_s8LV_Y?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;
      &gt;&lt;/iframe&gt;
    &lt;/div&gt;

&lt;p&gt;I love a good &amp;lsquo;how it&amp;rsquo;s made&amp;rsquo; video, and I love watches too. Nice combination of high-tech and handcraft.&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>Skillz</title>
      <link>https://qbunt.com/posts/skillz/</link>
      <pubDate>Thu, 03 Apr 2014 17:01:25 +0000</pubDate>
      
      <guid>https://qbunt.com/posts/skillz/</guid>
      <description>&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
  &lt;iframe src=&#34;https://player.vimeo.com/video/36167291&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;vimeo video&#34; webkitallowfullscreen mozallowfullscreen allowfullscreen&gt;&lt;/iframe&gt;
&lt;/div&gt;</description>
      <content>
&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
  &lt;iframe src=&#34;https://player.vimeo.com/video/36167291&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;vimeo video&#34; webkitallowfullscreen mozallowfullscreen allowfullscreen&gt;&lt;/iframe&gt;
&lt;/div&gt;

</content>
    </item>
    
    <item>
      <title>Burning man by drone</title>
      <link>https://qbunt.com/posts/burning-man-by-drone/</link>
      <pubDate>Sun, 30 Mar 2014 05:46:36 +0000</pubDate>
      
      <guid>https://qbunt.com/posts/burning-man-by-drone/</guid>
      <description>&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&#34; allowfullscreen=&#34;allowfullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/woOHbbaj6fM?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;
      &gt;&lt;/iframe&gt;
    &lt;/div&gt;</description>
      <content>

    
    &lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&#34; allowfullscreen=&#34;allowfullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/woOHbbaj6fM?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;
      &gt;&lt;/iframe&gt;
    &lt;/div&gt;

</content>
    </item>
    
    <item>
      <title>15 Year old wows MIT Media Lab</title>
      <link>https://qbunt.com/posts/15-year-old-wows-mit-media-lab/</link>
      <pubDate>Wed, 12 Mar 2014 23:59:35 +0000</pubDate>
      
      <guid>https://qbunt.com/posts/15-year-old-wows-mit-media-lab/</guid>
      <description>&lt;h2 id=&#34;hahahugoshortcode12s0hbhb&#34;&gt;

    
    &lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&#34; allowfullscreen=&#34;allowfullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/XOLOLrUBRBY?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;
      &gt;&lt;/iframe&gt;
    &lt;/div&gt;
&lt;/h2&gt;
&lt;p&gt;Completely inspiring.&lt;/p&gt;</description>
      <content>&lt;h2 id=&#34;hahahugoshortcode12s0hbhb&#34;&gt;

    
    &lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&#34; allowfullscreen=&#34;allowfullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/XOLOLrUBRBY?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;
      &gt;&lt;/iframe&gt;
    &lt;/div&gt;
&lt;/h2&gt;
&lt;p&gt;Completely inspiring.&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>Smoked theme for Alfred</title>
      <link>https://qbunt.com/posts/smoked-theme-for-alfred/</link>
      <pubDate>Wed, 12 Mar 2014 05:38:16 +0000</pubDate>
      
      <guid>https://qbunt.com/posts/smoked-theme-for-alfred/</guid>
      <description>&lt;img src=&#34;https://raw.github.com/qbunt/smoked/master/smoked_screenshot.png&#34;  alt=&#34;Smoked Theme&#34;  class=&#34;center&#34;  style=&#34;border-radius: 8px;&#34;    /&gt;


&lt;p&gt;I baked up a little theme for the &lt;a href=&#34;http://www.alfredapp.com/&#34;&gt;Alfred App&lt;/a&gt; and put it up on &lt;a href=&#34;https://github.com/qbunt/smoked&#34;&gt;Github&lt;/a&gt; for download. Let me know what you think.&lt;/p&gt;</description>
      <content>
&lt;img src=&#34;https://raw.github.com/qbunt/smoked/master/smoked_screenshot.png&#34;  alt=&#34;Smoked Theme&#34;  class=&#34;center&#34;  style=&#34;border-radius: 8px;&#34;    /&gt;


&lt;p&gt;I baked up a little theme for the &lt;a href=&#34;http://www.alfredapp.com/&#34;&gt;Alfred App&lt;/a&gt; and put it up on &lt;a href=&#34;https://github.com/qbunt/smoked&#34;&gt;Github&lt;/a&gt; for download. Let me know what you think.&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>Netflix is taking over the world.</title>
      <link>https://qbunt.com/posts/netflix-is-taking-over-the-world/</link>
      <pubDate>Thu, 06 Mar 2014 20:03:48 +0000</pubDate>
      
      <guid>https://qbunt.com/posts/netflix-is-taking-over-the-world/</guid>
      <description>&lt;h2 id=&#34;hahahugoshortcode32s0hbhb&#34;&gt;

    
    &lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&#34; allowfullscreen=&#34;allowfullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/P0ukYf_xvgc?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;
      &gt;&lt;/iframe&gt;
    &lt;/div&gt;
&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;m glad Netflix is taking a stand against the old model of pilot seasons and old-school television executives. It&amp;rsquo;s time they have some competition and models are challenged. Time to seize the moment.&lt;/p&gt;</description>
      <content>&lt;h2 id=&#34;hahahugoshortcode32s0hbhb&#34;&gt;

    
    &lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&#34; allowfullscreen=&#34;allowfullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/P0ukYf_xvgc?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;
      &gt;&lt;/iframe&gt;
    &lt;/div&gt;
&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;m glad Netflix is taking a stand against the old model of pilot seasons and old-school television executives. It&amp;rsquo;s time they have some competition and models are challenged. Time to seize the moment.&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>The Toolbox</title>
      <link>https://qbunt.com/posts/the-toolbox/</link>
      <pubDate>Thu, 06 Mar 2014 20:00:00 +0000</pubDate>
      
      <guid>https://qbunt.com/posts/the-toolbox/</guid>
      <description>&lt;p&gt;This is a list of the things I use literally every single day, and that I would be lost without. Like a blacksmith has hammers, I&amp;rsquo;ve got these things. A lot of them are free, and some of them are not. In total, this represents less than $200 of software.&lt;/p&gt;
&lt;p&gt;For significantly improving your quality of life, that&amp;rsquo;s a completely acceptable cost to me, especially because I make my living with this stuff.&lt;/p&gt;</description>
      <content>&lt;p&gt;This is a list of the things I use literally every single day, and that I would be lost without. Like a blacksmith has hammers, I&amp;rsquo;ve got these things. A lot of them are free, and some of them are not. In total, this represents less than $200 of software.&lt;/p&gt;
&lt;p&gt;For significantly improving your quality of life, that&amp;rsquo;s a completely acceptable cost to me, especially because I make my living with this stuff.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ll do an Android version of this list at some point. It&amp;rsquo;ll be similar tools, albeit without the code editors.&lt;/p&gt;
&lt;p&gt;##Webstorm
Webstorm has solidified it&amp;rsquo;s place in my permanent setup when I saw this video by &lt;a href=&#34;https://egghead.io/&#34;&gt;John Lindquist&lt;/a&gt;. It shows what you can do when you combine live editing in the browser, insane refactoring tools and a far more powerful platform (with real autocomplete) than SublimeText.&lt;/p&gt;


    
    &lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&#34; allowfullscreen=&#34;allowfullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/sa4jP9NJCeE?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;
      &gt;&lt;/iframe&gt;
    &lt;/div&gt;

&lt;p&gt;In my mind there&amp;rsquo;s nothing that does as much as Webstorm, as well as Webstorm does it. Nothing holds a candle to it. Yes it takes a while to start, excellence takes time. Extremely worth checking out.&lt;/p&gt;
&lt;p&gt;~$50 &lt;a href=&#34;http://www.jetbrains.com/webstorm/&#34;&gt;Webstorm&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;##Alfred
&lt;img src=&#34;https://github.com/qbunt/smoked/raw/master/smoked_screenshot.png&#34;&gt;
&lt;a href=&#34;https://github.com/qbunt/smoked&#34;&gt;my alfred theme&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Though it&amp;rsquo;s not directly related to dev (until you add &lt;a href=&#34;http://wemakeawesomesh.it/alfred-dev-doctor/&#34;&gt;this&lt;/a&gt;), it&amp;rsquo;s a killer way to get a ton of stuff done extremely quickly. You can grab stock prices, check the weather, quickly search for gifs, use it as a quick calculator, the list goes on and on.&lt;/p&gt;
&lt;p&gt;There&amp;rsquo;s a huge list of things you can add to Alfred, that&amp;rsquo;s a never ending, &lt;a href=&#34;http://www.alfredforum.com/forum/3-share-your-workflows/&#34;&gt;constantly evolving list&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;~$25 &lt;a href=&#34;http://www.alfredapp.com/powerpack/&#34;&gt;Alfred&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;##Dev Doctor
Works directly with Alfred to get you documentation as soon as you can type it. Totally worth the few second install and the price.&lt;/p&gt;
&lt;p&gt;~$0 &lt;a href=&#34;http://wemakeawesomesh.it/alfred-dev-doctor/&#34;&gt;Dev Doctor&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;spectacle&#34;&gt;Spectacle&lt;/h2&gt;
&lt;p&gt;Moves windows around, it&amp;rsquo;s free, it&amp;rsquo;s simple, never had a problem with it. It gets installed immediately with any new OS X install. Lots of key commands.&lt;/p&gt;
&lt;p&gt;~$0 &lt;a href=&#34;http://spectacleapp.com/&#34;&gt;Spectacle&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;virtualbox&#34;&gt;VirtualBox&lt;/h2&gt;
&lt;p&gt;Not that I like testing for cross-browser issues, it does help to have a couple more OSs on your machine to try stuff out in. Microsoft has helpfully posted a &lt;a href=&#34;http://www.modern.ie/en-us/virtualization-tools#downloads&#34;&gt;bunch of images&lt;/a&gt; of Windows for free just for testing. When you pair VirtualBox with the unbelievably good &lt;a href=&#34;http://www.vagrantup.com/&#34;&gt;Vagrant&lt;/a&gt; and as &lt;a href=&#34;http://www.vagrantbox.es/&#34;&gt;many distros of Linux as you could ever possibly need&lt;/a&gt;, it&amp;rsquo;s a killer combo that you can test &lt;strong&gt;anything&lt;/strong&gt; in. Can&amp;rsquo;t beat free.&lt;/p&gt;
&lt;p&gt;~$0 &lt;a href=&#34;https://www.virtualbox.org/wiki/Downloads&#34;&gt;VirtualBox&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;homebrew&#34;&gt;Homebrew&lt;/h2&gt;
&lt;p&gt;When you have to use the command line, and there should be a package manager that installs/uninstalls stuff. Do you really want to install Git, Node, FFMPEG or anything else manually like some sort of rube? Well worth your time installing Homebrew.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;ruby -e &amp;quot;$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)&amp;quot;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Then installing ffmpeg goes like this:
&lt;code&gt;brew install ffmpeg&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;~$0 &lt;a href=&#34;http://brew.sh/&#34;&gt;Homebrew&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;wunderlist&#34;&gt;Wunderlist&lt;/h2&gt;
&lt;p&gt;If you&amp;rsquo;re a human, you have some things that you need to do. They probably belong in some sort of list (outside of your bug tracker). Put those things here. Also, plays nice with Alfred.&lt;/p&gt;
&lt;p&gt;~$0 &lt;a href=&#34;https://www.wunderlist.com/en/&#34;&gt;Wunderlist&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;compasssass&#34;&gt;Compass/Sass&lt;/h2&gt;
&lt;p&gt;Compass has taken the annoyance of writing regular CSS and made it actually enjoyable. There&amp;rsquo;s a ton of things inside that that make it well worth the relatively gentle learning curve and once you&amp;rsquo;ve got a solid way to do live-updating, there&amp;rsquo;s no lag in between what you&amp;rsquo;re developing and what you&amp;rsquo;re seeing in the browser. Also worth looking at is &lt;a href=&#34;http://bourbon.io/&#34;&gt;Bourbon&lt;/a&gt;, a really great mixin library for Sass. I&amp;rsquo;ve also used LESS, I definitely like Sass a lot more.&lt;/p&gt;
&lt;p&gt;Not worth writing vanilla css anymore.&lt;/p&gt;
&lt;p&gt;~$0 &lt;a href=&#34;http://compass-style.org/&#34;&gt;Compass&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;google-calendar&#34;&gt;Google Calendar&lt;/h2&gt;
&lt;p&gt;You like to keep track of events and things so you don&amp;rsquo;t forget them right? Google Calendar is about as rock solid as I&amp;rsquo;ve ever used or found. Not a lot of alternatives out there&lt;/p&gt;
&lt;p&gt;~$0 &lt;a href=&#34;https://www.google.com/calendar/&#34;&gt;Google Calendar&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;fantastical&#34;&gt;Fantastical&lt;/h2&gt;
&lt;p&gt;To get things into your calendar (and Google Calendar) in a sane way, Fantastical&amp;rsquo;s got the strongest natural language processing I&amp;rsquo;ve used. It works very reliably to process text into an actual task with a date in a thing with a place attached to it.&lt;/p&gt;
&lt;p&gt;~$20 &lt;a href=&#34;https://flexibits.com/fantastical&#34;&gt;Fantastical&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;##1Password
You should not keep all the passwords to your things in your head. They get lost in there. 1Password handles them all well and in a way that you don&amp;rsquo;t need to remember all of them. Integrates nicely with Alfred, works on Android, OS X, iOS, Windows and works very well.&lt;/p&gt;
&lt;p&gt;~$50 (OS X) &lt;a href=&#34;https://agilebits.com/onepassword&#34;&gt;1Password&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;##f.lux
If you do work on a computer, sometimes at night, you owe it to your retinas to treat them kindly. F.lux will locate your computer and change the color temperature to pull most of the blue out of the screen when it&amp;rsquo;s dark outside. The effect of this is two-fold. You are no longer looking into the color equivalent of the sun, and suddenly your eyes don&amp;rsquo;t feel like they&amp;rsquo;ve been in an uncomfortable scene from Clockwork Orange. You&amp;rsquo;ll mostly just notice your computer doesn&amp;rsquo;t hurt your eyes anymore.&lt;/p&gt;
&lt;p&gt;~$0 &lt;a href=&#34;http://justgetflux.com/&#34;&gt;F.lux&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;##Dropbox
You have files in one place. You want files in another place. Dropbox moves them around for you.j&lt;/p&gt;
&lt;p&gt;~$0 &lt;a href=&#34;http://www.dropbox.com&#34;&gt;Dropbox&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;##Arq
For irreplaceable things that live on your computer, a backup hard drive is &lt;strong&gt;not enough&lt;/strong&gt;. Arq iteratively backs up to Amazon&amp;rsquo;s infrastructure in the background. It works very well, and if your home is overrun by weasels, you have backups of your important things.&lt;/p&gt;
&lt;p&gt;~$40 &lt;a href=&#34;http://www.haystacksoftware.com/arq/index.php&#34;&gt;Arq&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;##DaisyDisk
When you run out of space in a folder or disk, you generally want to know what is going on in there. DaisyDisk will show you what you&amp;rsquo;re spending your disk space on visually, and clear some of that garbage out. Great stuff.&lt;/p&gt;
&lt;p&gt;~$10 &lt;a href=&#34;http://www.daisydiskapp.com/&#34;&gt;DaisyDisk&lt;/a&gt;&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>Amazing earth visualization</title>
      <link>https://qbunt.com/posts/amazing-earth-visualization/</link>
      <pubDate>Wed, 18 Dec 2013 01:11:29 +0000</pubDate>
      
      <guid>https://qbunt.com/posts/amazing-earth-visualization/</guid>
      <description>&lt;img src=&#34;https://qbunt.com/img/2013/Dec/Screen_Shot_2013_12_17_at_5_09_46_PM.png&#34;  alt=&#34;Earth visualization image&#34;  class=&#34;center&#34;  style=&#34;border-radius: 8px;&#34;    /&gt;


&lt;p&gt;&lt;a href=&#34;http://earth.nullschool.net/#current/wind/isobaric/1000hPa/orthographic=-82.61,32.29,576&#34;&gt;Check this out.&lt;/a&gt; Amazing way to look at wind flow around the planet.&lt;/p&gt;</description>
      <content>
&lt;img src=&#34;https://qbunt.com/img/2013/Dec/Screen_Shot_2013_12_17_at_5_09_46_PM.png&#34;  alt=&#34;Earth visualization image&#34;  class=&#34;center&#34;  style=&#34;border-radius: 8px;&#34;    /&gt;


&lt;p&gt;&lt;a href=&#34;http://earth.nullschool.net/#current/wind/isobaric/1000hPa/orthographic=-82.61,32.29,576&#34;&gt;Check this out.&lt;/a&gt; Amazing way to look at wind flow around the planet.&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>One crazy pilot</title>
      <link>https://qbunt.com/posts/one-crazy-pilot/</link>
      <pubDate>Tue, 10 Dec 2013 23:51:03 +0000</pubDate>
      
      <guid>https://qbunt.com/posts/one-crazy-pilot/</guid>
      <description>&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&#34; allowfullscreen=&#34;allowfullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/08K_aEajzNA?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;
      &gt;&lt;/iframe&gt;
    &lt;/div&gt;

&lt;p&gt;Wow. &amp;lsquo;Some talent&amp;rsquo; is an understatement.&lt;/p&gt;</description>
      <content>

    
    &lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&#34; allowfullscreen=&#34;allowfullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/08K_aEajzNA?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;
      &gt;&lt;/iframe&gt;
    &lt;/div&gt;

&lt;p&gt;Wow. &amp;lsquo;Some talent&amp;rsquo; is an understatement.&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>Shinola Watches</title>
      <link>https://qbunt.com/posts/shinola-watches/</link>
      <pubDate>Sun, 22 Sep 2013 19:00:00 +0000</pubDate>
      
      <guid>https://qbunt.com/posts/shinola-watches/</guid>
      <description>&lt;h2 id=&#34;hahahugoshortcode35s0hbhb&#34;&gt;

    
    &lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&#34; allowfullscreen=&#34;allowfullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/OMj7QZGk9io?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;
      &gt;&lt;/iframe&gt;
    &lt;/div&gt;
&lt;/h2&gt;
&lt;p&gt;It&amp;rsquo;s not often you hear of a new startup that&amp;rsquo;s building something in America, especially watches&amp;hellip;in Detroit. &lt;a href=&#34;http://www.shinola.com/&#34;&gt;Shinola&lt;/a&gt; is going for
American watchmaking with their line of &lt;a href=&#34;http://www.shinola.com/shop/watches/the-brakeman-leather-band-watch-s002.html&#34;&gt;pretty handsome watches&lt;/a&gt;. As a fan of
people going against the grain and trying something bat-shit crazy, they&amp;rsquo;re going for it in a pretty big way. They&amp;rsquo;re building their own movements with Swiss
parts and really going for it.&lt;/p&gt;</description>
      <content>&lt;h2 id=&#34;hahahugoshortcode35s0hbhb&#34;&gt;

    
    &lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&#34; allowfullscreen=&#34;allowfullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/OMj7QZGk9io?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;
      &gt;&lt;/iframe&gt;
    &lt;/div&gt;
&lt;/h2&gt;
&lt;p&gt;It&amp;rsquo;s not often you hear of a new startup that&amp;rsquo;s building something in America, especially watches&amp;hellip;in Detroit. &lt;a href=&#34;http://www.shinola.com/&#34;&gt;Shinola&lt;/a&gt; is going for
American watchmaking with their line of &lt;a href=&#34;http://www.shinola.com/shop/watches/the-brakeman-leather-band-watch-s002.html&#34;&gt;pretty handsome watches&lt;/a&gt;. As a fan of
people going against the grain and trying something bat-shit crazy, they&amp;rsquo;re going for it in a pretty big way. They&amp;rsquo;re building their own movements with Swiss
parts and really going for it.&lt;/p&gt;
&lt;p&gt;The Verge did a nice piece on Shinola&amp;rsquo;s Detroit factory, check it out.&lt;/p&gt;
</content>
    </item>
    
  </channel>
</rss>
