Sam Halperin

Welcome! — February 9, 2016



Photo by Sam Abrams
Photo by Sam Abrams

I am a PhD student in Computer Science at the College of Engineering and Computing at Nova Southeastern University, an Android developer, and a programming instructor at Thinkful. Twelve years ago, after a few career false starts including a stint in boat school and an undergrad degree in Art from Penn, I got a job on the QA team at my first tech company, working up to the Software Engineer Two position. I also eventually graduated from Brandeis CE’s MSE program in Software Engineering (2011).  I’m passionate about software as a craft, like carpentry, boat building, graphic design, or any other, and currently work to pass on this ethos by mentoring new programmers.

Untitled-1-4     6a2785a159dd22f5376c2d334ab1ffb3       thinkful-logo

indy-hall.png       Screen Shot 2016-02-12 at 1.37.43 PM.png

Continue reading

An ode to the working programmer — February 13, 2016

An ode to the working programmer

Steve Jobs famously said, and almost the entire tech community has picked up on this, that there are two types of programmers (and I’m paraphrasing): ‘Amazing, brilliant, A-player geniuses’… and ‘bozos!’.

Screen Shot 2016-02-13 at 4.14.05 PM.png

This is Jacob Kaplan-Moss, one of the co-creators of Django, eloquently dispelling that myth.  His thesis: why should we assume that a bimodal (the one on the left) distribution is any more common in programming than it is in any other skill set.  Why shouldn’t we assume that like everything else, the distribution is normal.

Continue reading

You don’t know something until you teach it! — February 9, 2016

You don’t know something until you teach it!

I had the pleasure of working with some really bright and motivated new Android programmers at the Android Study Jam, hosted by Android Alliance Philly this week.  The Jam goes through a beginning Udacity course, and since I’ve been programming Android for going on 3 years now, and had recently finished the Udacity Nanodegree, I decided to volunteer.  It will run for 5 weeks.

I will specifically call out, that this was an incredibly diverse group of students with respect to gender, generation, and ethnicity, something that  is wonderful and that I have not typically seen at tech meet-ups in Philly.  It did leave me wondering if there is something unique about Android that has a broader appeal.  (If you look at iOS versus Android adoption statistics internationally, there is some data that bears this out.)

You might also be interested in a paper I gave at FOSSCON ’15 about technologies like Computer Graphics used to entice new programmers to take up computer science.  Using commercially and culturally relevant tools is important for bringing in new programmers.

Continue reading

Android 2D Canvas Exploration — January 28, 2016
Architectural Visualization in Recent VR Research — January 3, 2016

Architectural Visualization in Recent VR Research

Screen Shot 2016-01-09 at 1.08.55 PM
Images from current research in Architecture and VR (authors: see below)


An annotated bibliography…

Architectural visualization is one of the primary use cases for modern implementations of virtual reality.   The capacity to view and interact with a design using an immersive display gives information on yet to be constructed spaces and designs that are not available in flat renderings.  This is chiefly due to the VR phenomenon of Presence, or the sense of inhabiting a space in which the viewer is not physically located.   Below is an annotated bibliography of recent (2011-2015) VR publications looking for articles on architectural visualization in VR, a short synthesis is presented at the end of the review.

Continue reading

2015 Android Apps — December 13, 2015
Dipping a toe into RxJava and RxAndroid — October 5, 2015
Towards ‘Polylithic’ Activities with Custom Views in Android — October 4, 2015

Towards ‘Polylithic’ Activities with Custom Views in Android

“Your Activities seem a little monolithic, that’s pretty common…”

— Code review

I recently refactored one of my apps to take code out of the Activities and encapsulate features into custom Views.  The result was that my Activities now are very sparse, and basically just implement the Activity lifecycle callbacks, with the Views themselves being responsible for their own data and data binding.  A future iteration will consider the use case where we want to incorporate a more traditional Controller class so that we might better share data between Views, but for now, these standalone Views serve to better organize the code for maintainability.

Continue reading

The Smithsonian Cooper-Hewitt API in ‘Moderne’ for Android (Technical profile) — October 1, 2015

The Smithsonian Cooper-Hewitt API in ‘Moderne’ for Android (Technical profile)

The use case for this education app was to build a visual connection between terms like “American Modern” and “Rococo”, and representative work from those periods. With hundreds of amazing drawings, paintings, and blueprints from each era presented in an experience that maintains the native look and feel of Android Material Design, the app builds a solid intuition for the work.

Continue reading

Multi-flavor builds and ContentProviders on Android — September 29, 2015

Multi-flavor builds and ContentProviders on Android

snippet from build.gradle (see github repo below for full file)

The challenge here is that we want to re-use our ContentProvider across free and paid flavors of an app, but Android requires CP’s to have unique ‘authorities’ (more on that later).  In this article we will solve that problem. If you are curious about the context for these snippets, see the Philly Crime Map project on github here.

Continue reading

10 Comments About the Google Android Nanodegree on Udacity — September 26, 2015

10 Comments About the Google Android Nanodegree on Udacity

10. AND is scheduled for 12 months, but you can (and should) do it in 3.

The Nanodegree is set up for a 12 month timeline, but it would be hard to imagine being able to maintain any kind of continuity between development sessions if you spent the entire 12 months on it.    I had the summer off, and even though I had quite a bit of Android experience already, I still believe that the best way for someone (even a beginner) to do this program is to hit it as hard as possible for as short a period of time as possible.

Continue reading

Philly Bike Share Map for Android (Technical profile) — May 15, 2015

Get every new post delivered to your Inbox.