Giulio's Hacktoberfest 2022
Tags: hacktoberfest, opensource
Published: 2022-11-07 20:06:09

I did attempt [Hacktoberfest](https://hacktoberfest.com/) back in 2021, but couldn't approach it until late October (I ended up not reaching the goal).  

This year I was aware of the event and prepared my schedule: time to participate properly!  

I know open source needs hands-on all year round, the issue with being employed is that the _focusing effect_ of a single events help you dig some time for it, and deliver something.


![My Hacktoberfest 2022 final score](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hvkax2vgholjzl031tw7.png "4 + 2 / 4")
*My Hacktoberfest 2022 final score 😎* 

## Selection policy

Picking up projects to contribute to was a bit tricker than expected,
even when a well-endowed _Contribution Guide_ was available.  
Sometimes my idea just didn't click right or I couldn't really approach an issue, proposal or anything relevant on my own.  
_I ended up following a set of guidelines on my side, split into  most preferred ✅, interesting ⚖️ and least preferred ⚪._  

1. ✅ **Software I could use** 
2. ✅ **Small or early stage projects** 
3. ✅ **Languages: *Rust*, *PHP*, *Bash***.
4. ⚖️ **Mature and/or famous software.** _Approaching them could be a double-edge sword, because maintainers probably already have a lot in their plate._
5. ⚖️ **Non-code contribution.** _Tech-writing is an interesting skills, and being able to roll out a readable documentation is an important asset: I do exercise every time I can._ 😉
6. ⚖️ **Languages: *TypeScript* or *JavaScript***. _My opinion is still maturing about this language, plus I need to improve in using both._
7. ⚪ **Translations.** _I just don't feel prepared enough to propose translations: I'm really unsure about a lot of things._
8. ⚪ **Languages: *Java*, *Python*.**  _I really need motivation to use  these tools outside working hours._

I was aware this could cut me off from some projects available, my bet was that boarding those could be very time consuming and lead me to fail.  


## What I ended contributing to

### [aarty](https://github.com/anas-elgarhy/aarty)

*🦀 - Rust* [1st PR](https://github.com/anas-elgarhy/aarty/pull/5) [2° PR](https://github.com/anas-elgarhy/aarty/pull/6)

This one I love using: an image to ASCII converter!  

The author was advertising this project for contributions in Hacktoberfest Discord server.  

A simple software, well done and usable, it got me the occasion to apply some well-known programming pattern: [Inversion of Control](https://en.wikipedia.org/wiki/Inversion_of_control).

### [Rss2Email](https://github.com/AntoniosBarotsis/Rss2Email)

*🦀 - Rust* [1 PR](https://github.com/AntoniosBarotsis/Rss2Email/pull/27) [2 PR](https://github.com/AntoniosBarotsis/Rss2Email/pull/31)

Project name explains it all: give a list of RSS URLs, get an email with the list of articles.

For Antonios, the project owner, the code was as important as the reasoning behind technical decisions and choices.  
To me it was important to have another point of view on the learning process and how to communicate in this kind of topic.

### [composer](https://github.com/composer/composer)

*🐘 - PHP*  [1 test PR](https://github.com/composer/composer/pull/11133)

If it happened for you to work in PHP in the last ten years, you know `Composer` by name.  
It was interesting to find the repository tagged for the event!  
🤔 Oh, they just had `help-wanted` on test & coverage tasks?  

I know writing test can be tiring, even small ones, yet this one was interesting to see how they used the [Generators](https://www.php.net/manual/en/language.generators.overview.php) to feed test data.


### ❌ [rust-av/ffv1](https://github.com/rust-av/ffv1) 

*🦀 - Rust* [1 failed PR](https://github.com/rust-av/ffv1/pull/46)

This one PR I failed 😢, after several attempts I stumbled in an upstream bug.  
The upstream crate was in the `rust-av` project too, but I couldn't figure out a working fix.  
I must admit I'm not skilled enough to contribute this crate.  
I ended up closing my PR because the effect would have been breaking something.

### [tsparticles/404-templates](https://github.com/tsparticles/404-templates)

*🟨 - HTML/JavaScript*, [1 PR](https://github.com/tsparticles/404-templates/pull/78)

After failing the previous contribution I was a bit down in the dumps.  
I needed something to redeem myself.  
With the month coming to a close and some PR pending, I decided to take advantage of the opportunity and work on an HTML+JS template, this project was for me!  

The template gallery missed something seasonal and October-related, this made a good occasion to unfold some 👻 🕸 🕷️ 💀 Spooky Time !


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/94cdhsoq06i9la8yp14z.png)
*I find amazing how many free resources we have nowadays*

90% of my work was tuning out the particle library, pick a nice themed font and follow the [issue guidelines](https://github.com/tsparticles/404-templates/issues/18)

🔨 Nailed it! 👍

## Conclusion

Phew! I ended writing a lot of stuff, and wanted to _record_ the event for myself.  (maybe I should have split the article?)

Could you read this far without me boring you?  😯 Wow, thanks! 

I hope everybody experience was interesting and satisfying as mine was 🏆.