DISCUSSION 3 by Jason McGarr
An interesting problem occurred when our group tried to file out the current change set for our final turn-in for milestone 2. I filed my partners change sets into my squeak image to incorporate their widgets into my squeak point class. It worked perfectly, and I filed the change set out as one file. However, when I checked the change set later, I found I could not file it into a new Squeak image. My methods and changes filed in, but my partners did not. It would immediately exit with an error saying that it didnít understand the timestamp on their methods. It appeared like all the information was in the change set except for the class definitions. Obtaining a new copy of my partnersí code would have been much easier, but I wasnít able to contact them. After adding one of the missing class definitions the change set progressed farther during the file in, but stopped once it found another method belonging to a class it didnít recognize. I created new classes with the same names and filed in the rest of the change set. This added in the missing methods to the classes I had made. I am uncertain what caused this to happen, but if this were to happen to someone else without a backup copy of their code, skimming the change set text file for missing items may be your best bet. Either you may add what is missing using your browser window, like you normally would, or edit the change file itself.
One tool that I found to be invaluable while working in Squeak is the Method Finder.† To open the method finder click on the tools button on the middle right hand side of the screen. This will open a viewer of many of the common tools used in Squeak. See figure 1 on the right. Inside the tool viewer select and drag the method finder option onto your workspace. This will open up the selector browser below, where you can type in the methods that you want.† In the top left corner of the browser you can enter a portion of the function name you are looking or just the desired arguments and responses of a function you would like to find.
Receiver.args.response is the syntax. Each needs to be separated by a comma. Ex. ŗ
Ďbobí . 1. $h†††† This would search for a function that when passed a string Ďbobí
with argument 2 would respond with a character h.
The method finder helps tremendously especially when trying to search squeak to find the method or class to do whatever. It also helps in finding functions in the system browser for a class so you can piece together the sequence of calls for different events to occur.