<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <updated>2026-07-04T19:02:44Z</updated>
  <generator>https://njump.me</generator>

  <title>Nostr notes by Trey Hunner 🐍</title>
  <author>
    <name>Trey Hunner 🐍</name>
  </author>
  <link rel="self" type="application/atom+xml" href="https://njump.me/npub106g4n7la25nyzhyd9h3wf3m9fcmxpzplnn9wwg98p73uru70razsjsuas2.rss" />
  <link href="https://njump.me/npub106g4n7la25nyzhyd9h3wf3m9fcmxpzplnn9wwg98p73uru70razsjsuas2" />
  <id>https://njump.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://njump.me/nevent1qqs8040jrr8sghtz5un06q7wfh5d5wrcc4jz4frdevltdrfc6v3t2ugzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu0528plqtu</id>
    
      <title type="html">Python Tip #100 (of 365): Prefer the pathlib.Path object&amp;#39;s ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqs8040jrr8sghtz5un06q7wfh5d5wrcc4jz4frdevltdrfc6v3t2ugzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu0528plqtu" />
    <content type="html">
      Python Tip #100 (of 365):&lt;br/&gt;&lt;br/&gt;Prefer the pathlib.Path object&amp;#39;s is_file() and is_dir() methods over exists()&lt;br/&gt;&lt;br/&gt;The exists method tells you SOMETHING is there but not WHAT.&lt;br/&gt;&lt;br/&gt;Using is_file() or is_dir() is more explicit about what you&amp;#39;re actually checking for, and usually what you actually want.&lt;br/&gt;&lt;br/&gt;Usually when I find myself using exists(), I&amp;#39;ll realize that I wanted one of the more specific methods instead.&lt;br/&gt;&lt;br/&gt;#Python #DailyPythonTip
    </content>
    <updated>2026-04-10T18:10:04Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsp4ektkcjn4scwmnmrsf5lrakppvvvetxdgh0wn0q9h5clg9xnhdczyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052erdvvm</id>
    
      <title type="html">Throwing some financial support toward @npub1vv8…6fhk? ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsp4ektkcjn4scwmnmrsf5lrakppvvvetxdgh0wn0q9h5clg9xnhdczyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052erdvvm" />
    <content type="html">
      Throwing some financial support toward &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/npub1vv848aca8vpv9lt2l2tj6wwehw7drwrs2e3ev9693rwz02jh448qcc6fhk&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Python Software Foundation&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;npub1vv8…6fhk&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;? Excellent!&lt;br/&gt;&lt;br/&gt;If you are a #Django user, consider also supporting the DSF.&lt;br/&gt;&lt;br/&gt;The Django Software Foundation has been running a fundraiser for the past couple weeks. It ends it 5 days.&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://www.djangoproject.com/weblog/2025/oct/23/pycharm-django-annual-fundraiser/&#34;&gt;https://www.djangoproject.com/weblog/2025/oct/23/pycharm-django-annual-fundraiser/&lt;/a&gt;
    </content>
    <updated>2025-11-05T21:20:46Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsqm9gusvpcc4x8hcq8sujtv7qpnpu8l2dglcn50m9tqr8cyxvsygszyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052jmv2mn</id>
    
      <title type="html">I am very glad the Python Software Foundation is sticking to ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsqm9gusvpcc4x8hcq8sujtv7qpnpu8l2dglcn50m9tqr8cyxvsygszyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052jmv2mn" />
    <content type="html">
      I am very glad the Python Software Foundation is sticking to their mission statement.&lt;br/&gt;&lt;br/&gt;I&amp;#39;m also bummed that the US government&amp;#39;s war on diversity forced the PSF to turn down $1,500,000 of funding.&lt;br/&gt;&lt;br/&gt;Imagine if PyLadies and Black Python Devs couldn&amp;#39;t have booths at PyCon. Imagine if Charlas and Mentored Sprints for Diverse Beginners couldn&amp;#39;t happen. Imagine no PyLadies auction and no funding for meetups that mention diversity. I&amp;#39;m glad we don&amp;#39;t live in that world.&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://pyfound.blogspot.com/2025/10/NSF-funding-statement.html&#34;&gt;https://pyfound.blogspot.com/2025/10/NSF-funding-statement.html&lt;/a&gt;
    </content>
    <updated>2025-10-27T16:55:11Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsvymnmg66fd3n8n9zwqz5p28l2uhc7amrjx5s7g2v8y6k2a047vpszyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu0529rljpn</id>
    
      <title type="html">If you had the ability to run some Python code in every Python ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsvymnmg66fd3n8n9zwqz5p28l2uhc7amrjx5s7g2v8y6k2a047vpszyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu0529rljpn" />
    <content type="html">
      If you had the ability to run some Python code in every Python REPL launched on your machine what would it do? (Automagically available PyPI dependencies are allowed) &lt;br/&gt;&lt;br/&gt;Asking for someone who just realized they are not yet heavily overusing their PYTHONSTARTUP file. (me)&lt;br/&gt;&lt;br/&gt;Seriously, I&amp;#39;m looking for ideas. Good ones, bad ones, all ideas welcome.&lt;br/&gt;&lt;br/&gt;#Python
    </content>
    <updated>2025-10-09T03:31:45Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqs9h5rvpfw73e2hf9x0xqfw592pwnfs2ks9fagl8u8t7pr4a8qsg0szyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052m2j5lg</id>
    
      <title type="html">Resources for creating #Python packages ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqs9h5rvpfw73e2hf9x0xqfw592pwnfs2ks9fagl8u8t7pr4a8qsg0szyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052m2j5lg" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs253dqmxt8fe5rcjlgzc79xngxvk4hgp80y6rjujh8nfuw3lk0vfqk7eh9p&#39;&gt;nevent1q…eh9p&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Resources for creating #Python packages&lt;br/&gt; &lt;img src=&#34;https://files.mastodon.social/media_attachments/files/115/277/786/610/123/256/original/adec837b6a50a5ed.jpg&#34;&gt; &lt;br/&gt;
    </content>
    <updated>2025-09-27T18:57:32Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqs253dqmxt8fe5rcjlgzc79xngxvk4hgp80y6rjujh8nfuw3lk0vfqzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu05236eepq</id>
    
      <title type="html">A PSA to use pyproject.toml instead of setup.py for #Python ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqs253dqmxt8fe5rcjlgzc79xngxvk4hgp80y6rjujh8nfuw3lk0vfqzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu05236eepq" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsve0m6fzx49f3tq4trqp6w5xjugnxtzfzxahu2xv7w08fasq3fc3g9vujj9&#39;&gt;nevent1q…ujj9&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;A PSA to use pyproject.toml instead of setup.py for #Python project metadata 📣&lt;br/&gt; &lt;img src=&#34;https://files.mastodon.social/media_attachments/files/115/277/742/242/611/445/original/fcd24647a0d555df.jpg&#34;&gt; &lt;br/&gt;
    </content>
    <updated>2025-09-27T18:46:50Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsve0m6fzx49f3tq4trqp6w5xjugnxtzfzxahu2xv7w08fasq3fc3gzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu05229kzc8</id>
    
      <title type="html">Parul Gupta comparing #Python packaging to preparing a gift at ...</title>
    
    <link rel="alternate" href="https://njump.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://njump.me/nevent1qqsd7n0egtczvdkd292w4y0nlu6yv938wxj5kzf3rvtutulz562dfvgzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052rjxdcv</id>
    
      <title type="html">Sad you can&amp;#39;t make it to DjangoCon US next week? Me too. ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsd7n0egtczvdkd292w4y0nlu6yv938wxj5kzf3rvtutulz562dfvgzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052rjxdcv" />
    <content type="html">
      Sad you can&amp;#39;t make it to DjangoCon US next week?&lt;br/&gt;&lt;br/&gt;Me too.&lt;br/&gt;&lt;br/&gt;That&amp;#39;s why I just bought an online ticket.&lt;br/&gt;&lt;br/&gt;You should too! Click &amp;#34;buy tickets&amp;#34; here: &lt;a href=&#34;https://2025.djangocon.us&#34;&gt;https://2025.djangocon.us&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;See you in the Slack!&lt;br/&gt;&lt;br/&gt;#Django #DjangoCon
    </content>
    <updated>2025-09-04T19:45:45Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqszn48gkkcaat45dnt48ektaxaesjw5tn4ph9acqaarxykm6vjfgaczyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052grqama</id>
    
      <title type="html">I am seeking a phrase to describe when someone with strong ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqszn48gkkcaat45dnt48ektaxaesjw5tn4ph9acqaarxykm6vjfgaczyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052grqama" />
    <content type="html">
      I am seeking a phrase to describe when someone with strong negative feelings about &amp;#34;LLMs&amp;#34; or &amp;#34;AI&amp;#34; blurts out poorly-thought-out hot takes.&lt;br/&gt;&lt;br/&gt;Takes like &amp;#34;if an LLM was able to do it, then it must not be worth doing&amp;#34;&lt;br/&gt;&lt;br/&gt;Like the opposite of &amp;#34;AI bro&amp;#34;.&lt;br/&gt;&lt;br/&gt;Using the description of &amp;#34;AI skeptic&amp;#34; isn&amp;#39;t fair to AI skeptics.&lt;br/&gt;&lt;br/&gt;Thoughts on names for this phenomenon?
    </content>
    <updated>2025-08-21T14:42:07Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqstk9hcqcl9jkt05hy4emnee0pjk9hf09t6cd8f56sh7mpc33c5xxgzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052n3q7lx</id>
    
      <title type="html">A friend is building an app to help immigrants detained by ICE. ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqstk9hcqcl9jkt05hy4emnee0pjk9hf09t6cd8f56sh7mpc33c5xxgzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052n3q7lx" />
    <content type="html">
      A friend is building an app to help immigrants detained by ICE.&lt;br/&gt;&lt;br/&gt;It&amp;#39;s a web app currently, but is intended to be a mobile app.&lt;br/&gt;&lt;br/&gt;Anyone have experience building and deploying mobile apps and interested in volunteering time to help a new app with a good cause?&lt;br/&gt;&lt;br/&gt;Feel free to share with others or boost for reach.&lt;br/&gt;&lt;br/&gt;Editing to link to the current repository:&lt;br/&gt;&lt;a href=&#34;https://github.com/habeas-project/habeas&#34;&gt;https://github.com/habeas-project/habeas&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;DM me for a Signal username you can use or contact the email at the bottom of the README file.&lt;br/&gt;&lt;br/&gt;#AndroidDev #iOSdev
    </content>
    <updated>2025-06-23T21:08:55Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsyrm9zxfwum6yqxh52fjfm0p88zr3hujsqhkush69yffgpgcy4rkczyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052lg7jvz</id>
    
      <title type="html">I have a medium fitted #PyConUS and would like to trade for a ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsyrm9zxfwum6yqxh52fjfm0p88zr3hujsqhkush69yffgpgcy4rkczyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052lg7jvz" />
    <content type="html">
      I have a medium fitted #PyConUS and would like to trade for a medium straight cut. If anyone has the opposite problem let me know tonight!&lt;br/&gt;&lt;br/&gt;I also have the same problem with a PyCon 2023 medium fitted shirt I accidentally bought.
    </content>
    <updated>2025-05-18T21:39:08Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsdfjm4d9s0yfu4xe96u0uk4zuc86ydkvf2ecqumjrmyu3nwtg4dhszyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052e8x4a4</id>
    
      <title type="html">I&amp;#39;m considering putting some very simple slides together for ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsdfjm4d9s0yfu4xe96u0uk4zuc86ydkvf2ecqumjrmyu3nwtg4dhszyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052e8x4a4" />
    <content type="html">
      I&amp;#39;m considering putting some very simple slides together for a lightning talk soon.&lt;br/&gt;&lt;br/&gt;What do you prefer to use for making slides in 2025?
    </content>
    <updated>2025-05-08T03:11:44Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsd4vzt5hk3jpy27255y4wvupucs2zpkxnqgntf3e5sagjynu3degqzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052lfdj8m</id>
    
      <title type="html">I&amp;#39;ve updated my &amp;#34;How to have a great first PyCon&amp;#34; ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsd4vzt5hk3jpy27255y4wvupucs2zpkxnqgntf3e5sagjynu3degqzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052lfdj8m" />
    <content type="html">
      I&amp;#39;ve updated my &amp;#34;How to have a great first PyCon&amp;#34; blog post for 2025.&lt;br/&gt;&lt;br/&gt;I linked to more blog posts from others on &amp;#34;how to PyCon&amp;#34;, updated links to this year&amp;#39;s PyCon website, added more updates around the implosion of Twitter, and updated some outdated references.&lt;br/&gt;&lt;br/&gt;See you at #PyConUS! 👋 #Python 🐍💖&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://trey.io/pycon-tips&#34;&gt;https://trey.io/pycon-tips&lt;/a&gt;
    </content>
    <updated>2025-04-09T01:08:00Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqswhukzxdm9lfjcgu2zw45efphqg8q5aw0j0qkfug66qsfgp53hgmgzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052yx0c0q</id>
    
      <title type="html">good question. The pitch I make to my clients for upgrading is ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqswhukzxdm9lfjcgu2zw45efphqg8q5aw0j0qkfug66qsfgp53hgmgzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052yx0c0q" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsv0vt07q6jefurpqw6w0uxxj00978vlns3gx4ztj06qd0wygfvlasc0x02f&#39;&gt;nevent1q…x02f&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;good question. The pitch I make to my clients for upgrading is around being able to use third-party packages, since most drop support for versions that have reached EOL.&lt;br/&gt;&lt;br/&gt;This is based on the premise that the EOL date is treated by many package maintainers roughly as &amp;#34;this is when we can stop supporting that Python version&amp;#34;, which seems at least partially true.
    </content>
    <updated>2024-12-20T20:01:15Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsygzzmjq8cgn2s5pdg0c56hh97j735cen8gewhadtpzf53ceewguqzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052u3vd5c</id>
    
      <title type="html">If there was a date baked-in to the interpreter that many of my ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsygzzmjq8cgn2s5pdg0c56hh97j735cen8gewhadtpzf53ceewguqzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052u3vd5c" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs94dc8c0sa6aqwf7tqm9zfzw0j66vpkkm8gzkmv6hq3t8s5vx8mys0g4dsq&#39;&gt;nevent1q…4dsq&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;If there was a date baked-in to the interpreter that many of my students have, in 8 years I could ask everyone to run a command to see when their default python interpreter is supported until.&lt;br/&gt;&lt;br/&gt;Telling them to trust me on the supported versions or going to a website that lists the end of life date feels a bit less definitive somehow.&lt;br/&gt;&lt;br/&gt;I suspect they may be more likely to convinced to upgrade if the interpreter had its own end of life date baked-in.
    </content>
    <updated>2024-12-20T17:12:31Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqs94dc8c0sa6aqwf7tqm9zfzw0j66vpkkm8gzkmv6hq3t8s5vx8myszyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052z3wzdx</id>
    
      <title type="html">I&amp;#39;m imagining that there would either be a requirement that ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqs94dc8c0sa6aqwf7tqm9zfzw0j66vpkkm8gzkmv6hq3t8s5vx8myszyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052z3wzdx" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs207437fzq3ywhxwm5pjuuxtfj6majehwx0cjazg0hyhrund3acucrjx8dd&#39;&gt;nevent1q…x8dd&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I&amp;#39;m imagining that there would either be a requirement that downstream builds customize the date, keep it the same, or set it to None  (or delete the value even) if they wanted to explicitly note that no support is promised.&lt;br/&gt;&lt;br/&gt;This end of life date is used by user-facing folks already. A user-facing page might be a good idea to note what that date means.
    </content>
    <updated>2024-12-20T17:08:21Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqs0s96vf8gqce6s0ecc5c283flxwkwzfep38w7dck0kmr34tm2575szyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu0527jnznd</id>
    
      <title type="html">Make context managers with __enter__ &amp;amp; __exit__ Read more ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqs0s96vf8gqce6s0ecc5c283flxwkwzfep38w7dck0kmr34tm2575szyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu0527jnznd" />
    <content type="html">
      Make context managers with __enter__ &amp;amp; __exit__&lt;br/&gt;&lt;br/&gt;Read more 👉 &lt;a href=&#34;https://trey.io/LNesnG&#34;&gt;https://trey.io/LNesnG&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;#python
    </content>
    <updated>2024-12-20T14:45:42Z</updated>
  </entry>

  <entry>
    <id>https://njump.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://njump.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://njump.me/nevent1qqsv38eemllhz3ug2jre0vva36t3lzrpx5tus98ckj4a4yv8ehq36yszyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052vhwe03</id>
    
      <title type="html">I just published a short screencast on the different ways to ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsv38eemllhz3ug2jre0vva36t3lzrpx5tus98ckj4a4yv8ehq36yszyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052vhwe03" />
    <content type="html">
      I just published a short screencast on the different ways to merge dictionaries in Python.&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://pym.dev/merging-dictionaries-in-python/&#34;&gt;https://pym.dev/merging-dictionaries-in-python/&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;#Python
    </content>
    <updated>2024-12-19T21:59:14Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsth6vz9xjnq2czur595zxe9mtymzt88lkreq76jju3xa3suzu20nszyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052qqsh0n</id>
    
      <title type="html">True. I&amp;#39;m starting with the assumption of &amp;#34;something that ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsth6vz9xjnq2czur595zxe9mtymzt88lkreq76jju3xa3suzu20nszyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052qqsh0n" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsxshlxpd30scf0dqdftwmepxdelj775269kqqtsl5sm70y5dsg4lg75ax7s&#39;&gt;nevent1q…ax7s&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;True. I&amp;#39;m starting with the assumption of &amp;#34;something that can be passed to int/float&amp;#34; (which I don&amp;#39;t believe are localize-able).&lt;br/&gt;&lt;br/&gt;A .replace(&amp;#34;,&amp;#34;, &amp;#34;.&amp;#34;) could be used for localization.&lt;br/&gt;&lt;br/&gt;Thousands separator support could also be added with a .replace(&amp;#34;_&amp;#34;, &amp;#34;,&amp;#34;) (or with &amp;#34;.&amp;#34; for countries that use . separators).&lt;br/&gt;&lt;br/&gt;But of course, none of this in the right way to accomplish this. 😅
    </content>
    <updated>2024-12-19T20:37:18Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqs0cgyhan49hxt6f6w8j6zx5dseck7cu67atslalxyh2n68eu062xgzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu0524xktwu</id>
    
      <title type="html">Oh and just to be clear for folks reading this and considering ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqs0cgyhan49hxt6f6w8j6zx5dseck7cu67atslalxyh2n68eu062xgzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu0524xktwu" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs9k9q2hpgmnkz5044mfz5ttg26t5yg58hnjkmkth3n3j2nfetkwecpc2w7s&#39;&gt;nevent1q…2w7s&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Oh and just to be clear for folks reading this and considering using isdecimal in your code:&lt;br/&gt;&lt;br/&gt;1. isdecimal does also accepts some interesting non-ASCII &amp;#34;decimal&amp;#34; characters, but all of those characters will be accepted by Python&amp;#39;s float() and int() functions.&lt;br/&gt;&lt;br/&gt;2. I recommend against all the string isdecimal, isdigit, and isnumeric methods because they&amp;#39;re confusing and probably not what you actually want. Use a regular expression or (better yet) attempt a conversion and try-except it!
    </content>
    <updated>2024-12-19T20:08:47Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqs9k9q2hpgmnkz5044mfz5ttg26t5yg58hnjkmkth3n3j2nfetkweczyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052kj02vy</id>
    
      <title type="html">ack. isdecimal() is the one I wanted. (Editing the original ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqs9k9q2hpgmnkz5044mfz5ttg26t5yg58hnjkmkth3n3j2nfetkweczyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052kj02vy" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqswech6z3wkzgcxm24vj5h4l8tenjxdcrh6p4aaw7pt9p2ay2z93aqjxq8j3&#39;&gt;nevent1q…q8j3&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;ack. isdecimal() is the one I wanted.&lt;br/&gt;&lt;br/&gt;(Editing the original post...)&lt;br/&gt;&lt;br/&gt;I always mix up is isdecimal, isdigit, and isnumeric even though I&amp;#39;ve written about their differences more than a few times now...
    </content>
    <updated>2024-12-19T20:01:12Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsd883rdan64ux0h5lvqlhh8y6ta544jepraa38a3tytva8f9t0xaqzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu0523ln0tz</id>
    
      <title type="html">I think I just found my least favorite way to accurately check ...</title>
    
    <link rel="alternate" href="https://njump.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://njump.me/nevent1qqsv79w6ywj4ucqx8jvdxqpt6p6qp305w6fvnxqtjwfey6kvev6a5cgzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052enrmfm</id>
    
      <title type="html">I feel very honored to be selected as a PSF fellow this week ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsv79w6ywj4ucqx8jvdxqpt6p6qp305w6fvnxqtjwfey6kvev6a5cgzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052enrmfm" />
    <content type="html">
      I feel very honored to be selected as a PSF fellow this week alongside &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/npub180dmc89g9sy8twvt3tfrdxtw47qjmnct9ha4d7n08955d9u5pndqa3m4nr&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Jay Miller&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;npub180d…m4nr&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; and &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/npub18f4d7mn7cfqryy5wkp9j3meht0spqcj7strededn2y5tze48twvq39hxlr&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Kojo Idrissa @ Home&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;npub18f4…hxlr&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;, who are 2 of the most welcoming folks I know in the Python community. 💖&lt;br/&gt;&lt;br/&gt;Jay&amp;#39;s post on becoming a fellow: &lt;a href=&#34;https://kjaymiller.com/blog/on-becoming-a-psf-fellow.html&#34;&gt;https://kjaymiller.com/blog/on-becoming-a-psf-fellow.html&lt;/a&gt;
    </content>
    <updated>2024-12-19T05:32:52Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqszyeplwhrlrq5hzjlzwwuvxzzmwnq7qlsaqqtwjkwfcf67z5cuzdszyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu0528n8769</id>
    
      <title type="html">thanks Elena!</title>
    
    <link rel="alternate" href="https://njump.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://njump.me/nevent1qqsyuavqrluhe99xk0xqal5g4zrv7ltmqxzycac0xfxq56d6nnhdclqzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052rrx490</id>
    
      <title type="html">thanks Jeff!</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsyuavqrluhe99xk0xqal5g4zrv7ltmqxzycac0xfxq56d6nnhdclqzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052rrx490" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqspcrlm8wwxktnxuekr9ez6st7f6glsmud9rm90dnu9lkf8q5qeu6cxfnyus&#39;&gt;nevent1q…nyus&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;thanks Jeff!
    </content>
    <updated>2024-12-18T15:23:12Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqs839g5qx8rndxzthyzvx6l8q26we3ekjdcqltngt30v8wcv9lvhkgzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052dhqlfw</id>
    
      <title type="html">thanks Hugo!</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqs839g5qx8rndxzthyzvx6l8q26we3ekjdcqltngt30v8wcv9lvhkgzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052dhqlfw" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsft0grvzrwj9zazr7kxfg5sj8y0ulmlfl2eus6au06a3qz8pyawhcaswsep&#39;&gt;nevent1q…wsep&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;thanks Hugo!
    </content>
    <updated>2024-12-18T15:22:50Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsy84dgj52t5pqnpe6stwhzw2knhgagst57c0czwyuwwy09al0a9vczyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052ya7026</id>
    
      <title type="html">I didn&amp;#39;t note that because I haven&amp;#39;t look into it. I ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsy84dgj52t5pqnpe6stwhzw2knhgagst57c0czwyuwwy09al0a9vczyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052ya7026" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsfmeg743qg4tjhmfmzc804d9mqy33nfp7a5h5rwcl40wtp89cwq6c9q4zyc&#39;&gt;nevent1q…4zyc&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I didn&amp;#39;t note that because I haven&amp;#39;t look into it.&lt;br/&gt;&lt;br/&gt;I don&amp;#39;t plan to ever activate those virtual environments, so I don&amp;#39;t really care where uv stores them. I&amp;#39;m pretty sure it&amp;#39;s in a hidden directory somewhere in my home folder.
    </content>
    <updated>2024-12-18T14:19:47Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsrx7v2aappnac9wgl2jmx6ucr379x3uv8um6kezpqlqswr3tcgmpgzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu0523l8ez2</id>
    
      <title type="html">The / indicates that every argument before the / is a ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsrx7v2aappnac9wgl2jmx6ucr379x3uv8um6kezpqlqswr3tcgmpgzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu0523l8ez2" />
    <content type="html">
      The / indicates that every argument before the / is a positional-only argument.&lt;br/&gt;&lt;br/&gt;Read more 👉 &lt;a href=&#34;https://trey.io/vrp702&#34;&gt;https://trey.io/vrp702&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;#Python
    </content>
    <updated>2024-12-18T11:00:57Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsztrmy2q5rrx5prafy8ulhclfdjw6ssxrg22jqjlz4z0gjzlpnuuqzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052twhwnk</id>
    
      <title type="html">You can think of the tokenize, ast, and dis modules as ...</title>
    
    <link rel="alternate" href="https://njump.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://njump.me/nevent1qqsgdrpj8t2tf0fv9tdnqcnhjvw9lws76v3x70s3ac40n76ng75cgzgzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052njf2d3</id>
    
      <title type="html">No offense taken. I hadn&amp;#39;t heard of Execute Program before ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsgdrpj8t2tf0fv9tdnqcnhjvw9lws76v3x70s3ac40n76ng75cgzgzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052njf2d3" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsdc8keq39m9aenjrte5u6dd8cpmm4ucq3fkte2mrag5zye98lut3cz7vqjh&#39;&gt;nevent1q…vqjh&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;No offense taken. I hadn&amp;#39;t heard of Execute Program before your post.  :)&lt;br/&gt;&lt;br/&gt;Yes, Python Morsels does involve spaced repetition in a couple different ways and I&amp;#39;m working on making the repetitions more deliberate than they have been.
    </content>
    <updated>2024-12-16T18:23:27Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqst692cptqhspes86q7slueugqp5quwn52xa3d4lktvr63gaaefrdqzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu05282vlxx</id>
    
      <title type="html">great points! Adding that podcast episode to my queue. 👍</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqst692cptqhspes86q7slueugqp5quwn52xa3d4lktvr63gaaefrdqzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu05282vlxx" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsf33f6lf42kfw9f05l5w5yv4a4qx3cg47mk8y9q4dgtx9gxealldsu9awzd&#39;&gt;nevent1q…awzd&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;great points! Adding that podcast episode to my queue. 👍
    </content>
    <updated>2024-12-14T16:02:41Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsf4g89qy4483nadvnsytvauxxt058dcrem6w4m8v025gvxtwpyvjszyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052shm0np</id>
    
      <title type="html">yes and no. You&amp;#39;ll need to get past the basics at some point, ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsf4g89qy4483nadvnsytvauxxt058dcrem6w4m8v025gvxtwpyvjszyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052shm0np" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsvpfhhummmy9uham7lyprxt328ftzkhp9dzhygvqv6kne36g4pgtcpy84xr&#39;&gt;nevent1q…84xr&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;yes and no. &lt;br/&gt;&lt;br/&gt;You&amp;#39;ll need to get past the basics at some point, but I often work with folks seeking intermediate-level Python topics that don&amp;#39;t yet have a strong grasp of more basic topics.&lt;br/&gt;&lt;br/&gt;Knowing what the available tools are and identifying which tool might help in specific scenarios takes time and practice.
    </content>
    <updated>2024-12-13T20:49:16Z</updated>
  </entry>

  <entry>
    <id>https://njump.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://njump.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://njump.me/nevent1qqsfx3jnysxk0nk7kn8hk8sww5hxgpy7q4qzme7zre3r9adnhg9ylaqzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052q5z6l7</id>
    
      <title type="html">The solutions: • Active recall: attempting to retrieve ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsfx3jnysxk0nk7kn8hk8sww5hxgpy7q4qzme7zre3r9adnhg9ylaqzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052q5z6l7" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs2qjmw43r6hcfd8jughry7j9y7ggq0hfcyhdlva7vpcze8g907v2chke366&#39;&gt;nevent1q…e366&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;The solutions:&lt;br/&gt;&lt;br/&gt;• Active recall: attempting to retrieve information from your head, noting that you&amp;#39;ll fail at this often but each attempt (even a failed one) helps make it stick&lt;br/&gt;• Spaced repetition: repeatedly performing active recall, spaced hours, days, and weeks apart to allow time to forget a bit before attempting recall again&lt;br/&gt;&lt;br/&gt;Active recall can feel challenging and spaced repetition can feel boring, so successful learning sometimes feels both boring and exhausting... at the same time! 😥
    </content>
    <updated>2024-12-13T19:04:08Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqs2qjmw43r6hcfd8jughry7j9y7ggq0hfcyhdlva7vpcze8g907v2czyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu0522y7n32</id>
    
      <title type="html">2️⃣ On not enough focus on repetition... So we learn by ...</title>
    
    <link rel="alternate" href="https://njump.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://njump.me/nevent1qqsp9nqqr5rc8hr78st036eslkllx88wtlpm3ddptaq84vgwd5lmvwszyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu0523xf9xs</id>
    
      <title type="html">1️⃣ On too much focus on consuming information... This is a ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsp9nqqr5rc8hr78st036eslkllx88wtlpm3ddptaq84vgwd5lmvwszyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu0523xf9xs" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqykynehhum9p99ga7e359je2nh3t2h02f96z603pc6tyqgfcz6sg3sk3az&#39;&gt;nevent1q…k3az&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;1️⃣ On too much focus on consuming information...&lt;br/&gt;&lt;br/&gt;This is a common question that I&amp;#39;m always suspicious of:&lt;br/&gt;&lt;br/&gt;&amp;#34;What Python book should I read next?&amp;#34;&lt;br/&gt;&lt;br/&gt;Our brains learn through repeated information retrieval attempts, not through information consumption.&lt;br/&gt;&lt;br/&gt;That could mean quizzing, explaining a concept, or performing an action.&lt;br/&gt;&lt;br/&gt;This involves our brain attempting something it can&amp;#39;t quite do yet, which can feel VERY challenging, but minute-by-minute it&amp;#39;s usually MUCH more productive than re-reading.
    </content>
    <updated>2024-12-13T19:04:07Z</updated>
  </entry>

  <entry>
    <id>https://njump.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://njump.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://njump.me/nevent1qqsx6dwj2qjgwyrqyp6tt3zfv6lwxcmkmlwa0qcq5j0tjknac4s834czyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052a4ap4l</id>
    
      <title type="html">this is very contextual for me. I often rely on the falsiness of ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsx6dwj2qjgwyrqyp6tt3zfv6lwxcmkmlwa0qcq5j0tjknac4s834czyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052a4ap4l" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsdjuxdkwvelca0nk839s03ghfhvdn0tx08470zfnsqvpqjfwx9urqpnugr8&#39;&gt;nevent1q…ugr8&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;this is very contextual for me. I often rely on the falsiness of None, but if a falsey non-None value could be valid as well, I definitely use an &amp;#34;x is None&amp;#34; check.
    </content>
    <updated>2024-12-10T20:26:06Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsxkcnnh72qyqqf5vdywz9y48zhpp27slakax2xnmpap3l3pwz8pggzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052ule9da</id>
    
      <title type="html">I understand the truthiness over True-checking recommendation but ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsxkcnnh72qyqqf5vdywz9y48zhpp27slakax2xnmpap3l3pwz8pggzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052ule9da" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsrj9snpeyy94wdg4das9msd658avd7p8u5cyfuz74hgtcxv3jpcvsckkl6t&#39;&gt;nevent1q…kl6t&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I understand the truthiness over True-checking recommendation but I&amp;#39;ve always ignored the &amp;#34;is True&amp;#34; is worse than &amp;#34;== True&amp;#34; note. The only time I check for exactly True is in tests and I *want* and I identity check in that case.&lt;br/&gt;&lt;br/&gt;I&amp;#39;d be curious what the history/reasoning behind &amp;#34;is True being worse than &amp;#34;== True&amp;#34; is.
    </content>
    <updated>2024-12-10T17:55:38Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqs2lqtf8qg73l08yjdxfwjcptnmw9ylp2zcvezez6vy6yy4hcwtfvczyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052nvwscx</id>
    
      <title type="html">Why do we use &amp;#34;is&amp;#34; when checking for None in Python? 2 ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqs2lqtf8qg73l08yjdxfwjcptnmw9ylp2zcvezez6vy6yy4hcwtfvczyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052nvwscx" />
    <content type="html">
      Why do we use &amp;#34;is&amp;#34; when checking for None in Python?&lt;br/&gt;&lt;br/&gt;2 reasons you&amp;#39;ll hear:&lt;br/&gt;&lt;br/&gt;1. Python objects can overload &amp;#34;==&amp;#34; but not &amp;#34;is&amp;#34; so an object could say it&amp;#39;s equal to None but &amp;#34;is&amp;#34; will only check for the (one and only) None&lt;br/&gt;2. Using &amp;#34;is&amp;#34; doesn&amp;#39;t even look at the object, but only looks at its memory location so it&amp;#39;s technically faster&lt;br/&gt;&lt;br/&gt;I don&amp;#39;t find those reasons convincing, but I DO use &amp;#34;is&amp;#34; to check for None.&lt;br/&gt;&lt;br/&gt;Why?&lt;br/&gt;&lt;br/&gt;PEP 8.&lt;br/&gt;&lt;br/&gt;I don&amp;#39;t have a decent reason for bucking convention, so I stick with it.
    </content>
    <updated>2024-12-10T16:43:00Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqswgmzedyt3eymy0zh8af76lv6peh0x6y0jru9ufm69cymyw8pmglszyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu0522mnzeu</id>
    
      <title type="html">this is exactly the reason I asked. I suspect it may be overused ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqswgmzedyt3eymy0zh8af76lv6peh0x6y0jru9ufm69cymyw8pmglszyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu0522mnzeu" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsxh4gqqralkl8g3vhs83cwv47crnaqrzt99gum4hph7g2jhgnjcagq07cdy&#39;&gt;nevent1q…7cdy&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;this is exactly the reason I asked. I suspect it may be overused in unfortunate ways.
    </content>
    <updated>2024-12-10T15:27:20Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqszgt2rrwlcjk7z0hcm94dnykt2gurpcvceepwgqmvyupu7vryp82szyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052h0c8jm</id>
    
      <title type="html">that&amp;#39;s a good one too. It does seem like &amp;#34;the original ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqszgt2rrwlcjk7z0hcm94dnykt2gurpcvceepwgqmvyupu7vryp82szyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052h0c8jm" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsya8mmpd57hxsjftltlputgns62ljsc8p7aed09fertagdg70vgggmgmhhl&#39;&gt;nevent1q…mhhl&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;that&amp;#39;s a good one too. It does seem like &amp;#34;the original error is an unimportant implementation detail&amp;#34; is the clearest use.
    </content>
    <updated>2024-12-10T15:26:17Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsg5mzmzfzxq6kp43w7k7u8cmkjunf0kwa0u36hd6wmmstzyk86g8qzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052xv9gdj</id>
    
      <title type="html">interesting. So the line and column number of the decode ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsg5mzmzfzxq6kp43w7k7u8cmkjunf0kwa0u36hd6wmmstzyk86g8qzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052xv9gdj" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsdefqg54um0je2c08xhgutgru0rf2h4k7t3hkn9g203j8v6hl6r0qr7pdty&#39;&gt;nevent1q…pdty&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;interesting. So the line and column number of the decode weren&amp;#39;t useful in your case, I assume because it wasn&amp;#39;t even JSON in the response at that point?
    </content>
    <updated>2024-12-10T04:41:57Z</updated>
  </entry>

  <entry>
    <id>https://njump.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://njump.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://njump.me/nevent1qqsfmmhmu6eqg04mt7s5dgcnhda9q260ltpq7zlys7gr3cr58gxphzgzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052u4cenh</id>
    
      <title type="html">An assignment in Python points a variable to an object. Read more ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsfmmhmu6eqg04mt7s5dgcnhda9q260ltpq7zlys7gr3cr58gxphzgzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052u4cenh" />
    <content type="html">
      An assignment in Python points a variable to an object.&lt;br/&gt;&lt;br/&gt;Read more 👉 &lt;a href=&#34;https://trey.io/1m8zFT&#34;&gt;https://trey.io/1m8zFT&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;#Python
    </content>
    <updated>2024-12-09T22:54:48Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqstd6hcre8hncfjredf5ql59u8wpzllpzv3837j6uf9kltvjkxpltqzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052y9rese</id>
    
      <title type="html">There&amp;#39;s one thing I&amp;#39;ve been REALLY enjoying using uv for: ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqstd6hcre8hncfjredf5ql59u8wpzllpzv3837j6uf9kltvjkxpltqzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052y9rese" />
    <content type="html">
      There&amp;#39;s one thing I&amp;#39;ve been REALLY enjoying using uv for: writing standalone Python scripts that require third-party dependencies.&lt;br/&gt;&lt;br/&gt;More on my current (somewhat conservative) uses for uv: &lt;a href=&#34;https://treyhunner.com/2024/12/lazy-self-installing-python-scripts-with-uv/&#34;&gt;https://treyhunner.com/2024/12/lazy-self-installing-python-scripts-with-uv/&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;#Python #uv
    </content>
    <updated>2024-12-09T20:10:24Z</updated>
  </entry>

  <entry>
    <id>https://njump.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://njump.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://njump.me/nevent1qqs8ewkvsarcmkjs9ph26xmmnt8nfnzzupw7sjsx8dd3muu8t7runfczyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052zywu0f</id>
    
      <title type="html">glad you found it helpful!</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqs8ewkvsarcmkjs9ph26xmmnt8nfnzzupw7sjsx8dd3muu8t7runfczyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052zywu0f" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqswzhlzfcm2pgrykqt8mjq3cdjvudas7s2nuk478esc6p40fq6wa8s7v5cs2&#39;&gt;nevent1q…5cs2&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;glad you found it helpful!
    </content>
    <updated>2024-12-09T06:23:14Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsxun0z90euletmx5m37lztksd9nklhh25v4t8qy70d8x50k6lcvmczyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052jmd0en</id>
    
      <title type="html">Every Wednesday morning, I share a Python tip via email. I&amp;#39;ve ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsxun0z90euletmx5m37lztksd9nklhh25v4t8qy70d8x50k6lcvmczyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052jmd0en" />
    <content type="html">
      Every Wednesday morning, I share a Python tip via email. I&amp;#39;ve been doing this since June 1, 2022.&lt;br/&gt;&lt;br/&gt;If you&amp;#39;d like to read a Python tip from me each week, you can subscribe at &lt;a href=&#34;https://trey.io/news&#34;&gt;https://trey.io/news&lt;/a&gt; 🐍💌&lt;br/&gt;&lt;br/&gt;#Python
    </content>
    <updated>2024-12-06T00:00:06Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsg2g4kg99s0p6n0ke9kad043t04ush45d6rykucyxyzpwcrd7u0gczyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052rvswk7</id>
    
      <title type="html">Creating a singleton class by making a custom constructor does ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsg2g4kg99s0p6n0ke9kad043t04ush45d6rykucyxyzpwcrd7u0gczyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052rvswk7" />
    <content type="html">
      Creating a singleton class by making a custom constructor does work, but it might seem a little bit misleading to someone using this class.&lt;br/&gt;&lt;br/&gt;Read more 👉 &lt;a href=&#34;https://trey.io/RAvlR1&#34;&gt;https://trey.io/RAvlR1&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;#Python
    </content>
    <updated>2024-12-05T22:50:28Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqs25du389xtl5u5apzg67auf83z355cdzdjjg6la75fdjej9858zzgzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu0526dfazj</id>
    
      <title type="html">When debugging in #Python, I prefer this: &amp;gt;&amp;gt;&amp;gt; ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqs25du389xtl5u5apzg67auf83z355cdzdjjg6la75fdjej9858zzgzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu0526dfazj" />
    <content type="html">
      When debugging in #Python, I prefer this:&lt;br/&gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; vars(some_obj)&lt;br/&gt;&lt;br/&gt;Over this:&lt;br/&gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; some_obj.__dict__&lt;br/&gt;&lt;br/&gt;Why?&lt;br/&gt;&lt;br/&gt;1. When possible, I prefer high-level operations over direct dunder access&lt;br/&gt;2. It&amp;#39;s 2 fewer characters!&lt;br/&gt;&lt;br/&gt;And yes I also use dir(), but the two have slightly different uses and both can be handy!&lt;br/&gt;&lt;br/&gt;More on dir &amp;amp; vars: &lt;a href=&#34;https://pym.dev/inspecting-python-objects/&#34;&gt;https://pym.dev/inspecting-python-objects/&lt;/a&gt;
    </content>
    <updated>2024-12-04T02:08:00Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsrfq0xju4qdc2n7ah6fef80ha3rcj9vkpzc0n65g6ave0vnpjd55czyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052jt2st7</id>
    
      <title type="html">I really enjoyed his classes. I tried to configure my quarterly ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsrfq0xju4qdc2n7ah6fef80ha3rcj9vkpzc0n65g6ave0vnpjd55czyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052jt2st7" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsy4um4tn2j5hpwz02fw50f7kf7htu03nakslxv0tr8cj9tpesecsc5rjvul&#39;&gt;nevent1q…jvul&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I really enjoyed his classes. I tried to configure my quarterly schedule to increase my changes of taking various classes with him because I enjoyed his teaching style so much.
    </content>
    <updated>2024-12-03T23:26:35Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqspaj87muz67np4ynn8r4ja546twwjyk9veum3pz3auhscltt03apgzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052gj0d35</id>
    
      <title type="html">Just realized an odd coincidence from a 13-year-old open source ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqspaj87muz67np4ynn8r4ja546twwjyk9veum3pz3auhscltt03apgzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052gj0d35" />
    <content type="html">
      Just realized an odd coincidence from a 13-year-old open source contribution.&lt;br/&gt;&lt;br/&gt;I contributed the &amp;#34;ping&amp;#34; command to the WINE command prompt to make it simply sleep (DOS didn&amp;#39;t have sleep so batch files often used ping to sleep).&lt;br/&gt;&lt;br/&gt;This OSS contribution was part of a homework assignment.&lt;br/&gt;&lt;br/&gt;I just realized today that my professor for that class (Dr. Paul Eggert) was one of the two authors of the GNU/Linux sleep utility (along with many other utilities he helped write). 🤯&lt;br/&gt;&lt;br/&gt;#OpenSource
    </content>
    <updated>2024-12-03T19:45:25Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsdankrg9eplcaxwyztrh7nkvq2uh024k293x5nvvgy45nmk5qkehszyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052755uue</id>
    
      <title type="html">What&amp;#39;s a fairly fundamental #Python feature that you&amp;#39;re ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsdankrg9eplcaxwyztrh7nkvq2uh024k293x5nvvgy45nmk5qkehszyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052755uue" />
    <content type="html">
      What&amp;#39;s a fairly fundamental #Python feature that you&amp;#39;re glad you&amp;#39;ve embraced?&lt;br/&gt;&lt;br/&gt;Could be a feature that some other programming languages don&amp;#39;t have or one whose purpose you didn&amp;#39;t really understand when you first learned about it.
    </content>
    <updated>2024-12-03T16:43:00Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsz4n08mc0sh79tddnxrx9pg7hpa9khgcnqgag0j30x95mvu60dd7szyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052sm29e6</id>
    
      <title type="html">Recursion is most often useful when the problem you&amp;#39;re ...</title>
    
    <link rel="alternate" href="https://njump.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://njump.me/nevent1qqsgqv2j52kllezqrhxvrmdunu6mdagqaf63au32x3gxqwuqls3g4kgzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052z4j9gu</id>
    
      <title type="html">Need to remove duplicates from a list? &amp;gt;&amp;gt;&amp;gt; items = [2, ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsgqv2j52kllezqrhxvrmdunu6mdagqaf63au32x3gxqwuqls3g4kgzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052z4j9gu" />
    <content type="html">
      Need to remove duplicates from a list?&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; items = [2, 1, 6, 4, 2, 4, 7]&lt;br/&gt;&lt;br/&gt;This works:&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; dedup = set(items)&lt;br/&gt;&lt;br/&gt;But item order will be lost:&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; dedup&lt;br/&gt;{1, 2, 4, 6, 7}&lt;br/&gt;&lt;br/&gt;If the original order should be maintained, you can use the keys of a dictionary:&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; dedup = list(dict.fromkeys(items))&lt;br/&gt;&lt;br/&gt;Dictionary keys maintain their insertion order in #Python:&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; dedup&lt;br/&gt;[2, 1, 6, 4, 7]&lt;br/&gt;&lt;br/&gt;More on that last approach: &lt;a href=&#34;https://pym.dev/deduplicate-lists/#de-duplicating-without-losing-order&#34;&gt;https://pym.dev/deduplicate-lists/#de-duplicating-without-losing-order&lt;/a&gt;
    </content>
    <updated>2024-12-03T03:09:00Z</updated>
  </entry>

  <entry>
    <id>https://njump.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://njump.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://njump.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://njump.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://njump.me/nevent1qqs8cu3pld7uggch2ufxz08t27w69e3zg9nekg8yvz4ux6zhdnju7tszyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052p7m4cd</id>
    
      <title type="html">Learning Python is like learning the flute. 🪈 You won&amp;#39;t ...</title>
    
    <link rel="alternate" href="https://njump.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://njump.me/nevent1qqsrxujhs2jg5mnuq4nw3tzx4km30n4p06vh49mpvtsv58jsm27dptgzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu0525qs3ly</id>
    
      <title type="html">Looking for Python-related Black Friday sales? 🐍🤑 I made a ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsrxujhs2jg5mnuq4nw3tzx4km30n4p06vh49mpvtsv58jsm27dptgzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu0525qs3ly" />
    <content type="html">
      Looking for Python-related Black Friday sales? 🐍🤑&lt;br/&gt;&lt;br/&gt;I made a list of all the sales I&amp;#39;m aware of.&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;&lt;br/&gt;&lt;br/&gt;Includes sales from me, &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/npub10qr05cr9layyrxmau3dgk2zlzpy2tlughfgmu6uszfhfz3jwxj4qczkh0f&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Reuven M. Lerner&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;npub10qr…kh0f&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;, &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/npub1j7suaykfmlyw23aty290ty6yquse2qewqy9gd9hunw4w2hkf343s8vhmke&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Brian Okken&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;npub1j7s…hmke&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;, &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/npub1mcuahdw6nqwnulc06fsl0ea9et3cyu53ah08rl2tl4s3lduq2lkqrv7m70&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Michael Kennedy&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;npub1mcu…7m70&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;, &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/npub1c0xr3j087rl7lgwm8ph4h99agxnjwnjdc5cja792vqfgu8z9w6esy2ptl2&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Rodrigo 🐍🚀&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;npub1c0x…ptl2&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;, &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/npub1ht86yzer77q3qy4u7094qjnev2nyuav5ue0s33ffhwpj5cq3c7qspz374v&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Mike Driscoll&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;npub1ht8…374v&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;, &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/npub12e8m3d40mesarehe3hfw7vz7aghwegcd906zgkuvpl442pfauh6sssp2qf&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Sundeep&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;npub12e8…p2qf&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;, and many more Python content creators.&lt;br/&gt;&lt;br/&gt;Let me know if you spot more sales that I missed.&lt;br/&gt;&lt;br/&gt;#Python #BlackFriday
    </content>
    <updated>2024-11-29T19:23:11Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqs9wal4s8t3nmly9ga4rdj6nzj7vqvneynd9pyfufk23lxq3wusjpszyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052n80t99</id>
    
      <title type="html">For Black Friday, why not buy yourself a bunch of Python skills? ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqs9wal4s8t3nmly9ga4rdj6nzj7vqvneynd9pyfufk23lxq3wusjpszyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052n80t99" />
    <content type="html">
      For Black Friday, why not buy yourself a bunch of Python skills?&lt;br/&gt;&lt;br/&gt;You can&amp;#39;t really do that, but you CAN buy yourself a commitment to learn Python.&lt;br/&gt;&lt;br/&gt;My new Python Jumpstart course is 50% off today. 💸&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 #BlackFriday
    </content>
    <updated>2024-11-29T18:10:00Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqs82wsrrqlr3q9x5vm46ghsmalljx7u3q7cr6rwsys2xwm6etns87czyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu05279hxfa</id>
    
      <title type="html">When the first line in a function is a string all on its own, ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqs82wsrrqlr3q9x5vm46ghsmalljx7u3q7cr6rwsys2xwm6etns87czyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu05279hxfa" />
    <content type="html">
      When the first line in a function is a string all on its own, Python reads that string as documentation, and it stores that docstring on the function, so that tools like help can find it.&lt;br/&gt;&lt;br/&gt;Read more 👉 &lt;a href=&#34;https://trey.io/a5O8qe&#34;&gt;https://trey.io/a5O8qe&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;#Python
    </content>
    <updated>2024-11-28T02:06:21Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqs9kd2gj85cgh7gu0qlzzm3wfsr53k7vkafqtea3032ej89ky0cwzqzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052e8ysm7</id>
    
      <title type="html">What&amp;#39;s in a name? That which we call a duck By any other name ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqs9kd2gj85cgh7gu0qlzzm3wfsr53k7vkafqtea3032ej89ky0cwzqzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052e8ysm7" />
    <content type="html">
      What&amp;#39;s in a name? That which we call a duck&lt;br/&gt;By any other name would quack the same;&lt;br/&gt;So a sequence would, were it not a sequence call&amp;#39;d,&lt;br/&gt;Retain that dear iterability which it bears&lt;br/&gt;Without that title. Sequence, doff thy name,&lt;br/&gt;And for that name which is no part of thee&lt;br/&gt;give thy iterator to me.&lt;br/&gt;&lt;br/&gt;#Python #DuckTyping
    </content>
    <updated>2024-11-28T01:46:00Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsgz5maj5crwwf5q323zrf5dflkm6hd5m533k84f86r62jp654nt4qzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052mmfe2x</id>
    
      <title type="html">Most Intro to Python courses consist of 2 hours of lectures and ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsgz5maj5crwwf5q323zrf5dflkm6hd5m533k84f86r62jp654nt4qzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052mmfe2x" />
    <content type="html">
      Most Intro to Python courses consist of 2 hours of lectures and 2-10 exercises.&lt;br/&gt;&lt;br/&gt;My new Python Jumpstart course is different.&lt;br/&gt;&lt;br/&gt;It&amp;#39;s dozens of very short videos, each followed by an exercise.&lt;br/&gt;&lt;br/&gt;You&amp;#39;ll watch/read something new for 4 minutes and immediately try it out yourself.&lt;br/&gt;&lt;br/&gt;This new course is 50% off 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;&lt;br/&gt;&lt;br/&gt;#Python
    </content>
    <updated>2024-11-27T16:08:00Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsz8pjzgglat54myjzemalpzz5kcjl475maj6w9srn4xgtxhcsmakszyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052dwed2w</id>
    
      <title type="html">n &amp;gt;= k (where n is the size of the iterable and k is the ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsz8pjzgglat54myjzemalpzz5kcjl475maj6w9srn4xgtxhcsmakszyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052dwed2w" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqspuw4apd8lnqyky968vz7e0jhngzg4kavwsquhan2ru85qtsk34hgs809am&#39;&gt;nevent1q…09am&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;n &amp;gt;= k (where n is the size of the iterable and k is the number of items you want) so n log n &amp;gt;= n log k, meaning sorting will be slower (especially if k is much smaller than n).
    </content>
    <updated>2024-11-27T06:09:40Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsd7p7x78uauuv48pr74tf2jznj8cej4ze0q5tnwqegds9kkcf59lqzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052tcykqh</id>
    
      <title type="html">The number of items to retrieve. 3 in this case.</title>
    
    <link rel="alternate" href="https://njump.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://njump.me/nevent1qqszpuzn7sz2y6vg06dukdmdugmq0m48ydmjrk29as8j45nh6gkg89qzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052ddsm9a</id>
    
      <title type="html">Avoid unnecessary sorting in Python. ❌ Instead of this: ...</title>
    
    <link rel="alternate" href="https://njump.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://njump.me/nevent1qqswcxnvrcxud0chw9l50gm46fzdhhasa55mq4ds8kn3xy9wp4vkpfczyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052f0s8cp</id>
    
      <title type="html">Data structures don&amp;#39;t contain objects, they contain pointers ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqswcxnvrcxud0chw9l50gm46fzdhhasa55mq4ds8kn3xy9wp4vkpfczyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052f0s8cp" />
    <content type="html">
      Data structures don&amp;#39;t contain objects, they contain pointers to objects.&lt;br/&gt;&lt;br/&gt;Read the full article: Data structures contain pointers&lt;br/&gt;▸ &lt;a href=&#34;https://trey.io/uvntzs&#34;&gt;https://trey.io/uvntzs&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;#Python
    </content>
    <updated>2024-11-27T00:44:23Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsp2tc0uhyyx6cermaw868nyft0rszll6z5x626zl0akjncmuku39qzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052dpcx57</id>
    
      <title type="html">With Python Jumpstart, there are no 10-20 minute lectures in ...</title>
    
    <link rel="alternate" href="https://njump.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://njump.me/nevent1qqsp8c8hwrkplh5dz79n3y594s4rc5x485hffdtkg0kcp3d5cv3el5czyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052als9ra</id>
    
      <title type="html">Trouble learning Python? 🐍 You need active recall and spaced ...</title>
    
    <link rel="alternate" href="https://njump.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://njump.me/nevent1qqs02xnqjzrat3lec48jxzxypdptsztd5c6743ew0xkl2y3tnxea43czyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052dcdhf7</id>
    
      <title type="html">parent doesn&amp;#39;t work well for non-absolute paths. ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqs02xnqjzrat3lec48jxzxypdptsztd5c6743ew0xkl2y3tnxea43czyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052dcdhf7" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs2xxw5qp0ldz84j5s53ujqam855n5w5gyjd7j3jxzgtys94gtu66qkuejxy&#39;&gt;nevent1q…ejxy&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;parent doesn&amp;#39;t work well for non-absolute paths. Path(&amp;#39;.&amp;#39;).parent returns Path(&amp;#39;.&amp;#39;)
    </content>
    <updated>2024-11-26T06:36:15Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsx23tgh9q5vua3hnx93s9wza93ll2drl9d549r43xr6wxj2qklmpgzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052tfq06q</id>
    
      <title type="html">In Python, instead of this: BASE_DIR = ...</title>
    
    <link rel="alternate" href="https://njump.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://njump.me/nevent1qqswjd909tm87440h28xg7980lezwmefgafta3tlnvelsncgelf4fwszyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052r3n28l</id>
    
      <title type="html">Python&amp;#39;s list comprehensions and if-else Read more 👉 ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqswjd909tm87440h28xg7980lezwmefgafta3tlnvelsncgelf4fwszyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052r3n28l" />
    <content type="html">
      Python&amp;#39;s list comprehensions and if-else&lt;br/&gt;&lt;br/&gt;Read more 👉 &lt;a href=&#34;https://trey.io/djaxuq&#34;&gt;https://trey.io/djaxuq&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;#Python
    </content>
    <updated>2024-11-25T20:13:21Z</updated>
  </entry>

  <entry>
    <id>https://njump.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://njump.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://njump.me/nevent1qqsr2ywyd8mygr3grgudn3nrd0hqutq0fvshlky4rr0ptf5l8flcs0qzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052k55v49</id>
    
      <title type="html">Anyone done any work with the #Signal protocol? If you&amp;#39;re up ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsr2ywyd8mygr3grgudn3nrd0hqutq0fvshlky4rr0ptf5l8flcs0qzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052k55v49" />
    <content type="html">
      Anyone done any work with the #Signal protocol?&lt;br/&gt;&lt;br/&gt;If you&amp;#39;re up for answering questions from a friend who is building a Signal app for a good cause, please reply.&lt;br/&gt;&lt;br/&gt;Thanks!
    </content>
    <updated>2024-11-22T19:02:10Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqs0xc5m4ccpq9skjug6ckpxgz760ywmrgchack23mvlnacdwv5zhwqzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu0527q47nm</id>
    
      <title type="html">The first time folks use the re module in #Python, they often ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqs0xc5m4ccpq9skjug6ckpxgz760ywmrgchack23mvlnacdwv5zhwqzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu0527q47nm" />
    <content type="html">
      The first time folks use the re module in #Python, they often reach for re.match().&lt;br/&gt;&lt;br/&gt;I usually recommend against using re.match().&lt;br/&gt;&lt;br/&gt;Why?&lt;br/&gt;&lt;br/&gt;Because re.match() matches from the beginning of the string, but does not match until the end of the string. Many find this behavior unexpected.&lt;br/&gt;&lt;br/&gt;re.match(r&amp;#34;...&amp;#34;) is equivalent to re.‍search(r&amp;#34;^...&amp;#34;).&lt;br/&gt;&lt;br/&gt;re.fullmatch(r&amp;#34;...&amp;#34;) is equivalent to re.‍search(r&amp;#34;^...$&amp;#34;).&lt;br/&gt;&lt;br/&gt;I usually recommend reaching for re.‍search().
    </content>
    <updated>2024-11-22T18:10:01Z</updated>
  </entry>

  <entry>
    <id>https://njump.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://njump.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://njump.me/nevent1qqszml9hujaunnagf9l30y0tndmctdv6mfufuhmwld49n54f03klmfszyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052vfpr47</id>
    
      <title type="html">nice!</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqszml9hujaunnagf9l30y0tndmctdv6mfufuhmwld49n54f03klmfszyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052vfpr47" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs9wrfswwghw33acqwgp9ht9tzy8p7n3jfzn9p8y5pw98mj0xa7dncuy2wra&#39;&gt;nevent1q…2wra&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;nice!
    </content>
    <updated>2024-11-22T01:07:47Z</updated>
  </entry>

  <entry>
    <id>https://njump.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://njump.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://njump.me/nevent1qqs0lk35kypld77kmvl47zdsjvluwy6vplvevjk0r8xuufzt6062reszyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052wpw9rz</id>
    
      <title type="html">Comprehensions have their own scope: &amp;gt;&amp;gt;&amp;gt; n = 4 ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqs0lk35kypld77kmvl47zdsjvluwy6vplvevjk0r8xuufzt6062reszyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052wpw9rz" />
    <content type="html">
      Comprehensions have their own scope:&lt;br/&gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; n = 4&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; squares = [n**2 for n in range(9)]&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; n&lt;br/&gt;4&lt;br/&gt;&lt;br/&gt;But loops do NOT have their own scope:&lt;br/&gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; n = 4&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; for n in squares: ...&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; n&lt;br/&gt;81&lt;br/&gt;&lt;br/&gt;This may seem like a gotcha, but there&amp;#39;s a good reason for this.&lt;br/&gt;&lt;br/&gt;For convenience, Python lacks variable declarations. Assignments &amp;#34;declare&amp;#34; implicitly. Due to this, function-level scope makes a LOT more sense in Python, so #Python&amp;#39;s scope is function-level, not block-level.&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://trey.io/function-scope-oddity&#34;&gt;https://trey.io/function-scope-oddity&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;#PythonOddity&lt;br/&gt; &lt;img src=&#34;https://files.mastodon.social/media_attachments/files/113/518/415/758/690/313/original/db367e1fb0660cb3.png&#34;&gt; &lt;br/&gt;
    </content>
    <updated>2024-11-21T01:46:02Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsgm9rxr30vq6tqjh85620gzsvr4a87m6dwjx7yahucj54rp5qdd4szyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu0525uamha</id>
    
      <title type="html">Fixed. Thanks for noting that!</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsgm9rxr30vq6tqjh85620gzsvr4a87m6dwjx7yahucj54rp5qdd4szyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu0525uamha" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs9kstt2qtqd629erjczs77fmcdxqtae8f9yzr7ztkpsvc2jg7kxjgj0ladv&#39;&gt;nevent1q…ladv&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Fixed. Thanks for noting that!
    </content>
    <updated>2024-11-20T03:07:03Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqswd0afg7l0wl6k079e5l8ugue96p7gmyk8cqstp66jqwgz0x6v83szyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052jaeg0e</id>
    
      <title type="html">I&amp;#39;ve updated my new pathlib article with additional examples, ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqswd0afg7l0wl6k079e5l8ugue96p7gmyk8cqstp66jqwgz0x6v83szyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052jaeg0e" />
    <content type="html">
      I&amp;#39;ve updated my new pathlib article with additional examples, improved wording, and more links to documentation. ✨&lt;br/&gt;&lt;br/&gt;One nice thing about finally publishing in text form: folks happily provide (frequently) constructive feedback so I can immediately iterate. 💗&lt;br/&gt;&lt;br/&gt;&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-20T02:08:00Z</updated>
  </entry>

  <entry>
    <id>https://njump.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://njump.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://njump.me/nevent1qqsfqqzhsks8hycarcdfzl4wz3fq7tqdyw42ed7trzwygpe6zl2n5dczyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu0526586ut</id>
    
      <title type="html">Context managers do sandwich our block of code between two steps, ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsfqqzhsks8hycarcdfzl4wz3fq7tqdyw42ed7trzwygpe6zl2n5dczyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu0526586ut" />
    <content type="html">
      Context managers do sandwich our block of code between two steps, but they also ensure that the exit step is performed regardless of whether an exception occurred.&lt;br/&gt;&lt;br/&gt;Read more 👉 &lt;a href=&#34;https://trey.io/meA1Mx&#34;&gt;https://trey.io/meA1Mx&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;#Python
    </content>
    <updated>2024-11-18T22:23:15Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsykksqhxatgcamz4wc9kwt9jts43vvu9mud6gjs5rw5l397ssea9gzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052epns5x</id>
    
      <title type="html">I&amp;#39;ve finally written a pathlib cheat sheet &amp;amp; sales pitch ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsykksqhxatgcamz4wc9kwt9jts43vvu9mud6gjs5rw5l397ssea9gzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052epns5x" />
    <content type="html">
      I&amp;#39;ve finally written a pathlib cheat sheet &amp;amp; sales pitch combination post. ✨ &lt;br/&gt;&lt;br/&gt;Another many-year-old to-do list item done. ✅&lt;br/&gt;&lt;br/&gt;If you&amp;#39;ve been looking for a post to link your pathlib-curious/confused coworkers to, I&amp;#39;m hoping this will help. 🔗&lt;br/&gt;&lt;br/&gt;&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-18T16:44:01Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqstfm0swl4ahltwx22gk6pq5lgr2rhrp0vggy88694maexpasfxxjszyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052hxp0pn</id>
    
      <title type="html">I do not remember this but I&amp;#39;m curious 🤨</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqstfm0swl4ahltwx22gk6pq5lgr2rhrp0vggy88694maexpasfxxjszyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052hxp0pn" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsdsg75p8ufmg0t2l2mwwvnmdnjhamtzlrpauvjqs7tld3pwnca46cskzsvh&#39;&gt;nevent1q…zsvh&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I do not remember this but I&amp;#39;m curious 🤨
    </content>
    <updated>2024-11-18T05:14:42Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqs08uuv6lkjjca23g55ehzhsg522d0e4dsz08jhfhl9fjelva3m3mszyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052yp36cq</id>
    
      <title type="html">PEP idea from April 1 💡 Support for importing EVERYTHING: from ...</title>
    
    <link rel="alternate" href="https://njump.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://njump.me/nevent1qqspwfjzhqe3z5e8qjrvaekqy4uh8yqykqayvs045zpepddkx98pq4szyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052v4nnhs</id>
    
      <title type="html">When I find myself wondering what a specific #Python object is ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqspwfjzhqe3z5e8qjrvaekqy4uh8yqykqayvs045zpepddkx98pq4szyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052v4nnhs" />
    <content type="html">
      When I find myself wondering what a specific #Python object is all about, there are 4 functions I reach for:&lt;br/&gt;&lt;br/&gt;1. type&lt;br/&gt;2. help&lt;br/&gt;3. dir&lt;br/&gt;4. vars&lt;br/&gt;&lt;br/&gt;More on inspecting Python objects: &lt;a href=&#34;https://pym.dev/inspecting-python-objects/&#34;&gt;https://pym.dev/inspecting-python-objects/&lt;/a&gt;
    </content>
    <updated>2024-11-15T18:10:00Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsr3xuvg9tharz9yke33txu3fkqlfn7qp96097hhqzdknd2qvwt0sgzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052nzmllj</id>
    
      <title type="html">Today I completed my annual ritual of checking whether I&amp;#39;ve ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsr3xuvg9tharz9yke33txu3fkqlfn7qp96097hhqzdknd2qvwt0sgzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052nzmllj" />
    <content type="html">
      Today I completed my annual ritual of checking whether I&amp;#39;ve created my PyCon account yet with any of the emails that exist in my password manager from past PyCon years. 😅&lt;br/&gt;&lt;br/&gt;I could probably train my password manager to understand the year after the domain... but then I would lose this unusual ritual. 😆
    </content>
    <updated>2024-11-14T22:25:12Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsrlay7v0tf8urhvzamx8979hn4v5gt0va7tf7q2h0lys4kjmmk0tgzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052gp28nw</id>
    
      <title type="html">&amp;#34;Mutation changes an object, which any number of variables ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsrlay7v0tf8urhvzamx8979hn4v5gt0va7tf7q2h0lys4kjmmk0tgzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052gp28nw" />
    <content type="html">
      &amp;#34;Mutation changes an object, which any number of variables may be pointing to.&amp;#34;&lt;br/&gt;&lt;br/&gt;Read more 👉 &lt;a href=&#34;https://trey.io/h6y0n9&#34;&gt;https://trey.io/h6y0n9&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;#Python
    </content>
    <updated>2024-11-14T22:23:14Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsr5svjpyrzp2ke3p68w6s92zd3hrwzl8ma8qtuqh8ajsnycmdqu6czyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052z8kqpz</id>
    
      <title type="html">Trying to decide which tutorial ideas to submit to #PyConUS 2025. ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsr5svjpyrzp2ke3p68w6s92zd3hrwzl8ma8qtuqh8ajsnycmdqu6czyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052z8kqpz" />
    <content type="html">
      Trying to decide which tutorial ideas to submit to #PyConUS 2025.&lt;br/&gt;&lt;br/&gt;Which of these 3 hour #Python tutorials would you want to work through at PyCon?
    </content>
    <updated>2024-11-13T23:31:37Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsrvcyyvvgq4rhlnjw4c3z6x8evc3gulytkajtw6g3da32dzgh0gnczyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052e3ne5c</id>
    
      <title type="html">Our brains have at least two modes: one where we&amp;#39;re focused ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsrvcyyvvgq4rhlnjw4c3z6x8evc3gulytkajtw6g3da32dzgh0gnczyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052e3ne5c" />
    <content type="html">
      Our brains have at least two modes: one where we&amp;#39;re focused deeply on a problem and one where our mind is wandering.&lt;br/&gt;&lt;br/&gt;Read more 👉 &lt;a href=&#34;https://trey.io/rQVM9y&#34;&gt;https://trey.io/rQVM9y&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;#CodingChallenge #Python
    </content>
    <updated>2024-11-13T14:50:35Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqs00lmpwfddv0egx4m9llr9a02692ftd3tmv0f938nqttuea735reczyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052wn89cd</id>
    
      <title type="html">🤔 I&amp;#39;m curious to see examples of what you&amp;#39;re imagining</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqs00lmpwfddv0egx4m9llr9a02692ftd3tmv0f938nqttuea735reczyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052wn89cd" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsfarrcdhfm6nfxpn62tz83emu36u5enasffxcynt698cemr4u3spssannq6&#39;&gt;nevent1q…nnq6&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;🤔 I&amp;#39;m curious to see examples of what you&amp;#39;re imagining
    </content>
    <updated>2024-11-13T02:41:28Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsp2ahwwuqa80chv79zudsaxjy9jqjccgxqre5xemg6fnyz94j3v3szyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu0523pr2x8</id>
    
      <title type="html">I added support for many more formats to https://pym.dev/strptime ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsp2ahwwuqa80chv79zudsaxjy9jqjccgxqre5xemg6fnyz94j3v3szyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu0523pr2x8" />
    <content type="html">
      I added support for many more formats to &lt;a href=&#34;https://pym.dev/strptime&#34;&gt;https://pym.dev/strptime&lt;/a&gt; and released a command-line version.&lt;br/&gt;&lt;br/&gt;$ pipx install strptime-cli&lt;br/&gt;$ strptime &amp;#34;Tue, 12 Nov 2024 09:50:24&amp;#34;&lt;br/&gt;%a, %d %b %Y %H:%M:%S&lt;br/&gt;&lt;br/&gt;The next time you run across a date/time string you need to parse in #Python, try it out!
    </content>
    <updated>2024-11-13T02:08:01Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqs02uv4530xu6k5ymgyg8pkn0vaevrys2htv37apwl545a2nxl2wrszyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052a6jc7g</id>
    
      <title type="html">I brought this issue up on the forum and am now even more ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqs02uv4530xu6k5ymgyg8pkn0vaevrys2htv37apwl545a2nxl2wrszyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052a6jc7g" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs96dt0dltk5dg0tc6rp4mxa6fnd3g30s6v2f4re3jftxvtwzg5yvcuc67ya&#39;&gt;nevent1q…67ya&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I brought this issue up on the forum and am now even more uncertain about which to recommend when.&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://discuss.python.org/t/clarify-usage-of-platform-system/70900&#34;&gt;https://discuss.python.org/t/clarify-usage-of-platform-system/70900&lt;/a&gt;
    </content>
    <updated>2024-11-12T22:24:23Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqspu7ycwsugrk3fv5886qugszxg6le24eff3u0tncmdwya5afhghyczyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu05247khnp</id>
    
      <title type="html">This ☝ The built-in exceptions are good enough in most cases. ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqspu7ycwsugrk3fv5886qugszxg6le24eff3u0tncmdwya5afhghyczyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu05247khnp" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqswry75u934xk8ulqcs7ljnpxsa5u23sn2wn5z7gdjc9jzefa57q8sv6thud&#39;&gt;nevent1q…thud&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;This ☝&lt;br/&gt;&lt;br/&gt;The built-in exceptions are good enough in most cases.&lt;br/&gt;&lt;br/&gt;If distinguishing between a KeyError and a MyLibraryKeyError is useful then make MyLibraryKeyError that inherits from KeyError.&lt;br/&gt;&lt;br/&gt;If that&amp;#39;s not useful today, but might be in the future then use KeyError now and you can always inherit from KeyError in that eventual future that might come one day.
    </content>
    <updated>2024-11-12T15:19:02Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqs92w25e9r5xpppj6mfgqs27sneqm4e0px09qwmz3p9y39drc4zv6qzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052x9ynra</id>
    
      <title type="html">We often rely on the falsiness of None in Python. Read more 👉 ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqs92w25e9r5xpppj6mfgqs27sneqm4e0px09qwmz3p9y39drc4zv6qzyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu052x9ynra" />
    <content type="html">
      We often rely on the falsiness of None in Python.&lt;br/&gt;&lt;br/&gt;Read more 👉 &lt;a href=&#34;https://trey.io/dAEgtL&#34;&gt;https://trey.io/dAEgtL&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;#Python
    </content>
    <updated>2024-11-12T04:48:20Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqszrjejdfcamx4sh5yp5mnvft9kwag336875g356nqtv682zuez35szyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu0523af66n</id>
    
      <title type="html">I&amp;#39;ve been preferring platform.system() as well, but I suspect ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqszrjejdfcamx4sh5yp5mnvft9kwag336875g356nqtv682zuez35szyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu0523af66n" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqspxccw6cj2cj0mgf0mvl8lmm9du8fphazyyuqy8lv6f357v9hh7pchvns4w&#39;&gt;nevent1q…ns4w&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I&amp;#39;ve been preferring platform.system() as well, but I suspect that may be the wrong approach, as the docs say that platform.system() returns a user-facing OS name, which implies that the string isn&amp;#39;t necessarily meant to be machine-readable.
    </content>
    <updated>2024-11-12T03:07:45Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqs96dt0dltk5dg0tc6rp4mxa6fnd3g30s6v2f4re3jftxvtwzg5yvczyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu0524zu9ze</id>
    
      <title type="html">I link to the same SO question. I don&amp;#39;t find the argument ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqs96dt0dltk5dg0tc6rp4mxa6fnd3g30s6v2f4re3jftxvtwzg5yvczyplfzk0ml42jvs2u35k79ex8v48rvcyg87wv4eeq5u868s0neu0524zu9ze" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqspuhfz8vtnefs2qec7cz7vk7fgz83h304nn2c9r9x4j05c8vquvzccp3acu&#39;&gt;nevent1q…3acu&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I link to the same SO question. I don&amp;#39;t find the argument against sys.platform, especially given that the docs show a table of known values while the platform.system docs are much less complete. &lt;br/&gt;&lt;br/&gt;This could be a documentation issue, but when docs are lacking I tend to assume a tool might not be as officially sanctioned as I might otherwise assume.
    </content>
    <updated>2024-11-11T22:54:25Z</updated>
  </entry>

</feed>