Photo: Betsy Ross
Photo: Louise Elsberg
Photo: Holy Crow
Every entry here is an answer to a problem that I or someone else had, and represents a project that I researched on my own, and then designed and implemented on my own.
I didn't want the user to experience the typical reload delay in navigating among parts of the site, so I designed it as a single-page application, where the "links" (about/portfolio/music) switch among the sections by adjusting the display
style element to show or hide each section.
But I also wanted to be able to link to each section. So I wrote some JavaScript that generates three versions of this page, differing only in which section is initially visible. In addition, the script constructs the portfolio section from a skeleton structure and a dictionary of data for each portfolio entry.
Published at http://justinfrancos.com
I wrote a calendar-scraping Python script, which lives on a Linode server. The front-end accepts online calendars that you specify by URL, uses AJAX and SSE to communicate with the Python script, combines the resulting calendar data and displays them by date.
Many libraries are utilized by the calendar scraper, including html2text, which I patched to include XPath-ish data with every node of text.
Published at http://cs.justinfrancos.com
Commissioned by Ryan Moore from The Globe Institute's Sound and Consciousness Program to automate the drawing of diagrams that he uses for his classes. They took him hours to create, now they take minutes.
The drawings consist of a circle with lines connecting (not necessarily adjacent) vertices of equilateral shapes along the circle's circumference.
Published at http://justinfrancos.com/cyclicalpatterns
Automated a musical ear training exercise I learned in high school, which originally required a tape recorder and many hours of preparation.
This is a rewrite/redesign of an earlier (2010) version, which was written in Objective-C.
1.53K units sold, 4.5 star rating (as of 3/8/2017)
Third party reviewEar Sharpener in the iTunes Store
Published at http://earsharpener.com
The principal wanted a permanent remote monitor mounted in her office. So I Installed Debian on an HDMI stick, and replaced X's login software with a script that ran 12 instances of mpv, each one accessing an RTSP stream from ZoneMinder and displaying in a 3x4 grid.
There is a “brain fitness” game called “Dual N-Back”. I made a musical version of it called Dual N-Bach.
Eight year old laptops had hardware that was working fine but Windows XP was approaching end-of-life. So I wrote a set of scripts to be run against a fresh Linux Mint (Qiana) install, to make the laptops suitable for students and for being integrated into a Windows domain environment, which could then be used to image all ~100 laptops using a FOG server that I setup.
Scripts automated: Joining the domain using Centrify on first boot after imaging, customizing available applications, pre-configuring wireless connection, disabling text mode except for via "Magic SysRq", replacing mdm with lightdm, adding printers, replacing the boot logo, setting some Libre Office defaults, locking the background, and allowing an admin to access an xterm while a student is logged on.
Automated a musical ear training exercise I learned in high school, which originally required a tape recorder and many hours of preparation.
I had to use C++ for some of the low-level audio, specifically to synchronize playback of multiple sounds.
This is an earlier version of the above (2015) version of Ear Sharpener.
From 2013 until 2016 I played keys with Johnny Blazes and the Pretty Boys, a funk/soul group consisting of many talented friends whom I love. During the three years that I was with them, we performed at Boston's Pride Festival, Salem's Pride Festival, The Slutcracker after party, closed out many burlesque shows at Oberon, and played at other venues around Boston/Cambridge/Somerville including Johnny D's, TT the Bear's, Radio, The Midway, Sally O'Brien's, Beat Brasserie, and ONCE/Cuisine En Locale.
We introduced our debut album, Soul Vernacular, in 2015. One of the tracks from the album, "Cold Clear Light", appears in the Harmonix video game Rock Band 4.
Soul Vernacular's title track:
In 2008 I composed and performed a classical style piano piece:
An atmospheric collaboration with Dana Colley (former Morphine) circa 2010. Dana on drums, alto and bari sax, me on Fender Rhodes:
From 2002 until 2006 I played keys in a rock band alongside some incredible musicians and songwriters. Here is a sample track:
A sad angsty song I wrote in high school:
In 2008 I collaborated with Ashley Clark and MIT's artist in residence Joe Davis on the short film "Making Fire", which screened at the 2008 Moscow International Film Festival.
Various other appearances and collaborations: