<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>colindismuke.com · writing</title><description>Colin Dismuke — writing, photos, books, projects, and a newsletter called Of Note.</description><link>https://colindismuke.com/</link><item><title>What is Freehold?</title><link>https://colindismuke.com/writing/freehold-transcript</link><guid isPermaLink="true">https://colindismuke.com/writing/freehold-transcript</guid><description>A lightly edited and condensed transcript of Patrick Stanley’s overview of Freehold.</description><pubDate>Sat, 10 Oct 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;This is a transcript of &lt;a href=&quot;https://twitter.com/patrickwstanley&quot;&gt;Patrick Stanley&lt;/a&gt;&amp;#39;s overview of &lt;a href=&quot;https://www.joinfreehold.com/&quot;&gt;Freehold&lt;/a&gt;. It has been lightly edited and condensed.&lt;/p&gt;
&lt;p&gt;It was created using &lt;a href=&quot;https://www.descript.com/&quot;&gt;Descript&lt;/a&gt;&amp;#39;s excellent transcription service and listening to the audio at 0.5x to fix any errors.&lt;/p&gt;
&lt;iframe
  width=&quot;100%&quot;
  height=&quot;360&quot;
  src=&quot;https://www.youtube.com/embed/l1JxytskLzw&quot;
  frameborder=&quot;0&quot;
  allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot;
  allowfullscreen
&gt;&lt;/iframe&gt;&lt;p&gt;&lt;strong&gt;Patrick Stanley:&lt;/strong&gt; I&amp;#39;m Patrick Stanley, the founder of Freehold. You can follow me on Twitter &lt;a href=&quot;https://twitter.com/patrickwstanley&quot;&gt;@patrickwstanley&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;So, proof of hodl communities is the big concept behind Freehold. The question is, is hodling an under explored use case for cryptocurrencies?&lt;/p&gt;
&lt;h2&gt;Current Landscape&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/static/images/freehold/1.jpg&quot; alt=&quot;Freehold presentation image&quot;&gt;&lt;/p&gt;
&lt;p&gt;Let&amp;#39;s take a look at the current landscape to get a better picture. The current landscape is when folks start crypto projects, typically they do a large ICO. They&amp;#39;re raising millions or tens of millions, sometimes even billions of dollars and they&amp;#39;re creating a lot of people who are holding the token but not necessarily doing specific actions to further the mission and values of that token. You end up with a lot of freeriders who purchased and don&amp;#39;t do much beyond that. Maybe trading, maybe hodling, not to be confused with freeloaders who would be like a couch surfer, and very few builders. I would&amp;#39;ve made that builder&amp;#39;s circle a little smaller if it were a legible, the number of builders building on most of these projects is minuscule compared to the number of investors. That&amp;#39;s the first snapshot of the current landscape.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/static/images/freehold/2.jpg&quot; alt=&quot;Freehold presentation image&quot;&gt;&lt;/p&gt;
&lt;p&gt;Current landscape point number two: token volatility makes tokens an unnatural unit of exchange. Some tokens go up and down 30% in a given day. This makes them not useful as a unit of exchange. A lot of applications, especially in 2017 would say, okay, buy our token so you can use it like it&amp;#39;s a currency in app. That&amp;#39;s a very hamfisted way of trying to get people to use your cryptocurrency. The reality is that they’re not going to use it for that reason. People really only have enough cognitive overhead to make sense of one or two currencies. If you&amp;#39;re living in the United States you&amp;#39;re using USD every single day.&lt;/p&gt;
&lt;p&gt;This chart, with the Y axis removed, is Bitcoin cash&amp;#39;s volatility. I find that funny because a lot of the Bitcoin cash folks wanted it to be treated as cash – they&amp;#39;re still suffering from volatility. The last point I&amp;#39;ll make on this is: people are not spending cryptocurrency like it&amp;#39;s money; they&amp;#39;re holding on to it. Most of it is speculation; we&amp;#39;re still in the cryptocurrency casino.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/static/images/freehold/3.jpg&quot; alt=&quot;Freehold presentation image&quot;&gt;&lt;/p&gt;
&lt;p&gt;Point number three about the current landscape: the biggest winners, customer-wise are exchanges. Coinbase has over 35 million users who are buying and selling cryptocurrencies and not really doing much else other than that. You might get some staking but that&amp;#39;s a very recursive sort of behavior where you&amp;#39;re essentially running in place to escape inflation. That&amp;#39;s very low grade “work” being done on behalf of a protocol.&lt;/p&gt;
&lt;h2&gt;Proof of hodl login&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/static/images/freehold/4.jpg&quot; alt=&quot;Freehold presentation image&quot;&gt;&lt;/p&gt;
&lt;p&gt;What if we were to acknowledge all these things and try to change the current landscape by leaning into hodling and bringing more utility to it. Enter proof of hodl login. The concept is: accessing applications or communities or experiences based on your holdings. Imagine you have a hundred dollars of Bitcoin and there&amp;#39;s a suite of applications that allow you to access them only once you&amp;#39;ve had a hundred dollars of Bitcoin. That concept is generalizable to any token.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/static/images/freehold/5.jpg&quot; alt=&quot;Freehold presentation image&quot;&gt;&lt;/p&gt;
&lt;p&gt;The way to enter in to an application experience is you&amp;#39;d either earn the currency, so you can become a part of the in group, or you&amp;#39;d purchase it, or you’d mine it. I think that mining is a pretty interesting one, consult your attorneys by the way, if one were to launch generalized mining where anyone can mine. I think that, in my opinion, would move the token further away from security status. Not to say it wouldn&amp;#39;t be considered a security, but I think we&amp;#39;re getting a little bit further away from that territory which is great for innovation and community growth.&lt;/p&gt;
&lt;p&gt;Number two, it grows a new class of users called user-stakers. This is a fundamental breakthrough in business model generation. We&amp;#39;ll discuss this in a bit, but it essentially collapses the notion of a stakeholder and a user. They are one in the same in this new model. Given a proof of hodl login function, you wouldn&amp;#39;t necessarily want to hold tokens that are clearly marked for access control unless you we&amp;#39;re satisfied with what&amp;#39;s on the other side of that.&lt;/p&gt;
&lt;p&gt;So you&amp;#39;re not only a user, but you&amp;#39;re a staker.&lt;/p&gt;
&lt;p&gt;Number three, you&amp;#39;re going to have a very low minimum balance. Or you can have a very high minimum balance. You can have $0.10 or $1 or $10 in crypto to get in. Or a $1,000,000 or $10,000. So as a community builder or founder you can modulate that to make it work for your application.&lt;/p&gt;
&lt;p&gt;And the last thing, importantly, is no transaction fee is needed. You just sign in with your keys. There&amp;#39;s no transactional blockchain, no blockchain bloat. You&amp;#39;re being economical with your usage of the blockchain.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/static/images/freehold/6.jpg&quot; alt=&quot;Freehold presentation image&quot;&gt;&lt;/p&gt;
&lt;p&gt;So proof of hodl login and user staking, specifically, as &lt;a href=&quot;https://monegro.org&quot;&gt;Joel Monegro&lt;/a&gt;, friend of the project, has stated it creates a kind of opt-in economic lock-in that benefits the user by turning them into stakeholders in the success of the service. How I interpret that section, from his thin protocols blog post, is that early users can also be treated as early employees, early founders, or early stakeholders, and they can not only use the app, but also do work for the app to grow the app. You could reward this collective or individual effort, this is what Freehold is doing, you could reward the effort for things like referrals to new Hodlers.&lt;/p&gt;
&lt;p&gt;Imagine having a box score of new converts who are hodlers and giving an individual or a collective rewards for reaching certain milestones. That&amp;#39;s an objective measure that you can measure pretty well and that is fairly hard to game.&lt;/p&gt;
&lt;p&gt;Second thing is you can build more software for hodlers. Friedger, one of the members of the Blockstack &lt;a href=&quot;https://www.google.com.au/url?sa=t&amp;rct=j&amp;q=&amp;esrc=s&amp;source=web&amp;cd=&amp;cad=rja&amp;uact=8&amp;ved=2ahUKEwiMzpbAqarsAhVno4sKHQOwD-kQFjAAegQIAxAC&amp;url=https%3A%2F%2Fstackstoken.com%2F&amp;usg=AOvVaw1zUhDeJpEaQCYAN8XeD5Fe&quot;&gt;Stacks&lt;/a&gt; ecosystem created an app called &lt;a href=&quot;https://www.google.com.au/url?sa=t&amp;rct=j&amp;q=&amp;esrc=s&amp;source=web&amp;cd=&amp;ved=2ahUKEwiXq5TEqarsAhWMk4sKHeqyBcoQFjAAegQIBBAC&amp;url=https%3A%2F%2Fgithub.com%2Ffriedger%2Fspeed-spend&amp;usg=AOvVaw0bClANq3OlHZt5odl9B4E1&quot;&gt;Speed Spend&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;He has a proof of hodl function on it that he&amp;#39;s demoing that requires you, and this is a demo, but essentially what you can do is you can flip a coin and bet against someone else who has also hodled a certain amount. It&amp;#39;s nice because it puts a little bit of a governor on degenerate gambling by requiring you to have some funds up front.&lt;/p&gt;
&lt;p&gt;The other thing you can reward is collective goals that are hit. In the case of Stacks, it may be the case that once we have over a hundred thousand dollars of Bitcoin going through and going through the proof of transfer mining function. Let&amp;#39;s say like a 10 day trailing average of daily, a hundred thousand dollars of Bitcoin going through, that&amp;#39;s worth celebrating, that&amp;#39;s worth rewarding. The community may have had a large part in evangelizing that new security model and the people&amp;#39;s willingness to participate in the mining.&lt;/p&gt;
&lt;h2&gt;$MARS&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/static/images/freehold/7.jpg&quot; alt=&quot;Freehold presentation image&quot;&gt;&lt;/p&gt;
&lt;p&gt;There&amp;#39;s a bunch of other examples as well. Let&amp;#39;s take a whimsical example: let&amp;#39;s say we create a Mars token $MARS and the goal of the token is to terraform Mars and begin building a civilization there. With the Mars token you can pay evangelists for educating about terraforming Mars and improving sentiment around keywords to combat pessimism, because obviously there&amp;#39;ll be some anti-Mars people that don&amp;#39;t want to terraform and they may be adversarial to the notion. Those anti-Mars people presumably wouldn&amp;#39;t buy the tokens because that would be to the benefit of the pro-Mars terraforming people.&lt;/p&gt;
&lt;p&gt;So, if you&amp;#39;re not hodling $MARS token then you can&amp;#39;t get into that community, you can&amp;#39;t be rewarded, you can&amp;#39;t get the benefits. $MARS tokens can convert fellow Martians by giving them bonuses for converting. Community leaders in the ecosystem who have mined a lot of $MARS token and want to further advance the idea might put large tasks or challenges up that can be MapReduced or parallelized. Parallel tasks that lead up to a larger goal being completed and rewarding them. DARPA did this with the &lt;a href=&quot;https://www.google.com.au/url?sa=t&amp;rct=j&amp;q=&amp;esrc=s&amp;source=web&amp;cd=&amp;cad=rja&amp;uact=8&amp;ved=2ahUKEwjP6v6sqqrsAhXrlIsKHd2jAOcQFjAAegQIAxAC&amp;url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FDARPA_Network_Challenge&amp;usg=AOvVaw0otcuZ36FkIdvLOKNT74Rn&quot;&gt;red balloon challenge&lt;/a&gt;. If you want to Google that, that&amp;#39;s a good example there. Lastly, the folks who are bought in and have skin in the game and are economically aligned in addition to values aligned, might just collectively agree to use that token on Mars someday. That&amp;#39;s a tongue in cheek example but I think that kind of gets the point across.&lt;/p&gt;
&lt;h2&gt;Other Proof of Hodl Communities&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/static/images/freehold/8.jpg&quot; alt=&quot;Freehold presentation image&quot;&gt;&lt;/p&gt;
&lt;p&gt;There&amp;#39;s tons of other proof of hodl communities. I was just talking to a Stacks community member and friend named Jason who is thinking about creating a newsletter that&amp;#39;s proof of hodl. Great idea to do that with a super simple business model. If people want to have access to your newsletter then they should hold a certain amount of your token.&lt;/p&gt;
&lt;p&gt;I can imagine someone creating a chat room where you have to have a token to get in and then, boom, you&amp;#39;re in a group of people who have the same values as you and have skin in the game. They&amp;#39;re not just virtue signaling, they&amp;#39;re also value signaling and they can do this with pseudonyms or real names.&lt;/p&gt;
&lt;p&gt;A third category is regular services and apps. They might provide a discount if you have a really good referral mechanism in place. I keep using this example because I think it&amp;#39;s very applicable, it might be in your best interest to actually try to convert more token holders as opposed to having them pay you in fiat because you can actually geometrically expand the value of the ecosystem through leveraging those new converts, those new hodlers.&lt;/p&gt;
&lt;p&gt;For the example of gambling, we gave that example already.&lt;/p&gt;
&lt;p&gt;Fifth example is something I find very interesting and I&amp;#39;m still trying to figure out how to brand this but effectively there are affinity groups and you can have $VEGAN or $CARNIVORE. That $MARS example earlier I mentioned earlier, really, what this is is values-constrained tokens. One of the outstanding problems to solve in that model of values-constrained tokens is attribution. How do you attribute that someone has furthered the vegan movement, et cetera. It&amp;#39;s not an unsolvable problem though, I think we can work on it and hack it.&lt;/p&gt;
&lt;p&gt;And then lastly, other open protocols, new and old alike, of tight knit hodlers can use this model to coordinate labor, communications, et cetera. I think the reality is when you look at say Bitcoin maximalists and even at Ethereum maximalists, those folks don&amp;#39;t have that much Bitcoin and ether. They’re mostly virtue signaling and they&amp;#39;re playing a status game, not a value game.&lt;/p&gt;
&lt;p&gt;What this does, this forces people to put their money where their mouth is and play a value creation game as opposed to a status game. Folks using this model to earn and learn is highly potent. And I think generally, if the 2010s we&amp;#39;re defined by engineers as founders and salespeople as founders, like Zuckerberg and Sergey Brin as engineers as founders and Mark Benioff and Steve jobs as sales folks. I think this next generation, this next decade is going to be marked by community builder as founder. What I&amp;#39;m trying to do is I&amp;#39;m trying to validate within the crypto space first, the existing open protocol space first, and eventually expanding outwards toward other community groups, this new business model of user staking so that more community builders can create valuable experiences and products with their community.&lt;/p&gt;
&lt;p&gt;So I think this is fundamental and I think we&amp;#39;re at the early part of a massive wave of community builders as founders.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/static/images/freehold/9.jpg&quot; alt=&quot;Freehold presentation image&quot;&gt;&lt;/p&gt;
&lt;p&gt;Cool, so I alluded to this: is there a smarter way to grow a community and fundraising? I would say it&amp;#39;s to be determined, we&amp;#39;ll see. Certainly, leveraging a community from the outset could be more beneficial than just doing a fundraise or having to worry about SEC compliance and things like that. I think there are ways to very neatly start new movements with a group of people where there&amp;#39;s no primary issuer of the token. It&amp;#39;s almost like a natural resource that everyone gravitates around.&lt;/p&gt;
&lt;h2&gt;Utility of Community and Fundraising&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/static/images/freehold/10.jpg&quot; alt=&quot;Freehold presentation image&quot;&gt;&lt;/p&gt;
&lt;p&gt;To give a good comparison of the utility of community and fundraising: on the way left, you have Kickstarter where you have consumers who have conceptual product market fit. You&amp;#39;re buying something for which there&amp;#39;s conceptual product market fit, where the builder has all of the onus of making it happen and then just delivering it to the consumer. After that, maybe they stay on their email list, but really the relationship is largely over.&lt;/p&gt;
&lt;p&gt;Coinlist is in the middle of the spectrum where they&amp;#39;re doing sales to large stakeholders but many of the stakeholders are not actually builders as I alluded to in one of the first slides. Many of them are not even users and I&amp;#39;m not counting staking as usage. I’m counting using applications on a daily or weekly basis, or being pseudo employed by or contracted by the token. On the far right is the Freehold model, this is a user stakeholder model. The user, stakeholder, and the builder are all one in the same. You can be a user and stakeholder and not a builder, but I think a lot of people will choose to be builders. I think a lot of community-builder-founders will choose to carve out that small section of people that hold a stake, and want to do work, and focus on growing that group. By focusing on growing that highly potent subset of stakeholders, what you&amp;#39;re doing is you&amp;#39;re creating a very robust movement of folks that are both pro-growth and pro-wealth.&lt;/p&gt;
&lt;h2&gt;For Future Consideration&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/static/images/freehold/11.jpg&quot; alt=&quot;Freehold presentation image&quot;&gt;&lt;/p&gt;
&lt;p&gt;One of the last things is for future consideration, making this concept live beyond our own lifetimes is the idea of pushing an application via smart contract that is a permanent freehold with proof of hodl access. It could be a simple chat room or just an app experience, but it would be a place for those folks who are economically and values aligned alone to occupy it. At the top of the slide, the old definition of a freehold is simply a permanent and absolute tenure of land or property with the freedom to dispose of it will. What that means is, folks in the physical world, but also in this new model, have the option to liquidate an exit whenever they want. That&amp;#39;s a huge, huge benefit. You&amp;#39;re not just voicing your frustration or your appreciation, you&amp;#39;re choosing to vote with your feet and your dollars and this kind of expression to summarize that concept is capital flight at the speed of light.&lt;/p&gt;
&lt;p&gt;Imagine thousands of freeholds competing over your attention and your willingness to have a symbiotic relationship with it as a user staker. I think that&amp;#39;s a really great model and it recognizes the value of each human being and what they bring to the space and also recognizes the values of each individual.&lt;/p&gt;
&lt;p&gt;And I think what it could potentially do is actually expand the amount of wealth that exists in the world. I don&amp;#39;t think this is a zero-sum thing. I think this can be very positive-sum and I&amp;#39;m super excited to pull this into reality with everyone here.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/static/images/freehold/12.jpg&quot; alt=&quot;Freehold presentation image&quot;&gt;&lt;/p&gt;
&lt;p&gt;In summary, the proof of hodl community signs in with their token key, no transaction needed. Tokens initial utility is for access control. You can earn, buy, or mine your way to access. I think a lot of folks will choose to do proprietary governance where you have a benevolent dictator and if you don&amp;#39;t like it you move out very easily, just liquidate. They&amp;#39;ll be some decentralized governance I&amp;#39;m sure but I have a feeling proprietary will win the day. Even if it&amp;#39;s done via pseudonyms, creates stakeholders in the success of the community and thus bolstering this concept of community builder as founder which we&amp;#39;re going to see as a big theme of the 2020s. And then lastly, there can be permanent freeholds for ideas and services that live on forever. and ideally all these are anchored in Bitcoin. These will be places that our grandchildren can live in occupy and have a stake in.&lt;/p&gt;
&lt;p&gt;Thank you very much.&lt;/p&gt;
</content:encoded></item><item><title>Kings</title><link>https://colindismuke.com/writing/kings</link><guid isPermaLink="true">https://colindismuke.com/writing/kings</guid><description>We live in capitalism, its power seems inescapable — but then, so did the divine right of kings.</description><pubDate>Thu, 11 Jun 2020 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;We live in capitalism, its power seems inescapable — but then, so did the divine right of kings. Any human power can be resisted and changed by human beings.
&lt;a href=&quot;https://www.ursulakleguin.com/nbf-medal&quot;&gt;https://www.ursulakleguin.com/nbf-medal&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
</content:encoded></item><item><title>Quick Install Tailwind CSS</title><link>https://colindismuke.com/writing/quick-install-tailwind</link><guid isPermaLink="true">https://colindismuke.com/writing/quick-install-tailwind</guid><description>Getting Tailwind set up with a vanilla HTML, CSS, and JS website.</description><pubDate>Wed, 27 May 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;This is mostly a personal reference for the future – hopefully it will help a few other people too. My most common use case right now is vanilla HTML, CSS, and JS so that&amp;#39;s what this is tailored towards.&lt;/p&gt;
&lt;h1&gt;Method 1: Install via CDN&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;Fastest but more downside&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The fastest way to get started is to use Tailwind&amp;#39;s CDN, avoiding any sort of involved installation process entirely. With a single &lt;code&gt;&amp;lt;link&amp;gt;&lt;/code&gt; tag, you get the latest default configuration build.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-html&quot;&gt;&amp;lt;link
  href=&amp;quot;https://unpkg.com/tailwindcss@^1.0/dist/tailwind.min.css&amp;quot;
  rel=&amp;quot;stylesheet&amp;quot;
/&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Unfortunately, choosing this method &lt;a href=&quot;https://tailwindcss.com/docs/installation/#using-tailwind-via-cdn&quot;&gt;will lock you out of certain functionality&lt;/a&gt; including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Unable to customize the default theme&lt;/li&gt;
&lt;li&gt;Unable to install third-party plugins&lt;/li&gt;
&lt;li&gt;Unable to use directives&lt;/li&gt;
&lt;li&gt;Unable to enable features (i.e. group-hover)&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;Method 2: Tailwind CLI&lt;/h1&gt;
&lt;p&gt;&lt;em&gt;Fully featured, a bit more involved&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Here&amp;#39;s the whole process for using the Tailwind CLI to get started with your project:&lt;/p&gt;
&lt;p&gt;*****Note:*&lt;em&gt;** This is on mac OS with &lt;code&gt;npm&lt;/code&gt; installed.&lt;/em&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Create a new folder for your project.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cd&lt;/code&gt; into your project folder.&lt;/li&gt;
&lt;li&gt;Initialize your project with &lt;code&gt;npm&lt;/code&gt; by running:&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;npm init
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This will take you through creating a&lt;code&gt;package.json&lt;/code&gt; filethat lives at the top level of your project folder.&lt;/p&gt;
&lt;ol start=&quot;4&quot;&gt;
&lt;li&gt;Then, install Tailwind using &lt;code&gt;npm&lt;/code&gt;:&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;npm install tailwindcss --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;ol start=&quot;5&quot;&gt;
&lt;li&gt;Tailwind is now installed, before we get it running, let&amp;#39;s set up the basic folder structure first.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;In the root of the project folder, create an &lt;code&gt;index.html&lt;/code&gt; file (&lt;code&gt;touch index.html&lt;/code&gt; from the command line) and a &lt;code&gt;styles.css&lt;/code&gt; folder (&lt;code&gt;mkdir styles&lt;/code&gt;). &lt;code&gt;cd&lt;/code&gt; into the &lt;code&gt;styles&lt;/code&gt; folder and create a&lt;code&gt;styles.css&lt;/code&gt; file.&lt;/p&gt;
&lt;p&gt;Next, add some basic structure to &lt;code&gt;index.html&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-html&quot;&gt;.&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html lang=&amp;quot;en&amp;quot;&amp;gt;
  &amp;lt;head&amp;gt;
    &amp;lt;title&amp;gt;✨Title ✨&amp;lt;/title&amp;gt;
    &amp;lt;meta charset=&amp;quot;utf-8&amp;quot; /&amp;gt;
    &amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width, initial-scale=1&amp;quot; /&amp;gt;
    &amp;lt;meta name=&amp;quot;author&amp;quot; content=&amp;quot;Your name&amp;quot; /&amp;gt;
    &amp;lt;meta name=&amp;quot;description&amp;quot; content=&amp;quot;A brief description&amp;quot; /&amp;gt;
    &amp;lt;meta property=&amp;quot;og:title&amp;quot; content=&amp;quot;✨Title ✨&amp;quot; /&amp;gt;
    &amp;lt;meta property=&amp;quot;og:type&amp;quot; content=&amp;quot;website&amp;quot; /&amp;gt;
    &amp;lt;meta property=&amp;quot;og:description&amp;quot; content=&amp;quot;A brief description&amp;quot; /&amp;gt;
    &amp;lt;meta property=&amp;quot;og:image&amp;quot; content=&amp;quot;/cool-image.png&amp;quot; /&amp;gt;
    &amp;lt;meta property=&amp;quot;og:url&amp;quot; content=&amp;quot;/here.html&amp;quot; /&amp;gt;
    &amp;lt;meta property=&amp;quot;og:site_name&amp;quot; content=&amp;quot;✨Title ✨&amp;quot; /&amp;gt;
    &amp;lt;meta name=&amp;quot;twitter:card&amp;quot; content=&amp;quot;summary_large_image&amp;quot; /&amp;gt;
    &amp;lt;meta name=&amp;quot;twitter:site&amp;quot; content=&amp;quot;Twitter username&amp;quot; /&amp;gt;
    &amp;lt;meta name=&amp;quot;twitter:title&amp;quot; content=&amp;quot;✨Title ✨&amp;quot; /&amp;gt;
    &amp;lt;meta name=&amp;quot;twitter:description&amp;quot; content=&amp;quot;A brief description&amp;quot; /&amp;gt;
    &amp;lt;meta name=&amp;quot;twitter:image:alt&amp;quot; content=&amp;quot;image description&amp;quot; /&amp;gt;
    &amp;lt;link rel=&amp;quot;canonical&amp;quot; href=&amp;quot;/here.html&amp;quot; /&amp;gt;
    &amp;lt;link href=&amp;quot;styles/output.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; /&amp;gt;
    &amp;lt;link rel=&amp;quot;icon&amp;quot; type=&amp;quot;image/svg+xml&amp;quot; href=&amp;quot;/favicon.svg&amp;quot; /&amp;gt;
    &amp;lt;title&amp;gt;✨Title ✨&amp;lt;/title&amp;gt;
  &amp;lt;/head&amp;gt;
  &amp;lt;body&amp;gt;
    &amp;lt;h1&amp;gt;⭐ Your amazing site here ⭐&amp;lt;/h1&amp;gt;
    &amp;lt;script src=&amp;quot;script.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;
  &amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;After that, add the following Tailwind directives to the top of &lt;code&gt;styles.css&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-css&quot;&gt;&amp;lt;!-- Tailwind imports --&amp;gt;
@tailwind base;
@tailwind components;
@tailwind utilities;
&lt;/code&gt;&lt;/pre&gt;
&lt;ol start=&quot;6&quot;&gt;
&lt;li&gt;Now that we have a basic setup, we can use the Tailwind CLI to process &lt;code&gt;styles.css&lt;/code&gt; and start using Tailwind to design.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;code&gt;cd&lt;/code&gt; into the &lt;code&gt;styles&lt;/code&gt; folder and run the following command:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;npx tailwind build styles.css -o output.css
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;styles.css&lt;/code&gt; is the current CSS file and &lt;code&gt;output.css&lt;/code&gt; is whatever you want the processed CSS to be named. If run successfully,there should now be a file named &lt;code&gt;output.css&lt;/code&gt; which means you have successfully installed Tailwind.&lt;/p&gt;
&lt;ol start=&quot;7&quot;&gt;
&lt;li&gt;To test it out, copy and paste one of the numerous examples from the documentation into &lt;code&gt;index.html&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code class=&quot;language-html&quot;&gt;&amp;lt;div class=&amp;quot;w-full max-w-xs&amp;quot;&amp;gt;
  &amp;lt;form class=&amp;quot;bg-white shadow-md rounded px-8 pt-6 pb-8 mb-4&amp;quot;&amp;gt;
    &amp;lt;div class=&amp;quot;mb-4&amp;quot;&amp;gt;
      &amp;lt;label class=&amp;quot;block text-gray-700 text-sm font-bold mb-2&amp;quot; for=&amp;quot;username&amp;quot;&amp;gt;
        Username
      &amp;lt;/label&amp;gt;
      &amp;lt;input
        class=&amp;quot;shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline&amp;quot;
        id=&amp;quot;username&amp;quot;
        type=&amp;quot;text&amp;quot;
        placeholder=&amp;quot;Username&amp;quot;
      /&amp;gt;
    &amp;lt;/div&amp;gt;
    &amp;lt;div class=&amp;quot;mb-6&amp;quot;&amp;gt;
      &amp;lt;label class=&amp;quot;block text-gray-700 text-sm font-bold mb-2&amp;quot; for=&amp;quot;password&amp;quot;&amp;gt;
        Password
      &amp;lt;/label&amp;gt;
      &amp;lt;input
        class=&amp;quot;shadow appearance-none border border-red-500 rounded w-full py-2 px-3 text-gray-700 mb-3 leading-tight focus:outline-none focus:shadow-outline&amp;quot;
        id=&amp;quot;password&amp;quot;
        type=&amp;quot;password&amp;quot;
        placeholder=&amp;quot;******************&amp;quot;
      /&amp;gt;
      &amp;lt;p class=&amp;quot;text-red-500 text-xs italic&amp;quot;&amp;gt;Please choose a password.&amp;lt;/p&amp;gt;
    &amp;lt;/div&amp;gt;
    &amp;lt;div class=&amp;quot;flex items-center justify-between&amp;quot;&amp;gt;
      &amp;lt;button
        class=&amp;quot;bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded focus:outline-none focus:shadow-outline&amp;quot;
        type=&amp;quot;button&amp;quot;
      &amp;gt;
        Sign In
      &amp;lt;/button&amp;gt;
      &amp;lt;a
        class=&amp;quot;inline-block align-baseline font-bold text-sm text-blue-500 hover:text-blue-800&amp;quot;
        href=&amp;quot;#&amp;quot;
      &amp;gt;
        Forgot Password?
      &amp;lt;/a&amp;gt;
    &amp;lt;/div&amp;gt;
  &amp;lt;/form&amp;gt;
  &amp;lt;p class=&amp;quot;text-center text-gray-500 text-xs&amp;quot;&amp;gt;
    &amp;amp;copy;2020 Acme Corp. All rights reserved.
  &amp;lt;/p&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If you’ve done everything right so far, running your &lt;code&gt;index.html&lt;/code&gt; in your browser should produce an image like below.
&lt;img src=&quot;/content/images/2020/05/image.png&quot; alt=&quot;&quot;&gt;&lt;a href=&quot;https://tailwindcss.com/components/forms/#login-form&quot;&gt;A login form using Tailwind&lt;/a&gt;.
That’s it!&lt;/p&gt;
</content:encoded></item><item><title>The End of the Beginning</title><link>https://colindismuke.com/writing/the-end-of-the-beginning</link><guid isPermaLink="true">https://colindismuke.com/writing/the-end-of-the-beginning</guid><description>“Economic policy will hamper mean reversion.“</description><pubDate>Fri, 22 May 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;a href=&quot;https://twitter.com/demonetizedblog&quot;&gt;Demonetized&lt;/a&gt;&lt;a href=&quot;https://www.epsilontheory.com/the-end-of-the-beginning/&quot;&gt;writing at Epsilon Theory&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;To be perfectly explicit, as things stand today:&lt;/p&gt;
&lt;p&gt;Quantitative deep value (“owning really cheap things because they are really cheap”) is at best a tactical trade.&lt;/p&gt;
&lt;p&gt;Economic policy will hamper mean reversion.&lt;/p&gt;
&lt;p&gt;As investors, trends are our friends for the foreseeable future.&lt;/p&gt;
&lt;/blockquote&gt;
</content:encoded></item><item><title>Basic HTML Skeleton</title><link>https://colindismuke.com/writing/html-skeleton</link><guid isPermaLink="true">https://colindismuke.com/writing/html-skeleton</guid><description>A HTML snippet for getting your project started quickly.</description><pubDate>Wed, 20 May 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Copy-paste this into your favorite text expansion software.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-html&quot;&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html lang=&amp;quot;en&amp;quot;&amp;gt;
  &amp;lt;head&amp;gt;
    &amp;lt;title&amp;gt;✨Title ✨&amp;lt;/title&amp;gt;
    &amp;lt;meta charset=&amp;quot;utf-8&amp;quot; /&amp;gt;
    &amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width, initial-scale=1&amp;quot; /&amp;gt;
    &amp;lt;meta name=&amp;quot;author&amp;quot; content=&amp;quot;Your name&amp;quot; /&amp;gt;
    &amp;lt;meta name=&amp;quot;description&amp;quot; content=&amp;quot;A brief description&amp;quot; /&amp;gt;
    &amp;lt;meta property=&amp;quot;og:title&amp;quot; content=&amp;quot;✨Title ✨&amp;quot; /&amp;gt;
    &amp;lt;meta property=&amp;quot;og:type&amp;quot; content=&amp;quot;website&amp;quot; /&amp;gt;
    &amp;lt;meta property=&amp;quot;og:description&amp;quot; content=&amp;quot;A brief description&amp;quot; /&amp;gt;
    &amp;lt;meta property=&amp;quot;og:image&amp;quot; content=&amp;quot;/cool-image.png&amp;quot; /&amp;gt;
    &amp;lt;meta property=&amp;quot;og:url&amp;quot; content=&amp;quot;/here.html&amp;quot; /&amp;gt;
    &amp;lt;meta property=&amp;quot;og:site_name&amp;quot; content=&amp;quot;✨Title ✨&amp;quot; /&amp;gt;
    &amp;lt;meta name=&amp;quot;twitter:card&amp;quot; content=&amp;quot;summary_large_image&amp;quot; /&amp;gt;
    &amp;lt;meta name=&amp;quot;twitter:site&amp;quot; content=&amp;quot;Twitter username&amp;quot; /&amp;gt;
    &amp;lt;meta name=&amp;quot;twitter:title&amp;quot; content=&amp;quot;✨Title ✨&amp;quot; /&amp;gt;
    &amp;lt;meta name=&amp;quot;twitter:description&amp;quot; content=&amp;quot;A brief description&amp;quot; /&amp;gt;
    &amp;lt;meta name=&amp;quot;twitter:image:alt&amp;quot; content=&amp;quot;image description&amp;quot; /&amp;gt;
    &amp;lt;link href=&amp;quot;style.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; /&amp;gt;
    &amp;lt;link rel=&amp;quot;icon&amp;quot; type=&amp;quot;image/svg+xml&amp;quot; href=&amp;quot;/favicon.svg&amp;quot; /&amp;gt;
    &amp;lt;title&amp;gt;✨Title ✨&amp;lt;/title&amp;gt;
  &amp;lt;/head&amp;gt;
  &amp;lt;body&amp;gt;
    &amp;lt;h1&amp;gt;⭐ Your amazing site here ⭐&amp;lt;/h1&amp;gt;
    &amp;lt;script src=&amp;quot;script.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;
  &amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Why&lt;/h2&gt;
&lt;p&gt;A quick and easy way to get started with a new static HTML project. Use it as a foundation for building a simple page with vanilla web technologies. &lt;strong&gt;Bonus&lt;/strong&gt;: includes all the best practices for social media sharing too 💫&lt;/p&gt;
&lt;h2&gt;Explanation&lt;/h2&gt;
&lt;pre&gt;&lt;code class=&quot;language-html&quot;&gt;&amp;lt;!--
  A long time ago, the DOCTYPE was needed to specify different HTML versions.
  However, as of HTML5, providing `html` is sufficient.
--&amp;gt;
&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;!-- Specifies the appropriate language for your site. In this case, english --&amp;gt;
&amp;lt;html lang=&amp;quot;en&amp;quot;&amp;gt;
  &amp;lt;head&amp;gt;
    &amp;lt;title&amp;gt;✨Title ✨&amp;lt;/title&amp;gt;
    &amp;lt;!--
    UTF-8 is a character set that includes all of the characters you could
  ever want in a website.
  --&amp;gt;
    &amp;lt;meta charset=&amp;quot;utf-8&amp;quot; /&amp;gt;
    &amp;lt;!--
    This critical tag ensures that items on the screen scale
    correctly on mobile devices. There will be problems if you don&amp;#39;t include 	 it.
  --&amp;gt;
    &amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width, initial-scale=1&amp;quot; /&amp;gt;
    &amp;lt;!--
    Set your name and a brief description to be displayed in search engines.
  --&amp;gt;
    &amp;lt;meta name=&amp;quot;author&amp;quot; content=&amp;quot;Your name&amp;quot; /&amp;gt;
    &amp;lt;meta name=&amp;quot;description&amp;quot; content=&amp;quot;A brief description&amp;quot; /&amp;gt;
    &amp;lt;!--
    `og` stands for Open Graph, enables any web page to become a rich object 	 in a social graph. These tags are essential for ensuring your site gains    	 an appropriate card when sharing on social media.
  --&amp;gt;
    &amp;lt;meta property=&amp;quot;og:title&amp;quot; content=&amp;quot;✨Title ✨&amp;quot; /&amp;gt;
    &amp;lt;meta property=&amp;quot;og:type&amp;quot; content=&amp;quot;website&amp;quot; /&amp;gt;
    &amp;lt;meta property=&amp;quot;og:description&amp;quot; content=&amp;quot;A brief description&amp;quot; /&amp;gt;
    &amp;lt;meta property=&amp;quot;og:image&amp;quot; content=&amp;quot;/cool-image.png&amp;quot; /&amp;gt;
    &amp;lt;meta property=&amp;quot;og:url&amp;quot; content=&amp;quot;/here.html&amp;quot; /&amp;gt;
    &amp;lt;meta property=&amp;quot;og:site_name&amp;quot; content=&amp;quot;✨Title ✨&amp;quot; /&amp;gt;
    &amp;lt;!--
    `twitter` is similar to Open Graph, but specific to Twitter.
    There are several different customizations to be found here:
    https://developer.twitter.com/en/docs/tweets/optimize-with-cards/guides/getting-started
  --&amp;gt;
    &amp;lt;meta name=&amp;quot;twitter:card&amp;quot; content=&amp;quot;summary_large_image&amp;quot; /&amp;gt;
    &amp;lt;meta name=&amp;quot;twitter:site&amp;quot; content=&amp;quot;Twitter username&amp;quot; /&amp;gt;
    &amp;lt;meta name=&amp;quot;twitter:title&amp;quot; content=&amp;quot;✨Title ✨&amp;quot; /&amp;gt;
    &amp;lt;meta name=&amp;quot;twitter:description&amp;quot; content=&amp;quot;A brief description&amp;quot; /&amp;gt;
    &amp;lt;meta name=&amp;quot;twitter:image:alt&amp;quot; content=&amp;quot;image description&amp;quot; /&amp;gt;
    &amp;lt;!-- Include one or more CSS files to change the styling of the website. --&amp;gt;
    &amp;lt;link href=&amp;quot;style.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; /&amp;gt;
    &amp;lt;!--
    A favicon is the small image that appears in the browser tab. Use 			`image/svg+xml` to avoid having to provide multiple sizes of `.ico` 		images.
  --&amp;gt;
    &amp;lt;link rel=&amp;quot;icon&amp;quot; type=&amp;quot;image/svg+xml&amp;quot; href=&amp;quot;/favicon.svg&amp;quot; /&amp;gt;
    &amp;lt;!-- This title shows up in the page&amp;#39;s tab, next to the favicon --&amp;gt;
    &amp;lt;title&amp;gt;✨Title ✨&amp;lt;/title&amp;gt;
  &amp;lt;/head&amp;gt;
  &amp;lt;body&amp;gt;
    &amp;lt;h1&amp;gt;⭐ Your amazing site here ⭐&amp;lt;/h1&amp;gt;
    &amp;lt;!-- Include Javascript, if required. --&amp;gt;
    &amp;lt;script src=&amp;quot;script.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;
  &amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>Creating A Podcast Transcript Using Overcast, Dropbox, Descript, Zapier, and Shortcuts (Part 1)</title><link>https://colindismuke.com/writing/creating-a-podcast-transcript-using-overcast-dropbox-descript-zapier-and-shortcuts-part-1</link><guid isPermaLink="true">https://colindismuke.com/writing/creating-a-podcast-transcript-using-overcast-dropbox-descript-zapier-and-shortcuts-part-1</guid><pubDate>Tue, 05 May 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Occasionally I’ll listen to a podcast and decide that it would be nice to have a transcript. Possibly for a &lt;a href=&quot;/the-eventually-equation/&quot;&gt;post&lt;/a&gt;. Or for a tweet. Or just to reference later on.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://distributed.blog&quot;&gt;Some shows&lt;/a&gt; make transcriptions available with each episode, but for most it doesn’t make sense to waste the time or money.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://searchengineland.com/google-brings-search-to-podcasts-through-automatic-transcription-314798&quot;&gt;Google&lt;/a&gt; and &lt;a href=&quot;https://9to5mac.com/2019/06/04/podcasts-ios-13/&quot;&gt;Apple&lt;/a&gt; are both automatically transcribing some or all of the shows in their directories. As far as I can tell though, the transcriptions are being used for search indexes (which is great!) not for the end listener.&lt;/p&gt;
&lt;p&gt;I want an easy way to go from podcast to text, ideally using a Shortcut from within &lt;a href=&quot;https://overcast.fm&quot;&gt;Overcast&lt;/a&gt;, my podcast player of choice. So far, I’ve been able to accomplish half of this workflow (which is why this is part 1).&lt;/p&gt;
&lt;p&gt;This workflow brings together &lt;a href=&quot;https://overcast.fm/&quot;&gt;Overcast&lt;/a&gt;, &lt;a href=&quot;https://www.dropbox.com/?landing=dbv2&quot;&gt;Dropbox&lt;/a&gt;, Shortcuts, &lt;a href=&quot;https://zapier.com/home&quot;&gt;Zapier&lt;/a&gt;, and &lt;a href=&quot;https://www.descript.com/&quot;&gt;Descript&lt;/a&gt;. The first half (the subject of this post) uses Shortcuts to save the audio file from Overcast in Dropbox. The second half uses Zapier to watch a specific Dropbox folder, send the audio file through Descript’s transcription engine, and then output a text file.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/static/images/podcast-transcript/shortcut.png&quot; alt=&quot;Podcast transcript shortcut&quot;&gt;&lt;/p&gt;
&lt;p&gt;Let’s go through the steps.&lt;/p&gt;
&lt;p&gt;The shortcut first uses an &lt;code&gt;if&lt;/code&gt; statement to check whether it was invoked from the Share Sheet or if it was run from the Shortcuts app or home screen with a podcast URL on the clipboard.&lt;/p&gt;
&lt;p&gt;It then looks at the URL being shared to verify that it is a legitimately from Overcast. In the future, this shortcut could be made more generic by using an &lt;code&gt;if&lt;/code&gt; statement to check for multiple podcast player URLs. However, I only use Overcast so there’s no need for that here.&lt;/p&gt;
&lt;p&gt;Shortcuts then takes that URL and uses the &lt;code&gt;Get contents of...&lt;/code&gt; and &lt;code&gt;Make HTML from...&lt;/code&gt; actions to get the HTML of the specific episode page on &lt;a href=&quot;https://overcast.fm&quot;&gt;overcast.fm&lt;/a&gt;. Then, using the Text &lt;code&gt;Match&lt;/code&gt; action, the title of the episode (&lt;code&gt;og:title&lt;/code&gt;) and original audio source (&lt;code&gt;twitter:player:stream&lt;/code&gt;) are stored in the &lt;code&gt;Matches&lt;/code&gt; variable.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;Get contents of...&lt;/code&gt; Network action is used to download the audio file from its original source. Finally, the file is renamed to &lt;code&gt;Podcast Description&lt;/code&gt; (which was previously set to &lt;code&gt;og:title&lt;/code&gt;) and then saved to a specific folder in Dropbox.&lt;/p&gt;
&lt;p&gt;At this point, Zapier should be watching the folder in Dropbox and then send it to Descript to be transcribed. The Zap runs reliably and even names the project in Descript correctly. However, the actual audio isn’t imported and, therefore, can’t be transcribed. Once I get that figured out I’ll go into more detail how it’s done. For now, I can just drag the audio file into the Descript app if I need a transcription 💫&lt;/p&gt;
&lt;p&gt;You can get the Overcast → Dropbox shortcut &lt;a href=&quot;https://www.icloud.com/shortcuts/5ac3181a386a4a97a83a65c269248f36&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
</content:encoded></item><item><title>Jukebox</title><link>https://colindismuke.com/writing/openai-jukebox</link><guid isPermaLink="true">https://colindismuke.com/writing/openai-jukebox</guid><description>OpenAI built Jukebox, a neural net that generates music, including rudimentary singing, as raw audio in a variety of genres and artist styles.</description><pubDate>Fri, 01 May 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;a href=&quot;https://openai.com/&quot;&gt;OpenAI&lt;/a&gt; built “&lt;a href=&quot;https://openai.com/blog/jukebox/&quot;&gt;Jukebox, a neural net that generates music&lt;/a&gt;, including rudimentary singing, as raw audio in a variety of genres and artist styles.”&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Automatic music generation dates back to more than half a century. A prominent approach is to generate music symbolically in the form of a piano roll, which specifies the timing, pitch, velocity, and instrument of each note to be played. This has led to impressive results like producing Bach chorals, polyphonic music with multiple instruments, as well as minute long musical pieces.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;But symbolic generators have limitations—they cannot capture human voices or many of the more subtle timbres, dynamics, and expressivity that are essential to music. A different approach one can also use a hybrid approach—first generate the symbolic music, then render it to raw audio using a wavenet conditioned on piano rolls, an autoencoder, or a GAN—or do music style transfer, to transfer styles between classical and jazz music, generate chiptune music, or disentangle musical style and content. For a deeper dive into raw audio modelling, we recommend this excellent &lt;a href=&quot;https://benanne.github.io/2020/03/24/audio-generation.html&quot;&gt;overview&lt;/a&gt;. Generating music at the audio level is challenging since the sequences are very long. A typical 4-minute song at CD quality (44 kHz, 16-bit) has over 10 million timesteps. For comparision, GPT-2 had 1,000 timesteps and &lt;a href=&quot;https://openai.com/projects/five/&quot;&gt;OpenAI Five&lt;/a&gt; took tens of thousands of timesteps per game. Thus, to learn the high level semantics of music, a model would have to deal with extremely long-range dependencies.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;One way of addressing the long input problem is to use an autoencoder that compresses raw audio to a lower-dimensional space by discarding some of the perceptually irrelevant bits of information. We can then train a model to generate audio in this compressed space, and upsample back to the raw audio space.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;We chose to work on music because we want to continue to push the boundaries of generative models. Our previous work on &lt;a href=&quot;https://openai.com/blog/musenet&quot;&gt;MuseNet&lt;/a&gt; explored synthesizing music based on large amounts of MIDI data. Now in raw audio, our models must learn to tackle high diversity as well as very long range structure, and the raw audio domain is particularly unforgiving of errors in short, medium, or long term timing.&lt;/p&gt;
&lt;/blockquote&gt;
</content:encoded></item><item><title>Email Link Shortcut</title><link>https://colindismuke.com/writing/email-link-shortcut</link><guid isPermaLink="true">https://colindismuke.com/writing/email-link-shortcut</guid><description>A Shortcut for sending an email to yourself.</description><pubDate>Tue, 21 Apr 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Tap the Share icon on a tweet. Tap Share Tweet via… Touch the Mail icon to create a new message. Start typing my email address on the To: line, choose the first one, then tap the Send arrow.&lt;/p&gt;
&lt;p&gt;I’ve performed the above actions hundreds of times to send myself links and tweets to read later. Prior to iOS 13, my primary Gmail address would appear first on the To: line. Unfortunately, after iOS 13 was released the great AI decided that would no longer be the case.&lt;/p&gt;
&lt;p&gt;Instead, one of my other email addresses appears first and won’t change until I arrive at the unique part (and they all start with colin.dismuke 🙄). Even worse, the From: address then changes to my work email address and my email signature to my work specific signature.&lt;/p&gt;
&lt;p&gt;After enduring this for several weeks and accepting that nothing was going to change, I built a Shortcut that both simplifies and enhances the process.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/static/images/email-link/email.png&quot; alt=&quot;Email link shortcut&quot;&gt;&lt;/p&gt;
&lt;p&gt;Screenshot created with &lt;a href=&quot;https://www.macstories.net/&quot;&gt;Federico Viticci&amp;#39;s&lt;/a&gt; excellent &lt;a href=&quot;https://www.icloud.com/shortcuts/e62356a68d784678b189f512e5a5d3d1&quot;&gt;Apple Frames&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The Email link shortcut accepts either Safari webpages or URLs (from tweets, messages, emails, etc.) and is accessed using the Share Sheet.&lt;/p&gt;
&lt;p&gt;Shortcuts gets the title of the webpage from the shared link and sets that as the Subject of the email along with a few nice emoji, the link being shared is put in body of the email, and then the email is sent. Much more efficient than my previous workflow 👍🏼&lt;/p&gt;
&lt;p&gt;Get the Email Link shortcut &lt;a href=&quot;https://www.icloud.com/shortcuts/3a5811b0012d462c86a5943e234470ae&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
</content:encoded></item><item><title>Shock</title><link>https://colindismuke.com/writing/what-now</link><guid isPermaLink="true">https://colindismuke.com/writing/what-now</guid><description>The day the markets reacted to COVID-19.</description><pubDate>Mon, 16 Mar 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;A few tweets to remember this day by 👇&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;We are likely witnessing the biggest nominal demand shock in the shortest period of time in our lives so it’s almost certain whatever is done is both unprecedented and too little. Go big or go home.
&amp;mdash; modest proposal (@modestproposal1) &lt;a href=&quot;https://twitter.com/modestproposal1/status/1239316580946907145?ref_src=twsrc%5Etfw&quot;&gt;March 15, 2020&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Futures limit down; Fed cutting rates to zero and launching massive QE just shows how dire the situation is!&lt;/p&gt;
&lt;p&gt;This economic shutdown is unprecedented; so we can expect a severe contraction over the next 2-3 quarters.&lt;/p&gt;
&lt;p&gt;Breach of last week&amp;#39;s lows could trigger a severe decline.
&amp;mdash; Puru Saxena (@saxena_puru) &lt;a href=&quot;https://twitter.com/saxena_puru/status/1239323530098905088?ref_src=twsrc%5Etfw&quot;&gt;March 15, 2020&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Coronavirus will cause a recession deeper and more severe than the Great Recession.&lt;/p&gt;
&lt;p&gt;The question is how fast we bounce back from it. Hopefully we will bounce back faster. &lt;a href=&quot;https://t.co/Qr2VYhdacU&quot;&gt;https://t.co/Qr2VYhdacU&lt;/a&gt; &amp;gt; &amp;mdash; Stay home, don&amp;#39;t go out, wash your hands 🐇 (@Noahpinion) &lt;a href=&quot;https://twitter.com/Noahpinion/status/1239322986751987712?ref_src=twsrc%5Etfw&quot;&gt;March 15, 2020&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;It became now clear that there will be a global recession with world output going down already in the first half of the year by more than in 2008/9. Unimaginable, if the virus will stay strong still in the autumn ̶ humanly, socially, and economically. 1/4
&amp;mdash; Vitor Constâncio (@VMRConstancio) &lt;a href=&quot;https://twitter.com/VMRConstancio/status/1239188878218715137?ref_src=twsrc%5Etfw&quot;&gt;March 15, 2020&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This is not an original idea but this feels different than the Great Financial Crisis. The GFC was a man-made crisis—humans invented money and built all of the complex systems on top of it that led to the crisis. Covid-19 is biological, we can&amp;#39;t print more money, lower interest rates, or create stimulus packages to make it go away. We can and should do all of those things to reduce the burden on both the economy generally and people individually but that&amp;#39;s only part of the solution.&lt;/p&gt;
&lt;p&gt;The scariest aspect is the uncertainty. When will it end? When will things get better? What does normal look like after this?&lt;/p&gt;
</content:encoded></item><item><title>All the Great Podcasts</title><link>https://colindismuke.com/writing/all-the-great-podcasts</link><guid isPermaLink="true">https://colindismuke.com/writing/all-the-great-podcasts</guid><description>I’ve always wanted a place to point people to when they ask for podcast recommendations and that place is now here.</description><pubDate>Sat, 18 Jan 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I’m currently listening to podcasts from April 2019 😎 Why? According to &lt;a href=&quot;https://overcast.fm/&quot;&gt;Overcast&lt;/a&gt;, I listen to 137 different podcasts on a “regular” basis. If you’re familiar with Overcast, I’ve saved 744 hours by using Smart Speed 😲 thanks, &lt;a href=&quot;https://marco.org/&quot;&gt;Marco&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I’ve always wanted a place to point people to when they ask for podcast recommendations and that place is now here. The podcasts below are broken into three categories: technology (59), investing (30), and everything else (48). Enjoy!&lt;/p&gt;
&lt;h2&gt;&lt;strong&gt;Technology Podcasts&lt;/strong&gt;&lt;/h2&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;http://5by5.tv/b2w&quot;&gt;Back to Work&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Back to Work is an award winning talk show with Merlin Mann and Dan Benjamin discussing productivity, communication, work, barriers, constraints, tools, and more.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://feeds.5by5.tv/b2w&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;http://thisdeveloperslife.com/&quot;&gt;This Developer’s Life&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;A podcast about developers and their lives.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://feeds.feedburner.com/ThisDevelopersLife&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;http://5by5.tv/frequency&quot;&gt;The Frequency&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;The Frequency is a weekly news and talk show focused on bringing you the top stories from the real world, the tech world, and sometimes the weird world.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://feeds.5by5.tv/frequency&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://www.relay.fm/upgrade&quot;&gt;Upgrade&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Upgrade looks at how technology shapes our lives, from the devices in our hands and pockets to the streaming music and video services that keep us entertained.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.relay.fm/upgrade/feed&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://www.theverge.com/ctrl-walt-delete&quot;&gt;Ctrl-Walt-Delete&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Ctrl-Walt-Delete is a new podcast from The Verge featuring legendary tech reviewer Walt Mossberg and Verge editor-in-chief Nilay Patel. In each episode, Walt and Nilay will dive into the modern tech landscape using Walt’s extraordinary depth and experience to tell stories in entirely new ways. There will also be jokes.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://feeds.megaphone.fm/ctrl-walt-delete&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;http://5by5.tv/quit&quot;&gt;Quit&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Quit is about change, the challenges of improving your career, making tough decisions, and starting something awesome.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://feeds.5by5.tv/quit&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;http://www.thetwentyminutevc.com/&quot;&gt;The Twenty Minute VC&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Harry Stebbings, Founder and Host of TheTwentyMinuteVC, interviews today’s most successful and inspiring venture capitalists, delving inside the funding game all in an easily digestible twenty minutes.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://thetwentyminutevc.libsyn.com/rss&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://www.relay.fm/b-sides&quot;&gt;B-Sides&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;A mix of behind-the-scenes content and audio from before and after the shows.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.relay.fm/b-sides/feed&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://daringfireball.net/thetalkshow&quot;&gt;The Talk Show With John Gruber&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;The director’s commentary track for Daring Fireball, featuring John Gruber and an assortment of special guest stars.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://daringfireball.net/thetalkshow/rss&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;http://www.sourcesandmethods.com/&quot;&gt;Sources and Methods&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Sources &amp;amp; Methods is a podcast hosted by Alex Strick and Matt Trevithick in which interesting people doing interesting things get to talk about the what, how and why of what they do.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://feeds.buzzsprout.com/29188.rss&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://jobs.netflix.com/wearenetflix&quot;&gt;WeAreNetflix&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Netflix employees talking about work and life at Netflix, hosted by Senior Software Engineer, Lyle Troxell.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://feeds.simplecast.com/QAN5l_z5&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://distributed.blog/&quot;&gt;Distributed, with Matt Mullenweg&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;The cofounder of WordPress and CEO of Automattic embarks on a journey to understand the future of work. Having built his own 900-person company with no offices and employees scattered across 68 countries, Mullenweg examines the benefits and challenges of distributed work and recruiting talented people around the globe.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://distributed.blog/category/podcast/feed/&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;http://theoryofeverythingpodcast.com/&quot;&gt;Benjamen Walker’s Theory of Everything&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Theory of Everything plunges listeners into a whirl of art, journalism, fiction, interviews, and exploding pipe dreams. Host Benjamen Walker connects the dots in a world of information overload, featuring conversations with philosophers, friends, and the occasional too-good-to-be-real guest.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://feeds.prx.org/toe&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;http://exponent.fm/&quot;&gt;Exponent&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Exponent is a podcast about tech and society hosted by Ben Thompson and James Allworth.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://exponent.fm/feed/&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://www.relay.fm/analogue&quot;&gt;Analog(ue)&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;So many podcasts are about our digital devices. Analog(ue) is a show about how these devices make us feel and how they change our lives for the better, but also for the worse.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.relay.fm/analogue/feed&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://www.relay.fm/connected&quot;&gt;Connected&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Connected is a weekly panel discussion on Apple and the impact of technology on our lives. With each co-host having a unique background — and accent — Connected provides a perspective that no other show can.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.relay.fm/connected/feed&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://hbr.org/podcasts/exponential-view&quot;&gt;Exponential View with Azeem Azhar&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;How AI and other exponential technologies are transforming business and society.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://feeds.harvardbusiness.org/harvardbusiness/exponential-view&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://www.stalmanpodcast.com/&quot;&gt;The Stalman Podcast&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;For full stack creators who take photos, make videos and love tech.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.stalmanpodcast.com/rss&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://www.relay.fm/tc&quot;&gt;Thoroughly Considered&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;A show about entrepreneurship, product design, and the ups and downs of running a small indie business.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.relay.fm/tc/feed&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://sixcolors.com/subscribe/&quot;&gt;Six Colors Secret Subscriber Podcast&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;The Six Colors Secret Subscriber Podcast is a weekly (more or less) conversation between Jason Snell and Dan Moren. It’s more casual than the other podcasts we do, as we discuss what we’ve been working on, what stories we’re tracking, and yes, you may also hear Jason’s washing machine from time to time.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;You Cannot Subscribe ❌&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://onthemetal.fm/&quot;&gt;On The Metal&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;As a part of starting Oxide Computer Company, we decided to also create the podcast we always wanted. It’s unapologetically technical and as Jess says, “the nerdiest podcast on the face of the planet.” Join us as we interview various guests from the hardware / software interface. Their stories have captivated us all and kept us wanting more, we can’t wait to share them with you!&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://feeds.transistor.fm/on-the-metal-0294649e-ec23-4eab-975a-9eb13fd94e06&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://dialogpodcast.net/&quot;&gt;Dialog&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Dialog is a MacStories production co-hosted by MacStories Editor-in-Chief, Federico Viticci, and MacStories editor, John Voorhees. Dialog is a seasonal podcast published on Tuesdays. Each season, Federico and John discuss the impact of technology on creativity, society, and culture through in-depth conversations with a wide range of guests.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://dialogpodcast.net/episodes/feed/&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;http://5by5.tv/specials&quot;&gt;5by5 Specials&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;5by5 special events.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://feeds.5by5.tv/specials&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://artofproductpodcast.com/&quot;&gt;The Art of Product&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;The Art of Product is a podcast chronicling the journeys of two entrepreneurs building software companies. Hosted by Ben Orenstein and Derrick Reimer.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://feeds.fireside.fm/artofproduct/rss&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;http://5by5.tv/podcastmethod&quot;&gt;Podcast Method&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Dan Benjamin answers your questions about podcasting and recording, audio and video equipment, software, mic technique, pre- and post-production, workflows, and more.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://feeds.5by5.tv/podcastmethod&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://www.macintosh.fm/episodes/&quot;&gt;Welcome to Macintosh&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;A podcast about Apple, its history, and the community around it. By Mark Bramhill.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://macintoshfm.squarespace.com/episodes?format=rss&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://www.relay.fm/presentable&quot;&gt;Presentable&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;The Presentable Podcast focuses on how we design and build the products that are shaping our digital future. We’ll track the tools, trends, and methods being used by teams from the biggest companies and latest startups. In each episode, Jeff will bring over two decades of experience as a designer, developer, entrepreneur, and investor as he chats with guests about how design is changing the world.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.relay.fm/presentable/feed&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://appstories.net/&quot;&gt;AppStories&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;AppStories is a MacStories production co-hosted by MacStories Editor-in-Chief, Federico Viticci, and MacStories writer, John Voorhees. AppStories is a weekly podcast published on Mondays. Each week, Federico and John discuss their favorite new apps and noteworthy updates, dive into the stories and people behind the apps they love, and explore the social and cultural impact of the App Store.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://appstories.net/episodes/feed/&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://syntax.fm/&quot;&gt;Syntax - Tasty Web Development Treats&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Full Stack Developers Wes Bos and Scott Tolinski dive deep into web development topics, explaining how they work and talking about their own experiences. They cover from JavaScript frameworks like React, to the latest advancements in CSS to simplifying web tooling.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://feed.syntax.fm/rss&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://www.relay.fm/radar&quot;&gt;Under the Radar&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;From development and design to marketing and support, Under the Radar is all about independent app development. It’s never longer than 30 minutes.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.relay.fm/radar/feed&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;http://fullstackradio.com/&quot;&gt;Full Stack Radio&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;A podcast for developers interested in building great software products. Every episode, Adam Wathan is joined by a guest to talk about everything from product design and user experience to unit testing and system administration.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://rss.simplecast.com/podcasts/279/rss&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;http://supercomputer.fm/&quot;&gt;Supercomputer&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Supercomputer is a podcast all about making sense out of a mess of technology.&lt;/p&gt;
&lt;p&gt;It’s a fun and friendly guide to the world of technology, hosted by two friends who enjoy using their gadgets to the fullest and showing others along the way.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://feeds.transistor.fm/supercomputer&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;http://gimletmedia.com/shows/reply-all&quot;&gt;Reply All&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;“‘A podcast about the internet’ that is actually an unfailingly original exploration of modern life and how to survive it.” – The Guardian&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://feeds.megaphone.fm/replyall&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://www.gimletmedia.com/startup&quot;&gt;StartUp Podcast&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;A show about what it’s really like to start a business.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://feeds.megaphone.fm/startup&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://theomnishow.omnigroup.com/&quot;&gt;The Omni Show&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Get to know the people and stories behind Omni’s award-winning productivity apps for Mac and iOS.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://theomnishow.omnigroup.com/rss/&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://www.relay.fm/automators&quot;&gt;Automators&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Automation makes your life easier and everyone can do it. We tell you how.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.relay.fm/automators/feed&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;http://www.imore.com/debug/&quot;&gt;Debug&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Debug is a conversational interview show about developing software and services, primarily for iPhone, iPad, Mac, and gaming. Hosted by Guy English and Rene Ritchie, it’s all the great talk you get at the bar after the conference, wrapped up in convenient podcast form.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://feeds.feedburner.com/debugshow&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;http://5by5.tv/buildanalyze&quot;&gt;Build and Analyze&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;A weekly news and discussion show about the world of iPhone, iPad, iOS, and mobile web development.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://feeds.5by5.tv/buildanalyze&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;http://www.talkingcode.com/&quot;&gt;Talking Code&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Short expert interviews that help you decode what developers are saying.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://rss.simplecast.com/podcasts/150/rss&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;http://club.macstories.net/&quot;&gt;MacStories Unplugged&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;You Cannot Subscribe ❌&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://anchor.fm/sales-for-founders&quot;&gt;Sales For Founders&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;An interview series for (technical) founders who are fed up of building products nobody wants to buy…&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://anchor.fm/s/a75bad4/podcast/rss&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://usefathom.com/&quot;&gt;Above Board&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Can you make money and hold true to your values? Can you keep a profitable business “above board”? This is a podcast from Fathom Analytics. Jack Ellis and Paul Jarvis (co-founders) explore running an ethical and privacy-focused company in 2019 and beyond. They’ll also be sharing an inside look at what it takes to create and sell their privacy-focused product without any outside funding or capital.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://feeds.transistor.fm/above-board-from-fathom-analytics&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://www.relay.fm/cortex&quot;&gt;Cortex&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;CGP Grey and Myke Hurley are both independent content creators. Each episode, they get together to discuss their working lives.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.relay.fm/cortex/feed&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://www.relay.fm/canvas&quot;&gt;Canvas&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Hosted by Federico Viticci and Fraser Speirs, Canvas is a podcast all about mobile productivity. Armed with iOS, Federico and Fraser will be walking through workflows, exploring the best apps for the iPad and iPhone and helping users solve problems.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.relay.fm/canvas/feed&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://postlight.com/trackchanges/podcast&quot;&gt;Track Changes&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;What happens when software eats the world? Industry veterans Paul Ford and Rich Ziade chat with their friends about technology, design, and business from a distinctly East Coast point of view. Decades of experience inform their no-BS, quick-witted patter about what digital transformation really means. Created by Postlight, the digital product studio they co-founded in New York City.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://trackchanges.libsyn.com/rss&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://www.microsoft.com/en-us/behind-the-tech&quot;&gt;Behind The Tech with Kevin Scott&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;http://behindthetech.mpsn.libsynpro.com/rss&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://www.relay.fm/bonuscontent&quot;&gt;Members Only&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;You Cannot Subscribe ❌&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://www.relay.fm/mpu&quot;&gt;Mac Power Users&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Learn about getting the most from your Apple technology with focused topics and workflow guests. Creating Mac Power Users, one geek at a time since 2009.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.relay.fm/mpu/feed&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://randsinrepose.com/archives/category/the-important-thing/&quot;&gt;The Important Thing&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Welcome to The Important Thing — a frequent collaboration between myself and Lyle.&lt;/p&gt;
&lt;p&gt;Following in the template of the early episodes, The Important Thing valiantly attempts to discover and discuss one important thing per episode. Sometimes there are two. Yes, we’re exploring as we go.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://rands.libsyn.com/feed&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://www.indiehackers.com/&quot;&gt;The Indie Hackers Podcast&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;I’m Courtland Allen, and on IndieHackers.com I’ve interviewed hundreds of people about how they’ve turned their ideas and side projects into profitable online businesses. Explore the stories, challenges, and tactics behind the indie hackers who are escaping the 9-to-5 grind and building their own revenue-generating machines.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://feeds.backtracks.fm/feeds/indiehackers/indiehackers/feed.xml&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://weworkremotely.com/&quot;&gt;The Remote Show&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;The Remote Show is an interview style podcast devoted to all things remote work. We discuss tips, applications, tools, management concepts and much more in order to help today’s remote worker be more productive and fulfilled in work and in life.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://feeds.simplecast.com/CdrutlAN&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://saas.transistor.fm/&quot;&gt;Build Your SaaS – bootstrapping in 2019&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;37signals started an indie SaaS revolution when they launched Basecamp and Ruby on Rails. Since 2004, thousands of entrepreneurs, developers, designers, and product people have tried to capture some of that success by launching their own web apps. But what does it take to build a Software as a Service business in 2020?&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://feeds.transistor.fm/build-your-saas&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://www.vox.com/recode-podcasts&quot;&gt;Land of the Giants&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;In less than two decades, Amazon CEO Jeff Bezos scaled an online marketplace for books into the world’s most valuable company. But at what cost? From Prime and HQ2, to the growing adoption of smart speakers and home cameras, to increasing scrutiny of Amazon’s power and its role in the changing nature of work, Vox and Recode’s new podcast, Land of the Giants: The Rise of Amazon, addresses it all with detailed, thought-provoking, measured reporting from host Jason Del Rey. And it’s not just for insiders. This show is the essential guide to Amazon’s backstory for those unfamiliar, and offers never-before-told, behind-the-scenes stories for the Amazon-obsessed.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://feeds.megaphone.fm/landofthegiants&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;http://esn.fm/systematic/&quot;&gt;Systematic&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Brett Terpstra explores the idea that all work is creative work, welcoming a different guest each week.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://feedpress.me/s&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://atp.fm/&quot;&gt;Accidental Tech Podcast&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;A tech podcast we accidentally created while trying to do a car show. Featuring &lt;a href=&quot;http://www.marco.org/&quot;&gt;Marco Arment&lt;/a&gt;, &lt;a href=&quot;http://www.caseyliss.com/&quot;&gt;Casey Liss&lt;/a&gt;, and &lt;a href=&quot;http://hypercritical.co/&quot;&gt;John Siracusa&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://atp.fm/episodes?format=rss&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;http://www.ycombinator.com/&quot;&gt;Y Combinator&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://blog.ycombinator.com/category/podcast/&quot;&gt;https://blog.ycombinator.com/category/podcast/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://feeds.backtracks.fm/feeds/ycombinator/ycombinator/feed.xml&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://www.relay.fm/focused&quot;&gt;Focused&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;David Sparks and Mike Schmitz are not nearly as productive as they’d like to be. Join these fellow travelers (and a bunch of special guests) as they share the best ways to get focused, and talk though their successes and failures along the way.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.relay.fm/focused/feed&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;http://www.kevinrose.com/&quot;&gt;The Kevin Rose Show&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Join entrepreneur, technology investor, and self-experimenter Kevin Rose as he explores new ways to reach peak personal and professional performance. In this “podcast for the curious,” Kevin interviews technologists, scientists, meditators, self-experimenters, and productivity hackers to discover insights that you can incorporate into daily life.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://feeds.simplecast.com/xZuZL16q&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://www.relay.fm/adapt&quot;&gt;Adapt&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Adapt is a show all about the iPad, where two iPad-first users challenge each other to explore new ways of doing things with their favorite device.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.relay.fm/adapt/feed&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;&lt;strong&gt;Investing Podcasts&lt;/strong&gt;&lt;/h2&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;http://tedseides.libsyn.com/website&quot;&gt;Capital Allocators&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Meet the people who allocate vast pools of capital and the processes they employ.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://tedseides.libsyn.com/rss&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://allaboutyourbenjamins.com/&quot;&gt;All About Your Benjamins™&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;All About Your Benjamins is hosted by Justin Castelli, CFP® a financial advisor and founder of RLS Wealth Management, a Registered Investment Advisor located in Fishers, Indiana. Join Justin as he talks with guests about financial planning, investments, personal development and more.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://allaboutyourbenjamins.com/feed/podcast/&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;http://investorfieldguide.com/&quot;&gt;Invest Like the Best&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Exploring the ideas, methods, and stories of people that will help you better invest your time and money.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://investlikethebest.libsyn.com/rss&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://www.hiddenforces.io/&quot;&gt;Hidden Forces&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Demetri Kofinas interviews some of the most brilliant minds in science, technology, finance, politics, and culture as he uncovers the underlying forces driving the most powerful changes we see in the world.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://hiddenforces.libsyn.com/rss&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;http://accordingtosourcespodcast.com/&quot;&gt;According To Sources&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Michael Samuels, Founder and Portfolio Manager of Broome Street Capital, talks M&amp;amp;A, activism and event-driven investing, all with a focus on the news-sources that cover them.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://feeds.simplecast.com/M8Ay0u1B&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://bloomberg.com/podcasts/odd_lots&quot;&gt;Odd Lots&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Bloomberg’s Joe Weisenthal and Tracy Alloway take you on a not-so random weekly walk through hot topics in markets, finance and economics.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://feeds.bloomberg.fm/BLM2009837477&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://notation.vc/&quot;&gt;Origins - A podcast about Limited Partners, created by Notation Capital&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Origins is a podcast about Limited Partners, the firms and institutions that invest in venture capital funds. Through a series of interviews, we explore what has historically been an opaque corner of the startup ecosystem and learn how the people behind the capital make decisions.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://rss.simplecast.com/podcasts/1998/rss&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://ark-invest.com/&quot;&gt;FYI - For Your Innovation&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;The FYI - For Your Innovation Podcast offers an intellectual discussion on recent developments across disruptive innovation—driven by research, news, controversies, companies, and technological breakthroughs. Hosted by ARK Invest analyst James Wang, ARK and guests provide a unique perspective on how to best understand disruptive innovation.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://ark-invest.com/feed/podcast&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://blockworksgroup.io/off-the-chain-podcast&quot;&gt;Off the Chain&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Host Anthony “Pomp” Pompliano talks to some of the most respected names in crypto and Wall Street to find out how intelligent investors from the new and old financial system are thinking about digital assets.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://feeds.megaphone.fm/offthechain&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://acquired.fm/&quot;&gt;Acquired&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Every company has a story. Acquired goes behind the scenes of the biggest tech IPOs and acquisitions of all time.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://acquired.libsyn.com/rss&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://acquired.fm/&quot;&gt;Acquired LP Bonus Show&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Deep dives on company-building, interviews with operators and VCs, and how venture firms work.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;You Cannot Subscribe ❌&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://bloomberg.com/podcasts/masters_in_business&quot;&gt;Masters in Business&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Bloomberg Opinion columnist Barry Ritholtz looks at the people and ideas that shape markets, investing and business.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://feeds.bloomberg.fm/BLM8864403288&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;http://www.flippening.com/&quot;&gt;Flippening&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Flippening is for cryptocurrency investors. Each week we discuss the cryptocurrency economy, new investment strategies for maximizing returns, and stories from the front lines of financial disruption. Flippening is for a new class of investors that were not part of the financial services world before bitcoin, but got into finance because of their passion for cryptoassets, blockchain, altcoins, and distributed ledger technology.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://feeds.backtracks.fm/feeds/nomics/flippening/feed.xml&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://pjrvs.com/&quot;&gt;Company of One&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Company of One is a podcast that explores what happens when businesses challenge the traditional idea that bigger is always better. What if we break from the idea that growth in revenue, customers and employees is always the byproduct of success and focus instead on what it means to create richer and more fulfilling careers and businesses that don’t require exponential growth in all directions at all times?&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://feeds.transistor.fm/company-of-one&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://www.aqr.com/curious&quot;&gt;The Curious Investor&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;We break down some of the most important ideas in finance to help us make better investment decisions.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://feeds.megaphone.fm/thecuriousinvestor&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;http://mebfaber.libsyn.com/podcast&quot;&gt;The Meb Faber Show&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Ready to grow your wealth through smarter investing decisions? With The Meb Faber Show, bestselling author, entrepreneur, and investment fund manager, Meb Faber, brings you insights on today’s markets and the art of investing.&lt;/p&gt;
&lt;p&gt;Featuring some of the top investment professionals in the world as his guests, Meb will help you interpret global equity, bond, and commodity markets just like the pros. Whether it’s smart beta, trend following, value investing, or any other timely market topic, each week you’ll hear real market wisdom from the smartest minds in investing today. Better investing starts here.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://mebfaber.libsyn.com/rss&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://www.standarddeviationspod.com/&quot;&gt;Standard Deviations&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;The Standard Deviations podcast is a weekly production that looks at money, mind and meaning, all through a psychological lens. Each week, psychologist and New York Times bestselling author Dr. Daniel Crosby interviews a fascinating new guest, experts in everything from finance to literature to wellness. Each guest provides listeners with three concrete ways to apply what was learned that week, ensuring that weekly listening becomes part of a path to a richer life. Episodes are brief, research-based, and designed to fit perfectly within your commute time.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://feeds.soundcloud.com/users/soundcloud:users:237461308/sounds.rss&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://unco.fm/unco/&quot;&gt;UNCO&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;An interview podcast about what’s unusual in tech by Timothy Buck.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://unco.fm/unco?format=rss&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;http://www.thealternativeinvestorshow.com/&quot;&gt;The Alternative Investor&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;The Alternative Investor is a show about investing money outside of the stock market (private equity, real estate, venture capital, etc.) where the returns are typically higher but the investment decisions are less straightforward. Join Grayson Morris and Brad Johnson as they discuss investing in alternative assets to help you make better decisions with your investment portfolio.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://feed.pippa.io/public/shows/5aad9a49e932f49b6bf95c66&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://nav.al/&quot;&gt;Naval&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Naval on wealth creation.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://naval.libsyn.com/rss&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;http://theentrepreneursblueprint.libsyn.com/website&quot;&gt;The Entrepreneur’s Blueprint Podcast&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Entrepreneurship is sought by many, but successfully found by few. Justin Castelli, CFP®, founder of RLS Wealth Management, discusses lessons learned in entrepreneurship with business owners in different stages of building their businesses.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://theentreprenuersblueprint.libsyn.com/rss&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://www.a16z.com/&quot;&gt;a16z Podcast&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;The a16z Podcast discusses tech and culture trends, news, and the future – especially as ‘software eats the world’. It features industry experts, business leaders, and other interesting thinkers and voices from around the world.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://feeds.simplecast.com/JGE3yC0V&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://fs.blog/the-knowledge-project/&quot;&gt;The Knowledge Project with Shane Parrish&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Master the best of what other people have already figured out.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://theknowledgeproject.libsyn.com/rss&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://awealthofcommonsense.com/podcast/&quot;&gt;Animal Spirits Podcast&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Animal spirits is a show about markets, life, and investing. Join Michael Batnick and Ben Carlson as they talk about what they’re reading, writing, listening to and watching.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://animalspiritspod.libsyn.com/rss&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;http://www.conversationswithtyler.com/&quot;&gt;Conversations with Tyler&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Tyler Cowen engages today’s deepest thinkers in wide-ranging explorations of their work, the world, and everything in between.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://cowenconvos.libsyn.com/rss&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://www.taylorschulte.com/&quot;&gt;Experiments in Advisor Marketing&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Most of my marketing experiments have failed. But, some have succeeded. From spending tens of thousands of dollars on print ads to hiring a Harvard data nerd to run Facebook campaigns, it’s quite possible I’ve experimented more in the last five years than the average advisor has in their entire career. And this is just the beginning.&lt;/p&gt;
&lt;p&gt;Join me as I explore the world of marketing in the financial planning industry. Follow along as I experiment with different ideas, share my successes and failures, and interview outside-the-box experts.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://advisormarketing.libsyn.com/rss&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://adventur-es.libsyn.com/website&quot;&gt;The Messy Marketplace&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;The marketplace for small to midsize businesses is messy. Having peeked behind the curtain at over 10,000 companies, this expanded audiobook-podcast aims to demystify the buyers, the process, and the inevitable emotional journey that is selling a company.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://adventur-es.libsyn.com/rss&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;http://www.villageglobal.vc/&quot;&gt;Venture Stories&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Venture Stories by Village Global takes you inside the world of venture capital and technology, featuring enlightening interviews with entrepreneurs, investors and tech industry leaders. The podcast is hosted by Village Global partner and co-founder Erik Torenberg and produced by Brett Bolkowy.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.spreaker.com/show/2737820/episodes/feed&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://www.gimletmedia.com/without-fail&quot;&gt;Without Fail&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Candid conversations with people who have done hard things: what worked, what didn’t and why. Hosted by Alex Blumberg.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://feeds.megaphone.fm/withoutfail&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://www.tonysheng.com/click-here-to-apply&quot;&gt;Click Here To Apply - Interviews About Interesting Jobs And How To Do Them&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Once again, Tony Sheng finds himself without a job.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://anchor.fm/s/6d60960/podcast/rss&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;&lt;strong&gt;Everything Else&lt;/strong&gt;&lt;/h2&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://www.wnycstudios.org/podcasts/radiolab/projects/podcasts&quot;&gt;Radiolab&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Radiolab is an investigation told through sounds and stories, and centered around one big idea. In the Radiolab world, information sounds like music and science and culture collide. Hosted by Jad Abumrad and Robert Krulwich, the show is designed for listeners who demand skepticism, but appreciate wonder.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://feeds.wnyc.org/radiolab&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;http://thisiscriminal.com/&quot;&gt;Criminal&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Criminal is a podcast about crime. Not so much the “if it bleeds, it leads,” kind of crime. Something a little more complex. Stories of people who’ve done wrong, been wronged, and/or gotten caught somewhere in the middle.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://feeds.thisiscriminal.com/CriminalShow&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://art19.com/shows/the-bill-simmons-podcast&quot;&gt;The Bill Simmons Podcast&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;HBO and The Ringer’s Bill Simmons hosts the most downloaded sports podcast of all time, with a rotating crew of celebrities, athletes, and media staples, as well as mainstays like Cousin Sal, Joe House, and a slew of other friends and family members who always happen to be suspiciously available.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://rss.art19.com/the-bill-simmons-podcast&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://anchor.fm/couples-therapy&quot;&gt;Couples Therapy with Candice and Casey&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;You’re used to seeing Casey Neistat share his own life through his popular YouTube video series. But now, listen to Casey and his wife Candice discuss candidly the ups and downs of their marriage, friendship, parenting, and lives in the YouTube spotlight.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://anchor.fm/s/3b2be68/podcast/rss&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;http://soundcloud.com/containersfmg&quot;&gt;Containers&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Containers is an 8-part audio documentary about how global trade has transformed the economy and ourselves. Host and correspondent Alexis Madrigal leads you through the world of ships and sailors, technology and tugboats, warehouses and cranes. At a time when Donald Trump is threatening to toss out the global economic order, Containers provides an illuminating, deep, and weird look at how capitalism actually works now.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://feeds.megaphone.fm/PPY8156500299&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;http://www.earwolf.com/show/wolf-den/&quot;&gt;The Wolf Den&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;The Wolf Den, hosted by Midroll’s Lex Friedman and Chris Bannon, focuses on the business side of podcasting. Tune in for interviews with other influencers in the industry, and some insider info behind what’s happening at Earwolf, Howl, and Midroll.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.omnycontent.com/d/playlist/aaea4e69-af51-495e-afc9-a9760146922b/d801cf91-a03b-49fb-bc21-a9ea011d3d56/a148be91-de6a-457f-93f8-a9ea011d3d64/podcast.rss&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;http://periodicalist.com/&quot;&gt;The Periodicalist&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;The world of publishing in digital and analog form changes underneath us seemingly every day. Sorting out the flux is regular host Glenn Fleishman, the owner and editor of The Magazine. With a rotating set of co-hosts, the Periodicalist will explore breaking events and long-term changes in publishing, whether periodicals, print books, ebooks, or one-off projects.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://feedpress.me/period&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;http://dobyfriday.com/&quot;&gt;Do By Friday&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;A weekly challenge show hosted by Merlin Mann, Alex Cox, and Max Temkin.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://rss.simplecast.com/podcasts/2389/rss&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://www.relay.fm/fusionmembers&quot;&gt;Fusion&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Members-only podcast, in which Stephen Hackett interviews two hosts about one big topic each month.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.relay.fm/fusionmembers/feed&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://stownpodcast.org/&quot;&gt;S-Town&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;John despises his Alabama town and decides to do somethingh about it. He asks a reporter to investigate the son of a wealthy family who’s allegedly been bragging that he got away with murder. But then someone else ends up dead, sparking a nasty feud, a hunt for hidden treasure, and an unearthing of the mysteries of one man’s life.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://feeds.stownpodcast.org/stownpodcast&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://www.relay.fm/bonanza&quot;&gt;BONANZA&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Bonanza has long been considered an important show about nothing in particular.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.relay.fm/bonanza/feed&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://anchor.fm/buzzfeeds-internet-explorer&quot;&gt;BuzzFeed’s Internet Explorer&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;BuzzFeed editors Ryan Broderick and Katie Notopoulos explore the weirdest corners of the internet, so you don’t have to.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://anchor.fm/s/97db258/podcast/rss&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://www.georgedrakejr.com/&quot;&gt;Everything Sounds&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Everything Sounds is a podcast and short-form radio program exploring the role of sound in art, science, culture, and our everyday lives. Each program aims to highlight people, places, and ideas that expand our understanding of the power of sound.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://feeds.soundcloud.com/users/soundcloud:users:17699469/sounds.rss&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://www.radiotopia.fm/&quot;&gt;Radiotopia Plus&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Radiotopia Plus, hosted by Executive Producer Julie Shapiro, is a donors-only podcast that takes you behind the scenes with some of your favorite Radiotopia hosts and producers. You’ll get to know more about the people behind the mic, and have access to special audio treats, show previews and more.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://plus.radiotopia.fm/&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://art19.com/shows/the-majordomo-podcast&quot;&gt;The Dave Chang Show&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Dave Chang has a few questions. Besides being the chef of the Momofuku restaurants and the creator and host of Netflix’s ‘Ugly Delicious,’ Dave is an avid student and fan of sports, music, art, film, and, of course, food. In ranging conversations that cover everything from the creative process to his guest’s guiltiest pleasures, Dave and a rotating cast of smart, thought-provoking guests talk about their inspirations, failures, successes, fame, and identities.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://rss.art19.com/the-majordomo-podcast&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;http://www.lifeofthelaw.org/&quot;&gt;Life of the Law&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Law is alive. It doesn’t live in books and words. It thrives in how well we understand and apply it to everyday life.&lt;/p&gt;
&lt;p&gt;We ask questions, find answers, and publish what we discover in feature episodes and live storytelling.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://feeds.megaphone.fm/lifeofthelaw&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;http://youlooknicetoday.com/&quot;&gt;You Look Nice Today&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;A Journal of Emotional Hygiene, staffed by lonelysandwich, scottsimpson, and hotdogsladies.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://feeds.feedburner.com/YouLookNiceToday&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://www.relay.fm/topfour&quot;&gt;Top Four&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;An opinionated podcast by opinionated people.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.relay.fm/topfour/feed&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://gimletmedia.com/show/surprisingly-awesome/&quot;&gt;Surprisingly Awesome&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Lots of things in the world seem ordinary. But when you dig deeper, it turns out, they’re fascinating. Surprisingly Awesome tells those stories.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://feeds.megaphone.fm/surprisinglyawesome&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://www.wnycstudios.org/podcasts/radiolabmoreperfect&quot;&gt;Radiolab Presents: More Perfect&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;From the producers of Radiolab, a series about how the Supreme Court got so supreme.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://feeds.wnyc.org/moreperfect&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://sw945.craigmod.com/&quot;&gt;SW945: A Walk in Japan&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Fifteen minutes of binaural audio recorded wherever I may be at 09:45am. Best listened to with headphones.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://feeds.simplecast.com/hVLT7s2x&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;http://longform.org/&quot;&gt;Longform&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;A weekly conversation with a non-fiction writer on how they tell stories.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://rss.simplecast.com/podcasts/5593/rss&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;http://taperadio.org/&quot;&gt;Tape&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;A radio show about people who make radio, hosted by Mooj Zadie and Mickey Capper.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://feeds.feedburner.com/taperadio&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://www.relay.fm/rd&quot;&gt;Reconcilable Differences&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;John Siracusa and Merlin Mann try to figure out exactly how they got this way.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.relay.fm/rd/feed&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;http://brownscast.libsyn.com/podcast&quot;&gt;Brownscast: The Official Podcast of the Cleveland Browns&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Get beyond the X’s and O’s and listen in on candid, behind-the-scenes conversations with Browns players, legends, coaches, and front office personnel about way more than just the game. Hosted by Max Linsky.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://brownscast.libsyn.com/rss&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://www.relay.fm/ungeniused&quot;&gt;Ungeniused&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Ungeniused is a show dedicated to covering the weirdest articles found on Wikipedia. Stephen Hackett and Myke Hurley are here to explain topics and share knowledge you’ll never be able to use in real life.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.relay.fm/ungeniused/feed&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;http://www.npr.org/series/490248027/how-i-built-this&quot;&gt;How I Built This with Guy Raz&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Guy Raz dives into the stories behind some of the world’s best known companies. How I Built This weaves a narrative journey about innovators, entrepreneurs and idealists—and the movements they built.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.npr.org/rss/podcast.php?id=510313&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://craigmod.com/onmargins/&quot;&gt;On Margins&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;On Margins is a podcast about making books, hosted by Craig Mod.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://onmargins.craigmod.com/rss&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://tim.blog/podcast&quot;&gt;The Tim Ferriss Show&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Each episode, I deconstruct world-class performers from eclectic areas (investing, sports, business, art, etc.) to extract the tactics, tools, and routines you can use. This includes favorite books, morning routines, exercise habits, time-management tricks, and much more.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://rss.art19.com/tim-ferriss-show&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://relay-fm.herokuapp.com/inquisitive&quot;&gt;Inquisitive&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Inquisitive is a show for the naturally curious. Each week, Myke Hurley talks to creative people to try and understand what makes them who they are.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.relay.fm/inquisitive/feed&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;http://www.hellointernet.fm/&quot;&gt;Hello Internet&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;CGP Grey and Brady Haran talk about YouTube, life, work, whatever.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.hellointernet.fm/podcast?format=rss&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;http://www.perell.com/podcast/&quot;&gt;North Star Podcast&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;A deep dive into the stories, habits, ideas, strategies and methods that drive fulfilled people and create enormous success for them. The guests are diverse, but they share profound similarities. They’re guided by purpose, live with intense joy, learn passionately, and see the world with a unique lens. Each episode lets us soak in their hard-earned wisdom and apply it to our lives.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://perell.libsyn.com/rss&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;http://lancearmstrong.com/podcast&quot;&gt;The Forward&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;The Forward Podcast with Lance Armstrong gives the audience a rare and revealing listen into Armstrong’s conversations with an eclectic range of personalities—some well-known, others simply with intriguing stories to tell. Guests, which hail from the worlds of politics, entertainment, art, business, sport and beyond, have included Malcolm Gladwell, Neil deGrasse Tyson, Chris Evert and the Avett Brothers. The Forward often touches on the theme, or concept, from which the podcast’s name is drawn—pressing onward in the face of adversity or challenge, and seizing the opportunity to continually grow from experience. Above all, The Forward Podcast is a personal, honest, engaging and always entertaining dialogue that leaves the listener with new insights and perspective.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://theforwardpodcast.libsyn.com/rss&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;http://www.stagespodcast.com/&quot;&gt;THEMOVE&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Lance Armstrong presents a singular perspective on the world’s most iconic cycling races, including the Tour de France and the Classics, as well as the broader endurance sports scene. Not your typical cycling or sports podcast, THEMOVE brings listeners deep inside the racing action, imparting insights from someone who knows the suffering and splendor like no one else. In addition to course previews and timely race analysis from Armstrong’s distinct point of view, the audience also gets to hear from featured guests, who regularly swing by the THEMOVE studio to join the always-lively conversation. Guests have included former teammates like George Hincapie during the Tour de France, and Mark Allen and Dave Scott in advance of the IRONMAN World Championship.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://stages.libsyn.com/rss&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://www.joerogan.com/&quot;&gt;The Joe Rogan Experience&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;The podcast of Comedian Joe Rogan.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://joeroganexp.joerogan.libsynpro.com/rss&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;http://thememorypalace.us/&quot;&gt;the memory palace&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;From public radio producer, Nate DiMeo, comes The Memory Palace, a finalist for the 2016 Peabody Award and one of iTunes Best Podcast of 2015. Short, surprising stories of the past, sometimes heartbreaking, sometimes hysterical, often a little bit of both.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://feeds.thememorypalace.us/thememorypalace&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://art19.com/shows/the-portal&quot;&gt;The Portal&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Welcome to The Portal. This podcast does something different. Hosted by Eric Weinstein.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://rss.art19.com/the-portal&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;http://5by5.tv/afterdark&quot;&gt;After Dark&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;This is what happens after Dan and his co-hosts hit “STOP” and their official shows are over. Behind the scenes, casual, unedited, and uncensored.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://feeds.5by5.tv/afterdark&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;http://www.howtobeagirlpodcast.com/&quot;&gt;How to Be a Girl&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;How to Be a Girl is an audio podcast I produce about life with my six-year-old transgender daughter. It stars the two of us — a single mom and a six-year-old “girl with a penis” — as we attempt together to sort out just what it means to be a girl.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://marlo-mack.squarespace.com/episodes?format=rss&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://www.gimletmedia.com/mystery-show&quot;&gt;Mystery Show&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;A podcast where Starlee Kine solves mysteries.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://feeds.megaphone.fm/mysteryshow&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://www.thisislovepodcast.com/&quot;&gt;This is Love&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;From the makers of the award-winning podcast Criminal, This is Love investigates life’s most persistent mystery. Stories of sacrifice, obsession, and the ways in which we bet everything on each other.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://feeds.thisiscriminal.com/thisislovepodcast&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://www.hodinkee.com/&quot;&gt;HODINKEE Radio&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;HODINKEE Radio is a weekly podcast brought to you by HODINKEE—the world’s preeminent resource for vintage and modern wristwatch enthusiasts. While, sure, this is a watch podcast, it’s not just a podcast about watches. It’s a podcast about people.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://feeds.simplecast.com/OzTmhziA&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;http://www.songexploder.net/&quot;&gt;Song Exploder&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Song Exploder is a podcast where musicians take apart their songs, and piece by piece, tell the story of how they were made. Each episode features an artist discussing a song of theirs, breaking down the sounds and ideas that went into the writing and recording. Hosted and produced by Hrishikesh Hirway.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://feed.songexploder.net/songexploder&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;http://topscallops.tv/&quot;&gt;Top Scallops&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Merlin Mann, Alex Cox, and Max Temkin watch season 13 of Top Chef.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://rss.simplecast.com/podcasts/1497/rss&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://www.newsounds.org/shows/meet-composer&quot;&gt;Meet the Composer&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Meet the Composer is a Peabody Award-winning podcast from WQXR’s Q2 Music that takes listeners into the minds and creative processes of the composers making some of the most innovative, compelling and breathtakingly beautiful music today. At the convergence of interview, music and sound design, Meet the Composer aims to show the listener who the composer is as a person, as a thinker and as an artist.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://feeds.wnyc.org/wqxr-meetthecomposer&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://www.arnoldventures.org/&quot;&gt;Deep Dive with Laura Arnold&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Sky-high drug prices. Mass incarceration. Predatory lending. These are the surface-level symptoms of broken systems. To find answers, we must peel back the layers and look deeper. Join Arnold Ventures Co-Chair and host Laura Arnold as she shares the mike with leading data-driven experts in this podcast by the Arnold Ventures philanthropy that explores market failures in health care, criminal justice, education, and public finance — and how to fix them.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://deepdivewithlauraarnold.libsyn.com/rss&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;http://stoner.co/&quot;&gt;Stoner&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Stoner is a freewheeling conversation that often starts with “when was the first time you ever smoked weed?” and can end up anywhere. Guests range from artists to musicians to those working in the marijuana economy. Host Aaron Lammer is also the co-host of the Longform Podcast and has co-written songs with Francis and the Lights for artists like Chance the Rapper and Drake.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://feeds.simplecast.com/Fb7p5jBH&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;&lt;a href=&quot;https://art19.com/shows/the-book-of-basketball-podcast&quot;&gt;Book of Basketball 2.0&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Bill Simmons’s new podcast breaks down the NBA’s most important games, players, and teams, extending and reinventing his New York Times no. 1 bestselling book from 2009. Playing off the NBA’s dramatic changes during the past decade, Bill uses new commentary and fresh interviews with players and top media members to determine how the league has evolved and where it’s headed.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://rss.art19.com/the-book-of-basketball-podcast&quot;&gt;Subscribe 🎧&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Let me know if there’s anything else I should add to the list!&lt;/p&gt;
</content:encoded></item><item><title>The Eventually Equation</title><link>https://colindismuke.com/writing/the-eventually-equation</link><guid isPermaLink="true">https://colindismuke.com/writing/the-eventually-equation</guid><description>An illustration from Naval&apos;s most popular tweetstorm.</description><pubDate>Mon, 30 Dec 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Last year, &lt;a href=&quot;https://twitter.com/naval&quot;&gt;Naval Ravikant&lt;/a&gt; had an incredibly popular tweetstorm about getting rich, both literally and metaphorically. From that tweetstorm grew a &lt;a href=&quot;https://nav.al/category/podcast&quot;&gt;podcast&lt;/a&gt; with &lt;a href=&quot;https://twitter.com/nivi&quot;&gt;Babak Nivi&lt;/a&gt; (they co-founded AngelList together) in which they explore each of the tweets in the storm.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Arm yourself with specific knowledge, accountability, and leverage.
&amp;mdash; Naval (@naval) &lt;a href=&quot;https://twitter.com/naval/status/1002104865919664128?ref_src=twsrc%5Etfw&quot;&gt;May 31, 2018&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;When discussing the tweet above, Nivi lays out a great summary of what it takes to eventually be successful, and, theoretically, a way to calculate the probability of that future success. &lt;strong&gt;I don’t know if Naval meant that it was literally worth sketching out but that’s how I took it&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;I think looking at the sketched out equation really highlights the importance of learning over a long duration. As with any form of compounding, the longer you can keep playing, the greater the future returns. The variables inside the parentheses matter but are a drop in the bucket compared to life-long pursuit of knowledge and growth.&lt;/p&gt;
&lt;p&gt;Alternatively…&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The secret to getting rich is hard work, ingenuity, and being born in an era where your peak savings years align with a historic bull market.
&amp;mdash; Morgan Housel (@morganhousel) &lt;a href=&quot;https://twitter.com/morganhousel/status/1211715658691559424?ref_src=twsrc%5Etfw&quot;&gt;December 30, 2019&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;/static/images/eventually/1.jpg&quot; alt=&quot;The Eventually Equation&quot;&gt;&lt;/p&gt;
</content:encoded></item><item><title>A Good Boy</title><link>https://colindismuke.com/writing/a-good-boy</link><guid isPermaLink="true">https://colindismuke.com/writing/a-good-boy</guid><pubDate>Wed, 18 Dec 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Enjoy this loop forever.
&lt;img src=&quot;https://colindismuke.com/9d793f671ab06dbb6bbffcc07c4c73e6/2019-12-18-one-shake.gif&quot; alt=&quot;One, the bloodhound, shaking.&quot;&gt;
Shot on &lt;strong&gt;iPhone 11 Pro Max&lt;/strong&gt;. Exported a bouncing &lt;strong&gt;live photo&lt;/strong&gt; as a &lt;code&gt;.mov&lt;/code&gt; file via &lt;strong&gt;AirDrop&lt;/strong&gt; to my MacBook Pro. Converted the &lt;code&gt;.mov&lt;/code&gt; file to a &lt;code&gt;.gif&lt;/code&gt; using &lt;strong&gt;Gif Brewery 3.app&lt;/strong&gt;.&lt;/p&gt;
</content:encoded></item><item><title>BCS Half Marathon 2019</title><link>https://colindismuke.com/writing/bcs-half-marathon-2019</link><guid isPermaLink="true">https://colindismuke.com/writing/bcs-half-marathon-2019</guid><description>A detailed look at my 2019 BCS Half Marathon race.</description><pubDate>Sun, 08 Dec 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;On Sunday I ran the &lt;a href=&quot;http://bcsmarathon.com/&quot;&gt;BCS Half Marathon&lt;/a&gt; for the 7th time (2011, 2013, 2014, 2015, 2017, 2018, 2019). I believe it’s the race that I’ve competed in for the most total years.&lt;/p&gt;
&lt;p&gt;Given that I have a decent size dataset, I thought I would examine my times and ranks over the years to see if I could glean any insight.&lt;/p&gt;
&lt;p&gt;The first chart below shows my overall finish time for each year. After &lt;strong&gt;just&lt;/strong&gt; breaking &lt;strong&gt;1:30&lt;/strong&gt; the first year I raced the half marathon, apparently I took the next year off and ran almost one and a half minutes slower in 2014.&lt;/p&gt;
&lt;p&gt;Not wanting my running career to be over before it started, I steadily reduced my time over the next three years, just breaking 1:26:00. Since then I’ve gotten slightly slower, mostly due to having twins born in 2017 and a few other commitments that the amount of time I had to train.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/static/images/bcs-half-marathon/1.png&quot; alt=&quot;Overall finish time by year&quot;&gt;&lt;/p&gt;
&lt;p&gt;The second chart has a similar shape to the first but slightly different behavior toward the end. Relative to all other runners, runners in my age group, and male runners, I’ve stayed quite consistent since my peak in 2017 despite my times getting marginally slower.&lt;/p&gt;
&lt;p&gt;I think this is mostly explained by a smaller field across all categories. The mean number of participants across overall, age group, and gender for 2013-2015 vs. 2017-2019 were 2,194 vs. 1,579, 130 vs. 69 (nice), and 756 vs. 608, respectively.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/static/images/bcs-half-marathon/2.png&quot; alt=&quot;Overall finish time by year versus other runners&quot;&gt;&lt;/p&gt;
&lt;p&gt;The BCS Half Marathon and Marathon are one of the best run races in Texas and support a &lt;a href=&quot;https://mercyproject.net/&quot;&gt;great cause&lt;/a&gt;. If you have the opportunity I encourage you to participate 🏃🏼‍♀️🏃🏼‍♂️&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;A few pictures in downtown Bryan, Texas:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/static/images/bcs-half-marathon/3.jpg&quot; alt=&quot;Picture of girls in Downtown Bryan, Texas&quot;&gt;
Camera: Sony α7 III Exposure: 1/160 Aperture: f/3.2 Focal Length: 55mm ISO: 100&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;img src=&quot;/static/images/bcs-half-marathon/4.jpg&quot; alt=&quot;Picture of girls in Downtown Bryan, Texas&quot;&gt;
Camera: Sony α7 III Exposure: 1/160 Aperture: f/3.2 Focal Length: 55mm ISO: 100&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;img src=&quot;/static/images/bcs-half-marathon/5.jpg&quot; alt=&quot;Picture of girls in Downtown Bryan, Texas&quot;&gt;
Camera: Sony α7 III Exposure: 1/160 Aperture: f/3.2 Focal Length: 55mm ISO: 100&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;img src=&quot;/static/images/bcs-half-marathon/6.jpg&quot; alt=&quot;Picture of girls in Downtown Bryan, Texas&quot;&gt;
Camera: Sony α7 III Exposure: 1/125 Aperture: f/2.8 Focal Length: 55mm ISO: 100&lt;/p&gt;
</content:encoded></item><item><title>Sunsets over the Bass Strait</title><link>https://colindismuke.com/writing/sunsets-over-the-bass-strait</link><guid isPermaLink="true">https://colindismuke.com/writing/sunsets-over-the-bass-strait</guid><description>Photographs taken while on the Ocean Monarch.</description><pubDate>Thu, 05 Dec 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;A few photographs taken while aboard the &lt;em&gt;Ocean Monarch&lt;/em&gt; off the southeast coast of Australia.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;img src=&quot;https://colindismuke.com/static/a7348cbfb2651bfde345edc83f944b61/93c39/2019-10-19-bass-strait-sunset.jpg&quot; alt=&quot;Sunset in the Bass Strait&quot;&gt;
Camera: iPhone 11 Pro Max
Exposure: 1/184
Aperture: f/2
Focal Length: 6mm (52mm equivalent)
ISO: 32&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;img src=&quot;https://colindismuke.com/static/f010fa20a07d5857eed4cb691a77c74c/38727/2019-10-23-bass-strait-sunset.jpg&quot; alt=&quot;Sunset in the Bass Strait&quot;&gt;
Camera: iPhone 11 Pro Max
Exposure: 1/324
Aperture: f/2
Focal Length: 6mm (52mm equivalent)
ISO: 20&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;img src=&quot;https://colindismuke.com/static/6b280c2cbec31294069dea9dd6af7cd4/25a56/2019-10-27-bass-strait-sunset-1.jpg&quot; alt=&quot;Sunset in the Bass Strait&quot;&gt;
Camera: iPhone 11 Pro Max
Exposure: 1/122
Aperture: f/2
Focal Length: 6mm (52mm equivalent)
ISO: 20&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;img src=&quot;https://colindismuke.com/static/a611858e81c4dac0c5439d2b11fe111b/38727/2019-10-27-bass-strait-sunset.jpg&quot; alt=&quot;Sunset in the Bass Strait&quot;&gt;
Camera: iPhone 11 Pro Max
Exposure: 1/122
Aperture: f/2
Focal Length: 6mm (52mm equivalent)
ISO: 32&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;img src=&quot;https://colindismuke.com/static/bda74127ea625a5a25e14782905e18c5/a3bc4/2019-10-29-bass-strait-sunset.webp&quot; alt=&quot;Sunset in the Bass Strait&quot;&gt;
Camera: iPhone 11 Pro Max
Exposure: 1/381
Aperture: f/2
Focal Length: 6mm (52mm equivalent)
ISO: 20&lt;/p&gt;
</content:encoded></item><item><title>Start Here</title><link>https://colindismuke.com/writing/start-here</link><guid isPermaLink="true">https://colindismuke.com/writing/start-here</guid><description>A good place to begin.</description><pubDate>Thu, 05 Dec 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Hi 👋&lt;/p&gt;
&lt;p&gt;My name is Colin Dismuke. I’m an ocean engineer, software developer, and collector of eclectic interests (just like it says on the front of the box!).&lt;/p&gt;
&lt;p&gt;This is my personal site where I drop notes, photographs, and audio about things that I am interested in. Generally speaking this website will capture thoughts I have about technology, photography, learning, business, and my endless obsession with learning and gear (great pair, right?).&lt;/p&gt;
&lt;p&gt;The entries on this page aren’t all complete thoughts—it’s a space for me to post what I like in a place that’s not controlled by anyone (except me).&lt;/p&gt;
&lt;p&gt;If you’d like to get in touch, you can find me &lt;a href=&quot;http://twitter.com/cpdis&quot;&gt;on Twitter&lt;/a&gt;, &lt;a href=&quot;http://github.com/cpdis&quot;&gt;on Github&lt;/a&gt;, &lt;a href=&quot;https://angel.co/colin-dismuke&quot;&gt;on AngelList&lt;/a&gt;, &lt;a href=&quot;https://www.linkedin.com/in/colindismuke&quot;&gt;on LinkedIn&lt;/a&gt;, and &lt;a href=&quot;https://www.instagram.com/cpdis/&quot;&gt;on Instagram&lt;/a&gt;. I’m &lt;strong&gt;cpdis&lt;/strong&gt; pretty much everywhere so, if you’re wondering, that’s probably me. I publish a &lt;a href=&quot;https://ofnote.substack.com/&quot;&gt;weekly newsletter&lt;/a&gt; about interesting things I find on the Internet.&lt;/p&gt;
&lt;p&gt;I joined &lt;a href=&quot;http://www.delmarsystems.com/site.php&quot;&gt;Delmar Systems&lt;/a&gt; in 2012 as a member of their engineering team and I’m moving to Perth, Australia in Spring 2020. I’ve done a lot of engineering work and traveled all over the world designing and deploying mooring systems. Recently, I’ve spent a lot more time &lt;a href=&quot;https://password.coffee/&quot;&gt;building&lt;/a&gt;&lt;a href=&quot;https://compound.careers/&quot;&gt;things&lt;/a&gt;&lt;a href=&quot;https://lambdanotes.app/&quot;&gt;on&lt;/a&gt; the &lt;a href=&quot;https://getpickem.co/&quot;&gt;internet&lt;/a&gt; and graduated from &lt;a href=&quot;https://lambdaschool.com/&quot;&gt;Lambda School’s&lt;/a&gt; fullstack web development program.&lt;/p&gt;
&lt;p&gt;Before that, I spent six years at &lt;a href=&quot;https://engineering.tamu.edu/ocean/&quot;&gt;Texas A&amp;amp;M&lt;/a&gt; getting a few degrees.&lt;/p&gt;
&lt;p&gt;If you like something you read here, please feel free to share it and let me know. It’s always nice to get feedback 😄&lt;/p&gt;
</content:encoded></item><item><title>Texas Laws Twitter Bot 👾</title><link>https://colindismuke.com/writing/texas-laws-twitter-bot</link><guid isPermaLink="true">https://colindismuke.com/writing/texas-laws-twitter-bot</guid><description>Building a bot that tweets out Texas legislation.</description><pubDate>Sun, 22 Jul 2018 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;Relating to prohibited acts for a physician or applicant for a medical license. &lt;a href=&quot;https://t.co/vDhn3JCBkk&quot;&gt;https://t.co/vDhn3JCBkk&lt;/a&gt; &amp;gt; &amp;mdash; Texas Laws (@laws_texas) &lt;a href=&quot;https://twitter.com/laws_texas/status/1026324400512094208?ref_src=twsrc%5Etfw&quot;&gt;August 6, 2018&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I created a bot, &lt;a href=&quot;https://mobile.twitter.com/laws_texas&quot;&gt;@law_texas&lt;/a&gt;, that tweets out Texas legislation that’s currently being considered every 30 minutes or so. Heavily inspired by &lt;a href=&quot;https://mobile.twitter.com/oxangiemarie&quot;&gt;@oxangiemarie&lt;/a&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;How this bot was built:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://glitch.com/&quot;&gt;Glitch&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://developer.twitter.com/content/developer-twitter/en.html&quot;&gt;Twitter API&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://openstates.org/&quot;&gt;OpenStates&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://uptimerobot.com/&quot;&gt;Uptime Robot&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;Links:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://mobile.twitter.com/laws_texas&quot;&gt;Laws_Texas Twitter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://glitch.com/~tx-laws&quot;&gt;Glitch&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>password.coffee ☕</title><link>https://colindismuke.com/writing/password-coffee</link><guid isPermaLink="true">https://colindismuke.com/writing/password-coffee</guid><description>Building a microsite for keeping track of coffeshop passwords.</description><pubDate>Sun, 15 Jul 2018 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I had a problem. I would go to a coffee shop, maybe &lt;a href=&quot;https://www.blacksmithhouston.com/&quot;&gt;Blacksmith&lt;/a&gt; or &lt;a href=&quot;https://www.instagram.com/morningstarhou/?hl=en&quot;&gt;Morningstar&lt;/a&gt;, sit down, and realize that somehow I did not have the WiFi password. As I discreetly looked around for the username and password I’d inevitably come to the conclusion that I should just ask the barista as I picked up my drink. Social interaction isn’t the worst thing in the world but it usually results in a finger pointing to a sign, in plain view, that I had somehow missed.&lt;/p&gt;
&lt;p&gt;In order to avoid the situation described above I could just keep a running list of places I’ve visited with their associated WiFi networks and passwords. Or I could scour Foursquare for the comment with the password in it (probably from two years ago). Or I could build a single page website with a nice little 🗺 that holds all the information I need.&lt;/p&gt;
&lt;h2&gt;&lt;strong&gt;Glitch&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Glitch was announced back in the December 2016. &lt;a href=&quot;https://anildash.com/&quot;&gt;Anil Dash&lt;/a&gt; (who at the time had just become CEO of &lt;a href=&quot;http://www.fogcreek.com/&quot;&gt;Fog Creek&lt;/a&gt;) describes it best:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Many geeks of my cohort came of age building things on the desktop using HyperCard or Visual Basic, or by using View Source in their browser to tweak HTML pages that they uploaded to Geocities. The web’s gotten a lot more mature and a lot more powerful, but the immediacy of that kind of creation has been lost. Today, even if you’re a skilled developer, the starting point you’re working from is usually a pile of unassembled parts.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Glitch lets you start from a working app (or bot, or site, or whatever) and then remix it into exactly the app of your dreams.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;It’s an excellent place to take someone else’s template and modify it or host a prototype of an idea you have.
&lt;img src=&quot;https://colindismuke.com/static/913bb2af9ebb86e5e542c46aee7235de/c61f8/glitch_website.jpg&quot; alt=&quot;Glitch homepage&quot;&gt;
I chose to remix an existing template that was setup to use &lt;a href=&quot;https://github.com/evanplaice/jquery-csv&quot;&gt;jquery-csv&lt;/a&gt; and a simple &lt;a href=&quot;https://www.mapbox.com/&quot;&gt;Mapbox&lt;/a&gt; map.&lt;/p&gt;
&lt;p&gt;I added some text, modified the CSS a little, adjusted the size of the map on the page, added extra JavaScript from Mapbox for additional functionality, and populated the map with a decent initial cohort of coffee shops.
&lt;img src=&quot;https://colindismuke.com/static/f10dec5afb759a7bbd40eee56b4fe7bf/7abfe/glitch_detail.jpg&quot; alt=&quot;Glitch detail&quot;&gt;
At each step, Glitch automatically updates your site (&lt;code&gt;insert-whimsical-name.glitch.me&lt;/code&gt;) so you can see what you’re changing in real-time. This removes the headache of setting up a local testing environment and allows you to just build something 💯&lt;/p&gt;
&lt;h2&gt;&lt;strong&gt;Mapbox&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;I’ve always been impressed with Mapbox. Like with most of the top-tier internet companies started in the last decade, they’ve taken something would be very difficult for individual developers to implement over and over and simplified it down to a few short code snippets on a web site. In addition, &lt;a href=&quot;https://www.mapbox.com/mapbox-studio/&quot;&gt;Mapbox Studio&lt;/a&gt; allows anyone to infinitely customize their maps.&lt;/p&gt;
&lt;p&gt;I experimented with several different map styles but ultimately returned to the standard Streets style. It looks most similar to the Google and Apple Maps style and the usability is 👌🏼.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-js&quot;&gt;// Details on the Mapbox API here: https://www.mapbox.com/mapbox-gl-js/api/#map
var map = new mapboxgl.Map({
  container: &amp;#39;map&amp;#39;,
  style: &amp;#39;mapbox://styles/mapbox/streets-v9&amp;#39;,
  zoom: 13
});
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I wanted zoom controls to overlay the map. Zooming in and out of a map on a mobile webpage is sometimes a little difficult and controls alleviate this slightly.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-js&quot;&gt;// Add zoom and rotation controls to the map.
var nav = new mapboxgl.NavigationControl();
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;In case the map is not automatically centered on the user, a geolocation button was also added.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-js&quot;&gt;map.on(&amp;#39;load&amp;#39;, updateGeocoderProximity); // set proximity on map load
map.on(&amp;#39;moveend&amp;#39;, updateGeocoderProximity); // and then update proximity each time the map moves
function updateGeocoderProximity() {
  // proximity is designed for local scale, if the user is looking at the whole world,
  // it doesn&amp;#39;t make sense to factor in the arbitrary centre of the map
  if (map.getZoom() &amp;gt; 9) {
    var center = map.getCenter().wrap(); // ensures the longitude falls within -180 to 180 as the Geocoding API doesn&amp;#39;t accept values outside this range
    geocoder.setProximity({ longitude: center.lng, latitude: center.lat });
  } else {
    geocoder.setProximity(null);
  }
}
// Add geolocate control to the map.
var geo = new mapboxgl.GeolocateControl({
  positionOptions: {
    enableHighAccuracy: true
  },
  trackUserLocation: true
});
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Finally, I added a search box because I would expect that on any map that I’m viewing. In the future I would like to add driving or walking directions from the current user location ☑️&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-js&quot;&gt;// Add search box
var geocoder = new MapboxGeocoder({
  accessToken: mapboxgl.accessToken
});
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;&lt;strong&gt;Netlify&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;I bought the &lt;a href=&quot;https://password.coffee/&quot;&gt;password.coffee&lt;/a&gt; domain on &lt;a href=&quot;https://domains.google/&quot;&gt;Google Domains&lt;/a&gt; early on and knew that I wanted to eventually move off of Glitch. I briefly considered hosting on &lt;a href=&quot;https://linode.com/&quot;&gt;Linode&lt;/a&gt; but decided the easiest route was using Github as the server. It’s relatively simple to set up a custom domain using Github Pages but there are always a few quirks.&lt;/p&gt;
&lt;p&gt;I don’t know when I first came across &lt;a href=&quot;https://www.netlify.com/&quot;&gt;Netlify&lt;/a&gt; but for whatever reason I came back to it for this. It was far better, faster, and easier than I remembered. Provided you have all the necessary files to build a functioning website, the process of setting up continuous deployment takes under a minute. Really incredible for a site hosted on GitHub, Gitlab, or Bitbucket.&lt;/p&gt;
&lt;p&gt;It takes three screens to get set up. You connect your Github (in my case) account and choose the correct &lt;a href=&quot;https://github.com/cpdis/password-coffee&quot;&gt;repository&lt;/a&gt;.
&lt;img src=&quot;https://colindismuke.com/static/d9bbd72b7327f60ea5e38590ceb028da/7ae69/new_site_netlify.jpg&quot; alt=&quot;Create a new site on Netlify&quot;&gt;
Then you select any build options, like &lt;code&gt;jekyll build&lt;/code&gt; for Jekyll, and click &lt;em&gt;Deploy Site&lt;/em&gt;.
&lt;img src=&quot;https://colindismuke.com/static/f0e6348c32d4b5f5e07eacafb2dba32a/f220b/deploy_site_setup_netlify.jpg&quot; alt=&quot;Deploy site using Netlify&quot;&gt;
It took just a few more minutes to setup the custom domain, change nameservers, and enable HTTPS by default. Most of that time was waiting for DNS to propogate.&lt;/p&gt;
&lt;h2&gt;&lt;strong&gt;End&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Overall, I’m pretty satisfied with this first iteration. If you’d like to check it out, just go to &lt;a href=&quot;https://password.coffee/&quot;&gt;https://password.coffee&lt;/a&gt;. And if you want to update an existing location or add a new one you can do that &lt;a href=&quot;https://passwordcoffee.typeform.com/to/tXXeRP&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
</content:encoded></item><item><title>Return</title><link>https://colindismuke.com/writing/return</link><guid isPermaLink="true">https://colindismuke.com/writing/return</guid><description>Planning my return to machine learning education after a hiatus.</description><pubDate>Thu, 28 Jun 2018 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;It has become readily apparent to anyone following this blog that my year of machine learning experiments has been an unquestioned success.&lt;/p&gt;
&lt;p&gt;😂😭😂&lt;/p&gt;
&lt;p&gt;Obviously, that’s not true. After the first few weeks the whole project went off the rails and I never recovered. Looking back the idea was a little ambitious for a few reasons:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;I have two small children that are at the height of their dependence on mom and dad.&lt;/li&gt;
&lt;li&gt;I have a job that sometimes requires me to travel, often to places with very slow internet, for a couple weeks at a time.&lt;/li&gt;
&lt;li&gt;I have only a slightly better grasp of machine learning than a novice.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The combination made it difficult to do anything meaningful over a short timespan (like a week or two).&lt;/p&gt;
&lt;p&gt;The bad news is that the #yearofML has come to an end after only a few experiments. The good news is that I decided I needed a more solid foundation before attempting something like #yearofML again.&lt;/p&gt;
&lt;p&gt;I’m doing two things to build that foundation:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Attending &lt;a href=&quot;https://lambdaschool.com/&quot;&gt;Lambda School&lt;/a&gt; part time for the next year or so.&lt;/li&gt;
&lt;li&gt;Working on small personal projects.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The rationale behind Lambda School is the topic of a future post but suffice to say I really believe in their mission.&lt;/p&gt;
&lt;p&gt;I think releasing personal projects in the 🌎 serves a different but complementary purpose. The best way to learn is by doing (something that figures very heavily into Lambda School), and the best way to get better is to let others see what you’ve done. That’s the whole premise of &lt;a href=&quot;https://www.indiehackers.com/&quot;&gt;Indie Hackers&lt;/a&gt;. With tools like &lt;a href=&quot;https://glitch.com/&quot;&gt;Glitch&lt;/a&gt; it’s easier than ever to prototype an idea or remix someone else’s. I feel like I’m 5-10 years later to this party but, like with my &lt;a href=&quot;https://ofnote.substack.com/&quot;&gt;newsletter&lt;/a&gt;, the best time to start is today.&lt;/p&gt;
&lt;p&gt;I’m optimistic about where I’ll be a year from now and looking forward to the journey. Onward.&lt;/p&gt;
</content:encoded></item><item><title>Breaking a CAPTCHA in 15 Minutes</title><link>https://colindismuke.com/writing/breaking-a-captcha-in-15-minutes</link><guid isPermaLink="true">https://colindismuke.com/writing/breaking-a-captcha-in-15-minutes</guid><description>How to break a CAPTCHA using Python, OpenCV, Keras, and Tensorflow.</description><pubDate>Thu, 15 Feb 2018 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/static/images/captcha/header.jpg&quot; alt=&quot;Breaking a CAPTCHA&quot;&gt;&lt;/p&gt;
&lt;p&gt;So, this took me a lot longer to get to than I was planning on 🤦🏼‍♂️ Despite my best intentions and greatest ambitions, life continues to happen and usually take priority over projects I&amp;#39;m doing on the side. The irony is that this project is relatively simple, both &lt;a href=&quot;https://twitter.com/ageitgey&quot;&gt;Adam Geitgey&amp;#39;s&lt;/a&gt; original project/code and my implementation of it.&lt;/p&gt;
&lt;p&gt;For this project, and others like it, I&amp;#39;ve decided the best way to learn (and present what I&amp;#39;ve learned) is to go through the code, mostly line by line and explain what is going on. There are definitely opportunities to modify/improve the original code, use different training data, and test out different neural network implementations, but in the interest of time I&amp;#39;m just going to leave everything as is.&lt;/p&gt;
&lt;p&gt;The tools being used for this project are Python 3, OpenCV, Keras, Tensorflow. Pretty much your standard deep learning stack with OpenCV being used for image augmentation and manipulation. OpenCV was used extensively in the &lt;a href=&quot;https://github.com/cpdis/P5_CarND_Vehicle_Detection_and_Tracking&quot;&gt;first term&lt;/a&gt; of the Udacity Self Driving Car Nanodegree.&lt;/p&gt;
&lt;p&gt;The CAPTCHA training data was &amp;quot;collected&amp;quot; by hacking around with the WordPress CAPTCHA plug-in and outputting the CAPTCHA images along with their correct filenames.&lt;/p&gt;
&lt;p&gt;It&amp;#39;s definitely possible to train a neural network on an image containing more than one letter/numeral, however, if it&amp;#39;s possible to split them up the accuracy should increase and the training time decrease. This is exactly what was done with OpenCV in this project 👌🏼&lt;/p&gt;
&lt;p&gt;The process for extracting the single letters, training the neural network, and using the model to solve CAPTCHAs is straightforward.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Extract single letters from the CAPTCHA images.&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;python extract_single_letters_from_captchas.py
&lt;/code&gt;&lt;/pre&gt;
&lt;ol start=&quot;2&quot;&gt;
&lt;li&gt;Train the neural network to recognize single letters.&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;python train_model.py
&lt;/code&gt;&lt;/pre&gt;
&lt;ol start=&quot;3&quot;&gt;
&lt;li&gt;Use the model to solve the CAPTCHAs based on the trained model.&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;python solve_captchas_with_model.py
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I&amp;#39;ll go through each of these steps, explain the code and any problems that I encountered, and show the results.&lt;/p&gt;
&lt;h2&gt;⛏ Extract single letters for the CAPTCHA images&lt;/h2&gt;
&lt;p&gt;The first step in this process is leveraging the power of OpenCV to split the CAPTCHA images into separate letters and then augment the resulting letters for optimal learning. In order to process all of the images, we need a list of all of the images in &lt;code&gt;CAPTCHA_IMAGE_FOLDER&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;captcha_image_files = glob.glob(os.path.join(CAPTCHA_IMAGE_FOLDER, &amp;quot;*&amp;quot;))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;glob&lt;/code&gt; finds all the pathnames that match a specified pattern while &lt;code&gt;join&lt;/code&gt; joins together two or more pathname components. The &lt;code&gt;*&lt;/code&gt; is equivalent to all files in the directory. So, putting that all together, &lt;code&gt;glob&lt;/code&gt; is getting all of the pathnames inside of the &lt;code&gt;CAPTCHA_IMAGE_FOLDER&lt;/code&gt; and saving them to the list &lt;code&gt;captcha_image_files&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Next, we loop over all of the images and perform the image augmentation. &lt;code&gt;enumerate()&lt;/code&gt; is used so that each of the image filenames is assigned an index. In this case, the index is only used to show the progress of the image processing.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;for (i, captcha_image_file) in enumerate(captcha_image_files):
    print(&amp;quot;[INFO] processing image {}/{}&amp;quot;.format(i + 1, len(captcha_image_files)))

    filename = os.path.basename(captcha_image_file)
    captcha_correct_text = os.path.splitext(filename)[0]

    image = cv2.imread(captcha_image_file)
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    gray = cv2.copyMakeBorder(gray, 8, 8, 8, 8, cv2.BORDER_REPLICATE)
    thresh = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY_INV | cv2.THRESH_OTSU)[1]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Each image is loaded using &lt;code&gt;cv2.imread()&lt;/code&gt; and converted into grayscale with &lt;code&gt;cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)&lt;/code&gt;. An 8 pixel border is added around each letter using &lt;code&gt;cv2.copyMakeBorder(gray, 8, 8, 8, 8, cv2.BORDER_REPLICATE)&lt;/code&gt; so that the image isn&amp;#39;t constrained to the edges of the letters. &lt;code&gt;cv2.BORDER_REPLICATE&lt;/code&gt; replicates the pixels on the edge of the image to create the border. There are &lt;a href=&quot;https://docs.opencv.org/3.1.0/d3/df2/tutorial_py_basic_ops.html&quot;&gt;several&lt;/a&gt; other options for creating a border in OpenCV as well. The final step before isolating the individual letters is &lt;em&gt;thresholding&lt;/em&gt; the full image using &lt;code&gt;cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY_INV | cv2.THRESH_OTSU)[1]&lt;/code&gt;. Thresholding makes it easier to find the continuous regions that make up each letter.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;contours = cv2.findContours(thresh.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
contours = contours[0] if imutils.is_cv2() else contours[1]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Conveniently, OpenCV has a built-in function, &lt;code&gt;findcontours()&lt;/code&gt;, that finds continuous regions of pixels of the same color. &lt;code&gt;cv2.RETR_EXTERNAL&lt;/code&gt; is a flag used to only extract the outer contours of the region while &lt;code&gt;cv2.CHAIN_APPROX_SIMPLE&lt;/code&gt; removes all redundant points and compresses the contour, saving memory.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;for contour in contours:
    (x, y, w, h) = cv2.boundingRect(contour)

    if w / h &amp;gt; 1.25:
        half_width = int(w / 2)
        letter_image_regions.append((x, y, half_width, h))
        letter_image_regions.append((x + half_width, y, half_width, h))
    else:
        letter_image_regions.append((x, y, w, h))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The next snippet checks to make sure that the letters aren&amp;#39;t conjoined. This happens some times in CAPTCHAs when the letters are very close to each other. Easy for a human to recognize, a little more complicated when you&amp;#39;re using computer vision. To get around this problem, the height and width of the contour are examined and those that have a width to height ratio greater than 1.25 are split down the middle.&lt;/p&gt;
&lt;p&gt;The detected letter images are then sorted using &lt;code&gt;letter_image_regions = sorted(letter_image_regions, key=lambda x: x[0])&lt;/code&gt;. &lt;code&gt;lambda&lt;/code&gt; effectively creates an inline function instead of a named function that returns the sorted first elements of the array.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;def element_0(x):
    return x[0]

sorted(letter_image_regions, key=element_0)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The above is reduced to one line and reduces the code complexity.&lt;/p&gt;
&lt;p&gt;Finally, each of the letters is saved as a single image. &lt;code&gt;zip()&lt;/code&gt; returns a list of tuples, in this case the &lt;code&gt;letter_image_regions&lt;/code&gt; and the &lt;code&gt;captcha_correct_text&lt;/code&gt;. Each different letter is saved to its own folder so that they are easily accesible and organized.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;for letter_bounding_box, letter_text in zip(letter_image_regions, captcha_correct_text):
        x, y, w, h = letter_bounding_box

        letter_image = gray[y - 2:y + h + 2, x - 2:x + w + 2]

        save_path = os.path.join(OUTPUT_FOLDER, letter_text)

        if not os.path.exists(save_path):
            os.makedirs(save_path)

        count = counts.get(letter_text, 1)
        p = os.path.join(save_path, &amp;quot;{}.png&amp;quot;.format(str(count).zfill(6)))
        cv2.imwrite(p, letter_image)
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;🏋🏼‍ Train the neural network&lt;/h2&gt;
&lt;p&gt;Since recognizing letters and numbers is a relatively simple tasked compared to more complex images like dogs, cats, and roads; a complex neural network architecture isn&amp;#39;t needed. A simple convolutional neural network with two convolutional layers and two fully connected layers is more than sufficient.&lt;/p&gt;
&lt;p&gt;Before the network is trained a few things need to be done. The individual letter images are converted to grayscale, resized with consistent dimensions (20x20 in this case), and a third channel (color) needs to be added to avoid Keras errors. The label for each image is then created from the name of the folder that the image was located in. We end up with &lt;code&gt;data&lt;/code&gt; and &lt;code&gt;labels&lt;/code&gt; arrays that we will use for training.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;for image_file in paths.list_images(LETTER_IMAGES_FOLDER):
    image = cv2.imread(image_file)
    image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    image = resize_to_fit(image, 20, 20)
    image = np.expand_dims(image, axis=2)

    label = image_file.split(os.path.sep)[-2]

    data.append(image)
    labels.append(label)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The image data is then &lt;a href=&quot;https://en.wikipedia.org/wiki/Normalization_(image_processing)&quot;&gt;normalized&lt;/a&gt; so that the pixel intensity is between 0 and 1.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;data = np.array(data, dtype=&amp;quot;float&amp;quot;) / 255.0
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The &lt;code&gt;sklearn&lt;/code&gt; function &lt;code&gt;train_test_split&lt;/code&gt; is then used to create training and test sets. &lt;code&gt;test_size&lt;/code&gt; refers to the proportion of the data that is used in the test split.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;(X_train, X_test, Y_train, Y_test) = train_test_split(data, labels, test_size=0.25, random_state=0)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Since there are 32 different letters and numbers being classified standard one-hot encoding won&amp;#39;t work. This is remedied using the &lt;code&gt;sklearn&lt;/code&gt; function &lt;a href=&quot;http://scikit-learn.org/dev/modules/generated/sklearn.preprocessing.LabelBinarizer.html&quot;&gt;&lt;code&gt;LabelBinarizer&lt;/code&gt;&lt;/a&gt;. It allows you to have one regressor or binary classifier per class (letter or number).&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;lb = LabelBinarizer().fit(Y_train)
Y_train = lb.transform(Y_train)
Y_test = lb.transform(Y_test)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Using Keras the neural network only take a few lines of code to implement. A &lt;code&gt;Sequential&lt;/code&gt; model in Keras is simply a linear stack of layers. In order, the first &lt;code&gt;Conv2D&lt;/code&gt; layer consists of 20 filters, a &lt;code&gt;5x5&lt;/code&gt; filter window, &lt;code&gt;same&lt;/code&gt; padding (which means that output size is the same as the input size and requires the filter window to slip outside of the input, requiring padding), input shape of 20x20x1 (since the images are 20 pixels square and have one color channel), and use the &lt;code&gt;relu&lt;/code&gt; activation (rectified linear unit). The &lt;code&gt;MaxPooling2D&lt;/code&gt; layer uses the most common form which downsamples every depth slice in the input by 2 along both the width and height axes, discarding 75% of the activations. The second &lt;code&gt;Conv2D&lt;/code&gt; layer uses the same parameters but increases the number of filters and the second &lt;code&gt;MaxPooling2D&lt;/code&gt; layer is the same as the first pooling layer. The &lt;code&gt;Flatten&lt;/code&gt; and &lt;code&gt;Dense&lt;/code&gt; layers create a hidden layer with 500 nodes. The final &lt;code&gt;Dense&lt;/code&gt; layer is the output with 32 nodes for each of the possible letters and numbers.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;model = Sequential()
model.add(Conv2D(20, (5, 5), padding=&amp;quot;same&amp;quot;, input_shape=(20, 20, 1), activation=&amp;quot;relu&amp;quot;))
model.add(MaxPooling2D(pool_size=(2, 2), strides=(2, 2)))
model.add(Conv2D(50, (5, 5), padding=&amp;quot;same&amp;quot;, activation=&amp;quot;relu&amp;quot;))
model.add(MaxPooling2D(pool_size=(2, 2), strides=(2, 2)))
model.add(Flatten())
model.add(Dense(500, activation=&amp;quot;relu&amp;quot;))
model.add(Dense(32, activation=&amp;quot;softmax&amp;quot;))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Graphically, the neural network looks like this:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/static/images/captcha/1.png&quot; alt=&quot;Neural network model&quot;&gt;&lt;/p&gt;
&lt;p&gt;The model is compiled in a single line using Keras. There are many types of &lt;a href=&quot;https://keras.io/losses/&quot;&gt;losses&lt;/a&gt; and &lt;a href=&quot;https://keras.io/optimizers/&quot;&gt;optimizers&lt;/a&gt; but cross entropy and the Adam optimizer are two of the most commonly used.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;model.compile(loss=&amp;quot;categorical_crossentropy&amp;quot;, optimizer=&amp;quot;adam&amp;quot;, metrics=[&amp;quot;accuracy&amp;quot;])`
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Finally, the model is trained on the training data and validated on the test data that was created earlier.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;model.fit(X_train, Y_train, validation_data=(X_test, Y_test), batch_size=32, epochs=10, verbose=1)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;After 10 epochs the accuracy is almost 100%, even after 1 epoch the accuracy is 99.5%. Given that this is a relatively simple classification task even higher accuracy is definitely achievable. Training on the command line looked like this:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;Using TensorFlow backend.
Train on 29058 samples, validate on 9686 samples
Epoch 1/10
29058/29058 [==============================] - 41s 1ms/step - loss: 0.2413 - acc: 0.9413 - val_loss: 0.0226 - val_acc: 0.9950
Epoch 2/10
29058/29058 [==============================] - 44s 2ms/step - loss: 0.0160 - acc: 0.9963 - val_loss: 0.0140 - val_acc: 0.9968
Epoch 3/10
29058/29058 [==============================] - 46s 2ms/step - loss: 0.0062 - acc: 0.9983 - val_loss: 0.0081 - val_acc: 0.9977
Epoch 4/10
29058/29058 [==============================] - 40s 1ms/step - loss: 0.0052 - acc: 0.9986 - val_loss: 0.0054 - val_acc: 0.9988
Epoch 5/10
29058/29058 [==============================] - 38s 1ms/step - loss: 0.0022 - acc: 0.9993 - val_loss: 0.0115 - val_acc: 0.9975
Epoch 6/10
29058/29058 [==============================] - 37s 1ms/step - loss: 0.0069 - acc: 0.9985 - val_loss: 0.0076 - val_acc: 0.9979
Epoch 7/10
29058/29058 [==============================] - 39s 1ms/step - loss: 0.0026 - acc: 0.9994 - val_loss: 0.0129 - val_acc: 0.9971
Epoch 8/10
29058/29058 [==============================] - 38s 1ms/step - loss: 0.0050 - acc: 0.9984 - val_loss: 0.0177 - val_acc: 0.9947
Epoch 9/10
29058/29058 [==============================] - 41s 1ms/step - loss: 0.0011 - acc: 0.9997 - val_loss: 0.0047 - val_acc: 0.9991
Epoch 10/10
29058/29058 [==============================] - 42s 1ms/step - loss: 2.3045e-05 - acc: 1.0000 - val_loss: 0.0038 - val_acc: 0.9991
The elapsed training time is:  429.6541633605957
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The total training time was 430 seconds or 7 minutes and 10 seconds.&lt;/p&gt;
&lt;h2&gt;🤓 Solve the CAPTCHAs&lt;/h2&gt;
&lt;p&gt;Now that the model is trained the last step is actually looking at the CAPTCHA images and classifying the letters. The trained model data is loaded and 10 random CAPTCHA files are chosen.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;with open(MODEL_LABELS_FILENAME, &amp;quot;rb&amp;quot;) as f:
    lb = pickle.load(f)

model = load_model(MODEL_FILENAME)

captcha_image_files = list(paths.list_images(CAPTCHA_IMAGE_FOLDER))
captcha_image_files = np.random.choice(captcha_image_files, size=(11,), replace=False)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;model.predict()&lt;/code&gt; outputs a one-hot encoded prediction of what the letter or number should be classified as. The one-hot encoded output is then transformed back to a nornal letter using &lt;code&gt;lb.inverse_transform()&lt;/code&gt;. &lt;code&gt;inverse_transform()&lt;/code&gt; is a method of LabelBinarizer that allows you to transform binary labels back to multi-class labels.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;prediction = model.predict(letter_image)

letter = lb.inverse_transform(prediction)[0]
predictions.append(letter)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;/static/images/captcha/2.jpg&quot; alt=&quot;CAPTCHA text&quot;&gt;&lt;/p&gt;
&lt;p&gt;In addition to the prediction being output to the command line, the CAPTCHA image with the predicted letters/numbers is shown using &lt;code&gt;cv2.imshow()&lt;/code&gt;. &lt;code&gt;cv2.waitKey()&lt;/code&gt; either waits for a keystroke to advance to the next image or a specified amount of time (500-ms in this case).&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;cv2.imshow(&amp;quot;Output&amp;quot;, output)
cv2.waitKey(500) # Wait for a specified amount of time (in ms) before moving to the next image
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;/static/images/captcha/3.jpg&quot; alt=&quot;Recognized CAPTCHA text&quot;&gt;&lt;/p&gt;
&lt;p&gt;The slightly modified code, resources, and notes for this project are located &lt;a href=&quot;https://github.com/cpdis/Experiments/tree/master/2_Breaking_CAPTCHA&quot;&gt;here&lt;/a&gt;. The original code and data can be downloaded &lt;a href=&quot;https://s3-us-west-2.amazonaws.com/mlif-example-code/solving_captchas_code_examples.zip&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
</content:encoded></item><item><title>Setting up my Machine Learning Environment</title><link>https://colindismuke.com/writing/setting-up-my-machine-learning-environment</link><guid isPermaLink="true">https://colindismuke.com/writing/setting-up-my-machine-learning-environment</guid><description>Mise en place is important for your digital workspace too.</description><pubDate>Sat, 27 Jan 2018 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;As I mentioned in my last post, I unfortunately lost my machine learning environment that I had set up on my laptop. Fortunately, though, getting up and running with Python, Keras, and Tensorflow is quite easy. All of the individual packages that you might want to use for machine/deep learning can be downloaded, cloned, acquired individually but it seems like the standard (and easiest for beginners) method is to use a distribution like &lt;a href=&quot;https://www.continuum.io/downloads&quot;&gt;Anaconda&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Anaconda is a leading open data science platform that&amp;#39;s powered by Python. I&amp;#39;ll be using the open source version but there&amp;#39;s also an &lt;a href=&quot;https://www.anaconda.com/enterprise/&quot;&gt;enterprise&lt;/a&gt; distribution as well. The major benefit of using a distribution is that out of the box it includes over 100 (read &lt;em&gt;most&lt;/em&gt;) of the most popular Python and R packages for data science.&lt;/p&gt;
&lt;h2&gt;Creating a conda environment&lt;/h2&gt;
&lt;p&gt;Also included with Anaconda is a versatile package manager call &lt;code&gt;conda&lt;/code&gt;. Like &lt;a href=&quot;https://brew.sh/&quot;&gt;Homebrew&lt;/a&gt;, it quickly installs, runs, and updates packages and their dependencies. You can also use it to search the package index, create new environments (the main point of this post), and install packages into existing environments.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;conda&lt;/code&gt; environments are collections of packages with specific versions that can be used to ensure the portability of Python code. This is useful when collaborating with someone or using two different versions of a package simultaneously. I created two machine learning environments, &lt;code&gt;ML2&lt;/code&gt; and &lt;code&gt;ML3&lt;/code&gt;. Based off of Python 2.7.14 and 3.6.4, respectively. It only took a few simple steps to create both of these environments.&lt;/p&gt;
&lt;p&gt;In Terminal type:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;conda create -n ML2 python=2.7.14 pandas scikit-learn jupyter matplotlib
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;and hit &lt;code&gt;Enter&lt;/code&gt;. When prompted, answer &lt;code&gt;y&lt;/code&gt; and you should see this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# To activate this environment, use:
# &amp;gt; source activate ML2
#
# To deactivate this environment, use:
# &amp;gt; source deactivate ML2
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Activating the environment is as simple as typing:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;source activate ML2
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can see that the environment is activated because the name &lt;code&gt;(ML2)&lt;/code&gt; is prepended to your prompt.&lt;/p&gt;
&lt;h2&gt;Install Tensorflow and Keras&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://www.tensorflow.org/&quot;&gt;TensorFlow&lt;/a&gt; is an open source software library for numerical computation using data flow graphs. The way that it is built allows it to be used on one or more CPUs, GPUs, servers, or phones with a single API. It was originally developed by researchers and engineers on the Google Brain Team.&lt;/p&gt;
&lt;p&gt;To install TensorFlow, make sure the environment you want to use is active, in this case &lt;code&gt;ML2&lt;/code&gt; and type:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;pip install tensorflow
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The other super useful package is &lt;a href=&quot;https://keras.io/&quot;&gt;Keras&lt;/a&gt;, a high-level neural network specification implemented in Python that runs on top of TensorFlow. It makes creating a model much simpler than using TensorFlow which is paramount for fast experimentation.&lt;/p&gt;
&lt;p&gt;To install Keras, make sure the environment you want to use is active, in this case &lt;code&gt;ML2&lt;/code&gt; and type:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;pip install keras
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Test it!&lt;/h2&gt;
&lt;p&gt;To make sure everything is running smoothly type:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ipython
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;which will bring up the iPython console and display:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Python 2.7.13 |Continuum Analytics, Inc.| (default, Dec 20 2016, 23:05:08)
Type &amp;quot;copyright&amp;quot;, &amp;quot;credits&amp;quot; or &amp;quot;license&amp;quot; for more information.

IPython 5.3.0 -- An enhanced Interactive Python.
?         -&amp;gt; Introduction and overview of IPython&amp;#39;s features.
%quickref -&amp;gt; Quick reference.
help      -&amp;gt; Python&amp;#39;s own help system.
object?   -&amp;gt; Details about &amp;#39;object&amp;#39;, use &amp;#39;object??&amp;#39; for extra details. details.

In [1]:
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Import TensorFlow and Keras:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;import tensorflow, keras
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;which should result in the following output:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Using TensorFlow backend.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;These aren’t the only tools that I’ll be using but they are a solid base. Distributions such as Anaconda and package managers like conda, pip, and homebrew make adding new tools extremely easy.&lt;/p&gt;
</content:encoded></item><item><title>Lost Environment and FloydHub</title><link>https://colindismuke.com/writing/lost-environment-and-floydhub</link><guid isPermaLink="true">https://colindismuke.com/writing/lost-environment-and-floydhub</guid><description>A tale of woe and an introduction to Floydhub.</description><pubDate>Wed, 24 Jan 2018 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;It turns out that at some point in the past few months the environment that I had setup for machine learning (&lt;a href=&quot;https://www.tensorflow.org&quot;&gt;Tensorflow&lt;/a&gt;, &lt;a href=&quot;https://keras.io&quot;&gt;Keras&lt;/a&gt;, &lt;a href=&quot;http://opencv-python-tutroals.readthedocs.io/en/latest/&quot;&gt;OpenCV&lt;/a&gt;, etc.) was somehow lost in the ether.&lt;/p&gt;
&lt;p&gt;How could this happen you might ask? I used &lt;a href=&quot;https://www.anaconda.com&quot;&gt;Anaconda&lt;/a&gt; to manage the different environments I had (&lt;code&gt;source activate myenv&lt;/code&gt; and &lt;code&gt;source deactivate myenv&lt;/code&gt;) and I recently did a clean install of Python to clear up some issues I was having with regard to &lt;a href=&quot;https://www.udacity.com/course/self-driving-car-engineer-nanodegree--nd013&quot;&gt;Udacity’s Self Driving Car Nanodegree&lt;/a&gt;. Because of this, when I went to start on the project for this week, &lt;a href=&quot;https://medium.com/@ageitgey/how-to-break-a-captcha-system-in-15-minutes-with-machine-learning-dbebb035a710&quot;&gt;Breaking a CAPTCHA in 15 minutes&lt;/a&gt;, I realized that none of the packages I had previously installed were there. Not good. Fortunately, I like starting things from scratch and this gives me the opportunity to write a post about the way that I setup my environment.&lt;/p&gt;
&lt;p&gt;While I was researching how different people have set up their machine learning environments I came across FloydHub. FloydHub is one of the newish class of platform-as-a-service (PaaS) services. They basically allow you to train and deploy deep learning models in the cloud with just a few commands and parameters on the command line. Most of the popular frameworks are available (&lt;code&gt;floyd run --env tensorflow&lt;/code&gt;) and a range of hardware is available at relatively affordable prices at per second rates.&lt;/p&gt;
&lt;p&gt;One of the highlights of FloydHub (setting aside making the whole process almost frictionless) is the ability to create a Jupyter notebook for the project when you’re starting your model. Follow along and see how easy it is to get a model running:&lt;/p&gt;
&lt;h3&gt;1. Create a FloydHub account&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.floydhub.com/signup&quot;&gt;Sign up&lt;/a&gt; on FloydHub&lt;/li&gt;
&lt;li&gt;Install the floyd CLI on your local machine through these two &lt;a href=&quot;https://www.floydhub.com/welcome&quot;&gt;steps&lt;/a&gt;:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;$ pip install -U floyd-cli

$ floyd login
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Upon logging in, you will need to copy and paste a private key into the command line that authenticates your machine with the service. FloydHub provides a nice UX for copying that 🔑 during the account creation process—it’s the little things that make you like a product.&lt;/p&gt;
&lt;h3&gt;2. Clone this project to your local machine&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;$ cd /path/to/your-project-dir
$ floyd clone experiments/
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;3. Create your project version on FloydHub&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.floydhub.com/projects/create&quot;&gt;Create a project&lt;/a&gt; on FloydHub and then sync the cloned repository with your new project:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;$ floyd init your-project-name
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;4. Run the project through a Jupyter notebook&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;--env&lt;/code&gt; flag specifies the environment that this project should run on.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;--data&lt;/code&gt; flag specifies the dataset that should be available in the &lt;code&gt;/data&lt;/code&gt; directory and the models should be available at the &lt;code&gt;/models&lt;/code&gt; directory&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;--mode&lt;/code&gt; flag specifies that the job should create a Jupyter notebook.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;--gpu&lt;/code&gt; flag specifies whether the GPU should be used to accelerate the training process.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;floyd run \
  --env tensorflow:py2 \
  --data experiments/datasets/🐶/2:data \
  --data experiments/datasets/🐶-models/1:models \
  --mode jupyter \
  --gpu
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Once the job is started, the Jupyter notebook will open in your browser and you are ready to go!&lt;/p&gt;
&lt;p&gt;The next post will be about setting up my machine learning environment followed by the project that I was tentatively supposed to be finished with a few days ago.&lt;/p&gt;
</content:encoded></item><item><title>PathNet - Evolution Channels Gradient Descent in Super Neural Networks</title><link>https://colindismuke.com/writing/pathnet-evolution-channels-gradient-descent-in-super-neural-networks</link><guid isPermaLink="true">https://colindismuke.com/writing/pathnet-evolution-channels-gradient-descent-in-super-neural-networks</guid><description>A literature review of PathNet.</description><pubDate>Tue, 16 Jan 2018 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;em&gt;Note: Inevitably, this past week was much more busy than planned. As such, I didn’t get to explore much more than the paper itself and the Github repository. I’d rather not do the minimum amount of work to achieve a goal but in this case it’s the best I can do.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I first came across PathNet in Azeem Azhar’s essential &lt;a href=&quot;https://www.getrevue.co/profile/azeem?utm_campaign=Issue&amp;utm_content=forwarded&amp;utm_medium=email&amp;utm_source=Azeem+Azhar%3A+The+Exponential+View&quot;&gt;The Exponential View&lt;/a&gt; newsletter almost exactly a year ago. DeepMind was causing a stir in the AI community because PathNet was a plausible precursor to an architecture that could support artificial general intelligence (AGI). PathNet combines modular deep learning, meta-learning, and reinforcement learning and is summarized this way in the introduction to the &lt;a href=&quot;https://arxiv.org/abs/1701.08734&quot;&gt;paper&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;For artificial general intelligence (AGI) it would be efficient if multiple users trained the same giant neural network, permitting parameter reuse, without catastrophic forgetting. PathNet is a first step in this direction. It is a neural network algorithm that uses agents embedded in the neural network whose task is to discover which parts of the network to re-use for new tasks.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Neural networks, in general, are trained on data for each specific task they are trying to achieve. This is time consuming and not efficient. Transfer learning was developed to bypass this problem but has limited use. PathNet goes beyond transfer learning, where knowledge gained while solving one problem is applied to a different but related problem, it finds the best parameters to be reused for transfer learning and implements those. Essentially, a neural network of neural networks.&lt;/p&gt;
&lt;p&gt;A PathNet is a modular deep neural network with any number of layers consisting of modules. Each module within each layer is itself a neural network (see last sentence of the previous paragraph). Each neural network module is either convolutional or linear and is followed by a transfer function (RELUs in this case). At each layer the output of each module is summed and then passed on to the next layer. While there may be an arbitrary number of modules per layer, typically a maximum of 3 or 4 distinct modules are permitted in the final pathway. The final layer in a PathNet is unique and not shared between different tasks. The figure belows shows this model in action. The first three layers are convolutional 2D kernels with 8 kernels per module (the green boxes in the figure), kernel sizes of (8, 4, 3), and strides (4, 2, 1) from the first to the third layer, respectively. After each module is a RELU and the layers are summed before being passed on to the next layer (light blue boxes). The red boxes show the modules that are passed on to the next layer, if all modules were included then as the model evolved it would simply grow to encompass the entire network.
&lt;img src=&quot;/content/images/2020/03/atari.jpeg&quot; alt=&quot;PathNet Atari game&quot;&gt;
The tasks that were considered were MNIST classification, CIFAR and SVHN, several Atari games, and several Labyrinth games. For binary MNIST classification the researchers found that PathNet helped speed up learning in the classification task by decreasing the mean time to solution from 229 generations to 167 generations. They found this to be the case for both the control (independent learning) and when the hyperparameters were fine tuned. The speedup ratio compared to independent learning was 1.18. The histograms below clearly show the reduction in the number of generations to achieve 0.998 accuracy.
&lt;img src=&quot;/content/images/2020/03/MNIST.jpeg&quot; alt=&quot;PathNet MNIST&quot;&gt;
Moving on to the Atari games, the researchers found that PathNet was superior to fine-tuning. fine-tuning was performed by doing a hyperparameter sweep of learning rates and entropy costs while PathNet was investigated using a range of evaluation times, mutation rates, and tournament sizes. [I understand that it&amp;#39;s necessary to tune the model to achieve optimal results, however, if you must tune PathNet doesn&amp;#39;t that make it a little less viable as AGI?] An optimal combination of tournament size and mutation rate were found for PathNet that achieved rapid convergence and a speedup ratio of 1.33 versus 1.16 for fine-tuning. The figure below shows the results for the first 40 million steps of training for PathNet (blue), fine-tuning (green), and independent learning (red). The results for both PathNet and fine-tuning show the top five hyperparameter settings.
&lt;img src=&quot;/content/images/2020/03/atari2.jpeg&quot; alt=&quot;PathNet Atari game&quot;&gt;
Finally, three labyrinth games were tested, &lt;code&gt;lt_chasm&lt;/code&gt;, &lt;code&gt;seekavoid_arena&lt;/code&gt;, and &lt;code&gt;stairway_to_melon&lt;/code&gt;. All of the games are part of DeepMind&amp;#39;s &lt;a href=&quot;https://github.com/deepmind/lab&quot;&gt;DeepMind Lab&lt;/a&gt;. Again, a hyperparameter sweep was used for fine-tuning; mutation rates, module duplication rates, and tournament size were varied while learning rate, entropy cost, and evaluation time were fixed. PathNet learns the second task faster than fine tuning for transfer to &lt;code&gt;lt_chasm&lt;/code&gt; and transfer from &lt;code&gt;lt_chasm&lt;/code&gt; to &lt;code&gt;seekavoid_arena&lt;/code&gt;. PathNet also performs better when learning &lt;code&gt;stairway_to_melon&lt;/code&gt; and &lt;code&gt;seekavoid_arena&lt;/code&gt; from scratch. Interestingly, when transferring to &lt;code&gt;lt_chasm&lt;/code&gt;, both fine tuning and PathNet perform worse than independent learning. Speedup for PathNet is 1.26 versus 1.0 for fine-tuning (this is skewed by the good performance of transferring from &lt;code&gt;seekavoid_arena&lt;/code&gt; to &lt;code&gt;stairway_to_melon&lt;/code&gt;). The figure below shows the mean of the five best training runes for PathNet compared with fine-tuning (the off diagonal plots) and independent learning (diagonal plots labeled from scratch). The results are more mixed than the previous examples, however, in most cases PathNet performs better than the control. especially when transferring from one game to another.
&lt;img src=&quot;/content/images/2020/03/labyrinth.jpeg&quot; alt=&quot;PathNet labyrinth game&quot;&gt;
It&amp;#39;s pretty clear that PathNet represents a step toward AGI. I wish that I had more time to look at the &lt;a href=&quot;https://github.com/jaesik817/pathnet&quot;&gt;code&lt;/a&gt;, play with it, and see it in action with some of the examples from the paper but I&amp;#39;m unfortunately already behind with this project.&lt;/p&gt;
&lt;p&gt;The code, notes, and reference files for this week are in this &lt;a href=&quot;https://github.com/cpdis/Experiments/tree/master/1_DeepMind_PathNet&quot;&gt;repository&lt;/a&gt;.&lt;/p&gt;
</content:encoded></item><item><title>Folder Structure and Workflow</title><link>https://colindismuke.com/writing/folder-structure-and-workflow</link><guid isPermaLink="true">https://colindismuke.com/writing/folder-structure-and-workflow</guid><description>Preparing for the upcoming ML experiments.</description><pubDate>Sun, 07 Jan 2018 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;There are two categories of projects that I’ve collected: ML papers and tutorials/working examples. For both of these I want a consistent workflow that allows me to present summaries in an quick and efficient manner and to reference in the future.&lt;/p&gt;
&lt;h2&gt;Papers&lt;/h2&gt;
&lt;p&gt;I think that I have come up with a decent template for presenting a summary of each of the papers that I read as well as describe how they might be useful. There will be four sections: &lt;em&gt;Summary&lt;/em&gt;, &lt;em&gt;Notes&lt;/em&gt;, &lt;em&gt;Research Method&lt;/em&gt;, and &lt;em&gt;Resources&lt;/em&gt;. The &lt;em&gt;Summary&lt;/em&gt; section will include a brief summary in my own words along with a concise summary quote from the paper itself. The &lt;em&gt;Notes&lt;/em&gt; section is pretty self explanatory but I will try to make it verbose enough that it can stand on its own. The &lt;em&gt;Research Method&lt;/em&gt; section will follow this format:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Read the introduction and summarize.&lt;/li&gt;
&lt;li&gt;Identify the big question or hypothesis.&lt;/li&gt;
&lt;li&gt;Summarize the background in five sentences or less.&lt;/li&gt;
&lt;li&gt;Identify specific questions.&lt;/li&gt;
&lt;li&gt;Identify the approach.&lt;/li&gt;
&lt;li&gt;Read the Methods section and diagram the experiment (this will vary widely based on the paper).&lt;/li&gt;
&lt;li&gt;Summarize the findings of each result.&lt;/li&gt;
&lt;li&gt;Do the results answer the specific questions asked above?&lt;/li&gt;
&lt;li&gt;Read the conclusion and summarize.&lt;/li&gt;
&lt;li&gt;What are others saying about this paper?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Finally, the &lt;em&gt;Resources&lt;/em&gt; section will link to any additional information about the paper such as code repositories, datasets, subsequent papers, and projects based on the results of the paper.&lt;/p&gt;
&lt;h2&gt;Tutorials and other code based projects&lt;/h2&gt;
&lt;p&gt;My goal when working through tutorials or trying to reproduce models is to have a consistent and efficient workflow that makes it simple to replicate across projects. An efficient workflow makes it easier to understand the scope of the project and return to it at a later. At work, despite our best intentions and templated folder structure, our projects inevitably end up as a labyrinth of cryptically named folders full of unlabeled data and results. I hope that starting this project with a carefully considered organizational philosophy will help in the weeks and months to come. A few requirements that went into building my final workflow:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Always use version control.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This is important because it makes it easier to work from multiple computers (and iPads), makes it easier to share and collaborate with others, and makes it easier to replicate results.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Separate code from data.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This is especially important in machine learning projects since datasets can be very, very large. In addition, it makes it easier to swap between datasets and share code with others.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Separate raw, working, and processed data.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I think it’s useful to separate data into a few different sources:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Raw&lt;/strong&gt; data is the original, immutable data.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Interim&lt;/strong&gt; data is the working data that is being transformed.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Processed&lt;/strong&gt; data is the final dataset being used for modeling.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;External&lt;/strong&gt; data is from third party sources.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Organizing the data this way allows you to know when you can safely delete and move files.&lt;/p&gt;
&lt;p&gt;Given those requirements I went about building my folder structure and workflow. Quickly, though, it dawned on me that there are thousands of teams and tens of thousands of practitioners working on real, in-production problems that have most likely optimized their workflows for maximum efficiency. With that, I went in search of the perfect folder structure and research workflow. While I’m pretty sure I didn’t find exactly that, I found something that fits all the requirements above and is automated as well.&lt;/p&gt;
&lt;p&gt;The &lt;a href=&quot;http://drivendata.github.io/cookiecutter-data-science/&quot;&gt;Cookiecutter Data Science&lt;/a&gt;  project structure is &lt;em&gt;a logical, reasonably standardized, but flexible project structure for doing and sharing data science work.&lt;/em&gt; Cookiecutter Data Science is built on &lt;a href=&quot;http://cookiecutter.readthedocs.io/en/latest/readme.html&quot;&gt;Cookiecutter&lt;/a&gt; which is a command-line utility that creates projects from templates (cookiecutters). The creators of Cookiecutter Data Science summarize it like this:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;When we think about data analysis, we often think just about the resulting reports, insights, or visualizations. While these end products are generally the main event, it&amp;#39;s easy to focus on making the products &lt;em&gt;look nice&lt;/em&gt; and ignore the &lt;em&gt;quality of the code that generates them&lt;/em&gt;. Because these end products are created programmatically, code quality is still important! And we&amp;#39;re not talking about bikeshedding the indentation aesthetics or pedantic formatting standards — ultimately, data science code quality is about correctness and reproducibility.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;It&amp;#39;s no secret that good analyses are often the result of very scattershot and serendipitous explorations. Tentative experiments and rapidly testing approaches that might not work out are all part of the process for getting to the good stuff, and there is no magic bullet to turn data exploration into a simple, linear progression.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;That being said, once started it is not a process that lends itself to thinking carefully about the structure of your code or project layout, so it&amp;#39;s best to start with a clean, logical structure and stick to it throughout. We think it&amp;#39;s a pretty big win all around to use a fairly standardized setup like this one.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I think that the template based approach is great. I have already modified the directory structure and some make files that I don’t see myself using initially. As the weeks pass and I refine my workflow, I’m sure that I will be modifying or creating new cookiecutters (you can have multiple templates that are called from the command line).&lt;/p&gt;
&lt;p&gt;I’m looking forward to my research workflow being refined over time and becoming more robust and efficient—hopefully the process described above is a good starting point.&lt;/p&gt;
</content:encoded></item><item><title>A Year of Machine Learning, Neural Networks, and More</title><link>https://colindismuke.com/writing/a-year-of-machine-learning-neural-networks-and-more</link><guid isPermaLink="true">https://colindismuke.com/writing/a-year-of-machine-learning-neural-networks-and-more</guid><description>My goal this year, and with this project, is to read, replicate, and expand upon as many different papers, tutorials, and Github repositories as possible.</description><pubDate>Mon, 01 Jan 2018 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;My goal this year, and with this project, is to read, replicate, and expand upon as many different papers, tutorials, and Github repositories as possible. Each week I plan on going through all the &lt;a href=&quot;https://github.com/cpdis/Experiments&quot;&gt;links&lt;/a&gt; and tabs I’ve collected over the months and posting whatever the results are here. In addition, I want to improve my writing skills and the only way to do that is by practice and repetition. Please forgive my writing the first few months, it will, it has to, get better.&lt;/p&gt;
&lt;p&gt;It’s relatively easy (🤓) to take online &lt;a href=&quot;https://www.udacity.com/course/intro-to-machine-learning--ud120&quot;&gt;classes&lt;/a&gt;, &lt;a href=&quot;https://www.coursera.org/specializations/deep-learning&quot;&gt;courses&lt;/a&gt;, and &lt;a href=&quot;https://www.udacity.com/course/self-driving-car-engineer-nanodegree--nd013&quot;&gt;nanodegrees&lt;/a&gt; but getting your hands dirty and working through problems on your own is where real learning begins. I’m very aware that I’m probably not going to be leading authority in the field of artificial intelligence (or even someone worth a &lt;a href=&quot;https://www.nytimes.com/2017/10/22/technology/artificial-intelligence-experts-salaries.html&quot;&gt;seven figure&lt;/a&gt; salary), that was a decision I should have made fifteen years ago. However, becoming proficient/efficient at implementing models and being up-to-date with the latest research is a huge step in the right direction.&lt;/p&gt;
&lt;p&gt;In this first week of January I’m going to try to nail down the workflow that I use to actually complete this project and to document what I learn. I have a local folder ready for any code or papers that need to be stored locally and a &lt;a href=&quot;http://www.amazon.com/dp/B075N1Z9LT/?tag=heismukamily-20&quot;&gt;NAS&lt;/a&gt; to store large datasets. Everything will be on Github for version control and to show/share my work (and so I can get more practice using Git). I’m going to be using my 2014 13&amp;quot; MacBook Pro for most of this project so there definitely won’t be any training time records set. In my &lt;a href=&quot;https://github.com/cpdis/P3_CarND_Behavioral_Cloning&quot;&gt;experience&lt;/a&gt;, though, simple models run quickly and long training times may incentive me to &lt;a href=&quot;https://navoshta.com/meet-fenton/&quot;&gt;upgrade my machine&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The pace at which deep learning and artificial intelligence advances are being made (no matter how specialized) is truly astounding. I, for one, welcome our new 🤖 overlords.&lt;/p&gt;
</content:encoded></item><item><title>The Parable of the iPhone</title><link>https://colindismuke.com/writing/the-parable-of-the-iphone</link><guid isPermaLink="true">https://colindismuke.com/writing/the-parable-of-the-iphone</guid><pubDate>Sun, 31 Dec 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;A 15 year old girl was picking berries from a bush one day in ancient Rome. And so it happened right before her eyes that a strange and mysterious wormhole opened up and presented an iPhone 7 Plus. She gasped in shock at the incomprehensible sight that had materialized out of thin air right before her eyes.&lt;/p&gt;
&lt;p&gt;Was it a precious metal of some kind? Perhaps a gem or a stone. It didn&amp;#39;t look like anything she had ever seen before. Could it be an exotic plant of some kind? A strange animal? Perhaps an extremely advanced tool. She reached her hand out to touch it. But then thought better of it. She better get her sister to take a look at it as well.&lt;/p&gt;
&lt;p&gt;She called out. Her sister was nearby and immediately ran over.&lt;/p&gt;
&lt;p&gt;&amp;quot;Look at this!&amp;quot;, she said.&lt;/p&gt;
&lt;p&gt;Her sister&amp;#39;s face looked bewildered, &amp;quot;What is it?&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;quot;I don&amp;#39;t know, it just appeared.&amp;quot;&lt;/p&gt;
&lt;p&gt;The sister picked up the phone. She marveled at its simplicity with affection. The vibrant silver color and precise lines of its edges. The small foreign writing on the metallic back with an image engraved in the finest handiwork of an apple that had a bite taken out.&lt;/p&gt;
&lt;p&gt;&amp;quot;This is magnificent&amp;quot; she said as she touched a part of the object that had a small contusion in the otherwise perfectly smooth surface. When she touched it, a brilliant light shone from the face of the object, like magic.&lt;/p&gt;
&lt;p&gt;The girls were awestruck. They thought they had better show this to their mother.&lt;/p&gt;
&lt;p&gt;A few hours later, the iPhone 7 Plus was in the hands of a Roman centurion who was taking a slow-mo video of his own face when the object disappeared as suddenly as it had arrived.&lt;/p&gt;
&lt;p&gt;A similar thing happened in two other places at two other times. The wormhole had opened. The iPhone had appeared. Once in South America to a young man in a hunter gatherer society and once to a middle aged woman in Manila in 1968. The result of these three temporary appearances of the iPhone 7 Plus shook the cultures that the iPhone had presented itself to to the core. Each had named the events and the object in different ways.&lt;/p&gt;
&lt;p&gt;The Romans had interpreted the event as an act of Caesar to display his power. The phone ended up being named the Delustricus. They started a holiday to celebrate the gracious revelation their Lord had bestowed upon them.&lt;/p&gt;
&lt;p&gt;The South American hunter gatherers had named the object what can be translated roughly as Sun Jewel, they ended up worshipping the Sun Jewel as their prime deity. Sacrifice by fire was the deity&amp;#39;s choice of preferred worship.&lt;/p&gt;
&lt;p&gt;The Filipino&amp;#39;s that had encountered the phone had eventually come to the conclusion that the device was an alien machine of infinite power that they called the Nuckacot. It happened to appear on a Tuesday precisely while the woman who had discovered it was overcooking a pot of rice. The culture had developed a custom of overcooking rice on Tuesdays in order to appease the aliens and pray for the return of the mysterious and beautiful Nuckacot.&lt;/p&gt;
&lt;p&gt;You see, this is what human beings do when we don&amp;#39;t have words for something, we make up words for them. Even if the thing we are trying to talk about is not a thing, is beyond thingness, but an experience that transcends all of our language and conceptions. We still try to find words, we still try to make meaning and tell stories. And so we get religion with all of its different variations and forms and practices.&lt;/p&gt;
&lt;p&gt;Are all religions the same? No, of course not.&lt;/p&gt;
&lt;p&gt;Neither are all the explanations of the iPhone. They are actually quite different.&lt;/p&gt;
&lt;p&gt;But is the iPhone the same? Of course it is.&lt;/p&gt;
</content:encoded></item></channel></rss>