Difference between revisions of "User:Sdowne/summer 2010 worklog may"
(7 intermediate revisions by the same user not shown) | |||
Line 31: | Line 31: | ||
* Fixed two more of the examples from last night, [https://processing-js.lighthouseapp.com/projects/41284/tickets/633-inheritance-problems-with-parsing#ticket-633-1 first] and [https://processing-js.lighthouseapp.com/projects/41284/tickets/635-public-ctors-break-parser#ticket-635-1 second] | * Fixed two more of the examples from last night, [https://processing-js.lighthouseapp.com/projects/41284/tickets/633-inheritance-problems-with-parsing#ticket-633-1 first] and [https://processing-js.lighthouseapp.com/projects/41284/tickets/635-public-ctors-break-parser#ticket-635-1 second] | ||
* Working on a third error that has to do with inheritance as well. When a method is created in a super class, and references another variable inside the same super class, it will always reference the same method, even if it's being called by a sub class. Nothing but dead ends so far. | * Working on a third error that has to do with inheritance as well. When a method is created in a super class, and references another variable inside the same super class, it will always reference the same method, even if it's being called by a sub class. Nothing but dead ends so far. | ||
+ | * Did end up fixing the one talked above, ended up being ticket [https://processing-js.lighthouseapp.com/projects/41284/tickets/637-inheritance-problems-with-parsing-function-odd-behaviour#ticket-637-2 637] | ||
+ | |||
+ | Sat May 8, Sun May 9<br /> | ||
+ | * Built firefox remotly form home. | ||
+ | * Fixed a [https://processing-js.lighthouseapp.com/projects/41284/tickets/640-flocking-example-broke bug] with Inheritance, and filed [https://processing-js.lighthouseapp.com/projects/41284-processingjs/tickets/643-inheritance-problems-with-variables another] to be fixed at a later date. | ||
+ | |||
+ | Monday May 10<br /> | ||
+ | * Had a phone conference about the js video library with Brett and Mark. | ||
+ | * Started on [https://processing-js.lighthouseapp.com/projects/41284/tickets/232-test-removal-of-with-p removing with]. | ||
+ | * Did some testing for release 0.9. | ||
+ | |||
+ | Tuesday May 11<br /> | ||
+ | * Continued with [https://processing-js.lighthouseapp.com/projects/41284/tickets/232-test-removal-of-with-p removing with]. | ||
+ | * What I did was broke the processing.js down to the parser, ArrayList, and the constuctor. Got that working, and updated it. | ||
+ | |||
+ | Wednesday May 12<br /> | ||
+ | * Sick, but continued with [https://processing-js.lighthouseapp.com/projects/41284/tickets/232-test-removal-of-with-p removing with] at home, started working on it in a large scale. | ||
+ | |||
+ | Thursday May 13<br /> | ||
+ | * Still sick, continued with [https://processing-js.lighthouseapp.com/projects/41284/tickets/232-test-removal-of-with-p removing with] had some examples running, along with most tests passing. | ||
+ | |||
+ | Friday May 14<br /> | ||
+ | * Back to work as normal. | ||
+ | * The solution to [https://processing-js.lighthouseapp.com/projects/41284/tickets/232-test-removal-of-with-p removing with] was giving me problems, and desided to move all Processing functions into the Processing constructor. | ||
+ | * Solved another serious issue using getters and setters, this will also be helpful later to fix class parsing, probably be first thing I do for 0.9.3, and it shouldn't be too hard, a day at most with what I now know inside and outside the parser. | ||
+ | |||
+ | Sat May 15<br /> | ||
+ | * Got all tests passing for [https://processing-js.lighthouseapp.com/projects/41284/tickets/232-test-removal-of-with-p removing with] cept an issue with .pde unit tests, and many examples, including 3D examples, and substrate were tested and working. | ||
+ | * Blogged on rewriting Processing.js. | ||
+ | |||
+ | Sun May 16<br /> | ||
+ | * Everything is now passing for [https://processing-js.lighthouseapp.com/projects/41284/tickets/232-test-removal-of-with-p removing with], peer review has been requested. | ||
+ | * I had to move the Processing.lib declaration back out of the constructor, it was being called from tests, without a new Processing object being created for test-harness-lib.js, line 4. This fixed the unit test problems. | ||
+ | * I am now pretty well versed in the flow of processing.js, they way it's called, what happens first, why, etc and learning more every day. | ||
+ | |||
+ | Monday May 17<br /> | ||
+ | * Ontario Centers of Excellence booth. | ||
+ | |||
+ | Tuesday May 18<br /> | ||
+ | * Ontario Centers of Excellence booth. | ||
+ | * [https://processing-js.lighthouseapp.com/projects/41284/tickets/232-test-removal-of-with-p removing with] was reviewed by David. | ||
+ | * Got to work on fixing those changes. | ||
+ | |||
+ | Wednesday May 19<br /> | ||
+ | * Finished the previous fixes for [https://processing-js.lighthouseapp.com/projects/41284/tickets/232-test-removal-of-with-p removing with]. | ||
+ | * Went through the test suit for my new patch, and found an error for key pressing, fixed it. | ||
+ | |||
+ | Thursday May 20th<br /> | ||
+ | * Fixed another set of problems with [https://processing-js.lighthouseapp.com/projects/41284/tickets/232-test-removal-of-with-p removing with], mostly style and other nit picks. | ||
+ | * Ran through the new patch with the test suite, on opera, chrome, firefox, and minefield on linux. | ||
+ | * [https://processing-js.lighthouseapp.com/projects/41284/tickets/232-test-removal-of-with-p removing with] was checked-in that night. | ||
+ | |||
+ | Friday May 21st<br /> | ||
+ | * [https://processing-js.lighthouseapp.com/projects/41284/tickets/232-test-removal-of-with-p removing with] is done, so I went on to my next big patch, which is [https://processing-js.lighthouseapp.com/projects/41284/tickets/664-remove-this-from-parsed-class-variables-and-go-with-thisgettersetter 664] | ||
+ | * In [https://processing-js.lighthouseapp.com/projects/41284/tickets/664-remove-this-from-parsed-class-variables-and-go-with-thisgettersetter 664] what I'm doing is taking what I learned from [https://processing-js.lighthouseapp.com/projects/41284/tickets/232-test-removal-of-with-p removing with] and improving what was done ages ago with the first with removal, which I hope can also solve my inheritance problems, which currently has three open tickets for inheritance [https://processing-js.lighthouseapp.com/projects/41284/tickets/554-override-not-working-as-expected 554] [https://processing-js.lighthouseapp.com/projects/41284/tickets/643-inheritance-problems-with-variables 643] and [https://processing-js.lighthouseapp.com/projects/41284/tickets/641-bug-in-the-handling-of-polymorphism-08-09 647] These all are very specific examples, but the problem is more general, and I hope by rewriting class parsing in this way, I can get inheritance just right, including super() and super. methods, which I'm going to solve by creating a super object within the scope of the sub class, and it'll be a copy of the base class, so by calling super.variableName, it will work without having to parse super., or without having to create a super function. Also static will need to be rewritten. | ||
+ | * I actually got very far on my class rewrite, and hope to have the first draft for peer review some time tomorrow after an evening of testing. | ||
+ | |||
+ | Saturday May 22nd<br /> | ||
+ | * Continued work on [https://processing-js.lighthouseapp.com/projects/41284/tickets/664-remove-this-from-parsed-class-variables-and-go-with-thisgettersetter 664] and got quite far, removing about 90 lines of code, but there is a hude problem. I lose control of inheritance. I need to, at the time a function is created, control which class, child or parent, uses it. I do this by using this. for functions, and public. for variables. This will call the parent variable, as public is a frozen copy of this refering to the class that crated it, and this.'s meaning changes when it is called, refering to the current class that is calling it, most likely the child. No way I can remove this functionality and keep the specifics of inheritance. I have decided to better spend my time working on perfecting inheritance. | ||
+ | * Started work on [https://processing-js.lighthouseapp.com/projects/41284/tickets/643-inheritance-problems-with-variables inheritance]. | ||
+ | * The main things I want to accomplish is super() constructor calls, super. variable calls, and functions and variables called from their proper parent/child. | ||
+ | * Got an initial trial patch, and got Pomax, a user from irc to break it, which he did, pointing out that inheritance can have infinite levels in the tree, and I only accounted for two. Back to the drawing board. | ||
+ | |||
+ | Sunday May 23rd<br /> | ||
+ | * I created an inheritance tree. I already keep an array of objects, one for each class, and add classes to it as I go. The class contains a name property, a string of variables names, seperated by a | and an array of function names. In order for multiple inheritance to work, I must continue to add all parent properties to the list of the child, and keep adding as a new child is found. This is recursive and works wonders while testing the values, but the example Pomax sent me isn't quite right. | ||
+ | * super() constructors, I've decided to keep a local object inside the child called super, which will be an instance of the parent. allowing calls like super. to not need any parsing, as they will just refer to the super object. Perfect. One problem, super() is not how you call constructors in JavaScript. I need to parse that into "super = new className();" Passing in any possible parameters. I must do this inside the constructors, and if there is no constructors, a default super constructor call is implied. | ||
+ | * Filed [https://processing-js.lighthouseapp.com/projects/41284/tickets/614-syntax-parsing-error-with-void-setup ticket 614] as a duplicate. | ||
+ | * Resolved [https://processing-js.lighthouseapp.com/projects/41284/tickets/102-move-functions-outside-of-buildprocessing-so-they-can-be-re-used ticket 102]. | ||
+ | * Resolved [https://processing-js.lighthouseapp.com/projects/41284/tickets/553-constructor-odd-behavior-mistakes-on-parsing-but-java-parser-is-fine ticket 553]. | ||
+ | |||
+ | Monday May 24th<br /> | ||
+ | |||
+ | Tuesday May 25th<br /> | ||
+ | * Did some finishing touches to [https://processing-js.lighthouseapp.com/projects/41284/tickets/643-inheritance-problems-with-variables inheritance], and Pomax was not able to break my patch, submitted it for review that afternoon. | ||
+ | * Had a meeting with Dave about my progress. | ||
+ | * I did some further research on my tickets, to assess how possible, and difficult they would be, and started to think and test solutions for some of the more difficult ones, like [https://processing-js.lighthouseapp.com/projects/41284/tickets/671-using-this-for-constructors 671], [https://processing-js.lighthouseapp.com/projects/41284/tickets/642-name-of-parameters-in-constructor-cause-collisions-in-the-class-methods 642], [https://processing-js.lighthouseapp.com/projects/41284/tickets/648-using-class-variables-outside-ctor-and-functions-doesnt-exist 648] and [https://processing-js.lighthouseapp.com/projects/41284/tickets/648-using-class-variables-outside-ctor-and-functions-doesnt-exist 648]. | ||
+ | |||
+ | Wednesday May 26th<br /> | ||
+ | * Completed a few smaller tickets. [https://processing-js.lighthouseapp.com/projects/41284/tickets/636-support-float-literals-with-f-vs-f 636], [https://processing-js.lighthouseapp.com/projects/41284/tickets/651-framerate-not-always-parsed-correctly 651] and one larger ticket [https://processing-js.lighthouseapp.com/projects/41284/tickets/671-using-this-for-constructors 671]. | ||
+ | |||
+ | Thursday May 27th<br /> | ||
+ | * Completed [https://processing-js.lighthouseapp.com/projects/41284/tickets/648-using-class-variables-outside-ctor-and-functions-doesnt-exist 648], [https://processing-js.lighthouseapp.com/projects/41284/tickets/600-check-on-work-boundaries-during-regex-parsing 600] and [https://processing-js.lighthouseapp.com/projects/41284/tickets/625-parse-error-with-the-following-code 625]. | ||
+ | |||
+ | Friday May 28th<br /> | ||
+ | * Had a good day and completed [https://processing-js.lighthouseapp.com/projects/41284/tickets/681-processingdebug-is-broken 681], [https://processing-js.lighthouseapp.com/projects/41284/tickets/665-running-js-through-the-parser 665], [https://processing-js.lighthouseapp.com/projects/41284/tickets/683-last-line-in-processingjs 683], [https://processing-js.lighthouseapp.com/projects/41284/tickets/611-handle-sketch-code-pixels-new-color 611] and [https://processing-js.lighthouseapp.com/projects/41284/tickets/642-name-of-parameters-in-constructor-cause-collisions-in-the-class-methods 642] | ||
+ | |||
+ | Saturday May 29th<br /> | ||
+ | * Resolved other inheritance tickets that [https://processing-js.lighthouseapp.com/projects/41284/tickets/643-inheritance-problems-with-variables 643] fixed. | ||
+ | Sunday May 30th<br /> | ||
+ | * Resolved ticket [https://processing-js.lighthouseapp.com/projects/41284/tickets/613-error-when-calling-method-in-for-loop 613] which has been fixed in [https://processing-js.lighthouseapp.com/projects/41284/tickets/643 643] because of general cleaning. | ||
+ | * Moved [https://processing-js.lighthouseapp.com/projects/41284/tickets/595-parser-barfs-on-object-literals 595] out of 0.9.3 into 1.1. | ||
+ | |||
+ | Monday May 31st<br /> | ||
+ | * Today we met about video.js. | ||
+ | * Moved three tickets out of 0.9.3 [https://processing-js.lighthouseapp.com/projects/41284/tickets/664-remove-this-from-parsed-class-variables-and-go-with-thisgettersetter 664], [https://processing-js.lighthouseapp.com/projects/41284/tickets/477-class-and-method-overloading-with-same-number-of-arguments 477] and [https://processing-js.lighthouseapp.com/projects/41284/tickets/441-parsing-indifferent-to-regex-content 441]. I moved them because of how difficult, and how trivial they are at the moment. | ||
+ | * I got started on video.js. I will be adding a feature to be able to tag people in a video, using xml elements. I played with the current example and hacked something up. This won't be hard to complete compared to the processing.js parser. I actually enjoyed writing JavaScript without the constraints of Java like syntax again :). | ||
+ | * I also researched, got help from others, brainstormed ideas for [https://processing-js.lighthouseapp.com/projects/41284/tickets/677-getting-a-reference-to-a-processing-object 677] and finished it later that evening. |
Latest revision as of 15:33, 4 June 2010
Summer 2010 Worklog JS Projects 2010
Monday May 3
- Orientation
- Started setting up workspace
Tuesday May 4
- Installed Fedora
- Finished setting up workstation
- installed git, linked to existing github
- Set up irc (irssi + screen)
- Tried to sort out pjs pixelHack and tic 601, 601 was reviewed by andor and needs work
- pixelHack was solved and finished later that night
- Finishing 601 tomorrow morning
Wednesday May 5
- Finished tic 601, it's up for review
- Built Firefox on Fedora
- Both tic 601 and pixelhack are in 0.9
- Reviewed Andor's 556 ticket which is also in.
- fought with git
Thursday May 6
- Tried to update my Fedora to nvidia drivers, and pretty much broke it, reinstalled, tried once more, still no luck, installed ubuntu and stopped there, I will set it up later.
- Worked on breaking examples in processing.js. Fixed the Neighborhood example, which required an overhaul of static variables and functions. Actually required more work than was expected. Here is the ticket
- Still have a bunch others that need fixing
Friday May 7
- Fixed two more of the examples from last night, first and second
- Working on a third error that has to do with inheritance as well. When a method is created in a super class, and references another variable inside the same super class, it will always reference the same method, even if it's being called by a sub class. Nothing but dead ends so far.
- Did end up fixing the one talked above, ended up being ticket 637
Sat May 8, Sun May 9
- Built firefox remotly form home.
- Fixed a bug with Inheritance, and filed another to be fixed at a later date.
Monday May 10
- Had a phone conference about the js video library with Brett and Mark.
- Started on removing with.
- Did some testing for release 0.9.
Tuesday May 11
- Continued with removing with.
- What I did was broke the processing.js down to the parser, ArrayList, and the constuctor. Got that working, and updated it.
Wednesday May 12
- Sick, but continued with removing with at home, started working on it in a large scale.
Thursday May 13
- Still sick, continued with removing with had some examples running, along with most tests passing.
Friday May 14
- Back to work as normal.
- The solution to removing with was giving me problems, and desided to move all Processing functions into the Processing constructor.
- Solved another serious issue using getters and setters, this will also be helpful later to fix class parsing, probably be first thing I do for 0.9.3, and it shouldn't be too hard, a day at most with what I now know inside and outside the parser.
Sat May 15
- Got all tests passing for removing with cept an issue with .pde unit tests, and many examples, including 3D examples, and substrate were tested and working.
- Blogged on rewriting Processing.js.
Sun May 16
- Everything is now passing for removing with, peer review has been requested.
- I had to move the Processing.lib declaration back out of the constructor, it was being called from tests, without a new Processing object being created for test-harness-lib.js, line 4. This fixed the unit test problems.
- I am now pretty well versed in the flow of processing.js, they way it's called, what happens first, why, etc and learning more every day.
Monday May 17
- Ontario Centers of Excellence booth.
Tuesday May 18
- Ontario Centers of Excellence booth.
- removing with was reviewed by David.
- Got to work on fixing those changes.
Wednesday May 19
- Finished the previous fixes for removing with.
- Went through the test suit for my new patch, and found an error for key pressing, fixed it.
Thursday May 20th
- Fixed another set of problems with removing with, mostly style and other nit picks.
- Ran through the new patch with the test suite, on opera, chrome, firefox, and minefield on linux.
- removing with was checked-in that night.
Friday May 21st
- removing with is done, so I went on to my next big patch, which is 664
- In 664 what I'm doing is taking what I learned from removing with and improving what was done ages ago with the first with removal, which I hope can also solve my inheritance problems, which currently has three open tickets for inheritance 554 643 and 647 These all are very specific examples, but the problem is more general, and I hope by rewriting class parsing in this way, I can get inheritance just right, including super() and super. methods, which I'm going to solve by creating a super object within the scope of the sub class, and it'll be a copy of the base class, so by calling super.variableName, it will work without having to parse super., or without having to create a super function. Also static will need to be rewritten.
- I actually got very far on my class rewrite, and hope to have the first draft for peer review some time tomorrow after an evening of testing.
Saturday May 22nd
- Continued work on 664 and got quite far, removing about 90 lines of code, but there is a hude problem. I lose control of inheritance. I need to, at the time a function is created, control which class, child or parent, uses it. I do this by using this. for functions, and public. for variables. This will call the parent variable, as public is a frozen copy of this refering to the class that crated it, and this.'s meaning changes when it is called, refering to the current class that is calling it, most likely the child. No way I can remove this functionality and keep the specifics of inheritance. I have decided to better spend my time working on perfecting inheritance.
- Started work on inheritance.
- The main things I want to accomplish is super() constructor calls, super. variable calls, and functions and variables called from their proper parent/child.
- Got an initial trial patch, and got Pomax, a user from irc to break it, which he did, pointing out that inheritance can have infinite levels in the tree, and I only accounted for two. Back to the drawing board.
Sunday May 23rd
- I created an inheritance tree. I already keep an array of objects, one for each class, and add classes to it as I go. The class contains a name property, a string of variables names, seperated by a | and an array of function names. In order for multiple inheritance to work, I must continue to add all parent properties to the list of the child, and keep adding as a new child is found. This is recursive and works wonders while testing the values, but the example Pomax sent me isn't quite right.
- super() constructors, I've decided to keep a local object inside the child called super, which will be an instance of the parent. allowing calls like super. to not need any parsing, as they will just refer to the super object. Perfect. One problem, super() is not how you call constructors in JavaScript. I need to parse that into "super = new className();" Passing in any possible parameters. I must do this inside the constructors, and if there is no constructors, a default super constructor call is implied.
- Filed ticket 614 as a duplicate.
- Resolved ticket 102.
- Resolved ticket 553.
Monday May 24th
Tuesday May 25th
- Did some finishing touches to inheritance, and Pomax was not able to break my patch, submitted it for review that afternoon.
- Had a meeting with Dave about my progress.
- I did some further research on my tickets, to assess how possible, and difficult they would be, and started to think and test solutions for some of the more difficult ones, like 671, 642, 648 and 648.
Wednesday May 26th
Thursday May 27th
Friday May 28th
Saturday May 29th
- Resolved other inheritance tickets that 643 fixed.
Sunday May 30th
- Resolved ticket 613 which has been fixed in 643 because of general cleaning.
- Moved 595 out of 0.9.3 into 1.1.
Monday May 31st
- Today we met about video.js.
- Moved three tickets out of 0.9.3 664, 477 and 441. I moved them because of how difficult, and how trivial they are at the moment.
- I got started on video.js. I will be adding a feature to be able to tag people in a video, using xml elements. I played with the current example and hacked something up. This won't be hard to complete compared to the processing.js parser. I actually enjoyed writing JavaScript without the constraints of Java like syntax again :).
- I also researched, got help from others, brainstormed ideas for 677 and finished it later that evening.