<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Cheuk Ting Ho 🐍 </title>
    <description>The latest articles on DEV Community by Cheuk Ting Ho 🐍  (@cheukting_ho).</description>
    <link>https://dev.to/cheukting_ho</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F231136%2F03c976e1-26ee-4285-a323-3a2008dcb47f.JPG</url>
      <title>DEV Community: Cheuk Ting Ho 🐍 </title>
      <link>https://dev.to/cheukting_ho</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/cheukting_ho"/>
    <language>en</language>
    <item>
      <title>Python Zero to Hero - Ep.41 - Last time we ganna talk about emoji prediction for a while</title>
      <dc:creator>Cheuk Ting Ho 🐍 </dc:creator>
      <pubDate>Tue, 27 Apr 2021 15:13:27 +0000</pubDate>
      <link>https://dev.to/cheukting_ho/python-zero-to-hero-ep-41-last-time-we-ganna-talk-about-emoji-prediction-for-a-while-46k0</link>
      <guid>https://dev.to/cheukting_ho/python-zero-to-hero-ep-41-last-time-we-ganna-talk-about-emoji-prediction-for-a-while-46k0</guid>
      <description>&lt;p&gt;It will be the last time we ganna talk about emoji prediction for a while, could we package the library and release it on PyPI? If you have any questions or any suggestions about which Python topics to cover, please leave your comment at my &lt;a href="https://www.twitch.tv/cheukting_ho"&gt;Twitch channel&lt;/a&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>pypi</category>
      <category>video</category>
      <category>packaging</category>
    </item>
    <item>
      <title>Python Zero to Hero - Ep.40 - Answering questions on Stackoverflow</title>
      <dc:creator>Cheuk Ting Ho 🐍 </dc:creator>
      <pubDate>Mon, 19 Apr 2021 23:27:14 +0000</pubDate>
      <link>https://dev.to/cheukting_ho/python-zero-to-hero-ep-40-answering-questions-on-stackoverflow-1pbj</link>
      <guid>https://dev.to/cheukting_ho/python-zero-to-hero-ep-40-answering-questions-on-stackoverflow-1pbj</guid>
      <description>&lt;p&gt;We will have some fresh air and do something different this episode, we look for some Python questions to answer on Stackoverflow. If you have any questions or any suggestions about which Python topics to cover, please leave your comment at my &lt;a href="https://www.twitch.tv/cheukting_ho"&gt;Twitch channel&lt;/a&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>beginners</category>
      <category>stackoverflow</category>
      <category>video</category>
    </item>
    <item>
      <title>What happened when your CI is stopping you from releasing?</title>
      <dc:creator>Cheuk Ting Ho 🐍 </dc:creator>
      <pubDate>Tue, 13 Apr 2021 09:18:06 +0000</pubDate>
      <link>https://dev.to/cheukting_ho/what-happened-when-your-ci-is-stopping-you-from-releasing-3ikh</link>
      <guid>https://dev.to/cheukting_ho/what-happened-when-your-ci-is-stopping-you-from-releasing-3ikh</guid>
      <description>&lt;p&gt;I have been wanting to share my funny releasing stories during my short 18 months of maintaining the &lt;a href="https://github.com/terminusdb/terminusdb-client-python"&gt;TerminusDB Python Client&lt;/a&gt;. I love working in open-source, it has always been my dream to work mainly on GitHub and be part of the community. My journey involves some laughter 🤣, some panic attacks 😱 and tears 😢, but mostly, hugs and support 🙌 from my team and my friends in the community.&lt;/p&gt;

&lt;p&gt;This story (or stories) I am going to tell you mainly consists of... laughter? With some sprinkles of panics, I would say.&lt;/p&gt;

&lt;p&gt;I have encountered the most annoying situation in a release, not once but twice, both of them happened on a Friday (yes, release on Fridays always ends "well"). The situation is, your CI failed. "It was working a few hours ago," I thought (on a side note, I also think that's the best expression to go with "It works on my computer") so I start looking at the build job log, hoping to get it done so I can start enjoying the weekend. But it's not always that straight forward.&lt;/p&gt;

&lt;h2&gt;
  
  
  Chapter 1 - A Tasty Mistake
&lt;/h2&gt;

&lt;p&gt;In the first encounter, I was released with my cool colleague Robin, he is the CI god in my team so I am in good hands. We looked at the log, and we found a slightly weird message: &lt;code&gt;AttributeError: module 'virtualenv.activation.python' has no attribute 'PestythonActivator'&lt;/code&gt; My first reaction, has it been hacked? &lt;code&gt;PestythonActivator&lt;/code&gt; sounds ... yummy 😋 ... if you ask me.&lt;/p&gt;

&lt;p&gt;We of cause, like all good developers do, put the error message online and look for clues, we quickly found a &lt;a href="https://github.com/pypa/virtualenv/issues/1857"&gt;GitHub issue&lt;/a&gt; and boi, we are not the only souls that got crushed by a "timely" release of &lt;code&gt;virtualenv&lt;/code&gt; just a few hours before us. Since the lastest version of &lt;code&gt;virtualenv&lt;/code&gt; got installed every time we create the CI build job on Travis, it fails even we have done nothing. Of cause we didn't point fingers at other maintainers, they are just as hardworking as us and it's human to make mistakes. We are faced with 2 options, roll back to the previous release or wait for the patch of &lt;code&gt;virtualenv&lt;/code&gt; to get released. As the devs of &lt;code&gt;virtualenv&lt;/code&gt; did a lighting fast patch, we have chosen option 2.&lt;/p&gt;

&lt;p&gt;Well, it was... fun and tasty! At least, it is very obvious what had happened and the problem gets solved very quickly and everyone was happy. It's not so... smooth in my second encounter of an "impossible" bug.&lt;/p&gt;

&lt;h2&gt;
  
  
  Chapter 2 - You see, but you do not observe
&lt;/h2&gt;

&lt;p&gt;This time there's only one challenger, that's right, ME! I think that' i have grown wiser since the last incident that was like 9 months ago so I am all good "Release is not scary, I got this!" I spoke too soon. This time, it's the notorious &lt;code&gt;ModuleNotFoundError: No module named 'importlib.metadata'&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;First of all, why is it notorious? Because it is caused by the version difference of &lt;code&gt;Python&amp;lt;=3.7&lt;/code&gt; and &lt;code&gt;Python&amp;gt;3.7&lt;/code&gt;. From Python 3.8 it has been added to the Python standard library so this error is EVERYWHERE. When I start to search for it, there are a million threads about this error and I cannot pinpoint a single library that I depend on that causes this error.&lt;/p&gt;

&lt;p&gt;So, I took a deep breath and think "Sherlock time! 🔍" I try to make sense out of the situation here, I looked at the status of all my GitHub action (yes we have switched from Travis to GitHub Action) build status and discover it was not a problem 2 days ago, it must be a recent release. So I looked through my list of dependencies and find the suspect. &lt;code&gt;tox&lt;/code&gt; got the most recent release, I thought I hit the jackpot and do what I think makes the most sense: Open an issue then roll back to a previous version.&lt;/p&gt;

&lt;p&gt;I was WRONG! The problem persists even when I roll back to the previous version and a friendly GitHuber (I guess is the maintainer of &lt;code&gt;tox&lt;/code&gt;?) also confirm that it's not a &lt;code&gt;tox&lt;/code&gt; error, but suggest I look at &lt;code&gt;pip-tools&lt;/code&gt; instead. I scratch my head "&lt;code&gt;pip-tools&lt;/code&gt;? I didn't have &lt;code&gt;pip-tools&lt;/code&gt; in my dependencies..." But I looked anyway, and found that they actually have an even more recent release and there is indeed a patch fixing that bug coming in. Which means that if I tried to release just slightly later I may not discover the bug! (I can say I am lucky 🍀, right?) I found out that I do have &lt;code&gt;pip-tools&lt;/code&gt; in the dependency list in my &lt;code&gt;tox&lt;/code&gt; set up (hence the confusion).&lt;/p&gt;

&lt;p&gt;I waited and even ask if the release will be on PyPI soon, and you guess what? GitHub action is down! (I said I am lucky! 🍀) Ok, both &lt;code&gt;pip-tools&lt;/code&gt; and I cannot release anything at that moment so just drink more coffee ☕ and chill I guess.&lt;/p&gt;

&lt;p&gt;In the end, GitHub action is back in action and it's a happy ending for everybody. I feel that I have achieved something. When I figured what is broken I was really happy and feel on top of the world. I guess that's how Sherlock Homes feels if he was real?&lt;/p&gt;

</description>
      <category>python</category>
      <category>github</category>
      <category>ci</category>
      <category>bugfix</category>
    </item>
    <item>
      <title>Python Zero to Hero - Ep.39 - Packaging a ML project</title>
      <dc:creator>Cheuk Ting Ho 🐍 </dc:creator>
      <pubDate>Fri, 26 Mar 2021 17:14:21 +0000</pubDate>
      <link>https://dev.to/cheukting_ho/python-zero-to-hero-ep-39-packaging-a-ml-project-1ape</link>
      <guid>https://dev.to/cheukting_ho/python-zero-to-hero-ep-39-packaging-a-ml-project-1ape</guid>
      <description>&lt;p&gt;It's time to think about how to ship our emoji prediction. In this episode, we try to move things over to our emoprint and see how we can design the build process. If you have any questions or any suggestions about which Python topics to cover, please leave your comment at my &lt;a href="https://www.twitch.tv/cheukting_ho"&gt;Twitch channel&lt;/a&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>beginners</category>
      <category>machinelearning</category>
      <category>nlp</category>
    </item>
    <item>
      <title>Python Zero to Hero - Ep.38 - Will a dictionary of emoji help us in the prediction?</title>
      <dc:creator>Cheuk Ting Ho 🐍 </dc:creator>
      <pubDate>Sat, 13 Mar 2021 21:02:39 +0000</pubDate>
      <link>https://dev.to/cheukting_ho/python-zero-to-hero-ep-38-will-a-dictionary-of-emoji-help-us-in-the-prediction-2jhg</link>
      <guid>https://dev.to/cheukting_ho/python-zero-to-hero-ep-38-will-a-dictionary-of-emoji-help-us-in-the-prediction-2jhg</guid>
      <description>&lt;p&gt;Like all NLP projects, it's not easy as the quality of your data may dictate everything! I showed some experiments on the old method that we used and we may have a better result with the new dataset - emoji net. If you have any questions or any suggestions about which Python topics to cover, please leave your comment at my &lt;a href="https://www.twitch.tv/cheukting_ho"&gt;Twitch channel&lt;/a&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>machinelearning</category>
      <category>beginners</category>
      <category>nlp</category>
    </item>
    <item>
      <title>Python Zero to Hero - Ep.37 - NLP with BERT encoding can predict emoji?</title>
      <dc:creator>Cheuk Ting Ho 🐍 </dc:creator>
      <pubDate>Sat, 13 Mar 2021 10:18:31 +0000</pubDate>
      <link>https://dev.to/cheukting_ho/python-zero-to-hero-ep-37-nlp-with-bert-encoding-can-predict-emoji-kjo</link>
      <guid>https://dev.to/cheukting_ho/python-zero-to-hero-ep-37-nlp-with-bert-encoding-can-predict-emoji-kjo</guid>
      <description>&lt;p&gt;To make our emoprint less useless (double negative, let me try again) more useful, we will see if we can use some NLP tricks, namely BERT encoding to do emoji prediction. If you have any questions or any suggestions about which Python topics to cover, please leave your comment at my &lt;a href="https://www.twitch.tv/cheukting_ho"&gt;Twitch channel&lt;/a&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>beginners</category>
      <category>nlp</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>Mid Meet Py 2021 - Ep.02 - Let's chat with Lemon</title>
      <dc:creator>Cheuk Ting Ho 🐍 </dc:creator>
      <pubDate>Sun, 07 Mar 2021 01:55:00 +0000</pubDate>
      <link>https://dev.to/midmeetpy/mid-meet-py-2021-ep-02-let-s-chat-with-lemon-4e5j</link>
      <guid>https://dev.to/midmeetpy/mid-meet-py-2021-ep-02-let-s-chat-with-lemon-4e5j</guid>
      <description>&lt;p&gt;This week we will chat with Leon 'Lemon' Sandøy, one of the owners of Python Discord. Do you know why he is called Lemon? We also talked about some history and behind the scenes of Python Discord.&lt;/p&gt;

&lt;p&gt;All links are in the &lt;a href="//bit.ly/mmp-20210226"&gt;podcast notes&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://anchor.fm/midmeetpy"&gt;Listen to MidMeetPy podcast&lt;/a&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>podcast</category>
      <category>chat</category>
      <category>community</category>
    </item>
    <item>
      <title>Python Zero to Hero - Ep.36 - The most useless library ever</title>
      <dc:creator>Cheuk Ting Ho 🐍 </dc:creator>
      <pubDate>Sat, 27 Feb 2021 21:04:09 +0000</pubDate>
      <link>https://dev.to/cheukting_ho/python-zero-to-hero-ep-36-the-most-useless-library-ever-5ehi</link>
      <guid>https://dev.to/cheukting_ho/python-zero-to-hero-ep-36-the-most-useless-library-ever-5ehi</guid>
      <description>&lt;p&gt;Today you will be making the most useless Python library with me ever. We will start this week and keep on building this library (so hopefully in the end it will be not so useless). If you have any questions or any suggestions about which Python topics to cover, please leave your comment at my &lt;a href="https://www.twitch.tv/cheukting_ho"&gt;Twitch channel&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can get the slide deck &lt;a href="https://slides.com/cheukting_ho"&gt;here&lt;/a&gt; and the example code and homework form &lt;a href="https://github.com/Cheukting/python02hero"&gt;GitHub here&lt;/a&gt;. Ask questions at my &lt;a href="https://www.twitch.tv/cheukting_ho"&gt;Twitch channel&lt;/a&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>tutorial</category>
      <category>packaging</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Python Zero to Hero - Ep.35 - (Valentine's Day Special) Standard Libraries</title>
      <dc:creator>Cheuk Ting Ho 🐍 </dc:creator>
      <pubDate>Fri, 19 Feb 2021 16:46:32 +0000</pubDate>
      <link>https://dev.to/cheukting_ho/python-zero-to-hero-ep-35-valentine-s-day-special-standard-libraries-26lb</link>
      <guid>https://dev.to/cheukting_ho/python-zero-to-hero-ep-35-valentine-s-day-special-standard-libraries-26lb</guid>
      <description>&lt;p&gt;Happy Valentine's Day Pythonistas! And on this special day, we look at the lovely Python standard libraries which are the batteries that are included with your Python download. No need to pip install 3rd party libraries you can do many things with them. If you have any questions or any suggestions about which Python topics to cover, please leave your comment at my &lt;a href="https://www.twitch.tv/cheukting_ho"&gt;Twitch channel&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can get the slide deck &lt;a href="https://slides.com/cheukting_ho"&gt;here&lt;/a&gt; and the example code and homework form &lt;a href="https://github.com/Cheukting/python02hero"&gt;GitHub here&lt;/a&gt;. Ask questions at my &lt;a href="https://www.twitch.tv/cheukting_ho"&gt;Twitch channel&lt;/a&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>beginners</category>
      <category>tutorial</category>
      <category>libraries</category>
    </item>
    <item>
      <title>Python Zero to Hero - Ep.34 - What is PEP?</title>
      <dc:creator>Cheuk Ting Ho 🐍 </dc:creator>
      <pubDate>Sat, 06 Feb 2021 22:42:55 +0000</pubDate>
      <link>https://dev.to/cheukting_ho/python-zero-to-hero-ep-34-what-is-pep-4kld</link>
      <guid>https://dev.to/cheukting_ho/python-zero-to-hero-ep-34-what-is-pep-4kld</guid>
      <description>&lt;p&gt;For the short episode today, we will have a look at what is PEP and how many of them are there. We will answer the questions of what is PEP 8 and other PEPS. If you have any questions or any suggestions about which Python topics to cover, please leave your comment at my &lt;a href="https://www.twitch.tv/cheukting_ho"&gt;Twitch channel&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can get the slide deck &lt;a href="https://slides.com/cheukting_ho"&gt;here&lt;/a&gt; and the example code and homework form &lt;a href="https://github.com/Cheukting/python02hero"&gt;GitHub here&lt;/a&gt;. Ask questions at my &lt;a href="https://www.twitch.tv/cheukting_ho"&gt;Twitch channel&lt;/a&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>beginners</category>
      <category>pep</category>
      <category>lesson</category>
    </item>
    <item>
      <title>Mid Meet Py 2021 - Ep.01 - We are back and chat with Laura Gutierrez Funderburk</title>
      <dc:creator>Cheuk Ting Ho 🐍 </dc:creator>
      <pubDate>Tue, 02 Feb 2021 21:17:22 +0000</pubDate>
      <link>https://dev.to/midmeetpy/mid-meet-py-2021-ep-01-we-are-back-and-chat-with-laura-gutierrez-funderburk-ef4</link>
      <guid>https://dev.to/midmeetpy/mid-meet-py-2021-ep-01-we-are-back-and-chat-with-laura-gutierrez-funderburk-ef4</guid>
      <description>&lt;p&gt;This week we will chat with Laura Gutierrez Funderburk of PyLadies Vancouver. Also, check out the Flask tutorial by Miguel Grinberg.&lt;/p&gt;

&lt;p&gt;All links are in the &lt;a href="https://www.notion.so/Streaming-Jan-29th-epi-I-7cd79f7eef784ca485b61ad3263bef5b"&gt;podcast notes&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://anchor.fm/midmeetpy"&gt;Listen to MidMeetPy podcast&lt;/a&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>chat</category>
      <category>podcast</category>
      <category>interview</category>
    </item>
    <item>
      <title>Python Zero to Hero - Ep.33 - Python ABC (Abstract Base Classes)</title>
      <dc:creator>Cheuk Ting Ho 🐍 </dc:creator>
      <pubDate>Tue, 26 Jan 2021 20:34:59 +0000</pubDate>
      <link>https://dev.to/cheukting_ho/python-zero-to-hero-ep-33-python-abc-abstract-base-classes-32co</link>
      <guid>https://dev.to/cheukting_ho/python-zero-to-hero-ep-33-python-abc-abstract-base-classes-32co</guid>
      <description>&lt;p&gt;I have come across Python ABC a few times and I always wonder what magic power do they processed and what are they used for. Today, we will have a look together. If you have any questions or any suggestions about which Python topics to cover, please leave your comment at my &lt;a href="https://www.twitch.tv/cheukting_ho"&gt;Twitch channel&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can get the slide deck &lt;a href="https://slides.com/cheukting_ho"&gt;here&lt;/a&gt; and the example code and homework form &lt;a href="https://github.com/Cheukting/python02hero"&gt;GitHub here&lt;/a&gt;. Ask questions at my &lt;a href="https://www.twitch.tv/cheukting_ho"&gt;Twitch channel&lt;/a&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>internal</category>
      <category>tutorial</category>
      <category>video</category>
    </item>
  </channel>
</rss>
