Thursday, March 31, 2011

Slowly but Surely ...

We continue to work on our Sugar activity in Python.  Since none of us is very familiar with Python and the PyGTK framework, it is a slow process.  Integrating the GUI elements with our data has been the trickiest part.  After simplifying our original plan several times, we have finally come up with a program that is ready to be sugarized. Once we have created our icon and bundled the program into an .XO package, we need to get our activity onto the Sugar Labs website so that it can be downloaded.  I think we will also have a page on the wiki where we can post some information about our activity, including features that we would like to add.  There was a very helpful FLOSS manual that spelled out the whole process (referenced in an earlier blog), but it is gone now.  I did find a way to submit our .XO package.  I'd really like to make sure we've included everything before we submit the activity to the review team.  We may email the development team to try to find that manual, or we may just try to submit the activity and hope we did everything correctly. 

Tuesday, March 29, 2011

POSSCON

I attended POSSCON on Friday.  There were 2 workshops sessions, each 2 hours long, as opposed to the many 45-minute sessions on the previous days.  In the car ride up to the conference, someone who attended the conference the day before talked about the 3D printer presentation.  I hadn't been interested in this topic when I saw it on the website, but I was more interested after hearing about it so I attended the workshop.  They showed us some free open source software that one can use to create 3D models to print on the printer.  They also set up tables with different components of the printer so that attendees could attempt to put one together.  The workshop was very interesting, but I would have liked to hear more about what they see as major future uses of 3D printers if they become a standard tool for households and businesses.

The second workshop I attended was on Drupal, which is an open source tool for creating large, complex websites.  I was fairly interested in this software, but was very disappointed in the presentation.  For the first hour and a half of the workshop, 2 guys talked through a PowerPoint presentation of Drupal.  The slides were all formatted the same:  bullet points in white text on a black background.  I would have appreciated a demonstration of Drupal and some of the websites that illustrate Drupal's unique abilities.  I tried to download Drupal while in the workshop so I could get a better idea of how it worked, but it seemed more involved than what I was willing to deal with just to test it out. 

I think that Thursday would have been a much better day to attend the conference.  There were more sessions available because they were shorter.  I thought the 2-hour sessions were too long.  I also think that many presenters didn't stick around for Friday.  Many of the booths were empty.  My classmates who attended on Thursday saw Walter Bender give a presentation on an XO laptop, and were able to chat with him after.

Overall, it was a good experience, but I wish I had been able to go on Thursday instead of Friday.

Tuesday, March 22, 2011

Project Progress

We are currently in Week 2 of our timeline for our Sugar Labs activity.  I think we are on schedule although the plan needs to be adjusted a little.  We at first thought that we wouldn't start coding in Python for a while, but then realized that we need to use some Python when designing the GUI.  The other change to our plan is that we probably won't be using a database as previously thought.  Instead, our data will be stored in Python lists.

Alex has made a lot of progress on the GUI using PyGTK and Glade.  Most of the code is in an XML file, but there is also a little Python.  There are a few changes that we'd like to make to the functionality, but it is a good start with a layout that we are pleased with. 

We have also spent some time talking through the algorithm that we think will work well to come up with a score between 1 and 100 (determined by what the user has eaten in a day).  We've decided to weigh each food group based on how many servings are recommended in a day.  Since there are 5 food groups, there is a potential for 20 points from each group.  The number of points for each serving, however, depends on how many servings are recommended from that group.  For example, since 6 servings of grain/bread items are recommended, each serving is worth 3.33 points.  So if a child eats exactly 6 servings of grains in a day, he/she will earn 20 points for the grain category.  Only 16.67 points would be awarded if the child only ate 5 servings.  If the child goes over the recommended servings, we will start subtracting from the total.  So eating 8 servings of grain would result in 13.33 points.  We realize that this is a very simple algorithm, but we think it will serve our purpose for now, and we can adjust it later if necessary.

Thursday, March 17, 2011

Preparing for POSSCON

The Palmetto Open Source Software Conference is coming up next week.  I've got a couple of classes that I can't miss on Thursday so I'll only be attending the conference on Friday.  There's not a whole lot going on that day, but at least I'll get to experience some of it.  On Wednesday and Thursday, the sessions are shorter so there are more of them.  On Friday, there are only 2 sessions (workshops), and they are each 2 hours in length.

Our assignment during POSSCON is to try to meet 3 speakers that we had chosen beforehand.  My first choice of all the speakers is Walter Bender.  He is the founder of Sugar Labs, and I would love to have the opportunity to talk with him about our group's planned activity and any advice he has.  Also, he is interesting to me because his experience with open source is with humanitarian efforts.  This is something I can see myself becoming more involved in once I'm finished with school.  At the conference, he will be on a panel of executives speaking about the future of open source.  Hopefully he will still be around on Friday.

Of the 4 workshops offered at 9:45 on Friday, I've narrowed my choice down to 2.  One workshop is about open source CRM software (presented by John Mertic, Sr. Software Engineer of SugarCRM), and the other is about OpenOffice (presented by David Both).  Both topics are interesting to me, but I will have to do a little more research before I decide.  Whichever I go to, I would like to meet that presenter and ask some questions.

For the 1:15 workshop, I will either attend the History of Linux (presented by John Hall) or Starting a Business on the Cheap Using Open Source (presented by David Duggins).  I've done some reading on the History of Linux so I think this workshop would be interesting, especially now that I have some experience with Linux and more knowledge of operating systems in general.  I'm not planning to start a business, but I do think it would be interesting to see what open source software that is available that Duggins thinks would be beneficial to businesses.

Besides POSSCON, I will also be attending the Check-IT-Out conference in Waxhaw, NC (south of Charlotte) this Friday and Saturday.  (I've actually been having a hard time keeping straight which conference is on which weekend in my head.)  This conference will focus on the software, etc. involved in supporting Bible translation efforts around the world (mostly Wycliffe Bible Translators).  It will be held at the JAARS facility. 

I'm very excited to know more about what this organization does and the software they produce.  I'd also really like to know what volunteer opportunities are available.  This seems like the perfect situation for open source.  I'm curious to find out if any of their work is open source, and if not, if they have considered it.  I think that I will gain some insight at this conference that will help me to ask more meaningful questions at POSSCON about how open source could be incorporated into Bible translation software.

Tuesday, March 15, 2011

Timeline

The Flux Capacitors have come up with a timeline for our Sugar Activity:

Week 1:  Design, diagrams
Week 2:  Create database and algorithm
Week 3:  Implementing design in Python and SQLite
Week 4:  Assess our progress and adjust plan accordingly
Week 5:  Sugarize and publish activity; create wiki page on Sugar Labs site
Week 6:  Handle any outstanding issues and present project to class

We believe these are realistic goals and that we'll be able to learn a lot in the process.  Besides coming up with a timeline, we've also decided that each member of our team should be an expert in one area of the project.  Although we all will help with each part, only one person will be responsible for doing extensive research on the topic.  Our areas of expertise will be:

Jordan:  Databases (SQLite)
Alex:  GUI design and graphics
Austin:  Sugar API, Python
Megan:  Nutrition content, algorithm

Wednesday, March 2, 2011

Now the Fun Begins

My team (Flux Capacitors) has been considering working on a new activity for Sugar Labs as our project for the rest of the semester.  We decided to each tackle the Hello World tutorial on the Sugar wiki to see if we thought this was a realistic goal.  For the most part, we were all successful and decided to move forward on our plans for the project.

Our activity will help to teach children about having a balanced diet by eating appropriate servings of food each day from the different food groups.  The activity will be a daily journal they can keep that will tell them how healthy their combination of foods was, and make suggestions of what they can eat that will help them score higher.  To begin with, there will be simple drop-down menus to choose the different foods they ate during the day.  The algorithm will analyze their combination of food servings and come up with a score (probably between 1 and 100).  A "health-o-meter" (or some other meter) will display the score for their entries.  We hope to make the meter fun with sounds, graphics, and/or comments.

The activity will also give some suggestions about what other food groups they should include in their diet to make a higher score.  It will also tell them why that food group is important and how it can improve their health.

We've come up with several of the main tasks that we will need to complete, especially at the beginning of this project.  We plan to use an SQLite database to keep track of all of the different foods and their groups.  We have also learned that the graphics for Sugar activities should be in SVG format, and they recommend using Inkscape.  This is another new tool that we will have to invest a little time in learning.  Since we're also designing the activity, we'll have to research the different food groups and the recommended servings so we can come up with a good algorithm for determining the daily score.  Once we get to the point that our activity is working in Python, we'll need to "sugarize" the project using the Sugar libraries and commit it to the Git repository.  (Initially, I assume we'll just keep our project on the 462playground in the CIRDLES server using Subversion.)

******

Status of the Android App

I've finished working through most of the tutorials on the Android Developers' site.  I met with my friend (my "client") who has the idea for the app, and we came up with a simple plan for the first version of the app.  I've drawn some simple diagrams of the classes I'll need for the app (only 3 for right now) and the layouts for the input and output screens (only 2 for now).  I've realized that I need a little more info about how this app should work.  My plan is to email some different input scenarios to my friend so he can let me know what his desired output would be.  This will help me to better design the algorithm/query.

I'm somewhat familiar with writing SQL statements to query the database (SQLite for this app), but I am learning how to interact with the database using Java (specifically, how to use the data in the queries in my program).  I've started coding a little bit.  I re-used some of the database helper code from the tutorials that I think will apply to this app.  I've also started coding some of the GUI, based on other tutorials on the Android site.  I bought an Android App Development book that has a lot of information about layouts that should be helpful.