Since our last class meeting we've made some great progress on the activity. For starters, in class we were able to finally get the drop-down menu to populate with the data that the user selects. It doesn't sound like it would be that difficult, but it was giving us some trouble. Since we're now able to get the information from the drop-down box, the next step is to implement the algorithm.
Megan and Austin have been working on the algorithm that we will use to calculate the user's heath status. Alex took the algorithm and implemented it into our code. Before, we were unable to really test the algorithm, since we couldn't get any data from the drop-down's. Now, the algorithm works properly and we're able to retrieve and update the user's Health meter.
My role (at least in this stage of our development) is to figure out the process of converting application over to the Sugar OS. Currently, our app runs via python directly (in its own separate window). My goal for this weekend is to take Alex's code and merge it into a working Sugar App.
Other things to do:
1. Create documentation. The Sugar community's documentation basically consists of wiki pages. We need to create a wiki page for our activity's progress. Some things we can put on here are current bugs, features, feature suggestions, release notes, etc. Documentation will be useful for anyone else who might be interested in contributing and making changes in the future.
2. Expand on functionality. Since our first presentation for the class, we were told to try and get a prototype out as quick as possible, and doing so has caused us to cut back more and more on our functionality (just to get something out ASAP). So, now that we have something that works (for the most part), we can spend the rest of the semester working on new features and enhancements. This works out really well for us, because our "goal" for the end of the semester can change. If we have time to implement more new features, then of course we will. If time doesn't allow us to create numerous features throughout the remainder of the semester, then we at least will have a completed and polished activity.
Overall, I'm very pleased with our current progress of the Activity.
Wednesday, March 30, 2011
Monday, March 28, 2011
POSSCON Review
POSSCON turned out to be quite an exciting event (especially Thursday). It didn't go exactly how I had planned, but all-in-all things went well. I didn't meet everyone that I planned on meeting, but I met others in place of those who I planned on meeting.
Thursday was the most exciting day of the conference. There were plenty of people there (both in the audience, and on stage). On Thursday I met three people:
Thursday was the most exciting day of the conference. There were plenty of people there (both in the audience, and on stage). On Thursday I met three people:
1. Walter Bender - Walter's presentation was probably my favorite of all. He showed off the Sugar OS on his own OLPC. In fact, he did his entire presentation using his Sugar Laptop (using Turtle Art -- which acted as his presentation method instead of using the traditional Powerpoint slides). He really tried to convince the audience that using Sugar really helps kids "learn how to learn" in a number of different ways. He showed off a few of Sugar's best activities to the audience, and how they all help the students learn.
After his presentation, I (and most of the Sugar-based teams in our class) introduced ourselves to Walter. I told him about our ideas for the nutrition-based activity, and immediately he offered some suggestions for us. He told us about how the OLPC laptops have a webcam built in, and that we should consider trying to use object recognition to gather our data. I think this may be a little over our heads (especially for the next month...), but it is an excellent idea nonetheless. This could definitely be something that we can mention on our Wiki page that we make soon.
After his presentation, I (and most of the Sugar-based teams in our class) introduced ourselves to Walter. I told him about our ideas for the nutrition-based activity, and immediately he offered some suggestions for us. He told us about how the OLPC laptops have a webcam built in, and that we should consider trying to use object recognition to gather our data. I think this may be a little over our heads (especially for the next month...), but it is an excellent idea nonetheless. This could definitely be something that we can mention on our Wiki page that we make soon.
2. David Duggins - David gave an interesting presentation about how to use open source software in place of proprietary software. This ranged from operating systems, to word processors, and of course to programming languages. The talk was short, but still very informative.
After the presentation, I talked to him about PHP development. My question for him was about the advantages of using PHP over Microsoft's .NET development. I explained how .NET development offers a very object-oriented feel for designing web pages, while PHP makes you dynamically write your code using (what I think are kind of ugly) "echo" statements. I've never found an easier way to write PHP applications, and I was asking him for suggestions. Unfortunately, he didn't really seem to provide me with a good answer... just to look around for possible libraries that may offer this level of abstraction that I'm looking for.
After hearing this, I've started messing around with the possibility of creating my own open-source PHP library. I might try and tackle this over the summer and put it up on the web. Who knows though.
3. Neil Underwood - Neil was around POSSCON throughout the entire event showing off his 3D printer. The 3D printer was a pretty hot item throughout the event, and for a good reason too. The 3D printer was pretty neat -- they showed off the ability to create almost anything you wanted using this device. The printer itself was even self-replicating -- you could create your own printers using this printer! I talked to Neil, and asked him if it were possible to copy an object, and then print it out. He showed me his 3D scanner that he had in his bag, which would let you do just that. A good example of this would be if my cellphone cover was starting to fall apart: I could literally scan it with this 3D scanner, then create myself as many new cellphone covers as I'd like! The idea sounds pretty neat, and it's completely open source. I took one of their business cards. Maybe I'll look into creating my own 3D printer this summer if I'm bored.
After the presentation, I talked to him about PHP development. My question for him was about the advantages of using PHP over Microsoft's .NET development. I explained how .NET development offers a very object-oriented feel for designing web pages, while PHP makes you dynamically write your code using (what I think are kind of ugly) "echo" statements. I've never found an easier way to write PHP applications, and I was asking him for suggestions. Unfortunately, he didn't really seem to provide me with a good answer... just to look around for possible libraries that may offer this level of abstraction that I'm looking for.
After hearing this, I've started messing around with the possibility of creating my own open-source PHP library. I might try and tackle this over the summer and put it up on the web. Who knows though.
3. Neil Underwood - Neil was around POSSCON throughout the entire event showing off his 3D printer. The 3D printer was a pretty hot item throughout the event, and for a good reason too. The 3D printer was pretty neat -- they showed off the ability to create almost anything you wanted using this device. The printer itself was even self-replicating -- you could create your own printers using this printer! I talked to Neil, and asked him if it were possible to copy an object, and then print it out. He showed me his 3D scanner that he had in his bag, which would let you do just that. A good example of this would be if my cellphone cover was starting to fall apart: I could literally scan it with this 3D scanner, then create myself as many new cellphone covers as I'd like! The idea sounds pretty neat, and it's completely open source. I took one of their business cards. Maybe I'll look into creating my own 3D printer this summer if I'm bored.
Anyways, POSSCON turned out to be a great event and I'm glad I was able to go both days.
Wednesday, March 23, 2011
Plans for POSSCON & Our Activity's Progress
Tomorrow will be my first of two days at POSSCON, and I'm very excited for the event. Just a quick overview again of who I plan on meeting over Thursday/Friday:Walter Bender - Founder of SugarLabs
Speaking @ 1:15 - 2:00 PM on Thursday
Topic: Using & Modifying the Sugar Platform

John Metric - SugarCRM
Speaking @ 9:45 AM - 11:45 AM on Friday
Topic: SugarCRM: Your Next Business Application

Dave Stokes: MySQL Manager
Not speaking? Oh well. I'll still try and meet him at some point.

Sebastian Dziallas: Sugar on a Stick
Another Sugar developer! I'll be sure to meet him and find out something
interesting.
My planned Schedule:
Thursday:
10:00 AM - 10:45 AM: Web Hosting - Knocking out Application Layer & Open Source Threat
11:00 AM - 11:45 AM: Open Source Gaming (or maybe the Hidden Costs of Closed Source Software)
1:15 PM - 2:00 PM: Learning to Learn: Using & Modifying the Sugar Platform
2:15 PM - 3:00 PM: The Secrets of Building Real Time Big Data Systems
3:15 PM - 4:00 PM: Starting and Running a Business on-the-cheap with Open Source
4:10 PM - 4:50 PM: Open Source Communications with Asterisk
Friday:
9:45 AM - 11:45 AM: SugarCRM: Your Next Business Application
1:15 PM - 3:15 PM: The History of Linux
Overall, I'm very excited to see how the next two days are going to turn out.
Activity Progress:
During class on Tuesday, we made some significant changes to our project. We've decided to go with an even simpler design. We got rid of the Combo-boxes (traditionally known as a drop-down box). We've instead just replaced them with text so that the user can simply put how many servings of each food category they've had for the day. We will most likely expand on this as time goes by, but I think for now it's best to start out simple and just get something accomplished. Once we've gotten a handle on the project as a whole, we will (hopefully) have enough time to go ahead and improve on things. We still need to implement an algorithm that gets the user's Health meter for the day, but Megan came up with a general idea for the algorithm. That will be the next task we will strive for this weekend after POSSCON.
Monday, March 21, 2011
POSSCON/Activity Progress
POSSCON is approaching fast, and I'm excited for the event. One thing I had not noticed last week is that Walter Bender (the founder of Sugar Labs) will be attending POSSCON! This is pretty exciting, considering that we are currently working on a new Activity for Sugar. I must've overlooked this because he is (unfortunately) not speaking on Thursday or Friday. He will be speaking on Wednesday. However, at some point our team (Flux Capacitors) will have to meet him and share our ideas (and hopefully progress) for the activity.
Our progress:
Since Tuesday, we've made quite a change in our Game Plan (after hearing what Dr. Bowring and the class had to say about our timeline). We were told to get started on a prototype for our activity ASAP, to help us make sure that it is feasible and so that we don't left behind. Of course, we are going to try to make our goals as simple as we can, and build on the activity as we go (for as much as time allows us to). So far, we've made great progress. Alex has been able to put together a Python application that uses PyGTK (for our interface -- and is widely supported within the Sugar OS). We've been able to set up drop-down boxes that contain lists of food groups. At first, we were having trouble getting the food groups to associate with a second drop down box (i.e. The user selects "Meats", then continues to select "Chicken" as the type of meat). However we've been able to get the secondary drop-down boxes to populate with data once the first box has been selected.
Some things for us to do soon:
1. Organize the data. We need to make sure that all of our data (Food groups, and sub-categories) is sorted, and easily accessible.
2. Create the algorithm. This is probably the most difficult task. We need to construct an algorithm that grabs data from the user's selected drop-down boxes (and the number of servings).
Our progress:
Since Tuesday, we've made quite a change in our Game Plan (after hearing what Dr. Bowring and the class had to say about our timeline). We were told to get started on a prototype for our activity ASAP, to help us make sure that it is feasible and so that we don't left behind. Of course, we are going to try to make our goals as simple as we can, and build on the activity as we go (for as much as time allows us to). So far, we've made great progress. Alex has been able to put together a Python application that uses PyGTK (for our interface -- and is widely supported within the Sugar OS). We've been able to set up drop-down boxes that contain lists of food groups. At first, we were having trouble getting the food groups to associate with a second drop down box (i.e. The user selects "Meats", then continues to select "Chicken" as the type of meat). However we've been able to get the secondary drop-down boxes to populate with data once the first box has been selected.
Some things for us to do soon:
1. Organize the data. We need to make sure that all of our data (Food groups, and sub-categories) is sorted, and easily accessible.
2. Create the algorithm. This is probably the most difficult task. We need to construct an algorithm that grabs data from the user's selected drop-down boxes (and the number of servings).
Wednesday, March 16, 2011
Preparing for POSSCON
POSSCON is approaching fast, and I've taken some time to figure out what I'd like to do for the days that I spend there. I replied to the email sent to us to confirm that I'm attending, and I will be attending for both Thursday and Friday.
I realize now that when I emailed them in reply, I said that I would be going for the Education track. However after looking over the website in detail, I think I'm going to stick to mostly the technical sessions. Currently, I've been wrapped up in web development, so hearing about FireHost's Web Hosting, PHP applications, and MySQL server development are the most appealing to me.
SQL is one of my favorite programming languages, and I've gained some experience using MSSQL, but very little with MySQL. I'll probably want to speak with Dave Stokes (the Community Manager for MySQL). I'm sure he'll have some interesting things to say.
Thursday:
Most of my web development has been server side programming (using Microsoft's .NET framework along with MSSQL), but I've had little experience with PHP in the database class offered here at CofC. I would like to know more about PHP (mostly because I want to tackle a web project of my own this summer -- and I would love to take the free route). I'm sure John Metric (Software Engineer for SugarCRM) will have some great things to say during his session at 1:15 on Thursday. I'll be sure to come up with some questions for him after hearing what he has to say.
Although I don't consider myself much of a gamer anymore, I'm still somewhat interested in gaming. I've never had any experience with any game programming (except for a few small games back during Programming I here at CofC). I'll be sure to attend the open source gaming talk at 10:45 on Thursday. I'm sure I'll come up with some questions for John Diamond (the speaker of this presentation).
Friday:
Depending on how Thursday goes (and what I tend to like the most), I'll make my decision on which workshops to attend. At the moment, I would probably go with John Metric's "Your Next Business Application" at 9:45. The history of Linux also sounds quite interesting, so I'll probably be attending John Hall's "History of Linux" workshop at 1:15.
I realize now that when I emailed them in reply, I said that I would be going for the Education track. However after looking over the website in detail, I think I'm going to stick to mostly the technical sessions. Currently, I've been wrapped up in web development, so hearing about FireHost's Web Hosting, PHP applications, and MySQL server development are the most appealing to me.
SQL is one of my favorite programming languages, and I've gained some experience using MSSQL, but very little with MySQL. I'll probably want to speak with Dave Stokes (the Community Manager for MySQL). I'm sure he'll have some interesting things to say.
Thursday:
Most of my web development has been server side programming (using Microsoft's .NET framework along with MSSQL), but I've had little experience with PHP in the database class offered here at CofC. I would like to know more about PHP (mostly because I want to tackle a web project of my own this summer -- and I would love to take the free route). I'm sure John Metric (Software Engineer for SugarCRM) will have some great things to say during his session at 1:15 on Thursday. I'll be sure to come up with some questions for him after hearing what he has to say.
Although I don't consider myself much of a gamer anymore, I'm still somewhat interested in gaming. I've never had any experience with any game programming (except for a few small games back during Programming I here at CofC). I'll be sure to attend the open source gaming talk at 10:45 on Thursday. I'm sure I'll come up with some questions for John Diamond (the speaker of this presentation).
Friday:
Depending on how Thursday goes (and what I tend to like the most), I'll make my decision on which workshops to attend. At the moment, I would probably go with John Metric's "Your Next Business Application" at 9:45. The history of Linux also sounds quite interesting, so I'll probably be attending John Hall's "History of Linux" workshop at 1:15.
Monday, March 14, 2011
The Game Plan
Before Spring Break, we met up during class on Thursday to discuss our Game Plan for the rest of the semester. After our previous meet on Monday, we had a general idea for the rest of the semester, but we finalized things more on Thursday. Here's our Game Plan for the rest of the semester for our Nutrition Sugar Activity (at the moment it still does not have a name):
Week 1:
-Create Class Diagrams
-Create Database design (Tables and Procedures)
-GUI Mockup
Week 2:
-Data Entry for Database (We plan to use SQL Lite for our Activity)
-Algorithm structure (For determining the user's Healthiness)
Week 3:
-Implementing our design into Python and SQL Lite
-Integrating SQL Lite into the Activity
Week 4:
-Check our Progress (and continue programming if necessary)
-Testing (and make changes that are necessary)
Week 5:
-Create Wiki Page for our Activity
-Publish the Activity to SugarLabs
Week 6:
-Pull together any loose ends & suggestions from the Sugar Community
Our group has decided to divide up the work (at least as a starting point) in a manner that that lets the most experienced person in a given language or technology will begin working in that field. I have the most experience with SQL Databases out of the group, so I'm going to start with SQL lite. We'll all be making individual contributions to each part (and of course offer suggestions to each other), but this at least gives us somewhere to start working on our project and a way for us to continue working on something on our own time when we're not meeting together.
All in all, I think we have a great road map for the rest of the semester. I'm concerned with our ability to stay on track (as with most computer science projects) during the next six weeks.
Week 1:
-Create Class Diagrams
-Create Database design (Tables and Procedures)
-GUI Mockup
Week 2:
-Data Entry for Database (We plan to use SQL Lite for our Activity)
-Algorithm structure (For determining the user's Healthiness)
Week 3:
-Implementing our design into Python and SQL Lite
-Integrating SQL Lite into the Activity
Week 4:
-Check our Progress (and continue programming if necessary)
-Testing (and make changes that are necessary)
Week 5:
-Create Wiki Page for our Activity
-Publish the Activity to SugarLabs
Week 6:
-Pull together any loose ends & suggestions from the Sugar Community
Our group has decided to divide up the work (at least as a starting point) in a manner that that lets the most experienced person in a given language or technology will begin working in that field. I have the most experience with SQL Databases out of the group, so I'm going to start with SQL lite. We'll all be making individual contributions to each part (and of course offer suggestions to each other), but this at least gives us somewhere to start working on our project and a way for us to continue working on something on our own time when we're not meeting together.
All in all, I think we have a great road map for the rest of the semester. I'm concerned with our ability to stay on track (as with most computer science projects) during the next six weeks.
Wednesday, March 2, 2011
The importance of documentation
After reading TOS Chapter 8, I've found a few things most interesting and important:
1. Importance of code commenting. Commenting doesn't just help me understand what's happening when I go back through the code months later. More importantly, it helps others who may look at this code have an idea where to start when looking over the code. Employers are probably most interested in programmers that practice detailed commenting, because it helps the company progress further faster in the long run.
2. Importance of technical writing. In my experience thus far, I've already created up to 80 page long documents that go into detail about designing software, and I have an idea of how important it is to keep these documents living. When going into the process of actually implementing the software, the documentation is a great place for me to look back onto, just to make sure I'm following the "plan". With thorough documentation, you can think deeply about issues that may arise during the implementation process. This helps you plan again against any possible issues, and helps make the implementation process less painful and straight-forward.
3. Keeping documents updated. It's very important to keep a document "living", following the "waterfall" method. If you've completed a document and have gone onto implementation, there will most likely be changes in implementation that weren't accounted for at the documentation stage. It is important to document these changes, so that the next person who comes along can still follow the documentation. Otherwise, comparing documentation and the actual implementation may appear confusing to a newcomer.
4. Collaborating on documentation. Having more than one person work on the same document can prove very useful. Almost like "pair programming", when two people get together and discuss a design for a software project, it helps create a broader view of how the software will work. Having a detailed discussion about a project will help the designers think more deeply about what needs to happen -- which helps prevent issues in the long run.
For our project, we will absolutely be creating some detailed documentation for our design. I know that in the long run, it will prove to be very useful and help us save time.
1. Importance of code commenting. Commenting doesn't just help me understand what's happening when I go back through the code months later. More importantly, it helps others who may look at this code have an idea where to start when looking over the code. Employers are probably most interested in programmers that practice detailed commenting, because it helps the company progress further faster in the long run.
2. Importance of technical writing. In my experience thus far, I've already created up to 80 page long documents that go into detail about designing software, and I have an idea of how important it is to keep these documents living. When going into the process of actually implementing the software, the documentation is a great place for me to look back onto, just to make sure I'm following the "plan". With thorough documentation, you can think deeply about issues that may arise during the implementation process. This helps you plan again against any possible issues, and helps make the implementation process less painful and straight-forward.
3. Keeping documents updated. It's very important to keep a document "living", following the "waterfall" method. If you've completed a document and have gone onto implementation, there will most likely be changes in implementation that weren't accounted for at the documentation stage. It is important to document these changes, so that the next person who comes along can still follow the documentation. Otherwise, comparing documentation and the actual implementation may appear confusing to a newcomer.
4. Collaborating on documentation. Having more than one person work on the same document can prove very useful. Almost like "pair programming", when two people get together and discuss a design for a software project, it helps create a broader view of how the software will work. Having a detailed discussion about a project will help the designers think more deeply about what needs to happen -- which helps prevent issues in the long run.
For our project, we will absolutely be creating some detailed documentation for our design. I know that in the long run, it will prove to be very useful and help us save time.
Subscribe to:
Posts (Atom)