Sunday, April 25, 2010
Release 0.3 - latest patch for Bespin's SmartMove implementation (revised)
Anywho, my latest bug patch is below.
The bug page and comment can be found here
The actual patch can be found here
Wednesday, April 21, 2010
Should I really get the latest tip before I start work?
Monday, April 19, 2010
Issues with Bug 558783 over the weekend
So far on the patch, I have implemented the reference for the smartmove option that Bespin produces when 'smartmove' is typed on the command line. It explains what the command does and how to use it. Right now, the bug is at a point where when the cursor is in the middle of tab spaces, it will jump from the middle of a tab to the end of the tab in the direction pressed, but not when shift is pressed. I have to figure out how to determine whether shift is being pressed and implement it in that situation as well. It also jumps over the entire space if there are two tabs rather than only one tab space. I am having trouble figuring out the logic for that one... I also have to add the actual command to turn the smartmove feature off and code it accordingly. Unfortunately, I have to give it a rest for a bit because my DSA exam and EJB exam are tomorrow. It will be in the back of my mind, however...
Thursday, April 15, 2010
Review of bug for release 0.2
- When the cursor is within a tab, pressing right or left should bring the person to the end of the tab (if the tab is 4 spaces and the user is column 2 of that tab, pressing right should move the cursor 2 spaces to the right) (mine always moves *set amount of tab spaces*, even if the cursor is inside of a tab).
- If the user is within a tab space, and say this tab space is on column 1-4 and the cursor is on column 2, if the user holds shift and presses right, the cursor goes to column 4 and highlights column 2, 3 and 4.
- Add a setting to turn this feature on/off.
Wednesday, April 14, 2010
Week 14
Monday, April 12, 2010
Fixing Bespin Bug 558783 - Release 0.2
work on OSD. I had previously spoken to jviereck about a bug involving implementing TM's SmartMove. I was able to accomplish this last night. Much to my advantage, Harjinder had just worked on bug 557135 involving implementing the indent feature, and since TM's SmartMove is basically a fancy way of saying, 'make the cursor jump over a tab where tab was pressed', he had the foundation by knowing that 'tabstop' in the JavaScript files were the default size of a tab. Combined with Skype and TeamViewer (using TeamViewer because Harjinder could not run Skype on Linux and could not run Bespin on Windows), we banded together to work on bug 558783 and successfully completed it before the sun came up. We finished our work at 3:30 am, at which point I was still at the school because my DSL modem at my apartment appears to have broken down and needs to be replaced (at probably one of the worst possible times...).
I encountered a few issues while working on the patch, but for the most part they were mistakes caused by it being a late night and having worked on other things all day. These problems included, but were not limited to:
var line = lines[range.start.end];
instead of
var line = lines[range.start.row];
or little algorithm issues such as:
if(((count * 1) * -1) >= tabstop){
count = tabstop;
count = count * -1;
}
else{
count = -1;
}
in the moveLeft function instead of
if((count * -1) >= tabstop){
count = tabstop;
count = count * -1;
}
else{
count = -1;
}
which would end up making the if statement evaluate count as a negative instead of a positive which would end up having the cursor's behaviour unpredictable and incorrect once the left cursor was pressed. A lot of the time, however, when different changes were made, it would just break the function altogether and when left was pressed, the cursor would be at a standstill.
You can find the bug page here and the source code that was required to implement this smart-move behaviour in Bespin here
Sunday, April 11, 2010
Trouble setting java_home as an environment variable
I have been trying for about a week+ to deploy my java project. I have walked around to numerous computer labs across campus hoping one of them can be set up right, as when I set my own computer to have the jdk as a system variable it does nothing but fail as per the attached pictures. I don't get it?? According to all logic it should be pointing to the JDK at this point, and if not...at least the JDK is being pointed to as an environment variable, yet it still tells me that it can't find the package it needs. I hate it when technical issues halt your performance, in the end making you appear less capable because you can't even set up your computer properly. I have been trying to work this out for so long, have tried everything, have other things I need to be working on but really need to finish this, and for some reason can't because apparently JAVA_HOME isn't pointing to the JDK, which, according to the above printscreen, it is. If there are any readers out there who know why this is happening, please, PLEASE, PLEASE put an end to this nightmare and help me out. I have Bespin Bugs that need to be addressed.
New bug to work on
It's only a matter of time, now...
Thursday, April 8, 2010
Bespin Working Again
Sunday, April 4, 2010
Bespin Not Working Again...
I haven't been getting enough time to work on open source stuff due to assignments keeping me busy, but I'd really like to because I really enjoy it. I also look forward to starting work on my prj666 project come the summer. Just have to get these assignments out of the way...
Tuesday, March 30, 2010
Helping Out
Thursday, March 25, 2010
Filesystem Prototype
A quick prototype of what the filesystem could look like for our new Processing.js IDE. It is very similar to the Bespin file-system in terms of design, but it seems to follow the colour scheme and layout of the Processing.Js Prototype up until this point. We will exchange our ideas of what the filesystem should entail at our next meeting and see where that takes us.
Wednesday, March 17, 2010
Week 8
Wednesday, March 10, 2010
Week 7 - PRJ566
We also heard from Robert at the end of the week with a new prototype. It is looking pretty good, I can't wait to get working on the real thing and see how nice we can make it, as well as the following it gets.
Thunderbird Build
I did the thunderbird build lab over the reading week. It involved updating a file so that it no longer displayed non-links in the link format.
I was having trouble building thunderbird first of all. I tried a number of times to rebuild but it kept getting this one error that would not allow me to open thunderbird. Whenever I ignored it or aborted it, the command prompt window would stop responding and close, and when I pressed cancel it closed it. A few days later I re-built it, however, and was successful.
I tried to reproduce the error but didn't realize that it would only reproduce once it was saved as a draft. I can attribute Scott's blog for that little tidbit. Since I had already read Scott's blog, I had a good idea of how to solve the issue. I opened up the mozTXTToHTMLConv.cpp file in the mozilla/netwerk/streamconv/converters directory and changed the necessary code, retested it and sure enough, success on all accounts (see picture).
Patch can be found here
Bug can be found here
Wednesday, February 24, 2010
Firefox - debug build
Should have just done that from the beginning...
Tomorrow will be a day of labs. I intend to do the Firefox Lab as well as the lab about fixing a bug in Thunderbird. It shall be good fun...isn't it always?? :)
Sunday, February 21, 2010
Uploaded Patch For Bug # 540112
I was able to complete my bug over the course of the weekend after a few frustrations and getting reacquainted with a language that I had not used for a good two years. It was nice to revisit it and it feels good to get that patch done and uploaded. Details about the bug can be found on my wiki.
Specifications
For my bug, I had to make the text-cursor in the editor blink when the editing area had focus, like a cursor regularly does in a text-editor. The file that I had to edit was
bespinclient/plugins/supported/editor/views/text.js
.There wasn't too much editing in regards to this patch, but I had to make a timer function which called the drawInsertionPoint function, which placed the cursor on the page, and I had to make it so it would blink...so I used a boolean that would change every time the function was called so it would either colour the cursor the same colour as the background or colour it the colour that the cursor is supposed to be (blue). I had a lot of help from Julian Viereck in finding the right file and about the file system of Bespin. When I was struggling with getting it to work, Harjinder helped me to debug it and we worked together to find what was wrong with it. He was a huge help.
What I learned
- Learned how to iterate through large pieces of code
- Learned that I should check to see if the bug is still current/test it to see if the issue is still occuring
- Memorized how to update my files using Mercurial (hg pull -u). Previously, kept forgetting that syntax
- Learned how important communication is in the open source community
- When you work together you're bound to resolve the problem quicker because each person has a different approach to the problem, more things are noticed, and different solutions are brought to the table
The cursor now blinks in Bespin and my code is up for its first review. I hope it gets accepted but either way I am looking forward to the constructive criticism.
My Idea - Prototype 1
Here is a short description of why I did what I did on this prototype:
- I used Robert's early template of what it could look like as a starting point and added buttons using Paint to come up with my product.
- DASH is an invention by Steven on his version of the prototype, which was submitted first, so I thought I'd just go with it. It could be our codename for the creation process...(Derek Anthony Steven Harjinder)
- MyFiles is where the user will go to load files that he has previously created and saved. It is in an area above their controls that they will so frequently use (play/pause, stop, reload) so sublminally they will unconsciously know where it is because they will so frequently see it out of the corner of their eyes and register in their memories without them realizing it/having to look. That's the plan anyway...
-New and Save are side by side beside the play controls, easy to access and in plain site.
-Beside Save are the tabs, that will contain the files that are opened simultaneously. The file that is on the forefront will be bolded and underlined in the tab for clarification that it is the one that is being displayed at the moment.
-I thought there could be an 'Examples' field for syntax examples and little demo programs that the user could run, if they are new or just feel like procrastinating, to get a feel for processing.js and understand what it is and how it is different than other languages if they did not already know. It could be a way to learn syntax/processing.js all from within the confines of our IDE.
-About, beside the IDE's name, is simply stating information about the IDE's developers and what it's purpose is.
-Help is more about the particular functions and buttons within the IDE
-Reference is where they could look up the list of Processing.js functions, and the search bar underneath would be where they would look up specific functions tailored to what they are looking for.
-The left panel is where the coding would go and the right panel is where the action would take place (IE the processing.js code would run after pressing the 'play' button. The left panel is transparent and you would be able to see through it, only it would have a transparency effect, as is why the fellow on the left's line is lighter blue (it is supposed to symbolize that it's being viewed through another panel).
I thought the play button could also turn into a stop button because I don't know what the difference between pause and stop would be, except maybe that stop might clear the right panel, but then reload would also do that but I guess reload would more 'reset' the right panel and keep it going, and pause could just 'freeze' it in place.
Anyway, it is just my first idea of what this prototype could look like, and there will be some definite changes in the future.
Bug 540112
What I have now is...
The cursor drawing function...
_drawInsertionPoint: function(rect, context) {
var range = this._selectedRange;
var characterRect = this.get('layoutManager').
characterRectForPosition(range.start);
context.save();
context.strokeStyle = this.get('theme').cursorStyle;
context.beginPath();
context.moveTo(characterRect.x + 0.5, characterRect.y);
context.lineTo(characterRect.x + 0.5,
characterRect.y + characterRect.height);
context.closePath();
context.stroke();
context.restore();
},
The timer function...
_cursorBlinkTimer: function() {
this._cursorBlinkTimer = SC.Timer.schedule({
target: this,
action: '_fireDrawInsertionPoint', /*Had _drawInsertionPoint but can't pass in parameters with this */
interval: 250,
repeats: true
});
},
I thought it needed some sort of other method to send in the parameters but that would need to be called using parameters in the action: property above so that couldn't work...
_fireDrawInsertionPoint: function(rect, context) {
if(this.get('isFirstResponder')) {
drawInsertionPoint(rect, context);
}
},
The place that calls the cursor drawing function...
_drawSelection: function(rect, context) {
if (this._rangeIsInsertionPoint(this._selectedRange)) {
this._drawInsertionPoint(rect, context); //Thought this had to be this._cursorBlinkTimer()
} else {
this._drawSelectionHighlight(rect, context);
}
},
So I'm in a bit of a bind and have been looking around for quite some time but am not coming up with much to go on. I even asked Yahoo Answers lol and they said the way it was coded would be tricky. A fellow on irc told me that I should look into property-observing functions of SC...for something like an isCursorVisible property...I've been looking but haven't been coming up with much and that is much different than what I have done so far but anything is acceptable as long as it works and is it good taste. Hmm. Tricky.
Saturday, February 20, 2010
Firefox Build Finally Complete
Trying to complete my build of FireFox to work on lab
To be exact...it says...
checking for gcc... cl
checking whether the C compiler (cl ) works... no
configure error: installation or configuration problem: C compiler cannot create executables.
*** Fix above errors and then restart with "make -f client.mk build"
Now...why in the world wouldn't my C compiler be working properly. It's obviously detected and it is evident that it is there...why in the world...would it...not be...working?
Frustrating.
Latest Bug 542578 Also Outdated
Thank you Mr Julian Viereck, you have made my day...
Friday, February 19, 2010
Initial Project Plan - Bug 540112
UPDATE: I just found out late last night that the bug in question...542578...is also a thing of the past and have been blessed, finally, with a bug that needs to currently needs to be fixed. This bug is bug number 540112 about how the Bespin cursor doesn't blink when it's inside the text editing area. Well, I'm going to fix that right now.
Background
Bespin is an online IDE developed by Mozilla Labs. It allows users to create and edit code, similar to Microsoft Visual Studio, from within a web-browser with no client-side installation necessary. It will allow multiple users to work on and discuss a single piece of code/program collaboratively. It is also a piece of open-source software...a very attractive option to developers everywhere.
Progress Tracking
I will be tracking this progress on my wiki. I will also post things that other developers would find important on the issue page (540112). They will be able to follow me through my wiki and through my posts on the issue pages listed above. I expect to have looked at the code for these issues by February 19th and to have issue 540112 finished by February 20th. Yes, there's not a lot of time but this bug is due the week of February 15th and according to all logic, Saturday is still a part of the week. Sometimes you run into obstacles and you just need to kick them down and run over them a few times, and that is what I plan on doing. This little setback of my original bug not really being a bug anymore will not keep me down.
Different Versions of Each Release
As stated previously, I don't have long to do it so I'm going to tackle it head on. It shouldn't be too big anyway, at least I hope not. For issue 540112, I plan on it being done for February 20th. I will then continue to work on more bugs to help out the mozilla community. I will discuss my issues with Julian Viereck for assistance and guidance with the issue. He has already been a big help in guiding me to it's general location and giving me a truly current bug.
Overall
I will be using JavaScript since that is what the majority of files in Bespin are coded in. It has been a little while since I've used it but I reviewed it while working on the last fail of a bug, so it's coming back to me. I was talking to Julian Viereck on irc about the issue and he said it was still open and needed to be resolved. I will use Google for help with syntax as well as clarify my questions about the issue with Julian Viereck. I've already experienced a few barriers, namely the bug I was working on previously and spent a good amount of time on was obsolete, but I am sure to experience new barriers as time progresses. I will be talking to people over irc and learn on my own using google to overcome barriers. We shall see how it works in the end. I think it'll be good to look around in bespin some more but understanding it all is pretty impossible since it's a massive repository.
My Bespin Bug Was Outdated!!
Unfortunately, I was just on IRC talking to pwalton and it seems that the issue has been resolved and it was outdated. http://bespin.mozilla.com uses version 0.0.4 and the recent version is 0.0.7. Joy!!!!!!!!!! That was a good use of a multitude of hours. Well, so much for that. He assigned me to another bug now...bug # 542578. So, I better get to work. I'll make another initial project plan for it since the last one is obsolete.
Joy.
I guess life is in fact winning this round.
Thursday, February 18, 2010
Bug in Bespin ... the search...
_isHighlighted: function() {
return this._isMouseOver === true
this._mouseDownScreenPoint !== null;
},
which is just the first of many similar lines but that goes to show you it's discussing whether the scrollbar is highlighted based on the mouse-event, which is pretty close to focusing on my bug, being that the custom scrollbar doesn't change when the mouse scrolls over the scrollbar. It just stays as the regular mouse cursor, and that ain't right...unfortunately my brain is pretty fried right now due to my 3 hours of sleep last night so I will have to resume it in the morning. Wish me luck, world.
Problem with bespin locally
Why? I'm not sure. I followed the instructions on the website to a tee but unfortunately that's how it goes sometimes. It is 4 am right now so unfortunately no one is on IRC to ask but I'm sure the solution is just out of reach. I shall resume my endeavours tomorrow, finally...I've been waiting for the moment to be able to work on this bug but unfortunately sometimes life likes to throw little obstacles at you...well we'll see who'll win this round 'life'.
Quite tired.
Features of Web Based Processing.js Editor
Processing.js's code is also known as sketches. There will be an area where the user can test their code out and see it in action. There will be a play button and a reload button that will give them easy access to perform these tasks. There will also be quick reference to processing.js syntax and documentation, allowing the user to search for processing.js functions to check a) if they exist, b) how they can be used and c) syntax examples.
Tonight, Harjinder, Steven, Anthony and myself collaborated and came up with a prototype located below of one of the ways that this editor could look. Under the 'Active' tab is where the proposed demonstration of the code that has been compiled using the 'play' button can be found, and Reference is where the processing.js references can be found. They can also be searched for using the search box beside it. When Reference is pressed, the processing.js references will likely be sorted in alphabetical order. We think that the below looks like a nicely designed IDE but it is just one of the ways that it could be designed, and we are still in the early stages. No matter how beautiful it looks like in the end, which it undoubtedly will, we will enjoy working on it and it will definitely be both a good experience and incredibly rewarding.
Monday, February 15, 2010
Did some testing for processing.js 0.5
Built Bespin Locally
plugins/supported/Editor/views/canvas.js
and is called from this file:
plugins/supported/Editor/views/text.js
This seems like a good place to start looking. Thank you Julian, wherever you are...
Thursday, February 11, 2010
Must get working on these bugs
Wednesday, February 3, 2010
Firefox Build
I opened up a few websites, but only really looked at one page in particular. The author seemed to explain things very well, and it was clear and easy to follow. He said he was new at building Firefox, as was I so that was a promising commonality, but the main difference is he did it on visual studio 2005 and I was running it on visual studio 2008, so I had to change a few things in the batch setup file, being the directory.
It was all good and well until we came to the .mozconfig file that we had to create. The first error was that it was saying I didn't have it set to create .mozconfig.mk automatically. After I fixed that, it was saying I didn't have MOZ_PROJECT_CO or something along those lines set to a variable, yet scanning through the files I found a MOZ_PROJECT_CO=browser line, so I do not know what it was talking about there. I went searching on the web and stumbled across this page from mozilla that had this set up for the .mozconfig file
echo '. $topsrcdir/browser/config/mozconfig' > mozconfig # let's build Firefox...
echo 'mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/objdir-ff-release' >> mozconfig # ...in this directory...
echo 'mk_add_options MOZ_MAKE_FLAGS="-j4"' >> mozconfig # ...quickly.
however that didn't work either, and had the same moz_project_co issue. I was two seconds away from asking in the firefox channel of irc and had typed out half of the message, but then on my way to pastebin to paste what was happening, I decided to try something. I made a combination of the two and ended up with this...
# Building Firefox Trunk with Debugging
. $topsrcdir/browser/config/mozconfig > mozconfig
# Put all obj files in one place, not in src tree
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/firefox-objdir >> mozconfig
ac_add_options --disable-static
ac_add_options --enable-shared
# Debug Build Setup Options
ac_add_options --disable-optimize
ac_add_options --enable-debug
# I'm using Canvas for my work
ac_add_options --enable-canvas
and voila! after a quick
make -f client.mk checkout
it began!! Success!! At least for the checkout... There were a few 'command not found's at the beginning of the build but that was something in the .mozconfig file and it seemed to have been minuscule. The line numbers of the issues were, 3, 8, and 12, and those are the lines that are blank, so of course no command is found on a blank line...
I then ran
make -f client.mk build
hoping that it would all work out, but unfortunately it did not. It said to build the installer, I would need makensis, and to build without the installer, to reconfigure using --disable-installer. It is late now, and I am tired, so I thought I would speed up the process and disable the installer. Lo and behold, it ran for a little bit longer but ... not long enough ... as a new error has been brought to the surface...an error unlike any other...and error, full of unorganized and very confusing lines.
/cygdrive/c/proj/mozilla/build/cygwin-wrapper /cygdrive/c/proj/moztools/bin/nsinstall -m 644 ../mozilla-config.h /cygdrive/c/proj/mozilla/config/nsStaticComponents.h ../dist/include
/cygdrive/c/proj/mozilla/build/cygwin-wrapper: line 75: /cygdrive/c/proj/moztools/bin/nsinstall: Permission denied
/cygdrive/c/proj/mozilla/build/cygwin-wrapper: line 75: /cygdrive/c/proj/moztools/bin/nsinstall: No error
make[4]: *** [export] Error 1
make[4]: Leaving directory `/cygdrive/c/proj/mozilla/firefox-objdir/config'
make[3]: *** [export_tier_base] Error 2
make[3]: Leaving directory `/cygdrive/c/proj/mozilla/firefox-objdir'
make[2]: *** [tier_base] Error 2
make[2]: Leaving directory `/cygdrive/c/proj/mozilla/firefox-objdir'
make[1]: *** [default] Error 2
make[1]: Leaving directory `/cygdrive/c/proj/mozilla/firefox-objdir'
make: *** [build] Error 2
...Yea. Sooo...I guess something is wrong with cygwin-wrapper. That, or permission is denied to nsinstall. or both...line 75 in cygwin-wrapper is simply
exec $prog $args
Prog being the first argument after exec is run, and args being what follows after that...
I guess the issue is that nsinstall's permission is denied. I looked at it in windows explorer, and it does have a little administrators icon on the icon. Time to look to irc and see what they say...
I asked irc and there is no response. It is troublesome because recently my internet is not really working at home and I am stuck at the library most of the time. The only time my internet works reliably is after midnight...other than that downloads will stop not far in and productivity is hindered. I asked some irc folks but I guess it's too late for a response? Either way, I will continue to pick away at it, at 2 in the morning, after 5 unsuccessful hours in the library...maybe if I download these mozilla build tools, things will get better.
I downloaded the build tools that are defined as a prerequisite on Mozilla's development wiki, but unfortunately, it encountered a new error...
make[1]: Leaving directory `/c/proj/mozilla'
make -C /c/proj/mozilla/firefox-objdir
make[1]: Entering directory `/c/proj/mozilla/firefox-objdir'
Makefile:45: /cygdrive/c/proj/mozilla/config/config.mk: No such file or directory
Makefile:69: /cygdrive/c/proj/mozilla/browser/build.mk: No such file or directory
Makefile:91: /cygdrive/c/proj/mozilla/config/rules.mk: No such file or directory
make[1]: *** No rule to make target `/cygdrive/c/proj/mozilla/config/rules.mk'. Stop.
make[1]: Leaving directory `/c/proj/mozilla/firefox-objdir'
make: *** [build] Error 2
No rule to make target mozilla/config/rules.mk ehh ... well, that's odd because there's a rules.mk in the mozilla/config directory, so why do you need a rule to make it?? Bah!
I tried to just build it with the command make -f client.mk as it says in mozilla's site... only adding -B at the end to make all targets...and I will hope for the best. Sleep would be nice, but I think it's a thing of the past since I have to work on some C++ which is due tomorrow and I have not been able to find the time to work on it. I haven't watched tv for so long :(. I have re-enabled the installer to be built by the way since I am taking another route and using the mozilla build tools. An installer is definitely an integral part of any application, and it should be there.
Whoa...it's been running for a good 10 minutes. I may have something here. Maybe all I ever needed was that -B...never mind. Same problem. I don't understand why it's saying it's not making rules.mk when, for one, it's already made, and two, I did set a rule to make all targets (also known as rules.mk)...
make -B -f client.mk build ???
please.
nope
make -B -k -f client.mk build?
nope
So I have decided to scrap everything and just go with what it says on the mozilla developers website. If this works, then ... good. It should, why wouldn't it...? I have just run the first step, being
hg clone http://hg.mozilla.org/mozilla-central/
but it is taking forever. It's been about a half an hour and I don't think it's even half through. I can thank my internet connection for that. I am going to bed. In the morning, I will continue with the
make -f client.mk
Anndddd I tried to run make -f client.mk but unfortunately, I do need the Windows 7 sdk. The biggest problem with that is finding a connection that'll be able to get it in less than 6 hours, since it's 2.5 gb. My connection won't do it, since the sun is up and it'll continuously drop, but I am at school now and have begun the download...only 10 hours left...then hopefully there will be some success.
Friday, January 29, 2010
Working on Bespin Bugs
Background
Bespin is an online IDE developed by Mozilla Labs. It allows users to create and edit code, similar to Microsoft Visual Studio, from within a web-browser with no client-side installation necessary. It allows multiple users to work on and discuss a single piece of code/program collaboratively. It is also a piece of open-source software...a very attractive option to developers everywhere.
Progress Tracking
I will be tracking this progress on my wiki. I will also post things that other developers would find important on the issue page (516852). They will be able to follow me through my wiki and through my posts on the issue pages listed above. I expect to have looked at the code for these issues by February 5th and to have issue 516852 finished by February 19th. It does not seem to be a very big issue so I do not expect it to take long to resolve.
Different Versions of Each Release
As stated previously, the issue does not seem very large so I do not expect it to take very long. For issue 516852, I plan on it being done for February 19th. I will then continue to work on more bugs to help out the mozilla community. I will discuss my issues with Kevin Dangoor to ensure I am doing everything according to specs.
Overall
I will have to brush up on my JavaScript since that is what Bespin appears to be coded in, in order to complete the bugs I wish to work on.. I have contacted Kevin Dangoor and there is another programmer, Alex. Google will be my best friend when it comes to this assignment, and I plan on using it through every step of the way. I am sure to experience new barriers as time progresses and I hit little annoying bugs that take far too long to fix. I expect to talk to people over irc and learn on my own using google to overcome the barriers, and I expect it to work well. We shall see how it works in the end. It is my first experience working with open source and contributing to a project such as this, so I expect it to be a great learning experience and don't doubt that it will teach me much in terms of contributing to development in the 'real world' and helping me to understand what it's like to contribute my skills outside of corporations (such as RBC, where I did my co-op) and school.
Saturday, January 23, 2010
Joined Some Mozilla Mailing Lists
The first one: dev-amo, which is discussing the software powering the mozilla add-on website. I thought I'd join because I wish to get involved in some development of addons for mozilla. It may just be discussing the software powering the website, but it looks like a damn cool website and I wouldn't mind hearing about it and what they have to say about it.
The second one: dev-apps-chatzilla, which is discussing the development of ChatZilla, the IRC chat client that is an add-on to Firefox (Firefox has so many add-ons, can anyone really beat it at this point???). I've began using it as my main IRC client and it is really easy to use and nice. I don't really use the mouse with it at all but that's a possibility, and that's always good for users who like the GUIs. If one thing leads to another, maybe getting involved in some development in it would be fun, but for now, hearing about it will satisfy any curiousities I have and it shall be interesting.
The third one: dev-apps-firefox, which is, of course, the development discussions about Firefox. I joined it because I want to keep updated on the general updates and discussions about Firefox and hope to get involved in add-ons with this browser. It is my main browser, as it should be...and everyone else's :-D, and I'd like to hear about what's going on with it. Be in the loop and get the latest news!
The fourth and final mailing list I joined was dev-embedding, which discusses embedding Mozilla code. I believe that to mean general discussions about embedding code into the add-ons and other programs related to Mozilla-type products. I want to learn more about this, so I joined it.
One step closer to being involved in the open source community. Knowledge is power!!!
Experience in Firefox Channel on IRC
It should be fun.
Friday, January 22, 2010
Computer Sciences in an Academic Setting
I agree with Scott in his post here that in the beginning stages of the classroom, individual assignments and testing does play a big role in the learning process at the beginning of their education, but after 3 or 4 semesters it has definitely filtered out the ones who are incapable of programming or lack the patience to learn it, and at that point there are other ways to go about the learning process, such as real-world scenarios and team-building projects. How often do programmers begin with nothing and create the entire program solo? Maybe in their passtime or if they are creating something privately, are greedy and want to keep all the credit and work for themselves, but other than that, they usually have help, and at least post a question or two on the web hoping for a response that will help them along the way, but the rest of the time, some massive amounts of teamwork is involved in the full picture. I think a lot of the problem is that a lot of professors haven't really programmed outside of a school setting and may not entirely understand what programming outside of a school setting is like. When I was in co-op, I was discussing something my professor said or did or something along those lines and my colleague was just like, "But has he ever programmed outside of a school setting?" as if it was quite obvious he had not, and when I said 'no' then he went off on a tangent about how a lot of professors never get out in the world and are hired out of school, and don't fully understand the 'programming world'. They may understand programming, but not the 'programming world'. I find this to be true, and I think those teachers should teach earlier semesters and earlier classes while more experienced programmers who have real-world experience should teach the later classes. At first, we need to have our minds shaped to learn programming; just general programming. But afterwards, when we're in the later semesters, we need to have our minds shaped as if we are going out in the world, and we can't, or shouldn't, go out there blind, unknowing of what it could be like. We should have experience, even if it is just in the classroom, of what the world will be like once we're out there with these new skills and new personas. I do like school and I found a lot of the projects we were meant to do fun, but it is a shame that none of the code will ever be used or seen by anyone else and that it was ultimately pointless except for the grade, and to a lesser extent, the learning process. Now, they're just a bunch of files on my external hard drive...
Friday, January 15, 2010
The Cathedral and The Bazaar
No longer does the programming life-cycle have to be supremely organized or routine. No longer does the boss have to tell their programmer exactly what they want or does the client have to change their mind a million times to get something that somewhat resembles what they think they want. Now, with the source-code widely available for programs that are desirable to whoever the audience may be, the audience can change the code based on what they want and what they feel would be useful in that software. It may not be 100% organized and there may be bugs in the software, there may be a revision number 1.01390842109482, but it is every step of the way that helps the people working on the software to truly understand what is going on, it is those bugs that make people see what's wrong with the software and how it can be fixed, and it's that reparation that makes the software developers stronger, more knowledgable, and be able to further themselves, their work, their skills, and their software.
Although it may not be orderly, although when software gets published it may not be in perfect working order, and although there is very little consistency and routine in the life-cycle of open source, it is pure brilliance, my friends. Pure brilliance.
Introduction
Anyway, that was my ramble. I look forward to working with all of you and shall talk to you in the near future.