#hacktoberfest #ai #development #aws
“October, crisp, misty, golden October, when the light is sweet and heavy.” ― Angela Carter, The Magic Toyshop
When the leaves turn their color, and the sun is enjoyable, ahh, October, you beautiful month. When the days are shorter, and you don't feel bad when it's raining, oh yes, it's Hacktober.
How has my #Hacktoberfest?
Even though I haven't got all my PRs approved, I can say it was very good.
I am a fan of open source, but honestly, I don't contribute much. Hacktoberfest motivates me to change that.
I use @OpenSauced to search for repositories that have the #hacktoberfest label. It's a fantastic tool for finding excellent repositories to contribute to. I understand that it may not capture all available repositories, but the goal of Hacktoberfest is to discover something exciting and make a meaningful contribution to it.
And I found so many great projects.
- trigger.dev--) for running background jobs framework with Typescript
- Steampipe--) Using SQL to query your cloud services without a database
- SAML jackson (Best(Best) name!!)- for a seamless integration of a single authentication
- Novu--) The notification center infrastructure for your app
and many more. Go check it out yourself here.
My contributions
Komiser
I often work with AWS and recently came across a tool called Komiser, which can create an inventory of your cloud assets and display the costs of each cloud service. I found it quite interesting, but I noticed a bug where services were labeled incorrectly. Since the tool is written in Golang, I tried to fix the bug myself, but someone else came up with a better solution. Although it was my first time working with Go, Phind taught me about goroutines, which are used in Go's concurrent model. I was eager to contribute to the repository, so I added a new pricing support for CloudFront Functions. Additionally, I could apply my Javascript knowledge to animate the edges of their explorer.
My learnings:
- Usage of Go and their concurrent execution.
- How the pricing of CloudFront Functions are calculated, and that they differ from Lambda@Edge
- Refreshing my NextJS skills and how to use Cytoscape Layer
DocsGPT
I became interested in DocsGPT because I had a similar idea of training a model based on my own documents. I started reading through their roadmap and engaging in their Discord channel. One of the ideas was to put Langchain's Vectorstore on AWS S3 or connect the application with an AWS S3 storage. DocsGPT is written in Python, and I found it to be a good project to brush up on my Python skills. The pull request is currently being worked on.
My Learnings here:
- Use LangChain to develop a language model
- Get to improve my rusty Python skills
S3-Simpler
I realized that I had already started working on my own project called S3-Simpler (S4) for last year’s #hacktoberfest. The main aim of this project is to create a small wrapper that can be used for uploading, downloading, and sharing any type of file, regardless of its size. Additionally, this repository also includes a CLI that can be run to upload, download, and share your files of an S3-Bucket (I was thinking of running something like npx s4 upload --bucket my-bucket --filepath /path/to/my/file
). Typically, multipart uploads are required for files larger than 1 GB, but this CLI simplifies the process.
This project is built using NodeJS and has a Monorepo setup. I attempted to use Bun for bundling, but it had issues with bundling CommonJS packages to ESM. The library uses AWS SDK JS v3, and the CLI uses ink. It's still under development and needs to be published to npm. Any feedback and contributions would be greatly appreciated.
However, this project was forgotten, and #Hacktoberfest is over. Despite having a label, there was no marketing done, and as a result, it wasn't as visible as it could have been.
My Learnings:
- Without any marketing, you won't get any visibility
- Project Management is harder than I thought
- Trying out Bun and realized its bundler was not correctly bundling to ESM
- Creating a library for ESM and CJS (Dual-Mode)
Conclusion
Throughout Hacktoberfest, I attempted to complete four pull requests. Nonetheless, the experience was a great opportunity for me to learn and grow. I participated in various projects, including those related to AI, my own personal projects, and tools that I use for my daily work. This allowed me to gain exposure to a wide range of different technologies and to learn new skills that I can apply to future projects.
Moreover, the event provided me with the chance to explore many great projects, which helped me to expand my knowledge and develop my coding abilities. Beyond the hacking and coding aspects, I also enjoyed the social aspect of the event, interacting with others on Discord channels and getting to know new people who share my passion for open source.
Hacktoberfest motivated me to commit to doing something every day. Although I wasn't able to complete all four PRs, I am eager to continue contributing to open-source projects, as I believe that this is an important way to give back to the community and to help others. I am grateful for the opportunity to have participated in Hacktoberfest and look forward to continuing to learn and grow as a developer.