<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title>archipylago</title>
	<subtitle></subtitle>
	<link href="" rel="self"/>
	<link href="https://archipylago.dev"/>
	<updated>2026-03-07T21:15:40Z</updated>
	<id></id>
	<author>
		<name>Juha-Matti Santala</name>
		<email>juhamattisantala@gmail.com</email>
	</author>
	
	<entry>
		<title>Merry Christmas and happy holidays!</title>
		<link href="https://archipylago.dev/blog/merry-christmas/"/>
		<updated>2025-12-23T00:00:00Z</updated>
		<id>https://archipylago.dev/blog/merry-christmas/</id>
		<content type="html">
		 &lt;p&gt;It&#39;s the time of the year again when jingle bells are jingling.&lt;/p&gt;
&lt;p&gt;We had a wonderful second year of archipylago and that&#39;s thanks to everyone who&#39;s been part of the meetup: partners, speakers and participants alike.&lt;/p&gt;
&lt;p&gt;And 2026 is just around the corner and we&#39;ll kick off the year right out of the gate on 15.1. with a meetup at Valohai. To have a great meetup, we&#39;ll need some speakers though! If you&#39;d like to talk about something next spring, let us know by either emailing at &lt;a href=&quot;mailto:juhamattisantala@gmail.com&quot;&gt;juhamattisantala@gmail.com&lt;/a&gt; or sending a message to #archipylago-general in &lt;a href=&quot;https://archipylago.dev/discord&quot;&gt;TurkuDev Discord&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you&#39;d like to talk but don&#39;t quite know what you could talk about, we&#39;ve listed some ideas in &lt;a href=&quot;https://archipylago.dev/for-speakers/&quot;&gt;https://archipylago.dev/for-speakers/&lt;/a&gt; and we&#39;re more than happy to help you figure it out if you reach out.&lt;/p&gt;
&lt;p&gt;We&#39;re hosting a casual Turku Dev Afterwork on Monday 29.12. 17.00 onwards at John Scott&#39;s if you want to catch up with people during the holidays. A kind of &amp;quot;talk APIs, drink IPAs&amp;quot; type of deal, if you wish.&lt;/p&gt;
&lt;p&gt;Happy holidays!&lt;br /&gt;
Juhis&lt;/p&gt;

		</content>
	</entry>
	
	<entry>
		<title>archipylago goes PyCon Finland</title>
		<link href="https://archipylago.dev/blog/archipylago-goes-pyconfi/"/>
		<updated>2025-05-21T00:00:00Z</updated>
		<id>https://archipylago.dev/blog/archipylago-goes-pyconfi/</id>
		<content type="html">
		 &lt;p&gt;&lt;img src=&quot;https://archipylago.dev/assets/img/posts/pyconfi-banner.png&quot; alt=&quot;fi.pycon.org, PyCon Finland 2025, Friday October 17th, Jyväskylä. Call for Proposals open, early bird tickets available.&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://fi.pycon.org/&quot;&gt;PyCon Finland&lt;/a&gt; returns after a 9-year hiatus as part of the Plone Conf in Jyväskylä &lt;strong&gt;17.10.2025&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The event is scheduled between 12 and 18 which means you can take the 6.54 train from Turku to make it to Jyväskylä in time and be home before midnight with the evening train.&lt;/p&gt;
&lt;p&gt;If we have more people from Turku planning to go, it would be great to travel together.&lt;/p&gt;
&lt;p&gt;We are planning the trip in our &lt;a href=&quot;https://archipylago.dev/discord&quot;&gt;TurkuDev Discord&lt;/a&gt; in #archipylago-goes-pyconfi channel. If you&#39;re interested in joining, come say hi in the channel. If you want to join the trip but don&#39;t want to use Discord, you can email me at &lt;a href=&quot;mailto:juhamattisantala@gmail.com&quot;&gt;juhamattisantala@gmail.com&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Everyone will buy their own PyCon Finland ticket and eventually train tickets but depending on how many people are joining, I&#39;ll try to coordinate something with VR to see if we could get some sort of a cabinet for the trip. So buy your conference ticket now and let&#39;s coordinate the train ticket purchases later.&lt;/p&gt;
&lt;p&gt;The &lt;a href=&quot;https://2025.ploneconf.org/call-for-papers&quot;&gt;Call for Proposals&lt;/a&gt; for the conference is open until 31.7. so if you have something you wanna share, submit your talk! And if you get selected, we can offer you an opportunity to practice your talk in our September meetup.&lt;/p&gt;

		</content>
	</entry>
	
	<entry>
		<title>Thanks for 2024!</title>
		<link href="https://archipylago.dev/blog/thanks-for-2024/"/>
		<updated>2024-12-31T00:00:00Z</updated>
		<id>https://archipylago.dev/blog/thanks-for-2024/</id>
		<content type="html">
		 &lt;p&gt;It&#39;s the last day of the first year of archipylago and I wanted to take a moment to say a few words.&lt;/p&gt;
&lt;p&gt;When I look back at the past 12 months, I remember a lot of faces - both old and new friends -, a lot of great discussions and a lot of new learned things. In the four meetups, three sprints and a variety of Turku Dev Lunches and afterworks, we witnessed a wonderful community starting to form.&lt;/p&gt;
&lt;p&gt;What defines a community is its people and the thanks for this year goes to all of you out there who joined the community and made it happen.&lt;/p&gt;
&lt;p&gt;First of all, without our amazing &lt;strong&gt;speakers&lt;/strong&gt;, our meetups would have been rather dull. So thanks Aarni Koskela, Magdalena Stenius, Mikko Harju, Calle Laakkonen, Robert Siipola, Mila Grigoryeva and Janne Rönkkö for taking the time to share what you know and have done to help everyone learn something new.&lt;/p&gt;
&lt;p&gt;Second, without our &lt;strong&gt;sponsors&lt;/strong&gt; we couldn&#39;t have had such great venues to gather together in. The first ones to support a movement like this are the ones who give the all important push of momentum. Thank you Valohai, Taiste, Sofokus and Vincit for hosting our meetups and Business Turku and University of Turku for supporting our sprints.&lt;/p&gt;
&lt;p&gt;Third, like an old man in a cave once said, &lt;em&gt;it&#39;s dangerous to go alone&lt;/em&gt;. It&#39;s been a wonderful year to build this together with &lt;strong&gt;Dan&lt;/strong&gt; and I&#39;m grateful he&#39;s been on this journey with me.&lt;/p&gt;
&lt;p&gt;As 2025 rolls in, we look into the future with optimism and excitement. We&#39;ll continue our learning journey of meetups in two weeks, when on &lt;a href=&quot;https://www.meetabit.com/events/archipylago-8-january-2025-at-taiste&quot;&gt;16.1. we visit Taiste&#39;s office&lt;/a&gt; to learn about new topics and make new friends.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Thanks for 2024 and cheers for 2025!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;PS. We&#39;re always looking for &lt;a href=&quot;https://archipylago.dev/for-speakers&quot;&gt;speakers&lt;/a&gt; and &lt;a href=&quot;https://archipylago.dev/for-companies&quot;&gt;partners&lt;/a&gt;. If you want to get involved, get in touch! See the contact details in the footer.&lt;/em&gt;&lt;/p&gt;

		</content>
	</entry>
	
	<entry>
		<title>Hallway track is where the magic happens</title>
		<link href="https://archipylago.dev/blog/hallway-track-is-where-magic-happens/"/>
		<updated>2024-12-02T00:00:00Z</updated>
		<id>https://archipylago.dev/blog/hallway-track-is-where-magic-happens/</id>
		<content type="html">
		 &lt;p&gt;The most visible and recognizable part of meetups are talks. That&#39;s what&#39;s advertised to get people to join the events and a good chunk of time and attention during the event is given to them. But there&#39;s more to meetups than just talks.&lt;/p&gt;
&lt;p&gt;Don&#39;t get me wrong: the talks are an integral part of developer events and that&#39;s where we learn about new things and get inspired by what others have built and learned. If you haven&#39;t been to a lot of tech events, you may have missed the sometimes bit hidden part of them that makes them so beloved. We call it the &amp;quot;hallway track&amp;quot;.&lt;/p&gt;
&lt;p&gt;Hallway track is what happens outside the official program - in the hallways outside of the &amp;quot;track rooms&amp;quot; where the scheduled talks occur. In our meetups, that means the mingling before the talks start, between the talks, after the talks at the venue and in the post-meetup discussions at the pub.&lt;/p&gt;
&lt;p&gt;I highly recommend everyone to take part in those discussions to meet new people.&lt;/p&gt;
&lt;p&gt;Here are a couple of things that can help.&lt;/p&gt;
&lt;h2&gt;The Pac-Man Rule&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://ericholscher.com/blog/2017/aug/2/pacman-rule-conferences/&quot;&gt;The Pac-Man Rule&lt;/a&gt;, coined by Eric Holscher is one way everone in an event can make it easier for others to join the discussions:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;When standing as a group of people, always leave room for 1 person to join your group.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;So when you&#39;re in our events and you chat with people, be open for others to join the discussion and you can communicate that by leaving a spot open in a circle and welcoming people to join those discussions.&lt;/p&gt;
&lt;p&gt;If someone new joins your discussion, do a quick round of introductions. If you know both parties but they don&#39;t know each other, why not introduce them to each other! Helping each other to meet new people is a win-win for everyone.&lt;/p&gt;
&lt;h2&gt;The Snowball Rule&lt;/h2&gt;
&lt;p&gt;Another rule, coined by Eric as well, is &lt;a href=&quot;https://ericholscher.com/blog/2017/dec/2/breaking-cliques-at-events/&quot;&gt;The Snowball Rule&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;For every year you have attended an event, you should try to meet that many new people each day.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I like it because it reduces the burden from the new people in the community and puts it bit more on the shoulders of those who&#39;ve been involved longer. I often invite people to chat with someone they haven&#39;t met before to encourage people to make a new friend - and giving the social permission to be a bit awkward when approaching a new person without any real discussion topic in mind.&lt;/p&gt;
&lt;p&gt;Of course, you&#39;re more than welcome to participate exactly as much as you feel comfortable. You will be always welcome to our events if you only wish to just sit and listen to the talks.&lt;/p&gt;
&lt;h2&gt;Post-meetup discussions and dev lunches&lt;/h2&gt;
&lt;p&gt;Third tip is to join us in the post-meetup discussions in the pub. I&#39;ve often heard the reason for people not joining is that it&#39;s a weekday evening and drinking late until the night isn&#39;t the best option fo them. I want to emphasize here that &lt;strong&gt;drinking isn&#39;t the point&lt;/strong&gt;. We go to a pub because those are the only places that are open past 21 in the evening. Grabbing a soda or water is more than welcomed option.&lt;/p&gt;
&lt;p&gt;Sitting together with people who are interested in similar things than you are who live in the same city as you is a fantastic way to make friends. The discussions in these post-meetup gatherings also tend to be more varied than what we end up discussing during the events.&lt;/p&gt;
&lt;p&gt;In the events, discussions are more tech focused and while we do talk about tech in the pub too, we also talk a lot about life and entertainment and what&#39;s been going on in our lives lately. Personally, I find those discussions often the best part of events. (These discussions also happen during lunch time in our &lt;a href=&quot;https://jarkkaa.fi/@turkudevlunch&quot;&gt;Turku Dev Lunches&lt;/a&gt; that are often organized and shared in our &lt;a href=&quot;https://archipylago.dev/discord&quot;&gt;TurkuDev Discord&lt;/a&gt;.)&lt;/p&gt;

		</content>
	</entry>
	
	<entry>
		<title>Let&#39;s solve Advent of Code puzzles together - archipylago sprint</title>
		<link href="https://archipylago.dev/blog/lets-solve-advent-of-code-puzzles-together-archipylago-sprint/"/>
		<updated>2024-11-18T00:00:00Z</updated>
		<id>https://archipylago.dev/blog/lets-solve-advent-of-code-puzzles-together-archipylago-sprint/</id>
		<content type="html">
		 &lt;p&gt;While the snow hasn&#39;t yet made its first appearance for this year here in Turku, a peek at the calendar reveals that Christmas is right around the corner. For developers, that means &lt;a href=&quot;https://adventofcode.com/&quot;&gt;Advent of Code&lt;/a&gt; is approaching.&lt;/p&gt;
&lt;h2&gt;What&#39;s Advent of Code?&lt;/h2&gt;
&lt;p&gt;Advent of Code is an annual Christmas calendar of programming puzzles created by Eric Wastl. He describes it as:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Advent of Code is an Advent calendar of small programming puzzles for a variety of skill sets and skill levels that can be solved in any programming language you like. People use them as interview prep, company training, university coursework, practice problems, a speed contest, or to challenge each other.&lt;/p&gt;
&lt;p&gt;You don&#39;t need a computer science background to participate - just a little programming knowledge and some problem solving skills will get you pretty far. Nor do you need a fancy computer; every problem has a solution that completes in at most 15 seconds on ten-year-old hardware.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;It&#39;s a fun way to learn new programming skills or even compete with others in the leaderboards.&lt;/p&gt;
&lt;p&gt;Every year, Eric creates 49 puzzles that are revealed daily: you get one every morning and if you solve the first part, you&#39;re rewarded with a second puzzle that is usually a more complex variation of the first part.&lt;/p&gt;
&lt;p&gt;They usually include a bit of Christmas lore, a puzzle description, example sample and an input file. To confirm you&#39;ve solved the puzzle correctly, you then input a number (sometimes rarely it&#39;s a string) and the system will either reward you with a star or tell you that your solution isn&#39;t quite right yet.&lt;/p&gt;
&lt;p&gt;You can freely choose which puzzles you solve and it&#39;s only the second part of each day that&#39;s locked behind a right solution. If you skip a day, the next day&#39;s puzzle will be available to you.&lt;/p&gt;
&lt;p&gt;At &lt;a href=&quot;https://archipylago.dev/discord&quot;&gt;TurkuDev Discord&lt;/a&gt;, we have an #adventofcode channel where you can join the solving even before the sprint.&lt;/p&gt;
&lt;p&gt;I have also a couple of blog posts in my personal blog about Advent of Code that are worth checking out: &lt;a href=&quot;https://hamatti.org/posts/advent-of-code-is-just-around-the-corner/&quot;&gt;Advent of Code is just around the corner&lt;/a&gt; talks about what and why of the calendar. In &lt;a href=&quot;https://hamatti.org/posts/tips-for-advent-of-code/&quot;&gt;Tips for Advent of Code&lt;/a&gt;, I share my general tips to make it a more enjoyable experience. And in &lt;a href=&quot;https://hamatti.org/posts/python-prep-for-advent-of-code-2022/&quot;&gt;Python prep for Advent of Code 2022&lt;/a&gt; I share some of the handy Python standard library tools and techniques I&#39;ve learned over the years of solving Advent of Code puzzles.&lt;/p&gt;
&lt;h2&gt;Let&#39;s solve them together&lt;/h2&gt;
&lt;p&gt;A great part of Advent of Code is that it&#39;s a great way to learn together. We are hosting a sprint on December 12th 17-21 at &lt;a href=&quot;https://sites.utu.fi/konttori/&quot;&gt;Konttori&lt;/a&gt; where you can join with your laptop and solve puzzles together with other Python developers. It&#39;s up to you which puzzles you want to solve: you can work on the puzzle of the 12th, any puzzle of the year before that or if you&#39;ve already done them all, any puzzles from the years before.&lt;/p&gt;
&lt;p&gt;You can sign up to the event at &lt;a href=&quot;https://meetabit.com/events/archipylago-7-sprint-at-konttori&quot;&gt;Meetabit&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Our sprints are hosted so developers can get together to write code. Asking questions and having discussions is encouraged. Avoid spoilers though: everyone should have an opportunity to solve the puzzles on their own if they so desire.&lt;/p&gt;
&lt;p&gt;All you need to bring is a laptop. We recommend signing up to &lt;a href=&quot;https://adventofcode.com/&quot;&gt;Advent of Code&lt;/a&gt; and setting up Python on your laptop before the event but if needed, help will be given with both of them as well.&lt;/p&gt;
&lt;p&gt;There&#39;s no food or drinks provided in this sprint but there&#39;s a few restaurants and K-Market Puhakka close by so you should take care of yourself.&lt;/p&gt;
&lt;p&gt;After the sprint, we&#39;ll continue the evening across the street at Portti.&lt;/p&gt;

		</content>
	</entry>
	
	<entry>
		<title>Fall 2024 announcement</title>
		<link href="https://archipylago.dev/blog/fall-2024-announcement/"/>
		<updated>2024-08-20T00:00:00Z</updated>
		<id>https://archipylago.dev/blog/fall-2024-announcement/</id>
		<content type="html">
		 &lt;p&gt;After a relaxing summer break, we&#39;re ready to return to our regular event schedule.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.meetabit.com/events/archipylago-5-september-2024-at-sofokus&quot;&gt;Our first event&lt;/a&gt; of the fall takes place Thursday 12.9. 18.00 at &lt;a href=&quot;https://sofokus.com/&quot;&gt;Sofokus&#39; office&lt;/a&gt;. Big thanks to them for hosting the meetup.&lt;/p&gt;
&lt;p&gt;The registration will open Thursday 29.8. at 12.00 via &lt;a href=&quot;https://www.meetabit.com/events/archipylago-5-september-2024-at-sofokus&quot;&gt;Meetabit&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Talks&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Robert Siipola&lt;/strong&gt; joins us to talk about vector embeddings: what they are, how you use them and how to visualize them.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Calle Laakkonen&lt;/strong&gt; will show us how to build REST and GraphQL APIs in Python.&lt;/p&gt;
&lt;p&gt;Learn more about the talks from &lt;a href=&quot;https://www.meetabit.com/events/archipylago-5-september-2024-at-sofokus&quot;&gt;the event page&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;We&#39;re looking for sponsors and speakers&lt;/h2&gt;
&lt;p&gt;The plans for the rest of the fall are still in progress. If your company uses Python and wants to &lt;strong&gt;host an evening with Turku&#39;s finest Python developers&lt;/strong&gt;, get in touch with us either via email (&lt;a href=&quot;mailto:juhamattisantala@gmail.com&quot;&gt;juhamattisantala@gmail.com&lt;/a&gt;) or in &lt;a href=&quot;https://archipylago.dev/discord&quot;&gt;TurkuDev Discord&#39;s&lt;/a&gt; #archipylago-general channel. You can find more information about hosting our meetups at our &lt;a href=&quot;https://archipylago.dev/for-companies&quot;&gt;for companies page&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Archipylago exists to bring together the local Python community so we can share our experiences and knowledge, learn from each other and meet new people. To make that happen, we&#39;d love to hear from you! If you&#39;d like to &lt;strong&gt;do a talk in our events&lt;/strong&gt;, get in touch! We welcome you whether you&#39;re first time speaker, have done it a hundred times or anything in between. And if you want, we can provide assistance in figuring out what to talk about and prepping the talk. You can find more specs from our &lt;a href=&quot;https://archipylago.dev/for-speakers&quot;&gt;for speakers page&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;And as always, tell about us to your friends and colleagues who work with Python. We rely on word of mouth to spread the word.&lt;/p&gt;

		</content>
	</entry>
	
	<entry>
		<title>It&#39;s my first time at a meetup - how does it work?</title>
		<link href="https://archipylago.dev/blog/its-my-first-time-at-meetup/"/>
		<updated>2024-04-01T00:00:00Z</updated>
		<id>https://archipylago.dev/blog/its-my-first-time-at-meetup/</id>
		<content type="html">
		 &lt;p&gt;If you&#39;re new here, welcome! We&#39;re archipylago, a community for Python developers and we organize &lt;em&gt;meetups&lt;/em&gt;. If you&#39;re new to developer communities, you might have some questions on what meetups are and how they work.&lt;/p&gt;
&lt;p&gt;We host our meetups on the second Thursday of the month, on odd-numbered months.&lt;/p&gt;
&lt;p&gt;We partner up with local tech companies who sponsor and host our events, usually in their offices. This gives you a wonderful opportunity to get to learn about the companies here in Turku, their company cultures and people there. The companies invite us to their offices and offer food and drinks during the events.&lt;/p&gt;
&lt;h2&gt;Join in three easy steps&lt;/h2&gt;
&lt;p&gt;To attend our meetups, you need to do three things in preparation:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;create an account at &lt;a href=&quot;https://meetabit.com/&quot;&gt;Meetabit&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;join &lt;a href=&quot;https://meetabit.com/communities/archipylago&quot;&gt;our community there&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;and when event registration opens up, click Attend.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We have limited seating in our meetups. That&#39;s why we require registration. It&#39;s also why it&#39;s so important to sign up with intention to attend rather than &amp;quot;just in case&amp;quot;. If you notice between signing up and the event that you can&#39;t make it after all, be kind and cancel your attendance so someone else gets the opportunity to join through the waitlist.&lt;/p&gt;
&lt;p&gt;Our meetups are for everyone: whether you are an experienced developer with years of experience writing Python, are a junior early in your career or a curious hobbyist, you&#39;re equally welcome to our events. If you&#39;re in doubt, err on the side of joining.&lt;/p&gt;
&lt;h2&gt;Learn, get inspired, meet new people&lt;/h2&gt;
&lt;p&gt;Attending meetups can give you a lot and are worth attending. Normally we have 2 speakers who are fellow community members who join us to share their experiences and knowledge in 30 minute talks. This is an opportunity for you to learn about new topics, approaches and tools in the Python ecosystem and community.&lt;/p&gt;
&lt;p&gt;In addition to the talks, we have a lovely community where you can make friends and build professional networks. We make sure to have time at the start of the event, between the talks and after them for what in the industry call the &amp;quot;Hallway Track&amp;quot;. It&#39;s a fancy way to say &amp;quot;talk with each other&amp;quot;. After the meetup, we also continue the discussions in a nearby pub. Drinking is totally optional: pubs just happen to be the only places open that late.&lt;/p&gt;
&lt;p&gt;When you arrive at a meetup event, say hi to people you see, grab a beverage and a snack and find a place to hang out. We&#39;ll let you know when we start the organized program.&lt;/p&gt;
&lt;p&gt;I&#39;ll share a secret: I don&#39;t always understand all the topics of talks in events I organize or attend. Good news is, you don&#39;t have to either! If one talk of the night isn&#39;t exactly your jam, don&#39;t let that skip the event. The beauty of meetups is that they are a combination of learning from talks, getting inspired by new ideas, having discussions with fellow developers and having a good time.&lt;/p&gt;
&lt;h2&gt;Inspiration from others&lt;/h2&gt;
&lt;p&gt;Eric Holscher has coined a two nice rules for event participants. The first one is called &lt;a href=&quot;https://ericholscher.com/blog/2017/dec/2/breaking-cliques-at-events/&quot;&gt;The Snowball Rule&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;For every year you have attended an event, you should try to meet that many new people each day.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This encourages experienced attendees to carry most of the burden of initiating the discussions with new people – and gives new people an out to chatting with one new person if they feel a bit intimidated.&lt;/p&gt;
&lt;p&gt;The second one is &lt;a href=&quot;https://ericholscher.com/blog/2017/aug/2/pacman-rule-conferences/&quot;&gt;The Pac-Man Rule&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;When standing as a group of people, always leave room for 1 person to join your group.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Andy Croll recently shared &lt;a href=&quot;https://andycroll.com/ruby/why-go-to-a-rails-or-ruby-conference/&quot;&gt;his reasons for attending tech conferences&lt;/a&gt; and much of it applies to meetups as well. I especially enjoy this passage:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;If you don’t attend the event, there’s no chance of serendipity. An unexpected insight, from a talk you might have avoided or a conversation in the hallway, where a new approach to a long running problem presents itself.&lt;br /&gt;
[ - - ]&lt;br /&gt;
Meeting someone, or seeing a talk, could change the trajectory of your career. You might choose a product company, if you’ve been in agency life. You might lean hard into open source work and make that a foundation of the next phase of your career. You might meet someone who, in three years, starts a company and remembers that great meal you had and asks you to join them.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I have &lt;a href=&quot;https://hamatti.org/posts/developers-guide-to-communities/&quot;&gt;a personal blog post on the topic&lt;/a&gt; too:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I have made so many friends all over the world through meetups, hackathons, conferences and online communities and I am so happy I have because people are kinda the best part of life.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Wanna host or give a talk?&lt;/h2&gt;
&lt;p&gt;We&#39;re always on the lookout for companies to host our meetups and speakers to give talks.&lt;/p&gt;
&lt;p&gt;If you want to sponsor an event, get in touch and we&#39;ll find you a good slot in our event calendar. We&#39;ll take care of the speakers, marketing and registration – your part of the deal is to offer us space and drinks &amp;amp; food for the participants.&lt;/p&gt;
&lt;p&gt;If you want to talk, get in touch! Our regular slots are max 30 minute talks in English about Python or related topics. If you have an idea for something that deviates from that, let&#39;s chat. We welcome both new and experienced speakers alike. If you&#39;re new to speaking, we can offer help with choosing an idea, crafting your talk and practicing it.&lt;/p&gt;

		</content>
	</entry>
	
	<entry>
		<title>April sprint 13.4.: Web Development</title>
		<link href="https://archipylago.dev/blog/april-sprint-web-development/"/>
		<updated>2024-03-19T00:00:00Z</updated>
		<id>https://archipylago.dev/blog/april-sprint-web-development/</id>
		<content type="html">
		 &lt;p&gt;Last week we had &lt;a href=&quot;https://archipylago.dev/blog/archipylago-3-sre-rule-based-systems&quot;&gt;a wonderful meetup&lt;/a&gt; at &lt;a href=&quot;https://taiste.fi/&quot;&gt;Taiste&lt;/a&gt;, thanks Magdalena and Mikko for the talks, Taiste for hosting and everyone who joined for great discussions and good vibes.&lt;/p&gt;
&lt;p&gt;Our next event is a sprint on Saturday 13.4. 12-16 at &lt;a href=&quot;https://sparkup.businessturku.fi/en/&quot;&gt;SparkUp&lt;/a&gt;. You can sign up for the event at &lt;a href=&quot;https://meetabit.com/events/archipylago-4-april-2024-at-sparkup&quot;&gt;Meetabit&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;What are sprints?&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;For sprints, we are organizing hands-on &amp;quot;bring your own laptop&amp;quot; style events, possibly on Saturdays where we either go through some workshops, work on open source projects or take a look at new tech or library and hack away together. (&lt;a href=&quot;https://archipylago.dev/blog/from-turku-import-archipylago&quot;&gt;from our intro post&lt;/a&gt;)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;My vision for sprints is to cultivate a culture where developers take some time every now and then to learn together by writing code. The goal for these events is to have a group of developers in the same space, divided into smaller groups working with each other so everyone could find someone to learn new things with.&lt;/p&gt;
&lt;p&gt;I have this dream where a developer can join our sprint, pick something from the suggested menu to work on and find other people who have selected the same and they can collaborate to learn together and make new friends.&lt;/p&gt;
&lt;p&gt;Each sprint, we have a theme. &lt;a href=&quot;https://archipylago.dev/blog/our-first-sprint-in-february/&quot;&gt;Last time in February&lt;/a&gt; we worked on improving our testing skills. In the event, we had people work through CEO Bowling kata with TDD, learn how to write end-to-end tests with Playwright and contribute to Python itself.&lt;/p&gt;
&lt;p&gt;You&#39;re &lt;strong&gt;encouraged to ask questions and seek for help&lt;/strong&gt; during sprints from other participants. &lt;em&gt;&amp;quot;Hey, can anyone help me understand this thing&amp;quot;&lt;/em&gt; is a question we love to hear and we also encourage everyone to help out. You don&#39;t need to have all the answers to be able to help: working, googling, reading docs and experimenting together is a great way to learn.&lt;/p&gt;
&lt;h2&gt;Web Development&lt;/h2&gt;
&lt;p&gt;Python is a wonderful language for web development and the community has built many different tools to build backends. During the sprint, you can pick one of these (or any others you feel like learning!):&lt;/p&gt;
&lt;p&gt;Pamela Fox has created and collected good resources and example apps to learn any of the three at &lt;a href=&quot;https://github.com/pamelafox/python-web-apps&quot;&gt;Python Web Apps: Teaching Materials&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Django&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://www.djangoproject.com/&quot;&gt;Django&lt;/a&gt; is a great place to start if you want to learn web development with Python and don&#39;t know where to start.&lt;/p&gt;
&lt;p&gt;There are two good ways to get started with Django that you can follow during this sprint depending on your familiarity with Python and programming in general:&lt;/p&gt;
&lt;h4&gt;&lt;a href=&quot;https://docs.djangoproject.com/en/5.0/intro/tutorial01/&quot;&gt;Writing your first Django app&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;The official Django tutorial &amp;quot;Writing your first Django app&amp;quot; is a good intro to Django for those who are already somewhat familiar with Python and web. It walks you through all the basics you need to learn to get a Django site up and running: apps, models, views, forms, testing, and look and feel.&lt;/p&gt;
&lt;h4&gt;&lt;a href=&quot;https://tutorial.djangogirls.org/en/&quot;&gt;Django Girls tutorial&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;If you&#39;re new to all this, Django Girls have a wonderful tutorial that in addition to teaching how Django works also introduces you to how the web works, how to navigate command line and project structures and so on. It also includes short intros to HTML and CSS.&lt;/p&gt;
&lt;h3&gt;Flask&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://flask.palletsprojects.com/&quot;&gt;Flask&lt;/a&gt; is another option. It&#39;s more barebones compared to Django and for smaller backends that might be exactly what you want. They have &lt;a href=&quot;https://flask.palletsprojects.com/en/3.0.x/tutorial/&quot;&gt;a tutorial that builds a blog&lt;/a&gt; that one can follow to get a feel for how Flask works and how to build web backends with it.&lt;/p&gt;
&lt;p&gt;While Flask&#39;s interface is simpler than Django, I personally agree on the opinions from BiteCode on why &lt;a href=&quot;https://www.bitecode.dev/p/beginners-should-use-django-not-flask&quot;&gt;beginners should choose Django, not Flask&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Django on the other hand, is fit with decent defaults. You can&#39;t say they are the &amp;quot;best practices&amp;quot;, as we all know there is no silver bullet, but it&#39;s mostly quite nice. It will tell you to setup CSRF protection, it will forbid click jacking, it will force you to serve static file with a proxy in prod, it will generate a new secret key automatically, it will store session data server side...&lt;/p&gt;
&lt;p&gt;Not just that, but Django has an opinion. Like all opinions, it is debatable, but when you start web dev, your opinion likely sucks, and you should adopt Django&#39;s. Then once you know what it entails, you can divert from it or change course completely. But at least you start from some practical structure that has been shown to work at scale, instead of a blank page.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;FastAPI&lt;/h3&gt;
&lt;p&gt;The third tool we recommend taking a look at is &lt;a href=&quot;https://fastapi.tiangolo.com/&quot;&gt;FastAPI&lt;/a&gt;. Their &lt;a href=&quot;https://fastapi.tiangolo.com/tutorial/&quot;&gt;step-by-step tutorial&lt;/a&gt; helps guide you through its features.&lt;/p&gt;
&lt;p&gt;FastAPI requires the most knowledge and understanding of the web of these three. If you have built APIs with Django or Flask before, maybe spend the Saturday learning how building them differs with FastAPI.&lt;/p&gt;
&lt;h2&gt;Practicalities&lt;/h2&gt;
&lt;p&gt;The event takes place Saturday 13.4. 12-16 at &lt;a href=&quot;https://sparkup.businessturku.fi/en/&quot;&gt;SparkUp&lt;/a&gt; (at Tykistökatu 4B). You can sign up for the event in &lt;a href=&quot;https://meetabit.com/events/archipylago-4-april-2024-at-sparkup&quot;&gt;Meetabit&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Show up, come say hi, find a seat and desk and start working. If you don&#39;t know where to start, don&#39;t worry, we&#39;re there to help!&lt;/p&gt;
&lt;p&gt;This event does not have food/drinks sponsor so take care of your own nutrition needs. There&#39;s a well-stocked &lt;a href=&quot;https://www.k-ruoka.fi/kauppa/k-market-station&quot;&gt;K-Market Station&lt;/a&gt; across the street and we have forks and knives and spoons in the venue.&lt;/p&gt;

		</content>
	</entry>
	
	<entry>
		<title>archipylago #3: Good-enough SRE practices &amp; Rule-based systems in Python</title>
		<link href="https://archipylago.dev/blog/archipylago-3-sre-rule-based-systems/"/>
		<updated>2024-03-15T00:00:00Z</updated>
		<id>https://archipylago.dev/blog/archipylago-3-sre-rule-based-systems/</id>
		<content type="html">
		 &lt;p&gt;Our third event of the year was a meetup hosted at &lt;a href=&quot;https://taiste.fi/&quot;&gt;Taiste&lt;/a&gt;&#39;s wonderful and cozy office. It&#39;s always a good day when it&#39;s meetup day. We had a lovely group of developers gather together at the meetup and a nice split of familiar faces from the Turku meetup scene and first-time participants.&lt;/p&gt;
&lt;h2&gt;Talks&lt;/h2&gt;
&lt;h3&gt;Magdalena Stenius - Good-enough SRE for production software projects&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://archipylago.dev/assets/img/posts/archipylago-3-sre-rule-based-systems/fdfh43456ksdm2.jpg&quot; alt=&quot;Magdalena standing next to a laptop, speaking to an off-screen audience.&quot; /&gt;&lt;/p&gt;
&lt;p&gt;It was wonderful to get Magdalena as a speaker to our meetup. She&#39;s currently working at Wolt as a software developer and joined us to talk about site reliability engineering (SRE) and how they approach it in her team.&lt;/p&gt;
&lt;p&gt;SRE is a practice and set of processes that can be quite involved. When building the practices in your team, you may think about observability, key metrics, runbooks, self-healing systems, postmortems and the impact on both user experience and the revenue. When asked about what a team that has nothing of these set up yet should do first, she recommends observability: it&#39;s hard to fix things you don&#39;t know about or notice.&lt;/p&gt;
&lt;p&gt;Different services and business have different metrics and how for example service outages affect things. For one business, a 30 minute delay can be a huge problem where-as for a different type of business 3 day delay might be a smaller issue. So it&#39;s important to find the right things to focus on based on your team&#39;s responsibilities.&lt;/p&gt;
&lt;p&gt;How do you make your service reliable? Automate as much as possible so it becomes less of a burden for individuals. Service level agreements (SLAs) are measured in two metrics: availability and latency. Keep track of error budget (how much is allowed to go wrong in the 30-day window) and burn rate (with current rate of errors, when does the error budget run out.)&lt;/p&gt;
&lt;p&gt;For further reading on performance and observability, Magda recommended &lt;a href=&quot;https://www.brendangregg.com/systems-performance-2nd-edition-book.html&quot;&gt;Brendan Gregg&#39;s Systems Performance&lt;/a&gt; book.&lt;/p&gt;
&lt;p&gt;Combating the issues while keeping your team in good operation starts with making the problems visible, documenting usual cases and how to solve them in &lt;a href=&quot;https://en.wikipedia.org/wiki/Runbook&quot;&gt;runbooks&lt;/a&gt; and running postmortems when incidents happen. If you&#39;re interested in learning more about how they do these in more detail at Wolt, they have written &lt;a href=&quot;https://careers.wolt.com/en/blog/tech/how-we-manage-incidents-at-wolt&quot;&gt;a blog post&lt;/a&gt; on the topic.&lt;/p&gt;
&lt;h3&gt;Mikko Harju - Implementing and using Rule-based systems in Python&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://archipylago.dev/assets/img/posts/archipylago-3-sre-rule-based-systems/h422hf9fmma3.jpg&quot; alt=&quot;Mikko is speaking to an audience, looking towards a screen. In both the front and background people are listening and looking at the screen.&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Our second talk was presented by Taiste&#39;s own technical director Mikko Harju who introduced us into the world of &lt;a href=&quot;https://en.wikipedia.org/wiki/Rule-based_system&quot;&gt;rule-based systems&lt;/a&gt;. Rule-based systems are fancier versions of complex if/else decision trees but built in a way that is more modular and scalable when the systems grow.&lt;/p&gt;
&lt;p&gt;One of the algorithms use for these systems is called &lt;a href=&quot;https://en.wikipedia.org/wiki/Rete_algorithm&quot;&gt;Rete&lt;/a&gt; and it is created to make updating and applying the rules efficient because otherwise evaluating every change for every fact would be too slow.&lt;/p&gt;
&lt;p&gt;Mikko suggested reading &lt;a href=&quot;https://apps.dtic.mil/sti/citations/ADA293105&quot;&gt;Robert B. Doorenbos&#39; thesis paper Production Matching for Large Learning Systems&lt;/a&gt; which he says is an approachable academic paper that explains the systems.&lt;/p&gt;
&lt;p&gt;For Python developers, Mikko showcased &lt;a href=&quot;https://github.com/cmaclell/py_rete&quot;&gt;py-rete&lt;/a&gt; library and gave a wonderful live demonstrations on how these systems are built.&lt;/p&gt;
&lt;p&gt;The basic unit of a rule-based system is a &lt;code&gt;Fact&lt;/code&gt; that represents facts and &lt;code&gt;Production&lt;/code&gt;s that are functions that apply &lt;code&gt;Fact&lt;/code&gt;s to the network to determine if the function should be run or not.&lt;/p&gt;
&lt;p&gt;A simple example looks like this (from py-rete&#39;s documentation). The &lt;code&gt;Production&lt;/code&gt;s are used as decorators to functions and contain &lt;code&gt;Fact&lt;/code&gt;s and &lt;code&gt;Filter&lt;/code&gt;s to match against rules.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;from py_rete.fact import Fact
from py_rete.production import Production
from py_rete.network import ReteNetwork

# Create a Production rule that matches any network where color equals red
@Production(Fact(color=&#39;red&#39;))
def alert_something_red():
    print(&amp;quot;I found something red&amp;quot;)

# Initialize a network
net = ReteNetwork()

# Add Production rule to the network
net.add_production(alert_something_red)

# Create a fact and add it to the network
f1 = Fact(color=&amp;quot;red&amp;quot;)
net.add_fact(f1)

# Run updates: this will match the production we created
# and print out &amp;quot;I found something red&amp;quot;
net.run(1)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;When the rete network is run, this function &lt;code&gt;alert_something_red&lt;/code&gt; will be executed if that network contains a &lt;code&gt;Fact&lt;/code&gt; of &lt;code&gt;color=&#39;red&#39;&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;In his demo, Mikko walked us through a system that calculates discounts for customers based on a set of rules: 20% if logged in and 30% if buying more than 2 products - except on Fridays when all discounts are off.&lt;/p&gt;
&lt;p&gt;Mikko talked about some of the caveats of the system as well. One of the big ones being that building these rule systems in a larger team requires extra coordination to make sure everything runs correctly.&lt;/p&gt;
&lt;h2&gt;Thanks to Taiste and speakers&lt;/h2&gt;
&lt;p&gt;A big warm thanks to Magda, Mikko and Taiste&#39;s folk for making the meetup possible as well as to everyone who participated.&lt;/p&gt;
&lt;p&gt;A bunch of us continued into the night with follow-up discussions where we ended up fascinating topics like homework assignments in recruitment, type safety, favorite movies and tv series, differences in US and Finnish cultures and a variety of other things.&lt;/p&gt;
&lt;p&gt;Our next event is a sprint on Saturday 13.4. 12-16 at SparkUp. We&#39;ll gather together to learn about building web backends with Python using Django, Flask and/or FastAPI. Our sprints are self-directed hands-on programming sessions where the idea is to study and work on a theme of the month together in small groups. More information about the event and registration will come next week in this blog and &lt;a href=&quot;https://meetabit.com/communities/archipylago&quot;&gt;our Meetabit page&lt;/a&gt; but save the date!&lt;/p&gt;
&lt;p&gt;📸 Photos by &lt;a href=&quot;https://ainasoja.fi/&quot;&gt;Ikaros Ainasoja&lt;/a&gt;.&lt;/p&gt;

		</content>
	</entry>
	
	<entry>
		<title>March meetup is coming 14.3.</title>
		<link href="https://archipylago.dev/blog/march-meetup-is-coming/"/>
		<updated>2024-02-27T00:00:00Z</updated>
		<id>https://archipylago.dev/blog/march-meetup-is-coming/</id>
		<content type="html">
		 &lt;p&gt;&lt;img src=&quot;https://archipylago.dev/assets/img/posts/archipylago-blog-march-meetup-coming.png&quot; alt=&quot;Magdalena Stenius: &amp;quot;Good-enough SRE for production software projects&amp;quot; and Mikko Harju: &amp;quot;Implementing and using Rule-based systems in Python&amp;quot;. archipylago at Taiste, Thu 14.3.2024 18-20.30&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Our next event is coming in two weeks. Our good friends at &lt;a href=&quot;https://taiste.fi/&quot;&gt;Taiste&lt;/a&gt; are hosting us this time and we have two excellent talks booked for the event.&lt;/p&gt;
&lt;h2&gt;Talks&lt;/h2&gt;
&lt;h3&gt;Magdalena Stenius - Good-enough SRE for production software projects&lt;/h3&gt;
&lt;p&gt;Magdalena has been a pivotal part in Turku&#39;s Python community as an organizer of Turku.py community and we&#39;re excited she&#39;s joining us as a speaker for this event. She works at Wolt and this month she&#39;s sharing her experience in building good-enough SRE practices in their team.&lt;/p&gt;
&lt;p&gt;During her talk, we can expect an introduction to the theme as well as a practical example from Wolt&#39;s personalisation-api service that caters their global user base daily.&lt;/p&gt;
&lt;h3&gt;Mikko Harju - Implementing and using Rule-based systems in Python&lt;/h3&gt;
&lt;p&gt;Mikko is a Technology Director at Taiste and he will introduce us to the world of rule-based systems and how to implement and use them in Python. He will show how to use &lt;a href=&quot;https://github.com/cmaclell/py_rete&quot;&gt;py-rete&lt;/a&gt; project to implement Rete engines in native Python.&lt;/p&gt;
&lt;h2&gt;Practicalities&lt;/h2&gt;
&lt;p&gt;The event is free but we have limited seating so you need to sign up at &lt;a href=&quot;https://meetabit.com/events/archipylago-3-march-2024-at-taiste/&quot;&gt;our Meetabit page&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The meetup takes place &lt;time datetime=&quot;2024-03-14&quot;&gt;14.3.2024&lt;/time&gt; &lt;time datetime=&quot;18:00&quot;&gt;18.00&lt;/time&gt; - &lt;time datetime=&quot;20:30&quot;&gt;20.30&lt;/time&gt; after which we&#39;ll continue open discussions at &lt;a href=&quot;https://www.saaristobaari.fi/&quot;&gt;Saaristobaari&lt;/a&gt;, one block from the venue.&lt;/p&gt;
&lt;h2&gt;Want to give a talk or host our event?&lt;/h2&gt;
&lt;p&gt;We&#39;re always on the lookout for speakers and sponsors. If you are interested to do either, get in touch: you can email me at juhamattisantala (at) &lt;a href=&quot;http://gmail.com/&quot;&gt;gmail.com&lt;/a&gt;, talk to us in #archipylago-general in &lt;a href=&quot;https://archipylago.dev/discord&quot;&gt;TurkuDev Discord&lt;/a&gt; or come say hi during an event.&lt;/p&gt;

		</content>
	</entry>
	
	<entry>
		<title>Our first sprint in February</title>
		<link href="https://archipylago.dev/blog/our-first-sprint-in-february/"/>
		<updated>2024-01-17T00:00:00Z</updated>
		<id>https://archipylago.dev/blog/our-first-sprint-in-february/</id>
		<content type="html">
		 &lt;p&gt;After &lt;a href=&quot;https://archipylago.dev/blog/archipylago-1-debugging-python-and-packaging&quot;&gt;a kick-ass kick off meetup&lt;/a&gt; last week at &lt;a href=&quot;https://valohai.com/&quot;&gt;Valohai&lt;/a&gt;, it&#39;s time to direct our focus on the next event: our first &lt;strong&gt;sprint&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The sprint will take place Saturday, 24.2.2024 12-16 at &lt;a href=&quot;https://sparkup.businessturku.fi/en/&quot;&gt;SparkUp&lt;/a&gt;, Tykistökatu 4B.&lt;/p&gt;
&lt;p&gt;In &lt;a href=&quot;https://archipylago.dev/blog/from-turku-import-archipylago&quot;&gt;our introduction blog post&lt;/a&gt;, I described our sprint concept as&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;For &lt;strong&gt;sprints&lt;/strong&gt;, we are organizing hands-on &amp;quot;bring your own laptop&amp;quot; style events, possibly on Saturdays where we either go through some workshops, work on open source projects or take a look at new tech or library and hack away together.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;For this first event, we picked a theme of &lt;strong&gt;automated testing&lt;/strong&gt;. There won&#39;t be a strict program for the day, but rather a 4-hour window where you can join a group of fellow Pythonistas to work on things and learn new things.&lt;/p&gt;
&lt;h2&gt;How does it work?&lt;/h2&gt;
&lt;p&gt;The &amp;quot;recommended&amp;quot; approach to this event is to clone AutomationPanda&#39;s &lt;a href=&quot;https://github.com/AutomationPanda/bulldoggy-reminders-app&quot;&gt;bulldoggy-reminders-app&lt;/a&gt; and use it as an example app to write tests for. You can choose your own tools that you want to learn: you might want to write unit tests with &lt;a href=&quot;https://docs.python.org/3/library/unittest.html&quot;&gt;unittest&lt;/a&gt; or &lt;a href=&quot;https://docs.python.org/3/library/doctest.html&quot;&gt;doctest&lt;/a&gt; or explore end-to-end testing with &lt;a href=&quot;https://playwright.dev/&quot;&gt;Playwright&lt;/a&gt; or &lt;a href=&quot;https://www.cypress.io/&quot;&gt;Cypress&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If more people choose to do the same thing, they can group up and learn together. You can do &lt;a href=&quot;https://en.wikipedia.org/wiki/Pair_programming&quot;&gt;pair programming&lt;/a&gt; or &lt;a href=&quot;https://en.wikipedia.org/wiki/Team_programming#Mob_programming&quot;&gt;ensemble programming&lt;/a&gt; and in addition to learning more about testing, make new friends and pick up a new approach to coding!&lt;/p&gt;
&lt;p&gt;But you are also welcome to use this time slot as a &amp;quot;get-stuff-done&amp;quot; time for writing or improving tests for your own projects or contribute to an open source project.&lt;/p&gt;
&lt;p&gt;Finally, at the end of the day, let&#39;s do a short demo round where people can share what they worked on and what they learned.&lt;/p&gt;
&lt;p&gt;We&#39;ve added detailed instructions on &lt;a href=&quot;https://archipylago.dev/sprints/1/&quot;&gt;how to get started&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Join the event&lt;/h2&gt;
&lt;p&gt;To join, sign up at &lt;a href=&quot;https://meetabit.com/events/archipylago-2-february-2024-at-sparkup&quot;&gt;Meetabit&lt;/a&gt;, bring your own laptop (and remember a charger!) and an open mind.&lt;/p&gt;
&lt;p&gt;This event does not have a food/drink sponsorship so take care of your own nutrition needs during the day. There&#39;s a &lt;a href=&quot;https://www.k-ruoka.fi/kauppa/k-market-station&quot;&gt;K-Market Station&lt;/a&gt; across the street.&lt;/p&gt;
&lt;p&gt;Thank you &lt;a href=&quot;https://sparkup.businessturku.fi/en/&quot;&gt;SparkUp&lt;/a&gt; for providing us with the space for the event ❤️.&lt;/p&gt;

		</content>
	</entry>
	
	<entry>
		<title>archipylago #1: Modern Python Packaging &amp; Debugging Python</title>
		<link href="https://archipylago.dev/blog/archipylago-1-debugging-python-and-packaging/"/>
		<updated>2024-01-15T00:00:00Z</updated>
		<id>https://archipylago.dev/blog/archipylago-1-debugging-python-and-packaging/</id>
		<content type="html">
		 &lt;p&gt;&lt;img src=&quot;https://archipylago.dev/assets/img/posts/archipylago-1-packaging-debugging-python/i275ichgqj.jpg&quot; alt=&quot;A plate of toast skagen&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Last week we hosted our first meetup at &lt;a href=&quot;https://valohai.com/&quot;&gt;Valohai&lt;/a&gt;&#39;s office. Big thanks to them for hosting the event and helping us get our events up and running. The event was a lovely success.&lt;/p&gt;
&lt;p&gt;For this first event, we had two talks and a good community discussion and a lovely archipelago themed offering of &lt;a href=&quot;https://en.wiktionary.org/wiki/saaristolaisleip%C3%A4&quot;&gt;saaristolaisleipä&lt;/a&gt; (lit. archipelago bread) and toast skagen.&lt;/p&gt;
&lt;h2&gt;Modern Python Packaging by Aarni Koskela&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://archipylago.dev/assets/img/posts/archipylago-1-packaging-debugging-python/fa771f4ff8f66fb1.jpg&quot; alt=&quot;A group of developers sitting on a sofa and chairs in an office room with Aarni standing next to a screen, speaking to the audience.&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Our first speaker was &lt;a href=&quot;https://akx.github.io/&quot;&gt;Aarni Koskela&lt;/a&gt;, known to many in the community as akx. Aarni is a very active in the developer ecosystem and has built many great tools as you can see from his website. He joined the event to talk about modern Python packaging.&lt;/p&gt;
&lt;p&gt;In his talk, Aarni took us through the history and evolution of packing and installing packages in Python, from the days of &lt;code&gt;easy_install&lt;/code&gt; and &lt;code&gt;setup.py&lt;/code&gt; all the way to the more modern days. With the introduction of &lt;a href=&quot;https://peps.python.org/pep-0517/&quot;&gt;PEP 517&lt;/a&gt; and &lt;a href=&quot;https://peps.python.org/pep-0518/&quot;&gt;PEP 518&lt;/a&gt; specifying build-system format and minimum build system requirements, the last few years have been moving Python packaging to a better direction.&lt;/p&gt;
&lt;p&gt;Using PEP 517 combatible tools makes your life as a developer easier: you&#39;ll get access to build backend systems maintained by fellow Pythonistas, people don&#39;t need to dig through weird &lt;a href=&quot;http://setup.py/&quot;&gt;setup.py&lt;/a&gt; setups and it will make your CI workflows easier.&lt;/p&gt;
&lt;p&gt;A very cool thing I learned from Aarni&#39;s talk personally, was that you can install local libraries with &lt;code&gt;pip install -e /path/to/your/other/library&lt;/code&gt; in a way that live updates as changes are made to that library, making it easier to develop a companion library together with your main application that uses it.&lt;/p&gt;
&lt;p&gt;The tool that Aarni recommends for the build backend is &lt;a href=&quot;https://github.com/pypa/hatch&quot;&gt;hatch&lt;/a&gt; that is maintained by &lt;a href=&quot;https://github.com/pypa&quot;&gt;pypa&lt;/a&gt;, the Python Packaging Authority. Some reasons he listed for his reasoning are user-friendliness, extensibility and easy migration&lt;br /&gt;
from setuptools.&lt;/p&gt;
&lt;p&gt;A good guide for learning what goes into &lt;code&gt;pyproject.toml&lt;/code&gt; configuration files used by these systems can be found at the &lt;a href=&quot;https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#writing-pyproject-toml&quot;&gt;Python Packaging User Guide&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;An important point Aarni raised when declaring dependencies is to avoid unversioned dependency specifiers but constraining the allowed dependencies to some level (for example, a specific major version) to avoid issues.&lt;/p&gt;
&lt;h2&gt;Debugging Python by Juha-Matti Santala&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://archipylago.dev/assets/img/posts/archipylago-1-packaging-debugging-python/2d04dc520596df18.jpg&quot; alt=&quot;Juhis presenting to a room of developers with a large yellow illustrated rubber duck on the screen.&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The second talk was done by &lt;a href=&quot;https://hamatti.org/&quot;&gt;Juhis&lt;/a&gt; (that&#39;s me!). I brought my recent PyCon Sweden talk &lt;strong&gt;Debugging Python&lt;/strong&gt; to the meetup. I have &lt;a href=&quot;https://hamatti.org/posts/debugging-python/&quot;&gt;written it open in my personal blog&lt;/a&gt; if you want to go deeper.&lt;/p&gt;
&lt;p&gt;Debugging to me is a skill with two different main categories. And to become effective in debugging, one must master both parts. There&#39;s the mindset and process part that has less to do with computers and more about leaving your assumptions at door and being diligent in following steps of debugging because our brain is very good at tricking us to think we know something or definitely tried that one thing we actually didn&#39;t. Eventually, if all else fails, we talk to ducks.&lt;/p&gt;
&lt;p&gt;The second part is the mastery of Python tools and techniques from printing to debuggers and knowing what approaches to take given the type and complexity of the problem. Being lean is effective in debugging too. Using the most complex tool can slow you down if a simpler and faster tool could have solved it better.&lt;/p&gt;
&lt;p&gt;I&#39;m a strong believer that print is the best debugging tool and one main reason for that is that it has the lowest level of friction of all the tools. It takes a couple of seconds to write a print statement. You don&#39;t need to install or configure anything so it can be done on any project. However, it&#39;s not the most powerful or advanced tool and has its downsides so I also introduced people to &lt;a href=&quot;https://github.com/alexmojaki/snoop&quot;&gt;snoop&lt;/a&gt; which is a collection of tools that help with debugging and to various debuggers like &lt;a href=&quot;https://docs.python.org/3/library/pdb.html&quot;&gt;The Python Debugger&lt;/a&gt;, &lt;a href=&quot;https://github.com/gotcha/ipdb&quot;&gt;iPython Debugger&lt;/a&gt;, &lt;a href=&quot;https://documen.tician.de/pudb/&quot;&gt;PuDB&lt;/a&gt;, &lt;a href=&quot;https://github.com/romanvm/python-web-pdb&quot;&gt;web-pdb&lt;/a&gt; and &lt;a href=&quot;https://github.com/alexmojaki/birdseye&quot;&gt;birdseye&lt;/a&gt;. Especially birdseye has recently become a favorite tool of mine.&lt;/p&gt;
&lt;h2&gt;Next event: a testing sprint&lt;/h2&gt;
&lt;p&gt;Our next event in February will be our first &lt;strong&gt;sprint&lt;/strong&gt;. When we say &amp;quot;sprint&amp;quot;, you can mentally change it to &amp;quot;let&#39;s get together and write code&amp;quot;. We don&#39;t have a strict format for these and I hope we&#39;ll discover together as a community what we like to do with them.&lt;/p&gt;
&lt;p&gt;For the first one, let&#39;s strengthen our test writing skills. Pandy Knight has a great starter project called &lt;a href=&quot;https://github.com/AutomationPanda/bulldoggy-reminders-app&quot;&gt;bulldoggy-reminders-app&lt;/a&gt; that provides a relatively small full-stack application with multiple users, logins and a way to create reminders for oneself. It&#39;s a nice one to practice writing tests with as it&#39;s not very complex and it offers distinct, well defined actions users can take.&lt;/p&gt;
&lt;p&gt;You can focus on the tools, techniques and style of testing you want. Ideally, we could form groups at the event to work on these together and learn from each other.&lt;/p&gt;
&lt;p&gt;Or if you want to take the moment of gathering together to get tests written for your own project, that&#39;s perfectly fine too.&lt;/p&gt;

		</content>
	</entry>
	
	<entry>
		<title>Start your year with a new podcast</title>
		<link href="https://archipylago.dev/blog/start-your-year-with-a-new-podcast/"/>
		<updated>2024-01-02T00:00:00Z</updated>
		<id>https://archipylago.dev/blog/start-your-year-with-a-new-podcast/</id>
		<content type="html">
		 &lt;p&gt;The Python community is very active in the podcastsphere and there are many great ones to choose from.&lt;br /&gt;
With 2024 now officially under way, it&#39;s a good time to pick up a new podcast or two. Whether you&#39;re interested in the internals, community projects, use cases or people in the community, from these podcasts you&#39;ll find one that fits your interests.&lt;/p&gt;
&lt;h2&gt;core.py&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://pca.st/mb7191wn&quot;&gt;core.py&lt;/a&gt; by Pablo Galindo and Łukasz Langa is a podcast the duo discusses the internals of Python. Pablo is a Python core developer, Steering Council member and release manager of Python 3.10 and 3.11 and Łukasz is the CPython Developer in Residence, Python 3.8 and 3.9 release manager and creator of &lt;a href=&quot;https://github.com/psf/black&quot;&gt;Black&lt;/a&gt; formatter so the tales they share come from the core of the Python development.&lt;/p&gt;
&lt;p&gt;If you&#39;re interested in learning how Python as a programming language works and is developed, core.py is a great addition to your podcast playlist.&lt;/p&gt;
&lt;h2&gt;The Real Python&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://realpython.com/podcasts/rpp/&quot;&gt;The Real Python&lt;/a&gt; by Christopher Bailey - a Pythonista and Python educator - discusses all things Python in a practical and easy to approach form every Friday with a changing cast of guests from the industry. It&#39;s a good choice if you&#39;re interested in learning from a variety of different things and to stay up to date on what&#39;s happening in the Python community.&lt;/p&gt;
&lt;h2&gt;Talk Python to Me&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://talkpython.fm/&quot;&gt;Talk Python to Me&lt;/a&gt; is a podcast by Michael Kennedy, a Python Software Foundation Fellow and the host of Python Bytes podcast too. In Talk Python to Me, Kennedy interviews Pythonistas in the industry about a variety of topics.&lt;/p&gt;
&lt;h2&gt;Hidden Figures of Python&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://pypodcats.live/&quot;&gt;Hidden Figures of Python&lt;/a&gt; by Cheuk Ting Ho (a developer advocate and data scientist), Georgi Ker (a Python Software Foundation Fellow), Mariatta Wijaya (Python core developer) and Tereza Iofciu (co-organizer of PyLadies Hamburg and a member of the Python Software Foundation Code of Conduct and Diversity &amp;amp; Inclusion working groups) is the newest podcast on this list as it started just before the holidays last month.&lt;/p&gt;
&lt;p&gt;The podcast focuses on highlighting the voices of Python community members from underrepresented groups. It&#39;s a wonderful addition to the existing podcast offering.&lt;/p&gt;
&lt;h2&gt;Python Bytes&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://pythonbytes.fm/&quot;&gt;Python Bytes&lt;/a&gt; by Michael Kennedy and Brian Okken (a Python podcaster, author and educator) is a Python news podcast with ~30 minute episodes where Michael and Brian discuss what happens in the development ecosystem.&lt;/p&gt;
&lt;h2&gt;Python People&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://pythonpeople.fm/&quot;&gt;Python People&lt;/a&gt; is another podcast hosted by Brian Okken. In this podcast, Brian sits down with people from the Python community to discuss the human side of software development, focusing more on the guests&#39; stories than the technology.&lt;/p&gt;
&lt;h2&gt;Python Test&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://podcast.pythontest.com/&quot;&gt;Python Test&lt;/a&gt; finishes the trio of Brian Okken&#39;s podcasts on this list. As the name implies, this podcast focuses on testing Python code.&lt;/p&gt;
&lt;h2&gt;Django Chat&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://djangochat.com/&quot;&gt;Django Chat&lt;/a&gt; is a Django-focused podcast by William Vincent and Carlton Gibson. William is a former board member of Django Software Foundation, an author and a podcast host and Carlton is a Django core developer and a former Django Fellow. Together with their guests, they discuss Django the framework and the community activities around it.&lt;/p&gt;
&lt;h2&gt;Django Riffs&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://djangoriffs.com/&quot;&gt;Django Riffs&lt;/a&gt; by Matt Layman is an educational podcast that helps people get started with developing websites and web applications with Django. It&#39;s a great companion to the Django tutorial if you&#39;re looking for some extra guidance when you&#39;re learning.&lt;/p&gt;
&lt;h2&gt;Sad Python Girls Club&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://www.podchaser.com/podcasts/sad-python-girls-club-4703498&quot;&gt;Sad Python Girls Club&lt;/a&gt; is a podcast by Luciana Abud and Dawn Wages who work at Microsoft and share insights into Python world from the VS Code Python team.&lt;/p&gt;
&lt;h2&gt;Django Brew&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://www.djangobrew.com/&quot;&gt;Django Brew&lt;/a&gt; started in March 2024 and is a &amp;quot;fun, caffeine-powered podcast about the Django web framework by Adam Hill and Sangeeta Jadoonanan!&amp;quot; Adam and Sangeeta are both Python developers&lt;/p&gt;
&lt;h2&gt;PyBites&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://www.pybitespodcast.com/&quot;&gt;PyBites&lt;/a&gt; by Bob Belderbos and Julian Sequeira is a podcast about Python development, career and mindset skills. They bring in regular guests from the Python community to discuss various topics. The podcast is focused on people, their stories and careers.&lt;/p&gt;

		</content>
	</entry>
	
	<entry>
		<title>from turku import archipylago</title>
		<link href="https://archipylago.dev/blog/from-turku-import-archipylago/"/>
		<updated>2023-12-01T00:00:00Z</updated>
		<id>https://archipylago.dev/blog/from-turku-import-archipylago/</id>
		<content type="html">
		 &lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;from turku import archipylago

print(f&#39;Hello {archipylago.community}&#39;)
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Hi there, I&#39;m &lt;a href=&quot;https://hamatti.org/&quot;&gt;Juhis&lt;/a&gt;. I&#39;d like to tell you about our new community.&lt;/p&gt;
&lt;p&gt;The first tech conference I ever attended was PyCon Finland right here in Turku in 2011. I was a second year computer science student and the conference was conveniently organized at the campus and the student ticket was cheap. I listened to &lt;a href=&quot;https://pyvideo.org/events/pycon-finland-2011.html&quot;&gt;a couple of talks&lt;/a&gt; and got a cool conference badge to take home.&lt;/p&gt;
&lt;p&gt;The &lt;a href=&quot;https://www.youtube.com/watch?v=Yi4uWzF6-Ug&quot;&gt;first tech conference talk&lt;/a&gt; I gave was few years later in PyCon Finland 2016. Ever since I&#39;ve traveled around Europe attending and speaking at various Python meetups and conferences: Helsinki, Stockholm, Copenhagen, Tallinn, Berlin, Prague, Ostrava and Amsterdam to name a few.&lt;/p&gt;
&lt;p&gt;I would say Python community is where my heart is and where I feel most at home. Now it&#39;s time for to start a new Python community here in Turku.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Archipylago&lt;/strong&gt;, a play on the words archipelago and Python, is a developer community where we organize monthly events: meetups, sprints and casual gatherings. We want to foster a welcoming community for both beginners and experienced developers alike. That&#39;s always been a guiding idea in all the communities I&#39;ve ended up building.&lt;/p&gt;
&lt;p&gt;I&#39;m grateful that Dan joined on the idea, came up with the fantastic name and is part of the team getting this community going.&lt;/p&gt;
&lt;p&gt;Over the years, Turku has had wonderful Python communities and activities from aforementioned PyCon Finland to meetups organized by &lt;a href=&quot;https://www.pythonturku.fi/en/&quot;&gt;Python Turku&lt;/a&gt; and most recently &lt;a href=&quot;https://meetabit.com/communities/turku-py&quot;&gt;Turku.py&lt;/a&gt;. We&#39;re building on top of that and hope that people who&#39;ve been active in those communities in the past will join us.&lt;/p&gt;
&lt;h2&gt;Our plans&lt;/h2&gt;
&lt;p&gt;We are starting with 8 main events for 2024 with additional social gatherings sprinkled in. From there, we see where the community takes us.&lt;/p&gt;
&lt;p&gt;The first draft of &lt;strong&gt;2024 calendar&lt;/strong&gt; looks like this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;January: meetup&lt;/li&gt;
&lt;li&gt;February: sprint&lt;/li&gt;
&lt;li&gt;March: meetup&lt;/li&gt;
&lt;li&gt;April: sprint&lt;/li&gt;
&lt;li&gt;&lt;em&gt;May through August: summer break&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;September: meetup&lt;/li&gt;
&lt;li&gt;October: sprint&lt;/li&gt;
&lt;li&gt;November: meetup&lt;/li&gt;
&lt;li&gt;December: sprint&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This means 4 meetups and 4 sprints. But nothing is set to stone yet and we do want to get the community involved in organizing these things.&lt;/p&gt;
&lt;p&gt;For &lt;strong&gt;meetups&lt;/strong&gt;, we follow the classic meetup style: an evening event with a 2-3 talks about Python and related topics, hosted at different company offices and time for chatting and making new friends.&lt;/p&gt;
&lt;p&gt;For &lt;strong&gt;sprints&lt;/strong&gt;, we are organizing hands-on &amp;quot;bring your own laptop&amp;quot; style events, possibly on Saturdays where we either go through some workshops, work on open source projects or take a look at new tech or library and hack away together.&lt;/p&gt;
&lt;p&gt;For &lt;strong&gt;social gatherings&lt;/strong&gt;, we&#39;ll organize something where we leave laptops home and get together for afterworks, lunches, and so on where there&#39;s no organized and scheduled program but a way for the people in the community to get to know each other.&lt;/p&gt;
&lt;p&gt;We would be happy to hear your thoughts on these plans.&lt;/p&gt;
&lt;h2&gt;Join us&lt;/h2&gt;
&lt;p&gt;If you&#39;re &lt;strong&gt;a developer&lt;/strong&gt; interested in Python, join us in &lt;a href=&quot;https://archipylago.dev/discord&quot;&gt;TurkuDev discord&#39;s archipylago channels&lt;/a&gt; and register in &lt;a href=&quot;https://meetabit.com/communities/archipylago&quot;&gt;Meetabit&lt;/a&gt; to make sure you don&#39;t miss out when we start sharing information of the upcoming events.&lt;/p&gt;
&lt;p&gt;If you work in &lt;strong&gt;a company&lt;/strong&gt; that uses Python, how about you host our meetup? Get in touch either in Discord or via email (juhamattisantala at &lt;a href=&quot;http://gmail.com/&quot;&gt;gmail.com&lt;/a&gt;) and let&#39;s chat!&lt;/p&gt;
&lt;p&gt;And if you&#39;d like to &lt;strong&gt;share&lt;/strong&gt; something in an upcoming meetup or sprint, get in touch too! You don&#39;t need to be an expert presenter or a seasoned senior developer: everyone&#39;s welcome and we can help you with your presentation too.&lt;/p&gt;
&lt;p&gt;We are part of a larger developer community collective under the umbrella of &lt;strong&gt;TurkuDev&lt;/strong&gt; together with our friends &lt;a href=&quot;https://meetabit.com/communities/aurajoki-overflow&quot;&gt;Aurajoki Overflow&lt;/a&gt;, &lt;a href=&quot;https://turkufrontend.fi/&quot;&gt;Turku ♥ Frontend&lt;/a&gt; and &lt;a href=&quot;https://www.meetup.com/turku-wordpress-meetup/&quot;&gt;Turku WordPress meetup&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Together, let&#39;s make this a great Python community.&lt;/p&gt;
&lt;h2&gt;PS. We are missing a logo&lt;/h2&gt;
&lt;p&gt;If there are any graphically talented individuals in our community, we&#39;re looking for a logo. In our vision, the logo of archipylago would be a long snake, kinda like a sea monster, that dips in and out of the water with the words &amp;quot;archi&amp;quot;, &amp;quot;py&amp;quot; and &amp;quot;lago&amp;quot; on top of its over-the-water body parts.&lt;/p&gt;
&lt;p&gt;Before we go out and buy one, we&#39;d love to see if anyone in the community would like to contribute and leave their mark in our shared future history.&lt;/p&gt;

		</content>
	</entry>
</feed>
