<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[@jspizziri's RSS Feed]]></title><description><![CDATA[Personal website of @jspizziri]]></description><link>https://jspizziri.com</link><generator>GatsbyJS</generator><lastBuildDate>Fri, 15 Apr 2022 18:59:15 GMT</lastBuildDate><item><title><![CDATA["Big Pizza" & Prime Numbers]]></title><description><![CDATA[How is "Big Pizza", the way you eat it, prime numbers, and the biggest act of
corporate collusion the century has ever seen all connected? I…]]></description><link>https://jspizziri.com/blog/big-pizza-and-prime-numbers/</link><guid isPermaLink="false">https://jspizziri.com/blog/big-pizza-and-prime-numbers/</guid><pubDate>Sat, 29 Jan 2022 20:43:48 GMT</pubDate><enclosure url="https://jspizziri.com/images/pizza-slices.jpeg" length="0" type="image/jpeg"/><subtitle>A War Against the Corporate Collusion of the Century</subtitle><content:encoded>&lt;img src=&quot;https://jspizziri.com/images/pizza-slices.jpeg&quot; /&gt;&lt;p&gt;How is &quot;Big Pizza&quot;, the way you eat it, prime numbers, and the biggest act of
corporate collusion the century has ever seen all connected? I&apos;m about to take
you on a journey, my friend.&lt;/p&gt;
&lt;h2 id=&quot;tldr&quot;&gt;&lt;a href=&quot;#tldr&quot; aria-label=&quot;tldr permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;TL;DR&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;#sign-my-petition-and-let-big-pizza-know-the-jig-is-up&quot;&gt;Sign my petition and join the fight against &quot;Big Pizza&quot; (you&apos;re already a
soldier but you might be on the wrong side).&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#start-cutting-your-pizza-in-12ths&quot;&gt;Start cutting your pizza in 12 slices.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#pizza-math&quot;&gt;Check out the math that definitively &lt;em&gt;proves&lt;/em&gt; my argument.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&quot;lets-begin&quot;&gt;&lt;a href=&quot;#lets-begin&quot; aria-label=&quot;lets begin permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Let&apos;s Begin&lt;/h2&gt;
&lt;p&gt;We&apos;ve all been there more times than we care to remember. Pizza math... How many
slices do and therefore boxes of pizza do we need to achieve maximal group pizza
euphoria?&lt;/p&gt;
&lt;p&gt;But why is it that we &lt;em&gt;always&lt;/em&gt; seem to just need that &lt;em&gt;one&lt;/em&gt; more box to put us
over that threshold? We always just need that one or two more slices but we need
to get an entire additional box. &lt;strong&gt;&lt;em&gt;Every.&lt;/em&gt;&lt;/strong&gt; &lt;strong&gt;&lt;em&gt;Dang.&lt;/em&gt;&lt;/strong&gt; &lt;strong&gt;&lt;em&gt;Time.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Is it just me? Or is there something fishy, dare I say &lt;em&gt;insidious&lt;/em&gt; going on here?&lt;/p&gt;
&lt;p&gt;Well it&apos;s not just me, and I&apos;ll come right out and say it:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&quot;Big Pizza&quot; knows that by putting 8 slices of pizza in a box they sell more
pizza... it&apos;s basic &lt;em&gt;MATH&lt;/em&gt;!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&quot;Big Pizza&quot; isn&apos;t stupid. They know &lt;em&gt;all&lt;/em&gt; about math. They probably had a team of
mathematicians work out the ideal number of slices per box that would maximize
profits! Do you think it&apos;s a coincidence that every major pizza chain (that I can
think of) uses 8 slices a box? If &lt;em&gt;that&lt;/em&gt; is not unequivocal proof of corporate
collusion I don&apos;t know what is!&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.giphy.com/l0IylOPCNkiqOgMyA.gif&quot; alt=&quot;Conspiracy&quot;&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;how-many-boxes-do-you-need&quot;&gt;&lt;a href=&quot;#how-many-boxes-do-you-need&quot; aria-label=&quot;how many boxes do you need permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;How Many Boxes Do You Need?&lt;/h2&gt;
&lt;p&gt;I&apos;ll spare you the math (for now), but here&apos;s how it breaks down how many boxes
you need. And before you get all uppity and say &quot;well it depends on how big the
pizza is and how hungry the people are.&quot; I&apos;ll just tell you now: &lt;em&gt;it doesn&apos;t
matter&lt;/em&gt;. And I&apos;ll prove it later.&lt;/p&gt;
&lt;p&gt;Fine. I&apos;ll prove it now because I can feel your skepticism penetrating space
and time and goading me on my couch as I write.&lt;/p&gt;
&lt;p&gt;If you get a bigger pizza, people just want fewer slices, so you&apos;d just be looking
at the table respectively. The point is that in aggregate, 8 slices a box
increases the overall number of boxes you need to buy because of how it &lt;em&gt;divides&lt;/em&gt;
pizza slices among the eaters. People don&apos;t share slices unless they&apos;re freaks.&lt;/p&gt;
&lt;h4 id=&quot;number-of-boxes-needed-8-slicesbox&quot;&gt;&lt;a href=&quot;#number-of-boxes-needed-8-slicesbox&quot; aria-label=&quot;number of boxes needed 8 slicesbox permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Number Of Boxes Needed (8 Slices/Box)&lt;/h4&gt;
&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th scope=&quot;col&quot;&gt;&lt;/th&gt;
      &lt;th scope=&quot;col&quot;&gt;1 Slice/Person&lt;/th&gt;
      &lt;th scope=&quot;col&quot;&gt;2 Slices/Person&lt;/th&gt;
      &lt;th scope=&quot;col&quot;&gt;3 Slices/Person&lt;/th&gt;
      &lt;th scope=&quot;col&quot;&gt;4 Slices/Person&lt;/th&gt;
      &lt;th scope=&quot;col&quot;&gt;5 Slices/Person&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;th scope=&quot;row&quot;&gt;2 People&lt;/th&gt;
      &lt;td class=&quot;table-1&quot;&gt;1&lt;/td&gt;
      &lt;td class=&quot;table-1&quot;&gt;1&lt;/td&gt;
      &lt;td class=&quot;table-1&quot;&gt;1&lt;/td&gt;
      &lt;td class=&quot;table-1&quot;&gt;1&lt;/td&gt;
      &lt;td class=&quot;table-2&quot;&gt;2&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th scope=&quot;row&quot;&gt;3 People&lt;/th&gt;
      &lt;td class=&quot;table-1&quot;&gt;1&lt;/td&gt;
      &lt;td class=&quot;table-1&quot;&gt;1&lt;/td&gt;
      &lt;td class=&quot;table-2&quot;&gt;2&lt;/td&gt;
      &lt;td class=&quot;table-2&quot;&gt;2&lt;/td&gt;
      &lt;td class=&quot;table-2&quot;&gt;2&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th scope=&quot;row&quot;&gt;4 People&lt;/th&gt;
      &lt;td class=&quot;table-1&quot;&gt;1&lt;/td&gt;
      &lt;td class=&quot;table-1&quot;&gt;1&lt;/td&gt;
      &lt;td class=&quot;table-2&quot;&gt;2&lt;/td&gt;
      &lt;td class=&quot;table-2&quot;&gt;2&lt;/td&gt;
      &lt;td class=&quot;table-3&quot;&gt;3&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th scope=&quot;row&quot;&gt;5 People&lt;/th&gt;
      &lt;td class=&quot;table-1&quot;&gt;1&lt;/td&gt;
      &lt;td class=&quot;table-2&quot;&gt;2&lt;/td&gt;
      &lt;td class=&quot;table-2&quot;&gt;2&lt;/td&gt;
      &lt;td class=&quot;table-3&quot;&gt;3&lt;/td&gt;
      &lt;td class=&quot;table-4&quot;&gt;4&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th scope=&quot;row&quot;&gt;5 People&lt;/th&gt;
      &lt;td class=&quot;table-1&quot;&gt;1&lt;/td&gt;
      &lt;td class=&quot;table-2&quot;&gt;2&lt;/td&gt;
      &lt;td class=&quot;table-3&quot;&gt;3&lt;/td&gt;
      &lt;td class=&quot;table-3&quot;&gt;3&lt;/td&gt;
      &lt;td class=&quot;table-4&quot;&gt;4&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th scope=&quot;row&quot;&gt;6 People&lt;/th&gt;
      &lt;td class=&quot;table-1&quot;&gt;1&lt;/td&gt;
      &lt;td class=&quot;table-2&quot;&gt;2&lt;/td&gt;
      &lt;td class=&quot;table-3&quot;&gt;3&lt;/td&gt;
      &lt;td class=&quot;table-4&quot;&gt;4&lt;/td&gt;
      &lt;td class=&quot;table-5&quot;&gt;5&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id=&quot;so-whats-wrong-with-it&quot;&gt;&lt;a href=&quot;#so-whats-wrong-with-it&quot; aria-label=&quot;so whats wrong with it permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;So... what&apos;s wrong with it?&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://i.giphy.com/11e0gEWxYoSYTK.gif&quot; alt=&quot;Morpheus&quot;&gt;&lt;/p&gt;
&lt;p&gt;Let&apos;s look at how many boxes you &lt;em&gt;would&lt;/em&gt; need if instead of cutting pizza &lt;code class=&quot;language-text&quot;&gt;8&lt;/code&gt;
slices it was cut into &lt;code class=&quot;language-text&quot;&gt;12&lt;/code&gt;:&lt;/p&gt;
&lt;h4 id=&quot;number-of-boxes-needed-12-slicesbox&quot;&gt;&lt;a href=&quot;#number-of-boxes-needed-12-slicesbox&quot; aria-label=&quot;number of boxes needed 12 slicesbox permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Number Of Boxes Needed (12 Slices/Box)&lt;/h4&gt;
&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th scope=&quot;col&quot;&gt;&lt;/th&gt;
      &lt;th scope=&quot;col&quot;&gt;1 Slice/Person&lt;/th&gt;
      &lt;th scope=&quot;col&quot;&gt;2 Slices/Person&lt;/th&gt;
      &lt;th scope=&quot;col&quot;&gt;3 Slices/Person&lt;/th&gt;
      &lt;th scope=&quot;col&quot;&gt;4 Slices/Person&lt;/th&gt;
      &lt;th scope=&quot;col&quot;&gt;5 Slices/Person&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;th scope=&quot;row&quot;&gt;2 People&lt;/th&gt;
      &lt;td class=&quot;table-1&quot;&gt;1&lt;/td&gt;
      &lt;td class=&quot;table-1&quot;&gt;1&lt;/td&gt;
      &lt;td class=&quot;table-1&quot;&gt;1&lt;/td&gt;
      &lt;td class=&quot;table-1&quot;&gt;1&lt;/td&gt;
      &lt;td class=&quot;table-1&quot;&gt;1&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th scope=&quot;row&quot;&gt;3 People&lt;/th&gt;
      &lt;td class=&quot;table-1&quot;&gt;1&lt;/td&gt;
      &lt;td class=&quot;table-1&quot;&gt;1&lt;/td&gt;
      &lt;td class=&quot;table-1&quot;&gt;1&lt;/td&gt;
      &lt;td class=&quot;table-1&quot;&gt;1&lt;/td&gt;
      &lt;td class=&quot;table-2&quot;&gt;2&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th scope=&quot;row&quot;&gt;4 People&lt;/th&gt;
      &lt;td class=&quot;table-1&quot;&gt;1&lt;/td&gt;
      &lt;td class=&quot;table-1&quot;&gt;1&lt;/td&gt;
      &lt;td class=&quot;table-1&quot;&gt;1&lt;/td&gt;
      &lt;td class=&quot;table-2&quot;&gt;2&lt;/td&gt;
      &lt;td class=&quot;table-2&quot;&gt;2&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th scope=&quot;row&quot;&gt;5 People&lt;/th&gt;
      &lt;td class=&quot;table-1&quot;&gt;1&lt;/td&gt;
      &lt;td class=&quot;table-1&quot;&gt;1&lt;/td&gt;
      &lt;td class=&quot;table-2&quot;&gt;2&lt;/td&gt;
      &lt;td class=&quot;table-2&quot;&gt;2&lt;/td&gt;
      &lt;td class=&quot;table-3&quot;&gt;3&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th scope=&quot;row&quot;&gt;5 People&lt;/th&gt;
      &lt;td class=&quot;table-1&quot;&gt;1&lt;/td&gt;
      &lt;td class=&quot;table-1&quot;&gt;1&lt;/td&gt;
      &lt;td class=&quot;table-2&quot;&gt;2&lt;/td&gt;
      &lt;td class=&quot;table-2&quot;&gt;2&lt;/td&gt;
      &lt;td class=&quot;table-3&quot;&gt;3&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th scope=&quot;row&quot;&gt;6 People&lt;/th&gt;
      &lt;td class=&quot;table-1&quot;&gt;1&lt;/td&gt;
      &lt;td class=&quot;table-2&quot;&gt;2&lt;/td&gt;
      &lt;td class=&quot;table-2&quot;&gt;2&lt;/td&gt;
      &lt;td class=&quot;table-3&quot;&gt;3&lt;/td&gt;
      &lt;td class=&quot;table-3&quot;&gt;3&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;If you&apos;ve been following along you&apos;ll see that the maximum number of boxes needed
in the worst-case scenario here are &lt;code class=&quot;language-text&quot;&gt;3&lt;/code&gt; whereas with 8 slices a box it&apos;s &lt;code class=&quot;language-text&quot;&gt;5&lt;/code&gt;.
Or to put it in common-speak:&lt;/p&gt;
&lt;br/&gt;
&lt;blockquote&gt;
&lt;p&gt;8 slices lots of red. 12 slices not so lots of red.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;br/&gt;
&lt;p&gt;&lt;img src=&quot;https://i.giphy.com/3ornk6UHtk276vLtkY.gif&quot; alt=&quot;It&amp;#x27;s not true&quot;&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;pizza-math&quot;&gt;&lt;a href=&quot;#pizza-math&quot; aria-label=&quot;pizza math permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Pizza Math&lt;/h2&gt;
&lt;p&gt;Let &lt;code class=&quot;language-text&quot;&gt;e&lt;/code&gt; equal the number of pizza eaters, &lt;code class=&quot;language-text&quot;&gt;s&lt;/code&gt; equal the number of averages slices
per eater, &amp;#x26; &lt;code class=&quot;language-text&quot;&gt;p&lt;/code&gt; equal the number of slices of pizza per box:&lt;/p&gt;
&lt;p&gt;&lt;code class=&quot;language-text&quot;&gt;Number of Boxes Needed = (e * s) / p&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Now we all know that &quot;Big Pizza&quot; doesn&apos;t sell partial boxes, so of course, we
need to use a ceiling function (or round up) to the next highest box to achieve
the maximum pizza vibes we&apos;re going for:&lt;/p&gt;
&lt;p&gt;&lt;code class=&quot;language-text&quot;&gt;Number of Boxes Needed = ceiling((e * s) / p)&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;The problem is this rounding up necessity. Enter highly composite numbers (anti-primes).&lt;/p&gt;
&lt;h2 id=&quot;highly-composite-numbers-anti-primes&quot;&gt;&lt;a href=&quot;#highly-composite-numbers-anti-primes&quot; aria-label=&quot;highly composite numbers anti primes permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Highly Composite Numbers (Anti-primes)&lt;/h2&gt;
&lt;p&gt;I won&apos;t &lt;a href=&quot;https://en.wikipedia.org/wiki/Highly_composite_number&quot;&gt;get too much into the weeds here&lt;/a&gt;
but basically, highly composite numbers are:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt; Positive integers with more divisors than any smaller positive integer.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;In simple terms, they&apos;re numbers that are super friendly to dividing up neatly.
It&apos;s probably easier to just see it, so below is a list of the first 10 highly
composite numbers. And wouldn&apos;t you know it, what number is conspicuously
absent? And look what number happened to be &lt;em&gt;on&lt;/em&gt; the list? 🤔🤔🤔&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th scope=&quot;col&quot;&gt;Number&lt;/th&gt;
      &lt;th scope=&quot;col&quot;&gt;How Many Numbers Evenly Divide It&lt;/th&gt;
      &lt;th scope=&quot;col&quot;&gt;The Numbers That Divide It&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;th scope=&quot;row&quot;&gt;1&lt;/td&gt;
      &lt;td&gt;1&lt;/td&gt;
      &lt;td&gt;1&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th scope=&quot;row&quot;&gt;2&lt;/td&gt;
      &lt;td&gt;2&lt;/td&gt;
      &lt;td&gt;1, 2&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th scope=&quot;row&quot;&gt;4&lt;/td&gt;
      &lt;td&gt;3&lt;/td&gt;
      &lt;td&gt;1, 2, 4&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th scope=&quot;row&quot;&gt;6&lt;/td&gt;
      &lt;td&gt;4&lt;/td&gt;
      &lt;td&gt;1, 2, 3, 6&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr class=&quot;table-success&quot;&gt;
      &lt;th scope=&quot;row&quot;&gt;12&lt;/td&gt;
      &lt;td&gt;6&lt;/td&gt;
      &lt;td&gt;1, 2, 3, 4, 6, 12&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th scope=&quot;row&quot;&gt;24&lt;/td&gt;
      &lt;td&gt;8&lt;/td&gt;
      &lt;td&gt;1, 2, 3, 4, 6, 8, 12, 24&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th scope=&quot;row&quot;&gt;36&lt;/td&gt;
      &lt;td&gt;9&lt;/td&gt;
      &lt;td&gt;1, 2, 3, 4, 6, 9, 12, 18, 36&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th scope=&quot;row&quot;&gt;48&lt;/td&gt;
      &lt;td&gt;10&lt;/td&gt;
      &lt;td&gt;1, 2, 3, 4, 6, 8, 12, 16, 24, 48&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th scope=&quot;row&quot;&gt;60&lt;/td&gt;
      &lt;td&gt;12&lt;/td&gt;
      &lt;td&gt;1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 30, 60&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th scope=&quot;row&quot;&gt;120&lt;/td&gt;
      &lt;td&gt;16&lt;/td&gt;
      &lt;td&gt;1, 2, 3, 4, 5, 6, 8, 10, 12, 15, 20, 24, 30, 40, 60, 120&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;*&lt;a href=&quot;(https://en.wikipedia.org/wiki/Highly_composite_number)&quot;&gt;credit wikipedia&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;At this point, you might be thinking: &quot;Well why not 6?&quot; And I say to you: &quot;Just
chill.&quot; I&apos;m down with 6 too, so long as it&apos;s not 8. In all honestly &quot;Big Pizza&quot;
probably could&apos;ve done us worse by choosing &lt;em&gt;7&lt;/em&gt; as it&apos;s prime, but the logistics
of getting pizza cut nicely into 7 slices would&apos;ve been an operational headache,
not to mention being &lt;strong&gt;even more blatantly obvious than 8&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id=&quot;what-you-can-do-about-it&quot;&gt;&lt;a href=&quot;#what-you-can-do-about-it&quot; aria-label=&quot;what you can do about it permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;What You Can Do About It&lt;/h2&gt;
&lt;h4 id=&quot;sign-my-petition-and-let-big-pizza-know-the-jig-is-up&quot;&gt;&lt;a href=&quot;#sign-my-petition-and-let-big-pizza-know-the-jig-is-up&quot; aria-label=&quot;sign my petition and let big pizza know the jig is up permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Sign My Petition And Let &quot;Big Pizza&quot; Know The Jig Is Up&lt;/h4&gt;
&lt;p&gt;&quot;Big Pizza&quot; has been getting fat on our extra pizza dough (that&apos;s right, I said
it) for far too long. &lt;a href=&quot;https://chng.it/fpKpMcZHgw&quot;&gt;Sign my petition and as a great man once said let&apos;s &quot;&lt;em&gt;save&lt;/em&gt;
the change we want to &lt;em&gt;spend elsewhere&lt;/em&gt; in the world.&lt;/a&gt;&lt;/p&gt;
&lt;h4 id=&quot;start-cutting-your-pizza-in-12ths&quot;&gt;&lt;a href=&quot;#start-cutting-your-pizza-in-12ths&quot; aria-label=&quot;start cutting your pizza in 12ths permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Start Cutting Your Pizza In 12ths&lt;/h4&gt;
&lt;p&gt;It&apos;s not hard, simply start the way you normally start cutting pizza and then
modify it slightly:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Slice your pizza right down the middle.&lt;/li&gt;
&lt;li&gt;Turn the pizza 90° and cut down the middle again.&lt;/li&gt;
&lt;li&gt;Now divide each 1/4 section into 3rds (I.e. rather than just one big cut down
the center of each quarter, do 2 evenly spaced cuts.)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://i.giphy.com/OK27wINdQS5YQ.gif&quot; alt=&quot;mind blown&quot;&gt;&lt;/p&gt;</content:encoded><dc:creator>Jacob Spizziri</dc:creator><author>Jacob Spizziri</author><category>antiprimes</category><category>highly composite numbers</category><category>math</category><category>big pizza</category><category>food</category><category>pizza</category></item><item><title><![CDATA[Power-User]]></title><description><![CDATA[TL;DR Install F.lux Install Rectangle (macOS only) Install A Tab Suspender Firefox Chrome Install Hidden Bar Sign up for Grammarly & install…]]></description><link>https://jspizziri.com/blog/power-user/</link><guid isPermaLink="false">https://jspizziri.com/blog/power-user/</guid><pubDate>Sat, 23 May 2020 11:11:00 GMT</pubDate><enclosure url="https://jspizziri.com/images/yellow-bulb-1556704.jpg" length="0" type="image/jpeg"/><subtitle>My favorite (and free) productivity tools</subtitle><content:encoded>&lt;img src=&quot;https://jspizziri.com/images/yellow-bulb-1556704.jpg&quot; /&gt;&lt;h2 id=&quot;tldr&quot;&gt;&lt;a href=&quot;#tldr&quot; aria-label=&quot;tldr permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;TL;DR&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://justgetflux.com/&quot;&gt;Install F.lux&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://rectangleapp.com/&quot;&gt;Install Rectangle (macOS only)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Install A Tab Suspender&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://addons.mozilla.org/en-US/firefox/addon/ff-tab-suspender/&quot;&gt;Firefox&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://chrome.google.com/webstore/detail/the-great-suspender/klbibkeccnjlkjkiokjodocebajanakg&quot;&gt;Chrome&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://itunes.apple.com/app/hidden-bar/id1452453066&quot;&gt;Install Hidden Bar&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.grammarly.com/&quot;&gt;Sign up for Grammarly &amp;#x26; install it&apos;s plugins&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&quot;nightred-shift&quot;&gt;&lt;a href=&quot;#nightred-shift&quot; aria-label=&quot;nightred shift permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Night/Red Shift&lt;/h2&gt;
&lt;p&gt;For those of us who spend most of their lives staring at a computer screen (and sometimes do so late into the evening). It&apos;s recommended that you install/use a Night/Red shift application on your machine to make it easier on your eyes. &lt;a href=&quot;https://justgetflux.com/&quot;&gt;I&apos;d recommend &lt;code class=&quot;language-text&quot;&gt;f.lux&lt;/code&gt;&lt;/a&gt;) as it&apos;s been around a long time and it&apos;s multi-platform (Windows, macOS, Linux). However, macOS does come with a native utility which handles this if you&apos;d prefer.&lt;/p&gt;
&lt;p&gt;You can download and install &lt;code class=&quot;language-text&quot;&gt;f.lux&lt;/code&gt; for free by going &lt;a href=&quot;https://justgetflux.com/&quot;&gt;here&lt;/a&gt; and following the instructions.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.health.harvard.edu/staying-healthy/blue-light-has-a-dark-side&quot;&gt;For your health!&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;move--resize-windows-macos&quot;&gt;&lt;a href=&quot;#move--resize-windows-macos&quot; aria-label=&quot;move  resize windows macos permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Move &amp;#x26; Resize Windows (macOS)&lt;/h2&gt;
&lt;p&gt;You&apos;ve got a lot going on when you&apos;re working. As a result, you&apos;ve got a bunch of programs open constantly and you&apos;re endlessly shifting them around and repositioning them, and that gets annoying.&lt;/p&gt;
&lt;p&gt;You could spend $2 and get &lt;a href=&quot;https://magnet.crowdcafe.com/&quot;&gt;Magnet&lt;/a&gt;...&lt;/p&gt;
&lt;p&gt;OR you could checkout &lt;a href=&quot;https://rectangleapp.com/&quot;&gt;Rectangle&lt;/a&gt; which is an amazing free and super helpful little tool that allows you to easily move windows around (Ex. snap a window to the left half of your screen, and another to the right).&lt;/p&gt;
&lt;p&gt;As an added bonus, it&apos;s opensource!&lt;/p&gt;
&lt;h2 id=&quot;suspend-browser-tabs&quot;&gt;&lt;a href=&quot;#suspend-browser-tabs&quot; aria-label=&quot;suspend browser tabs permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Suspend Browser Tabs&lt;/h2&gt;
&lt;p&gt;You know all those tabs that you have open? They&apos;re secretly sucking the precious computer-juice out of your machine, making it harder for you to do what you’ve gotta do.&lt;/p&gt;
&lt;p&gt;There&apos;s a solution. Most popular browsers have plugins called &quot;Tab Suspenders&quot;, and they simply &quot;pause&quot; or &quot;suspend&quot; any tabs that you haven&apos;t used in a certain period of time (which you can control) and make it easy to go back to them when you need to. Thus reclaiming all the precious computer-juice for it&apos;s rightful owner: you.&lt;/p&gt;
&lt;p&gt;Here&apos;re some that work well:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://addons.mozilla.org/en-US/firefox/addon/ff-tab-suspender/&quot;&gt;Firefox&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://chrome.google.com/webstore/detail/the-great-suspender/klbibkeccnjlkjkiokjodocebajanakg&quot;&gt;Chrome&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Trust me, you may not notice it, but if you use a lot of tabs all the time, this will dramatically improve your performance.&lt;/p&gt;
&lt;h2 id=&quot;hidden-bar-macos&quot;&gt;&lt;a href=&quot;#hidden-bar-macos&quot; aria-label=&quot;hidden bar macos permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Hidden Bar (macOS)&lt;/h2&gt;
&lt;p&gt;Tired of your cluttered menu bar? &lt;a href=&quot;https://itunes.apple.com/app/hidden-bar/id1452453066&quot;&gt;Hidden Bar&lt;/a&gt; is a free app lets you hide menu bar items to de-clutter your visual space.&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto;  max-width: 643px;&quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/bca13070b783412df2d091bc3eed1236/bd74f/hidden-bar.png&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 62.51944012441679%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAYAAACpUE5eAAAACXBIWXMAAAsSAAALEgHS3X78AAAC40lEQVQ4y03QS08TURiH8QLRgAqJ0A6Ulpl2WjpMoVChLQUKVAoFRLRqiAhKBQoUKPfIVlkIGJAIxEswcYMajZcYYmLUpRsTY/wOEiHGBRApUTd/35kOl8Uv50ybec6cV9VeEkWHorM0ipCiS1IWRTfpUYQlnih6SZ+i/4BIeRSqNmcUQXLVFdNOOhSdxTEh0iVx0wGKHhJ276CvLBaK7AbDVVuQ9Ppi+ki/pHoLEcWAYpAM1ewb8dP/FdvoK93BAMUGKKpa/76BNbK+uilbU57l3/Zsxqxu7u/Jzx8b+PrpF8YbfqOfooPSF05ML+DG9Dwmpu7g+uQcbi8+xOzikmxm/gGm5+7i5syCvE7OLsrrzPw9TNH+1tx9fPn2GYvDNIaiKIYqKZhoCeCQqREJxnrEcbVIIPGcH8lCI1KE04jLPIkk3o94nReHOR9U6R6oUouhOu6E6kg+Hj1+haXxfwgVbseChsp+ZHl6kFnSCa0rCMbZBsZxBWJ1GAX1EWgKm6Fztcqsvi4w9iYkmuqRZKqjw7xYfrGCpWt/0UXBYSmY42mF4GkBZz8FvVhJawNYdxCZ7hDSnUH5EH1JO9JOtCAlrwnJuedxTAzgqHBGvs3yy7f0hQeCOtYKncEGXnTDbC2BnvZaYz54xzmItWMQ/KMw+0ZgpJvo6RYZdIim6DJS7c1IFAJ48vodfeEfmuFukAKsyQ6WtyFDLyAt3QAmg5eZcsuRbffD5AjQCCIUH4O5ahCGchqRuwMptot4+ua9EoxiRAqq6cUCRwWsNjeyjLnQcyIYLY80TRb0rIhMvRksZwFvcUBndkKoCEKoG6NoNzQ062crH+Vgz27QmJOP0ooa5NvLKGilFwvAmWxQa1hk6MzQMBwM9GzgRfAkiw7kXBdg8IahdrRQ8MNecNRLQYtoR5HLC95Mc7TY5RfNUpTPhZphkcoYoNaaoKXRGPM84K1uZBefBe/tBlN0Cc+VYFgJ/gerODbvSrxMpgAAAABJRU5ErkJggg==&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;Hidden Bar&quot;
        title=&quot;Hidden Bar&quot;
        src=&quot;/static/bca13070b783412df2d091bc3eed1236/bd74f/hidden-bar.png&quot;
        srcset=&quot;/static/bca13070b783412df2d091bc3eed1236/344f2/hidden-bar.png 512w,
/static/bca13070b783412df2d091bc3eed1236/bd74f/hidden-bar.png 643w&quot;
        sizes=&quot;(max-width: 643px) 100vw, 643px&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://itunes.apple.com/app/hidden-bar/id1452453066&quot;&gt;Install Hidden Bar&lt;/a&gt;, or you know you could spend &lt;strong&gt;$15 dollars!!!!&lt;/strong&gt; on bartender. I get everything I need out of this awesome, completely free, and open source app. Take a look.&lt;/p&gt;
&lt;h2 id=&quot;grammarly&quot;&gt;&lt;a href=&quot;#grammarly&quot; aria-label=&quot;grammarly permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Grammarly&lt;/h2&gt;
&lt;p&gt;I get it. You don&apos;t spell so good:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;First, know that you&apos;re still valued and loved.&lt;/li&gt;
&lt;li&gt;Second, try to make a conscious effort to get better.&lt;/li&gt;
&lt;li&gt;Third, please use &lt;a href=&quot;https://www.grammarly.com/&quot;&gt;Grammarly&lt;/a&gt; so you don&apos;t look like a dingbat when you&apos;re emailing important (or regular) people.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&quot;https://www.grammarly.com/&quot;&gt;Grammarly&lt;/a&gt; is free to sign up, has browser plugins that are easy to install, and helps make sure you&apos;re using actual English. I even used it to make sure this document was 💯, and yes it told me there were mistakes, but an editorial decision was made to leave those in for dramatic effect.&lt;/p&gt;</content:encoded><dc:creator>Jacob Spizziri</dc:creator><author>Jacob Spizziri</author><category>macOS</category><category>power-user</category><category>bartender</category><category>magnet</category></item><item><title><![CDATA[Why (And How) I Ditched Netflix]]></title><description><![CDATA[Why Once upon a time there was cable and/or satellite TV. It was too expensive, was heavily Ad supported, and had mostly crap content. And…]]></description><link>https://jspizziri.com/blog/why-and-how-i-ditched-netflix/</link><guid isPermaLink="false">https://jspizziri.com/blog/why-and-how-i-ditched-netflix/</guid><pubDate>Sun, 02 Feb 2020 00:00:00 GMT</pubDate><enclosure url="https://jspizziri.com/images/netflix-on-tv.jpg" length="0" type="image/jpeg"/><subtitle>Setting Up a Personal Streaming Service</subtitle><content:encoded>&lt;img src=&quot;https://jspizziri.com/images/netflix-on-tv.jpg&quot; /&gt;&lt;h2 id=&quot;why&quot;&gt;&lt;a href=&quot;#why&quot; aria-label=&quot;why permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Why&lt;/h2&gt;
&lt;p&gt;Once upon a time there was cable and/or satellite TV. It was too expensive, was heavily Ad supported, and had mostly crap content. And the Millenial saw that it was very bad.&lt;/p&gt;
&lt;p&gt;And then the Millenial said &quot;Meh...&quot;, and Netflix flashed into existence. And it was very good. A reasonably priced alternative to cable, with no Ads, and solid content. The Millenial had forced the hand of the money mongering content provider, and had changed the course of television.&lt;/p&gt;
&lt;p&gt;Then, the dark days began. The Streaming Wars, broke out with aggression as content providers said &quot;WE WANT MORE MONEY!&quot;.&lt;/p&gt;
&lt;p&gt;Amazon Prime, HBO Go, Hulu, Disney+... Even the occasional Ad support for paid content...&lt;/p&gt;
&lt;p&gt;It was then that the Millenial realized that they hadn&apos;t changed anything. That they had been duped into a different flavor of what they had before. And the dollars began to drain from their bank accounts in large lump sums at the end of each month. Their favorite content was even pulled occasionally.&lt;/p&gt;
&lt;p&gt;And the Millenial wept, as they were both emotionally available and shallow enough to do so.&lt;/p&gt;
&lt;p&gt;But then, at the first light of the fifth day, at dawn; the Millenial looked to the east. And so emerged the final savior, the personal Netflix.&lt;/p&gt;
&lt;h2 id=&quot;how&quot;&gt;&lt;a href=&quot;#how&quot; aria-label=&quot;how permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;How&lt;/h2&gt;
&lt;p&gt;Buy physical media, rip that media to digital format, and then setup a home media server.&lt;/p&gt;
&lt;p&gt;There are a number of programs that are free to use, that work pretty much exactly like Netflix, but for the content that you own. Check some of them out:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.plex.tv/&quot;&gt;Plex&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://emby.media/&quot;&gt;Emby&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://jellyfin.org/&quot;&gt;Jellyfin&lt;/a&gt; (if you&apos;re a hardcore open-source champion)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Buy a home NAS or &lt;a href=&quot;/blog/my-home-nas-build&quot;&gt;build one yourself&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Start ripping content to it with &lt;a href=&quot;https://www.makemkv.com/&quot;&gt;MakeMKV&lt;/a&gt; (yes it looks sketchy, but it&apos;s legit). MakeMKV will not convert or compress any of your content, but will give you the raw content on the disk in it&apos;s full resolution. Be prepared for Blu-rays to require 30 GB, and DVD&apos;s to require 4 or 5.&lt;/p&gt;
&lt;h2 id=&quot;the-math&quot;&gt;&lt;a href=&quot;#the-math&quot; aria-label=&quot;the math permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;The Math&lt;/h2&gt;
&lt;p&gt;So lets say you&apos;re the average American citizen. According to &lt;a href=&quot;https://www.forbes.com/sites/tonifitzgerald/2019/03/29/how-many-streaming-video-services-does-the-average-person-subscribe-to/&quot;&gt;an article published in Forbes&lt;/a&gt; that means you&apos;re paying for around &lt;strong&gt;3.4&lt;/strong&gt; streaming services at an average of &lt;strong&gt;$8.53/mo&lt;/strong&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;$8.54 * 3.4 = $29.036/mo&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;$29.036/mo * 12 months = $348.43/yr&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Bottom line, the average American spends around &lt;strong&gt;$348.43/yr&lt;/strong&gt; on streaming services. Let&apos;s say the average Blu-ray (so you&apos;re getting all the sauce of a UHD experience) costs around &lt;strong&gt;$20&lt;/strong&gt;. That&apos;s around 17 pieces of content that you could &lt;em&gt;own&lt;/em&gt; each year. Aaaand that&apos;s if you&apos;re foolish enough to buy them new. Buying used could make that number orders of magnitude higher. As an example, I once bought 3-4 complete trilogies, and 3-4 complete TV series for around $60 (good ones too, classics).&lt;br&gt;
&lt;br&gt;
Think about it, how often do you just want to re-watch Friends, or The Office, or Parks and Rec., or Seinfeld, or The Sopranos, or Breaking Bad, or Stranger Things, or &lt;em&gt;whatever&lt;/em&gt; again? Right now if you wanted access to all of those, you&apos;re going to have to subscribe to at least 3 streaming services. Instead you could just &lt;strong&gt;&lt;em&gt;OWN&lt;/em&gt;&lt;/strong&gt; them forever. And it comes with the convenience of modern streaming services like the ability to watch on any device and download content for offline playback.&lt;/p&gt;
&lt;h2 id=&quot;conclusion&quot;&gt;&lt;a href=&quot;#conclusion&quot; aria-label=&quot;conclusion permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;In the long run, owning content is going to be more cost effective (and potentially immediately), plus you get the added benefit of having really good content. The only thing to stop you is the feeling that it&apos;s too complicated, and to that I say: &quot;If you could navigate to this blog post, then you&apos;ll be able to figure it out just fine.&quot;&lt;/p&gt;</content:encoded><dc:creator>Jacob Spizziri</dc:creator><author>Jacob Spizziri</author><category>nas</category><category>internet</category><category>plex</category><category>emby</category><category>jellyfin</category></item><item><title><![CDATA[Privacy 1st]]></title><description><![CDATA[TL;DR Here are some steps to take to make your digital life more private. Switch to Firefox as your internet browser (on all your devices…]]></description><link>https://jspizziri.com/blog/privacy-1st/</link><guid isPermaLink="false">https://jspizziri.com/blog/privacy-1st/</guid><pubDate>Fri, 31 Jan 2020 16:09:08 GMT</pubDate><enclosure url="https://jspizziri.com/images/cctv-cameras.jpg" length="0" type="image/jpeg"/><subtitle>My Journey to Protect My Data</subtitle><content:encoded>&lt;img src=&quot;https://jspizziri.com/images/cctv-cameras.jpg&quot; /&gt;&lt;h2 id=&quot;tldr&quot;&gt;&lt;a href=&quot;#tldr&quot; aria-label=&quot;tldr permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;TL;DR&lt;/h2&gt;
&lt;p&gt;Here are some steps to take to make your digital life more private.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Switch to &lt;a href=&quot;https://www.mozilla.org/en-US/firefox/new/&quot;&gt;Firefox&lt;/a&gt; as your internet browser (on all your devices).&lt;/li&gt;
&lt;li&gt;Use&lt;a href=&quot;https://duckduckgo.com&quot;&gt; DuckDuckGo&lt;/a&gt; instead of &lt;a href=&quot;https://www.google.com/&quot;&gt;Google Search&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Get a VPN if you can afford one.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;NordVPN usually has pretty good deals.&lt;/li&gt;
&lt;li&gt;If you don&apos;t get a VPN, look into using the &lt;a href=&quot;https://1.1.1.1/&quot;&gt;1.1.1.1&lt;/a&gt; app.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Remove Geolocation/metadata from your photos.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Stop using Google Maps&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;iOS:&lt;/strong&gt; Use &lt;a href=&quot;https://www.idownloadblog.com/2019/03/13/apple-maps-navigation-privacy/&quot;&gt;Apple Maps&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Android:&lt;/strong&gt; Use &lt;a href=&quot;https://maps.me&quot;&gt;Maps.me&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Switch to a privacy-focused email provider (i.e. Zoho or Protonmail instead of Gmail).&lt;/li&gt;
&lt;li&gt;Replace your messaging app (e.g. Facebook Messenger, Google Chat, etc) with &lt;a href=&quot;https://signal.org/&quot;&gt;Signal&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Finally, if you&apos;re savvy enough, configure your router/other services to use 1.1.1.1 as your primary DNS.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;lets-get-started&quot;&gt;&lt;a href=&quot;#lets-get-started&quot; aria-label=&quot;lets get started permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Let&apos;s Get Started&lt;/h2&gt;
&lt;p&gt;This article is intended to be an introduction to the concept of &quot;Privacy&quot; on the internet for those who aren&apos;t familiar with the concept and may not even be &quot;tech-savvy&quot;. I&apos;m going to cover some of the ways you are likely unknowingly giving away your privacy and outline a few action items you can take to fix them.&lt;/p&gt;
&lt;p&gt;We&apos;re going to focus on 5 areas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;#your-internet-browser&quot;&gt;Your Internet Browser&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#your-search-engine&quot;&gt;Your Search Engine&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#your-photos&quot;&gt;Your Photos&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#your-emails&quot;&gt;Your Emails&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#your-messages&quot;&gt;Your Messages&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#your-isp-and-dns&quot;&gt;Your ISP and DNS&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&quot;your-internet-browser&quot;&gt;&lt;a href=&quot;#your-internet-browser&quot; aria-label=&quot;your internet browser permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Your Internet Browser&lt;/h2&gt;
&lt;p&gt;This topic is one of the most well documented and reported on issues, so I&apos;ll keep it brief. A simple browser search will yield a plethora of articles detailing how various browsers **cough* Chrome *cough* &lt;em&gt;invade your privacy. Basically, there are ways websites track your activity across the internet and some browsers protect against it, while others don&apos;t&lt;/em&gt; *cough* Chrome *cough*&lt;em&gt;. Additionally, your browser has the means to know everything that you do on the internet (what websites and pages you go to, what you click on, how long you&apos;re there, etc.), and that data can be stored and leveraged by whatever company owns that particular browser&lt;/em&gt; *cough* Google *cough**.&lt;/p&gt;
&lt;p&gt;Really all you need to do is ditch your current browser for one thats more privacy focused&lt;/p&gt;
&lt;p&gt;Options:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.mozilla.org/en-US/firefox/&quot;&gt;Firefox&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://brave.com/&quot;&gt;Brave&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.torproject.org/download/&quot;&gt;Tor Browser&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Action Item:&lt;/strong&gt; Switch to a more privacy-focused internet browser like Firefox.&lt;/p&gt;
&lt;h2 id=&quot;your-search-engine&quot;&gt;&lt;a href=&quot;#your-search-engine&quot; aria-label=&quot;your search engine permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Your Search Engine&lt;/h2&gt;
&lt;p&gt;Simply put, Google Search makes money by selling your data. So it&apos;s in their best interest to collect and store every single scrap of data they can get their grubby little hands on. Not only that, but based on the profile that they build for you over time (based on the data they collect about you from various Google services), they create what&apos;s known as a &quot;filter bubble&quot; for you.&lt;/p&gt;
&lt;p&gt;A filter bubble means that Google is not showing you objective search results for a specific query, but rather they are showing you the results they think you want to see. While a filter bubble isn&apos;t particularly important from a privacy perspective, it&apos;s still a quite important concept to understand. Let&apos;s take a practical example of what this could mean.&lt;/p&gt;
&lt;p&gt;Let&apos;s say theirs a major election coming up, you want to first research the candidate affiliated with your party (&lt;a href=&quot;https://en.wikipedia.org/wiki/George_B._McClellan&quot;&gt;George B. McClellan&lt;/a&gt;), and then the candidate affiliated with the party which opposes yours (&lt;a href=&quot;https://en.wikipedia.org/wiki/Abraham_Lincoln&quot;&gt;Abraham Lincoln&lt;/a&gt;). The search for &lt;a href=&quot;https://en.wikipedia.org/wiki/George_B._McClellan&quot;&gt;George B. McClellan&lt;/a&gt; is more likely to contain positive articles that someone of your perspective would be interested in, whereas the search for &lt;a href=&quot;https://en.wikipedia.org/wiki/Abraham_Lincoln&quot;&gt;Abraham Lincoln&lt;/a&gt; is more likely to yield results that portray that candidate in a negative light.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;In Psychology, this is called &lt;a href=&quot;https://en.wikipedia.org/wiki/Confirmation_bias&quot;&gt;Confirmation Bias&lt;/a&gt;.&lt;/strong&gt; Effectively, when you want to achieve a certain result or believe a certain thing, you search only for evidence that confirms it. Hopefully, we can agree that this is a very bad thing.&lt;/p&gt;
&lt;p&gt;In contrast, DuckDuckGo does not track your search history, nor does it tailor results to you. Plus, it&apos;s available as a default search option on pretty much every major browser (including mobile browsers on your smartphone).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Action Item:&lt;/strong&gt; Switch from Google to DuckDuckGo.&lt;/p&gt;
&lt;h2 id=&quot;your-photos&quot;&gt;&lt;a href=&quot;#your-photos&quot; aria-label=&quot;your photos permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Your Photos&lt;/h2&gt;
&lt;p&gt;Assuming you use your smartphone as your camera, it&apos;s important to realize that when you take a photo that photo contains more than just a picture of you flexing in front of a mirror. It also contains metadata about the photo. Most significantly the time the photo was taken, and &lt;strong&gt;where&lt;/strong&gt; the photo was taken (in the form of GPS coordinates).&lt;/p&gt;
&lt;p&gt;This means that when you post that cute pic of you eating some delish Gnocchi at that fab restaurant to your blog or other such websites/services, someone can download that photo, and then find exactly where and when you took it.&lt;/p&gt;
&lt;p&gt;The simplest way to prevent this issue is to simply disable location services on the camera app (iOS). However, you can also leave it on, and iOS provides utilities to remove metadata when sharing photos.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Action Item:&lt;/strong&gt; Disable location services in the camera app.&lt;/p&gt;
&lt;h2 id=&quot;your-emails&quot;&gt;&lt;a href=&quot;#your-emails&quot; aria-label=&quot;your emails permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Your Emails&lt;/h2&gt;
&lt;p&gt;Your email service provider (think Gmail) is effectively reading all your emails (unless of course you&apos;re already using one that focuses on privacy). &quot;Read&quot; here doesn&apos;t mean that a human being is physically reading your emails (although that is within the realm of possibility). There are computer programs that are parsing the text of your emails and extracting information from them that is then used however the service provider sees fit (e.g. marketing to you or selling it to other companies).&lt;/p&gt;
&lt;p&gt;Something else that&apos;s worth taking into consideration is how readily these service providers will give your data to the government at their request. In the post-Snowden era, it&apos;s important to understand that mass surveillance programs are violating the privacy of law-abiding citizens. Most citizens are largely uninterested in such topics and haven&apos;t done much research or considered the nuance of the arguments at play. If you fall into that camp, then I&apos;d urge you that it&apos;s your civic responsibility to become educated on the matter.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Action Item:&lt;/strong&gt; Switch to a privacy-focused email provider like Zoho or Protonmail.&lt;/p&gt;
&lt;h2 id=&quot;your-messages&quot;&gt;&lt;a href=&quot;#your-messages&quot; aria-label=&quot;your messages permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Your Messages&lt;/h2&gt;
&lt;p&gt;Using Facebook Messenger? Google Chat? [Insert Name Here]?&lt;/p&gt;
&lt;p&gt;Yeah... they&apos;re reading your messages. Basically, this situation is identical to the Email one, so make sure you&apos;re using a secure messaging service; I highly recommend Signal. If you want to get all nerdy about it Signal is end-to-end encrypted and all messages and communications are ephemeral in the context of Signals servers (meaning they don&apos;t store your data longterm). Moreover, they&apos;re a non-profit, meaning that they can&apos;t get purchased by a large corporation and then turned against you (think Facebook). And their code is all open-source, which is a plus, as it means you could personally verify there&apos;s nothing nefarious going on if you were so inclined.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Action Item:&lt;/strong&gt; Switch your communications over to &lt;a href=&quot;https://signal.org/&quot;&gt;Signal&lt;/a&gt; or (Telegram)[https://telegram.org/].&lt;/p&gt;
&lt;h2 id=&quot;your-isp-and-dns&quot;&gt;&lt;a href=&quot;#your-isp-and-dns&quot; aria-label=&quot;your isp and dns permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Your ISP and DNS&lt;/h2&gt;
&lt;h4 id=&quot;isp&quot;&gt;&lt;a href=&quot;#isp&quot; aria-label=&quot;isp permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;ISP&lt;/h4&gt;
&lt;p&gt;Your &lt;a href=&quot;https://en.wikipedia.org/wiki/Internet_service_provider&quot;&gt;ISP&lt;/a&gt;, or internet provider (think Comcast), doesn&apos;t just make money off of you by charging you a monthly fee to be connected to the internet. Nope. They also track all the data they possibly can on your internet traffic and store it, then turn around and sell that data to other companies.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&quot;How can this be?!?!&quot;&lt;/em&gt;, you wonder. &lt;em&gt;&quot;I always use HTTPS, and my network has a password. Shouldn&apos;t that mean that no one can spy on my internet traffic?&quot;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Well, most of your traffic is private. However, there&apos;s still a lot of information that isn&apos;t. Like what websites and you&apos;re visiting and when. All of this gets stored on a profile that your ISP builds for you (more specifically for the IP Address they assigned to you).&lt;/p&gt;
&lt;h4 id=&quot;dns&quot;&gt;&lt;a href=&quot;#dns&quot; aria-label=&quot;dns permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;DNS&lt;/h4&gt;
&lt;p&gt;To make matters worse, your ISP isn&apos;t your only problem. Without getting into to much detail, every time you go to a website, your computer first asks a computer called a &quot;DNS server&quot; where that website exists. The companies who own these computers collect all the data they can on these requests, file it away, and then sell it.&lt;/p&gt;
&lt;p&gt;You can stop all this from happening by purchasing something called a VPN service. Whenever your VPN is enabled it wraps all of your internet traffic in an additional layer of protection which makes it impossible for your ISP to spy on you. Some examples of companies that provide such services are NordVPN and ExpressVPN.&lt;/p&gt;
&lt;p&gt;It&apos;s important to note that there are some tradoffs that come with VPN&apos;s. There are some services that will attempt to detect if you&apos;re using a VPN and deny you service (e.g. not being able to stream videos on your favorite streaming platform). Of course you can always temporarily turn your VPN off when using such services. Lastly, they will make your internet a tiny bit slower. Bottom line though, before you purchase a VPN you should do a little homework to make sure that it&apos;s going to work well for you.&lt;/p&gt;
&lt;p&gt;If you can&apos;t afford a VPN service (and you&apos;re moderately technical), you can simply start using 1.1.1.1 or 1.0.0.1 as your DNS Server.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Action Item:&lt;/strong&gt; Get a VPN like Nord or Express.&lt;/p&gt;</content:encoded><dc:creator>Jacob Spizziri</dc:creator><author>Jacob Spizziri</author><category>privacy</category><category>internet</category><category>google</category><category>chrome</category><category>firefox</category><category>duckduckgo</category></item><item><title><![CDATA[Shutting Down Marianberry]]></title><description><![CDATA[Dear Friends, Marianberry was a project I started as a way for my wife and me to more easily practice NFP with the Creighton method. It's…]]></description><link>https://jspizziri.com/blog/shutting-down-marianberry/</link><guid isPermaLink="false">https://jspizziri.com/blog/shutting-down-marianberry/</guid><pubDate>Thu, 26 Dec 2019 00:00:00 GMT</pubDate><enclosure url="https://jspizziri.com/images/marianberry-2-small.png" length="0" type="image/png"/><subtitle>Thank you for the last 2 years!</subtitle><content:encoded>&lt;img src=&quot;https://jspizziri.com/images/marianberry-2-small.png&quot; /&gt;&lt;p&gt;Dear Friends,&lt;/p&gt;
&lt;p&gt;Marianberry was a project I started as a way for my wife and me to more easily practice NFP with the Creighton method. It&apos;s been a labor of love over the last 2 years as it was something I really believed in. For a variety of reasons outlined below, Marianberry will be shutting down for good January 31st, 2020. Thank you for using Marianberry. It&apos;s been fun.&lt;/p&gt;
&lt;p&gt;To see why we&apos;re shutting down, and what it means for you please read on.&lt;/p&gt;
&lt;p&gt;God bless, Jacob Spizziri&lt;/p&gt;
&lt;h2 id=&quot;why-are-you-shutting-down&quot;&gt;&lt;a href=&quot;#why-are-you-shutting-down&quot; aria-label=&quot;why are you shutting down permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Why Are You Shutting Down?&lt;/h2&gt;
&lt;h4 id=&quot;1-a-cease--desist&quot;&gt;&lt;a href=&quot;#1-a-cease--desist&quot; aria-label=&quot;1 a cease  desist permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;1. A Cease &amp;#x26; Desist&lt;/h4&gt;
&lt;p&gt;The Pope Paul VI Institute has asked me to cease and desist my efforts on Marianberry, as it incorporates some of their work. Despite my efforts to work with them to make Creighton a better place, including offering to donate the Marianberry platform to their organization they seem intent on ensuring that Creighton never leverages the power of technology. It would be wrong of me to pretend as though this wasn&apos;t deeply frustrating for me; however, I&apos;m sure that they have their users&apos; best intentions at heart, albeit misguided from my perspective.&lt;/p&gt;
&lt;h4 id=&quot;2-increasing-costs--growing-needs&quot;&gt;&lt;a href=&quot;#2-increasing-costs--growing-needs&quot; aria-label=&quot;2 increasing costs  growing needs permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;2. Increasing Costs &amp;#x26; Growing Needs&lt;/h4&gt;
&lt;p&gt;As Marianberry has grown over the years, there&apos;s been an increasing number of users with an increasing number of needs. Marianberry is really a team of just one person: me, and as such it&apos;s been increasingly difficult to give it the attention it deserves, as it&apos;s relegated to my free time, which is becoming less and less (especially now that I&apos;m a father 🎉). Moreover, it actually costs money to keep Marianberry running, which has been something my wife and I have been happy to do until now, however with the growing costs it&apos;s something we&apos;ve discerned to stop.&lt;/p&gt;
&lt;h2 id=&quot;what-do-i-do-now&quot;&gt;&lt;a href=&quot;#what-do-i-do-now&quot; aria-label=&quot;what do i do now permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;What do I do Now?&lt;/h2&gt;
&lt;h4 id=&quot;1-migrate-your-data&quot;&gt;&lt;a href=&quot;#1-migrate-your-data&quot; aria-label=&quot;1 migrate your data permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;1. Migrate Your Data&lt;/h4&gt;
&lt;p&gt;Please make sure you download all your data from Marianberry before it shuts down. I will be archiving the data and keeping it stored for 6 months after Marianberry&apos;s shutdown to help anyone who wasn&apos;t notified of the shutdown in time to get their data.&lt;/p&gt;
&lt;h4 id=&quot;2-find-an-alternative&quot;&gt;&lt;a href=&quot;#2-find-an-alternative&quot; aria-label=&quot;2 find an alternative permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;2. Find An Alternative&lt;/h4&gt;
&lt;p&gt;As outlined above, I believe that the Pope Paul VI Institute will never allow for or provide a digital platform for their method, despite there being rumors or suggestions that it will happen. Their actions in this instance and numerous past instances support that in my opinion. As a result, I firmly believe that the Creighton Method as we know it now is going to be completely left behind in the next decade. My advice would be to change methods now, to a method which is going to provide such support. &lt;a href=&quot;https://femmhealth.org/&quot;&gt;My recommendation would be FEMM&lt;/a&gt; (this is what my wife and I will be switching to). FEMM is based on solid research, is available on Android and iOS, and is, more importantly a company which I strongly believe is ethical, pro-family, pro-woman, and pro-life.&lt;/p&gt;</content:encoded><dc:creator>Jacob Spizziri</dc:creator><author>Jacob Spizziri</author><category>internet</category><category>projects</category></item><item><title><![CDATA[Inbox Zero]]></title><description><![CDATA[TL;DR Think about our emails in 3 distinct categories: Emails that are actionable immediately. Emails that are non-actionable. Emails that…]]></description><link>https://jspizziri.com/blog/inbox-zero-stop-emailing-like-a-caveman/</link><guid isPermaLink="false">https://jspizziri.com/blog/inbox-zero-stop-emailing-like-a-caveman/</guid><pubDate>Fri, 19 Jul 2019 00:00:00 GMT</pubDate><enclosure url="https://jspizziri.com/images/inbox-zero.jpg" length="0" type="image/jpeg"/><subtitle>Stop Using Email Like A Caveman</subtitle><content:encoded>&lt;img src=&quot;https://jspizziri.com/images/inbox-zero.jpg&quot; /&gt;&lt;h2 id=&quot;tldr&quot;&gt;&lt;a href=&quot;#tldr&quot; aria-label=&quot;tldr permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;TL;DR&lt;/h2&gt;
&lt;p&gt;Think about our emails in 3 distinct categories:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Emails that are actionable immediately.&lt;/li&gt;
&lt;li&gt;Emails that are non-actionable.&lt;/li&gt;
&lt;li&gt;Emails that are actionable, but not immediately (actionable at some future point).&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Then change your behavior:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Archive any email that is non-actionable.&lt;/li&gt;
&lt;li&gt;Archive any email that you just responded to.&lt;/li&gt;
&lt;li&gt;Snooze any email that are actionable at some future point.&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id=&quot;here-we-go&quot;&gt;&lt;a href=&quot;#here-we-go&quot; aria-label=&quot;here we go permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Here We Go&lt;/h2&gt;
&lt;p&gt;If you want to be effective in your job or even maybe your life, you &lt;strong&gt;need&lt;/strong&gt; to be effective at email. But it can be maddening! You&apos;re getting floods of emails constantly, how do you keep them straight? How do you not get stressed? How do make sure you&apos;re getting everyone the answers they need? How do you make sure you don&apos;t forget something?&lt;/p&gt;
&lt;p&gt;Enter: Inbox Zero, an email management &lt;em&gt;strategy&lt;/em&gt; that can work with pretty much any email provider.&lt;/p&gt;
&lt;h4 id=&quot;you-before-inbox-zero&quot;&gt;&lt;a href=&quot;#you-before-inbox-zero&quot; aria-label=&quot;you before inbox zero permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;You before Inbox Zero&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://i.giphy.com/3o7522WMYYkseyBo1G.gif&quot; alt=&quot;Santa Drowning In Mail&quot;&gt;&lt;/p&gt;
&lt;h4 id=&quot;you-after-inbox-zero&quot;&gt;&lt;a href=&quot;#you-after-inbox-zero&quot; aria-label=&quot;you after inbox zero permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;You after Inbox Zero**&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://i.giphy.com/ErdfMetILIMko.gif&quot; alt=&quot;Baby Ninja&quot;&gt;&lt;/p&gt;
&lt;p&gt;**Note: inbox zero will not magically make you able to do a backflip&lt;/p&gt;
&lt;h2 id=&quot;how-does-it-work&quot;&gt;&lt;a href=&quot;#how-does-it-work&quot; aria-label=&quot;how does it work permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;How Does it Work?&lt;/h2&gt;
&lt;p&gt;Inbox Zero is pretty simple. The basic idea is that at any given point in time, your inbox should contain 0 emails. That&apos;s the goal: zero, zilch, zip. &lt;strong&gt;We want no emails 0 our inbox!&lt;/strong&gt; Before you freak out, the below concept will easily help you achieve this.&lt;/p&gt;
&lt;p&gt;The first thing that we do is we start thinking about our emails in 3 distinct categories:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Emails that are actionable immediately.&lt;/li&gt;
&lt;li&gt;Emails that are non-actionable.&lt;/li&gt;
&lt;li&gt;Emails that are actionable, but not immediately (actionable at some future point).&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; By &quot;actionable&quot; here, we mean emails that require &lt;em&gt;you&lt;/em&gt; to do something with them (or in other words to take some action).&lt;/p&gt;
&lt;p&gt;Then change your behavior:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Archive any email that is non-actionable.&lt;/li&gt;
&lt;li&gt;Archive any email that you just responded to.&lt;/li&gt;
&lt;li&gt;Snooze any email that are actionable at some future point.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;deep-dive&quot;&gt;&lt;a href=&quot;#deep-dive&quot; aria-label=&quot;deep dive permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Deep Dive&lt;/h2&gt;
&lt;p&gt;If at this point you get it, no need to read further. There&apos;s just more juicy details below.&lt;/p&gt;
&lt;h4 id=&quot;emails-that-are-actionable-immediately&quot;&gt;&lt;a href=&quot;#emails-that-are-actionable-immediately&quot; aria-label=&quot;emails that are actionable immediately permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Emails that are actionable immediately&lt;/h4&gt;
&lt;p&gt;Really, this is the only kind of email that you should &lt;em&gt;actually&lt;/em&gt; be concerned with. These are the emails that require you to do something. So what do you do? Take the necessary action. Respond with the answer to someones question, etc.&lt;/p&gt;
&lt;p&gt;Once you&apos;ve done this these emails are now considered part of &quot;Non-actionable&quot; category. Why? Well... because you&apos;ve just taken the action that was needed, and the ball is no longer in your court.&lt;/p&gt;
&lt;h4 id=&quot;emails-that-are-non-actionable&quot;&gt;&lt;a href=&quot;#emails-that-are-non-actionable&quot; aria-label=&quot;emails that are non actionable permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Emails that are non-actionable&lt;/h4&gt;
&lt;p&gt;These emails are done :confetti_ball:. They could be spam emails, marketing emails, or even the emails we just responded to in &lt;a href=&quot;#emails-that-are-actionable-immediately&quot;&gt;from the first category&lt;/a&gt;. We still want to keep them around for historical purposes, so we don&apos;t delete them, however we need to get them out of our inbox. What do we do?&lt;/p&gt;
&lt;p&gt;We &lt;strong&gt;ARCHIVE&lt;/strong&gt; them. This gets them out of your inbox, and out of your face!&lt;/p&gt;
&lt;p&gt;Don&apos;t know how to archive an email? Here, &lt;a href=&quot;https://lmgtfy.com/?q=how+to+archive+emails+in+gmail&amp;#x26;s=&quot;&gt;this may help&lt;/a&gt;.&lt;/p&gt;
&lt;h4 id=&quot;emails-that-are-actionable-but-not-immediately&quot;&gt;&lt;a href=&quot;#emails-that-are-actionable-but-not-immediately&quot; aria-label=&quot;emails that are actionable but not immediately permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Emails that are actionable, but not immediately&lt;/h4&gt;
&lt;p&gt;A lot of the time these are the worst offenders for cluttering up our inbox and creating stress:&lt;/p&gt;
&lt;p&gt;We get an important looking email, we open it and read through it only to find that it is important, but not until next week, or some time in the future where we need to do something (respond/perform some task and then let someone know, etc.). So now we have this email, which is marked as &quot;read&quot; sitting in our inbox, and slowly being buried alive. Quite naturally this creates stress in a normal human. We need to make a mental note, or some sort of note to make sure we &lt;strong&gt;don&apos;t forget about that email&lt;/strong&gt; until next Wednesday or whenever.&lt;/p&gt;
&lt;p&gt;This is where your email tool will help you out. Any modern email service will provide a &quot;snooze&quot; functionality, which effectively allows you to pick a date that you want that email to magically reappear in your inbox, as if it had just been sent to you.&lt;/p&gt;
&lt;p&gt;Here&apos;s how to &lt;a href=&quot;https://support.google.com/mail/answer/7622010?co=GENIE.Platform%3DDesktop&amp;#x26;hl=en&quot;&gt;do it with Gmail&lt;/a&gt; (for real this time).&lt;/p&gt;
&lt;p&gt;If your email provider doesn&apos;t have a &quot;snooze&quot; feature, well... I&apos;m sorry, you&apos;re pretty much out of luck. When we have caveman tools we have to live like cavemen. I&apos;d suggest switching email providers at this point.&lt;/p&gt;</content:encoded><dc:creator>Jacob Spizziri</dc:creator><author>Jacob Spizziri</author><category>productivity</category><category>email</category></item><item><title><![CDATA[Baby Cams & Nest]]></title><description><![CDATA[My reflections after 7 months of using a Nest Indoor Cam as a baby monitor solution. Problem: I need a baby cam... but they all suck. Baby…]]></description><link>https://jspizziri.com/blog/baby-cams-and-nest-frustrations-of-a-father-in-tech/</link><guid isPermaLink="false">https://jspizziri.com/blog/baby-cams-and-nest-frustrations-of-a-father-in-tech/</guid><pubDate>Sat, 22 Jun 2019 00:00:00 GMT</pubDate><enclosure url="https://jspizziri.com/images/test-screen.png" length="0" type="image/png"/><subtitle>Frustrations Of A Father In Tech</subtitle><content:encoded>&lt;img src=&quot;https://jspizziri.com/images/test-screen.png&quot; /&gt;&lt;p&gt;My reflections after 7 months of using a Nest Indoor Cam as a baby monitor solution.&lt;/p&gt;
&lt;h3 id=&quot;problem-i-need-a-baby-cam-but-they-all-suck&quot;&gt;&lt;a href=&quot;#problem-i-need-a-baby-cam-but-they-all-suck&quot; aria-label=&quot;problem i need a baby cam but they all suck permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Problem: I need a baby cam... but they all suck.&lt;/h3&gt;
&lt;p&gt;Baby cams are one of the many things that seem to still be stuck in the early 2000s technologically speaking. Moreover, who wants to spend $50-$100 on garbage hardware in software that has such a limited use-case you&apos;re just going to throw it away in a few years. So naturally, as a new father who is a tech professional, the standard baby cam products on the market weren&apos;t going to cut it.&lt;/p&gt;
&lt;p&gt;Here are the requirements:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Modern Hardware &amp;#x26; Software that&apos;ll last several years&lt;/li&gt;
&lt;li&gt;A corresponding smartphone app to live stream video&lt;/li&gt;
&lt;li&gt;2-way audio support (we can hear baby, we can talk to baby if needed)&lt;/li&gt;
&lt;li&gt;Great Security (no creepers please)&lt;/li&gt;
&lt;li&gt;Do I need CCTV or a non-wifi enabled device? No. those are just security measures. If we find a camera that we can trust the security of, then we should be good to go.&lt;/li&gt;
&lt;li&gt;Something that can be repurposed and isn&apos;t pointless when baby&apos;s a little older&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;solution-smart-cams&quot;&gt;&lt;a href=&quot;#solution-smart-cams&quot; aria-label=&quot;solution smart cams permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Solution: Smart Cams&lt;/h3&gt;
&lt;p&gt;Not a problem, a minimal amount of creative thinking and problem solving yielded &lt;strong&gt;the obvious answer. A smart cam.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Alright, I&apos;m already bought into Nest ecosystem at this point with some Nest Protects and a Nest thermostat; so a Nest Cam it is. It&apos;s a solution that seems to check all the boxes. So here&apos;s what we&apos;ll get:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;https://store.google.com/us/product/nest_cam&quot;&gt;Nest Indoor Cam&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;My old iPhone 6 (for the stand-alone monitor)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.amazon.com/Spigen-Universal-Kickstand-Compatible-Cellphone/dp/B01LW6NN8T/ref=asc_df_B01LW6NN8T/&quot;&gt;Spigen Kickstand&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Sure, it&apos;s a little more expensive, but for a solution that can be reused to solve other problems, it&apos;s a small price to pay.&lt;/p&gt;
&lt;h3 id=&quot;the-cons&quot;&gt;&lt;a href=&quot;#the-cons&quot; aria-label=&quot;the cons permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;The Con&apos;s&lt;/h3&gt;
&lt;h4 id=&quot;you-cant-take-them-with-you&quot;&gt;&lt;a href=&quot;#you-cant-take-them-with-you&quot; aria-label=&quot;you cant take them with you permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;You can&apos;t take them with you&lt;/h4&gt;
&lt;p&gt;Ok. So you can take them with you, it&apos;s just not super convenient.&lt;/p&gt;
&lt;p&gt;The first time the grandparents want you to stay over at their house the panic sets in: &quot;How will we make sure she isn&apos;t screaming? We can&apos;t easily take our smart cam with us?&quot;. My recommendation here is to just buy a super cheap audio monitor. It&apos;s good enough for a night or two here and there.&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id=&quot;bandwidth--service-outages&quot;&gt;&lt;a href=&quot;#bandwidth--service-outages&quot; aria-label=&quot;bandwidth  service outages permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Bandwidth &amp;#x26; Service Outages&lt;/h4&gt;
&lt;p&gt;The Nest Cam App is apparently not built for continuous video streaming for extended periods of time. After about 45min of streaming on the app, there&apos;s an error that takes you out of the stream and you need to click back into it. The big problem with this is that if you&apos;re not paying attention and restart the stream when this occurs, your device thinks that it&apos;s not being used and goes to sleep. This means that you might think you&apos;re monitoring baby, but actually your device is sleeping, so if there&apos;s any screaming or movement going on, you&apos;re going to be completely unaware of it.&lt;/p&gt;
&lt;p&gt;It&apos;s possible that this is a network connectivity issue; however, we have average internet (a mid-grade cable package). When you&apos;re downstairs streaming Netflix because baby is finally asleep and your monitor keeps going out because of you apparently don&apos;t have enough bandwidth to support both video streams and whatever else is randomly going on on your network, it kind of harshes the let&apos;s-finally-spend-some-hang-time-as-a-couple-vibe that you just had going for you.&lt;/p&gt;
&lt;p&gt;Additionally, Nest goes down... a lot... (looking at you Google :angry:). Perhaps this has been a particularly frustrating 12 months for Nest &amp;#x26; Google, but they&apos;ve had a pretty significant service outage at least once a quarter if not more, and quite frankly, I&apos;m over it.&lt;/p&gt;
&lt;p&gt;This has been probably the single &lt;strong&gt;most&lt;/strong&gt; frustrating thing about using the Nest Cam in this capacity.&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id=&quot;internet-dependency&quot;&gt;&lt;a href=&quot;#internet-dependency&quot; aria-label=&quot;internet dependency permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Internet Dependency&lt;/h4&gt;
&lt;p&gt;That&apos;s right, it needs a connection to the internet. No internet. No worky. No monitor.&lt;/p&gt;
&lt;p&gt;So that means when your electric provider decides to do some work on the power lines or there&apos;s a storm in the area and screws up your cable: No monitor.&lt;/p&gt;
&lt;p&gt;This leads to my second largest beef with the Nest Cam.&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id=&quot;cloud-storage-only&quot;&gt;&lt;a href=&quot;#cloud-storage-only&quot; aria-label=&quot;cloud storage only permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Cloud Storage Only&lt;/h4&gt;
&lt;p&gt;If you want to access historical video with your Nest Cam, your out of luck unless you want to pay a ba-gillion dollars for their cloud storage service. So that means you get realtime only with some occasional completely useless still images when it detects activity.&lt;/p&gt;
&lt;p&gt;Nest does &lt;strong&gt;not&lt;/strong&gt; give you the option to stream your video to a local storage device on your local network. Which again, is not only frustrating because they want you to take out a second mortgage to get video streaming, but it would also greatly alleviate the issues mentioned above with the bandwidth and internet outages.&lt;/p&gt;
&lt;h3 id=&quot;if-i-did-it-over-again&quot;&gt;&lt;a href=&quot;#if-i-did-it-over-again&quot; aria-label=&quot;if i did it over again permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;If I Did It Over Again&lt;/h3&gt;
&lt;p&gt;If I were going to do it over again I&apos;d add 2 requirements to my original list:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Modern Hardware &amp;#x26; Software that&apos;ll last several years&lt;/li&gt;
&lt;li&gt;A corresponding smartphone app to live stream video&lt;/li&gt;
&lt;li&gt;2-way audio support (we can hear baby, we can talk to baby if needed)&lt;/li&gt;
&lt;li&gt;Great Security (no creepers please)&lt;/li&gt;
&lt;li&gt;Do I need CCTV or a non-wifi enabled device? No. those are just security measures. If we find a camera that we can trust the security of, then we should be good to go.&lt;/li&gt;
&lt;li&gt;Something that can be repurposed and isn&apos;t pointless when baby&apos;s a little older&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Local streaming &amp;#x26; Local Storage&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Get a cheap audio monitor for travel&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The local streaming would solve bandwidth issues, and provide a better service where I could scrub to earlier in a day and see exactly what was going on without having to pay Nest every month.&lt;/p&gt;
&lt;p&gt;This is what my shopping list would look like:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;https://store.google.com/us/product/nest_cam&quot;&gt;Nest Indoor Cam&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;My old iPhone 6 (for the stand-alone monitor)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.amazon.com/Spigen-Universal-Kickstand-Compatible-Cellphone/dp/B01LW6NN8T/ref=asc_df_B01LW6NN8T/&quot;&gt;Spigen Kickstand&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.synology.com/en-global/products&quot;&gt;A Synology&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Probably something from their &quot;Value Series&quot; like the DS418play or DS218play&lt;/li&gt;
&lt;li&gt;Something like a &lt;a href=&quot;https://www.amazon.com/Foscam-Security-Surveillance-Detection-Available/dp/B07DJ5RSTM/&quot;&gt;FosCam&lt;/a&gt; or an &lt;a href=&quot;https://www.amazon.com/dp/B0145OQTPG/&quot;&gt;Amcrest Cam&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The Synology is a little expensive sure, but they&apos;re awesome and multi-purpose. They can be used for network file storage, computer backups, a dropbox replacement, aaaand they have something called &quot;Surveillance Staton&quot; built into them, that&apos;ll record video streamed from an IP cam.&lt;/p&gt;
&lt;p&gt;I&apos;d connect my IP cam up to my Synology, and I&apos;d be off.&lt;/p&gt;
&lt;p&gt;Hope you found this helpful!&lt;/p&gt;</content:encoded><dc:creator>Jacob Spizziri</dc:creator><author>Jacob Spizziri</author><category>nest</category><category>babycam</category><category>dad stuff</category></item><item><title><![CDATA[Angular + Cordova]]></title><description><![CDATA[Lets port a new angular project to Cordova without using Ionic or NativeScript. Why? Because those frameworks can sometimes be too…]]></description><link>https://jspizziri.com/blog/angular-cordova/</link><guid isPermaLink="false">https://jspizziri.com/blog/angular-cordova/</guid><pubDate>Sat, 21 Jul 2018 00:00:00 GMT</pubDate><enclosure url="https://jspizziri.com/images/banner-angularjs.jpg" length="0" type="image/jpeg"/><subtitle>An Unopinionated Implementation</subtitle><content:encoded>&lt;img src=&quot;https://jspizziri.com/images/banner-angularjs.jpg&quot; /&gt;&lt;p&gt;Lets port a new angular project to Cordova without using Ionic or NativeScript. &lt;strong&gt;Why?&lt;/strong&gt; Because those frameworks can sometimes be too opinionated and constraining. By the end of this article, you&apos;ll have a functioning angular/cordova project which will be as loosely coupled with Cordova as possible. You&apos;ll be able to conform to the angular style conventions, and install whatever plugins, frameworks, or libraries you desire. (e.g. bootstrap, ng-bootstrap, pug, etc.)&lt;/p&gt;
&lt;p&gt;First, I&apos;d like to &lt;a href=&quot;https://www.becompany.ch/en/blog/2016/10/19/creating-apache-cordova-app-with-angular2&quot;&gt;give credit to this post&lt;/a&gt; as it&apos;s what got me heading in the right direction however I found it to be a little incomplete.&lt;/p&gt;
&lt;p&gt;You can find the demo source code &lt;a href=&quot;https://github.com/jspizziri/hello-cordova&quot;&gt;here&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;Ok. Lets Get Started.&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;1-setup-a-vanilla-angular-app&quot;&gt;&lt;a href=&quot;#1-setup-a-vanilla-angular-app&quot; aria-label=&quot;1 setup a vanilla angular app permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;1. Setup A Vanilla Angular App&lt;/h3&gt;
&lt;p&gt;First we&apos;re going to create a vanilla angular 6 project called &lt;code class=&quot;language-text&quot;&gt;hello-cordova&lt;/code&gt; with the following command: &lt;code class=&quot;language-text&quot;&gt;ng new hello-cordova&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Some things you may want to do at this point would be to install and configure things like &lt;code class=&quot;language-text&quot;&gt;bootstrap&lt;/code&gt; &amp;#x26; &lt;code class=&quot;language-text&quot;&gt;ng-bootstrap&lt;/code&gt; or any other angular library&apos;s you&apos;re interested in working with.&lt;/p&gt;
&lt;h3 id=&quot;2-basic-cordova-setup&quot;&gt;&lt;a href=&quot;#2-basic-cordova-setup&quot; aria-label=&quot;2 basic cordova setup permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;2. Basic Cordova Setup&lt;/h3&gt;
&lt;p&gt;Now that we have a basic angular app running with &lt;code class=&quot;language-text&quot;&gt;npm start&lt;/code&gt; we&apos;re going to create some basic scaffolding to setup our cordova build.&lt;/p&gt;
&lt;p&gt;First let&apos;s make sure we have the cordova cli installed: &lt;code class=&quot;language-text&quot;&gt;npm install -g cordova&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Now let&apos;s create a basic cordova app. We&apos;re going to create the cordova app in a &lt;code class=&quot;language-text&quot;&gt;cordova&lt;/code&gt; subdirectory and give it an id of &lt;code class=&quot;language-text&quot;&gt;com.hellocordova.www&lt;/code&gt; and a name of &lt;code class=&quot;language-text&quot;&gt;Hello Cordova&lt;/code&gt;.&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;text&quot;&gt;&lt;pre class=&quot;language-text&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;cordova create cordova com.hellocordova.www &amp;quot;Hello Cordova&amp;quot;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Now let&apos;s add some git tracking files to ignore some build files and keep directories:&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;text&quot;&gt;&lt;pre class=&quot;language-text&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;touch cordova/.gitignore
touch cordova/www/.gitkeep&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;And add the following to &lt;code class=&quot;language-text&quot;&gt;cordova/.gitignore&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;text&quot;&gt;&lt;pre class=&quot;language-text&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;node_modules
www/*
!www/.gitkeep
platforms
plugins&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Finally, let&apos;s add the iOS platform. To add platforms (and plugins) we&apos;ll want to make sure we&apos;re in the &lt;code class=&quot;language-text&quot;&gt;cordova&lt;/code&gt; directory and then run the following:&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;text&quot;&gt;&lt;pre class=&quot;language-text&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;cordova platform add ios&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 id=&quot;3-add-scripts&quot;&gt;&lt;a href=&quot;#3-add-scripts&quot; aria-label=&quot;3 add scripts permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;3. Add Scripts&lt;/h3&gt;
&lt;p&gt;In the &lt;strong&gt;root&lt;/strong&gt; directory of our project (not the one in the &lt;code class=&quot;language-text&quot;&gt;cordova&lt;/code&gt; folder), lets add some basic scripts to the &lt;code class=&quot;language-text&quot;&gt;package.json&lt;/code&gt; to automate a few things:&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;text&quot;&gt;&lt;pre class=&quot;language-text&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;&amp;quot;clean&amp;quot;: &amp;quot;rm -rf dist cordova/www/* &amp;amp;&amp;amp; touch cordova/www/.gitkeep&amp;quot;,
&amp;quot;build:cordova&amp;quot;: &amp;quot;npm run clean &amp;amp;&amp;amp; ng build --base-href=. --output-path=cordova/www&amp;quot;,
&amp;quot;cordova:prepare&amp;quot;: &amp;quot;cd cordova &amp;amp;&amp;amp; rm -rf platforms plugins node_modules &amp;amp;&amp;amp; npm ci &amp;amp;&amp;amp; cordova prepare &amp;amp;&amp;amp; cd ..&amp;quot;,
&amp;quot;cordova:build:ios&amp;quot;: &amp;quot;npm run build:cordova &amp;amp;&amp;amp; cd cordova &amp;amp;&amp;amp; cordova build ios &amp;amp;&amp;amp; cd ..&amp;quot;,
&amp;quot;cordova:emulate:ios&amp;quot;: &amp;quot;npm run cordova:build:ios &amp;amp;&amp;amp; cd cordova &amp;amp;&amp;amp; cordova emulate ios &amp;amp;&amp;amp; cd ..&amp;quot;,
&amp;quot;open:xcode&amp;quot;: &amp;quot;open $(find ./cordova/platforms/ios -name &amp;#39;*.xcworkspace&amp;#39;)&amp;quot;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;We&apos;re also going to modify the &lt;code class=&quot;language-text&quot;&gt;build&lt;/code&gt; script to be the following:&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;text&quot;&gt;&lt;pre class=&quot;language-text&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;&amp;quot;build&amp;quot;: &amp;quot;ng build --base-href=/&amp;quot;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;This will give you the following utilities:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code class=&quot;language-text&quot;&gt;npm run cordova:prepare&lt;/code&gt; - Other devs should be able to run this script to initialize the Cordova app in their environment.&lt;/li&gt;
&lt;li&gt;&lt;code class=&quot;language-text&quot;&gt;npm run open:xcode&lt;/code&gt; - Run this to easily open the project in Xcode&lt;/li&gt;
&lt;li&gt;&lt;code class=&quot;language-text&quot;&gt;npm run cordova:build:ios&lt;/code&gt; - Run this to rebuild the iOS project&lt;/li&gt;
&lt;li&gt;&lt;code class=&quot;language-text&quot;&gt;npm run cordova:emulate:ios&lt;/code&gt; - Run this to run an iOS emulator of the project&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;4-performance-improvements-400ms-delay&quot;&gt;&lt;a href=&quot;#4-performance-improvements-400ms-delay&quot; aria-label=&quot;4 performance improvements 400ms delay permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;4. Performance Improvements (400ms delay)&lt;/h3&gt;
&lt;p&gt;Yes. Now let&apos;s remove &lt;a href=&quot;https://stackoverflow.com/questions/39902055/web-app-feels-less-responsive-when-added-to-iphones-home-screen&quot;&gt;the infamous 400ms delay&lt;/a&gt; that iOS defaults on webview clicks. We&apos;re going to add &lt;a href=&quot;https://github.com/ftlabs/fastclick&quot;&gt;FastClick.js&lt;/a&gt; to our angular app.&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;text&quot;&gt;&lt;pre class=&quot;language-text&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;$ npm i fastclick&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Add the following to the top of your &lt;code class=&quot;language-text&quot;&gt;src/main.ts&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;ts&quot;&gt;&lt;pre class=&quot;language-ts&quot;&gt;&lt;code class=&quot;language-ts&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;as&lt;/span&gt; FastClick &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;fastclick&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;// attach FastClick.js&lt;/span&gt;
FastClick&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;attach&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;document&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;body&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; this should be added to main.ts as close to the top as possible so it executes immediately.&lt;/p&gt;
&lt;h3 id=&quot;5-initializing-plugins&quot;&gt;&lt;a href=&quot;#5-initializing-plugins&quot; aria-label=&quot;5 initializing plugins permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;5. Initializing Plugins&lt;/h3&gt;
&lt;p&gt;Now if you want to install other plugins you&apos;ll need to configure them. This can be done in the &lt;code class=&quot;language-text&quot;&gt;ngOnInit()&lt;/code&gt; of your &lt;code class=&quot;language-text&quot;&gt;app.component.ts&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;ts&quot;&gt;&lt;pre class=&quot;language-ts&quot;&gt;&lt;code class=&quot;language-ts&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;// src/app/app.component.ts&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; Component&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; OnInit &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;@angular/core&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; CordovaService &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;./service/cordova.service&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

@&lt;span class=&quot;token function&quot;&gt;Component&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  selector&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;app-root&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  templateUrl&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;./app.component.html&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  styleUrls&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&apos;./app.component.css&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;AppComponent&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;implements&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;OnInit&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  title &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;app&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

  &lt;span class=&quot;token keyword&quot;&gt;constructor&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;protected&lt;/span&gt; _cordovaService&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; CordovaService&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

  &lt;span class=&quot;token keyword&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;ngOnInit&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;_cordovaService&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;initialize&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;ts&quot;&gt;&lt;pre class=&quot;language-ts&quot;&gt;&lt;code class=&quot;language-ts&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;// src/app/service/cordova.service.ts&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; Injectable &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;@angular/core&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

@&lt;span class=&quot;token function&quot;&gt;Injectable&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;CordovaService&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;

  &lt;span class=&quot;token keyword&quot;&gt;protected&lt;/span&gt; hasBegunInitialization&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token builtin&quot;&gt;boolean&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

  &lt;span class=&quot;token keyword&quot;&gt;constructor&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

  &lt;span class=&quot;token keyword&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;initialize&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token comment&quot;&gt;// listen for &apos;deviceready&apos; event in case it hasn&apos;t&lt;/span&gt;
    &lt;span class=&quot;token comment&quot;&gt;// already been fired during application bootstrap&lt;/span&gt;
    document&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&apos;deviceready&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
      window&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&apos;isDeviceReady&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
      &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;init&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
      &lt;span class=&quot;token builtin&quot;&gt;console&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&apos;deviceready fired after bootstrap finish&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

    &lt;span class=&quot;token comment&quot;&gt;// check if &apos;deviceready&apos; has already fired during&lt;/span&gt;
    &lt;span class=&quot;token comment&quot;&gt;// application bootstrap.&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;window&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&apos;isDeviceReady&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;init&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
      &lt;span class=&quot;token builtin&quot;&gt;console&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&apos;deviceready fired before bootstrap finish&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

  &lt;span class=&quot;token keyword&quot;&gt;protected&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;init&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;

    &lt;span class=&quot;token comment&quot;&gt;// lock initialization&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;hasBegunInitialization&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

    &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;hasBegunInitialization &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

    &lt;span class=&quot;token comment&quot;&gt;// do init stuff here&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Make sure you add a provider for the &lt;code class=&quot;language-text&quot;&gt;CordovaService&lt;/code&gt; class.&lt;/p&gt;
&lt;h3 id=&quot;troubleshooting&quot;&gt;&lt;a href=&quot;#troubleshooting&quot; aria-label=&quot;troubleshooting permalink&quot; class=&quot;anchor&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Troubleshooting&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code class=&quot;language-text&quot;&gt;Error: Cannot read property &amp;#39;replace&amp;#39; of undefined&lt;/code&gt; run &lt;code class=&quot;language-text&quot;&gt;cd platforms/ios/cordova &amp;amp;&amp;amp; npm install ios-sim&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://stackoverflow.com/questions/42830752/ionic-2-images-not-displaying-on-device&quot;&gt;Images/assets not showing up?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Whitescreen of death?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cordova doesn&apos;t like &lt;code class=&quot;language-text&quot;&gt;&amp;lt;base href=&amp;quot;/&amp;quot;&amp;gt;&amp;lt;/base&amp;gt;&lt;/code&gt;, instead use &lt;code class=&quot;language-text&quot;&gt;&amp;lt;base href=&amp;quot;.&amp;quot;&amp;gt;&amp;lt;/base&amp;gt;&lt;/code&gt; for your cordova distributions. This typically isn&apos;t what you want for your web distribution however as it can mess with your routing.&lt;/li&gt;
&lt;li&gt;If you&apos;re having this issue please take a look at the &lt;a href=&quot;#3-add-scripts&quot;&gt;Add Scripts&lt;/a&gt; section and take a look at the &lt;code class=&quot;language-text&quot;&gt;--base-href&lt;/code&gt; flags.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</content:encoded><dc:creator>Jacob Spizziri</dc:creator><author>Jacob Spizziri</author><category>angular</category><category>angular2</category><category>cordova</category></item></channel></rss>