<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.8.5">Jekyll</generator><link href="/feed.xml" rel="self" type="application/atom+xml" /><link href="/" rel="alternate" type="text/html" /><updated>2020-03-07T21:45:11+00:00</updated><id>/feed.xml</id><title type="html">Kojo Idrissa ONLINE</title><subtitle>The (mostly) Software Engineering Adventures of Kojo Idrissa
</subtitle><entry><title type="html">A Beginner’s Guide to Post Conference Depression</title><link href="/conferences/community/pycon%20africa/noramgt/2019/08/11/post_conference_depression.html" rel="alternate" type="text/html" title="A Beginner's Guide to Post Conference Depression" /><published>2019-08-11T16:22:15+00:00</published><updated>2019-08-11T16:22:15+00:00</updated><id>/conferences/community/pycon%20africa/noramgt/2019/08/11/post_conference_depression</id><content type="html" xml:base="/conferences/community/pycon%20africa/noramgt/2019/08/11/post_conference_depression.html">&lt;p&gt;One thing I noticed at &lt;a href=&quot;https://africa.pycon.org/&quot;&gt;PyCon Africa&lt;/a&gt; was this seemed to be the first tech conference for a lot of the people I spoke to. As such, I realized folks may not be ready for the VERY real “post-conference depression” that often sets in. So, let me explain and try to offer some advice.&lt;/p&gt;

&lt;h1 id=&quot;what-is-this&quot;&gt;What Is This?&lt;/h1&gt;
&lt;p&gt;Post conference depression is the let down or sadness that often happens JUST after a conference. You’ve spent a few days in one place with lots of people focused on the same thing. There’s a lot of shared excitement, probably some social events, and you’re not the ONLY person interested in Python (it happens at other events too, but I’m talking about a PyCon here). You’ve made new friends and had a great time!&lt;/p&gt;

&lt;p&gt;But then, it ends. No more shared excitement. You go home and so do your new friends. And you feel sad. Partially because you miss your new friends, but also because you miss the energy of so many people being passionate about the same thing in the same place. You might feel deflated or tired, like you’ve lost all your energy. Your “normal” life might seem boring in comparison.&lt;/p&gt;

&lt;p&gt;Don’t feel BAD about this: it’s a real thing, and it’s NOT just happening to you. It happens, in varying degrees, to MOST of us, myself included.&lt;/p&gt;

&lt;h1 id=&quot;what-to-do&quot;&gt;What To Do?&lt;/h1&gt;
&lt;p&gt;Here’s where I become LESS helpful: I don’t do a great job of dealing with this myself. But I’m working on it. Here are some things I’ve heard people suggest, as well as things I’m planning to try after PyCon Africa.&lt;/p&gt;

&lt;h2 id=&quot;self-care&quot;&gt;Self Care&lt;/h2&gt;
&lt;p&gt;During these times, it’s more important than ever to make sure you take care of yourself. That means things like eating well, getting enough sleep (a conference WILL make you tired), staying hydrated and exercising. Even if it’s just going for a slightly longer walk, keeping your body moving can help your mood. At &lt;a href=&quot;https://2019.djangocon.us/&quot;&gt;DjangoCon US&lt;/a&gt;, I’m always reminding people to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;#SelfCareSprint&lt;/code&gt;. These are like the Development Sprints we had at PyCon Africa Saturday, but instead of code, they focus on you taking care of yourself.&lt;/p&gt;

&lt;p&gt;Besides the ways I mentioned above, you can also do things like making time to connect with local friends and family. You can also make sure you stay in touch with new friends you’ve made. Maintaining quality relationships is important for your mental and physical health. You can also meditate. It doesn’t have to be anything fancy, just find something that works for you.&lt;/p&gt;

&lt;p&gt;The key point is: give yourself some time and space to be kind to YOURSELF. You’re the only you you’ve got.&lt;/p&gt;

&lt;h2 id=&quot;practiceapply-what-youve-learned&quot;&gt;Practice/Apply What You’ve Learned&lt;/h2&gt;
&lt;p&gt;Part of the excitement of a conference is all the new information you’ve taken in, or all the things you’ve seen and been inspired to try. And there can be a bit of a letdown when that flow of new information stops. I’m going to try to balance that letdown by ACTIVELY WORKING on some things I was inspired to do. I’m not 100% sure exactly what form those things will take, but I know Machine Learning is an area I’ve been meaning to get better with for awhile. That, and improving my general data science skills feels very important. I came to Africa and saw how strong my cousins are, and that these areas are growing, so I don’t want to be left out! But, it will also give me more things to talk about next time I’m in Africa. So, I’m working on figuring out exactly what I want to work on going forward.&lt;/p&gt;

&lt;h2 id=&quot;act-on-your-inspiration&quot;&gt;Act On Your Inspiration&lt;/h2&gt;
&lt;p&gt;Often, people will go to their first conference and be inspired to work on proposing a talk of their own. I know I’ve got a few new talk ideas now, as well as some other general areas of research I want to look into after PyCon Africa. I doubt I’m the only one.&lt;/p&gt;

&lt;h1 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h1&gt;
&lt;p&gt;I’m sure there are other useful suggestions, but these are two that immediately spring to mind. For myself, I’m going into a “busy conference season”, so I’ll have a lot of other things to keep me busy, and &lt;strong&gt;I’ll&lt;/strong&gt; be able to balance SOME of the post-conference depression by just GOING to another conference. But it can’t last forever, so I’ll have to deal with the letdown at some point. I’m trying to get better at it, and I hope these ideas will help others do the same, as well as let first-time conference attendees know they’re NOT going crazy. Post conference depression is a REAL thing.&lt;/p&gt;

&lt;p&gt;But we an get through it and come out the other side STRONGER.&lt;/p&gt;</content><author><name></name></author><summary type="html">One thing I noticed at PyCon Africa was this seemed to be the first tech conference for a lot of the people I spoke to. As such, I realized folks may not be ready for the VERY real “post-conference depression” that often sets in. So, let me explain and try to offer some advice.</summary></entry><entry><title type="html">PyCon Africa: A Brief Retrospective</title><link href="/conferences/noramgt/pycon%20africa/2019/08/10/PyConAfrica.html" rel="alternate" type="text/html" title="PyCon Africa: A Brief Retrospective" /><published>2019-08-10T18:43:16+00:00</published><updated>2019-08-10T18:43:16+00:00</updated><id>/conferences/noramgt/pycon%20africa/2019/08/10/PyConAfrica</id><content type="html" xml:base="/conferences/noramgt/pycon%20africa/2019/08/10/PyConAfrica.html">&lt;p&gt;As I start to type this, the FIRST EVER &lt;a href=&quot;https://africa.pycon.org/&quot;&gt;PyCon Africa&lt;/a&gt; has ended. Today was the final day, with a couple of tutorials and the Development Sprints we’ve come to expect at the end of things with “PyCon” in their name. I was fortunate enough to be invited to be a keynote speaker. &lt;img src=&quot;/assets/PyConAfrica_keynotes.png&quot; alt=&quot;PyCon Africa 2019 Keynote Speakers&quot; /&gt; I’d also submitted a tutorial, &lt;a href=&quot;https://github.com/kojoidrissa/pyconafrica_tutorial&quot;&gt;&lt;em&gt;A Junior Developer’s Software Engineering Tutorial&lt;/em&gt;&lt;/a&gt;, which was accepted, so I gave that was well.&lt;/p&gt;

&lt;h2 id=&quot;the-conference&quot;&gt;The Conference&lt;/h2&gt;
&lt;p&gt;Overall, the conference was fantastic. Delayed jetlag caused me to miss the first part of the International Vistor’s Tour Tuesday, but I caught up with the group at lunch. I gave my tutorial Wednesday morning and spent the rest of the day in the “Hallway Track”. &lt;em&gt;Note: I should probabl write a blog post about the idea of a hallway track, as it was new to several people who hadn’t attended a PyAnythingCon before. I know we’re not the ONLY one’s how do that, but still…&lt;/em&gt; Thursday and Friday were the “main” conference days, full of insightful, powerful and technically enlightening talks. Each day was bookended by an opening and closing keynote. I was the closing keynote on Friday, followed by ⚡️Talks (I was SURE not to go over my time!) and a “Speakers and others” social event. With outdoor karoke!  Saturday was the traditional “Development Sprints” day, along with a few more tutorials.&lt;/p&gt;

&lt;p&gt;I tended to optimize for the Hallway Track. I know several African developers, but this was an opportunity to meet more, as well as to have extended conversations with folks I already knew, or had met earlier during my time here. As I presented twice, there were lots more folks who saw me than I got to see, so some had questions or just wanted to chat a bit. As a result, I leave the conference tired (personal interactions require energy!) but feeling quite fulfilled (personal interactions are rewarding!). I got to meet new people, learn about their unique local strengths &amp;amp; challenges, share my limited wisdom and gain new insights.&lt;/p&gt;

&lt;h2 id=&quot;accra--ghana&quot;&gt;Accra &amp;amp; Ghana&lt;/h2&gt;
&lt;p&gt;First, please say “uh-CRAH” or “a-CRAH”, not “OCK-rah”/”OCK-ra” as most of us Americans do.&lt;/p&gt;

&lt;p&gt;In short, it’s been fantastic. Although I didn’t get to see huge amounts of the city (I was primarily focused on the conference and it’s attendees), I’ve already decided to come back. I’ll be ‘touristy’ then. Everyone was super friendly, from folks at the hotel (this is the third Marriot I’ve been to this year, in the 3rd country and THESE folks are the CLEAR winners) to Uber &lt;em&gt;(yeah, I know…)&lt;/em&gt; drivers and people at the electronics store in the mall. And while I didn’t get OUT of the city, I did meet people FROM other Ghanaian cities. All just as friendly. I &lt;strong&gt;may&lt;/strong&gt; have a ‘cheat code’, since I’ve got an Akan/Twi name (which caused a lot of confusion/amusement), but I’ve found the basic rules of international travel apply: a little basic politeness vocabulary goes a LONG way.&lt;/p&gt;

&lt;p&gt;Also, the weather has been shockingly nice. We’re 5 degrees north of the equator, in August: summer. I expected it to be QUITE hot. But the temps have been pretty consistently in the low 70s/low 80s (22-28 C). It FEELS like San Diego, honestly. So, that’s been a pleasant surprise.&lt;/p&gt;

&lt;h2 id=&quot;any-problems&quot;&gt;Any Problems?&lt;/h2&gt;
&lt;p&gt;As it was the first ever PyCon for the entire African continent, there were a few small bumps. But that’s to be expected. We’re coming up on Year 5 of &lt;a href=&quot;https://www.defna.org/&quot;&gt;DEFNA&lt;/a&gt;-organized &lt;a href=&quot;https://2019.djangocon.us/&quot;&gt;DjangoCon USs&lt;/a&gt; and we still hit the occasional bump. And MOST of that happens in/around ONE country. So, I’d have to say no, no real problems. The infrastructure in Africa is less developed than in the US or Europe, but that’s not AFRICA’S fault. Don’t get me started on colonization…&lt;/p&gt;

&lt;p&gt;In conclusion, it’s been a great conference and a great trip.&lt;/p&gt;</content><author><name></name></author><summary type="html">As I start to type this, the FIRST EVER PyCon Africa has ended. Today was the final day, with a couple of tutorials and the Development Sprints we’ve come to expect at the end of things with “PyCon” in their name. I was fortunate enough to be invited to be a keynote speaker. I’d also submitted a tutorial, A Junior Developer’s Software Engineering Tutorial, which was accepted, so I gave that was well.</summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="/assets/PyConAfrica_keynotes.png" /><media:content medium="image" url="/assets/PyConAfrica_keynotes.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Feature Flags: Part 1</title><link href="/software%20engineering/2019/06/29/feature_flags_part_1.html" rel="alternate" type="text/html" title="Feature Flags: Part 1" /><published>2019-06-29T21:33:56+00:00</published><updated>2019-06-29T21:33:56+00:00</updated><id>/software%20engineering/2019/06/29/feature_flags_part_1</id><content type="html" xml:base="/software%20engineering/2019/06/29/feature_flags_part_1.html">&lt;p&gt;I’ve seen a lot more information about &lt;a href=&quot;https://en.wikipedia.org/wiki/Feature_toggle&quot;&gt;Feature Flags&lt;/a&gt; recently, so I decided to learn more about them and look at some related products.&lt;/p&gt;

&lt;h1 id=&quot;feature-flags-what--why&quot;&gt;Feature Flags: What &amp;amp; Why?&lt;/h1&gt;
&lt;p&gt;First, a little context. In a nutshell, Feature Flags (which seems to be the name most people use to describe this) are used to turn a specific feature (or section of code) ‘on’ or ‘off’.&lt;/p&gt;

&lt;p&gt;This is especially valuable if you’re trying to work along the Continuous Integration/Development/Deployment (CI/CD) spectrum. In this context, you want new code integrated into your core code base as early as possible, not living in a separate feature branch.  As useful as feature branches are, the ‘richer’ that branch becomes, the larger/more complex it’s eventual integration into your main code base becomes. And if you’re trying to work along the CI/CD spectrum, you want to &lt;em&gt;minimize the size&lt;/em&gt; &amp;amp; complexity of these merges or re-integrations by &lt;em&gt;maximizing their frequency&lt;/em&gt;. That’s where the ‘Continuous’ part comes from: that’s the goal.&lt;/p&gt;

&lt;p&gt;So, instead of having Work In Progress (WIP) branches for each feature, you can work on those features IN your main code base, but put them behind feature flags that you can turn on/off. This allows you to develop new features WHILE you also continuously integrate/deliver/deploy your code.&lt;/p&gt;

&lt;p&gt;Another potential use case is where you’re less concerned about CI/CD, but don’t want the hassle of maintaining multiple versions of your software for different clients/environments/situations. In this case, you can have a single code base, with feature flags to differentiate between the various scenarios.&lt;/p&gt;

&lt;p&gt;A third potential use case would be related to testing. Say you have functional tests you want to run on different versions of your software. You could try to use feature flags to decide which tests run against a specific version of your software. That’s something I may be trying to figure out in the near future, so I’ll have to get back to you on that.&lt;/p&gt;

&lt;h1 id=&quot;feature-flags-how&quot;&gt;Feature Flags: How?&lt;/h1&gt;
&lt;p&gt;That all sounds GREAT in theory. The problem comes in how you make it work. As your scenarios become more complex, managing the flags becomes more problematic. You can try to “roll your own” solution, but the complexities there are what often cause dev teams to NOT try feature flags.&lt;/p&gt;

&lt;p&gt;The GOOD news: there are companies that have worked this out for you. In my next post, I’m going to look at one of these companies, &lt;a href=&quot;https://launchdarkly.com/&quot;&gt;Launch Darkly&lt;/a&gt;.  I’m going to try their product and see if I can get it to work in a simple example.🤞🏾&lt;/p&gt;</content><author><name></name></author><summary type="html">I’ve seen a lot more information about Feature Flags recently, so I decided to learn more about them and look at some related products.</summary></entry><entry><title type="html">Failure, Recovery, &amp;amp; #SelfCareSprint</title><link href="/conferences/noramgt/2019/05/01/fail_recover_selfcare.html" rel="alternate" type="text/html" title="Failure, Recovery, &amp; #SelfCareSprint" /><published>2019-05-01T19:17:46+00:00</published><updated>2019-05-01T19:17:46+00:00</updated><id>/conferences/noramgt/2019/05/01/fail_recover_selfcare</id><content type="html" xml:base="/conferences/noramgt/2019/05/01/fail_recover_selfcare.html">&lt;p&gt;So, my &lt;a href=&quot;/code%20challenge/2019/04/02/day1.html&quot;&gt;April Code Challenge&lt;/a&gt; turned into a fail. I ended up needing to shop for a new(to me) car AND deal w/ some fraudulent activity on my bank account. Those two surprises, combined with two April trips that were already scheduled (&lt;a href=&quot;https://www.pytexas.org/2019/&quot;&gt;PyTexas&lt;/a&gt; and the first ever &lt;a href=&quot;https://overwatchleague.com/en-us/news/22940052/grav-bag-home-fuel-advantage&quot;&gt;Overwatch Leauge Home Game&lt;/a&gt;…BOTH of which were awesome) AND a bunch of other things led to…no time for a code challenge. 😭&lt;/p&gt;

&lt;p&gt;One thing that DID come out of my unexpected April was a reminder about how important a #SelfCareSprint can be.  I am, among other things, the DjangoCon US 2018 Sprints Chair. During the DCUS 2018 Development Sprints, I came up with the term “&lt;a href=&quot;https://twitter.com/hashtag/SelfCareSprint?src=hash&amp;amp;lang=en&quot;&gt;Self Care Sprint&lt;/a&gt;”. This is you focusing on activities to help you rest/recover from any type of exertion. It seemed VERY relevant near the end of a conference, as people (organizers and attendees) are often worn out from all the activity. It seems to have caught on, even after/outside of DCUS. (&lt;em&gt;NOTE: I’m sure other folks have used this term somewhere. I just started emphasisizing it in my role as the DCUS Sprints Chair, to remind folks to take care of themselves.&lt;/em&gt;)&lt;/p&gt;

&lt;p&gt;In US culture, we often downplay the importance of rest, recovery, or taking care of ourselves. But there’s one &lt;strong&gt;key&lt;/strong&gt; thing that I kept repeating to folks as I TOLD them about the Self Care Sprint. I think it bears repeating, especially as a lot of us get ready for PyCon US 2019:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Self Care Sprints make EVERY OTHER Sprint sustainable.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;As I’ve tried to share this message with other folks, I’m realizing I ALSO need to heed it myself. The last few months have been full of ups and downs and more than one unexpected twist. But it’s VERY hard to deal with those, or even the normal, expected challenges in life, if you’re worn out. So, if you want to do more IN TOTAL, consider making regular time to DO LESS in the short term, and give yourself plenty of time to rest and recover.&lt;/p&gt;

&lt;p&gt;If you’re going to PyCon, that might mean not trying to go to EVERY talk or event or function, depending on your personal energy reserves and how well you deal with crowds. PyCon is HUGE and even I &lt;em&gt;(bigger than most people, fairly outgoing when it’s needed, and with a decent sized group of friends at these things)&lt;/em&gt; can get overwhelmed. So, there’s no shame in feeling like you need some ‘alone time’ or being overwhelmed. Many software developers are a bit on the introverted side anyway, so big crowds can be tough for a lot of us. If this is your first PyCon US or you’re here alone, it can be even more challenging. Don’t be afraid to take some time for yourself.&lt;/p&gt;

&lt;p&gt;I’ll be around at PyCon this year. I’m pretty easy to spot. If you found this helpful, feel free to say hi.
🙋🏾‍♂️&lt;/p&gt;</content><author><name></name></author><summary type="html">So, my April Code Challenge turned into a fail. I ended up needing to shop for a new(to me) car AND deal w/ some fraudulent activity on my bank account. Those two surprises, combined with two April trips that were already scheduled (PyTexas and the first ever Overwatch Leauge Home Game…BOTH of which were awesome) AND a bunch of other things led to…no time for a code challenge. 😭</summary></entry><entry><title type="html">2019-04 Github Challenge: Off Track Already!</title><link href="/code%20challenge/2019/04/05/day4.html" rel="alternate" type="text/html" title="2019-04 Github Challenge: Off Track Already!" /><published>2019-04-05T00:27:16+00:00</published><updated>2019-04-05T00:27:16+00:00</updated><id>/code%20challenge/2019/04/05/day4</id><content type="html" xml:base="/code%20challenge/2019/04/05/day4.html">&lt;p&gt;So. April 2nd &amp;amp; 3rd have come and gone.
🤦🏾‍♂️&lt;/p&gt;

&lt;p&gt;Getting back on track. I’m the Orientation, ⚡️Talk and Sprints Chair for DjangoCon US. So I’ve got some blog posts about that coming up.&lt;/p&gt;

&lt;p&gt;But April ended up being busier than expected.&lt;/p&gt;</content><author><name></name></author><summary type="html">So. April 2nd &amp;amp; 3rd have come and gone. 🤦🏾‍♂️</summary></entry><entry><title type="html">2019-04 Github Challenge</title><link href="/code%20challenge/2019/04/02/day1.html" rel="alternate" type="text/html" title="2019-04 Github Challenge" /><published>2019-04-02T00:46:36+00:00</published><updated>2019-04-02T00:46:36+00:00</updated><id>/code%20challenge/2019/04/02/day1</id><content type="html" xml:base="/code%20challenge/2019/04/02/day1.html">&lt;p&gt;I picked April for another 30 Day Github challenge. I want to spend more time coding and blogging. I’ve also got some things going on that are going to require more writing/blogging on my behalf, so now’s a great time.&lt;/p&gt;

&lt;h2 id=&quot;rules&quot;&gt;Rules&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;I’ll push code or a blog post (my blog is hosted on Github pages) every day for the month of April.&lt;/li&gt;
  &lt;li&gt;That’s it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I try to keep things simple.&lt;/p&gt;

&lt;p&gt;But now, I’m getting an error when I try to run my Jekyll site locally. Which means I can’t really PREVIEW these posts. So, THAT’S a thing I’ll have to deal with. 🤦🏾‍♂️&lt;/p&gt;

&lt;h2 id=&quot;update&quot;&gt;Update&lt;/h2&gt;
&lt;p&gt;Figured out THAT issue (running &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;bundle exec jekyll serve&lt;/code&gt; from the wrong directory), but NOW this newest page isn’t showing up locally.&lt;/p&gt;

&lt;h2 id=&quot;update-2&quot;&gt;Update 2&lt;/h2&gt;
&lt;p&gt;I’d named the file incorrectly. &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;-&lt;/code&gt; &amp;lt;&amp;gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;_&lt;/code&gt; kids at home!&lt;/p&gt;

&lt;p&gt;Ok, that’s MORE than enough excitement for today!&lt;/p&gt;</content><author><name></name></author><summary type="html">I picked April for another 30 Day Github challenge. I want to spend more time coding and blogging. I’ve also got some things going on that are going to require more writing/blogging on my behalf, so now’s a great time.</summary></entry><entry><title type="html">PythonDayMX18: Follow Up</title><link href="/conferences/noramgt/2018/12/07/PythonDayMX18_followup.html" rel="alternate" type="text/html" title="PythonDayMX18: Follow Up" /><published>2018-12-07T19:24:49+00:00</published><updated>2018-12-07T19:24:49+00:00</updated><id>/conferences/noramgt/2018/12/07/PythonDayMX18_followup</id><content type="html" xml:base="/conferences/noramgt/2018/12/07/PythonDayMX18_followup.html">&lt;p&gt;I spoke at &lt;a href=&quot;http://pythonday.mx/&quot;&gt;Python Day Mexico 2018&lt;/a&gt; last Saturday. During the Q&amp;amp;A after my talk &lt;em&gt;(A Junior Developer’s Guide to Software Engineering)&lt;/em&gt;, I was NOT satisfied with a couple of answers I gave. And I’ve thought about them a bit, so here are my updated responses. Hopefully &lt;a href=&quot;https://twitter.com/mayela0x14&quot;&gt;Maricela&lt;/a&gt; or someone from &lt;a href=&quot;https://twitter.com/pythondaymx/&quot;&gt;PythonDayMX&lt;/a&gt; will be able to share this with folks who attended my talk.&lt;/p&gt;

&lt;h2 id=&quot;which-is-better-to-use-containers-or-vms-virtual-machines&quot;&gt;Which is better to use, containers or VMs (Virtual Machines)?&lt;/h2&gt;
&lt;p&gt;One of the things I discuss in my talk is Dependency Management and Deployment. I mentioned 3 technologies but focused mostly on containers and VMs. The question of which is better came up. My answer felt a bit vague and not super useful.&lt;/p&gt;

&lt;p&gt;“It depends on what you’re trying to do &lt;em&gt;(true, but not super helpful)&lt;/em&gt;, containers are more ‘lightweight’ than VMs &lt;em&gt;(again, true, but WTF does that even mean?)&lt;/em&gt; and containers are ‘the new hotness’”.&lt;/p&gt;

&lt;p&gt;I think a more useful answer would focus on the main differences between containers and VMs. I’m not gonna be “super-technical” here, but the main difference is a container will (or can) ONLY contain the software needed to run your application. Anything ELSE it needs are supplied by the underlying host OS. A VM, on the other hand, is a LITERAL virutual version of an ENTIRE computer. So, it’ll include an OS (and all the software that comes with it), as well as the software you need to run your application. There are &lt;a href=&quot;https://www.google.com/search?q=vms+vs+containers&amp;amp;source=lnms&amp;amp;tbm=isch&amp;amp;sa=X&amp;amp;ved=0ahUKEwjWqOnx74nfAhVDhq0KHWWOBwsQ_AUIDigB&amp;amp;biw=1439&amp;amp;bih=798&quot;&gt;diagrams on the internet&lt;/a&gt; that show a comparative picture. But in my mind, the key difference is that a container ONLY needs your specific, required software. Yes, there ARE containers that have an OS, but you don’t always need those.&lt;/p&gt;

&lt;p&gt;So, if you’re deploying a simple Python application, with no external libraries, a container for that app could have JUST Python. A VM for the same app would be, basically, a virtual computer (including the OS) that also has Python installed. That’s a bit of an oversimplification, but you can see how the 2nd bundle of software is going to be larger or “heavier” or more resource intensive. One as a copy of the OS, one doesn’t.&lt;/p&gt;

&lt;p&gt;I hope that’s helpful. It’s not a master class on the topic, but I feel it’s more useful than my original answer. The “it depends” part still stands, but I think the extra info on what separates the two items provides more info for deciding what you do or don’t need.&lt;/p&gt;

&lt;h2 id=&quot;gnu-screen&quot;&gt;GNU Screen&lt;/h2&gt;
&lt;p&gt;Another topic was utilities Jr. Devs could benefit from knowing or using. GNU Screen was one of them. Turns out, I’m NOT using it for it’s MAIN benefit! I’m using it as a convenient window manager thingy on my local machine so I don’t have to add another terminal tab. But one of the MAIN benefits of Screen is for connecting to remote machines (usually via SSH).  So, if you’re connected, then use Screen to create another session, if your SSH connection gets disrupted, any processes you had running will still continue. And you can reconnect to that session and after you re-establish your connection. This was much more critical when internet connections were slower and less reliable, but that’s still the case sometimes.&lt;/p&gt;

&lt;p&gt;There’s an excellent article that goes into much more detail about Screen on &lt;a href=&quot;https://opensource.com/article/17/3/introduction-gnu-screen&quot;&gt;Opensource.com&lt;/a&gt;, so I won’t go into too much more detail.&lt;/p&gt;

&lt;h2 id=&quot;in-conclusion&quot;&gt;In Conclusion&lt;/h2&gt;
&lt;p&gt;I may try to provide follow-ups to other talks I give in the future. I always include my &lt;a href=&quot;https://twitter.com/Transition&quot;&gt;Twitter handle&lt;/a&gt; on my slides, so people can reach out if they want to. But this may be more direct. Especially if &lt;strong&gt;I&lt;/strong&gt; want to add to my comments.&lt;/p&gt;</content><author><name></name></author><summary type="html">I spoke at Python Day Mexico 2018 last Saturday. During the Q&amp;amp;A after my talk (A Junior Developer’s Guide to Software Engineering), I was NOT satisfied with a couple of answers I gave. And I’ve thought about them a bit, so here are my updated responses. Hopefully Maricela or someone from PythonDayMX will be able to share this with folks who attended my talk.</summary></entry><entry><title type="html">Kodevember Retrospective: Different From What I Expected</title><link href="/kodevember/retrospective/2018/12/02/kodevember_retrospective.html" rel="alternate" type="text/html" title="Kodevember Retrospective: Different From What I Expected" /><published>2018-12-02T20:53:11+00:00</published><updated>2018-12-02T20:53:11+00:00</updated><id>/kodevember/retrospective/2018/12/02/kodevember_retrospective</id><content type="html" xml:base="/kodevember/retrospective/2018/12/02/kodevember_retrospective.html">&lt;p&gt;So, Kodevember came to halt the week of Thanksgiving. I spent that week preparing for my trip to DC for my aunt’s funeral the following week. I was also trying to figure out the scheduling for that week, since I was already scheduled to be in Mexico at the end of that week (Thur-Sun). And I had things scheduled for the 1st 1/2 of the the week after Thanksgiving, which would have to be moved. So, my week after Thanksgiving looked like this:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;2018-11-25: Fly to DC (Sunday)&lt;/li&gt;
  &lt;li&gt;2018-11-26: Funeral, then up until 5am talking to family&lt;/li&gt;
  &lt;li&gt;2018-11-27: Fly back to Houston&lt;/li&gt;
  &lt;li&gt;2018-11-28: Wednesday is always my busiest day of the week, now combined w/ some rescheduled stuff.&lt;/li&gt;
  &lt;li&gt;2018-11-29: Fly to Mexico City
    &lt;ul&gt;
      &lt;li&gt;Have a bad flight experience on both ends&lt;/li&gt;
      &lt;li&gt;Realize I have a fever when I arrive, probably from an allergy-based sinus infection that’s attempting to take over.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;2018-11-30: Wake up w/ lessened fever, fly to Guadalajara. Fever is gone by the time I get there. Still feel like crap.&lt;/li&gt;
  &lt;li&gt;2018-12-01: Speak at &lt;a href=&quot;http://pythonday.mx/&quot;&gt;PythonDayMX&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;2018-12-02: Fly back to Houston
    &lt;ul&gt;
      &lt;li&gt;Arrive at airport 2 hours early for my 9:50 flight, since I can’t check in online.&lt;/li&gt;
      &lt;li&gt;After getting my boarding passes and going to the gate, I find out my first of two flights is canceled&lt;/li&gt;
      &lt;li&gt;The airline says they “don’t have any more planes” so I won’t be able to make my connecting flight in Mexico City. They don’t expect to have any flights until tomorrow&lt;/li&gt;
      &lt;li&gt;Having had enough of this airline (looking at YOU InterJet), I buy a one-way direct flight to Houston on United that leaves at 13:30 I’m on that flight as I’m typing this.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For those keeping score at home, that’s 5 days of flights over 8 days. The other 3 days were Funeral, Conference Talk, “Busy Day at Home”.  As I was trying to work the various scheduling points out, I KNEW I’d be busy. I did NOT plan on being sick for 1/2 of the week.&lt;/p&gt;

&lt;h2 id=&quot;update&quot;&gt;UPDATE&lt;/h2&gt;
&lt;p&gt;I got home yesterday, took a shower and a nap. Then I woke up, went and got dinner, and went BACK to bed. I’m about to do the same now. We’ll see what I do about coding in December. There’s always something to overcome. It’s tough, but I have to recover &amp;amp; keep pushing forward. As the saying goes: the only way out, is through.&lt;/p&gt;</content><author><name></name></author><summary type="html">So, Kodevember came to halt the week of Thanksgiving. I spent that week preparing for my trip to DC for my aunt’s funeral the following week. I was also trying to figure out the scheduling for that week, since I was already scheduled to be in Mexico at the end of that week (Thur-Sun). And I had things scheduled for the 1st 1/2 of the the week after Thanksgiving, which would have to be moved. So, my week after Thanksgiving looked like this:</summary></entry><entry><title type="html">Kodevember Day 19: Back To Work - Two Gems &amp;amp; a Funeral</title><link href="/kodevember/code%20challenge/2018/11/19/kodevember_19.html" rel="alternate" type="text/html" title="Kodevember Day 19: Back To Work - Two Gems &amp; a Funeral" /><published>2018-11-19T20:38:45+00:00</published><updated>2018-11-19T20:38:45+00:00</updated><id>/kodevember/code%20challenge/2018/11/19/kodevember_19</id><content type="html" xml:base="/kodevember/code%20challenge/2018/11/19/kodevember_19.html">&lt;p&gt;Still no word on when my aunt’s funeral will be. Practically speaking, it seems like it won’t be until after Thanksgiving. But we did have one year with 2 funerals the week OF Thanksgiving. So, that’s been a thing.&lt;/p&gt;

&lt;p&gt;After taking a bit of time off, I decided to tackle the security vulnerability messages I’d been getting from &lt;a href=&quot;https://help.github.com/articles/about-security-alerts-for-vulnerable-dependencies/&quot;&gt;Github&lt;/a&gt; for my blog.&lt;/p&gt;

&lt;p&gt;Turns out, I had 2 packages that were out of date: the core &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;jekyll&lt;/code&gt; gem itself and &lt;a href=&quot;https://github.com/ffi/ffi&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ffi&lt;/code&gt;&lt;/a&gt;, which I hadn’t heard of. It seems to be something Ruby people use.  The instructions for &lt;a href=&quot;https://jekyllrb.com/docs/upgrading/&quot;&gt;upgrading jekyll&lt;/a&gt; worked for &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ffi&lt;/code&gt;, but I got a message that said &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Bundler attempted to update jekyll but its version stayed the same&lt;/code&gt;. I’d initially tried &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;bundle update&lt;/code&gt;, which updated &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ffi&lt;/code&gt; and a &lt;a href=&quot;https://github.com/kojoidrissa/kojoidrissa.github.io/commit/f301444a6c22d6e74095201ec7367ab1896a34ab&quot;&gt;bunch of other things&lt;/a&gt;. I hadn’t updated anything in awhile, so I figured I may as well get everything. But when I got the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;...version stayed the same&lt;/code&gt; message, I figured I’d try the more specific &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;bundle update jekyll&lt;/code&gt; command. Still, no dice.&lt;/p&gt;

&lt;p&gt;UPDATE: Funeral is Monday. Flight tickets purchased. Next week will be a busy week.&lt;/p&gt;

&lt;p&gt;So, I looked at the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Gemfile&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Gemfile.lock&lt;/code&gt; and wondered if I needed to change one of those. They reminded me of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;requirements.txt&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Pipfile.lock&lt;/code&gt; in Python (I still use the former, but am familiar with the later). I don’t ever do anything in Ruby, so I’m not familiar with their infrastructure. Then I found an issue on Github (which I can’t find again) where someone suggested updating the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;jekyll&lt;/code&gt; line in the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Gemfile&lt;/code&gt;, then running &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;bundle update jekyll&lt;/code&gt;. This made sense, as the security warning gave me a message that looked like an updated line IN a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Gemfile&lt;/code&gt;. So, I tried THAT, and &lt;a href=&quot;https://github.com/kojoidrissa/kojoidrissa.github.io/commit/ffe3bfc841d0d0b7df3a8c0f9e75728ff799fb60&quot;&gt;it worked&lt;/a&gt;. Blog infrastructure updated. And I’ve got a little more insight into HOW to keep it updated, as well as some of the motivation (I think) behind &lt;a href=&quot;https://pipenv.readthedocs.io/en/latest/&quot;&gt;Pipenv&lt;/a&gt; and what it’s doing. Which is nice.&lt;/p&gt;

&lt;p&gt;Later peeps!&lt;/p&gt;</content><author><name></name></author><summary type="html">Still no word on when my aunt’s funeral will be. Practically speaking, it seems like it won’t be until after Thanksgiving. But we did have one year with 2 funerals the week OF Thanksgiving. So, that’s been a thing.</summary></entry><entry><title type="html">Kodevember Day 15: Hello Reaper, My Old Companion</title><link href="/kodevember/code%20challenge/death/2018/11/16/kodevember_15.html" rel="alternate" type="text/html" title="Kodevember Day 15: Hello Reaper, My Old Companion" /><published>2018-11-16T05:19:45+00:00</published><updated>2018-11-16T05:19:45+00:00</updated><id>/kodevember/code%20challenge/death/2018/11/16/kodevember_15</id><content type="html" xml:base="/kodevember/code%20challenge/death/2018/11/16/kodevember_15.html">&lt;p&gt;I found out today while eating dinner that my oldest aunt passed away.  Still no word on when services will be.&lt;/p&gt;

&lt;p&gt;This is the 5th Thanksgiving death in the family. It is NOT a great holiday for us.&lt;/p&gt;

&lt;p&gt;We’ll see how things go with Kodevember.&lt;/p&gt;</content><author><name></name></author><summary type="html">I found out today while eating dinner that my oldest aunt passed away. Still no word on when services will be.</summary></entry></feed>