<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <updated>2026-04-12T06:42:04Z</updated>
  <generator>https://yabu.me</generator>

  <title>Nostr notes by Trey Hunner 🐍</title>
  <author>
    <name>Trey Hunner 🐍</name>
  </author>
  <link rel="self" type="application/atom+xml" href="https://yabu.me/npub106g4n7la25nyzhyd9h3wf3m9fcmxpzplnn9wwg98p73uru70razsjsuas2.rss" />
  <link href="https://yabu.me/npub106g4n7la25nyzhyd9h3wf3m9fcmxpzplnn9wwg98p73uru70razsjsuas2" />
  <id>https://yabu.me/npub106g4n7la25nyzhyd9h3wf3m9fcmxpzplnn9wwg98p73uru70razsjsuas2</id>
  <icon>https://files.mastodon.social/accounts/avatars/108/420/895/550/815/148/original/0f49291ea6c9fc76.jpg</icon>
  <logo>https://files.mastodon.social/accounts/avatars/108/420/895/550/815/148/original/0f49291ea6c9fc76.jpg</logo>




  <entry>
    <id>https://yabu.me/nevent1qqsve0m6fzx49f3tq4trqp6w5xjugnxtzfzxahu2xv7w08fasq3fc3gzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu05229kzc8</id>
    
      <title type="html">Parul Gupta comparing #Python packaging to preparing a gift at ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsve0m6fzx49f3tq4trqp6w5xjugnxtzfzxahu2xv7w08fasq3fc3gzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu05229kzc8" />
    <content type="html">
      Parul Gupta comparing #Python packaging to preparing a gift at #PyBeach&lt;br/&gt; &lt;img src=&#34;https://files.mastodon.social/media_attachments/files/115/277/705/976/681/838/original/eaabda947603ea1b.jpg&#34;&gt; &lt;br/&gt;
    </content>
    <updated>2025-09-27T18:37:31Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqspg83nl7yurc690g6mve56l7hcuws489ugfs7qpkw0mpf2pljwkwgzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu0529wpynd</id>
    
      <title type="html">Anyone know whether there&amp;#39;s ever been a PEP for storing the ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqspg83nl7yurc690g6mve56l7hcuws489ugfs7qpkw0mpf2pljwkwgzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu0529wpynd" />
    <content type="html">
      Anyone know whether there&amp;#39;s ever been a PEP for storing the end of life date for each Python version within Python?&lt;br/&gt;&lt;br/&gt;I&amp;#39;m imagining a sys.supported_until datetime object.&lt;br/&gt;&lt;br/&gt;I&amp;#39;d love to ask each of my current Python installations whether they&amp;#39;re supported rather than looking that information up in online docs.&lt;br/&gt;&lt;br/&gt;#Python
    </content>
    <updated>2024-12-20T02:00:01Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsd883rdan64ux0h5lvqlhh8y6ta544jepraa38a3tytva8f9t0xaqzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu0523ln0tz</id>
    
      <title type="html">I think I just found my least favorite way to accurately check ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsd883rdan64ux0h5lvqlhh8y6ta544jepraa38a3tytva8f9t0xaqzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu0523ln0tz" />
    <content type="html">
      I think I just found my least favorite way to accurately check whether a string (value) represents a number in #Python. 😬 &lt;br/&gt;&lt;br/&gt;value.removeprefix(&amp;#34;-&amp;#34;).replace(&amp;#34;.&amp;#34;, &amp;#34;&amp;#34;, 1).isnumeric()
    </content>
    <updated>2024-12-19T19:21:01Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqszyeplwhrlrq5hzjlzwwuvxzzmwnq7qlsaqqtwjkwfcf67z5cuzdszyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu0528n8769</id>
    
      <title type="html">thanks Elena!</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqszyeplwhrlrq5hzjlzwwuvxzzmwnq7qlsaqqtwjkwfcf67z5cuzdszyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu0528n8769" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsg847tl50m6dps8kda7m8zdxwn522798ctfjchew7vy6a2en6c4agzu3xxl&#39;&gt;nevent1q…3xxl&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;thanks Elena!
    </content>
    <updated>2024-12-19T01:16:20Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsztrmy2q5rrx5prafy8ulhclfdjw6ssxrg22jqjlz4z0gjzlpnuuqzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052twhwnk</id>
    
      <title type="html">You can think of the tokenize, ast, and dis modules as ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsztrmy2q5rrx5prafy8ulhclfdjw6ssxrg22jqjlz4z0gjzlpnuuqzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052twhwnk" />
    <content type="html">
      You can think of the tokenize, ast, and dis modules as progressively deeper steps in the process of parsing the code in a Python module.&lt;br/&gt;&lt;br/&gt;Read more 👉 &lt;a href=&#34;https://trey.io/9v8gwb&#34;&gt;https://trey.io/9v8gwb&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;#Python&lt;br/&gt; &lt;img src=&#34;https://files.mastodon.social/media_attachments/files/113/664/956/876/099/436/original/bc8aad79a5486e68.jpg&#34;&gt; &lt;br/&gt;
    </content>
    <updated>2024-12-16T22:53:21Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqstmpts3zr4ludcga0a3h4gax4cjhxvx6ye24cz5zuhr3ndqqt4hyczyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu0523r2z64</id>
    
      <title type="html">I&amp;#39;ve been thinking about these two problems over the past ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqstmpts3zr4ludcga0a3h4gax4cjhxvx6ye24cz5zuhr3ndqqt4hyczyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu0523r2z64" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsfx3jnysxk0nk7kn8hk8sww5hxgpy7q4qzme7zre3r9adnhg9ylaq3q9q9l&#39;&gt;nevent1q…9q9l&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I&amp;#39;ve been thinking about these two problems over the past month and it&amp;#39;s inspired a big update this week to the way exercise revisiting works in Python Morsels.&lt;br/&gt;&lt;br/&gt;Exercise revisiting has been a Python Morsels feature for a few years, but revisiting the same exercise again feels boring and may sound pointless, so this feature has been severely underused.&lt;br/&gt;&lt;br/&gt;As of this week, revisiting an exercise is much more highly encouraged, which I&amp;#39;m hoping will improve learning retention. Time will tell! 🤞
    </content>
    <updated>2024-12-13T19:04:08Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs2qjmw43r6hcfd8jughry7j9y7ggq0hfcyhdlva7vpcze8g907v2czyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu0522y7n32</id>
    
      <title type="html">2️⃣ On not enough focus on repetition... So we learn by ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs2qjmw43r6hcfd8jughry7j9y7ggq0hfcyhdlva7vpcze8g907v2czyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu0522y7n32" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsp9nqqr5rc8hr78st036eslkllx88wtlpm3ddptaq84vgwd5lmvwse2qv9v&#39;&gt;nevent1q…qv9v&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;2️⃣ On not enough focus on repetition...&lt;br/&gt;&lt;br/&gt;So we learn by information retrieval (quizzing, elaborating, doing), but we don&amp;#39;t just need to retrieve once.&lt;br/&gt;&lt;br/&gt;We learn through &amp;#34;repeated&amp;#34; information retrieval attempts. Learning doesn&amp;#39;t typically stick unless we retrieve information repeatedly, spaced out over many days.&lt;br/&gt;&lt;br/&gt;Repetition can feel VERY boring. You tried the thing. Maybe you even succeeded at the thing. Now you had to do the same thing again a week later? What?!
    </content>
    <updated>2024-12-13T19:04:07Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsqykynehhum9p99ga7e359je2nh3t2h02f96z603pc6tyqgfcz6sgzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052kmenfc</id>
    
      <title type="html">Learning a new skill? I bet you&amp;#39;re making 2 big mistakes. 1. ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsqykynehhum9p99ga7e359je2nh3t2h02f96z603pc6tyqgfcz6sgzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052kmenfc" />
    <content type="html">
      Learning a new skill? I bet you&amp;#39;re making 2 big mistakes. &lt;br/&gt;&lt;br/&gt;1. You&amp;#39;re focusing too much on consuming information&lt;br/&gt;2. You&amp;#39;re not focusing enough on repetition&lt;br/&gt;&lt;br/&gt;I notice new Python learners falling into this trap. It&amp;#39;s a big problem with the resources we use to learn and the way we talk about and use those resources.&lt;br/&gt;&lt;br/&gt;🧵&lt;br/&gt;&lt;br/&gt;#learning #teaching #Python
    </content>
    <updated>2024-12-13T19:04:06Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqszg6vxy7xmfsq6m7g3jdnf779x7avxfddte6n9rjtkefltrr43djgzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052rhehf0</id>
    
      <title type="html">Have you used &amp;#34;raise ... from None&amp;#34; in #Python? If so, ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqszg6vxy7xmfsq6m7g3jdnf779x7avxfddte6n9rjtkefltrr43djgzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052rhehf0" />
    <content type="html">
      Have you used &amp;#34;raise ... from None&amp;#34; in #Python?&lt;br/&gt;&lt;br/&gt;If so, what was your use case for &amp;#34;from None&amp;#34;?&lt;br/&gt;&lt;br/&gt;What was the original exception that you were suppressing from the traceback and do you feel that suppression was helpful for users of your code (or were you just having fun with a new thing you learned)?
    </content>
    <updated>2024-12-10T03:09:00Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsdhut73eljarp3rud6anfhxxv3glgzn2rz38xsjgyksvw430lpflszyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052a9w9ly</id>
    
      <title type="html">&amp;#34;But there&amp;#39;s an even better way to check whether one ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsdhut73eljarp3rud6anfhxxv3glgzn2rz38xsjgyksvw430lpflszyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052a9w9ly" />
    <content type="html">
      &amp;#34;But there&amp;#39;s an even better way to check whether one string is the substring of another string.&amp;#34;&lt;br/&gt;&lt;br/&gt;Read more 👉 &lt;a href=&#34;https://trey.io/5gu5Fs&#34;&gt;https://trey.io/5gu5Fs&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;#python
    </content>
    <updated>2024-12-09T14:45:32Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsz4n08mc0sh79tddnxrx9pg7hpa9khgcnqgag0j30x95mvu60dd7szyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052sm29e6</id>
    
      <title type="html">Recursion is most often useful when the problem you&amp;#39;re ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsz4n08mc0sh79tddnxrx9pg7hpa9khgcnqgag0j30x95mvu60dd7szyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052sm29e6" />
    <content type="html">
      Recursion is most often useful when the problem you&amp;#39;re solving involves traversing or constructing a tree-like structure.&lt;br/&gt;&lt;br/&gt;Read more 👉 &lt;a href=&#34;https://trey.io/vIw7Up&#34;&gt;https://trey.io/vIw7Up&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;#recursion #python
    </content>
    <updated>2024-12-03T07:17:15Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqstwe75v9deknyg0uagw4zqyxzf97gma05zu65vuszgzgu48cx8tkqzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu0524p7px9</id>
    
      <title type="html">Last day to get Python Jumpstart for 50% off. 🐍 There&amp;#39;s a ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqstwe75v9deknyg0uagw4zqyxzf97gma05zu65vuszgzgu48cx8tkqzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu0524p7px9" />
    <content type="html">
      Last day to get Python Jumpstart for 50% off. 🐍&lt;br/&gt;&lt;br/&gt;There&amp;#39;s a 30 day money-back guarantee, no questions asked. 💰&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://pym.dev/courses/jumpstart/overview&#34;&gt;https://pym.dev/courses/jumpstart/overview&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;#Python #CyberMonday
    </content>
    <updated>2024-12-02T19:21:00Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsqm2acsxfjfah290uzeq4t7vksl8ruz94w8ay9dsgwpk4z0mvkgsqzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu0526tmgg5</id>
    
      <title type="html">If you&amp;#39;re new to #Python and seeking a solid hands-on ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsqm2acsxfjfah290uzeq4t7vksl8ruz94w8ay9dsgwpk4z0mvkgsqzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu0526tmgg5" />
    <content type="html">
      If you&amp;#39;re new to #Python and seeking a solid hands-on introduction, keep in mind that tomorrow is the last day to save $100 on Python Jumpstart. ⏰&lt;br/&gt;&lt;br/&gt;Money-back guarantee for 30 days, no questions asked. 💌&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://pym.dev/courses/jumpstart/overview&#34;&gt;https://pym.dev/courses/jumpstart/overview&lt;/a&gt;
    </content>
    <updated>2024-12-02T01:46:00Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs8cu3pld7uggch2ufxz08t27w69e3zg9nekg8yvz4ux6zhdnju7tszyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052p7m4cd</id>
    
      <title type="html">Learning Python is like learning the flute. 🪈 You won&amp;#39;t ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs8cu3pld7uggch2ufxz08t27w69e3zg9nekg8yvz4ux6zhdnju7tszyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052p7m4cd" />
    <content type="html">
      Learning Python is like learning the flute. 🪈&lt;br/&gt;&lt;br/&gt;You won&amp;#39;t get far from just watching videos and reading. 📼&lt;br/&gt;&lt;br/&gt;Practice should take up MOST of your learning time. 🧠&lt;br/&gt;&lt;br/&gt;That&amp;#39;s why my new #Python Jumpstart course is practice-centered. Each day, you&amp;#39;ll watch a 4 minute video and then attempt to write Python code. ⌨&lt;br/&gt;&lt;br/&gt;It&amp;#39;s 2 hours of video, but about 20 hours of carefully crafted bite-sized exercises. 🍪&lt;br/&gt;&lt;br/&gt;I just launched this course and it&amp;#39;s 50% off, but only through Monday. 💸&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://pym.dev/courses/jumpstart/overview&#34;&gt;https://pym.dev/courses/jumpstart/overview&lt;/a&gt;
    </content>
    <updated>2024-11-30T19:21:01Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsd7p7x78uauuv48pr74tf2jznj8cej4ze0q5tnwqegds9kkcf59lqzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052tcykqh</id>
    
      <title type="html">The number of items to retrieve. 3 in this case.</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsd7p7x78uauuv48pr74tf2jznj8cej4ze0q5tnwqegds9kkcf59lqzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052tcykqh" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs9vajcwdzarl7hz9qde293t40328w5f2c7duyy65uah8ntg6weg2ctvjym8&#39;&gt;nevent1q…jym8&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;The number of items to retrieve. 3 in this case.
    </content>
    <updated>2024-11-27T05:03:18Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqszpuzn7sz2y6vg06dukdmdugmq0m48ydmjrk29as8j45nh6gkg89qzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052ddsm9a</id>
    
      <title type="html">Avoid unnecessary sorting in Python. ❌ Instead of this: ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqszpuzn7sz2y6vg06dukdmdugmq0m48ydmjrk29as8j45nh6gkg89qzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052ddsm9a" />
    <content type="html">
      Avoid unnecessary sorting in Python.&lt;br/&gt;&lt;br/&gt;❌ Instead of this:&lt;br/&gt;smallest = sorted(items)[0]&lt;br/&gt;&lt;br/&gt;✅ Do this:&lt;br/&gt;smallest = min(items)&lt;br/&gt;&lt;br/&gt;❌ Instead of this:&lt;br/&gt;smallest = sorted(items)[:3]&lt;br/&gt;&lt;br/&gt;✅ Do this:&lt;br/&gt;import heapq&lt;br/&gt;smallest = heapq.nsmallest(3, items)&lt;br/&gt;&lt;br/&gt;Why avoid sorting?&lt;br/&gt;&lt;br/&gt;1. Performance: min is O(n), nsmallest is O(n log k), sorted is O(n log n)&lt;br/&gt;2. Readability: min &amp;amp; nsmallest note what we really want our code to do&lt;br/&gt;&lt;br/&gt;For more on the performance of various operations in #Python, see &lt;a href=&#34;https://pym.dev/time-complexities/&#34;&gt;https://pym.dev/time-complexities/&lt;/a&gt;
    </content>
    <updated>2024-11-27T02:08:00Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsp2tc0uhyyx6cermaw868nyft0rszll6z5x626zl0akjncmuku39qzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052dpcx57</id>
    
      <title type="html">With Python Jumpstart, there are no 10-20 minute lectures in ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsp2tc0uhyyx6cermaw868nyft0rszll6z5x626zl0akjncmuku39qzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052dpcx57" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsp8c8hwrkplh5dz79n3y594s4rc5x485hffdtkg0kcp3d5cv3el5cvl6nz2&#39;&gt;nevent1q…6nz2&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;With Python Jumpstart, there are no 10-20 minute lectures in Jumpstart. Just 4 minutes on a new topic and then 30 minutes trying it yourself. (You&amp;#39;ll repeat that process many times 🔁)&lt;br/&gt;&lt;br/&gt;My new Python Jumpstart course is 50% off through Monday. 💸&lt;br/&gt;&lt;br/&gt;Ready to jumpstart your learning? 🎓&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://pym.dev/courses/jumpstart/overview/&#34;&gt;https://pym.dev/courses/jumpstart/overview/&lt;/a&gt;
    </content>
    <updated>2024-11-26T16:43:01Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsp8c8hwrkplh5dz79n3y594s4rc5x485hffdtkg0kcp3d5cv3el5czyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052als9ra</id>
    
      <title type="html">Trouble learning Python? 🐍 You need active recall and spaced ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsp8c8hwrkplh5dz79n3y594s4rc5x485hffdtkg0kcp3d5cv3el5czyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052als9ra" />
    <content type="html">
      Trouble learning Python? 🐍&lt;br/&gt;&lt;br/&gt;You need active recall and spaced repetition. 🧠&lt;br/&gt;&lt;br/&gt;In other words, attempt to write code yourself to apply each new concept you visit and do this repeatedly over many days.&lt;br/&gt;&lt;br/&gt;Most Intro to Python courses consist of a series of lectures. 📺&lt;br/&gt;&lt;br/&gt;Good lectures can be a lot of fun, but they do very little to help making learning stick.&lt;br/&gt;&lt;br/&gt;That&amp;#39;s why my new Python Jumpstart course is 90% exercise-driven.&lt;br/&gt;&lt;br/&gt;#Python
    </content>
    <updated>2024-11-26T16:43:00Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsx23tgh9q5vua3hnx93s9wza93ll2drl9d549r43xr6wxj2qklmpgzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052tfq06q</id>
    
      <title type="html">In Python, instead of this: BASE_DIR = ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsx23tgh9q5vua3hnx93s9wza93ll2drl9d549r43xr6wxj2qklmpgzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052tfq06q" />
    <content type="html">
      In Python, instead of this:&lt;br/&gt;&lt;br/&gt;BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) &lt;br/&gt;&lt;br/&gt;I prefer this:&lt;br/&gt;&lt;br/&gt;BASE_DIR = pathlib.Path(__file__).resolve().parent.parent&lt;br/&gt;&lt;br/&gt;For more on the magic of Python&amp;#39;s pathlib module, check out the article I published last week: &lt;a href=&#34;https://pym.dev/pathlib-module&#34;&gt;https://pym.dev/pathlib-module&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;#Python #pathlib
    </content>
    <updated>2024-11-26T03:09:00Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs0w0393e735763zdnm32ekqdq04vp00h4svkzmhm498v2uucs527szyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052m9d47v</id>
    
      <title type="html">Folks have been asking me for YEARS whether I have a self-paced ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs0w0393e735763zdnm32ekqdq04vp00h4svkzmhm498v2uucs527szyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052m9d47v" />
    <content type="html">
      Folks have been asking me for YEARS whether I have a self-paced Intro to Python course.&lt;br/&gt;&lt;br/&gt;I&amp;#39;m finally launching one! It&amp;#39;s called Python Jumpstart. 🎉&lt;br/&gt;&lt;br/&gt;For this first launch week, it&amp;#39;s 50% off.&lt;br/&gt;&lt;br/&gt;Jumpstart your Python journey.&lt;br/&gt;&lt;a href=&#34;https://pym.dev/courses/jumpstart/overview/&#34;&gt;https://pym.dev/courses/jumpstart/overview/&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;#Python
    </content>
    <updated>2024-11-25T19:12:42Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsfekv7ny4vcz98agm2qqnwmpt0wghr2lcwe7vq8m97gzm3s20mrxczyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu0524fvf6m</id>
    
      <title type="html">There&amp;#39;s only ever one None value in memory within each Python ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsfekv7ny4vcz98agm2qqnwmpt0wghr2lcwe7vq8m97gzm3s20mrxczyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu0524fvf6m" />
    <content type="html">
      There&amp;#39;s only ever one None value in memory within each Python process.&lt;br/&gt;&lt;br/&gt;Read more 👉 &lt;a href=&#34;https://trey.io/8slkex&#34;&gt;https://trey.io/8slkex&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;#Python
    </content>
    <updated>2024-11-22T08:26:41Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs8e7dplpr5dsayf6w6vs0rh7rw4uenklej77urt9aqj6tp4fgyhxszyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu05298ud84</id>
    
      <title type="html">For the past 7 years, I&amp;#39;ve posted a summary of ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs8e7dplpr5dsayf6w6vs0rh7rw4uenklej77urt9aqj6tp4fgyhxszyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu05298ud84" />
    <content type="html">
      For the past 7 years, I&amp;#39;ve posted a summary of #Python-related Black Friday &amp;amp; Cyber Monday sales.&lt;br/&gt;&lt;br/&gt;I&amp;#39;m posting extra early this year. I&amp;#39;ll be updating as more sales are announced over the next week. Let me know if you hear of any I should add!&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://treyhunner.com/2024/11/python-black-friday-and-cyber-monday-sales-2024/&#34;&gt;https://treyhunner.com/2024/11/python-black-friday-and-cyber-monday-sales-2024/&lt;/a&gt;
    </content>
    <updated>2024-11-21T19:21:00Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsyc26d9pqqj4z0vncatg2nd797c9c3ax4wgwjtvfk83ycrk8xjwmqzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu0523pg7ws</id>
    
      <title type="html">I&amp;#39;ve been enjoying &amp;#34;uv tool&amp;#34; as a pipx replacement, ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsyc26d9pqqj4z0vncatg2nd797c9c3ax4wgwjtvfk83ycrk8xjwmqzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu0523pg7ws" />
    <content type="html">
      I&amp;#39;ve been enjoying &amp;#34;uv tool&amp;#34; as a pipx replacement, but I hadn&amp;#39;t looked into uvx.&lt;br/&gt;&lt;br/&gt;💡 uvx is a way to play with a #Python CLI tool without installing it.&lt;br/&gt;&lt;br/&gt;$ uvx --from strptime-cli strptime&lt;br/&gt;&lt;br/&gt;$ uvx --from dramatic python -m dramatic&lt;br/&gt;&lt;br/&gt;$ uvx names&lt;br/&gt;&lt;br/&gt;Or jump into a virtual environment with a package pre-installed:&lt;br/&gt;&lt;br/&gt;$ uvx --from requests python -q&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; import requests
    </content>
    <updated>2024-11-19T16:43:00Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs08uuv6lkjjca23g55ehzhsg522d0e4dsz08jhfhl9fjelva3m3mszyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052yp36cq</id>
    
      <title type="html">PEP idea from April 1 💡 Support for importing EVERYTHING: from ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs08uuv6lkjjca23g55ehzhsg522d0e4dsz08jhfhl9fjelva3m3mszyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052yp36cq" />
    <content type="html">
      PEP idea from April 1 💡&lt;br/&gt;&lt;br/&gt;Support for importing EVERYTHING:&lt;br/&gt;&lt;br/&gt;from * import *&lt;br/&gt;&lt;br/&gt;#Python
    </content>
    <updated>2024-11-18T04:39:17Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsr9t289p8uyxx3yecpwu4gquzq6ygfncmxalrr58tle5t05h7r2rczyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052sk6hzy</id>
    
      <title type="html">Question #Python-knowledgeable folks. I usually use &amp;amp; ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsr9t289p8uyxx3yecpwu4gquzq6ygfncmxalrr58tle5t05h7r2rczyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052sk6hzy" />
    <content type="html">
      Question #Python-knowledgeable folks.&lt;br/&gt;&lt;br/&gt;I usually use &amp;amp; recommend platform.system() for identifying the current OS that code runs on.&lt;br/&gt;&lt;br/&gt;Is that the best approach?&lt;br/&gt;&lt;br/&gt;I only ask because platform.system() returns a user-facing name (it&amp;#39;s not lowercased) and the docs for sys.platform note the possible names while platform.system()&amp;#39;s docs do not (Emscripten, WASI, and Cygwin are absent and I&amp;#39;m not even sure if those are the correct spellings for those platforms).
    </content>
    <updated>2024-11-11T22:32:06Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqstyv8lve5a40suf6tvg8ly2kslqkalsnyf459lxfuxwqv0l6xh69szyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052pdl5lu</id>
    
      <title type="html">The #Python 3.13 features I&amp;#39;m most excited about: 1. The new ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqstyv8lve5a40suf6tvg8ly2kslqkalsnyf459lxfuxwqv0l6xh69szyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052pdl5lu" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsvsa8vxp6xshr3v0ds7e8mm5hcwzvvxuc4kuunhl92wjllmu5fj2cx3km6w&#39;&gt;nevent1q…km6w&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;The #Python 3.13 features I&amp;#39;m most excited about:&lt;br/&gt;&lt;br/&gt;1. The new Python REPL 💖&lt;br/&gt;&lt;br/&gt;2. Virtual environments being ignored by git by default! 😮&lt;br/&gt;&lt;br/&gt;3. Two big PDB improvements: calling breakpoint() at the end of a code block works properly and Python expressions like help(x) and list(x) work properly! 🎉
    </content>
    <updated>2024-09-13T18:40:38Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsvsa8vxp6xshr3v0ds7e8mm5hcwzvvxuc4kuunhl92wjllmu5fj2czyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu0525mc7t3</id>
    
      <title type="html">What are your favorite new Python 3.13 features? #Python</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsvsa8vxp6xshr3v0ds7e8mm5hcwzvvxuc4kuunhl92wjllmu5fj2czyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu0525mc7t3" />
    <content type="html">
      What are your favorite new Python 3.13 features?&lt;br/&gt;&lt;br/&gt;#Python
    </content>
    <updated>2024-09-12T16:52:27Z</updated>
  </entry>

</feed>