On Persistence, Collaboration, Trial and Error – Hacktoberfest 2022

Last week I published a blog about my first Hacktoberfest Pull Requests (PR) and the lessons learned. I have written about digital public goods and how much I enjoy contributing to non-governmental organizations (NGOs). The learning never stops, and I’m here to tell you more about my ongoing Hacktoberfest adventures.

Starting with a small update on last week’s Hacktoberfest activities…

success stories

My two PRs for Intel’s cve-binary-tool have merged! This (Fix 1, Fix 2) was my first Hacktoberfest merge. These were small contributions but big confidence boosters. I’m a beginner in programming, and if I can make small contributions, so can you. From one start to the next – start small, do your best, trust the process and ask for help.

Don’t be afraid to sound silly – I lost count of how many times I sounded silly to the maintainers of the projects I contributed to this week. Real-world projects are big, and they look intimidating. But hold on, and don’t give up when you face obstacles. It was really challenging for me to get my code through all PR’s CI/CD checks but finally, I did it!

As mentioned in my previous blog, I was invited to a standup meeting of Glyphic to understand their issues and this week I finally attended!

“Glyphic is a WhatsApp-based open-source communication platform for NGOs to interact with their community.” (bright)

Everyone in the standup meeting at Glyphic was friendly and made me feel comfortable. I expressed my interest in working on their frontend issues as they seemed more beginner-friendly than their backend which is written in Elixir.

The project was also difficult to set up, but a wonderful developer at Glyphic spent two hours helping me set up the dev environment via a Discord call. He then shared his screen and gave a short demo of the glyphic. Whenever I need him, he is just a discord message away. The community support for open source continues to amaze me.

I then proceeded to connect with Glyphic founder Donald Lobo via LinkedIn, expressing how great the idea of ​​Glyphic is. I have seen firsthand how NGOs really struggle to collect information at the grassroots level. Glyphic is bridging the gap between NGOs and the community they care about.

Tales of trial and error….and ongoing trials

My 4th PR to If Me had some requests for a change in organization.
It took me about 2 days and 2 YouTube videos to figure out how to set up the dev environment for Ruby On Rails project on my mac. for some reason gem install bundle Was throwing so many almost impossible-to-debug errors. But my stubborn soul was not ready to surrender. I googled. And googled. And googled. And stackoverflow did.

I finally got it…

But … even after launching the docker instance to run the project – some problems persisted when logged in as a user. The matter was related to fixing the navigation bar. my . but now the navigation bar was good when not signed in localhost, but after signing in and refreshing the page, the entire top margin shifted up. I raised this issue with the maintainer and we are investigating this unusual behavior.

Then I shifted my focus to another issue I was working on for ifme – Writing Unit Tests…

As mentioned earlier, I only have a little knowledge of how to write tests in my cloud computing class, which I learned about for three weeks. It was incredibly difficult for me to write this one particular test. I tried several times before reaching out to the maintainer about how challenging it was for me to mock the Document Object Model (DOM) to write this test. I’m still not sure if I’ll be able to do it or not, but I’ll keep trying. If anyone reading this has any suggestions for writing a test for it, feel free to comment.

const getPusher = (): Object | null => {
  if (window.Pusher) {
    const metaPusherKey = Array.from(
      window.document.getElementsByTagName('meta'),
      window.document.getElementsByTagName('meta')
    ).filter((item) => item.getAttribute('name') === 'pusher-key')[0];
    const metaPusherCluster = Array.from(
      window.document.getElementsByTagName('meta'),
      window.document.getElementsByTagName('meta')
    ).filter((item) => item.getAttribute('name') === 'pusher-cluster')[0];
    return new window.Pusher(metaPusherKey.getAttribute('content'), {
      cluster: metaPusherCluster.getAttribute('content'),
    });
  }
  return null;
};
enter fullscreen mode

exit fullscreen mode

On a more positive note – I wrote all the other necessary tests. I sent a PR anyway, even though I couldn’t cover all the lines.

When I expressed how I failed to cover all the lines in testing via Slack to the maintainer, he said something very encouraging.

I have received some requests for changes to this issue, which I am going to fix and discuss in detail in my next blog.

On finding meaningful work and networking

Setting up projects and navigating through a maze of files and folders to understand projects at their core can be tedious and confusing. However, the projects and public digital goods I contributed to were meaningful to me, so I didn’t mind putting in the rep and hours to get it done. So let’s break down the glass ceilings and invisible barriers we put in place for ourselves and contribute to the open-source projects we care about.

During the summer, I was pushing myself to be highly productive. But as you might have guessed, the problem with this is that it leaves you burning out. I was trying to learn about Python, Swift and Blockchain smart contracts at the same time while working as a research assistant at Seneca College. And in case I haven’t mentioned it before, I am an avid powerlifter and am constantly working on getting a better lift. If you’re like me, you know it screams breaking your back chain sometimes. I was pushing myself too hard, physically and mentally – and it wasn’t sustainable for long. I didn’t finish learning python or blockchain smart contracts during the summer. But I ended up learning Swift and data structures. Through this, I learned that it is important to logically plan and place work. I also believe that opportunities present themselves if you are willing to learn something. I was right.

Another good digital public good

Had a fortunate opportunity to learn blockchain this week. I was reading through the GitHub blog and found yet another wonderful NGO participating in Hacktoberfest – Relief Agency. They are a certified digital commodity and I have expressed my interest in an issue. But soon after that someone made a pull request.

“Relief Tokens manages and monitors transaction flows in distribution projects, maintaining end-to-end transparency for humanitarian agencies that need a transparent, efficient and inexpensive way to distribute cash or goods in emergency response. ” (relief agency)

Well, I tracked down the person who made the pull request and found out that he was a blockchain developer and worked for a relief agency. I saw her on LinkedIn and sent her a connection request expressing my interest in contributing to the relief and how cool I thought this project was. He responded quickly and asked if I had any problems with the development environment setup. I faced errors and issues. I sent him screenshots via LinkedIn chat and he asked me to remove a package called rumsan-ui And send in a PR. I sent the PR when asked, but it generated more errors. I then provided a description of the errors and the same screenshots under this GitHub discussion that helped them along their journey collecting feedback from others trying to get their project running. I look forward to contributing more to his project.

Going forward…

Keeping my spirit of learning alive as I move forward.

writer and teacher Julia Cameron on improving

“It’s impossible to be better and look good at the same time.
Give yourself permission to make a start. By being willing to be a bad artist, you have a chance to be an artist, and perhaps, over time, become a very good one.”

Source: James Clear

Leave a Comment