Final Entry!
My project presentation was two days ago and it was a success because of the completion of my system and most of the project requirements. It was during the week of spring break (the week before the last journal entry) that my system got started, and 5 weeks since then, I have finished the system together with all the requested enhancements from my client. I was able to make this breakthrough thanks to my newly acquired skills and strategies: communication, time-management, decision-making, positive- thinking and the joy of creation. It is thanks to my communication with Dr. Pankratz that helps me better define the scope of the project and the proof of concept, and motivates me to go forward while I was indecisive of which approach to take. Thanks to Dr. McVey and my colleague Ryan McLaughlin who are the experts in C# and event-programming that I was able to solve problems that would have taken me hours googling. And thanks to Dr. Blahnik, who always gave me a to-do list and constantly reminded me of the client side, that I am able to create a user-friendly system that I am very proud of. What I have learned about time-management skill is the ability to prioritizing my daily-acitivities tasks, the hedgehog concept ( the ability to work more efficiently focusing on one task at a time and stop worrying about other things), and the sense of urgency that motivated me to somehow miraculously find and spend an average of 6 hours on the project everyday that led to my catching-up and finishing the project that is more than I had expected. The ability to make a decision, to take responsibilities for my decision, and to accept trials and errors not only helped with my project but also helped me grow as a person. Thanks to Dr. Pankratz and Dr. Blahnik, who has given me encouragements and reminded me of positive-thinking, I have become more open-minded, learned to take risks in making decision, and thus, expanded my opportunities in learning, creating, and succeeding. Last but not least, what I have felt during the last 4 weeks that also greatly contributes to the success of my project is the joy of computer science profession and joy of creation. What I mean by the joy of computer science profession, defined in the Mythical Man-Month by Fred Brooks, is the joy of pure thinking and problem-solving while working with the abstract system. It is this joy that brought me to computer science major in the beginning, which I have forgotten for a while because of my focusing on getting the job done. And the joy of creation is totally new to me that has brought me tremendous happiness. This is the first product that I create in my life, the first valuable thing that will be useful to others, the first thing that I give back as a tribute to St. Norbert College and the Computer Science Department after receiving so much from them. It is a system that I am proud of and I hope it will be useful for a long while.
The things I have left to do for the project are my defense this coming Thursday and my documentation. Thank you for following my journal and my project! This project is much more to me than just coding, a system that collect data and raise reports, or learning C# and VB6; it is the three months of my life, the three months of hard-work and growth through a period of personal turbulence- my last three months of my college experiences. I hope you can gain something from this project, or at least share with me the joy as I am writing these lines. Thanks, again!
My deep gratitute to St. Norbert College, the Computer Science Faculties, and my fellow computer science major seniors and juniors who have been growing and facing challenges together with me this past 4 years!!!
Something to share!
A couple of days ago, I was working on the FindMatch function; this function allows allows user to type into a combobox, and the matching entry in the combobox will appear. The FindMatch function in VB6 is quite simple because its event-handling keypress method gives the user total output control, whereas in C#, the keyboard will automatically output the pressed character after giving the user control; for example, after I hit '1', I want to auto-complete the combobox's text with the account "10123", I will now receive "110123" or "101231" depending on where the cursor will be after the event-handling function finishes.
-To counter this problem, Dr. Blahnik suggests (approach #1) that we use a textbox (for the user to type) and a separate combobox that will be manipulated to appear right below the textbox for the user to choose the matching account, and then disappear as soon as the user's done choosing. The problem is solved as the keyboard will output in the textbox whereas the event-handling function manages the combobox.
-Second approach, the one that I first implemented, is to use built-in data-binding function, which is supported by MS Visual Studio 2005. This approach is quick, convenient, as the software does everything and there are more and easier ways to manipulate the data. However, Dr. Blahnik (my client) disapproved this approach, giving reasons that I will run into troubles later on.
-Finally, I came up with the last approach that is manual, solves the problem without the unsightfully popping-up combobox (1st approach). The key of this approach is to manually overdrive the keyboard handler by "EventArgs.Handle = true" within the keypressed (or keydown, etc.) function, then send the focus to somewhere else (a label, for example) that send the focus back to the combobox to return the handle to the keyboard, without the keyboard adding the extra character to the last keypress. Problem solved! Please contact me if you want to look at the code for any approach.