The interview concentrates on the computing side of the project, the BOINC platform.
I thought so too. I was looking for more questions about SETI myself, but oh well. If anyone else is looking for an interview more about SETI and less about BOINC, here are the interview questions up front, so you can skip the 3-page interview if it doesn't appeal to you:
Can you tell us a little about BOINC and the history behind it?
Besides SETI@home and Climateprediction.net, what other projects are using BOINC?
What would you say are the main goals and principles behind the design of BOINC?
Can you tell us what the main hurdles, technical and otherwise, were in developing BOINC?
One would expect that dealing with so many platforms and operating systems would be challenging. How do you handle it?
What are the major security concerns, and how are you addressing them?
We're hearing a lot about various forms of distributed computing these days, such as grid, utility, on-demand, and SOA (service-oriented architecture). What's your take on these approaches, and how do they relate to volunteer computing?
Following on that, where's the intersection (if any) between volunteer computing and such familiar technologies as clustering and SMP (symmetric multiprocessing)?
What forces do you feel led to the rise of volunteer-donated distributed computing for applications such as SETI@home?
Sure, one way of looking at this is that it "just moves the location of the if." But let's consider the potential benefits of doing so..
The locality of the code is improved. Customizations are grouped in one place per customer, not scattered around in the code that uses the customizations.
Adding new customer types is easier. You just add the new customer type and instantiate it, etc. The alternative is to update all the conditionals everywhere when adding new customers, which is highly error prone, touches a lot of files at once, and is time consuming.
The code is easier to read and maintain. Customizations become methods; code using the customizations is shorter and clearer. Although the code example above only has 2 "if" clauses, it might as be 10 or 100.
The code is more efficient. "Evaluation" of the "if" moves to the use of a particular object. Rather than evaluate conditionals to determine which code to execute, you do a polymorphic method invocation, which is probably faster in most cases.
Thanks for continuing the thought; these are exactly the kinds of distinctions that got me interested enough to look through the report for details. I think it's interesting that a government would actively and financially take an interest in encouraging "professional amateurs."
For me the word "funding" calls to mind total financial backing for something. I don't think the report is actually recommending full funding for anything -- I think they're looking for ways to invest in and reward these professional volunteers, to recognise their worth to the community. Note that this is not limited to the open source / free software community; it could be any type of professional amateur.
Calling them "Pro-Ams" - amateurs who pursue a hobby to a professional standard - it suggests such people should receive government funding to "promote community cohesion".
In sum our main policy proposals for promoting Pro-Am participation include the ideas listed below.
The government should launch a Pro-Am fellowship programme, investing small sums in community Pro- Ams. This might be modelled on localised versions of the National Endowment for Science Technology and the Arts, which provide fellowships for innovators, and be funded by the Big Lottery Fund.
Promoting Pro-Am culture should be a central focus for public service media. A prime example is the BBC's Neighbourhood Gardener scheme, developed with the Royal Horticultural Society, which is modelled on the US Master Gardener scheme, in which 60,000 collegeaccredited amateur gardeners provide millions of hours of expertise free of charge to other gardeners in their locality.
Pro-Ams should play a much larger role in innovation policy. Lead users should play a larger role in foresight exercises to chart the future course of innovation, and policies to deregulate markets should also open up spaces for Pro-Am innovations. Pro-Am communities are the new R & D labs of the digital economy.
As underused publicly-owned bandwidth is auctioned off some spectra should be reserved as an innovation commons for techie Pro-Ams - the kind that helped create the WiFi revolution - to play and experiment with. Government should develop innovation policies to fund open source communities as competitors to proprietary incumbents.
It looks like they are trying to recognise and reward volunteers at the community level. Interesting -- I especially like the part about giving out unused bandwidth. (grin)
Understand the unique challenges that come with developing software. For instance, developers are by nature generally optimistic about technology, since they are in the business of finding creative ways to make the impossible possible. Listen to them carefully: if they're getting ground down, the project is probably in danger.
Understand the relationship between Quality, Schedule, and Cost. The developers must have control over at least one of these, otherwise the project is probably a guaranteed failure.
Understand that estimates can be off by as much as 100% at the beginning of a project, and only become more accurate over time. Use a unit of measure for estimates that reflects the reliability of the estimate, for instance "Quarters" for estimates that are circulated early to other parts of the company (even if the real schedule is in weeks.) Since estimates generally become more accurate over time, make sure your developers are allowed to update the schedule, and add or remove tasks.
Understand that most software projects are "Death Marches", where at least one major element of the effort is off by a factor of two. (ex: Features, Schedule, and Cost are all dictated to the developers.) These are virtually guaranteed to take longer than scheduled, and lower morale.
Excellent post. I'd like to turn over and examine your Real-World analogy, if I might.
Normal locks and windows work IRL. Consider that this is based on the physical requirements for an attack, though, which limits the number of attacks you're likely to receive. For instance, in a small town in the Midwest (fewer people), you might not lock your car when buying groceries. On the other hand, if you live on the ground floor in a bustling city (more people), you might have bars on your windows. People understand that security varies based on the need for it -- they just don't understand what the need is when it comes to computers.
What normal Mom-and-Pop users need to hear is that connecting your computer to the Internet with say, Broadband is a bit like connecting your front door to the infinite hallway of doors from The Matrix. Anyone anywhere in the world can now knock on your door, day or night, and try the lock. And tell them it's a safe bet that they will be knocking in the first 15 minutes, in fact.
Now of course this won't help them learn anything about what specific precautions to take, but I'll bet they will be listening to you for suggestions.
Why not just give your family members the pre-paid Chuck calling card?
Seriously though, I wish there was a Chuck card. I recently helped resurrect a spyware-laden Win Me box (my father in law's) connected to the Internet on Broadband with no firewall, anti-virus, or anti-spyware software. It had 30 different families of spyware living on the machine (over 1000 total pieces of junk), and they had taken over. It took me longer than I would care to admit, over a couple of days, with not much in the way of encouragement. I'm especially proud of getting Ad-Aware to do a scan under safe mode without a mouse, and with 16 colors on the monitor. It's not fun, let me tell you.
Then after all that, I get home and get an angry phone call about something or other not working. This turned out to be a missing browser favorite or some such, as I had switched them from IE to Maxthon, and they didn't know where the favorite was. Blah. Eventually though I did get a gift certificate to a restaurant, so I got a nice steak for my troubles, which I suppose is a fair trade.
One more anecdote: I turned on automatic updates for him, but he tells me that he hasn't installed any of them yet- he was afraid to!
You betcha. One place to play is itsyourturn.com, which will send you an email when it's your turn to move, etc. They currently have the following games (and variations) available:
Backgammon, Pro Backgammon (BP), Anti-Backgammon (BA), Nackgammon (BN), and Backgammon Race (BR)
Battleboats, Battleboats Plus, Dark Battleboats Plus (TD)
Checkers: American (aka British Draughts (KX)), Pro Checkers (KP), Anti-Checkers (KA), Sparse Checkers (KS), and Crowded Checkers (KC).
Checkers: International (aka International Draughts), Italian Checkers (KT), Polish Checkers (KL), and Russian Checkers (KR).
Chess, King's Corner (CK), King's Fortress (CF), Horde (CH), Extinction (CE), Anti (CA), Dark (CD), Screen (CS), and Crazy Screen (CZ).
Chinese Chess (Xiangqi)
Go - 19x19 size board, 9x9 (G9) and 13x13 (G3)
Go-Moku and Pente, Keryo-Pente (MK), Pro Go-Moku (MM), and Pro-Pente (MQ).
I don't understand why this article is worthy of discussion. If you actually RTFA, there is very little to discuss..
With a recently announced delay pushing the release to March, a staff of roughly 120 people, and the development cycle pushing past the two year barrier, Splinter Cell Chaos Theory isn't exactly being pieced together by two kids in a garage. But according to the game's Producer, Mathieu Ferland, that doesn't mean it's been an easy game to make. We recently sat down with Ferland to find out about the development, what got left on the cutting room floor, and the possibility of a spin-off multiplayer game down the road.
...
Much of that technology research has been aimed at overhauling the game's graphics engine. Though the previous two Splinter Cell games received praise for their graphics, the developers decided to use new normal mapping techniques to create shinier surfaces and add detail in the backgrounds. But according to Ferland, this technology wasn't as easy to implement as the team hoped. "The biggest surprise [in developing the game] was the management of the data," he says. "The integration of normal mapping and shaders changed the whole pipeline for development, and it's been much more complex than what we expected originally. A lot of people say, 'Oh yeah, we've got normal mapping in our game and blah blah blah.' Wow, hold on -- if you're adding a layer of shaders and all this, and you want it to be consistent in a realistic world, it's very, very complex. This is one of the reasons why there were 60 people working on Splinter Cell 1 and 120 working on Splinter Cell 3."
Okay, let's see here.. we have..
120 people
2 year cycle
technical difficulties (shocking)
I assume they started with 60 people, hit technical difficulties, then increased to 120 people. So what?
I never bought into the "Lone Coder" theory -- I always thought that there must have been a Second Coder on the grassy knoll. It's the only way to explain how the bug managed to be in two modules at the same time when the system crashed.
Re:Getters/setters bad?
on
Holub on Patterns
·
· Score: 4, Insightful
A fundamental precept of OO systems is that an object should not expose any of its implementation details. This way, you can change the implementation without changing the code that uses the object. It follows then that in OO systems you should avoid getter and setter functions since they mostly provide access to implementation details.
Apparently the argument against getter / setter functions goes..
OO systems should not expose implementation
Getter and setter functions mostly expose access to implementation details
Therefore, OO systems should avoid getter and setter functions
While the logic is sound, I think that item #2 is debatable.. If you design an object and mindlessly add get/set functions for every piece of private data in the object, then you're probably guilty of exposing the implementation. But if you design the object's public interface first, and decide on the private data afterwards, I would guess that you're probably in the clear to have used get/set functions "correctly." IMO it's not the functions themselves that are the problem, but rather the adherence to correct design principles.
In the name "Donkey Kong", the "Donkey" was added to mean "Stubborn." I think the name was coined in Japan (?), where the game was originally designed.. See "The Ultimate History of Video Games" for a thorough retelling of the relevant details..
I thought so too. I was looking for more questions about SETI myself, but oh well. If anyone else is looking for an interview more about SETI and less about BOINC, here are the interview questions up front, so you can skip the 3-page interview if it doesn't appeal to you:
Correction: May 30th and May 22nd.
Q: Does this really count as a dupe if the BusinessWeek article is from May 30th, and the other thread May 5th?
Turn this..
Into this..
For me the word "funding" calls to mind total financial backing for something. I don't think the report is actually recommending full funding for anything -- I think they're looking for ways to invest in and reward these professional volunteers, to recognise their worth to the community. Note that this is not limited to the open source / free software community; it could be any type of professional amateur.
Calling them "Pro-Ams" - amateurs who pursue a hobby to a professional standard - it suggests such people should receive government funding to "promote community cohesion".
Fishing for the details in the report..
In sum our main policy proposals for promoting Pro-Am participation include the ideas listed below.
It looks like they are trying to recognise and reward volunteers at the community level. Interesting -- I especially like the part about giving out unused bandwidth. (grin)
I think it's a safe bet that the CD's first became useful when they were used to make the chair.
Required reading?
The Mythical Man-Month
Dynamics of Software Development
Death March
Understand the unique challenges that come with developing software. For instance, developers are by nature generally optimistic about technology, since they are in the business of finding creative ways to make the impossible possible. Listen to them carefully: if they're getting ground down, the project is probably in danger.
Understand the relationship between Quality, Schedule, and Cost. The developers must have control over at least one of these, otherwise the project is probably a guaranteed failure.
Understand that estimates can be off by as much as 100% at the beginning of a project, and only become more accurate over time. Use a unit of measure for estimates that reflects the reliability of the estimate, for instance "Quarters" for estimates that are circulated early to other parts of the company (even if the real schedule is in weeks.) Since estimates generally become more accurate over time, make sure your developers are allowed to update the schedule, and add or remove tasks.
Understand that most software projects are "Death Marches", where at least one major element of the effort is off by a factor of two. (ex: Features, Schedule, and Cost are all dictated to the developers.) These are virtually guaranteed to take longer than scheduled, and lower morale.
Normal locks and windows work IRL. Consider that this is based on the physical requirements for an attack, though, which limits the number of attacks you're likely to receive. For instance, in a small town in the Midwest (fewer people), you might not lock your car when buying groceries. On the other hand, if you live on the ground floor in a bustling city (more people), you might have bars on your windows. People understand that security varies based on the need for it -- they just don't understand what the need is when it comes to computers.
What normal Mom-and-Pop users need to hear is that connecting your computer to the Internet with say, Broadband is a bit like connecting your front door to the infinite hallway of doors from The Matrix. Anyone anywhere in the world can now knock on your door, day or night, and try the lock. And tell them it's a safe bet that they will be knocking in the first 15 minutes, in fact.
Now of course this won't help them learn anything about what specific precautions to take, but I'll bet they will be listening to you for suggestions.
More complete Refactoring tools for C/C++ would be nice.
Seriously though, I wish there was a Chuck card. I recently helped resurrect a spyware-laden Win Me box (my father in law's) connected to the Internet on Broadband with no firewall, anti-virus, or anti-spyware software. It had 30 different families of spyware living on the machine (over 1000 total pieces of junk), and they had taken over. It took me longer than I would care to admit, over a couple of days, with not much in the way of encouragement. I'm especially proud of getting Ad-Aware to do a scan under safe mode without a mouse, and with 16 colors on the monitor. It's not fun, let me tell you.
Then after all that, I get home and get an angry phone call about something or other not working. This turned out to be a missing browser favorite or some such, as I had switched them from IE to Maxthon, and they didn't know where the favorite was. Blah. Eventually though I did get a gift certificate to a restaurant, so I got a nice steak for my troubles, which I suppose is a fair trade.
One more anecdote: I turned on automatic updates for him, but he tells me that he hasn't installed any of them yet- he was afraid to!
MirrorDot question -- is it mirroring all four pages of this article? The links for pages 2-4 lead to the acm site.
Other (older) articles that I found if anyone is interested:
No Life on Mars, But Many Bugs
Three Minutes With Mike Deliman
Out-of-memory problem caused Mars rover's glitch
MarsNews.com :: NewsWire :: Mars Exploration Rovers :: Archives
Red Rover's master coder
I can't get through to acmqueue.com. Can someone post an alternate link to the article?
With a recently announced delay pushing the release to March, a staff of roughly 120 people, and the development cycle pushing past the two year barrier, Splinter Cell Chaos Theory isn't exactly being pieced together by two kids in a garage. But according to the game's Producer, Mathieu Ferland, that doesn't mean it's been an easy game to make. We recently sat down with Ferland to find out about the development, what got left on the cutting room floor, and the possibility of a spin-off multiplayer game down the road.
...
Much of that technology research has been aimed at overhauling the game's graphics engine. Though the previous two Splinter Cell games received praise for their graphics, the developers decided to use new normal mapping techniques to create shinier surfaces and add detail in the backgrounds. But according to Ferland, this technology wasn't as easy to implement as the team hoped. "The biggest surprise [in developing the game] was the management of the data," he says. "The integration of normal mapping and shaders changed the whole pipeline for development, and it's been much more complex than what we expected originally. A lot of people say, 'Oh yeah, we've got normal mapping in our game and blah blah blah.' Wow, hold on -- if you're adding a layer of shaders and all this, and you want it to be consistent in a realistic world, it's very, very complex. This is one of the reasons why there were 60 people working on Splinter Cell 1 and 120 working on Splinter Cell 3."
Okay, let's see here.. we have..
I assume they started with 60 people, hit technical difficulties, then increased to 120 people. So what?
I never bought into the "Lone Coder" theory -- I always thought that there must have been a Second Coder on the grassy knoll. It's the only way to explain how the bug managed to be in two modules at the same time when the system crashed.
Apparently the argument against getter / setter functions goes..
While the logic is sound, I think that item #2 is debatable.. If you design an object and mindlessly add get/set functions for every piece of private data in the object, then you're probably guilty of exposing the implementation. But if you design the object's public interface first, and decide on the private data afterwards, I would guess that you're probably in the clear to have used get/set functions "correctly." IMO it's not the functions themselves that are the problem, but rather the adherence to correct design principles.
In the name "Donkey Kong", the "Donkey" was added to mean "Stubborn." I think the name was coined in Japan (?), where the game was originally designed.. See "The Ultimate History of Video Games" for a thorough retelling of the relevant details..