So am gonna share the story of a very productive and fun weekend. Just got back from my first hackathon(Mozilla Global Sprint 2019) this year. It was 24-hour long, hectic and awesome!
This was the event where I learned and worked on many new things like- web assembly, basis format, golang. Made an amazing team, met new people, built some cool projects(I’ll add link to my repo) and it was totally worth attending!
What I worked on and learned:
So there were some themes which we had to choose from(Privacy and security, decentralization, open source projects, fixing bugs in mozilla firefox and many more)
Step 1: Looking for project ideas
Had discussion on multiple ideas:
Step 2: Problem statement
There is a new supercompression algorithm and this algorithm reduces the size of the image by a huge margin and converts it into a new format called .basis format. This image algorithm is on Github, and there is a command-line compression tool to convert images to .basis format, but to use this tool you need to setup the entire project and also the .basis file can’t be displayed on browser.
Basis Universal is a “supercompressed” GPU texture and texture video compression system that outputs a highly compressed intermediate file format (.basis) that can be quickly transcoded to a wide variety of GPU texture compression formats.
WebAssembly is a binary instruction format for a stack-based virtual machine. Wasm is designed as a portable target for compilation of high-level languages like C/C++/Rust, enabling deployment on the web for client and server applications.
Step 3: Solutions
- Create a reusable web component to render and display a basis image file.
2. Create a server in Golang which will be used to convert png images into .basis format.
3. Create a Wasm file which will convert any given png image into .basis file in browser only.
4. Add support in Firefox for rendering .basis images natively
Step 4: Implementation
As part of implementation, we 4 team members took one solution each and started working on it. After spending few hours, we were able to achieve what we expected.
Talks, Fun, food and goodies
The organizers were college students only and they were managing the event very well. During this 24-hour long sprint, the organizers kept coming and asking if we need anything.
There were Q&A sessions, one on one interaction with the speakers, knowledge sharing, goodies distribution!
Ok, One last story
So there was one organizer(final year college student), he started asking about how and what field he should choose as best career option for him. Also, he explained what all he has worked on but is still very unsure about what is best for him.
When he started comparing himself with other students, my team members started telling him that you shouldn’t be comparing yourself with others, look at what have you done and achieved, learn from your own highs and lows. Somehow that became a learning for me too, because in the beginning while sitting with the team I was like they are way too good professionally — one is developing tools using AI & ML, one is GSoC Alumni, and the other one is working on Cryptocurrency. But after listening to them, that comparing thought was completely gone and I was like yes, appreciate their achievements and then learn from your own mistakes and experiences.
In short, Go to a hackathon guys!
I am definitely planning to attend more such events in near future :)
Web component to display .basis file:
Contribute to manishsingh10895/basis-image-web-component development by creating an account on GitHub.
GO Server to convert .png to .basis:
PS: There were very few female participants in the hackathon. Via this blog I just want to tell every women coder that this is how I felt after attending, also such events are great source of learning. We all should consider going to such events quite frequently :) Happy coding!