Skip to main content

DPS 909 - Release 0.2 - Hacktoberfest Week 4

It's the home stretch for Hacktober fest! For my final contribution, I decided to tackle my last goal, which was simply to do something fun and interesting. Once again, thanks to GitHub user vichitr and his brilliant project, I was able to quickly find something to contribute. I've always thought that programming algorithms was a good challenge and invited great learning experiences, so for my final PR, I decided to program an example of the sliding window technique in Python.

The sliding window technique is a very useful algorithm that is used across many disciplines of software design. It allows users to compare subsets of data (i.e. windows) within a larger collection, in order to find significant items. Personally, I have encountered the sliding window technique during some applied research projects that I have tackled in the past. In a particular machine learning project, I used the sliding window technique to construct subsets of data that were then fed into a separate pattern mining algorithm. If you're at all interested, you can find a summary of the aforementioned project here.

Visual example of sliding window technique (image from https://www.researchgate.net/)
The sliding window code for the research project I'd done could not be used for this contribution, primarily due to the fact that the implementation we'd written was far too specialized to use as a general example, so it would not fit the purpose of vichitr's project. The second reason is that it is proprietary code written for a client, so it would simply be unlawful to use it for open source purposes! So, I just wrote an original example using Python. Even though I'm familiar with the concept, it was still a good learning experience... mostly due to the fact that I've grown rusty with the fundamentals of the algorithm. A quick Internet search brought me back up to speed, and the rest was simply figuring out an implementation that would be simple and straightforward enough to teach other beginners about the concept of sliding window technique.

You can the issue here, and find the pull request here.

Console output of my sliding window program, coded in Spyder
With this final contribution, I've finished my 4 required PRs for Hacktoberfest. Hopefully all of them pass the review period. I'll be looking forward to my T-Shirt!

Comments

Popular posts from this blog

DPS 909 - Lab 3 - Hacktoberfest, and the Very Scary Repository

It's that time of year; the mornings are getting chilly, the leaves are turning, the pumpkin spice is flowing, and open source developers are getting all worked up over something called Hacktoberfest . Not to be confused with the other , similar-sounding (though arguably no less beer-filled) celebration, Hacktoberfest is a chance for open source enthusiast to truly flex their projects and contributions. Hosted by DigitalOcean , Hacktoberfest 2019 is an event running throughout the month of October that encourages activity in the open source community. It is completely free to sign up, and participants can even link their Github accounts to use as their Hacktoberfest profiles. As you may have already guessed, I will be participating in this event as my next major milestone on my journey into the world of open source. Through the miracle of APIs, even my profile picture was imported! While the prospect of diving headfirst into such a large, open source event as a beginner may s

DPS 909 - Release 0.2 - Hacktoberfest Week 3

I'll admit it right off: this week, I did not have a lot of time to spare for Hacktoberfest, so I was unable to tackle a new goal (out of the ones I set for myself at the start of the month). Nevertheless, I did not want to jank up the weekly momentum I had by missing a contribution, so I simply opted for a simple one instead. I found a nice project , by GitHub user vichitr , that focused on encouraging amateur contributors during Hacktoberfest, not unlike the last repo I contributed to. Instead of focusing on design patterns, vichitr's project contains a variety of issues that programmers are invited to tackle. I decided to contribute to issue #6 on the repo, which is to implement a data structure in the language of your choice. Since I was short on time for the week, I decided to contribute a threaded tree by overhauling a previous project I did as a school assignment. A threaded tree is a binary search tree that supports easy, in-order traversal of its values. Normally,

DPS 909 - Release 0.2 - Hacktoberfest Week 1

As mentioned in my last blog post , I am currently in the midst of participating in Hacktoberfest in order to deepen my understanding of open source. For my first week, I decided to start with a simple issue that I could confidently contribute to: the HackSta account's issue #12 . This issue invites other Github users to contribute customized icons for the Atom text editor (a product of Github!). It was very easy to start - users simply have to fork the repo and contribute new designs for the Atom logo in SVG format. The project has had many contributions in the past, and already has a large collection of over 500 icons, so there was lots of materials and references to work off of. The entire collection of custom Atom icons can be found on the project's website . There are entire collections of interesting variations on the default Atom logo, including palettes pulled directly from the color values of country flags and famous sports team logos. Take your pi