[{"id":384,"date":"2024-08-12T23:19:29","date_gmt":"2024-08-12T21:19:29","guid":{"rendered":"https:\/\/robingeuens.com\/?p=384"},"modified":"2024-08-13T23:21:56","modified_gmt":"2024-08-13T21:21:56","slug":"python-wordpress-api","status":"publish","type":"post","link":"https:\/\/robingeuens.com\/blog\/python-wordpress-api\/","title":{"rendered":"A Practical Guide to Using the WordPress REST API in Python"},"content":{"rendered":"<p>WordPress powers around <a href=\"https:\/\/www.searchenginejournal.com\/wordpress-powers-39-5-of-all-websites\/391647\/\">39.5% of all websites<\/a>.<\/p>\n<p>It's great, but if you've ever been in charge of a decent-sized blog, you know that keeping everything up to date is hard to do. Images break, links stop working, prices and product info get out of date, and so on.<\/p>\n<p>Going through all of that content and updating it manually is a giant pain in the ass.<\/p>\n<p>There are, however, ways you can speed it up. One of those ways is to use Python and the WordPress API. Every WP site has one, you just need to know how to use it.<\/p>\n<p>In this article, I'll show you the basics ( + code) so you can start to use it as well.<\/p>\n<h2>How to use the WordPress REST API with Python<\/h2>\n<h3>The basics<\/h3>\n<p>To use the API, you'll need login credentials. If you can get to the WordPress dashboard, you should already have them.<\/p>\n<p>However, using your normal password to access the API isn\\'t very smart. You\\'ll have to put your credentials in your code, so it wouldn\\'t be very secure.<\/p>\n<p>Instead, we'll create a password for the sole purpose of using Python. To do this, go to your WP dashboard and click on \\'Users\\' -&gt; \\'Profile\\'.<\/p>\n<p>If you scroll down, you'll see a section called \\'Application Passwords\\'<\/p>\n<p><img decoding=\"async\" class=\"lazyload\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" data-src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2021\/12\/wordpress-application-passwords.png\" alt=\"Wordpress\" \/><noscript><img decoding=\"async\" class=\"lazyload\" src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2021\/12\/wordpress-application-passwords.png\" alt=\"Wordpress\" \/><\/noscript>Enter the name of your application and click \\'Add New Application Password\\'. This will generate a 24 character password that you can use for your Python script.<\/p>\n<p>The good thing about application passwords is that you can revoke them easily when you don't need them anymore. As an added security benefit, they can't be used to get to the WP dashboard.<\/p>\n<p>Even though application passwords are more secure, I recommend you generate a password right before you need to run the script and revoke the password when the work is done.<\/p>\n<h3>Setting up the API token<\/h3>\n<p>Now that we have our password, we can start working on our script. first, we need to import the necessary packages and create a token.<\/p>\n<pre><code class=\"language-python\">import requests\nimport base64\n\nwordpress_user = your username\nwordpress_password = xxxx xxxx xxxx xxxx xxxx xxxx\nwordpress_credentials = wordpress_user + : + wordpress_password\nwordpress_token = base64.b64encode(wordpress_credentials.encode())\nwordpress_header = {&#039;Authorization&#039;: &#039;Basic &#039; + wordpress_token.decode(&#039;utf-8&#039;)}<\/code><\/pre>\n<p>Once the token is set up, we can start to interact with our WordPress site.<\/p>\n<h3>Using the API to read posts on WordPress<\/h3>\n<p>Let's start with the most straightforward action: reading content. You can do this in your browser if you want. You just need to go to the API URL (e.g: <a href=\"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/posts\">https:\/\/robingeuens.com\/wp-json\/wp\/v2\/posts<\/a>). If you want to do this with Python, however, this is the code:<\/p>\n<pre><code class=\"language-python\">def read_wordpress_posts():\n api_url = &#039;https:\/\/robingeuens.com\/wp-json\/wp\/v2\/posts&#039;\n\n response = requests.get(api_url)\n response_json = response.json()\n\n print(response_json)<\/code><\/pre>\n<p>Here's what we're doing:<\/p>\n<p><strong>api_url<\/strong> = This is the URL we need to get all our posts from.<br \/>\n<strong>response<\/strong> = we're making a GET request to the previously defined api_url.<br \/>\n<strong>response_json<\/strong> = we turn our response into something we can read.<\/p>\n<p>This gives us a bunch of JSON data to work with. It'll look something like this:<\/p>\n<pre><code class=\"language-python\">{&#039;id&#039;: 347, &#039;date&#039;: &#039;2021-05-09T02:42:48&#039;, &#039;date_gmt&#039;: &#039;2021-05-09T00:42:48&#039;, &#039;guid&#039;: {&#039;rendered&#039;: &#039;https:\/\/robingeuens.com\/?p=347&#039;}, &#039;modified&#039;: &#039;2021-05-09T02:42:50&#039;, &#039;modified_gmt&#039;: &#039;2021-05-09T00:42:50&#039;, &#039;slug&#039;: &#039;think-outside-the-box&#039;, &#039;status&#039;: &#039;publish&#039;, &#039;type&#039;: &#039;post&#039;, &#039;link&#039;: &#039;https:\/\/robingeuens.com\/blog\/think-outside-the-box&#039;, &#039;title&#039;: {&#039;rendered&#039;: &#039;Why Trying to Think Outside The Box is a Waste of....<\/code><\/pre>\n<p>There\\'s one problem, however. If you have a large site, the API returns a maximum of 100 posts per page. This is to ensure the server doesn't time out trying to process large requests.<\/p>\n<p>If you want to get all the posts from your site, add parameters to your API URL to go to the next page. For example, if we want to get 100 posts per page, and we want to get page two, the API URL would look something like this: <code>https:\/\/robingeuens.com\/wp-json\/wp\/v2\/posts?page=2&amp;per_page=100<\/code><\/p>\n<p>Now, increasing the pagination count manually is impractical, so you\\'ll want to automate that. To do that, we'll first need to figure out how many pages are available. This is pretty easy, as WordPress sends this info <a href=\"https:\/\/developer.wordpress.org\/rest-api\/using-the-rest-api\/pagination\/\">along in the request header<\/a>.<\/p>\n<pre><code class=\"language-python\">def get_total_pagecount():\n api_url = &#039;https:\/\/robingeuens.com\/wp-json\/wp\/v2\/posts?page=1&amp;per_page=100&#039;\n\n response = requests.get(api_url)\n pages_count = response.headers[&#039;X-WP-TotalPages&#039;]\n\n return int(pages_count)<\/code><\/pre>\n<p>By doing a simple GET request and looking at the header, you can get the total amount of pages available. We can then create a loop that goes through all of them one by one, gets all the content, and adds it to a list. For example:<\/p>\n<pre><code class=\"language-python\">def read_wordpress_post_with_pagination():\n total_pages = get_total_pagecount()\n current_page = 1\n all_page_items_json = []\n\n while current_page &lt;= total_pages:\n     api_url = f&quot;https:\/\/robingeuens.com\/wp-json\/wp\/v2\/posts?page={current_page}&amp;per_page=100&quot;\n     page_items = requests.get(api_url)\n     page_items_json = page_items.json()\n     all_page_items_json.extend(page_items_json)\n     current_page = current_page + 1\n\n return all_page_items_json<\/code><\/pre>\n<p>Once you have the content, you can start to manipulate it and do fun stuff with it.<\/p>\n<h3>Using the API to create a post in WordPress<\/h3>\n<p>Just retrieving a bunch of content is pretty boring, so let's create a post instead. To do this, we need to send over a couple of things.<\/p>\n<pre><code class=\"language-python\">def create_wordpress_post():\n\n api_url = &#039;https:\/\/robingeuens.com\/wp-json\/wp\/v2\/posts&#039;\n data = {\n &#039;title&#039; : &#039;Example wordpress post&#039;,\n &#039;status&#039;: &#039;publish&#039;,\n &#039;slug&#039; : &#039;example-post&#039;,\n &#039;content&#039;: &#039;This is the content of the post&#039;\n }\n\n response = requests.post(api_url,headers=wordpress_header, json=data)\n\n print(response)<\/code><\/pre>\n<p><strong>api_url<\/strong> = again, this is the URL we need to send our data to.<br \/>\n<strong>data<\/strong> = This contains all the arguments that you want to send to WordPress. The list of things you can send is pretty long, so I recommend you give <a href=\"https:\/\/developer.wordpress.org\/rest-api\/reference\/posts\/#create-a-post\">the API reference<\/a> a read. For this example, we\\'re just creating a simple post.<br \/>\n<strong>response<\/strong> = we\\'re doing a POST request and sending over what URL we need to go to, our WordPress credentials, and the data of the post.<\/p>\n<p>Once it\\'s done, check out your site and the post should be live (if you set the status to \\'publish\\').<\/p>\n<p><img decoding=\"async\" class=\"lazyload\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" data-src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2021\/12\/wordpress-api-example-post.png\" alt=\"Wordpress\" \/><noscript><img decoding=\"async\" class=\"lazyload\" src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2021\/12\/wordpress-api-example-post.png\" alt=\"Wordpress\" \/><\/noscript>This, of course, is a very basic example. In reality, it opens the door for you to play around and create WordPress content in different ways. For example, you could create a template of your content and use a CSV to fill out different variables automatically.<\/p>\n<h3>Using the API to update a post in WordPress<\/h3>\n<p>Updating a blog post is very similar to creating a new one. the only difference is that you need to add the post ID to the API URL.<\/p>\n<p>If you're not sure where to find the post ID, you can either ping the API again, or you can go to the WP dashboard and edit the post you want to update. You'll see the post ID in the URL. For example: <code>https:\/\/robingeuens.com\/wp-admin\/post.php?post=380&amp;action=edit<\/code><\/p>\n<p>You can then use the same code we used to create a post and update the content.<\/p>\n<pre><code class=\"language-python\">def update_wordpress_post():\n\n api_url = &#039;https:\/\/robingeuens.com\/wp-json\/wp\/v2\/posts\/&#039;\n post_id = &#039;380&#039;\n\n data = {\n &#039;title&#039; : &#039;Updated example wordpress post&#039;,\n &#039;status&#039;: &#039;publish&#039;,\n &#039;slug&#039; : &#039;example-post-update&#039;,\n &#039;content&#039;: &#039;This is the updated content of the post&#039;\n }\n\n response = requests.post(api_url + post_id,headers=wordpress_header, json=data)\n\n print(response)<\/code><\/pre>\n<p>Once you run this code, check your site and the post should be updated.<\/p>\n<p><img decoding=\"async\" class=\"lazyload\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" data-src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2021\/12\/wordpress-api-example-update.png\" alt=\"Wordpress\" \/><noscript><img decoding=\"async\" class=\"lazyload\" src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2021\/12\/wordpress-api-example-update.png\" alt=\"Wordpress\" \/><\/noscript><br \/>\nThere is one major problem with updating content, though. If you're using the Gutenberg editor and you use the API to get content, it doesn\\'t send over any data related to the blocks you're using in the editor.<\/p>\n<p>If you get the content, change it, and send it back again, WordPress loses track of which blocks you used throughout your post. It will revert back to the classic editor and if you try to automatically convert it to blocks, you run the risk of everything being made a custom HTML block.<\/p>\n<p>This might be fine if you just have a bunch of text, but if you use custom blocks like we do at <a href=\"https:\/\/piktochart.com\/\">Piktochart<\/a>, this method becomes useless. Here's what I mean.<\/p>\n<p>WordPress uses block data to tell the editor what kind of block you're using. You can see this if you're looking at revisions:<\/p>\n<p><img decoding=\"async\" class=\"lazyload\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" data-src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2021\/12\/wordpress-api-editor-blocks.png\" alt=\"Wordpress\" \/><noscript><img decoding=\"async\" class=\"lazyload\" src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2021\/12\/wordpress-api-editor-blocks.png\" alt=\"Wordpress\" \/><\/noscript>Or you can export an XML of all your posts. The XML file contains all the block data as well. For example:<\/p>\n<pre><code class=\"language-xml\">&lt;!-- wp:paragraph --&gt;\n\n&lt;p&gt;Simple, however, doesn&#039;t mean easy. Finding a project that combined all 3 things turned out to be more difficult than I thought.&lt;\/p&gt;\n\n&lt;!-- \/wp:paragraph --&gt;<\/code><\/pre>\n<p>Without this data, WP doesn\\'t know what blocks to use and it'll revert to the standard ones like paragraphs.<\/p>\n<p>That\\'s why I recommend you export an XML of all the posts or pages on your site and work with that. You have access to the block data, and if you use the API to send an update, WordPress will use that block data to figure out what type of block it is.<\/p>\n<p>This way you can use the API, and you can still properly edit in the editor if you need to.<\/p>\n<h3>Using the API to delete a post in WordPress<\/h3>\n<p>Deleting a post is easy peasy. You just need the API URL and post id and you're good to go.<\/p>\n<pre><code class=\"language-python\">def delete_wordpress_post():\n api_url = &#039;https:\/\/robingeuens.com\/wp-json\/wp\/v2\/posts\/&#039;\n post_id = &#039;380&#039;\n\n response = requests.delete(api_url + post_id, headers=wordpress_header)\n\n print(response)<\/code><\/pre>\n<p>Nothing more to it, to be honest.<\/p>\n<h2>Putting it all together<\/h2>\n<p>This post went through some of the basic ways of interacting with the API. However, it is only the beginning. You can start combining them, adding steps in between, or use another API to enhance a process.<\/p>\n<p>Here are a couple of things you could do with the API:<\/p>\n<ul>\n<li>Create a template of your content and use a CSV to fill in the variables<\/li>\n<li>Create a report by getting all the blog URLs and adding Google Analytics data for all of them<\/li>\n<li>Get all the content, look for any outdated links, and use a CSV to change them to a different link<\/li>\n<li>Get all the content, check with Google search console &amp; Google analytics, and delete all posts that don\\'t get more than 1 visitor a day<\/li>\n<li>Get the content, scan for any broken internal links, and use a machine-learning algorithm to suggest a different URL. Then use the update function to update all the broken internal links<\/li>\n<li>Get the content and automatically post the title and URL to social media<\/li>\n<li>Get the content, scan for headings, and automatically add jump links to them. Then, add a table of contents right above the first H2<\/li>\n<\/ul>\n<p>Once you try it out for yourself you'll understand how powerful the API is. You'll also start saving a lot of time by automating menial tasks.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>WordPress powers around 39.5% of all websites. It&#8217;s great, but if you&#8217;ve ever been in charge of a decent-sized blog, you know that keeping everything up to date is hard to do. Images break, links stop working, prices and product info get out of date, and so on. Going through all of that content and &#8230; <\/p>\n<p class=\"read-more-container\"><a title=\"A Practical Guide to Using the WordPress REST API in Python\" class=\"read-more button\" href=\"https:\/\/robingeuens.com\/blog\/python-wordpress-api\/#more-384\" aria-label=\"Read more about A Practical Guide to Using the WordPress REST API in Python\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[15],"tags":[17],"class_list":["post-384","post","type-post","status-publish","format-standard","hentry","category-python","tag-python","no-featured-image-padding"],"_links":{"self":[{"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/posts\/384","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/comments?post=384"}],"version-history":[{"count":9,"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/posts\/384\/revisions"}],"predecessor-version":[{"id":539,"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/posts\/384\/revisions\/539"}],"wp:attachment":[{"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/media?parent=384"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/categories?post=384"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/tags?post=384"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":422,"date":"2023-01-04T13:26:14","date_gmt":"2023-01-04T12:26:14","guid":{"rendered":"https:\/\/robingeuens.com\/?p=422"},"modified":"2023-04-20T15:00:40","modified_gmt":"2023-04-20T13:00:40","slug":"chatgpt-for-productivity","status":"publish","type":"post","link":"https:\/\/robingeuens.com\/blog\/chatgpt-for-productivity\/","title":{"rendered":"A Beginner&#8217;s Guide to Using ChatGPT to Speed up Your Workflow"},"content":{"rendered":"\n<p>New technology is often met with skepticism. For example:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>In 1876, Western Union president William Orton said: <em>\u201cThis \u2018telephone\u2019 has far too many shortcomings to be taken seriously as a means of communication. It has objectively no value.\u201d<\/em><br><\/li>\n\n\n\n<li>In 1903, attorney Horace Rackham had a chance to invest in Henry ford's automobile company. When he asked a banker for advice, the banker said: <em>\"The horse is here to stay, but the automobile is only a novelty \u2014 a fad.\"<\/em>&nbsp;[<a href=\"#footnotes\" data-type=\"internal\" data-id=\"#footnotes\">1<\/a>]<br><\/li>\n\n\n\n<li>In 2007, Microsoft's then-CEO&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/usatoday30.usatoday.com\/money\/companies\/management\/2007-04-29-ballmer-ceo-forum-usat_N.htm\" target=\"_blank\">Steven Balmer said<\/a>: <em>\u201cThere\u2019s no chance that the iPhone is going to get any significant market share.\u201d<\/em><\/li>\n<\/ul>\n\n\n\n<p>Up until a few years ago, people claimed AI will never be able to replace artists. Now, you can write down a simple prompt and you can get stunning results.<\/p>\n\n\n\n<p>Want an image of a cat wearing sunglasses, a leather jacket, and holding a radio, cyberpunk style? Here you go. Took around 60 seconds for Midjourney to come up with this:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" data-src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/Midjourney-image-generation-example.png\" alt=\"An image of a cat wearing sunglasses, a leather jacket, and carrying a radio in the style of cyberpunk, created using Midjourney.\" class=\"wp-image-438 lazyload\"\/><noscript><img decoding=\"async\" width=\"700\" height=\"700\" src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/Midjourney-image-generation-example.png\" alt=\"An image of a cat wearing sunglasses, a leather jacket, and carrying a radio in the style of cyberpunk, created using Midjourney.\" class=\"wp-image-438 lazyload\" srcset=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/Midjourney-image-generation-example.png 700w, https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/Midjourney-image-generation-example-550x550.png 550w, https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/Midjourney-image-generation-example-300x300.png 300w, https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/Midjourney-image-generation-example-500x500.png 500w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/noscript><\/figure>\n<\/div>\n\n\n<p><\/p>\n\n\n\n<p>That's not to say AI doesn't have any problems \u2013 there are definitely some ethical problems to be solved \u2013 but AI is getting uncomfortably good.<\/p>\n\n\n\n<p>And it's not just artists that have to worry about AI, writers (and knowledge workers in general) will have to compete with tools like ChatGPT.<\/p>\n\n\n\n<p>Instead of fighting against it, it's best to learn how to use it. Think about how the people who resisted learning how to use a computer are now struggling big time.<\/p>\n\n\n\n<p>In this article, I'll give you an overview of what ChatGPT is, how to get started, and how you can use it to improve your workflow.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What is ChatGPT<\/h2>\n\n\n\n<p><a rel=\"noreferrer noopener\" href=\"https:\/\/openai.com\/blog\/chatgpt\/\" target=\"_blank\">ChatGPT<\/a>&nbsp;is an AI model created by OpenAI. It's trained to allow people to interact with it in a conversational way. This means you can ask the model a question, get a response, and build on the previous answer. ChatGPT remembers what was said earlier in the conversation.<\/p>\n\n\n\n<p>The best way to think of ChatGPT is that it's \"<a rel=\"noreferrer noopener\" href=\"https:\/\/twitter.com\/sama\/status\/1603593557230882816\" target=\"_blank\">an e-bike for your mind<\/a>.\" It won't do the work for you, but you can go faster. It speeds up your workflow by doing things like:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Generating social media posts from an input text<\/li>\n\n\n\n<li>Turning keywords into headlines<\/li>\n\n\n\n<li>Analyzing customer feedback and surfacing the most important benefits<\/li>\n\n\n\n<li>Summarizing entire articles and extracting the main points<\/li>\n\n\n\n<li>Generating simple code samples<\/li>\n\n\n\n<li>Fixing bugs in code<\/li>\n\n\n\n<li>Finding relationships in data<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">What ChatGPT won't do for you<\/h2>\n\n\n\n<p>Even though it's quite spectacular, ChatGPT isn't magic. It's trained on millions of pieces of text found on the internet, so anything it produces will be based on that.<\/p>\n\n\n\n<p>Because of that, it can't come up with anything new. It'll always be based on something that already exists. It can, however, uncover relationships between topics that you wouldn't have thought of.<\/p>\n\n\n\n<p>Second, It's just a robot. It doesn't know how to write with emotion. And if it does it's more that the AI has figured out that certain emotions appear in a certain context. The AI doesn't know what the emotion means. Because of that, much of what it produces is dry and doesn't qualify as \"a thrilling read\".<\/p>\n\n\n\n<p>Third, even though it's good at replying in a way that makes it sound human, it doesn't know whether things are true or not. ChatGPT sometimes gives answers that are completely wrong.<\/p>\n\n\n\n<p>Lastly, because it's a program, it follows a predictable way of answering questions. Tools like&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/originality.ai\/\" target=\"_blank\">Originality.ai<\/a>&nbsp;can detect whether a piece of text was likely written by an AI or not. Maybe that's a good thing, I don't know.<\/p>\n\n\n\n<p>That brings up the question: If it's not original and anti-AI tools can detect it, why use it? The uncomfortable truth is that most content written by humans isn't that original either. There are only so many ways to explain how to boil an egg. Programmers have been copy-pasting code from StackOverflow since the beginning of StackOverflow.<\/p>\n\n\n\n<p>Again, the best way to look at ChatGPT is as an assistant that helps you work, not your replacement.<\/p>\n\n\n\n<p><strong>In general, I find it's best to use ChatGPT to kickstart, improve, or correct your work.<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Getting started<\/h2>\n\n\n\n<p>Ok, so you want to learn how to use it. Great. Let's get started by going to the&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/openai.com\/blog\/chatgpt\/\" target=\"_blank\">ChatGPT website<\/a>. Click the \"TRY CHATGPT\" button to go to the login page.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" data-src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/ChatGPT-homepage.png\" alt=\"ChatGPT homepage\" class=\"wp-image-434 lazyload\"\/><noscript><img decoding=\"async\" width=\"1542\" height=\"808\" src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/ChatGPT-homepage.png\" alt=\"ChatGPT homepage\" class=\"wp-image-434 lazyload\" srcset=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/ChatGPT-homepage.png 1542w, https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/ChatGPT-homepage-768x402.png 768w, https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/ChatGPT-homepage-1536x805.png 1536w, https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/ChatGPT-homepage-1060x555.png 1060w, https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/ChatGPT-homepage-550x288.png 550w, https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/ChatGPT-homepage-954x500.png 954w\" sizes=\"(max-width: 1542px) 100vw, 1542px\" \/><\/noscript><\/figure>\n<\/div>\n\n\n<p><\/p>\n\n\n\n<p>If this is your first time using anything created by OpenAI, you'll have to create an account. This is a straightforward process where you just create a login and password and you're good to go. If you already have one, use it to log in.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" data-src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/ChatGPT-login-page.png\" alt=\"ChatGPT login screen\" class=\"wp-image-436 lazyload\"\/><noscript><img decoding=\"async\" width=\"521\" height=\"349\" src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/ChatGPT-login-page.png\" alt=\"ChatGPT login screen\" class=\"wp-image-436 lazyload\"\/><\/noscript><\/figure>\n<\/div>\n\n\n<p><\/p>\n\n\n\n<p>Once you create a password and verified your email address, you're in and you can now use ChatGPT! You'll be met by a screen that briefly explains how to use it.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" data-src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/ChatGPT-prompt-screen.png\" alt=\"ChatGPT prompt screen\" class=\"wp-image-437 lazyload\"\/><noscript><img decoding=\"async\" width=\"824\" height=\"765\" src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/ChatGPT-prompt-screen.png\" alt=\"ChatGPT prompt screen\" class=\"wp-image-437 lazyload\" srcset=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/ChatGPT-prompt-screen.png 824w, https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/ChatGPT-prompt-screen-768x713.png 768w, https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/ChatGPT-prompt-screen-550x511.png 550w, https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/ChatGPT-prompt-screen-539x500.png 539w\" sizes=\"(max-width: 824px) 100vw, 824px\" \/><\/noscript><\/figure>\n<\/div>\n\n\n<p><\/p>\n\n\n\n<p>To use it, simply type in a question or a prompt in the text bar at the bottom and the tool will reply to you. For example, you can ask it how ChatGPT works, and to explain it to you in simple terms. It's quite impressive to see how well it understands the sentiment of what you're saying.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" data-src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/ChatGPT-explanation-example.png\" alt=\"Example of ChatGPT explaining a topic in simple terms.\" class=\"wp-image-432 lazyload\"\/><noscript><img decoding=\"async\" width=\"794\" height=\"558\" src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/ChatGPT-explanation-example.png\" alt=\"Example of ChatGPT explaining a topic in simple terms.\" class=\"wp-image-432 lazyload\" srcset=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/ChatGPT-explanation-example.png 794w, https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/ChatGPT-explanation-example-768x540.png 768w, https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/ChatGPT-explanation-example-550x387.png 550w, https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/ChatGPT-explanation-example-711x500.png 711w\" sizes=\"(max-width: 794px) 100vw, 794px\" \/><\/noscript><\/figure>\n<\/div>\n\n\n<p><\/p>\n\n\n\n<p>You can also start giving it more complex prompts and allow the tool to come up with solutions to problems. Here, for example, I wanted to create a simple script that goes to the first page of Google and scrapes the first 10 results (Technically that's against Google's guidelines but this is just an example). Here's the prompt I used:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\"<em>Create a python script that goes to the first page of Google for the keyword \"ChatGPT\" and scrapes the first 10 results into a CSV.\" <\/em><\/pre>\n\n\n\n<p>And this is the result it gave me:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" data-src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/ChatGPT-code-generation-example.png\" alt=\"Example of ChatGPT creating code.\" class=\"wp-image-430 lazyload\"\/><noscript><img decoding=\"async\" width=\"802\" height=\"741\" src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/ChatGPT-code-generation-example.png\" alt=\"Example of ChatGPT creating code.\" class=\"wp-image-430 lazyload\" srcset=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/ChatGPT-code-generation-example.png 802w, https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/ChatGPT-code-generation-example-768x710.png 768w, https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/ChatGPT-code-generation-example-550x508.png 550w, https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/ChatGPT-code-generation-example-541x500.png 541w\" sizes=\"(max-width: 802px) 100vw, 802px\" \/><\/noscript><\/figure>\n<\/div>\n\n\n<p><\/p>\n\n\n\n<p>It's great because it automatically:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Generated a Google search URL with the right parameter<\/li>\n\n\n\n<li>knew to target H3 tags and get the links<\/li>\n\n\n\n<li>Wrote it to CSV with the right headings<\/li>\n<\/ul>\n\n\n\n<p>Not bad for 1 minute of work. \ud83d\udc4c<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Some examples to get you going<\/h2>\n\n\n\n<p>Again, ChatGPT won't replace you (at least for now) and it's best to view it as an assistant than something that will do the work for you. As I mentioned in my <a rel=\"noreferrer noopener\" href=\"https:\/\/robingeuens.com\/blog\/importance-of-strategy\/\" target=\"_blank\">strategy article<\/a>, humans are better at working with incomplete information than computers so it's best if you come up with a general strategy of how you're going to tackle the problem and let chatGPT do the legwork.<\/p>\n\n\n\n<p><strong>Generate headlines<\/strong><br>Use the tool to get your own mind going and get some initial ideas.<\/p>\n\n\n\n<p>Example prompt:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\"<em>Give me 10 ideas for headlines around the topic of productivity<\/em>\"<\/pre>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" data-src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/ChatGPT-headline-generation-example.png\" alt=\"Example of ChatGPT coming up with headlines around the topic of productivity.\" class=\"wp-image-433 lazyload\"\/><noscript><img decoding=\"async\" width=\"795\" height=\"520\" src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/ChatGPT-headline-generation-example.png\" alt=\"Example of ChatGPT coming up with headlines around the topic of productivity.\" class=\"wp-image-433 lazyload\" srcset=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/ChatGPT-headline-generation-example.png 795w, https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/ChatGPT-headline-generation-example-768x502.png 768w, https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/ChatGPT-headline-generation-example-550x360.png 550w, https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/ChatGPT-headline-generation-example-764x500.png 764w\" sizes=\"(max-width: 795px) 100vw, 795px\" \/><\/noscript><\/figure>\n<\/div>\n\n\n<p><\/p>\n\n\n\n<p><strong>Debugging code<\/strong><\/p>\n\n\n\n<p>It's not always clear where the bug in your code is and error messages aren't always helpful either. ChatGPT can help you debug your code.<\/p>\n\n\n\n<p>Example prompt<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><em>\"This code produces this error when it should output X, check what is wrong with my code\"<\/em><\/pre>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" data-src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/ChatGPT-code-debugging-example.png\" alt=\"Example of ChatGPt debugging code and explaining the problem.\" class=\"wp-image-429 lazyload\"\/><noscript><img decoding=\"async\" width=\"522\" height=\"590\" src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/ChatGPT-code-debugging-example.png\" alt=\"Example of ChatGPt debugging code and explaining the problem.\" class=\"wp-image-429 lazyload\" srcset=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/ChatGPT-code-debugging-example.png 522w, https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/ChatGPT-code-debugging-example-442x500.png 442w\" sizes=\"(max-width: 522px) 100vw, 522px\" \/><\/noscript><\/figure>\n<\/div>\n\n\n<p><\/p>\n\n\n\n<p><strong>Summarize articles<\/strong><br>ChatGPT can also read and summarize articles for you. Here, I asked it to summarize my article about thinking&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/robingeuens.com\/blog\/think-outside-the-box\" target=\"_blank\">outside the box<\/a>.<\/p>\n\n\n\n<p>Example prompt:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><em>\"Summarize this article: [paste article]<\/em>\"<\/pre>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" data-src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/ChatGPT-article-summary-example.png\" alt=\"Example of ChatGPT summarizing an article\" class=\"wp-image-428 lazyload\"\/><noscript><img decoding=\"async\" width=\"827\" height=\"307\" src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/ChatGPT-article-summary-example.png\" alt=\"Example of ChatGPT summarizing an article\" class=\"wp-image-428 lazyload\" srcset=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/ChatGPT-article-summary-example.png 827w, https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/ChatGPT-article-summary-example-768x285.png 768w, https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/ChatGPT-article-summary-example-550x204.png 550w\" sizes=\"(max-width: 827px) 100vw, 827px\" \/><\/noscript><\/figure>\n<\/div>\n\n\n<p><\/p>\n\n\n\n<p><strong>Get keyword ideas<\/strong><br>If you're in SEO, finding keywords about a topic you're unfamiliar with can be a pain. You just don't know enough about the topic to find out all the unrelated topics. ChatGPT can help by giving you related topics. [<a href=\"#footnotes\">2<\/a>]<\/p>\n\n\n\n<p>Example prompt:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><em>\"What topics are related to [topic]?\"<\/em><\/pre>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" data-src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/ChatGPT-keyword-generation-example.png\" alt=\"Example of ChatGPT coming up with topics related to web scraping.\" class=\"wp-image-435 lazyload\"\/><noscript><img decoding=\"async\" width=\"790\" height=\"651\" src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/ChatGPT-keyword-generation-example.png\" alt=\"Example of ChatGPT coming up with topics related to web scraping.\" class=\"wp-image-435 lazyload\" srcset=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/ChatGPT-keyword-generation-example.png 790w, https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/ChatGPT-keyword-generation-example-768x633.png 768w, https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/ChatGPT-keyword-generation-example-550x453.png 550w, https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/ChatGPT-keyword-generation-example-607x500.png 607w\" sizes=\"(max-width: 790px) 100vw, 790px\" \/><\/noscript><\/figure>\n<\/div>\n\n\n<p><\/p>\n\n\n\n<p><strong>Get an explanation<\/strong><br>ChatGPT is surprisingly good at explaining things in a simple way. However, this is the kind of prompt where you should double-check if it's correct. The AI is cool, but not perfect. Sometimes it gives you explanations that aren't correct.<\/p>\n\n\n\n<p>Example prompt:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><em>\"Explain X to me in simple terms.\"<\/em><\/pre>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" data-src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/ChatGPT-explanation-example.png\" alt=\"Example of ChatGPT explaining a topic in simple terms.\" class=\"wp-image-432 lazyload\"\/><noscript><img decoding=\"async\" width=\"794\" height=\"558\" src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/ChatGPT-explanation-example.png\" alt=\"Example of ChatGPT explaining a topic in simple terms.\" class=\"wp-image-432 lazyload\" srcset=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/ChatGPT-explanation-example.png 794w, https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/ChatGPT-explanation-example-768x540.png 768w, https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/ChatGPT-explanation-example-550x387.png 550w, https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/ChatGPT-explanation-example-711x500.png 711w\" sizes=\"(max-width: 794px) 100vw, 794px\" \/><\/noscript><\/figure>\n<\/div>\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">In closing<\/h2>\n\n\n\n<p>Even though OpenAI itself admits that chatgpt has its flaws, it's still an impressive research tool with the potential to change how people work. I'm definitely going to spend more time exploring what it can do.<\/p>\n\n\n\n<p>Also, the examples I've shown you are all related to work or productivity. While that's helpful, you can always have a little fun with it.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" data-src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/ChatGPT-explanation-example-twenties-gangster.png\" alt=\"Example of ChatGPT talking like a twenties gangster.\" class=\"wp-image-431 lazyload\"\/><noscript><img decoding=\"async\" width=\"800\" height=\"375\" src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/ChatGPT-explanation-example-twenties-gangster.png\" alt=\"Example of ChatGPT talking like a twenties gangster.\" class=\"wp-image-431 lazyload\" srcset=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/ChatGPT-explanation-example-twenties-gangster.png 800w, https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/ChatGPT-explanation-example-twenties-gangster-768x360.png 768w, https:\/\/robingeuens.com\/wp-content\/uploads\/2023\/01\/ChatGPT-explanation-example-twenties-gangster-550x258.png 550w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/noscript><\/figure>\n<\/div>\n\n\n<p><\/p>\n\n\n\n<p>It's a real humdinger, alright!<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"footnotes\">Footnotes<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Rackham did end up investing $5000 in Henry Ford's company. He later sold his stock for $12 500 000.<\/li>\n\n\n\n<li>Here are some more good&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/www.aleydasolis.com\/en\/search-engine-optimization\/chatgpt-for-seo\/\" target=\"_blank\">chatGPT ideas for SEO<\/a>.<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>New technology is often met with skepticism. For example: Up until a few years ago, people claimed AI will never be able to replace artists. Now, you can write down a simple prompt and you can get stunning results. Want an image of a cat wearing sunglasses, a leather jacket, and holding a radio, cyberpunk &#8230; <\/p>\n<p class=\"read-more-container\"><a title=\"A Beginner&#8217;s Guide to Using ChatGPT to Speed up Your Workflow\" class=\"read-more button\" href=\"https:\/\/robingeuens.com\/blog\/chatgpt-for-productivity\/#more-422\" aria-label=\"Read more about A Beginner&#8217;s Guide to Using ChatGPT to Speed up Your Workflow\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[22,6],"tags":[],"class_list":["post-422","post","type-post","status-publish","format-standard","hentry","category-ai","category-productivity","no-featured-image-padding"],"_links":{"self":[{"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/posts\/422","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/comments?post=422"}],"version-history":[{"count":13,"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/posts\/422\/revisions"}],"predecessor-version":[{"id":446,"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/posts\/422\/revisions\/446"}],"wp:attachment":[{"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/media?parent=422"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/categories?post=422"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/tags?post=422"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":407,"date":"2022-12-07T16:10:09","date_gmt":"2022-12-07T15:10:09","guid":{"rendered":"https:\/\/robingeuens.com\/?p=407"},"modified":"2022-12-07T16:10:10","modified_gmt":"2022-12-07T15:10:10","slug":"quickmail-website-breakdown","status":"publish","type":"post","link":"https:\/\/robingeuens.com\/blog\/quickmail-website-breakdown\/","title":{"rendered":"How Quickmail can Increase Website Conversions and get More Qualified Leads"},"content":{"rendered":"\n<p>Quickmail is a tool that allows you to send cold emails and have automated follow-ups.<\/p>\n\n\n\n<p>In this post, I'll go over a few ways their team can improve their website's performance and attract more of their target audience (lead gen agencies)<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1. Improving the messaging on the homepage to make it stand out from its competitors<\/h2>\n\n\n\n<p>If we compare the hero section of Quickmail to some of its competitors, there isn\u2019t a lot of difference. Here\u2019s what I mean:<\/p>\n\n\n\n<p><strong>Quickmail:<\/strong><br><em>Headline:<\/em>&nbsp;Send Automated Emails &amp; Start More Conversations<br><em>Subhead:<\/em>&nbsp;Get replies, not spam complaints. Our software improves deliverability &amp; automates follow-ups so you get more replies with less effort.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" data-src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/quickmail-hero.png\" alt=\"\" class=\"wp-image-417 lazyload\"\/><noscript><img decoding=\"async\" width=\"1353\" height=\"711\" src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/quickmail-hero.png\" alt=\"\" class=\"wp-image-417 lazyload\" srcset=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/quickmail-hero.png 1353w, https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/quickmail-hero-768x404.png 768w, https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/quickmail-hero-1060x557.png 1060w, https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/quickmail-hero-550x289.png 550w, https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/quickmail-hero-951x500.png 951w\" sizes=\"(max-width: 1353px) 100vw, 1353px\" \/><\/noscript><\/figure>\n\n\n\n<p><strong>Gmass<\/strong>:&nbsp;<br><em>Headline:<\/em>&nbsp;A cold email service inside Gmail<br><em>Subhead:<\/em>&nbsp;Get the highest open rates you've ever seen.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" data-src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/gmass-hero.png\" alt=\"\" class=\"wp-image-410 lazyload\"\/><noscript><img decoding=\"async\" width=\"1452\" height=\"611\" src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/gmass-hero.png\" alt=\"\" class=\"wp-image-410 lazyload\" srcset=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/gmass-hero.png 1452w, https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/gmass-hero-768x323.png 768w, https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/gmass-hero-1060x446.png 1060w, https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/gmass-hero-550x231.png 550w, https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/gmass-hero-1188x500.png 1188w\" sizes=\"(max-width: 1452px) 100vw, 1452px\" \/><\/noscript><\/figure>\n\n\n\n<p><strong>Mailshake:<\/strong>&nbsp;<br><em>Headline:<\/em>&nbsp;Increase your reply rate 2x by landing in the inbox (not spam).<br><em>Subhead:<\/em>&nbsp;\/<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" data-src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/mailshake-hero.png\" alt=\"\" class=\"wp-image-412 lazyload\"\/><noscript><img decoding=\"async\" width=\"1296\" height=\"553\" src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/mailshake-hero.png\" alt=\"\" class=\"wp-image-412 lazyload\" srcset=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/mailshake-hero.png 1296w, https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/mailshake-hero-768x328.png 768w, https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/mailshake-hero-1060x452.png 1060w, https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/mailshake-hero-550x235.png 550w, https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/mailshake-hero-1172x500.png 1172w\" sizes=\"(max-width: 1296px) 100vw, 1296px\" \/><\/noscript><\/figure>\n\n\n\n<p><strong>Lemlist:<\/strong><br><em>Headline:<\/em>&nbsp;Start conversations that get replies<br><em>Subhead:<\/em>&nbsp;Personalize cold emails, automate follow-ups, and engage with leads across all channels. Lemlist is your sales automation and cold email software in one.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" data-src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/lemlist-hero.png\" alt=\"\" class=\"wp-image-411 lazyload\"\/><noscript><img decoding=\"async\" width=\"1287\" height=\"557\" src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/lemlist-hero.png\" alt=\"\" class=\"wp-image-411 lazyload\" srcset=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/lemlist-hero.png 1287w, https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/lemlist-hero-768x332.png 768w, https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/lemlist-hero-1060x459.png 1060w, https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/lemlist-hero-550x238.png 550w, https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/lemlist-hero-1155x500.png 1155w\" sizes=\"(max-width: 1287px) 100vw, 1287px\" \/><\/noscript><\/figure>\n\n\n\n<p><strong>Woodpecker.co:<\/strong>&nbsp;<br><em>Headline:<\/em>&nbsp;Cold emails that start warm business conversations<br><em>Subhead:<\/em>&nbsp;Automate emails and follow-ups with a tool tailored to your needs<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" data-src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/woodpecker-hero.png\" alt=\"\" class=\"wp-image-419 lazyload\"\/><noscript><img decoding=\"async\" width=\"1180\" height=\"573\" src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/woodpecker-hero.png\" alt=\"\" class=\"wp-image-419 lazyload\" srcset=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/woodpecker-hero.png 1180w, https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/woodpecker-hero-768x373.png 768w, https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/woodpecker-hero-1060x515.png 1060w, https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/woodpecker-hero-550x267.png 550w, https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/woodpecker-hero-1030x500.png 1030w\" sizes=\"(max-width: 1180px) 100vw, 1180px\" \/><\/noscript><\/figure>\n\n\n\n<p>If you were the CEO of a lead gen agency, head of growth at a startup, or a founder looking for an email tool, would it be clear who did what and how they are unique? Not really. All email tools try to sell two things:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Deliverability (start conversations\/get replies\/land in inbox)<\/li>\n\n\n\n<li>Automation<\/li>\n<\/ol>\n\n\n\n<p><em>An email tool promising your email will be delivered is like a chef promising the food they make will be edible.<\/em>&nbsp;Yes, it\u2019s extremely important. But it\u2019s an expectation, not a selling point.&nbsp;<\/p>\n\n\n\n<p>Similarly, (basic) automation like automatic follow-ups has become so widespread that it is expected as well. Is there a way you can show the benefits of automation or address a pain point? Eg: Start conversations at scale without losing the human touch.<\/p>\n\n\n\n<p>To make it stand out, Quickmail can address pain points that are more specific to the audience they're targeting. It shows their audience that they understand them better than their competition.<\/p>\n\n\n\n<p>One way of finding those pain points to add is to look at what people are saying about your tool. You can do this by surveying your best customers, or looking at review sites and seeing what others are saying. Some examples from Quickmail's G2 page:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" data-src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/quickmail-review-painpoints.png\" alt=\"\" class=\"wp-image-415 lazyload\"\/><noscript><img decoding=\"async\" width=\"924\" height=\"768\" src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/quickmail-review-painpoints.png\" alt=\"\" class=\"wp-image-415 lazyload\" srcset=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/quickmail-review-painpoints.png 924w, https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/quickmail-review-painpoints-768x638.png 768w, https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/quickmail-review-painpoints-550x457.png 550w, https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/quickmail-review-painpoints-602x500.png 602w\" sizes=\"(max-width: 924px) 100vw, 924px\" \/><\/noscript><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" data-src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/quickmail-review-painpoints-2.png\" alt=\"\" class=\"wp-image-414 lazyload\"\/><noscript><img decoding=\"async\" width=\"920\" height=\"720\" src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/quickmail-review-painpoints-2.png\" alt=\"\" class=\"wp-image-414 lazyload\" srcset=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/quickmail-review-painpoints-2.png 920w, https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/quickmail-review-painpoints-2-768x601.png 768w, https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/quickmail-review-painpoints-2-550x430.png 550w, https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/quickmail-review-painpoints-2-639x500.png 639w\" sizes=\"(max-width: 920px) 100vw, 920px\" \/><\/noscript><\/figure>\n\n\n\n<p>The highlighted parts point to benefits or pain points that they can work with on the homepage to make it clear why people should choose Quickmail over your competitors. Some examples of pain points:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Having to access different inboxes every time you send emails for different clients (this is mentioned multiple times in reviews and isn\u2019t explicitly mentioned on Quickmail's home page\/agency page.)<\/li>\n\n\n\n<li>Having to pay by user instead of by inbox<\/li>\n\n\n\n<li>Spotting errors after you\u2019ve sent the email<\/li>\n\n\n\n<li>Being a non-technical person and having to learn complicated tools<\/li>\n\n\n\n<li>Getting no support when working with a new tool<\/li>\n<\/ul>\n\n\n\n<p>These pain points can be turned into benefits for the copy:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Send emails on behalf of your clients without needing access to their inbox<\/li>\n\n\n\n<li>Only pay more when your business grows<\/li>\n\n\n\n<li>Catch faulty emails before hitting \u201csend\u201d<\/li>\n\n\n\n<li>Easy to learn, easy to teach<\/li>\n\n\n\n<li>A committed team by your side<\/li>\n<\/ul>\n\n\n\n<p>In fact, \u201cImportant bells and whistles, without being exhaustive\u201d sounds like a good, succinct headline for a section about specific things you can do with Quickmail.<\/p>\n\n\n\n<p>I just looked through a couple of online reviews for this. But as you can see it already gives you some useful data to work with.<\/p>\n\n\n\n<p>&nbsp;If you wanted to do this properly you would:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>ask customer service\/success what questions and issues they need to solve for customers<\/li>\n\n\n\n<li>If you have a salesperson, collaborate with them on finding the most painful problems for your best customers<\/li>\n\n\n\n<li>Surveying your best customers<\/li>\n\n\n\n<li>Do more extensive mining of reviews and mine your competitors\u2019 reviews as well.<\/li>\n<\/ul>\n\n\n\n<p>Especially surveying your current, best customers could give you some insight into how you could differentiate from your competitors and attract more of them. To do this, you could email them a link to a short 5-question survey that asks the following questions:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>What are the top 3 benefits that you get from Quickmail?<\/li>\n\n\n\n<li>Have you recommended Quickmail to anyone? If so, how did you describe it?<\/li>\n\n\n\n<li>How would you feel if you could no longer use Quickmail?<\/li>\n\n\n\n<li>What problem were you trying to solve when you initially came across Quickmail?<\/li>\n\n\n\n<li>What's your biggest challenge when it comes to (insert job-to-be-done. Eg: lead generation)?<\/li>\n<\/ol>\n\n\n\n<p>This all gives you more data to put on landing pages and uncovers topics for content.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">2.Turning pain points into content and ads<\/h2>\n\n\n\n<p>As someone who did SEO at Piktochart, I know the temptation of going after those juicy, juicy high-volume keywords. However, I also know that these keywords usually don\u2019t have an amazing conversion rate and they\u2019re hard to rank for.&nbsp;<\/p>\n\n\n\n<p>Adding to that, the keywords you find in tools like Ahrefs are the exact keywords your competitors go after as well. The more generic the keyword you\u2019re going after, the more money you need to spend on link building or ads if you want to stay in front of your competitors. And even then you\u2019re not guaranteed to get traffic.&nbsp;<\/p>\n\n\n\n<p>Looking at their top keywords, even though Quickmail is ranking #1 organically, it is overshadowed by ads.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" data-src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/quickmail-serp.png\" alt=\"\" class=\"wp-image-416 lazyload\"\/><noscript><img decoding=\"async\" width=\"1600\" height=\"813\" src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/quickmail-serp.png\" alt=\"\" class=\"wp-image-416 lazyload\" srcset=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/quickmail-serp.png 1600w, https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/quickmail-serp-768x390.png 768w, https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/quickmail-serp-1536x780.png 1536w, https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/quickmail-serp-1060x539.png 1060w, https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/quickmail-serp-550x279.png 550w, https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/quickmail-serp-984x500.png 984w\" sizes=\"(max-width: 1600px) 100vw, 1600px\" \/><\/noscript><\/figure>\n\n\n\n<p>The title of Quickmail\u2019s post was below the fold. If you wanted to be visible for this keyword, you\u2019d have to use ads even though they have the #1 organic spot.<\/p>\n\n\n\n<p>By using the research methods above, Quickmail can turn those pain points into content ideas that have a better chance of ranking and converting. They have a better chance at ranking simply because they\u2019re less obvious keywords and they have a better chance at converting because it\u2019s more specific and relevant to your target audience.<\/p>\n\n\n\n<p>Looking at Quickmail's Youtube channel, They're already doing this in video form. In one of their latest videos, they\u2019re talking about how to assign prospects to a sales team. It\u2019s great because that\u2019s the kind of thing a sales manager is thinking about.<\/p>\n\n\n\n<p>Using that idea, I found the keyword \u201cHow to assign sales territories\u201d. As you can see, it has very low competition (low keyword difficulty). It\u2019s also highly relevant to people in charge or sales teams \u2013 the people with the power to buy software.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" data-src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/ahrefs-quickmail-keyword-difficulty.png\" alt=\"\" class=\"wp-image-408 lazyload\"\/><noscript><img decoding=\"async\" width=\"1600\" height=\"312\" src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/ahrefs-quickmail-keyword-difficulty.png\" alt=\"\" class=\"wp-image-408 lazyload\" srcset=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/ahrefs-quickmail-keyword-difficulty.png 1600w, https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/ahrefs-quickmail-keyword-difficulty-768x150.png 768w, https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/ahrefs-quickmail-keyword-difficulty-1536x300.png 1536w, https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/ahrefs-quickmail-keyword-difficulty-1060x207.png 1060w, https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/ahrefs-quickmail-keyword-difficulty-550x107.png 550w\" sizes=\"(max-width: 1600px) 100vw, 1600px\" \/><\/noscript><\/figure>\n\n\n\n<p>And more importantly, none of Quickmail's direct competitors are showing up for this search term. The fact that there\u2019s one result ranking on the first page with 0 backlinks (repsly.com) convinces me that they can easily rank for this.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" data-src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/ahrefs-quickmail-keyword-example.png\" alt=\"\" class=\"wp-image-409 lazyload\"\/><noscript><img decoding=\"async\" width=\"1600\" height=\"728\" src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/ahrefs-quickmail-keyword-example.png\" alt=\"\" class=\"wp-image-409 lazyload\" srcset=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/ahrefs-quickmail-keyword-example.png 1600w, https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/ahrefs-quickmail-keyword-example-768x349.png 768w, https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/ahrefs-quickmail-keyword-example-1536x699.png 1536w, https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/ahrefs-quickmail-keyword-example-1060x482.png 1060w, https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/ahrefs-quickmail-keyword-example-550x250.png 550w, https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/ahrefs-quickmail-keyword-example-1099x500.png 1099w\" sizes=\"(max-width: 1600px) 100vw, 1600px\" \/><\/noscript><\/figure>\n\n\n\n<p>Sure, It might not bring in a torrent of traffic, but that's to be expected from keywords that target experts and senior-level people. There are more beginners than there are experts. Better to have 30 visits\/month of highly targeted traffic than 1000 visits\/month from people who don\u2019t care.<\/p>\n\n\n\n<p>They don\u2019t even have to create it from scratch, you can repurpose things from the video. This brings me to my next point.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">3.Using the blog to increase Youtube views &amp; vice versa<\/h2>\n\n\n\n<p>Google adds Youtube videos to search results for \u201chow to\u201d keywords. Knowing this, Quickmail can add videos to their articles and increase the chance that they\u2019ll do well on both Youtube and the search engine itself.&nbsp;<\/p>\n\n\n\n<p>People looking for the keyword in Google will see the video on the SERP, which drives traffic to the Youtube video, which in turn increases the chances of the video becoming more popular on Youtube itself.<\/p>\n\n\n\n<p>For example: Here I just Googled \u201cHow to start a lead generation business\u201d.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" data-src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/serp-video-results.png\" alt=\"\" class=\"wp-image-418 lazyload\"\/><noscript><img decoding=\"async\" width=\"697\" height=\"732\" src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/serp-video-results.png\" alt=\"\" class=\"wp-image-418 lazyload\" srcset=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/serp-video-results.png 697w, https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/serp-video-results-550x578.png 550w, https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/serp-video-results-476x500.png 476w\" sizes=\"(max-width: 697px) 100vw, 697px\" \/><\/noscript><\/figure>\n\n\n\n<p>Quickmail has one of the top spots, Alex Berman has three of them. Adding videos to your articles increases both the value of the article and the likelihood your video will succeed. This worked well when we implemented this at Piktochart:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" data-src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/piktochart-embedded-videos.png\" alt=\"\" class=\"wp-image-413 lazyload\"\/><noscript><img decoding=\"async\" width=\"1295\" height=\"573\" src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/piktochart-embedded-videos.png\" alt=\"\" class=\"wp-image-413 lazyload\" srcset=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/piktochart-embedded-videos.png 1295w, https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/piktochart-embedded-videos-768x340.png 768w, https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/piktochart-embedded-videos-1060x469.png 1060w, https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/piktochart-embedded-videos-550x243.png 550w, https:\/\/robingeuens.com\/wp-content\/uploads\/2022\/12\/piktochart-embedded-videos-1130x500.png 1130w\" sizes=\"(max-width: 1295px) 100vw, 1295px\" \/><\/noscript><\/figure>\n\n\n\n<p>The videos that were added to articles all had thousands of views, the ones that weren't added to articles only had tens of views<\/p>\n\n\n\n<p>A similar thing can be done using Youtube shorts. You have a lot of video content, so repurposing this content, making it more digestible, and adding it throughout the website would help both the site and the videos.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Quickmail is a tool that allows you to send cold emails and have automated follow-ups. In this post, I&#8217;ll go over a few ways their team can improve their website&#8217;s performance and attract more of their target audience (lead gen agencies) 1. Improving the messaging on the homepage to make it stand out from its &#8230; <\/p>\n<p class=\"read-more-container\"><a title=\"How Quickmail can Increase Website Conversions and get More Qualified Leads\" class=\"read-more button\" href=\"https:\/\/robingeuens.com\/blog\/quickmail-website-breakdown\/#more-407\" aria-label=\"Read more about How Quickmail can Increase Website Conversions and get More Qualified Leads\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[21,20],"tags":[],"class_list":["post-407","post","type-post","status-publish","format-standard","hentry","category-breakdowns","category-marketing","no-featured-image-padding"],"_links":{"self":[{"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/posts\/407","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/comments?post=407"}],"version-history":[{"count":1,"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/posts\/407\/revisions"}],"predecessor-version":[{"id":420,"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/posts\/407\/revisions\/420"}],"wp:attachment":[{"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/media?parent=407"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/categories?post=407"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/tags?post=407"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":394,"date":"2022-07-16T11:01:28","date_gmt":"2022-07-16T09:01:28","guid":{"rendered":"https:\/\/robingeuens.com\/?p=394"},"modified":"2022-07-16T16:38:13","modified_gmt":"2022-07-16T14:38:13","slug":"marketers-should-learn-to-code","status":"publish","type":"post","link":"https:\/\/robingeuens.com\/blog\/marketers-should-learn-to-code\/","title":{"rendered":"Why Marketers Should Learn How to Code"},"content":{"rendered":"\n<p>Programming often gets looked at as something mystical.<\/p>\n\n\n\n<p>Developers get paid a lot, code looks like an alien language, and everyone makes a big deal out of it. Companies make it sound like developers will save the world. <\/p>\n\n\n\n<p>And while programming can solve a lot of problems, you don't have to be a genius to learn how to do it. In reality, everyone who can solve a puzzle can code.<\/p>\n\n\n\n<p>You see, programming isn't so much about writing the actual code as it is about figuring out how to explain a process in such detail that a computer can understand. <\/p>\n\n\n\n<p>If you had to explain how to solve sudokus to something that could only understand 1s and 0s, how would you do it?<\/p>\n\n\n\n<p>I think it's important that everyone learns how to do it. Doesn't matter if you're a designer, CEO, or you work in a completely different field. <\/p>\n\n\n\n<p>Not only does it make your life easier but it helps you save a lot of time. It's especially useful if you're a marketer In this post I'll show you why.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Code can automate the boring stuff<\/h2>\n\n\n\n<p>Let's be honest: marketing isn't always the most exciting job. It often requires you to look at a lot of spreadsheets and do boring work like copying and pasting numbers or words from one field to the next.<\/p>\n\n\n\n<p>Learning how to write a simple program can make your job a lot more fun and easy. If you're doing the same things over and over again, chances are a computer can do it way faster than you.<\/p>\n\n\n\n<p>For example, let's say you have a list of blog posts and you need to combine Google Analytics data and Google Search Console data. <\/p>\n\n\n\n<p>The traditional way of doing this is by creating a spreadsheet with all your blog posts, exporting your Google Analytics and Google Search Console data, and then start matching them. You might even do a cheeky VLOOKUP in Google sheets.<\/p>\n\n\n\n<p>When you know how to program this can all be done in one single script. You can get a list of URLs, get traffic data from Google search console using their API, and get traffic data from Google analytics.<\/p>\n\n\n\n<p>Granted, this might take a bit longer to set up but once you get it going it can save you hours of work if you need the data repeatedly.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Code can give you an edge<\/h2>\n\n\n\n<p>As marketers, we are all struggling to find ways to stand out. SEO is a good example. Everyone is writing the same articles over and over again hoping they gamed the algorithm better. And while some blogs explain things better or have a better video, there's no fundamental difference between&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/robingeuens.com\/blog\/importance-of-strategy\/\" target=\"_blank\">strategies<\/a>.<\/p>\n\n\n\n<p>An agency like Fractl does things differently. They specialize in creating pieces of content that are based on data. They gather and scrape a bunch of data from the web, and turn it into a narrative. The data gathering is often done with surveys but also utilizing automated web scraping.<\/p>\n\n\n\n<p>As a result, their pieces of content get heaps of backlinks because they've produced something interesting. The articles they produce often get featured in big-time publications like Inc or Fortune.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Code can win back hours of your week<\/h2>\n\n\n\n<p>The biggest advantage of learning how to code is by far the amount of time it saves you during the week. Here are some examples of things you could automate:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Automatically creating ad creatives by programmatically adding text to images. This is essentially what&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/www.bannerbear.com\/\" target=\"_blank\">Bannerbear<\/a>&nbsp;does.<\/li><li>Go through a list of CSVs and combine, update, delete, or read specific data<\/li><li>Automatically&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/robingeuens.com\/blog\/python-image-compression\/\" target=\"_blank\">resizing and optimizing images<\/a>&nbsp;to make them ready for publishing. Similar to&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/tinypng.com\/\" target=\"_blank\">TinyPNG<\/a>does.<\/li><li>Create custom reports pulling data from multiple sources.<\/li><li>Scrape the web to gather important market data<\/li><li>Start and stop ads based on inventory<\/li><li>Simplify your job search by scraping multiple job boards and looking for specific keywords<\/li><li>Automate repetitive actions on the web like making multiple form entries<\/li><\/ul>\n\n\n\n<p>The possibilities are endless. If you have to do the same thing over and over again, chances are there's a way to automate it.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">You&nbsp;<em>can<\/em>&nbsp;learn how to code<\/h2>\n\n\n\n<p>One of the main reasons people don't want to code is because they think it's hard to learn. I don't blame them \u2013 the first time you see a bunch of code it looks confusing.<\/p>\n\n\n\n<p>But while it looks daunting, the basics are not that hard. Even when it comes to learning specific programming languages, there are languages like Python that are quite easy to learn.<\/p>\n\n\n\n<p>Of course, if you're trying to build very complex programs where speed is important then it becomes more complicated and you need to learn specific programming languages.<\/p>\n\n\n\n<p>Luckily, that's not what we're trying to do. We're just trying to get our life easier, so Python will suffice. Below are some resources to get you started:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a rel=\"noreferrer noopener\" href=\"https:\/\/realpython.com\/python-first-steps\/\" target=\"_blank\">How to Use Python: Your First Steps<\/a><\/li><li><a rel=\"noreferrer noopener\" href=\"https:\/\/automatetheboringstuff.com\/\" target=\"_blank\">Automate the Boring Stuff<\/a><\/li><li><a rel=\"noreferrer noopener\" href=\"https:\/\/www.youtube.com\/watch?v=kqtD5dpn9C8\" target=\"_blank\">Python for Beginners - Learn Python in 1 Hour<\/a><\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Programming often gets looked at as something mystical. Developers get paid a lot, code looks like an alien language, and everyone makes a big deal out of it. Companies make it sound like developers will save the world. And while programming can solve a lot of problems, you don&#8217;t have to be a genius to &#8230; <\/p>\n<p class=\"read-more-container\"><a title=\"Why Marketers Should Learn How to Code\" class=\"read-more button\" href=\"https:\/\/robingeuens.com\/blog\/marketers-should-learn-to-code\/#more-394\" aria-label=\"Read more about Why Marketers Should Learn How to Code\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6,15],"tags":[],"class_list":["post-394","post","type-post","status-publish","format-standard","hentry","category-productivity","category-python","no-featured-image-padding"],"_links":{"self":[{"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/posts\/394","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/comments?post=394"}],"version-history":[{"count":3,"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/posts\/394\/revisions"}],"predecessor-version":[{"id":402,"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/posts\/394\/revisions\/402"}],"wp:attachment":[{"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/media?parent=394"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/categories?post=394"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/tags?post=394"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":347,"date":"2021-05-09T02:42:48","date_gmt":"2021-05-09T00:42:48","guid":{"rendered":"https:\/\/robingeuens.com\/?p=347"},"modified":"2023-04-18T15:58:39","modified_gmt":"2023-04-18T13:58:39","slug":"think-outside-the-box","status":"publish","type":"post","link":"https:\/\/robingeuens.com\/blog\/think-outside-the-box\/","title":{"rendered":"Why Trying to Think Outside The Box is a Waste of Time (+ what to do instead)"},"content":{"rendered":"\n<p>Done right, ideas have the power to change the world. Just look at the iPhone.<\/p>\n\n\n\n<p>Before it was invented, flip phones were all the rage and you had to navigate around using a keypad. After the iPhone, touchscreens and swiping became the norm.<\/p>\n\n\n\n<p>But coming up with groundbreaking ideas isn't easy. You don't get great ideas by sitting in a stuffy conference room and telling people to \"think outside the box\". It won't work.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Telling people to think outside the box is useless<\/h2>\n\n\n\n<p>Whenever a group of people comes together to brainstorm, someone inevitably says they need to think \"outside the box\" and be more original. That's great, but it's also useless. What does thinking outside the box even mean?<\/p>\n\n\n\n<p>To think outside the box, you first have to define where the edges are. And that's where the problems begin.<\/p>\n\n\n\n<p>What is \"the box\", anyway? Is it your comfort zone? Your brain? Your reality? Thinking outside of your own brain\/reality would generate incredible ideas \u2014 if it were possible. Unfortunately, it's like asking someone to come up with a new primary color.<\/p>\n\n\n\n<p><strong>All of our ideas are derived from \u2014 or are a combination of \u2014 things we've seen and experienced in the past.<\/strong>&nbsp;Asking someone to think outside of that experience is like asking them to think of something they don't know. It's impossible. You can only go to the edges of \"the box\", but never outside of it.<\/p>\n\n\n\n<p>One way to try and bypass this limitation is to bring in other people. They have different experiences, different beliefs, different brains, different boxes. If you put them all together, chances are someone will think of something the other person hasn't thought of.<\/p>\n\n\n\n<p>The issue then becomes one of similarity. Certain jobs attract certain types of people. Engineering problems attract \u2014 surprise surprise \u2014 engineers. And while they'll be able to come up with creative solutions, the problem will be approached from an engineering perspective. In this case, you're not thinking outside of the box, you've just increased the size of it.<\/p>\n\n\n\n<p>Now, what about bringing in people from different departments? Sure, that helps bring in people with different skill sets and interests, but you're still just increasing the size of the box. You end up with people who grew up in the same area or work for the same company.<\/p>\n\n\n\n<p>Remote work solves the location issue by allowing companies to hire people from around the world, but again it increases the size of the box. Today, true remote work (as in hiring people from around the world) favors younger people who are interested in tech. They're designers, marketers, programmers, product managers, and so on.<\/p>\n\n\n\n<p>If we want to come up with innovative ideas, we need a way to learn from people with who we have nothing in common or who don't work in our industry. That's very difficult to do. The chances that a designer at a tech company gets to share knowledge with an oil rig mechanic are slim.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">To generate great ideas, get clear about the problem first<\/h2>\n\n\n\n<p>Generating great ideas is about connecting unrelated concepts to each other.<\/p>\n\n\n\n<p>But if you're unclear what the problem is or what you're looking for, you can't come up with good solutions.<\/p>\n\n\n\n<p>Think of it this way: if I gave you a blank piece of paper and asked you to draw \"something\", it makes it more difficult to come up with something good. Now if I gave you a piece of paper and asked you to draw a cute animal, it will be much easier to come up with ideas.<\/p>\n\n\n\n<p>Sometimes, though, what looks like the problem isn't the real problem. Let's use an example from Rory Sutherlands's book Alchemy:<\/p>\n\n\n\n<p>Let's say you're the head of public transport and your task is to fix a large number of delays that have been happening. When thinking about this problem, most people assume the trains are the problem. Making them more reliable would cost billions of dollars. But why do people not like it when their train is delayed?<\/p>\n\n\n\n<p>\"Well, people don't like waiting.\" That's a fair point, but people don't mind standing in an elevator or waiting for their Uber to arrive. Waiting in and of itself doesn't seem to be the problem. The problem is the uncertainty that's caused by the waiting. When a train is delayed, you don't just have to wait, but you're not sure how long you'll have to wait. It could be five minutes, it could be an hour, or the train could get canceled. Waiting for a delayed train makes you worry whether you'll have to reschedule your day or not.<\/p>\n\n\n\n<p>Fixing the uncertainty caused by the delay is a much easier and cost-effective problem to fix. Putting an indicator on the platform that a train is X minutes late might as well do the trick.<\/p>\n\n\n\n<p>You need to keep asking yourself why the problem is a problem in the first place (<a rel=\"noreferrer noopener\" href=\"https:\/\/buffer.com\/resources\/5-whys-process\/\" target=\"_blank\">the 5 why technique<\/a>&nbsp;helps). Only then will you get to the&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/robingeuens.com\/blog\/theory-of-constraints-goal-setting\" target=\"_blank\">core of it<\/a>.<\/p>\n\n\n\n<p>This is harder than it sounds, though. It's tempting to make assumptions about what the problem is (eg: \"The trains are too slow\") and forget to question the problem itself. You need a mix of curiosity, detachment, and non-acceptance to do the 5 why technique properly.<\/p>\n\n\n\n<p>Once you have a clear problem you have something to connect ideas to. Now you can start to look for creative solutions.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Look at other industries and fields for similar problems<\/h2>\n\n\n\n<p>We all like to think our jobs are unique and other industries cannot relate to what we doing. That's simply not true.<\/p>\n\n\n\n<p>If you strip away the details, a marketer and a dietitian have the same job. They're both trying to persuade another person to take a certain action. That means that both of them would benefit from looking at how the other person is doing their job.<\/p>\n\n\n\n<p>Stripping away all the irrelevant details from the problem you're trying to solve will make it easier for you to look at the examples in other fields. You might find out that other industries have already solved the same problem before.<\/p>\n\n\n\n<p>The catch here is that not all ideas you find in other industries relate to what you're doing. It's more like a puzzle where you take a piece and see if it fits. The further you go from your field, the harder this becomes, but also the more interesting and \"out of the box\" your ideas will be. If you're a marketer for a SaaS company, looking at marketers for video games isn't going to get you many interesting ideas \u2014 it's too similar.<\/p>\n\n\n\n<p>But if you look at what a maintenance engineer is doing on an oil rig and you manage to relate that to your marketing job, you'll get ideas your competition never thought off.<\/p>\n\n\n\n<p>Biomimicry is a good example of this. Engineers look at the animal kingdom to see how they could tackle problems. This has led to inventions such as swimsuits based on sharkskin or a&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/today.duke.edu\/2004\/05\/design_0504.html\" target=\"_blank\">wing design based on humpback whales<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Gather ideas when you don't need them<\/h2>\n\n\n\n<p>Trying to come up with ideas right before you need them is kind of like wanting to pick apples before growing an apple tree. You should have started a lot sooner.<\/p>\n\n\n\n<p>Turning idea gathering into a habit is one of the most effective ways to consistently come up with good ideas. Having a swipe file of successful headlines, quotes, case studies, or designs helps you get the creative juices flowing.<\/p>\n\n\n\n<p>The more ideas you gather and the more you try to see how they relate to each other, the more original ideas that you will have. And the further removed that those ideas are from each other, the more they will seem \"out-of-the-box\".<\/p>\n\n\n\n<p>Now, gathering information and taking notes is a topic in and of itself. If you don't know where to start, you can check out my post on&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/robingeuens.com\/blog\/build-a-second-brain-obsidian\" target=\"_blank\">creating a second brain<\/a>&nbsp;in obsidian.<\/p>\n\n\n\n<p>It takes a while to get going, but it's one of the best investments you'll ever do.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Done right, ideas have the power to change the world. Just look at the iPhone. Before it was invented, flip phones were all the rage and you had to navigate around using a keypad. After the iPhone, touchscreens and swiping became the norm. But coming up with groundbreaking ideas isn&#8217;t easy. You don&#8217;t get great &#8230; <\/p>\n<p class=\"read-more-container\"><a title=\"Why Trying to Think Outside The Box is a Waste of Time (+ what to do instead)\" class=\"read-more button\" href=\"https:\/\/robingeuens.com\/blog\/think-outside-the-box\/#more-347\" aria-label=\"Read more about Why Trying to Think Outside The Box is a Waste of Time (+ what to do instead)\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-347","post","type-post","status-publish","format-standard","hentry","category-general","no-featured-image-padding"],"_links":{"self":[{"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/posts\/347","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/comments?post=347"}],"version-history":[{"count":3,"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/posts\/347\/revisions"}],"predecessor-version":[{"id":448,"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/posts\/347\/revisions\/448"}],"wp:attachment":[{"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/media?parent=347"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/categories?post=347"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/tags?post=347"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":329,"date":"2021-04-15T00:27:39","date_gmt":"2021-04-14T22:27:39","guid":{"rendered":"https:\/\/robingeuens.com\/?p=329"},"modified":"2022-07-20T14:01:15","modified_gmt":"2022-07-20T12:01:15","slug":"importance-of-strategy","status":"publish","type":"post","link":"https:\/\/robingeuens.com\/blog\/importance-of-strategy\/","title":{"rendered":"Why Learning Strategy is More Important Than Ever"},"content":{"rendered":"\n<p>Imagine for a moment:<\/p>\n\n\n\n<p>It's 1899 and life is going well.<\/p>\n\n\n\n<p>A guy in a suit walks up and tells you that in 70 years, 3 people will sit on top of an exploding cylinder, fly through space, and land on the moon. Not only that, but you'll be able to see images of it through a box in your living room and talk about it with your friends after driving an affordable horseless carriage to their house.<\/p>\n\n\n\n<p>You'd think that guy lost his mind. The moon? No way!<\/p>\n\n\n\n<p>Yet that's exactly what happened. Apollo 11 launched on July 16, 1969. People saw footage of it on TV (which was invented in 1927), and cars were more affordable than ever (the first mass-produced cars were sold in 1908).<\/p>\n\n\n\n<p>It's impossible to predict the future. In 1899, the Wright brothers hadn't even completed their first successful powered flight (that happened in 1903). Yet 70 years later, we were on the moon. There's no way anyone could have predicted that.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" data-src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2021\/04\/Wright-flyer-and-apollo11.png\" alt=\"\" class=\"wp-image-332 lazyload\"\/><noscript><img decoding=\"async\" width=\"700\" height=\"477\" src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2021\/04\/Wright-flyer-and-apollo11.png\" alt=\"\" class=\"wp-image-332 lazyload\" srcset=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2021\/04\/Wright-flyer-and-apollo11.png 700w, https:\/\/robingeuens.com\/wp-content\/uploads\/2021\/04\/Wright-flyer-and-apollo11-550x375.png 550w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/noscript><\/figure>\n<\/div>\n\n\n<p>Now imagine having a business or a job during that period. Some of the changes that happened were big enough to create \u2014 or decimate \u2014 entire industries. To survive and cope with all the rapid changes, you need to be able to come up with sound strategies.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What is strategy in the first place?<\/h2>\n\n\n\n<p>Whenever you talk about strategy you run into one major problem: no one has a clear idea of what it is.<\/p>\n\n\n\n<p>The term gets thrown around a lot, but ask 10 people what it means and you get 11 different answers. Some say strategy is having a plan. Some say it's the process of making plans, not the plan itself. Others say it is something greater than that.<\/p>\n\n\n\n<p>For this article, I'm going to use a definition that's based on the one Chet Richards gives in his book&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/robingeuens.com\/notes\/certain-to-win-the-strategy-of-john-boyd-applied-to-business-chet-richards\" target=\"_blank\">Certain to Win<\/a>:<\/p>\n\n\n\n<p><strong><em>A strategy is a set of guiding principles that provide the focus and direction needed to make plans.<\/em><\/strong><\/p>\n\n\n\n<p>Plans and strategies often get confused because they both deal with <a href=\"https:\/\/robingeuens.com\/blog\/theory-of-constraints-goal-setting\">achieving a mission or a goal<\/a>. However, we need to make a clear distinction between the two.<\/p>\n\n\n\n<p>A plan tells you how you intend to go from where you are now to where you want to be in the future.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" data-src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2021\/04\/Strategy-vs-planning-planning.png\" alt=\"\" class=\"wp-image-333 lazyload\"\/><noscript><img decoding=\"async\" width=\"681\" height=\"681\" src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2021\/04\/Strategy-vs-planning-planning.png\" alt=\"\" class=\"wp-image-333 lazyload\" srcset=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2021\/04\/Strategy-vs-planning-planning.png 681w, https:\/\/robingeuens.com\/wp-content\/uploads\/2021\/04\/Strategy-vs-planning-planning-550x550.png 550w, https:\/\/robingeuens.com\/wp-content\/uploads\/2021\/04\/Strategy-vs-planning-planning-300x300.png 300w, https:\/\/robingeuens.com\/wp-content\/uploads\/2021\/04\/Strategy-vs-planning-planning-500x500.png 500w\" sizes=\"(max-width: 681px) 100vw, 681px\" \/><\/noscript><\/figure>\n<\/div>\n\n\n<p>Since the future is uncertain and things will pop up and ruin your plan, you need backup plans. And because life is totally fair and nothing ever goes wrong, your backup plans will need backup plans. Soon enough, what started out as plan A ends up being plan K74b01.<\/p>\n\n\n\n<p>There are so many different outcomes to consider that the decision-making process alone will make you go crazy.<\/p>\n\n\n\n<p>That's where a strategy takes over. If you have a clear idea of what you're trying to achieve, what you&nbsp;<ins>don't<\/ins>&nbsp;want to achieve, and the reasons why you want to achieve it, you have enough of a framework to make decisions as you go.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" data-src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2021\/04\/Strategy-vs-planning-strategy.png\" alt=\"\" class=\"wp-image-334 lazyload\"\/><noscript><img decoding=\"async\" width=\"681\" height=\"681\" src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2021\/04\/Strategy-vs-planning-strategy.png\" alt=\"\" class=\"wp-image-334 lazyload\" srcset=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2021\/04\/Strategy-vs-planning-strategy.png 681w, https:\/\/robingeuens.com\/wp-content\/uploads\/2021\/04\/Strategy-vs-planning-strategy-550x550.png 550w, https:\/\/robingeuens.com\/wp-content\/uploads\/2021\/04\/Strategy-vs-planning-strategy-300x300.png 300w, https:\/\/robingeuens.com\/wp-content\/uploads\/2021\/04\/Strategy-vs-planning-strategy-500x500.png 500w\" sizes=\"(max-width: 681px) 100vw, 681px\" \/><\/noscript><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">History isn't over yet<\/h2>\n\n\n\n<p>It's easy to look at people from 1899 and scoff.<\/p>\n\n\n\n<p>\"<em>How could they not have seen this coming? How could they not see that cars would revolutionize the world?<\/em>\"<\/p>\n\n\n\n<p>Looking back, it's obvious. But we often make the mistake of thinking history is over. At this very moment, things are happening that in a hundred years will have changed the world. An example of this is artificial intelligence.<\/p>\n\n\n\n<p>For a long time AI, was at such a basic level that people considered it a gimmick. It's a fun party trick that you could show your colleagues, but you couldn't really do anything useful with. And if you could, it was used for such specific scenarios that it was useless to the broader public.<\/p>\n\n\n\n<p>Now, though, we're getting to the point where AI is getting better at specific tasks than we are. An obvious example is looking for patterns in large amounts of data.<\/p>\n\n\n\n<p>A less obvious example is programming. Solutions like GPT-3 can take a regular sentence and turn it into code. Here's an example:<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-rich is-provider-twitter wp-block-embed-twitter\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"twitter-tweet\" data-width=\"550\" data-dnt=\"true\"><p lang=\"en\" dir=\"ltr\">I just built a *functioning* React app by describing what I wanted to GPT-3. <br><br>I&#39;m still in awe. <a href=\"https:\/\/t.co\/UUKSYz2NJO\">pic.twitter.com\/UUKSYz2NJO<\/a><\/p>&mdash; Sharif Shameem (@sharifshameem) <a href=\"https:\/\/twitter.com\/sharifshameem\/status\/1284095222939451393?ref_src=twsrc%5Etfw\">July 17, 2020<\/a><\/blockquote><script async src=\"https:\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script>\n<\/div><\/figure>\n\n\n\n<p>By just describing what you want in plain English, it can interpret what you mean and turn it into clean code. In the future, an AI will be able to write better code than humans can.<\/p>\n\n\n\n<p>If you're a programmer and you doubt this, think back to the last time you were hunting down a bug and you realized 4 hours later you forgot a semicolon somewhere. AI doesn't have that problem. It also doesn't need to Google how to vertical align an image in a div every time it needs to do it.<\/p>\n\n\n\n<p>Anyway, this is not only a problem for developers. If your job requires repetition and it can be systematized, it's at risk of being automated.<\/p>\n\n\n\n<p>Another less obvious example is the legal field. Thanks to AI, we're getting to the point where it can interpret legal documents. And even better, it can turn those documents into readable language.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-rich is-provider-twitter wp-block-embed-twitter\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"twitter-tweet\" data-width=\"550\" data-dnt=\"true\"><p lang=\"en\" dir=\"ltr\">Just taught GPT-3 how to turn legalese into simple plain English. All I gave it were 2 examples \ud83e\udd2f Might build a term sheet and investment document interpreter out of this \ud83e\udd13 <a href=\"https:\/\/t.co\/BDdwCuFce5\">pic.twitter.com\/BDdwCuFce5<\/a><\/p>&mdash; Michael (@michaeltefula) <a href=\"https:\/\/twitter.com\/michaeltefula\/status\/1285505897108832257?ref_src=twsrc%5Etfw\">July 21, 2020<\/a><\/blockquote><script async src=\"https:\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script>\n<\/div><\/figure>\n\n\n\n<p>Writers and designers are in for it too. Tools like Copy.ai can generate marketing copy for your website and&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/openai.com\/blog\/dall-e\/\" target=\"_blank\">neural networks like DALL\u00b7E<\/a>&nbsp;can generate images from a text description.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" data-src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2021\/04\/DALL-E-example.png\" alt=\"\" class=\"wp-image-335 lazyload\"\/><noscript><img decoding=\"async\" width=\"1269\" height=\"768\" src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2021\/04\/DALL-E-example.png\" alt=\"\" class=\"wp-image-335 lazyload\" srcset=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2021\/04\/DALL-E-example.png 1269w, https:\/\/robingeuens.com\/wp-content\/uploads\/2021\/04\/DALL-E-example-768x465.png 768w, https:\/\/robingeuens.com\/wp-content\/uploads\/2021\/04\/DALL-E-example-1060x642.png 1060w, https:\/\/robingeuens.com\/wp-content\/uploads\/2021\/04\/DALL-E-example-550x333.png 550w, https:\/\/robingeuens.com\/wp-content\/uploads\/2021\/04\/DALL-E-example-826x500.png 826w\" sizes=\"(max-width: 1269px) 100vw, 1269px\" \/><\/noscript><\/figure>\n<\/div>\n\n\n<p>Again, right now some of these still look like a cool gimmick, but disruptive technology often starts out&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/cdixon.org\/2010\/01\/03\/the-next-big-thing-will-start-out-looking-like-a-toy\" target=\"_blank\">looking like a toy<\/a>. It starts out slow, increases exponentially, only to stabilize and be accepted in society.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Technology can't solve all our problems<\/h2>\n\n\n\n<p>So we're doomed, right? Might as well pack it up and submit to our robot overlords, right? Not really.<\/p>\n\n\n\n<p>Computers and humans frequently have opposite strengths and weaknesses (also known as\u00a0<a rel=\"noreferrer noopener\" href=\"https:\/\/en.wikipedia.org\/wiki\/Moravec%27s_paradox\" target=\"_blank\">Moravec's paradox<\/a>).<\/p>\n\n\n\n<p>Calculating a complex equation takes a long time for humans, while&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/en.wikipedia.org\/wiki\/Fugaku_(supercomputer)\" target=\"_blank\">a supercomputer<\/a>&nbsp;can do&nbsp;<strong>416 quadrillion calculations a&nbsp;<em>second<\/em><\/strong>. Ask that computer to move a spoon from one end of the table to the other \u2014 something that is effortless to us \u2014 and all of a sudden it's in trouble.<\/p>\n\n\n\n<p>Make a computer&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/youtu.be\/AamACDnwRts?t=90\" target=\"_blank\">detect rotten grapes on a production line<\/a>&nbsp;and it'll do it faster than our eyes can see. Ask it to come up with a truly random number between 1 and 100 and it fails.<\/p>\n\n\n\n<p>The ideal scenario is to have humans work on the strategy (again, the what and the why), and have AI figure out how to do it. An example of this is in the book Range:<\/p>\n\n\n\n<p>In 1996 and 1997, Gary Kasparov played a pair of six games against a supercomputer called Deep Blue. While Kasparov won the first 6 games, he lost the second set. For the first time in history, a computer defeated a reigning Grandmaster in a tournament.<\/p>\n\n\n\n<p>Afterward, Kasparov wondered what chess would look like if each player had access to a similar computer. To test this out he organized a tournament.<\/p>\n\n\n\n<p>These human\/computer teams \u2014 also&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/en.wikipedia.org\/wiki\/Advanced_chess\" target=\"_blank\">called centaurs<\/a>&nbsp;\u2014 started playing a level of chess never seen before. While the human player took care of the strategy, the computer made sure the tactical play was error-free.<\/p>\n\n\n\n<p>Using this combination, centaurs were able to beat a more powerful supercomputer called&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/en.wikipedia.org\/wiki\/Hydra_(chess)\" target=\"_blank\">Hydra<\/a>. Not only that, but the whole pecking order changed. Players that were better at \"coaching\" computers started winning from Grandmasters.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Competitive environments require constant re-invention<\/h2>\n\n\n\n<p>Let's go back to the early 1900s for a second. Let's say you're a clever entrepreneur who figured out that these things called \"cars\" are pretty useful for hauling cargo from one place to another.<\/p>\n\n\n\n<p>You start a transport business and buy a car. You make good money and business is booming. Other entrepreneurs take notice and start buying cars as well. Before you know it your margins are shrinking and you're in a cutthroat business.<\/p>\n\n\n\n<p>One of the annoying problems with business strategies is that, in competitive fields, you constantly have to reinvent them. The moment a strategy works is the moment people will take notice and copy you.<\/p>\n\n\n\n<p>A modern example of this is SEO and content marketing. When&nbsp;Brian Dean&nbsp;came up with \"<a rel=\"noreferrer noopener\" href=\"https:\/\/backlinko.com\/skyscraper-technique\" target=\"_blank\">the skyscraper technique<\/a>\" it worked very well for him. But then he started talking about it and other people started copying it. By now it's such a common technique that it stopped being a valid strategy. Or it's still valid, it's just much, much harder to execute well.<\/p>\n\n\n\n<p>Another example is the&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/andrewchen.co\/the-law-of-shitty-clickthroughs\/\" target=\"_blank\">Law of Shitty Clickthroughs<\/a>. The first banner ad in history had a&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/adage.com\/article\/digitalnext\/happy-birthday-digital-advertising\/139964\" target=\"_blank\">CTR of 78%<\/a>. 17 years later, Facebook's average CTR was 0.05%. The more people get wind of what is working, the faster the clickthrough rate drops and the more time you'll have to spend reinventing what you're doing.<\/p>\n\n\n\n<p>To win, you need to come up with something other people aren't doing. But the moment it works, others will copy you, so you'll have to start over again.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Change = opportunity<\/h2>\n\n\n\n<p>As frustrating (and scary) as it is to see the world change around you, there will always be a need for people who can figure out what's going on and make strategic plans.<\/p>\n\n\n\n<p>It also means whoever learns to adapt to change, can outperform or outmaneuver bigger, more established businesses. A change in technology allowed Amazon to out-compete Sears. It allowed Airbnb to compete with hotels. It allows individuals to do things that previously required entire teams.<\/p>\n\n\n\n<p>For example, one(!) person used GPT-3 to create a fully functioning search engine \u2014 something that Google spent years of engineering hours on.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-rich is-provider-twitter wp-block-embed-twitter\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"twitter-tweet\" data-width=\"550\" data-dnt=\"true\"><p lang=\"en\" dir=\"ltr\">I made a fully functioning search engine on top of GPT3. <br><br>For any arbitrary query, it returns the exact answer AND the corresponding URL.<br><br>Look at the entire video. It&#39;s MIND BLOWINGLY good. <br><br>cc: <a href=\"https:\/\/twitter.com\/gdb?ref_src=twsrc%5Etfw\">@gdb<\/a> <a href=\"https:\/\/twitter.com\/npew?ref_src=twsrc%5Etfw\">@npew<\/a> <a href=\"https:\/\/twitter.com\/gwern?ref_src=twsrc%5Etfw\">@gwern<\/a> <a href=\"https:\/\/t.co\/9ismj62w6l\">pic.twitter.com\/9ismj62w6l<\/a><\/p>&mdash; Paras Chopra (@paraschopra) <a href=\"https:\/\/twitter.com\/paraschopra\/status\/1284801028676653060?ref_src=twsrc%5Etfw\">July 19, 2020<\/a><\/blockquote><script async src=\"https:\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script>\n<\/div><\/figure>\n\n\n\n<p>Now, he's not going to create a billion-dollar business on his own or throw Google off its throne. But using AI and creating a small search engine that is accurate enough to give Google a run for its money is kind of like launching your own small, homemade rocket and landing it on the moon.<\/p>\n\n\n\n<p>It may have been a giant leap in the past, but the steps are getting smaller and smaller.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Imagine for a moment: It&#8217;s 1899 and life is going well. A guy in a suit walks up and tells you that in 70 years, 3 people will sit on top of an exploding cylinder, fly through space, and land on the moon. Not only that, but you&#8217;ll be able to see images of it &#8230; <\/p>\n<p class=\"read-more-container\"><a title=\"Why Learning Strategy is More Important Than Ever\" class=\"read-more button\" href=\"https:\/\/robingeuens.com\/blog\/importance-of-strategy\/#more-329\" aria-label=\"Read more about Why Learning Strategy is More Important Than Ever\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[16],"tags":[],"class_list":["post-329","post","type-post","status-publish","format-standard","hentry","category-strategy","no-featured-image-padding"],"_links":{"self":[{"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/posts\/329","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/comments?post=329"}],"version-history":[{"count":6,"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/posts\/329\/revisions"}],"predecessor-version":[{"id":405,"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/posts\/329\/revisions\/405"}],"wp:attachment":[{"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/media?parent=329"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/categories?post=329"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/tags?post=329"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":307,"date":"2021-02-12T14:30:29","date_gmt":"2021-02-12T13:30:29","guid":{"rendered":"https:\/\/robingeuens.com\/?p=307"},"modified":"2023-08-13T17:16:56","modified_gmt":"2023-08-13T15:16:56","slug":"python-image-compression","status":"publish","type":"post","link":"https:\/\/robingeuens.com\/blog\/python-image-compression\/","title":{"rendered":"Resizing and Compressing Images Using Python"},"content":{"rendered":"<p>If you've ever been in charge of a blog, you know how annoying it is to handle images.<\/p>\n<p>Unless you want your website to become a slow, bloated piece of garbage over time, you need to resize and optimize them.<\/p>\n<p>And if you're dealing with a blog that's focused on visuals, this can take ages. Tools like TinyJPG help, but you still have to resize them manually and it has an upload limit.<\/p>\n<p>Python, however, can speed things up a lot.<\/p>\n<p>In this article, we explore how to use Python to automatically resize and compress images so they're the best quality for your blog.<\/p>\n<h2>How to optimize images using Python<\/h2>\n<p>First of all, we'll need to import some modules so we can work with images and find all the files we need. We'll be using the following modules:<\/p>\n<ul>\n<li>Pillow, to manipulate the images.<\/li>\n<li>Glob, to gather all the files.<\/li>\n<li>OS, to create folders.<\/li>\n<li>Path, to work with file paths.<\/li>\n<\/ul>\n<pre><code class=\"language-python\">#imports\nimport glob\nimport os\nfrom PIL import Image\nfrom pathlib import Path<\/code><\/pre>\n<p>Because we don't want to edit the script every time we have a new folder with images, we're using user input to ask for the source folder. We're also asking the user for the maximum width of the images and whether or not it needs to overwrite previously optimized images. If the images just need to be optimized, we want to leave the max-width empty.<\/p>\n<p>Since I'm the only one using this, I'm not building in any validation of inputs.<\/p>\n<pre><code class=\"language-python\">file_types = (&#039;.jpg&#039;,&#039;.png&#039;, &#039;.jpeg&#039;)\n    all_images = []\n    in_folder = input(Enter the path to the folder containing the images:)\n    out_folder = in_folder + &#039;\/Optimized&#039;\n\n    # If we just want to optimize the images without resizing them, we can\n    # leave the max width input empty\n    try:\n        img_max_width = int(input(How wide do you want the images to be (in px):))\n    except ValueError:\n        img_max_width = 0\n\n    overwrite_img = input(Overwrite previously optimized images? Y\/N:)<\/code><\/pre>\n<p>Instead of putting all our optimized images in the same folder as our unoptimized images, we're creating a folder called <code>Optimized<\/code>. If it already exists, print a statement saying it already exists.<\/p>\n<pre><code class=\"language-python\">#Create ouput folder\ntry: \n    os.mkdir(out_folder)\n    print(&#039;Folder created: &#039; + str(out_folder))\nexcept FileExistsError:\n    print(&#039;Folder already exists: &#039; + str(out_folder))<\/code><\/pre>\n<p>Next, we'll scan our input folder and add any <code>.png<\/code>, <code>.jpg<\/code>, or <code>.jpeg<\/code> files to our image array.<\/p>\n<pre><code class=\"language-python\">#Get all images from input folder\nfor file_type in file_types: \n    all_images.extend(glob.glob(in_folder + &#039;\/*&#039; + file_type))<\/code><\/pre>\n<p>Now the real work begins. For each image in our array we'll do the following:<\/p>\n<ul>\n<li>Get the file path of the image<\/li>\n<li>Construct our output file path<\/li>\n<li>Check if the output file (the optimized image) already exists so we can skip it if we don't want to overwrite images<\/li>\n<li>Resize the image to our specifications<\/li>\n<\/ul>\n<pre><code class=\"language-python\"># Resize all files and optimize\n# Enumerate the list so we can track what image it is on\nfor index, img in enumerate(sorted(all_images)):\n    img_path = Path(img)\n    file_name = img_path.name\n    outF = out_folder + &#039;\/&#039; + file_name\n\n    #Communicate what image we&#039;re working on\n    print(&#039;Working on optimizing &#039; + str(img)) \n\n    # Check if the file exists and if we want to overwrite it.\n    # If not, move on to the next image\n    if Path(outF).is_file() and overwrite_img.upper() == N:\n        print(&#039;Image already optimized, skipping...&#039;)\n        continue\n    else:\n        with Image.open(img) as inF:\n            orig_width, orig_height = inF.size\n\n            if img_max_width is 0:\n                inF.thumbnail((orig_width,orig_height), reducing_gap= 2.0)\n                inF.save(outF,inF.format)\n            else:\n                #Calculate ratio so we can keep the height proportionate to the width\n                ratio = inF.size[0] \/ img_max_width \n                inF.thumbnail((img_max_width,inF.size[1]*ratio), reducing_gap= 2.0)\n                inF.save(outF,inF.format)\n\n        print(str(index + 1) + &#039; out of &#039; + str(len(all_images)) + &#039; images done&#039;)<\/code><\/pre>\n<p>We can change the <code>reducing_gap<\/code> to fine-tune the quality. But for now, we're going to leave it at 2.<\/p>\n<p>And that's the script. But because I don't want to open the command line, go to the source folder, and run the script every time I need to optimize images, we'll create a <code>.bat<\/code> file on the desktop.<\/p>\n<pre><code class=\"language-bat\">C:\/PathToPython\/python.exe D:\/Path\/To\/Python\/Script\/ImageOptimizer.py<\/code><\/pre>\n<p>Now that we have this, we just have to run the <code>.bat<\/code> file, put in the path to the folder with all our images, put in the max-width of our images, and if we want to overwrite existing ones. Hooray for technology!<\/p>\n<h2>How well does this compress images?<\/h2>\n<p>To test how well this script optimizes images, I'm going to optimize 10 images using both <a href=\"https:\/\/tinyjpg.com\/\">TinyJPG<\/a> and this script.<\/p>\n<p>To prep this test, I've taken 10 images from Unsplash (<a href=\"https:\/\/unsplash.com\/photos\/y7p6c69BjeI\">1<\/a>,<a href=\"https:\/\/unsplash.com\/photos\/EDu_ftcA1dE\">2<\/a>,<a href=\"https:\/\/unsplash.com\/photos\/VQj3PTx63hs\">3<\/a>,<a href=\"https:\/\/unsplash.com\/photos\/bQYil7I58QM\">4<\/a>,<a href=\"https:\/\/unsplash.com\/photos\/bVqQb13WfHc\">5<\/a>,<a href=\"https:\/\/unsplash.com\/photos\/LZ9LTA83o-o\">6<\/a>,<a href=\"https:\/\/unsplash.com\/photos\/XrmYq7ud74A\">7<\/a>,<a href=\"https:\/\/unsplash.com\/photos\/TImVV-TuxHo\">8<\/a>,<a href=\"https:\/\/unsplash.com\/photos\/_29TMOyVraM\">9<\/a>,<a href=\"https:\/\/unsplash.com\/photos\/TCJM2dF7FLM\">10<\/a>) and scaled them down to 700px wide using Affinity Photo.<\/p>\n<p>Our script can scale the images down as well, but it wouldn't be a good test.<\/p>\n<table>\n<thead>\n<tr>\n<th>Image<\/th>\n<th>Original size<\/th>\n<th>After TinyJPG<\/th>\n<th>After our script<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Image 1<\/td>\n<td>536 KB<\/td>\n<td>74 KB<\/td>\n<td>77 KB<\/td>\n<\/tr>\n<tr>\n<td>Image 2<\/td>\n<td>320 KB<\/td>\n<td>62 KB<\/td>\n<td>45 KB<\/td>\n<\/tr>\n<tr>\n<td>Image 3<\/td>\n<td>474 KB<\/td>\n<td>63 KB<\/td>\n<td>52 KB<\/td>\n<\/tr>\n<tr>\n<td>Image 4<\/td>\n<td>627 KB<\/td>\n<td>251 KB<\/td>\n<td>108 KB<\/td>\n<\/tr>\n<tr>\n<td>Image 5<\/td>\n<td>1182 KB<\/td>\n<td>425 KB<\/td>\n<td>168 KB<\/td>\n<\/tr>\n<tr>\n<td>Image 6<\/td>\n<td>335 KB<\/td>\n<td>66 KB<\/td>\n<td>52 KB<\/td>\n<\/tr>\n<tr>\n<td>Image 7<\/td>\n<td>566 KB<\/td>\n<td>108 KB<\/td>\n<td>73 KB<\/td>\n<\/tr>\n<tr>\n<td>Image 8<\/td>\n<td>234 KB<\/td>\n<td>70 KB<\/td>\n<td>23 KB<\/td>\n<\/tr>\n<tr>\n<td>Image 9<\/td>\n<td>681 KB<\/td>\n<td>121 KB<\/td>\n<td>88 KB<\/td>\n<\/tr>\n<tr>\n<td>Image 10<\/td>\n<td>395 KB<\/td>\n<td>104 KB<\/td>\n<td>62 KB<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td><strong>Total savings<\/strong><\/td>\n<td>5350 KB<\/td>\n<td>1334 KB<\/td>\n<td>1076 KB<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>The file size is one thing, but how's the quality of our optimized images? To compare, I'm using the image we compressed the most (image 5).<\/p>\n<p><img decoding=\"async\" class=\"lazyload\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" data-src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2021\/02\/Image-optimization-comparison.png\" alt=\"\" \/><noscript><img decoding=\"async\" class=\"lazyload\" src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2021\/02\/Image-optimization-comparison.png\" alt=\"\" \/><\/noscript><\/p>\n<p>From afar, there isn't much of a difference \u2014 and you could argue that's good enough.<\/p>\n<p>Once you zoom in, though, our script shows a slight drop in quality. The trees get a bit blurry after using our script.<\/p>\n<p>To fix this, we could increase the <code>reducing_gap<\/code> to a level where the drop is less noticeable.<\/p>\n<p>But that's our script. It has saved me a ton of time having to manually resize the images we use at <a href=\"https:\/\/piktochart.com\">Piktochart<\/a>. If you want the full script, you can find it below:<\/p>\n<h2>Full code:<\/h2>\n<pre><code class=\"language-python\">#imports\nimport glob\nimport os\nfrom PIL import Image\nfrom pathlib import Path\n\ndef main():\n    file_types = (&#039;.jpg&#039;,&#039;.png&#039;, &#039;.jpeg&#039;)\n    all_images = []\n    in_folder = input(Enter the path to the folder containing the images:)\n    out_folder = in_folder + &#039;\/Optimized&#039;\n\n    # If we just want to optimize the images without resizing them, we can\n    # leave the max width input empty\n    try:\n        img_max_width = int(input(How wide do you want the images to be (in px):))\n    except ValueError:\n        img_max_width = 0\n\n    overwrite_img = input(Overwrite previously optimized images? Y\/N:)\n\n    #Create ouput folder\n    try: \n        os.mkdir(out_folder)\n        print(&#039;Folder created: &#039; + str(out_folder))\n    except FileExistsError:\n        print(&#039;Folder already exists: &#039; + str(out_folder))\n\n    #Get all images from input folder\n    for file_type in file_types: \n        all_images.extend(glob.glob(in_folder + &#039;\/*&#039; + file_type))\n\n    #Communicate how many images are found so we can double check manually if needed\n    print(str(len(all_images)) + &#039; image(s) found&#039;)\n\n    # Resize all files if needed and optimize\n    # Enumerate the list so we can track what image it is on\n    for index, img in enumerate(sorted(all_images)):\n        img_path = Path(img)\n        file_name = img_path.name\n        outF = out_folder + &#039;\/&#039; + file_name\n\n        #Communicate what image we&#039;re working on\n        print(&#039;Working on optimizing &#039; + str(img)) \n\n        # Check if the file exists and if we want to overwrite it.\n        # If not, move on to the next image\n        if Path(outF).is_file() and overwrite_img.upper() == N:\n            print(&#039;Image already optimized, skipping...&#039;)\n            continue\n        else:\n            with Image.open(img) as inF:\n                orig_width, orig_height = inF.size\n\n                if img_max_width == 0:\n                    inF.thumbnail((orig_width,orig_height), reducing_gap= 2.0)\n                    inF.save(outF,inF.format)\n                else:\n                    #Calculate ratio so we can keep the height proportionate to the width\n                    ratio = inF.size[0] \/ img_max_width \n                    inF.thumbnail((img_max_width,inF.size[1]*ratio), reducing_gap= 2.0)\n                    inF.save(outF,inF.format)\n\n            print(str(index + 1) + &#039; out of &#039; + str(len(all_images)) + &#039; images done&#039;)\n\nif __name__ == &#039;__main__&#039;:\n    main()<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>If you&#8217;ve ever been in charge of a blog, you know how annoying it is to handle images. Unless you want your website to become a slow, bloated piece of garbage over time, you need to resize and optimize them. And if you&#8217;re dealing with a blog that&#8217;s focused on visuals, this can take ages. &#8230; <\/p>\n<p class=\"read-more-container\"><a title=\"Resizing and Compressing Images Using Python\" class=\"read-more button\" href=\"https:\/\/robingeuens.com\/blog\/python-image-compression\/#more-307\" aria-label=\"Read more about Resizing and Compressing Images Using Python\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[15],"tags":[],"class_list":["post-307","post","type-post","status-publish","format-standard","hentry","category-python","no-featured-image-padding"],"_links":{"self":[{"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/posts\/307","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/comments?post=307"}],"version-history":[{"count":11,"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/posts\/307\/revisions"}],"predecessor-version":[{"id":531,"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/posts\/307\/revisions\/531"}],"wp:attachment":[{"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/media?parent=307"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/categories?post=307"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/tags?post=307"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":290,"date":"2021-01-30T17:10:31","date_gmt":"2021-01-30T16:10:31","guid":{"rendered":"https:\/\/robingeuens.com\/?p=290"},"modified":"2021-03-30T12:45:00","modified_gmt":"2021-03-30T10:45:00","slug":"10-minute-weekly-review","status":"publish","type":"post","link":"https:\/\/robingeuens.com\/blog\/10-minute-weekly-review\/","title":{"rendered":"How to Do an Effective Weekly Review in 10 Minutes"},"content":{"rendered":"\n<p>In January 2019, I was looking for a job.<\/p>\n\n\n\n<p>Frustrated with how ineffective the normal application process was, I decided to try something else.<\/p>\n\n\n\n<p>Instead of sending my resume to random businesses and hope for the best, I picked out a handful of companies and wrote down tips they could implement right away. The goal was to show that I could do what I said I could. It worked, but at the time it felt like an inefficient process.<\/p>\n\n\n\n<p>Afterward, at the end of the year, I went over my weekly reviews and it struck me that it wasn't an inefficient process at all. What felt like ages, were only 4-5 weeks in retrospect.<\/p>\n\n\n\n<p>4-5 weeks to find a great job is quick. Some people spend months, if not years, sending out resumes without getting a reply. Even if it works they end up with a company they hate.<\/p>\n\n\n\n<p>But I only realized this when looking over my weekly reviews. If I didn't have them, I'd still be wondering if giving those tips would be a good use of my time.<\/p>\n\n\n\n<p>A weekly review doesn't have to take long. The goal is to look at your week, see if you're on track for your big picture goals, get some perspective, and make adjustments for the next week. You don't need a 2-hour long GTD weekly review that you're going to do once and never again. The bulk of the value is in doing it consistently so you can spot patterns over time.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How to do a weekly review<\/h2>\n\n\n\n<ol class=\"wp-block-list\"><li><strong>Set aside 10 minutes to work on your weekly review.<\/strong> I suggest doing it on a Saturday somewhere before noon. If you do it on a Sunday or the Monday after, the gap between last week is too big and you start to forget things. Saturday is great because it has enough of a gap after the workweek, but it isn't enough to forget everything.<br><\/li><li><strong>Use either a note-taking tool like\u00a0<a rel=\"noreferrer noopener\" href=\"https:\/\/robingeuens.com\/blog\/build-a-second-brain-obsidian\" target=\"_blank\" data-type=\"post\" data-id=\"193\">Obsidian<\/a>\u00a0or pen and paper.<\/strong> If you're planning on doing this consistently, create a template for yourself so you only have to sit down and fill it in. I'll share my template later in the article.<br><\/li><li><strong>First, write down how things went the past week.<\/strong> Use questions that make you think about what went well, what you loved doing, or what you hated doing. the goal of this first part is to take stock of where you are right now.<br><\/li><li><strong>Second, write down what's important to you.<\/strong> Use questions that highlight the parts of your work\/life that will have the highest impact when you work on them. For this part, it's good to have questions that force you to look at your week through a different mental model. Applying <a rel=\"noreferrer noopener\" href=\"https:\/\/fs.blog\/2013\/10\/inversion\/\" target=\"_blank\">inversion<\/a> or the <a href=\"https:\/\/robingeuens.com\/blog\/theory-of-constraints-goal-setting\" data-type=\"post\" data-id=\"283\">theory of constraints<\/a>, for example, helps you figure out what's important.<br><\/li><li><strong>Third, write down what you're going to do next week.<\/strong> The last part is about setting an intention and figuring out your next actions. If you make it too big you're not going to do it. Make it small so there's no barrier to implementing it. If you do this every week, you'd be surprised with how much you can improve over the span of a year.<br><\/li><li><strong>Save your review.<\/strong><\/li><\/ol>\n\n\n\n<p>I highly recommend using a system like&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/zapier.com\/\" target=\"_blank\">Zapier<\/a>&nbsp;&amp;&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/evernote.com\/\" target=\"_blank\">Evernote<\/a>&nbsp;(or Google docs) to automatically make a copy of the template for you each week.<\/p>\n\n\n\n<p>Remember: The easier you make your review the better. Once the time is there you're not going to feel like doing the review. Make it so easy you just have to put your butt in a seat and start writing.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Questions to ask in your review<\/h2>\n\n\n\n<p>If you're struggling to come up with good questions to ask for your weekly review, pick a couple from each section and see if they work for you. If they don't, use other questions or use these as a prompt to come up with your own.<\/p>\n\n\n\n<p><strong>Review questions<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>What were some highlights last week? What progress did I make?<\/li><li>What did I enjoy doing the most this week?<\/li><li>What did I enjoy doing the least?<\/li><li>What do I wish I would have done differently this week?<\/li><li>What went well?<\/li><li>When did I find myself procrastinating?<\/li><li>How did I feel last week?<\/li><li>Out of 10, how would I rate this week?<\/li><li>What people are helping\/supporting me the most?<\/li><li>What people are helping\/supporting me the least?<\/li><\/ul>\n\n\n\n<p><strong>Insight questions<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>What is the biggest bottleneck in my life right now? What can I do to eliminate it?<\/li><li>What am I afraid of right now? What tough decisions am I delaying?<\/li><li>If I had to mess up next week, how would I do it? (use inversion to find what is crucial)<\/li><li>What habits are preventing me from getting where I want to be? What can I replace them with?<\/li><li>Where do I find myself losing track of time?<\/li><li>What 20% of projects are bringing in 80% of the results?<\/li><li>What's one problem I can solve that would make other problems easier to solve?<\/li><\/ul>\n\n\n\n<p><strong>Planning questions<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>What small improvement can I implement next week?<\/li><li>What's the biggest challenge going to be next week?<\/li><li>Who can I ask for help from next week?<\/li><li>If I could only work 2 hours next week, what would I focus on?<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">My weekly review template<\/h2>\n\n\n\n<p>Below is the markdown template I use. Every week, a Python script automatically sets up my to-do list, creates a new file, copies this template, and adds a link to it in my to-do list. I just have to open the file and start writing.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"md\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"false\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">**What were some highlights last week? What progress did I make? (celebrate as much as you can)**\n-   \n\n**What did I enjoy doing the most this week?**\n- \n\n**What did I enjoy doing the least?**\n-  \n\n**What is the biggest bottleneck in my life right now? What can I do to eliminate it?**\n- \n\n**What do I wish I would have done differently this week?**\n-   \n    \n**What am I afraid of right now? What tough decisions am I delaying?**\n- \n\n**What small improvement can I implement next week?**\n-  <\/pre>\n","protected":false},"excerpt":{"rendered":"<p>In January 2019, I was looking for a job. Frustrated with how ineffective the normal application process was, I decided to try something else. Instead of sending my resume to random businesses and hope for the best, I picked out a handful of companies and wrote down tips they could implement right away. The goal &#8230; <\/p>\n<p class=\"read-more-container\"><a title=\"How to Do an Effective Weekly Review in 10 Minutes\" class=\"read-more button\" href=\"https:\/\/robingeuens.com\/blog\/10-minute-weekly-review\/#more-290\" aria-label=\"Read more about How to Do an Effective Weekly Review in 10 Minutes\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-290","post","type-post","status-publish","format-standard","hentry","category-productivity","no-featured-image-padding"],"_links":{"self":[{"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/posts\/290","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/comments?post=290"}],"version-history":[{"count":6,"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/posts\/290\/revisions"}],"predecessor-version":[{"id":327,"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/posts\/290\/revisions\/327"}],"wp:attachment":[{"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/media?parent=290"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/categories?post=290"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/tags?post=290"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":283,"date":"2021-01-15T14:28:49","date_gmt":"2021-01-15T13:28:49","guid":{"rendered":"https:\/\/robingeuens.com\/?p=283"},"modified":"2022-07-16T13:41:44","modified_gmt":"2022-07-16T11:41:44","slug":"theory-of-constraints-goal-setting","status":"publish","type":"post","link":"https:\/\/robingeuens.com\/blog\/theory-of-constraints-goal-setting\/","title":{"rendered":"How the Theory of Constraints Helps You Set Better Goals"},"content":{"rendered":"\n<p>Working hard and making progress are two different things.<\/p>\n\n\n\n<p>You can put in a lot of work and not make any progress whatsoever. And yet, instead of focusing on progress, everyone seems to focus on hustling and working themselves to the bone.<\/p>\n\n\n\n<p>Don't get me wrong \u2014 hard work is a good thing. But if you're working hard for the sake of working hard, you're wasting your time. You have to apply it to the right thing as well.<\/p>\n\n\n\n<p>One of the best ways to find out what that \"thing\" should be is to use the theory of constraints to look where you can make the biggest improvement.<\/p>\n\n\n\n<p><strong>Table of contents<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"#nutshell\" data-type=\"internal\" data-id=\"#nutshell\">The theory of constraints in a nutshell<\/a><\/li><li><a href=\"#toc-goal-setting\" data-type=\"internal\" data-id=\"#toc-goal-setting\">Applying the TOC to goals setting<\/a><\/li><li><a href=\"#focal-point\" data-type=\"internal\" data-id=\"#focal-point\">Make bottlenecks the focal point of your goals<\/a><\/li><li><a href=\"#what-to-do\">Knowing how to set goals is less important than knowing what to focus on.<\/a><\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"nutshell\">The theory of constraints in a nutshell<\/h2>\n\n\n\n<p>The theory of constraints (TOC) is a management philosophy that assumes that any given system will only be as productive as its slowest part. It's mostly used in manufacturing and project management, but it can be applied to general productivity as well.<\/p>\n\n\n\n<p>To give you an example of the TOC, let's say you have a production line with 3 machines. The first machine feeds into the second one, and the second one feeds into the third.<\/p>\n\n\n\n<p>If the first machine is able to produce 120 units per hour, the second machine 40 units per hour, and the third machine 100 units per hour, the total output will only be 40 units per hour.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" data-src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2021\/01\/Theory-of-constraints-illustration.png\" alt=\"Theory of constraints illustration\n\" class=\"wp-image-284 lazyload\"\/><\/figure>\n\n\n\n<p>The middle machine acts as a constraint \u2014 a bottleneck \u2014 on the entire system. If you wanted to increase the output, improving the first and third machine would be useless since you still have the bottleneck. The only way to improve the system at that point is to improve the capacity of the middle machine.<\/p>\n\n\n\n<p>Once that's above the capacity of one of the other machines (let's say you can improve it to 110 units per hour), then you can focus on something else. In that case, another machine becomes the bottleneck and you start the process all over again.<\/p>\n\n\n\n<p>The theory of constraints focuses on 3 things:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Inventory:<\/strong>&nbsp;The materials you need in order to produce a product that can be sold.<\/li><li><strong>Operational expense:<\/strong>&nbsp;The money spent on turning inventory into something that can be sold.<\/li><li><strong>Throughput:<\/strong>&nbsp;The rate at which the entire system generates money through sales.<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"toc-goal-setting\">Applying the TOC to goals setting<\/h2>\n\n\n\n<p>Although the TOC was made for manufacturing, you can apply it to general goal setting as well. Doesn't matter if it's for a company or your personal goals. Its value is in showing what part of a system you should work on to get the biggest improvement.<\/p>\n\n\n\n<p>Every goal or change is achieved by going through a process. You make plans, you execute on those plans, and the result is the achievement of a goal or change.<\/p>\n\n\n\n<p>These steps are similar to the theory of constraints. Where plans are inventory, execution is the operational costs, and change is the output. The goal of the theory of constraints is to maximize the throughput of a system. In the case of goal setting, maximizing the amount of change made.<\/p>\n\n\n\n<p>But in order to implement the theory of constraints in our goal setting, we first have to look at what we are measuring. If you look at regular goal setting a lot of people focus on what's referred to as \"lag measures\". These are things like increased revenue, weight lost, or the number of users your app has.<\/p>\n\n\n\n<p>The problem with lag measures is that you have no way of directly influencing them. They're the result of a preceding action.<\/p>\n\n\n\n<p>If you focus on lag measures you become oblivious to bottlenecks. Saying you want to increase revenue by 20% makes it harder to spot the bottlenecks in your system than when you try to conduct 3 conversion rate optimization experiments. When you set lag goals you're only looking at the end result of the system to see if it works.<\/p>\n\n\n\n<p>What we want to do is look into the system itself. Instead of focusing on the result, we focus on&nbsp;<strong>the actions<\/strong>&nbsp;we need to take in order to get that result. These are referred to as \"lead measures\". These are things like emails sent, articles written, features shipped.<\/p>\n\n\n\n<p>Lead measures don't require other people and are fully in our control. Once we focus on lead measures, we can start to look at what part of our system is the most constrained and needs optimizing.<\/p>\n\n\n\n<p><strong>The bottleneck is the part of our system that has the most amount of unfinished work (or plans) in front of it.<\/strong><\/p>\n\n\n\n<p>For example: Let's say you're trying to grow your e-commerce store. You created a user-friendly website, your pricing is on point, and you have a good delivery system. The only problem is you get 2 visits a day to your website, you haven't gotten round to building up the acquisition part of the store. Acquisition is the bottleneck. Focusing on optimizing conversion rate or pricing would be pointless.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" data-src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2021\/01\/Theory-of-constraints-ecommerce-example.png\" alt=\"theory of constraints e-commerce example\" class=\"wp-image-285 lazyload\"\/><noscript><img decoding=\"async\" width=\"702\" height=\"332\" src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2021\/01\/Theory-of-constraints-ecommerce-example.png\" alt=\"theory of constraints e-commerce example\" class=\"wp-image-285 lazyload\" srcset=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2021\/01\/Theory-of-constraints-ecommerce-example.png 702w, https:\/\/robingeuens.com\/wp-content\/uploads\/2021\/01\/Theory-of-constraints-ecommerce-example-550x260.png 550w\" sizes=\"(max-width: 702px) 100vw, 702px\" \/><\/noscript><\/figure>\n\n\n\n<p>If you're looking at this and thinking \"well, duh\", you'd be surprised how many times look over this when they're in the thick of it. And let's be honest, we've all focused on something different when we knew in the back of our minds we should be doing something else. Shiny object syndrome and all that.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"focal-point\">Make bottlenecks the focal point of your goals<\/h2>\n\n\n\n<p>To maximize the rate at which change takes place, you need to focus on the most constrained part of the system. You need to figure out ways to either relieve the bottleneck so it doesn't act like a one anymore, or you need to make sure the bottleneck is always working. If you lose time on the bottleneck, you lose time in the entire system.<\/p>\n\n\n\n<p>Let me explain that last part a bit more. let's use the first example of our production line that has 3 machines. If the first machine (the one that was producing 120 units\/hour) loses capacity and drops to 60 units per hour, our throughput remains the same \u2014 40 units per hour. But if our middle machine (the bottleneck that was producing 40 units per hour) drops to 30, we're only producing 30 units per hour and we're losing money.<\/p>\n\n\n\n<p>In our e-commerce example, we know acquisition is a bottleneck. So when we set goals for the year\/quarter\/week, the focal point of our goals should be to relieve this bottleneck by increasing traffic to the point where it isn't a constraint anymore. If we stop focusing on increasing traffic, the entire business stops growing. If you hired a PPC agency to help you get traffic, it means they should be running ads all the time. If they stop, your entire business loses money. (Also, you should probably invest in SEO.)<\/p>\n\n\n\n<p>Only when we have enough traffic that other parts of our store start having piles of unfinished work in front of it can we start focusing on something else.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The TOC can be applied to different scopes &amp; areas<\/h2>\n\n\n\n<p>You can apply this mental model to different levels of your business. You can have a high-level view, where you look at acquisition, conversion, and economics, or you can go down a level and look at what the most constrained part is of a department.<\/p>\n\n\n\n<p>Back to our e-commerce example, we know that acquisition is a problem. And within our acquisition, we find out SEO is a problem. Within SEO, we find we don't have the links to rank for any good keywords. Going even further, we realize we just don't have the time to do guest posts or do the necessary outreach.<\/p>\n\n\n\n<p>Drilling down (or having each department drill-down) to what their most constrained part is will reveal the bottlenecks in every system in your business. You can then go back to your high-level view and decide what bottlenecks have priority over the other. The ultimate goal is to optimize the whole system \u2014 your business. Not just individual parts.<\/p>\n\n\n\n<p>You can apply this mindset to other parts of your life if you wanted to. If you wanted to lose weight, for example, you can look at the system and see what the bottleneck is. If you're motivated, exercise daily, but eat junk food all day, you're not going to get anywhere. In this case, focusing on good nutrition will give you the biggest improvement.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" data-src=\"https:\/\/robingeuens.com\/wp-content\/uploads\/2021\/01\/Theory-of-constraints-losing-weight-example.png\" alt=\"theory of constraints weight loss example\n\" class=\"wp-image-286 lazyload\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"what-to-do\">Knowing how to set goals is less important than knowing what to focus on.<\/h2>\n\n\n\n<p>There are plenty of ways you can set goals. There are SMART goals, OKRs, BHAGs, and other fancy acronyms. The point is: none of these will get you anywhere if you focus on the wrong thing.<\/p>\n\n\n\n<p>Once you start applying this principle to your goal setting you can get more done in less time and with less effort. Instead of working hard on a lot of things and not seeing any change, you'll be able to see more and more progress. It's a simple but useful principle.<\/p>\n\n\n\n<p>Let's recap what we learned:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Identify the bottleneck in the system by looking at what has a big pile of unfinished work in front of it.<\/li><li>Make the bottleneck the focal point of your goals and be aware of goals that depend on it.<\/li><li>Relieve or remove the bottleneck from the system<\/li><li>If work starts piling up in a different part of the system, you have a new bottleneck and you can start over again.<\/li><\/ol>\n","protected":false},"excerpt":{"rendered":"<p>Working hard and making progress are two different things. You can put in a lot of work and not make any progress whatsoever. And yet, instead of focusing on progress, everyone seems to focus on hustling and working themselves to the bone. Don&#8217;t get me wrong \u2014 hard work is a good thing. But if &#8230; <\/p>\n<p class=\"read-more-container\"><a title=\"How the Theory of Constraints Helps You Set Better Goals\" class=\"read-more button\" href=\"https:\/\/robingeuens.com\/blog\/theory-of-constraints-goal-setting\/#more-283\" aria-label=\"Read more about How the Theory of Constraints Helps You Set Better Goals\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[14],"class_list":["post-283","post","type-post","status-publish","format-standard","hentry","category-productivity","tag-productivity","no-featured-image-padding"],"_links":{"self":[{"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/posts\/283","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/comments?post=283"}],"version-history":[{"count":2,"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/posts\/283\/revisions"}],"predecessor-version":[{"id":288,"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/posts\/283\/revisions\/288"}],"wp:attachment":[{"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/media?parent=283"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/categories?post=283"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/tags?post=283"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":203,"date":"2020-10-30T16:25:25","date_gmt":"2020-10-30T15:25:25","guid":{"rendered":"https:\/\/robingeuens.com\/?p=203"},"modified":"2022-07-16T13:41:44","modified_gmt":"2022-07-16T11:41:44","slug":"how-to-read-nonfiction-books","status":"publish","type":"post","link":"https:\/\/robingeuens.com\/blog\/how-to-read-nonfiction-books\/","title":{"rendered":"How to Read Nonfiction Books More Effectively"},"content":{"rendered":"\n<p>To read is to take a trip through time. Instead of figuring everything out ourselves, we can read the accounts of people who did it before.<\/p>\n\n\n\n<p>But let's be honest, reading has become a status symbol. People brag about reading hundreds of books or doing challenges like reading a book a week.<\/p>\n\n\n\n<p>The main idea behind it is valid \u2014 books make you smarter. But that's only part of the equation. Books only make you smarter if you work with the material.<\/p>\n\n\n\n<p>You can fly through an entire book, skim the main points, boast about how you read it, but when you have to explain its main point you can only talk about it in very vague terms.<\/p>\n\n\n\n<p>In this post, I'll explain how to read nonfiction effectively and how to get more out of books without having to blast through every bestseller list you can find.<\/p>\n\n\n\n<p>But first, let's explore why reading goals are hurting you.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Why setting a reading goal is a bad idea<\/h2>\n\n\n\n<p>First of all, it turns reading into a chore. Not all books are page-turners from start to finish \u2014 especially non-fiction books. If you insist on powering through to the end of each book, you create resentment towards them. Instead of looking forward to reading, you create this \"ugh\" feeling because you have to force yourself through a book you think is boring.<\/p>\n\n\n\n<p>And you might reach your goal in the end, but it's not really a success if you don't want to read any more after completing your goal.<\/p>\n\n\n\n<p>Accept that some books just aren't that great. Some books are written in a weird way, some books just aren't for you, and sometimes a book is mostly filler meant to pad 10 pages of actual information.<\/p>\n\n\n\n<p>Business and personal development books are notorious for this. They start out talking about how the idea in the book will revolutionize your business. That goes on for about 75 pages, after which you have 10 pages where they explain the actual idea. Once that part is over they start talking for another 75 pages about how mind-blowing the idea was and how it changed everything. Most of the time, those 10 pages in the middle are the only thing that matter.<\/p>\n\n\n\n<p>Second, focusing on the number of books we read only gives us what Charlie Munger called \"chauffeur knowledge\" in his&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/jamesclear.com\/great-speeches\/2007-usc-law-school-commencement-address-by-charlie-munger\" target=\"_blank\">2007 USC commencement speech<\/a>.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-style-default is-layout-flow wp-block-quote-is-layout-flow\"><p>\"I frequently tell the story of&nbsp;<a rel=\"noreferrer noopener\" style=\"user-select: auto;\" href=\"https:\/\/en.wikipedia.org\/wiki\/Max_Planck\" target=\"_blank\">Max Planck<\/a>, when he won the Nobel prize and went around Germany giving lectures on quantum mechanics. And the chauffeur gradually memorized the lecture and he said, \u201cWould you mind, professor Planck, just because it's so boring staying in our routines, would you mind if I gave the lecture this time and you just sat in front with my chauffeur's hat?\u201d And Planck said, \u201cSure.\u201d<br><br>And the chauffeur got up and he gave this long lecture on quantum mechanics, after which a physics professor stood up in the rear and asked a perfectly ghastly question. And the chauffeur said, \u201cWell, I'm surprised that in an advanced city like Munich I get such an elementary question. I'm going to ask my chauffeur to reply.\u201d<\/p><\/blockquote>\n\n\n\n<p>The chauffeur knew what to say, Planck understood what he was saying.<\/p>\n\n\n\n<p>I would argue that chauffeur knowledge is the main type of knowledge people get out of a book. We know what it's about, we can understand it, but the moment we have to explain the topic in our own words we realize we don't know the topic as well as we think we do.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">So slow down and focus on understanding<\/h2>\n\n\n\n<p>Why are you reading in the first place? To pass time? Because you heard a lot about the book? To gain knowledge? If you do it for bragging rights or to appear smart, reading loads of books is a big ol' waste of time. Might as well just start one of those inspirational Instagram accounts.<\/p>\n\n\n\n<p>If you're reading because you want to improve your knowledge or get better ideas then it pays to slow down. Slowing down will help you avoid getting chauffeur knowledge and get you to a place where you have a better understanding of subjects.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How to read more effectively<\/h2>\n\n\n\n<p>That being said, you do want to read a lot of books. They're full of insights others had to work years to obtain. So how do you read more books and still focus on understanding and gaining more knowledge about the subject?<\/p>\n\n\n\n<p>It all starts with being more selective about the books that you read. A book requires you to invest twice in it. Once with money, once with time. Since time is the most precious resource of the two, you have to be careful where you invest it in.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Picking the right books<\/h3>\n\n\n\n<p>Getting better information out of books starts with getting better books. In this case the saying \"garbage in, garbage out\" applies. If you pick books that are full of fluff and devoid of substance, your ideas and thoughts are going to be the same.<\/p>\n\n\n\n<p>But picking good books is a problem in itself. You don't know whether they are good or not until you've read it. And there's not enough time in the world to read them all.<\/p>\n\n\n\n<p>In this case, I like&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/www.collaborativefund.com\/blog\/how-to-read-lots-of-inputs-and-a-strong-filter\/\" target=\"_blank\">what Morgan Housel proposes<\/a>: Get interested in as many books as you can but be ruthless with your time. If a book doesn't interest you, stop reading. Or in his words:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>\"Without flooding your brain with inputs you\u2019ll be stuck in the teeny tiny world of what you\u2019ve personally experienced. But without a strong filter, you\u2019ll be overwhelmed with choice and paralyzed by inaction.\"<\/p><\/blockquote>\n\n\n\n<p>I also like&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/perell.com\/essay\/choose-reading\/\" target=\"_blank\">the advice that David Perell gives<\/a>: Read the books the ideal version of yourself (in 20 years) would have been proud to have read. Once you adopt this mindset you stop whatever book is the flavor of the day and you start reading higher-quality, challenging books.<\/p>\n\n\n\n<p>With books, it's easy to get caught up in what's popular that specific day. I've read a lot of books just because I heard about them on podcasts or saw a tweet about them. Some of them are great, don't get me wrong, but the chances that they're revolutionary or that they will stand the test of time are slim.<\/p>\n\n\n\n<p>If a book has been in print for 40 years, you can expect it to be in print for another 40 years. If it has survived that long chances are it's good. Time is a great filter for quality.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">T-Shaped reading<\/h3>\n\n\n\n<p>After creating a long list of books, I like to use what I call T-shaped reading. The main idea behind it reading is that you get interested in as many books as you can, but you gradually invest more time into the books that you really care about or that you really find interesting. Read enough about the rest to get the overall gist of it.<\/p>\n\n\n\n<p>In practice this looks something like this:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Before buying a book, check Amazon (or Google) for reviews. Lengthy reviews often talk about the takeaways and give you a good overview of the book.<br><\/li><li>If you're still interested in the book after that, check for summaries or reviews. This will give you a good idea of what the book is about without spending hours reading through the material. Most of the popular books have extensive summaries written about them.<br><\/li><li>If you're still intrigued and want to learn more about the topic, check YouTube for interviews with the author any speeches they gave. A lot of times the author of a nonfiction book has done interviews, seminars, or speeches where they summarize the main idea of the book. Take, for example, the book \"A more beautiful question\" by Warren Berger. You can buy the book and spend hours reading it, or you can just&nbsp;<a rel=\"noreferrer noopener\" style=\"user-select: auto;\" href=\"https:\/\/www.youtube.com\/watch?v=Scu-4xhYIVc\" target=\"_blank\">watch this presentation<\/a>&nbsp;and get the gist of it.<br><\/li><li>If you still want to learn more about the subject\/ book then you can move to buying the book and reading it. But once you are reading, read with the intention of understanding. Take notes and think through the material. Take the points mentioned in the book and push them to their extremes. Twist them and try to break them. It takes longer but you'll have a better understanding.<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Taking notes<\/h3>\n\n\n\n<p>As the saying goes: The shortest pencil is longer than the longest memory. When reading for understanding, note-taking is the most useful tool you have. Note-taking is what turns chauffeur knowledge into Planck knowledge. Here are a few tips to take good notes:<\/p>\n\n\n\n<p>Write down ideas as you think of them and always have something at hand to write ideas down. Reading doesn't just help you with learning more about the topic but it also helps you generate ideas. Personally, whenever I'm reading I have more ideas than whenever I sit down and try to come up with them.<\/p>\n\n\n\n<p>Take notes in your own words. With books, it's easy to think that you understand the material, but when you have to explain the topic in your own words you quickly realize you don't know as much as you think you do. When you have to explain the topic in your own words it forces you to think through the material and understand it at its core.<\/p>\n\n\n\n<p>Act like you're going to write an article about the topic you're reading. Even if you don't plan on writing an article, acting as if will make you more critical of the information that you're' writing down. It makes you pay attention to any holes in the arguments and the quality of sources.<\/p>\n\n\n\n<p>Write down enough of the context so six month from now you can still understand what you wrote. As I explained in my article about&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/robingeuens.com\/blog\/build-a-second-brain-obsidian\" target=\"_blank\">building a second brain<\/a>, the note can make total sense when you write it down but if you look at it again a year later it doesn't make sense at all.<\/p>\n\n\n\n<p>Have a place where you can hold ideas and notes so your mind is freed up and you can think of new ideas and new connections. I recommend using a&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/robingeuens.com\/blog\/build-a-second-brain-obsidian\" target=\"_blank\">tool like Obsidian<\/a>&nbsp;or Roam to keep track of the knowledge you're gathering and any new ideas your generating.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Don't focus on reading more books, just focus on reading more<\/h2>\n\n\n\n<p>Wanting to read more books is a great goal \u2014 if you do it for the right reasons. Instead of setting a goal for yourself to read a book a week, just set yourself the goal of reading for an hour or two every day. You'll gain more knowledge and have more fun than if you try to force yourself to read.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>To read is to take a trip through time. Instead of figuring everything out ourselves, we can read the accounts of people who did it before. But let&#8217;s be honest, reading has become a status symbol. People brag about reading hundreds of books or doing challenges like reading a book a week. The main idea &#8230; <\/p>\n<p class=\"read-more-container\"><a title=\"How to Read Nonfiction Books More Effectively\" class=\"read-more button\" href=\"https:\/\/robingeuens.com\/blog\/how-to-read-nonfiction-books\/#more-203\" aria-label=\"Read more about How to Read Nonfiction Books More Effectively\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,12],"tags":[],"class_list":["post-203","post","type-post","status-publish","format-standard","hentry","category-general","category-knowledge-management","no-featured-image-padding"],"_links":{"self":[{"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/posts\/203","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/comments?post=203"}],"version-history":[{"count":11,"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/posts\/203\/revisions"}],"predecessor-version":[{"id":326,"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/posts\/203\/revisions\/326"}],"wp:attachment":[{"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/media?parent=203"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/categories?post=203"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/robingeuens.com\/wp-json\/wp\/v2\/tags?post=203"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}]