HackMIT

Mon 19 September 2016

One of the core missions of a Fedora Ambassador is to represent the Fedora Community at events. On the weekend on September 17 and 18, 2016 I attended HackMIT as a representative of Fedora with Justin Flory. I was also honored to serve as a mentor to several teams.

HackMIT is MIT's headline hackathon. This year there were over 1000 undergraduate students in attendance from around the globe. I met students from Cambridge University, Trinidad, and India.

Meeting the Teams

It is always interesting to see what participants of non-Linux technical events use as their platform of choice. HackMIT 2016 was dominated by Mac laptops running OS X, but several teams were running Linux as a web server for their project. A small number of students were running Linux on their laptop. While most of the participants knew about Linux, and Ubuntu, a solid majority were not familiar with Fedora. Several people asked about Fedora and wanted to know about the Four Foundations and the relationship with Red Hat. Many students familiar with Fedora were surprised and excited to see Fedora represented at HackMIT.

Mentoring

HackMIT 2016 featured a lot of interesting and innovative ideas:
  • HomeBites that helps students, or weary travelers, find local hosts willing to make and share a home cooked meal.
  • Sunrise utilizes a bed and lamp working together to create a smoother wake-up experience. The bed tracks the user's sleep patterns and shares them with the lamp. The lamp then uses that data to gently and gradually increase the light in the room as the proper wake-up time approaches.

There were three projects I found particularly interesting.

MeTime

MeTIme

The MeTime Team

The MeTime team was working on an application that would allow room mates to communicate about needing privacy. A virtual "don't enter" the room sign. MeTime would use the Facebook API functions to allow a user to schedule a MeTime event requesting privacy. The application would support various levels of privacy requests as well as reminders to the requestee. One additional feature the team hopes to incorporate in the future is a proximity alarm to alert the requester that the requestee may have forgotten about the request. If you are interested in taking a look at their code you can find the MeTimeProject on GitHub.

Team Ubuntu

Running Linux

This entire team ran Ubuntu as their primary OS

I met this team as I was handing out Fedora HackMIT 2016 badge information. Two of members of this team brought external monitors and it was easy to spy Ubuntu being run because of the recognizable Aubergine background and Unity Launcher on the left side of the screen. This team was building a music app and leveraging gstreamer to play the music. The initial plan was to use a camera to recognize hand gestures and change tracks based on those gestures.

Conversationalist

Conversationalist

Charles Profitt and May from team Conversationalist reviewing code

I spoke to team Conversationalist during the first day and was intrigued by their idea. The problem they were trying to solve is where one participant in a group meeting dominates the discussion and prevents other voices from being heard in the group. Their solution was to leverage a web application that would have access to the microphone of either a computer or mobile device to determine which person was speaking the loudest. The program would then represent this data visually on an infographic that uses brightness to highlight people who should be given more of an opportunity to speak. On the second day the group was having an issue where the brightness was not shifting based on who was talking. I examined the code with May and asked her a couple of question that helped her make adjustments to the code.

post '/data/userAndVolume' do
        #puts "hey"
        user = params['user']
        vol = params['volume']

        current_volumes[user] = vol
        max_val = current_volumes.values.max
        maximum_users = current_volumes.select {|k,v| v == max_val}
        minimum_users = current_volumes.reject {|k,v| v == max_val}


        maximum_users.each do |user,volume|
                if(talk_counts[user] < 10)
                        talk_counts[user] += 1
                end
        end

        minimum_users.each do |user,volume|
                if(talk_counts[user] > -10)
                        talk_counts[user] -= 1
                end
        end

        JSON.generate(talk_counts)
end

Coversationalist is hosted on GitHub. May, one of Team Conversationalist members, would love to see more people contribute to the program or give their feedback.

Comments !

blogroll

social