Friday, May 11, 2007

Getting Ready

Well now that I've moved in. I've started to get going with my project. I've outlined a few things I want to get done before I can really start programming.

  • Scheduled Milestones
  • Understand Pidgin
  • Details of Implementation
  • Discuss details with Other Developers
  • Detailed Goals
  • Final Approval of Plans
  • Go
Scheduled Milestones

I went ahead and scoped out my deliverables and decided how long I think it should take me to accomplish each of them. Then I scheduled them into my summer. By clicking on the link to my Google calendar you can see what I've got there so far. It's very simple for now, but as I continue working I will add more details to it as I go.

Understand Pidgin

This is going to be a tough undertaking. Pidgin is a reasonably large application. I found a link to a diagram that outlines how Pidgin works. One of my current problems is knowing when to build something as a plugin and when not to. When I spoke with the other developers in IRC, they weren't able to give me a defined line that defined the difference between a plugin and non-plugin feature. I guess I'll have to learn that as I go, or it will become a feature by feature decision, which seems to be the most likely answer at this point.

On the other hand, I was able to get a better picture of how things work as I we spoke yesterday. The idea seems somewhat simple when you think about it for a while. The core manages all the internals that don't require external libraries. The core is made up of pure C functions. It connects to a group of prplInfo structs that give it the ability to communicate over multiple protocols. It is connected to a user interface(UI). Pidgin is a UI that uses GTK+ and Finch uses libgnt. Both the core and the UI can be added to by the use of plugins.

So now I think I have a decent understanding of the general system. I need to get working on understanding the inner workings of its components.

Details of Implementation

Once I have a good understanding of Pidgin, I will begin working on planning out the details of how I will implement my goals for Finch.

Discuss Details with Other Developers

Then after I've planned out the details of how I plan to achieve my goals, I'll discuss it with my mentor and the other developers. From here I hope to iron out things that wouldn't work, or find better ways of reaching my milestones.

Detailed Goals

Once all that is planned and ready to go. I'll break down my implementation into discrete goals. I'll take those goals and put them into my calendar. This will allow me to focus on small goals at a time. Furthermore, it will give me the ability to gauge how I'm doing, if I'm on schedule or running behind.

Final Approval of Plans

Just before I actually start working on things, I'll get a final approval of my plans and how I've laid out my timeline.


With all things ready, I shall set out to change the least the world as it related to Finch.

No comments: