<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Erika</title>
    <description>The latest articles on Forem by Erika (@zolor).</description>
    <link>https://forem.com/zolor</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F10068%2F73cf8e43-92f3-4705-abff-fc9c4d226369.jpg</url>
      <title>Forem: Erika</title>
      <link>https://forem.com/zolor</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/zolor"/>
    <language>en</language>
    <item>
      <title>3 Hacks to become more productive</title>
      <dc:creator>Erika</dc:creator>
      <pubDate>Fri, 26 Feb 2021 12:06:06 +0000</pubDate>
      <link>https://forem.com/zolor/3-hacks-to-become-more-productive-53nd</link>
      <guid>https://forem.com/zolor/3-hacks-to-become-more-productive-53nd</guid>
      <description>&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Use .new links&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Whenever I come up with a new idea and want to write it down as fast as possible I open a new tab and go to &lt;a href="https://doc.new/" rel="noopener noreferrer"&gt;doc.new&lt;/a&gt;&lt;br&gt;
This will bring you to a blank new Google Doc and I can start typing immediately.&lt;br&gt;
Same for when you want to create a new sheets you go to &lt;a href="https://sheet.new/" rel="noopener noreferrer"&gt;sheet.new&lt;/a&gt; to get to a blank spreadsheet and can start working immediately.&lt;br&gt;
Same for forms and slides.&lt;br&gt;
&lt;a href="https://form.new/" rel="noopener noreferrer"&gt;form.new&lt;/a&gt; &lt;a href="https://slide.new/" rel="noopener noreferrer"&gt;slide.new&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Need to create a new github repo? You guessed it! &lt;a href="https://repo.new/" rel="noopener noreferrer"&gt;repo.new&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;New playlist in Spotify? &lt;a href="https://playlist.new/" rel="noopener noreferrer"&gt;playlist.new&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Categorize your meetings&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I use Office 365 for my meetings but I imagine your calendar of choice has a similar option. Whenever you create a meeting, tag them with a category that will color highlight them in your calendar view.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiozx5juao4n4s2swyqh8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiozx5juao4n4s2swyqh8.png" alt="Picture of me categorizing a test meeting, making it pink"&gt;&lt;/a&gt;&lt;br&gt;
I started using categories to highlight the meetings I was running so I quickly saw whenever I had one that I needed to do extra preparations for. I highlight those in Yellow. I use Orange for my 1on1 meetings and that makes them stand out so I get a better overview of my day and can prepare accordingly.&lt;/p&gt;

&lt;p&gt;Plus it looks a lot brighter!&lt;/p&gt;

&lt;p&gt;Before:&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff2qiwj11aid1j4jxd6h1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff2qiwj11aid1j4jxd6h1.png" alt="Before picture of my calendar without tags"&gt;&lt;/a&gt;&lt;br&gt;
After:&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx58ivorxjrmf6o5uj0k4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx58ivorxjrmf6o5uj0k4.png" alt="After picture of my calendar with tags"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Use To do Lists&lt;/strong&gt;&lt;br&gt;
There are several ways to make to-do list.&lt;br&gt;
It's not only a great way to keep track on all your tasks, it also feels great to tick things off and you feel a sense of progress. Breaking things down into smaller to-do's that I can review and update everyday is what keeps me going.&lt;/p&gt;

&lt;p&gt;I recently got my eyes opened for To Do in Office 365. Often tasks will arrive in my mail and there's a setting you can enable that will automatically create a To Do item whenever you flag a mail. If you remove the flag the To Do will update accordingly, and likewise if you check it off in To Do the flag will be removed in your mail box. &lt;strong&gt;Super neat!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bonus!&lt;/strong&gt; It rings a &lt;em&gt;success&lt;/em&gt; sound every time you tick something off. Super addictive!&lt;/p&gt;

&lt;p&gt;In my private life I use Trello somewhat like a kanban board for checking off tasks like grocery shopping lists. We're soon moving into a new apartment so of course I have a board for tracking that also. That's how much I love my To Do lists!&lt;/p&gt;

&lt;p&gt;So find a tool that works for you, it will be worth it!&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;What are your favorite productivity life hacks? Comment and let me know!&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>mentalhealth</category>
    </item>
    <item>
      <title>Automating Advent of Code</title>
      <dc:creator>Erika</dc:creator>
      <pubDate>Wed, 16 Dec 2020 20:01:51 +0000</pubDate>
      <link>https://forem.com/zolor/automating-advent-of-code-2dlf</link>
      <guid>https://forem.com/zolor/automating-advent-of-code-2dlf</guid>
      <description>&lt;p&gt;Last year, December became my favorite month of the year when I stumbled upon something called Advent of Code. It's a calendar that each day presents 2 new coding challenges for you to crack. The goal is to solve these using any programming language you want, in order to save christmas.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://adventofcode.com/"&gt;Link to Advent of Code&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This year I got tired of creating all the files, folders and download the input everyday, that I finally decided to do something about it.&lt;/p&gt;

&lt;p&gt;So what does a lazy coder do? We automate!&lt;/p&gt;

&lt;p&gt;I make 1 folder for each day containing 2 files for each part. I have a &lt;em&gt;test.py&lt;/em&gt; where I test code snippets and I create a &lt;em&gt;testinput.txt&lt;/em&gt; for any test input. Then I download the input file for the day and add it accordingly.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Disclaimer: I've only tested this on Windows so your mileage may vary.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Prerequisites: Python 3, &lt;a href="https://selenium-python.readthedocs.io/installation.html#downloading-python-bindings-for-selenium"&gt;Selenium&lt;/a&gt;, &lt;a href="https://chromedriver.chromium.org/downloads"&gt;Chrome Driver&lt;/a&gt; &lt;em&gt;(or your driver of choice)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Zolor/adventofcode2020/blob/master/setup.py"&gt;Link to github&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;selenium&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;webdriver&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;selenium.webdriver.chrome.options&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Options&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;os&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;sys&lt;/span&gt;

&lt;span class="c1"&gt;#Verify we're getting input
&lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;sys&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;argv&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'Missing day number. Run e.g:'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'python setup.py 13'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;sys&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;exit&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;day&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;sys&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;argv&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;span class="n"&gt;path&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;getcwd&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="s"&gt;"/day"&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;day&lt;/span&gt;
&lt;span class="c1"&gt;#Create folder from input
&lt;/span&gt;&lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;mkdir&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;except&lt;/span&gt; &lt;span class="nb"&gt;OSError&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Creation of the directory %s failed"&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;#Create 4 empty files
&lt;/span&gt;&lt;span class="n"&gt;lista&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;"/part2.py"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"/test.py"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"/testinput.txt"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;lista&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nb"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'a'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="n"&gt;close&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="c1"&gt;#Create and Write to part1.py
&lt;/span&gt;&lt;span class="n"&gt;part1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;path&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="s"&gt;"/part1.py"&lt;/span&gt;
&lt;span class="n"&gt;f&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;part1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"a"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;write&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'data = open("input.txt").read().split("&lt;/span&gt;&lt;span class="se"&gt;\\&lt;/span&gt;&lt;span class="s"&gt;n")'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;close&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;chrome_options&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Options&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;chrome_options&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;add_argument&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"--headless"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Replace value with your session cookie for AoC
&lt;/span&gt;&lt;span class="n"&gt;session_cookie&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;"session"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"value"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;"&amp;lt;Session_cookie&amp;gt;"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="c1"&gt;# initialize driver object and change the &amp;lt;path_to_chrome_driver&amp;gt; depending on your directory where your chromedriver should be
&lt;/span&gt;&lt;span class="n"&gt;driver&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;webdriver&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Chrome&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;chrome_options&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;chrome_options&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;executable_path&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"&amp;lt;path_to_chrome_driver&amp;gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# URLs we need
&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"https://adventofcode.com/2020/day/"&lt;/span&gt;
&lt;span class="n"&gt;url_input&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"https://adventofcode.com/2020/day/"&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;day&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="s"&gt;"/input"&lt;/span&gt;

&lt;span class="c1"&gt;# get request to target the site selenium is active on, add our cookies and go to input
&lt;/span&gt;&lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;add_cookie&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;session_cookie&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url_input&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Find our text input on the input page, "pre" is our tag ID
&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find_element_by_tag_name&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"pre"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;

&lt;span class="c1"&gt;# Save content to file
&lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;path&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="s"&gt;"/input.txt"&lt;/span&gt;
&lt;span class="n"&gt;f&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"a"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;line&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;write&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;line&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;close&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="c1"&gt;# Remember to quit the driver
&lt;/span&gt;&lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;quit&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="c1"&gt;#Success?!
&lt;/span&gt;&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="s"&gt;" and adjacent files created!"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Feel free to use this and adjust it to your own liking. Make sure to edit the 2 fields in the code:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Session cookie&lt;/li&gt;
&lt;li&gt;path_to_chrome_driver&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Run it by executing it together with a number for the day you're planning to do, e.g:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;python setup.py 25
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>python</category>
      <category>automation</category>
      <category>adventofcode</category>
      <category>windows</category>
    </item>
    <item>
      <title>A month without social media</title>
      <dc:creator>Erika</dc:creator>
      <pubDate>Fri, 31 Jul 2020 15:07:22 +0000</pubDate>
      <link>https://forem.com/zolor/a-month-without-social-media-2mil</link>
      <guid>https://forem.com/zolor/a-month-without-social-media-2mil</guid>
      <description>&lt;p&gt;&lt;em&gt;&lt;span&gt;Photo by &lt;a href="https://unsplash.com/@dole777?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;dole777&lt;/a&gt; on &lt;a href="https://unsplash.com/s/photos/social-media?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Unsplash&lt;/a&gt;&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;For 2020 I decided to challenge myself to try something new every month. Everything from Yoga everyday to no sugar for a month. In July I tried to go without Social Media. I uninstalled Facebook, Twitter, Reddit and Instagram. I allowed myself FB Messenger as that's how I keep in touch with family and friends. I allowed Twitch and Youtube as I use those as learning resources.&lt;br&gt;
Every week I wrote down my experience as follows.&lt;/p&gt;

&lt;h2&gt;
  
  
  First 24h
&lt;/h2&gt;

&lt;p&gt;First 24h without social media. I already feel my mind being less cluttered. I'm experimenting with other things to do instead of scrolling when I'm bored. I spent 2 hours commuting yesterday so I listened to 2 podcasts during that time and looked at people looking at their phones in slight awe.&lt;/p&gt;

&lt;h2&gt;
  
  
  First 3 days
&lt;/h2&gt;

&lt;p&gt;I don't miss it as much as I thought I would. I haven't found myself "craving" it or anything... yet! I think I feel less stress because I have so much time to do other things now when I don't have that option available to pass time whenever I want. I listen to podcasts and lay puzzles on jigsawpuzzles.io a lot more which also decreases my stress.&lt;/p&gt;

&lt;h2&gt;
  
  
  First week
&lt;/h2&gt;

&lt;p&gt;I've now gone a full week without social media \o/ The benefits are still stacking while the dreaded drawbacks remain unnoticeable.&lt;/p&gt;

&lt;h3&gt;
  
  
  Benefits:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Clearer Mindspace, I feel my mind is not as cluttered with various topics I would've usually gathered throughout a normal day from Social media. This helps me fall asleep much faster, I feel less stressed overall and more focused.&lt;/li&gt;
&lt;li&gt;Time saving, I used to spend a couple hours a day scrolling social media. That's now time I've taken to reading, playing games with friends, going for walks, playing with my cats etc. Activities which typically also make me more relaxed. ++&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Drawbacks:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;FOMO, or Fear of Missing Out. I thought this was going to be my biggest upset with this challenge. The thing is, if you don't know what's going on it's hard to feel FOMO. Generally speaking I think I felt more FOMO while on Social Media because then you compare yourself to others and their activities all the time. So I can almost add this back to the benefit side at this point.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  2nd week
&lt;/h2&gt;

&lt;p&gt;It has come to a point where I don’t think about it at all anymore. Sometimes I catch myself wanting to share a fun photo I’ve taken to Instagram but I end up sending it via Messenger to whomever I thought might enjoy it which usually sparks a brief conversation which has been nice.&lt;br&gt;
I’m still feeling the same as the first week, no huge difference but still feeling more relaxed and laid back. The 1st week of vacation could also have contributed to this and I managed to catch a cold with a sore throat and headaches which put me in bed for 3 days. Without social media my sick days were spent watching tons of documentaries. Felt that I was more focused watching those than usual since I typically distract myself with social media browsing. Not anymore!&lt;/p&gt;

&lt;h2&gt;
  
  
  Last day
&lt;/h2&gt;

&lt;p&gt;So this month has been everything I didn’t expect it to be. I’ve done monthly challenges this whole year with the goal to challenge myself into better habits. The social media month is one I’ve been dreading the most. I went into it thinking I would feel left out and lonely. How many things would I miss out on because I wasn’t reading on my social media platforms?&lt;br&gt;
Turns out, nothing.&lt;br&gt;
I mean probably something but nothing that I’m aware of.&lt;br&gt;
And that’s the thing. You don't experience fomo when you don’t know what’s going on. The upside has made me feel less stressed and my mind has felt at ease, which has been a great feeling throughout this month.&lt;/p&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;This whole month has been great and I haven’t missed social media at all really. I’ve had more time for important stuff instead of stressing about what everyone else is doing all the time.&lt;br&gt;
I will probably continue to minimize my social media consumption, maybe only allow myself on the weekends or so, if I feel like it.&lt;/p&gt;

&lt;p&gt;I recommend everyone who feels like they’re spending too much time on their Instagram or Facebook or TikTok to try uninstalling everything from your phone for at least a week. It will be worth it!&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>socialmedia</category>
      <category>mentalhealth</category>
      <category>health</category>
    </item>
    <item>
      <title>How AGDQ makes me excited about code</title>
      <dc:creator>Erika</dc:creator>
      <pubDate>Sun, 12 Jan 2020 21:44:24 +0000</pubDate>
      <link>https://forem.com/zolor/how-agdq-makes-me-excited-about-code-3e5m</link>
      <guid>https://forem.com/zolor/how-agdq-makes-me-excited-about-code-3e5m</guid>
      <description>&lt;p&gt;If you've never heard about &lt;a href="https://gamesdonequick.com/"&gt;Awesome Games Done Quick (AGDQ)&lt;/a&gt;, it's a charity stream that broadcasts 24/7 on Twitch for a whole week in January every year. They showcase different speedruns where they try and finish various games as quickly as possible, while also raising money for charity.&lt;br&gt;
It's a fantastic event that I always make sure to catch when it's on. But this years got me thinking about the innovation that they do in order to satisfy the hundreds of thousands of people watching, and raise as much money as possible, breaking new records in total amount raised, every single event. So I decided I wanted to dig down on a couple things that they did this year and dive into the tech stuff!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--i_ZGsYm8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://supportclass.net/img/portfolio/gdq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--i_ZGsYm8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://supportclass.net/img/portfolio/gdq.png" alt="SupportClass AGDQ showcase" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Graphics of the Stream
&lt;/h2&gt;

&lt;p&gt;At first glance, this is not your typical twitch stream. The graphical layout has been engineered to perfection over the past 10 years, to make sure the viewer gets enough information and still have a beautiful design that puts focus on the right things.&lt;/p&gt;

&lt;p&gt;These assets and underlying tech is made by a small team known as &lt;a href="https://supportclass.net/#team"&gt;Support Class&lt;/a&gt;. Christopher Hanel and Jasmine Hruschak are the masterminds behind everything you see on the broadcast. The tech behind it is your standard web kit with a Node.JS backend that keeps track on current donation total, timer for the speedrun in action, donation incentives and more. This data is then fed into the broadcasting system like OBS or Xsplit.&lt;br&gt;
Their code is available on &lt;a href="https://github.com/GamesDoneQuick/agdq19-layouts"&gt;Christophers github&lt;/a&gt; for their previous events, and also has showcases for their &lt;a href="https://www.youtube.com/watch?v=vBAZXchbI3U"&gt;2017 edition on youtube&lt;/a&gt; if you're interested in learning more about their design philosophy and underlying system you should check it out!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Cjsv7bf6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/w2nwhfcikrw4h148byip.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Cjsv7bf6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/w2nwhfcikrw4h148byip.png" alt="Crowd Control in Action" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Crowd Control
&lt;/h2&gt;

&lt;p&gt;One of the games this year was The Legend of Zelda: A Link to the Past. A game from early 90's when no one had a broadband connection, and live broadcasting from your home computer was unimaginable. It's a classic game and it often makes an entry at every GDQ event.&lt;br&gt;
To make the game more interesting, different modifications has been added to the game, partly to add complexity and also to add more fun. Previous years we've seen a mod called randomizer, where the player gets random items when they open chests in game. This requires more planning for the runner of the game and they need to act accordingly when items does not drop where they're hoped to.&lt;/p&gt;

&lt;p&gt;New for this years speedrun, not only is there an item randomizer, they also have something called Crowd Control.&lt;br&gt;
Crowd Control enables for all viewers to take part in the speedrun as it happens. Using Bits, a currency that Twitch use in exchange for real money, you can pay for effects to be added into the game in real time. Example of this is to change the character sprite, give the player lifes, weapons, items and also remove them. Both to either assist or hinder the players success in the run. And it turned crazy really fast! Making it one of the funniest runs of the event.&lt;/p&gt;

&lt;p&gt;The maker of the software is a company called &lt;a href="https://twitter.com/WarpWorld"&gt;Warp World&lt;/a&gt;, their software is open for anyone to use at &lt;a href="https://crowdcontrol.live/"&gt;crowdcontrol.live&lt;/a&gt;. They take 20% of the income a streamer gets when using their system, they also have a premium service.&lt;/p&gt;

&lt;p&gt;How they are able to manipulate the game in real time was really baffling to me. &lt;br&gt;
On the tech side it's one part a twitch extension to make interaction with the viewer possible and one part desktop app. Taken from their website:&lt;br&gt;
&lt;em&gt;"The Crowd Control Desktop Application is the connection between the Twitch Extension and the game you’re playing (either through an emulator, or hardware)."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Their code is not open but it's still one of the coolest engineering tricks in the whole AGDQ this year, and really inspires me with the possibilities you can do to make an almost 30 year old game really come to life again.&lt;/p&gt;

&lt;p&gt;Also the runner Andy and the couch of commentators really brought on a show. Make sure to catch the VoD when it comes available on &lt;a href="https://www.youtube.com/user/gamesdonequick"&gt;GDQs Youtube Channel&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--rcSU9cww--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/http://acbit.net/static/tas/TASBotBanner720x240.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rcSU9cww--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/http://acbit.net/static/tas/TASBotBanner720x240.png" alt="TasBot Banner" width="720" height="240"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Tool-Assisted Speedrun
&lt;/h2&gt;

&lt;p&gt;Lastly I have to bring up TASbot (Tool-Assisted Speedrun roBot) that's made an entry in every GDQ since 2014. TASbot is a computer that has a built-in custom circuit board that can exactly mimic the behavior of a video game controller. This lets you control a game using multiple inputs than designed in order to manipulate the game in fashions not doable by humans.&lt;/p&gt;

&lt;p&gt;TASBot was showcased first time on &lt;a href="https://www.youtube.com/watch?v=Uep1H_NvZS0"&gt;AGDQ 2014&lt;/a&gt; and the developers walks through how it works in detail while showing off what the Bot can do. Not only tied to running games at ridiculous levels, but also to manipulate the memory itself to do some cool stuff. I highly recommend a watch!&lt;/p&gt;

&lt;p&gt;The TAS community is a subgenre of speedrun where people build their own TAS, either physically to manipulate game consoles such as TASBot, or just by scripting using an emulator that runs games on a local PC. There is a community driven software known as &lt;a href="http://tasvideos.org/BizHawk.html"&gt;BizHawk&lt;/a&gt; that lets you use lua scripts in order to manipulate input, and also memory, towards a game. The code for Bizhawk is also available on &lt;a href="https://github.com/TASVideos/BizHawk"&gt;github&lt;/a&gt; and is written in C#. &lt;/p&gt;

&lt;p&gt;It's hard to find a better way to mix my two biggest interests, video games and programming, I'm always in awe with what they make possible using these tools every year, so this really makes me want to try it myself!&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;I always struggle to come up with ideas for projects, that I feel excited about, so that I can work on my programming skills. AGDQ this year really opened up my mind and made me curious on what's going on under the hood. I hope you find this as interesting and inspiring as I do!&lt;/p&gt;

&lt;p&gt;And let me know if you also follow GDQ, what was your favourite run this year?&lt;/p&gt;

</description>
      <category>inspiration</category>
      <category>webdev</category>
      <category>gamedev</category>
    </item>
  </channel>
</rss>
