At Oak Ridge National Laboratory, I developed a situational awareness tool using JavaScript and d3.js that visualizes a real-time stream of cyber security alert data.
MathLand – A Math Game for Elementary School Students
I. Introduction
For thousands of years, humans of antiquity learned from orators and great thinkers—knowledge passed down generation to generation through story and lecture. Until the printing press, the expansion of human knowledge was limited primarily to the wealthy. Then, for centuries, text was the primary learning format Read More
Python Go-Back-N Application
I was required to implement a Go-Back-N protocol application as one of my projects for my CSC 573 – Networking course.
For this project, we implemented the Go-back-N automatic repeat request (ARQ) scheme for my CSC 573 – Networking course. My partner and I first implemented the protocol in Python. We then carried out 3 experiments to Read More
Python p2p Application
I was required to implement a peer-to-peer application as one of my projects for my CSC 573 – Networking course. We had the choice of implementing in Java, C, or Python. My partner and I chose Python.
The p2p app is an implementation of a simple p2p system with a centralized index (CI) at a server. Peers may share and download Request for Comments (RFC) files from one another. The CI houses the address and the list of all known RFCS the peer has. Read More
Stress Visualization Monitor – hackDuke Hackathon ’14
The Stress Visualization Monitor is a system that monitors mental health by visualizing the galvanic stress response of the user. The user wears a sensor connected to an Arduino. The user can monitor their stress levels in real time through our web interface. The goal of the project is to increase the self-awareness of mental health by the user.
This project is a proof of concept. It was created in 24 hours by myself and my teammates at the Duke Hackathon ’14. The idea is for the user to wear the device to collect personal stress response data. This data could then be analyzed daily, weekly, monthly, etc. This is a possible addition in the wearable technology sect.
The app was developed using Python with Django, as well as the usual front-end web technologies.
See the source code: https://github.com/adamgillfillan/mental_health_app
Neighborhood Sports App – HCI Project
Neighborhood Sports is an interactive mobile-friendly application designed to increase the number of adults playing recreational team sports. Neighborhood Sports was implemented by closely following common human-computer interaction (HCI) principles. Neighborhood Sports improves upon competitors like Facebook and Meetup by increasing the convenience with which users can find and join local pick-up games.
Berry Bus – Senior Project
Berry Bus is an interactive bus tracking app that makes real-time campus bus information available online for Berry students. Berry buses are displayed on a detailed map, using the power of GPS and Google Maps. Stuck waiting in Krannert for the bus because it’s raining? Want to save time finding the bus from anywhere on campus? Use your smartphone or computer to instantly check the bus location. Read More
Final Screencast
Final Podcast
Final Blog Post
Introduction
This is my final blog post for my Software Engineering class. In this post I briefly describe Plato, I give the results of my experiment, and I analyze what I learned about the open source code for my project. Read More
List of Open Source Projects
Here is my list of open source code projects that I will run plato.js on for my Software Engineering project.
plato.js :: https://github.com/es-analysis/plato
Are Software Metrics Useful?
Source Code Analysis and Javascript
What Makes a Good Source Code Static Analysis Tool?
Useful software systems change [1]. The best practice in modifying software without prior knowledge of the source code is to methodically investigate the system rather than implementing an opportunistic approach [1]. Robillard, Coelho, and Murphy’s study showed that developers who do not know a system of software must take a focused approach to changing it. Read More
Game Cube
Game Cube
Description
Game Cube is an interactive cube with an LED on each face. Game Cube allows its users to appreciate the aesthetic qualities of light and color through interactive rotation of the cube. Game Cube utilizes an accelerometer to change the colors of the LEDs dependent upon the position of the cube in the user’s hands.
Interacting with the Game Cube is fun and easy. The user can simply pick up the cube and begin by pointing any corner of the cube upward and holding for 3 seconds. This places the user in the Menu Interface. In the Menu Interface, each face has a certain color corresponding to a different setting. Pick a setting by placing the desired “setting” face upward (facing the ceiling). The user will know what face is currently selected by a blinking light on the selected face. By holding this face in this upward position for 3 seconds, the user enters the desired setting. Read More
Lab 9: Serial Communication/Wireless Control
OVERVIEW:
This lab was broken up in to two sections. For the first serial lab, I sent data from a potentiometer to a program on the computer. The program graphed the output of the sensor on screen. For the second serial lab, I sent data from two potentiometers to control the position of a shape on the computer screen. For the final portion of this lab, my lab partner and I created a doorbell using wireless communication–one Arduino controlled the button, while another Arduino controlled the buzzer. Read More
Final Project Proposal
OVERVIEW:
Assignment Prompt
“Your task for the final project is: Create a physically interactive system of your choice. Your focus in this assignment should be on careful and timely sensing of the relevant actions of the person or people that you’re designing this for, and on clear, prompt, and effective response. Any interactive system is going to involve aspects of listening, thinking, and speaking from both parties. Whether it involves one cycle or many, the exchange should be engaging.“ Read More
Lab 8: Processing
OVERVIEW:
For this lab, I learned about programming with the Processing programming environment. Processing is an open source programming language and environment for users who want to create images, animations, and interactions. In this lab, my lab partner and I created a screen drawing of a pumpkin using two-dimensional primitive shapes and the basic color functions. We developed an algorithm to change the position and size of our 2D shape when a user moves the mouse. Read More
Lab 7: Shift Register
OVERVIEW:
For this lab, I learned about shift registers. I learned what to do when I run in to the problem of running out of pins on my Arduino board: use a shift register! A shift register controls multiple outputs at a time while only taking up a few pins on the Arduino. Read More
Lab 6B: H-Bridge
OVERVIEW:
For this lab, I learned how to control a DC motor’s direction using an H-bridge.
To reverse a DC motor, you need to be able to reverse the direction of the current in the motor. The easiest way to do this is using an H-bridge. Read More
Lab 6A: Motor Control
OVERVIEW:
For this lab, I learned how to use a transistor to control high current loads with an Arduino. Specifically, I used a TIP120 transistor to control a motor with an Arduino. Read More
Wally World
OVERVIEW:
For this week’s assignment, I was instructed to pick a system of interactive technology in public used by multiple people. The goal was to take notes on how people use the object and come to a conclusion about the successes and failures of the interactivity of the system.
I chose the Wal-Mart self-checkout system. Here is what I found… Read More
Ninji Chop!
OVERVIEW:
Our task was to design and prototype a novel kitchen object. This could have been an improvement on an existing kitchen artifact or an entirely new one.
Lab 5: Analog Output
OVERVIEW:
For this lab, I learned the importance of Pulse-Width Modulation (PWM) and the role it plays in analog output. Read More
Lab 4: Analog Input
OVERVIEW:
For this lab, I practiced performing analog input with the Arduino. I created circuits using a potentiometer and varying sensors to detect light, temperature, force, and flex. Read More
Freakout!
OVERVIEW:
For this assignment, I designed and implemented my own version of Pong. There are two players–each has a button at their end of the “table”. Read More
Lab 3: Arduino – Digital I/O
OVERVIEW:
For this lab, I learned how to perform digital input/output with the Arduino. I created 4 different circuits. Read More
The Design of Everyday Things
THE DESIGN OF EVERYDAY THINGS:
For this assignment, I am to list 7-12 of the most important ideas I got from reading: Norman, The Design of Everyday Things, Chapter 1: “Psychopathology of Everyday Things” Read More
Alabama REU ’12
Last summer I was selected for the Research Experience for Undergraduates in Empirical Software Engineering at the University of Alabama. I was encouraged to apply for this opportunity in the Spring of 2012 by my professor, Dr. Hamid. The REU was a 9 week long paid internship. In addition, housing, food, and travel expenses were paid for.
My role as a research intern was to aid Dr. Jeffrey Carver and Dr. Nicholas Kraft in the study of the benefits of design patterns in the software development process. Read More
Imaginary Expressive Object
Imaginary Expressive Object:
My assignment for this week is to imagine an imaginary interactive object that could exist in the real world. Read More
Lab 2: Electronics
Overview:
The purpose of this lab was to introduce me to a few basic electronic principles by testing them myself. Read More
Sensor Walk
My first assignment for Physical Computing is to take a walk around Berry and make note of interesting sensors. Here is what I found…
Lab 1: Soldering
Overview:
The purpose of this lab was to learn the skill of soldering. Read More
Introduction
This is my blog for my class entitled Physical Computing. I will keep a log here of every lab and assignment I do. Read More
hack.me
Looks like you’ve successfully completed the hack.me challenge for CSC515! Good for you, even though that was kind of easy.