Thursday, March 31, 2011

Progress on Social Extension

Last time, I met with my team and we discussed how we would extract audio track information to place in a Gwibber posting window. I came across a class called TrackInfo that gets all of this information, however when I tried to extract the information and post it on a command prompt during a currently playing song, It would give me unkown for the title, the artist and the album. So, I'm still unsure about how that is relating to a currently playing song. I found that the Wikipedia Extension in Banshee uses TrackInfo to collect artist information, but I have not been able to yet determine what they are doing differently form my team and I. We will spend today continuing to look into this matter. My strategy at this point is to keep looking at extensions that extract track information to find any similarities in information extraction as well as finding all classes where TrackInfo is used in order to see if there is a specific class for a currently playing song.

Monday, March 28, 2011

POSSCON Experience

POSSCON was a great experience in my opinion. I took the technical path on Thursday and checked out the talks by Chris Hinkley, John Mertic, and David Duggins. I found the talks of John Mertic and Chris Hinkley to be the most interesting. 

John talked about ways to successfully create and deploy PHP applications. His talk focused on making PHP applications deployable across multiple platforms, making them fast, making them simple but powerful and testing them. Since I am a beginner in PHP development and am interested in this type of software development, I found it very informative and worthwhile. He mentioned a few software engineering techniques that I recognized from taking CSCI 362. A great technique that he mentioned for creating PHP applications was "Abstract Code Design" with PHP. In terms of Databases, there are many database management systems out there and PHP does support a few of these DBMSs. With that thought in mind, he mentioned that PHP had different functions for accessing as well as querying these DBs and that they all return different values when implemented. Because of these differences in values, he said it is a good idea to create an abstract software level that deals with all of these different return values to make it work for any DB that you use. He applied similar techniques of abstraction for different servers as well. 

I had the opportunity to speak with him and he turned out to be a very nice guy. I asked him about his experience with creating the PHP Windows Installer and what sort of troubles he encountered when developing it. He said he had an easy time getting the installer to work with IIS servers but when it came to Apache, he said he had to fiddle with Apache .config files to get it to work right. So, he had a bit of trouble with the Apache server configurations. I also asked him if he had any advice for someone like me getting into PHP development. He said just stick with the points in his presentation and become really involved with a PHP open source project. We of course talked about other things but I did enjoy his conversation and he said I could contact him by email any time I had any questions.

Chris Hinkley had a great presentation on providing security for websites. He spoke about how most hacker attacks happen at the Web application layer and how to prevent attacks at this layer. When implementing security he recommended the following:
  • Choose a leading CMS platform
  • Stay up to date with core updates
  • Decent security plug-ins
  • Use a secure hosting provider 
  • Don't rely on network connection for security
  • Have Firewalls
  • VPN Access
  • SSL Certificates
  • Isolated Environment
Some of these things are common sense but they are all good to know. I also spoke with him afterwards to ask him some questions about using SSL certificates in securing websites. I told him I tried implementing on a while back with a form I had on a website and told him that it still kept sending the form data over unencrypted lines. I also told him I purchased one and it was implemented on the site, so I wanted to know if maybe I missed something. He said that I probably didn't include the certificate into the functionality of the form and that could be why it was happening. I then asked if he knew any places online where I could find some guides on how to properly set up SSL . He recommended that I look at NixCraft for Linux and that should give some step by step tutorials. I have not had a chance to look into NixCraft yet but I know I will be checking it out in the near future. He also said I could contact him via his email account as well.

I also saw David Duggins' talk about using different open source software for business start up but it was a lot  of stuff I already knew for what open source to use when getting a business started. 

The conference was a great experience and I sure took a lot from it. Next year I know I would like to go again.

Monday, March 21, 2011

Extension Progress

Last Thursday I met with my team and we discussed plans to get our extension repo branch compiled and running with Banshee. I already had the branch set up and running on my machine, so I assisted my team mates in getting the branch set up in MonoDevelop and in the Banshee software itself. All of my team mates ran into the same problem when trying to run the ./autogen.sh script under the Banshee-Community-Extensions branch. They all kept getting an error message stating that the package Banshee-1-thickclient could not be found. When I saw this message, it confused me because I did not experience this problem when I set up my branch. After trying to see if the package existed at all under Ubuntu's Synaptic Package Manager and online, I realized that my team mates were running the latest version of Banshee (1.9.5) and I was running version 1.9.4. I figured this had to be the problem, because that was the only difference in configurations that separated me from my team mates. We found out that my hunch was right. Brandon, my team mate, emailed the Banshee mailing list to try and find a solution to the team's dilemma. After getting a few threads back, we found out that it was a matter of versions. Since the update from 1.9.4 to 1.9.5, the community extension branch was not updated either. In the 1.9.5 version, the developers implemented the change our team did from Banshee-1 to Banshee. As a result of this change, the community extensions branch was not updated and thus was still searching for Banshee-1 instances when trying to compile. The developers of Banshee gave us some git repo commands to follow in order to resolve this problem and so the rest of my team mates will try their recommendations. When I update to 1.9.5, I too will follow the directions given by the developers.

Once everyone has the community extension branch up and running, we will then head to our next step of figuring out how to extract track information to place inside a Gwibber post. I believe this will be a bit of a tricky process because there seems to be no clear cut way to preload text into a Gwibber post box.

Wednesday, March 16, 2011

POSSCON Plans

With the POSSCON conference approaching, I had to make a decision about which speakers I wanted to meet with. After looking through the list of speakers a couple of times, I was still unsure about who I wanted to meet, so I went through the schedule to see what each speaker was going to discuss. After looking through the schedule and topics, I came across the three speakers I would like to meet with and talk with. Below is an outline of the speakers I want to talk with, what they are talking about, their times, some of the questions I will be asking and my plans on when to speak with them.


  • John Metric
    • Senior Software Engineer / Partner and Community Developer Liason, SugarCRM
    • Session 
      • Time: 1:15 PM - 2:00 PM, Thursday March 24
      • Topic: Developing Easily Deployable PHP Application
      • Time to meet with speaker: Lunch - 12:00 PM - 1:00 PM (Backup: 2:00 PM - 2:15 PM)
    • Questions
      •   When did you start working with PHP?
      •   I understand that you created the Windows installer for PHP. What challenges did you face in its design and development?
      • What was your first experience with open source?
      •   Do you have any advice for PHP developers who want to get the most out of their applications?
      • What types of applications have you developed over your career?
      •  Do you utilize any other web languages besides PHP?
  • Chris Hinkley
    • Senior Security Engineer at FireHost
    • Session
      • Time: 10:00 AM - 10:45 AM Thursday March 24
      • Topic: Web Hosting - Knocking out Application Layer & Open Source Threat
      • Time to meet with speaker: 10:45 AM to 11:00 AM (Backup: 3:00 PM - 3:15 PM)
    • Questions
      • What types of technologies do you use most often when dealing with security in web applications?
      • What open source projects have you used while working at FireHost? Do you contribute to any in your free time?
      • How did you go from developing websites to doing security engineering?
  • David Duggins
    • Open Source Evangelist and Long-time User
    • Session
      • Time: 3:15 PM to 4:00 PM, Thursday March 24
      • Topic: Starting and Running a Business on-the-cheap with Open Source
      • Time to meet with speaker: 4:00 PM - 4:10 PM
    • Questions
      • When did you start using open source software?
      • What open source software have you used in helping businesses with their start up phases? What made you choose these pieces of software over similar open source software?
      • Do you hold any type of degree in computer sciences?
      • What advice would you give to someone who wanted to start a business using open source software? 

I do hope that I get to speak with all of these speakers. My speaker of interest to talk with is John Metric because of his experience in developing PHP applications. Since I have an interest in programming PHP applications I would really like to talk with an expert. I'm excited about the conference and can't wait to talk with these speakers!

Monday, March 14, 2011

Social Extension Progress and Timeline Up

For the social extension project that my group and I are working on, I have the initial setup for the extension for the project and a Gwibber test window. Bertrand Lorentz, one of the Banshee maintainers, setup the skeleton of the social extension and posted it for us on the repo. However, the extension is not on the main repo. Bertrand said that there is a community extensions repo where all of the in progress extensions are kept. Once my team and I complete the extension, Bertrand will review it and then post it to the main repo for us. He also mentioned that with the approach of version 2.0 in April, that our extension probably won't be included until the following release.So, it may be a while before our extension becomes apart of Banshee. Once it does go into the next version after 2.0, it will feel very fulfilling to contribute something more than a bug fix.

Right now, I have the social extension skeleton running on Banshee. It was a little tricky to get it built at first because it was missing references from the actual Banshee project. To resolve this problem, I had to setup my references in MonoDevelop to reference the projects that were being imported in the social extension class. I have not put any code into the extension yet, because my team and I have not begun that stage yet, but we will get there eventually. 

The big hurdle that I accomplished so far in the project was getting the Gwibber test window to communicate successfully with certain social networks. I was having a problem for the longest time trying to get the Gwibber window to allow me to post to Facebook or Twitter. Every time I ran the window code, I would get a dialog box that allowed me to insert a status, but when I hit send, it only allowed me to submit the message locally on my machine. Today, when I was doing some more work with the Gwibber test window, it dawned on me that maybe I had to be logged into the Gwibber social client on my Linux machine in order for the Gwibber test window to work properly. Once I started the Gwibber software, added my Facebook and Twitter accounts and then ran the Gwibber test window, I was able to select which social network I wanted to post my message. After sending a test message, it successfully posted to my Facebook account. This was a big weight off my shoulders and it will be for the rest of the team, because we have been trying to figure this issue out for a while. With this problem out of the way, the only challenges that await us now are figuring out how to embed the extension into the software so that a currently playing song is able to be shared. 


Wednesday, March 2, 2011

Social Network Extension

Our team has decided to go with creating a social network extension for the Banshee music player. This extension would give users the ability to right click on a song that they are currently listening to and click on an option to share it on their social network of choice. Of course they would not share the audio with their friends, they would just share a message that would give some song info and a personalized message of what they are currently listening to. So for example, in Facebook the message would be a status post on the users profile. This extension idea was thought up by Bertrand Lorentz, a Banshee maintainer, but he does not have the time to create it, so he asked for someone else to take on the project. We told Bertrand that we would take on the project and he seemed very excited about us taking on the project. He also offered to do the initial set up of the extension in Banshee, so we told him that would be great if he could give us that boost.

Right now, we are all getting the libgwibber package configured on our computers and into our MonoDevelop environments, since this package is the key to communicating from Banshee to the social network of choice. Once we have that figured out then that'll be a big stepping stone in the project. However, depending on what setup Bertrand does, he may include the libgwibber package reference in the initial setup of the extension, so we may not have to worry about that aspect at all. I have not completely setup libgwibber in MonoDevelop yet, but I have come to the conclusion that my problems have to with my version of Ubuntu. I believe I have to update to version 10.10 in order to use a gwibber-gtk-sharp reference in MonoDevelop to test the libgwibber library. Once I have that updated and the gwibber-gtk-sharp package installed and referenced then I should be able to experiment with the libgwibber API. For those that do not know what libgwibber is, it is a package of the Gwibber software which is a micro blogging client for popular social networks such as Facebook, Twitter, etc.

I am very excited about this project and I cannot wait to see what this extension will do for the Banshee community.