[{"content":"From technical tutorial to community news. Opinions are mine.\n","date":"15 August 2025","externalUrl":null,"permalink":"/posts/","section":"Blog posts","summary":"","title":"Blog posts","type":"posts"},{"content":"","date":"15 August 2025","externalUrl":null,"permalink":"/","section":"cheuk.dev","summary":"","title":"cheuk.dev","type":"page"},{"content":"","date":"15 August 2025","externalUrl":null,"permalink":"/tags/community/","section":"Tags","summary":"","title":"Community","type":"tags"},{"content":"","date":"15 August 2025","externalUrl":null,"permalink":"/tags/psf/","section":"Tags","summary":"","title":"PSF","type":"tags"},{"content":"The PSF (Python Software Foundation) board election is now happening. If this makes you think, “what’s the big deal?” or “why is it relevant to me?” I invite you to read on.\nWhy do we need the PSF? # Let’s first talk about the role of the PSF and why, even if global communities have been organising activities individually, we need a US registered non-profit? What role does the PSF play in the global community of Python?\nIf this is your first time asking this question, note that the PSF is the registered copyright holder of the name Python for the programming language, PyCon and PyLadies. It also holds the trademark registration of the Python logo.\nThe PSF is holding these to protect the community from harm, and the names and logo being misused. So far the PSF has given the community a lot of freedom to use the names and logo if they follow some very basic rules.\nOther than that, the PSF also takes care of a lot of daily organisational operations, such as admin and accounting, so the Python language and the community can thrive. For example, even though the Python steering council has the technical authority of CPython and the language, PSF supports them by handing the accounting of their fund, which is needed to pay the Core Developers in Residence so they can work full time on Python.\nPSF also hired staff to maintain PyPI and keep it safe, a very important infrastructure for the Python language. Imagine in a parallel universe where PyPI is maintained by a for-profit company: under these circumstances it may lose the trust of the open source community, as the governance is not following the principle of the open source. That company could start charging for usage of PyPI and the community would not have a say about it.\nWhat quality should a PSF board member have? # Since a couple of years ago, the community and the PSF have been making videos with PSF board candidates. We’ve tried to help candidates to get known and express what they envision and would bring to the PSF by being a board member. This is to give all candidates a chance so it does not become a popularity campaign.\nThat being said, when looking at the candidates, please take some time to read their self-nomination statement carefully. Also, if anything they say sounds interesting, make sure to do some research to check their credibility and see what they have delivered in the past for the community. Another indicator is to see who has endorsed their nomination - this is shown at the bottom of their nomination statement.\nDo not trust what the candidate promised in their statement without looking into their background and see if there is effidence that they can deliver what they promised. I say that with the bottom of my heart as someone seeing several shocking election results around the world in recent history.\nIn my opinion as a current board member, if someone has a record working with the PSF - for example, volunteering in one of its workgroups- this would be a huge advantage because this shows the candidate understands the role and the operation of the PSF. Someone who has a track record of constant contribution to the Python community would also have an advantage as they’ve shown with action how much they care about Python and the community.\nWhy is participating in the election important even if you are not US-based? # As we mentioned above, the PSF, although a small non-profit organisation registered in the US, plays important roles in supporting the Python language, CPython and PyPI, and this work affects all Python users, including those outside of the US. If you use Python, please actively participate in the election.\nIf you have not done so yet, please affirm your voting status. If you are not a PSF voting member yet, you can still catch the train by doing it now.\nIf you are still not convinced and/ or have questions, there are plenty of opportunities for you to know more. You can come to the PSF board office hour or reach out to me.\n","date":"15 August 2025","externalUrl":null,"permalink":"/posts/2025-08-15-vote-in-psf-election/","section":"Blog posts","summary":"","title":"PSF Board election - what does it entail","type":"posts"},{"content":"","date":"15 August 2025","externalUrl":null,"permalink":"/tags/","section":"Tags","summary":"","title":"Tags","type":"tags"},{"content":"","date":"24 July 2025","externalUrl":null,"permalink":"/tags/conference/","section":"Tags","summary":"","title":"Conference","type":"tags"},{"content":"","date":"24 July 2025","externalUrl":null,"permalink":"/tags/europython/","section":"Tags","summary":"","title":"EuroPython","type":"tags"},{"content":"“EuroPython is like a big family reunion every year!” This is what I said to one of the new attendees on the first day of EuroPython 2025. If you have been to EuroPython in recent years, I am sure you will agree with me. And this family is growing bigger and bigger every year.\nWhat makes EuroPython special is that it is driven mainly by the community. It is welcoming, and we embrace who we are by being our true selves in this community. It is easy to say that, but to strengthen my point, I would like to give you a couple of examples that happened this year.\nOur Pocket of Sun at the Conference # Every year the volunteers at the conference wear yellow t-shirts to identify themselves. Someone called the volunteer team the “pocket of sun at EuroPython” and I can’t think of a better nickname for them. What they did during the conference is proof that they are truly giving warmth and making the conference bright.\nThis year there were two sight impaired attendees (one of them was a speaker and returning attendee, which is awesome!) who required someone to accompany them most of the time at the event. I have seen that being done at other conferences, and how they do it is to hire someone to take on the role.\nWhen the topic of how we can support those attendees came up in organising meetings, I suggested we also hire someone, as I realized the task of accompanying another person all the time requires a lot of energy and patience. I had thought it would be a burden - too much work for our team of volunteers. When the team decided the volunteers will take turns to accompany the attendees, I was worried that it may not work well.\nHow wrong I was! I underestimated our volunteer team! Not only do they work as a great team taking turns, they also offer friendship, and help the attendees have a better experience at the conference than being accompanied by someone who is getting paid to do it. The kindness and passion of our volunteers are so great that I doubt any money can buy that kind of service.\nThey have shown that the community accepts anyone and welcomes them with open arms. The volunteers tried their best to give these attendees a great experience, working with their accessibility requirements. It touches my heart deeply. My deepest respect to those who have taken this challenging task and made these two attendees feel welcomed and as a part of our community, just like everyone else.\nWe are Friends, not Just Business Connections # Earlier this year, we lost our great friend Michael. The community and the organisers decided to do a few things to honor him, including reserving a seat for him in the main hall and a memorial session hosted by Nicholas. Michael’s family was watching the memorial session via the livestream. We shared our memories about Michael. There were tears but also laughter, because all the memories with Michael were fun. I am sure he will be missed by many.\nThis is very unusual in a tech conference, of course. But this proves that we are a community where friendships are real. For many of us, we not only lost a great contributor to the community, but we also lost a good friend who we will always miss.\nWe Have so Many Talents # Oh my oh my, where shall I start? Our friend Moises does a little performance at the lightning talks for us every year at EuroPython, from the first year where he just made some beats with foxdot, to last year where he gave a full musical performance with a harmonica and ukulele. This year, he upped his game and brought a full ensemble on stage! A musical group made out of Python nerds was formed!\nHowever, this group are not the only musical talents in the EuroPython community. If you remember, in 2022’s EuroPython in Ireland, Nicholas played a grand piano on stage for us. This year we had a piano at our sprint venue, and although Nicholas was not at the sprints, we had another piano star, Wey-Han from Taiwan, playing for us.\nThis year, we also had multiple dancing and karaoke parties after the conference. Who said nerds cannot party?\nLet’s Keep it Going # If you are like me, a consistent attendee at EuroPython, or if you are someone who attended for the first time, I hope you are already in love with the conference and the community. Remember, a community like this takes time and effort to build. EuroPython is a huge conference that requires a lot of working hours and money to make it happen. If you have time and passion, why not volunteer or join the organising team? If you are working full-time for a company that uses Python and open source libraries, why not encourage them to give back to the community and sponsor EuroPython or any other Python community or event?\nMy employer, JetBrains, was one of the sponsors this year, and we met a lot of our users and everyone was happy to see us being a part of the community. The community’s success is also our success. As a company, supporting the community is something that can benefit the business, and I hope more and more companies will realize that. As a member of the community, you can be the internal advocate to take this first step - make EuroPython (or your local PyCon) known by the decision makers in your company.\nThat’s it from me this year, hope to see you again at EuroPython 2026.\n* while the official photos are still being processed, thank Hugo van Kemenade and the volunteers for providing these amazing pictures\nCover Photo by Zsombor Buttyán on Unsplash\n","date":"24 July 2025","externalUrl":null,"permalink":"/posts/2025-07-24-europython25-recap/","section":"Blog posts","summary":"","title":"EuroPython 2025 Recap","type":"posts"},{"content":"As the PSF board election approaches, I am sure many of you are keen to get involved. It is a special chance for those of us who have been in the community for a while, and who love it, to help it be better. However, do you know what the Python Software Foundation, and particularly the PSF board members do? Have you ever wondered whether you should run for the board?\nI had similar questions when I ran for the board two years ago. After serving on the PSF board for two years, I won’t say that I am an expert, however, I do have some answers for my past self to some of these questions. I’d like to share these to help those of you who may be considering running in this election, to save you finding things out the hard way.\nQuestions about the PSF board of directors and being one of the members # Here are some common questions that I have asked or have seen folks asking regarding the PSF board.\nCan I influence the future of Python if I become a board member of the PSF? # The answer is yes and no. If you are expecting that the board members of the PSF can contribute to the development of the Python language or CPython, then you may be disappointed. Few to none of the discussions in the PSF board meetings are technical. The PSF board and the Python steering council, the leadership and governance of CPython, are two different bodies, and we do not directly interfere with each other’s work.\nThat being said, we cannot ignore the fact that Python the language cannot be separated from the Python community. In other words, the technical side of Python and the community side of Python are supporting each other, and one cannot succeed without the other.\nFor example, by securing sponsorship to hire core developers, we can accelerate the development of Python. So, by becoming a board member of the PSF and helping find sponsors, you can make a positive impact on the future of the language.\nHowever, if you are most interested in making direct, high-impact contributions to the technical aspects of Python, you could aim for writing a PEP or becoming a core developer of CPython instead.\nAm I the boss of the PSF staff if I become a member of the PSF board? # Basically, no. Our lovely PSF staff are under the supervision of our executive director, Deb Nicholson. The PSF board is mostly taking the role of advising and making high-level decisions. As an elected board member we do not interfere with the day-to-day operations of the PSF staff directly. However, if you have concerns or suggestions, Deb will be happy to chat with you (I can testify that this is true).\nCan I nominate someone who is not a PSF member? Or do I need to check with them if they are a member first? # Good question! Although intuitively a board member should ideally be a PSF voting member, in the PSF by-laws as they are currently written, there are no restrictions on non-members running for election. However, personally, I always encourage folks who are contributing to the community to self-certify as a contributing member. That way those who are making a contribution to the community can vote in the election and can help choose the right leaders for the PSF.\nHow much time do I need to spend for PSF work if I become a board member? # There’s little time required if you just do the bare minimum. There are monthly 2-hour long meetings and you’ll also need to be responding to async communication. However, this is not the time an A+ board member would spend. To get an A+ (or close to it), you may find yourself leading or engaging in workgroup activities, taking a seat in various committees, helping with PyCon US (the only PyCon that is organised by the PSF) and so on. So, my recommendation is that, if you have other community commitments, you may have to pause them during your term as a board member so you can focus on the PSF work.\nWhat kind of person would be a good fit to be a PSF board member? # The PSF board functions like C-suite executives in a non-profit organization. So the roles they participate in include: Strategic Decision-Making, Leadership, Fundraising and Collaboration. Someone who has experience working at that level or thinks they can take up roles like that would be ideal. If you are good at other administrative or specialised skills, for example, good at reading legal documents or accounting reports, these skills would also be helpful.\nIf this sounds boring to you, maybe it is. If you are expecting to do more hands-on work like organising events or activities, you may consider helping out at PyCon US or organising events for your local community instead.\nShould we aim to have a diverse PSF board to better represent our global community? # Let’s address the elephant in the room. Yes, diversity and representation are important, however, it is also important for the board members to be able to take up the role and do what they need to. Also, the PSF is a registered US non-profit, which means there are some restrictions on what it can and cannot do. For example, we cannot do anything that goes against US foreign policy. I think first and foremost it is important for the board to be able to lead the PSF and understand how a US non-profit functions. Diversity would be a nice to have on top of this.\nAs a board member who is not from or living in the US, I sometimes found it hard to understand why we had to do things in certain ways when I first started. But the more I talked with folks who are experienced in such things, the more I understood, and I have learnt much in the past 2 years. If you are like me, someone who is underrepresented and not from the US, it is great that you want to contribute, but you will have to be prepared to learn. Maybe consider joining one of the PSF workgroups first to learn more about the PSF work before running for the board.\nFor those who are ready to run for the election # Think you are ready to run for the election? Awesome! Here are a few things I would recommend you to do:\nCheck the schedule of the election and be mindful about the deadlines Encourage the members in your community to become a voting member and remind them to affirm their intention to vote to participate in this election. Prepare a nomination statement (more details below) Ask folks in the community to nominate you, you can also self-nominate but the nominations from others can add credits to your nomination. Join the board office hour to ask questions, if you have any What is to be included in a nomination statement? # The nomination statement is to let the voters know you and persuade them to vote for you. You can start by introducing yourself:\nWhat is your profession? Where are you based? Which community or communities do you belong to? You should also include some information about you that is relevant to the role of a board member as mentioned above. For example:\nExperience in leadership and strategic decision making Legal, fundraising or accounting expertise Python community contributions in the past You can also include the vision you have for the PSF, and what benefit you can bring to the PSF as a board member.\nIn addition to the nomination statement, are there other ways to campaign? # In the past two years videos were made to introduce all the candidates to the voters. It was a success as it is good to put a face to the name, and seeing someone talking on camera can be more convincing than just a nomination statement. While we do not know if there will be coordinated work on it this year, you can start doing it yourself—all you need is to record yourself with a webcam or a phone.\nI understand many folks do not have the privilege to travel to conferences and events like I do, but there are still a lot of different ways to connect with the community. Social media is a powerful tool these days to spread the word to the community. You can also tag the relevant community and the PSF while posting your election campaign posts.\n","date":"28 June 2025","externalUrl":null,"permalink":"/posts/2025-06-28-psf-election/","section":"Blog posts","summary":"","title":"The PSF board election: what do I need to know?","type":"posts"},{"content":"","date":"22 May 2025","externalUrl":null,"permalink":"/tags/pycon-us/","section":"Tags","summary":"","title":"PyCon US","type":"tags"},{"content":"This year PyCon US 2025 in Pittsburgh has been wrapped up. This is our second year back in the David L. Lawrence Convention Center. It is a lovely venue and is near a lot of nice places for food and drinks.\nWe\u0026#x27;re here! See you at #PyConUS 2025 in just a few short days!\n[image or embed]\n— PyCon US (@pycon.us) May 12, 2025 at 4:31 PM\nAs Deb, our executive director of the PSF pointed out, this year we are in a “weird” time. Apparently there are more weirdos at PyCon than those who know what PSF is. We may need to fix that (hopefully at the conference). But we are still having a lot of fun at PyCon US this year. We are also looking forward to going to Long Beach, CA for the next PyCon!\nStay weird! #PyConUS\n[image or embed]\n\u0026mdash; KwonHan Bae (@darjeeling.bsky.social) May 16, 2025 at 9:58 AM Open Space and Lighting Talk signup went digital # Sign up for ⚡️⚡️ lightning talks ⚡️⚡️ NOW! Questions? Me @chrisjrn.fyi @cristianmauricio.bsky.social \u0026amp; Abigail (www.instagram.com/mesrenyamedo...) are y’all’s hosts and go to for questions! And if you run a #Python conf tell us! We want you to plug y’all’s event at #PyConUS! A single slide shall do.\n[image or embed]\n\u0026mdash; Lorena Nicole (@lorenanicole.bsky.social) May 16, 2025 at 9:42 AM If you don’t know yet, lighting talks and open spaces are my favourite part of the conference. This year we can sign up and check the schedule online which makes it really convenient and improves the attendee experience a lot. This year I am not hosting the lighting talks any more but I have given one lighting talk. I have also done four open spaces this year which is A LOT!\nApparently there are a lot of people who asked me “Are you the one doing the tea party open space?” so I may have to do it again next year - I will have to remember to bring my travel kettle.\nA Very Good Boy joins the JetBrains booth team # Although I got little time working at the booth due to a million other things at the conference, I am glad to be part of the team.\nSmiles, swag, and Python spirit 🐍 We’re happy to be part of the coolest #Python community at #PyConUS 2025!\n[image or embed]\n— PyCharm, a JetBrains IDE (@pycharm.dev) May 19, 2025 at 9:43 AM\nAnd I am so happy to meet this very good boy again.\nThere’s so much fun showing folks Junie and having a play with it and seeing it recreate other people’s project in a short amount of time.\n# PyLadies Auction is still awesome # This year I was pulled into being an auctioner/ runner and it was fun helping to get more donations to PyLadies. This year we also have an accurately sized Guido cut out (compared to last year’s shorter cutout) and a giant snake for auction.\nOne of us is going to take Guido or the giant #Python (or both) home from #PyLadies auction 😁\n[image or embed]\n\u0026mdash; Cheuk Ting Ho (@cheukting.bsky.social) May 17, 2025 at 6:42 PM We also have a bunch of other handcrafted art pieces, many done by our very talented community members, for auction. In the end we have reached our goal of $50,000.\nIt\u0026#x27;s done! 🥳 I\u0026#x27;m ready to submit this painting for PyLadies Auction @pycon.us. It\u0026#x27;s a collab work between me and Brazilian street artist, Boleta. You can make a donation too by submitting it here: bit.ly/pyladies-auc.... If you\u0026#x27;re attending @pycon.usn, be sure to sign up—tickets go fast!\n[image or embed]\n\u0026mdash; Georgi Ker (@georgically.bsky.social) March 11, 2025 at 10:40 AM And, we didn’t forget to “auction the pen” - make a spontaneous auction on any item(s) that is available.\nIt happened again. Craziest item at PyLadies Auction contributed by the community. Ee’s badge, ice cream coupons, cash from different countries, juggling balls, stickers, bandaid sold for $2000. For the community. By the community #PyConUS @pycon.us\n[image or embed]\n\u0026mdash; Georgi Ker (@georgically.bsky.social) May 17, 2025 at 9:56 PM Of course, Ice Cream!!! # At our JetBrains booth, we offered ice cream to our fans, why not treat yourself to something nice at the conference while enjoying some conversation about PyCharm?\nHey #PyConUS we have ice cream at #PyCharm booth - come meet the @jetbrains.com team and have a chat with us\n[image or embed]\n\u0026mdash; Cheuk Ting Ho (@cheukting.bsky.social) May 17, 2025 at 10:37 AM After the conference colsing, we had the craziest ice cream sprint/ ice cream selfie situation.\nIce Cream Selfie Flash Mob. Tag yourself! #IceCreamSelfie #PyConUS\n[image or embed]\n\u0026mdash; Mariatta (@mariatta.ca) May 18, 2025 at 8:03 PM There were around 20-30 of us at the local Millie’s Ice Cream which is heavenly and the party was fun!! We may get Instagram famous as we created a queue outside!\nNot sure how this ice cream selfie will work 😆 #PyConUS @pycon.us\n[image or embed]\n\u0026mdash; Georgi Ker (@georgically.bsky.social) May 18, 2025 at 6:21 PM Come to the conference stay for the sprint # This year, thanks for the support of my company (the best company - JetBrains) I am able to stay for the whole sprint at PyCon US which I got a chance to work on PyO3 with the amazing maintainer David Hewitt and Nathan, I have made a couple of PRs and have been staring at some fun async PyO3 functions for a couple of nights!\nWe also have a board meeting on the first day of the sprint! It feels so busy even when the conference is over! I have also got a chance to speak with a bunch of community members at a more private setting about the PSF work.\n—\nAll in all, I am working hard and having fun at PyCon US - take care and until we meet again my friends!\nCover photo by Benjamin R. on Unsplash ","date":"22 May 2025","externalUrl":null,"permalink":"/posts/2025-05-22-pycon-us/","section":"Blog posts","summary":"","title":"PyCon US - Goodbye Pittsburgh, hello Long Beach","type":"posts"},{"content":"","date":"13 May 2025","externalUrl":null,"permalink":"/tags/agentic-ai/","section":"Tags","summary":"","title":"Agentic AI","type":"tags"},{"content":"","date":"13 May 2025","externalUrl":null,"permalink":"/tags/junie/","section":"Tags","summary":"","title":"Junie","type":"tags"},{"content":" JetBrains Developer Advocate Cheuk Ting Ho shared her insights into Junie’s architecture, decision-making process, and how it transforms prompts into real code. Perfect for anyone curious about what goes on behind the scenes of an AI coding agent! ","date":"13 May 2025","externalUrl":null,"permalink":"/videos/z1lvslpxn2c_junie_livestream_-_inner_workings_of_an_ai_coding_agent/","section":"Presentation videos","summary":"","title":"Junie Livestream - Inner Workings of an AI Coding Agent","type":"videos"},{"content":"","date":"13 May 2025","externalUrl":null,"permalink":"/tags/livestream/","section":"Tags","summary":"","title":"Livestream","type":"tags"},{"content":"See all my talks and tutorials in one place.\n","date":"13 May 2025","externalUrl":null,"permalink":"/videos/","section":"Presentation videos","summary":"","title":"Presentation videos","type":"videos"},{"content":"","date":"9 April 2025","externalUrl":null,"permalink":"/tags/keynote/","section":"Tags","summary":"","title":"Keynote","type":"tags"},{"content":"","date":"9 April 2025","externalUrl":null,"permalink":"/tags/pycon-apac/","section":"Tags","summary":"","title":"PyCon APAC","type":"tags"},{"content":" Like it or not, AI technology is going to be part of our life, just like any technology, it can be used to do good or harm. While we are conscious of this new technology, let’s look at how we can use it to our benefit and help with a constant battle in our community: diversity and inclusion. ","date":"9 April 2025","externalUrl":null,"permalink":"/videos/nbzx5u5nhry_pycon_apac_2025_-_what_ai_can_do_to_enhance_di_in_the_community/","section":"Presentation videos","summary":"","title":"PyCon APAC 2025 - What AI can do to enhance D\u0026I in the community?","type":"videos"},{"content":" PyCon US survival guide # Hey, this year PyCon US is back in Pittsburgh, Pennsylvania: the home of the “Ketchup Museum” and The Andy Warhol Museum. If this is your first time going to PyCon US, you may wonder what you should do, how it is different from your local conference, and how to make the most out of it. This will be my fourth time going, so let me give you a few tips.\nTalks and workshops are great, but there’s more than that\nYou may have heard that the competition for speaking at PyCon US is fierce because there are many Python experts and celebrities attending the conference. Well, this is true - but don’t feel discouraged if you are new to the community. Other than learning from the experts in the community, you can also participate in a lot of beginner-friendly or self-organised activities. Here are a few of them:\nOpen spaces are for everyone\nPersonally I found that open spaces are the most fun in PyCon US, I have not experienced open spaces at other conferences that are quite like those at PyCon US. Open spaces are organised by anyone at the conference. Just pick a slot and tell us what activities you plan to do in your open space. Not only can you have a discussion with other Pythonistas about interesting Python topics, you can even share any topic that interests you. In the past, we have had groups of folks practicing juggling and yoga in their open spaces! Do you wanna find out what open spaces I will organise this year? Come to PyCon US.\nHow about giving a lightning talk?\nIf you have a topic you want to talk about, but it didn’t make it past the CfP, you can give it another try by signing up to give a lightning talk. Lightning talks are shorter (only 3-5 mins) and easier to prepare. Perfect to talk about Python community work, your hobby project, what you learnt recently or pitch your hot takes in Python.\nMeeting communities around the world\nPyCon US’s participants are not only from the USA. Every year there will be folks, many of them are local community organisers across the globe, participating. There are also community booths and tables at the conference where you can meet communities that you may not have heard of before. It is a great opportunity to make new friends and learn from people who may have a different cultural background. This is part of the beauty of being in a global community.\nJoin the discussions that you care about\nBeing a new participant at PyCon US doesn’t mean that you cannot express your opinion. There are plenty of interactive sessions which give you opportunities to be part of the discussions. Other than the open spaces that are mentioned above, there are also summits (some of them require registration and are by invitation only) which you can join. Please see the event tab on the PyCon US webpage.\nOther than the official program, usually the most interesting discussions happen in the hallway (which we call a “hallway track”) and dinner tables. Don’t be shy to join them! For folks who are PyCon regulars, please remember the “Pac-Man rule” and welcome new folks to join the conversation.\nLooking for new opportunities?\nPart of the advantage of joining Python community events is to grow your professional network. PyCon US is one of the best places to do so! Whether you are looking for a new opportunity, it’s always good to be there to talk to sponsors who will be leading in using Python in the tech industry. You can understand how the industry is doing, learn about what’s new and get inspired. For those who are actively looking, there will be a lot of opportunities to talk to potential employers, as there will also be a job fair.\nRemember to stay for the sprints\nAnother one of my favourite activities in Python conferences is the sprints! Sprints are days of the conference (usually free to attend) when participants sit together to work on open-source projects. At PyCon US, maintainers of popular Python libraries and core developers of CPython are usually there to lead the sprints. This means it is a golden opportunity to learn from the experts in the Python community, a good way to contribute to your favourite Python libraries and gives you the chance to give back to the open-source software that you used.\nPyCon US is for (mostly) everyone # Students, academics and educators are welcome\nIf you are a student or an educator working in an educational education, you can get a discounted ticket which is much more affordable.\nFor students, not only does PyCon US provide a lot of opportunities to meet working professionals, but there will also be a job fair where you can be assisted to start a career in Python.\nFor educators, there will be an Education Summit and the Education and Outreach working group member will also be there to meet you all and to see how we can help in Python education.\nPyCon US is welcoming\nAs someone who has been in the Python community for years, I deeply understand being welcoming is essential to the community. Everyone attending the conference agrees to follow the code of conduct, and there will be a team to ensure it is respected and actions will be taken if someone violates it.\nLast year, at PyCon US, we saw that the organisers made special arrangements for those who are in need. For example, there are ASL (American Sign Language) interpreters on-site and assistants are available to help visually impaired participants to enjoy the conference.\nIf you have any special needs or have any questions about accessibility facilities at the conference, please contact pycon-reg@python.org\nInternational visitors? PyCon US tries their best to help\nAs an international visitor visiting the US myself, I understand that there is a lot of information out there at this “interesting” time that may discourage traveling to the US. After all, it is a personal decision whether or not you feel safe to visit another country. PyCon US has also implemented special refund policies and information for international travelers.\nMy decision? I will be attending PyCon US this year. I also know a lot of my friends from outside of the US will be going too. In this sensitive time we have to take care of each other and stay in touch while traveling. If you need special assistance, please contact the PyCon US team (pycon-reg@python.org).\n","date":"9 April 2025","externalUrl":null,"permalink":"/posts/2025-04-09-pycon-us-guide/","section":"Blog posts","summary":"","title":"PyCon US survival guide","type":"posts"},{"content":" Wait, what? Last PyCon APAC? # Yes\u0026hellip; you heard it. However, it is not the end of it. Iqbal Abdullah, one of the founder of Python Asia Organization (PAO) announced at the conference that, the name \u0026ldquo;PyCon APAC\u0026rdquo; will be retired, rebrand and relaunch - please see the details in his blog post.\nI am honour to be part of it # That being said, I am so glad to be part of this year\u0026rsquo;s PyCon APAC, to witness such a big change in the Python Asia community. It started in last year\u0026rsquo;s PyCon APAC, the organising team invited me to give a keynote at this year\u0026rsquo;s PyCon APAC in Manila, a fascinating city. The people here are such good at hospitality, I feel so welcomed everywhere and people are so friendly. Also, it seems everyone here is born to sing - you can hear a random stranger humming to a tune everywhere you go. This culture can be seen at the conference, the organizers created a conference that has welcomed community members from around the world.They even organise a PyNight event where everyone can show their talent (or lack there of) after the conference has concluded.\nThank you for giving me the oppotunity to give a keynote at this special conference\nWe all speak different languages but we are one community # One thing that strike me is that, in every PyCon APAC, there will be representative of communities from different regions/ countries participating - from Indonesia, Taiwan, Japan, Malaysia, Singapore, India, Korea and Hong Kong. I realized myself switching from languages to languages when talking to friends from difference places, but we all speak one language - Python! Even folks speak different mother-tongue, we all hang out together, share our experience (and food) with each other. This kind of respect and openness is the spirit of the Python community and I can see that a lot in PyCon APAC and I love it!\nWork hard and play hard # The conference concluded at the closing, but it does not mean that the event stops there. the day after we have the sprints where folks work on open source and digital public goods projects together. It is the first time after the pandemic that PyCon PH has done it and the turn out is not bad. My only complain was that the coffee group order in the morning got canceled by the coffee shop and I didn\u0026rsquo;t get to drink the famous ube coffee during the sprint.\nThen after the sprint, we have a fun outing day, organisers and speakers were invited and since we are all young at heart it feel like we are back in school field trip again! We have a culture tour to Las Casas Filipinas de Acuzar - 3 hours drive from Manila and we got to nap and chat in the van (I think we were all too tired to sing). Unfortunately we have a heatwave on that day so the culture tour was exhausting. It was fun but maybe we can do a spa day next time instead. During the trip I also discover other hidden talent of our community members - tour guiding and diving. I also discovered that you can buy chicken alive in the Philippines - we have found one in one of our vans.\nSomeone is selling Taho (Filipino Sweet Tofu Dessert) at Las Casas Filipinas de Acuzar\nBig thank you to making this happened # I have to thank everyone who where a part of this conference - the founder and director of PAO (Kwon Han Bae, Freilla Espinola, Manabu Terada, Iqbal Abdullah); the organizers and volunteers of PyCon PH and host of PyCon APAC 2025; all the sponsors including JetBrains and our partner Tangunsoft; and everyone who where there with me to share this memorable conference with.\n","date":"7 March 2025","externalUrl":null,"permalink":"/posts/2025-03-07-pycon-apac/","section":"Blog posts","summary":"","title":"PyCon APAC 2025 - maybe the last PyCon APAC","type":"posts"},{"content":"","date":"26 February 2025","externalUrl":null,"permalink":"/tags/pyo3/","section":"Tags","summary":"","title":"PyO3","type":"tags"},{"content":"","date":"26 February 2025","externalUrl":null,"permalink":"/tags/rust/","section":"Tags","summary":"","title":"Rust","type":"tags"},{"content":" Cheukting/pyO3_202 Rust 2 0 Consider buying me a coffee if you love the content.\n","date":"26 February 2025","externalUrl":null,"permalink":"/workshops/support_python_async_and_multithreading_in_pyo3/","section":"Workshops","summary":"","title":"Support Python Async and Multithreading in PyO3","type":"workshops"},{"content":"Self learning workshops on GitHub created by me. Consider buying me a coffee if you love the content.\n","date":"26 February 2025","externalUrl":null,"permalink":"/workshops/","section":"Workshops","summary":"","title":"Workshops","type":"workshops"},{"content":"","date":"30 January 2025","externalUrl":null,"permalink":"/tags/ai/","section":"Tags","summary":"","title":"AI","type":"tags"},{"content":" Website migrations # It has been a year since I didn anything for my website. The truth is, I got fed up with the Jekyll template that I was using. Over the years I have hack around with no Ruby on Rail knowlesge and made a big mess. Also as the content grew, the infinite scrolling design become super annoying when older content need to be found.\nAs wanted to start a new, I decided to switch to using Hugo, which I have used when helping with PyLadiesCon and having an interest. After searching around, I found a theme, Blowfish, which I think have the potential to be customize to the website that I want. It is well documented so picking it up as a Hugo newbie is not too hard. However, I have another challange.\nWhile Hugo also support contents in markdown format and data files in YAML format which I used in my old website. The file structure i need in the new website is totally different. I also have some YAML file in the old website which, with a lot of hacking, was used to generate pages. So, to keep it neet and tidy in the new website, and to avoid hacking too much, I decided to do what I do best. I am going to write some Python script to transform the old files into the new ones.\nThis is where the power of AI comes in! Since I started woking with JetBrains, I have been encouraged to test out their AI coding assitants. The inline prompt saves me time to fetch the Python code to read YAML files and clean up strings with Regex. I am not a big fan of Regex and to figure out what patten to use is annoying. Although AI Assitant is not perfect at every shot. It gives me something to start with, then I varify with a Regex tester online and modify it. It is quite convinence.\nHere are a few tips that I discover when using AI Assitant:\nBe precise, a prompt like \u0026ldquo;remove square brackets\u0026rdquo; would work better than \u0026ldquo;clean up markdown formats\u0026rdquo; Use technical terms, like \u0026ldquo;front matter\u0026rdquo; and \u0026ldquo;url-safe\u0026rdquo;, they are good cues for the model to generate the right code for you. One step at a time, break down tasks into smaller tasks so it is easier for AI to get it right. It is also easier to make adjustments. Good prompt or bad prompt # These leads me down the rabbit hole, what makes a good prompt? First, we need to look at how your prompt get processed by an LLM.\n1. Tokenization # The first step in making a machine, who works with numbers, into processing a natural language, which consist of complex logics and contexts, is tokenization. This is a key process within NLP (Natural Language Processing). Sentances are analized and broken into chunks of ideas (i.e. tokens) and then being processed.\n2. Lemmatization # Most of the time these tokenized words will also go through lemmatization to extract their based form. In lanugages such as English and many other European languages, word changes forms due to different situations in a sentance. To make sure tokenized words in different forms are normalization and consider the same can have some advantage in other NLP processes.\n3. Vectorization # One way of processing the tokens is to vectorize it so it become numbers which can be processed by the neural network. Althoug there are many different methods to do so, the logic of vectorizing is trained on the relationship between different words. That\u0026rsquo;s why a lot of textual data are required to train a general purpose model.\nLet\u0026rsquo;s go back to our prompt, the process of how it went through tokenization, lemmatization and vectorization give us a hit. I speculate that, if we use precise terms like \u0026ldquo;function\u0026rdquo;, \u0026ldquo;dictionary\u0026rdquo; and \u0026ldquo;strings\u0026rdquo;, these words are commony used in a Python documentation and they would probalbly have a proximity to each other and could give a result with less noise. Therefore, as a conclusion, when using AI Assitant in coding, \u0026ldquo;speaking like a programmer\u0026rdquo; would give you a huge advantage.\n","date":"30 January 2025","externalUrl":null,"permalink":"/posts/2025-01-30-migrate_my_website_contents_from_jekyll_to_hugo_with_good_prompts/","section":"Blog posts","summary":"","title":"Migrate my website contents from Jekyll to Hugo with good prompts","type":"posts"},{"content":"","date":"30 January 2025","externalUrl":null,"permalink":"/tags/nlp/","section":"Tags","summary":"","title":"NLP","type":"tags"},{"content":"","date":"30 January 2025","externalUrl":null,"permalink":"/tags/static-web/","section":"Tags","summary":"","title":"Static Web","type":"tags"},{"content":" The EU Commission is likely to vote on the Cyber Resilience Act (CRA) later this year. In this talk we will look at the timeline for the new legislation, any critical discussions happening around implementation and most importantly, the new responsibilities outlined by the CRA. We’ll also discuss what the PSF is doing for CPython and for PyPI and what each of us in the Python ecosystem might want to do to get ready for a new era of increased certainty – and liability – around security. ","date":"26 November 2024","externalUrl":null,"permalink":"/videos/kkuo8bd-0ce_pydata_paris_-_counting_down_for_cra/","section":"Presentation videos","summary":"","title":"PyData Paris - Counting down for CRA","type":"videos"},{"content":"","date":"26 November 2024","externalUrl":null,"permalink":"/tags/security/","section":"Tags","summary":"","title":"Security","type":"tags"},{"content":"","date":"14 November 2024","externalUrl":null,"permalink":"/tags/polars/","section":"Tags","summary":"","title":"Polars","type":"tags"},{"content":" Cheukting/polars_plugin_101 Polars Plugin Workshop Rust 5 1 Consider buying me a coffee if you love the content.\n","date":"14 November 2024","externalUrl":null,"permalink":"/workshops/power_up_your_polars_code_with_polars_extension/","section":"Workshops","summary":"","title":"Power up your Polars code with Polars extension","type":"workshops"},{"content":" The EU Commission is likely to vote on the Cyber Resilience Act (CRA) later this year. The CRA is an ambitious step towards protecting consumers from software security issues by creating a new list of responsibilities for software developers and providers. The Act also creates a new category of actor known as an “Open Source Steward” which we think makes important allowances for public open source repositories like CPython and Python Package Index (PyPI.) Once the dust settles, everyone who makes software will need to consider the CRA’s mandates in their security roadmaps. In this talk we will look at the timeline for the new legislation, any critical discussions happening around implementation and most importantly, the new responsibilities outlined by the CRA. We’ll also discuss what the PSF is doing for CPython and for PyPI and what each of us in the Python ecosystem might want to do to get ready for a new era of increased certainty – and liability – around security. ","date":"2 October 2024","externalUrl":null,"permalink":"/videos/zyc7c5fxr3a_europython_-_counting_down_for_cra/","section":"Presentation videos","summary":"","title":"EuroPython - Counting down for CRA","type":"videos"},{"content":"","date":"29 September 2024","externalUrl":null,"permalink":"/tags/pycon-de/","section":"Tags","summary":"","title":"PyCon DE","type":"tags"},{"content":" Cheuk Ting Ho, a board member and community manager at OpenSSF, presented a workshop titled \"PyO3 101 - Writing Python modules in Rust.\" The session focused on the basics of using PyO3, a toolset that provides Rust bindings for Python to create native Python extension modules. Attendees learned how to set up the project environment and write a Python library in Rust using PyO3. The workshop included hands-on exercises covering the API specifications for creating Python functions, modules, error handling, and type conversion. Rust's popularity in recent years has grown due to its robust compiler checks and memory safety features, making it an attractive choice for building Python libraries. The goal of the workshop was to introduce developers to PyO3 and explore leveraging Rust's memory safety and parallelism capabilities when developing Python libraries. The target audience included developers interested in using Rust to develop Python libraries, with attendees not required to have prior Rust knowledge. The workshop outline included an introduction to Rust and PyO3, setting up the environment, starting a new project, creating Python modules, and functions with hands-on exercises. Attendees were encouraged to have Python 3.8 or above installed and use a virtual environment for the workshop. ","date":"29 September 2024","externalUrl":null,"permalink":"/videos/fwkcpyl_58m_pycon_de_-_writing_python_modules_in_rust/","section":"Presentation videos","summary":"","title":"PyCon DE - Writing Python modules in Rust","type":"videos"},{"content":"","date":"28 August 2024","externalUrl":null,"permalink":"/tags/di/","section":"Tags","summary":"","title":"D\u0026I","type":"tags"},{"content":" The Python community has been making efforts in improving the diversity and representation among its members. There are examples of success stories such as PyCon US Charlas, PyLadies, Djangonaut, and Django Girls. Yet in the Python podcast community, women are still underrepresented, making up only 17% of invited guests among the popular podcast series. Being a guest in a podcast is a privilege, and an opportunity to influence the Python community. There are many women and underrepresented group members who have made impactful contributions to the Python community globally, and they deserve the recognition and to be heard by the rest of us. Disheartened by the lack of representation by women on Python podcasts, and inspired by others who have shown us how diversity in the community can be improved through intentionality, we decided to start a podcast with a goal to highlight their voices so that they could receive the recognition they deserve. In this talk,earn about them, and about our podcast series. We’ll also share how you can further help out cause in improving representation and diversity in the Python community. Goal To raise awareness of the underrepresentation of certain groups, especially women. To acknowledge the progress made by the Python community and what can be done further to continue the improvement. Target Audience Anyone who cares about the diversity and inclusion progression in the Python community. Community leaders who want to be allies. ","date":"28 August 2024","externalUrl":null,"permalink":"/videos/gdv2_nzbsqe_pycon_us_-_acknowledging_womens_contributions_in_the_python_community_through_podcast/","section":"Presentation videos","summary":"","title":"PyCon US - Acknowledging Women’s Contributions in the Python Community Through Podcast","type":"videos"},{"content":" Python is one of the programming languages that has a huge open-source supply chain. There are over 400,000 Python packages on Python Package Index (PyPI) and many more on other registries like conda-forge, mostly for scientific libraries. Making sure this and the wider Python ecosystem are secure is a huge job and requires consistent contributions. Thanks to OpenSSF’s Alpha-Omega project and AWS, we now have a PSF Security Developer-in-Residence and PyPI Safety \u0026 Security Engineer whose responsibility includes a security audit of the PyPI codebase and infrastructure, improving security practices, and establishing metrics on security posture to show the impact. In this talk, we will go over the work that has been done by the PSF security team and what the best practices for Python library maintainers and users are. Goal The goal of this talk is to draw awareness of security, especially in Python's ecosystem. It highlights how PSF is helping the community, on the other hand, it also provides advice for a user or community member on what can be done to make sure they are using Python safely. Target audiences Ths talk is for anyone in the Python community. If you are using Python, or your company is using Python. This talk is for you. ","date":"28 August 2024","externalUrl":null,"permalink":"/videos/fxhuht12uh8_pycon_us_-_making_python_safer_than_ever/","section":"Presentation videos","summary":"","title":"PyCon US - Making Python safer than ever","type":"videos"},{"content":"","date":"28 August 2024","externalUrl":null,"permalink":"/tags/pypodcats/","section":"Tags","summary":"","title":"PyPodCats","type":"tags"},{"content":" In recent years, Rust has been getting more and more popular over other similar programming languages like C and C++ due to its robust compiler checking and ownership rules to make sure memory is safe. Hence there are more and more Python libraries that have been written in Rust natively with a Python API interface. One of the tools that have been driving this movement is PyO3, a toolset that proves Rust bindings for Python and tools for creating native Python extension modules. In this interactive workshop, we will cover the very basics of using PyO3. There will be hands-on exercises to go from how to set up the project environment to writing a \"toy\" Python library written in Rust using PyO3. We will cover a lot of expectations of the API provided by PyO3 to create Python functions, modules, handling errors and converting types. Goal To give developers who are not familiar with PyO3 an introduction to PyO3 so they can consider building their Python libraries with Rust to make use of Rust's memory-safe property and parallelism ability. Target audiences Any developers who are interested in developing Python libraries using Rust. It will be an advantage if the attendees are comfortable writing in Rust. However, attendees are not required to be familiar with Rust as all the Rust codes will be provided. Basic knowledge of Python will be assumed from the attendees. ","date":"28 June 2024","externalUrl":null,"permalink":"/videos/3lgkvkvtt5y_pycon_us_-_writing_python_modules_in_rust/","section":"Presentation videos","summary":"","title":"PyCon US - Writing Python modules in Rust","type":"videos"},{"content":"","date":"22 April 2024","externalUrl":null,"permalink":"/tags/pycon-hk/","section":"Tags","summary":"","title":"PyCon HK","type":"tags"},{"content":" Are you a package maintainer? Whether you are a maintainer or not, there are security practices that can make you and the software that you work on safer for folks to use. In this short talk, we will go over some of these practices and you can check how many of them you are doing right now, and how many of them you are going to practice after this talk. ","date":"22 April 2024","externalUrl":null,"permalink":"/videos/smp85ixq_ja_pycon_hk_-_security_101_for_package_maintainers/","section":"Presentation videos","summary":"","title":"PyCon HK - Security 101 for package maintainers","type":"videos"},{"content":"","date":"23 February 2024","externalUrl":null,"permalink":"/tags/cra/","section":"Tags","summary":"","title":"CRA","type":"tags"},{"content":"I had another busy FOSDEM this year - wearing too many hats and running between 1 booth and 4 devrooms. I was exhausted. But one thing I think I care about the most is the CRA (Cyber Resilience Act). While there are many sessions about it, I think the best are the sessions in FOSDEM that we have Benjamin Bögel and Omar Ennaji from the European Commission to give us first-hand information and talk to participants about the upcoming CRA and PLD (Product Liability Directive) amendments. In this blog post, we will focus on CRA.\nHere is what I summarise, please also note that the thoughts and opinions in this blog post are solely my personal opinions.\nCRA in a nutshell # A common way to put it simply is \u0026ldquo;to put a CE marking on the product\u0026rdquo;. Traditionally, when we think of a product with a CE marking, we think of something physical, something that you can touch. It is quite easy to imagine the CRA will apply to hardware like laptops, phones, IoT devices, CPU chips etc. However, CRA will also cover software including OS, apps - and even packages and libraries. It also includes remote data processing solutions, which means, let\u0026rsquo;s say if you make a query to a cloud database, the software that handles the query should also be CRA compliance.\nNote that it only applies to commercial products. Hobby projects, websites and standalone SaaS services are not in scope.\nThat is a lot to take in, how do I know if my open source projects are in scope? When I will be held accountable as a contributor? We will look in-depth into what is in and out of scope in a bit.\nIs my FOSS project in scope? # If you look at this simplified flow chat from the presentation of the The Regulators Are Coming: One Year On session you will see two questions you have to ask is:\nAre you the legal owner of the project? Are you monetising directly from the project? If both the questions are no, you are pretty safe. But if your answer to the first question is yes. There is a chance that you can be an open source software steward instead.\nWhat is open source software steward? # If the project that you or your organisation own or maintain legally, and the project is intended for commercial use, then you may classify as the open source software steward if you are not monetising from the project directly.\nAs an open source software steward, you still have some obligations even though you are not putting a CE marking on the software. Some of them include:\nPut in place a cybersecurity policy taking into account the specific nature of the open-source software steward Cooperate with market surveillance authorities Report incidents and vulnerabilities to the extent that they are involved in the development. So what we will see is that some projects would need to have an organisation that acts as their steward to fulfil the above obligations. And more organisations would have an incentive to become a CVE Numbering Authority.\nWhen is it going to happen? # Right now we can expect the CRA will be voted on this year and after there will be around 2-3 years for it to take full effect. The clock is ticking and we have to be prepared early for what is to come in a few years.\nI think there is nothing to be scared of, once we are sure of what requirements are needed, we can adopt new industry standards and provide safer software.\nWhat should we do now? # As an individual developer:\nEducation yourself in CRA and pay attention to what implications it has Join constructive discussions, especially with the foundations and organisations that support open source software and ecosystems As a project maintainer:\nDo all of the above as individual developers, plus; Be prepared to review the cybersecurity policy and the incidents and vulnerabilities reporting mechanisms when the guideline of CRA compliance is more clear If appropriate, get up a governing body that will be able to take up the role of an open source software steward As a potential open source software steward:\nBe prepared to fulfil the CRA obligations Communicate with other potential open source software stewards, e.g. foundations and organisations, for constructive discussions Communicate with your community regarding CRA, tell them you have plans to get ready for CRA and what the plan is Final words: I think we should look at CRA with a constructive mindset, we have time to get the community and the industry to be ready. Let\u0026rsquo;s hope the outcome will be beneficial to everyone.\n","date":"23 February 2024","externalUrl":null,"permalink":"/posts/2024-02-23-cra-update/","section":"Blog posts","summary":"","title":"FOSDEM Afterthought - What's New with CRA","type":"posts"},{"content":"","date":"23 February 2024","externalUrl":null,"permalink":"/tags/policy/","section":"Tags","summary":"","title":"Policy","type":"tags"},{"content":"","date":"17 February 2024","externalUrl":null,"permalink":"/tags/devrel/","section":"Tags","summary":"","title":"DevRel","type":"tags"},{"content":"","date":"17 February 2024","externalUrl":null,"permalink":"/tags/formatting/","section":"Tags","summary":"","title":"Formatting","type":"tags"},{"content":" We don’t need AI for writing better code! Formators like Black and PyBetter have been automatically refactoring messy code way before AI agents claim to help you write codes. In this talk, we are going to explore how formatters analyse and manipulate the CST of your code to make it nicer. Recently year there are AI agents that pops up in the market saying that they can help you to write code. However, there are tools out there that have been used over decades that can help us write better codes - the auto formats like Black and PyBetter that can refactor your code into nicer-looking ones. In this talk, we are going to explore how auto-formatters analyse and manipulate the CST of your code to make it nicer. First, we will introduce what is an Abstract Syntax Tree (AST) and a Concrete Syntax Tree (CST). Next, we will talk about libcst and how it analyses the code and express the CST of your code as Python objects. Then, we explore how we can use the match method provided and modify our code if the logic matches. By the end of it, the auto-formatters would not be a mystery for the audience anymore as we now understand the inner working of it. This talk is for intermediate-level Python coders who are curious about how auto-formatter works and learn about Concrete Syntax Tree. ","date":"17 February 2024","externalUrl":null,"permalink":"/videos/mo2ygn_u5pg_pycon_apac_-_reformating_your_code_without_ai/","section":"Presentation videos","summary":"","title":"PyCon APAC - Reformating your code without AI","type":"videos"},{"content":"It has been almost 5 years since I stepped into the DevRel world, and it seems full of glitters - who doesn\u0026rsquo;t like getting paid to go to (after-conference) parties and get drunk? (It seems many people think this is what DevRel do) When I first joined the DevRel world, I joined with a love of the community lifestyle. I love making connections, talking with like-minded people, and giving talks (I like the adrenaline rush), even if it means that I do not get to sleep in my own bed for weeks.\nBut after 5 years, my view of DevRel has changed, or rather, it has been clearer to me how I see DevRel and sometimes, people do not agree with me. This is a blog post about my view of what DevRel is and why it can do things that marketing cannot do and why many companies or organizations are doing it wrong.\nWhy DevRel is not marketing (fight me) # I know I know, not everyone agrees. I have even seen a lot of opinions on social media saying \u0026ldquo;DevRel is just marketing\u0026rdquo;. Companies put the DevRel team under the marketing department and ask them to report the metrics, how many leads they get etc.\nBut this is not how I see DevRel - and that\u0026rsquo;s why so many times I am thinking about dropping my career in DevRel.\nI think DevRel and marketing achieve the same goal - to put it simply, you want people to \u0026ldquo;fall in love\u0026rdquo; with your product or company. Brand awareness, customer loyalty, you name it. I am not an expert in marketing so I do not want to embarrass myself here. However, I don\u0026rsquo;t think any marketing textbook will tell you anything about DevRel and the \u0026ldquo;rules\u0026rdquo; in marketing simply do not work in DevRel.\nDevRel can make the community the most loyal evangelist to a product, they go head over heels to promote you, convince their boss to use your product or sponsor your event, they even volunteer their personal time for you. But if it is done badly, one wrong move and destroy your \u0026ldquo;kingdom\u0026rdquo;. Your followers will abandon you and never come back.\nHow can this magic happen? Why some companies are so successful? There are no wicked tricks here, we are not building a cult or anything like that. It all goes down to 3 good things: good product, good outreach and good ethics.\nGood product # Developers are one of the most critical types of people, they are opinionated (look at all the discussions on tech forums) and you cannot win their hearts with something that is \u0026ldquo;bad\u0026rdquo;. But what is a good product? A good, no, best product is a product that they want. If there is no communication with the community, there will not be a good product. Who can help you with that? DevRel team.\nGood outreach # If you have a good product but no one knows about it, if no one knows how to use it, then it is still bad. Yes, marketing can help a bit by spreading the news and targeting the potential user with SEO or analytics. But for the voices to reach developers\u0026rsquo; ears, it better be the same \u0026ldquo;type of people\u0026rdquo; as them. Yes, humans are biased beings and if someone speaks the same language as you, you are more willing to listen. Also, you will need technical expertise to create demos, and tutorials to encourage new users to try your product. Who can help you with that? DevRel team.\nGood ethics # The last pillar of making a successful product and tech community is ethics. No one wants to hang out with the \u0026ldquo;baddies\u0026rdquo; or in a community that is seen as \u0026ldquo;toxic\u0026rdquo;. Making a community culture welcoming can open many doors and make your community members proud as a member. I think even the marketeers will agree a good image of the company is half of the success. You will need a leader in the community who understands how to manage a diverse and welcoming community, handle code-of-conduct-related issues and make sure these efforts do not get swapped under the rug. Who can help you with that? DevRel team. Especially a devrel team that is itself diverse and welcoming.\nHumans are not numbers, community cannot be quantified # Another thing that I encounter a lot, after working in different companies or organisations, is that managers really want to put numbers on their work. I know, it is easy to report to whoever is paying the bill and say we bring in x amount of money with all the expansive DevRels.\nBut our world is not ideal and things cannot always be quantified.\nI remember going to DevRel conf for a few years. It seems that in a few years, there will be a new model of how to measure success in DevRel. There will always be someone, usually a well-known and respected individuals in the DevRel community, giving a talk about why their model is better. It seems like an unsolved problem in DevRel and we still can\u0026rsquo;t find the golden tool that can make our boss happy about what we do.\nI asked myself - how can I quantify my work? Do I count how many people I connected with on LinkedIn? How many people I have talked to? How many people showed up at my talk? How many people have attended my event? These all feel BS to me.\nLooking back at what I cherish the most in my journey, it\u0026rsquo;s the friendship that I made. The people who will recognise me and come talk to me at events. The people who will come and help when I ask for it on social media. The people who trusted me and signed up for whatever I was advocating for at that time. The people who watched my video and commented say wanted more. I cannot quantify the relationship that I have with my friends in the community.\nDoing so feels like a betrayal, they are not numbers, not some things I used to report to prove my success. They are my friends, we have human connections\nRemember, DevRel is not a cup noodle # Another mistake companies and managers make is to expect DevRel to work immediately. Building a community is building relationships, maybe we are in a dating app era now people assume relationships can happen overnight, but the truth is, it takes time. You cannot gain someone\u0026rsquo;s trust by just one online video, one blog post or just one meeting. You have to have a constant presence and interact with them frequently to build rapport with them. Asking for an immediate gain from one event is unreasonable. The right questions to ask are - what seeds have you planted, not what trees have you harvested?\nIf you want something more immediate, like wanting a cup-noodle because you are hungry, do a marketing campaign, you can see how many impressions have been made, how many clicks, how many subscriptions, and how many sign-ups. Unfortunately, DevRel is an authentic chef-made ramen. It takes more than 18 hours to make the broth, all the flavours build up over time and when it gets into your mouth, you will not want anything else. DevRel can make your users the biggest fan and have a strong community, but it takes time.\nIf you are not ready to treat the DevRel team as an investment and treasure the community that they built over time even at the hard times (see how many companies cut their DevRel team during the economic crisis), then do not start a DevRel team. You can get by with your marketing team and contract some tech writers/ content creators to generate developer-targeted content for you. If you are lucky maybe one of your employees has the community sense and people skills that would be able to act as a community manager for you - though it may take up too much of their time to fulfil their original role.\nYou do not need a community if you cannot afford to maintain it. Don\u0026rsquo;t do it just because everyone else is doing it or your investors told you to.\nWhat if I am in charge? # Okay, I have been ranting. But I hate just complaining and not giving people solutions. What would I do if I were in charge? How will I use my DevRel team?\nFirst, do not let someone who does not understand the community lead the team. This can steer a team away from the community and generate conflicts between the team and the community. They do not need to have a lot of DevRel experience on their CV but they have to be someone who is well embedded in the community and the community will accept them.\nSecond, trust the DevRel team. As I mentioned, DevRel takes time so please do not micro-manage them. Do not ask for approvals and reports on every single thing that they do. Ask for general strategies and plans each quarter, give them a budget, and ask for a grand report at the end of the quarter. Ask the right question: Why do they do it and what do they think about it afterwards? What went well and what did not, rather than numbers?\nThird, make sure the DevRel team is respected by the engineers internally. Especially if the team does not have a strong engineering background. DevRel can provide valuable feedback for the engineering team, they are the ones that go out there to talk to your users after all. Although it may not always be the best news and honest feedback can be harsh, make sure the opinion that the DevRel team bring back from the community is well heard. It can start with bringing the DevRel team to the engineering team planning meetings.\nLast, gather a diverse team that has the IDEA (Inclusion, Diversity, Equality, Accessibility) mindset. Create a welcoming culture in the community. They have to be strong in handling the code of conduct issues and be resilient against toxic behaviours. Give them the support that they need. Consider providing training regarding IDEA.\nIf you wants me to run your DevRel team, get in touch\nCover Photo by Cosmin Serban on Unsplash\n","date":"17 February 2024","externalUrl":null,"permalink":"/posts/2024-02-17-devrel-wrong/","section":"Blog posts","summary":"","title":"You Are Doing DevRel Wrong","type":"posts"},{"content":" Generative AI models are a buzz in recent years, from stable diffusion to ChatGPT our social media threads are flooded with people trying them out. However, following these models are issues that we have to be aware of. Including biases, plagiarism and false information. In this talk, we will go through the most popular AI generative models recently, just so we can be on the same page. Then for each of them, we will explore some issues that arise with those models - including biases within the model that could possibly further reinforce stereotypes, copyright issues for articles or images that are generated with the models, the potential spreading of false information etc. We cannot provide definite solutions to those problems but we will conclude the talk with some efforts to potentially solve the problem. Hopefully, by spreading awareness we can use these powerful models in an ethical way and get the most benefit from them while staying away from the potential harm. ","date":"11 January 2024","externalUrl":null,"permalink":"/videos/sixpy-3a6js_websummercamp_-_the_shadows_that_follow_ai_generative_models/","section":"Presentation videos","summary":"","title":"WebSummerCamp - The Shadows That Follow AI Generative Models","type":"videos"},{"content":" Cheukting/py03_101 PyO3 101 workshop Rust 64 14 Consider buying me a coffee if you love the content.\n","date":"1 January 2024","externalUrl":null,"permalink":"/workshops/pyo3_101_-_writing_python_modules_in_rust/","section":"Workshops","summary":"","title":"PyO3 101 - Writing Python modules in Rust","type":"workshops"},{"content":" I bet you like writing tests. But instead of the example-based tests that we normally write, have you heard of property-based testing? By using Hypothesis, instead of thinking about what data I should test it for, it will generate test data, including Numpy and Pandas objects, for you. ","date":"31 December 2023","externalUrl":null,"permalink":"/videos/aeffxd3ig-o_sciwork_-_use_hypothesis_whether_you_like_writing_tests_or_not/","section":"Presentation videos","summary":"","title":"SciWork - Use Hypothesis, whether you like writing tests or not","type":"videos"},{"content":"","date":"31 December 2023","externalUrl":null,"permalink":"/tags/testing/","section":"Tags","summary":"","title":"Testing","type":"tags"},{"content":"","date":"19 December 2023","externalUrl":null,"permalink":"/tags/packaging/","section":"Tags","summary":"","title":"Packaging","type":"tags"},{"content":"","date":"19 December 2023","externalUrl":null,"permalink":"/tags/pycon-es/","section":"Tags","summary":"","title":"PyCon ES","type":"tags"},{"content":" In this talk, we will use venv, the environment managing tool that come with CPython, and conda, the tool that is popular among data science partitioners to decipher how environment and dependency management works. First, we will go through some basic knowledge of how Python “sees” your package and know where to import them when needed. Then, we will make the audience aware that, to avoid the requirement conflict amount different projects, we need a new set of environments for each project. ","date":"19 December 2023","externalUrl":null,"permalink":"/videos/vuqa9aqps8u_pycon_es_-_untangle_python_spaghetti/","section":"Presentation videos","summary":"","title":"PyCon ES - Untangle Python Spaghetti","type":"videos"},{"content":"","date":"15 December 2023","externalUrl":null,"permalink":"/tags/django/","section":"Tags","summary":"","title":"Django","type":"tags"},{"content":"","date":"15 December 2023","externalUrl":null,"permalink":"/tags/djangocon-us/","section":"Tags","summary":"","title":"DjangoCon US","type":"tags"},{"content":" BeeWare is a framework that let users of all skill levels develop applications with native user interfaces. It is very powerful to extend the already existing Django application to multiple devices. In this talk, we will demo building a simple Beeware app with a Django backend. ","date":"15 December 2023","externalUrl":null,"permalink":"/videos/waexefkcy1u_djangocon_us_-_lets_build_a_beeware_app_that_uses_django/","section":"Presentation videos","summary":"","title":"DjangoCon US - Let's build a BeeWare app that uses Django","type":"videos"},{"content":" We are all aware of OWASP top 10 and the most common vulnerabilities in API usage and web applications. However, have you considered what are the most common pitfalls of security risk in using open-source projects? In this talk, we will explore them and think of how we can avoid them. ","date":"14 December 2023","externalUrl":null,"permalink":"/videos/kfkw9xuifmy_techwebinarnepal_-_what_are_the_most_common_oss_security_pitfalls/","section":"Presentation videos","summary":"","title":"TechWebinarNepal - What are the most common OSS security pitfalls?","type":"videos"},{"content":"Recently there have been debates on the internet regarding the choice of the country where DjangoCon Africa will be held. There is a very touching and powerful blog post by my friend Daniele Procida which was echoed in the Python community. I am not without thoughts and after discussion with other PSF board members and the PyCon APAC community, I would like to put some of my thoughts here.\nFirst of all, I have to clarify that I am representing here my own opinion, not representing the PSF board or any communities that I am part of.\nWhat happened with DjangoCon Africa # DjangoCon Africa applied for a PSF grant and since the grants working group cannot make a recommendation, it was passed to the board to make a decision. During the board meeting in September, there was a brief discussion regarding choosing Tanzania, a country where homosexuality is illegal, as appropriate. Unfortunately, due to a lack of time to discuss this issue properly, the vote to provide the grants did not pass and another vote need to be carried out. This caused delays in the grant approval and spake debates throughout the communities.\nAlthough the grant, at the time of this blog post, is approved. I cannot ignore the arguments on both sides, especially when I am involved in several international Python conferences, being one of the board members of PSF and someone who just joined the grants working group. I would like to listen to different opinions from the Python community and formulate some thoughts while this issue, the criteria for giving grants, will be discussed further in the future.\nThe PSF board and grants working group also decided to review the decision-making process to avoid delays of any grants in the future.\nWhy I support DjangoCon Africa # In the past, while I was serving the EPS board, I insisted that when deciding on the location of EuroPython, picking a country that is relatively safe for everyone (especially folks from the LQBTQ+ community) is important. However, this is not the same situation for DjangoCon Africa, in a lot of African countries, homosexuality is illegal (some even with the death penalty), and although there are several countries where homosexuality is not illegal, most of them do not have a noticeable size of Python community and some of them are generally not safe to travel to.\nThe organisers of DjangoCon Africa have made an effort to uphold the standard of a welcoming and inclusive community. The conference itself has a code of conduct and from my experience with the Django community, I entrust them would be able to create an oasis (a safe and welcoming environment at the conference) in a desert (not so friendly local law and culture). The choice of the location of the conference is limited, the local law is something that the organisers have no control over. Is it fair to remove support to a community where financial support would be most needed?\nI believe we cannot rigidly impose the same standard in Europe on a continent that is culturally, historically, economically and politically so different, I think that would be arrogant and ignorant about how privileged we are to be in a society where people can freely be who they are.\nHow to be inclusive and welcoming # I understand, that even if the conference is an oasis for folks to feel safe, they still have to travel through the desert to get there. It is legitimate to not put yourself at risk if you think it is unsafe to go there. However, in cases like this choosing Tanzania to host DjangoCon Africa does not mean that the organisers are intentionally excluding an under-represented group of people, it is a lack of options.\nOur world is not perfect, there will be situations that it is safe for one under-represented group but not for another. I think the key is to have an open and civil discussion when making the decision. Have the organisers considered the safety and needs of some groups of people, especially the under-represented groups? Has the opinion of the community been heard? What are the alternatives and if there has to be an exclusion to one under-represented group, is there an inclusion to another?\nDuring the pandemic, we have figured out how to include folks who cannot attend conferences in person for any reason. Although I agree that the experience online and in-person are different, we can try to put energy and resources into making sure the participants online can get the next best experience they can. If a conference location is rotating and there are options, make sure all under-represented groups get a chance to attend the conference every once in a while.\nAccording to the Python Community Code of Conduct, members of the Python community are open, considerate, and respectful. This kind of discussion is uncomfortable, it is hard. But it is healthy for the community to openly talk about it respectfully so we understand the viewpoints and needs of members in the community no matter what their identities are. Look at our community and compare it to the past. We keep upholding our values and make improvements, if we can do that in the past, we can do it now.\nI will not be going to DjangoCon Africa in person this year for personal reasons. I would love to go. Please support DjangoCon Africa whether you will be attending in person or not. If you want, you can donate to them and this can help more people in the African community to learn Python and opportunity to be connected to the wider community.\nSupport DjangoCon Africa via donation\nI am also happy to talk about your concern regarding of the criteria for PSF grants in the future, or as an organiser how to make sure your conference is welcoming and inclusive. You can find my online presents on the top of this website or email me at: me [at] cheuk [dot] dev\n","date":"12 October 2023","externalUrl":null,"permalink":"/posts/2023-10-12-support-djangocon-africa/","section":"Blog posts","summary":"","title":"Why I support DjangoCon Africa","type":"posts"},{"content":"","date":"6 October 2023","externalUrl":null,"permalink":"/tags/openssf-day/","section":"Tags","summary":"","title":"OpenSSF Day","type":"tags"},{"content":" Python is one of the programming languages that has a huge open-source supply chain. There are over 400,000 Python packages on Python Package Index (PyPI) and many more on other registries. Making sure this and the wider Python ecosystem are secure is a huge job and requires consistent contributions. Thanks to OpenSSF’s Alpha-Omega project, we now have a PSF Security Developer-in-Residence whose responsibility includes a security audit of the PyPI codebase and infrastructure, improving security practices, and establishing metrics on security posture to show impact. In this talk, we will have the PSF Security Developer-in-Residence himself talk about the effort that has been put in and plans to make Python safer. We will also have one of the PSF board of directors talking about what this means for the Python community and as community members how we can contribute to this effort. ","date":"6 October 2023","externalUrl":null,"permalink":"/videos/jhzv5ru56v4_openssf_day_-_we_make_python_safer_than_ever/","section":"Presentation videos","summary":"","title":"OpenSSF Day - We Make Python Safer Than Ever","type":"videos"},{"content":"","date":"6 October 2023","externalUrl":null,"permalink":"/tags/pycon-ee/","section":"Tags","summary":"","title":"PyCon Ee","type":"tags"},{"content":" This talk discusses the history of WASM, the Iodide project, and the rise of Pyodide and PyScript alongside the HTMX library, demonstrating their usage. It invites you to reconsider their application-building approaches and questions the need for JavaScript in web development. You will explore several popular tools in recent years, making them rethink their approach to building their applications. Hopefully, by seeing the live demos, you are encouraged to try these tools and learn more about the use case and how it can help them in future projects. ","date":"6 October 2023","externalUrl":null,"permalink":"/videos/e9aipysr_2c_pycon_estonia_-_htmx_vs_wasm_more_backend_or_frontend/","section":"Presentation videos","summary":"","title":"PyCon Estonia - HTMX vs WASM more backend or frontend?","type":"videos"},{"content":"","date":"6 October 2023","externalUrl":null,"permalink":"/tags/wasm/","section":"Tags","summary":"","title":"WASM","type":"tags"},{"content":"The last time I thought about going to PyCon India was in 2018, before the pandemic, however, it didn\u0026rsquo;t happen. A few years passed and I was very honoured to be invited to give a keynote at PyCon India this year at 2023. I have heard numeric things at PyCon India in the past and I have not been to this country before. So all is a little concerning and exciting for me at the same time.\nArriving Hyderabad, India # The first hurdle I have to jump through is getting a visa. I did some research when I received the invitation and thought I could get an e-visa easily. It turned out to not be true and I had to rush to get a paper visa, it was tricky and I had to change my travel plan but luckily I ended up getting the visa in time for PyCon India.\nBye bye #PyConIndia2023 Many valuable moments, learnings, experiences..Thank you @pyconindia for making it all happen !! See you next year 🥺 pic.twitter.com/gzf9yRXKav\n\u0026mdash; Sravya Yellapragada (@sravyaysk) October 1, 2023 It was a long journey, I was flying throughout the night. When I arrived at the airport in Hyderabad on the workshop day of the conference, one of the organisers, Snehith and another keynote speaker Jessica came to pick me up. It was a relief to see them as I know that I will be taken care of at the time. They drive me to the hotel where I can check in and have some rest.\nI spent the day at the hotel to work and prepare my keynote. There is a swimming pool and spa at the hotel, I also use this opportunity to get myself refreshed before the conference the next day. In the evening, I had dinner at the hotel with Jessica, Marcelo and Vaibhavi. The restaurant has servers that are hearing impaired and they have some simple guides on the menu to teach customers how to sign to the servers. Jessica arrived early and spent almost a week at the hotel so she was a professional at sign language by then. The food is good, I have heard biriyani is the famous local food there so we tried some.\nThe conference - day 1 # When you think of India, you may have an image that it is packed with people and traffic. This also reflects a bit at the conference. We got picked up by Snehith again and we arrived at the conference. There are huge queues at the registration desk. Since we are keynote speakers they just guide us to the main auditorium where Jessica will be presenting her keynote soon. While Jessica was focusing on technical checking, I got a chance to check out the venue (there\u0026rsquo;s breakfast being served outside) and talk to some other folks at the conference. Some organisers come and say hi to me even though they are super busy with preparation. I feel their warm welcome.\n#PyConIndia starts with the lamp ceremony ❤️ pic.twitter.com/LJfy6NAN5o\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) September 30, 2023 The conference started with a lamp ceremony where a beautifully decorated oil lamp was set on stage. The honorary guests, including representatives from the university and Sanchit the chair of the organising team went on stage. Some of the ladies were wearing beautiful sari and I was very excited about the ceremony. The honorary guests gathered and lit the oil lamp and I took some videos and pictures. This is like the \u0026ldquo;lighting ceremony\u0026rdquo; that I saw on TV when I was a key for the opening of some ceremony and I was very happy to get a bit of the local culture there.\nFirst keynote of #PyConIndia is @sleepypioneer talking about being part of the community pic.twitter.com/Ui9Q3k7cVj\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) September 30, 2023 Jessica gave an amazing keynote about the community. It is very thoughtful and personal as she talks about her journey transitioning to the tech industry. After that many folks gather around and talk to her. I walked around the check out the sponsor booths, they are super busy. I also got an opportunity to take an e-Tuktuk that was organised by the organiser to travel between the two university buildings used for the conference. It is my first time riding on a Tuktuk and it is fun to be zooming around the campus.\nGratitude in Motion: Thanks to our E-Auto Heroes for keeping #PyconIndia2023 Conference Rolling! 🚖👏 Your support and service is very valuable 🙏#PyConIndia #PythonForAll #CodeCollaborateCelebrate pic.twitter.com/EMKPjRI8jm\n\u0026mdash; PyCon India (@pyconindia) October 1, 2023 After sitting through a few talks, it is PyLadies Lunch, there is a room arranged for us and a separate catering for us as well. There is also a gorgeous cake for us. It is very cute and great to see so many women participate in the PyLadies Lunch. Participants are very passionate about the discussion and there is much interest in starting new PyLadies chapters in various Indian cities. In the end, we form groups depending on the location and hopefully, there will be more active PyLadies chapters in India soon.\nEmpowering #PyLadies unite at #PyConIndia2023! Join us as we celebrate diversity and excellence in the Python community. Let\u0026#39;s inspire and code together! 🐍👩‍💻#PyConIndia #PythonForAll #CodeCollaborateCelebrate pic.twitter.com/2E4Gy0BP07\n\u0026mdash; PyCon India (@pyconindia) September 30, 2023 We didn\u0026rsquo;t stay for very long after lunch. I went for a few talks (and missed Marcelo\u0026rsquo;s keynote), and then I felt very tired (maybe because of the heat), so we took an Uber and went back to the hotel and got some rest before the speaker\u0026rsquo;s dinner. We got picked up again at the hotel for the speaker dinner and it was a function room at a hotel. I liked the atmosphere of it and I got to chat with a lot of folks, including my friend from EuroPython, Sangarshanan, who is also a speaker. By the time I was back, I was very tired and fell asleep immediately.\nThe conference - day 2 # My keynote is the second day, there is no lamp ceremony so the day started with my keynote. It is a bit nervous as I have not given a keynote in person for a long time. But I was glad that it was well received and so many folks came and had a discussion with me. I was a bit overwhelmed. I have an onward travel later that day so I didn\u0026rsquo;t have much time. I am also gutted that I will be missing the PyCafe.\nOur amazing keynote speaker Cheuk Ting Ho (@cheukting_ho) just set the stage ablaze at #PyConIndia2023 Conference Day 2 🎤🔥 Get ready to be inspired and discover new horizons in Python. It\u0026#39;s a day of limitless possibilities 🚀#PyConIndia #PythonForAll #CodeCollaborateCelebrate pic.twitter.com/fMEo8NlFv0\n\u0026mdash; PyCon India (@pyconindia) October 1, 2023 But I got an opportunity to talk to Rumanu, my roommate at PyCon Italy, she is a bright and bubbly girl, and it is so happy to be meeting her again. I also attended a very touching talk by Bowrna, which inspired many women in the audience.\nAt #PyConIndia2023, we had an engaging speaker session by Bowrna (@bowrna_p) on \u0026quot;How I restarted my career by contributing to Open Source?\u0026quot;. It was a great and inspiring Journey 🌟#PyConIndia #PythonForAll #CodeCollaborateCelebrate pic.twitter.com/SDLK46wIYO\n\u0026mdash; PyCon India (@pyconindia) October 1, 2023 I also got the chance to visit the Young Learners Workshop. It is always great to see young people at a Python conference. I hope they will be the future of the Python community.\n🎉Successfully wrapped up Young Learners Workshop at #PyConIndia2023 with great participation from 48 school students. Big thanks to parents, teachers, guardians for supporting \u0026amp; encouraging the kids.\nThanks to JNTU-H ECE HOD, Dr. Suresh \u0026amp; Raj(blackbucks) for computer lab access. pic.twitter.com/9AfCMyTnqS\n\u0026mdash; PyCon India (@pyconindia) October 2, 2023 At lunch, I set with Niharika and we talked about travelling to Japan as she is a frequent traveller like myself. I am so glad to be able to connect with so many amazing women at the conference.\n@pyconindia @ThePSF @pyladies pic.twitter.com/xUDcPbVVm5\n\u0026mdash; Simply Niharika (@NiharikaVadluri) October 3, 2023 Final thoughts # When I was heading to the airport, I thought to myself, I was glad that I didn\u0026rsquo;t miss the conference due to my visa issue, I was glad that I attended PyCon India. Before going to India, I didn\u0026rsquo;t know what to expect, I have heard some issues in the past about PyCon India regarding diversity and inclusion, especially towards women. Being there in person myself, I am so happy to see the team is working so hard to drive the community in the right direction. There are a lot of amazing women I met at the conference, and I am sure the Indian community do not want to lose them. I am also glad to see many female speakers at the conference and panel sessions. Maybe next time we will see a local female keynote speaker, that\u0026rsquo;s my hope.\nBefore coming to the conference, their Code of Conduct (CoC) sought advice on how to improve their CoC process, I have communicated with them and had a brief idea exchange with them. At the conference, I saw that they have put reminders of CoC everywhere and at the opening session every. You may doubt the effectiveness of it but I think at least it shows that the organisers of this conference care and it\u0026rsquo;s a big step forward.\nA heartfelt thanks to all the attendees of #PyConIndia2023! 🙌🐍 Your passion and enthusiasm for Python made this event a huge success. Keep coding, innovating, and inspiring! 💻🌟#PyConIndia #PythonForAll #CodeCollaborateCelebrate pic.twitter.com/7yH3uKNlsd\n\u0026mdash; PyCon India (@pyconindia) October 6, 2023 I have to thank the organisers again for this opportunity to open my eyes to a community in a part of the world that I have not been to and it was great to meet with old friends and make some new ones.\n","date":"2 October 2023","externalUrl":null,"permalink":"/posts/2023-10-02-pyconindia23/","section":"Blog posts","summary":"","title":"PyCon India 2023","type":"posts"},{"content":"","date":"19 September 2023","externalUrl":null,"permalink":"/tags/data/","section":"Tags","summary":"","title":"Data","type":"tags"},{"content":" Have you heard about Polars? What are the differences? Is Polars replacing Pandas? In this talk, we are going to demystify these questions about Polars. Compares the differences between Polars and Pandas, and explains the pros and cons of both of them. ","date":"19 September 2023","externalUrl":null,"permalink":"/videos/yumhgp1ryuy_europython_-_polars_vs_pandas_whats_the_difference/","section":"Presentation videos","summary":"","title":"EuroPython - Polars vs Pandas what's the difference?","type":"videos"},{"content":" Join us for this Q\u0026A session, where a panel of data science experts will be there to address all of your pressing questions. This session is designed to create a relaxed and welcoming environment for complete beginners in the field, offering guidance on topics that might be causing confusion. ","date":"19 September 2023","externalUrl":null,"permalink":"/videos/gubxxyuw_30_europython_-_qa_panel_for_data_science_newbies/","section":"Presentation videos","summary":"","title":"EuroPython - Q\u0026A panel for data science newbies","type":"videos"},{"content":"Last weekend we were very productive. We spent two full days working on projects that can improve diversity and inclusion in computation science. As a first-time participant, I was impressed by the result we have achieved at the end. I think it was a nicely organised event.\nBefore the unconference at Amsterdam # To have a successful event, I think part of it is the result of great preparation work.\nBefore we gathered at the unconference, we had to propose what projects to work on and each one of them had to have a suggested outcome. This is very important as we do not want to just spend a weekend talking about things, feeling good and that\u0026rsquo;s it. We want actual outputs that can benefit the community.\nBesides, we also have a few office hours that participants can join and get to know each other, new participants can get a feeling of what the unconference is like etc.\nAccommodation and venue have been nicely organised by the NumFocus staff and we have support in arranging our transportation as well.\nProject that I have worked on # I arrived late due to bad weather and the flight was severely delayed. I was told that at the beginning there were votes on which projects to work on and people formed groups to brainstorm how to approach the goal. When I arrived there were already a lot of ideas noted down.\nI decided to join the project that was creating a mentoring guide. From my experience, it is hard to run a mentorship program or mentor someone. So it is good to have some kind of guide and help for those who want to contribute to the community via the form of mentorship.\nWe use HackMD for collaborative writing. My groupmate and I picked which session they were interested in and started writing. When we are not sure about anything, we just put it out on the table and discuss it. I think it was working quite well.\nOutput of the unconference # As mentioned before, we want actual outputs that can benefit the community. Since most of the groups have written down something, we decided to put our work in a GitHub repository and publish it via GitBook. The project outputs are:\nA mentoring guide for open projects Project taxonomy and recommendations for Diversity Equity and Inclusion Methodologies For Collecting Community Data Organizational Guide for Supporting Volunteers and Reducing Burnout Knowhow: everything you wanted to know about applying for grants but didn’t ask You can find all of them here!\nConclusion # Overall it was an enjoyable experience. We also got a lot of networking opportunities with other members of the community. We had a lot of great conversations working on the project and during the social events.\nThank you NumFocus, especially for their staff who helped in organising this event. I think it was a great investment for the community and I have to applaud for their work on diversity and inclusion.\n","date":"14 September 2023","externalUrl":null,"permalink":"/posts/2023-09-14-numfocus-disc-unconference/","section":"Blog posts","summary":"","title":"My first NumFocus DISC Unconference","type":"posts"},{"content":"","date":"14 September 2023","externalUrl":null,"permalink":"/tags/oss/","section":"Tags","summary":"","title":"OSS","type":"tags"},{"content":"","date":"29 August 2023","externalUrl":null,"permalink":"/tags/pycon-pl/","section":"Tags","summary":"","title":"PyCon PL","type":"tags"},{"content":" In this talk, we will explore what is Polars, a new tabular data management package that is written in Rust and used Arrow. Many people compare it to Pandas, the goto package for tabular data management for years. However, there is still some confusion regarding what Polars really is, whether or not it is more efficient than Pandas and if you can just replace Pandas with Polars. Hopefully, by the end of the talk, all of these questions will be answered and for people new to Polars, they will feel encouraged to try it out and more confident to make the switch. ","date":"29 August 2023","externalUrl":null,"permalink":"/videos/by22s56blc8_pycon_pl_-_polars_vs_pandas_whats_the_difference/","section":"Presentation videos","summary":"","title":"PyCon PL - Polars vs Pandas what's the difference?","type":"videos"},{"content":" In this talk, we will use venv, the environment managing tool that come with CPython, and conda, the tool that is popular among data science partitioners to decipher how environment and dependency management works. First, we will go through some basic knowledge of how Python “sees” your package and know where to import them when needed. Then, we will make the audience aware that, to avoid the requirement conflict amount different projects, we need a new set of environments for each project. ","date":"29 August 2023","externalUrl":null,"permalink":"/videos/pxg2uhv-b5m_pycon_pl_-_untangle_python_spaghetti/","section":"Presentation videos","summary":"","title":"PyCon PL - Untangle Python Spaghetti","type":"videos"},{"content":" Discover and learn expert tips on how to level up your talk/ tutorial proposal and make a lasting impression at any Python conference. ","date":"25 August 2023","externalUrl":null,"permalink":"/videos/1t1tj8fawkc_pycon_chana_pyladies_night_-_how_to_step_up_your_talkproposal_for_a_python_conference/","section":"Presentation videos","summary":"","title":"PyCon Chana PyLadies Night - How To Step Up Your Talk/Proposal For A Python Conference.","type":"videos"},{"content":" Discover and learn expert tips on how to level up your talk/ tutorial proposal and make a lasting impression at any Python conference. ","date":"25 August 2023","externalUrl":null,"permalink":"/videos/1t1tj8fawkc_pycon_ghana_pyladies_night_-_how_to_step_up_your_talkproposal_for_a_python_conference/","section":"Presentation videos","summary":"","title":"PyCon Ghana PyLadies Night - How To Step Up Your Talk/Proposal For A Python Conference.","type":"videos"},{"content":"","date":"25 August 2023","externalUrl":null,"permalink":"/tags/pyladies/","section":"Tags","summary":"","title":"PyLadies","type":"tags"},{"content":"","date":"10 August 2023","externalUrl":null,"permalink":"/tags/devrelcon/","section":"Tags","summary":"","title":"DevRelCon","type":"tags"},{"content":" In this talk, we will briefly introduce Hactoberfest, though not much introduction is needed as it is a well-known event. We will go through some fun facts and the history of Hacktoberfest fest and how it goes from 700 participants to more than 100,000. Then, we will go from why it is good for the open source community and from both the perspective of the contributors and the maintainers. ","date":"10 August 2023","externalUrl":null,"permalink":"/videos/g3iuov0_2g8_devrelcon_tokyo_-_whats_wrong_with_hacktoberfest/","section":"Presentation videos","summary":"","title":"DevRelCon Tokyo - What’s wrong with Hacktoberfest.","type":"videos"},{"content":"","date":"4 August 2023","externalUrl":null,"permalink":"/tags/pycon-colombia/","section":"Tags","summary":"","title":"PyCon Colombia","type":"tags"},{"content":" In this talk, we will visit some valuable tools in Pytest, for example, parameterize, fixture and xfail. All of them provided what problem these tool is trying to solve, an example use case and an example code. The talk will be conducted in a storytelling kind of way, with an example project and writing a test suit to test different features in the project. The goal of this talk is to give beginner code a head start in improving their ability to write meaningful and complex tests. ","date":"4 August 2023","externalUrl":null,"permalink":"/videos/ta51jxvlnqy_pycon_colombia_-_dont_just_test_my_friend_test_better/","section":"Presentation videos","summary":"","title":"PyCon Colombia - Don't just test, my friend, test better.","type":"videos"},{"content":"","date":"20 July 2023","externalUrl":null,"permalink":"/tags/jupytercon/","section":"Tags","summary":"","title":"JupyterCon","type":"tags"},{"content":" When handling a large amount of data, memory profiling the data science workflow becomes more important. It gives you insight into which process consumes lots of memory. In this talk, we will introduce Mamray, a Python memory profiling tool and its new Jupyter plugin. ","date":"20 July 2023","externalUrl":null,"permalink":"/videos/56smzzdadwq_jupytercon_2023_-_driving_down_the_memray_lane/","section":"Presentation videos","summary":"","title":"JupyterCon 2023 - Driving Down The Memray Lane","type":"videos"},{"content":"Are you using open-source software? Are you aware of what right are you given to use that software? Are you publishing open-soft software yourself? This post is a 101 guide towards popular OSS licenses to give you an idea of what they are and how are they different. What you need to be aware of when using them.\nThis blog post is not legal advice and if you have any concerns, please consult a legal professional for advice\nCopyleft and Permissive Licenses # Most open-source licenses can be put into 2 main categories, copyleft and permissive Licenses. To put it shortly, copyleft licenses are more restrictive and any software based on any GPL component must be released as open source. On the other hand, permissive licenses provide more freedom and permit proprietary derivative works with almost no restriction.\nOSI Approved Licenses # There are a lot of licenses out there in the world and sometimes it is hard for developers, who are not legal experts, to judge which ones are considered \u0026ldquo;open-source\u0026rdquo; and \u0026ldquo;good to use\u0026rdquo;. The Open Source Initiative (OSI) put together a list of approved licenses. I would suggest choosing a license for your project from their list (there are more than 80 of them), especially choosing the ones that are popular and with a strong community.\nSome of the Popular Licenses # To further help you to pick and get a basic understanding of the popular licenses, we put a list here. You can use it as a base and look into more information if any of the ones below look like what you want or if you are using anyone of them.\nThe MIT License # category: permissive The MIT License, as the name suggested, it was created at the Massachusetts Institute of Technology in the late ‘80s. It is one of the most popular and permissive free software licenses. You can do whatever you want as long as you add a copy of the original MIT license and copyright notice to it.\nApache License # category: permissive Just like the name suggested, this license is released by the Apache Software Foundation (ASF). It’s popular and is backed by a strong community. The Apache License allows you to freely use, modify, and distribute any Apache-licensed product. However, you’re required to follow the terms of the Apache License.\nBSD License # category: permissive Nowadays, BSD Licenses are mainly used as two variants from the original – the Modified BSD License (3-clause), and the Simplified BSD License/FreeBSD License (2-clause). They are both permissive free software licenses.\nThe BSD License lets you modify and distribute your software’s code in the source or binary format freely as long as you retain a copy of the copyright notice, list of conditions, and disclaimer.\nEclipse Public License # category: semi-permissive (copyleft) As you can guess, this is a license developed by the Eclipse Foundation. If you modify a component under this license and distribute it in the source code form as part of your program, you must disclose the modified code under the EPL. If you distribute such a program in its object code form, you must state that the source code can be made available upon request, and you must explain how to request the source code.\nIf you redistribute a program with an EPL component, you must include the full license text and the copyrights.\nThe EPL protects the author of the software from possible lawsuits or damages caused if a company uses their component in a commercial product. It also offers a patent grant.\nMozilla Public License # category: semi-permissive (copyleft) The Mozilla Public License is maintained by the Mozilla project. It is sitting between the Apache license, which does not require modifications to be shared, and the GNU family of licenses, which requires modifications to be shared under a much broader set of circumstances than the MPL.\nThe MPL\u0026rsquo;s \u0026ldquo;file-level\u0026rdquo; copyleft is designed to encourage contributors to share modifications they make to your code, while still allowing them to combine the original code with code under other licenses (open or proprietary) with minimal restrictions.\nCommon Development and Distribution License # category: semi-permissive CDDL is an open-source license published by Oracle. You’re free to reproduce and distribute any original or derivative works of any software licensed under the CDDL. However, you must not remove or make any changes to any copyright, patent, or trademark notices contained in the software. You must also retain any notices of licensing or any descriptive text that attributes any contributor or the initial developer.\nWhen you distribute your software in an executable form (i.e. any form other than source code), you must make the source code available under the CDDL. This source code should include your contributions if they in some way modify the contents of a file containing the original software, or new files that contain parts of the original program. The executable form may be released under the CDDL or any CDDL compatible licenses.\nIf your modifications are in separate and independent files that do not contain the original code, you do not have to release it under the CDDL. Furthermore, you must include a copy of the CDDL with any source code that you distribute. For each modification that you make, you must identify yourself as the modifier by including a notice in your modified files.\nGNU (Lesser) General Public Licenses # category: copyleft The GNU’s General Public License is a copyleft license. This means that any software based on any GPL component must be released as open source. It does have a strong community and is quite popular among open-source licenses.\nLast thought # Choosing and understanding licenses is not easy, luckily there are communities out there to help individual developers. On top of the restriction with licenses, there are extra government regulations (like the EU Cyber Resilience Act) that in putting in extra complications on the responsibility of distributing open-source software. This blog is just covering the basics about OSS licenses, if you are working for a company/ client and are in doubt, please consult legal professionals like company lawyers.\nReferences # Top open source licenses and legal risk for developers Top Open Source Licenses Explained MPL 2.0 FAQ Cover Photo by Clarisse Meyer on Unsplash\n","date":"9 July 2023","externalUrl":null,"permalink":"/posts/2023-07-09-oss-licenses/","section":"Blog posts","summary":"","title":"Open Source Software License 101","type":"posts"},{"content":"","date":"30 June 2023","externalUrl":null,"permalink":"/tags/python/","section":"Tags","summary":"","title":"Python","type":"tags"},{"content":"You have probably seen everyone has been talking about the end-of-life of Python 3.7 recently. Do you know what does it mean? What happened if you are still using Python 3.7?\nWhat does it mean? # According to the status of Python versions, each Python version will have a \u0026ldquo;lifespan\u0026rdquo; of its own. From its \u0026ldquo;birth\u0026rdquo; - when it got released, to when it will stop getting bug fixes and when we get to the stage that there will no longer be any security bug fixes, that version of Python is considered \u0026ldquo;dead\u0026rdquo;.\nIs it a good idea to upgrade to using more modern Python versions? Absolutely yes! It is never a good idea to use a piece of software that will not receive security fixes - it carries potential risks, if there is a vulnerability found, it will not be fixed and baddies will be able to exploit that vulnerability and potentially do you harm.\nWhy can\u0026rsquo;t Python 3.x be maintained for ever? # It is very common that software will have a life cycle like Python does. As the number of engineers and resources is limited. It is simply impossible to maintain a piece of software forever. It is even more so for open-source projects when the software is maintained mostly by volunteers. It is better to put resources to improve Python and maintain newer versions of it. That\u0026rsquo;s why each Python version will have its life cycle.\nIt is also easier for library maintainer to also maintain their library similarly, supporting only a set of newer versions of the libraries and newer versions of the releases will no longer support old, especially end-of-life versions of Python. In this case, it is possible to publish new features if it does not need to be compatible with Python versions that are very old and are quite different from the newest version.\nHow I am affected? # You will probably need to make sure that all your projects are compatible with Python 3.8+ - time to upgrade old and dusty projects, show them some love or make the hard decision to achieve them.\nAfter upgrading to Python 3.7, check if your dependencies are also upgraded. There are also popular Python libraries, or frameworks that will stop supporting Python 3.7. It will happen again in 3.8 in a year and so on, so it is always a good idea to keep up to date. Ideally, you should be using Python 3.11 right now and is ready to move on to Python 3.12 once it is released.\nThere is also a good thing about the Python 3.7 end-of-life, you can now stop testing again Python 3.7 in your CI/CD pipeline. And now you can also use the following cool features that are introduced in Python 3.8 without worrying about breaking backward compatibility.\nWhat are the coolest features in Python 3.8? # Take this session with a grain of salt! It is my personal opinion! Python 3.8 has been out for a while so everyone will have their own opinion. Here are my top 3 features:\nWalrus operator # This is a very controversial one when it came out! However, now people are starting to get more and more used to it and now after Ptyhon 3.7 is retired you will see them more often. In my opinion, the most useful way to use it when we have a while loop like this:\nwhile content := fetch_from_source(url) is not None: do_somthing_with_it(content) compare it to the older version which will be:\ncontent = fetch_from_source(url) while content is not None: do_somthing_with_it(content) content = fetch_from_source(url) we do not have to write the same line content = fetch_from_source(url) twice and can keep things consistent easily.\nEnforced positional argument # Now you can enforce arguments to be positional only:\ndef my_func(arg1, /, arg2): do_something(arg1, arg2) Here you can only call my_func(1, 2) or my_func(1, arg2=2) but not my_func(arg1=1, arg2=2) anymore.\nI can imagine this will affect how we use our favourite libraries in the future. As more and more libraries will use enforced positional arguments. Time to double-check their documentation if you are not sure if certain arguments are positional only.\nUsing = in f-strings # f-string was introduced in Python 3.6 and it was a game changer in how we print things. It has been more powerful and convenient over time. In Python 3.8, you can now use = in f-strings like f\u0026quot;Account info: {user_name=}\u0026quot; and it will print out something like \u0026ldquo;Account info: user_name=user1\u0026rdquo;. It is extremely useful for debugging and error messages.\nTo know more about what\u0026rsquo;s introduced in Python 3.8, you can check out this page at the official documentation.\nWhat if my work is still using Python 3.7? # As I said, it is crucial and beneficial to be using an updated version of Python. I understand that sometimes there are reasons Python 3.7 is still needed.\nIf it is for compatibility of a certain piece of software. Look for if a newer version of that piece of software is available. If it is a commercial piece of software, contact the publisher to ask for an update. If it is an open-source piece of software, report the issue and see what you can do to help. I am happily offering my help to any open-source project that may need help in updating the dependencies and removing Python 3.7 from their dependencies (I cannot promise I can solve your problem 100% but I will try)\nIf you are required to use Python 3.7 internally, mention the potential concern to the decision makers and explain the importance, like for security reasons, to upgrade to a newer version of Python.\nI hope you found this blog post useful If you have any comments, feel free to get in touch with me on social media and I am happy to chat.\nCover Photo by Andy Holmes on Unsplash\n","date":"30 June 2023","externalUrl":null,"permalink":"/posts/2023-06-30-python37-eol/","section":"Blog posts","summary":"","title":"What does Python 3.7 End-of-life mean?","type":"posts"},{"content":"This is my first time, also Humble Data\u0026rsquo;s first time in Latin America. I have heard Colombia is a beautiful country and people are welcoming. However, that\u0026rsquo;s pretty much all I know about Colombia before going. I was very excited to discover this country and the community.\nHumble Data at Bogota with PyLadies # At the beginning of the year, I give myself a mission to bring Humble Data to Latin America. This is the day that my dream becomes reality.\nIn the evening, Karolina picked me up at my hotel and we went to the event space, it is a nice shared office with good internet. There is a projector and we can use that to give an introduction to all the attendees.\nA great start for @HumbleData and @pyladies_co workshop Un gran comienzo para el taller de @HumbleData y @pyladies_co pic.twitter.com/iIfwcqvsgx\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) June 7, 2023 Since I didn\u0026rsquo;t speak Spanish, Karolina gave a welcome all the attendees, explain what we do, invite attendees to join the Spanish-speaking Python user community on Discord, and thanked all the sponsors.\nWe also have a lot of mentors to help, they are really helpful and I am glad that they are there to help. The workshop was a success and went well.\n@HumbleData was a great success! Thank you for all the mentors, organiser @pyladies_co and everyone who participated (and thank you @europythons for supporting the event) Mucha gracias 🙏🏻 ❤️ pic.twitter.com/ZpSjLnrTdU\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) June 9, 2023 Since the workshop is happening in the mid-week. We decided to have it as two evenings instead of a whole day. This works better for those who need to work in the office. The second day, it is the same day as the Django Girls workshop and it was a busy day for everyone who are involved in both. I am glad that we made it to the end.\nLater Karolina told me that amount all the participants, there was a teacher who found the workshop material useful and would use them to teach Python. It is amazing! I think it is thanks to Sandrine and her experience being a teacher in the past and being able to create beginner-friendly material to start with.\nDía 2 del taller de @HumbleData con @pylaides_co y seguimos fuertes pic.twitter.com/HFGx5PlUIV\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) June 9, 2023 I need to thank everyone who makes this event possible. PyLadies Colombia organisers: Karolina, Nicole and Lucy who helped find the venue and extra sponsors for the refreshment. All the mentors that help out during the 2 events. And my friend Cristián Maureira-Fredes who help with the translation.\nDjango Girls workshop # The day before PyCon Colombia, there is a Django Girls workshop. The workshop has almost double the participants than Humble Data workshop but I am not surprised as Django Girls are more established. It was our inspiration after all.\nThere are mentors to help as well, each one of them was given a thank you card handmade by the organisers. It was really sweet. I also like the handmade decoration at the workshop.\nMe gusta @DjangoGirlsCo especialmente la decoración pic.twitter.com/ipNvIJ4HOB\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) June 8, 2023 I met one of the mentors later a the conference and he said some participants ask if there are any workshops to learn Python and data science. I think that\u0026rsquo;s why we need a Humble Data workshop, the materials covered are different from Django Girls and both can work together and teach more people coding and Python.\nPyCon Colombia # I am super excited about PyCon Colombia, it is my first time attending a conference in Latin America. The first day, you get checked in and were given a braceletta - you get one every day and there\u0026rsquo;s one for each event in conjunction with the conference, I ended up collecting 7 of them (and beating everyone else).\nAre you excited about @pyconcolombia ? Están ustedes emocionados? pic.twitter.com/FdNoPhnlYG\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) June 9, 2023 All the keynote speakers are invited from abroad. They are Lukasz Langa, Catherin Devlin, Fabio Pliger, Deb Nicholson and Travis Oliphant. The organisers are being very good hosts and take care of them very well. This is not common for conferences in Europe. I can see the hospitality of Colombia through the organisers. The selection of keynote speakers is also very good, it covers a huge variety of topics and all of them are good speakers. All the keynotes are funny at the same time deliver important messages. I enjoyed all of them.\n@baconandcoconut is going to tell us how to ask for help as a non-profit at her keynote @pyconcolombia pic.twitter.com/zATsoGqRKT\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) June 11, 2023 When I am not giving a talk or workshop, I spend most of my time at the conference talking to sponsors and people who don\u0026rsquo;t mind I cannot speak Spanish. Most of the sponsors are proud Latin American companies. They are just like any startup in Europe, very innovative and hungry for more talents to join them. I also spend a lot of time talking to other ladies at the conference and they are all very nice and tell me where to go for sightseeing.\nDía 2:\nLa charla de Cheuk Ting Ho (@cheukting_ho) acerca de como hacer pruebas en Python de una mejor manera me resultó sumamente útil. Espero aplicar estos principios al programar con Python pic.twitter.com/FrvcSErWm2\n\u0026mdash; Juliana Nieto Cárdenas (@junietoc) June 14, 2023 Every evening at the conference there are activities, on the first day, there is bowling. I was lucky that the organisers invited me. It was at a bowling place that is decorated with a medieval theme. It is very interesting. I had a good time chatting with nice people and discovered that some of my friends are very good at bowling.\nThe speaker dinner @pyconcolombia has really cool decorations - “less fear more faith” - “dream leads us to success” pic.twitter.com/hVZZB6QWSV\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) June 11, 2023 On the second day, it was the speaker dinner, I had so much fun sitting with the local organisers and they teach me a lot about their dancing culture. We were so excited that they decided to let me experience it myself - we went dancing after. It was so much fun! I feel like I can dance every day in Colombia. People there dance so well! I get closer to the local speakers and organisers because of that. I am so glad to be welcomed into the party.\nOn the last day, the social event was drinking at BBC (a Colombia cervezaria chain - think of Starbucks but for beers). Since Travis is only able to join on the last day, I got a chance to chat with him, Juanlita and Mridul and we talked a lot about how to improve the open-source community, especially the scientific programming community.\nWhat’s in the coffee break @pyconcolombia ? PyCon Colombia cakes pic.twitter.com/Y79yqp2ODR\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) June 11, 2023 To make it a tradition, I also give (half of) a lighting talk in Spanish. This time I read it off my phone. But folks still love it and come to talk to me after about how much they appreciate it\u0026hellip; it motivated me to keep learning Spanish. I hope one day I do not have to read it off my phone.\nI have made a lot of connections via the conference. I get to know a lot of people that I already know better because I got to spend more time with them in person at Bogotá. I enjoy the time I spent with them. I hope we will see each other soon.\nLook at all these amazing @pyladies_co ladies at @pyconcolombia I am so glad to meet you all ❤️ pic.twitter.com/HX6Ihhss1z\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) June 10, 2023 Special Thanks # All of the amazing things mentioned would not be happening without the sponsor of the Humble Data workshop in Bogotá - EuroPython Society. They sponsor my trip to make this connection with the Colombian community and to provide a Spanish workshop to the local folks.\nIf you have a chance in the future, come to our annual EuroPython conference. We would love to meet people around the world.\nThank you very much for these volunteers to make @pyconcolombia such an amazing conference Muchas gracias por estos voluntarios para hacer de @pyconcolombia una conferencia tan increíble pic.twitter.com/IhcRzuJiDE\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) June 11, 2023 ","date":"17 June 2023","externalUrl":null,"permalink":"/posts/2023-06-17-pyladies-pycon-co/","section":"Blog posts","summary":"","title":"Humble Data workshop with PyLadies Colombia and PyCon Colombia","type":"posts"},{"content":"","date":"17 June 2023","externalUrl":null,"permalink":"/tags/humbledata/","section":"Tags","summary":"","title":"HumbleData","type":"tags"},{"content":" When handling a large amount of data, memory profiling the data science workflow becomes more important. It gives you insight into which process consumes lots of memory. In this talk, we will introduce Mamray, a Python memory profiling tool and its new Jupyter plugin. ","date":"15 June 2023","externalUrl":null,"permalink":"/videos/4nebzkdqms8_pycon_lithuania_2023_-_driving_down_the_memray_lane/","section":"Presentation videos","summary":"","title":"PyCon Lithuania 2023 - Driving Down The Memray Lane","type":"videos"},{"content":" This talk discusses the history of WASM, the Iodide project, and the rise of Pyodide and PyScript alongside the HTMX library, demonstrating their usage. It invites you to reconsider their application-building approaches and questions the need for JavaScript in web development. You will explore several popular tools in recent years, making them rethink their approach to building their applications. Hopefully, by seeing the live demos, you are encouraged to try these tools and learn more about the use case and how it can help them in future projects. ","date":"15 June 2023","externalUrl":null,"permalink":"/videos/58ea9kxqfhe_pycon_lithuania_2023_-_htmx_vs_wasm/","section":"Presentation videos","summary":"","title":"PyCon Lithuania 2023 - HTMX vs WASM","type":"videos"},{"content":"","date":"15 June 2023","externalUrl":null,"permalink":"/tags/pycon-lt/","section":"Tags","summary":"","title":"PyCon LT","type":"tags"},{"content":"Click here for English version\nHas estado en reuniones y conferencias y quieres ser uno de las personas que exponen, o tienes algunas ideas geniales, descubres algo o tienes una opinión sobre algo que quieres compartir, y te preguntas ¿cómo puedes empezar?. Aquí hay información útil para ti. La información proporcionada se aplicará tanto a eventos presenciales como en línea.\n¿Cómo convertirse en ponente? # Todos pueden convertirse en ponente, la mejor manera de comenzar es dando una charla relámpago de 5 minutos (o menos) en una conferencia amistosa o un MeetUp local. Es porque no tienes que escribir una propuesta y pasar por el proceso de revisión del llamado de propuestas (CfP), que puede ser difícil para nuevos ponentes.\nAsiste varias veces al evento en el que quieres hablar y ve cómo es el ambiente. ¿La comunidad es acogedora? ¿La audiencia es solidaria? ¿Te sentirías con comodidad dando una charla allí? Busca un evento que tenga un Código de Conducta (CoC) efectivo.\n¿De qué puedo hablar? # Ahora, has encontrado la conferencia perfecta o MeetUp como tu escenario de debut. Te puedes preguntar: ¿de qué voy a hablar?\nDepende del evento. Generalmente, las charlas relámpago son más relajadas y se acepta cualquier tema (siempre que sea breve y no viole el CoC). ¡Incluso puedes hablar de tu gato!\nPara MeetUp locales, creo que la mejor manera es preguntar a los organizadores, ellos conocen la comunidad y las audiencias. Puede preguntarles qué tipo de charla les interesaría. Por lo general, al asistir a la reunión varias veces, es posible que ya obtengas una pista.\nComo regla general, elige un tema que te apasione. A menos que lo especifiquen los organizadores, una charla para principiantes será adecuada para la mayoría de las audiencias (nadie es un experto en todo y, por lo general, habrá más principiantes que expertos en ese tema en la sala). Así que no pienses demasiado ni te presiones para dar una charla muy profunda (solo tienes 30-45 minutos). Piensa en ello como si contaras una historia sobre algo que te importa.\nSi planeabas dar una charla en un MeetUp, a continuación encontrarás algunos consejos para preparar una charla que pueden serte útiles.\n¿Cómo crear una buena propuesta (CfP) (que te ayude a tu selección)? # ¡Así que has intentado hablar frente a una audiencia y te gusta! Quieres obtener la experiencia completa de un ponente y planeas enviar una propuesta a una CfP (Call for Proposal) en una conferencia a la que planeas asistir. ¿Qué harás?\nS irealizaste el paso anterior, diste una charla relámpago o una charla en un MeetUp, podrías reutilizar el mismo material. Esto te dará confianza de que el tema funciona ya que ya has dado la charla una vez. Sin embargo, es posible que debas extender o ajustar el material ya que la configuración es diferente esta vez.\n¿Qué escribir en una propuesta? # Para escribir una buena propuesta, primero necesitamos un buen título. Tiene que ser pegadizo ya que es lo primero que ven quienes revisores. Si no se te da bien hacer juegos de palabras, no te preocupes, un título preciso que le dé una idea a quién revisa de lo que vas a hablar también está bien.\nA continuación, te pueden pedir que proporciones un resumen, que suele ser un párrafo breve de menos de 300-400 caracteres. Esto te permite ampliar el título de tu charla y explicar brevemente de qué se trata. Por lo general, esto se hará público, así que piense en ello como si fuera un asistente a la conferencia, ¿qué te haría venir a esta charla?\nDespués del resumen, se te puede pedir que proporciones una descripción, esto también será público, pero puedes proporcionar detalles sobre tu charla. Muchas personas que revisan propuestas también juzgarán si esta es una buena charla por la descripción proporcionada. Debes poner el mayor esfuerzo en la descripción. No es solo para quienes revisan, también sería útil cuando tu charla sea seleccionada y tengas que prepararla de verdad. Así es como lo hago:\nCuando escribo la descripción de mi charla, ya tengo una idea de cómo voy a dar mi charla, voy a hablar de lo primero, luego lo que sigue y cómo terminaría la charla. También explicaré qué conocimiento se requiere para el público y cuáles son los resultados para el público. Además de eso, también escribiré un bosquejo de la charla en la descripción, usando el bosquejo puedo crear fácilmente la estructura para mi conjunto de diapositivas cuando necesito prepararme para dar la charla.\nTambién se te pedirá que proporciones una biografía. Esta es una presentación sobre ti en tercera persona. Esto se hará público, piensa en ello como si quisieras que alguien te presente en el escenario. No es necesario que sea larga, bastará con un párrafo breve.\nAdemás del título, resumen y descripción de tu charla, es posible que se te pregunte sobre otras cosas. Estos varían de una conferencia a otra. Una última cosa, si eres un ponente del grupo subrepresentado, indícalo en la sesión extra (solo visible para quienes organizadores o quienes revisan). Algunas conferencias pueden querer asegurar una representación diversa de ponentes y esto les ayudará a decidir al seleccionar las charlas.\nConvertirse en revisora # Lo mencionado anteriormente son solo cómo lo hago, hay muchas maneras en que puedes escribir una buena propuesta, otra forma de aprender a escribir buenas propuestas es ofrecerte como parte del voluntariado para ser revisores en diferentes conferencias. Allí podrás entender más sobre el proceso de selección de charlas y podrás ver por ti mismo qué es una buena propuesta y qué no lo es.\n¿Qué pasa si no me seleccionan? # ¡Pasa todo el tiempo! Incluso les pasa a ponentes con experiencia, los rechazos pueden ocurrir a veces. No es porque haya escrito una mala propuesta, puede ser que haya muchas presentaciones que sean muy similares a tus temas, puede ser que el tema que elegiste no tenga suficiente interés en esta comunidad en particular, ¡puede ser cualquier cosa!\nSi quieres recibir comentarios sobre tu propuesta, puedes preguntar a los organizadores. No es común que las conferencias brinden comentarios a cada una de las propuestas (¡ya que hay muchas!) y, a veces, es imposible proporcionar comentarios específicos a tu propuesta, incluso si los solicitas. Pero no está de más intentarlo si quieres obtener comentarios sobre tu propuesta, simplemente no espere recibir comentarios cada vez que envíe una propuesta.\n¿Qué es lo siguiente? ¡Preséntate a otro evento! Como mencioné antes, no es porque hayas escrito una mala propuesta. Si tienes comentarios, ¡es genial! Puedes revisar tu propuesta y enviarla a otro evento e intentarlo de nuevo.\n¿Qué pasa si me seleccionan? # ¡Felicidades! Vas a estar hablando en esta conferencia que te gusta. Debes sentirte con mucha emoción pero con preocupación al mismo tiempo. Respira hondo, por lo general quienes organizan también enviarán una guía de ponentes. Léela bien y verifica lo que tú, como ponente, necesitas preparar en diferentes momentos. A veces, quienes organizan requerirán que se envíen ciertos materiales con anticipación. Consulta el requerimiento técnico para dar una charla y tener todo preparado.\n¿Cómo preparar mis presentaciones de diapositivas? # A continuación, deberás preparar las diapositivas y otros materiales para tu charla. Puedes usar cualquier software para sus diapositivas: algunas personas prefieren Google Slides, otras prefieren reveal.js y otras prefieren pdf. ¡Tú decides! Siempre que funcione técnicamente (consulta la guía de ponentes o con quienes organizan). Para crear el esquema de diapositivas, usa el esquema que escribiste en tu propuesta como guía. Evita poner demasiado en un lado para que se vea demasiado recargado, recuerda, menos es más.\nEs posible que quieras anotar algunas notas del ponente para ayudarte mientras das la charla. Evita poner todo el discurso allí, escribirlo como formas puntuales sería una mejor idea. Será más fácil referirse a las notas si olvidaste lo que quieres decir. Es posible que quieras practicar y probar tu discurso con alguien. Puede ser bueno recibir comentarios de alguna persona que sea tu amiga, o mentora, pero sé que no siempre es posible. Creo que practicar y ver si funciona dentro del límite de tiempo sigue siendo una buena preparación, por lo que deberías intentar dar tu charla al menos a un patito de goma como práctica.\n¿Cómo hacer preguntas a la audiencia durante tu charla? # Me acostumbré a hacer una pregunta en las primeras diapositivas de mi charla. Esto \u0026ldquo;despertará a la audiencia\u0026rdquo; porque les devuelve la atención. Puede ser tan simple como preguntar: \u0026ldquo;¿Has oído hablar de X? Levanta la mano\u0026rdquo;. Luego puede comentarlo brevemente (por ejemplo, \u0026ldquo;Así que no muchos de ustedes lo saben\u0026rdquo;, \u0026ldquo;Oh, ya lo saben, pero les voy a decir de todos modos\u0026rdquo;) y seguir adelante. La clave aquí es seguir adelante sin importar el resultado. El resultado de esta pregunta no debe cambiar lo que va a presentar a continuación.\nPrepara lo que vas a decir en ambos resultados, para que puedas ser real al comentarlo. Esto es mucho mejor que suponer un resultado, porque si resulta lo contrario, te tomará por sorpresa (el público puede ser impredecible) y se siente raro decir algo que no es cierto.\n¿Qué pasa con mostrar código en vivo? # Para algunas presentaciones, puede ser adecuado tener demostraciones de código. Como ponente nuevo, evitaría hacer una demostración en vivo, ya que muchas cosas pueden salir mal en una demostración en vivo. Imagina que hay 100 pares de ojos observándote escribir, el estrés y la presión harán que de repente no puedas escribir y ver correctamente y habrá errores tipográficos que no podrás encontrar y errores que no podrás resolver en el acto. La solución es grabar la demostración (existen varios software de captura de pantalla que son gratuitos) y reproducirla como un video durante la charla. No estoy sugiriendo fingir, pero puedes mostrar abiertamente una demostración grabada en lugar de una vivir una. Está bien y nadie va a pensar que no es una buena charla porque la demostración no es en vivo.\nNota: para cualquiera que quiera hacer una demostración LLM en vivo, si sabes que el resultado será impredecible, haz una demostración grabada en lugar de una demostración en vivo para asegurarte de que el contenido generado no viole el CoC. Que sea generado por un modelo entrenado no significa que no seas responsable de lo que se muestra.\nEl gran día # Durante el día de dar tu charla, si hay sesiones organizadas para hacer un chequeo técnico, por favor házlo. Si no lo hay, puedes preguntar a quienes organizan o a personas del voluntariado responsable de tu sesión cuándo puedes hacer una revisión técnica. Lo último que quieres es tener que resolver problemas técnicos en los primeros minutos de tu charla, esto crea un estrés adicional para la presentación. Si necesitas una salida de audio, por ejemplo, reproducir un video con audio en tu charla, asegúrate de comprobarlo, ya que es más complicado que una charla sin salida de audio.\nRecuerda llevar un poco de agua contigo al escenario, por lo general quienes organizan tendrán un poco de agua para quienes exponen, pero en caso de que no la tengan, puedes usar tu botella de agua. ¡No tienes idea de cuántas veces me olvidé y quise tener un poco de agua conmigo mientras estaba en el escenario! Es posible que tengas un tiro seco hacia el final de la charla (tuve una tos fuerte durante mi charla un par de veces), o puedes usar \u0026ldquo;beber un poco de agua\u0026rdquo; como un amortiguador si necesita recuperar el hilo de sus pensamientos o necesita vislumbra rápidamente las “notas de ponente” mientras olvidas lo que sigue. Recuerda que el agua es tu mejor aliada mientras estás en el escenario. No dudes en beber agua cuando la necesites, se ve natural en el escenario y te dará tiempo a ti y al público para tomar un descanso.\n¿Qué tal preguntas y respuestas? # ¡No siempre tienes que responder preguntas mientras estás en el escenario! Si no se siente con comodidad respondiendo preguntas frente a la audiencia, puedes preparar la charla con tiempo extra, para que incluya el tiempo de preguntas y respuestas (generalmente los últimos 5 minutos de tu sesión). Infórmale al voluntariado responsable de tu sesión con anticipación que no responderá preguntas en el escenario, sino que pídele a la audiencia que te busque más tarde. Puedes decir que estarás fuera de la sala después de la charla o que estarás en un lugar determinado durante la próxima pausa para el café. Creo que para personas que sea la primera charla, esta puede ser la mejor opción, ya que la pregunta de la audiencia es otra cosa que no sabremos qué esperar y, a veces, puede ser difícil de manejar.\nSi tienes suficiente valentía como para manejar las preguntas, tengo algunos consejos para ti:\nPresentar una charla no significa que tengas que saberlo todo, está bien decir \u0026ldquo;No sé\u0026rdquo;. Si no tienes seguridad de algo, puedes decir \u0026ldquo;No sé muy bien si es así\u0026rdquo;. Trata de no dar información incorrecta.\nSi la pregunta no es genuina y te hace sentir con incomodidad, no tienes que responder. Estoy abogando por quien preside la sesión para que tenga el poder de intervenir si las preguntas que se hacen no son genuinas y se debe recordar a las audiencias que deben hacer preguntas genuinas. Pero, si sucede, puedes decir \u0026ldquo;No entiendo tu pregunta, ¿qué tal si hablamos de esto después afuera?\u0026rdquo; y pasar a la siguiente pregunta.\n¿Dónde puedo encontrar ayuda? # Entonces, después de leer esta publicación, quieres ser ponente, pero aún piensas que sería bueno tener más ayuda. ¿Dónde puedes encontrar ayuda?\nComo no puedo asesorar a todas las personas, he creado varios programas de tutoría de ponentes con varios eventos. Uno de ellos es EuroPython. Ahora está a cargo un voluntariado y puedes encontrar más recursos sobre cómo convertirte en un buen o buena ponente, es una comunidad que se ayuda entre sí. También puedes solicitar una pareja para que una persona esté a cargo de tu mentoría.\nSi estás organizando eventos y quieres establecer programas similares, me gustaría mucho ver cómo puedo darte ayuda. Ponte en contacto a través de [Twitter] (https://twitter.com/cheukting_ho) o [LinkedIn] (https://www.linkedin.com/in/cheukting-ho)\nAgradecimiento especial a Cristián Maureira-Fredes por su ayuda con la traducción\nCover photo by Kane Reinholdtsen on Unsplash\n","date":"10 June 2023","externalUrl":null,"permalink":"/posts/2023-06-10-how-to-be-speaker-es/","section":"Blog posts","summary":"","title":"¿Cómo empezar a dar charlas en conferencias?","type":"posts"},{"content":"","date":"10 June 2023","externalUrl":null,"permalink":"/tags/tips/","section":"Tags","summary":"","title":"Tips","type":"tags"},{"content":" Mozilla has been promoting WASM for years, on the other hand, HTMX is gaining attraction. Question is, do we want more frontend or more backend? Do we still need to write JavaScripts? In the first half of the talk we would explore the history of WASM and the Iodide project, what they enable and the closing of the Iodide project. Then we will talk about the rise of the Pyodide project and what this project enables - including another popular framework - PyScript. There will be some quick code demo of both Pyodide and PyScript. In the second half of the talk, we will switch our attention to HTMX, what's the idea behind it and how it can be used to access AJAX, CSS Transitions, WebSockets and Server-Sent Events directly in HTML. There will also be some code demos of how to use HTMX, especially using it together with Django. In the last part of the talk, there will be a conclusion, do we want more backend or more frontend? And most importantly, will web developers ever need to write JavaScript anymore? Goal The attendee of this talk will explore several popular tools in recent years which will make them rethink their approach to building their applications. Hopefully, by seeing the live demos, they are encouraged to try these tools out and learn more about the use case and how it can help them in future projects. ","date":"8 June 2023","externalUrl":null,"permalink":"/videos/zm7ejc_9jiy_djangocon_europe_2023_-_htmx_vs_wasm_-_more_backend_or_more_frontend/","section":"Presentation videos","summary":"","title":"DjangoCon Europe 2023 - HTMX vs WASM - more backend or more frontend?","type":"videos"},{"content":"Haga clic aquí para la versión en español\nSo you have been to meet-ups and conferences and wish that you are one of the speakers, or you have some great ideas, discover something or have an opinion about something that you wanna share, and you wonder how can you start? Here are some useful information for you. The information provided will apply to both in-person and online events.\nHow to become a speaker? # Everyone can become a speaker, the best way to start is by giving a 5 mins (or less) lightning talk at a friendly conference or a local meet-up. It is because you don\u0026rsquo;t have to write a proposal and get through the process of CfP reviews which can be difficult for new speakers.\nAttend the event that you want to speak at a few times and see what the vibe is like, Is the community welcoming? Is the audience supportive? Would you feel comfortable giving a talk there? Look for an event that has an effective Code of Conduct (CoC) in place.\nWhat can I speak about? # Now, you have found the perfect conference or meet-up as your debut stage. You may ask: what am I gonna talk about?\nIt depends on the event. Generally, lightning talks are more relaxed and any topics (as long as it\u0026rsquo;s short and not violating the CoC) are accepted. You can even talk about your cat!\nFor local meet-ups, I think the best way is to ask the organisers, they know the community and the audiences. You may ask them what kind of talk would they be interested in. Usually by attending the meet-up a few times you may already get a clue.\nAs a rule of thumb, choose a topic that you are passionate about. Unless specified by the organisers, a beginner-friendly talk will be suitable for most audiences (no one is an expert in everything and there will usually be more beginners than experts in that topic in the room). So don\u0026rsquo;t overthink and give yourself pressure to give a very deep talk (you only got 30-45 mins). Think of it as telling a story about a thing that you care about.\nIf you planned to give a talk at a meet-up, there are some tips for preparing a talk below that may be useful for you.\nHow to create a great CfP (that helps you get selected)? # So you have tried speaking in front of an audience and you like it! You want to get the full speaker experience and are planning to submit a proposal to a CfP (Call for Proposal) at a conference that you are planning to attend. What shall you do?\nIf you have done the previous step - gave a lightning talk or a talk at a meet-up, you could reuse the same material. This will give you confidence that the topic works as you have already given the talk once. However, you may need to extend or adjust the material as the setting is different this time.\nWhat to write in a proposal? # To write a good proposal, first, we need a good title. It needs to be catchy as this is the first thing the reviewers see. If you are not good at making puns, don\u0026rsquo;t worry, a precise title that gives the reviewer an idea of what you are going to talk about is also ok.\nNext, you may be asked to provide an abstract, this is usually a short paragraph that is less than 300-400 characters. This lets you extend the title of your talk and briefly explain what your talk is about. This will usually be made public so think of it as if you are a conference attendee, what will make you come to this talk?\nAfter the abstract, you may be asked to provide a description, this will also be public but you can provide details about your talk. A lot of reviewers will also judge if this is a good talk by the description provided. You should put the most effort into the description. It is not only for the reviewers, it would also be useful when your talk is selected and you have to prepare your talk for real. This is how I do it:\nWhen I write the description of my talk, I already have an idea of how I will give my talk, I will talk about what I am going to talk about first, then what next, and how I would end the talk. I will also explain what knowledge is required for the audiences and what are the takeaways for the audiences. On top of that, I will also write an outline of the talk in the description, using the outline I can easily create the structure for my slide deck when I need to prepare to give the talk.\nYou will also be asked to give a bio. This is an introduction about you in 3rd person. This will be made public, think of it as how you want someone to introduce you on stage. It doesn\u0026rsquo;t need to be long, a short paragraph will do.\nBesides the title, abstract and description of your talk, you may be asked about other things. These vary from conference to conference. One last thing, if you are a speaker from the under-represented group, state it in the extra session (only visible by the organisers and/ or the reviewers). Some conferences may want to ensure a diverse representation of speakers and this will help them to decide while selecting the talks.\nBecoming a reviewer # Mentioned above are just how I do it, there are many ways that you can write a good proposal, another way to learn how to write good proposals is to volunteer to be reviewers to different conferences. There you can understand more about the talk selection process and you can see for yourself what is a good proposal and what is not.\nWhat if I am not selected? # It happens all the time! Even for experienced speakers, rejections can happen sometimes. It is not because you have written a bad proposal, it may be there are many submission that is very similar to your topics, it may be the topic you have chosen does not have enough interest in this particular community, it can be anything!\nIf you want to get feedback on your proposal, you may ask the organisers. It is not common for conferences to give feedback to every single proposal (as there are many!) and sometimes it is impossible to provide specific feedback to your proposal even if you ask. But it is no harm trying if you want to get feedback on your proposal, just don\u0026rsquo;t expect you will get feedback every time you submitted a proposal.\nSo what\u0026rsquo;s next? Submit to another event! As I mentioned before, it is not because you have written a bad proposal. If you have got feedback, that\u0026rsquo;s great! You can review your proposal and submit it to another event and try again.\nWhat if I am selected? # Congratulation! You are going to be speaking at this conference that you like. You must feel excited but worried at the same time. Take a deep breath, usually the organisers will also send over a speaker guide. Give it a good read and check what you, as a speaker, need to prepare at different times. Sometimes organisers will require certain materials to be sent over ahead of time. Check the technical requirement to give you a talk and be prepared.\nHow to prepare my slide decks? # Next, you will have to prepare the slides and other materials for your talk. You can use any software for your slides - some people prefer Google Slides, some prefer reveal.js, and some prefer pdf. Up to you! As long as it works technically (check the speaker guide or with the organisers). For creating the slide deck, use the outline that you have written in your proposal to guide you. Avoid putting too much on one side so it looks too busy, remember, less is more.\nYou may want to put down some speaker notes to help yourself while giving the talk. Avoid putting the whole speech there, putting it down as point forms would be a better idea. It will be easier to refer to if you forgot what you want to say. You may want to practice and test your talk with someone. It may be good to get some feedback from a friend or mentor but I know it may not always be possible. I think practice giving it and seeing if it works within the time limit is still a good preparation so you should try giving your talk at least to a rubber duck as a practice.\nHow to ask audience questions during your talk? # I made it a habit to ask one question on the first few slides of my talk. This will \u0026ldquo;wake the audience\u0026rdquo; up because it passed the attention back to themselves. It can be as simple as asking: \u0026ldquo;Have you heard of X, give me a show of hands\u0026rdquo;. Then you can comment about it briefly (e.g. \u0026ldquo;So not many of you know\u0026rdquo;, \u0026ldquo;Oh you already know, but I am going to tell you anyway\u0026rdquo;) and move on. The key here is to move on no matter what the outcome is. The outcome of this question should not change what you are going to present next.\nPrepare what you are going to say in both outcomes, so you can be real when you comment on it. This is much better than presuming an outcome because if it turns out the other way you will be thrown off guard (audiences can be unpredictable) and it feels weird saying something that is not true.\nWhat about demos? # For some presentations, it may be suitable to have code demos. As a new speaker, I would avoid doing a live demo, as many things can go wrong in a live demo. Imagine there are 100 pairs of eyes watching you type, the stress and pressure will make you suddenly unable to type and see properly and there will be typos that you cannot find and bugs that you cannot solve on the spot. The workaround is to record the demo (there is various screen capture software that is free) and play it as a video during the talk - I am not suggesting faking it - but you can openly show a recorded demo instead of a live one. It\u0026rsquo;s ok and no one is going to think it\u0026rsquo;s not a good talk because the demo is not live.\nNote: for anyone who what to do a live LLM demo, if you know the result is going to be unpredictable, please do a recorded demo instead of a live demo to make sure the content generated does not violate the CoC. It is generated by a trained model does not mean that you are not responsible for what is shown.\nThe big day # During the day of giving your talk, if there are organised sessions to do a tech check, please do that. If there is not, you may ask the organisers or the volunteer that is responsible for your session when you can do a tech check. The last thing that you want is to have to solve technical problems the first few minutes of your talk, this creates extra stress for presenting. If you need audio output e.g. playing a video with audio in your talk, please make sure to check that as it is more complicated than a talk with no audio output.\nRemember to bring some water with you on stage, usually the organisers will have some water for the speakers but in case they don\u0026rsquo;t have it, you can use your water bottle. You cannot believe how many times I forgot and wish that I have some water with me while on stage! You may have a dry throw towards the end of the talk (I had a bad cough during my talk a few times), or you can use \u0026ldquo;drinking some water\u0026rdquo; as a buffer if you need to catch your train of thought or need to quickly glimpse your speaker notes as you forgot what\u0026rsquo;s next. Remember water is your best ally while being on stage. Don\u0026rsquo;t be shy to drink water when needed, it looks natural on stage and it will give both you and the audience time to have a break.\nHow about Q \u0026amp; A? # You don\u0026rsquo;t always have to take questions while you are on stage! If you don\u0026rsquo;t feel comfortable answering questions in front of the audience, you can prepare the talk a bit longer so it includes the time for Q\u0026amp;A (usually the last 5 minutes of your session). Let the volunteer who is responsible for your session know in advance that you will not take questions on stage, instead, ask the audience to find you later. You can say you will be outside of the room after your talk or you will be at a certain place during the next coffee break. I think for new speakers, this may be the better option as the audience\u0026rsquo;s question is another unknown and can be tricky to handle sometimes.\nIf you are brave enough to handle questions, there are a few tips for you:\nYou presented a talk doesn\u0026rsquo;t mean that you have to know everything, it\u0026rsquo;s ok to say \u0026ldquo;I don\u0026rsquo;t know\u0026rdquo;. If you are not sure about something, you can say \u0026ldquo;I am not sure\u0026rdquo;. Try not to give wrong information.\nIf the question asked is not genuine and makes you feel uncomfortable, you don\u0026rsquo;t have to answer it. I am advocating for the session chair should be given the power to intervene if the questions asked are not genuine and audiences should be reminded about asking genuine questions. But, if it happens, you can say \u0026ldquo;I don\u0026rsquo;t get your question, how about we talk about this afterwards outside\u0026rdquo; and move on to the next question.\nWhere can I find help? # So, after reading this post, you want to become a speaker but still think that it would be nice to have more help. Where can you find help?\nSince I cannot mentor everyone, I have created various speaker mentorship programs with various events. One of them is EuroPython. This is now run by volunteers and you can find more resources about how to become a good speaker, it is a community that helps each other. You may also apply to get paired with a mentor.\nIf you are organising events and want to set up similar programs, I am happy to see how I can help. Please get in touch via Twitter or LinkedIn\nCover photo by Kane Reinholdtsen on Unsplash\n","date":"6 June 2023","externalUrl":null,"permalink":"/posts/2023-06-06-how-to-be-speaker/","section":"Blog posts","summary":"","title":"How to start speaking at conferences?","type":"posts"},{"content":" Have you been troubled by Python code that took too long to run? Do you want to know why and how to improve? In this workshop, we will introduce Numba - a JIT compiler that is designed to speed up numerical calculations. Most people found all of it is like a mystery - It sounds like magic, but how does it work? Under what conditions does it work? And because of it, new users found it hard to start using it and it requires a steep learning curve to get the hang of it. This workshop will provide all the knowledge that you need to make Numba works for you. This workshop is for Data scientists or developers who have math-heavy code that would like to speed up with the benefit of Numpy and Numba. ","date":"2 June 2023","externalUrl":null,"permalink":"/videos/ui6t0y4vbyc_pycon_us_-_power_up_your_work_with_compiling_and_profiling/","section":"Presentation videos","summary":"","title":"PyCon US - Power up your work with compiling and profiling","type":"videos"},{"content":" Last year, Sam Gross, the author of nogil fork on Python 3.9, demonstrated the GIL can be removed. For scientific programs which use heavy CPU-bound processes, it could be a huge performance improvement. In this talk, we will see if this is true and compare the no-gil version to the original. In this talk, we will have a look at what is no-gil Python and how it may improve the performance of some scientific calculations. First of all, we will touch upon the background knowledge of the Python GIL, what is it and why it is needed. On the contrary, why it is stopping multi-threaded CPU processes to take advantage of multi-core machines. After that, we will have a look at no-gil Python, a fork of CPython 3.9 by Sam Gross, and how it provides an alternative to using Python with no GIL, demonstrating it could be the future of the newer versions of Python. With that, we will try out this version of Python in some popular yet calculation-heavy algorithms in scientific programming and data sciences e.g. PCA, clustering, categorization and data manipulation with Scikit-learn and Pandas. We will compare the performance of this no-gil version with the original standard CPython distribution. This talk is for Pythonistas who have intermediate knowledge of Python and are interested in using Python for scientific programming or data science. It may shine some light on having a more efficient way of using Python in their tasks and interest in trying the no-gil version of Python. ","date":"2 June 2023","externalUrl":null,"permalink":"/videos/7ih7lbk6odo_pycon_us_-_trying_no_gil_on_scientific_programming/","section":"Presentation videos","summary":"","title":"PyCon US - Trying No GIL on Scientific Programming","type":"videos"},{"content":"","date":"2 June 2023","externalUrl":null,"permalink":"/tags/tutorial/","section":"Tags","summary":"","title":"Tutorial","type":"tags"},{"content":"This is the first time I participated at a conference in Paris, also the first time participated at JupyterCon. It\u0026rsquo;s exciting to attend a conference without any expectations. I have made great connections, learn something new and had nice conversations with different people. The most fun part? The venue is a science museum and it matched the theme of the conference perfectly.\nKeynotes, Talks and Tutorials # There are 3 keynotes in total, every day the conference kicks off with a keynote. The first day, it was a keynote by the team from GitHub, I was not too interested so I gave it a pass.\nOn the second day, we have Professor Alyssa Goodman giving a talk about the projects related to Glue - a 3 dimensional VR tool that is very useful in astronomy and beyond. She reminds us to not use our computer during her talk and show us why it is important to see things in 3D.\nProf. @AlyssaAGoodman is giving a keynote about Glue - extra point if you keep your laptop closed while listening #JupyterCon2023 @JupyterCon pic.twitter.com/5rzg6PiLw7\n\u0026mdash; Cheuk Ting Ho at #JupyterCon (@cheukting_ho) May 11, 2023 On the third day, we have Nobel prize winner Paul Romer giving his \u0026ldquo;lecture\u0026rdquo; style keynote - there were equations, quite a lot of them (considered you have been warned). It was very tough for me to attend a lecture at 9 in the morning during my university years and listening to his keynote at 9 am reminded me of this. Nether the less, he has delivered a very good message and idea - make Jupyter Notebook an interactive pdf by adding the SHA sign feature.\nSigning is not enough, you need infa to publish keys, and trust people. or keys can be made in active. pic.twitter.com/1pswL6fhKS\n\u0026mdash; JupyterCon 2023 (@JupyterCon) May 12, 2023 Other than the keynotes, I didn\u0026rsquo;t go to many talks, there are all recorded and I was carried away with chatting with people a lot of times. There are a few that I enjoyed.\nOne of the talks was by Jeremy, the maintainer of JupyterLite. It inspires me to try using it in workshops but this brings me to finding a bug during the sprint.\n#JupyterCon2023 @JupyterCon @jtpio is talking about Jupyter Lite pic.twitter.com/UI2gXvt81G\n\u0026mdash; Cheuk Ting Ho at #JupyterCon (@cheukting_ho) May 10, 2023 Another one is by Pavithra, who is the developer advocate of QuantSight, she is so sweet and it\u0026rsquo;s nice to see her in person. And she delivers her talk very well.\n@pavithraes is taking about community backed OSS @JupyterCon #JupyterCon pic.twitter.com/bHO93VKU0e\n\u0026mdash; Cheuk Ting Ho at #JupyterCon (@cheukting_ho) May 12, 2023 I also gave a talk about memory profiling on Jupyter, I was given the room that is used for the keynote so it is only 20% full - I think there may be around 80 people there. I also gave too many lighting talks at the conference\u0026hellip; I hope the competition will be keener next time.\nI also went for one tutorial (actually half) about security in Jupyter - I think it is interesting but when it get to the hands-on exercise part, I ran for some fresh air in the hallway.\nHall Track and Social event # There are quite a lot of sponsors at the venue, including Anaconda - our booth is a good place to meet colleagues and chat with people. It is a small booth and is at the back next to the NumFocus booth so it is not busy a lot of times.\nI also talked to other sponsors and see if they are interested to sponsor other conferences that I organised. There\u0026rsquo;s one interesting booth with a Robot that can talk to you - it is connected to ChatGPT so it is fun to interact with it. After interacting with it for a while I found it quite adorable and now I want a robot too.\nRobot selfie with Pepper at #JupyterCon @JupyterCon pic.twitter.com/8bQw7FC7p8\n\u0026mdash; Cheuk Ting Ho at #JupyterCon (@cheukting_ho) May 11, 2023 There\u0026rsquo;s also a PyLadies booth on the top floor, I often go there to chat with my friends who organise PyLadies Paris and Berlin. It is also a gathering place for PyLadies Lunch.\nHaving a great time at @JupyterCon with my fellow @PyLadiesParis friends. 🥳 If you are attending the conference make sure to visit us today at our booth for a @pyladies lunch! 🍛🥗 #Diversity #WomenInSTEM #WomenInTech pic.twitter.com/J1FbpHZW7B\n\u0026mdash; Maren Westermann (@MarenWestermann) May 12, 2023 I also sometimes take calls at the side ally of the hallway, it is mostly quiet - and even quieter than the quiet room sometimes (I am not supposed to take calls in the quiet room anyway) cause people were chatting in the quiet room occasionally - I think the organisers need to remind people not to do that.\nOn the second day, we have a poster session before the reception (there are food and drinks there already) and I like how it is organised, it encourages people to go see the poster presentations.\nIt was great to meet everyone at the @JupyterCon reception tonight!\nWith a great view of La Géode of @citedessciences! pic.twitter.com/b0rUmgezpG\n\u0026mdash; Sylvain Corlay (@SylvainCorlay) May 11, 2023 After the poster session, it is the drink reception and the food is absolutely amazing. It is in the museum space and there were some creative ways of presenting the food - one canopy dish looks like a fruit that got picked from a plant; there\u0026rsquo;s a chocolate egg that was cracked with a hammer before serving\u0026hellip; I think it\u0026rsquo;s one of my favourite social events.\nPeople I met # Usually what makes me think the trip is worthwhile is because of all the people that I met and connected with. It\u0026rsquo;s great to meet up with old friends and make some new ones.\nI am so glad to be able to have a chat with Carol again! She is so so so kind and inspiring and sometimes I feel like there\u0026rsquo;s a queue of people wanting to talk to her. I am glad to be able to \u0026ldquo;get a seat\u0026rdquo; and she is very warm and kind and has given me good advice.\nHaving a bunch of great conversations #JupyterCon2023. Really great to see so many folks and cool stuff.\n\u0026mdash; Carol Willing (@WillingCarol) May 10, 2023 Besides, I have a friend that I have not met in a while - Sandrine who founded Humble Data with me is also organising the conference, she is super busy and we didn\u0026rsquo;t get much time to hang out but we had a good chat during the conference.\nOther conference friends that I have not met for a while are Vishal and Tereza, together with Noa we went for dinner one evening and it was a very enjoyable experience.\nIt was a very nice dinner with Noa, Vishal and @terezaif We eat a lot and laugh a lot - especially when the dessert arrived… It’s a nice #JupyterCon memory pic.twitter.com/U0xdStInls\n\u0026mdash; Cheuk Ting Ho at #JupyterCon (@cheukting_ho) May 11, 2023 It was also great to chat with Pravitha from QuantSight and Sarah who used to work in the Alan Turing Institute. She is also leading the project Jupyter.\nI also had dinner with the PyLadies Organisers, folks in the Scikit Learn team, Matt - code maintainer of Dask and Paul - the developer advocate of Capital One.\nOne more, I met Stephannie, a speaker who\u0026rsquo;s from Colombia, I got a handmade Jupyter ball from her.\n💥 Had a blast at @JupyterCon, thanks to all the organizers and attendees 🤗 pic.twitter.com/qqhWCfcbK3\n\u0026mdash; Stephannie Jimenez (@StephannieJime2) May 13, 2023 Sprints # Since I was trying to use JupyterLite, I found out that some magics do not work as it does in JupyterLab. It brings me down a rabbit hole of looking at the iPython kernel code and JupyterLite code. Jeremy showed me how to see the message getting sent from the Jupyter frontend to the kernel at JupyterLab and how it is replicated in JupyterLite. It is fascinating. I am not sure I will be able to find the problem and fix it but it is a study opportunity for me.\nSelf organising sprints at @CarrNum ! pic.twitter.com/N1mmvojaIz\n\u0026mdash; JupyterCon 2023 (@JupyterCon) May 13, 2023 I also realised that Jeremy is very kind and helpful. A few people are using JupyterLite and needing his help, he just keeps helping people and was so busy at the sprint. I didn\u0026rsquo;t work on any Scikit Learn issues but the person next to me did, he is a new contributor and Guillaume was so patient and give him a one-to-one mentored sprints - walking through all the basics of open-source contribution principles. I wish I can invite them both to the mentored sprint in the future.\nOverall, I had a good time (I think I said that a lot going to Python community conferences) and I think the conference is a success. I made some good connections in the community and learnt some new things.\nThank you the organizing team of @JupyterCon #JupyterCon2023 I really like this conference and thank you for making it happened ❤️ pic.twitter.com/gDMuaFaH9S\n\u0026mdash; Cheuk Ting Ho at #JupyterCon (@cheukting_ho) May 12, 2023 A small episode when I try to get my train home - it was cancelled and I had to sneak on the previous one, I was so scared that I will not be able to get home and got sucked into Paris.\n","date":"15 May 2023","externalUrl":null,"permalink":"/posts/2023-05-15-jupytercon23/","section":"Blog posts","summary":"","title":"JupyterCon 2023","type":"posts"},{"content":"Finally, I have some time to put my thought together and report back everything that happens in PyCon US. It\u0026rsquo;s a huge conference and almost everyone I know is there. It is so easy to be overwhelmed by the conference and time just passes very quickly. I always wish I could stay till the very end of the sprint and it will never end but in reality, we all need to go home and rest. Especially those who worked so hard to make it happen.\n#PyConUS owes so much to the generous people who volunteered this year. You gave out t-shirts, monitored rooms, moved tables, and so many other things. Thank you, thank you, thank you! You\u0026#39;re the absolute best. (Image by Dimitris Siskopoulos: CC-BY-SA 2.0) pic.twitter.com/m0CWgc3mSW\n\u0026mdash; PyCon US (@pycon) April 26, 2023 Tutorial Days # Due to the tight schedule of PyCon DE and PyCon US overlaps, I missed the first day of the tutorials. So the first thing that I do at the conference was to give my tutorial about Numba. I was told that there are 44 people registered and 40 people were attending. I am glad that compare to last year people are more engaging in my tutorial and there are really good interactions. There are good questions from the audience, and people come and talk to me at the end of the workshop. I have made a few good connections because of that.\nIn the afternoon, I go around and say hi to all the people that I have not seen for a while. It is so good to catch up with them. I also went to have coffee with my team, and after that, we all go back to the booth briefing by our colleagues.\n@sophiamyang is doing a demo at @anacondainc booth! #PyConUS pic.twitter.com/uE4uMO1BBY\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) April 21, 2023 In the evening we have the opening party at the expo hall and everyone got a chance to talk to everyone at the booth. We have a very good vibe at our booth and people are coming to talk to us and my colleague is giving a presentation. I also get a chance to talk to the folks at the community booth. Including my friends from APAC who are at the PyCon APAC booth. I also donated to the PyLadies and got a few t-shirts there.\nAt @ThePSF booth #PyConUS pic.twitter.com/X5Mg7yWJ5w\n\u0026mdash; Takanori Suzuki (@takanory) April 22, 2023 Conference days - Friday # The conference days are streaming busy for me as I have to give a talk and also host the lightning talks. I have to also be in the reimbursement room to help folks who are reimbursing their travel grants and honorary.\nAre you ready for @pycon #PyConUS ? pic.twitter.com/p0XqU00UT5\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) April 21, 2023 Before anything started, we have the opening and Mariatta is the sweetest conference chair ever. She introduced all the keynote speakers with a personal touch and she makes sure everyone that helped out are appreciated. With her effort, she makes the conference fun for everyone - including a point-based system for being involved in the conference and contributing to open-source.\n@nedbat is the first keynote speaker of #PyConUS it was a very touching introduction pic.twitter.com/ggiRTWWwaP\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) April 21, 2023 I love the first keynote by Ned. It explains in a developer\u0026rsquo;s language how to interact with a human. It is funny, inspirational and useful for all of us. When I am home I show it to my partner and he loves it as well. A bit more about Ned, he is also a very good teacher in teaching us how to juggle during the open spaces and the sprints.\nOn Mastodon: A juggling open-space at #PyConUS:https://t.co/qo8p4HQueN\n\u0026mdash; Ned Batchelder (@nedbat) April 22, 2023 Before I give my talk in the evening, I only managed to attend one talk in person, that was Zac\u0026rsquo;s talk. I know Zac is a very good teacher and he explains something very complicated - structured concurrency - in a way that I can understand. I am so glad that I will be able to spend some time working with him in the sprints later.\nZac is one of the Pythonistas that I have a lot of respect. Very good talk about structured concurrency at #PyConUS pic.twitter.com/8ZHToE5iR9\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) April 21, 2023 It is nerve-wracking to give a talk at PyCon US in a room with around 300 people also there will be many experts in the field present. The audience included Larry Hastings, someone who is an absolute expert on my talk topic. Another expert that is present was Mike Müller, who is a Python trainer. They all give me valuable feedback on how I can do better.\nThe amazing #PyConUS organizers (hi @loooorenanicole 🤣) prepping for day 2 lightning talks! pic.twitter.com/OnYG7Q9GIx\n\u0026mdash; Chris Williams 🐍 (@mistwire) April 22, 2023 After my talk, I have to run for the lightning talk. Behind the scene, we have to mark down all the signups on the board and then Lorena and I will select the talks based on the title that they give us. This is how it work in the past few years in PyCon US, but it is very difficult to choose the talk just based on the titles. I have seen many different ways of doing the lighting talks, I think there needs to be a balance of not being too rigid but also a certain amount of fairness. Luckily Lorena is very experienced and we ended up with a variety of topics and some of the speakers are first-time attendees to the conference.\nMasked Lightning Talk Speaker #PyConUS (@ Salt Palace Convention Ballroom in Salt Lake City, UT) https://t.co/2fKxoMZ6dl pic.twitter.com/pzRaWAxGdH\n\u0026mdash; Takanori Suzuki (@takanory) April 22, 2023 After the lightning talks, I got a chance to hang out with the folks in PyCon APAC, I got to try out my (not very good) Japanese skills with the folks from Japan. They are all very nice and they could be perceived as a bit shy due to the language barrier but I like talking to them when we have warmed up a bit. I am also glad to be meeting up with Sammy, the organiser from Hong Kong and Alysson from the Philippines. Iqbal had some suggestions for the APAC communities and I am glad that I am welcome into the discussion. We also went to the PyParty afterwards but I was not enjoying it too much as it was very crowded and noisy.\nThe Python Asia community get together dinner at #PyConUS2023 in Salt Lake City. @terapyon @selina787b @cheukting_ho @darjeelingt @achimnol and please tag the rest that I missed. pic.twitter.com/8zFgHjkqnK\n\u0026mdash; PyCon Asia @pyconasia@mtd.pythonasia.org (@pyconapac) April 22, 2023 Conference days - Saturday # The lightning talk session at 8 am is very challenging - some speakers were missing and there were not a lot of people in the audience. Lucky for me that my jetlag tends to make me wake up very early so I have no problem being there early. Maybe we should do Yoga or jogging in the morning next year instead.\nRelax and restore yourself at #PyConUS 2023 with a yoga session. It starts in 30 minutes at 6:00pm MT! pic.twitter.com/qb8FJpL3Xm\n\u0026mdash; PyCon US (@pycon) April 22, 2023 There are panel sessions from the steering council and the D\u0026amp;I committee. I am glad to see that there are more attendees to the DEI panel than last year and everyone at the panel talks about the time they spend just to come to PyCon US, I was touched. I do believe that the Python community should be all connected and we should support each other no matter where you are. We also need a diverse representation of members and leadership in the community. So if you are organising Python-related events or contributing to Python OSS, please self-certify as a managing or contributing member - I am sure you have already contributed more than 5 hours per month and you are qualified. You can also consider donating to become a supporting member . Both the memberships mentioned above have voting rights and you can help pick the future leaders in the community (or become one yourself).\n@ThePSF D\u0026amp;I panel session at #PyConUS pic.twitter.com/B6tqxU2frF\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) April 22, 2023 I skip the morning keynote to help out in the reimbursement session. My job is to welcome people and check them in. It was quiet as most people are in the keynote session. But I got to speak to a few folks and I am glad that we got to support many people with diverse backgrounds to come.\nDuring lunchtime, the room for reimbursement was transformed into the PSF lunch. I think it\u0026rsquo;s a good setting and Phyllis, one of the PSF staff, handles everything so well. There are many familiar faces there including all the PSF staff and the fundamental contributors to the PSF, including Guido himself.\nMentored sprint - introduction by @ixek at #PyConUS pic.twitter.com/8McYa5dPet\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) April 22, 2023 I didn\u0026rsquo;t get to stay at lunch for long as we have the mentored sprints and I need to be there to help out, Tania lead organising it for a few years now and it was always a success. It\u0026rsquo;s an event that is designed for folks who are new to sprint and hopefully, they will learn what is a sprint so they can feel more comfortable joining the sprint - or if they missed the sprint this year they will think of staying for it next year. Of cause, Zac is there and he always got many people sitting at his table. Unfortunately, he said Hypothesis is running out of good beginner issues at the moment for people to work on, nevertheless, I have seen many people learning to use Hypothesis and contributing to the tutorial.\nJuggling fail at open space #PyConUS when you sign up for helping out with too many things pic.twitter.com/NvSBJtfz8w\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) April 22, 2023 The day also ended with a lightning talk session, but the schedule is super tight as Lorena and I are both going to the PyLadies Auction, she is also one of the hosts at the Auction. The PyLadies Auction was super fun as always. This year I got to witness some creative (or crazy) items being Auction off - like Russell doing Tim Tam Slam, a random pen left on the projector, a vinyl recording that is made by the core devs and a PSF-owned MacBook Air with Python design laser edged on it. I have also donated something - two neckties that were given to me by Sammy, I donated them on his behalf. Afterwards, I connect with one of the kind people that win the auction of the tie and he said it was his first time joining PyCon US and the PyLadies Auction. I am so happy that he was having a good time.\nWe\u0026#39;re almost starting the #Pyladies auction. it will be a fun night! Here the team of volunteers ready for the event. 💪🏽💜🐍🐍@pyladies#PyConUS#PyConUS2023 pic.twitter.com/CuZokUYMDN\n\u0026mdash; Denny Perez (@dennyperez18) April 23, 2023 Conference days - Sunday # Sunday kicks off with community announcements - there are so many events coming up in the Python community. Then we have regular lighting talks and then the keynote by Margaret Mitchell, who gave a very good perspective of why we need to talk about ethics in AI.\nCheck out our tools for Ethics in AI at https://t.co/eZLpK4y19a @mmitchell_ai on how you might start looking into some datasets yourself. #PyConUS pic.twitter.com/aq661j8Co7\n\u0026mdash; Deb 💗 💜 💙 #BLM #StopAAPIHate 🐌 (@baconandcoconut) April 23, 2023 I was mostly helping out in the reimbursement room during the job fair, but while I ran around fetching coffee I managed to say hi to Peter our CEO, whom I had known as a phenomenal community member before I join Anaconda. Today we have PyLadies Lunch, as always it is good to be in the same room with a lot of amazing ladies, Selina from Japan give a speach about what she had achieve but she didn\u0026rsquo;t forget to promote for PyCon APAC. There are also ladies from Argintina, they gave a touching speach even though they have to use they phone to help translating. It\u0026rsquo;s a great experience. The whole afternoon I was very tired but at the same time, I was looking forward to Carol\u0026rsquo;s keynote. Therefore I didn\u0026rsquo;t go back to the hotel afraid I would have missed it, instead I was walking around the venue chatting with people.\nSome of the @PyjamasConf fam at the @PyLadies Luncheon! 🥰\ncc. @dennyperez18 @cheukting_ho#PyConUS#PyConUS2023 pic.twitter.com/qv4opKebcw\n\u0026mdash; Lisa Marielle Cooper 💋 (@techylisa) April 24, 2023 Carol\u0026rsquo;s keynote was very heartwarming, she talked about her story, and how we are connecting and building a community. It gave me some insight into our work in the community. Following Carol\u0026rsquo;s keynote, we have Deb gave a talk about the updates from the PSF and the presentation of the awards. Right after, Guido talked about how to use AI to make Python faster the history of PyCon in the last 20 years. As he put it - Grandpa is telling stories when he was young. He talked about all the fun things when PyCon when it\u0026rsquo;s in its early stages. For one time he ordered the same sandwich for every day of the conference. Mariatta gave a very sweet closing, she cries to the Savage Garden music and made a credit video to thank everyone that has contributed to the conference.\nProof that it did happen: Full room of #PyConUS 2023 in Salt Lake City at 5 PM Sunday during conference closing, celebrating 20 years of @pycon\n💖 pic.twitter.com/3zeXJAwhds\n\u0026mdash; Mariatta 🤦 (@mariatta) April 24, 2023 After the closing, I hosted an open space session to talk about the new Cyber Relience Act in Europe. Deb, Jannis and Cheng join me and we talked about the newest development of it. Deb told us she is in touch with a lot of experts in Europe about the issue. This gives me confidence that the PSF is on the case but as a developer working in Europe we also need to be aware of the issue and voice out our opinion when needed.\nSprint days # Sprints are the last thing that happened at PyCon US but it\u0026rsquo;s one of my favourite times at the conference. I got a chance to work with Zac on Hypothesis. In the meantime, I can ask Jannis about conda and Russell about Beeware. I also get a chance to chat with Carol and Kattni. The best break from coding at the sprint was to go and have lunch and an ice-cream selfie with Mariatta, Geogi and Zac. (I think Zac had too much ice cream throughout the sprint as he was invited to go with various groups) Every time we hang out, we have a good idea for Mariatta for the conference next year, I think if we have more ice cream with Maritta the conference next year would have been planned already. Let\u0026rsquo;s look forward to it.\nNever too late to post our #icecreamselfie with @mariatta @cheukting_ho and Zac to get 1 point @pycon US. pic.twitter.com/Uc3ItPOBcM\n\u0026mdash; georgically (@georgically1) April 27, 2023 Before heading home, I got a chance to hang out with Jodie from Jet Brain, we have met multiple times in the past but this is the first time we have had a long chat together. It was really pleasant to get to know her.\nGood bye SLC and thank you for the great #PyConUS Thank you so much for everyone I met, you all are amazing and I have learnt so much. I am glad to be traveling with @t_redactyl back to Europe as well ❤️ pic.twitter.com/wCqKFP06rA\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) April 27, 2023 In general, it was a very fulfilling trip. Going to PyCon US is always a heartwarming experience. Over the years many people are putting efforts to make sure everyone can have a good time at the conference and every one is appreciated no matter what contribution they had to the community and Python and open-source software. I have learnt so much and thank you for the community that provides me with the energy to keep moving forward and all my friends that - from you I found good companionship and support throughout my career. THANK YOU ❤️\nMet Mariia from Ukraine in #PyConUS she gave me a badge of her country’s flag, I gave her a badge that reads “Hong Kong” - we are all connected no matter where you are from pic.twitter.com/3R21v4xl7B\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) April 26, 2023 Become a Member of the PSF: https://www.python.org/psf/membership/\n","date":"2 May 2023","externalUrl":null,"permalink":"/posts/2023-05-02-pyconus23/","section":"Blog posts","summary":"","title":"PyCon US 2023","type":"posts"},{"content":"","date":"2 May 2023","externalUrl":null,"permalink":"/tags/pyconus/","section":"Tags","summary":"","title":"PyConUS","type":"tags"},{"content":" Ok, I lied, I still write tests. But instead of the example-based tests that we normally write, have you heard of property-based testing? By using Hypothesis, instead of thinking about what data I should test it for, it will generate test data, including boundary cases, for you. ","date":"30 April 2023","externalUrl":null,"permalink":"/videos/4kqic6leo54_pycon_sweden_-_i_hate_writing_tests_thats_why_i_use_hypothesis/","section":"Presentation videos","summary":"","title":"PyCon Sweden - I hate writing tests, that's why I use Hypothesis","type":"videos"},{"content":"","date":"19 April 2023","externalUrl":null,"permalink":"/tags/pyconde/","section":"Tags","summary":"","title":"PyConDE","type":"tags"},{"content":"PyCon DE has been joining hands with PyData Berlin since 2019 and it has grown to a conference that is as big as EuroPython over the past years. It\u0026rsquo;s an event that is too hard to miss and of cause, I am back.\nFirst Day # So many attendees at @PyConDE #PyConDE pic.twitter.com/xUF3yvo8nn\n\u0026mdash; Cheuk Ting Ho at #PyConUS (@cheukting_ho) April 17, 2023 In the morning, registration started at 8:30 am, 1.5 hours before the opening sessions. To avoid the huge queue that happened last year, I arrived early to get my badge. Not soon after, the venue is already packed with conference attendees.\nWhole @PyConDE team for the opening 🙌🏻 pic.twitter.com/D5rgFlupEk\n\u0026mdash; Cheuk Ting Ho at #PyConUS (@cheukting_ho) April 17, 2023 This year, there are 1700+ attendees and it reached the maximum capacity. The event is hybrid and there will be online participation, including video streaming and asking questions online via Slido and Discord server to join. When asked how are the first-time attendees, there are 80-90% of people show that they are first-timers. It has been a trend that most attendees are new since the conference came back to the Berlin venue last year.\nAttending conference by @PyConDE for the first time 🚀 The organization is super. I am looking forward for interesting talks and exciting insights about #python #datascience #data#PyConDe #PyDataBerlin pic.twitter.com/3TkNnRgYMr\n\u0026mdash; Sofya Guseva (@SofyaGuseva_) April 17, 2023 Another highlight is that this year European Union is also supporting the conference. I think it is not common that, there are government organisations that have a presence at a tech conference. I like seeing that since open-source technology would be affected by government policies and we need more communication because of that.\nLeah from NumFocus is also here to support PyData Berlin. Every year NumFocus would have a booth at eh conference. Another thing I like about this conference is there is a lot of involvement in PyLadies events.\n#PyLadies and friends at #PyConDE @PyConDE be aware of these events pic.twitter.com/uOFaheSxUU\n\u0026mdash; Cheuk Ting Ho at #PyConUS (@cheukting_ho) April 17, 2023 In the morning, I mostly talk to people at the booths, people that I know and organisers. I also spend some time in the quiet room to prepare my talk.\nAfter lunch, we have our first keynote. In the first part, she talks about using Ren\u0026rsquo;Py for game development. Then she talked about her journey in Machine Learning at Telco. Next is her experience at FinTach. Last, she talked about her role at Electric which takes care of cyber security.\nFirst keynote of #PyConDE @PyConDE by Susan Shu Chang about her rich background in multiple industries using #Python pic.twitter.com/x18uyaR0G4\n\u0026mdash; Cheuk Ting Ho at #PyConUS (@cheukting_ho) April 17, 2023 Then there is a coffee break. The talk before mine is by Emeli about continuous testing of the machine learning model.\nAfter that it was my talk, the room was full and I asked the capacity of the room it was around 100. Unfortunately, I cannot find any pictures on Twitter - people are very serious and take notes during the talk. Generally, it was a very engaging audience.\nAfter my talk, Luis from Stack Builder come talked to me and ask how his company can help contribute to our projects as Anaconda. They are interested in packaging so I said feedback on conda would be nice. We connected on LinkedIn and will follow up if needed.\nAfter that, I head back to my hotel to chill and attend Zoom meetings. When the meetings are done. I had to meet up with others at one Bavaria restaurant nearby. The organising team, the SciKit-lean team and Ines - founder of explosion and creator of spaCy were there. I also catch up with my old friend Alejandro who used to be living in London and had just recently moved to Berlin.\nThere were more of us but these are the last ones still there. It was delightful having a nice conversation with friends - old and new at #PyConDE pic.twitter.com/l6jPJEYxPm\n\u0026mdash; Cheuk Ting Ho at #PyConUS (@cheukting_ho) April 18, 2023 Second Day # The second data kick-started with a keynote by Noa - in which she talked about her perspective on managing a data team. It\u0026rsquo;s refreshing to have a talk that is about career development but not technical things.\nFirst keynote of day 2 - about managing data science team IRL - @PyConDE #PyConDE pic.twitter.com/8mVVE9ezIs\n\u0026mdash; Cheuk Ting Ho at #PyConUS (@cheukting_ho) April 18, 2023 Then the rest of the day is between the hall tract and a quiet room for preparing for PyCon US. I do love both conferences but if there are not happening back to back it would have been much better.\nIf I am not working, I spent a lot of time socialising in the hallway. Especially when my friend Autur arrived. Even though I was busy, I managed to attend Valerio\u0026rsquo;s talk about PyScript.\n@leriomaggio is talking at @pyscript_dev at @PyConDE #PyConDE pic.twitter.com/pcHQqssGPy\n\u0026mdash; Cheuk Ting Ho at #PyConUS (@cheukting_ho) April 18, 2023 I volunteered to host the Lighting Talks with Miro, a very talented friend who is a polyglot and also the keynote speaker the next day. We have prepared some tricky Python questions to ask the audience while the talks are switching. It was fun and there were some awesome lightning talks as well. I also gave a lightning talk about CRA - I am raising awareness of it because I think it will be GDPR 2.0 and why there aren\u0026rsquo;t more developers talking about it?\n@condaforge lighting talk at @PyConDE #PyConDE pic.twitter.com/YpU9dxNLVA\n\u0026mdash; Cheuk Ting Ho at #PyConUS (@cheukting_ho) April 18, 2023 In the evening it was the social party sponsored by Octopus, everything becomes pink and there are Octopus everywhere in the hall. There were refreshments and doughnuts.\nAfter the social event, we went out for one last drink. At our table, there were a few newcomers to the conference and it seems they are having a good time. My friend Martin and Martin (yes there are two of them) and I was giving them tips on how to make the best use of the conference to meet people who are learning more Python. I love seeing new people at the conference.\nI missed the Third Day :( # Unfortunately, I have to give the third day of PyCon DE a miss because it is the travel day to PyCon US. There are some attendees and friends of mine who are also going to PyCon US on the same flight. The journey is so much more enjoyable (or more tolerable depending on how you look at it) when you have friends travelling together.\nHowever, my friend Martin sent me a picture of PyCon DE on day 3. I was mentioned at Jürgen\u0026rsquo;s talk. I feel so honoured. Everyone\u0026rsquo;s very kind to me.\nThank you @jugmac00 for mentioning me at his talk at #PyConDE! I was on my way to #PyConUS but I will definitely watch it later ❤️ and yes I love Tox pic.twitter.com/LnlRixVKTV\n\u0026mdash; Cheuk Ting Ho at #PyConUS (@cheukting_ho) April 20, 2023 I cannot agree with this tweet more, PyCon DE is an awesome conference.\nThere\u0026#39;s SO many reasons why @PyConDE is a GREAT conference. On top of the community, vegan veggie delicious catering, sustainable setup, child-care, gender neutral bathrooms, inclusive language, riddles to integrate people, diverse topics \u0026amp; speakers... so much 🥰 pic.twitter.com/vsKzeIMAgH\n\u0026mdash; Paloma Oliveira (@pcultural) April 20, 2023 Follow PyCon DE:\nWebsite | Twitter\n","date":"19 April 2023","externalUrl":null,"permalink":"/posts/2023-04-19-pyconde23/","section":"Blog posts","summary":"","title":"PyConDE and PyData Berlin 2023","type":"posts"},{"content":"","date":"19 April 2023","externalUrl":null,"permalink":"/tags/pydataber/","section":"Tags","summary":"","title":"PyDataBer","type":"tags"},{"content":" After learning doing in Python, we started multiple Python or Data Science projects. Dependency management becomes a skill that we need to avoid requirement conflicts amount projects. In this talk, we will learn how dependencies management tools work and how to choose the right one to use. ","date":"12 April 2023","externalUrl":null,"permalink":"/videos/rfz5bm-ag1m_pycascades_2023_-_untangle_python_spaghettis_-_deep_dive_into_environment_management/","section":"Presentation videos","summary":"","title":"PyCascades 2023 - Untangle Python Spaghettis - Deep Dive Into Environment Management","type":"videos"},{"content":"It has been a while since I have been to Limerick for PyCon. It was supposed to come back after the pandemic last year but unfortunately, last year they have to cancel the event. So what\u0026rsquo;s the rebooting of the conference this year be like?\nPyCon Limerick! #PyConIe #PyConLimerick pic.twitter.com/SnLxiJVJO9\n\u0026mdash; Python Ireland (@PythonIreland) March 25, 2023 Morning # I arrived the day before and stay in the hotel where the conference is happening. In the morning, I met the organisers at the breakfast table. They have problems with some speakers who cannot make it to Limerick so there will be some remote talks.\nIt\u0026rsquo;s a slow start in the morning, there\u0026rsquo;s no official opening so I arrived at the registration before the first talk started. I was glad to meet some of my friends in Ireland.\nGlad to see some familiar faces #PyConLimerick @PythonIreland pic.twitter.com/JR8YQ9PvYE\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) March 25, 2023 I attended a talk about hyper-modernising Python code, this is the first time I heard about this term but basically, that summarises the modern standard of Python projects.\nMorning talk time at #PyConLimerick about Hyper-modernising Python code base pic.twitter.com/GXzR4Q4Z54\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) March 25, 2023 Then I tried a remote talk about managing the open-source communities. I got some inspiration from it, especially the champion program part.\nRemote talk at #PyConLimerick about managing open source communities pic.twitter.com/Sf2YNfuOxv\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) March 25, 2023 There is also a talk about the security breach of some big companies. From what they did wrong we learnt how to better protect ourselves and our projects. The main take away, don\u0026rsquo;t hardcore any secrets from the start.\nWe have a talk about how to think like a hacker to avoid hackers at #PyConLimerick @PythonIreland pic.twitter.com/36GFKkSJBU\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) March 25, 2023 For lunch, we are on our own, but most of us take the advantage of the hotel restaurant downstairs. The organisers book several tables for us in advance as the restaurant gets quite busy later for the ruby game. It\u0026rsquo;s nice to be able to chat with folks from the conference at the lunch tables.\nAfternoon # Right after lunch is my talk. I was given 40 mins for the talk but seriously I do not have that much to say. So in the end it ended up as a discussion about what tricks we do to test things better. Everyone shared their ideas. I am glad that it ended up becoming an interesting session because of the enthusiasm of the attendees.\nYou can watch my talk here:\nThen there is a talk about real-time analytics. To be honest I was too tired to focus on the talk after many interesting talks.\nReal time ML analytics talk at #PyConLimerick @PythonIreland pic.twitter.com/AJWuYu77ZH\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) March 25, 2023 After that, since I was too tired to listen to more talks, I spent some time catching up with friends and talking to some organisers:\nI have a flight to catch so I leave after the last talk got wrapped up. All in all, it was a small but nice conference. All the attendees are very passionate about the topics and are very engaging.\n","date":"26 March 2023","externalUrl":null,"permalink":"/posts/2023-03-26-pyconlimerick23/","section":"Blog posts","summary":"","title":"PyCon Limerick 2023","type":"posts"},{"content":"","date":"26 March 2023","externalUrl":null,"permalink":"/tags/pythonireland/","section":"Tags","summary":"","title":"PythonIreland","type":"tags"},{"content":" We all know that we need to write tests, some of you may even practice test-driven development. Pytest provides lots of tools for you to write better tests, however, not all of them we are familiar with. Let's revisit them and see how they can be used to write better tests. In this talk, we will visit some valuable tools in Pytest, for example, parameterize, fixture and xfail. All of them provided what problem these tool is trying to solve, an example use case and an example code. The talk will be conducted in a storytelling kind of way, with an example project and writing a test suit to test different features in the project. The goal of this talk is to give beginner code a head start in improving their ability to write meaningful and complex tests. This talk is for beginner programmers and data scientists who can write Python code and know the basics of testing but have yet to get their hands dirty in writing complex tests that, for example, involve an external application, which will require extra tools from Pytest to achieve that. ","date":"25 March 2023","externalUrl":null,"permalink":"/videos/pxabsoecl5e_pycon_limerick_23_-_dont_just_test_my_friend_test_better/","section":"Presentation videos","summary":"","title":"PyCon Limerick 23 - Don't just test, my friend, test better","type":"videos"},{"content":"","date":"21 March 2023","externalUrl":null,"permalink":"/tags/pycascade/","section":"Tags","summary":"","title":"PyCascade","type":"tags"},{"content":"PyCascade is not as huge in number as other conferences, but there\u0026rsquo;s something special about it. Let\u0026rsquo;s find out!\nThe day I arrived, it is the day before the conference. One of the sponsors, Microsoft, was so nice to host the pre-conference social for all the attendees. It also doubles as an early check-in for the conference. I was glad that I check-in early as the proof of vaccination is required to be within a year\u0026hellip; as someone from the UK and not in a vulnerable group, I was not offered a vaccination against COVID since 2021. (And going private was not an option last time I checked). So the only option is to get a certified RAPID test, which another British speaker and I managed to get from a nearby hotel (they sent everyone there, business must be good for them that day lol). Later one of the organisers explained why they have that policy in place, I think it\u0026rsquo;s fair, for me it is more like a cultural shock. In the UK most of us already forgot the impact of COVID on people, which I don\u0026rsquo;t know if it\u0026rsquo;s a good thing or not. We remained masked for most of the conference as well, which is fine by me, I spent a week in Japan before so it\u0026rsquo;s natural for me to wear a mask all the time.\nbehind the scenes setup the night before PyCascades 2023 Conference 👋 pic.twitter.com/4nH3TYRXol\n\u0026mdash; Thx for joining us at PyCascades 2023!!!! 🥳🎊🍃🌄 (@pycascades) March 18, 2023 In the social we have Mexican food, for me, it tastes good. I had a good chat with a few of the attendees. Some celebrities in the community, such as Guido, are also among the attendees. Since it is not the first time I met Guido at Python conferences so I was not too surprised. Not the same case for some attendees who have attended a Python conference in the US for the first time, they usually go up to him and greet him. Guido said it is funny that everyone knows him but he does not know everybody, I agree that is it quite an awkward feeling being famous. But he treats everyone equally and seems he has not had much trouble blending in after a while. We even have a nice discussion about quantum computers and other sci-fi-like topics.\nDay 1 # I arrived on time for the conference on the first day. There is coffee ready for the attendees. The conference offered refreshments during breaks but for lunch, we have to go out to have it on our own, which is not a problem as we form lunch outing groups on our own.\nCoffee and registration ready at @pycascades pic.twitter.com/86yur9OMCL\n\u0026mdash; Cheuk Ting Ho at PyCascade (@cheukting_ho) March 18, 2023 I tried to attend most of the talk on day 1, there are a few interesting talks in the morning. First, we have a very nice talk about Python syntactic sugar by Brett Cannon.\nFirst talk @pycascades is by @brettsky about Python syntactic sugars 🍬 pic.twitter.com/Oo0duHqrKC\n\u0026mdash; Cheuk Ting Ho at PyCascade (@cheukting_ho) March 18, 2023 We also have Ricky talk about the inner working of CPython, which is a very beginner-friendly talk for people who are interested in what happened to their Python code when executed.\nAfter the break, there’s more talks @pycascades Here’s one by @coolandsmartrr about the inner working of Python code pic.twitter.com/2r4uwjRxvv\n\u0026mdash; Cheuk Ting Ho at PyCascade (@cheukting_ho) March 18, 2023 PyCascade also offers silence viewing (with caption) at another theatre, taking advantage of the fact that all the talks are live-streamed for remote participants. I like the idea.\n@pycascades support silence viewing 🤫 here is the talk by Sarah Kaiser about Spotless Development Environment pic.twitter.com/0oWmJU6RRL\n\u0026mdash; Cheuk Ting Ho at PyCascade (@cheukting_ho) March 18, 2023 For lunch, I follow Mariatta and her family to have Malaysian food. The Hainan chicken was really good. As there\u0026rsquo;s a huge Asia population in Vancouver the Asian food there seems better than what London has to offer.\nAfter lunch, I met Denny and her husband Andres, my friends who helped out at Pyjamas. I am so glad to meet them in person finally!\nWe had this excellent shot at @pycascades photo booth today.😊 I\u0026#39;m so excited to network in person with these great people from the #Python community.🐍💜 🇨🇦#PyCascades2023@pycon pic.twitter.com/Pz9QYWbhFU\n\u0026mdash; Denny Perez (@dennyperez18) March 19, 2023 The last talk of the conference was about the tricky thing of Zen of Python. It is a very interesting talk, especially for beginners that took the Zen of Python as rules for everything.\nLast talk of the day @pycascades is about the (not so) zen of Python 🐍 by @chrisjrn pic.twitter.com/ymFEPOjIHR\n\u0026mdash; Cheuk Ting Ho at PyCascade (@cheukting_ho) March 18, 2023 And that\u0026rsquo;s day 1, after that, I did a tech check for my talk the next day then I head back to the hotel and wait for my cousin to pick me up for a family dinner. I have not met my uncle and some of my cousins for years and it\u0026rsquo;s good to grab this opportunity to meet them.\nDay 2 # On day 2, there is a lightning talk session at the beginning. There were quite a few interesting talks, including a talk about computational literacy, equity, and digital accessibility by Tonyfast. Mariatta also gives a talk about PyCon US and we should submit our memories for it.\n@mariatta is telling us to join @pycon this year! pic.twitter.com/Ni2zecsaxH\n\u0026mdash; Cheuk Ting Ho at PyCascade (@cheukting_ho) March 19, 2023 Then I find a quiet place to prepare my talk. I headed to the green room before my talk and when it was time, the organiser and session host bring me to the room where I will be presenting. When I plugged in my computer, the unexpected happened: my screen is not mirrored but extended. It took me by surprise as it was mirrored the day before when we checked. So I have to do a presentation with live coding with my head turning to face the projected screen. It was a challenge especially I cannot see where the mouse was most of the time. Luckily the audiences are supper supportive and the talk ends up being well.\nLooking forward to @cheukting_ho\u0026#39;s talk, \u0026quot;Untangle Python Spaghettis - Deep Dive Into Environments and Dependencies Management\u0026quot;? Sound off in the comments!#PyCascadeshttps://t.co/CfG7OIy8t2 pic.twitter.com/VK6Myh4L97\n\u0026mdash; Thx for joining us at PyCascades 2023!!!! 🥳🎊🍃🌄 (@pycascades) March 11, 2023 After that it was lunch time, I headed to the pub next door for a traditional Canadian poutine with Ricky, another speaker from Japan. We realised we were on the same flight from Tokyo to Vancouver the day before the conference.\nAfter lunch, I have to go to my hotel room for a nap\u0026hellip; all the jet lag and travel have caught up to me and I need more sleep. It was a struggle to get back up but I managed to attend the closing of the conference. It was quite an emotional moment as the organisers had put in a lot of effort to make it happen and I appreciated that.\nAwww it’s the end of @pycascades pic.twitter.com/8dYg540Sjs\n\u0026mdash; Cheuk Ting Ho at PyCascade (@cheukting_ho) March 20, 2023 For dinner, I was invited by Mariatta to have dinner at her place. It was very nice, the food was nice and it is a very cosy dinner with her friends. We all have a very fun time chatting and having good laughs. I am sure I will meet most of them in Salt Lake City during PyCon US next month again.\nSprint # Join our in-person PyCascades Sprints projects! 💻🚀🌄 pic.twitter.com/V2IKXzM1pv\n\u0026mdash; Thx for joining us at PyCascades 2023!!!! 🥳🎊🍃🌄 (@pycascades) March 20, 2023 The last day of the conference is the sprint. I love attending sprints however, I know that I do not have capacities to contribute this time as work has been piling up. So I opted to sit on the side to catch up with some work. I also got a great chance to chat with Kojo about his experience in China and Hong Kong before. I love this conversation and can\u0026rsquo;t wait to have more when we meet again in the future.\nMeet the organisers:\n","date":"21 March 2023","externalUrl":null,"permalink":"/posts/2023-03-21-pycascade23/","section":"Blog posts","summary":"","title":"PyCascade 2023","type":"posts"},{"content":"My first time speaking at DevRelCon would be in this amazing city! I have always wanted to visit Japan again and this year. DevRelCon in Japan would be in Yokohama.\nI’ve enjoyed unofficial speakers dinner #DevRelCon pic.twitter.com/gDX34edfx0\n\u0026mdash; Atsushi@MOONGIFT (@goofmint) March 9, 2023 I arrived the evening before the event, and catch some of the speakers after they have dinner and we went to a mega-store - Don Quijote for late-night shopping. I almost forgot how convenient major Asian cities are and there are still many people walking around when it\u0026rsquo;s 10 pm.\nDay 1 # The conference started at mid-day, so before the conference, I had a huge breakfast at the hotel with other speakers and then wander around town a bit.\nBreakfast with @DevWithTheHair @virtualized6ix @cheukting_ho pic.twitter.com/7tUk3IUhh2\n\u0026mdash; Avie Dojo🇵🇭🇯🇵 (@AvieDev) March 12, 2023 Then we have some light food and then head to the conference.\nWe have quite an interesting lineup of speakers on the first day. First, we have a Keynote by Jun Fujita who talked about the uniqueness of the Japanese market. One thing that I agreed with the most is the localisation need.\nFirst keynote by Jun Fujita about the Japanese market @DevRelConTokyo pic.twitter.com/69Ub1tVA6F\n\u0026mdash; Cheuk Ting Ho at DevRelCon Yokohama (@cheukting_ho) March 10, 2023 Then we have Joel, who talked about his practice in approaching conferences. It\u0026rsquo;s a useful reference for our strategies in the future.\nNext we have a meta presentation about presenting by @joel__lord at @DevRelConTokyo pic.twitter.com/IidlAZusg5\n\u0026mdash; Cheuk Ting Ho at DevRelCon Yokohama (@cheukting_ho) March 10, 2023 We also have Kim Maida talk about a highly quantifiable metric to measure DevRel values - Keystone DevRel Metrics. It\u0026rsquo;s worth sharing with the team.\nNext we have @KimMaida talking about how to measure DevRel values @DevRelConTokyo pic.twitter.com/lQao3cAmVi\n\u0026mdash; Cheuk Ting Ho at DevRelCon Yokohama (@cheukting_ho) March 10, 2023 Marino talked about how to learn in public. It inspires me to do more streaming again.\nAfter the break we have @virtualized6ix talking about learning and sharing in public @DevRelConTokyo pic.twitter.com/R2wGU8h1Jy\n\u0026mdash; Cheuk Ting Ho at DevRelCon Yokohama (@cheukting_ho) March 10, 2023 After that, we have the speaker dinners, since it is a joint event with DevRel Japan, we have a mix of international speakers and local speakers. We all socialise together despite the language barrier.\nFolks \u0026lt;3\nCannot believe Day 1 is already over💕@DevRelConTokyo pic.twitter.com/SfTa1Ne3Nn\n\u0026mdash; Alenka🇯🇵 @llamakarl@hachyderm.io (@gingy_love) March 10, 2023 We all have a fun night. After a short break at the hotel and doing some work, I was invited to a Karaoke party.\n@DevRelConTokyo speaker dinner is 🎊👍🏻🥰 pic.twitter.com/DQRIfRUJiP\n\u0026mdash; Cheuk Ting Ho at PyCascade (@cheukting_ho) March 10, 2023 Day 2 # On the second day of the conference, we have only one track in the morning so I didn\u0026rsquo;t miss any talks.\nFirst, the keynote is about how Google is doing DevRel in Japan.\nStart of day 2 of @DevRelConTokyo we have keynote by @taquo from @Google Japan about develop ecosystem in Japan pic.twitter.com/sX3lkjDkf5\n\u0026mdash; Cheuk Ting Ho at PyCascade (@cheukting_ho) March 11, 2023 Then, we have Caroline talk about the Developer Journey Map, she encouraged us to play Bingo during her talk and there was a book giveaway.\nAfter lunch we have @CarolineLewko with her Star War skirt talking about Developer Journey @DevRelConTokyo pic.twitter.com/Wf7zjaKYbU\n\u0026mdash; Cheuk Ting Ho at PyCascade (@cheukting_ho) March 11, 2023 At lunch, we have the option of sandwiches, mini burgers or bento boxes. I don\u0026rsquo;t even have a second thought and go straight to the fancy-looking bento.\nランチタイムは美味しいお弁当をお楽しみください！#DevRelJP pic.twitter.com/rWTE8wF76W\n\u0026mdash; DevRel Meetup / 定期イベントは11月2日、カンファレンスは3月10〜11日 (@devrelTokyo) March 11, 2023 Lunch at @DevRelConTokyo full filled my fantasy for bento 🍱 pic.twitter.com/uyGjDdwzAM\n\u0026mdash; Cheuk Ting Ho at PyCascade (@cheukting_ho) March 11, 2023 After lunch, we split into 3 tracks and in the Suntory tract, have more talks before mine. For example, Hannah talked about the pain to get her company to approve using Meetup.com for organising community events.\nNext we have @palindromeotter talking about DevRel tools @DevRelConTokyo pic.twitter.com/b8gSyY3KsM\n\u0026mdash; Cheuk Ting Ho at PyCascade (@cheukting_ho) March 11, 2023 And Salih talked about how to create suitable content for everyone.\nNext we have @salihgueler talking about Creating Content For Everyone @DevRelConTokyo pic.twitter.com/9hG7mzs9J9\n\u0026mdash; Cheuk Ting Ho at PyCascade (@cheukting_ho) March 11, 2023 Then it\u0026rsquo;s my talk. It is very nervous as the topic that I talked about is very controversial - about the pitfall of a very popular event. The representative was sitting in the audience so I may get some interesting questions at the end. luckily the questions that I was given were very good and I was very careful to present the topic purely from the perspective that we want to make the open-source community better. The talk was recorded (to be published).\nAfter the break @DevRelConTokyo it will be my talk ❤️ exciting pic.twitter.com/1G2SZ3kb4o\n\u0026mdash; Cheuk Ting Ho at PyCascade (@cheukting_ho) March 11, 2023 After my talk, there are a few more talks before the closing. One of them is by two Japanese speakers from the Jagu’e’r community (a community supported by Google Cloud) who dressed up as Pokémons.\nLast of today @DevRelConTokyo we have @ryoo_aki and @tmassh (not Pokémon) from Jagu’e’r community presenting pic.twitter.com/hrtBT1KKkF\n\u0026mdash; Cheuk Ting Ho at PyCascade (@cheukting_ho) March 11, 2023 After that, we have to move to another room for the closing, we also took a group photo (which was a challenge as the room is small and we have quite a big crowd). Everyone cooperated to get the picture taken as we cannot wait for the after-party.\nThank you everyone for the great conference, especially for the organisers @DevRelConTokyo pic.twitter.com/COeOe0w6TT\n\u0026mdash; Cheuk Ting Ho at PyCascade (@cheukting_ho) March 11, 2023 Group photo at #DevRelCon Yokohama 2023 \u0026amp; #DevRel/Japan CONFERENCE 2023. Thank you for participate everyone! See you next year! https://t.co/bNhwwSwhJ1 pic.twitter.com/fWk54nIBDr\n\u0026mdash; DevRelCon Yokohama 2023 (@DevRelConTokyo) March 12, 2023 What is not expected is that, when the conference is finished, it is followed by a lot of after-parties. First, on the 3/F floor of the same building. We have lots of food and slides Karaoke - you are given 5 random pictures and a random topic to do an improvised presentation. After a few drinks, I volunteer to do it\u0026hellip; in Japanese. I finish my very random talk with very limited Japanese\u0026hellip; but the magic happened, other local attendee start talks to me, in some English and some Japanese. I feel that I have gained their respect by trying. They start asking me questions about why I come to Japan, everyone is very friendly and we had a good chat.\nSince I am super tired and with the influence of the alcohol I decided to be wise and head to my hotel for a short break. I have heard there will be real Karaoke after the party (again!) so I need that rest. After a short rest and a coffee, I head to the Karaoke place and the room is full of people - there are more than 20 of us. I was told later that Karaoke place double as a co-working place\u0026hellip; it only happens in Japan (p.s. I later found another co-working place that offers a sauna as well\u0026hellip; only in Japan). Any songs can be popping up on the screen - Japanese songs (including anime songs), English/ American pop classics. The atmosphere is very nice and everyone is very friendly and supportive. I have been to Karaoke in many countries but in Japan, they cheer for anyone who was singing whenever a song finishes. It was a wonderful experience.\n#DevRel Karaoke is starting!! #DevRelCon pic.twitter.com/0jdBSrd2d7\n\u0026mdash; Atsushi@MOONGIFT (@goofmint) March 11, 2023 After that after party, there is another one\u0026hellip; although the number of people joining drastically drops. We went to a typical Japanese Izekaya where we have gotten standing tables. We drank a bit more and have Izekaya snacks. The one I like the most is Kakitori (grilled chicken). My new Japanese friends are more talkative after a few more drinks and Ryota mention that his presentation partner Toshi didn\u0026rsquo;t speak English before and now he is chatting with us in English. I think the same goes for my Japanese. I am so glad that we can learn from each other.\nOther events in Japan # Because PyCascade is in Vancouver next week, I think it makes more sense for me to stay in Japan for a few more days rather than going back and forth for one more 10-hour long flight. But I do not waste any time when I am in Japan. I want to meet up with my friends and explore the tech industry here a bit more.\nInfobip meet up at IDEO # It\u0026rsquo;s a meetup run by Infobip. Some of their DevRels are in town for DevRelCon so they grab this opportunity to have a meetup at their Tokyo office. Most attendees are expected and some of them are looking for a new role. There are around 30 people in the room. The penal session centred around startups in Japan and it was interesting knowing how different the Japanese industry is different from Europe.\nPanel session pic.twitter.com/JNQ4zuNBkO\n\u0026mdash; Cheuk Ting Ho at PyCascade (@cheukting_ho) March 13, 2023 Speaking at Le Wagon # I was invited by my friend to speak at the career fair at Le Wagon, where they trained people who want to change their careers in the tech industry. The school itself originated in France. The atmosphere there is very western. Everyone speaks English and the office/ learning space looks just like any shared office in London.\nI gave a talk about open-source software, what is it and why contributing to open-source can benefit someone like students, who are changing careers.\nI also got a chance to meet up with Iqbal, the organiser of PyCon APAC in Japan. It\u0026rsquo;s good to catch up with him to talk about the community. I feel like now I am part of the APAC team as well.\n@cheukting_ho addressing the new comers to our industry and introducing the wonders of open source. Among the questions asked were, \u0026quot;why would big companies do open source\u0026quot; and \u0026quot;do you get people who ignore the code of conduct\u0026quot; or thereabouts. pic.twitter.com/L9jQuL2byE\n\u0026mdash; Iqbal Abdullah 🇯🇵 🇲🇾 🇪🇪 (@iqbalabd) March 14, 2023 Datadog x Contentful Meetup at WeWork Tokyo # After speaking at Le Wagon, I went to the meetup at WeWork Japan. It looks just like any other WeWork we have in London but the decoration are Japan-themed. This time the meetup is smaller, maybe around 15 people at the end. But we have a good chat and again most of the attendees are expected attendees of DevRelCon.\nWe got a successful the first time meetup event #Datadog and #Contentful 🎉\nThank you for attending the event! And see you again soon! pic.twitter.com/5gd8GWgevs\n\u0026mdash; Taiji (@taiponrock) March 14, 2023 Both speakers are speakers at DevRelCon and I guess that also explains the collaboration between Datadog and Contentful.\nNext talk is by @taiponrock at #datadog pic.twitter.com/wxJk34GpJB\n\u0026mdash; Cheuk Ting Ho at PyCascade (@cheukting_ho) March 14, 2023 Meetup with a future colleague # Before I head to the airport to PyCascade, I managed to get in touch and meet up with our future colleague in Japan. We went for a coffee and chat a lot. He is a very nice person and I cannot wait to work with him closely when he officially joins.\nIt has been a very busy trip. There is so much going on and all the speakers are ready to socialise so I spent a lot of them meeting and socialising with new and old friends, especially the organisers in Japan, who are so hospitable and bring us to many places including local Izakaya and Yakineku places. Can\u0026rsquo;t wait to see them again at other events.\n","date":"17 March 2023","externalUrl":null,"permalink":"/posts/2023-03-17-devrelconjp/","section":"Blog posts","summary":"","title":"DevRelCon Yokohama","type":"posts"},{"content":"I am finally back in this beautiful country and meeting all these awesome people at PyCon Namibia!\nDay 1 # After a long flight that lasts more than 10 hours from London to Frankfurt and then Windhoek, I finally set foot in this beautiful country again! I was super tired but I cannot wait to meet everyone at the conference, so once I am done with everything at the airport, I head to the conference directly.\nHello Namibia 🇳🇦 we are on our way to @PyConNA pic.twitter.com/gbTcFbRi8T\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) February 21, 2023 When I arrived, I was so happy to meet friends that I have not seen for 3 years. They are just having a tea break and were chilling by the pool. After registering, there is Juan-Luis\u0026rsquo;s workshop - he was teaching some beginners level Python.\nJuan-Luis is giving a workshop @PyConNA pic.twitter.com/5tfvzikTfR\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) February 21, 2023 Then it\u0026rsquo;s lunch, we are eating by the pool, the environment is very nice. I was a bit tired so I have not got many opportunities to talk to other conference attendees except Juan-Luis who was sitting next to me. Will try better tomorrow.\nHaving lunch by the pool @PyConNA - very unique to this conference 🇳🇦 pic.twitter.com/OqLRkooOiD\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) February 21, 2023 After lunch, I only stayed for a bit as I was so tired after the overnight flight. I went back to the hotel a bit earlier and then have our team meeting.\nAfter resting for a bit, I went to have dinner and then a social drink with the speakers. We went back to the place where we performed at an open mic night back in 2019. However, this time there aren\u0026rsquo;t any open mics and we just chill and drink.\nA very intentional drink last night with speakers of @PyConNA from everywhere (+1 random friendly folk from Switzerland) pic.twitter.com/MddooB2PQG\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) February 22, 2023 Day 2 # Today is the day we have the Humble Data workshop. But before, there are talks that are related to starting a career in technology and the attendees are very keen to ask questions in the panel session.\nMeet the panel at career panel session @PyConNA pic.twitter.com/DXqe2A4WXP\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) February 22, 2023 During the breaks and lunchtime, we tried to help as many participants to get the workshop materials and Anaconda installer copied over to their computers and start installing Anaconda (if they have not got it installed yet). Then after lunch, we have the Humble Data workshop. My friend John is showing how to open Anaconda navigator and explored some of the tools that are offered in Anaconda distribution. In the meanwhile, I troubleshoot for some folks who have trouble installing.\n@PyConNA At a moment busy installing anaconda software with @cheukting_ho ,it was really a great chance of learning how to use anaconda software and cope python with through anaconda 🤗 pic.twitter.com/NYaL7UnGM7\n\u0026mdash; 02_luxury01 (@enias_jonas) February 23, 2023 Then we started, after a brief introduction, participants work in groups and they are all using Jupyter notebook to learn Python. The portion of participants, including the students, who are absolute beginners in Python is quite high. And most of them got through the first chapter of the workshop and learnt all the Python basics. We also had a fun quiz at the end and everyone was having a good time.\nAfter that, the organisers invited the speakers for dinner to sample some local cuisine. On the menu, some food is unique in Namibia including Mopani (a type of worm) and Smily (goat head). I was loving it but for some speakers who are from Europe the best things for the night are spinach and fish.\nThank you @PyConNA organisers (including our camera man) for the amazing speaker dinner! I love it 🥰 pic.twitter.com/NrZ8qx9fRf\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) February 22, 2023 Day 3 # When I arrived at the conference, the talks in the morning has already started. So I just chilled with some organisers by the pool. After the coffee break in the morning, I attended a few talks.\nAndreea is talking about what is Data Science @PyConNA pic.twitter.com/57v7NJ7Kmy\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) February 23, 2023 After listening to the opening of John\u0026rsquo;s talk, I was summoned to the recruitment session to talk about Anaconda. We are not hiring in Namibia right now so I just briefly mention our company culture and that we support open-source projects.\nRecruitment session @PyConNA pic.twitter.com/HtIOuKve5p\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) February 23, 2023 After the recruitment session, I sat down to prepare my talk, it is right after lunch.\n@cheukting_ho first afternoon session @PyConNA pic.twitter.com/zgEbTK7Usz\n\u0026mdash; Ronald Maravanyika (@ronn_zw) February 23, 2023 After my talk, there will be a workshop about Diátaxis documentation framework by Daniele. I have been to the workshop more than once, I am a big fan.\n@evildmp is giving a #Diátaxis workshop about documentation @PyConNA pic.twitter.com/qHaBXNjoLF\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) February 23, 2023 During the tea break, I was lucky to meet the chef that made us yummy cakes during the tea time. Some girls even ask her for her secret recipes.\nWe have amazing cakes during the tea time @PyConNA salute to the chef 👩‍🍳 pic.twitter.com/4xsWof2wzm\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) February 23, 2023 After the tea break, there are a few more talks, then it is the lighting talk and the closing. Thank you so much to the organisers for the amazing conference! I hope I will be back once again in the future.\n“The end” it’s sad to say goodbye 👋 @PyConNA thank you so much for the organising team ❤️ pic.twitter.com/778rPc0xno\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) February 23, 2023 See some people that I met at PyCon Namibia:\n","date":"23 February 2023","externalUrl":null,"permalink":"/posts/2023-02-23-pyconna23/","section":"Blog posts","summary":"","title":"PyCon Namibia 2023","type":"posts"},{"content":"","date":"23 February 2023","externalUrl":null,"permalink":"/tags/pyconna/","section":"Tags","summary":"","title":"PyConNA","type":"tags"},{"content":" Untangle Python spaghetti - a dive into environments and dependencies management Once we get started in Python, dependency management becomes a skill that we need to avoid requirement conflicts amongst projects. In this talk, we will learn how dependency management tools work and how to choose the right one to use. ","date":"23 February 2023","externalUrl":null,"permalink":"/videos/pcohakcn1xq_untangle_python_spaghetti/","section":"Presentation videos","summary":"","title":"Untangle Python spaghetti","type":"videos"},{"content":"It has been 4 years since I gave a keynote at PyCon France, they are welcome to be back with open arms!\nDay 1 - Sprint # I took the first flight in the morning and arrived around 10 am, the orientation of the sprint has already started. All projects are giving presentations and many of them are trying to speak in both French and English. I appreciated that. After the presentation, we all break out into different rooms to work. But before that, I got some coffee - the organisers gave us light refreshments and coffee. Seems they know I need coffee to function!\n@pyconfr sprint orientation, half of it is in French… I am not good enough at French to understand so I got a “I speak English” flag. Will get better next year! pic.twitter.com/6akFc0OyRw\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) February 16, 2023 However, as I still got work to do, after chatting with some friends and maintainers, I have to sit down in a corner to catch up on some work. But I managed to grab lunch with some folks that are sprinting and we sit outside to enjoy lunch and the nice weather - I do not miss London regarding the weather.\nAfter lunch, I did a bit more work and then went to check in at the hotel. I took a nap as I woke up at 3 am to catch my flight. After my Zoom meeting later that day, I head out to meet up with my colleague and friends for drinks and dinner. It was fun.\nHad a blast yesterday for a drink with the folks @pyconfr pic.twitter.com/ZDdrdIg78P\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) February 17, 2023 Day 2 - More sprinting # I tried to wake up early but when I arrived at the venue, it was already 10 am when I got there. But people are still chilling at the breakfast table, so I guess I was not late.\n@pyconfr was so nice to give us light breakfast and bottomless coffee for the sprinters ❤️ pic.twitter.com/ytRAKPQYTS\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) February 17, 2023 After that, I went back to the sprint rooms to work. But then I met Victor again! But he is busy helping the sprint with translating the official Python documentation to French. So he went there. I tried to finish as much work as I can then I headed to the city centre for lunch. This is my second time in Bordeaux but I have never seen the city in daylight! So I grab this chance to have lunch there and have a walk in the city.\nLes esprits bouillonnent à la PyConFR ! pic.twitter.com/zyRfaDTbq6\n\u0026mdash; PyConFr (@pyconfr) February 16, 2023 In the evening, my colleague Sophia and I were having dinner together. It\u0026rsquo;s nice to hang out with your team once in a while.\nDay 3 - Conference day 1 # It\u0026rsquo;s a very sunny day! After arriving and bag check, the opening is starting. Although I do not understand a word, the room was full of energy and people are hyped about the start of the conference.\n@pyconfr is starting 🤩 pic.twitter.com/zS0j9mfZL3\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) February 18, 2023 After the opening, I do not have too much time to hang around as I have to give my talk in another room. The unfortunate thing is that the presentation stream setup is not done properly yet and we have a 15 mins delay due to technical difficulties. (I should sing a song while they are setting it up)\n.@cheukting_ho presenting Python memory profiling at @pyconfr 🙌 pic.twitter.com/AUzJX6orGO\n\u0026mdash; Sophia Yang (@sophiamyang) February 18, 2023 After my talk, I met a few friends outside and we chat with some organisers in France. The weather was so nice we went out to grab a gallette - a savoury crepe. I associate this food with PyCon France as in 2019 that\u0026rsquo;s what I had for lunch every day.\nWill I have another galette today? @pyconfr pic.twitter.com/AB3nFcAByB\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) February 19, 2023 Then it\u0026rsquo;s Sophia\u0026rsquo;s talk, it\u0026rsquo;s about PyScript.\nAfter lunch @pyconfr @sophiamyang is giving a talk about @pyscript_dev pic.twitter.com/g3czDVkQeP\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) February 18, 2023 After that, I went to Max\u0026rsquo;s talk - he is from the UK but he is trying very hard to speak French there.\nBy the time the wrap-up session of the day, I am already tired. So I went back to the hotel to lie down for a bit before the social event.\n@europython announcement at @pyconfr #CfP and #FinAid open on 6th March - there are also speaker mentorship program available ❤️ pic.twitter.com/OvTufRZVqm\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) February 18, 2023 I was a bit lost when I tried to find the place for the social event, and when I got there, it was already packed with people. I was told that the catering company workers are striking so that explained why the organisers were serving the food themselves.\nSocial event @pyconfr with nice wine and food - the organisers were serving the food themselves - thank you so much pic.twitter.com/UxlFUfbR03\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) February 19, 2023 The social event was great! I had many nice conversations with organisers from the Czech Republic and other local conference attendees. Only a few people do not speak French but at the end of the day, it does not matter, we all had a good time.\nDay 4 - Conference day 2 # In the morning it was the annual meeting of the L\u0026rsquo;Association Francophone Python so I do not need to attend (it will be in french anyway). So I aim to be at the venue at 10 am. I arrived a bit early and had a chat with Marine of Taipy and she was so nice to offer me some Canelés which is the local delicacy. I hope I will be able to grab some to bring home later.\nBack to London from @pyconfr Managed to get some Canelés home ❤️ the trip ended on a high note pic.twitter.com/tgRL1JWFTP\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) February 19, 2023 In the morning I gave my talk and also attend Raphaël\u0026rsquo;s talk about version control - the talk is in French so I was there to give moral support.\nMaybe the only French talk I attend this year - talk by Raphaël @pyconfr pic.twitter.com/9jeMgkDmGi\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) February 19, 2023 Then I grab some lunch at the food truck with Autur, a board member of the EuroPython Society, we spent some time in the after talking about ideas for EuroPython. I also managed to interview some organisers of PyCon France.\nClosing session - Did you had a good time @pyconfr? pic.twitter.com/kgSdkenlp1\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) February 19, 2023 The last day of the conference is shorter and we had a closing session at around 3 pm. Everyone seems to enjoy the conference. Congratulation and thank you to the organising team of PyCon France.\nSee some people that I met at PyCon France:\n","date":"20 February 2023","externalUrl":null,"permalink":"/posts/2023-02-20-pyconfr23/","section":"Blog posts","summary":"","title":"PyCon France 2023","type":"posts"},{"content":"","date":"20 February 2023","externalUrl":null,"permalink":"/tags/pyconfr/","section":"Tags","summary":"","title":"PyConFR","type":"tags"},{"content":" At the beginning of the talk, we will explore the role of revision control in promoting open-source software development. Cheuk will talk about how open-source software contribution is made possible with tools like git and GitHub. Next Cheuk will review how most database is lacking this revision control feature. She will also talk about why that is a problem and how we can improve. In this talk, Cheuk may demo some Python code with the use of TerminusDB, which is an open-source graph database. However, no Python knowledge will be needed to understand the topic and discussion in this talk. This talk is for those who work with data within a team and is seeking a better solution to collaborate and share data, making the data pipeline more efficient and benefiting data science teams in their productivity. ","date":"17 February 2023","externalUrl":null,"permalink":"/videos/iycyal-u9v4_better_data_governance_with_revision_control_workflows/","section":"Presentation videos","summary":"","title":"Better Data Governance with Revision Control Workflows","type":"videos"},{"content":"","date":"9 February 2023","externalUrl":null,"permalink":"/tags/soocon/","section":"Tags","summary":"","title":"SOOCon","type":"tags"},{"content":"I was invited to this conference a week ago and I enjoyed it so much!\nDay 1 # To be honest, I was a bit tired just coming back from FOSDEM so it was a struggle to wake up early to commute with other Londoners to the conference. I am glad that I did do to the conference.\nFirst, we have an opening by Amanda Brock, the CEO of Open UK. I talked to her later at the conference and she is really sweet.\nKeynote by @ChiOnwurah, @TheLabourParty_ MP of New Castle upon Tyne at #SOOCon23 pic.twitter.com/gMqjkUbZwo\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) February 7, 2023 Next, the first keynote is the by Chi Onwurah - the Labour MP of New Castle upon Tyne. I am glad to see the tech community connected with decision-makers and I think we need the conversation.\nNext in #SOOCon23 we have Damani Corbin from @Boeing speaking about their use of OSS pic.twitter.com/fhxoVBGkrr\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) February 7, 2023 Next, we have Damani Corbin who\u0026rsquo;s in charge of Strategy \u0026amp; EcoSystem Growth at Boeing speaking about open-source within their company.\nGood time at #SOOCon23 @openuk_uk 😊 pic.twitter.com/MUiD3LSeft\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) February 7, 2023 After these amazing talks, I decided to take a break and walk around and check out the booths. I had a good chat with some amazing people. Including Deb, the executive director of FreeBSD and Nick who was the director of development at Open Source Initiative. I also got loads of swags.\nLet’s try the unconference at #SOOCon23 @openuk_uk pic.twitter.com/K5SIph2sDp\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) February 7, 2023 In the afternoon I attended an unconference session, which is very interesting and there was a lot of discussion about open hardware securities.\nUnfortunately, I have to leave early after one drink at the all-hands party. I planned to attend the PyData London meeting that night.\nDay 2 # Another morning commute across London for me, and I am not a fan of it. However, I feel much better after a coffee at the conference.\nCommunity building round table at #SOOCon23 pic.twitter.com/2KmcBzUtvN\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) February 8, 2023 In the morning, I decide to go for a roundtable session about community building. The discussion is interesting and I have learnt a few things. After that, I also have a very nice conversation with the host of the session and a teacher names Adam. We exchanged contact as he said he would like to invite me to speak at the school, we will see how it goes.\nAt lunch, I hang out with Sammy, my friend and organiser of PyCon HK. We don\u0026rsquo;t have much time to hang out while he is in London, so we may as well have a chat during the conference. After lunch, I went for another unconference and met a bunch of cool people how we later went to karaoke with.\nGot to meet @cheukting_ho in person who is rockin Python and data science community work at @anacondainc #stateofopencon23 pic.twitter.com/yc4mwp3LzZ\n\u0026mdash; Bart Farrell (@birthmarkbart) February 8, 2023 I left the conference early to head home for more meetings. However, I went back for the unofficial karaoke party, who doesn\u0026rsquo;t love karaoke? I think the conference ended on a high note here.\nState of Karaoke has started! #SOOCon23 pic.twitter.com/oco1u0e8jk\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) February 8, 2023 And there it is! I am glad to join the conference and I now I will keep an eye on all the Open UK events as I like what they are doing and the community is very nice.\n","date":"9 February 2023","externalUrl":null,"permalink":"/posts/2023-02-09-soocon/","section":"Blog posts","summary":"","title":"State of Open Con 2023","type":"posts"},{"content":"","date":"6 February 2023","externalUrl":null,"permalink":"/tags/fosdem/","section":"Tags","summary":"","title":"FOSDEM","type":"tags"},{"content":"After 2 years, FOSDEM is finally back in ULB. So has this biggest Open-Source conference changed?\nFriday - Fringe events # I arrived early on Friday early morning but it seems FOSDEM has already started! There are a lot of open-source events - which are called fringe events - already happening the day before FOSDEM. It is easy to see why - there will be several thousand folks who are interested in open-source software being there.\nTried to go to @chaosscon EU but accidentally went to a session next door about #SPDX Python tool and #OPOSSUM tool pic.twitter.com/qXdZsg2g9r\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) February 3, 2023 Originally, I planned to attend CHAOSS con, which is a conference that my colleague Dave recommended. So I went to Bedford hotel, where the conference is after arriving in Brussels. However, I went to the wrong room and accidentally attended a workshop and licensing and security. The organisers kindly welcome me in and I sit for a talk by James. It is an interesting presentation.\nThanks @purpleidea for the presentation about Yes I Scan pic.twitter.com/zY9ntsXH6h\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) February 3, 2023 After that, I got the message about which room the CHAOSS con is, so I went there. I met my friend Lorna and Inessa there. I am so glad to learnt something about CHAOSS project.\nFinally able to get to @chaosscon eu and it’s exciting pic.twitter.com/7ZanyYBkNK\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) February 3, 2023 When it\u0026rsquo;s lunchtime, we head to one of my favourite restaurants for lunch. We exchange information about what is going to happen on Saturday and Sunday in FOSDEM so I can get myself prepare to do what I want to do. FOSDEM is so big that if you do not have a plan, you will be overwhelmed.\nIt was great meeting @InessaPawson and @lornajane at the @chaosscon EU pic.twitter.com/hAa7zLmham\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) February 3, 2023 After lunch, I head to check in at the hotel and take a short break. After that, I headed to the Python sprint meet-up organised by local organiser Hugo, who is also the host of the Python Dev Room this year.\nSpent the afternoon at Python sprint before #FOSDEM2023 thanks @HugoHerter for organizing and @europythons for sponsoring pic.twitter.com/NhcL8E7fFA\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) February 3, 2023 When I arrived there, there are not many folks, I guess there are so many things going on people like me just hopped in and out of different events. However, I was lucky to meet one of the organisers from Tai Wan, Peter, and happen to know that he will be having dinner with my friend Sammy, organiser of PyCon Hong Kong! So I decided to tag along and have dinner with the Tai Wan Hong Kong group. It was fun!\nIt was a great evening with @singing_li @sammyfung and the @PyConTW folks pic.twitter.com/hHO4zxRLkY\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) February 3, 2023 Saturday - Day 1 # It is exciting to come back to FOSDEM after so many years. I decided to volunteer at the cloakroom in the morning as there will be many people arriving and there will be many suitcases, and in our case because of the rain, coats to be stored so folks attending can enjoy the conference. During my shift, I met many people I know - including friends that I made at PyCon Italy. I am glad that they came to FOSDEM.\nAfter my shift, I am finally free to explore. I went to say hi to my friends\u0026rsquo; booth, they gave me a lot of swags, I am glad that I did bring a bag. I also came across a lot of promotions about other interesting events. I bought a lot of hackable gadgets from various booths as well.\n#FOSDEM2023 day 1, I had so much fun! Can’t wait for tomorrow! See you there pic.twitter.com/KocDcdLZwW\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) February 4, 2023 I also bump into an old friend Gerben who I met years ago at a Mozilla event in Berlin. We took a picture at one of those vintage photo booths together and I still keep our pictures.\nWhen is the last time you got hugged by your database? @PostgreSQL at #FOSDEM2023 pic.twitter.com/zL23yelxeW\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) February 4, 2023 I had a shorter day as there is so many exciting things going on and I got tired before the event finished. I didn\u0026rsquo;t go to any Dev Rooms as the ones that I am interested in will be on Sunday.\nSunday - Day 2 # When is the last time you got hugged by your database? @PostgreSQL at #FOSDEM2023 pic.twitter.com/zL23yelxeW\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) February 4, 2023 For day 2, I planned to split it between Community Dev Room and Python Dev Room. I arrived early in the Community Dev Room to attend the first talk by Matt. It is very useful for us as it is about building external evangelists. Then there are talks followed by my friend Floord and Inessa. After that, I head out with Floord and make some new friends - including Faruk whose team developed a lot of cross-platform open-source software for scientists.\n1st talk at #CommunityDevRoom is Matt’s talk that is DevRel / community relevant! Good one 👍🏻 #FOSDEM2023 pic.twitter.com/hbERK0Az12\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) February 5, 2023 After that, I scout for the location of the Python Dev Room, as I don\u0026rsquo;t want to be unable to find it when it\u0026rsquo;s time for my talk. Outside of the Python Dev Room, I met Anastasia, who is another speaker in the same room. But it\u0026rsquo;s not time for her talk yet, so, joined by her colleague, we head to the food truck to find food for lunch.\nLucky to be in the @PythonDevRoom for @anastasiatymo ‘s talk #FOSDEM2023 pic.twitter.com/IM8GEaE8Yh\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) February 5, 2023 After that, we head back for her talk. Then I took a short break to prepare for mine. My talk is the last in the Dev Room and it\u0026rsquo;s challenging - I am already very exhausted by everything in FOSDEM. But I managed and some folks came to me after the talk to ask more questions and I got connected to a few of them on LinkedIn. I hope they will try our PyScript and provide valuable feedback for us.\nWill #PyScript replace #Django?\nLet\u0026#39;s hope not! @cheukting_ho at #FOSDEM2023 pic.twitter.com/dEDXZKe8c1\n\u0026mdash; Denny Biasiolli @dennybiasiolli@mastodon.uno (@DennyBiasiolli) February 5, 2023 I met Victor at the Python Dev Room. He has been a friend for years and during the pandemic, we only chat occasionally online. I am so glad to meet him in person. Later in the day, we have dinner together with other friends including the core maintainer team of Mecrial. Some of them will be at PyCon FR in 2 weeks and I am sure we will have more time to chat.\nLast social drink at #FOSDEM2023 with some of my favourite people ❤️ until we meet next time 😊 pic.twitter.com/IJtYMU5UQp\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) February 5, 2023 And that concludes FOSDEM this year. It is officially a 2-day event but because of its scale of it, it feels like a week-long event. This is an event that I am so glad to be a part of because that is where everybody goes and it is where you can meet anyone.\nYou can also catch up on my talk online:\n","date":"6 February 2023","externalUrl":null,"permalink":"/posts/2023-02-06-fosdem/","section":"Blog posts","summary":"","title":"FOSDEM 2023","type":"posts"},{"content":" In this talk, through some examples and demos of PyScript, we will see how to use it - just include the CDN URL, understand that it is a frontend-only Python that runs on the browser and learn the fact that it can work with javascript in conjunction. After that, we will look at what is under the hood - Pyodide - which is a Python distribution for the browser. It is what is essential to power PyScript. We will discover what is the difference between using PyScript and Pyodide. Finally, we will conclude what is already available in PyScirpt like which library you can run on PyScript and which ones are still yet to come. In the end, we will answer the question - Will PyScript replace Django? This talk is for those who are curious about PyScript and the idea of running Python in the browser in general. We will assume no piror knowledge about it. ","date":"5 February 2023","externalUrl":null,"permalink":"/videos/2rm_tyl7igi_will_pyscript_replace_django_-_what_pyscript_is_and_is_not/","section":"Presentation videos","summary":"","title":"Will PyScript replace Django? - What PyScript is and is not","type":"videos"},{"content":"My first event speaking live in 2023 is at the PyData Bristol meetup, which is also my first PyData Bristol. I am so excited and here is what I see and do there.\nGetting there # In the morning, I got notified that my train to Bristol has been cancelled. Recently we have train strikes in the UK so I am not surprised that something will go wrong with my train. Luckily it was not a last-minute thing. I decided to get on the train before it and arrive at Bristol a bit earlier than planned.\nAfter boarding the train, I realised that the reason why the train was cancelled is that the region near Bristol was flooded so the trains are disrupted. Now I just hope that the train going home will be fine.\nI ended up not arriving at Bristol much earlier than planned due to the train that I was on was also delayed. However, it didn\u0026rsquo;t matter as I was on time for the meetup.\nPyData Bristol # When I arrived at the venue, the first person that I saw was my colleague Valerio. It is always good to see familiar faces in a new place. Then, another organiser of the meetup come and greet me, with their help, I tested the computer setup and we are good to go.\nAs my talk is in the second half after the pizza break I got a chance to chat with the organisers a bit before the meetup. I was also spotting who would I be interviewing during the break.\nThen the meetup started, it is so exciting. The organisers made a very good introduction and I like the \u0026ldquo;ChatGPT nonsense of the month\u0026rdquo; session.\nWelcome to @PyDataBristol I finally made it here 🎉 pic.twitter.com/zmUl3SBibn\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) January 12, 2023 The first talk is quite interesting, we all learnt a bit about how computer chips are made with plasma and unsupervised learning from the talk by Greg.\nFirst talk @PyDataBristol is by Greygwho is a Physicist from University of Exeter talking about unsupervised learning in plasma physics pic.twitter.com/w9wXMqlZ0o\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) January 12, 2023 Nest we have a lightning talk about federated learning, I am very impressed by the speaker Akiko, I think it would be great if she gives a full talk next time.\nNext up @PyDataBristol we have Akiko giving a lightning talk about federated learning pic.twitter.com/G26zcmAQ6a\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) January 12, 2023 Then it is the pizza break. I also use this chance to set up my presentation, and record and interview some people I met at the conference.\nThen I gave my talk. I was so excited to be giving a talk again. I think I am a bit addicted to it.\nAfter my talk, it\u0026rsquo;s a lighting talk about NBFire, a cloud service to host your notebook on the cloud and run it on schedule. I think the idea is quite cool. I think our cloud notebook should have a run-on-schedule function as well.\nAnd that is the end of the meetup. Some people will head to the pub for the after party, sadly I have to catch a train home. I would have spent the night in Bristol and joined the pub but I also miss my bed at home. It\u0026rsquo;s always a difficult choice for me as I enjoy chatting with the folks at PyData Bristol. I wish I can go to the meetup again soon.\nYou can also catch up on my talk online:\n","date":"12 January 2023","externalUrl":null,"permalink":"/posts/2023-01-12-pydata-bristol/","section":"Blog posts","summary":"","title":"First event of 2023 - PyData Bristol","type":"posts"},{"content":"","date":"12 January 2023","externalUrl":null,"permalink":"/tags/meetup/","section":"Tags","summary":"","title":"Meetup","type":"tags"},{"content":" Using Numba Effectively Today - Cheuk Ting Ho Have you ever heard of Numba? It is (mainly) a JIT (Just-In-Time) compiler to make your math-heavy Python code run faster under certain conditions. Most people found all of it is like a mystery - It sounds like magic, but how does it work? Under what conditions does it work? And because of it, new users found it hard to start using it and it requires a steep learning curve to get the hang of it. This talk requires no prior experience. Through demos, we will explore in what situation Numba works, when it does not and the reason why. We will also look at some cases where we can make Numba works by changing a few things in your code. Hopefully, by the end of the talk, you will have a better understanding of how Numba works before you even start using it. This knowledge can save you some time on try and error, making your experience in using it better. ","date":"12 January 2023","externalUrl":null,"permalink":"/videos/yylkurfcaxq_pydata_bristol_meetup/","section":"Presentation videos","summary":"","title":"PyData Bristol Meetup","type":"videos"},{"content":"","date":"11 January 2023","externalUrl":null,"permalink":"/tags/pydata/","section":"Tags","summary":"","title":"PyData","type":"tags"},{"content":" In this talk, we will explore what is property-based testing and why it can do a lot of heavy lifting in writing tests for us. As a contributor, I will introduce Hypothesis, a Python library that can help perform property-based tests with ease. ","date":"11 January 2023","externalUrl":null,"permalink":"/videos/__dfm6r4nvs_pydata_tel_aviv_2022_-_i_hate_writing_tests_thats_why_i_use_hypothesis/","section":"Presentation videos","summary":"","title":"PyData Tel Aviv 2022 - I Hate writing Tests, That's Why I Use Hypothesis","type":"videos"},{"content":"Click here for English version\nIr a conferencias es emocionante y es una buena experiencia de aprendizaje, sin embargo, viajar podría ser muy costoso. Algunas conferencias ofrecen becas de viaje o programas de ayuda financiera, pero si este proceso es algo nuevo para ti, puede que te resulte difícil. Aquí hay algunos consejos para planificar tu viaje y una explicación para ayudarte a solicitar becas de viaje. El primer paso para solicitar una beca de viaje o un programa de ayuda financiera es presupuestar tu viaje. Esto demuestra que te tomas en serio el viaje, que lo has planeado y que sabes que necesitarás fondos adicionales para viajar. Aquí hay algunos sitios web que utilicé para ayudarme con el presupuesto, sin embargo, puede usar sitios web o herramientas similares si te conviene.\nVuelos # Si vives en el Reino Unido como yo, la mayoría de las veces tendrás que volar a la conferencia. Uso Skyscanner para comparar vuelos y buscar rutas de conexión (si no hay vuelos directos disponibles). La mayoría de las veces, vuelo directamente al destino para evitar problemas que ocurren en las conexiones y transferencias. Además, asegúrate de a qué aeropuerto vuelas, ya que las ciudades tienen varios aeropuertos cerca de ellas y, para algunas ciudades más pequeñas, es posible que debas usar el aeropuerto en la ciudad grande más cercana y conectarlo a través de autobuses o trenes.\nA veces puede ser más barato viajar un día antes o después, pero eso también influye en los costos de alojamiento. Normalmente trato de llegar un día antes de la conferencia y salir al final del último día. Pero, de nuevo, depende de la hora de los vuelos disponibles y del coste de las fechas de alojamiento extra. Ten cuidado de que algunos programas de becas no cubren las fechas adicionales de alojamiento, así que asegúrate de preguntar si está bien volar el día antes de la conferencia o irse el día después de que finalice la conferencia si planeas hacerlo.\nPara mantener el presupuesto bajo, suelo viajar con aerolíneas económicas. Pero ten en cuenta que, por lo general, tienen una franquicia de equipaje de mano muy limitada y tienes que pagar más por más espacio para el equipaje. Después de años de viajar, ahora puedo viajar muy ligero, así que la mayoría de las veces no tengo ningún problema con eso. Sin embargo, entiendo que es una elección muy personal el cuánto llevar al viajar, así que si necesitas equipaje adicional, asegúrate de incluirlo también en el presupuesto.\nPara los vuelos, el 99 % de reservar con anticipación será más barato, por lo que cuando presupuestes tu viaje, agrega un poco más (como un 10 %) en su cálculo, ya que cuando te dan las becas, comprar los boletos puede ser más caro que la opción más barata que estás viendo al presupuestar..\nTrenes y autocares # Esto es complicado porque no conozco un sitio web que proporcione toda la información en todos los países. En Europa y el Reino Unido, uso Trainline para buscar autocares y trenes entre ciudades. Si eso no funciona, a veces una simple búsqueda en Google te dará consejos sobre cómo viajar de una ciudad a otra.\nPor lo general, es más barato viajar en tren o autocar que volar (excepto Eurostar, que me encanta, pero puede ser mucho más costoso que volar con aerolíneas económicas). También hay menos restricciones en el equipaje. Si vives en la parte occidental de Europa continental, puedes ir a muchos lugares en tren.\nAlojamiento # Para alojamiento utilizo Booking.com para buscar y comparar precios. Hoy en día han incluido muchos tipos diferentes de listados y no se limitan solo a hoteles. Algunas reservas tienen cancelación gratuita hasta una fecha determinada (generalmente una semana o 3 días antes de tu llegada), por lo que para esas, incluso puedes continuar y reservar antes de que se apruebe la beca.\nLa opción más económica es una cama en una hostal. Sin embargo, la calidad puede variar mucho según con quién compartas la habitación y también existen problemas de seguridad. Creo que es una elección personal si quieres o no quedarte en una cama en una hostal. Creo que el comité de becas entendería si tienes que buscar una habitación solo para ti. Si ese es el caso, es posible que los hostales no sean adecuados para ti.\nPara los hoteles, hay muchas opciones. Por lo general, busco uno que esté cerca del lugar del evento con precios de rango medio. Si la conferencia se lleva a cabo dentro de un hotel, entonces el organizador de la conferencia puede tener un descuento del hotel, por lo general, se anunciará en el sitio web de la conferencia. Si no, puede valer la pena preguntar a los organizadores.\nA veces hay listados en Booking.com que tienen apartamentos completos como Airbnb (también puedes buscarlos en Airbnb). Dependiendo de dónde vayas, esto puede ser más barato que reservar habitaciones de hotel. Ten cuidado con el horario de check-in de este tipo de alojamiento, ya que generalmente los administran anfitriones individuales, por lo que no hay recepción disponible las 24 horas. Si tienes vuelos tardíos, puede ser un problema si tu vuelo llega en medio de la noche. Hasta ahora no he encontrado un anfitrión que no sea agradable, pero he escuchado historias de personas que tienen problemas con este tipo de alojamiento, así que ten cuidado cuando los reserves. Intenta verificar si el host es confiable y las opiniones de las personas sobre esos listados.\nSi deseas ahorrar dinero compartiendo una habitación de hotel o apartamento con un compañero de conferencia (o amistades) que conoces. Asegúrate de consultar las pautas del programa de becas para ver si se permite compartir alojamiento y, de ser así, qué documentos debe proporcionar. Por ejemplo, si tu amigo hace la reserva y la paga antes de que tu le devuelvas el dinero, es posible que desees que tu anfitrión incluya tu nombre en la reserva y el de tu amigo.\nLa última opción de alojamiento es pedirle a un amigo que te aloje. Tengo la suerte de que después de viajar a muchas conferencias he hecho buenos amigos y estoy seguro de que, si la situación lo permite, me recibirán felizmente cuando vaya a una conferencia en sus ciudades. Asegúrate de recibirlos también cuando visiten tu ciudad.\nTransporte local # Moverse por una nueva ciudad puede ser emocionante. Por lo general, la ciudad que alberga la conferencia sería muy transitable para tener un buen transporte público. Investiga de antemano para ver cómo llegar del aeropuerto a la ciudad y cómo moverte por la ciudad. Obtén información sobre cómo usar el transporte público. Si tomas el transporte local, también puedes incluirlo en tu presupuesto para viajar.\nEstoy muy preocupada por la seguridad de tomar taxis (especialmente desde el aeropuerto), así que investigaré un poco para verificar si hay una aplicación confiable que puedas usar para llamar a los taxis.\nComida y otras cosas # También puedes presupuestar algo de dinero para las comidas. Normalmente, la conferencia proporcionará el almuerzo (también puede haber quienes no lo hagan, así que asegúrate de verificar), y también habrá pausas para el café con refrigerios, por lo que el desayuno, para mí, es opcional. Se espera que la gente vaya a tomar algo y cenar juntos después de la conferencia y es una muy buena oportunidad social. Puedes investigar un poco para ver cuánto cuesta salir a comer en la ciudad a la que vas. En algunas conferencias, habrá patrocinadores que son muy amables en organizar after-parties donde puedes socializar y comer y beber allí sin costo alguno. Sin embargo, no siempre es así.\nPara la conexión a Internet, la mayoría de los alojamientos y lugares de conferencias proporcionarán wifi, por lo que depende de ti ver si deseas tener un plan de datos local o un servicio de roaming de tu proveedor. Sin embargo, la mayoría de las becas de viaje no cubren esto.\nPor lo general, el programa de ayuda financiera proporcionará el boleto de la conferencia además de tu beca para que no tengas que incluirlo en tu presupuesto, pero siempre es bueno verificar dos veces.\nPor último, pero no menos importante, verifique si necesita una visa para ir al lugar al que se dirige y el tiempo de solicitud. La mayoría de los programas de becas también cubrirán los costos de la visa. Pero si necesitas tiempo para solicitar una visa, asegúrate de comunicarlo y decirle al comité organizador que lo necesita para que puedan ayudarte.\nEntonces, después de todo el presupuesto, ahora tienes una buena idea de cuánto necesita viajar para la conferencia. Asegúrate de incluir el desglose (por ejemplo, cuánto por el vuelo, cuánto por el alojamiento, cuánto por las comidas y el transporte loco, etc.) cuando solicites la beca. Si puedes pagar parte del presupuesto, también asegúrate de haberlo indicado. Por ejemplo, después de todos los cálculos, necesita $ 1000 para todo el viaje y puedes pagar $ 400 para mantenerte, por lo que necesitarás $ 600. Entonces puedes solicitar una beca de viaje de $600.\nPreséntate y explica por qué necesitas la beca # Ok, has pedido el dinero que necesitas. Ahora tiene que decirle al comité por qué lo necesita. Lo sé, puede parecer que tienes que presumir o rogar, pero no lo es. Como el comité no te conoce, considéralo como presentarte ante ellos.\nPrimero, puedes explicar que tienes entusiasmo con la comunidad. Si te has ofrecido en el voluntariado u organizado eventos localmente para la comunidad antes, asegúrate de comunicarlo. Puedes incluir algunos enlaces sobre el trabajo que has realizado para la comunidad en el pasado. Ser activo en la comunidad ayuda en tu solicitud ya que al asistir a la conferencia le está agregando valor. Si está hablando en la conferencia, es aún mejor. Asegúrate de decir que vas a hablar en la conferencia, ya que necesitan que su orador esté allí y, por lo tanto, los oradores tendrán prioridad en la solicitud.\nEn segundo lugar, si se encuentra en un grupo subrepresentado en la comunidad, asegúrate de informar al comité en tu solicitud. Para una comunidad saludable, necesitamos diversidad, por lo que el comité también lo considerará.\nEn tercer lugar, si tu situación justifica que necesite asistencia financiera, por ejemplo, es estudiante, está cambiando de carrera o está tratando de volver a trabajar después de un largo descanso, etc. No tengas miedo de decirlo. Tu información se mantendrá privada dentro del comité y ellos respetan la privacidad de las personas. Estoy segura de que quieren hacer el mejor uso de la beca y dársela a las personas que más la necesitan.\nY por último, si sientes que no tienes nada de los 3 puntos anteriores para hablar, ¡comienza hoy! Siempre puedes ayudar y ser voluntario en tu comunidad local y comenzar desde allí. ¡Incluso puedes iniciar un podcast, un boletín informativo o hacer videos educativos o publicaciones de blog en casa! Siempre hay algo que puedes hacer por la comunidad y eso cuenta.\nLa comunicación es importante # Una última cosa que me gustaría que todos ustedes supieran es que no tengan miedo de comunicarse y hacer preguntas. Los organizadores y los miembros del comité siempre están dispuestos a ayudar y la comunicación es importante. Entonces, si tienes alguna pregunta que no esté cubierta en el sitio web o en la sesión de Preguntas Frequentes, envía un correo electrónico al comité para preguntar. Si necesitas ayuda especial (por ejemplo, solicitar una visa), dile al comité y ellos verán qué pueden hacer. Si recibes una beca pero tu situación cambia y necesitas más o ya no la necesitas, infórmale al comité para que puedan reasignar las becas.\n¡Te deseo suerte en tu próxima postulación y diviértete en tu próxima conferencia!\nSpecial thanks to Cristián Maureira-Fredes for help with translation\nCover photo by Erik Odiin on Unsplash\n","date":"21 December 2022","externalUrl":null,"permalink":"/posts/2022-12-21-how-to-finaid-es/","section":"Blog posts","summary":"","title":"¿Cómo solicitar la Beca de viaje/Ayuda financiera de las conferencias?","type":"posts"},{"content":"Haga clic aquí para la versión en español\nGoing to conferences is exciting and it is a good learning experience, however, it could be very expensive to travel. Some conferences offer travel grants or financial aid programs but if you are new to applying, you may find it difficult. Here are a few tips to plan your travel and an explanation to help you apply for travel grants\nBudget it well # The first step in applying for a travel grant or financial aid program is to budget your travel. This shows that you are serious about going, have planned and knows that you will need the extra fund to travel. Here are some websites that I used to help me with budgeting, however, you can use similar websites or tools if that suits you.\nFlights # If you live in the UK like me, most of the time you will have to fly to the conference. I use Skyscanner for comparing flights and looking for connecting routes (if no direct flights are available). Most of the time, I will fly directly to the destination to avoid accidents that happened in the connecting and transfers. Also, make sure which airport you are flying to, come cities have multiple airports that are close to them and for some smaller cities, you may have to use the airport in the closest large city and connect it via coaches or trains.\nSometimes it may be cheaper to travel a day earlier or later but that also weighs in on the accommodation costs. Normally, I try to arrive a day before the conference and leave at the end of the last day. But again it depends on the time of the flights available and the cost of the extra accommodation dates. Be careful that some grant programs may not cover the extra accommodation dates, so make sure you ask if it is ok to fly in the day before the conference and/or leave the day after the conference finishes if you plan to do so.\nTo keep the budget low, I usually travel with budget airlines. But beware that they usually have a very limited carry-on luggage allowance and have to pay extra for more luggage space. After years of travelling, I can now travel very lightly so most of the time I have no problem with that. However, I understand it is a very personal choice of how much to bring on travelling so if you need extra luggage, make sure you have put it in the budget as well.\nFor flights, 99% of booking earlier will be cheaper, so when you budget your travel, add a bit more (like 10%) in your calculation as when you are given the grants and buying the tickets it may be more expensive than the cheapest option you are seeing when budgeting.\nTrains and coaches # This is a tricky one cause I do not know a website that provides all information in every country. In Europe and UK, I use Trainline to look for coaches and trains between cities. If that does not work, sometimes a simple google search will give you advice about how to travel from one city to another.\nIt is usually cheaper to travel by train or coach than flying (except Eurostar which I love but can be much more expansive than flying with budget airlines) Also there are fewer restrictions on the luggage. If you live in the western part of continental Europe you can go to many places via trains.\nAccommodations # For accommodation I use Booking.com to search and compare prices. Nowadays they have included a lot of different kinds of listings and are not just limited to hotels. Some bookings would have free cancellation up to a certain date (usually a week or 3 days before your arrival), so for those, you can even go ahead and book it before the grant is approved.\nThe most budget-friendly option is a bed in the hostel. However, the quality can vary a lot depending on who you are sharing the room with and also there are security concerns. I think it is a personal choice whether or not you want to stay in a bed in a hostel. I think the grant committee would understand if you have to look for a room all for yourself instead. If that is the case, hostels may not be suitable for you.\nFor hotels, there are many options. Usually, I look for one that is close to the event venue with mid-range prices. If the conference is located inside a hotel then the organiser of the conference may have a discount from the hotel, usually, it will be advertised on the conference website. If not it may be worth asking the organisers.\nSometimes there are listing on Booking.com that is having whole apartments like Airbnb (you can also look for these on Airbnb). Depending on where you are going, this can be cheaper than booking hotel rooms. Beware of the check-in time of this kind of accommodation as they are usually run by individual hosts so no 24-hour reception is available. If you are having late flights then it may be a problem if your flight arrived in the middle of the night. So far I have not encountered a host that is not nice but I have heard stories that people have problems with this kind of accommodation so be careful when you are booking them. Try to check if the host is trustworthy and people\u0026rsquo;s reviews on those listings.\nIf you want to save money by sharing a hotel room or apartment with a conference buddy (or buddies) that you know. Make sure to check the guideline of the grant program to see if accommodation sharing is allowed and if so what documents you need to provide. For example, if your buddy is making the booking and paying for it before you pay them back, then you may want your host to put your name in the booking as well as your buddy\u0026rsquo;s.\nThe last accommodation option is to ask a friend to host you. I am blessed that after travelling to many conferences I have made some good friends and I am sure if the situation allows they will happily host me when I go to a conference in their cities. Make sure you also host them when they are visiting your city as well.\nLocal transportation # Getting around a new city can be exciting. Usually, the city that is hosting the conference would be either very walkable to have good public transportation. Do your research beforehand to check how to get from the airport to the city and how to get around the city. Get information about how to use public transportation. If you take local transportation You can also include that in your budget for travelling.\nI am very worried about the safety of taking taxis (especially from the airport) so I will do some research to check if there is a trustworthy app that I can use to call taxis.\nFood and other things # You can also budget some money for meals. Normally conference will provide lunch (there may also be those who do not so please make sure you check), and there will also be coffee breaks with refreshments as well so breakfast, for me, is optional. Be expected that people go for some drinks and dinner together after the conference and it is a very good social opportunity. You can do some research to see how much it costs to be eating out in the city that you are going to. In some conferences, there will be sponsors who are very nice to host after-parties where you can socialise, and have food and drink there at no cost. However, it is not always the case.\nFor internet connection, most accommodation and conference venues would provide wifi so it\u0026rsquo;s up to you to see if you want to have a local data plan or roaming service from your provider. Most travel grants do not cover this though.\nUsually, the financial aid program will provide the conference ticket on top of your grant so you do not have to include it in your budget, but double-checking is always good.\nLast but not least, check if you need a visa to go to the place you are going and the application time. Most grant programs will cover visa costs as well. But if you need time to apply for a visa, make sure you communicate and tell the organise committee you need that so they can assist you.\nSo after all the budgeting, you now have a good idea of how much you need to travel for the conference. Make sure you list the breakdown (e.g. how much for flight, how much for accommodation, how much for meals and loco transportation etc) when you apply for the grant. If you can afford part of the budget, also make sure you have stated that as well. For example, after all the calculations, you need $1000 for the whole trip and you can afford $400 to support yourself so you will need $600. Then you can apply for a $600 travel grant.\nIntroduce yourself and why you need the grant # Ok, so you have asked for the money that you need. Now you have to tell the committee why you need it. I know, it may sound like you have to brag or beg but it is not. As the committee does not know you, think of it as introducing yourself to them.\nFirst, you can explain that you are enthusiastic about the community. If you have volunteered or organised events locally for the community before, make sure to let the community know. You can include some links about the work you have done for the community in the past. Being active in the community helps in your application as by attending the conference you are adding value to it. If you are speaking at the conference, it is even better. Make sure you say that you are speaking at the conference as they need their speaker to be there and therefore speakers would have priority in the application.\nSecond, if you are in an underrepresented group in the community, make sure you let the committee know in your application. For a healthy community, we need diversity so the committee will consider that as well.\nThird, if your situation justifies that you need financial assistance, e.g. you are a student, you are changing careers, or trying to go back to work after a long break etc. Don\u0026rsquo;t feel afraid to say that. Your information will be kept private within the committee and they respect people\u0026rsquo;s privacy. I am sure they want to make the best use of the grant and give them to people who need them the most.\nAnd last, if you feel like you don\u0026rsquo;t have anything of the 3 points above to talk about, starts today! You can always help and volunteer in your local community and start from there. You can even start a podcast, or newsletter or make educational videos or blog posts at home! There is always something you can do for the community and that counts.\nCommunication is important # One last thing I would like all of you to know is that don\u0026rsquo;t be afraid to communicate and ask questions. Organisers and committee members are always happy to help and communication is important. So if you have any questions that are not covered on the website or FQA session, drop the committee an email to ask. If you need special help (e.g. apply for a visa), tell the committee and they can see what they can do. If you are given a grant but your situation changes that you need more or you don\u0026rsquo;t need it anymore, let the committee knows to they can reallocate grants.\nI wish you luck in your next application and have fun at your next conference!\nCover photo by Erik Odiin on Unsplash\n","date":"21 December 2022","externalUrl":null,"permalink":"/posts/2022-12-21-how-to-finaid/","section":"Blog posts","summary":"","title":"How to apply for Travel Grant/ Financial Aid from conferences?","type":"posts"},{"content":"2022 has been a good year of events! After we have the first PyCon PT back in September, now we have the first PyData Tel Aviv. I am so happy about the friendliness of the people here and their hospitality.\nArrival and Speaker Dinner # I was excited to go to Tel Aviv as London was having a bit of a snowstorm, however, due to the same snowstorm, my flight is delayed for 3 hours. All passengers were waiting to take off on the plane but we have to sit and wait. The wait goes from 30 mins to 1 hour, then 2 hours and finally it took us almost 3 hours till we finally got a slot to safely took off. After all this stress, I was glad that the flight was not cancelled and I was heading to Tel Aviv.\nAfter another 5 hours, by this time I am already spending the whole day on the plane which is not equipped for long-haul flights. I was super nervous as the organisers of the conference already arranged my pick up from the airport, and the airport was super busy. After getting lost and not about to find the staff member who was supposed to pick me up. I was nervous. But luckily, they finally come to get me and we are heading to the city. Since I was late, my plan to check in to the hotel and refresh before the speaker dinner is now out of the window, I am heading straight to the speaker dinner.\nShout out for the organisers of @PyDataTLV they help me to get through the busy airport fast after the stressful delayed flight! Thank you so much 😊 pic.twitter.com/sJe9eu24k9\n\u0026mdash; Cheuk Ting Ho at #PyDataTelAviv (@cheukting_ho) December 12, 2022 Even though I was tired out from the journey, the warm welcome of the organisers and other speakers makes me feel energised again and I was glad that I can talk to so many amazing people. People will come and talk to me and introduce themselves. Sitting next to me was another speaker Aleksander who lived in Tel Aviv but is from Poland. He was super friendly and we talked a lot about the business and living there. Sitting opposite me were a few organisers and volunteers and when I said that I work for Anaconda, they are super happy and they were very interested in PyScript.\nOverall, I had a great evening and after that, I finally got checked in to the hotel and rested after a long day.\nPyData Tel Aviv # I work up early the next morning, feeling refreshed after a good sleep at the hotel. I was so glad that the weather is so nice in Tel Aviv and the venue is in a convention centre park that got quite some greenery. When I step into the venue, I entered from the wrong entrance but the organisers guided me to the registration and I got my badge very quickly.\nGood morning! We are having fun here @PyDataTLV before it starts pic.twitter.com/kMLurERtAF\n\u0026mdash; Cheuk Ting Ho at #PyDataTelAviv (@cheukting_ho) December 13, 2022 In the hallway, the sponsors already have their booth ready and were playing games with the attendees, giving out swags. There are snacks and coffee to give us energy before the conference begins.\nSo excited! 1st @PyDataTLV for the 3rd largest PyData community ❤️ let’s go! pic.twitter.com/KHBVWSBeYX\n\u0026mdash; Cheuk Ting Ho at #PyDataTelAviv (@cheukting_ho) December 13, 2022 Finally, the conference begins. After a quick opening, the first speaker is a keynote by Raymond Hettinger who is from Austin! As a CPython core developer, He teaches us a lot about how the math in Python works under the hood. It is very educational and interesting.\nWelcome keynote speaker @raymondh 🎉 @PyDataTLV pic.twitter.com/zY63KZodea\n\u0026mdash; Cheuk Ting Ho at #PyDataTelAviv (@cheukting_ho) December 13, 2022 Then the conference is split into two tracks. One is mainly in Hebrew and one is in English. Because of my limitation in language ability. I attend mostly English talks.\nFirst, we have a talk by Rachel Shalom about incorporating GAN in business analytics.\n@PyDataTLV Talk about GAN in business by new mom and senior data scientist Rachel Shalom at @Dell pic.twitter.com/jnAXXBkA82\n\u0026mdash; Cheuk Ting Ho at #PyDataTelAviv (@cheukting_ho) December 13, 2022 Then it\u0026rsquo;s a talk by Liron about sensitive data.\nHow to keep our sensitive data safe? Liron is going to teach us @PyDataTLV pic.twitter.com/MeZcX65YDO\n\u0026mdash; Cheuk Ting Ho at #PyDataTelAviv (@cheukting_ho) December 13, 2022 After, the next speaker Hilla, who is a researcher, talked about vaccine effectiveness.\nGlad to see how Hilla who did Physics 🙌🏻 at Trento taking about the effectiveness of vaccines @PyDataTLV pic.twitter.com/JXAdZOzmLl\n\u0026mdash; Cheuk Ting Ho at #PyDataTelAviv (@cheukting_ho) December 13, 2022 Then it\u0026rsquo;s lunchtime. I got a lot of opportunities to talk to people in between talks as the conference allow 15 mins break between talks. I think it\u0026rsquo;s a really good buffer and let people have time to refresh and switch room for the next talk. I have talked to Tal, who is volunteering for the conference and he told me that he loves Anaconda. I have also talked to Rueven who has attended EuroPython before and as a trainer himself, he is very interested in the education aspect that Anaconda is doing.\nI would say this is the most sociable #PyData conference. 15 mins for changing tracks and talk to friendly people between talks! pic.twitter.com/GJtTNE7Hfi\n\u0026mdash; Cheuk Ting Ho at #PyDataTelAviv (@cheukting_ho) December 13, 2022 After a quick lunch, I have to check the projector connected to my laptop as I will be speaking right after. However, after trying, I was told that the projector would not work with the newer model of Macbook, which is what I had. So one of the organisers was kind enough to let me use his computer for presenting. I was blessed with a full room of audience and they are all very responsive. I got quite a lot of questions after the talk.\n@cheukting_ho hates writing tests. And you? pic.twitter.com/hmVN32fLin\n\u0026mdash; PyData Tel Aviv (@PyDataTLV) December 13, 2022 Then Nir from DogsHub is speaking after me. He talked about how to integrate Jupyter notebook into the production process.\nNext is @barazida talking about our favorite tool #Jupyter notebook @PyDataTLV pic.twitter.com/mE6ocSH8Ou\n\u0026mdash; Cheuk Ting Ho at #PyDataTelAviv (@cheukting_ho) December 13, 2022 After that, there is a talk about data models for online harm. It is very interesting to see how a model distinguishes say, a video of someone cutting a tomato from a video involving violence.\nNext up @PyDataTLV we have Matar and Noam talk about model for online harm pic.twitter.com/YHEKbTd2ar\n\u0026mdash; Cheuk Ting Ho at #PyDataTelAviv (@cheukting_ho) December 13, 2022 Next, Dimitry Vanger talked about Extreme Value Analysis.\nNext @PyDataTLV is a talk about EVA - extreme value analysis, by Dimitry Venger pic.twitter.com/zP4tpjCCVx\n\u0026mdash; Cheuk Ting Ho at #PyDataTelAviv (@cheukting_ho) December 13, 2022 At the end of the conference, there are lightning talks. In this conference, the lightning talks are pre-selected and approved and act like mini-talks that is selected from the proposal, which is very new for me. But I guess new speakers would appreciate and have less stress by having more time to prepare for their mini-talk rather than being spontaneous and be decided on the day.\n@PyDataTLV lighting talk time ⚡️ pic.twitter.com/adLJHDBAt1\n\u0026mdash; Cheuk Ting Ho at #PyDataTelAviv (@cheukting_ho) December 13, 2022 And soon after, it\u0026rsquo;s the end of the conference. I enjoy the experience and I think all the organisers and volunteers for making such a great conference.\nThank you for a great @PyDataTLV conference! I really enjoyed it 🥰 pic.twitter.com/X1NJ3AnXTt\n\u0026mdash; Cheuk Ting Ho at #PyDataTelAviv (@cheukting_ho) December 13, 2022 Before I go, there are drinks reception outside. So I get a chance and talk to more people. I met Jacob Barhak who took over the Python Austin meetup from Peter who founded it. Being in Israel now he said he could only organise a remote meetup for Python Austin at the moment and I think maybe we can help to find him a co-organiser in Austin. I also met a lady, Inbal, who organises open-source and C++ events in Israel. She is so friendly and I would love to introduce her event to our open-source teams in the future.\nAnd here is PyData TelAviv. I love the community here and so far it has been a successful trip.\n","date":"15 December 2022","externalUrl":null,"permalink":"/posts/2022-12-15-pydatatelaviv/","section":"Blog posts","summary":"","title":"PyData Tel Aviv 2022","type":"posts"},{"content":"When my colleague talks about DevRelCon, they said it is like a meta conference. Is it my second time attending DevRelCon. The last time it was before the pandemic in London. This time it is in Prague, a city I have never been to before. So it is very exciting for me.\nDay 1 - DevRelCon Day 1 # For day 1 of the conference. I chose to talk there from the hotel. However, it was raining and 2 degrees C so it is not a very nice experience. Also, I got lost and was unable to find the entrance to the event. But I catch up with Valerio on the way so we managed to find the entrance together.\nGood morning #DevRelCon! Come on in, get comfortable, say hi! pic.twitter.com/08ZzzSOcUP\n\u0026mdash; DevRelCon (@devrelcon) December 6, 2022 After registering, the conference started and it started with a hypothetical conversation about why marketers need to work with the RevRel team. I found it interesting and had much to learn.\nLet’s get it started @devrelcon pic.twitter.com/mS8VjXGXML\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) December 6, 2022 Then it is followed by a talk about the DevOpDays around the world during the pandemic.\nWe love you @FloorDrees ❤️ @devrelcon pic.twitter.com/JCqfbepHPJ\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) December 6, 2022 It is followed by a talk about how DevRel can survive economic downturns.\nNext talk about economic downturn (what an exciting topic) by @RabbiGreenberg thank you so much @devrelcon pic.twitter.com/ZvAGNXYbHu\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) December 6, 2022 After the coffee break where I met up with other DevRel friends who work for other companies. We come back to a small introduction about DevRelCon in Japan. I am very tempted to go to that one as well.\nThere are tech mangas? You learn something new everyday @devrelcon pic.twitter.com/KfR9pfErfD\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) December 6, 2022 Then we attend a talk which is about how to scale up the communities.\nAfter lunch, we have a panel session.\nPanel session @devrelcon after lunch pic.twitter.com/5VvqYavtlT\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) December 6, 2022 Then there is a talk about managing CfP.\nNext talk @devrelcon would be about CfP by @davidgsIoT pic.twitter.com/OtdYWIvmtv\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) December 6, 2022 And a talk that uses the physiological breakdown of how the community is all about oxytocin.\nLast talk of today @devrelcon is by Don from @KatsudonTech the name of the company is making me hungry pic.twitter.com/YiMWsMyQBr\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) December 6, 2022 After all these talks, of cause, we were given a lot of opportunities for socialising and talking to other DevRels. We end up talking to a DevRel with 12 years of experience and he gave us very useful pieces of advice.\nDay 2 - DevRelCon Day 2 # Day 2, it starts with a talk about how to advocate for company culture.\nFirst talk of day 2 of @devrelcon is by Brandon from @datadoghq who also a dog lover pic.twitter.com/gL4nzD4w3B\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) December 7, 2022 Next, it\u0026rsquo;s about advocacy within the company.\nNext in @devrelcon is a talk by internal advocates from @Adyen pic.twitter.com/VQ1XHK2lxd\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) December 7, 2022 After we attend a talk about how to start a champion program. Which can be quite useful information for us.\nNext up at @devrelcon, about how to build a champion program by Ully from @elastic pic.twitter.com/nbeDT3oVYe\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) December 7, 2022 After lunch, we have 3 lighting talks.\nI love the pixel art by @marcduiker ❤️ @devrelcon pic.twitter.com/Os9E2Qqgsp\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) December 7, 2022 Then we have a Zoom call so we went out to a quiet place for it. After that, I talked to a few other DevRel in the \u0026ldquo;hall track\u0026rdquo;. I wish I have more time to talk to more people.\nThen I attend a talk about diversity. This is something that we care about a lot in the community so it is very interesting.\nAfter a remote talk, we have Benjamin from @jetbrains talking about diversity @devrelcon pic.twitter.com/ubLX9amuYo\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) December 7, 2022 It\u0026rsquo;s almost at the end. The last talk was about how we can up our value in DevRel, I found it very useful and inspiring.\nThen we have the birthday star @mattstratton talk about #DevRel value @devrelcon pic.twitter.com/UdmPLh87Zj\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) December 7, 2022 Then it all comes to the end. I enjoy this conference. I feel that I learnt a lot at this conference and the community is so nice. Everyone is very supportive and I feel that we understand each other and therefore we are super supportive of each other. I wish to go to more of this as this is very helpful in helping the team move forward and plan our journey to be better.\nThank you @devrelcon for giving us a conference with such a good vibe, until next time ❤️ pic.twitter.com/DWS3eGVJeW\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) December 8, 2022 Every speaker at #DevRelCon gets a standing ovation at the start of their talk, and my dudes, it\u0026#39;s an amazing feeling, can every event do this from now on?! Yes? Yes! pic.twitter.com/3P02S3aXyc\n\u0026mdash; Floor (@FloorDrees) December 7, 2022 ","date":"8 December 2022","externalUrl":null,"permalink":"/posts/2022-12-08-devrelcon/","section":"Blog posts","summary":"","title":"DevRelCon 2022","type":"posts"},{"content":"I was thinking about what I have in common in visiting Berlin and Barcelona (besides both cities\u0026rsquo; name starts with B). I figured something. In Berlin, I gave a talk about Numba and run a PyScript workshop. In Barcelona, I give a Numba workshop and convinced some people to try PyScript. So can this be a Numba + PyScript trip?\nDay 1 - PyBerlin Day 1 # After my early flight to Berlin, I arrived at the office. I checked in and stay on the 1st floor where I prepared for my talk in the evening. I do not mix with colleagues on the 3rd as I am still a bit unwell and afraid I may spread the cold to others. I also skip lunch gathering and head to check in to the hotel early to get a bit of rest before the meetup in the evening.\nIn the evening I took the S-bahn to the venue. It is in a very nice and chill part of the city. After the opening and a talk by the sponsor. I gave my talk about Numba. The recording is available in the video session.\nSuper excited for @cheukting_ho speaking about #numba at @PyBerlinPython! #python pic.twitter.com/i4CrOj9kuB\n\u0026mdash; daniel ❤️😍😏😏😏 (@misterrios) November 23, 2022 Next, we have a small break and we attempt to connect with PyMunich it\u0026rsquo;s great to see some familiar faces on the screen. I like the community in Germany as they are all very connected instead of individual meetups in different cities.\nHello @PyMunich ! @laysauchoa I saw you pic.twitter.com/bm8HDNj8Jx\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) November 23, 2022 Then there are other talks. I got a chance to meet a few people that I know and met at PyCon DE. It\u0026rsquo;s nice being there but I didn\u0026rsquo;t stay for too long as I have to head back to the hotel and get the rest I needed. It will be a long week.\nDay 2 - PyBerlin Day 2 # Today is event number 2. Originally I plan to go to the office but I am still not feeling 100% and also there\u0026rsquo;s a lot of work to do. I opted to stay in the hotel and get my video rendered. I also have a final check with the material that we are using at the PyScript workshop at night.\nI head to the meetup place, which is located at a different place than event number 1. It is in the south of where I stay. I took the U-bahn to get there.\nWelcome to @PyBerlinPython again! Day 2… now it is similar to a conference pic.twitter.com/T8fL1YSgn7\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) November 24, 2022 At the meetup, it is like a classroom setting where people got a tiny desks to work. We start with an introductory talk by Antonio my colleague who is in the PyScript team. Then we introduce the hands-on workshop. People can work either on their own or in groups.\nPyScript workshop is already in progress 🎙️🐍✨ Thank you @antocuni and @cheukting_ho pic.twitter.com/iPwJO90mQN\n\u0026mdash; PyBerlin (@PyBerlinPython) November 24, 2022 The meetup is very chill. My friends are also there so we had a good time chatting about the future event and conference plans, work to be done within the community etc.\nDay 3 - Barcelona here we go # It is a travel day! So I pack up and check out on time to head to the airport. The experience at the new Berlin airport is now bad and I got to Barcelona on time. It is my first time in the city. The first thing I notice is that I do not recognise any words at the airport. Then I realise that the words on the first row are Catalan and the second is Spanish, then English. In Barcelona, their first language is Catalan.\nAnother thing is, most people here speak English. So they speak at least 3 languages - Catalan, Spanish and English. It reminds me of back home in Hong Kong where people speak 3 different languages at various levels.\nI follow Google\u0026rsquo;s advice and get an airport shuttle bus to the city. Then I took a metro to the hotel I am in. I am staying close to the PyDay venue instead of the city centre which I think it\u0026rsquo;s a good decision.\nAfter checking in. I spend most of the time planning on Pyjamas Conf which is happening the next day. I am a bit nervous as I have to run both an online conference and give a workshop at the same time the next day. I am glad that I have friends to help and they are so reliable that I can trust them with many things.\nDay 4 - PyDay BCN and Pyjamas Conf # It\u0026rsquo;s the big day! In the morning, I wake up early, have breakfast then prepare to start Pyjamas Conf. After the opening and a technical issue with the first speaker. I entrust most of the operation with my friend Martin and Cristián. Then I head to the PyDay venue which is only 15 mins walk from the hotel.\n@PyjamasConf 😀Great topics and great insights!!! pic.twitter.com/nh5G7DKTvy\n\u0026mdash; Samantha Haak (@samyhaak) November 26, 2022 I went to the venue. After introducing myself to the organisers. I have a look around. It is a very interesting place. It is inside a tiny stadium that has been repurposed. But they still have a big terrace that we can use to take group pictures and socialise.\nThank you all for attending the #PyDayBCN!! 🥰 pic.twitter.com/aJYf3L9TVZ\n\u0026mdash; Python Barcelona (@PyBCN) November 26, 2022 Then I sit down and pull out my laptop. I try to keep an eye on Pyjamas Conf\u0026rsquo;s live stream while socialising with people when I have a chance. I also want to practice my Spanish a bit.\nHad a great lunch! 🍴 pic.twitter.com/BYCIaGN2vw\n\u0026mdash; Python Barcelona (@PyBCN) November 26, 2022 When it\u0026rsquo;s time for my talk. I give my full attention to it. It\u0026rsquo;s again Numba. But this time it\u0026rsquo;s a workshop so people have time to work on it and ask questions.\nCómo puede ser que @cheukting_ho tan guay!\nHoy se divide entre el #pyday y la @PyjamasConf y además nos enseña a hacer Python más rápido 👏🏻👏🏻 pic.twitter.com/KeivgIocVF\n\u0026mdash; Jimena (@Jimena_y_yo) November 26, 2022 After that, I attended the lighting talk session and the closing. It ended with a fun quiz. After the conference, the organisers invited me for a drink later in the evening. Since it is near the hotel I plan to attend after checking if Pyjamas Conf is streaming fine at the hotel.\nCongratulations to the quiz winner. Thank you so much for #PyDayBCN @PyBCN pic.twitter.com/UBhrcbWy35\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) November 26, 2022 After checking with Cristián that he can handle it while I am away, I have a few beers with the organisers. They are super nice and because I am there, they have to say everything twice - in Spanish and then in English. But I do like hanging out with them I try to speak a bit of Spanish but I am still not good enough to have a conversation with them. However, I managed to speak about PyScript to a few organisers and they know that we have passed the alpha stage and are excited to give it a try soon.\nWe love @cmaureir because is hosting our sessions 🙈💖💖 #pyjamas @cheukting_ho 🍻 pic.twitter.com/1B6eehPvla\n\u0026mdash; Jimena (@Jimena_y_yo) November 26, 2022 After that, I head back to the hotel to \u0026ldquo;drive\u0026rdquo; Pyjamas Conf till Cristián woke up again in the morning. With help of volunteer hosts, it is not too hard to stay awake and monitor the situation. Except that we had one speaker missing everything was fine. We have a backup for that which is good.\nDay 5 - Recover from Pyjamas Conf # I carried on till the next day. I managed to get a tiny nap when we have a technical break between streams but things get much easier when Cristián arrived. I bit he was tired too but he insisted to help. Then when all is done, I gave the closing and now it\u0026rsquo;s time for a good rest.\nGood morning! nothing better than waking up really early to continue following @PyjamasConf ! if you are still around, or opening your eyes, drop by the stream! https://t.co/QY72HWLBBj #pyjamas #python #community\n\u0026mdash; 「Cristián」 (@cmaureir) November 27, 2022 When I woke up in the afternoon, I need to treat myself so I went to the city centre and have a bubble tea. It is not planned but I happened to see my favourite bubble tea chain in Barcelona and I cannot resists getting one there.\nMy treat after the 24-HR @PyjamasConf pic.twitter.com/DTfT1MIT0l\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) November 27, 2022 I also got a chance to check out the city and have dinner. I like it, especially the beautiful buildings by Antoni Gaudí, it looks so out of this world. I decided to get a ticket to visit one of his most famous buildings La Sagrada Familia before flying back home the next day.\nDay 6 - Going home # Before flying home in the afternoon. I went to see La Sagrada Familia in the morning. Fun fact, it is still unfinished! The project has been started more than 100 years ago. I have seen many magnificent buildings before and most of them are centuries old. This is the first time I visit a magnificent building of our time. Imagine after a few generations, when people visited it and were blown away by it like I was blown away by Hagia Sophia. I hope I will get another chance to visit it again when it is finished.\nAfter the visit, I am prepared to go home and get ready for the next event.\n","date":"28 November 2022","externalUrl":null,"permalink":"/posts/2022-11-28-pyberlin-pydaybcn/","section":"Blog posts","summary":"","title":"PyBerlin and PyDay BCN","type":"posts"},{"content":" Using Numba Effectively Today // Cheuk Ting Ho Numba is syntactically easy to use - just add a decorator, but actually very hard to use effectively. The reason being it is difficult to understand what Numba does to speed up the numeric operation. This talk will provide all the basic knowledge that you need to make Numba works for you. ","date":"23 November 2022","externalUrl":null,"permalink":"/videos/by96j3fz6wy_pyberlin_36_-__special_autumn_event_day_1/","section":"Presentation videos","summary":"","title":"PyBerlin 36 - 🍁🍁 Special autumn event. Day 1 🍁🍁","type":"videos"},{"content":"I am on the road again. This time is a bit far. I was wondering how I can be in New York and Dublin in a week. But somehow Dublin is on my way home from New York, all I need is an overnight flight so I can leave almost at the end of PyData NYC and arrive in time for PyCon Ireland.\nDay 0 - Arriving at the big apple # My flight took 6 hours and it arrived in New York late afternoon. After checking in to the hotel and refreshing myself, head to the speakers\u0026rsquo; social at the fancy office of The view was amazing. Then I join up with Sophia and Erik for dinner before my jet lag called me to head back to bed.\nDay 1 - PyData NYC Day 1 # Because of the jet lag, I woke up super early. But then I spend some time working on my workshop and other stuff. I then get ready to commute like a New Yorker to time square. However, my phone decided to not give me internet once I step out of the hotel so a do navigate my way like a New Yorker. Luckily the NYC subway is easy to get used to and I remember which train to get from my adventure the day before. So I can get to Manhattan, even Time Square, with no problem. My only worry is that I may not be able to find the venue once I get off the station. But luckily, once I got out, there is a huge Microsoft sign at the entrance of a building and I know that would be the place for PyData New York. (Or at least someone there would know)\nBreakfast is served @pydatanyc pic.twitter.com/muQUXcwNug\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) November 9, 2022 So I got there and picked up my badge and entrance pass (we need one each day for the escalator). What is waiting for me upstairs are coffee and breakfast. After the quick breakfast, I meet up with colleagues from Anaconda at our booth. We have a big table next to the entrance. However, many people confused us with the organisers and ask us conference logistic-related questions, which is very funny.\nThen it is the opening. It has been 3 years and everyone was so happy to see each other in person again. We were reminded to wear a mask during the talks.\nOpen keynote of @pydatanyc by @ChelleGentemann from @NASA pic.twitter.com/8OmS2WotmR\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) November 9, 2022 The first talk, which is also the first keynote is by Dr Chelle Gentemann from NASA. She talked about the TOPS program and the mission to make sure all the data and code in published papers are public and results are reproducible. I agree with everything she said and she also makes me understand the goal of the TOPS and the grant that we are trying to apply for. Later on, I got a chance to chat with her and further clear some of the questions that the team had about the grant.\n@sophiamyang is giving a talk about @HoloViz_org at @pydatanyc pic.twitter.com/2Kn6YilXSD\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) November 9, 2022 Then we are socialising around, have team meetings and then prepare for our talks after lunch. Sophia has her talk about Holoviz and I have my talk about Hypothesis.\nAmazing tutorial on @numba_jit by @cheukting_ho 🙌❤️😍 at @PyData #PyDataNYC pic.twitter.com/II1BRCheHM\n\u0026mdash; Sophia Yang (@sophiamyang@fosstodon.org) (@sophiamyang) November 11, 2022 After our talk, we like some fresh air so we went to the nearby Bryant Park. Since it is close to Christmas, there is a festive market there and Sophia likes it.\nHappy memories with my colleagues in NYC pic.twitter.com/J3UtOfxPbj\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) November 15, 2022 In the evening, the Anaconda team heads for a company get-together dinner. we walked there and have a small tour of the city. The food there is great and thank you Fara for the recommendation.\nDay 2 - PyData NYC Day 2 # I am still under the jet lag spell but I was able to sleep a bit longer. I head to the conference like the day before and was there at the keynote. It is by the 2018 Nobel Prize Winner in Economics Sciences Paul Romer. He had a very interesting insight into Jupyter and how to make it more useful for scientists. By making it more robust and more secure by including crypto signing.\nKeynote this morning by Paul Romer @pydatanyc pic.twitter.com/3fomLSRsOo\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) November 10, 2022 I sat at our booth the whole morning while Sophia went to the fireside chat with Chelle.\nThen we went out for lunch and have a walk on the Brooklyn bridge. We headed back just in time for the lighting talk and I was lucky to be about to talk about Anaconda\u0026rsquo;s support for me to bring Humble Data to Ghana.\nIn the evening I went to socialise with other conference attendees, but then I decided to get more time to rest up by having an early night and dinner by myself.\nDay 3 - PyData NYV Tutorial Day # Today is the day I give the new workshop about Numba. It is also the day I checked out of my hotel and leave the city. But first, in the morning, I had breakfast at the conference then I chat with friends at NumFocus booth.\nAfter giving the workshop. I have to slowly wind down and prepared to leave. I got a chance to talk to Peter Vidos who is the maintainer of Vizzu. After that, I said Goodbye to Sophia and headed to the Newark Airport.\nLast week at #PyDataNYC was a blast!\nAmazing presentations, top-notch projects, and a super welcoming, friendly atmosphere. The supportive, excited reactions to @VizzuHQ\u0026#39;s open-source animated data storytelling tools were very encouraging. 🥰📈🎬🚀 1/5 pic.twitter.com/DGJTQsfIQK\n\u0026mdash; Peter Vidos (@petervidos) November 14, 2022 I tried to make myself comfortable as the flight to Dublin will be the only rest I have between the two events\u0026hellip; no sleep at all. Unfortunately, I was assigned the middle sit but I did the best I could to get a few hours of nap during the flight.\nDay 4 - PyCon Ireland Day 1 # I landed slightly before 7 am local time. The flight was running early. I quickly get through the airport and call a taxi to the hotel where I will be staying and also the venue of the conference.\nI arrived at the hotel. They are so nice that gives me the only room they have for me to check in early! I was so pleased as I can at least refresh myself before attending the conference.\npic.twitter.com/GGHaJ8Kmyp\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) November 12, 2022 I get to the reception and realise they have an everybody contributes principle and speakers need a ticket too. Luckily the organiser opens the ticket sale for me and I can get a last-minute ticket.\nThen I attend the opening. after that, I was feeling so tired that I started to fall asleep. I am glad that my talk is not on the first day morning so I head back to the room to have a quick nap. When I wake up, it\u0026rsquo;s already lunchtime.\nLunch time at #PyConIe pic.twitter.com/hd1k7rWM93\n\u0026mdash; Python Ireland (@PythonIreland) November 12, 2022 At lunch, I meet a lot of friends. One of them ask me questions as if he was waiting to meet someone from Anaconda to ask. It is about Nucleus and I will forward the contact and questions to the team for answers.\nIn the afternoon I mostly talk with folks in the hallway. I got a lot of insight from Mark, my friend at Mongo DB, they have a booth there and from observing their work I got some ideas about how Anaconda can approach the future event as well.\nAnd we\u0026#39;re live #PyConIE!\nCome talk to me about @MongoDB - maybe I\u0026#39;ll tell you a 🚜 joke. pic.twitter.com/vHBF1Z5mD1\n\u0026mdash; Judy2k (@judy2k) November 12, 2022 I end the first day of the conference by giving a Lightning talk about Humble Data at PyCon Ghana. Many people come to talk to me after about that and the feedback is positive.\nDay 5 - PyCon Ireland Day 2 # On day 2, I overslept a bit as the jet lag of coming back from New York is still in effect. I got my talk ready and then have lunch sitting with a girl from Argentina who just moved to Dublin. Dublin is a tech hub that attracts tech talents around the world.\nAfter lunch, I gave my talk. People are so interested in it and I spend too much time in Q\u0026amp;A. I then chat with people who didn\u0026rsquo;t get the chance to ask questions in the hallway.\n“Trying No GIL on Scientific Programming” by @cheukting_ho at #PyConIe pic.twitter.com/7EVE0s9ulK\n\u0026mdash; Sofi 👩🏻‍💻 (@EnriquetaSo) November 13, 2022 Now my talk is finished. I was sitting in the lobby having a pint of Guinness and chatting with my friends at the conference. As the conference is situated in the hotel and some folks just grab beer or Guinness from the bar and socialise in the hotel lobby.\nGood bye @PythonIreland pic.twitter.com/FoPQN1e4Mv\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) November 13, 2022 Then it\u0026rsquo;s time to say goodbye to Ireland. I head to the airport right after the closing is finished. I was hoping to get home not too late so I can relax before Monday. Unfortunately, there was some problem with our plane at the airport and we waited for more than an hour on the plane but the problem is not resolved. We have to get off and board another plane. In the end, there was more than 2 hours delay and by the time I got home, it was already very late. Ryanair was fine last week but it is not fine again this time.\n","date":"14 November 2022","externalUrl":null,"permalink":"/posts/2022-11-14-pydatanyc-pyconie/","section":"Blog posts","summary":"","title":"PyData NYC and PyCon IE","type":"posts"},{"content":"It is another time that I went to multiple events at a time! I started with PyCon Sweden in Stockholm and end up being in Gliwice for PyCon Poland.\nDay 0 - Arriving in Stockholm # I took an early flight from London and so happened that Nicholas is on the same flight, we were even on the same row! But we didn\u0026rsquo;t chat much on the flight as it was super early and I just doze off.\nAfter we arrived, Nicholas was waiting to be picked up by his friend Kushal and I head on to take the train to the city. The connection from the Alanda Airport to the City is great! It is so fast and in a blink of an eye, I am in Central station.\nGood morning @pyconse #Stockholm pic.twitter.com/lnyLQMW0i6\n\u0026mdash; Kushal Das (@kushaldas) November 3, 2022 After a short walk, I arrived at Gamla Stan, the old town area. This is a tourist area and got many museums. I had lunch and still got a bit of time before check-in so I went to the Nobel Price museum.\nAfter that, I check in at the hotel. Have a few meetings and work a bit. Then I went to the conference venue, which is the same location as the hotel, to say hi to the organisers and help pack the swags for the attendees the next day.\nWe are ready for @pyconse pic.twitter.com/uD3n0cumCf\n\u0026mdash; Kushal Das (@kushaldas) November 3, 2022 Later in the day, Mahe and Valerio arrived and it was so great to meet other colleagues. We went to a Swedish restaurant for dinner and had a good chat.\nDay 1 - PyCon Sweden # The next day the conference started, after picking up my badge, I had breakfast before the opening of the conference. I am impressed that they have to pull up a full-size conference in a short time and congratulate the team who made it happen.\nOur chairwomen kicks of the @pyconse #community @ThePSF @pyladies @helioloureiro @kushaldas pic.twitter.com/xviHlGr5z5\n\u0026mdash; Anwesha Das (@anweshasrkr) November 3, 2022 We have our first keynote. Julien Simon from Hugging face is talking about how using the transformer on Hugging face can be very easy and accessible for coders who are not machine learning experts. He demonstrates object recognition for Swedish meatballs and tries to improve it by auto-train with more pictures of Swedish meatballs. The way he got the pictures of Swedish meatballs is not by scraping from the internet but by Stable Diffusion, an image generative model. Turns out Swedish meatballs are quite hard to generate.\nFirst keynote is about hugging face @pyconse pic.twitter.com/MRrtOVv7rc\n\u0026mdash; Cheuk Ting Ho at #PyDataNYC (@cheukting_ho) November 3, 2022 After the keynote, it\u0026rsquo;s my talk. Since I have delivered this talk more than a few times now I am confident about it and it was done quite smoothly.\nBack to testing and hypothesis testing with @cheukting_ho at #pyconse #python pic.twitter.com/hjfjDpURQo\n\u0026mdash; Vasyl Dizhak (@rootart) November 3, 2022 Then I went back to my hotel room to prepare my new talk for PyCon Poland. I head back around lunchtime and forgot about the speaker photos that I am supposed to take with all the speakers at lunch. Turns out all of us forgot and no one from Anaconda remembers to be there for the speaker photos. Oops.\nAfter lunch, I chat with some people and then head back to the hotel room for more meetings. It is a busy week! After that, the Anaconda team regroup for dinner. We went for the recommendation from the reception and went to a traditional Swedish pub next door. It\u0026rsquo;s the only day that all the folks from Anaconda at PyCon Sweden sit together for dinner and we have some good chats and some secret ideas for April Fool\u0026rsquo;s day.\nDay 2 - Goodbye Stockholm, Hello Gliwice # On the second day of PyCon Sweden, we start with a sponsored keynote. I also got the chance to finish up my new talk at PyCon Poland. I stay in the hall and chat with people after the keynote then head back to my hotel room to pack up and check out. Unfortunately, I have to leave early for Poland and miss all the great talks and workshops by the Anaconda team.\nOur next speaker is ntoll talking about @pyscript_dev and introduced by Py. @pyconse @ThePSF @anacondainc pic.twitter.com/hRJnuKlBZT\n\u0026mdash; Kushal Das (@kushaldas) November 4, 2022 The travel to the airport and the airport experience has been great! Thanks to the very nice public transpiration in Stockholm. I am afraid things won\u0026rsquo;t be that easy for Poland.\nI have a bit more than an hour waiting at the gate, so I had lunch at the airport. I am starting to feel a bit under the weather so I sit down and rest before my flight. Luckily the flight is on time and I arrived at Krakow airport in time to catch the only bus that go directly from Krakow airport to Gliwice.\nAfter waiting for a bit and learnt that Polish bus drivers are not people you want to mess with. I get on the right bus and started the almost 2 hours bus ride to Gliwice. When I arrived, I took a short walk to the hotel that the organisers provide and checked in. As I am still a bit unwell, I don\u0026rsquo;t feel like socialising for that night and need some rest. I went for a quick dinner nearby and head back to the hotel for more rest.\nDay 3 - PyCon Poland # At breakfast, I met some familiar faces, Laysa from Munich and Maho who we met at PyCon FR years ago.\nLOOK who I found at @pyconpl 2022!\nHappy to meet with @cheukting_ho ☺️ pic.twitter.com/NPh00tAc0O\n\u0026mdash; laysauchoa (@laysauchoa) November 6, 2022 PyCon Poland already started 2 days ago so I join on day 3 of the conference. The vibe of the conference is so different from that of Sweden. It\u0026rsquo;s in a university building and people are super chill. Sponsors got a lot of swag to give away which is a huge contract to the sponsor booths from PyCon Sweden.\nIf you are at #pyconpl 2022, come say Hi 👋 to our sponsors!@RevolutApp\nscalosoft .com pic.twitter.com/VQFVkjymrR\n\u0026mdash; PyCon PL (@pyconpl) November 4, 2022 I got my badge and sit in the hall to work on my workshop for PyData next week. Then I chat with Filipe who is the main organiser of the conference. Later we had lunch when Laysa join me and also I met Tonis who is one of the organisers of PyCon Estonia.\nCoffee break @pyconpl pic.twitter.com/57bKPNQZAi\n\u0026mdash; Cheuk Ting Ho at #PyDataNYC (@cheukting_ho) November 5, 2022 I gave my talk in the afternoon. It is a new talk and Artur (my friend from EuroPython) later told me that I got typos in the slides (Oops.. which is quite common for new talks) and people are interested in the topic of no GIL and making Python fast.\nAfter my talk, I sit and chat with two Armenians and you rarely meet someone in tech from Armenia. We talk about a lot of stuff including the harsh topic of global politics.\nDzień dobry! Good morning! #pyconpl 2022 https://t.co/edIIZR7sN1\n\u0026mdash; PyCon PL (@pyconpl) November 6, 2022 Before the end of the day for the conference. I need some food (I only had soup at lunch). So I went with Laysa and Tonis for food and drinks. Later, we go to the social event venue and there are board games. Laysa brought her own game and she play it with Tonis and some other friends. I prefer to chat with Artur and his friends at the conference. We talk about what PyCon Poland was and could be in the future and the horrible Polish trains.\nSocial event for #pyconpl 2022 is happening now! Who is up for some boarding games?! 🤪 pic.twitter.com/pN3m3cztZm\n\u0026mdash; PyCon PL (@pyconpl) November 5, 2022 Day 4 - Closing of PyCon Poland # The last day of PyCon Poland started with my talk. I am speaking twice in PyCon Poland this year. It\u0026rsquo;s about PyScript and I got a lot of people, including Maho interested in the topic and he was curious about the development of Python in the browser.\nAfter my talk, I am more or less done with the conference and since the weather is super nice. I took a walk with Artur at the park and back to the conference for lighting talks. Most people already left as it is Sunday and the conference is only half a day. Since I have a flight to catch, after the closing and saying goodbye to the organisers, I had a quick lunch and headed to the airport.\nThank you @pyconpl and mark down 29th June to 2nd July for the next one pic.twitter.com/itDxEFglj9\n\u0026mdash; Cheuk Ting Ho at #PyDataNYC (@cheukting_ho) November 6, 2022 Back home, I need some rest before heading to PyData New York in 2 days.\n","date":"6 November 2022","externalUrl":null,"permalink":"/posts/2022-11-06-pyconse-pyconpl/","section":"Blog posts","summary":"","title":"PyCon SE and PyCon PL","type":"posts"},{"content":"After having this idea for a while. We finally have our 1st PyScript Dojo where people can learn Python and have fun at the same time. As PyScript is still very new, we are not ambitious to ask for creative projects but to get people interested and start writing PyScript for the first time.\nThankfully, we have Anna, organiser of PyLadies London, organising this evernt for us. She is very professional and makes sure everything goes smoothly and everyone is happy at the event. We are also very glad to have Infinity work hosting us at their beautiful office which transform into a theatre during the event.\nThe event starts with people networking and having a bit. Then after a brief introduction by Anna, my colleague Nicholas gives out the background information and some technical knowledge about PyScript. Because he is such a good teacher, even though the details of PyScript can be very technical, he can explain in a way that even kids can understand.\nOur first @pyscript_dev dojo pic.twitter.com/Oq1X5OoUob\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) October 25, 2022 Then I point the participants to try our PyScript by visiting the workshop materials I prepared and the official website of PyScript where they can check out the documentation and examples of what PyScript can do. I am so glad that people are working in small groups and most of them can finish the workshop materials. They also raise some very interesting questions and that helps me to understand from a learner\u0026rsquo;s perspective what is not clear enough and needs clearer instruction and better explanation.\nOverall, it is a great event and there are plans to have another in Berlin next month. I hope it will be great as well.\n","date":"25 October 2022","externalUrl":null,"permalink":"/posts/2022-10-25-pyladiesldn-pyscirptdojo/","section":"Blog posts","summary":"","title":"PyScript Dojo at PyLadies London","type":"posts"},{"content":" Many Python conferences have \"sprints\" included in their conference schedule. In this talk, we will explain what is it for the newcomers, why is it important to the open-source community, and as an organizer and maintainer how can you help this \"sprints\" movement. ","date":"22 October 2022","externalUrl":null,"permalink":"/videos/c_hop_v1gj0_came_for_the_conference_stayed_for_the_sprint/","section":"Presentation videos","summary":"","title":"Came for the Conference, Stayed for the Sprint","type":"videos"},{"content":"It is a very rare opportunity to be doing a France-Germany tour of speaking at various meetups. The original plan was to speak at PyLadies in Paris, then to the PyData Südwest in Germany then to Berlin to give a half-day PyScript workshop. Since the workshop is cancelled. I will be joining the PyLadies Berlin event and visiting our Berlin office instead. What a trip!\nDay 1 - Pyladies Paris # I arrived in Paris in the morning, the first thing is to go to a shared office to work. Unfortunately, the one that I picked to go to is closed and the system has not been updated\u0026hellip; so I have to head to the other one, by the time I finally got settled and work it is already 11 am. However, I managed to get some good work done.\nAfter lunch I checked in at the hotel, freshen up and work from there instead. I prepared my talk as PyScript has now graduated from the alpha version and the demo needs to be updated.\nUnfortunately, I messed up and the demo that I updated is for tomorrow. But since I arrived at the meetup venue early, I managed to update the demo I need very quickly.\nThank you to our speakers @cheukting_ho and Elias Dorneles for amazing talk tonight #talent_io pic.twitter.com/kcCUun9d5z\n\u0026mdash; mojdeh rastgoo (@RastgooMojdeh) October 18, 2022 After a brief introduction and a few words from the host, I gave my talk. We also got online streaming set up so people can also watch it on YouTube. I got a few questions as folks seem interested and once again someone as if the Python package needed can be cached in the browser. I am sure the PyScript team is considering that.\nWe\u0026#39;re so happy to at @talent_io for another meetup, where @cheukting_ho is talking about PyScript: Will PyScript replace Django? #python #pyscript pic.twitter.com/NVNzLRWIAM\n\u0026mdash; PyLadies Paris (@PyLadiesParis) October 18, 2022 After that, it\u0026rsquo;s the talk by another speaker Elias, who is an engineer from Brazil. Get a chance to chat with him after this talk he has also contributed to BeeWare in the past. He said it is good that Anaconda is now supporting BeeWare.\nTalk of Elias Dorneles begins now. Check it out at https://t.co/sFzPM2ZuUG@talent_io with @pyladies 💚 pic.twitter.com/bbof97QSoV\n\u0026mdash; PyLadies Paris (@PyLadiesParis) October 18, 2022 The meetup ends before 10 pm, which is great as I need to get some rest after the overnight flight from Ghana and the early train ride to Paris.\nSee the PyLadies Paris meetup video recording\nDay 2 - PyData Südwest # I am so glad that I don\u0026rsquo;t have to travel early in the morning again. I work up and stay at the hotel to work a bit before checking out. After that, I had lunch and headed to the Gare d\u0026rsquo;Est for my train to Germany. The first leg of the journey is to get to Karlsruhe HBF, I managed to work a bit on the train even though the internet connection is not stable. I have been told that my connection to Heidelberg has been cancelled and will have to find a detour to get there. Fortunately, my friend, Alexander, who is also the organiser of PyData Südwest arranged for his colleague, Florian who will make the same journey from Karlsruhe to Heidelberg, to pick me up and lead the way. It\u0026rsquo;s funny that in Germany face mask is mandatory on transport so once we crossed the border someone came and remind me to put the mask on. Luckily I always have one with me.\nI continue my journey with Florian and another lady. We took the train to Mannheim (where I plan to stay) and then connect to Heidelberg which is only 15 mins train ride away. I can now see why PyData Südwest covers all these cities as they are super connected and close to each other.\nWelcome to @PyDataSW when will I go to all the PyData? pic.twitter.com/4Ew06wzD14\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) October 19, 2022 The meetup was great! I gave a talk about PyScript and people are interested and want to try it out. I also got people coming to me and saying they love Anaconda. They said they have used it since they were in school and I am so glad to find fans of Anaconda and be able to meet them.\nSo happy to have ⁦@cheukting_ho⁩ speaking at ⁦@PyDataSW⁩ tonight about PyScript 🚀⁦@anacondainc⁩ pic.twitter.com/QYH7keDi4w\n\u0026mdash; PyData Südwest (@PyDataSW) October 19, 2022 See the PyData Südwest meetup video recording\nDay 3 - PyLadies Berlin # In the morning, I use the hotel room as an office before checking out. Then I join Alexander for lunch, where we will have spaghetti ice cream for lunch (Why not?). He keep mentioning that the spaghetti ice cream is invited in his city and said I need to try it when I drop by for years so today is the day. I would say, it is very creative and looks very interesting. It tastes just like a strawberry sundae so I would say it is more for Instagram than my taste buds. But Alexander and I were having a good time catching up and talking about the upcoming community events.\n🍝🍦Some of the best parts coming to ⁦@PyDataSW⁩ is getting original spaghetti ice cream on the way pic.twitter.com/lhTCnWHJeC\n\u0026mdash; Alexander CS Hendorf 🏳️‍🌈🇪🇺💙💛 (@hendorf) October 20, 2022 After that, I took the 4 hours+ train to Berlin. The train was quite busy and overall not a great experience. I managed to work a bit and sleep a bit but by the time I get to Berlin my legs were numb.\nI used to go to Berlin a few times per year so I am ok navigating the city. I arrived at the PyLadies open hack event.\nI made it! @PyLadiesBer hack night ❤️ pic.twitter.com/yXBcg33FSE\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) October 20, 2022 At the event, I am so glad to meet friends. Including Jessica who\u0026rsquo;s the PyCon Namibia organiser. I have not met her since the pandemic and I am so glad that I don\u0026rsquo;t have to wait till PyCon Namibia to see her. She is currently working at a University in Berlin on a short project. She is such an amazing woman. We talk a bit about my plan to bring Humble Data to Namibia, and my experience in PyCon Ghana. I am looking forward to being in Windhoek again.\nHaving a great time at our #Hacktoberfest open source hack night special! 👩🏾‍💻👨🏾‍💻👩🏼‍💻 A big thank you to our sponsor @saucelabs! 👏 #pyladies #opensource #WomenInSTEM #womenintech pic.twitter.com/JrWtgelwIo\n\u0026mdash; PyLadies Berlin (@PyLadiesBer) October 20, 2022 Day 4 - Meeting the Anaconda Team # I am half a year too early for @PyConDE oops 😅 pic.twitter.com/Cs4YxngkXe\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) October 21, 2022 The next day I went to the office in Berlin where most Anaconda people go. Since it is Friday the office is quite chill. I got a chance to have lunch with my colleagues, we went to a burger place nearby.\nGlad to meet some of my amazing @anacondainc colleagues in #Berlin pic.twitter.com/3FQVNZZOiL\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) October 21, 2022 After a long work day, I head back to the hotel for a good night\u0026rsquo;s sleep and is ready to head home the next day.\n","date":"21 October 2022","externalUrl":null,"permalink":"/posts/2022-10-21-pyladies-and-friends/","section":"Blog posts","summary":"","title":"PyLadies, PyData and Friends","type":"posts"},{"content":" PyScript hit the community like a storm after its announcement and becomes the top trending project on GitHub. It allows the running of Python on the browser. But there’s still some misunderstanding of it. Will it replace all web frameworks? What you can or cannot use PyScript for? Let’s find out. ","date":"19 October 2022","externalUrl":null,"permalink":"/videos/hwr2tawoinm_pydata_s%C3%BCdwest_-_revolutionize_data_visulization_with_pyscript/","section":"Presentation videos","summary":"","title":"PyData Südwest - Revolutionize Data Visulization with PyScript","type":"videos"},{"content":"","date":"19 October 2022","externalUrl":null,"permalink":"/tags/pyscript/","section":"Tags","summary":"","title":"PyScript","type":"tags"},{"content":" 7:30 - 8:15 talk by Cheukting Ho 🌟 Cheukting Ho (Anaconda) talk title: Will PyScript replace Django? - What PyScript is and is not Abstract: PyScript hit the community like a storm after its announcement and becomes the top trending project on GitHub. It allows the running of Python on the browser. But there’s still some misunderstanding of it. Will it replace all web frameworks? What you can or cannot use PyScript for? Let’s find out. ","date":"18 October 2022","externalUrl":null,"permalink":"/videos/mqctbu9lmtu_pyladies_paris_-_python_talks_with_cheukting_ho_and_elias_dorneles/","section":"Presentation videos","summary":"","title":"PyLadies Paris - Python Talks with Cheukting Ho and Elias Dorneles","type":"videos"},{"content":"After my first time in PyCon Namibia back in 2019, I decided to attend a PyCon in Africa every year. My next one was planned to be PyCon Africa but then the pandemic hits. I participated online but I always wanted to go to Ghana to meet the amazing Python community. This year I got the chance.\nDay 0 - Arrival # The journey to Ghana was not easy. Luckily I have a trusted companion, my colleague Nicholas. First, the flight was delayed, and the plane was super full, at least at the end of the plane where people were struggling to put their luggage away. So the flight was even later.\nWhen we arrived, the internet at the airport does not work. Though we know later that the organisers were trying to pick us up, we didn\u0026rsquo;t know that and trying to get an Uber was a hassle.\nOn the way, I guess it is because it was late at night, we were stopped by the police and they asked us to leave the car and they did a search on us. Luckily without too much trouble, they let us go.\nWhen we get to the Airbnb, there was a problem with the key locker and it took us 30 mins to get the right code to get the right key. By the time when we get inside, we just want to go to bed as soon as possible.\nDay 1 - Installation party # The next day went a bit better, the first thing in the morning is to get supplies for the flat. We need water as the tap water in Accra is not safe to drink. We walked down Oxford street (which is also the main street where we stayed). It\u0026rsquo;s a bit dangerous and a bit of fun cause there is no clear separation between the car lane and where people should walk. But everyone on the road greeted us saying \u0026ldquo;Welcome to Ghana\u0026rdquo;.\nAfter that, we wait for the organisers to pick us up for the installation party which we help workshop participants to set their computers up for the workshop the next day. We have quite some people coming and even being a bit shy they have all gotten their stuff set up. And the mentors are being very helpful too.\n@PyconGhana installation party, getting ready for the workshop tomorrow ❤️ pic.twitter.com/qpwu4hhv5v\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) October 12, 2022 After we had dinner with an organiser and another speaker from Nigeria. She is a community manager working for Outreachy, an organization that places under-represented people in internship programs in various companies. We have very nice conversations and the food is amazing.\nWe then head back to the flat, and decided to have an early night as both of us are still tired from all the travel. And tomorrow we will have a long day for the workshops.\nDay 2 - Pre-conference workshop # It has been a very busy day, as I have to run the Humble Data Workshop in the morning and the Pew Pew workshop in the afternoon.\nIn the morning we have a room of around 30 people joining the workshop. Some of them who have come to the installation party has got a head start and start working right away. Some of them are complete beginners in Python and it takes a bit of time for them to understand what\u0026rsquo;s going on with the Jupyter notebook. But luckily, we have very capable mentors to help out are they are so lovely. After about an hour, those who got Anaconda installed have already got the idea and are working fine at their own pace. For those who have not installed it, most of them have already started working.\n@HumbleData workshop facilitated by @cheukting_ho with attendees conference tickets sponsored by @anacondainc saw the participation of diverse group of people: from absolute beginners to experts. Just Awesome! 👏#PythonGhana #PyConGhana22 #humbledata #DataScientists pic.twitter.com/NOuVHcuC17\n\u0026mdash; PyCon Ghana (@PyconGhana) October 13, 2022 After the workshop, everyone was so happy and we all took pictures (including lots of selfies). They all now know what Anaconda is and has learnt some basic Python and can use the Jupyter notebook. Some of the ones who are ahead of others already asked me how they can keep learning and I point them to the local PyData group which is run by Dorothy who has also been a great help during the workshop.\nLunch is the famous Jollof rice which the locals said I must try and the food which the Nigerian and Ghanaian are rivals of. I do enjoy the Ghanaian Jollof rice and would like to have the Nigerian version one day.\nThen it is the Pew Pew workshop. I made a fundamental mistake - got the wrong batteries. Dorothy saves me again by running to the supermarket for me. She is amazing! In the meantime, some of the participants can get the Pewmulator running and so later can put the code in the Pew Pew when they are done. Everyone was having fun and they love the Pew Pew devices. I wish next time we can have ones that are designed for them but not the leftovers from the EuroPython which they are happy for me to bring to Ghana. Everyone is so happy to take the device home and I hope they can show their Pew Pew to their friend and family and inspire more people to start coding.\nA super fun #pewpew workshop @PyconGhana Thank you @europythons and @deshipu for the pew pew devices pic.twitter.com/NsduYRfUjx\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) October 13, 2022 In the evening I had dinner with two ladies who are speakers from Nigeria. They are super friendly and teach me a lot of stuff about Africa. I learn something every time I visit and I can meet people from different countries. This just makes me better prepared for the next African trip.\nDay 3 - Conference day 1 # The first day of the conference started with the keynote, by Professor Nii Narku Quaynor who was the leader of the project of first introducing the internet to Ghana. He inspired young people in Ghana about the achievement of the technologies and the things to be careful about when introducing new technologies like bitcoin and blockchains.\nChairman of Ghana dot com,Nii Narku Quaynor @niinarkuquaynor speaking on TrustKiosk System Organizing, Existing Payments architecture that works for 🇬🇭.#PythonGhana22 #PyConGhana22#PyconGhana pic.twitter.com/KPQZNrvPU5\n\u0026mdash; PyCon Ghana (@PyconGhana) October 14, 2022 Then I join the Microbit session by Nicholas for young coders (teenage students). I also got to try the Microbit and it is fun to play with. It is a good educational tool for getting kids into programming.\nAfter a bit of chaos as lunch arrived late, I got to talk to some conference attendees, they are very curious and many people come and say that they have used Anaconda a lot but never met someone working there at conferences. I am so grateful that I got to meet them and encourage them to learn more about data science.\nThe closing keynote is by Abdoulaye Diack, a Research Program Manager at Google AI. Google has invested in AI and machine learning in Ghana. In the keynote, he talked about AI and in one demo, he has shown some generative models. The images generated are \u0026ldquo;street of Osu\u0026rdquo; and \u0026ldquo;programmer\u0026rdquo;, none of them looks like the streets in Osu and the programmers sitting in the conference hall. This shows that since the model and data used are from the west, it lacks diversity and does not represent the people and culture there. He encourages the local folks to contribute to open source to change it.\nThe last keynote of the 1 day of @PyconGhana was amazing. The demo at the end shows that the data to train those models are not representing the street and people here. We need more diversity in open source. pic.twitter.com/o80MQbHRtP\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) October 15, 2022 After that, we are all tired and headed back to the Airbnb and have dinner.\nDay 4 - Conference day 2 # On the second day of the conferences, we started with Nicholas\u0026rsquo;s keynote about coding education. He has this brilliant idea of using the music grade exam system to help people learning to code to be evaluated for their performance and to achieve grades. Many participants show interest in it. He also gave \u0026ldquo;homework\u0026rdquo; to the local folks to grow the local community and it will be the pioneer in code education in Africa when it is PyCon Ghana 2032.\nNicholas, my colleague at @anacondainc is giving a keynote at @PyconGhana pic.twitter.com/rpgnJawp8E\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) October 15, 2022 Then I gave my talk, which is about using Hypothesis to make testing easier and faster.\nHer smile @PyconGhana was contagious. Such an intuitive presentation by @cheukting_ho from @anacondainc\nShe concluded - “…sometimes typing your code is a good idea.”#PyconGhana #PyconGhana22 #PythonGhana pic.twitter.com/sgnDaTMuvV\n\u0026mdash; EL Sëmeion (@elssignal) October 15, 2022 In the afternoon, I spend time chatting with people. I bought an electronic kit from the IoT community in Africa. Their creations at the booth are so fascinating and fun that without a second thought I immediately bought the kit.\nI am into IoT now @PyconGhana pic.twitter.com/aAHCsYP6Pi\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) October 15, 2022 I also get the chance to learn to play the game of Orawe, a traditional African game that involves marbles and a board with 10 indents, which represent houses in it. Each player takes a turn to move the marbles to gain more houses. The folks told me that it used to be a game of war to decide who is the king and also men used to be able to win the game to win their brides. For me, it\u0026rsquo;s a very fun game to play, it involves pattern recognition and some calculation just like playing chess.\nIt’s not just Python but I learnt a new game @PyconGhana pic.twitter.com/0fK4nJYPjF\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) October 15, 2022 We ended the day and the conference with lightning talks and group photos. It is sad to say goodbye and I hope that I will attend PyCon Ghana again in the future.\nIn the evening, we had dinner and social drinks with a few other speakers and the organising team. They were so busy during the conference and it is good that they got to relax and we finally got a chance to chat and know each other better.\nDay 5 - Post Conference # Since our flight back home is in the evening, the organisers are so kind to bring us to see the Christopher Burg (the locals call it Osu Castle) and visit the Art Centre.\nThrough the tour at Osu Castle, we learn a bit about the Ghanain history and the brutal history of slave trading in the 18th centries. We then also visited the nearby Independent Square for pictures as it is the most iconic landmark of Ghana.\nWe visited the Art Centre to buy souvenirs. We are told that we need to bargain there so I put on my bargaining hat and start shopping. With the help of the local organising team, we ended up getting what we planned to get and were having fun bargaining.\nConclusions # I am so glad to have this opportunity to travel to Ghana and be part of the community there. I think it is a very good out reaching effort. I am surprised by the community, many of them are very talented and passionate about technology, data science and AI. I am also glad that many people know about Anaconda before and said it is a very good learning tool for them to transition to Data Science, some of them are teachers or developers. I wish we can do this regularly, reaching out to the Python and Data Science in Africa. I also hope the local community will organise more Humble Data workshops and I can bring Humble Data to more places and plant the seed there.\n","date":"17 October 2022","externalUrl":null,"permalink":"/posts/2022-10-17-pyconghana_2022/","section":"Blog posts","summary":"","title":"PyCon Ghana 2022","type":"posts"},{"content":"","date":"14 October 2022","externalUrl":null,"permalink":"/tags/djangoconeurope/","section":"Tags","summary":"","title":"DjangoConEurope","type":"tags"},{"content":" PyScript hit the community like a storm after its announcement and becomes the top trending project on GitHub. It allows the running of Python on the browser. But there’s still some misunderstanding of it. Will it replace all web frameworks? What you can or cannot use PyScript for? Let’s find out. ","date":"14 October 2022","externalUrl":null,"permalink":"/videos/tzrrimsez88_will_pyscript_replace_django_-_what_pyscript_is_and_is_not/","section":"Presentation videos","summary":"","title":"Will PyScript replace Django? - What PyScript is and is not","type":"videos"},{"content":"After having my talk (in English) accepted, I was told that PyCon Spain will be in Spanish\u0026hellip; I start learning the language a few months back and see if I can survive\u0026hellip; and I did!!!\nDay 0 - Arrival # Just before flying to Granada for the conference, I was on a Camino and was just passed the border and spent the night in a small village called Oía. So I already have an understanding that I cannot expect everyone to speak English. I am in the mood of trying to speak Spanish at any chance, and it was fun.\nDisfruto churros aquí @PyConES pic.twitter.com/ahLFgcyJV1\n\u0026mdash; Cheuk Ting Ho at #PyConES (@cheukting_ho) September 30, 2022 I met up with a few people including the organiser of the conference. We had tapas and I was mind blown by the amount of food that we were given.\nY ustedes ¿cómo llevan la @PyConES? #PyConES22 nos vemos mañana! pic.twitter.com/wjYKRA5piu\n\u0026mdash; 「Cristián」 (@cmaureir) September 29, 2022 Day 1 - Workshops # The first day of the conference is workshop day and for people to pick up the badges. The sponsors already have the tables ready. I mainly spend time staying in the \u0026ldquo;hall track\u0026rdquo;. I tried to speak with some people. Some of them are happy to speak English with me but what I love the most is trying to speak to people who do not speak English and I have to try my Spanish hard.\nAfter picking up my badge, I spend some time working and finished working on my talk.\n@PyConES comienza ahora! pic.twitter.com/S6nzG6ovbX\n\u0026mdash; Cheuk Ting Ho at #PyConES (@cheukting_ho) September 30, 2022 We also have the dinner for the minorities (PyLadies plus other communities that support minorities in the Python community). I would say the vibe is super nice, I got a chance to talk to different people (in English and Spanish). People asked about my work and I can tell them about Anaconda and PyScirpt.\nThe dinner starts and ends quite late (especially for me who is from the part of the world where we have dinner around 6 pm), by the time I get to bed it\u0026rsquo;s already passed 1 am.\nDay 2 - Conference # Despite the lack of sleep, I arrived at the conference on time for the opening and the keynote.\nAfter a brief coffee break, I have giving my talk. The audiences are very interested in the topic and maybe we will see PyCon ES having sprints in the future.\nMuy 🔝 las primeras charlas del día en esta nuestra #PyConES22.\nUn saludo a las personas que están de chair de sesión y que van a tirar tizas ante cualquier “más que una pregunta tengo un comentario”. pic.twitter.com/qpjOiNiQ3u\n\u0026mdash; PyCon España (@PyConES) October 1, 2022 See my talk video recording\nThen I went to a very interesting talk. From the technical point of view, it is about using MicroPython to control a mortar to vibrate. I would say the open-mind-ness and diversity of PyCon ES is one of the best in all the PyCon that I have ever been to.\nquizás la charla más esperada @PyConES https://t.co/FPlnk5cht3 pic.twitter.com/ahRNoRhe0x\n\u0026mdash; Cheuk Ting Ho at #PyConES (@cheukting_ho) October 1, 2022 After lunch, there is entertainment - a band is doing 90s anime and movie covers (I was told the performers are scholars in the university)\nSailor moon!!!!! @PyConES pic.twitter.com/N46LpPpPF9\n\u0026mdash; Cheuk Ting Ho at #PyConES (@cheukting_ho) October 1, 2022 Then, I took a break from the conference and then prepare my first ever lightning talk in Spanish\u0026hellip; I would say it is my light talk of the year.\n@cheukting_ho learnt Spanish to ask for submissions in Spanish for the @PyjamasConf so please apply now!!!! pic.twitter.com/5bG5t225cA\n\u0026mdash; PyCon España (@PyConES) October 1, 2022 After the conference, I attended the speaker and organiser dinner in a fancy dinner reception. I feel my artier for tech conferences are totally under-dress on that occasion. But the food is good and now everyone is so keen to teach me Spanish and that makes me very happy.\nFoto grupal de la organización de la #PyConES22 de anoche. Qué decir más que está siendo una experiencia maravillosa y que, en palabras de @fergunet, “esto no se acaba hasta que brindemos todes y digamos JUMANJI!!!”. pic.twitter.com/ZLPFs3wAQ3\n\u0026mdash; PyCon España (@PyConES) October 2, 2022 Day 3 - Conference # The last day of the conference is always challenging after all the socials every night. But I keep my discipline and be at the conference for the keynote in the morning. After that, I retrieved into the quiet room to do some organising work.\nThen I went to a few talks after lunch, I try my very best to understand them and depending on the slides I can understand 10-30% of them even though it is in Spanish.\nUna charla sobre Python y @SnowflakeDB en @PyConES pic.twitter.com/tW41tzhwXP\n\u0026mdash; Cheuk Ting Ho at #PyConES (@cheukting_ho) October 2, 2022 So, it comes to the end. People starts leaving after the closing and after some emotional goodbyes, they all went home. (There was a small drama for people taking the train to Madrid but I a not affected as I am flying)\nCierre de la @PyConES Mucho gracias 😊 pic.twitter.com/FZoRotOoE2\n\u0026mdash; Cheuk Ting Ho at #PyConES (@cheukting_ho) October 2, 2022 Conclusions # I am impressed by the conference and so far there is a huge Spanish-speaking community (they sold out 800 tickets, and it is only in Spain) that I have not been in touch with much yet. They are also contributors and active users in Python (there\u0026rsquo;s a translation project for translating the official Python documentation to Spanish) and I wish I can discover and learn more about this part of the Python community.\nI am glad that I started learning Spanish and they welcome me who still cannot speak their language good enough to have a conversation. I will keep learning and hopefully, I will go to another Spanish-speaking conference (maybe in Latin America) one day.\n","date":"2 October 2022","externalUrl":null,"permalink":"/posts/2022-10-02-pycones_2022/","section":"Blog posts","summary":"","title":"PyCon ES 2022","type":"posts"},{"content":"I am so excited to be going to Porto for DjangoCon Europe and PyCon PT. It will be my first time in the city and the event. And it will be the first ever PyCon PT too. I have heard so many good things about Porto and Django Con so I think it will be great!\nArrival - Day 0 # I was greeted by the nice weather in Porto. After meeting other conference attendees on the metro, I arrived at the city centre.\nIn Porto, on a train towards my hotel. It\u0026#39;s been a LONG travel day. Coming up on 24 hours without sleep. But I found @m_holtermann \u0026amp; @fapolloner in the airport! We\u0026#39;ll, Markus found me.\n\u0026mdash; Kojo 🤔😴🤔 Idrissa (@KojoIdrissa) September 20, 2022 I got lost because Google points me down a street under construction. Luckily (or unluckily) the worker opens the gate for me and I walk down it along the temporary wooden planks. Finally, get to the end of it and I broke through the gate on the other end to get to the hotel.\nAfter settling downtown at the hotel and a few meetings, I head out and have a look at the city.\nAlready felt in love with Porto because they have cute trams like we do in HK where I grew up. May love it more when @DjangoConEurope kick start tomorrow pic.twitter.com/wRNBnom4vI\n\u0026mdash; Cheuk Ting Ho at #PyConES (@cheukting_ho) September 20, 2022 Then I head to the venue to meet up with other conference attendees for dinner.\nThe first evening in #Portugal was great 🎉\nWe had dinner together with other participants of #DjangoConEurope in the center of# Porto and then we had the nightcap before going to sleep 🍻 Thanks to @jvzammit for taking the photo 🙏\nCC @KatiaNakamura @glasnt @m_holtermann pic.twitter.com/pj3qbMTO2n\n\u0026mdash; Paolo Melchiorre 🐍 (@pauloxnet) September 20, 2022 Django Con Europe - Day 1 # The conference opens with a keynote by Kojo. He talked about how to be inclusive in contributions. I cannot agree more.\n@KojoIdrissa is talking about improving contributor experience pic.twitter.com/LV08NiWXI7\n\u0026mdash; Cheuk Ting Ho at #PyConES (@cheukting_ho) September 21, 2022 Then I spend some time with other EuroPython organisers and check out the venue (as they have been interested in hosting EuroPython).\n@europython team at @DjangoConEurope ❤️ (@patrick91 is preparing his workshop unfortunately) pic.twitter.com/rF6dNlBSn6\n\u0026mdash; Cheuk Ting Ho at #PyConES (@cheukting_ho) September 21, 2022 After lunch, I spent most of my time chatting with people and finishing my demonstration for my talk.\nI also gave a lightning talk promoting Pyjamas Conf.\nIn the evening we have the speaker dinner, but before, we had an Ice Cream Sprint.\nWelcome to the @DjangoConEurope #IceCreamSprint pic.twitter.com/D7QpYDH6bl\n\u0026mdash; Cheuk Ting Ho at #PyConES (@cheukting_ho) September 21, 2022 The speaker dinner is a blast, we have so many people there and we are having the most iconic food in Proto - Francesinha.\nAttending the #Speakers and #Volunteers Dinner at #DjangoConEurope 2022 was a very great experience. 👍\nI met people from different countries all together working to let this conference to be so great.\nCC @DjangoConEurope pic.twitter.com/xoXRsHEkfw\n\u0026mdash; Paolo Melchiorre 🐍 (@pauloxnet) September 21, 2022 Django Con Europe - Day 2 # On the second day, I attend the keynote by Katie about what Django developers should be worried about. Then I gave my talk about PyScirpt.\nCheuk Ting Ho @cheukting_ho from @anacondainc is presenting the talk \u0026quot;Will PyScript replace Django? - What PyScript is and is not\u0026quot; at #DjangoConEurope 2022 in #Porto 🇵🇹\nCC @DjangoConEurope @pyscript_dev pic.twitter.com/NdHJWr7aCi\n\u0026mdash; Paolo Melchiorre 🐍 (@pauloxnet) September 22, 2022 After that, I need a break from the conference and went to a popular Mc Donalds in the city centre.\nTook a break from @DjangoConEurope and went to the posh McDonald’s with @judy2k pic.twitter.com/vk6y6x5xrU\n\u0026mdash; Cheuk Ting Ho at #PyConES (@cheukting_ho) September 22, 2022 After, I went back to the conference to socialise during lunchtime. Follow by meetings back at the hotel.\nIn the evening, I went on the boat trip, it is a very nice evening and the sunset is amazing. We had a good view of the city from the river.\nLast night\u0026#39;s boat cruise on the #Duoro river in #Porto was a wonderful experience. ⛵\nEven more beautiful was doing it in the company of the other #DjangoConEurope participants 😀 Thanks @DjangoConEurope for organizing it and @kolofordjango for sponsoring it 🙏#bridges #river pic.twitter.com/G62jNpa5U2\n\u0026mdash; Paolo Melchiorre 🐍 (@pauloxnet) September 23, 2022 After dinner, we had a social event. However, I went back early to conserve energy for the upcoming events.\nDjango Con Europe - Day 3 # It\u0026rsquo;s the last day of the main conference. It opens with an interesting keynote about async in Django.\n@carltongibson is still very awake and give the morning keynote for @DjangoConEurope after the social drink night! Let’s take a look at async Django pic.twitter.com/nbdRMxVVdy\n\u0026mdash; Cheuk Ting Ho at #PyConES (@cheukting_ho) September 23, 2022 Then I got a chance to talk to many people. The community is so nice and I feel like we can always have good chats with people from different parts of the world. Some people keep coming to talk to me about my PyScript talk and got a lot of useful feedback from them.\nThere are quite some good talks in the afternoon including a talk by Felipe, the developer advocate at Snowflake. We got a chance to meet in person and I am sure there will be an opportunity to collaborate in the future.\n@felipehoffa is talking about using @SnowflakeDB for Django backend @DjangoConEurope pic.twitter.com/EJe6D86MnU\n\u0026mdash; Cheuk Ting Ho at #PyConES (@cheukting_ho) September 23, 2022 After the closing, I took some time to explore the other side of the river and have some wine and food there.\nPyCon PT - the first one ever # After DjangoCon, it is followed by the first even PyCon PT. Both PyCon PT and DjangoCon sprints are located at Porto University.\nThe first ever @PyConPT is starting now!!!!! pic.twitter.com/uJBjJ3TVwv\n\u0026mdash; Cheuk Ting Ho at #PyConES (@cheukting_ho) September 24, 2022 After a slight delay due to technical difficulties, the first ever PyCon PT is starting and followed by the first-ever Keynote by Daniele.\nThe first ever @PyConPT keynote speaker @evildmp pic.twitter.com/S4GMJHb23r\n\u0026mdash; Cheuk Ting Ho at #PyConES (@cheukting_ho) September 24, 2022 There is also the Django Girls workshop in the building, so many events happening all at once.\nKicked off the @djangogirls workshop in @DjangoConEurope! It is also the first #djangogirls workshop in Porto. We are all working hard with the tutorial! A big shout out to @KatiaNakamura and all the volunteers for making it happen! pic.twitter.com/MqHLAhgXeL\n\u0026mdash; Çağıl Uluşahin (@cagilulusahin) September 24, 2022 I managed to pop in for Dash\u0026rsquo;s workshop for a bit.\n@iamontheinet from @SnowflakeDB is giving a workshop @PyConPT pic.twitter.com/37dY8mkIaK\n\u0026mdash; Cheuk Ting Ho at #PyConES (@cheukting_ho) September 24, 2022 After lunch, I am finishing some work and prepare for my workshop.\nSo glad to be presenting @PyConPT pic.twitter.com/sQ5PTp01JP\n\u0026mdash; Cheuk Ting Ho at #PyConES (@cheukting_ho) September 24, 2022 After that, there are lightning talks. There was a talk about Using PyScript to deploy Django to the front end\u0026hellip; I guess it\u0026rsquo;s the front end as a server?\nFollowing @pyscript_dev Python in the browser someone make Django in the browser @PyConPT lightning talk pic.twitter.com/s93gC6pvM1\n\u0026mdash; Cheuk Ting Ho at #PyConES (@cheukting_ho) September 24, 2022 After closing, we all have a party outside. I had dinner with some friends and get ready for the trip ahead of me.\nAnd now it\u0026#39;s time for a well deserved relaxing time! Just chillin\u0026#39;n chatting!\nPycon Portugal 2022 is about to end \u0026amp; we promise to come back in 2023, better \u0026amp; better, in a new location.\nBe sure to stay tuned! Please, help us volunteering, sponsoring or presenting.#pyconportugal pic.twitter.com/jEXYjMiIlG\n\u0026mdash; PyCon Portugal (@PyConPT) September 24, 2022 ","date":"25 September 2022","externalUrl":null,"permalink":"/posts/2022-09-25-djangoconeu_2022/","section":"Blog posts","summary":"","title":"Django Con Europe 2022","type":"posts"},{"content":"Despite a series of unexpected events: train strake and the passing of the Queen. PyCon UK 2022 is still happening in Cardiff City Hall this year. So how was it?\nDay 1 # The opening was scheduled at 11 am for a late start due to concern of the train strike (which didn\u0026rsquo;t happen) so people already gather in the hallway after the registration. There are coffee, tea and Wales cakes.\n@PyConUK opens with a hall track this year pic.twitter.com/taAIxm7dr1\n\u0026mdash; Cheuk Ting Ho at #PyConUK (@cheukting_ho) September 16, 2022 Then it is the opening. This year Ann is chairing the organising committee and she is explaining all the house rules and the \u0026ldquo;toilet talk\u0026rdquo; this year.\nWelcome @PyConUK 2022 pic.twitter.com/5gwIWxyNbJ\n\u0026mdash; Cheuk Ting Ho at #PyConUK (@cheukting_ho) September 16, 2022 After there are exciting talks, including the talk about Python Exceptional Groups.\n@IritKatriel is taking about Python exception @PyConUK pic.twitter.com/hgzn9VutIC\n\u0026mdash; Cheuk Ting Ho at #PyConUK (@cheukting_ho) September 16, 2022 And a talk about PyScript.\n@nekokawaigari is taking about @pyscript_dev and building a cool app with it @PyConUK pic.twitter.com/TgEVSyNNBy\n\u0026mdash; Cheuk Ting Ho at #PyConUK (@cheukting_ho) September 16, 2022 And my talk about Hypothesis.\nHaving used and given talks about Python\u0026#39;s Hypothesis library, I\u0026#39;m happy to learn about hypothesis.extra.ghostwriter which generates tests for you #pyconuk pic.twitter.com/tC4DlaESLg\n\u0026mdash; tomviner (@tomviner) September 16, 2022 And to top it, Daniele talks about the relationship between documentation and software.\n@evildmp is talking about the DogTail model of software and documentation @PyConUK pic.twitter.com/2XBJdFfsgc\n\u0026mdash; Cheuk Ting Ho at #PyConUK (@cheukting_ho) September 16, 2022 After the conference and dinner, we socialise at our usual place. Where I had a great chat with Adam Johnson about my idea of deploying the trained model to the front end with PyScript.\nDay 2 # Day 2 starts with more coffee and wales cake, then by the keynote. The keynote is about the flaws computational research can have.\nDay 2 keynote by Vincent Knight, proud father of 2, about why his computational research is not to be trusted @PyConUK pic.twitter.com/c5bqG9jmY7\n\u0026mdash; Cheuk Ting Ho at #PyConUK (@cheukting_ho) September 17, 2022 Then I took a break to have a walk before lunch.\nAfter lunch, I chat with some friends and have coffee (or better, an affogato)\n@PyConUK #IceCreamSprint is quite close thanks to the Brodies pic.twitter.com/IKg05FOcUO\n\u0026mdash; Cheuk Ting Ho at #PyConUK (@cheukting_ho) September 17, 2022 Before the lighting talk, there are a few more interesting talks. Talk about speeding up your computation with Numpy.\n@t_redactyl talking how @numpy_team can speed up your computation @PyConUK pic.twitter.com/mO0nys42Q0\n\u0026mdash; Cheuk Ting Ho at #PyConUK (@cheukting_ho) September 17, 2022 And talk about the BBC and AWS.\n@ben_nuttall is back at @PyConUK 2022 (not 1916) pic.twitter.com/b6YlRoB2Fm\n\u0026mdash; Cheuk Ting Ho at #PyConUK (@cheukting_ho) September 17, 2022 After the lighting talk, I had to have a quick Ramen and then regroup at Tiny Rebels. Got a chance to talk to the organisers and it feels like homecoming at PyCon UK\nDay 3 # Day 3 starts with a PyCon UK AGM, chaired by Owen. Then we are more talks in the morning, including Ian\u0026rsquo;s talk. Unfortunately, there were technical issues so it was changed to a lighting talk.\nIan Thomas is talking about UK census data @PyConUK pic.twitter.com/uUtXtYcu79\n\u0026mdash; Cheuk Ting Ho at #PyConUK (@cheukting_ho) September 18, 2022 I was so glad that I was able to attend Daniele\u0026rsquo;s workshop about the Diátaxis framework (it\u0026rsquo;s a documentation framework and no you cannot install it). The first time I know about it was back in 2019 and since then it has evolved and I have learnt more this time in the workshop.\nSo glad to be able to join @Canonical’s @evildmp’s workshop on Diátaxis framework. @PyConUK Something I always want to learn pic.twitter.com/yDgZanlTEI\n\u0026mdash; Cheuk Ting Ho at #PyConUK (@cheukting_ho) September 18, 2022 The last day is only a half day and I am so glad that I can get home early and get some rest.\n#PyConUK delegates, enjoy your evening in beautiful Cardiff pic.twitter.com/lbbRSy02bV\n\u0026mdash; PyCon UK (@PyConUK) September 16, 2022 ","date":"18 September 2022","externalUrl":null,"permalink":"/posts/2022-09-18-pyconuk_2022/","section":"Blog posts","summary":"","title":"PyCon UK 2022","type":"posts"},{"content":" Ok, I lied, I still write tests. But instead of the example-based tests that we normally write, have you heard of property-based testing? By using Hypothesis, instead of thinking about what data I should test it for, it will generate test data, including boundary cases, for you. ","date":"17 September 2022","externalUrl":null,"permalink":"/videos/a_ow-xdmylu_i_hate_writing_tests_thats_why_i_use_hypothesis/","section":"Presentation videos","summary":"","title":"I hate writing tests, that's why I use Hypothesis","type":"videos"},{"content":"","date":"17 September 2022","externalUrl":null,"permalink":"/tags/pyconuk/","section":"Tags","summary":"","title":"PyConUK","type":"tags"},{"content":"I was invited to Uptime Conference back in May this year. It is a conference organised by Aivan.io\nArrival and Speakers Dinner # The organisers are very kind to organise all my travel and accommodation for me. There is minor trouble with EasyJet but I arrived in the airport, got picked up and transfer to the very nice hotel next to the venue.\nSetting up is complete - it’s time for Uptime @uptimecon - everything about #opensource data technologies (and great coffee and Stroopwaffles!) - if you’re local to Amsterdam and would like to drop by, send a DM! pic.twitter.com/buR3WQX9EF\n\u0026mdash; James Arlen (@myrcurial) September 14, 2022 After a short rest, we went for the speakers\u0026rsquo; dinner. It\u0026rsquo;s great to be able to chat with some industry leaders and other developer advocates.\nUptime Conf 2022 - Day 1 # @lornajane is opening @uptimecon and start by the most important information - WiFi details oh no actually it is CoC pic.twitter.com/mIDUt5pLug\n\u0026mdash; Cheuk Ting Ho at #uptime2022 (@cheukting_ho) September 14, 2022 After the tech rehearsal, we chill in the speakers\u0026rsquo; green room. Talk to more speakers. Then there\u0026rsquo;s the conference opening and keynote. It is a keynote by Jason who I chat to yesterday at the speaker dinner. The talk is about the SSPL licenses that create a storm in the OSS community for both MongoDB and Elastic. He explains what freedom in open source truly means.\nI make use of the time at lunch to talk to various developers and conference attendees. They all have different backgrounds and some of them are not using Python mainly. I think it is a rare opportunity for me to talk to developers that Python is not their main language.\nMy talk is in the afternoon. It is about an open-source project that I have been involved in the past.\nRevision control and databases?! @cheukting_ho up next “Better data governance with revision control workflows” 🧵#uptime2022 pic.twitter.com/6An1VY67aU\n\u0026mdash; Jenny Wong 🐝 (@miss_jwo) September 14, 2022 In the evening we have an after party on a boat. It is an extraordinary experience. I got the chance to talk to other developer advocates and it feels like a mini DevRelCon is happening.\nThank you @aiven_io for the nice after party @uptimecon pic.twitter.com/L9y0XkhgjB\n\u0026mdash; Cheuk Ting Ho at #PyConUK (@cheukting_ho) September 14, 2022 Uptime Conf 2022 - Day 2 # The second day is a slow start for me, I have to save myself for the PyCon UK coming up the next day and catch up with work. But I got a chance to talk to folks at the conference. Including engineering managers alike.\nTime flies and that\u0026rsquo;s the last keynote by the founder of the Apache Software Foundation.\nLast Keynote of @uptimecon 👀 see when open is more important than scaling up fast pic.twitter.com/EyC0KKnPuH\n\u0026mdash; Cheuk Ting Ho at #PyConUK (@cheukting_ho) September 15, 2022 Then it\u0026rsquo;s the closing. Originally I don\u0026rsquo;t expect to have so much fun and make so many great connections as it is not a Python conference which I am very used to. Everyone I met at the conference are nice and the organisers are very welcoming. Overall it is a great experience.\nClosing note @uptimecon by @lornajane pic.twitter.com/JC1aPQfL7B\n\u0026mdash; Cheuk Ting Ho at #PyConUK (@cheukting_ho) September 15, 2022 One more thing # They have real time STT (done by professional real people) thought out the whole conference. The other conference that I have seen it are PyCon UK and PyCon Ireland and I think it is a great feature to be inclusive.\nWow, kudos to @uptimecon for having live closed captions during the conference talks. Great job, first time I\u0026#39;m seeing this 👍. pic.twitter.com/JgU0Q5QKjk\n\u0026mdash; Gunnar Morling 🌍 (@gunnarmorling) September 14, 2022 ","date":"15 September 2022","externalUrl":null,"permalink":"/posts/2022-09-15-uptimecon_2022/","section":"Blog posts","summary":"","title":"Uptime Conference 2022","type":"posts"},{"content":"","date":"14 September 2022","externalUrl":null,"permalink":"/tags/pyconsk/","section":"Tags","summary":"","title":"PyConSK","type":"tags"},{"content":" Since the announcement of PyScript, it has gained lots of attention and imagination about how we can run applications of Python in the browser. Out of everything that I have come across, most of the use cases are data visualisation. Let’s see how we can up our data viz game with PyScript. ","date":"14 September 2022","externalUrl":null,"permalink":"/videos/figpq-gsb4a_revolutionize_data_visulization_with_pyscript/","section":"Presentation videos","summary":"","title":"Revolutionize Data Visulization with PyScript","type":"videos"},{"content":"This is the first time I have been to PyCon SK and I am impressed.\nPyCon SK 2022 - Day 1 # I arrived in the city late due to the delayed flights, just in time to catch Miro\u0026rsquo;s talk about encoding in Python (and how it messes up his name all the time)\nAlso, I am lucky enough to sign up and gave a lightning talk.\nGreat lightning talk by @cheukting_ho at @pyconsk !#pyconsk2022 #pyscript pic.twitter.com/WdfX4KVoxd\n\u0026mdash; Denny Biasiolli (@DennyBiasiolli) September 9, 2022 In the evening we went out for food and drinks. Here is where all the ideas between various communities around the world started. I pitched the idea of PyScript Dojo to the organisers in Berlin and hopefully, we will have an event soon.\nPyCon SK 2022 - Day 2 # In the morning I had a walk around town then I head to the venue. The venue is in the university but there are a few theatre rooms and a good hallway so perfect for a medium size conference. It is hall track for me in the morning and I slowly get back into the conference again.\nThe hall track of @pyconsk is amazing! pic.twitter.com/Y9nLEMiX9y\n\u0026mdash; Cheuk Ting Ho 💙💛 (@cheukting_ho) September 10, 2022 After lunch, I went to Tom Dyson\u0026rsquo;s talk about how Python can help us in a world full of depressing stuff.\nTom Dyson talks about how to find happiness in Python… even though we have too many scary stuff in the world. @pyconsk pic.twitter.com/afdjcO9ibF\n\u0026mdash; Cheuk Ting Ho 💙💛 (@cheukting_ho) September 10, 2022 Then I do some final preparation for my talk.\nMy talk is about PyScript and I am glad that there are so many good questions asked after the talk and people are interested to try it out themselves.\nThank you @cheukting_ho for great presentation on PyScript. \u0026quot;import d3\u0026quot; seems like dream came true for many people. #pyconsk pic.twitter.com/FHermQSduO\n\u0026mdash; Jarmil M. Beruska (@jarmil_berushka) September 10, 2022 There is a Python quiz which is very exciting and fun. I did not get into the podium but still got the 9th which wins me a gadget that is useful for my future travel.\nThank you @pyconsk for the fun quiz and now I have something that doesn’t hurt my ears during long flights pic.twitter.com/HEMVMjfecu\n\u0026mdash; Cheuk Ting Ho 💙💛 (@cheukting_ho) September 10, 2022 In the evening there is the conference dinner. We talk about all sorts of things including the plans for future events in the community.\nConference dinner @pyconsk pic.twitter.com/KdTuMjXxoi\n\u0026mdash; Cheuk Ting Ho 💙💛 (@cheukting_ho) September 10, 2022 PyCon SK 2022 - Day 3 # Today is also the day I will go back home, I had a walk in the morning in the botanical garden next to the conference.\nI manage to join the conference for half a day. I spent most of the time talking to people before I head to the airport. It is good to be able to talk to someone who may find Python in the browser useful in their educational tool. I think this will be a good connection for the PyScript team.\nSo many people here @pyconsk pic.twitter.com/TbsMUCmfNw\n\u0026mdash; Cheuk Ting Ho 💙💛 (@cheukting_ho) September 10, 2022 Conclusions # I am quite impressed by PyCon SK, the local Python community here is bigger than I thought. Many sponsors are startups in this part of the world that treasure the Python community and see the opportunities in PyCon here.\nSwag swap with @gingy_love thank you for the @codekiwicom socks @pyconsk pic.twitter.com/vJrqt1s5Y7\n\u0026mdash; Cheuk Ting Ho 💙💛 (@cheukting_ho) September 10, 2022 There is also an education focus in this PyCon. There is an educational track and there are workshops that some teenagers attend. Some of them are so talented that they have won a coding competition using micro:bit.\nKids are so smart here @pyconsk Coding in #Python and creat something with @microbit_edu pic.twitter.com/nUHoOxFeO0\n\u0026mdash; Cheuk Ting Ho 💙💛 (@cheukting_ho) September 10, 2022 I got good opportunities to talk to a few people who have their work related to Education, and both of them show interest in PyScript. I think it will be useful for my work in the future.\n","date":"11 September 2022","externalUrl":null,"permalink":"/posts/2022-09-11-pyconsk_2022/","section":"Blog posts","summary":"","title":"PyConSK 2022","type":"posts"},{"content":" In this talk, we will explore what is property-based testing and why it can do a lot of heavy lifting in writing tests for us. As a contributor, I will introduce Hypothesis, a Python library that can help perform property-based tests with ease. ","date":"6 September 2022","externalUrl":null,"permalink":"/videos/etupzeykvh8_i_hate_writing_tests_thats_why_i_use_hypothesis/","section":"Presentation videos","summary":"","title":"I hate writing tests, that's why I use Hypothesis","type":"videos"},{"content":"","date":"6 September 2022","externalUrl":null,"permalink":"/tags/pyladies-munich/","section":"Tags","summary":"","title":"PyLadies Munich","type":"tags"},{"content":"What happened when we do Okotoberfest in PyLadies Munich 2022\nPyLadies Munich Oktoberfest # I know it seems way too early to do Oktoberfest (a month earlier!) But when I was invited to PyLadies Munich, my good friend Laysa, the organiser of PyLadies Munich said that we gonna do Oktoberfest. So there we go!\nWe\u0026#39;re back and so happy to be here! 🥨 💫🐍 Follow us here: https://t.co/VqPS0KW3uz#Python #munich #Oktoberfest pic.twitter.com/nySz9ZDAs7\n\u0026mdash; PyLadies Munich (@pyladiesmunich) September 6, 2022 My friends are all dressed up in traditional Bavaria dresses, I am so jealous. Next time I will also dress up to appreciate this beautiful city.\nWe start with my talk, which is about Hypothesis. I hope it would be useful for anyone who hates writing tests. Look at my beautiful Anaconda T-shirt!!!\nI hate writing tests, that\u0026#39;s why I use Hypothesis ✨ by @cheukting_ho 👻✍️ pic.twitter.com/Ias2GZkCoc\n\u0026mdash; PyLadies Munich (@pyladiesmunich) September 6, 2022 Then we have an interesting talk about running Cloud Run after the break. There were lots of cute doggie pictures involved.\nRun Cloud Run by Alejandra Bolaños 🌩️🏃🏃‍♀ pic.twitter.com/TgnhXUBMmm\n\u0026mdash; PyLadies Munich (@pyladiesmunich) September 6, 2022 After that we have the talk about redirecting old URI to new ones, I can feel the pain doing so, but it\u0026rsquo;a a fun talk.\nWhen 404 becomes 302 by @lorinkoz from @tech_alasco 💙 Our last speaker for tonight!! pic.twitter.com/MDS4S0lCjY\n\u0026mdash; PyLadies Munich (@pyladiesmunich) September 6, 2022 After that, I got a chance to talk to everyone. New faces that I have never met before and old faces that I have met in PyCon DE. All of them are very nice. I love the community here it\u0026rsquo;s such a good place.\nMy happy face due to partnership with @pyladiesmunich and @laysauchoa to kick the on-site #community experience off and finally meet in person 🥨🥳🙌🚀🍻#sharingiscaring #python pic.twitter.com/22thh0YbJb\n\u0026mdash; Uliana Andriieshyna (@uliana_munich) September 6, 2022 You can also catch up on my talk online:\n","date":"6 September 2022","externalUrl":null,"permalink":"/posts/2022-09-06-pyladies_munich_2022/","section":"Blog posts","summary":"","title":"PyLadies Munich 2022","type":"posts"},{"content":"Just a little blog post about what I see and what I do in EuroSciPy 2022\nDay 1 - Arriving Basel, tutorial day 1 # After a long trip from London, I finally arriving Basel. Arrived just in time for lunch on the first tutorial day. After chatting with the organizers, who are very nice and welcoming. I greet my friends who also just arrived. During lunch, I also chat with the Scikit Learn maintainers who lived in France.\nwell deserved break after gripping tutorials about #PyTorch #SciPy #scikit-learn and #GeoPandas#EuroSciPy2022 #EuroSciPy #Python #Basel pic.twitter.com/PivCAAwxPJ\n\u0026mdash; EuroSciPy (@EuroSciPy) August 30, 2022 After lunch, I join the tutorial by the SciKit Learn team: Evaluating your machine learning models which is very informative and is showing an academic approach to measuring and comparing models with \u0026ldquo;better\u0026rdquo; metrics.\nNext is a tutorial about ASR Introduction to Audio \u0026amp; Speech Recognition it\u0026rsquo;s fun but the workshop requires some prior knowledge and seems not all audiences are so there are a lot of questions and the tutorial quickly runs out of time. The material is very detailed though. It may be worth going through them when have time.\nIn the evening, a big group of us had a drink and food near the river, which is very relaxing.\nGood software is good peopleware. Somewhere on the banks of the Rhine...\nEuroSciPy 2022, Basel, Switzerland. Photo credit: @GaelVaroquaux pic.twitter.com/8ZTkYkoZzR\n\u0026mdash; scikit-learn (@scikit_learn) August 30, 2022 Day 2 - Tutorial day 2 # In the morning we have tutorial by my colleague Valerio about PyTouch, it has been a while since I do any deep learning thing so it is interesting to know PyTouch is getting more popular now.\nOur developer advocate 🥑 @leriomaggio @anacondainc is giving a tutorial @EuroSciPy pic.twitter.com/Jr3uvYBdH9\n\u0026mdash; Cheuk Ting Ho 💙💛 (@cheukting_ho) August 30, 2022 Then I spend some time finalizing my demo and presentation.\nAfter lunch, we had a walk and have ice cream. I usually bookmark ice cream places that I like and it\u0026rsquo;s coming in handy now.\nIn the afternoon I took a break from the tutorials and caught up with some work and meetings.\nColleague Jannis from the Conda team join us for the evening and we talk a lot, including about what community work we can do.\nDay 3 - Conference day 1 # Yay EuroSciPy opening session, so good to be back in person 🚀🤗 pic.twitter.com/IQrI9TmR6T\n\u0026mdash; EuroSciPy (@EuroSciPy) August 31, 2022 We have two very interesting keynotes in the morning, especially the one by Emmanuelle Gouillart about scikit image in plotly. You can auto annotate tumours by squiggling on the picture. I got inspired by this talk a lot and have a new idea of what I can try next (which I am not telling yet)\nInteractive image annotation with plotly and dash\npresented by @EGouillart at #euroscipy. I wonder how easy it would be to make the annotations created on https://t.co/SNfEiblWJI #IIIF / Web Annotation compliant? :) @EuroSciPy https://t.co/VCGZXWUHEL\n\u0026mdash; Julien A. Raemy (@julsraemy) August 31, 2022 Then there is the conda-forge talk by 3 speakers from different companies, Jannis is one of them.\nWonderful community collaboration example @EuroSciPy by @jaime_rgp @quansightai ➕ @wuoulf @QuantStackand \u0026amp; the one and only @jezdez @anacondainc talking about @condaforge 👏🏻👏🏻✨ pic.twitter.com/gcqqmG0RWK\n\u0026mdash; (((Valerio Maggio))) 🇺🇦 (@leriomaggio) August 31, 2022 At lunch there is a Pyladies lunch, we all sit together with many ladies including the organisers of PyLadies Paris and PyLadies Berlin. We also talked about what we did recently that we feel happy about and everyone is just so amazing!\nIf you are at @EuroSciPy come and join us for @pyladies lunch. Wednesday, 31.08 room 028.\nEveryone welcome! pic.twitter.com/4bhz4js8zH\n\u0026mdash; PyLadies Paris (@PyLadiesParis) August 30, 2022 After lunch, there are a lot of talks about various libraries, including updates and technical stuff. I spent some time catching up on some work.\nIn the evening it is the social event! It\u0026rsquo;s a bit far from the city centre and we all have a good time.\nYesterday, our conference’s social event took place in the #Sandoase at the #Dreiländereck We hope all the attendants enjoyed it as much as we did!#EuroSciPy2022 #Basel pic.twitter.com/UaNtyJfRRa\n\u0026mdash; EuroSciPy (@EuroSciPy) September 1, 2022 Day 4 - Conference day 2 # The last conference day started with the interesting keynote about data privacy by Kathrine Jarmul. Then again there are talks. Some of them are more academic-focused.\nGreat start of the conference day listening to the second keynote on ‘Supercharging Open Data with Open Privacy’ by Katharine Jarmul @kjam#EuroSciPy2022 #Basel #OpenData #OpenPrivacy #Python pic.twitter.com/HW2AzWEtja\n\u0026mdash; EuroSciPy (@EuroSciPy) September 1, 2022 After lunch there is a lineup of talks about running Python in browsers: Presentation about Pyodide, JupyterLite and PyScript (my talk). I think we are in an era where we are going through a revolution!\nDo you know #PyScript? @cheukting_ho is showing #dataviz with @pyscript_dev at @EuroSciPy now! #EuroSciPy2022 pic.twitter.com/2Bbb8JphTE\n\u0026mdash; Astra Stefania Delprete (@astrastefania) September 1, 2022 In the evening we have networking drinks at Klara, and some people join us after swimming in the river. I am so jealous and wish I can do that too one day.\nGood bye @EuroSciPy and thank you for the great conference. I am staying for the best part which is the sprint! pic.twitter.com/bHZJSia6Uk\n\u0026mdash; Cheuk Ting Ho 💙💛 (@cheukting_ho) September 1, 2022 Day 5 - Sprint days # On the first hours of the sprint, close to 70 EuroSciPy attendees are deep in discussions and programming. Amazing to see so many people come together to contribute to the open source libraries. #EuroSciPy2022 #Basel @UniBasel_en pic.twitter.com/JSgwZCou4P\n\u0026mdash; EuroSciPy (@EuroSciPy) September 2, 2022 As someone who loves open-source and believes the best part of the conference is the sprint, I of cause stay for the sprint. I am quite surprised to see there are so many people thinking the same - we have two rooms full of sprinters contributing to various open-source projects.\n","date":"2 September 2022","externalUrl":null,"permalink":"/posts/2022-09-02-euroscipy_2022/","section":"Blog posts","summary":"","title":"EuroSciPy 2022","type":"posts"},{"content":"","date":"23 August 2022","externalUrl":null,"permalink":"/tags/pyconlt/","section":"Tags","summary":"","title":"PyConLT","type":"tags"},{"content":" Recently, a paper is published to demonstrate how a visibly valid contribution can contain malicious code by exporting the Unicode control characters. Some of these attacks has been tested on Python and it works. Shall the Python and open-source communities be concerned? ","date":"23 August 2022","externalUrl":null,"permalink":"/videos/oia84akh8ic_trojan_source_code_-_can_we_trust_open-source_anymore/","section":"Presentation videos","summary":"","title":"Trojan Source Code - Can we trust open-source anymore?","type":"videos"},{"content":" In this talk, Cheuk will reapproach Pandas as someone who is a fluent user of the library. Cheuk will review why Pandas is useful to work with data and what advantage it has over the alternatives methods. As Pandas has many functionalities, Cheuk will dissect the discussion on the potential usage of Pandas in day-to-day data science workflow: data inspection, data cleaning, feature engineering etc. ","date":"18 August 2022","externalUrl":null,"permalink":"/videos/48coa6ry6wy_i_have_to_confess_i_still_love_pandas_-_presented_by_cheuk_ting_ho/","section":"Presentation videos","summary":"","title":"I have to Confess, I still Love Pandas - presented by Cheuk Ting Ho","type":"videos"},{"content":" Pandas is the first Python library that I learned to use. It is used by data scientists to manage, transform and inspect data. As more and more open-source tools appear, it seems the spotlight has shifted and I would love to shine some light on this tool that all should know. ","date":"30 July 2022","externalUrl":null,"permalink":"/videos/gfglxvfemvk_i_have_to_confess_i_still_love_pandas/","section":"Presentation videos","summary":"","title":"I Have to Confess, I Still Love Pandas","type":"videos"},{"content":"","date":"30 July 2022","externalUrl":null,"permalink":"/tags/pyohio/","section":"Tags","summary":"","title":"PyOhio","type":"tags"},{"content":"","date":"23 July 2022","externalUrl":null,"permalink":"/tags/pyconit/","section":"Tags","summary":"","title":"PyConIT","type":"tags"},{"content":" Recently, a paper is published to demonstrate how a visibly valid contribution can contain malicious code by exporting the Unicode control characters. Some of these attacks has been tested on Python and it works. Shall the Python and open-source communities be concerned? ","date":"23 July 2022","externalUrl":null,"permalink":"/videos/ouxxwypbxw4_trojan_source_-_can_we_trust_open-source_anymore/","section":"Presentation videos","summary":"","title":"Trojan Source - Can we trust open-source anymore?","type":"videos"},{"content":" Recommendation algorithms are the driving force of many businesses: e-commerce, personalized advertisement, on-demand entertainment. Computer algorithms know what you like and present you with things that are customized for you. Here we will explore how to do that by building a system ourselves. ","date":"6 July 2022","externalUrl":null,"permalink":"/videos/jyzxibcml-s_picking_what_to_watch_next_-_build_a_recommendation_system/","section":"Presentation videos","summary":"","title":"Picking What to Watch Next - Build a Recommendation System","type":"videos"},{"content":"","date":"3 July 2022","externalUrl":null,"permalink":"/tags/belpy/","section":"Tags","summary":"","title":"BelPy","type":"tags"},{"content":"","date":"3 July 2022","externalUrl":null,"permalink":"/tags/terminusdb/","section":"Tags","summary":"","title":"TerminusDB","type":"tags"},{"content":" Data is the driving force for ML\u0026AI. As technology advances, we are dealing with bigger and more complicated data. Through use cases, Cheuk will show you how a graph database with revision control would provide a logical way of storing data and provide data ops like branch, merge and rollback. ","date":"3 July 2022","externalUrl":null,"permalink":"/videos/eoii7qxwp2s_why_ai_industry_needs_a_revision_control_graph_database/","section":"Presentation videos","summary":"","title":"Why AI Industry needs a Revision Control Graph Database","type":"videos"},{"content":" You will have learnt a new skill set that may assist you in your project in data science or research. You will have a new tool that you can better model your data and collaborate with others. Also, you gain all the prerequisites to use WOQL - a query language for knowledge graphs and the TerminusDB Python client to manage, manipulate and visualize data in your knowledge graph. ","date":"27 June 2022","externalUrl":null,"permalink":"/videos/nhtm-2yvsp8_knowledge_graph_data_modelling_with_terminusdb/","section":"Presentation videos","summary":"","title":"Knowledge graph data modelling with TerminusDB","type":"videos"},{"content":"Last year, I overheard my boyfriend listening to a podcast that talks about the Trojan Source Code. I got interested and read the paper. Here is a beginner friendly explanation if you don\u0026rsquo;t want to read it (but I cannot see why).\nFirst, let\u0026rsquo;s have some fun! # Open the online Python console here and try running the following code:\nhello = \u0026#34;Hello world\u0026#34; world = hello print(world) It is a standard \u0026ldquo;Hello world\u0026rdquo; right? How about this:\nhello = \u0026#34;Hello world\u0026#34; world = hell‮o print(world) Wait! They LOOK the same!\nYes my friend, you are right. They look the same but are NOT the same.\nUnicode! Uηicσժe!! Ⓤⓝⓘⓒⓞⓓⓔ!!! # We all know unicode is a bit wacky. But can you imagine a world that does not support unicode?\nUnicode started as an attempt to make computer characters display all writing systems in the world. I benefit from it when I was a kid, learning how to use a computer at school. Like all \u0026ldquo;good kids\u0026rdquo; I will secretly open Netscape to browse websites. At that time, no one really care about the encoding when designing website. Sometimes, I would browse a website in Chinese but was displayed in random symbols. Then I know it\u0026rsquo;s time to change the encoding.\nThe most common unicode encoding is UTF-8, but there are many. For example, we use Big-5 for Chinese characters.\nOur favourite emojis 💖😃🧸 are mostly added in 2014, and there will be more coming.\nBidirectional ‮characters # Since unicode are designed to handle all writing system, and some writing systems (like Arabic and Hebrew) are reading and writing form right to left, oppose to left to right, what we English speakers are used to, there needs to be a way to tell the computer to \u0026ldquo;read\u0026rdquo; and display the characters from right to left. That way, is a set of \u0026ldquo;invisible\u0026rdquo; characters that indicate the directions of the text - Bidirectional characters.\nUsing bidirectional characters where it is not suppose to be, like codes, then it is not just weird, but it can cause more harm than that.\nTrojan Source Code # We all know the story about the Trojan Horse, hiding solders in a huge horse that was suppose to be the gift. This is what Trojan Source Code is like, hiding in the source code. In the paper the researchers listed 3 types of Trojan Source Code:\n1) Early returns # By hiding the bidirectional characters and return statement in the comment, what appear to be harmless comment can force a function end early and leave out codes that needed to be executed.\n2) Commenting-out # It is common to have comments alongside the code to help readability. By strategically adding bidirectional characters, what appear to be code that are executable will actually be a part of the comment when executed. Using this can make the code behave not as expected.\n3) Stretched strings # Similar to commenting-out, what appear to be not included in a string can be \u0026ldquo;put\u0026rdquo; inside the string with bidirectional characters and \u0026ldquo;change\u0026rdquo; the behaviour of the code.\nBesides there Trojan Source Code there are also similar exploitation with unicode:\n1) Invisible character # Hiding invisible characters can be easily used to change behaviour of the code. Like replacing variable names or strings etc.\n2) Homoglyphs # Similarly, homoglyphs (which means characters that looks the same but aren\u0026rsquo;t the same) can be used to replace function names so the unexpected one will be executed instead.\nShould we be worried? # For the list of what works in Python you can see here at the GitHub repo. You are welcome to try those Trojan Source Code and see if they works on newer versions of Python.\nFor my personal opinion, the piece of advice I would give to other Pythonistas is that, use a editor with good syntax highlight or that will warn you if there\u0026rsquo;s hidden characters (GitHub will give you a warning if the code file contains bidirectional characters). Keep a good habit of linting your code (Pylint is a good choice, it will also give you warning if it \u0026ldquo;sees\u0026rdquo; hidden characters) and double check before running any code, especially those that copy and paste form the internet.\nThat\u0026rsquo;s only the beginning # As someone who works in open-source, I am always aware of the security of our work. We don\u0026rsquo;t want to accidentally spread malicious code and that harm the trust on the open-source software as a whole. There are more security issue that people keep finding and warning others, and we should all be aware.\nI would like to thank the researchers who publish their findings. If you would like to know more, make sure you check out their website: https://trojansource.codes/\nHere is my presentation slides:\n","date":"6 June 2022","externalUrl":null,"permalink":"/posts/2022-06-06-trojan-source/","section":"Blog posts","summary":"","title":"Trojan Source Code (Can we trust open-source anymore?)","type":"posts"},{"content":"","date":"6 June 2022","externalUrl":null,"permalink":"/tags/unicode/","section":"Tags","summary":"","title":"Unicode","type":"tags"},{"content":" Revisional control ecosystems like git and GitHub makes revolutions in open-source software development. So what’s next? Why is revisional control still not a more common practice in data management? In this talk, we will explore the possibility of better data governance. ","date":"26 May 2022","externalUrl":null,"permalink":"/videos/_ewckq96ppi_better_data_governance_with_revision_control_workflows/","section":"Presentation videos","summary":"","title":"Better Data Governance with Revision Control Workflows","type":"videos"},{"content":" Recently, a paper is published to demonstrate how a visibly valid contribution can contain malicious code by exporting the Unicode control characters. Some of these attacks has been tested on Python and it works. Shall the Python and open-source communities be concerned? ","date":"12 May 2022","externalUrl":null,"permalink":"/videos/cm5li5u9-ee_trojan_source_malware_-_can_we_trust_open-source_anymore/","section":"Presentation videos","summary":"","title":"Trojan Source Malware - Can we trust open-source anymore?","type":"videos"},{"content":" With lot's of databases and data products out there, pulling data from one and piping it into another is a common task. With Singer.io taps and targets you can create your own pipeline easily. I will show you how to develop them in Python to work with a graph database. ","date":"28 January 2022","externalUrl":null,"permalink":"/videos/spmlbpsqa_k_developing_a_tap_and_target_for_singerio_-_open_source_etl/","section":"Presentation videos","summary":"","title":"Developing a tap and target for Singer.io - Open Source ETL","type":"videos"},{"content":" I left Hong Kong, the place that I was born and lived for 30 years, 5 years ago with no technical experience. (Except for a few programming experience in University time, mainly serves my research studies) Moving to London, a city where technology is in high demand, opens a lot of doors for me. Here I know about open-source and Python. I learnt Python, been to lots of meet-ups and made lots of friends. I was welcomed by the community with open arms, in here I have met smart people, dedicated people, fun and nerdy people, and all of them are lovely. I am not joking if I say Python gave me this new life. I am so proud to be a Pythonistas, grateful about where I am now that I would like to share my journey with you. I hope everyone will find their journey in this amazing community. ","date":"28 January 2022","externalUrl":null,"permalink":"/videos/r8p4aqpsfzu_from_zero_to_hero_my_python_journey_to_the_west/","section":"Presentation videos","summary":"","title":"From Zero to Hero, My Python journey to the West","type":"videos"},{"content":"","date":"28 January 2022","externalUrl":null,"permalink":"/tags/pyconapac/","section":"Tags","summary":"","title":"PyConAPAC","type":"tags"},{"content":"","date":"28 January 2022","externalUrl":null,"permalink":"/tags/pyconhk/","section":"Tags","summary":"","title":"PyConHK","type":"tags"},{"content":" Storing data in tables has its limitations. Usually joining and aggregations are required to represent more complicated datasets and extract desirable data. Storing data in a semantic graph may be the solution and I am showing you how to programmatically switching from pandas to the knowledge graph. ","date":"20 January 2022","externalUrl":null,"permalink":"/videos/ojx-lqhh-jy_turning_pandas_dataframes_to_semantic_knowledge_graph/","section":"Presentation videos","summary":"","title":"Turning Pandas DataFrames to Semantic Knowledge Graph","type":"videos"},{"content":" Storing data in a tabular format is not always ideal. Taking advantage of strong data in knowledge graphs can make handling complex data structure possible and data visualization easier. In this workshop, you will get all the basics to start modelling data, building schemas using triples. ","date":"14 January 2022","externalUrl":null,"permalink":"/videos/ceotkbkrbww_knowledge_graph_data_modelling_with_terminusdb/","section":"Presentation videos","summary":"","title":"Knowledge Graph Data Modelling With Terminusdb","type":"videos"},{"content":" Storing data in a tabular format is not always ideal. Taking advantage of strong data in knowledge graphs can make handling complex data structure possible and data visualization easier. In this workshop, you will get all the basics to start modelling data, building schemas using triples. ","date":"28 November 2021","externalUrl":null,"permalink":"/videos/2agt-llkvyw_knowledge_graph_data_modelling_with_terminusdb/","section":"Presentation videos","summary":"","title":"Knowledge Graph Data Modelling With Terminusdb","type":"videos"},{"content":"","date":"28 November 2021","externalUrl":null,"permalink":"/tags/pycontw/","section":"Tags","summary":"","title":"PyConTW","type":"tags"},{"content":" Storing data in tables has its limitations. Usually joining and aggregations are required to represent more complicated datasets and extract desirable data. Storing data in a semantic graph may be the solution and I am showing you how to programmatically switching from pandas to the knowledge graph. ","date":"28 November 2021","externalUrl":null,"permalink":"/videos/vjous57glbq_turning_pandas_dataframes_to_semantic_knowledge_graph/","section":"Presentation videos","summary":"","title":"Turning Pandas DataFrames to Semantic Knowledge Graph","type":"videos"},{"content":" This is video 1 of 6 in the Getting Started with the TerminusDB Python Client. Lesson 1 covers installing TerminusDB, starting a new project, and finally creating an empty database with just a schema. ","date":"26 October 2021","externalUrl":null,"permalink":"/videos/ej4wcrcy0um_getting_started_with_the_terminusdb_-_lesson_1_-_install_terminusdb_start_project_and_create_an_empty_database_with_schema/","section":"Presentation videos","summary":"","title":"Getting Started with the TerminusDB - Lesson 1 - Install TerminusDB, start project and create an empty database with schema","type":"videos"},{"content":" This is video 2 of 6 in the Getting Started with the TerminusDB Python Client. Lesson 2 demonstrates how to use import CSV commands to import CSV files into your database. ","date":"26 October 2021","externalUrl":null,"permalink":"/videos/ruzzi8nwgrm_getting_started_with_the_terminusdb_-_lesson_2_-_importing_a_csv_into_the_database/","section":"Presentation videos","summary":"","title":"Getting Started with the TerminusDB - Lesson 2 - Importing a CSV into the database","type":"videos"},{"content":" This is video 3 of 6 in the Getting Started with the TerminusDB Python Client. Lesson 3 shows how to import data using a Python script to handle more complex data imports. ","date":"26 October 2021","externalUrl":null,"permalink":"/videos/nefdwvgzcbg_getting_started_with_the_terminusdb_-_lesson_3_-_importing_data_from_python_script/","section":"Presentation videos","summary":"","title":"Getting Started with the TerminusDB - Lesson 3 - Importing Data from Python Script","type":"videos"},{"content":" This is video 4 of 6 in the Getting Started with the TerminusDB Python Client. Lesson 4 demonstrates how you can use Python scripts to update and link to existing data and how to add new data which also links to it. ","date":"26 October 2021","externalUrl":null,"permalink":"/videos/bm08lmnlq6e_getting_started_with_the_terminusdb_-_lesson_4_-_update_existing_and_import_new_data/","section":"Presentation videos","summary":"","title":"Getting Started with the TerminusDB - Lesson 4 - Update existing and import new data","type":"videos"},{"content":" This is video 5 of 6 in the Getting Started with the TerminusDB Python Client. Lesson 5 shows how to query objects in the database and export the results to a CSV file or for more complex queries such as statistical analysis as dataframes. ","date":"26 October 2021","externalUrl":null,"permalink":"/videos/orkhjg76pok_getting_started_with_the_terminusdb_-_lesson_5_-_query_and_get_results_back_as_csvs_or_dataframes/","section":"Presentation videos","summary":"","title":"Getting Started with the TerminusDB - Lesson 5 - Query and get results back as CSVs or DataFrames","type":"videos"},{"content":" This is video 6 of 6 in the Getting Started with the TerminusDB Python Client. Lesson 6 demonstrates how to branch your database using the Python client, switch between versions, rollback in time and how to rebase your changes. ","date":"26 October 2021","externalUrl":null,"permalink":"/videos/aooqmigtwk8_getting_started_with_the_terminusdb_-_lesson_6_-_version_control_time_travel_branch_and_rebase/","section":"Presentation videos","summary":"","title":"Getting Started with the TerminusDB - Lesson 6 - Version control, time travel, branch, and rebase","type":"videos"},{"content":"","date":"26 June 2021","externalUrl":null,"permalink":"/tags/conf42/","section":"Tags","summary":"","title":"Conf42","type":"tags"},{"content":" We created Python API calls that let you can make queries and manipulate data in our graph database. We thought about what will be best for Pythonistas? What will be the most Pythonic way to do it? (Is it a thing?) Here’s our journey in making WOQLpy and we want to make it useful to you. ","date":"26 June 2021","externalUrl":null,"permalink":"/videos/wwneevrveoe_how_to_be_pythonic_design_a_query_language_in_python/","section":"Presentation videos","summary":"","title":"How to be Pythonic? Design a Query Language in Python","type":"videos"},{"content":" Oops, I Did It Again! When Your Deploying CI Pipeline Is Broken - Maintainers Summit at PyCon US ","date":"10 May 2021","externalUrl":null,"permalink":"/videos/yovmuz8evt0_oops_i_did_it_again_when_your_deploying_ci_pipeline_is_broken/","section":"Presentation videos","summary":"","title":"Oops, I Did It Again! When Your Deploying CI Pipeline Is Broken","type":"videos"},{"content":"","date":"18 April 2021","externalUrl":null,"permalink":"/tags/python-zero-to-hero/","section":"Tags","summary":"","title":"Python Zero to Hero","type":"tags"},{"content":" 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 Twitch channel (https://www.twitch.tv/cheukting_ho) ","date":"18 April 2021","externalUrl":null,"permalink":"/videos/cg4zx5f34cc_python_zero_to_hero_-_ep41_-_last_time_we_ganna_talk_about_emoji_prediction_for_a_while/","section":"Presentation videos","summary":"","title":"Python Zero to Hero - Ep.41 - Last time we ganna talk about emoji prediction for a while","type":"videos"},{"content":"","date":"12 April 2021","externalUrl":null,"permalink":"/tags/github/","section":"Tags","summary":"","title":"GitHub","type":"tags"},{"content":"I have been wanting to share my funny releasing stories during my short 18 months of maintaining the TerminusDB Python Client. 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.\nThis story (or stories) I am going to tell you mainly consists of\u0026hellip; laughter? With some sprinkles of panics, I would say.\nI 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 \u0026ldquo;well\u0026rdquo;). The situation is, your CI failed. \u0026ldquo;It was working a few hours ago,\u0026rdquo; I thought (on a side note, I also think that\u0026rsquo;s the best expression to go with \u0026ldquo;It works on my computer\u0026rdquo;) so I start looking at the build job log, hoping to get it done so I can start enjoying the weekend. But it\u0026rsquo;s not always that straight forward.\nChapter 1 - A Tasty Mistake # 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: AttributeError: module 'virtualenv.activation.python' has no attribute 'PestythonActivator' My first reaction, has it been hacked? PestythonActivator sounds \u0026hellip; yummy 😋 \u0026hellip; if you ask me.\nWe of cause, like all good developers do, put the error message online and look for clues, we quickly found a GitHub issue and boi, we are not the only souls that got crushed by a \u0026ldquo;timely\u0026rdquo; release of virtualenv just a few hours before us. Since the lastest version of virtualenv got installed every time we create the CI build job on Travis, it fails even we have done nothing. Of cause we didn\u0026rsquo;t point fingers at other maintainers, they are just as hardworking as us and it\u0026rsquo;s human to make mistakes. We are faced with 2 options, roll back to the previous release or wait for the patch of virtualenv to get released. As the devs of virtualenv did a lighting fast patch, we have chosen option 2.\nWell, it was\u0026hellip; fun and tasty! At least, it is very obvious what had happened and the problem gets solved very quickly and everyone was happy. It\u0026rsquo;s not so\u0026hellip; smooth in my second encounter of an \u0026ldquo;impossible\u0026rdquo; bug.\nChapter 2 - You see, but you do not observe # This time there\u0026rsquo;s only one challenger, that\u0026rsquo;s right, ME! I think that\u0026rsquo; i have grown wiser since the last incident that was like 9 months ago so I am all good \u0026ldquo;Release is not scary, I got this!\u0026rdquo; I spoke too soon. This time, it\u0026rsquo;s the notorious ModuleNotFoundError: No module named 'importlib.metadata'.\nFirst of all, why is it notorious? Because it is caused by the version difference of Python\u0026lt;=3.7 and Python\u0026gt;3.7. 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.\nSo, I took a deep breath and think \u0026ldquo;Sherlock time! 🔍\u0026rdquo; 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. tox 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.\nI was WRONG! The problem persists even when I roll back to the previous version and a friendly GitHuber (I guess is the maintainer of tox?) also confirm that it\u0026rsquo;s not a tox error, but suggest I look at pip-tools instead. I scratch my head \u0026ldquo;pip-tools? I didn\u0026rsquo;t have pip-tools in my dependencies\u0026hellip;\u0026rdquo; 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 pip-tools in the dependency list in my tox set up (hence the confusion).\nI 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 pip-tools and I cannot release anything at that moment so just drink more coffee ☕ and chill I guess.\nIn the end, GitHub action is back in action and it\u0026rsquo;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\u0026rsquo;s how Sherlock Homes feels if he was real?\n","date":"12 April 2021","externalUrl":null,"permalink":"/posts/2021-04-12-cibroken/","section":"Blog posts","summary":"","title":"What happened when your CI is stopping you from releasing?","type":"posts"},{"content":" 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 Twitch channel (https://www.twitch.tv/cheukting_ho) ","date":"11 April 2021","externalUrl":null,"permalink":"/videos/q9axssf6trg_python_zero_to_hero_-_ep40_-_answering_questions_on_stackoverflow/","section":"Presentation videos","summary":"","title":"Python Zero to Hero - Ep.40 - Answering questions on Stackoverflow","type":"videos"},{"content":" 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 Twitch channel (https://www.twitch.tv/cheukting_ho) ","date":"19 March 2021","externalUrl":null,"permalink":"/videos/yfyjs8fppai_python_zero_to_hero_-_ep39_-_packaging_a_ml_project/","section":"Presentation videos","summary":"","title":"Python Zero to Hero - Ep.39 - Packaging a ML project","type":"videos"},{"content":" 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 Twitch channel (https://www.twitch.tv/cheukting_ho) ","date":"7 March 2021","externalUrl":null,"permalink":"/videos/7nbkcshr970_python_zero_to_hero_-_ep38_-_will_a_dictionary_of_emoji_help_us_in_the_prediction/","section":"Presentation videos","summary":"","title":"Python Zero to Hero - Ep.38 - Will a dictionary of emoji help us in the prediction?","type":"videos"},{"content":" 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 Twitch channel (https://www.twitch.tv/cheukting_ho) ","date":"28 February 2021","externalUrl":null,"permalink":"/videos/tmgelzid4ww_python_zero_to_hero_-_ep37_-_nlp_with_bert_encoding_can_predict_emoji/","section":"Presentation videos","summary":"","title":"Python Zero to Hero - Ep.37 - NLP with BERT encoding can predict emoji?","type":"videos"},{"content":"","date":"26 February 2021","externalUrl":null,"permalink":"/tags/mid-meet-py/","section":"Tags","summary":"","title":"Mid Meet Py","type":"tags"},{"content":" 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. All links are in the podcast notes where you can find on our webpage (https://midmeetpy.org) Listen to MidMeetPy podcast (https://anchor.fm/midmeetpy)\n","date":"26 February 2021","externalUrl":null,"permalink":"/videos/_jjh5h9sphk_mid_meet_py_2021_-_ep02_-_lets_chat_with_lemon/","section":"Presentation videos","summary":"","title":"Mid Meet Py 2021 - Ep.02 - Let's chat with Lemon","type":"videos"},{"content":" 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 Twitch channel (https://www.twitch.tv/cheukting_ho) You can get the slide deck here (https://slides.com/cheukting_ho) and the example code and homework form GitHub here (https://github.com/Cheukting/python02hero). Ask questions at my Twitch channel (https://www.twitch.tv/cheukting_ho) ","date":"14 February 2021","externalUrl":null,"permalink":"/videos/cl0ohj-hlts_python_zero_to_hero_-_ep35_-_valentines_day_special_standard_libraries/","section":"Presentation videos","summary":"","title":"Python Zero to Hero - Ep.35 - (Valentine's Day Special) Standard Libraries","type":"videos"},{"content":" 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 at 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 Twitch channel (https://www.twitch.tv/cheukting_ho) You can get the slide deck here (https://slides.com/cheukting_ho) and the example code and homework form GitHub here (https://github.com/Cheukting/python02hero). Ask questions at my Twitch channel (https://www.twitch.tv/cheukting_ho) ","date":"14 February 2021","externalUrl":null,"permalink":"/videos/kbf8fdeqr78_python_zero_to_hero_-_ep36_-_the_most_useless_library_ever/","section":"Presentation videos","summary":"","title":"Python Zero to Hero - Ep.36 - The most useless library ever","type":"videos"},{"content":" 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 Twitch channel (https://www.twitch.tv/cheukting_ho) You can get the slide deck here (https://slides.com/cheukting_ho) and the example code and homework form GitHub here (https://github.com/Cheukting/python02hero). Ask questions at my Twitch channel (https://www.twitch.tv/cheukting_ho) ","date":"31 January 2021","externalUrl":null,"permalink":"/videos/hjolgjb6yt8_python_zero_to_hero_-_ep34_-_what_is_pep/","section":"Presentation videos","summary":"","title":"Python Zero to Hero - Ep.34 - What is PEP?","type":"videos"},{"content":" This week we will chat with Laura Gutierrez Funderburk of PyLadies Vancouver. Also, check out the Flask tutorial by Miguel Grinberg. All links are in the podcast notes where you can find on our webpage (https://midmeetpy.org) Listen to MidMeetPy podcast (https://anchor.fm/midmeetpy)\n","date":"29 January 2021","externalUrl":null,"permalink":"/videos/ahqe9bfv4-k_mid_meet_py_2021_-_ep01_-_we_are_back_and_chat_with_laura_gutierrez_funderburk/","section":"Presentation videos","summary":"","title":"Mid Meet Py 2021 - Ep.01 - We are back and chat with Laura Gutierrez Funderburk","type":"videos"},{"content":" This time we will use the magic build-in function \"dir\" to explore what's in a package and how python put things in place. If you have any questions or any suggestions about which Python topics to cover, please leave your comment at my Twitch channel (https://www.twitch.tv/cheukting_ho) You can get the slide deck here (https://slides.com/cheukting_ho) and the example code and homework form GitHub here (https://github.com/Cheukting/python02hero). Ask questions at my Twitch channel (https://www.twitch.tv/cheukting_ho) ","date":"17 January 2021","externalUrl":null,"permalink":"/videos/nkhyj1zrfgy_python_zero_to_hero_-_ep32_-_exploring_whats_in_a_package/","section":"Presentation videos","summary":"","title":"Python Zero to Hero - Ep.32 - Exploring what's in a package","type":"videos"},{"content":" 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 Twitch channel (https://www.twitch.tv/cheukting_ho) You can get the slide deck here (https://slides.com/cheukting_ho) and the example code and homework form GitHub here (https://github.com/Cheukting/python02hero). Ask questions at my Twitch channel (https://www.twitch.tv/cheukting_ho) ","date":"17 January 2021","externalUrl":null,"permalink":"/videos/mpdkdiojxhk_python_zero_to_hero_-_ep33_-_python_abc_abstract_base_classes/","section":"Presentation videos","summary":"","title":"Python Zero to Hero - Ep.33 - Python ABC (Abstract Base Classes)","type":"videos"},{"content":"","date":"14 January 2021","externalUrl":null,"permalink":"/tags/world-of-woqlcraft/","section":"Tags","summary":"","title":"World of WoqlCraft","type":"tags"},{"content":" Have you ever try extracting all the Docstrings from a Python package and build a graph database for it? Today, we are going to try doing that. Find the source code from our tutorial repo (https://github.com/terminusdb/terminus-tutorials). Join the TerminusDB community at Discord (https://discord.gg/Gvdqw97) ","date":"14 January 2021","externalUrl":null,"permalink":"/videos/xrkvnik6zzk_world_of_woqlcraft_-_ep26_documentation_graph/","section":"Presentation videos","summary":"","title":"World of WoqlCraft - Ep.26 Documentation Graph","type":"videos"},{"content":" How to Mock Well in Tests Using Mock and Pytest - PyConf Hyderabad 2020 ","date":"25 December 2020","externalUrl":null,"permalink":"/videos/gaeexcpdb2y_how_to_mock_well_in_tests_using_mock_and_pytest/","section":"Presentation videos","summary":"","title":"How to Mock Well in Tests Using Mock and Pytest","type":"videos"},{"content":"","date":"25 December 2020","externalUrl":null,"permalink":"/tags/pyconf-hyderabad/","section":"Tags","summary":"","title":"PyConf Hyderabad","type":"tags"},{"content":" One last episode with Flask before the new year! We will continue the amazing tutorial that we follow last time and see what we learnt from it before the end of 2020. If you have any questions or any suggestions about which Python topics to cover, please leave your comment at my Twitch channel (https://www.twitch.tv/cheukting_ho) You can get the slide deck here (https://slides.com/cheukting_ho) and the example code and homework form GitHub here (https://github.com/Cheukting/python02hero). Ask questions at my Twitch channel (https://www.twitch.tv/cheukting_ho) ","date":"20 December 2020","externalUrl":null,"permalink":"/videos/6k1s1ugk_iq_python_zero_to_hero_-_ep31_-_flask_before_new_year/","section":"Presentation videos","summary":"","title":"Python Zero to Hero - Ep.31 - Flask before new year","type":"videos"},{"content":" Cheuk Ting Ho is going to deliver a workshop on making Shiny App in Jupyter Notebooks using Bokeh and Python. Cheuk works as Developer Relations @ TerminusDB and constantly contributes to open source community by giving free tutorials on Twitch and organizing conferences. ","date":"19 December 2020","externalUrl":null,"permalink":"/videos/f_jzg8inf0g_shiny_apps_in_jupyter_notebook_using_bokeh__python/","section":"Presentation videos","summary":"","title":"Shiny Apps in Jupyter Notebook using Bokeh \u0026 Python","type":"videos"},{"content":" This time, we will follow a wonderful tutorial by Miguel Grinberg to build a website with Flask. If you have any questions or any suggestions about which Python topics to cover, please leave your comment at my Twitch channel (https://www.twitch.tv/cheukting_ho) You can get the slide deck here (https://slides.com/cheukting_ho) and the example code and homework form GitHub here (https://github.com/Cheukting/python02hero). Ask questions at my Twitch channel (https://www.twitch.tv/cheukting_ho) ","date":"13 December 2020","externalUrl":null,"permalink":"/videos/k9enbj3xtcs_python_zero_to_hero_-_ep30_-_templates_and_user_forms_in_flask/","section":"Presentation videos","summary":"","title":"Python Zero to Hero - Ep.30 - Templates and User Forms in Flask","type":"videos"},{"content":"","date":"3 December 2020","externalUrl":null,"permalink":"/tags/pycon-india/","section":"Tags","summary":"","title":"PyCon India","type":"tags"},{"content":" Under and Dunder - Python secret functions at PyCon India 2020 ","date":"3 December 2020","externalUrl":null,"permalink":"/videos/hqh9tyrfeks_under_and_dunder_-_python_secret_functions/","section":"Presentation videos","summary":"","title":"Under and Dunder - Python secret functions","type":"videos"},{"content":" Handbook for Successful Online Open Source Sprints - OpenSource Summit ","date":"29 November 2020","externalUrl":null,"permalink":"/videos/e4lui_iqgca_handbook_for_successful_online_open_source_sprints/","section":"Presentation videos","summary":"","title":"Handbook for Successful Online Open Source Sprints","type":"videos"},{"content":" This time, we see how Flask can let you build a web app super fast. It has a syntax similar to Fast API but can do more. If you have any questions or any suggestions about which Python topics to cover, please leave your comment at my Twitch channel (https://www.twitch.tv/cheukting_ho) You can get the slide deck here (https://slides.com/cheukting_ho) and the example code and homework form GitHub here (https://github.com/Cheukting/python02hero). Ask questions at my Twitch channel (https://www.twitch.tv/cheukting_ho) ","date":"29 November 2020","externalUrl":null,"permalink":"/videos/19pkakwlcea_python_zero_to_hero_-_ep29_-_building_fast_with_flask/","section":"Presentation videos","summary":"","title":"Python Zero to Hero - Ep.29 - Building Fast with Flask","type":"videos"},{"content":" In this episode, we have a quick first look at what FastAPI offer and how to compose the API of an app (with free docs) with just very simple Python code. If you have any questions or any suggestions about which Python topics to cover, please leave your comment at my Twitch channel (https://www.twitch.tv/cheukting_ho) You can get the slide deck here (https://slides.com/cheukting_ho) and the example code and homework form GitHub here (https://github.com/Cheukting/python02hero). Ask questions at my Twitch channel (https://www.twitch.tv/cheukting_ho) ","date":"22 November 2020","externalUrl":null,"permalink":"/videos/ohhc85ly_im_python_zero_to_hero_-_ep28_-_quick_look_at_fastapi/","section":"Presentation videos","summary":"","title":"Python Zero to Hero - Ep.28 - Quick Look at FastAPI","type":"videos"},{"content":" After a long break, we continue with our Django exploration journey. This time we see how the app's UI come into place by using some default Django template. If you have any questions or any suggestions about which Python topics to cover, please leave your comment at my Twitch channel (https://www.twitch.tv/cheukting_ho) You can get the slide deck here (https://slides.com/cheukting_ho) and the example code and homework form GitHub here (https://github.com/Cheukting/python02hero). Ask questions at my Twitch channel (https://www.twitch.tv/cheukting_ho) ","date":"15 November 2020","externalUrl":null,"permalink":"/videos/tadwsnadd24_python_zero_to_hero_-_ep27_-_further_exploring_django/","section":"Presentation videos","summary":"","title":"Python Zero to Hero - Ep.27 - Further exploring Django","type":"videos"},{"content":" Following last week, we continue with our Django exploration journey. If you have any questions or any suggestions about which Python topics to cover, please leave your comment at my Twitch channel (https://www.twitch.tv/cheukting_ho) You can get the slide deck here (https://slides.com/cheukting_ho) and the example code and homework form GitHub here (https://github.com/Cheukting/python02hero). Ask questions at my Twitch channel (https://www.twitch.tv/cheukting_ho) ","date":"18 October 2020","externalUrl":null,"permalink":"/videos/gajkl7pwcpe_python_zero_to_hero_-_ep26_-_continue_exploring_django/","section":"Presentation videos","summary":"","title":"Python Zero to Hero - Ep.26 - Continue exploring Django","type":"videos"},{"content":" Today I started my journey learning Django by following the beginner tutorial at the official documentation. I made some discovery and it was fun. If you have any questions or any suggestions about which Python topics to cover, please leave your comment at my Twitch channel (https://www.twitch.tv/cheukting_ho) You can get the slide deck here (https://slides.com/cheukting_ho) and the example code and homework form GitHub here (https://github.com/Cheukting/python02hero). Ask questions at my Twitch channel (https://www.twitch.tv/cheukting_ho) ","date":"11 October 2020","externalUrl":null,"permalink":"/videos/gajkl7pwcpe_python_zero_to_hero_-_ep25_-_lets_learn_django/","section":"Presentation videos","summary":"","title":"Python Zero to Hero - Ep.25 - Let's learn Django","type":"videos"},{"content":" Today I have dive deeper into various Python environment management tools. I think it would be really helpful for beginners to start the habit of using separate environments for different projects. So come and pick one for yourself! If you have any questions or any suggestions about which Python topics to cover, please leave your comment at my Twitch channel (https://www.twitch.tv/cheukting_ho) You can get the slide deck here (https://slides.com/cheukting_ho) and the example code and homework form GitHub here (https://github.com/Cheukting/python02hero). Ask questions at my Twitch channel (https://www.twitch.tv/cheukting_ho) ","date":"27 September 2020","externalUrl":null,"permalink":"/videos/mkpuhhpkdmo_python_zero_to_hero_-_ep24_-_python_environment_management_tools/","section":"Presentation videos","summary":"","title":"Python Zero to Hero - Ep.24 - Python environment management tools","type":"videos"},{"content":" Today we will explore the DBpedia and Seshat dataset using our new graph visualisation tool in Jupyter notebook. Not only generating a cool interactive graph in the Jupyter notebook, but we can also export it as an HTML file. Find the source code from our tutorial repo (https://github.com/terminusdb/terminus-tutorials). Join the TerminusDB community at Discord (https://discord.gg/Gvdqw97) ","date":"25 September 2020","externalUrl":null,"permalink":"/videos/ht2nymvqt5w_world_of_woqlcraft_-_ep25_exploring_the_dbpedia_and_seshat_dataset/","section":"Presentation videos","summary":"","title":"World of WoqlCraft - Ep.25 Exploring the Dbpedia and Seshat dataset","type":"videos"},{"content":" Cheuk Ting Ho - Open-source in the eyes of a Minority Contributor | PyData Fest Amsterdam 2020 In the first part of this talk, I will talk about my personal experience in contributing to open-source. From learning how to make a Pull Request on GitHub to maintaining libraries. From attending my first meetup to co-organizing conferences. I will tell you what I observe as a self-identifying female. My opinion on certain events that happened. And what “help” do we, minorities in the community, need. In the second part of the talk, I will change to a more subjective angle to look at the diversity issues in the open-source community, especially in Python and Data Science communities. I will try to address what effort has been made and what more we can do. In the end, I will try to convince you all the be our ally and to do the right thing to make our community more inclusive and diverse. ","date":"21 September 2020","externalUrl":null,"permalink":"/videos/r3w-vcsqo80_open-source_in_the_eyes_of_a_minority_contributor/","section":"Presentation videos","summary":"","title":"Open-source in the eyes of a Minority Contributor","type":"videos"},{"content":" I have not used click - a Python library that let you effortlessly create a cli tool, for years. So I would like to learn it again. Let's learn it together! If you have any questions or any suggestions about which Python topics to cover, please leave your comment at my Twitch channel (https://www.twitch.tv/cheukting_ho) You can get the slide deck here (https://slides.com/cheukting_ho) and the example code and homework form GitHub here (https://github.com/Cheukting/python02hero). Ask questions at my Twitch channel (https://www.twitch.tv/cheukting_ho) ","date":"20 September 2020","externalUrl":null,"permalink":"/videos/aag1s2ujhhy_python_zero_to_hero_-_ep23_-_learn_click_with_me/","section":"Presentation videos","summary":"","title":"Python Zero to Hero - Ep.23 - Learn click with me","type":"videos"},{"content":" Today we will have a quick look at the new plug-in of the TerminusDB client which gives customisable interactive graph visualisation on Jupyter notebook. JavaScript did the heavy lifting but the users are just required to write in Python. Find the source code from our tutorial repo (https://github.com/terminusdb/terminus-tutorials). Join the TerminusDB community at Discord (https://discord.gg/Gvdqw97) ","date":"18 September 2020","externalUrl":null,"permalink":"/videos/6rwcccujx2s_world_of_woqlcraft_-_ep24_graph_visualisation_on_jupyter_notebook/","section":"Presentation videos","summary":"","title":"World of WoqlCraft - Ep.24 Graph visualisation on Jupyter notebook","type":"videos"},{"content":" PyChat DjangoCon 2020 Sept 18th and 19th (https://2020.djangocon.eu) Cheuk and I will be speaking at PyData Hamburg on Sept 22nd (https://twitter.com/PyDataHamburg/status/1302709670440775680) Humber Data Workshop with PyData Global open for application (https://humbledata.org/event/pydataglobal2020.html) Answer survey to improve pip’s usability (https://pyfound.blogspot.com/2020/09/answer-surveys-improve-pip-ux.html?m=1) EuroPython Society General Assembly 2020 this Sunday (https://www.europython-society.org/post/626791290466615296/europython-society-general-assembly-2020) Python 4 FAQ by Guido (https://twitter.com/gvanrossum/status/1306270482384076800) Mid Meet - Hall of Fame Vicky Tomey-Lee Founder of PythonIE, PyLadies Dublin chapter (https://twitter.com/PyLadiesDub), Coding Grace (https://twitter.com/CodingGrace) Follow Vicky on Twitter (https://twitter.com/whykay) Follow Vicky on dev.to (https://dev.to/whykay) PyPI highlights Papermill (https://github.com/nteract/papermill) - let’s you use parameters and trigger actions on a notebook. Listen to MidMeetPy podcast (https://anchor.fm/midmeetpy) ","date":"16 September 2020","externalUrl":null,"permalink":"/videos/h3ympahmi5s_mid_meet_py_-_ep23_-_interview_with_vicky_tomey-lee/","section":"Presentation videos","summary":"","title":"Mid Meet Py - Ep.23 - Interview with Vicky Tomey-Lee","type":"videos"},{"content":" PyChat Very important - Pyjamas CfP extended to 19th Sept!!!! (https://twitter.com/PyjamasConf/status/1301994754343927811) Humble Data (https://twitter.com/HumbleData) workshop with PyData Global @ 7th November PyCon AU recording is out (https://www.youtube.com/user/PyConAU) Some recent stats on Woman in Eng (EWB South Africa) (https://twitter.com/EWBSA/status/1298605057068486657) Listen to MidMeetPy podcast (https://anchor.fm/midmeetpy) ","date":"9 September 2020","externalUrl":null,"permalink":"/videos/bgi6vyov9be_mid_meet_py_-_ep22_-_ask_us_anything/","section":"Presentation videos","summary":"","title":"Mid Meet Py - Ep.22 - Ask us anything","type":"videos"},{"content":"","date":"8 September 2020","externalUrl":null,"permalink":"/tags/pycon-africa/","section":"Tags","summary":"","title":"PyCon Africa","type":"tags"},{"content":"","date":"8 September 2020","externalUrl":null,"permalink":"/tags/pyconau/","section":"Tags","summary":"","title":"PyConAU","type":"tags"},{"content":" At the start, we will be using `dir` to look into the secret functions Python objects have. Eg: `__getitem__`, `__iter__` and `__next__` Then, we will investigate where is the dunder function goes? Why is it not accessible. And at the end, we will see how dunder functions can change the identity of the Python objects. This talk is for attendees who have just begin their Python journey. By explaining the dunder functions and the nature of Python objects, attendees will have a better understanding of why Python is fundamentally different from other programming languages. Hopefully, this knowledge will help them out when they continue their Python journeys. ","date":"8 September 2020","externalUrl":null,"permalink":"/videos/yqobveaau5w_under_and_dunder_-_python_secret_functions/","section":"Presentation videos","summary":"","title":"Under and Dunder - Python secret functions","type":"videos"},{"content":" To avoid having such a spaghetti in your computer, you should create a new virtual environment when you start a new project and have a single tool to record your environment setup (e.g. which version of python, what packages to install) so it is reproducible. ","date":"8 September 2020","externalUrl":null,"permalink":"/videos/ec2qvxdoysu_untangle_spaghetti_python_paths/","section":"Presentation videos","summary":"","title":"Untangle Spaghetti Python Paths","type":"videos"},{"content":" Today we will explore the Python os and subprocess module and see how it could help us in reading and writing files. Also how you can use subprocess to spin up a docker container. If you have any questions or any suggestions about which Python topics to cover, please leave your comment at my Twitch channel (https://www.twitch.tv/cheukting_ho) You can get the slide deck here (https://slides.com/cheukting_ho) and the example code and homework form GitHub here (https://github.com/Cheukting/python02hero). Ask questions at my Twitch channel (https://www.twitch.tv/cheukting_ho) ","date":"6 September 2020","externalUrl":null,"permalink":"/videos/h_vxiral-i8_python_zero_to_hero_-_ep22_-_python_os_and_subprocess/","section":"Presentation videos","summary":"","title":"Python Zero to Hero - Ep.22 - Python os and subprocess","type":"videos"},{"content":" Just a quick update about what is new for our new TerminusDB 3.0 release and our Python client. Now with Terminus Hub you can get the graphs that we show in previous episodes from Terminus Hub. Find the source code from our tutorial repo (https://github.com/terminusdb/terminus-tutorials). Join the TerminusDB community at Discord (https://discord.gg/Gvdqw97) ","date":"4 September 2020","externalUrl":null,"permalink":"/videos/6rwcccujx2s_world_of_woqlcraft_-_ep23_quick_up_data_for_terminusdb_30/","section":"Presentation videos","summary":"","title":"World of WoqlCraft - Ep.23 Quick up data for TerminusDB 3.0","type":"videos"},{"content":" PyChat Very important - Pyjamas CfP ends this Saturday!!!! (https://twitter.com/PyjamasConf/status/1300780564929228803) PyCon TaiWan (Maybe) the first non-online PyCon since COVID outbreak (5-6 Sep 2020) (https://tw.pycon.org/2020/en-us/) At the same time - PyConline AU (4-6 Sept) you can join anywhere in the world (https://2020.pycon.org.au/) PyData Global tickets are now available! (https://global.pydata.org/pages/tickets.html) You can get PyData Swag here (https://twitter.com/PyData/status/1296998059591774208) Bokeh 2.2 is out! (https://medium.com/bokeh/bokeh-2-2-d9096a223df6) Mid Meet - Hall of Fame Jesper Dramsc - ML engineer Follow Jesper on Twitter (https://twitter.com/JesperDramsch) Skill share course here (https://www.skillshare.com/site/join?teacherRef=6379366\u0026via=teacher-referral\u0026utm_campaign=teacher-referral\u0026utm_source=ShortUrl\u0026utm_medium=teacher-referral\u0026t=Data-Science-and-Business-Analytics-with-Python\u0026sku=1489151284) Pyrocko (https://pyrocko.org/) StatsQuest (https://www.youtube.com/channel/UCtYLUTtgS3k1Fg4y5tAhLbw) PyPI highlights Docker Compose (https://pypi.org/project/docker-compose/) (is a Python library!!!!) Present (https://github.com/vinayak-mehta/present) - make your slides with a terminal window with flare Opacus (https://ai.facebook.com/blog/introducing-opacus-a-high-speed-library-for-training-pytorch-models-with-differential-privacy/) Listen to MidMeetPy podcast (https://anchor.fm/midmeetpy) ","date":"2 September 2020","externalUrl":null,"permalink":"/videos/jgyqct8umqc_mid_meet_py_-_ep21_-_interview_with_jesper_dramsc/","section":"Presentation videos","summary":"","title":"Mid Meet Py - Ep.21 - Interview with Jesper Dramsc","type":"videos"},{"content":" We go deeper with Python list and dictionary this time to see how we can create a list with the beautiful list comprehension. Also, we will see how we can sort a list in various ways. Before we end the episode, we also have a look at the OrderedDict and Counter that the Collections library offer. If you have any questions or any suggestions about which Python topics to cover, please leave your comment at my Twitch channel (https://www.twitch.tv/cheukting_ho) You can get the slide deck here (https://slides.com/cheukting_ho) and the example code and homework form GitHub here (https://github.com/Cheukting/python02hero). Ask questions at my Twitch channel (https://www.twitch.tv/cheukting_ho) ","date":"29 August 2020","externalUrl":null,"permalink":"/videos/ekkkcivi-zw_python_zero_to_hero_-_ep21_-_more_python_list_and_dict/","section":"Presentation videos","summary":"","title":"Python Zero to Hero - Ep.21 - More Python List and Dict","type":"videos"},{"content":" Today we will be trying to insert WordNet into a schema-less graph. After that, we will have a look at what is in the schema-less graph and try to make sense out of it. Find the source code from our tutorial repo (https://github.com/terminusdb/terminus-tutorials). Join the TerminusDB community at Discord (https://discord.gg/Gvdqw97) ","date":"28 August 2020","externalUrl":null,"permalink":"/videos/l8re0n0w8rq_world_of_woqlcraft_-_ep22_worldnet/","section":"Presentation videos","summary":"","title":"World of WoqlCraft - Ep.22 WorldNet","type":"videos"},{"content":" PyChat PyCon Italy cancelled (https://pycon.it/en/blog/pycon-11-cancelled/) Pyjamas CfP workshop (https://pyjamas.live/blog/ask-me-anything) August 27th \u0026 28th Ticket sale to PyData Global (https://global.pydata.org//) starts tomorrow (27th Aug) Data Science and Business Analytics with Python course (https://www.skillshare.com/classes/Data-Science-and-Business-Analytics-with-Python/1489151284/projects?via=search-layout-grid) - Jesper Dramsch CircuitPython day (https://circuitpython.org) - Sept 9th - Adafruit newsletter (https://www.adafruitdaily.com/2020/08/25/python-on-microcontrollers-newsletter-usb-midi-host-8000-thanks-projects-and-more-python-adafruit-circuitpython-circuitpython-micropython-thepsf/) Nadia’s new book on Open Source (https://twitter.com/nayafia/status/1273304859387719680) - Guido’s tweet (https://twitter.com/gvanrossum/status/1297043394712092672) Mid Meet - Hall of Fame Bojan Miletic - Python developer Follow Bojan on Twitter (https://twitter.com/mrBoyan) Virtual Coffee (https://calendly.com/bojan-miletic/virtual-coffee) Website (https://www.softerrific.com/) PyPI highlights Pytest-docker-compose (https://github.com/pytest-docker-compose/pytest-docker-compose) Listen to MidMeetPy podcast (https://anchor.fm/midmeetpy) ","date":"26 August 2020","externalUrl":null,"permalink":"/videos/8qbluo6-4ue_mid_meet_py_-_ep20_-_interview_with_bojan_miletic/","section":"Presentation videos","summary":"","title":"Mid Meet Py - Ep.20 - Interview with Bojan Miletic","type":"videos"},{"content":" Today we will explore what is functional programming. Also, we will introduce `map`, `filter` and `reduce` in Python which you can do functional programming. If you have any questions or any suggestions about which Python topics to cover, please leave your comment at my Twitch channel (https://www.twitch.tv/cheukting_ho) You can get the slide deck here (https://slides.com/cheukting_ho) and the example code and homework form GitHub here (https://github.com/Cheukting/python02hero). Ask questions at my Twitch channel (https://www.twitch.tv/cheukting_ho) ","date":"21 August 2020","externalUrl":null,"permalink":"/videos/ympp6_zt320_python_zero_to_hero_-_ep20_-_python_functional_programming/","section":"Presentation videos","summary":"","title":"Python Zero to Hero - Ep.20 - Python functional programming","type":"videos"},{"content":" Today we will be exploring the bank example in the Python client which showcase how we can create an account, make some changes to the details and branching it. Find the source code from our tutorial repo (https://github.com/terminusdb/terminus-tutorials). Join the TerminusDB community at Discord (https://discord.gg/Gvdqw97) ","date":"20 August 2020","externalUrl":null,"permalink":"/videos/rgwxcpd7hoo_world_of_woqlcraft_-_ep21_bank_example/","section":"Presentation videos","summary":"","title":"World of WoqlCraft - Ep.21 bank example","type":"videos"},{"content":" PyChat PyBay impressions (https://pybay.com/program/) PyCon India extended their CfP until TODAY (https://twitter.com/pyconindia/status/1294661036138618880)! Nominate a PSF fellow! Deadline is TOMORROW (https://twitter.com/ThePSF/status/1295431462334980096)! Django 3.1 release notes (https://docs.djangoproject.com/en/3.1/releases/3.1/) - backwards incompatibilities 3.0 earlier. Consortium for Python Data API Standards - from these peeps (https://data-apis.org/blog/announcing_the_consortium/) PyLadies section PyLadies India \u0026 WomanTechmakers hosting a Show\u0026Tell (https://twitter.com/PyladiesI/status/1294931267566280711) on Aug 29th! Participation form (https://docs.google.com/forms/d/e/1FAIpQLScUeOe8Nr-S3nb5n5cgcBKEUO2-lWHOED8_FtjXjjw6_PW4DQ/viewform) PyLadies Munich hosting Naomi Ceder (https://twitter.com/pyladiesmunich/status/1295670252416704512) on Aug 27th talking about Python Objects Mid Meet - Hall of Fame Nina Zakharenko - PSF Director Follow Nina on Twitter (https://twitter.com/nnja) Follow Nina on Twitch (https://www.twitch.tv/nnjaio) (Python Tea) PyPI highlights AI Fairness 360 (aif360) (https://github.com/Trusted-AI/AIF360) CherryPy (https://github.com/cherrypy/cherrypy) Listen to MidMeetPy podcast (https://anchor.fm/midmeetpy) ","date":"19 August 2020","externalUrl":null,"permalink":"/videos/t-7ilqkcqi4_mid_meet_py_-_ep19_-_interview_with_nina_zakharenko/","section":"Presentation videos","summary":"","title":"Mid Meet Py - Ep.19 - Interview with Nina Zakharenko","type":"videos"},{"content":"","date":"17 August 2020","externalUrl":null,"permalink":"/tags/the-legend-of-data/","section":"Tags","summary":"","title":"The Legend of Data","type":"tags"},{"content":" In this episode, we will be Introducing various metrics, standard measurements that we will use to measure how \"good\" a model is. Being able to pick the right model for your machine learning predictions is one of the most important things in data science. If you have any questions or any suggestions about which Python or Data Science topics to cover, please leave your comment at my Twitch channel (https://www.twitch.tv/cheukting_ho) You can get the slide deck here (https://slides.com/cheukting_ho/legend-data-pandas1/). The notebook that I used can be found here (https://github.com/Cheukting/legend_data). ","date":"17 August 2020","externalUrl":null,"permalink":"/videos/sn_-acj1dfy_the_legend_of_data_-_ep12_-_comparing_models/","section":"Presentation videos","summary":"","title":"The Legend of Data - Ep.12 - Comparing models","type":"videos"},{"content":" This week, we will have an introduction to different popular boosting algorithms. We will go over their characteristics and differences so hopefully will help you to find the right one in the future. If you have any questions or any suggestions about which Python or Data Science topics to cover, please leave your comment at my Twitch channel (https://www.twitch.tv/cheukting_ho) You can get the slide deck here (https://slides.com/cheukting_ho/legend-data-pandas1/). The notebook that I used can be found here (https://github.com/Cheukting/legend_data). ","date":"17 August 2020","externalUrl":null,"permalink":"/videos/u4_nef8b6e0_the_legend_of_data_-_ep13_-_boosting_algorithms/","section":"Presentation videos","summary":"","title":"The Legend of Data - Ep.13 - Boosting Algorithms","type":"videos"},{"content":" Python is dynamically typed, which makes it very easy to learn for beginners. However, there are many reasons why we would like to annotate the type of variables in our code. In this episode, we will explore those scenarios and look at how type hinting works in Python. If you have any questions or any suggestions about which Python topics to cover, please leave your comment at my Twitch channel (https://www.twitch.tv/cheukting_ho) You can get the slide deck here (https://slides.com/cheukting_ho) and the example code and homework form GitHub here (https://github.com/Cheukting/python02hero). Ask questions at my Twitch channel (https://www.twitch.tv/cheukting_ho) ","date":"16 August 2020","externalUrl":null,"permalink":"/videos/swgnwcgsd5m_python_zero_to_hero_-_ep19_-_python_type_hinting/","section":"Presentation videos","summary":"","title":"Python Zero to Hero - Ep.19 - Python type hinting","type":"videos"},{"content":" Today we will be using the Python client to create a new branch and copying data over. We will see how the `branch` and `checkout` methods can be used and how the `node` query can copy data across branches. Find the source code from our tutorial repo (https://github.com/terminusdb/terminus-tutorials). Join the TerminusDB community at Discord (https://discord.gg/Gvdqw97) ","date":"14 August 2020","externalUrl":null,"permalink":"/videos/uo8l6hdt-i8_world_of_woqlcraft_-_ep20_new_branch_and_copy_over/","section":"Presentation videos","summary":"","title":"World of WoqlCraft - Ep.20 new branch and copy over","type":"videos"},{"content":" Decision tree-based algorithms are a family of common algorithms to be used in many machine learning applications. By drawing conclusions based on the labelled data provided, it can build a decision path to give a prediction based on the different values of different features given. If you have any questions or any suggestions about which Python or Data Science topics to cover, please leave your comment at my Twitch channel (https://www.twitch.tv/cheukting_ho) You can get the slide deck here (https://slides.com/cheukting_ho/legend-data-pandas1/). The notebook that I used can be found here (https://github.com/Cheukting/legend_data). ","date":"10 August 2020","externalUrl":null,"permalink":"/videos/39tktqskovm_the_legend_of_data_-_ep11_-_decision_tree/","section":"Presentation videos","summary":"","title":"The Legend of Data - Ep.11 - Decision Tree","type":"videos"},{"content":" Python packaging is one of the reasons why Python is loved by so many no matter how they used Python for. With the ability to install extra Python package, you can use Python to achieve different tasks easily. In this episode, we will talk about how all these works. If you have any questions or any suggestions about which Python topics to cover, please leave your comment at my Twitch channel (https://www.twitch.tv/cheukting_ho) You can get the slide deck here (https://slides.com/cheukting_ho) and the example code and homework form GitHub here (https://github.com/Cheukting/python02hero). Ask questions at my Twitch channel (https://www.twitch.tv/cheukting_ho) ","date":"9 August 2020","externalUrl":null,"permalink":"/videos/p6wqpscjazo_python_zero_to_hero_-_ep18_-_python_packaging/","section":"Presentation videos","summary":"","title":"Python Zero to Hero - Ep.18 - Python packaging","type":"videos"},{"content":" This time we are doing something different, looking at the idea of creating a wrapper of the WOQL.py to create a smooth passing of the Python object to the WOQLQuery. We will also explore the possibility of using a metaclass in Python. Find the source code from our tutorial repo (https://github.com/terminusdb/terminus-tutorials). Join the TerminusDB community at Discord (https://discord.gg/Gvdqw97) ","date":"7 August 2020","externalUrl":null,"permalink":"/videos/lslqe91zlka_world_of_woqlcraft_-_ep19_making_of_the_smart_query/","section":"Presentation videos","summary":"","title":"World of WoqlCraft - Ep.19 making of the Smart Query?","type":"videos"},{"content":" PyChat: PyCon Africa is happening now (https://africa.pycon.org/) data science for beginners workshop this Sunday PyData Global DfP extended to 16th Aug (https://global.pydata.org/pages/cfp.html)(Joke about PyData CfP (https://twitter.com/DiegoATorresQ/status/1289633316564541441)) PyjamasConf CfP is opened (https://pyjamas.live/cfp/) PyBamn just joined NumFocus (https://github.com/pybamm-team/PyBaMM?eType=EmailBlastContent\u0026eId=5f12e53e-8fa3-4c16-8741-46244d87e6c5) Numfocus is looking for a Dev Rel (https://numfocus.org/jobs/open-source-developer-advocate?eType=EmailBlastContent\u0026eId=5f12e53e-8fa3-4c16-8741-46244d87e6c5) Raspberry Pi Keyboard in Japanese (https://twitter.com/Raspberry_Pi/status/1290977599859183616) Create google assistant with Raspberry PI??? (https://twitter.com/ThePiHut/status/1290977130482933763) Mid Meet - Hall of Fame: Vincent D. Warmerdam - co-founder of PyData Amsterdam, Developer Advocate for Rasa Follow Vincent on Twitter (https://twitter.com/fishnets88) PyPi Highlights - Rasa (https://rasa.com/) Listen to MidMeetPy podcast (https://anchor.fm/midmeetpy) ","date":"5 August 2020","externalUrl":null,"permalink":"/videos/bgmnjy4s-70_mid_meet_py_-_ep18_-_interview_with_vincent_d_warmerdam/","section":"Presentation videos","summary":"","title":"Mid Meet Py - Ep.18 - Interview with Vincent D. Warmerdam","type":"videos"},{"content":" Categorical data are everywhere, but machines are not good at dealing with them. So we need to have different ways of handling categorical data. In this episode, we will briefly introduce come ways of categorical data feature engineering and some machine learning algorithms that are designed to deal with categorical data. If you have any questions or any suggestions about which Python or Data Science topics to cover, please leave your comment at my Twitch channel (https://www.twitch.tv/cheukting_ho) You can get the slide deck here (https://slides.com/cheukting_ho/legend-data-pandas1/). The notebook that I used can be found here (https://github.com/Cheukting/legend_data). ","date":"3 August 2020","externalUrl":null,"permalink":"/videos/ljqwx_wlpja_the_legend_of_data_-_ep10_-_categorical_data/","section":"Presentation videos","summary":"","title":"The Legend of Data - Ep.10 - Categorical Data","type":"videos"},{"content":" To make code usable we have to ensure users and developers know what the code is doing. We can add comments to explain thing but it's still limited. That's why we need to write docstrings in Python and with a bit of magic (a.k.a Sphinx) we can make the docstrings into a documentation website. If you have any questions or any suggestions about which Python topics to cover, please leave your comment at my Twitch channel (https://www.twitch.tv/cheukting_ho) You can get the slide deck here (https://slides.com/cheukting_ho) and the example code and homework form GitHub here (https://github.com/Cheukting/python02hero). Ask questions at my Twitch channel (https://www.twitch.tv/cheukting_ho) ","date":"2 August 2020","externalUrl":null,"permalink":"/videos/sjsy45vtk9i_python_zero_to_hero_-_ep17_-_python_docs/","section":"Presentation videos","summary":"","title":"Python Zero to Hero - Ep.17 - Python docs","type":"videos"},{"content":" Going through the hurdles and bugs, we have finally finished the knowledge graph for the SpaCy doc and making some query to get back the relations between the tokens. Find the source code from our tutorial repo (https://github.com/terminusdb/terminus-tutorials). Join the TerminusDB community at Discord (https://discord.gg/Gvdqw97) ","date":"31 July 2020","externalUrl":null,"permalink":"/videos/e6n-5sveze4_world_of_woqlcraft_-_ep18_finish_knowledge_graph_for_nlp_and_using_it/","section":"Presentation videos","summary":"","title":"World of WoqlCraft - Ep.18 Finish Knowledge Graph for NLP and Using It","type":"videos"},{"content":" PyChat: We need you! Data Science workshop at PyCon Africa needs mentors (https://twitter.com/cheukting_ho/status/1288036498764333056) PyData Global CfP deadline is 2nd August !!! (https://global.pydata.org//pages/cfp.html) Pytest 6 is out now (https://twitter.com/nicoddemus/status/1288203623353266177) Hacktoberfest Website is already out ?! (https://hacktoberfest.digitalocean.com/) PyBerlin tonight (https://www.meetup.com/PyBerlin/events/271482013/) PyData Cambridge - 20th Meetup happening tonight! (https://www.meetup.com/PyData-Cambridge-Meetup/events/271836696/) Mid Meet - Hall of Fame: Matin Borus - Pythonista, Volunteer of EuroPython Follow Martin on Twitter (https://twitter.com/mborus) PyPI highlights: PhotoCollage (https://github.com/adrienverge/PhotoCollage) made this (https://pypi.org/project/photocollage/) Authlib (https://github.com/lepture/authlib) Listen to MidMeetPy podcast (https://anchor.fm/midmeetpy) ","date":"29 July 2020","externalUrl":null,"permalink":"/videos/2fkllbv7voy_mid_meet_py_-_ep17_-_interview_with_martin_borus/","section":"Presentation videos","summary":"","title":"Mid Meet Py - Ep.17 - Interview with Martin Borus","type":"videos"},{"content":" *Sorry for the video quality, lot's of frames were dropped... I am still investigating why* Today we continue to explore how we can fit a model to predict the outcome given the data. In some cases, the outcome is either this or that, it's a binary prediction and in this case, it cannot be fit with a straight line like we did last week. Therefore, we need logistic regression. If you have any questions or any suggestions about which Python or Data Science topics to cover, please leave your comment at my Twitch channel (https://www.twitch.tv/cheukting_ho) You can get the slide deck here (https://slides.com/cheukting_ho/legend-data-pandas1/). The notebook that I used can be found here (https://github.com/Cheukting/legend_data). ","date":"28 July 2020","externalUrl":null,"permalink":"/videos/u_6hmz00sp8_the_legend_of_data_-_ep9_-_logistic_regression/","section":"Presentation videos","summary":"","title":"The Legend of Data - Ep.9 - Logistic Regression","type":"videos"},{"content":"This year, due to COVID-19, all of the conferences since March was cancelled or went online. It hit quite hard on me cause I miss all my friends. We all live in different cities, countries or even continents and we only got a few times that we can meet and hang out during the conferences.\nLast week, after organising and participating at EuroPython. I would say that, even though you cannot replace meeting physically at a venue with the community, the online experience is still very \u0026ldquo;EuroPython\u0026rdquo;.\nEuroPython and me # The first EuroPython that I attended was 2018. It was in Edinburgh, UK and I was a relatively new speaker. I was planning to travel with a friend but she had an accident before the conference and was not able to attend. I didn\u0026rsquo;t know anyone there at the beginning. But things changed fast. I remember I met some of my best friends in the community there for the first time. The community was so welcoming and I was quickly recognised due to my active involvement in volunteering work. (Also thanks to my lightning talk which I statically complaining about Window 7, I think what happened after this talk is a great pub story 🍻).\nNext year, it was in Basil, Switzerland. This time I travel with 3 more speakers form London (we are all ladies, we rocks). It makes the experience so difference. We share rooms and we often do things together. I was invited to be one of the organisers so I am more involved in the preparation and volunteering work (so I drag my roommates into volunteering as well). The most incredible volunteer task is to put stickers on all the batteries 🔋 that we gave out (with the amazing PewPew device) as souvenirs. It was like working in a factory in the 80s but all workers there are nerds (we tell nerd jokes while we work) and didn\u0026rsquo;t get paid. It was lots of fun. I also made new friends, have lots of giggles and I am happy to see my roommates who were new to EuroPython enjoy it too!\nThen this year, it was scheduled to be in Dublin, Ireland, but we went online. I was involved more in the organisation as the team shrinks and each of us needs to take more tasks on our shoulder. I was a bit sceptical whether the online conference will turn out okay.\nWhat do I like about #EuroPython 2020 most? The @EuroPython organising team, the sprint with @TerminusDB , the Mate workshop by @gilgamezh 😄 pic.twitter.com/cMHzwl82tt\n\u0026mdash; Cheuk Ting Ho (@cheukting_ho) July 26, 2020 EuroPython online is still EuroPython # When the conference started, actually I started to realise that, though the format and the tasks have changed, the split of EuroPython has not changed. The organising team is so good at facing many challenges (including the first keynote speaker missed her slot because of the timezone confusion). People are genuinely nice and going very easy on us about all the unexpected that happened. Attendees will help each other if someone is confused about where to find the talk. The organising team just work perfectly together, covering each other if someone needs help.\nThen it comes to the sprint. Oh boy, that was unexpected how engaging people are, despite that the sprint is carried out online. It is the first time I am a project leader in a sprint and I was not expecting people will be interested in our project and made so many valuable contributions. I feel the love 💕 form the community. What\u0026rsquo;s better is that my colleague who was new to this was impressed by our Python community. I am so proud of being a Pythonista!\nFor what I miss the most, the possibility of making new friends and get to know people around the world and understanding their culture. It is still there! One of the organisers from Argentina shows us how to prepare a must-have in their local sprint - a caffeinated drink called Mate (I thought it\u0026rsquo;s a cocktail🍹). It is not just a drink but there\u0026rsquo;s so much culture behind it and wow my eyes were opened.\nAnd that is EuroPython 2020, it\u0026rsquo;s online but it\u0026rsquo;s still the EuroPython that we know and love.\n","date":"27 July 2020","externalUrl":null,"permalink":"/posts/2020-07-27-europython2020/","section":"Blog posts","summary":"","title":"EuroPython Online is still EuroPython","type":"posts"},{"content":" *Sorry for the video quality, lot's of frames were dropped during the streaming due to my bad internet connection* Today we continue our story from generators to async. Introducing both the coroutine in asyncio (introduced in Python 3.4) and awaitable async function (introduced in Python 3.5). If you have any questions or any suggestions about which Python topics to cover, please leave your comment at my Twitch channel (https://www.twitch.tv/cheukting_ho) You can get the slide deck here (https://slides.com/cheukting_ho) and the example code and homework form GitHub here (https://github.com/Cheukting/python02hero). Ask questions at my Twitch channel (https://www.twitch.tv/cheukting_ho) ","date":"26 July 2020","externalUrl":null,"permalink":"/videos/aadqu43ef9u_python_zero_to_hero_-_ep16_-_python_async/","section":"Presentation videos","summary":"","title":"Python Zero to Hero - Ep.16 - Python async","type":"videos"},{"content":" Sorry for the short episode, we are having EuroPython this week. We try to continue the knowledge graph that we build last week. We plan to use idgen() to link up the queries and with the new plus operator, it should be easy. But there is a twist at the end that stops us... Find the source code from our tutorial repo (https://github.com/terminusdb/terminus-tutorials). Join the TerminusDB community at Discord (https://discord.gg/Gvdqw97) ","date":"24 July 2020","externalUrl":null,"permalink":"/videos/jypo_zoxluc_world_of_woqlcraft_-_ep17_fixing_the_knowledge_graph_for_nlp/","section":"Presentation videos","summary":"","title":"World of WoqlCraft - Ep.17 Fixing the Knowledge Graph for NLP","type":"videos"},{"content":"","date":"20 July 2020","externalUrl":null,"permalink":"/tags/data-science/","section":"Tags","summary":"","title":"Data Science","type":"tags"},{"content":"","date":"20 July 2020","externalUrl":null,"permalink":"/tags/javascript/","section":"Tags","summary":"","title":"JavaScript","type":"tags"},{"content":"While I am preparing my Data Science tutorial today, I suddenly have an idea of making an interactive plot with Bokeh and Jupyter notebook. I have a feeling that it\u0026rsquo;s possible because I was looking at the Bokeh widgets last week and I know that you can link up a Bokeh widget with a plot to change its appearance. It was a brave idea and I am happy with the result.\nBy doing so, I learn a thing or two about Bokeh and to be honest, this actually reminds me about Shiny in R. A few years ago, my friend and I had a conversation about how useful Shiny is and we wish there is something similar in Python. Here you go! It\u0026rsquo;s not exactly the same but, in my opinion, after coding in Python full time for a few years, it is better than a Shiny app.\nWhat is Bokeh # For those who do not know Bokeh, it\u0026rsquo;s an interactive visualisation library for modern web browsers. It allows you to create an interactive graph with just Python (of cause if you can code in JS you will get some bonus control over it). You can render your interactive graph as an html or embedded it in the Jupyter notebook.\nIf you want to learn more about Bokeh, you can watch my tutorial\nPrerequisite # To create something like I did - an interactive plot with Bokeh, you will have to be able to code in basic Python. Have some idea about Bokeh (the documentation is your best friend here).\nOn top of that, you will have to be able/ happy to write a bit of JavaScript. But don\u0026rsquo;t worry, you will only need to write some small code snippets of it and it is highly similar to Python.\nLet\u0026rsquo;s get started # In this example, we will create an app that the user can use 2 slider bars to control a line trying to fit the data with the least sum of error square. I call it a linear regression simulator. The sum of error square is re-calculated whenever any of the slider bars are moved. Like this:\nSo I think the best way is to show you the code then I will explain what we did in the code. Remember I will assume you have some basic idea about using Bokeh here. If you want to learn Bokeh, you can watch my tutorial here. I would also assume you know how to use Jupyter notebook and put the code in the cells and run them.\nFirst, let\u0026rsquo;s prepare our data:\nb = 0.425 A = 0.785 def sum_error_eq(x,y,b,A): sum_error_sq = 0 for i in range(len(x)): sum_error_sq += ((b*x[i]+A) - y[i])**2 return sum_error_sq data = {\u0026#39;X\u0026#39;: [1,2,3,4,5], \u0026#39;Y\u0026#39;: [1,2,1.3,3.75,2.25]} data[\u0026#39;b\u0026#39;] = [b] * len(data[\u0026#39;X\u0026#39;]) data[\u0026#39;A\u0026#39;] = [A] * len(data[\u0026#39;X\u0026#39;]) data[\u0026#39;Y pred\u0026#39;] = list(map(lambda X: X * b + A, data[\u0026#39;X\u0026#39;])) Here we have a preset value of b and A, these are the slope and the intercept of the line that we are going to create in the graph. We also have a function sum_error_eq to calculate the sum of error square. Unfortunately, we cannot reuse this function in our JS code snippets and will have to implement the same in JS.\nThen we have a dictionary that is the data. Originally in my notebook I use pandas, but I think I will take away another prerequisite by just using a dictionary here. Note that we have \u0026lsquo;Y\u0026rsquo;, which is for the actual points that we are going to plot with circle in Bokeh and \u0026lsquo;Y pred\u0026rsquo; which is the \u0026ldquo;predicted\u0026rdquo; Y form the line equation:\nY\u0026rsquo; = Xb + A\nthis will be used in the interactive line plot in Bokeh.\nNext, we want to make the plot:\nfrom bokeh.layouts import column from bokeh.models import ColumnDataSource, CustomJS, Slider, Div from bokeh.plotting import figure, output_notebook, show output_notebook() source = ColumnDataSource(data) plot = figure(plot_width=400, plot_height=200, x_range=[0,6], y_range=[0,5]) plot.line(x=\u0026#39;X\u0026#39;, y=\u0026#39;Y pred\u0026#39;, source=source, line_width=3, line_alpha=0.6) plot.circle(x=\u0026#39;X\u0026#39;, y=\u0026#39;Y\u0026#39;, source=source, size=10, color=\u0026#34;green\u0026#34;, alpha=0.5) callback_b = CustomJS(args=dict(source=source), code=\u0026#34;\u0026#34;\u0026#34; var data = source.data; var b_val = cb_obj.value var b = data[\u0026#39;b\u0026#39;] var A = data[\u0026#39;A\u0026#39;] var x = data[\u0026#39;X\u0026#39;] var y = data[\u0026#39;Y pred\u0026#39;] for (var i = 0; i \u0026lt; x.length; i++) { b[i] = b_val y[i] = b[i] * x[i] + A[i] } source.change.emit(); \u0026#34;\u0026#34;\u0026#34;) callback_A = CustomJS(args=dict(source=source), code=\u0026#34;\u0026#34;\u0026#34; var data = source.data; var A_val = cb_obj.value var b = data[\u0026#39;b\u0026#39;] var A = data[\u0026#39;A\u0026#39;] var x = data[\u0026#39;X\u0026#39;] var y = data[\u0026#39;Y pred\u0026#39;] for (var i = 0; i \u0026lt; x.length; i++) { A[i] = A_val y[i] = b[i] * x[i] + A[i] } source.change.emit(); \u0026#34;\u0026#34;\u0026#34;) div = Div(text=\u0026#34;Sum of error sq: \u0026#34;+ str(sum_error_eq(data[\u0026#39;X\u0026#39;],data[\u0026#39;Y\u0026#39;], b, A))) change_text = CustomJS(args=dict(div=div, source=source), code=\u0026#34;\u0026#34;\u0026#34; var data = source.data; var y_pred = data[\u0026#39;Y pred\u0026#39;]; var y = data[\u0026#39;Y\u0026#39;]; var result = 0; for (var i = 0; i \u0026lt; y.length; i++) { var diff = y_pred[i] - y[i] result = result + diff * diff } div.text = \u0026#34;Sum of error sq: \u0026#34; + result; \u0026#34;\u0026#34;\u0026#34; ) slider_b = Slider(start=0, end=4, value=b, step=.1, title=\u0026#34;value of b\u0026#34;) slider_b.js_on_change(\u0026#39;value\u0026#39;, callback_b, change_text) slider_A = Slider(start=0, end=4, value=A, step=.1, title=\u0026#34;value of A\u0026#34;) slider_A.js_on_change(\u0026#39;value\u0026#39;, callback_A, change_text) layout = column(slider_b, slider_A, plot, div) show(layout) Okay, that\u0026rsquo;s quite a big chunk of code here, let\u0026rsquo;s crack it down bit by bit:\noutput_notebook() This lets you output your \u0026ldquo;app\u0026rdquo; inline in the Jupyter notebook, If you want to export it as an html and embedded in your blog (like I did above) you can use output_file instead.\nsource = ColumnDataSource(data) This creates a source with the data that we have, a source created with ColumnDataSource can let you pass this data to the Bokeh plots and JS Callbacks (that we will explain later).\nplot = figure(plot_width=400, plot_height=200, x_range=[0,6], y_range=[0,5]) plot.line(x=\u0026#39;X\u0026#39;, y=\u0026#39;Y pred\u0026#39;, source=source, line_width=3, line_alpha=0.6) plot.circle(x=\u0026#39;X\u0026#39;, y=\u0026#39;Y\u0026#39;, source=source, size=10, color=\u0026#34;green\u0026#34;, alpha=0.5) Here we are creating the plot, with the interactive line and the circle. Note that the line here is not interactive yet but we will use the JS callback to change the data in the source so it will change with the slider when we hook up the callbacks with the slider bars.\ncallback_b = CustomJS(args=dict(source=source), code=\u0026#34;\u0026#34;\u0026#34; var data = source.data; var b_val = cb_obj.value var b = data[\u0026#39;b\u0026#39;] var A = data[\u0026#39;A\u0026#39;] var x = data[\u0026#39;X\u0026#39;] var y = data[\u0026#39;Y pred\u0026#39;] for (var i = 0; i \u0026lt; x.length; i++) { b[i] = b_val y[i] = b[i] * x[i] + A[i] } source.change.emit(); \u0026#34;\u0026#34;\u0026#34;) callback_A = CustomJS(args=dict(source=source), code=\u0026#34;\u0026#34;\u0026#34; var data = source.data; var A_val = cb_obj.value var b = data[\u0026#39;b\u0026#39;] var A = data[\u0026#39;A\u0026#39;] var x = data[\u0026#39;X\u0026#39;] var y = data[\u0026#39;Y pred\u0026#39;] for (var i = 0; i \u0026lt; x.length; i++) { A[i] = A_val y[i] = b[i] * x[i] + A[i] } source.change.emit(); \u0026#34;\u0026#34;\u0026#34;) These are the callbacks that we will be hooking up the slider bars. There is one for each. You can see that we pass the source in the JS code snippets and we change it according to the the value that we received in the slider bar. The snippets above are when b slider bar’s value has been changed and the one below is for A\ndiv = Div(text=\u0026#34;Sum of error sq: \u0026#34;+ str(sum_error_eq(data[\u0026#39;X\u0026#39;],data[\u0026#39;Y\u0026#39;], b, A))) change_text = CustomJS(args=dict(div=div, source=source), code=\u0026#34;\u0026#34;\u0026#34; var data = source.data; var y_pred = data[\u0026#39;Y pred\u0026#39;]; var y = data[\u0026#39;Y\u0026#39;]; var result = 0; for (var i = 0; i \u0026lt; y.length; i++) { var diff = y_pred[i] - y[i] result = result + diff * diff } div.text = \u0026#34;Sum of error sq: \u0026#34; + result; \u0026#34;\u0026#34;\u0026#34; ) Here we created a Div object, it is just like a \u0026lt;div\u0026gt; session in your html. The text will actually be interpreted as html. We also created another callback, this one is actually for changing the text in the div. Note that in the for-loop here we are doing exactly the same thing as sum_error_eq but in JS.\nslider_b = Slider(start=0, end=4, value=b, step=.1, title=\u0026#34;value of b\u0026#34;) slider_b.js_on_change(\u0026#39;value\u0026#39;, callback_b, change_text) slider_A = Slider(start=0, end=4, value=A, step=.1, title=\u0026#34;value of A\u0026#34;) slider_A.js_on_change(\u0026#39;value\u0026#39;, callback_A, change_text) Now we can create the Slider bars and hook them up with js_on_change\nlayout = column(slider_b, slider_A, plot, div) show(layout) Finally, we create the layout will all our components inside and show it.\nHow can I make a dark one like the gif? # Yes, there’s two things that I have done to make it “dark theme”. First, I use Jupyter Themes to give my Jupyter a new look. The theme that I used is monokai. Then I use the night_sky theme from Bokeh (by the way, I made this theme).\nI hope you had fun and will keep on exploring this cool functionality of Bokeh. If you have my tutorials, you can now watch them here. If you want to catch me streaming live, follow me on Twitch.\n","date":"20 July 2020","externalUrl":null,"permalink":"/posts/2020-07-20-shiny-app-python/","section":"Blog posts","summary":"","title":"Shiny App in Python? Bokeh + Jupyter notebook","type":"posts"},{"content":" **Join our free data science workshop at PyCon Africa (https://t.co/bS4nlglBmh?amp=1)** Starting from this week we will be doing machine learning. Linear regression is considered to be machine learning 101, and from seeing how linear regression works we will have a basic idea of how we can draw conclusions and make predictions with data. If you have any questions or any suggestions about which Python or Data Science topics to cover, please leave your comment at my Twitch channel (https://www.twitch.tv/cheukting_ho) You can get the slide deck here (https://slides.com/cheukting_ho/legend-data-pandas1/). The notebook that I used can be found here (https://github.com/Cheukting/legend_data). ","date":"20 July 2020","externalUrl":null,"permalink":"/videos/6hbniuxgfwo_the_legend_of_data_-_ep8_-_linear_regression/","section":"Presentation videos","summary":"","title":"The Legend of Data - Ep.8 - Linear Regression","type":"videos"},{"content":" Moving from iterators late week, we have introduced generators (or generator functions). Which lets you create iterators just like writing a function, with yield. It also got a \"send\" method which lets you pass information from one iterator to another, setting the stage for async in Python. If you have any questions or any suggestions about which Python topics to cover, please leave your comment at my Twitch channel (https://www.twitch.tv/cheukting_ho) You can get the slide deck here (https://slides.com/cheukting_ho) and the example code and homework form GitHub here (https://github.com/Cheukting/python02hero). Ask questions at my Twitch channel (https://www.twitch.tv/cheukting_ho) ","date":"19 July 2020","externalUrl":null,"permalink":"/videos/26ci5e-9tvg_python_zero_to_hero_-_ep15_-_python_generators/","section":"Presentation videos","summary":"","title":"Python Zero to Hero - Ep.15 - Python generators","type":"videos"},{"content":" This time we try to see if we can store the structure of a sentence in a knowledge graph? We build a schema to store the SpaCy tokens and will store the structure of a SpaCy doc in a graph. This is a part 1, we will continue loading it into the graph in next episode. Find the source code from our tutorial repo (https://github.com/terminusdb/terminus-tutorials). Join the TerminusDB community at Discord (https://discord.gg/Gvdqw97) ","date":"17 July 2020","externalUrl":null,"permalink":"/videos/r85qft3k1h0_world_of_woqlcraft_-_ep16_knowledge_graph_for_nlp/","section":"Presentation videos","summary":"","title":"World of WoqlCraft - Ep.16 Knowledge Graph for NLP","type":"videos"},{"content":" PyChat: Pytest 6.0 is coming (https://twitter.com/pytestdotorg/status/1281954639684857856) GitHub -\u003e Slack bot for pyladies (https://twitter.com/mariatta/status/1281739430554787840) Registrations for PyConAfrica2020 are open (https://twitter.com/pyconafrica/status/1282709212028600320) EuroPython 2020 will start on Thursday next week (https://twitter.com/europython/status/1282618451799023617) PyLadies Dublin Virtual Meetup July (https://www.meetup.com/PyLadiesDublin/events/271327497/) Mid Meet - Hall of Fame: Sandrine Pataut - Pythonista, Data Scientist Follow Sandrine on Twitter (https://twitter.com/SPataut) PyPI highlights: Marshmallow (https://marshmallow.readthedocs.io/en/stable/) AffectInTweets (https://github.com/erayyildiz/AffectInTweets) Listen to MidMeetPy podcast (https://anchor.fm/midmeetpy) ","date":"15 July 2020","externalUrl":null,"permalink":"/videos/ynne8n1wl1o_mid_meet_py_-_ep16_-_interview_with_sandrine_pataut/","section":"Presentation videos","summary":"","title":"Mid Meet Py - Ep.16 - Interview with Sandrine Pataut","type":"videos"},{"content":" In this last episode of a series of data visualization tutorial, we talked about using Boken, an interactive plotting library to generate some interactive plots with our pokemon dataset. We also tried making a widget which will take a user's input to control the look of our plot. If you have any questions or any suggestions about which Python or Data Science topics to cover, please leave your comment at my Twitch channel (https://www.twitch.tv/cheukting_ho) You can get the slide deck here (https://slides.com/cheukting_ho/legend-data-pandas1/). The notebook that I used can be found here (https://github.com/Cheukting/legend_data). ","date":"13 July 2020","externalUrl":null,"permalink":"/videos/cj_qru_4jj4_the_legend_of_data_-_ep7_-_data_visualization_4/","section":"Presentation videos","summary":"","title":"The Legend of Data - Ep.7 - Data Visualization 4","type":"videos"},{"content":" In this tutorial, we will investigate Python's iterators. Whenever you are doing a for-loop, an iterator is created under the hood. Let's have a closer look at this mysterious Python object. If you have any questions or any suggestions about which Python topics to cover, please leave your comment at my Twitch channel (https://www.twitch.tv/cheukting_ho) You can get the slide deck here (https://slides.com/cheukting_ho) and the example code and homework form GitHub here (https://github.com/Cheukting/python02hero). Ask questions at my Twitch channel (https://www.twitch.tv/cheukting_ho) ","date":"12 July 2020","externalUrl":null,"permalink":"/videos/ysyjsi2o6v0_python_zero_to_hero_-_ep14_-_python_iterators/","section":"Presentation videos","summary":"","title":"Python Zero to Hero - Ep.14 - Python iterators","type":"videos"},{"content":" PyChat: Python security announcement (https://twitter.com/zooba/status/1280235122730680324) - If your application embeds Python on Windows, you may be at risk. Matplotlib Cheatsheet (https://twitter.com/NPRougier/status/1280249448774414339) EuroPyhon Merch Shop (https://ep2020.europython.eu/europython/europython-merchandise-shop/) (15% off till 15th) Turn you Raspberry Pi into gaming machine (https://twitter.com/Raspberry_Pi/status/1280819367882764290) Python Ireland remote meetup event today (https://www.meetup.com/pythonireland/events/271602841/) Pydata event (https://www.meetup.com/pythonireland/events/271604309/): joined effort with regional meetup Mid Meet - Hall of Fame: Stéphane - CPython core developer, Board member of EuroPython Follow Stéphane on Twitter (https://twitter.com/matrixise) PyPI highlights: Pandas-Bokeh (https://github.com/PatrikHlobil/Pandas-Bokeh) - using bokeh with pandas interrogate (https://pypi.org/project/interrogate/) checks your code base for missing docstrings. Listen to MidMeetPy podcast (https://anchor.fm/midmeetpy) ","date":"8 July 2020","externalUrl":null,"permalink":"/videos/vubl0yfjnfa_mid_meet_py_-_ep15_-_interview_with_st%C3%A9phane/","section":"Presentation videos","summary":"","title":"Mid Meet Py - Ep.15 - Interview with Stéphane","type":"videos"},{"content":" Continue form last week, we try plotting by simply using df.plot. It uses Matplotlib as a back end and make plotting much easier. Also, we tried out Seaborn, a library that makes beautiful plots by providing a higher-level API on top of Matplotlib. If you have any questions or any suggestions about which Python or Data Science topics to cover, please leave your comment at my Twitch channel (https://www.twitch.tv/cheukting_ho) You can get the slide deck here (https://slides.com/cheukting_ho/legend-data-pandas1/). The notebook that I used can be found here (https://github.com/Cheukting/legend_data). ","date":"6 July 2020","externalUrl":null,"permalink":"/videos/momgi-b8_ua_the_legend_of_data_-_ep6_-_data_visualization_3/","section":"Presentation videos","summary":"","title":"The Legend of Data - Ep.6 - Data Visualization 3","type":"videos"},{"content":" We finally solve all the problems and finish loading all data in the most powerful TerminusDB 2.0, we are now ready to get some analysis out of the IMDB movies data. Follow this series to see how we use TerminusDB client and making queries in Python. Find the source code from our tutorial repo (https://github.com/terminusdb/terminus-tutorials). Join the TerminusDB community at Discord (https://discord.gg/Gvdqw97) ","date":"3 July 2020","externalUrl":null,"permalink":"/videos/1n7c1d5l7og_world_of_woqlcraft_-_ep14_finish_building_movies_data_graph/","section":"Presentation videos","summary":"","title":"World of WoqlCraft - Ep.14 Finish building movies data graph","type":"videos"},{"content":" We can now test out the IMDB movies data by making querying, asking what movie an actor is in and try to find a movie to watch by picking a genre. These all can be done in Jupyter Notebook with the TerminusDB Python client. Follow this series to see how we use TerminusDB client and making queries in Python. Find the source code from our tutorial repo (https://github.com/terminusdb/terminus-tutorials). Join the TerminusDB community at Discord (https://discord.gg/Gvdqw97) ","date":"3 July 2020","externalUrl":null,"permalink":"/videos/el1xgd1ztv0_world_of_woqlcraft_-_ep15_querying_movies_data_graph/","section":"Presentation videos","summary":"","title":"World of WoqlCraft - Ep.15 Querying movies data graph","type":"videos"},{"content":" PyChat: PyData global CfP is opened (https://global.pydata.org/pages/cfp.html) JupyterCon 2020 Virtual Event (https://jupytercon.com/?eType=EmailBlastContent\u0026eId=7199698e-39b2-4a0a-b12b-1c819f8582be) PyTorch joins NumFOCUS as an Affiliated Project (https://github.com/pytorch/ignite?eType=EmailBlastContent\u0026eId=7199698e-39b2-4a0a-b12b-1c819f8582be) PyGotham TV - last days for CfP (July 5th) (https://cfp.pygotham.tv/) Python Ireland remote meetup events (https://www.meetup.com/pythonireland/events/271602841/) \u003e volunteers for Lightning Talks (https://bit.ly/3g8w0xh) Blog about Pickle: Pickle’s nine flaws (https://nedbatchelder.com/blog/202006/pickles_nine_flaws.html) Mid Meet - Hall of Fame Interview with Waylon Walker (Twitter (https://twitter.com/_waylonwalker) \u0026 dev.to (https://dev.to/waylonwalker))- Data driven solution enabler, creator of find-kedro and kedro-static-viz Listen to MidMeetPy podcast (https://anchor.fm/midmeetpy) ","date":"1 July 2020","externalUrl":null,"permalink":"/videos/ghhwqk-z3ce_mid_meet_py_-_ep14_-_interview_with_waylon_walker/","section":"Presentation videos","summary":"","title":"Mid Meet Py - Ep.14 - Interview with Waylon Walker","type":"videos"},{"content":" This week we continue to do data visualisation with Matplotlib, we learn what are figures and axes, how to customize your plot by changing the elements in your axes, and having multiple subplots in a figure. In the end, we figure out a few slow fire type pokemon, can you guess what they are? If you have any questions or any suggestions about which Python or Data Science topics to cover, please leave your comment at my Twitch channel (https://www.twitch.tv/cheukting_ho) You can get the slide deck here (https://slides.com/cheukting_ho/legend-data-pandas1/). The notebook that I used can be found here (https://github.com/Cheukting/legend_data). ","date":"29 June 2020","externalUrl":null,"permalink":"/videos/btqdpbyuvbu_the_legend_of_data_-_ep5_-_data_visualization_2/","section":"Presentation videos","summary":"","title":"The Legend of Data - Ep.5 - Data Visualization 2","type":"videos"},{"content":" This week, we go through topics around test-driven development (TDD), followed by a live demo of developing a Python program with TDD. If you have any questions or any suggestions about which Python topics to cover, please leave your comment at my Twitch channel (https://www.twitch.tv/cheukting_ho) You can get the slide deck here (https://slides.com/cheukting_ho) and the example code and homework form GitHub here (https://github.com/Cheukting/python02hero). Ask questions at my Twitch channel (https://www.twitch.tv/cheukting_ho) ","date":"28 June 2020","externalUrl":null,"permalink":"/videos/qgjukf9au0w_python_zero_to_hero_-_ep13_-_test-driven_development/","section":"Presentation videos","summary":"","title":"Python Zero to Hero - Ep.13 - Test-driven Development","type":"videos"},{"content":" Using the new Python client for the most powerful TerminusDB 2.0, we continue building a knowledge graph with the IMDB movies data by loading the data from the csv. Find the source code from our tutorial repo (https://github.com/terminusdb/terminus-tutorials). Join the TerminusDB community at Discord (https://discord.gg/Gvdqw97) ","date":"26 June 2020","externalUrl":null,"permalink":"/videos/8txwrxshuda_world_of_woqlcraft_-_ep13_continue_building_movies_data_graph/","section":"Presentation videos","summary":"","title":"World of WoqlCraft - Ep.13 Continue building movies data graph","type":"videos"},{"content":" PyChat: Congratulations to new PSF board directors (http://pyfound.blogspot.com/2020/06/2020-python-software-foundation-board.html?utm_source=feedburner\u0026utm_medium=feed\u0026utm_campaign=Feed%3A+PythonSoftwareFoundationNews+%28Python+Software+Foundation+News%29) PyCon India (https://in.pycon.org/2020/) - CfP open until the 14th August. Conf on 2nd \u0026 3rd of October PyCon Australia is happening soon - CfP ends on July 12th (https://2020.pycon.org.au/) DjangoCon two full days of talks, free \u0026 online (https://2020.djangocon.eu/) Mid Meet - Hall of Fame Interview with Jason McDonald, author, speaker and time-lord. Follow Jason on Twitter (https://twitter.com/codemouse92) and dev.to (https://dev.to/codemouse92) Listen to MidMeetPy podcast (https://anchor.fm/midmeetpy) ","date":"24 June 2020","externalUrl":null,"permalink":"/videos/dux00jisx5u_mid_meet_py_-_ep13_-_interview_with_jason_mcdonald/","section":"Presentation videos","summary":"","title":"Mid Meet Py - Ep.13 - Interview with Jason McDonald","type":"videos"},{"content":" To start the topic of data visualisation, we went through why we do data visualisation, the common graph types and popular tool for data visualisation in Python. We also start talking about Matplotlib, the grand-daddy or the king of data visualisation. If you have any questions or any suggestions about which Python or Data Science topics to cover, please leave your comment at my Twitch channel (https://www.twitch.tv/cheukting_ho) You can get the slide deck here (https://slides.com/cheukting_ho/legend-data-pandas1/). The notebook that I used can be found here (https://github.com/Cheukting/legend_data). ","date":"22 June 2020","externalUrl":null,"permalink":"/videos/xsldjny9jq4_the_legend_of_data_-_ep4_-_data_visualization_1/","section":"Presentation videos","summary":"","title":"The Legend of Data - Ep.4 - Data Visualization 1","type":"videos"},{"content":" In this tutorial, we have covered some popular Python linters and auto-formatters: flake8, autoflake, black and isort. We also talk a bit about tox and pre-commit and how to use them with the linters and auto-formatters. If you have any questions or any suggestions about which Python topics to cover, please leave your comment at my Twitch channel (https://www.twitch.tv/cheukting_ho) You can get the slide deck here (https://slides.com/cheukting_ho) and the example code and homework form GitHub here (https://github.com/Cheukting/python02hero). Ask questions at my Twitch channel (https://www.twitch.tv/cheukting_ho) ","date":"21 June 2020","externalUrl":null,"permalink":"/videos/ckuwszdftsw_python_zero_to_hero_-_ep12_-_python_linting_and_auto-formating/","section":"Presentation videos","summary":"","title":"Python Zero to Hero - Ep.12 - Python linting and auto-formating","type":"videos"},{"content":" Using the new Python client for the most powerful TerminusDB 2.0, we start creating a knowledge graph with the IMDB movies data. Find the source code from our tutorial repo (https://github.com/terminusdb/terminus-tutorials). Join the TerminusDB community at Discord (https://discord.gg/Gvdqw97) ","date":"19 June 2020","externalUrl":null,"permalink":"/videos/0dkc5dq5ho8_world_of_woqlcraft_-_ep12_start_creating_movies_data_graph/","section":"Presentation videos","summary":"","title":"World of WoqlCraft - Ep.12 Start creating movies data graph","type":"videos"},{"content":" PyChat: Dropping pytz? (https://twitter.com/pganssle/status/1271878126235197440) PyData MCR (https://twitter.com/PyDataMCR/status/1271902376962785280) CPython - old parser is dead (https://twitter.com/pyblogsal/status/1271115432590807041) TutorialDB - a small scale OS search engine for programming/dev tutorials (https://tutorialdb-app.herokuapp.com/about/) Mid Meet - Hall of Fame: Dani Papamaximou - organizer of Django Girls Birmingham and Python Midwest Follow Dani on Twiter (https://twitter.com/DaniQuietNow) PyPI highlights: Recently wanna try using Pre-commit (https://pre-commit.com/) HTTPrunner (https://docs.httprunner.org/) HTTP(s) testing framework in Python Listen to MidMeetPy podcast (https://anchor.fm/midmeetpy) ","date":"17 June 2020","externalUrl":null,"permalink":"/videos/gklpnrkhrsm_mid_meet_py_-_ep12_-_interview_with_dani_papamaximou/","section":"Presentation videos","summary":"","title":"Mid Meet Py - Ep.12 - Interview with Dani Papamaximou","type":"videos"},{"content":" Pandas is a superpower tool to handle data in Python. It lets you read and write from csv, xlsx and other file formats; lets you change the structure of the data, change the data types, aggregate data, joining data etc. In this episode, continue exploring what pandas can do can explain in further details for some common pandas operations. If you have any questions or any suggestions about which Python or Data Science topics to cover, please leave your comment at my Twitch channel (https://www.twitch.tv/cheukting_ho) You can get the slide deck here (https://slides.com/cheukting_ho/legend-data-pandas1/). The notebook that I used can be found here (https://github.com/Cheukting/legend_data). ","date":"15 June 2020","externalUrl":null,"permalink":"/videos/xpokipzeomy_the_legend_of_data_-_ep3_-_pandas_basics_2/","section":"Presentation videos","summary":"","title":"The Legend of Data - Ep.3 - Pandas basics 2","type":"videos"},{"content":" We have been trying out some property-based tests in Python with Hypothesis. We tried to test on real functions in popular Python libraries. If you have any questions or any suggestions about which Python topics to cover, please leave your comment at my Twitch channel (https://www.twitch.tv/cheukting_ho) You can get the slide deck here (https://slides.com/cheukting_ho) and the example code and homework form GitHub here (https://github.com/Cheukting/python02hero). Ask questions at my Twitch channel (https://www.twitch.tv/cheukting_ho) ","date":"14 June 2020","externalUrl":null,"permalink":"/videos/7s8clmr98dy_python_zero_to_hero_-_ep11_-_python_property-based_testing/","section":"Presentation videos","summary":"","title":"Python Zero to Hero - Ep.11 - Python property-based testing","type":"videos"},{"content":" PyChat: PyData Festerval Amsterday (https://www.eventbrite.com/e/pydata-festival-amsterdam-2020-tickets-105751621948) Zen of Python song! (https://twitter.com/pumpichank/status/1264340179902332928) pyOpenSci community call today (https://twitter.com/pyOpenSci/status/1270004163234144257) Python Packaging Guide (https://dev.to/shyams1993/python-packaging-guide-25i6) PyLadies Call for Speakers (https://twitter.com/PyLadiesDub/status/1269963641518018568) Python Ireland call for speakers (https://twitter.com/PythonIreland/status/1268607953080397825) Mid Meet - Hall of Fame: David Lord - lead dev Flask and related libraries on @PalletsTeam. Meetup organizer @SanDiegoPython Follow David on Twitter (https://twitter.com/davidism) PyPI highlights: Make yourself a cartoon (https://github.com/minivision-ai/photo2cartoon) - They use this: face-alignment (https://pypi.org/project/face-alignment/) Create representations of large DS - datashader (https://datashader.org/) Listen to MidMeetPy podcast (https://anchor.fm/midmeetpy) ","date":"10 June 2020","externalUrl":null,"permalink":"/videos/rgiuacws25k_mid_meet_py_-_ep11_-_interview_with_david_lord/","section":"Presentation videos","summary":"","title":"Mid Meet Py - Ep.11 - Interview with David Lord","type":"videos"},{"content":" Pandas is a superpower tool to handle data in Python. It lets you read and write from csv, xlsx and other file formats; lets you change the structure of the data, change the data types, aggregate data, joining data etc. In this episode, we will talk a bit about the internal of pandas DataFrames and some basic operations for reading and writing csvs, slicing DataFrames and changing data types. If you have any questions or any suggestions about which Python or Data Science topics to cover, please leave your comment at my Twitch channel (https://www.twitch.tv/cheukting_ho) You can get the slide deck here (https://slides.com/cheukting_ho/legend-data-pandas1/). The notebook that I used can be found here (https://github.com/Cheukting/legend_data). ","date":"8 June 2020","externalUrl":null,"permalink":"/videos/p2oz8o4-njs_the_legend_of_data_-_ep2_-_pandas_basics_1/","section":"Presentation videos","summary":"","title":"The Legend of Data - Ep.2 - Pandas basics 1","type":"videos"},{"content":" Today we go deeper into pytest, try using fixture, mark xfail, skip and parametrize. We also look into how to monkey patch an object with mock.patch decorators. If you have any questions or any suggestions about which Python topics to cover, please leave your comment at my Twitch channel (https://www.twitch.tv/cheukting_ho) You can get the slide deck here (https://slides.com/cheukting_ho) and the example code and homework form GitHub here (https://github.com/Cheukting/python02hero). Ask questions at my Twitch channel (https://www.twitch.tv/cheukting_ho) ","date":"7 June 2020","externalUrl":null,"permalink":"/videos/ill-tntqo3q_python_zero_to_hero_-_ep10_-_more_pytest_and_mock/","section":"Presentation videos","summary":"","title":"Python Zero to Hero - Ep.10 - More Pytest and Mock","type":"videos"},{"content":" We had a tour at the newly release of TerminusDB 2.0, we have a play at the time-travel feature, going back and forth different commits, making a new branch. We also try using WOQL.js with the new console. Find the source code from our tutorial repo (https://github.com/terminusdb/terminus-tutorials). Join the TerminusDB community at Discord (https://discord.gg/Gvdqw97) ","date":"5 June 2020","externalUrl":null,"permalink":"/videos/7tnymsvz9-a_world_of_woqlcraft_-_ep10_tour_on_terminusdb_20_and_the_new_version_of_woql/","section":"Presentation videos","summary":"","title":"World of WoqlCraft - Ep.10 Tour on TerminusDB 2.0 and the new version of WOQL","type":"videos"},{"content":" Today is a short episode that I am giving you a preview of the new Python Client for TerminusDB. It is more pythonic than the last version and let you to have more options in constructing your WOQL objects. Best of all, it works with the most powerful TerminusDB 2.0. Find the source code from our tutorial repo (https://github.com/terminusdb/terminus-tutorials). Join the TerminusDB community at Discord (https://discord.gg/Gvdqw97) ","date":"5 June 2020","externalUrl":null,"permalink":"/videos/zj0inxercta_world_of_woqlcraft_-_ep11_terminusdb_new_python_client_updates_and_new_woqlpy_syntax/","section":"Presentation videos","summary":"","title":"World of WoqlCraft - Ep.11 TerminusDB new Python client updates and new woql.py syntax","type":"videos"},{"content":" PyChat: PSF support diversity, BlackLivesMatters (https://twitter.com/ThePSF/status/1267591714925133825) YSYS will be hosting an event bringing together black community leaders + allies in tech to discuss how we can mobilise and rebuild (https://twitter.com/ThisIsYSYS/status/1267393576708734976 but BLM related) EuroPython Schedule is out (https://ep2020.europython.eu/schedule/) AnacondaCon Starting today (https://anacondacon.io/) Django security releases, update ASAP (https://www.djangoproject.com/weblog/2020/jun/03/security-releases/) Py Hall of Fram: Adam Johnson, Django technical board member Follow Adam on twitter @AdamChainz (https://twitter.com/AdamChainz) Get Adam's book (https://gumroad.com/l/suydt) PyPI Highlight: Cheuk's choice - sidetable (https://pbpython.com/sidetable.html) - Create Simple Summary Tables in Pandas Adam's choice - time-machine (https://adamj.eu/tech/2020/06/03/introducing-time-machine/) Lais's choice - pillow (https://pypi.org/project/Pillow/) Listen to MidMeetPy podcast (https://anchor.fm/midmeetpy) ","date":"3 June 2020","externalUrl":null,"permalink":"/videos/2egoguwu378_mid_meet_py_-_ep10_-_interview_with_adam_johnson/","section":"Presentation videos","summary":"","title":"Mid Meet Py - Ep.10 - Interview with Adam Johnson","type":"videos"},{"content":" Jupyter notebook is one of the most popular IDE for data scientists. As the first episode of this new data science series, we will have an introduction to this open-source tool, how it works and how to use it efficiently. We also talked about what we will cover in the upcoming tutorials in this series. If you have any questions or any suggestions about which Python or Data Science topics to cover, please leave your comment at my Twitch channel (https://www.twitch.tv/cheukting_ho) You can get the slide deck here (https://slides.com/cheukting_ho/legend-data-intro/). ","date":"1 June 2020","externalUrl":null,"permalink":"/videos/kvkigk0oqqa_the_legend_of_data_-_ep1_-_introduciton_to_jupyter_notebook/","section":"Presentation videos","summary":"","title":"The Legend of Data - Ep.1 - Introduciton to Jupyter notebook","type":"videos"},{"content":" String operations are very useful in handling data, either input from a file or by the user. Today we have covered how to use the strings methods and the re module in Python to manipulate strings. If you have any questions or any suggestions about which Python topics to cover, please leave your comment at my Twitch channel (https://www.twitch.tv/cheukting_ho) You can get the slide deck here (https://slides.com/cheukting_ho) and the example code and homework form GitHub here (https://github.com/Cheukting/python02hero). Ask questions at my Twitch channel (https://www.twitch.tv/cheukting_ho) ","date":"31 May 2020","externalUrl":null,"permalink":"/videos/ecwszdglw88_python_zero_to_hero_-_ep9_-_strings_and_regex/","section":"Presentation videos","summary":"","title":"Python Zero to Hero - Ep.9 - Strings and Regex","type":"videos"},{"content":" PyChat: Free Python DS book (online) (https://jakevdp.github.io/PythonDataScienceHandbook/) Intro to NumPy, Matplotlib \u0026 sci-kit learn CfP for FlaskCon is open! (https://flaskcon.com/) Way to have more diverse board members is to have diverse voters (https://twitter.com/NaomiCeder/status/1264025804125716482) - become a voting member of the PSF Test pip’s alpha resolver (http://www.ei8fdb.org/thoughts/2020/05/test-pips-alpha-resolver-and-help-us-document-dependency-conflicts/) New pymsbuild for windows people (https://pypi.org/project/pymsbuild/) Workshop online PythonIreland (https://www.meetup.com/pythonireland/events/270568029/) Mid Meet - Hall of Fame: Ian Ozsvald - co-founder of PyData London Follow Ian on Twitter @ianozsvald (https://twitter.com/ianozsvald) PyPI highlights: Tesseract OCR text localization \u0026 detection (https://pypi.org/project/pytesseract/) Shed (https://github.com/Zac-HD/shed) - black plus autoflake plus isort plus pyupgrade plus some custom fixers Listen to MidMeetPy podcast (https://anchor.fm/midmeetpy) ","date":"27 May 2020","externalUrl":null,"permalink":"/videos/kzkpjewaul0_mid_meet_py_-_ep9_-_interview_with_ian_ozsvald/","section":"Presentation videos","summary":"","title":"Mid Meet Py - Ep.9 - Interview with Ian Ozsvald","type":"videos"},{"content":"","date":"25 May 2020","externalUrl":null,"permalink":"/tags/web-surgery/","section":"Tags","summary":"","title":"Web Surgery","type":"tags"},{"content":" This is the last episode of Web Surgery as I will dedicate this time every week to start a new series. Today we gonna quickly wrap up the series with a little improvement of my website. Thank you for supporting this series. Let me know what you would like to learn and any suggestions at my Twitch (https://www.twitch.tv/cheukting_ho). ","date":"25 May 2020","externalUrl":null,"permalink":"/videos/4vweakbaxui_web_surgery_-_ep8_-_final_fine_tuning_of_my_website/","section":"Presentation videos","summary":"","title":"Web Surgery - Ep.8 - Final fine tuning of my website","type":"videos"},{"content":" Today we cover what is a decorator and the basics of how to write a decorator. We also cover using the property decorator to write some getters and setters. If you have any questions or any suggestions about which Python topics to cover, please leave your comment at my Twitch channel (https://www.twitch.tv/cheukting_ho) You can get the slide deck here (https://slides.com/cheukting_ho/python-decorators/) and the example code and homework form GitHub here (https://github.com/Cheukting/python02hero). Ask questions at my Twitch channel (https://www.twitch.tv/cheukting_ho) Also, check out Naomi Ceder's Twitch channel (https://www.twitch.tv/nceder) for more beginner's (slightly more advance) tutorial. ","date":"24 May 2020","externalUrl":null,"permalink":"/videos/tklxv7_uyb0_python_zero_to_hero_-_ep8_-_decorators/","section":"Presentation videos","summary":"","title":"Python Zero to Hero - Ep.8 - Decorators","type":"videos"},{"content":" Continue with what we have done last week, we will do some graph visualisations with TerminusDB console to create a knowledge graph of the characters relations in the Game of Thrones. Find the source code from our tutorial repo (https://github.com/terminusdb/terminus-tutorials). Join the TerminusDB community at Discord (https://discord.gg/Gvdqw97) ","date":"22 May 2020","externalUrl":null,"permalink":"/videos/4lyzecmh9f8_world_of_woqlcraft_-_ep9_graph_visualisation_of_game_of_thrones_character_relations/","section":"Presentation videos","summary":"","title":"World of WoqlCraft - Ep.9 Graph visualisation of Game of Thrones Character Relations","type":"videos"},{"content":" (Sorry for the technical difficulties, we failed to capture Lais on the call today) PyChat: Python Conference for web devs 17th to 19th June (https://2020.pythonwebconf.com/) PyCon DE cancelled this year, see you next year (https://twitter.com/PyConDE/status/1261303281961381888) PyCon Africa 2020 Online (https://africa.pycon.org/) Sci-kit learn bugfix release 0.23.1 is out (https://twitter.com/scikit_learn/status/1262829951654473729) Release of the `tzdata` package (https://twitter.com/pganssle/status/1262791115230662657) Mid Meet - Hall of Fame: Tanya Allard, PSF Fellow, Developer Advocate at Microsoft Follow Tania on Twitter (https://twitter.com/ixek) PyPI highlights: Helium (https://github.com/mherrmann/selenium-python-helium) - Python library for web automation (like Selium but lighter) Hypothesis (https://hypothesis.readthedocs.io/en/latest/index.html) is actually cool. Listen to MidMeetPy podcast (https://anchor.fm/midmeetpy) ","date":"20 May 2020","externalUrl":null,"permalink":"/videos/wklgry1rqgi_mid_meet_py_-_ep8_-_interview_with_tania_allard/","section":"Presentation videos","summary":"","title":"Mid Meet Py - Ep.8 - Interview with Tania Allard","type":"videos"},{"content":" If you are learning how to code, learning how to use git would become very useful and it's a tool that almost all software developer use. In this tutorial, I will clear some concepts for using git, how git works and will point you to a hands-on exercise where you can use git to make your first pull request. Link to the sides (https://slides.com/cheukting_ho/what-is-git). Link to the exercise (http://bit.ly/1st_pr). ","date":"19 May 2020","externalUrl":null,"permalink":"/videos/bvjhobhezpm_git_for_absolute_beginners/","section":"Presentation videos","summary":"","title":"Git for Absolute Beginners","type":"videos"},{"content":" Update: the reason why I cannot install pytest in my environment is that I have installed conda yesterday and it messed up the path. Somehow conda overrides the pyenv paths so they cannot exist together. You can either keep it and use `python -m pytest` every time instead of `pytest` or, like me, remove conda so it works again. Testing is very important in software development. Unit testing is the smallest building block of your tests. It locks a unit of your code in place so making debugging much easier. Today we will use Pytest, a popular testing library in Python, to do some unit testing. We only cover the basics today and if you are interested to learn more about testing using pytest or other libraries, please leave your comment at my Twitch channel (https://t.co/7sqvTilzF1?amp=1) You can get the slide deck here (https://slides.com/cheukting_ho/python-pytest/) and the example code and homework form GitHub here (https://github.com/Cheukting/python02hero). Ask questions at my Twitch channel (https://t.co/7sqvTilzF1?amp=1) Also, check out Naomi Ceder's Twitch channel (https://t.co/hXhTu0ZIG8?amp=1) for more beginner's (slightly more advance) tutorial. ","date":"17 May 2020","externalUrl":null,"permalink":"/videos/k_pn5sfag-k_python_zero_to_hero_-_ep7_-_unit_testing_with_pytest/","section":"Presentation videos","summary":"","title":"Python Zero to Hero - Ep.7 - Unit testing with Pytest","type":"videos"},{"content":" Inspired by the famous Game of Thrones example of Neo4j, I tried to create the same graph (more or less) with just a script of Python using WOQL and TerminusDB within an hour, I call it speed coding. Did I succeed? Find the source code from our tutorial repo (https://github.com/terminusdb/terminus-tutorials). Join the TerminusDB community at Discord (https://discord.gg/Gvdqw97) ","date":"15 May 2020","externalUrl":null,"permalink":"/videos/leibauxshhc_world_of_woqlcraft_-_ep8_create_game_of_thrones_graph_within_an_hour/","section":"Presentation videos","summary":"","title":"World of WoqlCraft - Ep.8 Create Game of Thrones Graph within an Hour","type":"videos"},{"content":" Update: you cannot transfer your Animal Crossing island across Switches, I am considering starting a new island with my extra copy of the game. I am so excited to finally have the Animal Crossing Edition of Nintendo Switch. I really want to stream playing games with friends. The design of the Switch is so adorable. Want to follow my coding stream (mainly in Python) and potential gaming stream? Follow me on Twitch (https://www.twitch.tv/cheukting_ho). ","date":"14 May 2020","externalUrl":null,"permalink":"/videos/-upidc5afqc_nintendo_switch_animal_crossing_edition_unboxing/","section":"Presentation videos","summary":"","title":"Nintendo Switch (Animal Crossing Edition) Unboxing","type":"videos"},{"content":" PyChat: EP published their 1st set of talks (https://ep2020.europython.eu/events/sessions/) CfP still open for Various time zones (anyone can apply) (https://blog.europython.eu/post/617552560206872576/europython-2020-second-call-for-proposals-cfp) Naomi won't run for re-election for the chair of the PSF (https://twitter.com/NaomiCeder/status/1259301269694447618) PyCon Us Hatchery Mentoried sprint this saturday (https://us.pycon.org/2020/hatchery/mentoredsprints/) Hall of Fame: Interview with Nicolas Demarchi Follow him on LinkedIn (https://www.linkedin.com/in/nicolasdemarchi/?locale=en_US) Follow him on Twitter (https://twitter.com/gilgamezh) PyPI highlights: Events (https://pypi.org/project/Events/), a library that works as the Observer Design Pattern (or the Moderator, depending on your case). Discord.py (https://discordpy.readthedocs.io/en/latest/) - perfect if you wanna build a Discord bot. Listen to MidMeetPy podcast (https://anchor.fm/midmeetpy) ","date":"13 May 2020","externalUrl":null,"permalink":"/videos/aso59zwxdga_mid_meet_py_-_ep7_-_interview_with_nicolas_demarchi/","section":"Presentation videos","summary":"","title":"Mid Meet Py - Ep.7 - Interview with Nicolas Demarchi","type":"videos"},{"content":" This episode we deploy a Heroku dyno for the Auth for GitHub, but before that, we set up an app on GitHub to grant access to the GitHub repo. This is needed as the Netlify CMS will send a PR to that repo. In the future, we may add more functionality to our wishlist website, tell me what you would like to suggest at my Twitch (https://www.twitch.tv/cheukting_ho). The code is work in progress but if you want to check it out, it will be uploaded and updated in this repo (https://github.com/Cheukting/animal-crossing-wishlist) ","date":"11 May 2020","externalUrl":null,"permalink":"/videos/hs3kctaftwm_web_surgery_-_ep7_-_authentication_for_netlify_cms_on_github/","section":"Presentation videos","summary":"","title":"Web Surgery - Ep.7 - Authentication for Netlify CMS on GitHub","type":"videos"},{"content":" Python classes provide functionalities for Object-Oriented Programming. Today we explore how to write classes in Python, clear some concepts of scopes. We learn by purposely breaking some code. You can get the slide deck here (https://slides.com/cheukting_ho/python-classes#/) and the example code and homework form GitHub here (https://github.com/Cheukting/python02hero). Ask questions at my Twitch channel (https://t.co/7sqvTilzF1?amp=1) Also, check out Naomi Ceder's Twitch channel (https://t.co/hXhTu0ZIG8?amp=1) for more beginner's (slightly more advance) tutorial. ","date":"10 May 2020","externalUrl":null,"permalink":"/videos/tnhxnmsrwaa_python_zero_to_hero_-_ep6_-_python_classes_and_instances/","section":"Presentation videos","summary":"","title":"Python Zero to Hero - Ep.6 - Python Classes and Instances","type":"videos"},{"content":" This episode is a beginner version of World of Woql Craft (we want more people to get started). It is for people who have not used TerminusDB and WOQL before. We start form how to download TerminuDB, creating a schema, loading csv data, querying to customizing the graph view on TerminusDB console. Visit our blog (https://terminusdb.com/blog/2020/01/14/my-first-terminusdb-graph-visualisation-bike-share-data/) for a text version of this tutorial. Find the source code from our tutorial repo (https://github.com/terminusdb/terminus-tutorials). Join the TerminusDB community at Discord (https://discord.gg/Gvdqw97) ","date":"8 May 2020","externalUrl":null,"permalink":"/videos/sedqctfnyhg_world_of_woqlcraft_-_ep7_my_frist_graph_visualization_with_terminusdb/","section":"Presentation videos","summary":"","title":"World of WoqlCraft - Ep.7 My Frist Graph Visualization with TerminusDB","type":"videos"},{"content":" PyChat: Pydata UK joint meetup with multiple chapters in UK yesterday, awesome talks about TensorFlow Probability and How to expend Pandas capabilities (https://www.meetup.com/PyData-Manchester/events/270272244/) Global Pydata conference calling for organizing committee (https://twitter.com/dontusethiscode/status/1257907697141329926) PyData Dublin starting with a round of Monday talks from the 18th (https://www.meetup.com/PyDataDublin/) Release of Napari `0.3.0` with many new features (https://napari.org/docs/release/release_0_3_0.html) Naomi Ceder is the first keynote speaker announced for EuroPython (https://twitter.com/europython/status/1257680784384831489) Learning aid for Vim (https://vim-adventures.com/) Learn Vim while playing a game Py Hall of Frame: Interview with Steve Dower, Python tools developer at Microsoft and core CPython developer Follow Steve on Twitter (https://twitter.com/zooba) PyPI Highlight: Napari - fast, interactive, multi-dimensional image viewer for Python (https://github.com/napari/napari) Kedro - a best-practice scaffold for ML and DS pipelines (https://github.com/quantumblacklabs/kedro) ","date":"6 May 2020","externalUrl":null,"permalink":"/videos/on0fz1b4pwg_mid_meet_py_-_ep6_-_interview_with_steve_dower/","section":"Presentation videos","summary":"","title":"Mid Meet Py - Ep.6 - Interview with Steve Dower","type":"videos"},{"content":" This episode we will start to add Netlify CMS so the website. It can easily be done by adding an html and config.yml under admin. It is promising running on localhost but it is not fully working yet because we still have to figure out the Auth for GitHub, also we may add more functionality in the future, tell me what you suggest at my Twitch (https://www.twitch.tv/cheukting_ho). The code is work in progress but if you want to check it out, it will be uploaded and updated in this repo (https://github.com/Cheukting/animal-crossing-wishlist) ","date":"4 May 2020","externalUrl":null,"permalink":"/videos/va0v6qd4doc_web_surgery_-_ep6_-_adding_netlify_cms_to_the_website/","section":"Presentation videos","summary":"","title":"Web Surgery - Ep.6 - Adding Netlify CMS to the website","type":"videos"},{"content":" Today we go through a very important thing in Python - functions. I so thought the usage of it and some common mistakes that beginners could make. Also, we touch on importing modules - either it is a standard library or another python scripts. You can get the slide deck here (https://bit.ly/PyFunction) and the example code and homework form GitHub here (https://github.com/Cheukting/python02hero). Ask questions at my Twitch channel (https://t.co/7sqvTilzF1?amp=1) Also, check out Naomi Ceder's Twitch channel (https://t.co/hXhTu0ZIG8?amp=1) for more beginner's (slightly more advance) tutorial. ","date":"3 May 2020","externalUrl":null,"permalink":"/videos/zrjn85rsqyw_python_zero_to_hero_-_ep5_-_python_functions_and_modules/","section":"Presentation videos","summary":"","title":"Python Zero to Hero - Ep.5 - Python Functions and Modules","type":"videos"},{"content":" We finish off the Schema.org schema by recapping what we have done in the past weeks. Then we started a new project with OpenFlights.org data. We started with a fairly simple set of data and aim to build some application form there. Find the source code from our tutorial repo (https://github.com/terminusdb/terminus-tutorials). Join the TerminusDB community at Discord (https://discord.gg/Gvdqw97) ","date":"1 May 2020","externalUrl":null,"permalink":"/videos/m2mecipw5oc_world_of_woqlcraft_-_ep6_recap_and_wrap_up_schameorg_schema_start_openflightsorg_data/","section":"Presentation videos","summary":"","title":"World of WoqlCraft - Ep.6 recap and wrap up Schame.org schema, start OpenFlights.org data","type":"videos"},{"content":" PyChat (news in the community): PyCon Hatchery Programs looks for attendees and mentors: Data Workshops for Beginners (https://us.pycon.org/2020/hatchery/beginnersdata/) Mentored Sprints (https://us.pycon.org/2020/hatchery/mentoredsprints/) Remote Python Pizza surprise people that online conference does works! * Great speaker lineup * Chat on Discord is amazing * Hiccups with YouTube Streaming * 2 mins lightning talks * After party till 1am !!!!! Python 3.9a6 is out! (https://twitter.com/gvanrossum/status/1255164435502489600) Harvard is offering free courses (https://online-learning.harvard.edu/catalog?keywords=\u0026subject%5B%5D=3\u0026paid%5B1%5D=1\u0026max_price=\u0026start_date_range%5Bmin%5D%5Bdate%5D=\u0026start_date_range%5Bmax%5D%5Bdate%5D=) Meet Hall of Fame: Interview with Naomi Ceder, chair of the Python Software Foundation, co-founder of TransCode Follow Naomi on Twitter (https://twitter.com/NaomiCeder) Check out her twitch channel (https://t.co/wJ0PDZFTmN?amp=1) for tutorials every Friday. IDE showcase for Python with Lais: Atom / PyCharm / VSCode / Vim / Sublime etc ","date":"29 April 2020","externalUrl":null,"permalink":"/videos/2mqp_sja3au_mid_meet_py_-_ep5_-_interview_with_naomi_ceder/","section":"Presentation videos","summary":"","title":"Mid Meet Py - Ep.5 - Interview with Naomi Ceder","type":"videos"},{"content":" Continue with the last episode, we make more changes to the look of the website: fix the pictures of the items and icons of the social media. We have more or less got a website that we want - we may add more functionality in the future, tell me what you suggest at my Twitch (https://www.twitch.tv/cheukting_ho). We will be ready to add the Netlify CMS to our website next time. I used the Turnip Exchange (https://turnip.exchange/) to play with strangers online. Also, Nookazon (https://nookazon.com/) is \"Amazon\" for Animal Crossing, we may also use it to find the items that we want. The code is work in progress but if you want to check it out, it will be uploaded and updated in this repo (https://github.com/Cheukting/animal-crossing-wishlist) ","date":"27 April 2020","externalUrl":null,"permalink":"/videos/l5xcfcnnyw8_web_surgery_-_ep5_-_updating_the_look_of_the_animal_crossing_item_wishlist_website/","section":"Presentation videos","summary":"","title":"Web Surgery - Ep.5 - Updating the look of the Animal Crossing Item Wishlist Website","type":"videos"},{"content":" We got one step closer to writing a Python program. Learning how to branch out which path for the program to take base on conditions using if-else, we also learn writing loops so the program can do things over and over again with slight variation. You can get the slide deck here (https://bit.ly/PyControlFlow) and the example code and homework form GitHub here (https://github.com/Cheukting/python02hero). Ask questions at my Twitch channel (https://t.co/7sqvTilzF1?amp=1) Also, check out Naomi Ceder's Twitch channel (https://t.co/hXhTu0ZIG8?amp=1) for more beginner's (slightly more advance) tutorial. ","date":"26 April 2020","externalUrl":null,"permalink":"/videos/revflh9wd_c_python_zero_to_hero_-_ep4_-_python_control_flow_if_else_loop/","section":"Presentation videos","summary":"","title":"Python Zero to Hero - Ep.4 - Python Control Flow (if, else, loop)","type":"videos"},{"content":" We try to put the Schema.org schema that we built into action. However, I discovered there are a few problems with the schema and we fixed that. We scrape the microdata form the event page (http://events.terminusdb.com/london/2020/02/11/london-1st-graph.html) of our past meetup and put them into the database with our Schema.org schema. Find the source code from our tutorial repo (https://github.com/terminusdb/terminus-tutorials). Join the TerminusDB community at Discord (https://discord.gg/Gvdqw97) ","date":"24 April 2020","externalUrl":null,"permalink":"/videos/d604sgeevee_world_of_woqlcraft_-_ep5_load_data_into_schameorg_schema/","section":"Presentation videos","summary":"","title":"World of WoqlCraft - Ep.5 load data into Schame.org schema","type":"videos"},{"content":" PyChat (news in the community): Farewell to Oier Echaniz (https://twitter.com/acpyss/status/1251193690183348225) Pyladies Dub meetup 19th May (https://twitter.com/PyLadiesDub/status/1252162609446629376) Python in Astronomy hackdays kick off at midnight tonight BST (23rd \u0026 24th) April - all welcome! (https://twitter.com/pythoninastro/status/12501441027940433947) New Sponsorship Program for Python Packaging (https://pyfound.blogspot.com/2020/04/sponsoring-python-packaging.html) Ticket sales for EuroPython 2020 Online have started (https://blog.europython.eu/post/615992284837756928/europython-2020-ticket-sales-started) Meet Hall of Fame: Interview with Michael Foord, Python Core Developer, creator of Iron Python and Mock module Follow Michael on Twitter (https://twitter.com/voidspace) Check out his website (https://agileabstractions.com/) PyPI highlight: Fades - a library to manage your virtual Envs (https://fades.readthedocs.org) Jupyter-require - Let you run JavaScript, plug-in to Jupyter notebook (https://github.com/CermakM/jupyter-require) ","date":"22 April 2020","externalUrl":null,"permalink":"/videos/oyoulzoqssu_mid_meet_py_-_ep4_-_interview_with_michael_foord/","section":"Presentation videos","summary":"","title":"Mid Meet Py - Ep.4 - Interview with Michael Foord","type":"videos"},{"content":" This episode is the start of our Animal Crossing Item Wishlist Website project. I started to copy my website and change it so anyone can have their own item wishlist. Within 1 hour we have changed some of the components in Jekyll templates to suit our need. We will continue next week. We will be using the pictures and information on Animal Crossing Fandom wiki page - list of all funitures (https://animalcrossing.fandom.com/wiki/Furniture_(New_Horizons)). The code is work in progress but if you want to check it out, it will be uploaded and updated in this repo (https://github.com/Cheukting/animal-crossing-wishlist) I am thinking about doing 1.5 hours starting next week so we can get this project done quicker. Please leave any comments and thoughts in the panels of my Twitch channel (https://www.twitch.tv/cheukting_ho) make sure to follow me to catch me live on more coding and Python contents. ","date":"20 April 2020","externalUrl":null,"permalink":"/videos/jgqhnt-a20g_web_surgery_-_ep4_-_start_of_the_animal_crossing_item_wishlist_website/","section":"Presentation videos","summary":"","title":"Web Surgery - Ep.4 - Start of the Animal Crossing Item Wishlist Website","type":"videos"},{"content":" Today we learnt another 3 types of Python objects: Boolean (bool), List (list) and Dictionary (dict). I also explained a bit about mutability and hashable in Python. You can get the slide deck here (https://bit.ly/PythonBasics2) and the example code and homework form GitHub here (https://github.com/Cheukting/python02hero). Ask questions at my Twitch channel (https://t.co/7sqvTilzF1?amp=1) Also, check out Naomi Ceder's Twitch channel (https://t.co/hXhTu0ZIG8?amp=1) for more beginner's (slightly more advance) tutorial. ","date":"19 April 2020","externalUrl":null,"permalink":"/videos/7ddytmmk1jk_python_zero_to_hero_-_ep3_-_python_basics_2_bool_list_dict/","section":"Presentation videos","summary":"","title":"Python Zero to Hero - Ep.3 - Python Basics 2 (bool, list, dict)","type":"videos"},{"content":" Finally we finish building the whole schema. We put the multiple domains and range of the properties into a subclass of a single domain and properties so we can build the properties of the graph properly. Find the source code from our tutorial repo (https://github.com/terminusdb/terminus-tutorials). ","date":"17 April 2020","externalUrl":null,"permalink":"/videos/dywhlfswkig_world_of_woqlcraft_-_ep4_we_have_built_our_schema/","section":"Presentation videos","summary":"","title":"World of WoqlCraft - Ep.4 we have built our schema","type":"videos"},{"content":" Big thanks to TerminusDB (https://terminusdb.com/)! With the 6-core i7 Mac mini, hopefully, we will have better streaming and tutorials coming! Watch me on Twitch (https://www.twitch.tv/cheukting_ho) for my tutorials including World of WoqlCraft tutorial every Friday at 4pm UK time and Python beginner tutorials every Sunday at 1pm UK time. Follow TerminusDB here (https://www.youtube.com/channel/UC5kZt8pP-FM0u-R0BQr78YA) for weekly Webnibar that I hosted and knowledge-rich contents. ","date":"15 April 2020","externalUrl":null,"permalink":"/videos/39siymiqzgo_exciting_mac_mini_unboxing/","section":"Presentation videos","summary":"","title":"Exciting Mac mini Unboxing","type":"videos"},{"content":" EuroPython talk voting started (https://ep2020.europython.eu/events/talk-voting/) Python Pizza (https://remote.python.pizza/) Speaker line up is great! Free Django beginner course: PyCon UK has been cancelled (https://twitter.com/PyConUK/status/1249351345003528192) EffectiveQuadratures got support from NUMFocus (https://twitter.com/EQuadratures/status/1249795188857470976) PyAmsterdam flying software Circus (https://www.meetup.com/Software-Circus/events/270038344/) - talking about FastAPI lib Python IE meetup next Wed 22nd April 2020 (https://www.meetup.com/pythonireland/events/270053115/) PyPI Highlight: EffectiveQuadratures - SimPy - discrete-event simulation library - ","date":"15 April 2020","externalUrl":null,"permalink":"/videos/srcjyjpfrm4_mid_meet_py_-_ep3/","section":"Presentation videos","summary":"","title":"Mid Meet Py - Ep.3","type":"videos"},{"content":" Today I added a GDPR compliance web tracking to my website. If you are using another tracking service (e.g. Google Analytics) that use cookies, I will also show you how to add a banner to get visitors' consensus. Web tracking service that I use: Fathom Analytics (https://usefathom.com/ref/W4UI50) This site to download the cookie consent banner: osano.com (https://www.osano.com/cookieconsent/download/) I got the JavaScript for clearing all cookies from this Stackoverflow thread (https://stackoverflow.com/a/33366171) ","date":"13 April 2020","externalUrl":null,"permalink":"/videos/u4yhx68mbza_web_surgery_-_ep3_-_web_tracking_and_cookie_consensus_banner/","section":"Presentation videos","summary":"","title":"Web Surgery - Ep.3 - Web tracking and cookie consensus banner","type":"videos"},{"content":" Today we learnt 3 types of Python objects: Integer (int), Decimal Numbers (float) and Strings (str). With the help of some built-in functions we can write very simple Python programs. You can get the slide deck here (https://bit.ly/PythonBasics1) and the example code form GitHub here (https://github.com/Cheukting/python02hero). ","date":"12 April 2020","externalUrl":null,"permalink":"/videos/gzx4go3ybse_python_zero_to_hero_-_ep2_-_python_basics_int_float_str/","section":"Presentation videos","summary":"","title":"Python Zero to Hero - Ep.2 - Python Basics (int, float, str)","type":"videos"},{"content":" Finish building the type object structures in the schema, including the SubClassOf relations. Find the source code from our tutorial repo (https://github.com/terminusdb/terminus-tutorials). ","date":"10 April 2020","externalUrl":null,"permalink":"/videos/l2dn_he0l7g_world_of_woqlcraft_-_ep3_finish_off_the_type_objects/","section":"Presentation videos","summary":"","title":"World of WoqlCraft - Ep.3 finish off the type objects","type":"videos"},{"content":" We continue to work on my website. Introducing Gulp.js, to speed up the Jekyll build by using Gulp to lint and prebuild the css (as well as the js scripts). Gulp will watch and automatically build a minified version of the css and js scripts when there are changes in the source files. (p.s. sorry for the abrupt end, the internet got cut off almost at the end of the streaming and you have not missed anything important really) ","date":"6 April 2020","externalUrl":null,"permalink":"/videos/kpgqizd-czi_web_surgery_-_ep2_-_using_gulp_pipeline_for_the_css_build/","section":"Presentation videos","summary":"","title":"Web Surgery - Ep.2 - using gulp pipeline for the css build","type":"videos"},{"content":" Today we start our Python journey. Start setting your Python coding environment. I tried to explain as detail as possible for you to understand how your Pyhton got installed and information about Python and related software packages. You can grab the slide deck here (https://bit.ly/PythonSetup). ","date":"5 April 2020","externalUrl":null,"permalink":"/videos/lvjwsugphsy_python_zero_to_hero_-_ep1_-_get_your_python_setup/","section":"Presentation videos","summary":"","title":"Python Zero to Hero - Ep.1 - get your Python setup","type":"videos"},{"content":" We tried to continue building the schema, only being brutally ended by my poor internet connection. Find the source code from our tutorial repo (https://github.com/terminusdb/terminus-tutorials). ","date":"4 April 2020","externalUrl":null,"permalink":"/videos/9lwxdcu1die_world_of_woqlcraft_-_ep2_continue_crafting_schema/","section":"Presentation videos","summary":"","title":"World of WoqlCraft - Ep.2 continue crafting schema","type":"videos"},{"content":" In this episode, we chat about: Pyjamas - online conference recruiting organisers (https://forms.gle/i6SWKT8C4yDD1pKi7) CfP for Remote Python Pizza ends on the 6th April (https://remote.python.pizza/) EuroPython goes online (https://blog.europython.eu/post/614102095419850752/europython-2020-online-conference-from-july-23-26) First virtual meetup for PyCon IE (https://www.meetup.com/pythonireland/events/fnzvknybcgblb/) Lais will be speaking at PyAmsterdam (https://www.meetup.com/PyAmsterdam/events/269773330/) PyPI Highlights - Extruct (https://github.com/scrapinghub/extruct) PyPI Highlights - Delorean (https://github.com/myusuf3/delorean) ","date":"1 April 2020","externalUrl":null,"permalink":"/videos/l0tse1dmbfo_mid_meet_py_-_ep1/","section":"Presentation videos","summary":"","title":"Mid Meet Py - Ep.1","type":"videos"},{"content":" I wrote Ruby for the first time! With a little bit of Ruby, you can make Jekyll do anything for you. All you need is write your own plug-in. Today we will customize one here: https://github.com/avillafiorita/jekyll-datapage_gen (https://github.com/avillafiorita/jekyll-datapage_gen) Things that I used for my website: https://github.com/sproogen/modern-resume-theme (https://github.com/sproogen/modern-resume-theme) and https://github.com/samesies/barber-jekyll (https://github.com/samesies/barber-jekyll) ","date":"30 March 2020","externalUrl":null,"permalink":"/videos/5yqlkrn8nek_web_surgery_-_ep1_custom_jekyll_plug-in/","section":"Presentation videos","summary":"","title":"Web Surgery - Ep.1 custom Jekyll Plug-in","type":"videos"},{"content":" Recorded at \"Py.Amsterdam from home! #StayAtHome \" 25/03/2020 ","date":"29 March 2020","externalUrl":null,"permalink":"/videos/sbmujevfojg_how_to_be_pythonic_design_a_query_language_in_python/","section":"Presentation videos","summary":"","title":"How to be Pythonic? Design a Query Language in Python","type":"videos"},{"content":"","date":"29 March 2020","externalUrl":null,"permalink":"/tags/pyamsterdam/","section":"Tags","summary":"","title":"PyAmsterdam","type":"tags"},{"content":" First episode of World of WoqlCraft! We try to use the type provided form Schema.org to construct our schema objects in TerminusDB (https://terminusdb.com/) (p.s. sorry my connection got cut off, gonna fix this internet problem soon) ","date":"27 March 2020","externalUrl":null,"permalink":"/videos/coetjw3y2f0_world_of_woqlcraft_-_ep1_making_type_opjects/","section":"Presentation videos","summary":"","title":"World of WoqlCraft - Ep.1 making type opjects","type":"videos"},{"content":" We created Python API calls that let you can make queries and manipulate data in our graph database. We thought about what will be best for Pythonistas? What will be the most Pythonic way to do it? (Is it a thing?) Here’s our journey in making WOQLpy and we want to make it useful to you. ","date":"25 March 2020","externalUrl":null,"permalink":"/videos/hl7xl7kurkg_how_to_be_pythonic_design_a_query_language_in_python/","section":"Presentation videos","summary":"","title":"How to be Pythonic? Design a Query Language in Python","type":"videos"},{"content":" Are you disappointed by many conferences being cancelled this year? Fear not! We are organising a 24hr global online Python conference. Do you want to help? We need you! Please fill in the form here (https://forms.gle/i6SWKT8C4yDD1pKi7) ","date":"24 March 2020","externalUrl":null,"permalink":"/videos/w-rwjqfdivc_wip_pyjamas_conf_-_a_24hr_global_online_python_conference/","section":"Presentation videos","summary":"","title":"WIP Pyjamas Conf - a 24hr global online Python conference","type":"videos"},{"content":" I tried to add customized css to Sphinx for the TerminusDB Python Client. I was not sure that it works, it's a blind let's code. ","date":"23 March 2020","externalUrl":null,"permalink":"/videos/opuhe76npjk_customizing_python_docs_generated_by_sphinx/","section":"Presentation videos","summary":"","title":"Customizing Python Docs Generated by Sphinx","type":"videos"},{"content":"I gave a talk at PyAmsterdam today and it was a lovely community. I get the chance to answer some questions that have been puzzling me for a while. I ask people to vote for me on DirectPoll (first time trying it) so I know what the community thinks.\nIs Pythonic a thing? # It is a questions that I have been thinking since I was a naive Python Data Scientist. \u0026ldquo;Why I can\u0026rsquo;t just do it in a for loop?\u0026rdquo; came through my mind all the time. Why we have to follow certain convention in coding? Is Pythonic a thing or just peer pressure.\nAlmost 90% of you things that it really is a thing. (35 votes)\nWho like SQL? # For me, I am not a fan of SQL. Date back to my first data science job I was furious about writing thousand links of SQL just to get some aggregated results. Joining tables are not fun as mistakes can be made easily. As we are designing a new query language in TerminusDB, I want to know what people things about SQL.\nI am surprised that 70% of you like SQL! Hmmmmm\u0026hellip; (38 votes)\nWhich one do you prefer? # During the time I was translating WOQLjs to WOQLpy I wonder what how shall I make the query building more \u0026ldquo;Pythonic\u0026rdquo;. What would Pythonistas prefer? Chainable calls like WOQLQuery().doctype(\u0026quot;journey\u0026quot;).label(\u0026quot;Journey) or Pandas DataFrame style, multi-parameters calls like WOQLQuery().doctype(id=\u0026quot;journey, label=\u0026quot;Journey\u0026quot;). (I failed to show the result in the talk so here you go!)\nSince Pandas, the most popular data manipulation library in Python uses the multi-parameters calls, I am not surprised that 80% of you would prefer that. (25 votes)\nIf you have missed the talk, you can now watch it here. If you want to catch me streaming live, follow me on Twitch.\n","date":"20 March 2020","externalUrl":null,"permalink":"/posts/2020-03-25-how-to-be-pythonic/","section":"Blog posts","summary":"","title":"How to be Pythonic? Design a Query Language in Python","type":"posts"},{"content":" OOT is recrOOTing! # We’re an open-source project building tools to help women engage with healthy online discussion. We rely on donations and people\u0026rsquo;s time to build tools that fight online misogyny and harassment. If you can spare some hours of your week then take a look at the roles we need desperately need and see if you can help.\nUser researcher # If you believe women should have equal access to digital spaces and want to help OOT better understand online misogyny using qualitative and quantitative data, then reach out! We need user researchers to actively engage with the community, compile research, and act as user advocates within the OOT maintainer community to help ensure we’re building tech that really protects the most vulnerable online. You’ll work closely with our social scientists and data scientists to make sure we’re building and researching the right things.\nUX \u0026amp; Graphic Designer # If you have an interest in designing products that live at the intersection of natural language processing, machine learning, politics in digital conversational spaces and feminism, then contact us! The role will be focusing on the usability of our browser extension and make our website look sweeet!\nYes, I am here! # If one of the above describes you and you are interested in joining the team, please email to opt.out.tool@gmail.com we would love to hear from you.\n","date":"20 March 2020","externalUrl":null,"permalink":"/posts/2020-03-20-oot-recruit/","section":"Blog posts","summary":"","title":"OOT is recrOOTing!","type":"posts"},{"content":"","date":"20 March 2020","externalUrl":null,"permalink":"/tags/opt-out-tools/","section":"Tags","summary":"","title":"Opt Out Tools","type":"tags"},{"content":" This was the talk that I gave at Open Belgium. It was not recorded so I try to stream it at home. See how we can put the Seshat world history bank into TerminusDB. (sorry about my horrible green screen) ","date":"20 March 2020","externalUrl":null,"permalink":"/videos/nlmehj6_mnc_stuffing_all_human_history_in_one_knowledge_graph/","section":"Presentation videos","summary":"","title":"Stuffing all Human History in One Knowledge Graph","type":"videos"},{"content":" PyConFR 2019 - Plénière n°3 / Keynote #3 ","date":"19 March 2020","externalUrl":null,"permalink":"/videos/0fxekvyjhvy_the_role_of_21st_century_technology_in_protests/","section":"Presentation videos","summary":"","title":"The Role of 21st Century Technology in Protests","type":"videos"},{"content":"So, we have regular meetings to talk about the tools and strategies regarding remote meetings. I feel that it will be good to summaries the discussion and share the knowledge with people who are interested.\nHow many tools? # A constant debate will be: would you prefer one tool for all or many tools each do their best.\nObviously, there will be a higher bar to learn to use many tools.\nEven for tech savvy people, many new tools can be overwhelming, there\u0026rsquo;s a learning curve. less tech-aware people it may be even harder - one or two at a time should be enough.\nBut on the other hands, there are people thinks that there is advantage to use the best tool for the job.\nSo what is the minimal set is?\nThere\u0026rsquo;s a question of - how many tools at the same time is too much, and also - how many in total.\nSomeone also points out:\nwe are reaching the point of too many tools - three is already too much.\nAudio VS Video? # There is also discussion about is using video essential for a call? Or Audio is enough so people can focus on the task at hands? (e.g. note-taking, pair programming)\nPeople who praise using video calls do have a solid reason:\n(Using only audio) missing the video connection, especially in sales its better for the personal connection.\nHowever, people who prefer audio also get a good point:\nReliability is one of the reasons to go primarily audio, also it frees the screen to use the tools like stickynote board.\nAfter all, I think it really depends on the use case that you have.\n","date":"18 March 2020","externalUrl":null,"permalink":"/posts/2020-03-18-remote-working-tools/","section":"Blog posts","summary":"","title":"Remote Working club - Tools to facilitate meetings","type":"posts"},{"content":"","date":"18 March 2020","externalUrl":null,"permalink":"/tags/work-from-home/","section":"Tags","summary":"","title":"Work From Home","type":"tags"},{"content":" In this tutorial, I am showing you how to syndicate your blog post to dev.to and Medium (sorry about the sound quality at the end, and my background, I am still learning how to do it properly) ","date":"17 March 2020","externalUrl":null,"permalink":"/videos/ufay8f0ykfq_test_tutorial_-_sydicating_blog_post_to_devto_and_medium/","section":"Presentation videos","summary":"","title":"Test tutorial - sydicating blog post to dev.to and Medium","type":"videos"},{"content":"I would like to add webmention to my blog. And I am testing it out now!\nWhy you should own your content? # Because we have full control of our appearance and interaction with people on the internet:\nNo more losing content due to closing of websites No more privacy issues, no more hidden tracking Cause I am cool Join the Indie Web community # Visit http://indieweb.org/ to get started.\n","date":"15 March 2020","externalUrl":null,"permalink":"/posts/2020-03-15-indie-webmention/","section":"Blog posts","summary":"","title":"IndieWebCamp London - Indie Webmention!","type":"posts"},{"content":"","date":"15 March 2020","externalUrl":null,"permalink":"/tags/web/","section":"Tags","summary":"","title":"Web","type":"tags"},{"content":"Last week (23 Jan 2020) we had our first Opt Out Tools meetup at Mozilla Berlin! Attendees compile of a team of international experts from different fields: data scientists, web engineers, project managers, digital marketers etc. It was a fruitful discussion as we have consolidated the goal for Opt Out Tools in 2020 and have formed workgroups to work towards our goals.\nGoals for Opt-out in 2020 # Stable release: We aim to release our first stable version of the Opt Out Tools browser extension in the 4th quarter of 2020 on Firefox add-on for the general public to use. But before, there will be beta versions for people who are interested to test and give us valuable feedback.\nFunding: Having stable financial support for Opt Out Tools is important for the development of the tools and the community. We will keep on actively looking for funding to apply for and potentially launch a crowd-funding scheme later in the year.\nCommunity building: In 2020, we will keep on having more meetups and workshops for building the team and educating people about online misogyny. Hopefully, we will continue to have a strong partnership with Mozilla Berlin for community events.\nWeb capability: With our strong team of web engineers, we will have a better browser extension interface and support more features. We will also improve our website so that our users have better experiences.\nStronger model: Our data science team is massive; with them, we can have a more thorough study on the data and have a stronger AI model in detecting online misogyny. Our research team is also studying different types of abusive text in different cultural contexts.\nGDPR compliance: We are fully aware of the importance of privacy and GDPR, we have reached out to professionals and seek advice. In 2020, we will continue using the data that we have for good (not for the bad)!\nOpt-out workgroups # To make sure that we apply our expertise and work efficiently towards our goals, we have formed workgroups:\nData Science / Modeling: researching on performing machine learning on our data and deploying the best AI model we have for detecting abusive messages. Research: researching definitions of misogyny and message context across cultures. Web engineering: developing and maintaining the browser extension and the website. Brand and Marketing: out-reaching and promoting Opt Out Tools, also managing our social media presence. Funding: sourcing and apply for suitable fundings, preparing our future crowdfunding campaigns. If you are interested in Opt Out Tools and want to volunteer or sponsor us, we would love to hear from you. Also, show us some love on GitHub and Twitter.\n","date":"31 January 2020","externalUrl":null,"permalink":"/posts/2020-01-31-first-oot-meetup/","section":"Blog posts","summary":"","title":"Celebrate our first Opt Out Tools meetup!","type":"posts"},{"content":" Now we can talk to our gadgets as if it’s a real human. It makes you wonder when you chat with the “customer service” online, is that a real person or a robot on the other side? I built a chatbot, and here’s 3 things that I discovered. ","date":"14 January 2020","externalUrl":null,"permalink":"/videos/i3whgwkrq7k_i_am_telling_you_3_things_about_chatbot/","section":"Presentation videos","summary":"","title":"I am telling you 3 things about Chatbot","type":"videos"},{"content":"","date":"14 January 2020","externalUrl":null,"permalink":"/tags/pyconie/","section":"Tags","summary":"","title":"PyConIE","type":"tags"},{"content":"I am not a web developer, not yet. But you don’t have to be a web developer to set up a website with GitHub Pages.\nRecently I have an idea of putting all my work in one place, make it kind of like a portfolio. I brought a domain name — cheuk.dev (try to be cool) and went to the IndieWebCamp in Berlin where they are happy to help with web newbies to get started. They recommended many options, including Wordpress and Blogger, to get your website set up. But since I have experience maintain the website for Python Sprint, which uses Jekyll on GitHub Pages, I feel more comfortable going down the GitHub route.\nAfter playing for a few days, I found there are some nice features of GitHub Pages for newbies to set up their first website:\n1. It’s FREE # It’s obvious that you don’t want to spend lots of money setting up your first website. It will be like a half hacking and half experimentation project so having a free hosting service is definitely encouraging for newbies to try out and get started. The only catch is you have to keep the repo and the code public.\n2. Support Custom Domain # GitHub Pages comes with the default domain name like https://\u0026lt;your_account_name\u0026gt;.github.io/ but you have brought a cool domain like I am. GitHub will let you use your own, just set up your custom domain following the easy step by step guide and you are good to go. It may take a day or 2 for it to take effect though depending on your domain provider, after setup you can use your own domain like a pro.\n3. Support for HTTPS # Since I got a cool .dev domain, I need to encrypt with https. My friend told me it is not easy for a newbie to get an open SSL certificate. GitHub has partnered with the certificate authority Let’s Encrypt. After setting up your custom domain, select the Enforce HTTPS option. 4. You don’t need Jeykll installed # Yes, even your website is set up with Jekyll you don’t need to have Jekyll installed locally. I have been maintaining Python Sprint for almost a year without installing Jekyll on my computer.\nJekyll is a parsing engine bundled as a ruby gem used to build static websites from dynamic components such as templates, partials, liquid code, markdown, etc. In simpler terms, it’s a simple, blog-aware, static website generator.\nGitHub will build your website for you every time when you push to your repo named \u0026lt;username\u0026gt;.github.io if you have the files required by Jekyll (e.g. _configure.yml _layouts/default.html etc.) it will automatically build it for you.\n5. Using git version control # If you are an experienced GitHub user and fairly comfortable using git like I am, you will appreciate being able to do version control on your website. You can always try something and commit it, if you want to roll back to the previous version, you can just do a reset. You can get all the benefits that git gives you while designing your website. So for newbies who are no so sure if something works and need to learn from trying, git will give you a safe playground for it and GitHub will happily store all versions of your sites for you.\nSo here you go, 5 advantage of using GitHub Pages for a starter website. If you are still not convinced to start your first website, I hope to see you at one of the IndieWebCamps and I am happy to help you out.\n","date":"13 December 2019","externalUrl":null,"permalink":"/posts/2019-12-13-gh-page-hosting/","section":"Blog posts","summary":"","title":"Newbie tips — 5 Advantage of Using GitHub Pages for Hosting","type":"posts"},{"content":"Last week I have been to a meetup where a team of software developers from Dublin talks about their newest invention - TerminusDB, a graph database that stores data like git. My reaction was like, what? Imagine all the cool things you can do with git: time travel, branching and forking etc, you can do them with your data.\nWhat\u0026rsquo;s more, TerminusDB is a graph database, meaning all data are stored in nodes and edges, makes it easy to extract relations between your data without all the hideous joins in relational SQL database. In this article, let\u0026rsquo;s talk about the following:\nWhat is a graph How git works How TerminusDB works What is a graph? # In mathematics, a graph is a structure amounting to a set of objects in which some pairs of the objects are in some sense \u0026ldquo;related\u0026rdquo;. The objects correspond to mathematical abstractions called nodes and each of the related pairs of vertices is called an edge [1].\nThe most common type of graphs is directed graphs and undirected graphs. The difference is, the edges of a directed graph have direction from a node to another but the edges of an undirected graph do not - it just linked two nodes together.\nA lot of our data can be stored in a graph, and the usage of graph databases are more than what you think: knowledge graph in Google and NASA, recommendation engines, fraud detection in financial services, machine learning using graphs in deep learning and AI.\nhttps://tech.ebayinc.com/research/explainable-reasoning-over-knowledge-graphs-for-recommendation/\nHow git works # For those who have not used git/ not familiar with git, let\u0026rsquo;s quickly recap how git works.\nhttps://developer.ibm.com/tutorials/d-learn-workings-git/\nAfter you make changes in the repo, you will have to add your changes in the staging area, then you commit it. Git will store the new content and keep different commit as a series of events.\nhttps://git-scm.com/book/en/v2/Git-Internals-Git-Objects\nFun fact here, counter-intuitively, git does not store diff. Instead, it makes files into blobs and stores repo as a tree of pointers pointing to the blobs. It also stores the commits in sequences so it stores the history of the repo.\nHow TerminusDB works # Here we see how similar TerminusDB is storing data in a chain of commits, layers in this case, just like git. However, it stores the diff instead (can see it having advantage in having a huge amount of data). For each layer, data, as a triplet consists of the edge and the nodes that it links, is stored either on the +ve plane or -ve plane (except the initial layer as everything was created).+ve means new data is added and -ve means that data is deleted.\nWhen you make a query, you search from the most recent layer (the HEAD layer) back, if it is found in the +ve plane, it exists in the database; if it is found in the -ve plane, it existed at some point in time but was deleted so it can be concluded that does not exist anymore in the database. If it is not found on either, it goes one commit back and does the same thing until hitting the initial layer which finding the data or not can conclude whether it exists in the database or not.\nMaking changes to the data in the database is like making a new commit in git. Internally, a layer builder would build the +ve and -ve plane (except the initial layer of cause) and then commit it to the series of layers, moving the HEAD forward. This makes time travel as simple as moving the HEAD just like git. Also, imagine you can make a new branch and create more layers and merge it back to the master branch.\nThere\u0026rsquo;s so much potential in this genius design. I am already thinking about how this can give lot\u0026rsquo;s of advantage in processing data. I have talked to the team and they are super nice. As the product is quite new, they are happy to answer questions or hear feedback from you. Here are their contact details:\nGithub: https://github.com/terminusdb/terminus-store TerminusDB: https://terminusdb.com Community forum: https://community.terminusdb.com/ ","date":"5 November 2019","externalUrl":null,"permalink":"/posts/2019-11-05-git-terminusdb/","section":"Blog posts","summary":"","title":"Storing data like git - TerminusDB","type":"posts"},{"content":"In this blog post, we will showcase the power of Ably and Tensorflow.js. Everything will be just on the frontend, in just one html. It’s a demo, in production you may not do things this way but you can have a feeling how powerful Ably is and how you can use deep learning model with just a few lines of code.\nWhat is Ably? # Ably provide API to handle a lot of realtime Pub/Sub easily. In Ably, you can choose from Realtime, REST, MQTT or SSE library which is implemented in most of the popular languages and framework. For further information regarding Ably, you can visit their webpage. If you want to follow this demo and build your own, you have to sign up for a free Ably account and get an API key here.\nLet’s get started! # First, we will need all the basic components in an html. We will start with this file as a skeleton:\n\u0026lt;html\u0026gt; \u0026lt;body\u0026gt; \u0026lt;h1\u0026gt;TfL traffic notifier\u0026lt;/h1\u0026gt; \u0026lt;p\u0026gt;\u0026lt;/p\u0026gt; \u0026lt;div\u0026gt; Your update: \u0026lt;input type=\u0026#34;text\u0026#34; id=\u0026#34;message-text\u0026#34; value=\u0026#34;\u0026#34;\u0026gt; \u0026lt;button id=\u0026#34;send-message\u0026#34;\u0026gt;Submit an update\u0026lt;/button\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;textarea id=\u0026#34;result\u0026#34; rows=\u0026#34;10\u0026#34; style=\u0026#34;width: 60%; margin-top: 10px; font-family: courier, courier new; background-color: #333; color: orange\u0026#34; disabled=\u0026#34;\u0026#34;\u0026gt;\u0026lt;/textarea\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; It’s very simple and basic. We are more interested in the functionality but not the graphical design. We have an input field for the user\u0026rsquo;s input and a button to submit an update. The black text area underneath is for the messages from all users.\nUsing Ably Realtime # We will use Ably Realtime WebSocket connection to publish and subscribe to a channel for the updated form users. (Make sure you have the API key) Put this after the \u0026lt;/body\u0026gt; and before \u0026lt;/html\u0026gt; :\n\u0026lt;!-- Include the latest Ably Library --\u0026gt; \u0026lt;script src=\u0026#34;https://cdn.ably.io/lib/ably.min-1.js\u0026#34;\u0026gt;\u0026lt;/script\u0026gt; \u0026lt;!-- Instance the Ably library --\u0026gt; \u0026lt;script type=\u0026#34;text/javascript\u0026#34;\u0026gt; // Set up Ably\u0026#39;s channel var realtime = new Ably.Realtime(\u0026lt;your API key\u0026gt;; // put your API key here var channel = realtime.channels.get(\u0026#34;my_channel\u0026#34;); // Helper function for getting the timestamp function get_current_time(){ return \u0026#39;[\u0026#39; + Date().toLocaleString() + \u0026#39;]\\n\u0026#39;; } // Getting the update from users channel.subscribe(function(msg) { document.getElementById(\u0026#34;result\u0026#34;).innerHTML = (get_current_time() + \u0026#34;User update: \u0026#34; + msg.data + \u0026#34;\\n\\n\u0026#34;) + document.getElementById(\u0026#34;result\u0026#34;).innerHTML; }); document.getElementById(\u0026#34;send-message\u0026#34;).addEventListener(\u0026#34;click\u0026#34;, function(){ let input_text = document.getElementById(\u0026#34;message-text\u0026#34;).value; if (input_text != \u0026#34;\u0026#34;){ channel.publish(\u0026#34;update\u0026#34;, input_text); document.getElementById(\u0026#34;message-text\u0026#34;).value = \u0026#34;\u0026#34; } }) \u0026lt;/script\u0026gt; Here we:\nInclude the Ably library Connect to Ably (remember to replace with your API Subscribe to my_channel and if there is update, add it to the text When the user inputs an update and clicks the button it will publish to my_channel Now, try our app. Put something at the input box and click the button.\nYou can see the update appear, you can also do an experiment for multiple users. Open the html files in another window or tab and repeat publish an update. You can see the ‘other user’ will also receive the update. I would also like to point out that, using an API key like what we did is not a good practice in production code as it will expose your key to the public. To further understand how to do it properly, please refer to Ably’s documentation.\nTfL information — Ably Hub # Now we will be adding the TfL updates. Ably Hub which provides free, open-source data streaming for anyone to use (difference licence restriction may apply to different data source). If you have a source to donate, please get in touch with Ably’s team.\nUsing Ably Hub is very similar to using Ably Realtime, you can also refer to this page for the documentation specific to TfL data. Adding a new channel:\nvar tfl_channel = realtime.channels.get(\u0026#34;[product:ably-tfl/tube]tube:disruptions\u0026#34;); This will update us when we have disruptions on any lines. If there is not, we will get an empty list. We can then check our update to see does it contains information about disrupted lines:\n// Getting the update form TfL streamer tfl_channel.subscribe(function(msg) { if (msg.data.length == 0) { document.getElementById(\u0026#34;result\u0026#34;).innerHTML = (get_current_time() + \u0026#34;TfL: Good service on all lines.\u0026#34; + \u0026#34;\\n\\n\u0026#34;) + document.getElementById(\u0026#34;result\u0026#34;).innerHTML; }else{ msg.data.forEach(function(each_issue){ document.getElementById(\u0026#34;result\u0026#34;).innerHTML = (get_current_time() + each_issue.description + \u0026#34;\\n\\n\u0026#34;) + document.getElementById(\u0026#34;result\u0026#34;).innerHTML; }) } }); Toxic detector — Tensorflow.js # So far all users can update no matter what they say, which is bad. Can we stop people publish toxic updates to our channel? Let’s try using AI and detect toxic comments and block them. Here we will use a pre-trained model and it is super easy, just add Tensorflow.js and the model:\n\u0026lt;!-- Include tf model --\u0026gt; \u0026lt;script src=\u0026#34;https://cdn.jsdelivr.net/npm/@tensorflow/tfjs\u0026#34;\u0026gt;\u0026lt;/script\u0026gt; \u0026lt;script src=\u0026#34;https://cdn.jsdelivr.net/npm/@tensorflow-models/toxicity\u0026#34;\u0026gt;\u0026lt;/script\u0026gt; And update the publish function:\n// When the user send an update, check if it is a toxic comment, publish if it is not. document.getElementById(\u0026#34;send-message\u0026#34;).addEventListener(\u0026#34;click\u0026#34;, function(){ let input_text = document.getElementById(\u0026#34;message-text\u0026#34;).value; let threshold = 0.9; var all_prediction = false; if (input_text != \u0026#34;\u0026#34;){ toxicity.load(threshold).then(function(model){ model.classify(input_text).then(function(predictions){ predictions.forEach(function(each_prediction){ let results = each_prediction.results if (results[0].match){ all_prediction = true; return 0; } }); if (all_prediction){ alert(\u0026#34;Please be nice.\u0026#34;) }else{ channel.publish(\u0026#34;update\u0026#34;, input_text); document.getElementById(\u0026#34;message-text\u0026#34;).value = \u0026#34;\u0026#34; } }); }); } }) Here we set a threshold of 0.9 so if our model is very confident that it contains toxic text in any form, it will prevent publishing instead it will remind the user to be nice.\nTrying it out, you will see that the speed of our message reduces significantly. Ably is a fast API as it uses WebSocket and the update in almost instant. However, making a prediction via the AI model takes a bit of time and is not ideal in terms of performance. Maybe we should not do everything at the frontend!\nI hope you had fun! To see the finished html file as a whole, please refer to the file on GitHub\n","date":"15 October 2019","externalUrl":null,"permalink":"/posts/2019-10-15-ably-tf/","section":"Blog posts","summary":"","title":"Build a Traffic Alert App with just one html — Ably + Tensorflow","type":"posts"},{"content":" Not so long ago, I started an open source project - PicknMIx. It feels like running a start up if you are serious about it. Want to know my story? Want to check if you can do it as well? I will tell you. ","date":"9 October 2019","externalUrl":null,"permalink":"/videos/zhe-xdj6v34_running_an_open_source_project_like_a_start_up/","section":"Presentation videos","summary":"","title":"Running An Open Source Project Like A Start Up","type":"videos"},{"content":"","date":"1 October 2019","externalUrl":null,"permalink":"/tags/public-speaking/","section":"Tags","summary":"","title":"Public Speaking","type":"tags"},{"content":" Cheukting/CfP-workshop An outline for a workshop about how to submit call for proposals null 3 0 Consider buying me a coffee if you love the content.\n","date":"1 October 2019","externalUrl":null,"permalink":"/workshops/workshop_about_how_to_submit_a_call_for_proposal/","section":"Workshops","summary":"","title":"Workshop about How to Submit a Call for Proposal","type":"workshops"},{"content":" Python community cares about diversity. So do we still have a problem in, especially gender, diversity? We will look at some data and see if there’s a true problem, discuss what the problem may be and how to fix it. ","date":"15 September 2019","externalUrl":null,"permalink":"/videos/g68ejwauoww_do_we_have_a_diversity_problem_in_python_community/","section":"Presentation videos","summary":"","title":"Do we have a diversity problem in Python community","type":"videos"},{"content":"","date":"1 September 2019","externalUrl":null,"permalink":"/tags/beeware/","section":"Tags","summary":"","title":"Beeware","type":"tags"},{"content":" Cheukting/briefcase-positron-template A cookiecutter template for a starter Briefcase project. Python 15 3 Consider buying me a coffee if you love the content.\n","date":"1 September 2019","externalUrl":null,"permalink":"/workshops/lets_build_a_beeware_app_that_uses_django/","section":"Workshops","summary":"","title":"Let's build a BeeWare app that uses Django","type":"workshops"},{"content":"","date":"1 September 2019","externalUrl":null,"permalink":"/tags/mobile-app/","section":"Tags","summary":"","title":"Mobile App","type":"tags"},{"content":" Cheukting/pyscript-tutorial HTML 5 2 Consider buying me a coffee if you love the content.\n","date":"1 August 2019","externalUrl":null,"permalink":"/workshops/pyscript_tutorial/","section":"Workshops","summary":"","title":"PyScript Tutorial","type":"workshops"},{"content":" Now we can talk to our gadgets as if it’s a real human. It makes you wonder when you chat with the “customer service” online, is that a real person or a robot on the other side? I built a chatbot, and here’s 3 things that I discovered. ","date":"13 July 2019","externalUrl":null,"permalink":"/videos/ws5paq91wes_i_am_telling_you_3_things_about_chatbot_so_you_dont_have_to_learn_it_the_hard_way/","section":"Presentation videos","summary":"","title":"I am telling you 3 things about Chatbot so you don't have to learn it the hard way","type":"videos"},{"content":"","date":"1 July 2019","externalUrl":null,"permalink":"/tags/numba/","section":"Tags","summary":"","title":"Numba","type":"tags"},{"content":" Cheukting/using-numba Jupyter Notebook 12 10 Consider buying me a coffee if you love the content.\n","date":"1 July 2019","externalUrl":null,"permalink":"/workshops/using_numba_effectively/","section":"Workshops","summary":"","title":"Using Numba Effectively","type":"workshops"},{"content":" Diversity, big deal! As an active members and event organisers (and also on the minority side of the gender) in the Python community, we have alway been concern by the question of - Do we truly have a problem in diversity? Especially, gender diversity. We would like to find out the truth, by data science, and see if we can find a clue why and how we can fix it. ","date":"16 June 2019","externalUrl":null,"permalink":"/videos/vksf3ckspus_if_errol_street_could_talk/","section":"Presentation videos","summary":"","title":"If Errol Street Could Talk","type":"videos"},{"content":"","date":"16 June 2019","externalUrl":null,"permalink":"/tags/pylondinium/","section":"Tags","summary":"","title":"PyLondinium","type":"tags"},{"content":"","date":"1 June 2019","externalUrl":null,"permalink":"/tags/machine-learning/","section":"Tags","summary":"","title":"Machine Learning","type":"tags"},{"content":" Cheukting/knn_recommender Demo of a knn recommender Python 11 4 Consider buying me a coffee if you love the content.\n","date":"1 June 2019","externalUrl":null,"permalink":"/workshops/picking_what_to_watch_next_-_build_a_recommendation_system/","section":"Workshops","summary":"","title":"Picking What to Watch Next - build a recommendation system","type":"workshops"},{"content":"","date":"1 June 2019","externalUrl":null,"permalink":"/tags/recommender/","section":"Tags","summary":"","title":"Recommender","type":"tags"},{"content":" Some think neural networks are magic boxes, let the computers to have a mind of its own. Beside making classifications and predictions, neural networks have also been used to creating pictures, music, jokes and plays. Can creativity, what seems to make us special, be achieved by these magic boxes? ","date":"3 May 2019","externalUrl":null,"permalink":"/videos/akkz4uq_g1m_ai_and_algorithmic_art/","section":"Presentation videos","summary":"","title":"AI and algorithmic art","type":"videos"},{"content":"","date":"1 May 2019","externalUrl":null,"permalink":"/tags/data-graphs/","section":"Tags","summary":"","title":"Data Graphs","type":"tags"},{"content":"","date":"1 May 2019","externalUrl":null,"permalink":"/tags/database/","section":"Tags","summary":"","title":"Database","type":"tags"},{"content":" Cheukting/knn_recommender Demo of a knn recommender Python 11 4 Consider buying me a coffee if you love the content.\n","date":"1 May 2019","externalUrl":null,"permalink":"/workshops/knowledge_graph_data_modelling_with_terminusdb/","section":"Workshops","summary":"","title":"Knowledge graph data modelling with TerminusDB","type":"workshops"},{"content":"","date":"1 April 2019","externalUrl":null,"permalink":"/tags/bokeh/","section":"Tags","summary":"","title":"Bokeh","type":"tags"},{"content":"","date":"1 April 2019","externalUrl":null,"permalink":"/tags/jupyter/","section":"Tags","summary":"","title":"Jupyter","type":"tags"},{"content":" jupytercon/2020-Cheukting 2020-Cheukting created by GitHub Classroom Jupyter Notebook 6 3 Consider buying me a coffee if you love the content.\n","date":"1 April 2019","externalUrl":null,"permalink":"/workshops/shiny_app_in_python_bokeh__jupyter_notebook/","section":"Workshops","summary":"","title":"Shiny App in Python? Bokeh + Jupyter notebook","type":"workshops"},{"content":"","date":"1 March 2019","externalUrl":null,"permalink":"/tags/chatbot/","section":"Tags","summary":"","title":"Chatbot","type":"tags"},{"content":" Cheukting/rasa_workshop Step Into the AI Era: Chatbots that know if you are angry - a workshop to build a chatbot using Rasa Python 26 13 Consider buying me a coffee if you love the content.\n","date":"1 March 2019","externalUrl":null,"permalink":"/workshops/chatbots_that_know_if_you_are_angry/","section":"Workshops","summary":"","title":"Chatbots that know if you are angry","type":"workshops"},{"content":"","date":"1 February 2019","externalUrl":null,"permalink":"/tags/deep-learning/","section":"Tags","summary":"","title":"Deep Learning","type":"tags"},{"content":" Cheukting/rl_workshop Step into the AI Era: Deep Reinforcement Learning Workshop Jupyter Notebook 8 5 Consider buying me a coffee if you love the content.\n","date":"1 February 2019","externalUrl":null,"permalink":"/workshops/deep_reinforcement_learning_workshop/","section":"Workshops","summary":"","title":"Deep Reinforcement Learning Workshop","type":"workshops"},{"content":"","date":"1 January 2019","externalUrl":null,"permalink":"/tags/open-source-contribution/","section":"Tags","summary":"","title":"Open Source Contribution","type":"tags"},{"content":" Consider buying me a coffee if you love the content.\n","date":"1 January 2019","externalUrl":null,"permalink":"/workshops/step_into_open_source_contribution_-_my_first_pr/","section":"Workshops","summary":"","title":"Step into Open Source Contribution - My First PR","type":"workshops"},{"content":" Network analysis is getting more and more attention in Business Intelligence, people hope to get information out of the structure of an organization or a communication network. In this talk, we use the hotel room search requests from travel agents, including online public website, B2C, B2B and B2B2C, to build a relational network among them. By using this network as an example, we demonstrate how insights can be extract by studying network properties. ","date":"5 November 2018","externalUrl":null,"permalink":"/videos/h_nyy9xepvy_understanding_agent_connections_using_networkx/","section":"Presentation videos","summary":"","title":"Understanding Agent Connections Using NetworkX","type":"videos"},{"content":" Matching strings should be one of the first natural language processing problem that human encounter since we start use computer to handle data. Unlike numerical value which has an exact logic to compare them, it is very hard to say how alike two strings are for a computer. One may compare them character by character and have an idea of how many characters in the pair of stings are the same. Unfortunately in most application we need computer to perceive strings like we do and therefore we have to use fuzzy matching. Fuzzy matching on names is never straight forward though, the definition of how “difference” of two names are really depends case by case. For example with restaurant names, matching of words like “cafe” “bar” and “restaurant” are consider less valuable then matching of some other less common words. Also, do we consider company names that matches partly (like “Happy Unicorn company” and Happy Unicorn co.”) are the same? ","date":"22 August 2018","externalUrl":null,"permalink":"/videos/nraqijxazvw_fuzzy_matching_smart_way_of_finding_similar_names_using_fuzzywuzzy/","section":"Presentation videos","summary":"","title":"Fuzzy Matching Smart Way of Finding Similar Names Using Fuzzywuzzy","type":"videos"},{"content":" Computers are getting closer to speak like humans. But can we even make them speak in particular ways, like as Trump or Shakespeare? In this hands on talk we will see how this is possible with the latest deep learning techniques combined with word embeddings and other advanced NLP technique. ","date":"12 July 2018","externalUrl":null,"permalink":"/videos/a9jliyk_rzq_deep_learning_with_keras/","section":"Presentation videos","summary":"","title":"Deep Learning with Keras","type":"videos"},{"content":" In this talk, we will use a task: hiring a GPU on Google Cloud Platform to train neural network, as an example to show how an application can be deployed on a cloud platform with Docker and Terraform. The goal is to have Jupyter Notebook running in an environment with Tensorflow (GPU version) and other libraries installed on a Google Compute Engine. ","date":"10 July 2018","externalUrl":null,"permalink":"/videos/d96ah9_rx5k_launch_jupyter_to_the_cloud_with_docker_and_terraform/","section":"Presentation videos","summary":"","title":"Launch Jupyter to the Cloud with Docker and Terraform","type":"videos"},{"content":"","date":"10 July 2018","externalUrl":null,"permalink":"/tags/pyconisrael/","section":"Tags","summary":"","title":"PyConIsrael","type":"tags"},{"content":" One main application of AI (artificial intelligence) is in NLP (natural language processing) which allows the machine to understand neutral languages and learn a lot from the context of texts. With tools like Keras (using Tensorflow as backend) we can build a neutral network with only 3 layers (Embedding, LSTM, Softmax output) in order to \"teach\" a machine to generate articles, plays or speeches in the style of the training corpus and have lots of fun. Will it be like a Shakespearean actor in one instance and talk like Trump in another? How well is the AI against human in writings now and in the future? How creative could an AI be? ","date":"25 March 2018","externalUrl":null,"permalink":"/videos/bq2qu63syhw_from_shakespeare_to_trump_-_ai_that_talks_with_attitude/","section":"Presentation videos","summary":"","title":"From Shakespeare to Trump - AI that Talks with Attitude","type":"videos"},{"content":"","externalUrl":null,"permalink":"/tags/about-me/","section":"Tags","summary":"","title":"About Me","type":"tags"},{"content":"","externalUrl":null,"permalink":"/authors/","section":"Authors","summary":"","title":"Authors","type":"authors"},{"content":"","externalUrl":null,"permalink":"/categories/","section":"Categories","summary":"","title":"Categories","type":"categories"},{"content":" After moving to London, Cheuk has been a Data Scientist in various companies which demands high numerical and programmatical skills, especially in AI and Python. To follow her passion for the tech community, Cheuk switch career to developer advocacy. Other than creating tech contents, attending conferences and facilitating workshops, Cheuk also contributes to multiple Open Source libraries like Hypothesis, Pytest, Pandas, Polars, PyO3, Jupyter Notebook and Django.\nPrevious Nextsads Besides her work, Cheuk enjoys talking about Python on personal channel and podcasts. Cheuk has also been a speaker at Universities and various conferences. Besides, Conferences that Cheuk has organized include EuroPython, PyData London and PyLadiesCon. Believing in Tech Diversity and Inclusion, Cheuk co-founded Humble Data workshops and help organise mentored sprints for underrepresented groups.\nChuek also loves serving the community that she is in. In 2021 and 2022 Cheuk served as a board member in EuroPython Society. Cheuk is currently a Python Software Foundation fellow (since 2021) and director (since 2023).\n","externalUrl":null,"permalink":"/about/","section":"cheuk.dev","summary":"","title":"Hello, I am Cheuk","type":"page"},{"content":" PyCon US go online (https://python.us19.list-manage.com/track/click?u=5697f493c3a48994f504d4deb\u0026id=e8f98ba7ce\u0026e=01fe521e01)! Subscribe to their YouTube channel to catch all the talks (https://python.us19.list-manage.com/track/click?u=5697f493c3a48994f504d4deb\u0026id=8535f39b4c\u0026e=01fe521e01) PyLadies also has YouTube Channel (https://www.youtube.com/c/PyLadies), Sign up for membership (https://t.co/L7Dsrmx7Xs?amp=1) Python Ireland's 1st meetUp is tonight talking about App Performance Monitoring in Python (https://www.meetup.com/pythonireland/events/fnzvknybcgblb/ ). PyCon Australia and PyCon Africa are also going online, details to be announced. Scikit-image join NUMFocus! (https://numfocus.salsalabs.org/numfocusnewsletter_december2019_copy1_copy1_copy1?wvpId=1f958e36-9e22-4880-9ed6-8ce75d6596f9) PyPI Highlight: Foxdot - Make music with Python - FastAPI - a high-performance framework, easy to learn, and fast to code - ","externalUrl":null,"permalink":"/videos/3_5qlaipzzy_mid_meet_py_-_ep2/","section":"Presentation videos","summary":"","title":"Mid Meet Py - Ep.2","type":"videos"},{"content":"","externalUrl":null,"permalink":"/series/","section":"Series","summary":"","title":"Series","type":"series"}]