Wednesday, April 20, 2011

Last Blog Posting...

Well I never thought this day would come, the semester is coming to an end I will finally be graduating!! Super stoked!! It has been ALOT of hard work but well worth it. Since tomorrow is our last class this will be my last blog post for this class. I may continue this outside of class though...you never know??

This semester has been a great learning experience for me. Getting the class involved in open source projects is a great way to introduce us to real life tools and real life software. These large projects are complex and totally different than the little programs we have tackled before. So I am very thankful for this experience this semester!

Our project was moving along nicely until we ran into a snag at the end with loading the text into the Gwibber window. Apparently there is no straight forward way to do this. We have even been in contact with a Gwibber developer , Ken VanDine. He has provided several suggestions but none of which have worked out for us. It is kind of frustrating to be this close but stuck and running out of time...

Since we are running out of time, Jesse has created a basic window that posts to all social networks that are setup in the Gwibber social client. If we could get the Gwibber window to work, the user would have their choice of which network to post to. We have not given up quite yet though. We will keep chipping away at this up until our presentation. I am hoping for one last breakthrough...

Our team has set up it's rough draft for the presentation all written up. We still need to create the Prezi though. Jesse and I will be talking about the experiences portion of our presentation and Shaun and Kyle will handle the introduction to the project and software libraries that we used. We will also have a demonstration at the end of our presentation as well. We are going to show our plug-in in action by posting to Facebook from the Banshee media player. Neat!

Well that will wrap it up. Time to post this then print out my blog for school records....ADIOS!!!

Tuesday, April 19, 2011

Update to my update...

Well my last posting I typed up a bit ago but did not post until today. A few things have changed since then...so I will update my previous update.

Well I have tried several different times to contact the LibGwibber developers via email and IRC chat-room but no responses on the GetClipboard function. Bummer...I was hoping this was the answer to our problem but I cannot figure out how to use it properly with no documentation on this code.

So Jesse has created a simple GTK window that allows us to pre-load text but we cannot control what social accounts to post because the provided function for this is not working as expected.

I am going to keep working on this part of the project because I really want to be able to use the Gwibber entry window but I do not know if anything will come of it...my fingers are crossed.

Our team also ended up getting a poster together...thanks to Shaun. He really grabbed this side project and ran with it. He produced an awesome poster and is going to show it Thursday. I really appreciate the effort he put into that! Again, the poster he made is impressive!

Well...class is wrapping up. Today in team meeting we discussed our window problem, still no break throughs, and came up with a rough outline of our presentation. We broke up the parts of the presentation to work on and will bring them together to form our rough draft. I am going to work on the 'Experiences' section along with Jesse...and keep chipping away at out pre-loading text issue until we have to submit what we have.

Cheers!!

Update time....

As I mentioned in my last blog, I was going to browse through the available Banshee extensions to find ones that had similar functions to what we are trying to do with our project (right-click menu option, entry window, extracting current track info, ect...). This is exactly what I did. And as expected, or hoped, it really paid off. I was able to find several extensions that implemented the different functions that we were looking to do in our extension. After studying the code for these extensions, some late nights at the computer and a couple group meetings we are very close to wrapping this thing up. Here is the breakdown of our progress, which has really taken off in the past couple weeks.

The first breakthrough was the right-click options menu. We were able to get an option to appear in the right-click menu when clicking on the current track. All of this happens only when our extension is enabled of course. This break through was very important because it gave use a starting point, which is what we were struggling with.

So how did this happen. I was able to locate a LastFM extension that created an option in the right click menu, exactly what we where looking for. So I tracked down the code that performed this function and tailored it for our project. This code even included an event handler that listened for the click of the option button. Perfect! Everything looked like it should work but no option in the right-click menu after compiling he source code. I was not exactly sure why so I brought this to the next team meeting. With a little bit of teamwork we were able to figure out that there was an xml configure file missing that we needed to create in our project to tell the option where to appear. It is pretty cool, we can make this option appear in other places just by specifying it in the xml file. Currently we have our option showing up in the right-click menu and the edit tab on the main tool bar.

Our second break through came about via Jesse. The code I provided for the menu option was a bit messy from me playing around with it. Jess took this code and cleaned it up and in the process added the code for the entry window. He was able to get the event handler to call the window code. So, when the right-click menu option is selected by the user our Gwibber entry window pops up, as needed.

Our latest breakthrough was the ability to grab the current track metadata (artist, song title, album title, ect...). We are able to store the values in string variables. I think Jesse said he had figured this out before but I found a different namespace that provides similar methods for this. SO by placing this code that extracts the current track metadata in the event handler allows us to grab the current track info on the option click. Getting very close!!!

Finally after all that, we are left with one task. Pre-load a formated string of track metadata into the Gwibber entry window. This is proving to be a challenge since there is no direct method for this and there is no extension available with such function. Each of has come up with a different way of attacking this problem. Hopefully one will pay off.

Jesse has been in contact with one of the developers trying to figure out a of doing this. Not sure on the details but I think it involves overriding some sort of event handler to accomplish this. He is going to look into that further.

Kyle thinks that he an create a new class that inherits from the gtk enrty window which will include a setText method. This would make things very easy if he could pull that off.

I found a getClipboard method that is provided by the gwibber entry window. I am not sure how it works but I have been trying to figure that out. It requires that you pass it the type Atom but I am unsure what this I am reading up on this type and I have emailed the gwibber mailing list in hope that someone can shed some light on this method or maybe a better way to pre-load this text.

Guess I should mention what Shawn has been doing as well. He is supposed to be getting a poster ready for the poster contest. The abstract is due Friday and he says he will have this done. Hopefully he follows though on this!

Well that should catch us up for now. The semester is coming to an end quickly so I would like to wrap this the project up so we can submit a patch and look towards our presentation. Exciting stuff!!!

Monday, April 4, 2011

POSSCON experience and project progression...

Well looks like I have some catching up to do...as usual. Sorry Dr. B. Just extremely busy lately and I get this in when I can.

So POSSCON was a cool experience and I would recommend keeping this trip going in the years to come. The presenters where interesting people with lots of information to share. Lunch was good as well, I ended up having seconds! I had plans to speak with some of the presenters at POSSCON and was able to do so as these people were readily available and willing to speak with the conference attendees.

The first workshop that I attended was hosted by Jim McCracken and Neil Underwood. These guys hosted the 3D printing workshop, which I found really interesting. So interesting that I am looking into buying a 3D printer off Ebay to play around with. I think my daughter will enjoy designing little objects and then printing them out. I think I will too, hahah! Just another way to get her involved with and interested in computers. I am trying to mold a little computer whiz!

So my question to these guys was, “When do they think this sort of technology will be readily available for household use?” Mr. Underwood tried to convince me it is here and ready now. But after their demonstration and watching the configuration process I realized that it is clearly not. The configuration process is lengthy and a bit difficult for the average user. I mentioned this and they agreed that it was still a few years off for the technology to be user friendly enough for the average person.

Another drawback to this process is that the printer creates these objects but you can clearly tell they have been printed. The printed objects are covered in ridges. This could cause a problem if trying to produce a precise part. The solution to smooth the ridges is expensive so this is another reason why it is not quite ready for household use.

Although a breakthrough has been made very recently. So recently that the guy who made the discovery has not released his technique and no one is sure of how he is doing it. He has created a printer that prints so finely that there are no ridges. This is what I would expect the hardware to do if it is going to be made available for houses. Seems that it is on its way.

The second workshop I went to was hosted by David Duggins. This one turned out to be somewhat of a disaster but I did get some helpful information after the workshop. The priority of the workshop was to show the audience how to set up a workstation, using FOSS, free of charge. Great concept! He wanted to start out by showing us how to setup Linux, this is where he hit his first snag. There was intermittent and slow Internet connection so he could not download the setup files, it was going to take a very long time. So he decided to show us how to setup open source programs, that he was going to setup in Linux, in Windows but he was missing dependencies for many of programs on his Windows machine. A little preview of how this show was about to go down.

So he decided to set the programs up on his Debian machine, but it would not startup and kept crashing after a kernel panic. After about forty five minutes of floundering through failed setup attempts David called a break and we resumed about 15 minutes later. Nothing improved though. He stalled for a bit then revealed he had no further plans so we broke into a question and answer session then he called the workshop. Several people stuck around to ask more specific questions and I was one of them. I had to wait for a bit but I get to ask him about some FOSS options for my father's ticketing system. He mentioned two in particular, GLOM and SugarCRM. I am going to look more into both of these applications when I have some time. Just by talking with David though I feel one of these will do what I am looking for.

David Trask slipped through my hands. I wanted to make it over to the end of his workshop but did not make it after speaking with David Duggins. I was somewhat disappointed by this because I was going to ask him about FOSS software for my daughter to use because, as mentioned before, I am always looking to teach her new things using a computer. I was able to get his email from the program by scanning his bar code, handy, so I am thinking of emailing him instead. I did see him passing a few times and he seems like a really nice guy.

I'll mention our project progress to finish up. Progress on the plug-in is coming a long but is a bit more difficult than expected, as I suggested it would be. The project is very large but we are figuring things out. There are plug-ins that require the same functionality that we require so right now I am going through plug-ins code and trying to implement the same thing they have done.

I have found a plug-in that implements a couple of the functions we need. Hopefully this will prove useful! I think I am close to getting an option for our plug-in to come up in the right-click menu. Clicking this menu option will bring up our gwibber window. I have also found code that retrieves the needed track information. This will be helpful when it comes to grabbing track info for the gwibber window. I think we need to pick it up a bit though. Not hearing a lot out of a few others. I was really sick last week so I have not been with the group in a while so I am not sure where they are at. Hopefully they will have some breakthroughs to share tomorrow as well.

Back to playing with the project for a bit then bed, night!

Thursday, March 24, 2011

POSSCON!

Well good news at last! I have my Ubuntu system back up and running; the project is even all setup. This is great news because now I can get to playing with some code. I believe all other members of our group have the project setup as well so our project should start moving forward again. Most had a slight hang up setting up the Banshee extensions project.

POSSCON is coming up shortly, tomorrow actually. I am excited to go to this conference. This should be a cool experience. I have found two workshops that I am interested in on Friday, the 3D printing and cheap business startup workshops. I am also interested in meeting David Trask. Below are some questions I have to start off our conversation.

Jim McCracken - 3D printing
I read an article the other day regarding 3D printing. The article was about a 3D printer that could replicate itself, a fully functional copy. I thought this was amazing! I had no idea there were printers out there that could manufacture electronics. The article went on to say that in the future they predict each household will have a 3D printer. If a part breaks on one of your household goods, just print out a replacement, a fully functional replacement! Wow! So I plan to ask Jim about his familiarity with such hardware, because I am really interested to learn more. If he is, how far off does he believe this technology is from being available for household use?

David Duggins - Starting a business for cheap
My father owns a networking and computer repair business. This is where I had some of my first experiences with computers and that is what got me interested. I wanted to give some back. He does strictly networking and repair, he used to program but has lost it because of not using it nor keeping up with the changing technologies. Therefore he does all his ticketing by hand. Tickets are very expensive and the process of manually entering tickets is time consuming. So I began programming a ticketing system for his business. I have the database built and am working on the interface and functionality. I am able to add and remove info from the DB through decent looking web pages. I have also begun to incorporate some reports but I still need to do much more before it can replace his current system. Unfortunately I do not have a lot of time to dedicate to this task right now and I have been working on it here and there. I would like to know if there is some sort of open source framework for something like this out there available for modification. If so, can he recommend one or several to look into?

David Trask - Open Source tools for teaching
I have a nine year old daughter who loves to play around on her laptop and catches on to things I show her very quickly. I would like to get interested in programming. Just to introduce her to the field of computer science at an early age. I would like to ask what open source software he would recommend for this situation?

Well, off to bed now. I must get up early to make it downtown by 7:15, it is a 45 minute drive. I’m picking up Brittany in the morning and we are riding to the conference together. Should be a fun and informative trip!!! Night all!

Monday, March 21, 2011

HDD isuues

So I am kind of upset right now considering the fact that I am reloading Ubuntu right now on my laptop. I was very close to finishing the initial setup of our project when my computer just shut down. When I powered it back on my second HDD, the one Ubuntu is loaded on, would not show up in the boot manager. I removed my primary HDD and replaced it with my secondary, forcing my machine to boot to it. Ubuntu came up but immediately shut down again. Again I pulled the HDD out and noticed it was abnormally hot. Figured it was a bad HDD. I let it sit for a bit to cool down then replaced in the machine and booted again. The OS came up but acted funny. I could not connect to the Internet but the Internet works fine on other machines in my house.
I don’t know much about troubleshooting Ubuntu network problems but I suspect the HDD anyways. I have a spare HDD so I slapped it in real quick and began the reinstall process. After the install finishes it is back to square one with setting up our project. I am very familiar with the setup by now though so hopefully this will not be too big of a set back. This is still frustrating, I have a ton to do right now!!
My machine is coming back up right now. Back to work…

Tuesday, March 15, 2011

Return from break... :-(

Well we are back from Spring Break…ugh! The break was very enjoyable though, spent much needed time with my little one! The break is over though SO……time to get to back to work!

Even though we were officially on ‘break’, I could not resist working on our project just a bit. My main concentration over break was to finish up our initial bug fix. There were a few locations in the code which the developers preferred we did not change, these name changes were causing issues elsewhere since we did not create the ‘migration path’. I was working on making the necessary changes back to ‘banshee-1’ but was running into troubles getting the project to build after making the requested changes.

After some back and forth with the developers on this topic, I guess one of them decided it would be easier if they made the needed tweaks. So he did so and thanked us for all of our work. I am not disappointed at all about his help because it allows us to fully concentrate on our Facebook extension, which will be a bit more exciting of a task.

Before break I mentioned that Jesse sent out an email to the developers announcing our project selection. We received very positive feedback from this email. We received replies from some excited contributors as well as an offer for assistance, which we gracefully accepted.

One of the main developers offered to do the initial setup of the extension for us. I was really stoked about this because this allows us to focus our efforts solely on the functionality of the project and not worry about setting up the extension within Banshee. All this is taken care of already. We have a base extension setup that looks for C# bindings and the gwibber library on the startup of Banshee. This is a very nice jump start!!!

We also have a rudimentary timeline established for our project. We listed some main functionality and associated them with dates to serve as a base guideline. This may need to be tweaked just a bit but it is a solid start.

The next order of business is to establish our backlog. Once we have this established we can assign jobs and get into our sprints. We have decided to make our sprints only a week long instead of a month, which is the suggested amount of time specified by the SCRUM guidelines.

Besides all of that, team stand-ups are going well. I have found these to be very effective. It is a nice way to keep track of what everybody is working on and there upcoming plans. Also, you can tell when someone has been slacking because they have nothing to talk about when it comes there turn to speak. Basically, these stand-ups force people to do something before for the meeting so they have something to talk about, even if it is just a little, as well as have a plan for what they will be working on. I like that!

One more bit of good news. We already have a gwibber window that posts updates to your desired social network. So we can bring up a window, outside of Banshee, type a message then send it to Facebook. Of course we need to figure out how to do this while interfacing with Banshee but we are very much on our way in this project!