My First Posting to PlanetEclipse

July 12, 2009

Thanks to David Carver and Chris Aniszczyk. I’m now blogging in order to feed my postings to PlanetEclipse. Hopefully the students will follow suit.

I’m a computer scientist by training and I love being an educator. I teach programming at the School of Computer Studies, Seneca College, Toronto, Canada. Two professors, Chris Tyler and David Humphrey, spear-headed the open source movement at our college. Chris is involved with the Fedora community and David is involved with the Mozilla community.

For my professional development, I want to find out how to teach and learn open source development. Jordan Anastasiade, another professor here, is involved with the Eclipse WTP project. From January to April 2009, he has graciously allowed me to go alongside with his Eclipse WTP class such that I could have first-hand experience on open-source development. As suggested by Jordan, I blogged what I had experienced in this learning community as if I were a reporter on the field.

During the summer, we have a very small group of students working on the Eclipse WTP project.

I hope that my blog will let the Eclipse community consider what contributions that student-developers could make to the open source projects. I am amazed that the Mozilla community has already done some ground-breaking work in mentoring student-developers. Is the Eclipse community interested in welcoming inexperienced yet daring student-developers?

Eclipse WTP – Productive Student Developers

June 15, 2009

As a reflective practitioner, I have begun to ask a question: How can the Eclipse-WTP community (and the Eclipse ecosystem in general) make the process of fixing bugs more productive for student-developers? I was inspired by David Carver’s recent blog posting: Architecture Council: Bugzilla Best Practices. My interaction with the Summer Student Team at Seneca College has provided me with a concrete life context for reflection.

Since January 2009, as a teacher-researcher, I have interacted with Eclipse WTP student-developers at Seneca College. A question has gradually emerged in my mind: What types of contributions can the students (i.e. student-developers) make to an open-source community such as Eclipse-WTP? We can give an easy answer that is merely based on the number of bugs fixed. However, what if we take a wider perspective – the process of fixing the bugs? How can we have a productive process of investigating the (system) behaviour of a bug, locating the source code and modifying the source code? When I read the blogs of some students, the process of fixing bugs is not straightforward or mechanical in all occasions. In order to fix some bugs, they have encountered issues that are related to design and architecture. Here are the quotes I have taken from the blogs of two students:
1. Dropping Bug# 236976
“After my presentation last week, it seems that there are different opinions of what is the best way to fix this bug… it would take a lot more time to do survey than fixing the bug itself.”

2. Unable to go further with Bug 254831
“I’m still at the same par that I was for a few weeks now. Debug points are being hit, except at the exact location before the error. I am unable to determine where exactly the error coming from, and will be selecting a new bug to work on due to the complexity of this bug, following Jordan’s advice.”

“There is also a similar bug Bug 251637, which gives basically the same problem.”

As Russell Pangborn, a computer studies professor at Seneca College, said, “It is great to see students tackling real world projects. This always revs up the level of excitement for a subject.” As college professors, Jordan and I will agree with him 100%. Indeed, I have found that these senior semester students dare to spend lots of time and energy on fixing bugs. Paradoxically, they are also afraid of wasting their limited time and energy on things that lead them to deadends. These student-developers can be very productive in fixing bugs if both the students and the open-source community interact well. My advice to the students is that they should share their experiences promptly by blogging. They should post concise summaries of their investigation to Bugzilla too. My wish for the community is that the professional developers will comment on the blog postings of the student-developers and respond to their comments on Bugzilla. It will be wonderful if the professional developers can tag the bugs as “student-project” as it’s happening with the Mozilla community.

Eclipse WTP Summer Student Team

June 4, 2009

Our summer class began on May 12 and the Eclispe WTP team has 5 students on board. Jordan is the mentoring professor and he is very kind to take me in as a teacher-researcher. Yesterday (June 3) I experienced some interesting interaction in our face-to-face team meeting. Here is a brief description.

John showed us how to create screencasts and the video version of installing the Eclipse WTP platforms. Then he used Bugzilla to show us about his Bug 241429. He already got a response from Angel Vera on Bugzilla. As a mentor, Jordan first let John know that this bug is complex as threads are involved here. He then advised John to have a time frame such that he would not spend the whole semester (11 weeks left) on investigating the bug. I also told John that it’s very important to set a time frame in order to be a productive student-developer. There is a time to “kill” a bug; there is a time to “drop” a bug.

Tommy did a live demo on reproducing his Bug 251637. As a mentor, Jordan said that the practical value of having this bug fixed would be significant. However, design issues are involved here. He advised Tommy to write up his proposed solution and post it to Bugzilla. Without feedback from the WTP committers, Tommy would waste his time and
energy in fixing this bug. Tommy was concerned that he did not know how long he had to wait for the feedback. Meanwhile, he would do research on how SWT is used by Eclipse WTP. I told Tommy that he could also join other students on the team to investigate their bugs.

As Tommy was giving a live demo on his bug, Kevin said that Nabeel (who was absent at our meeting) has been working on something similar. How did Kevin know? He has been reading Nabeel’s blog postings. How did Kevin make this connection? He said that he experienced this in the first Eclipse WTP class last semester. Furthermore, Kevin demonstrated that he was able to provide technical solution right on the spot. As Jordan commented in our meeting, Kevin managed to set up another IRC channel (#seneca-wtp) in real time when all of us were chatting on the #seneca channel. If you were an employer in the IT field, would you be interested in having such an employee?

Regarding his Bug 236976, Kevin used his blog posting to show us his proposed solution. As a mentor, Jordan commented that this bug is related with design. He also asked Kevin about his interest level in doing GUI programming with SWT. In light of Jordan’s remarks, I suggested to Kevin that he should also post his proposed solution to Bugzilla. Like Tommy, his work will not be productive without getting feedback from the WTP committers. Meanwhile, Kevin said that he would continue working on Bug 244862. Tahereh from last semester did some work on it. Jordan encouraged Kevin to build on what Tahereh has done with that bug.

Terry, a newcomer to the Eclipse WTP student team, gave live demos on two bugs, Bug 245698 and Bug 154860. As a mentor, Jordan pointed out that the practical value of fixing Bug 245698 would be significant. As for Bug 154860, Jordan’s comment was insightful:The bug looks simple at the surface level but…Since it’s SWT related, I suggested to Kevin if he would be interested in investigating this bug.

At the end of our meeting, Jordan said that everyone is stepping on “unchartered territory.” Team collaboration will be important. As for me, I’m excited about going on another adventure with this team of 5 students. We are facing a lot of unknowns; yet we are also facing the possibility of surprises and excitement.

I also gave some final remarks to the students: “Keep yourself busy every week. By the end of the semester, you will be amazed by how much you have accomplished. While you’re waiting for the WTP professsional developers to give you feedback, collaborate with other students. Do research on SWT using various Eclipse newsgroups.”

To conclude my posting here, I appreciate what David Humphrey has asked the Mozilla community to do – “a brand new bugzilla keyword to help us flag such bugs: student-project.” Is the Eclipse Foundation going to do something like that? Again, I believe that students can make much progress if they have received positive feedback from the professional developers in the WTP community (March 11 blog posting).

Eclipse WTP – Continuity Beyond a Course

April 25, 2009

The semester has finally come to an end. It’s interesting to note that two students, Davoud and Tahereh, have created a wiki page to reflect what the whole class has accomplished over a period of 14 weeks.They did it during their examination week.

I was inspired by a blog posting written by John Selmys, another professor at Seneca College. He was inviting all the ISA graduates to join the Fedora community. This makes me wonder: Now the course is over. How may our little Eclipse WTP student group @ Seneca develop continuity beyond a course structure? Any ideas?

Eclipse WTP – Exciting News!

April 5, 2009

The Winter semester is going to end within 2 weeks. A few weeks ago, I was wondering how much progress the students could make. I just cannot believe what has happened over this weekend. On March 26(Thursday), Jordan emailed everyone to do COLLABORATIVE work on FIXING 3 WTP bugs. Three students have tried very hard to resolve these bugs on their own. Last Tuesday Chris Tyler, a professor at Seneca College, shared with our class what the Fedora community had experienced regarding effective online communication in an open source community. In the end, he told us the true spirit of open source development: “Just Do It.” Jordan also encouraged everyone to focus on tackling the TECHNICAL aspect of fixing the WTP bugs. His famous motto for our class: “Where there is a will, there is a way.”

I was reading Le Yang’s blog postings this weekend. He offered solutions for fixing Kevin vu’s bug(#240698) and Shelley/Xia’s bug(#137822). Bear in mind that Le never got any feedback on his own bug from the WTP community(via webtools newsgroup and Bugzilla). Yet he was the one who had helped his two fellow classmates to FIX their bugs. I am very excited to see the positive impact of team work. The story did not end here, however.

I noticed that Nabeel’s bug(#227760) was also related to the server tools. I sent an email to four of them and Jordan as well. Nabeel found out that he could also use Le’s solution to fix the bug. Now I’m waiting to see when they will create the patches and get feedback from the WTP developers who are in charge of these bugs.

I usually do not want to boast about something or someone. This time, may I say this: “Seneca STUDENTS can FIX WTP Bugs.” They can do it if they collaborate and receive mentoring from a professor like Jordan and professional WTP developers such as Larry Isaacs, David Williams, Konstantin Komissarchik, Mark Hutchinson, Valentin Baciu, Angel Vera, Lawrence Mandel, and so on. (Note: I do not have time to do a th0rough search on the webtools newsgroup and Bugzilla to come up with a complete list of people who have supported the students. Please be understanding.)

Eclipse WTP – Three “Lost” Sheep

March 23, 2009

Under Jordan’s encouragement and guidance, our WTP student group @ Seneca is gearing up. Tahereh posted her questions on the webtools newgroups on 12.03 and 22.03. She got replies from Angle Vera. Xia Shi(Shelley) posted her questions on 13.03, 15.03 and 17.03. She also got replies from Angel Vera and Larry Isaac. Kevin Vu posted his question on 10.03 and he got replies from Angel Vera and Larry Isaac. I’m glad to see that the WTP community is really supporting these students.

However, Le Yang posted his question on 17.03 and got NO reply. Same with Jatinder Singh. He posted his question on 17.03 and got NO reply. I wonder why. Could their questions be too general?
Would some WTP developers, in the midst of their busy schedules, give them some feedback or help? I also noticed that Le is fixing a bug for the Web Services product and Jatinder is fixing a bug for the Source Editing product. Finally, Davoud posted his questions to Bugzilla for Bug #168784, #247535 and #244814. There’s NO reply under #168784. He did get comments for other two bugs. It seems that there’s NO information about the procedure of reproducing those bugs. I hope that Davoud won’t get too frustrated. Our class is going to meet again tomorrow (Tuesday). See what Davoud is going to say about his experiences.

I still believe that our group has the potential to make significant progress within the coming few weeks, with support from the WTP community.

Eclipse WTP – Student Progress and Mentoring

March 11, 2009

Yesterday our WTP class met again after the Study Week. Jordan asked the students to present what they had done with the bugs and describe their difficulties as well. Jordan always gave practical advice at the end of a presentation. I could feel that there’s new momentum going on in the class.

Nevertheless, we need to ask some probing questions. Our class has entered the 9th week of the Winter semester. Where are we now? How much progress will the students make in the remaining 6 weeks of this semester? Bear in mind that they are full-time students(not full-time professional developers) who have to complete assignments and tests from other(four?) courses as well. Jordan has other courses to teach as well.

As I pondered over these questions, the blog postings of David
and Armen Zambrano came at the right time. After reading David’s work with the Mozilla community and Armens’ interviews with the educators at HFOSS, it dawned on me that the students could make significant progress if they were mentored by some professional developers in the WTP community. I hope that I’m not being idealistic. Meanwhile, I have confidence in my fellow students that they will forge ahead and make some progress.

Here is a brief summary of what happened within 100 minutes yesterday.

1. Jatinder: He encountered a problem on the target platform when he ran his code in the Debug Mode. He got immediate feedback from the class that he should use a more recent build(e.g. 3.1M5 or 3.1M6?). He was quick to click on the link in the WTP Tutorial. Unfortunately the web page showed that everything was “in progress.”
Jordan’s advice to Jatinder: Post your problem to the newsgroup.

2.Farhad: He did a detailed demonstration at the source code level. He already blogged about his fix. Right on the spot, Jordan gave Farhad some testing scenarios to test out his fix. It turned out that more work and information would be needed.
Jordan’s advice to Farhad: Post what you’ve fixed to the newsgroup. Ask about the CORRECT behaviour of the code as some assumptions are involved here.

3. Yang: He showed a detailed analysis of the bug behavior. He found out that two different document models are used by Test1.xsd adn Test2.xsd.
Jordan’s advice to Yang: Post your findings to the newsgroup and get more information from the WTP community.

4. Tahereh: She gave us a demo and she’s not sure what to do next with the GUI after the “Delete Server” dialog box was popped up. Again some assumptions are involved here.
Jordan’s advice to Tahereh: Post to the newsgroup and ask the WTP community about the CORRECT behavior.

5. Allen: After getting response from the webtools newsgroup, he showed us that the scope of fixing the bug is very huge as it had to do with the architecture aspect that is under change. It’s unlikely that he can fix the bug within the remaining 6 weeks of this semester. He’s having a dilemma: Continue with this bug? Giving up this bug and working on another bug? Tough decision.
Jordan’s advice to Allen: His present work may continue into May and June. There’s another list of bugs that he could consider. Yes, you need to make a decision soon.

6. Tommy: He told the class that he needed more information about the interaction between the WSDL file and the GUI. He also told the class that he tended to be shy.
Jordan’s advice to Tommy: Make a shout to the WTP community. Post your question to the newsgroup.

7. Davoud: The behaviour of the bug (168784) has changed(ie. mutated!) with the current build. He rasied a good question: How come the original Bug Report has not been removed or updated on Bugzilla?
Jordan’s advice to Davoud: Look for another bug to work on.

After all, I was VERY impressed by what the students had presented. They were developing presentation skills, communication skills and technical skills. Most important of all, they took up courage to show their problems in front of everyone. Moreover, I appreciated Jordan’s caring remarks and practical advice. He’s a great mentor! He used two lively metaphors. We’re like people who buy and sell things at an open market. We are like blind persons walking around WTP. We need to get help from the Eclipse WTP COMMUNITY. Since we have a team of wonderful and hard working people, progress is sure to come…

Eclipse WTP – A Quick Fix on the Bug

March 4, 2009

I was doing a quick fix on Bug 256185 during this Study Week. The fix was way too quick for me and I doubted that it could be a band-aid approach. Thus I spent quite an amount of time on coming up with a diagnosis of the bug. I posted all my findings to the Bug Report. If I got positive comments from Valentin, the QA contact person, I could spend some time on investigating the bugs of some of my fellow students. Your detailed analysis of your bugs will help me to undertake this challenge…

Finally I want to give thanks to Angel Vera and Lawrence Mandel, the two speakers from IBM. Their presentations and practical remarks have helped me to come to this far. Also Valentin has given me very good support via the Bug Report and the wetools newsgroup. Now I feel enthusiastic about fixing more bugs as long as time permits.

Eclipse WTP – Locating The Code

February 22, 2009

I’m very glad that I’ve reached The Fourth Milestone set up by Jordan. Bug 256185 is about NullPointerException. Here are the steps that I took to locate the code that throws this exception.

1. A stack trace from the JVM was attached to the Bug Report. This gave me a very good starting point. I checked out the org.eclipse.wst.wsdl.ui component from the CVS repository. (Although I did set the Plug In Development Target Platform correctly, I got error messages from the compiler on the development platform. After inspecting the error messages, I also checked out the org.eclipse.wst.wsdl component. All the error messages then disappeared. This second component was not related to the bug, however.)

2. Following the stack trace, I tinkered with the class. I added a comment and inserted one System.out.prinltn statement. When I tried to run this class with the target platform, I encountered a strange problem – the WSDL editor was not invoked at all. I posted my problem and some screenshots to the webtools newsgroup. With Valentin’s advice, I found out that it was indeed caused by inconsistent versions between the source code(checked out from HEAD) and the target platform(3.1M4 build). Thus I downloaded and installed the 3.1M5 build that was released in early February. Everything was running smoothly since then.

3. Following the stack trace again, I inserted a few System.out.println statements in two methods, namley dropDown and popupEvent. I found it interesting to see some output displayed in the console view on the development platform. Then I realized that I could not use the line numbers in the stack trace since I had added some comments and statements to those methods. I felt a kind of stupid. Now I had to find a way to get an updated stack trace on the basis of the class that I had modified. I posted my question to the Bug Report. Valentin showed me how to access the stack trace on the target platform. It’s a very useful technique.

4. I ran the ASDCCombo class with the target platform again. Then I reproduced the bug on the target platform instance. Following Valentin’s advice, I went through this sequence of selections: Window > Show View > Other > Erro Log. I saw the stack trace in the Event Details dialog box. This time I used the line number in the stack trace to locate the code on the development platform. In order to confirm that this was the line of code that threw the NullPointerException, I inserted a line of code:
System.out.println( “oh boy – text is null” ). I ran the class again. The output in the console view on the development platform was consistent with the stack trace (the Error Log) displayed on the target platform.

From hindsight, I could have located the code quite quickly if I did not tinker with the source code I checked out from the CVS repository. I was very near to finding the code when I had the stack trace on hand. However, I didn’t regret from “playing with the code.” I have acquired some knowledge regarding the inner workings of the WTP platforms. I have also found Valentin to be very supportive when I posted my questions at the webtools newsgroup and Bugzilla(i.e. the Bug Report). Finally I was amazed by Tony Lai’s comment to my blog posting. He’s working on a Mozilla project and has used exceptions to track down a bug. Last but not the least, after going around the circle, I’ve built up my confidence in fixing WTP bugs.

Here are three screenshots:

1. the stack trace

2. the  event details dialog box

3. the console view

Eclipse WTP – Try, Try, Try and Nothing Else

February 18, 2009

On Tuesday(2/17) Angel Vera from IBM came to our class as a guest speaker. He showed us how to use the “Search” feature on the Plug In development platform to locate the fragment of code that was manifesting the behaviour of a bug. His search strategy was as important as the “Search” capability given by the IDE. He picked a word from the GUI that was under investigation. Then he searched through the properties files that have to do with NLS. Then he grabbed the key from a properties file to do a search among Java source files.  When the class was over, I asked him if it’s all right to insert a line of code to throw an exception. The stack trace from the JVM might give me a clue about the location of the bug. Well, he said that he and other developers sometimes would do that. Also, they would use System.out.println. He said, “Don’t be afraid to try out anything with the code.”

Tonight I was trying to map out the flow of control that has triggered NullPointerException that is related to my bug. After some tinkering, I used the”Search” feature and found out that the dropDown method was called 12  times in the ASDCCombo class. Then I inserted some System.out.println statements near those locations. The output in the console view on the development platform has given me an interesting trace of events and event handling. I still don’t know why there’s a null reference. Soon I realized that I should get an updated stack trace report since I’m using the most current build(3.1M5). I don’t know how to do it. I posted my request to the Bug Report.

After Angel Vera’s visit to our class, I felt somewhat empowered to fix the bug. He and Jordan have shown us different ways to locate a bug. What I and other students need to do now is try, try, try and nothing else.