UBC Hacks 2017

" If you know me, you know that UBC Hacks has a very very special place in my heart. UBC Hacks remains one of my favourite projects that I have had the honour to work on, let alone have started, with Kristen 2 years ago. UBC Local Hack Day on December 2nd had 200+ attendees, 20+ sponsors and 35+ submitted projects. At the end of the day, the thing that matters the most is that we were able to provide a safe and supportive environment for everyone to work on their passion projects, even if it was just for one day (for now). It has been an incredible journey and it fills my hearts knowing that our mission for UBC Hacks has gotten clearer over time-- hacking for inclusivity, diversity & accessibility is something Kristen and I have both been wanting to see more of in our community, and all the incredible project demos proved that this hackathon did just that. Another perk of hosting a smaller hackathon is the opportunity to truly bond with your community, I'm grateful for everyone I've had the pleasure to meet through hosting an event like this. Thank you to everyone who has supported us along the way. 💖 Here's to another year of learning and collaborating, to get us one step closer to hacking for a better future. 🎉 " - What I posted on my Facebook, but I have more to say!

 

This year’s UBC Hacks’ Local Hack Day planning started in the summer when I was scrolling through Pinterest and discovered a new infatuation with gradients. I immediately took it upon myself to start mocking up what our new site should look like. I basically reused our graphics from last year but remade the entire site in pure HTML, CSS & JavaScript with some snazzy WOW.js, and made gradient throw up all over the page. This ended up saving us a lot of time because the skeleton of our new site was laid out and all we had to do was update it with our theme. I left some surprises for those who love a good easter egg hunt on websites, but those easter eggs faced some changes as there was a demand for more professionalism on the site. 😂

But here were 2 of them:

1)    If you clicked on the word “work” in our description, Work by Rihanna would play.

Work.gif

2)    I featured the word “UBC Hacked” backwards as an ASCII art in our source code because I thought that would be funny for those who actually took the time to look at it.

Screen Shot 2017-12-12 at 1.40.00 AM.png

Till this day, I’m still unsure if anyone actually found these 2 things, but I’ll continue putting things like these in our future website—I won’t give up on you, easter eggs.

 

Again, Kristen and I tried to organize most of this year’s hackathon alone as we wanted to lay down our vision for UBC Hacks before we passed some of the responsibilities on. Yes, we were tired. But was it worth it? Absolutement! However, we will definitely be recruiting people for our team next year because this really was A LOT of work for 2 people (if they would like to get through this while still leading a healthy lifestyle). We spent all our free time contacting sponsors, and I spent all my lunch times at work hopping on phone calls with lots of incredible✨ people regarding potential partnerships. All my dreams at night were starting to become hackathon related as well, so I guess you could say I was working through the night too.

 

Second time around, we had strategies to handle everything better. We discovered the functionality to schedule social media posts, so I sat down at a coffee shop one night and basically wrote all the posts that you might have seen on our Facebook/Twitter/Instagram page for the past month. My favourite part is definitely when my coworkers asked if I was writing social media posts at work since they were being posted randomly throughout the day. Fortunately, I was still sane enough to know that I wasn’t a Social Media Intern. Scheduled posts and MailChimp were basically the 2 things tucking us into bed each night.

 

In terms of the actual hackathon, saving all of our event statistics from last year and reflecting upon them definitely helped us a lot.

Here are some things that we could have improved from last year:

Our mission for UBC Hacks was unclear

o   Solution: Our goal of this hackathon was to foster a safe and beginners friendly environment for students to build an inclusive, diverse & accessible local tech community, so we did just that. That was our theme for our hackathon. Having a theme also meant that students had something to grow their idea on, so they could get to the actual hacking faster. Kristen was able to put all of this into our UBC Hacks designs. If you didn’t know Kristen is the Van Gogh of graphic design before, now you know.

A lot of people registered but only half of them actually showed up

o   Solution: We put that number into consideration and expected only 50% of our attendees to show up this year, so we were able to accept more people into the hackathon. We also ordered just enough food for 60% for them to show up, and kept some money as backup for if more people decided to come (they didn’t). This prevented wasted food—tummies were filled but the landfill wasn’t. (Well, we were hoping to bring the leftovers to hand out in Downtown after the event, but we didn’t have any this year so that worked out!)

Slack, our main channel of communication, has an invitation limit

o   Solution:  Slack limits members' ability to send more invitations if a large number has been sent but very few have been accepted. This was a problem for us as we tried to mass invite everyone to our Slack, but obviously, not everyone accepted instantly, so we had to contact Slack to uplift the limit. This year, I made use of Slack’s API token and set up this workaround Heroku App for people to request for their own invitations, meaning that they will accept it right away-- keeping our invite acceptance ratios high at all times. BONUS: This app also displayed the total number of users & how many were online!

 
No robots allowed on our Slack 🤖. (Maybe cyborgs).

No robots allowed on our Slack 🤖. (Maybe cyborgs).

 

No prizes == lack of incentive for students to submit their projects

o   Solution: We didn’t like the idea of using prizes to buy people’s participation, so we had prizes this year, BUT they were all focused on personal growth (API credits, development tool licenses, free online courses) as opposed to materialistic items—we ended up raffling out some awesome Netgear & Muse hardware goodies to those who demo’d their projects at the end. This was probably one of the best ways to foster a non-competitive environment while still encouraging everyone to share their work.

People were hungry before lunch actually started

o   Solution: The event started at 8:45am, so we served breakfast as well. Don’t worry, it’s not that we didn’t think of this last year, we just didn’t have the budget for it. But this year, we did!

Pizza at hackathons is so 2000 and late

o   Solution: Bagels, sandwiches and pasta replaced pizzas (we still had some available to upkeep the tradition, but only enough to upkeep the tradition 😉). Since you’ve gotten this far, I’ll share our well-kept secret with you, but only because I deem you as a loyal reader—Pizza Calculator.

 

In all honesty, this year’s hackathon was a big step from last year’s, in more ways than you can probably imagine. To come to think of it, we just finally set up a Business PayPal, so we could actually take in in monetary sponsorships instead of in-kind ones like last year. I am proud of us, but we really couldn’t have done it without our volunteers, sponsors, mentors and of course, participants. Thank you for all those who have supported us, we have you engraved in our hearts. We’re excited to do more with UBC Hacks because of all of you.


Now onto the Christian Rudder’s Dataclysm inspired segment of this blog post, where I pull together some mildy interesting data, and you can do what you will with it:

MailChimp

It was funny that as we inched closer towards exams season, the distribution of our email responses skewed later into the night as well. 

Email sent on November 27, 2017

Email sent on November 27, 2017

Email sent on December 5th, 2017

Email sent on December 5th, 2017

Facebook

I basically requested a copy of all my data from Facebook, and I received an archive containing every message I've ever sent via Messenger (along with a lot of other stuff) zipped up in a little file. I was able to parse through through Kristen and my messages for the past 4 months with Python and came to 2 conclusions. 54% (the rounding of the numbers is a little off) of our messages is sent by me probably because

I

type

like

this sometimes. 😥

Our relative contributions to our 13933 messages.

Our relative contributions to our 13933 messages.

In addition, after parsing through our messages, I was able to calculate word frequencies in our chat log and generate a word cloud based on it. In the past month, your chances of getting an instant response from me through email was definitely higher than if you were to message me through any other platform, so I guess this word cloud accurately reflected that.

wordcloud (2).png

Attendees Statistics

Here is my infographic attempt at capturing some statistics of our 399 registered attendees.

In conclusion, everything is close-ish to 50% 😉

In conclusion, everything is close-ish to 50% 😉

It was exciting to see a larger representation of females & non-binary students at the event this year! We hope to continue inspiring and impacting the community with events like Local Hack Day, and we hope our attendees' work towards a more inclusive and accessible tech community doesn't stop here either.


And that's a wrap for UBC Hacks' Local Hack Day 2017! 🎉

It’s been a while since I’ve written and I think this post justified some of that, but in case you’ve been losing sleep over my lack of updates (says no one ever), here is an additional snippet of my past 2 months. I’ve had the opportunity to attend Grace Hopper Conference, explore and hack in Seattle during DubHacks, organized MSP Summit, volunteered with GIRLsmarts4tech, made lasting friendships at and wrote about SAP iXp summit, received a scholarship to attend Women in Tech: A Fireside Chat, all while Hacktoberfest was happening, where my InternetWishlist repo got some new contributions! If any of those peak your interest, then feel free to check out my Twitter or shoot me a message, I’d love to chat. Otherwise, I hope you at least enjoyed this post about one of my favourite days of the year and all that led up to it!


You can find UBC Hacks' Local Hack Day 2017's Facebook event is here, pictures from the event here & project submissions here.

Review: UBC CPSC 210

I can't believe it's August 24th already. This summer has really flown by, but almost in a good way because I think I've achieved quite a bit over the past couple of months- finishing my internship, summer school, and all. So here I am with my CPSC 210 marks out, ready to give a review of the course.

CPSC 210 is a second year software construction course focusing on design, testing and debugging of software, using Java. Java is object-oriented programming, which moves us away from what we learnt in CPSC 110 (Racket). However, of course, the basics of programming remains. 

I went into this course having worked with OOP, did a couple Java online tutorials and started reading (started not finished haha) a Java book. I didn't prepare too much for the course, but I definitely think it was enough. Because of those tutorials and such, I had a good grasp of not only the syntax but the gist of how Classes, Objects & Methods interacted. That definitely made the course a lot easier to dive right into, especially for a summer class because of how accelerated it is. However, that being said, learning the basics of Java prior to the course is recommended, but not mandatory for success in the course.

For the summer session, we had about an assignment due roughly every 3 days and a lab due every other day. We also had a midterm 2 weeks into the course, a project due about 2 weeks after that and finally, we had our final exam a month after the course started. It's definitely a packed schedule. However, for some reason, it didn't stress me out. I found myself still being able to go to work and hang out with friends without much trouble as the labs and assignments were straightforward as long as you fully knew what you were doing. In addition, the midterm and final were made to be tricky but again, super manageable. Despite us having very little time to work on the 2 phases of the final project- an Android app, it was really fun and for the most part, I was able to finish each phase within one day (a long day but one day nonetheless). Because of that, I found myself truly enjoying the course a lot and I'm almost sad that I didn't take it during the fall because then I could have taken it for longer period of time.

So that's pretty much my review on the course. I love Java as a language and therefore thoroughly enjoyed the course. If you took CPSC 110 and are now contemplating taking 210, you should definitely take it, I promise it's a ton of fun!

Review: UBC CPSC 121

The end of a semester calls for another course review. This time, for CPSC 121. This course is an introductory course to models of computation. It covers all the basics from as simple as converting binary to hexadecimal, to different types of circuits (combinational logic circuits, sequential circuits, finite-state machines etc). I really enjoyed this course because it was the first time I have really dealt with discrete mathematics and have been able to associate it to different aspects of Computer Science, not just programming.  

CPSC 121 in particular has fairly heavily weighted assignments, which makes sense because they can quite time consuming. Those assignments ensure that you are keeping up with the class work. There are also weekly quizzes but those are fairly straightforward and only exist to make sure you are doing the pre-readings. In addition to quizzes, there are weekly labs where you work on “magic boxes” & logisim. Unlike in 110, labs are usually very simple & most people finish within an hour or so. As far as the midterms go, they definitely can be tricky, but that seems to be a trend in 121. So, as long as you are riding the curve, you should have nothing to worry about.

Overall, the course was interesting & was very enjoyable, I highly recommend it to anyone interested in Computer Science, or even to any Math lovers out there.

QED. :)

nwHacks 2016

So a while back I posted about how excited I was about going to nwHacks. So, here is my post about it! :)

My group and I met through the "nwHacks attendees" Facebook page. I totally recommend searching for a group through pages like that! I was originally not going to go since my original team completely fell apart. However, I'm so glad I stepped out of my comfort zone to team up with people I have never met before! We went in the hackathon with the thought that maybe we could just make a Grade Calculator, until we realized that Benegg does something very similar & it would be difficult for us to add features (ie curving of grades, since there is no universal system to perform curving etc). Therefore, we needed to come up with something else. After about an hour of brainstorming, we came up with a completely different idea of creating a Chrome Extension, which performs encryption & decryption of text with just the click of a button. (Pretty far off from our original idea, eh?) 

Then, it was time to get working. None of us have ever made a Chrome Extension before so we had to learn that right away. Turns out, we only had to create an extra manifest.json file and the rest was just JavaScript. We used HTML & jQuery as well to get the extension running. It is interesting because I haven't coded much with JavaScript before this Hackathon, but now I could honestly say that I feel a lot more comfortable with JS (which is crazy since I spend an entire term learning Racket, and still felt pretty iffy about it until I started making my own side projects). 

We did encounter a lot of difficulties while making this project, and the main one was bridging the activeTab and the Extension itself, as we wanted to automatically replace any text which was highlighted, with either the encrypted or decrypted version. When we got the Extension to finally talk to the website, our team screamed (it was 4am?).  Then of course, we had to come up with an extremely secure encryption & decryption system, which we opted using the RSA cryptosystem for.

After that, we simply made a website using a bootstrap template, designed an Extension icon, the logo for our website, a video tutorial and voila!

While demo-ing, all our hopes and dreams of winning any type of award fell apart. Other teams had such amazing projects. Thankfully, our goal was not to win in the first place, but rather to just have a good time at our first ever Hackathon. But here comes the best part, we actually ended up winning first place of $2000 from PrivateInternetAccess for our project. That, was the highlight of my University career thus far.

This hackathon was the best first hackathon experience I could have gotten. And also, since one of our teammates was from The University of Washington, perhaps we will all meet again next year at DubHacks. :) To many more hackathons to come.

Check out more about my project here!

GIRLsmarts4tech

After months of meetings and planning, we finally had our first workshop!

If you did not know, I am a Group Leader at GIRLsmarts4tech, a workshop held by UBC's Department of Computer Science (sponsered by Microsoft). These workshops are intended to inspire girls to develop an interest in Computer Science at an early age. All I can say is, I wish I could have gone to one of these in my time.

My Saturday was well spent teaching girls HTML, 3D printing, HCI & Programming. The best part of being a group leader is that you get to participate in all the events rather than just one. To document such an amazing and funfilled day, I used snapchat's time stamps to take pictures throughout the day and created a collage. That also means I am saving you lots of scrolling time as those 16 pictures individually would have been a pain to scroll through.

Here's how my day went:

All the group leaders arrived early at 8:15 am to grab breakfast together and prepare for the girls' sign ins. We got awesome T-shirts, a super cool folder and this huge colourful bow to wear on our heads (the colour of the bow represents the colour of my group!)

12625848_10203905256190989_649750523_n.jpg

We then proceeded to our first stop, HTML. Watching the girls code in HTML reminded me of how I used to do that on Neopets. The webpages they ended up creating looked beautiful. My favourite part of this activity was watching them decide the theme of their web pages. There was Justin Bieber (of course), Figure Skating, Hippos, and the list goes on. I felt really awesome "debugging" their code and helping them out. (Most of them were usually either just missing a quotation mark or bracket, but shhh, don't tell them- or else I won't seem like a tech wizard anymore)

Then we moved on to 3D printing. My sister currently works at a 3D printing company and for Christmas, she even made me a 3D printed snowflake necklace. Therefore, the process was quite familiar to me. However, the session was fun nonetheless and to be honest, when could 3D printing ever get boring? 

At around 1pm, we moved on to HCI. HCI was probably my favourite because the girls got to be as creative as they wanted to be throughout the entire hour. They then got to present their mini projects for the rest of the girls. They are such an intelligent group!

By the way, you can tell the Red Group is the coolest by our Neko Atsume poster ;)

By the way, you can tell the Red Group is the coolest by our Neko Atsume poster ;)

Our last stop was programming, the girls were taught how to program using Scratch. The process is straightforward and is such an incredible programming language to teach to children! Check it out here: https://scratch.mit.edu/ Even with programming experience, Scratch is still very fun to play with.

Finally, all the groups then met up and participated in some tech demos. Microsoft was there letting the girls play Just Dance 4 with Kinect, the rest of the group leaders and I could not help but dance and sing along too. There was also a demo on FeelCraft, "a framework for creating tactile experiences for entertainment media". Learn more about it here: http://oliverschneider.ca/feelcraft/ It was an impressive demo and when Oliver Schneider was showing us his work, the room was filled with Ooo's and Ahh's! (Did I mention he worked for Disney Research? I bet Disney Research is actually the happiest place on earth.) 

Just like that, our day was wrapped up. It is an incredible experience and opportunity. I do not regret a single second spent on this workshop. I do not even resent attending a meeting the day before a midterm, which quite frankly, says a lot. 

There will be another workshop coming up very soon, I might blog about it if I have time but if not, here is my experience with GIRLsmarts4tech.

Learn more about GIRLsmarts4tech here.

Review: UBC CPSC 110

I survived the first semester of University!! 

My final course marks came out yesterday and it was terrifying. I was out all night for a dinner & movie date with some friends of mine from my Physics class. All I could really remember was us constantly checking our phones to see when our results would be released.  ( Whatta bunch of losers, I know haha )

Anyway, my marks were not as high as I had hoped they would be, but it's all good. It's only the first semester and at least I did not fail any classes; that's an accomplishment, right?

So as celebration for this milestone, I've decided to do a review on a course I took this semester: CPSC 110. I remember googling a ton about this course in particular, before going into University. Computer Science is my major, and I wanted all the tips I could possibly find on it. So, if that is you right now, you're in luck.

CPSC 110 is an introductory Computer Science course at UBC— "Computation, Programs, and Programming". To begin with, this course is relatively tough, especially if you have had no previous experience with programming. However, it is super doable, and if you are one to seek a challenge, this course is perfect for you. 

110 covers a lot of basics of programming with a language that is used almost specifically at UBC, called "DrRacket". This course is in a "reverse classroom" format where you watch videos of lectures at home, and lectures actually serve as practice. I personally really enjoyed this because just like any other University student, I had so much work to do that if practices were not done in class, I would have probably neglected doing them. 

You will find yourself hearing "Follow the recipe" at least 400 times throughout the duration of this course. It's frustrating, because I too, have tried changing the templates and making up my own recipes in order to force my tests to pass. However, and trust me on this, you will always benefit from following the recipe, rather than having a working code which does not. 

This course has 2 midterms and 1 final exam. The first midterm is a slice of cake. I'm sure most students who took this course would have to agree with me on this. However, do NOT underestimate this course just because you did well on the first midterm. The first midterm is worth very little and if you start slacking off after that, you will find yourself in a lot of trouble the night before your second midterm. This happened to me, but thank goodness, I managed to catch up right on time and still ended up with an A on the second midterm. Alongside the midterms were weekly problem sets. The problem sets, in my opinion was the most difficult aspect of the course. I would spend hours scratching my head over them but they are honestly really good practice. Be warned, they might take up to a couple of hours to complete, so don't start them one hour before the deadline! 

Finally, the final exam was actually quite simple. If you were able to follow along throughout the entire course, the exam should be able to reflect that. A lot of people will freak out after the exam because if you fail the exam, you will fail the course. However, believe in yourself, and block other people out because they will only bring you unnecessary stress!

Overall, I had a great time in CPSC 110 and every moment I spent in this course reminds me of exactly why I am in Computer Science, and just how much I love it. So, good luck if you too are taking this course, and if you have any questions about it, feel free to contact me! :)

Example of problems in CPSC 110

Example of problems in CPSC 110