John Morales

Research

Below are a selection of research projects and coursework I completed during the M.S. program.

Research / Projects

  • Graduate Research Assistant, Summer/Fall 2008
  • Participated in a research project to design a scalable video on demand (VoD) system for niche content. Implemented new resource allocation strategies on the OctoSim BitTorrent simulator for testing and the python BitTorrent client v4.0 for PlanetLab experiments.

    Tech Report (2009): Serving Niche Video-On-Demand Content in a Managed P2P Environment

  • pTHINC Audio Transport and Latency, Fall 2007-Fall 2008
  • Focus of the research was on improving the audio performance of Columbia's pTHINC thin-client, with a special emphasis on VoIP audio quality and mouth-to-ear latency. Modifications made to the Windows Mobile 5.0 pTHINC client included support for audio transport over UDP and performance optimizations, which together provided a 29ms (9%) improvement in mouth-to-ear latency.

    Final Report: [pdf]

    TCP video playback
    UDP video playback (Improved framerate compared to TCP)

Coursework

  • Advanced Internet Services, Spring 2008
  • Semester-long project in C/GTK+ resulting in a robust audio/video VoIP client. Implements RTP/RTCP according to RFCs along with a minimalist version of SIP for call signaling. Audio encoded with mu-law, video with JPEG. Interoperable with existing open source OpenWengo and Ekiga softphones. (binary / source)

  • VoIP Security, Fall 2008
  • Implemented an iCal-to-Presence gateway to allow a user’s iCalendar status to be synced with a SIP Presence server. Built in Java in group of 3; conforms to RFCs for iCalendar (2445), CalDAV (4791), and SIP Presence (3856).
    (http://code.google.com/p/icaltopresencegateway)

  • Advanced Software Engineering, Fall 2008
  • In team of 4, created an online virtual stock exchange in Java using EJB 3.0, JMS, JBoss and Hibernate.
    (http://code.google.com/p/virtualstockexchange)

  • Video Game Design, Fall 2007
  • In a team of 4, created a sit-and-go multiplayer video game, Blobs. Following an RTS genre, players manage an army of units that interact with each other and the game board by exerting physical forces and special abilities.
    (http://code.google.com/p/threes-company / binary / source)

  • Computer Vision, Fall 2006
  • Incrementally developed a vision processing library in C with support for motion field detection, photometric stereo and 3D depth mapping. (source)