<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Andy Granowitz</title>
    <description>Personal website and blog of Andy Granowitz
</description>
    <link>http://www.andygranowitz.com/</link>
    <atom:link href="http://www.andygranowitz.com/feed.xml" rel="self" type="application/rss+xml"/>
    <pubDate>Wed, 18 Apr 2018 10:54:18 +0000</pubDate>
    <lastBuildDate>Wed, 18 Apr 2018 10:54:18 +0000</lastBuildDate>
    <generator>Jekyll v3.7.3</generator>
    
      <item>
        <title>Empirical explanation for Craig Wright's selfish mining Bitcoin bet</title>
        <description>&lt;p&gt;Last year, Craig Wright and Peter Rizun bet 1 Bitcoin on this problem:&lt;/p&gt;

&lt;div class=&quot;image&quot;&gt;
	&lt;figure&gt;
		&lt;img src=&quot;http://www.andygranowitz.com/assets/images/selfish-mining-bet.png&quot; alt=&quot;Selfish Mining Bet&quot; class=&quot;center&quot; style=&quot;height: 400px;&quot; /&gt;
		&lt;figcaption&gt;&lt;/figcaption&gt;
	&lt;/figure&gt;
&lt;/div&gt;

&lt;p&gt;&lt;a href=&quot;https://eklitzke.org/demystifying-the-selfish-mining-bet&quot;&gt;Evan Klitzke has a good explanation&lt;/a&gt; of the problem and a theoretical explanation of why Peter is correct. As Evan explains, because “mining approximates independent trials of a random process” the expected time for an honest miner to find a block is always 15 minutes, regardless of how much time they’ve been trying to find a block. Each time a miner increments a nonce and computes a block’s hash, they have a nearly equal chance of finding the nonce that “gives the block’s hash the required zero bits”, to quote Satoshi. No progress is made no matter how many hashes the miners have performed. The time between mined blocks is &lt;a href=&quot;https://en.wikipedia.org/wiki/Memorylessness&quot;&gt;memoryless&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;But we don’t need to rely on a theoretical argument alone. In the bet, the honest miners control ⅔ of the hash power, making the expected time for an honest miner to find a block 15 minutes, as Evan explains:&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;T_expected = 10 / alpha&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Alpha of ⅔ yields 15. To empirically show why Peter is correct using real Bitcoin block time data, we’ll need to adapt the problem. By looking at the entire Bitcoin network (100% of hashpower) instead of only a subset of miners, we should expect 10 minutes until the next block is found, no matter how much time it has been since the last block was found.&lt;/p&gt;

&lt;p&gt;Let’s find out if the data supports this. &lt;a href=&quot;https://cloud.google.com/blog/big-data/2018/02/bitcoin-in-bigquery-blockchain-analytics-on-public-data&quot;&gt;BigQuery recently published all historical Bitcoin blockchain data&lt;/a&gt;. It’s an easy way to analyze Bitcoin data. I brought the data into R for analysis and visualization (full code below).&lt;/p&gt;

&lt;p&gt;One simplifying assumption: in order to analyze time between mined blocks, I sorted blocks by their timestamp. However, this likely introduces some error because some blocks’ timestamps may be unreliable. A given block’s timestamp may even be earlier than the timestamp of a prior block. &lt;a href=&quot;https://en.bitcoin.it/wiki/Block_timestamp&quot;&gt;From Bitcoin wiki&lt;/a&gt;: “A timestamp is accepted as valid if it is greater than the median timestamp of previous 11 blocks, and less than the network-adjusted time + 2 hours.” For a more sophisticated approach, see the paper “&lt;a href=&quot;https://arxiv.org/abs/1801.07447&quot;&gt;Block arrivals in the Bitcoin blockchain&lt;/a&gt;” by R. Bowden, H.P. Keeler, A.E. Krzesinski, P.G. Taylor. [1]&lt;/p&gt;

&lt;p&gt;Looking at data from 2016 [2], the mean block time is 9.61, and the distribution looks &lt;a href=&quot;https://en.wikipedia.org/wiki/Exponential_distribution&quot;&gt;exponential&lt;/a&gt;, as expected. [3]&lt;/p&gt;

&lt;div class=&quot;image&quot;&gt;
	&lt;figure&gt;
		&lt;img src=&quot;http://www.andygranowitz.com/assets/images/2016-block-times.png&quot; alt=&quot;Histogram of 2016 block times&quot; class=&quot;center&quot; style=&quot;height: 400px;&quot; /&gt;
		&lt;figcaption&gt;&lt;/figcaption&gt;
	&lt;/figure&gt;
&lt;/div&gt;

&lt;p&gt;Now, if we only look at blocks that are found more than 10 minutes since the prior block, we see that the mean time is 19.64, about 10 minutes after our 10 minute offset. The distribution looks nearly identical, only it’s offset by 10.&lt;/p&gt;

&lt;div class=&quot;image&quot;&gt;
	&lt;figure&gt;
		&lt;img src=&quot;http://www.andygranowitz.com/assets/images/time-to-next-block-gt-10.png&quot; alt=&quot;Histogram of time to next block, for blocks not found in first 10 minutes&quot; class=&quot;center&quot; style=&quot;height: 400px;&quot; /&gt;
		&lt;figcaption&gt;&lt;/figcaption&gt;
	&lt;/figure&gt;
&lt;/div&gt;

&lt;p&gt;The same pattern can be seen for offsets up to about 65 minutes. Beyond 65 minutes, although the expected time until the next block is still 10 minutes, we can’t show it empirically due to a small sample size.&lt;/p&gt;

&lt;p&gt;We can take this one step further by picking a set of random times and observing the mean time until the next block.&lt;/p&gt;

&lt;div class=&quot;image&quot;&gt;
	&lt;figure&gt;
		&lt;img src=&quot;http://www.andygranowitz.com/assets/images/block-times-random.png&quot; alt=&quot;Histogram of time to next block from 10k random times&quot; class=&quot;center&quot; style=&quot;height: 400px;&quot; /&gt;
		&lt;figcaption&gt;&lt;/figcaption&gt;
	&lt;/figure&gt;
&lt;/div&gt;

&lt;p&gt;Look familiar? It doesn’t matter what times you pick - 10 minutes since the last block was mined, totally random, every hour on the hour, your friends’ birthdays, whatever! The expected time until the next block will always be 10 minutes. [4]&lt;/p&gt;

&lt;p&gt;[1] The paper takes a more sophisticated approach to identify blocks with unreliable timestamps, and then resamples them. They identified that 5% of blocks have unreliable timestamps.&lt;/p&gt;

&lt;p&gt;[2] I chose 2016 because the BigQuery dataset has some &lt;a href=&quot;https://twitter.com/agrano/status/982909881077379072&quot;&gt;missing blocks in 2017&lt;/a&gt;, which leads to outlier block times.&lt;/p&gt;

&lt;p&gt;[3] The aforementioned paper &lt;a href=&quot;https://arxiv.org/abs/1801.07447&quot;&gt;Block arrivals in the Bitcoin blockchain&lt;/a&gt; rigorously investigates the assumption that Bitcoin blocks arrive according to a &lt;a href=&quot;https://en.wikipedia.org/wiki/Poisson_point_process&quot;&gt;Poisson process&lt;/a&gt;, and hence time between blocks follow an &lt;a href=&quot;https://en.wikipedia.org/wiki/Exponential_distribution&quot;&gt;exponential distribution&lt;/a&gt;. They note that Satoshi didn’t explicitly say that blocks arrive according to a Poisson process, but the &lt;a href=&quot;https://bitcoin.org/bitcoin.pdf&quot;&gt;original whitepaper&lt;/a&gt; includes calculations with this assumption: “Nakamoto [1] did not explicitly state that the blocks arrive according to a homogeneous Poisson process. However, the calculations in [1] are based on the assumption that the number of blocks that an attacker, mining at rate λ1, mines in the expected time z/λ2 that it takes for the community to mine z blocks at rate λ2, is Poisson with parameter λ1z/λ2, which is essentially equivalent to a Poisson process assumption.”&lt;/p&gt;

&lt;p&gt;[4] For the same reason, &lt;a href=&quot;http://r6.ca/blog/20180225T160548Z.html&quot;&gt;the times since the most recent blocks were mined will, on average, be 10 minutes&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Full code:&lt;/p&gt;

&lt;script src=&quot;https://gist.github.com/grano/4a2fc73093fd3af6707d710c7ddc6995.js&quot;&gt; &lt;/script&gt;

</description>
        <pubDate>Thu, 12 Apr 2018 00:00:00 +0000</pubDate>
        <link>http://www.andygranowitz.com/2018/04/12/empirical-explanation-craig-wright-selfish-mining-bitcoin-bet.html</link>
        <guid isPermaLink="true">http://www.andygranowitz.com/2018/04/12/empirical-explanation-craig-wright-selfish-mining-bitcoin-bet.html</guid>
        
        <category>bitcoin</category>
        
        <category>data</category>
        
        <category>data analysis</category>
        
        <category>probability</category>
        
        <category>statistics</category>
        
        <category>r</category>
        
        
      </item>
    
      <item>
        <title>OKRs</title>
        <description>&lt;p&gt;I’m a big fan of Objectives and Key Results (OKRs). Having worked both at companies that do and do not rely heavily on OKRs, I see the problems that occur when not using OKRs and the successes from using them.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Note: there are many resources on OKRs. My thinking is heavily informed by Rick Klau, Google, and Michael Dearing. For intro to OKRs, &lt;a href=&quot;https://rework.withgoogle.com/guides/set-goals-with-okrs/steps/introduction/&quot;&gt;see here&lt;/a&gt;. This post is a collection of my most salient OKR thoughts.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Problems in organizations that OKRs help solve [1]:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Cross team visibility. What is Andy’s team working on? What about Joe’s? OKRs make answering these questions straightforward for anyone in the organization.&lt;/li&gt;
  &lt;li&gt;Expose duplicative efforts: Once you’ve clearly articulated what each team is working on, teams working on related things are exposed.&lt;/li&gt;
  &lt;li&gt;Prioritization: Writing OKRs is a forcing function: e.g. will we really work on the Slack integration?&lt;/li&gt;
  &lt;li&gt;Vertical alignment: Does an individual team’s work contribute to their broader team’s OKRs? And do subteams’ and individuals’ work contribute to their team’s OKRs?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tips:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Revenue is generally not a good key result, because it is a trailing indicator.&lt;/li&gt;
  &lt;li&gt;OKR newcomers frequently write “launch product X” as either an objective or a key result. Both are bad. Your objective should answer “why are you launching the product in the first place?”, and your key results answer the question: “If we achieve our objective, what would be true?”&lt;/li&gt;
  &lt;li&gt;Key results are not todos, but rather indications that you’ve met your objective.&lt;/li&gt;
  &lt;li&gt;Rule of thumb: 3-5 objectives per team. This forces focus.&lt;/li&gt;
  &lt;li&gt;Rule of thumb: 3-5 key results per objective. Having 1 key result can lead to over optimization on one measure, and having too many can make measuring success difficult.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;[1] Other goal setting frameworks exist and can be successful. But most other goal setting frameworks are really OKRs by another name.&lt;/p&gt;
</description>
        <pubDate>Wed, 02 Aug 2017 00:00:00 +0000</pubDate>
        <link>http://www.andygranowitz.com/2017/08/02/okrs.html</link>
        <guid isPermaLink="true">http://www.andygranowitz.com/2017/08/02/okrs.html</guid>
        
        <category>okrs</category>
        
        <category>product</category>
        
        <category>management</category>
        
        
      </item>
    
      <item>
        <title>&quot;Home&quot; by Molly James</title>
        <description>&lt;p&gt;I recently sat in with the talented &lt;a href=&quot;https://www.facebook.com/mollyjamesmusic&quot;&gt;Molly James&lt;/a&gt; at the Octopus Literary Salon in Oakland, CA. Starting at &lt;a href=&quot;https://youtu.be/yCTvuW6w5ZQ?t=3m15s&quot;&gt;3:15&lt;/a&gt; I take a solo on a synthy organ sound.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;//youtube.com/embed/yCTvuW6w5ZQ&quot; allowfullscreen=&quot;&quot; frameborder=&quot;0&quot;&gt;&lt;/iframe&gt;
</description>
        <pubDate>Thu, 13 Oct 2016 00:00:00 +0000</pubDate>
        <link>http://www.andygranowitz.com/2016/10/13/home-by-molly-james.html</link>
        <guid isPermaLink="true">http://www.andygranowitz.com/2016/10/13/home-by-molly-james.html</guid>
        
        <category>music</category>
        
        <category>piano</category>
        
        <category>improvisation</category>
        
        <category>molly james</category>
        
        
      </item>
    
      <item>
        <title>Calculating Running Totals using SQL</title>
        <description>&lt;p&gt;&lt;em&gt;&lt;a href=&quot;http://www.wagonhq.com/blog/running-totals-sql&quot;&gt;Cross post from the Wagon blog&lt;/a&gt;. Thanks to the Wagon team for help with this blog post.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;How many users joined in the last 5 months? What were total sales in Q2? How much revenue came from the March sign up cohort?&lt;/p&gt;

&lt;p&gt;Although these questions can be answered with a single number, it can be useful to see a &lt;em&gt;running total&lt;/em&gt; over time: how many unique users joined, or how much cumulative revenue was received by day over some period.&lt;/p&gt;

&lt;p&gt;Usually, data is stored incrementally. For example, here’s a table of sales per day:&lt;/p&gt;

&lt;table class=&quot;table&quot;&gt;

&lt;tbody&gt;

&lt;tr&gt;

&lt;th&gt;Date&lt;/th&gt;

&lt;th&gt;Sales&lt;/th&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td style=&quot;width: 216px;&quot;&gt;10/1/2015&lt;/td&gt;

&lt;td&gt;5&lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td&gt;10/2/2015&lt;/td&gt;

&lt;td&gt;3&lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td&gt;10/3/2015&lt;/td&gt;

&lt;td&gt;7&lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td&gt;10/4/2015&lt;/td&gt;

&lt;td&gt;8&lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td&gt;10/5/2015&lt;/td&gt;

&lt;td&gt;2&lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td&gt;10/6/2015&lt;/td&gt;

&lt;td&gt;3&lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td&gt;10/7/2015&lt;/td&gt;

&lt;td&gt;6&lt;/td&gt;

&lt;/tr&gt;

&lt;/tbody&gt;

&lt;/table&gt;

&lt;p&gt;How do we generate the following table of cumulative sales over time? In SQL, there are two typical approaches: a self join or a window function.&lt;/p&gt;

&lt;table class=&quot;table&quot;&gt;

&lt;tbody&gt;

&lt;tr&gt;

&lt;th&gt;Date&lt;/th&gt;

&lt;th&gt;Running Total of Sales&lt;/th&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td style=&quot;width: 216px;&quot;&gt;10/1/2015&lt;/td&gt;

&lt;td&gt;5&lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td&gt;10/2/2015&lt;/td&gt;

&lt;td&gt;8&lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td&gt;10/3/2015&lt;/td&gt;

&lt;td&gt;15&lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td&gt;10/4/2015&lt;/td&gt;

&lt;td&gt;23&lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td&gt;10/5/2015&lt;/td&gt;

&lt;td&gt;25&lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td&gt;10/6/2015&lt;/td&gt;

&lt;td&gt;28&lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td&gt;10/7/2015&lt;/td&gt;

&lt;td&gt;34&lt;/td&gt;

&lt;/tr&gt;

&lt;/tbody&gt;

&lt;/table&gt;

&lt;p&gt;A self join is a query that compares a table to itself. In this case, we’re comparing each date to any date less than or equal to it in order to calculate the running total. Concretely, we take the sum of &lt;code class=&quot;highlighter-rouge&quot;&gt;sales&lt;/code&gt; in the second table over every row that has a date less than or equal to the date coming from the first table. This is Postgres/Redshift syntax, but other SQL dialects are very similar.&lt;/p&gt;

&lt;script src=&quot;https://gist.github.com/grano/b705f532374c0ec02f03.js&quot;&gt; &lt;/script&gt;

&lt;p&gt;This is not a bad approach; it is a nice showcase of how extensible SQL can be using only &lt;code class=&quot;highlighter-rouge&quot;&gt;select&lt;/code&gt;, &lt;code class=&quot;highlighter-rouge&quot;&gt;from&lt;/code&gt;, &lt;code class=&quot;highlighter-rouge&quot;&gt;join&lt;/code&gt;, and &lt;code class=&quot;highlighter-rouge&quot;&gt;group by&lt;/code&gt; statements.&lt;/p&gt;

&lt;p&gt;But it is a lot of code for a simple task. Let’s try a window function. They are designed to calculate a metric over a set of rows. In our case, we want to sum every row where the date is less than or equal to the date in the current row.&lt;/p&gt;

&lt;script src=&quot;https://gist.github.com/grano/88fcf67e5ff14ae9e1c2.js&quot;&gt; &lt;/script&gt;

&lt;p&gt;The window function can filter and arrange the set of rows to run the function over. Here the &lt;code class=&quot;highlighter-rouge&quot;&gt;order by date rows unbounded preceding&lt;/code&gt; limits the sum function to only &lt;code class=&quot;highlighter-rouge&quot;&gt;sales&lt;/code&gt; before the date of the current row. Window functions are incredibly useful for time-based analytical queries; to learn more, the &lt;a href=&quot;http://www.postgresql.org/docs/9.4/static/tutorial-window.html&quot;&gt;Postgres docs&lt;/a&gt; are a great place to start.&lt;/p&gt;

&lt;p&gt;The final step of creating a chart and sharing it triumphantly with your teammates is easily accomplished using Wagon. Window functions for the win!&lt;/p&gt;
</description>
        <pubDate>Tue, 20 Oct 2015 00:00:00 +0000</pubDate>
        <link>http://www.andygranowitz.com/2015/10/20/running-totals-sql.html</link>
        <guid isPermaLink="true">http://www.andygranowitz.com/2015/10/20/running-totals-sql.html</guid>
        
        <category>sql</category>
        
        <category>wagon</category>
        
        <category>data</category>
        
        <category>data analysis</category>
        
        <category>postgres</category>
        
        
      </item>
    
      <item>
        <title>Calculating Active Users in SQL</title>
        <description>&lt;p&gt;&lt;em&gt;&lt;a href=&quot;http://www.wagonhq.com/blog/active-users-in-sql&quot;&gt;Cross post from the Wagon blog&lt;/a&gt;. Thanks to the Wagon team for help with this blog post.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;How engaged are your users? How frequently do they visit your website or app? Analytics services like Google Analytics and MixPanel calculate basic counts of daily, weekly, and monthly active users, but it’s difficult to customize or join these results with other data. Writing this query in SQL gives you more control. Let’s do it!&lt;/p&gt;

&lt;p&gt;Here’s a table of user logins by day. How many users were active in the last week and month?&lt;/p&gt;

&lt;table class=&quot;mytable&quot;&gt;

&lt;tbody&gt;

&lt;tr&gt;

&lt;th&gt;date&lt;/th&gt;

&lt;th&gt;user_id&lt;/th&gt;

&lt;th&gt;num_logins&lt;/th&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td&gt;10/1/15&lt;/td&gt;

&lt;td&gt;1&lt;/td&gt;

&lt;td&gt;3&lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td&gt;10/1/15&lt;/td&gt;

&lt;td&gt;2&lt;/td&gt;

&lt;td&gt;&lt;em&gt;null&lt;/em&gt;&lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td&gt;10/1/15&lt;/td&gt;

&lt;td&gt;3&lt;/td&gt;

&lt;td&gt;1&lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td&gt;10/2/15&lt;/td&gt;

&lt;td&gt;1&lt;/td&gt;

&lt;td&gt;&lt;em&gt;null&lt;/em&gt;&lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td&gt;10/2/15&lt;/td&gt;

&lt;td&gt;2&lt;/td&gt;

&lt;td&gt;1&lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td&gt;10/2/15&lt;/td&gt;

&lt;td&gt;3&lt;/td&gt;

&lt;td&gt;3&lt;/td&gt;

&lt;/tr&gt;

&lt;/tbody&gt;

&lt;/table&gt;

&lt;p&gt;Like &lt;a href=&quot;/blog/running-totals-sql&quot;&gt;calculating running totals&lt;/a&gt;, there are two approaches: &lt;code class=&quot;highlighter-rouge&quot;&gt;self join&lt;/code&gt; or &lt;code class=&quot;highlighter-rouge&quot;&gt;window function&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;In either approach, it’s helpful to have a table of logins per user for each day, even if the user didn’t login (&lt;em&gt;null&lt;/em&gt; in this example). If your data isn’t already organized like this, you can generate a table with a row per day, per user, with the following query (this is Postgres syntax, for other databases, modify the &lt;code class=&quot;highlighter-rouge&quot;&gt;generate_series&lt;/code&gt; function to generate a table of dates).&lt;/p&gt;

&lt;script src=&quot;https://gist.github.com/grano/215991d7fb785bf7685a.js&quot;&gt; &lt;/script&gt;

&lt;p&gt;To use this data, you can create a temporary table, use a common table expression, or include it as a subselect.&lt;/p&gt;

&lt;h4 id=&quot;approach-1-self-join&quot;&gt;Approach 1: Self Join&lt;/h4&gt;

&lt;p&gt;A self join is when you join a table with itself. How meta is that? For each row, we ask how many logins that user had in the last week. The join condition requires emails to match and for the date to be within the last 7 days. In line 5, the query sums num_logins for those dates. The case statement identifies the user as active on that day if she had any logins in the prior week.&lt;/p&gt;

&lt;script src=&quot;https://gist.github.com/grano/a668412b889cb172823f.js&quot;&gt; &lt;/script&gt;

&lt;p&gt;This query generates a table that tells us which users are seven-day-active over time. This result can be aggregated further, filtered for specific dates, used to find inactive users, and joined with other data. In Wagon, we can create a graph of the number of 7 day active users over time.&lt;/p&gt;

&lt;h4 id=&quot;approach-2-window-functions&quot;&gt;Approach 2: Window Functions&lt;/h4&gt;

&lt;p&gt;The self join works great, but modern databases have a more efficient way to get the same results. With window functions, we can explicitly aggregate only over rows that we care about with just a single pass through the data. If you have millions or billions of rows (lucky you), the self join will take a long time to compute. In line 5, the query sums num_logins for the user’s previous 14 days. It first partitions the table by email, then evaluates over a set of rows - in this case we’re looking at a specific date range. The case statement classifies the user as active or not just as before.&lt;/p&gt;

&lt;script src=&quot;https://gist.github.com/grano/a16e64d9164924bc6f3a.js&quot;&gt; &lt;/script&gt;

&lt;p&gt;This query makes it easier to add additional metrics for 7 and 30 day active users. As expected, the wider your definition of active user, the more you’ll have. Use these new powers carefully!&lt;/p&gt;
</description>
        <pubDate>Sun, 13 Sep 2015 00:00:00 +0000</pubDate>
        <link>http://www.andygranowitz.com/2015/09/13/active-users-in-sql.html</link>
        <guid isPermaLink="true">http://www.andygranowitz.com/2015/09/13/active-users-in-sql.html</guid>
        
        <category>sql</category>
        
        <category>wagon</category>
        
        <category>data</category>
        
        <category>data analysis</category>
        
        
      </item>
    
      <item>
        <title>Building an Analytics Pipeline in 2015</title>
        <description>&lt;p&gt;&lt;em&gt;&lt;a href=&quot;http://www.wagonhq.com/blog/building-an-analytics-pipeline&quot;&gt;Cross post from the Wagon blog&lt;/a&gt;. Thanks to the Wagon team for help with this blog post.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Every company needs an analytics data platform queryable by SQL.&lt;/p&gt;

&lt;p&gt;Using a single analytics tool or relying on logs from a single source is a fast way to get started but is rarely sufficient. You’ll realize you need a better data strategy when attempting more detailed analytics tasks: cohorting customers based on segments available in multiple data sources, analyzing long time scale trends, or making data available to other applications. Unfortunately, you’ll quickly reach the limit of your off-the-shelf tool.&lt;/p&gt;

&lt;p&gt;There has been a dramatic increase in data being created and fascination with &lt;em&gt;Big Data&lt;/em&gt;, but less of a corresponding uptick in how to capture its value. Engineering a system to ingest, transform, and process data from many (changing, flaky) sources has been a &lt;a href=&quot;http://www.b-eye-network.com/newsletters/inmon/7040&quot;&gt;long time, Very Hard Problem™&lt;/a&gt;. Doing this well requires hard work – the dreaded ETL.&lt;/p&gt;

&lt;p&gt;We see more and more companies choosing to invest in SQL warehouses and the requisite engineering well before they become large businesses. How do you effectively build one of these things? And what makes building robust analytics infrastructure difficult?&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gtrends.png&quot; alt=&quot;Google Trends for Big Data vs. ETL&quot; /&gt; &lt;em&gt;&lt;span style=&quot;float: right;&quot;&gt;&lt;a href=&quot;http://www.google.com/trends/explore?hl=en-US#q=big+data,+/m/01jr1p&amp;amp;date=1/2004+133m&amp;amp;cmpt=q&amp;amp;tz=Etc/GMT%2B7&amp;amp;tz=Etc/GMT%2B7&quot;&gt;See full Google Trends report&lt;/a&gt;&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;Here’s an example illustrating the core problems: You implemented a new purchase flow in your app and you’d like to understand conversion rates (tracked from logs) broken down by your email marketing A/B test (tracked from a 3rd party). The log lines you’re generating have new structure and may need to be re-parsed to fit into your existing schema. The A/B testing info may live in a different place than user data. Boiler plate reporting tools and drag and drop analytics UIs are great, but they require structuring ahead of time and the new checkout flow change is already live in production. Manually doing this analysis one time is annoying, but turning it into a reliable, repeatable practice is nearly impossible without dedicated engineering effort.&lt;/p&gt;

&lt;p&gt;Your goal should be to get your data into a data warehouse that can be queried directly by people and programs. While it’s not straightforward, it’s important to understand the pieces. We see companies addressing this problem by focusing on the following steps:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;For each data source: generate, collect, and store your data&lt;/li&gt;
  &lt;li&gt;Transform data into usable, queryable form&lt;/li&gt;
  &lt;li&gt;Copy multiple sources into a single place&lt;/li&gt;
  &lt;li&gt;Enjoy the data fruits of your data labor&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The first step is collecting the data with as much structure as possible. You need to generate the data, transmit it from apps, browsers, or services for collection, and then safely store it for later. Many mobile and web analytics providers offer these three steps, others focus on a subset. For example, &lt;a href=&quot;https://heapanalytics.com/&quot;&gt;Heap&lt;/a&gt; and &lt;a href=&quot;https://mixpanel.com/&quot;&gt;Mixpanel&lt;/a&gt; generate many app usage events automatically. Others focus on receiving data and making it available to read later (&lt;a href=&quot;https://keen.io/&quot;&gt;Keen&lt;/a&gt; and &lt;a href=&quot;http://www.splunk.com/&quot;&gt;Splunk&lt;/a&gt; as different examples). &lt;a href=&quot;https://segment.com/&quot;&gt;Segment&lt;/a&gt; takes advantage of the difficulty of logging to many places by transmitting data to many of the above services with one API call.&lt;/p&gt;

&lt;p&gt;Another large source of data is logs (usually messy and unstructured). Just having logs is not enough - it must be massaged into usable rows and columns. Some log lines help engineers analyze technology performance or debug errors, some log lines must be interpreted to signal “human” events, and some log lines have been around for so long that no one remembers why they’re there. Logs are rarely generated with their end purpose or a fixed type system in mind. Transformation of these raw strings is necessary to make them usable rather than just searchable.&lt;/p&gt;

&lt;p&gt;For example, you may need to combine three separate log lines in order to signal a successful-user-flow, or to compare log lines against prior data to understand if a user is new, active or re-activated. Or maybe you need to remove those extra pesky spaces around your beautiful integers or standardize timestamps across timezones. &lt;a href=&quot;http://www.trifacta.com/&quot;&gt;Trifacta&lt;/a&gt;, &lt;a href=&quot;http://www.paxata.com/&quot;&gt;Paxata&lt;/a&gt;, and &lt;a href=&quot;http://www.tamr.com/landing-pages/tamr-technical-whitepaper/&quot;&gt;Tamr&lt;/a&gt; offer technical tools for transforming ugly log forms to structured rows and columns. Or you’ll roll your own.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://dilbert.com/strip/2008-05-07&quot;&gt;&lt;img src=&quot;/assets/images/dilbert.gif&quot; alt=&quot;Dilbert Cartoon&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once data collection systems are in place, you want to get this data flowing into a data warehouse. While some of the aforementioned tools provide their own interface for accessing collected and processed data, joining across multiple sources is difficult if not impossible, and their interfaces are often inflexible and cumbersome. Luckily, many of these services recognize this, and offer easy exports to data warehouses. &lt;a href=&quot;https://amplitude.com/blog/2015/03/27/why-we-chose-redshift/&quot;&gt;Amplitude&lt;/a&gt; and &lt;a href=&quot;https://segment.com/redshift&quot;&gt;Segment&lt;/a&gt; do this well and offer straightforward exports to Redshift. Google Analytics offers export to BigQuery for Premium customers (~$150k / year). Others make it possible, but require a bit of work (for example, &lt;a href=&quot;https://twitter.com/keen_io/status/545642330384908289&quot;&gt;Keen&lt;/a&gt;). New startups like &lt;a href=&quot;https://www.textur.com/&quot;&gt;Textur&lt;/a&gt; and &lt;a href=&quot;http://www.alooma.io&quot;&gt;Alooma&lt;/a&gt; are working on plumbing data into hosted RDBMS systems.&lt;/p&gt;

&lt;p&gt;Outside of dedicated analytics solutions, you often have data from third party sources you’d like to join and analyze (e.g. Salesforce, ZenDesk, MailChimp, etc.). Most of these tools offer APIs to extract data. Building and maintaining these connections from 3rd parties to your data warehouse on your own is doable, but this is often where data integration tools are helpful. Services like &lt;a href=&quot;http://snowplowanalytics.com/&quot;&gt;Snowplow&lt;/a&gt; and &lt;a href=&quot;https://www.fivetran.com&quot;&gt;Fivetran&lt;/a&gt; help.&lt;/p&gt;

&lt;p&gt;At this point, data is flowing in a structured way. But where is it going? When assessing a data warehouse, look for:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Large scale ingestion and storage&lt;/li&gt;
  &lt;li&gt;Fast computation and multi-user concurrency&lt;/li&gt;
  &lt;li&gt;Easy management and scaling with data&lt;/li&gt;
  &lt;li&gt;Security and permissioning&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;There are many that meet these criteria: Amazon Redshift, Google BigQuery, Microsoft Azure SQL Data Warehouse, Hive, Spark, Greenplum, Vertica, Impala (the list goes on!). The largest technology companies (Amazon, Google, Microsoft) are investing in, and subsidizing, these data warehousing solutions. It’s a crucial component to nearly every business, which naturally draws the attention of the tech titans.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.slideshare.net/mjft01/big-data-landscape-matt-turck-may-2014&quot;&gt;&lt;img src=&quot;/assets/images/big-data-landscape.png&quot; alt=&quot;Big Data landscape diagram &quot; /&gt;&lt;/a&gt; &lt;em&gt;&lt;span style=&quot;float: right;&quot;&gt;It’s a data jungle out there. Diagram from 2014 by Matt Turck at FirstMark&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;Phew, now you can enjoy the freedom of querying structured data, and the work (and fun!) begins. We’ll have more on the data analysis step soon!&lt;/p&gt;
</description>
        <pubDate>Thu, 06 Aug 2015 00:00:00 +0000</pubDate>
        <link>http://www.andygranowitz.com/2015/08/06/building-an-analytics-pipeline.html</link>
        <guid isPermaLink="true">http://www.andygranowitz.com/2015/08/06/building-an-analytics-pipeline.html</guid>
        
        <category>sql</category>
        
        <category>engineering</category>
        
        
      </item>
    
      <item>
        <title>Wedding Speeches</title>
        <description>&lt;p&gt;I was recently given the great honor of playing a large role in the &lt;a href=&quot;#ceremony-speech&quot;&gt;wedding ceremony&lt;/a&gt; of two good friends. I also gave a &lt;a href=&quot;#toast&quot;&gt;toast&lt;/a&gt; during the rehearsal dinner. I’ve copied both speeches below, as well as the &lt;a href=&quot;#best-man-speech&quot;&gt;best man speech&lt;/a&gt; I gave at my brother’s wedding one year ago.&lt;/p&gt;

&lt;h3 id=&quot;ceremony-speech&quot;&gt;Ceremony Speech&lt;/h3&gt;

&lt;p&gt;Welcome and congratulations to everyone who is here today, to witness and celebrate the uniting of Julia and Luke in marriage. I think we can all agree, that they have a beautiful and special love that has been cultivated and shared over the past six years.&lt;/p&gt;

&lt;p&gt;As we stand here today, just a few miles from the majestic Appalachian Trail, I am reminded of Julia and Luke, as they are both avid, experienced hikers, rock climbers, runners, and world travelers. Yet, tonight, Julia and Luke, you are novices; (Pause) embarking on the first step of your most meaningful journey yet; your new life together.&lt;/p&gt;

&lt;p&gt;Fortunately, you are not embarking on this voyage alone. You have the support of your loving parents, Annie and Robert, Nancy and Steve, siblings Rachel and David, your extended families, and all of your wonderful friends who have traveled long and far to celebrate this joyous occasion.&lt;/p&gt;

&lt;p&gt;I’d like to take a bit of time to impart some wisdom that I’ve gathered from spending so much time with my dear friends Julia and Luke. Wisdom about hiking, about life, or perhaps about both. Here it goes:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lesson number 1: Know your partner&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Julia, Luke, you first met when you were RAs, resident advisors, of Few, your junior year at Duke. It was no coincidence that you were both drawn to and assumed this leadership position specifically geared toward helping others. Your young relationship grew through study sessions that often involved a bottle of wine, late night conversations that left you tired the next day, and rock climbing. Even then, you both pushed each other to new heights, literally. You enjoyed your first outdoor rock climbing trip together. It was on this trip that you established an ongoing pattern in your relationship: Luke, you continue to stretch Julia to her limits, and Julia, you reign Luke in from doing anything too dangerous.&lt;/p&gt;

&lt;p&gt;Early on, Luke pushed Julia a bit too far while mountain biking in Duke Forrest. Julia tripped over a root and bloodied her knee. And much to Luke’s relief, Julia dusted herself right off and got back on the trail.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lesson number 2: Maintain balance and have Fun&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In order to maintain balance on the trail and also in life, you will need unique personality traits suited for different situations. Yes, you are opposites on the Meyers-Briggs personality type test! But you both know that this works in your favor. Life is always a balancing act, and together you do this so well.&lt;/p&gt;

&lt;p&gt;For example, Luke, you are more reserved and you rely on your intuition. Julia knows what to expect from you: you’re consistent, loving, and stable. But never boring! You surprise her by being unpredictable, and Julia finds this quality delightful.&lt;/p&gt;

&lt;p&gt;Julia, you are outgoing and spontaneous. You understand the world through sensing. You are a hard worker, serious, and ambitious. But sometimes just plain goofy. And Luke loves this about you!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lesson number 3: Pack Enough Food&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Julia is well known for her “hangriness”, a condition in which being hungry leads to being angry. Luke has gotten good at spotting this, and carries around his “hangry pouch” with some snacks and spare change just in case. It has saved the day on more than a few occasions. And this is just another example of how one takes care of the other.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lesson number 3: Leave No Trace&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Pick up all your garbage! But Julia and Luke, you both go one step farther than this classic outdoor mantra. Julia, you have an incredible social conscious, and Luke has a lot of respect for what you have accomplished in your life, from your work in global health in college, with developing countries at Google, and now with adoption at Binti.&lt;/p&gt;

&lt;p&gt;Early on in your relationship, you bonded over reading Half the Sky, a book that is a call to arms against the oppression of women and girls in the developing world. You both share a deep concern for the world around you.&lt;/p&gt;

&lt;p&gt;Julia, Luke told me that you have more compassion and empathy for others than anyone he has ever met. You care a lot about people and can deeply empathize with those from all backgrounds.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lesson number 4: When the trail diverges, don’t be afraid to take the alternate route&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Hiking for days on the AT might get monotonous. It will be boring at times. But remember that you are on an adventure!&lt;/p&gt;

&lt;p&gt;Julia and Luke, you bring energy into everyday activities with each other and make them exciting. Luke, you told me that even going to the grocery store can be a thrill with Julia when you realize that it is an experience you get to have with someone you love.&lt;/p&gt;

&lt;p&gt;When first greeting each other, you enjoy a big hug, say “Sweetie!” “Honey!” and do a celebratory dance. Every day you do this. Taking something mundane and elevating it into a meaningful moment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lesson number 5: Know Where You’re Headed&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Perhaps most importantly, Julia, Luke, you share fundamental values and a common view on the world. You know the kind of life you want to live. You value experiences more than material possessions. Having come from such loving families, you recognize and place extreme importance on family. You respect each other. You appreciate the richness of life, and are able to savor it together.&lt;/p&gt;

&lt;p&gt;In the words of Dr. Seuss, “You’re off to great places! Today is your day! Your mountain is waiting. So… get on your way.”&lt;/p&gt;

&lt;p&gt;Julia, Luke, continue to enjoy each moment together, make every day an adventure, and spread the incredible amount of love you are feeling right now throughout the world. Congratulations.&lt;/p&gt;

&lt;hr /&gt;

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

&lt;h3 id=&quot;toast&quot;&gt;Toast&lt;/h3&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;//youtube.com/embed/NdQC88uyKYw&quot; allowfullscreen=&quot;&quot; frameborder=&quot;0&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;Hello everyone! How are you all doing? What a nice dinner. And Asheville provides the perfect backdrop: A special place for a special weekend. Big congratulations to Julia, Luke, the Chou’s and the Chapin’s. Who’s excited for tomorrow? I know I am!&lt;/p&gt;

&lt;p&gt;I first met Julia and Luke through my former roommate, Alec who worked with Luke at Accenture. Where’s Alec? Hi Alec!  Knowing I was new to San Francisco, Julia and Luke welcomed me into their wide circle of friends right away. As you know, their organizational skills are legendary. They organize the much anticipated annual trip to Yosemite National Park, with about 20 amazing people, many of whom are here tonight. Hi Everybody! I know we all love to hike, but still, it’s nice sometimes to be within 20 feet of Julia and Luke, and to actually be sitting down. Resting. It’s strange. So  I have Julia and Luke to thank for so many friends in San Francisco, and I know many of you here tonight can say the same.&lt;/p&gt;

&lt;p&gt;As my friendship with Julia and Luke grew, they offered more than their ability to plan a really good hiking trip. They quickly began to offer me advice. Good suggestions, really. Perhaps unsolicited - but things I probably needed to hear.Get a new pair of glasses, Julia and Luke told me. Why? I only had them 10 years! But Julia, you were right. (turn to Julia) I needed a new pair. I did that, and updated my mid ‘90s look – which I still contend is a good look by the way - I was quite the fashion plate in 2nd grade. And now I trust them with all of my sartorial decisions. That’s why I, and my fellow groomsmen, have no trepidation at all about wearing the…. Salmon….colored… bow ties… that Luke has so graciously provided for us. Nope, no. Trepidation. At. All.&lt;/p&gt;

&lt;p&gt;So, speaking of salmon, that reminds of the first time I met Mrs. Chou. Where is she? (look around the room for a while) Oh, there she is, hi Mrs. Chou! It might be time for another new pair of glasses. Anyway, I don’t know if you remember, but you were preparing a lovely dinner for us, and I had said that I like my salmon well done. Well, you must have taken me a bit too literally, as, next thing we knew, the salmon was ON FIRE. Luke was lightning fast with a water bottle to put it out, and as it happens, the salmon was not only unharmed, but delicious. You’re not catering the wedding dinner, are you? Just kidding! Mrs. Chou, like Julia, is a fantastic cook.&lt;/p&gt;

&lt;p&gt;Joking aside, Julia and Luke are such generous friends - giving with their time and energy. Just a few weeks ago, Julia and Luke spent two hours with me thinking through a job decision. It takes special kind of people who are willing to spend so much of their time to help - let alone just a few weeks before their wedding day!&lt;/p&gt;

&lt;p&gt;I feel grateful to have met Julia and Luke, and that I have been able to forge such a strong friendship with them. A big congratulations, and best of luck in the future. Let’s raise a glass to Julia, Luke, and a lifetime of health and happiness!&lt;/p&gt;

&lt;hr /&gt;

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

&lt;p&gt;###Best Man Speech&lt;/p&gt;

&lt;p&gt;Hello everyone! How are you all doing tonight? Wow! Is this a fantastic party or what??  Big thank you to Les and Denise. And how about that Hora? I think I may work that into my gym routine. [&lt;em&gt;note to reader: the Hora at this wedding was 45 minutes long&lt;/em&gt;] For those who don’t know me, I’m Andy, Danny’s brother. Sorry to say - there’s only one of me [&lt;em&gt;note to reader: my sister-in-law is one of five&lt;/em&gt;]. Mazel Tov to Jen and Danny, the Sterns, my parents and extended families. It’s been such a great day so far. And we are still going strong!&lt;/p&gt;

&lt;p&gt;Any younger brothers out there? Well you may kick me out of the “Union of Younger Brothers” for saying this, but I feel very fortunate to have such a great brother like Danny. We have a ton in common, and love spending time with each other, especially on the golf course. And believe it ornot,until Jen entered Danny’s life, I was the source of one of his greatest pleasures in life. Beating me in a round of golf was truly pure joy for Danny.&lt;/p&gt;

&lt;p&gt;(As an aside it doesn’t happen that often anymore, right Dan?)&lt;/p&gt;

&lt;p&gt;But, really, none of that typical silly big brother stuff from Danny. No wedgies, noogies, wet willies, swirlies… no E’s in general. No, he was much more crafty than that. He made it SOO tough on me. I had to follow in his HUGE footsteps - How could I measure up to Danny?  He was untouchable - academically, athletically, musically, comically - nobody makes me laugh as hard as Danny - even vertically and in every other way imaginable. And now he has set the BAR SO HIGH, matrimonially, by marrying the incomparable Jen that I may have  to take up pole vaulting to get over this high bar.&lt;/p&gt;

&lt;p&gt;I first met Jen when she came to our house for Shabbos dinner. I was immediately struck by how comfortable both Jen and Danny were with one another. And Jen’s level of comfort with Danny carried over to the rest of the family. It’s amazing how quickly and how well Jen fits in with our extended family.&lt;/p&gt;

&lt;p&gt;But before Jen was a part of our family, there was an episode in the Jen and Danny courtship in which I played a small role, that I’d like to share.&lt;/p&gt;

&lt;p&gt;I asked Danny how things were going with Jen, and he said, well, there is one thing, that Jen has been doing repeatedly, that the Granowitz family simply DOES. NOT. DO. So what was it? Jen eats popcorn……… at. the. movies! I said Danny, we’re the crazy ones here! Most people eat popcorn at the movies.&lt;/p&gt;

&lt;p&gt;Now, a few weeks later Jen and Danny went to the movies with Grandma Ida. It turns out that Grandma Ida enjoys popcorn at the movies just as much as Jen! And this is just one small part of a special connection between them.&lt;/p&gt;

&lt;p&gt;It doesn’t take great powers of observation to see how right Jen and Danny are for each other. The wonderful qualities that they share are there for all to see: solid family and religious values at the core. CHECK. Academic excellence and professional achievement. CHECK. Athletic and good looking. CHECK CHECK. Caring and fun loving leaders to their younger siblings. CHECK. Luckily, both Jen and Danny are smart and perceptive enough to have seen this as well.&lt;/p&gt;

&lt;p&gt;Earlier in the week I was talking to Jen, and she thanked me for taking care of Danny before the wedding. I said no problem - thank you for taking care of Danny for the rest of your life!&lt;/p&gt;

&lt;p&gt;I can’t begin to say how happy I am to have Jen join our family. I love spending time with Jen and Danny, I think largely because they love spending time with each other. Let’s raise a glass to Jen, Danny, and a lifetime of happiness! le Chaim!!&lt;/p&gt;

&lt;hr /&gt;

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

&lt;p&gt;&lt;em&gt;Special thank you to my parents who helped immensely with these speeches.&lt;/em&gt;&lt;/p&gt;
</description>
        <pubDate>Sun, 14 Jun 2015 00:00:00 +0000</pubDate>
        <link>http://www.andygranowitz.com/2015/06/14/wedding-speeches.html</link>
        <guid isPermaLink="true">http://www.andygranowitz.com/2015/06/14/wedding-speeches.html</guid>
        
        <category>wedding speech</category>
        
        <category>public speaking</category>
        
        
      </item>
    
      <item>
        <title>Querying CSVs in Wagon</title>
        <description>&lt;p&gt;Check out the &lt;a href=&quot;http://www.wagonhq.com/blog/querying-csvs-in-wagon&quot;&gt;Wagon blog&lt;/a&gt; for the full post.&lt;/p&gt;
</description>
        <pubDate>Mon, 08 Jun 2015 00:00:00 +0000</pubDate>
        <link>http://www.andygranowitz.com/2015/06/08/querying-csvs-in-wagon.html</link>
        <guid isPermaLink="true">http://www.andygranowitz.com/2015/06/08/querying-csvs-in-wagon.html</guid>
        
        <category>wagon</category>
        
        <category>data</category>
        
        <category>data analysis</category>
        
        <category>sql</category>
        
        <category>postgresql</category>
        
        <category>csv</category>
        
        
      </item>
    
      <item>
        <title>Joining Wagon</title>
        <description>&lt;p&gt;Exciting news - I’m joining &lt;a href=&quot;http://www.wagonhq.com/&quot;&gt;Wagon&lt;/a&gt;! I’m grateful for an incredible four years at Google, and thrilled to become a part of the incredible team at Wagon.&lt;/p&gt;

&lt;p&gt;More to come!&lt;/p&gt;
</description>
        <pubDate>Thu, 21 May 2015 00:00:00 +0000</pubDate>
        <link>http://www.andygranowitz.com/2015/05/21/joining-wagon.html</link>
        <guid isPermaLink="true">http://www.andygranowitz.com/2015/05/21/joining-wagon.html</guid>
        
        <category>wagon</category>
        
        <category>google</category>
        
        <category>data</category>
        
        <category>sql</category>
        
        <category>analytics</category>
        
        <category>exciting</category>
        
        <category>career</category>
        
        
      </item>
    
      <item>
        <title>IPython Notebooks</title>
        <description>&lt;p&gt;An &lt;a href=&quot;http://ipython.org/notebook.html&quot;&gt;IPython Notebook&lt;/a&gt; is one of the best ways I’ve seen to share data analysis.&lt;/p&gt;

&lt;p&gt;On one end of the spectrum, you can share your code. Even if it is well commented, it can be difficult to really understand what is happening and replicate or modify it. On the other end of the spectrum, you can produce a write up. Even if it contains some code, graphs, and a clear description, it is not fully trustable without all of the code and data.&lt;/p&gt;

&lt;blockquote class=&quot;twitter-tweet&quot; lang=&quot;en&quot;&gt;&lt;p lang=&quot;en&quot; dir=&quot;ltr&quot;&gt;I&amp;#39;ve seen enough data analysis messed up in ways that flip the conclusion that I&amp;#39;ve stopped believing results without raw data and code&lt;/p&gt;&amp;mdash; Ben Hamner (@benhamner) &lt;a href=&quot;https://twitter.com/benhamner/status/584794589237682178&quot;&gt;April 5, 2015&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async=&quot;&quot; src=&quot;//platform.twitter.com/widgets.js&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;

&lt;p&gt;Some folks produce a write up and then link to the code. This is good. Even better, from what I have seen, is an IPython notebook. It combines the best of both worlds: descriptive text explaining what is happening, all of the code and outputs, and an environment that enables you to reproduce the analysis.&lt;/p&gt;
</description>
        <pubDate>Thu, 30 Apr 2015 00:00:00 +0000</pubDate>
        <link>http://www.andygranowitz.com/2015/04/30/ipython-notebooks.html</link>
        <guid isPermaLink="true">http://www.andygranowitz.com/2015/04/30/ipython-notebooks.html</guid>
        
        <category>ipython notebooks</category>
        
        <category>ipython</category>
        
        <category>data</category>
        
        <category>data analysis</category>
        
        
      </item>
    
      <item>
        <title>Zeitgeist</title>
        <description>&lt;p&gt;&lt;a href=&quot;https://www.google.com/search?q=define%20zeitgeist&quot;&gt;Zeitgeist is defined as&lt;/a&gt; “the defining spirit or mood of a particular period of history as shown by the ideas and beliefs of the time.” Right now, there is an abundance of conversation among writers, academics, business people, politicians, etc., centered on the related themes of technology induced job automation and rising inequality. Related topics include STEM vs. the humanities, artificial intelligence, consciousness, and so on.&lt;/p&gt;

&lt;p&gt;I may be falling prey to some cognitive biases that are causing me to overstate the “defining spirit” of our particular period in history (&lt;a href=&quot;http://en.wikipedia.org/wiki/List_of_cognitive_biases&quot;&gt;take your pick&lt;/a&gt;). But it does seem like the impact of technology on society is one of the dominant and recurring narratives among writers and thinkers today.&lt;/p&gt;

&lt;p&gt;Here is a quick roundup of some things I’ve read recently on these topics. Not necessarily endorsements, simply articles that have come my way.&lt;/p&gt;

&lt;p&gt;####Automation&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.lrb.co.uk/v37/n05/john-lanchester/the-robots-are-coming&quot;&gt;The Robots Are Coming&lt;/a&gt; in the London Review of Books. A quote:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;We are, Brynjolfsson and McAfee argue, on the verge of a new industrial revolution, one which will have as much impact on the world as the first one.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;To me, this is the key question. Is the computer + internet “revolution” simply economic / technological progress that has very significant individual employment repercussions but ultimately no fundamental changes to our underlying economics? Or is it a fundamental change?&lt;/p&gt;

&lt;p&gt;If it is a fundamental change on the scale of the industrial revolution, wow. From Wikipedia on the &lt;a href=&quot;http://en.wikipedia.org/wiki/Industrial_Revolution&quot;&gt;Industrial Revolution&lt;/a&gt;: “Economic historians are in agreement that the onset of the Industrial Revolution is the most important event in the history of humanity since the domestication of animals, plants and fire.”&lt;/p&gt;

&lt;p&gt;####Inequality&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.economist.com/blogs/freeexchange/2015/03/wealth-inequality&quot;&gt;NIMBYs in the twenty-first century&lt;/a&gt; in the Economist. A quote:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;…a 26-year-old graduate student…presented a new paper…[that] several reputable economists regard…as the most serious and substantive critique that Mr Piketty’s work has yet faced.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Just the most recent in continued discussion over Piketty and issues of inequality.&lt;/p&gt;

&lt;p&gt;####Humanities vs STEM&lt;/p&gt;

&lt;p&gt;Fareed Zakaria’s column in the Washington Post on &lt;a href=&quot;http://www.washingtonpost.com/opinions/why-stem-wont-make-us-successful/2015/03/26/5f4604f2-d2a5-11e4-ab77-9646eea6a4c7_story.html&quot;&gt;Why America’s obsession with STEM education is dangerous&lt;/a&gt; - he has a new book called &lt;em&gt;In Defense of a Liberal Education&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Leon Wieseltier’s &lt;a href=&quot;http://www.nytimes.com/2015/01/18/books/review/among-the-disrupted.html&quot;&gt;Among the Disrupted&lt;/a&gt; in the NY Times and much that was written in response. (not to mention the &lt;em&gt;New Republic&lt;/em&gt; controversy)&lt;/p&gt;

&lt;p&gt;####Artificial Intelligence&lt;/p&gt;

&lt;p&gt;Of course much is written about incredible AI feats by companies and researchers, but perhaps more interesting is the growing number of prominent figures speaking out against its potential dangers. If you haven’t seen such threats, do a search for Bill Gates, Elon Musk, Stephen Hawking, Steve Wozniak, Sam Altman, etc. talking about the risks of artificial intelligence.&lt;/p&gt;

&lt;p&gt;####Consciousness&lt;/p&gt;

&lt;p&gt;I found this &lt;a href=&quot;http://www.theguardian.com/science/2015/jan/21/-sp-why-cant-worlds-greatest-minds-solve-mystery-consciousness&quot;&gt;overview on research into the nature of consciousness&lt;/a&gt; fascinating.&lt;/p&gt;

&lt;p&gt;Separately, I was reading an interesting but perhaps unnecessarily long &lt;a href=&quot;http://www.theatlantic.com/features/archive/2015/03/the-science-of-near-death-experiences/386231/?single_page=true&quot;&gt;article on Near Death Experiences&lt;/a&gt; and saw a related point:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;…Rather, it shows that the mind and consciousness are emergent properties of the brain, knitted together somehow by all the physical and chemical processes in our nervous system.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;But if so, then how does that knitting occur? This is the crucial question for consciousness studies…&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;…The question of how consciousness emerges is in fact likely to be one of the defining problems of the 21st century, when we might first be able to create machines as complex as the human brain.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Perhaps more interesting than the link to AI is the connection to Yuval Harari’s closing remarks in his talk that I &lt;a href=&quot;/2015/02/24/yuval-harari-techno-religions-silicon-prophets.html&quot;&gt;previously wrote about&lt;/a&gt;. Harari’s point is that we can find correlations between electrochemical patterns in the brain and subjective experiences, but we don’t truly understand the connection. Check out my &lt;a href=&quot;/2015/02/24/yuval-harari-techno-religions-silicon-prophets.html&quot;&gt;other post&lt;/a&gt; for the full implications of this (which are drastic according to Harari, and relate to this zeitgeist).&lt;/p&gt;
</description>
        <pubDate>Mon, 06 Apr 2015 00:00:00 +0000</pubDate>
        <link>http://www.andygranowitz.com/2015/04/06/zeitgeist.html</link>
        <guid isPermaLink="true">http://www.andygranowitz.com/2015/04/06/zeitgeist.html</guid>
        
        <category>zeitgeist</category>
        
        <category>technology</category>
        
        <category>artificial intelligence</category>
        
        <category>ai</category>
        
        <category>inequality</category>
        
        <category>thomas piketty</category>
        
        <category>piketty</category>
        
        <category>leon wieseltier</category>
        
        <category>consciousness</category>
        
        <category>yuval harari</category>
        
        <category>stem</category>
        
        <category>humanities</category>
        
        <category>education</category>
        
        <category>fareed zakaria</category>
        
        <category>economics</category>
        
        <category>robots</category>
        
        
      </item>
    
      <item>
        <title>Book Review: Spoiled Brats by Simon Rich</title>
        <description>&lt;p&gt;I first came across Simon Rich’s writing when his novella &lt;em&gt;Sell Out&lt;/em&gt; was published in the &lt;em&gt;New Yorker&lt;/em&gt; online in January 2013 [1]. &lt;em&gt;Sell Out&lt;/em&gt; is about a turn of the (20th) century immigrant who gets stuck in a pickle jar and emerges in the modern day. I really enjoyed it, but only recently decided to give &lt;em&gt;Spoiled Brats&lt;/em&gt;, a collection of short stories that includes &lt;em&gt;Sell Out&lt;/em&gt;, a try.&lt;/p&gt;

&lt;p&gt;From the book jacket summary, &lt;em&gt;Spoiled Brats&lt;/em&gt; is a “collection of stories culled from the front lines of the millennial culture wars”. Most of the stories can be broadly described the same way: a light, humorous, and slightly critical commentary on millennial culture told through a story with supernatural elements.&lt;/p&gt;

&lt;p&gt;For example, the first story, &lt;em&gt;Animals&lt;/em&gt;, is similar to &lt;em&gt;Sell Out&lt;/em&gt; in that it is commenting on today’s society from an outside perspective. In &lt;em&gt;Sell Out&lt;/em&gt;, it is entirely clear where this perspective is coming from: a hardworking, Jewish immigrant from Eastern Europe who came to Ellis Island and worked in a pickle factory [2]. Yet in &lt;em&gt;Animals&lt;/em&gt;, a story told from the perspective of an elementary school’s pet hamster, it is less clear what cultural norms the hamster is accustomed to, such that the hamster finds the school children deplorable (the only clue comes from this passage: “I, too, am a Christian, although lately I’ve struggled to make sense of God’s plan”). This makes the story a bit more shallow - which is okay given its short length.&lt;/p&gt;

&lt;p&gt;Another common theme between the stories is how direct Rich is with social critiques. Here are a few excerpts from &lt;em&gt;Sell Out&lt;/em&gt;:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“You could get interns.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;I raise my eyebrows; this word is unfamiliar.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;“Interns?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;It takes long time, but eventually she is able to explain this thing to me.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;“So they are slaves,” I say. “And it is not illegal.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;She hesitates.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;“Basically.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Another:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“Oh,” I say. “I forgot. You are wealthy.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;Claire turns around and stares at me. Her face is pale.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;“Excuse me?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;“That is why you do not care about money. Because you already have so much of it. For you, all of life is happy game.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;Her eyes begin to twitch.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;“That is so rude.” she says. “Life’s about more than money, Herschel!”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;“Yes,” I say. “For those who already have it.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Many of the stories contain similar tidbits.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Sell Out&lt;/em&gt; is definitely the centerpiece. It is the most engaging and funny. It’s not surprising to me that it is being &lt;a href=&quot;http://www.thewrap.com/movies/column-post/seth-rogen-and-evan-goldberg-sell-out-sony-exclusive-94386/&quot;&gt;turned into a movie&lt;/a&gt;. Yet the rest of the stories are also often laugh out loud funny, despite being slightly “syrupy and insubstantial” as a friend of mine noticed.&lt;/p&gt;

&lt;p&gt;I’ll leave you with one quote that demonstrates how laugh out loud funny the stories can be. This one comes from &lt;em&gt;Family Business&lt;/em&gt;:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;I love my father, but sometimes he can get on my nerves. It’s hard to explain why exactly. It’s just the little things he does, here and there that bother me. For example, sometimes he shits into his hands and then throws the shit into my face while jumping up and down and screaming. I know he’s just trying to be funny - and it &lt;em&gt;is&lt;/em&gt; funny, I can see that. But there’s just something about it that annoys me. I’ve asked him politely not to do it anymore, but I always get the same reaction. He just rolls his yellow eyes and says, “I’m sorry, your majesty.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Footnotes:&lt;/p&gt;

&lt;p&gt;[1] &lt;a href=&quot;http://www.newyorker.com/humor/daily-shouts/sell-out-part-one&quot;&gt;Part 1&lt;/a&gt;, &lt;a href=&quot;http://www.newyorker.com/humor/daily-shouts/sell-out-part-two&quot;&gt;Part 2&lt;/a&gt;, &lt;a href=&quot;http://www.newyorker.com/humor/daily-shouts/sell-out-part-three&quot;&gt;Part 3&lt;/a&gt;, and &lt;a href=&quot;http://www.newyorker.com/humor/daily-shouts/sell-out-part-four&quot;&gt;Part 4&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;[2] The historical accuracy of this perspective is highly questionable - for example, Herschel’s language (the narrator), the conditions and life he described, and so on - but this is mostly beside the point.&lt;/p&gt;
</description>
        <pubDate>Sat, 28 Mar 2015 00:00:00 +0000</pubDate>
        <link>http://www.andygranowitz.com/2015/03/28/book-review-spoiled-brats-simon-rich.html</link>
        <guid isPermaLink="true">http://www.andygranowitz.com/2015/03/28/book-review-spoiled-brats-simon-rich.html</guid>
        
        <category>book</category>
        
        <category>book review</category>
        
        <category>spoiled brats</category>
        
        <category>simon rich</category>
        
        <category>comedy</category>
        
        <category>millennials</category>
        
        <category>fiction</category>
        
        <category>short stories</category>
        
        
      </item>
    
      <item>
        <title>Talk Synopsis: Yuval Harari | Techno-Religions and Silicon Prophets</title>
        <description>&lt;p&gt;I recently enjoyed a YouTube video of a Yuval Harari talk titled “Techno-Religions and Silicon Prophets” - have a watch (perhaps sped up). Or if you’re pressed for time, read my synopsis below.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;//youtube.com/embed/g6BK5Q_Dblo&quot; allowfullscreen=&quot;&quot; frameborder=&quot;0&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;What follows is my interpretation of Harari’s central arguments. Below are Harari’s ideas and beliefs, not mine (necessarily). At times I quote from Harari directly and borrow his phrases generously.&lt;/p&gt;

&lt;p&gt;–&lt;/p&gt;

&lt;p&gt;Silicon Valley is where the most important religious ideas of today are originating &lt;a href=&quot;#1&quot;&gt;[1]&lt;/a&gt;. The dominant ideology of today is liberal humanism. Here’s a &lt;a href=&quot;https://www.google.com/search?q=define%20humanism&quot;&gt;definition of humanism from Google&lt;/a&gt; (liberalism, humanism, and liberal humanism are used interchangeably):&lt;/p&gt;

&lt;p&gt;&lt;em&gt;an outlook or system of thought attaching prime importance to human rather than divine or supernatural matters. Humanist beliefs stress the potential value and goodness of human beings, emphasize common human needs, and seek solely rational ways of solving human problems.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Here are some examples that demonstrate why liberal humanism is the dominant ideology of the day:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Voting: everyone decides for themselves and then a winner is chosen - “the voter knows best, no source or authority higher than the voter.”&lt;/li&gt;
  &lt;li&gt;Liberal economics: “the customer is always right”. A product is good if a customer buys it. There is no higher authority. Even if the smartest, wisest people produced what they deemed to be the best car, if nobody buys it, then it is considered a bad car. This is in contrast to communism, where a central unit controls the economy.&lt;/li&gt;
  &lt;li&gt;Love &amp;amp; marriage: the individual decides whom to marry based on his/her feelings.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Communism was the first “Techno-Religion” in that it promises a better life here instead of in the afterlife.&lt;/p&gt;

&lt;p&gt;As demonstrated by many religious wars throughout history, as well as the Cold War, religion/ideology matters.&lt;/p&gt;

&lt;p&gt;As non traditional religions such as liberal humanism and communism gained traction, traditional religions did not disappear but instead became less relevant. They moved from creative to reactive forces. For example, when contraception or the internet was invented, religious leaders needed to determine if it was okay and how to use it. And the reactive nature of traditional religions is not limited to technology. For example, traditional religions are still reacting to feminism.&lt;/p&gt;

&lt;p&gt;Further cementing the idea that traditional religions have lost their footing as the dominant ideologies of the day, think about the most important discoveries of the 20th century. In the running: antibiotics, nuclear weapons, the computer, feminism, and so on. In contrast, it is difficult to think of any discovery on that level made by religions that believe in god.&lt;/p&gt;

&lt;p&gt;For these reasons, China, radical Islam, and other older ideologies do not challenge liberalism. However, liberalism is not safe - because of what is happening in Silicon Valley.&lt;/p&gt;

&lt;p&gt;The key insight to overtake liberalism comes from the life sciences. Liberalism believes in individualism. But according to the life sciences, humans have no soul, essence, or inner core. Instead, we are a collection of biochemical algorithms. And when you peel them away, there is no inner core. There is no individual.&lt;/p&gt;

&lt;p&gt;The second key insight undermining liberalism is that these biochemical algorithms are not free. There is no freedom. Instead, they are either deterministic or random.&lt;/p&gt;

&lt;p&gt;Taken together, these two ideas lead to the conclusion that an external system can understand humans perfectly, so long as the biochemical algorithms are adequately understood.&lt;/p&gt;

&lt;p&gt;A few examples. Feelings (“the holy grail of liberalism”) are just biochemical algorithms calculating probabilities of survival and reproduction to inform our decision making.&lt;/p&gt;

&lt;p&gt;Initially, this insight may seem to support liberalism in that it supports using your instinct and feelings - the byproduct of millions of years of evolution and natural selection - instead of the Bible.&lt;/p&gt;

&lt;p&gt;But what happens if we create an algorithm that knows me better than I know myself? And this is the key point: when that happens, authority will shift away from me to the algorithms.&lt;/p&gt;

&lt;p&gt;Right now, our feelings are still the best algorithms. But they are becoming outdated, and we are now in a position to produce an updated version. When we have better algorithms, the authority shifts to them.&lt;/p&gt;

&lt;p&gt;To be clear, this has not happened yet, although it may be starting. Two examples come from medicine and health. Many of the most important decisions about our bodies are not taken by feelings but instead by external algorithms that understand our own internal systems and those of millions of other humans better than we do.&lt;/p&gt;

&lt;p&gt;For example, Angelina Jolie had a preventative mastectomy because genetic testing told her that she had a high risk of getting breast cancer.&lt;/p&gt;

&lt;p&gt;As this spreads to more and more fields, liberalism will collapse (not violently - it will simply become outdated). This has happened before with the transition from traditional religion to liberalism.&lt;/p&gt;

&lt;p&gt;This is not just a matter of ideology, but a very practical matter of how to make decisions. Instead of consulting scripture or a religious leader, listen to your feelings. This represents the shift from religion to liberalism.&lt;/p&gt;

&lt;p&gt;The next stage will be listen to a computer program. The supreme source of authority has already shifted from god to humans, and next will shift to data and information.&lt;/p&gt;

&lt;p&gt;This may sound extreme, but consider this example on what might happen when you ask a computer whom to marry: (direct quote)&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;I know you from the moment you were born. I’ve read every email you’ve ever written. I’ve listened to every phone call. I remember every failed date. I can show you graphs of your sugar level and blood pressure for every date and sexual encounter in your life. I also know your potential mates, just as I know you. And based on all this information, and based on databases of millions of successful and unsuccessful relationships, I can recommend… with probability of 86% you go with [person] A instead of [person] B. I know you so well that I know you are disappointed, but you actually prefer B. You make this mistake because you give too much importance to physical appearance. Beauty is important, but you give it too much weight. Beauty counts for 9% of success of relationship, but your old fashioned biochemical algorithms, because of things that happened in African Savanna, give this beauty 27%, which is far too high. So even though you think B, go for A.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Another example might be Amazon’s book recommendations. Through the kindle, perhaps they will capture how quickly we read each book, our facial expressions, emotional reactions, etc., and use this data to become the authority on which books to read.&lt;/p&gt;

&lt;p&gt;One might question whether the life sciences are correct about this. But it does not matter, because a religion or ideology does not need to be correct in order for it to spread (as evidenced by the creation story in the Bible, for example). Perhaps the new data algorithms will not be correct, but that will not prevent them from taking over the world.&lt;/p&gt;

&lt;p&gt;–&lt;/p&gt;

&lt;p&gt;One of the audience members asks Harari whether he thinks this is good or bad. Harari says in his book &lt;a href=&quot;http://www.amazon.com/Brief-History-Humanity-By-Literature/dp/B0073HDM7G&quot;&gt;A Brief History of Humanity&lt;/a&gt;, you can read between the lines, and also wisely says, “If you start with a certain agenda, then very quickly you become blind to much of reality. one thing almost certain about reality is that it’s complex.”&lt;/p&gt;

&lt;p&gt;The talk was interesting enough that I am curious to read his book or perhaps take his &lt;a href=&quot;https://www.coursera.org/instructor/~284&quot;&gt;Coursera course&lt;/a&gt; on the same subject.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Fall 2016 Update:&lt;/em&gt;&lt;/strong&gt; &lt;a href=&quot;http://www.newyorker.com/business/currency/does-trumps-rise-mean-liberalisms-end&quot;&gt;Harari’s piece in the New Yorker on the “Trump Moment”&lt;/a&gt; is worth a read. Harari argues that the “Trump Moment” signals liberalism’s end, and predicts “ideology that currently takes shape in Silicon Valley” will eventually reign.&lt;/p&gt;

&lt;p&gt;Footnotes:&lt;/p&gt;

&lt;p id=&quot;1&quot;&gt;[1] Harari uses ideology and religion interchangeably. He states that sometimes religion is defined as belief in god(s), but that this is too narrow a definition. God plays a small role in religions like Buddhism and Confucianism. Harari defines religion/ideology based on the function it plays in society. A religion gives legitimacy to human laws and norms by hanging on to some superhuman law or power. There are two kinds of superhuman authorities: gods and natural laws.&lt;/p&gt;
</description>
        <pubDate>Tue, 24 Feb 2015 00:00:00 +0000</pubDate>
        <link>http://www.andygranowitz.com/2015/02/24/yuval-harari-techno-religions-silicon-prophets.html</link>
        <guid isPermaLink="true">http://www.andygranowitz.com/2015/02/24/yuval-harari-techno-religions-silicon-prophets.html</guid>
        
        <category>yuval harari</category>
        
        <category>anthropology</category>
        
        <category>history</category>
        
        <category>technology</category>
        
        <category>religion</category>
        
        <category>ideology</category>
        
        <category>humanism</category>
        
        <category>liberalism</category>
        
        <category>liberal humanism</category>
        
        <category>youtube</category>
        
        
      </item>
    
      <item>
        <title>Food Review: Beyond Meat (Veggie Chicken)</title>
        <description>&lt;p&gt;Although I am not a vegetarian, I have a proclivity for eating vegetarian cuisine. For vegetarian protein sources, I like nuts, beans, lentils, peas, high protein grains, seeds, etc. Including animal products, I enjoy eggs and greek yogurt. I tend to avoid fake meat products.&lt;/p&gt;

&lt;p&gt;Yet after reading a &lt;a href=&quot;http://www.outsideonline.com/outdoor-adventure/culinary/Replacing-Meat-Plant-Based-Meats-Vegetarian.html&quot;&gt;profile of Beyond Meat&lt;/a&gt; in Outside Magazine, my curiosity (and tastebuds) piqued. Perhaps what interested me most were the testimonials from high profile customers, such as Bill Gates:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“I tasted Beyond Meat’s chicken alternative,” &lt;a href=&quot;http://www.gatesnotes.com/About-Bill-Gates/Future-of-Food&quot;&gt;he [Bill Gates] wrote online&lt;/a&gt;, “and honestly couldn’t tell it from real chicken.” Gates quickly realized the blockbuster potential. “Our approach to food hasn’t changed much over the last 100 years. It’s ripe for reinvention. We’re just at the beginning of enormous innovation.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;Gates sat down with Brown [CEO of Beyond Meat] in 2012 and gave him some tips, which the entrepreneur took to heart. As Brown recalls, “He said to me, ‘If you get this thing to cost less than meat, and you get international quickly enough, then this is huge.’”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The &lt;a href=&quot;http://www.outsideonline.com/outdoor-adventure/culinary/Replacing-Meat-Plant-Based-Meats-Vegetarian.html&quot;&gt;entire article&lt;/a&gt; is worth a read if you are interested.&lt;/p&gt;

&lt;p&gt;With such rave reviews, I headed to my &lt;a href=&quot;http://beyondmeat.com/stores/&quot;&gt;local grocery&lt;/a&gt; and gave it a try. I bought the &lt;a href=&quot;http://beyondmeat.com/products/beyond-chicken-grilled-strips/&quot;&gt;Grilled Chicken Strips&lt;/a&gt; and cooked them on the cast iron skillet as per instructions on the package. I mixed in some vegetables, and voila I had a vegetarian chicken stir fry (pictured below).&lt;/p&gt;

&lt;div class=&quot;image&quot;&gt;
	&lt;figure&gt;
		&lt;img src=&quot;http://www.andygranowitz.com/assets/images/beyond-chicken.jpg&quot; alt=&quot;Broccoli, carrots, onion, and Beyond Chicken strips in a cast iron&quot; class=&quot;&quot; style=&quot;height: px;&quot; /&gt;
		&lt;figcaption&gt;&lt;/figcaption&gt;
	&lt;/figure&gt;
&lt;/div&gt;

&lt;p&gt;The verdict? Sad to say it failed to live up to the hype. It wasn’t bad tasting per se, but it was rubbery and relatively tasteless. It could not have passed for real chicken. Maybe I didn’t cook it correctly, but I don’t think so.&lt;/p&gt;

&lt;p&gt;Given my inclination to avoid processed foods, I likely won’t try again.&lt;/p&gt;

&lt;p&gt;However, Beyond Meat contends their products are not processed. Via Outside Magazine:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;When I told Geistlinger [of Beyond Meat] that I was skeptical of processed foods, especially ones produced by novel techniques, he pointed out that Beyond Meat uses no artificial ingredients and employs the most time-tested of cooking methods (heat and pressure). “Our process is gentler than making pretzels,” he said. “Getting that browning on a pretzel requires chemically changing the bonds in the molecules. That’s more harsh than what we do.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Food writer Mark Bittman disagrees. The article continues:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Mark Bittman, for one, is going to stay off the faux-meat bandwagon for now. “I think we have to evaluate each of these products individually,” he told me. “Some fake meats can easily pass for ‘real’ meat, but in many cases that’s because ‘real’ meat has been so degraded by the industrial production of animals. Still: the best direction for most of us is to eat unprocessed food of all types; fake meat hardly qualifies.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Processed or not, healthy or unhealthy debates aside, I think my dish would have been more tasty had I substitued the fake meat for say, cashews or lentils.&lt;/p&gt;

&lt;p&gt;I’m open to trying their forthcoming plant based hamburger (the “Beast Burger”), but I don’t foresee any fake meats entering my shopping cart on a regular basis anytime soon.&lt;/p&gt;
</description>
        <pubDate>Sun, 01 Feb 2015 00:00:00 +0000</pubDate>
        <link>http://www.andygranowitz.com/2015/02/01/beyond-meat-food-review.html</link>
        <guid isPermaLink="true">http://www.andygranowitz.com/2015/02/01/beyond-meat-food-review.html</guid>
        
        <category>food review</category>
        
        <category>beyond meat</category>
        
        <category>beyond chicken</category>
        
        <category>food</category>
        
        <category>vegetarian food</category>
        
        <category>technology</category>
        
        <category>review</category>
        
        
      </item>
    
      <item>
        <title>Twitter, Pocket, and Books</title>
        <description>&lt;p&gt;Twitter is my primary source of news discovery. And &lt;a href=&quot;http://getpocket.com/&quot;&gt;Pocket&lt;/a&gt; is my primary news consumption app.&lt;/p&gt;

&lt;p&gt;When I have a few minutes to spare, I peruse Twitter for interesting articles that I want to read &lt;a href=&quot;#1&quot;&gt;[1]&lt;/a&gt;. When I find one, I save it to Pocket. In addition to Twitter, I’ll save articles to Pocket that friends or coworkers email to me, that I find when browsing news websites directly, that are linked to from other articles, etc.&lt;/p&gt;

&lt;p&gt;When I have more than a few minutes, I will open up Pocket and read articles I’ve saved.&lt;/p&gt;

&lt;p&gt;This workflow separates content discovery and consumption, and is more productive for me than doing both at once. If I sit down to read articles in Pocket, I can get through many in a short period of time. No waiting for articles to load, no back and forth between apps. Focused, concentrated reading time.&lt;/p&gt;

&lt;p&gt;When I first began using Pocket, I was pleased with the increase in reading output. I felt myself reading more “long form” and getting deeper into topics.&lt;/p&gt;

&lt;p&gt;In fact, I’ve become such an active Pocket user that at the end of 2014, I received an email from Pocket informing me that I was in the top 1% of readers.&lt;/p&gt;

&lt;div class=&quot;image&quot;&gt;
	&lt;figure&gt;
		&lt;img src=&quot;http://www.andygranowitz.com/assets/images/pocket.png&quot; alt=&quot;Graphic showing how many words I read in Pocket in 2014&quot; class=&quot;&quot; style=&quot;height: px;&quot; /&gt;
		&lt;figcaption&gt;&lt;/figcaption&gt;
	&lt;/figure&gt;
&lt;/div&gt;

&lt;p&gt;That’s right, I read 1.6 million words, which Pocket has calculated is about 35 books &lt;a href=&quot;#2&quot;&gt;[2]&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I was initially happy to see this. It confirmed my feeling that I was reading more using Pocket, which I thought of as a good thing. I still think so, but frankly I would rather have read 35 books! Or at least gone half and half.&lt;/p&gt;

&lt;p&gt;A friend pointed out the irony that Pocket, despite being an app for reading digital content, still gives books the high merit of the benchmark. Can you imagine finishing a book and on the last page reading, “Awesome! You just read the equivalent of 500 news articles!”&lt;/p&gt;

&lt;p&gt;Also ironically, Pocket’s congratulatory note may end up backfiring. It was a bit of a wakeup call - read more books, less news articles. There is a tradeoff, as I enjoy being up on current events. But books allow you to go even deeper, and provide continuity from one reading session to the next (among &lt;em&gt;many&lt;/em&gt; other benefits, of course). In 2015, I may look to convert some of those 35 “books” I read into actual books.&lt;/p&gt;

&lt;p&gt;Footnotes:&lt;/p&gt;

&lt;p id=&quot;1&quot;&gt;[1] Naturally, whom I follow on Twitter has a large impact on the news I am consuming. Therefore, I do spend some time curating the list of whom I follow. One of the reasons I like Twitter is because my feed is a unique blend of my various unrelated interests - something you cannot get from traditional media.&lt;/p&gt;
&lt;p id=&quot;2&quot;&gt;[2] That comes out to 46,694 words per book. On the short side, but otherwise seems like an okay assumption.&lt;/p&gt;
</description>
        <pubDate>Thu, 15 Jan 2015 00:00:00 +0000</pubDate>
        <link>http://www.andygranowitz.com/2015/01/15/pocket-twitter-books.html</link>
        <guid isPermaLink="true">http://www.andygranowitz.com/2015/01/15/pocket-twitter-books.html</guid>
        
        <category>twitter</category>
        
        <category>pocket</category>
        
        <category>books</category>
        
        <category>reading</category>
        
        <category>technology</category>
        
        
      </item>
    
      <item>
        <title>St. Petersburg Paradox Simulations</title>
        <description>&lt;p&gt;A friend recently posed a riddle to me:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You flip a &lt;a href=&quot;http://en.wikipedia.org/wiki/Fair_coin&quot;&gt;fair coin&lt;/a&gt;. Tails, the game is over. Heads you win $2 and play again. In the next round, tails you take your $2 and the game is over. Heads you win an additional $4 and play again. In the next round, tails you take your $6 and the game is over. Heads you win an additional $8, and play again. And so on. The payoffs double in each round. How much would you be willing to pay to play this game?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you are unfamiliar with this problem, it’s worthwhile to take some time to try and solve it. I needed pencil and paper &lt;a href=&quot;#1&quot;&gt;[1]&lt;/a&gt;. When ready, scroll down to read on.&lt;/p&gt;

&lt;p&gt;…&lt;/p&gt;

&lt;p&gt;…&lt;/p&gt;

&lt;p&gt;…&lt;/p&gt;

&lt;p&gt;…&lt;/p&gt;

&lt;p&gt;Now that you’ve had some time to think about it, take a moment to read through the solution in terms of expected value (this riddle is known as the &lt;a href=&quot;http://en.wikipedia.org/wiki/St._Petersburg_paradox&quot;&gt;St. Petersburg Paradox&lt;/a&gt;). I also enjoyed this &lt;a href=&quot;http://plato.stanford.edu/entries/paradox-stpetersburg/&quot;&gt;Stanford Encyclopedia of Philosophy write up&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The key point is that the expected value is infinite:&lt;/p&gt;

&lt;div class=&quot;image&quot;&gt;
	&lt;figure&gt;
		&lt;img src=&quot;http://www.andygranowitz.com/assets/images/stp1.png&quot; alt=&quot;&quot; class=&quot;noborder&quot; style=&quot;height: px;&quot; /&gt;
		&lt;figcaption&gt;&lt;/figcaption&gt;
	&lt;/figure&gt;
&lt;/div&gt;

&lt;div class=&quot;image&quot;&gt;
	&lt;figure&gt;
		&lt;img src=&quot;http://www.andygranowitz.com/assets/images/stp2.png&quot; alt=&quot;&quot; class=&quot;noborder&quot; style=&quot;height: px;&quot; /&gt;
		&lt;figcaption&gt;&lt;/figcaption&gt;
	&lt;/figure&gt;
&lt;/div&gt;

&lt;div class=&quot;image&quot;&gt;
	&lt;figure&gt;
		&lt;img src=&quot;http://www.andygranowitz.com/assets/images/stp3.png&quot; alt=&quot;&quot; class=&quot;noborder&quot; style=&quot;height: px;&quot; /&gt;
		&lt;figcaption&gt;&lt;/figcaption&gt;
	&lt;/figure&gt;
&lt;/div&gt;

&lt;p&gt;So, in theory, you should be willing to pay a large amount of money to play this game (in particular, anything less than infinity). Clearly that is not a good idea - hence a paradox.&lt;/p&gt;

&lt;p&gt;But what if you could play the game many times? By the &lt;a href=&quot;http://en.wikipedia.org/wiki/Law_of_large_numbers&quot;&gt;law of large numbers&lt;/a&gt;, the more times you play, the closer the average of the results should be to the expected value (which in our case is infinite).&lt;/p&gt;

&lt;p&gt;I was curious about what this would look like in reality, and wrote some R code to simulate playing the game many times. After running the code, I was initially surprised to see that even if you play the game a very large number of times, the average of the results was quite low, and quite variable. It was nowhere near approaching infinity.&lt;/p&gt;

&lt;p&gt;The Stanford Encyclopedia of Philosophy includes a useful graph (reproduced below) that helps explain the interesting way the simulations of the St. Petersburg approach infinity.&lt;/p&gt;

&lt;p&gt;Essentially, every once in a while, you’ll win big. This will cause a big jump in the average of the results thus far. The average will then slowly decrease (50% of the time you’ll win 0), until another big jump. Because the average of the results increases at each jump, it becomes more difficult to increase your average as time goes on. So the big jumps become more and more rare.&lt;/p&gt;

&lt;p&gt;I ran this for 20,000 simulations:&lt;/p&gt;

&lt;div class=&quot;image&quot;&gt;
	&lt;figure&gt;
		&lt;img src=&quot;http://www.andygranowitz.com/assets/images/st-petersburg-simulation.png&quot; alt=&quot;&quot; class=&quot;&quot; style=&quot;height: px;&quot; /&gt;
		&lt;figcaption&gt;&lt;/figcaption&gt;
	&lt;/figure&gt;
&lt;/div&gt;

&lt;p&gt;Full code via &lt;a href=&quot;https://gist.github.com/grano/fc854a2ffb2d6af8793b&quot;&gt;this GitHub Gist&lt;/a&gt;:&lt;/p&gt;

&lt;script src=&quot;https://gist.github.com/grano/fc854a2ffb2d6af8793b.js&quot;&gt; &lt;/script&gt;

&lt;p id=&quot;1&quot;&gt;[1] I find the more I struggle with a problem - math or otherwise - before looking at solutions, the deeper my understanding of the problem. This is the idea behind the aphorism &quot;math is not a spectator sport&quot;.&lt;/p&gt;
</description>
        <pubDate>Mon, 12 Jan 2015 00:00:00 +0000</pubDate>
        <link>http://www.andygranowitz.com/2015/01/12/r-code-simulation-st-petersburg-paradox.html</link>
        <guid isPermaLink="true">http://www.andygranowitz.com/2015/01/12/r-code-simulation-st-petersburg-paradox.html</guid>
        
        <category>st petersburg paradox</category>
        
        <category>probability</category>
        
        <category>statistics</category>
        
        <category>rstats</category>
        
        <category>code</category>
        
        <category>math</category>
        
        <category>riddles</category>
        
        
      </item>
    
      <item>
        <title>Book Review: Think Like a Freak</title>
        <description>&lt;p&gt;I received &lt;em&gt;Think Like a Freak&lt;/em&gt;, the third book in the &lt;em&gt;Freakonomics&lt;/em&gt; series (following &lt;em&gt;Freakonomics&lt;/em&gt; and &lt;em&gt;Superfreakonomics&lt;/em&gt;) as a gift a while back, and finally got around to reading it.&lt;/p&gt;

&lt;p&gt;As laid out by the title, this book differs a bit from Levitt and Dubner’s previous books in that it sets out to teach the reader how to “think like a freak”. Here’s an excerpt that explains what it means to think like a freak:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;We’d like to bury the idea that there’s a right way and a wrong way, a smart way and a foolish way, a red way and a blue way. The modern world demands that we all think a bit more productively, more creatively, more rationally; that we think from a different angle, with a different set of muscles, with a different set of expectations; that we think with neither fear nor favor, with neither blind optimism nor sour skepticism. That we think like - ahem - a Freak.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Each chapter follows the same basic format. Through a series of stories (Levitt and Dubner later write that storytelling is a good method of persuasion), each chapter demonstrates a different technique employed by “Freaks”.&lt;/p&gt;

&lt;p&gt;Although I found many of the broader messages on thinking like a freak not particularly memorable, I did enjoy many of the stories and examples told throughout the book. These stories were often anecdotes, pieces of research conducted by the authors or other academics, or mini experiments run by the authors.&lt;/p&gt;

&lt;p&gt;One of the examples I found interesting was &lt;a href=&quot;http://research.microsoft.com/apps/pubs/default.aspx?id=167719&quot;&gt;research on why Nigerian scam emails are seemingly so unbelievable&lt;/a&gt;, conducted by Cormac Herley, a computer scientist at Microsoft Research. In the words of Wikipedia, these scams are characterized by the “apparently comical, almost ludicrous nature of the promise of West African riches from a Nigerian Prince.” As outlined in &lt;em&gt;Think Like a Freak&lt;/em&gt;, Herley explains that the absurd nature of these emails claiming to be from Nigerian princes is an advantage to the scammer, because only the most gullible of recipients replies. If the scammers began with a more believable email, they would receive way too many replies and would be unable to filter down to the people who would ultimately send the money. By making the email so outlandish, they are essentially inviting the most easily persuadable people to come forward and identify themselves.&lt;/p&gt;

&lt;p&gt;One lesson I take away from this bit of research is that many seemingly stupid behaviors aren’t. But the broader approach Levitt and Dubner were trying to advocate was getting people to inadvertently admit something to you. Another example came from David Lee Roth, lead singer of Van Halen. He had lengthy technical and security specs that a hosting venue had to follow for all live performances. How did he ensure they were all followed? One requirement was no brown M&amp;amp;M’s backstage. Instead of inspecting the entire technical setup, Roth could simply look and see if there were brown M&amp;amp;M’s, and therefore learn whether all the detailed instructions had been read.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Think Like a Freak&lt;/em&gt; contains many such interesting stories and is a light and enjoyable read. However, one thing that left me curious was the continued glorification of Intellectual Ventures &lt;a href=&quot;#1&quot;&gt;[1]&lt;/a&gt;, a company that has been widely criticized for being a “patent troll” &lt;a href=&quot;#2&quot;&gt;[2]&lt;/a&gt;. There is likely a portion of Intellectual Ventures that is indeed doing noteworthy and positive work. That the patent troll controversy is not mentioned in &lt;em&gt;Think Like a Freak&lt;/em&gt; - not even in the extensive notes section - is a disappointing omission &lt;a href=&quot;#3&quot;&gt;[3]&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;And this leads to a broader criticism about &lt;em&gt;Think Like a Freak&lt;/em&gt;. Instead of a surface level discussion of how Intellectual Ventures handles failed projects, I would have preferred to hear Levitt and Dubner’s take on the firm’s roll as a “mass aggregator” of patents, and patent trolls as a whole.&lt;/p&gt;

&lt;p&gt;More generally, in &lt;em&gt;Think Like a Freak&lt;/em&gt;, Levitt and Dubner took a step away from unique perspectives on more substantial policy debates. Perhaps this is a response to the ultimately negative media attention generated from their position on global warming in &lt;em&gt;Superfreakonomics&lt;/em&gt; (&lt;a href=&quot;http://www.reddit.com/r/IAmA/comments/18tp7t/i_am_steven_levitt_author_of_freakonomics_ask_me/c8hvs0e&quot;&gt;Levitt stands by what was written but admits&lt;/a&gt; that they “lost the media battle on the topic”). But to me it felt like they had less underlying source material to work with in &lt;em&gt;Think Like a Freak&lt;/em&gt; than in the first two books.&lt;/p&gt;

&lt;p&gt;As a high school student with no interest in economics, I was drawn to &lt;em&gt;Freakonomics&lt;/em&gt; precisely because the off-beat topics interested me. I probably would not have picked up a book that discussed patent law, for example. Nonetheless, at this point in time, I would rather hear more substantive topics discussed.&lt;/p&gt;

&lt;p&gt;In the final chapter of &lt;em&gt;Think Like a Freak&lt;/em&gt;, the under-recognized merits of quitting are discussed. Levitt and Dubner ponder whether or not they will write a fourth book in the series, or “quit”. If they do, I’ll still likely read it, but it won’t be at the top of my reading list.&lt;/p&gt;

&lt;p id=&quot;1&quot;&gt;[1] Intellectual Ventures was also lauded in &lt;em&gt;SuperFreakonomics&lt;/em&gt;.&lt;/p&gt;
&lt;p id=&quot;2&quot;&gt;[2] See &lt;a href=&quot;http://en.wikipedia.org/wiki/Intellectual_Ventures#Controversy&quot;&gt;Wikipedia entry on Intellectual Ventures&lt;/a&gt; &lt;/p&gt;
&lt;p id=&quot;3&quot;&gt;[3] Dubner was &lt;a href=&quot;http://freakonomics.com/2012/03/02/some-links-worth-reading/&quot;&gt;clearly aware&lt;/a&gt; of the allegations against Intellectual Ventures prior to the publication of &lt;em&gt;Think Like a Freak&lt;/em&gt;. &lt;p&gt;
&lt;/p&gt;&lt;/p&gt;
</description>
        <pubDate>Fri, 09 Jan 2015 00:00:00 +0000</pubDate>
        <link>http://www.andygranowitz.com/2015/01/09/think-like-a-freak-book-review.html</link>
        <guid isPermaLink="true">http://www.andygranowitz.com/2015/01/09/think-like-a-freak-book-review.html</guid>
        
        <category>think like a freak</category>
        
        <category>freakonomics</category>
        
        <category>steven levitt</category>
        
        <category>stephen dubner</category>
        
        <category>book</category>
        
        <category>book review</category>
        
        <category>nigerian scams</category>
        
        <category>patent trolls</category>
        
        <category>intellectual ventures</category>
        
        
      </item>
    
      <item>
        <title>On &quot;In B Flat&quot;</title>
        <description>&lt;p&gt;Try it out here &lt;a href=&quot;http://www.inbflat.net/&quot;&gt;http://www.inbflat.net/&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Things I like about In B Flat:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;It allows you as the consumer of the experience to also be a part of the creation of the experience&lt;/li&gt;
  &lt;li&gt;Because of that, it can be different each time&lt;/li&gt;
  &lt;li&gt;Listening to it, you feel many different people coming together&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And probably most of all, I enjoy the music that it produces. In B Flat is a tribute to &lt;a href=&quot;http://en.wikipedia.org/wiki/Terry_Riley&quot;&gt;Terry Riley&lt;/a&gt;, composer of &lt;a href=&quot;http://en.wikipedia.org/wiki/In_C&quot;&gt;In C&lt;/a&gt; (see &lt;a href=&quot;http://www.inbflat.net/faq.html&quot;&gt;In B Flat FAQs&lt;/a&gt;). In C is also a very interesting concept, but the music doesn’t make me feel the connections between the musicians in the same way as In B Flat does.&lt;/p&gt;

&lt;p&gt;In B Flat is inspirational to me, in that I would love to see more opportunities for musicians from around the world collaboratively make music over the internet.&lt;/p&gt;
</description>
        <pubDate>Fri, 09 Jan 2015 00:00:00 +0000</pubDate>
        <link>http://www.andygranowitz.com/2015/01/09/on-in-b-flat.html</link>
        <guid isPermaLink="true">http://www.andygranowitz.com/2015/01/09/on-in-b-flat.html</guid>
        
        <category>music</category>
        
        <category>youtube</category>
        
        <category>in b flat</category>
        
        <category>music creation</category>
        
        <category>internet</category>
        
        <category>art</category>
        
        <category>things i like</category>
        
        <category>terry riley</category>
        
        
      </item>
    
      <item>
        <title>Storytelling</title>
        <description>&lt;div class=&quot;image&quot;&gt;
	&lt;figure&gt;
		&lt;img src=&quot;http://www.andygranowitz.com/assets/images/andy-storytelling.jpg&quot; alt=&quot;Me telling a story at a Spokespeople event.&quot; class=&quot;&quot; style=&quot;height: px;&quot; /&gt;
		&lt;figcaption&gt;Me telling a story at a Spokespeople event.&lt;/figcaption&gt;
	&lt;/figure&gt;
&lt;/div&gt;

&lt;p&gt;For the past year or so, I’ve attended a few &lt;a href=&quot;http://spokesppl.org/&quot;&gt;Spokespeople&lt;/a&gt; events. I’ve really enjoyed listening to other people’s stories, and learning about the art of storytelling.&lt;/p&gt;

&lt;p&gt;A friend of mine has told many stories for Spokespeople. I asked him how he has so many stories to tell? He explained he thinks of his life as a series of stories. I agree - surely he has not had more story-worth events happen to him. He is just more capable of constructing the narrative.&lt;/p&gt;

&lt;p&gt;I told my first story a few months back. Spokespeople liked it so much, they put it on their podcast!&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://spokesppl.org/2014/12/24/podcast-70-herring-today-gone-tomorrow/&quot;&gt;Have a listen&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Thu, 08 Jan 2015 00:00:00 +0000</pubDate>
        <link>http://www.andygranowitz.com/2015/01/08/storytelling.html</link>
        <guid isPermaLink="true">http://www.andygranowitz.com/2015/01/08/storytelling.html</guid>
        
        <category>storytelling</category>
        
        <category>public speaking</category>
        
        <category>podcasts</category>
        
        <category>spokespeople</category>
        
        
      </item>
    
      <item>
        <title>Improvisation</title>
        <description>			&lt;p&gt;
	This post contains several completely improvised solo piano songs I recorded on GarageBand 
	between February and April 2014.
&lt;/p&gt;

&lt;p&gt;
	In &lt;a href=&quot;http://en.wikipedia.org/wiki/Straight-ahead_jazz&quot; 
	target=&quot;_blank&quot;&gt;straight-ahead jazz&lt;/a&gt; (which likely includes a large portion of the jazz music a casual
	jazz fan would listen to), different composed songs are played &lt;a href=&quot;#1&quot;&gt;[1]&lt;/a&gt;. Each song 
	has a composed melody and harmony, and the rhythm and general feel of the song usually come 
	from one or more of few different styles (e.g. swing, bossa nova, waltz, and so on). During some 
	portion of the song, some of the instruments will &quot;solo&quot;, whereby they 
	improvise a new melody on top of the composed harmony 
	and rhythm of the song. The improvised melody may be similar to the composed melody, or not, depending on 
	the feel of the song and the style of the improviser. 
&lt;/p&gt;
&lt;p&gt;
	This is in contrast to Free Jazz,
	where the composition may offer less melodic, harmonic, and rhythmic guidance (sometimes absolutely none
	at all). The improvised portion of the song forces the soloist to improvise all of these musical elements. Generally, Free Jazz is more atonal and less accessible to 
	someone new to the music &lt;a href=&quot;#2&quot;&gt;[2]&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
	The recordings below differ from straight-ahead jazz in that there is no underlying composition
	that I am using as a base for my improvisation. I improvised the melody, harmony,
	and rhythm. I had no pre-conceived ideas what I would play before hitting the 
	&quot;record&quot; button. However, they also differ from what would be considered Free Jazz in that it the songs are
	mostly standard in their use of harmony, and are mostly harmonious &lt;a href=&quot;#3&quot;&gt;[3]&lt;/a&gt;. 
&lt;/p&gt;
&lt;p&gt;
	Many of the rhythms are similar throughout each different improvisation. I find improvising rhythms 
	to be the most challenging of the three musical elements, especially while focusing on melody and harmony.
	The harmonies are improvised. I tend to draw on common harmonic patterns, but sometimes not. The melodies
	are almost always improvised (on occasion you may here a familiar sounding melody if it happened to 
	pop into my head).
&lt;/p&gt;
&lt;p&gt;
	The biggest influence for these improvised pieces comes from &lt;a href=&quot;http://en.wikipedia.org/wiki/Keith_Jarrett&quot; target=&quot;_blank&quot;&gt;Keith Jarrett&lt;/a&gt;.
	 He is famous for performing 
	totally improvised, solo piano concerts. His most famous is the &lt;a href=&quot;http://en.wikipedia.org/wiki/The_K%C3%B6ln_Concert&quot; target=&quot;_blank&quot;&gt;Koln Concert&lt;/a&gt; (you should
	&lt;a href=&quot;https://myspace.com/keithjarrett1234/music/album/the-k-ln-concert-18160241/85194247&quot; target=&quot;_blank&quot;&gt;listen to it&lt;/a&gt;). I don't know much about how he approaches these improvisations, and I have
	never received any formal training on this style of improvisation. 
&lt;/p&gt;
&lt;p&gt;
	Most of the other music I have posted here is older; in other words, a few years passed before 
	I posted it. In that regard, that music passed a sort of test of time to my ears. I'm not sure how I will look back on this music in a few years. In general, I tend to  
	like music I record shortly after I record it, but over time I may come to dislike it. 
&lt;/p&gt;
&lt;p&gt;
	As of writing (May 2014), I mostly enjoy this music. It is totally unedited, so you will hear some
	mistakes. It is rough around the edges at times. Parts of it I already don't care for. But there
	are also segments that I really enjoy. Regardless of whether or not I enjoy the music afterwards,
	I greatly enjoy playing it. It can be deeply meditative. Oftentimes, when I stop playing, I
	will have no idea how long I had been playing for.
&lt;/p&gt;
&lt;p&gt;
	Have a listen below.
&lt;/p&gt;

&lt;iframe style=&quot;border: 0; width: 100%; height: 120px;&quot; src=&quot;https://bandcamp.com/EmbeddedPlayer/track=3975566800/size=large/bgcol=ffffff/linkcol=0687f5/tracklist=false/artwork=small/transparent=true/&quot; seamless&gt;&lt;a href=&quot;https://grano.bandcamp.com/track/free-improv-42914&quot;&gt;&lt;/a&gt;&lt;/iframe&gt;
&lt;iframe style=&quot;border: 0; width: 100%; height: 120px;&quot; src=&quot;https://bandcamp.com/EmbeddedPlayer/track=1942297865/size=large/bgcol=ffffff/linkcol=0687f5/tracklist=false/artwork=small/transparent=true/&quot; seamless&gt;&lt;a href=&quot;https://grano.bandcamp.com/track/free-improv-21914&quot;&gt;&lt;/a&gt;&lt;/iframe&gt;
&lt;iframe style=&quot;border: 0; width: 100%; height: 120px;&quot; src=&quot;https://bandcamp.com/EmbeddedPlayer/track=2314277554/size=large/bgcol=ffffff/linkcol=0687f5/tracklist=false/artwork=small/transparent=true/&quot; seamless&gt;&lt;a href=&quot;https://grano.bandcamp.com/track/free-improv-21414&quot;&gt;&lt;/a&gt;&lt;/iframe&gt;
&lt;iframe style=&quot;border: 0; width: 100%; height: 120px;&quot; src=&quot;https://bandcamp.com/EmbeddedPlayer/track=1144548067/size=large/bgcol=ffffff/linkcol=0687f5/tracklist=false/artwork=small/transparent=true/&quot; seamless&gt;&lt;a href=&quot;https://grano.bandcamp.com/track/free-improv-21314&quot;&gt;&lt;/a&gt;&lt;/iframe&gt;
&lt;iframe style=&quot;border: 0; width: 100%; height: 120px;&quot; src=&quot;https://bandcamp.com/EmbeddedPlayer/track=2257128296/size=large/bgcol=ffffff/linkcol=0687f5/tracklist=false/artwork=small/transparent=true/&quot; seamless&gt;&lt;a href=&quot;https://grano.bandcamp.com/track/free-improv-21214&quot;&gt;&lt;/a&gt;&lt;/iframe&gt;
&lt;p&gt;Footnotes:&lt;/p&gt;
&lt;div id=&quot;1&quot;&gt;
	&lt;p&gt;
		[1] The compositions generally come from showtunes, classic swing or big band tunes, 
		other popular music of the day, as well as compositions by the jazz musicians themselves.
	&lt;/p&gt;
&lt;/div&gt;
&lt;div id=&quot;2&quot;&gt;
	&lt;p&gt;
		[2] The seminal Free Jazz album is Ornette Coleman's &lt;a href=&quot;http://en.wikipedia.org/wiki/The_Shape_of_Jazz_to_Come&quot; target=&quot;_blank&quot;&gt;The Shape of Jazz To Come&lt;/a&gt;. Recorded in 1959, relative to some of the Free Jazz that this album led to, it sounds
		rather tame and accessible. 
	&lt;/p&gt;
&lt;/div&gt;
&lt;div id=&quot;3&quot;&gt;
	&lt;p&gt;
		[3] I say &quot;mostly&quot;, because there are definitely some dissonant moments. 
	&lt;/p&gt;
&lt;/div&gt;
</description>
        <pubDate>Mon, 01 Dec 2014 00:00:00 +0000</pubDate>
        <link>http://www.andygranowitz.com/2014/12/01/improvised-piano-music.html</link>
        <guid isPermaLink="true">http://www.andygranowitz.com/2014/12/01/improvised-piano-music.html</guid>
        
        <category>music</category>
        
        <category>improvisation</category>
        
        <category>original composition</category>
        
        <category>jazz</category>
        
        <category>garageband</category>
        
        <category>piano</category>
        
        
      </item>
    
      <item>
        <title>Is Tiger Winning</title>
        <description>&lt;div class=&quot;image&quot;&gt;
	&lt;figure&gt;
		&lt;img src=&quot;http://www.andygranowitz.com/assets/images/tiger-woods-fist-pump.jpg&quot; alt=&quot;Tiger Woods pumping his fist after sinking a putt on the 72nd hole of the 2008 US Open to tie Rocco Mediate for the lead.&quot; class=&quot;&quot; style=&quot;height: px;&quot; /&gt;
		&lt;figcaption&gt;&lt;/figcaption&gt;
	&lt;/figure&gt;
&lt;/div&gt;

&lt;p&gt;Watching the 2013 US Open with some casual golf fans, I realized they only wanted one question answered. With that in mind, I built &lt;a href=&quot;http://www.istigerwinning.com&quot;&gt;www.IsTigerWinning.com&lt;/a&gt;. Much to my pleasant surprise, after a tweet and one &lt;a href=&quot;http://www.reddit.com/r/golf/comments/1gfke0/is_tiger_woods_winning/&quot;&gt;submission to Reddit&lt;/a&gt;, I got over 10,000 Pageviews and 8,000 Unique Visitors in a little over 24 hours! And it even got &lt;a href=&quot;http://deadspin.com/keep-track-of-the-goings-on-at-the-u-s-open-right-here-513663115&quot;&gt;picked up by Deadspin&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;IsTigerWinning.com continues to update automatically. Although traffic declined steadily over the remainder of the 2013 season, traffic was highly correlated with how well Tiger was playing.&lt;/p&gt;

&lt;p&gt;Here’s to you, time-pressed golf fan: &lt;a href=&quot;http://www.istigerwinning.com&quot;&gt;www.IsTigerWinning.com&lt;/a&gt;.&lt;/p&gt;

&lt;div class=&quot;image&quot;&gt;
	&lt;figure&gt;
		&lt;img src=&quot;http://www.andygranowitz.com/assets/images/istigerwinning.png&quot; alt=&quot;Screenshot of IsTigerWinning.com&quot; class=&quot;&quot; style=&quot;height: px;&quot; /&gt;
		&lt;figcaption&gt;&lt;/figcaption&gt;
	&lt;/figure&gt;
&lt;/div&gt;

</description>
        <pubDate>Fri, 07 Feb 2014 00:00:00 +0000</pubDate>
        <link>http://www.andygranowitz.com/2014/02/07/is-tiger-winning.html</link>
        <guid isPermaLink="true">http://www.andygranowitz.com/2014/02/07/is-tiger-winning.html</guid>
        
        <category>golf</category>
        
        <category>us open</category>
        
        <category>tiger</category>
        
        <category>tiger woods</category>
        
        <category>reddit</category>
        
        <category>google analytics</category>
        
        <category>deadspin</category>
        
        
      </item>
    
      <item>
        <title>Markov Music - a Simple Music Discovery App</title>
        <description>&lt;p&gt;
	I've always enjoyed music discovery services. When a new service is launched, 
	I've been known to spend hours playing around seeing what new music the service 
	can find for me. So I figured it would be fun to build my own music / artist discovery service (using Google App Engine). 
	I call it Markov Music.
&lt;/p&gt;
&lt;p&gt;
	When you type something into the search bar, the app tries to match this search term 
	to a known person. Using the &lt;a target=&quot;_blank&quot; href=&quot;http://www.freebase.com/&quot;&gt;Freebase&lt;/a&gt; 
	database, the app then look for other artists that influenced and were influenced by the artist 
	you entered. After showing you a YouTube video of this artist, another 
	artist is randomly selected from the list of influenced and influenced by. And so forth and so on. Hence the name 
	Markov Music - the artist selection technique forms a &lt;a target=&quot;_blank&quot; 
	href=&quot;http://en.wikipedia.org/wiki/Markov_chain&quot;&gt;Markov Chain&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
	&lt;a href=&quot;http://findmenewmusic.appspot.com/&quot; target=&quot;_blank&quot;&gt;Give it a try here.&lt;/a&gt;
&lt;/p&gt;
</description>
        <pubDate>Thu, 06 Jun 2013 00:00:00 +0000</pubDate>
        <link>http://www.andygranowitz.com/2013/06/06/markov-music-simple-music-discovery-app.html</link>
        <guid isPermaLink="true">http://www.andygranowitz.com/2013/06/06/markov-music-simple-music-discovery-app.html</guid>
        
        <category>music discovery</category>
        
        <category>music</category>
        
        <category>markov chain</category>
        
        <category>projects</category>
        
        <category>app engine</category>
        
        
      </item>
    
      <item>
        <title>How to Play Golf on the Cheap</title>
        <description>&lt;p&gt;People frequently assert that in order to play golf, you must spend a lot of money. While it is certainly possible to spend a lot of money playing golf, you can be an avid golfer for a relatively small price tag. Let me explain.&lt;/p&gt;

&lt;p&gt;Things I don’t spend any money on:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Golf clubs: I got my clubs over 8 years ago as a gift. So for the last 8 years I have spent $0 on new clubs.&lt;/li&gt;
  &lt;li&gt;Balls &amp;amp; tees: Between finding balls while playing (most rounds I finish net positive balls found vs lost), free or super inexpensive tees, and my long lasting golf bag, I have spent $0 on any such accessories in the past 8 years.&lt;/li&gt;
  &lt;li&gt;Golf cart: I enjoy golf much more when walking. If you’re going to be outside for 5 hours, you might as well get a little exercise. Plus, it saves what is usually a $20 fee to ride the golf cart.&lt;/li&gt;
  &lt;li&gt;Food: Golf course food tends to be decent, but nothing wrong with packing yourself a PB&amp;amp;J for lunch.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Things I do spend money on:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Greens fees: Hard to avoid this one. But great local courses, such as my home course Sterling Farms, cost under $30 for 18 holes.&lt;/li&gt;
  &lt;li&gt;Shoes: I buy one pair every few years, in the $50-100 range.&lt;/li&gt;
  &lt;li&gt;Gloves: A 3-pack from Costco is good for the season and costs about $20&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And that’s it. The cost of shoes and gloves gets averaged out, meaning I pay about $30 for 5+ hours of quality, wholesome entertainment. Compare that to hour-long activities like going to the movies or bowling, and a round of golf starts to seem like a bargain.&lt;/p&gt;

&lt;div class=&quot;image&quot;&gt;
	&lt;figure&gt;
		&lt;img src=&quot;http://www.andygranowitz.com/assets/images/sterling-farms.jpg&quot; alt=&quot;Sterling Farms Golf Course&quot; class=&quot;&quot; style=&quot;height: px;&quot; /&gt;
		&lt;figcaption&gt;Sterling Farms Golf Course (pictured above) costs $28 to play, and is a gorgeous, fun, and challenging golf course that I love playing.&lt;/figcaption&gt;
	&lt;/figure&gt;
&lt;/div&gt;

&lt;p&gt;Granted, golf can be very expensive. Some courses charge $500 per tee time. But there are lots of interesting, picturesque, and fun courses around in the $20-$40 range. I guarantee you can find one in your area.&lt;/p&gt;

&lt;p&gt;When first taking up the sport, there are certainly some fixed costs, such as clubs, balls, and lessons. Here are some tips to help curb these initial expenses:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Buy a full knock-off set at Costco. You will get a bag, putter, driver, and full set of irons and wedges for $100-200. Alternatively, a used set that is a year or two old can be super cheap.&lt;/li&gt;
  &lt;li&gt;Ask a buddy for some old balls to use. Most longtime golfers (myself included) have literally hundreds of balls lying around. We’d be happy to hand some over.&lt;/li&gt;
  &lt;li&gt;Skip the golf shoes. Unless it’s raining, it really doesn’t matter - especially as a beginner. If you insist, save money by replacing the spikes when the shoes get worn out (instead of buying a new pair).&lt;/li&gt;
  &lt;li&gt;If physically able, &lt;em&gt;always&lt;/em&gt; walk&lt;/li&gt;
  &lt;li&gt;Look for twilight rates - it’s a beautiful time of day to be outdoors, and you can get some big discounts&lt;/li&gt;
  &lt;li&gt;Investing in lessons can be valuable, but first I’d recommend checking out some of the many great resources available online. If you study up on your own first, you’ll get much better bang for your buck from a lesson or two with a good teacher.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Hopefully this post gives at least one person the impetus to take up golf. Or at least helps debunk the myth that golf is only for the wealthy.&lt;/p&gt;
</description>
        <pubDate>Wed, 06 Jun 2012 00:00:00 +0000</pubDate>
        <link>http://www.andygranowitz.com/2012/06/06/how-to-play-golf-cheap.html</link>
        <guid isPermaLink="true">http://www.andygranowitz.com/2012/06/06/how-to-play-golf-cheap.html</guid>
        
        <category>golf</category>
        
        <category>saving money</category>
        
        
      </item>
    
      <item>
        <title>Four Years Later, a Retrospective Review of GarageBand</title>
        <description>&lt;div class=&quot;image&quot;&gt;
	&lt;figure&gt;
		&lt;img src=&quot;http://www.andygranowitz.com/assets/images/garageband.png&quot; alt=&quot;Screenshot of GarageBand '08&quot; class=&quot;noborder&quot; style=&quot;height: px;&quot; /&gt;
		&lt;figcaption&gt;&lt;/figcaption&gt;
	&lt;/figure&gt;
&lt;/div&gt;

&lt;p&gt;As an amateur musician who loves to play, compose, and record music, I love GarageBand. I bought my Mac in 2007, so I am using GarageBand version 4 (the current version is 6). After a brief hiatus, I have started using GarageBand again, and decided to post what I’d like to see changed. If anyone is using a newer version, definitely let me know if GarageBand has improved in these areas. It’s also possible GarageBand has these features and I just don’t know about them! Again, please let me know.&lt;/p&gt;

&lt;p&gt;Here are my thoughts:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Instrument Selection:&lt;/strong&gt;&lt;/p&gt;

    &lt;p&gt;I own all of the Jam Packs (except for Vocals), and generally the selection of software instruments is phenomenal. I’ve spent hours playing around with the different sounds. They’ve done a great job creating realistic sounds that are fun to play. However, for all the variety, they have some stunning omissions. For example, while they offer many exotic instruments such as a Chinese Erhu Violin, Japanese Shakuhachi Flute, and even two varieties of the Turkish Lute, surprisingly absent are some common instruments such as a trumpet or a trombone. While they have great sounding orchestral trumpet or trombone sections, the individual instruments are absent.&lt;/p&gt;

    &lt;p&gt;Also, many common instruments that were included in the original GarageBand could use an update. The tenor sax, for example, is only marginally better than any old keyboard sound.&lt;/p&gt;

    &lt;p&gt;One possible solution to this problem is using MIDI instruments. I’ve used it for a trumpet sound - it beats the trumpet section when you’re looking for an individual trumpet. (Instructions how to do this here)&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Individual Track Mixing:&lt;/strong&gt;&lt;/p&gt;

    &lt;p&gt;Another great feature of GarageBand is that you can change the master volume throughout the song. This is useful for fade-ins and fade-outs, as well as inserting dynamics. However, you can’t adjust the volume of individual tracks throughout the song - only once for the entire song.&lt;/p&gt;

    &lt;p&gt;One way to work around this is to create another track of the same instrument, and divide your audio into chunks. This way, you can have two different volumes. It is okay, but not the best.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Tempo changes:&lt;/strong&gt;&lt;/p&gt;

    &lt;p&gt;This, I believe, exists in newer versions of GarageBand. It is pretty frustrating to not be able to have tempo changes. No good ways to work around that.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Speed:&lt;/strong&gt;&lt;/p&gt;

    &lt;p&gt;This is probably the biggest annoyance. It takes very long to load a song as well as an instrument. This probably has less to do with GarageBand and more to do with my 4 year old computer. Surely a newer machine and a newer GarageBand will be faster. In the meantime, the tips in the help article on optimizing GarageBand performance work pretty well.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;MIDI Delay:&lt;/strong&gt;&lt;/p&gt;

    &lt;p&gt;Again, this one doesn’t fall on GarageBand as much as it does on my hardware. I’ve got a very old “midiman” midi to USB. The delay from the time I hit a key to the time I hear it on GarageBand is small, but sometimes noticeable. For what I do, it isn’t too big a problem. But it would be nice if there was no delay.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A few other minor things: If it were up to me, I would improve the transcribing/notation features, add more metronome options, and keep making common instruments sound more realistic. The advertised guitar amp effects in the new GarageBand don’t appeal to me at all, although I’m sure some of the other less advertised features will. Please share any thoughts you may have, I’d love to hear from you.&lt;/p&gt;

</description>
        <pubDate>Wed, 20 Jul 2011 00:00:00 +0000</pubDate>
        <link>http://www.andygranowitz.com/2011/07/20/garageband-review.html</link>
        <guid isPermaLink="true">http://www.andygranowitz.com/2011/07/20/garageband-review.html</guid>
        
        <category>garageband</category>
        
        <category>music</category>
        
        <category>apple</category>
        
        <category>review</category>
        
        <category>piano</category>
        
        <category>keyboard</category>
        
        <category>midi</category>
        
        
      </item>
    
  </channel>
</rss>
