Posts

Showing posts from 2017

Performance Engineering

Image
This past term, I've been spending most of my time on MIT's Performance Engineering class . It's a project based class, and since your code can always be faster, people often spend around 40 hours a week! To get an idea of the areas the class covers, I'm linking my study sheet for the second exam, which I just had today. However, I learn the most from the projects. Here are some thoughts on concepts applied and lessons learned from each project (each of which I coded with a different partner): Project 1: Bit Rotation Final writeup here The first project was mostly about bit hacks. The instructors gave us a reference implementation, that rotated the bit array by k bits by shifting the whole array one position at a time. This was very slow - running on AWS, the job didn't even finish because of the 20-second timeout! However, we were able to cut the time down to 44 microseconds (median of 5 runtimes on AWS). The first trick is to change the algorithm .

Mavo framework

Mavo's launch It's hard to believe sophomore year is over! One of my favorite parts of this year was working on the Mavo framework , a project from the Haystack group (MIT CSAIL), with Lea Verou . Mavo is a web framework for creating dynamic web applications using only HTML. It enables data binding using just HTML expressions, and is an alternative to other frameworks, like AngularJS from Google and React.js from Facebook. Although non-programmers and designers can create static web pages easily with a basic knowledge of HTML and CSS, it's still fairly difficult to build interactive views. Current tools have steep learning curves. Some frameworks have poor performance, especially when users don't know how to use them optimally. Even creating simple web applications requires at least a couple hundred lines and knowledge of JavaScript. Mavo aims to solve these problems by being a WYSIWYG tool, where users can describe complex data schemas by adding HTML attributes.

PlanForMe | iOS app

Image
PlanForMe, the iOS app I've been developing for the past few weeks, is now available on the app store!  The official description is: PlanForMe is an automated assistant that optimizes and organizes your schedule for you. It makes planning your day quick and easy, whether you have a lot of overlapping events or just want to prioritize your meetings and activities.   You can:    Order your events by priority    Sort events into "Must do", "Would like to do", and "Don't want to do" categories    PlanForMe:    Integrates with your calendars   Creates your plan for the day, taking into account each event's category and priority     Just tap a button to add the plan to your calendar! I've wanted to create an app like this ever since the start of last fall semester, when my calendar was double, triple, and quadruple booked with meetings, events, classes, parties, office hours, re