Monday, March 21, 2016

Where to Go from Here

So, we're working on the Transterpreter? That's great! But, how? In my last post, I mentioned that we were working on building a package for the Atom text editor from GitHub. Our package should take the Occam-pi code written in the editor, send it to the Transterpreter server for compilation, then send the compiled code to an Arduino.

Why is this an important contribution to the Transterpreter?

Enter, Plumbing (Plumb2 in it's current state). Plumbing is a set of tools developed for the Transterpreter project to provide anyone with the ability to program on small platforms like the Arduino. Even though plumbing already provides a way to remotely compile code through the Transterpreter, there is very little support for it. In fact, the GitHub site for the concurrency organization (which hosts the Transterpreter, Plumb, and all supporting code) only has 4 contributors. Only one of them seems to still consistently make changes to the code in these repositories.

Hmmmm, something seems wrong.

While researching this aspect of the Transterpreter (Plumbing, that is), I am starting to wonder if I fully grasp what Plumbing is. I took a break from writing and have reached out to my team members to see if we could possibly define what we are working on before we dive in and potentially mess up or leave major aspects out. Sorry to leave you in a state of suspense, but I will have an update as soon as I am comfortable with my knowledge of Plumbing!

Wednesday, March 16, 2016

So Long OpenMRS, and Thanks for All the... Fish?

    After half of a semester, and no successful changes to OpenMRS among the entire team, we have decided to part ways. It is bittersweet not to see all of the hard work from the 12 members of the OpenMRS team come to fruition. But, we have all decided that after so many promising paths that ultimately did not pan out, we would be better off working on other projects.

    Some of our previous team members have invested their talents in projects that are already being worked on by other teams. I; however, had to be difficult! Along with two of my previous group members (Austin Farmer, and Craig Warner), I have decided to start working on the Transterpreter project.

What is the Transterpreter?

    The Transterpreter is a project that was originally worked on by our professor, Dr. Matt Jadud. In short, the Transterpreter is a tool that allows the Occam-pi programming language to run on platforms similar to the Arduino. Occam-pi is a process-oriented concurrent programming language.

So, where do we fit in to this project?

    Right now, we have a very limited knowledge of how the core of the Transterpreter works. This is due to the sheer complexity of the project, the relatively short amount of time we have looked at it, and the "bug" that we have begun to address.

    We have started to work on developing a plugin for the Atom text editor (A hackable text editor for the 21st Century). Our plugin should hopefully take code written in Occam-pi, send them to the Transterpreter server (where it will be compiled), and send the compiled code to an Arduino.

    That's all the new information I have for now. But when headway has been made (or maybe not...), I will be sure to write more!

Sunday, February 28, 2016

Standalone OpenMRS

Step One - Download the Standalone Edition

    
From this page, download the most recent OpenMRS Standalone Edition zip file.

Step Two - Unzip

This part is pretty straight forward... unzip the folder that you just downloaded

Step Three - Navigate to the OpenMRS folder

  • Go to the unzipped OpenMRS folder.
  • Upon inspecting the items in this folder, I saw the file "README.txt".
  • README files tend to be a good file to read first, as they usually explain what the contents of that folder include.

Step Four - Read the Install Guide

The online install guide has two easy to follow steps.
  • "Download and unzip the standalone file"
  • "Execute the jar file in that folder"

Step Five - Run the Jar File

Following the installation guide, I executed the jar file in the folder. Nicely enough, the online installation guide has even provided the command that executes said jar file.
"java -jar openmrs-standalone.jar"

Step Six - GUI Setup

Running the jar file will eventually cause a nice little window to pop up. Two options are presented; one for an actual setup, and one for a development setup. I selected the development setup, as it fills the database with made up data.

Step Seven - Login

Login to the system with username "admin" and password "Admin123". This gives you access to the entire OpenMRS Standalone system.

Step Eight - Explore

Right now, my next step is to explore the system. I will try to find a problem to work on, try to replicate it, and hopefully fix it! 

Thursday, February 18, 2016

Fix All the Internets!

This last week, we have taken a bit of a detour in Software Engineering. This semester, Berea college has been experiencing an almost crippling problem with it's internet connectivity. As a class that relies heavily on the usage of the internet, we took it upon ourselves to devise a way to make it better. I chose to work on a team to try to find some forms of alternate, internet free, activities for students on campus. We had many great ideas, and decided to reach out to the groups and individuals who could help us put our plans into action. Some of the ideas that we devised were: pottery workshops, coding workshops, ultimate frisbee workshops, and many others! We have been so focused on brainstorming these ideas, and figuring out who to talk to about them, that I seem to have forgotten to blog this last week... whoops! In our endeavour to fix the internet, my group has contacted groups like Student Life. Alas, the groups and individuals that we talked to liked our ideas, but said that they were too busy to get to them this semester. Until we find a (or a few) group(s) willing to help us with these multiple workshops, the internet will continue to be the Berea student's only distraction from their school work.

Tuesday, February 2, 2016

Communicate Clearly

After reading about how to communicate clearly; I am prompted to recall not only a time that I feel I was successful in my communication, but also a time that I feel I failed in my communication. As someone who finds it difficult to even hit the "publish" button on a blog post, or even "like" on Facebook, it is going to take me some time to think of an example where I was successful in communicating. It is for this reason that I will start off with the latter: a time that I have failed in my communication. 

The Failure

I first noticed early in my Sophomore year at Berea, that I was not approaching any of my professors with questions or concerns about my work. If I ran into a problem in one of my classes, I would usually sit in my room and try to work through it by myself. I knew that this was a problem with some of my friends in our first semester at Berea, but they all seem to have gotten over it by their second semester. I knew that if I did not take care of this problem, it would likely progress and hinder me academically. As it turns out, I am better at telling the future than fixing my communication problem. Shortly after I noticed this problem, my grades started to drop and I found myself in a state of slight disarray. However; I was soon able to change my habits.

From Failure, Comes Success

One of my professors who was concerned about this steep drop in my performance, asked me to set up a meeting with them before the midterm. After discussing this problem with my professor, we were determined to discover the underlying reasons to my lack of communication. About 2 meetings in as many weeks later, my professor and I came to the conclusion that this problem was really just a matter of pride. Will my professors think I am stupid if I ask them for help outside of class? Will they turn me away for asking a question that they had already explained? After further discussion on the topic, my professor assured me that questions were always welcomed and actually well received. With this new knowledge in hand, my grades no longer suffered at the hands of personal pride. 

Sunday, January 24, 2016

Course Contracts

Discussion

    After carefully reading through the notes from the class discussion about the course contract, I have tried to break it up into some broader categories. From the discussion, I gathered that the class, as a whole, would like to be held accountable for our communication, organization, and contribution. Each of these broad categories have some major points that we would like to pay special attention to.

Communication

  • Let your group know (in advance) of any absences, late arrivals, or anything that may hinder group performance
  • Tell your group what work you have done regarding the project.
    • This one falls into two categories, as it is also important for organization.
  • Make sure the entire group knows what the collective and individual goals of the group and group members are.
  • Ask for help! Don't let your problems or frustrations go unknown to the rest of the group.

Organization

  • Document all of the work you have done.
    • If documentation is kept in a public/shared space, that your group members know about, the documentation will be effectively communicated.
  • Follow existing structure, and style of the project.
    • This applies to both code and documentation

Goals

  • Create a positive and supportive community.
  • Contribute to the group efforts consistently.
  • Contribute to the group efforts equally.
    • The idea of contributing equally seemed to be very vague. Should equal mean an equitable contribution from everyone, or a fair contribution. More on this later.
  • Focus on experience over the product.
    • "Success is a journey, not a destination. The doing is often more important than the outcome" -Arthur Ashe

Concerns/Suggestions Regarding Contract

    My main concern is with the idea of contributing to the group efforts equally. This idea was discussed briefly, but a big question mark seems to still adorn it. Does the thought of contributing equally mean that everyone's work should be scrutinized to see if it is just as good as that of a peer? Or, does it mean that everyone should put forth as much effort as they are possible? This point of the contract needs more discussion before I would feel comfortable including it.
    Another concern that I have with the contract, in it's current state, is that we should focus on the experience over the product. I think that the quote from Arthur Ashe best summarizes this thought; but, it seems that some people take this to the extreme. While reading my classmates posts on this, I have to agree with Austin Farmer about this topic. In his concern over this topic, Austin wrote:
"Progress needs made."
I think that what Austin meant was that we still need to remain diligent on working toward the end product, while also focusing on the experience.