Friday, January 29, 2010

Working on Bespin Bugs

I'll be working on Bespin for Mozilla and have requested to be assigned a few bugs I found on Bugzilla. I have requested to contribute to issue 516852, about how the scrollbar cursor doesn't change to the correct cursor when it's over the custom scrollbars in the editor, and issue 521823 about how commented code doesn't display as being 'greyed-out' when the cursor is near the bottom of the file, but becomes greyed out once you move the cursor to the top of the comment block. I chose to work on these two issues because I thought it would give me an introduction to the Bespin code, give me some access to the code, and begin my understanding of the inner-workings of Bespin. Unfortunately, I was denied working on issue 521823, due to the fact that 'it's unclear to me(Kevin Dangoor) when we will bring the debugging functionality back. There are significantly more important things on our plate than that...'. That is unfortunate because I was looking forward to working on it a lot, but that will have to wait.



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

So I joined some mailing lists from Mozilla that I thought I would find interesting.

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

I have been sitting and observing the #Firefox irc channel on moznet throughout the night and, by watching what's going on, I can see how effective IRC can truly be. It appears that anyone, even those unknown to anyone, can just pop in at any point in time and ask questions about whatever may me itching their curiousity in regards to Firefox (or whatever the channel they are in is related to), and will in most cases get an answer if someone there is capable of answering that question. It's really a thing of beauty for people who want to troubleshoot their Firefox browser, talk about potential add-ons, and just have general discussions about Firefox's capabilities or lack thereof. I look forward to using irc in my projects and for future projects that I take on in my lifetime. It appears that programmers have another best friend aside from Google, and I can see how once you become a regular user, how involved you can become as well as how knowledgeable you can become, and how you can soon start contributing the knowledge that you have to help those who need it and truly become a part of the community.
It should be fun.

Friday, January 22, 2010

Computer Sciences in an Academic Setting

After reading the article on the Academic source code dust-up symptom of CS education ills, I can further see the inconsistencies between what goes on in the majority of classrooms and what goes on in the real world. It's such a large stretch from not being able to show anyone the code you have created in an academic setting or really discuss it without fear of 'plagiarism' or being declared a cheater, compared to once you're out in the working world, be you at a business or even an open source developer on the world-wide web, since at that point in time, teamwork and being able to properly communicate your knowledge and skillbase becomes so imperative to your success. For 'Kyle's Professor', to argue so vindictively and when he was not winning the fight, to take it to the boss hoping for backup seems so extreme. He was afraid people would find that code and use it for the assignment? Maybe that would prove that they are intelligent students, even if it is just finding another students code on the internet and realizing that it could be used for their own benefit, and maybe they would be able to improve bits and pieces of it and make it their own in a way, as if it was the real world and as if it was a real-life situation. I've heard many times from many professors not to 're-invent the wheel' but then in a scenario like this, I'm sure they'd react much the same. The majority of the time, a programmers best friend is 'google' or their favourite search engine, and that would, in a way, prove that they know how to use the search engine properly to be able to find what they needed to find and use it to the best of their ability. This is legitimate, however, only if the programmer is able to program properly and would have been able to write all of the code they had found, given the necessary amount of time. The professor also had the ability to change the assignment a little bit if he was afraid of people posting their code or showing it to others and thought it would take away from the learning experience...to tell someone that the code that they created and made, spent countless hours on, is not theirs to do what they want with it is pretty absurd.

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

This is a great analogy of how the programming life-cycle runs and works, or can run and work. Up until open-source and the internet began to evolve, it was practically impossible to create a program and work on a task in a bazaar-type atmosphere, or ... style... for lack of a better word. But once the internet became a more widely-used environment, it gave software and computing an edge that it had never been given before. The only ones that were able to band together a large amount of people to work on projects and programs that would, or could, be worth any money were those who already had enough money to find those experts, give them a workspace, and fund them. With the use of the internet, the workspace could be their parents basement, the expert could be a 12 year old kid who's been reading up on programming since they were 6, and the funding could be their parents paycheque which pays the internet bill. The possibilities of what could be are limitless now, if there are enough people who want to contribute. And...with this many people in the world, and with their inexpensiveness of computers in this day and age, there will always be someone.

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

Hello there. My name is Derek and I'm 23 years old. I've been in school for as long as I can remember.........................and definitely can't wait to get out and into the world to use these skills that have been a long time in the making. I went into programming kind of indecisive whether it was what I wanted to do or not, but over time, and as I learned more about it, I fell back into my roots of nerd-ism and became the computer science dude that God intended for me to be. I used to be on the computer all the time when I was younger and throughout high school for a while but then at the end of grade 12 and after high school I had a bit of a falling out. Shockingly, that was about the time when I had to pick a lifetime career...too bad. Luckily, I decided I would give it a try after two courses that I was unsatisfied with and have stuck with it and dare I say ... fell in love with it? I dare. I did some programming in high school but lacked the concentration since there were females in the class which stole my concentration. That doesn't seem to be a problem in this course...but I worked on a couple of websites in my younger days, and some java and visual basic, as well as Turing (haha) in high school, so I guess that was some kind of an introduction into what I was getting into. High school isn't very in depth though at all when teaching this, and it was all pretty much following examples in a workbook, which isn't the best method of learning I don't find. Not involved enough.

Anyway, that was my ramble. I look forward to working with all of you and shall talk to you in the near future.

Revolution OS

After watching 'Revolution OS', I have a new appreciation for Linux and open-source programming in general. It had never really occured to me that the issues I had run into using programs done by money-hungry corporations could be resolved by going into the code (had it of been available to me) and editing it to become and to do what I had originally wanted it to do, or even just to specialize my programs and my computer to my own standards of what I want it to be, ultimately making it the perfect pc in my eyes. Also, seeing the time-frame that it took for Linux to gain popularity and advance to become a more useful and stable operating system because of the amount of random people on the internet that were interested in partaking in the program, whether it be for their own sake or to help out what they believed to be a good cause was pretty astounding. It only took four years of 'Bazaar-style' solicitation and exposition to go from very few users, I think it was like 1000-10000, to like 3.5 million users or something along those lines. That is an enormous accomplishment and something that each and every one of those programmers that contributed to the life of the program should be proud of, whether it was their intention or not. I look forward to doing some open-source programming and contributing what I have to contribute to those who will either find it interesting, useful, or dull and boring.