Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×
Netscape The Internet

Design Patterns in Mozilla Contest 62

Heikki Toivonen writes " The "Design Patterns in Mozilla" contest is now underway. The goal is to find and document as many design patterns as possible in the Mozilla source, with the chance to win an autographed copy of "Design Patterns: Elements of Reusable Object-Oriented Software" by Gamma et. al. and gift certificates to Amazon.com. Visit the contest rules page to learn about the details, regarding the two phases of the contest, the submission rules, the source you need to use, and the prizes. "
This discussion has been archived. No new comments can be posted.

Design Patterns in Mozilla Contest

Comments Filter:
  • STUPID PEOPLE! DONT WORK FOR THE CORPORATIONS FOR FREE!

    Sorry, Microsoft has Open-sourced Windows CE yet.

    In the meantime, I'm helping to develop, for myself, a top-rate web browser.

    Many cheers to Netscape, and AOL, for facilitating such a wonderful project, that will do so many things for me.

    -Brent
    --
  • As others have pointed out, there are a few things wrong with that contest; first, the fact it sounds as if you're doing someone else's work for cheap, considering the cost of the book they're giving as a first prize. Second, the fact that if you can win this contest, well, you don't need the damn book anyway.
    ...and what about if you're not familiar with the design patterns in that book? Then you have to buy it. I got another one for you. Who has taken a college course only to have the professor tell you to buy a book he/she wrote.
  • You don't have to wade through code. Diagrams,
    at worst. Assuming Rose doesnt choke (a big
    assumption!) its always a good laugh to see it
    trying to reverse-engineer a huge project...
    but anyway there have been papers at recent
    OOPSLAs on pattern mining in large scale projects.
    Some academic will just point his manic miner
    at the code and win the prize.

    Fortunately for me I dont feel tempted, I
    already have an autographed copy of the GoF book
    :o) (well, by one of the four anyway)

    - Design Fanboy
  • by joss ( 1346 ) on Wednesday October 20, 1999 @08:14AM (#1599523) Homepage
    About design patterns. Read the GoF book by all means, it's a classic, and it provides a new level of vocab for talking about software design...

    BUT:

    it's kinda boring - especially if you have enough experience for the patterns to be familiar.
    Worse, it encourages people to think of software design as a kind of mix and match mechanical process. That is, I believe people should focus on coming up with elegent solutions for their particular problem, and if at the end they say - oh I've used a singleton here and a factory there... then great. The problem arises when people start thinking, well i've got a design
    problem here - what category of pattern fits best ? Er, lets see, well I think I should use a "composite object" here, now what group of classes are used to implement that...

    Next thing you know someone has churned out a whole shitload of classes, with only the vaguest notion of what they are for, AND THAT'S THE DESIGNER, but with a preposterous belief that he has a good design because he "followed the rules of OO design". And don't even get me started on that Rational Rose/UML crap.

    Don't get me wrong. I believe understanding patterns is a good thing. But, it's often used as one more straw to clutch for people who don't really know what they're doing. Like every other technique in software - someone smart creates
    something to make life easier, but quite a few people will then take that and use it as an excuse to think less.

    Software has gone through this process frequently (assemblers, compilers, procedural software, OO, patterns) at each stage the bar is lowered you make it possible for idiots to create more complex software. It's dangerous. This is why many people prefer C to C++ (not me). Show some piece of MFC based crap to an experienced C programmer and they will recoil in horror, I don't blame them. The more powerful the tools, the bigger piece of vaguely working rubbish an idiot come up with. There is no antidote to sloppy thinking.

    Powerful tools make life easier, but paradoxically
    require more, not less experience to use well. Having seen what utter crap can be produced when lousy programmers get their hands on OO languages, I shudder to think what monstrosities will be around in a few years time as a result of patterns.

    Basically, I'm saying anyone who designs/writes OO software should be aware of patterns, (and UML etc), but then ignore them and concentrate on the actual specific problem. If you're good you will find your own patterns.

    To summarise: if you let children play with power tools, you end up with a big fucking mess.
  • Contest looks a good idea to me.

    Mozilla is very definitely short on documentation -- anything that generates good explanations of the code (and well-grounded design critiques too) must be a good thing.

    Plus I really like the idea of Moz becoming a standard reference for academic analysis, and for academic teaching. This kind of scrutiny can only help Mozilla; and what better than possibly the world's most ambitious open-source end-user application to give students an idea of the realities of a real software project ?

    AOL/Netscape must have spent several millions so far on developer salaries for Mozilla. Seems to me that putting up x hundred dollars for first, second and third prizes in contests like this (and, I hope, similar in future) would be a very cost-effective way to build awareness and interest in their code.

  • I'm sorry, I stand corrected. (Although I was hardly flaming).
  • Should be 2 competitions, the other to find the Anti-Patterns [amazon.com] in the project too.

    Projects are improved by a bit of push-me pull-you, too much self-congratulation makes you go blind.
  • Alas, no one ever wants to read someone else's code because it's not up to their own high standards. Yes, my boy, we live in a world with different multiple high standards.

    Same sentiments with double strength when it comes to

    • documenting
    • testing
    • debugging
    • maintaining
    some else's code.

    Anyway, I suggest an escalation of the contest from a mere editorial review (kind of like looking for gemstones in the barn). Some of those reviewers are damn good coders in their own right! Give them extra credit for submissions of design patterns patches (judged according to how much they show elegence, less lines of code, more extensible, less memory, fewer bugs in future) that could usefully be employed where they are not at present!

    Deciding on appropriate prizes is difficult. I haven't seen the Netscape cheerleaders on TV lately, so a group photo with the celebs is probably out of the question. However, I'd say some recognition and acknowledgement is due those who contribute to Mozilla the most. A little semi-official defacement of the Netscape portal to include a Top Tech News Story headline like "Studly Programmers Tire of Success" might be in order.

  • by Anonymous Coward
    I would do it for the Knuth boxed set ;-)
  • Then: cat source and watch the pretty patterns scroll by...

    OK...im not the design captain of the universe, but Im going to get nuts and say, that you can probably skim over lots and lots of code and get the general "gig" of whats going on. I don't think you need to pick aprat every line and to figure this out. It's not like they said, "There's a bug somewhere, FIND IT!. ready go.
  • I had the same reaction to the prize issue. I was wondering if circular references were a design pattern :)

    But, realize that it's a $50 gift certificate to amazon (the $ amount wasn't mentioned in the post), and that the author of the book is sponsoring the contest. The author wants to create a buzz around the contest, so he gives away a book. Also remember that finding design patterns is as easy as searching the m10 source code [mozilla.org] for key words, such as singleton :)

  • I just finished a course in object oriented design patterns, so when I first saw the contest it piqued my interest.

    But remembering to the week ago when I compiled M10 (which took 3 hours), I don't think I would want to go through 1/1000 of that code, much less most of it.
  • Man! Wouldn't I love to use patterns named Fist of the Firemonkey, etc. That should would liven up meetings and code reviews...

    "As you can see here, I'm using the FISTOFTHEFIREMONKEY pattern...this pattern integrates well with the previous FLAMINGLIZARDBREATH and OMIGODTHESEAMONKEYSAREHATCHING patterns."
  • by 7021 ( 15479 ) on Wednesday October 20, 1999 @05:29AM (#1599536)
    Lets all step back 50 feet and see what is happening at /. the great Open Source/Free Software forum.

    We gets endless complaints about stuff not being open source, not being free, companies that gets patents on software, proprietary (sp?) software, etc. (Crowd screams) "Give me the source, I need the source code".

    Netscape sucks, it crashes, Mozilla will never be out, M$ has won the browser war, blah blah blah.. (Crowd Sreams)"I want a standards complant browser that is better than IE"

    I could go on but I won't, i assume you get the point. This is an opportunity to get into the source that everbody must have according to the posts before. Ya it might be dirty work, coding is not glamourous it is work and sometime it is tedious. So instead of being a bunch of hypocryts (sp?) either SHUT UP about wanting stuff to be open source, or take the advantage of an opportunity to further a software project that can make a difference.

    Come on people, decide which side of the fence you sit on. You want the source so you can help, OR you can't be bothered to actually help nor do you plan on it.

    When you write a line of code for teh kernal you are doing someone work.. When you write a line of code for apache you are doing someones work.. When you help with Mozilla youare doing someones work..

    -7021
  • Okay, I don't get it. Loki had a contest where you get to see the code to Civ and muck around with it. People complained that it was the corporation trying to screw us because they were going to take our work for free. So what? If I could have afforded to the trip to Atlanta, I would have done it, because it was geeky and fun. I could have cared less if they provided a prize.

    Now Mozilla is saying, look through the code and see how many design patterns you can come up with. That sounds neat. Yeah, they benefit from it, so what? Of course, we get the same outrage.

    Here's my take on both ... (1) no one is forcing you to take part (2) it is a learning experience (3) it is bragging rights and (4) you get a neat prize.

    If I can find some time, I'll do it.

    -Seth
  • In an odd occurance, I'm currently reading the book in question, and the prize does seem horridly redundant. In order to participate in this contest, you really need to own a copy of the book. I'd be VERY interested in the results though, as it's an interesting and fairly useful concept presented in the book.

    As for those who claim this is a "do our drudge work, get a book" type endeavour, I heartily disagree. There is no relationship between the authors of Design Patterns and mozilla. It's purely an exercise of application of their concepts, which if proven useful will help drive sales of the book. Publicity stunt? yes. But only if the book presents decent material.
  • This is such a good idea!

    But why stop there? We should get patterns posters, and patterns trading card games.

    "My adapter beats your handle-body".

    hehe...

    "Vlissides, I choose you!"
  • obviously you have a vested interest in Microsoft. If you use IE you're not working for Microsoft for free. You're working for them and you have to pay them! That's why IE won't come to linux-because they want you to buy Windows. Anyway get a clue (can't expect microsofties to but there's always a small small chance) -this contest has nothing to do with mozilla.org let alone Netscape.
  • I was on a flight from Boston to San Jose
    last nite, and the guy across the isle from
    me was reading this book...

    Spooky ;-)
  • thank you very much, mr. Fist of the Firemonkey, I'm forced to burst out in random fits of laughter for the remainder of the week...

  • this competition was not set up by mozilla.org, so if you (or anyone else here) are hinting at any corporate affiliation with Netscape/AOL, you'd be wrong. this is a competition set up by someone from an independent mozilla coding project, and I think its a great idea, encouraging people to get involved. also, some people may have read the book (e.g. from a library) but not have their own copy.
  • This [foxfiber.net] is a recurring minimum code size contest site with different goals each time.
  • You are of course very right (damn, I had moderator access yesterday, and didn't like anything, but now it's gone)

    Anyway. The only way I've actually used patterns is that when I realize I should use a Singleton or a Factory, I look it up to see how the masters do it, what the traps I need to avoid are and which tradeoffs I should be aware of. I found that pretty useful.

  • So help me out here: person A advocates something being open-source. Person B complains about the current quality of an open-source project. Are you saying that A is guilty of hypocrisy or B? Or both? That makes no sense. Just because you hear incongruent ideas expressed does not mean that the same people are expressing them. I appreciate your intended message, but you are inventing hypocrisy. It's a chorus of voices, not a single voice.
  • I couldn't agree more. I think the idea and goal are admirable, but wouldn't you have more "success" if you setup a WikiWiki and let people contribute patterns as they find them? Forget the prizes, leverage the stuff the internet is good for. Dont get 1 preson to submit 100 patterns, get 100 people to submit 2. I hope it works out for them.
  • I'm wondering if it's possible to design a contest which is not someone else's work, and relies on ingenuosity and technical skill.

    I've come across the Programmer of the Month [tripod.com] contest. Every couple of months, the guy that runs it proposes some interesting problem that can be solved with a program and takes submissions to see who can write the program that best solves the problem.

    The current problem involves a word search where the letters for the words need only be adjacent (i.e. not necessarily in a straight line) and each letter may only be used once. Previous contests have included: given a square piece of wood and an arbitrary linear cut, make up to ten other straight cuts such that all final pieces of wood have the same area; in a lottery with N balls where three of the numbers on a seven-number ticket must match three of the seven numbers drawn, generate the fewest tickets necessary to guarantee a win; and on a square grid, using a salesman that moves like a chess knight, visit all of a list of locations in a minimum number of moves. The challenges are very interesting. Some are easy enough that I enter them. Some are quite chellenging, but they're still fun to try to solve, even if I don't feel I have a glimmer of a chance of winning.


    --Phil (Not that I've even ever come close to winning. I'm getting better, though.)
  • by levendis ( 67993 ) on Wednesday October 20, 1999 @03:45AM (#1599552) Homepage
    Is it just me or does the prize seem a bit redundant? If you already have the ability to find all the design patterns in source code, do you really need a copy of a book on design patterns? This is almost like setting up a "crack-me" server and giving away copies of "Network Security for Dummies" to the people who manage to hack it...
  • Sounds like they're fooling people into doing some drudge work for them. Damn corporate trickery!
  • The contest sounds like a great idea! One of the longest-running complaints about Mozilla was how daunting the source is.

    I think it's interesting to note though, that there are a lot of very complex open source (free or otherwise) out there that are getting a lot more devloper support. The Linux kernel obviously springs to mind. So does Apache. So why aren't people complaining about the complexity of these projects?

    Anyway, on the competition page, they say patterns are a new thing. I though the idea had been around for ages.

    -Mike

  • It doesn't seem like trickery to me. They're being pretty open about it: Do our drudge work, and win a prize.

    Besides...documenting software really *is* drudge work (IMHO), and at least they are trying to make it a little more interesting by offering prizes.

    And getting people to examine the code this way may bring out some interesting ideas that will be useful to the developers.

    Dana
  • I might also add that the real contest for me would be to try to find only enough patterns to be the third place winner. I'd rather have a t-shirt than a gift certificate.


    SL33ZE, MCSD
    em: joedipshit@hotmail.com
  • by tmoertel ( 38456 ) on Wednesday October 20, 1999 @04:04AM (#1599557) Homepage Journal

    I'd say you're right about the GoF pattern book not being much incentive for folks who would be the best contributors to their documentation project. I was hoping that if you found an interesting new pattern, the Mozilla folks would let you name it (at least as far as their documentation went). But the rules state that only patterns from the book are acceptable.

    That's too bad. I'd bet some heavy coin that the exceptional kind of pattern hunters who won't be tempted by Design Patterns would be exceptionally tempted by the possibility of finding a new pattern and then naming it something like Fist of the Firemonkey.

    Yes, too bad.

    Cheers,
    Tom

  • > Sounds like they're fooling people into doing
    > some drudge work for them. Damn corporate trickery!

    Whatever. I'm sure you have no idea what a design pattern is. If you ever figure it out, you will realize that this would do just about nothing for AOL, but could benefit anyone working on a large, platform independent project.
  • by Enoch Root ( 57473 ) on Wednesday October 20, 1999 @04:08AM (#1599560)
    As others have pointed out, there are a few things wrong with that contest; first, the fact it sounds as if you're doing someone else's work for cheap, considering the cost of the book they're giving as a first prize. Second, the fact that if you can win this contest, well, you don't need the damn book anyway.

    However, I quite like the idea behind this. It sounds like a wonderfully geek contest! I don't recall seeing other contests which relied on technical capabilities (if you exclude cracking contests), and I'm wondering if it's possible to design a contest which is not someone else's work, and relies on ingenuosity and technical skill.

    Say, perhaps, useless things like programming a specific program under a certain amount of memory, or somesuch...

    "There is no surer way to ruin a good discussion than to contaminate it with the facts."

  • I think you're supposed to get excited that the book has a signature in it. In fact some people find this so exciting they'd wade through hundreds of thousands of lines of source code for it.
  • they say patterns are a new thing. I though the idea had been around for ages.
    I never heard of them before, so they're definitely new.
  • Theres a whole lot of code to look at in there, just to win a little book.

    *sticks tongue in cheek*
    Just be sure to run it all thru a code beautifier first.
    Then: cat source and watch the pretty patterns scroll by...

    What? Whad'ya mean design patterns? It's open source fer chrissakes! You think it's designed ???
  • by SL33Z3 ( 104748 )
    I spend hours pouring through code to get what barely covers the cost of a book and shipping? And I get a book, as stated before, on something I'm already familiar with? While I'm all for resources, the prizes leave me completely uninterested.

    Someone might tell these guys what a book costs these days, even at Amazon prices.



    SL33ZE, MCSD
    em: joedipshit@hotmail.com
  • While I'm not a software design patterns maven, I am a big fan of Christopher Alexander [utsa.edu] (the source of many ideas about software design patterns) and his design ideas.

    Alexander suggests that the designs you produce should be whole and harmonious and appropriate, and they should fit in their environment. So it seems ironic to me that advocates of such a wholistic ideal should tempt people with a reward that people find so irritating. This indicates that something is wrong with the design of the contest.

  • What I meant was, you do a lot of work documenting, and attempting to decipher the complex code of Mozilla, and you end up with a book. Think of how much they would have paid someone if they had hired someone to do this work.
  • We just have to keep those two separate. Working on both projects at once could be catastrophic.
  • There are programming contests, such as the ICFP contest [virginia.edu] that are based on writing a certain competitive program within a set amout of time. These things are almost more fun than should be allowed!

    BTW, does anyone know the final results of the ICFP contest? I had an entry that was in the running for the judges prize.

    later,
    mike
  • 1) The contest isn't being run by mozilla.org, but by a group of people who want to increase interest in Mozilla.

    2) the prize may be slightly redundant, but you probably don't have an autographed version of the book.

    3)The winner and runner-up also gets a gift certificate (I doubt there's any redundancy there).

    4) They are working on securing other prizes.

    5)You don't have to participate.

  • by xyz ( 79275 ) on Wednesday October 20, 1999 @04:25AM (#1599571)
    Check this [inf.bme.hu] out. It's a programming contest archive. If anyone has similar pages, post the url.
  • Perhaps you should have read the contest page before beginning to flame. You might have noticed the disclaimer at the bottom of the page then.
    Disclaimers: Conditions subject to change without notice. Rewards subject to substitution with goods of equivalent value. All decisions are final. This is not an official contest.
    It is not sponsored by mozilla.org, Netscape Communications, America Online, University of Maribor, University of Jyväskylä, Citec, ETH Zurich or MozillaZine; it is an incentive program to recognize Internet volunteers which is being run by the members of the jury directly.
  • I normally would agree with you on doing somebody else's work for cheap, but considering Mozilla is looking like our only shot at a !(Microsoft) web browser version 5+ I'm willing to do something like that just for the t-shirt. Worst case, I improve my understanding of patterns and improve a product that I can use directly. Best case, I win a book that I can loan out instead of MY copy. I mean, UML and Patterns books are worse that ACDC and Black Sabbath albums, they never come back.

    Here's [slashdot.org] an example of your programming contest idea. Sounds like it was alot of fun. Anyway the alternative would be to post a request and proposal on co-source [cosource.com] to do the work and see what kind of cash you could raise.

  • Though the GOF Design Patterns book is relatively comprehensive, it was never intended to be an exhaustive list of all the patterns in existence, just a tour of some of the best ones. (see the Preface)

    Is it the right thing to to do base the contest on how many *GOF* patterns can be found?

  • by SurfsUp ( 11523 ) on Wednesday October 20, 1999 @06:37AM (#1599576)
    As others have pointed out, there are a few things wrong with that contest; first, the fact it sounds as if you're doing someone else's work for cheap

    So? There's a name for it, it's called "contributing".

    Second, the fact that if you can win this contest, well, you don't need the damn book anyway.

    Are you sure? I don't know about you, but no matter how good I get at something, there's always someone better, and someone who can tell me something I don't know. Or suppose I'm the one person in the world to whom this doesn't apply - I can always give the book to my kid brother, or keep it as a trophy.

    The bottom line is, I want to be able to build and rebuild Mozilla, a little piece at a time, on my laptop, and I don't really care what process is used to accomplish that. The logical next step, after finding the patterns, is to implement them in a way that reduces the size of the source and the binary by some large factore. Keep going guys, this sounds terrific.
  • Maybe I just don't have as much of an idea of what patterns are for as I thought, but...

    Aren't you suppose to have the patterns in mind before you write the code? Going back through already "completed" source code and saying "Oh, look I think that's using a design pattern" seems a tad silly to me.

    It's kinda like writing the requirements after the system is done (this often happens to be the way things end up for me, but, hey I'm not proud of it).

How many QA engineers does it take to screw in a lightbulb? 3: 1 to screw it in and 2 to say "I told you so" when it doesn't work.

Working...