Instructions for Arduino Temperature Sensing: Compost Computing

Categories:  Culturally Situated Community Sensing

Arduino-Compost Handout

Click the above link to download a handout detailing the set up and use of an Arduino temperature sensor and countertop compost bucket.  Use the temperature sensor to explore how the heat level of the compost changes over time!

On licensing our code

Categories:  Brian Callahan

One of the more publicly visible outputs of the 3Helix project is the computer code we produce. At the center of our code output is the CSnap project. The core of CSnap is to create an environment for computer science and mathematics that allows exploration of these important STEM concepts through an awareness that cultures operate within these mathematics. Two particularly powerful examples are Cornrow Curves [0] and Adinkra carving simulations. [1]

But 3Helix is more than just CSnap! There is a plethora of other code that makes up the 3Helix program: controlling Arduinos, GIS databases, and web front-ends are just some of the examples of other code developed to promote STEM academics and social justice. But with all these independent code projects comes an important question that has implications for the spread of social justice on the broad scale, as well as securing the future of the 3Helix program more locally. What licensing is most appropriate for these projects? A critical aspect of the social justice aspect of the 3Helix program is focused on making our code available to everyone in order to have this code produce socially beneficial outcomes that we as fellows could never imagine. Free Software licensing is the socially responsible way to achieve this goal. However, Free Software licensing is a much more nuanced endeavor than simply announcing “our code is free for everyone to use!”

As a Free Software developer, this nuance is a focused interest of mine. Not licensing the code is not an option: failure to license code retains all rights to the author, effectively killing any hopes for reuse.

For reasons of inheritance, the code for CSnap is licensed under the GNU Affero General Public License, (AGPL), [2] specifically version 3 of the license or any later version, a spin-off of the more popular GNU General Public License (GPL). [3] Both licenses say that when a user is given a program, they are also entitled to the source code that created the program. The primary difference between the two licenses revolves around the question of “Who is a user?” For the GPL, a user is someone who receives a copy of the program in a local manner: think on a CD or downloaded to one’s hard drive. The hole in this definition is that software that is used solely online, things like Facebook, have no users as defined by the GPL. The AGPL closes this hole by redefining a user by anyone who uses a piece of software, regardless whether or not that person has received a physical copy of the program.

What this means for CSnap is that anyone who uses CSnap is entitled to a copy of the source code. This entitlement is fulfilled by the offering of CSnap source code on our GitHub repository. [4]

The problem going forward, however, is what license to choose for our other projects. The AGPL is not always an easy license with which to comply: it forbids linking code licensed under the AGPL with code licensed under a different license. The only exception to this is the GPL itself, but only if using the most recent AGPL and GPL versions and only because the authors of both licenses had to explicitly write in that exception; in code lingo, they wrote in a “hack” to make the exception work.

While relicensing CSnap to another license is likely impossible, as it would require all previous authors to agree to such a change, we should turn our attention to our other codebases in the 3Helix program. While the AGPL and GPL can be good licenses to proliferate code, it is probably not the best route for the 3Helix code: it would, almost counterintuitively, reduce the ability for our code to be used for social justice. Both the AGPL and GPL may impose too many restrictions for others to reuse the code.

Instead, more permissive licenses, such as the 2-clause [5] or 3-clause [6] BSD or MIT [7] licenses, allow for greater use and reuse of our code. These licenses establish minimal barriers for code reuse. If our initiative is to generate social justice, the greater number of hands we can get using our code the better we can achieve these goals.










GK12 fellows sign up Albany High students for 3Helix

Categories:  Uncategorized

Charles  danielleGK12 fellows were on hand during Albany High School’s Freshman First day. Students were able to sign up for 3Helix workshops that will be held after school starting at the end of the month.

John Drazan’s podium presentation at IEEE EMBS in Chicago

Categories:  Uncategorized

John Drazan outside of the podium presentation entitled “Innovations in Biomedical Engineering Education”

John Drazan traveled to Chicago for the IEEE EMBS conference to present a poster based on his research in passive, wireless force sensors in addition to a podium presentation for his outreach work with the 3Helix program. The podium presentation that he gave was titled “Using Biomedical Engineering and “Hidden Capital” to Provide Educational Outreach to Disadvantaged Populations”.

Dr. Maysam Ghovanloo, the panel director for the "Low power wireless Sensors" podium session, stopped by John's poster

Dr. Maysam Ghovanloo, the panel director for the “Low power wireless Sensors” podium session, stopped by John’s poster on passive wireless force sensors



GK12 Fellow John Drazan and other presenters from the “Innovations in Biomedical Engineering Education” podium session at IEEE EMBS in Chicago