You aren't the only person thinking along these lines. It seems that the ideas that are found in/. moderation are a recurring theme. Emacs Gnus had an interface to something called GroupLens some time ago, but it is dead now according to the manual.
How on earth do you go back to school / college / university if you don't have any money?
Not having income and not having money are not the same thing at all. It is also possible to get loans to go back to school. I certainly considered doing it myself.
Boardcast power is an interesting idea. I wonder how this solves the issue of power falling off with the square of the distance. Also, what is broadcast can be received, often unintentionally as interference. I can't say that I want to receive broadcast power on my radio, TV or fillings.
Let's say: A nation attacks another nation, and leaves some valuable historical relics unguarded. What does psychohistory predict will happen? A number of people (note: not all) will loot the unguarded relics with the intend to get rich.
I agree with you completely on this point. There are two issues that you should consider though. First, could you have predicted six months ago whether any given historical relics would be left unguarded? Second, can you predict whose hands they will end up in when they are found?
The first point illustrates that we don't (and can't) have all of the information needed to make many important predictions in advance. The second point illustrates that some important consequences of even the things that we can predict are going to be unpredictable.
The looting of Iraqi artifacts has already resulted in international tensions. If they are found quickly, they will almost certainly be returned to Iraq, as they should be. But what will happen if their location isn't discovered for 50 years? Where will they turn up? I can't predict that. I can't predict what other factors will all coalesce at the same time to cause people or countries to take particular sides in the argument over whether they should be returned or to whom.
This issue parallels the issue of works taken during World War II. Many were forcibly stolen. But right now, there's a discussion going on about the terms under which a collection, currently in Russia, will be returned to Germany. From some of the other sources I've seen and heard, I have gotten the impression that the Russian officer acted partly to preserve valuable works of art from damage or destruction in a war zone.
Had a different Russian officer found those paintings, they would have ended up somewhere else. Even imagining that he had acted under similar motives, they could be in a different post-Soviet country with a different government negotiating the terms for their return.
It simply isn't possible to nail down all of the variables in advance, or even as events occur. Either economics or chaos theory will demonstrate that pretty clearly. The problem is that we can forecast general trends into the near future. The fewer variables we introduce and the shorter the time frame, the more accurate we can be. Marital conversations are quite predictable in many cases. The reasons are trivially obvious. Some marriages have unresolved issues that keep coming up. But even a good marriage without baggage involves two people dealing with day-to-day life, which involves tackling the same questions repeatedly:
"So, should we go to the beach for our vacation this year?"
"Yes, and don't forget to schedule enough time at Thanksgiving to visit both of our families."
Tie a long string to the barometer. Lower it from the top of the building. When it touches the ground, pull it back up and measure the string.
Put the barometer next to the building. Measure the barometer, the shadow of the barometer and the shadom of the building. Do the math.
Eject the barometer horizontally from the top of the building at a known velocity. Measure the horizontal distance it travelled from the building to calculate the duration of its flight. Use the duration and g to calculate the distance it fell.
Using the same string from before, make a pendulum. Swing it slightly. Time the period and use that to calculate the length of the string.
Melt the barometer down. Make a large strand of very fine wire. Lower it until it touches the ground. Measure the wire.
It's been ages since I read that book. I have it sitting on the shelf at home. I know a bunch of others, some of which I came up with independently. My classmates came up with the "shadows" solution and the "string" solution. There is also the "sell it and use the money to pay the fee to get a copy of the county records on the building which will contain the information" solution. I won't claim that the number of solutions is infinite, because at some point additional solutions start either involving trivial inclusion of the required barometer or are trivial variations on other solutions. The reason I like this problem is that it can be used as an exercise in brainstorming.
How would you measure the height of a building using a barometer? I have never been asked this one in an interview. It was used in a discussion in my high school physics class.
There are a couple of things to note. The question specifies that you must use a barometer. It does not say how it is to be used, or prohibit the use of other tools.
I will wish good karma on anyone who can come up with an answer that I haven't heard since I since encountered this question.
It would have been quite nice of the author to include some links that describe what a statechart is and why a C++ programmer should care.
I learned about state diagrams in college years ago. The examples that we used at the time were all the sorts of things that could be done as stand-alone projects. They typically involved parsing strings that had to match a description given by a state diagram. If you are building a lexical scanner by hand or a regular expression library, it's good stuff to know. However, I wondered how often I'd see it in the real world.
Well folks, this can be real world stuff if you apply it. It's all about retaining a state that summarizes inputs that you have seen so far. This is about communication between autonomous devices (or with a user). If nothing else, state information is useful in retaining position within a set of search results when a user is paging through them. It can be used in the session layer of a communication protocol to track handshaking. If you have to asynchronously do two things concurrently within your program, unless each of them involves completely separate transactions that are completely atomic, one or both can be modelled as state machines.
If you write GUI code where you have buttons being toggled, check boxes checked or fields filled, you have a state machine, whether you coded it or not.
If you are writing embedded systems, you don't need me to tell you that you are maintaining real time state information about the devices you are talking to.
Especially if you are carefully to say "I can't do that job in that time for you this way" not "You are a dork"
I have to agree on this. Diplomacy is always called for when dealing with clients. I've been on both sides of the fence on this one. I've been the consultant offering the advice and I've been the employee receiving it. The responsibility for the decision rests with the client unless it has been explicitly delegated to the consultant.
However, the whole point of bringing in a consultant is to fill a need for specific expertise. In some cases, the need is for expert advice. In that case, the answer is unambiguous. You owe your client the best information and advice you can provide. Your client may disregard part or all of it, but that's a separate issue. In other cases, which fall more on the contract programmer side of the line, you are still there because you have the skills to do a job. If it didn't require some of your skills, you wouldn't be there. Summarize your advice to a level appropriate for the person you report to, but provide it.
Yes, they will. And when you buy something because it does support Linux, let them know you appreciate the work. Manufactures write drivers for Windows. If they believe it will result in enough sales, they'll write Linux drivers too. So when they got the sale because they support Linux, tell them.
I've e-mailed the support people at manufactures who do support Linux. I just got a new machine. It has an Intel motherboard. Intel wrote the driver for the onboard NIC. It works like a charm. If I hadn't had a working net connection on my old machine, they even supplied the Linux driver on the CD that came with it. I wrote a nice note to the e-mail address they gave for support. I told them which motherboard I was using and which distro.
The previous release of XFree86 has the older nv driver which doesn't support my newer nVidia card. Allegedly, the latest version does, but I've been a bit too busy to load it up. However, nVidia has a driver on their web site. I had one problem with it. The sample XF86Config-4 file they provided had a BusID line in it. That isn't really necessary in a single-headed system. Commenting it out made everything work. I sent them a suggestion that they comment it out in the sample and include a quote from the man page explaining what it is used for. I got a response a few hours later saying they would. Thanks guys, great job.
On my old machine, I was using a Linksys NIC. They explicitly said they didn't provide support for Linux in the sense of customer service, but they included an updated version of the tulip driver on a disk in the box. And their web site has information on configuring for it.
I sent a note to NVIDIA last night to thank them for the previous version of their drivers. One of the problems that is cited in article after article is that judging the size of the open source market is very difficult because the software is freely redistributed. Even counting downloads is just an estimation technique, because the files may get mirrored or cut on a CD and passed around.
The day of the HTML "developer" making 100k a year are long past. The overall quality of the tech sector will be better but smaller in size.
Yup. And as much as many of the HTML/Web "developers" of the dotcom boom were not programmers by any stretch of the imagination, they aren't without skills. I think this shakeout is going to push useful tech skills out into non-tech jobs. That's not necessarily a bad thing.
Another great one is "Refactoring" which presents a systematic method for improving the design of existing code.
I have to second your recommendation of Refactoring. I feel the same way about it that I do about Design Patterns. Nearly everything in it is obvious... while you are reading it. Those two books are references for the details that are easy to forget. Refactoring also builds more complex refactorings upon the base of the simpler ones. As that started to happen partway through the book, I started to see the true expressive power of referring to specific refactorings as a tool for abstraction... very much like design patterns. This is all about building new layers of abstraction in ways that are easily manipulated.
Do you believe the evolution of our technologies (such as the Internet) are more under control of restrictive commercial interests today than in the past...?
I liked your question and I thought I would take a stab at it because I think that there are competing forces at work. Ignoring some of them to answer the question may overlook important facets of the answer.
I doubt that anyone could dispute that the overwhelming majority of computing is done with commercially available software. A huge driving force in software development is viability as a commercial product.
But the widespread availability of Internet access has also made participating in open source projects a real possibility for people who never would have had the opportunity a decade ago. It has also made it impossible for a single company to completely control the direction in which the technology develops. Simply put, Microsoft was not a pioneer on the web and neither Intel nor IBM decides the future direction of PC hardware.
Big corporate interests have a huge influence on technology. Their budgets underwrite the products that are being developed and some of the research being done. Theirs is not the only voice. If it were, I would be very alarmed. As the situation stands, I feel comfortable with them as neighbors, even when I have to chase their dog off my lawn a couple times a week.
The nice thing about Affero is that it is flexible. Slashdot's Karma/Moderation/Meta-Moderation system captures some excellent ideas. All of them can be expressed in terms of Affero and shouldn't be overlooked.
Another way of looking at it is simply the usual networking transaction that take place in the real world. Imagine that you are looking for a reliable contractor to renovate your house. There are a number of three-way transactions taking place between you, a friend you trust, and a contractor he trusts well enough to recommend. The whole point of reputation and networking is to allow a certain amount of transitivity in trust relationships.
A trusts B's judgement. B trusts the quality of C's work. B recommends C to A. If the final transaction works out well, then A's trust in B's judgement is reinforced and A comes to trust C's work directly. C gets more business out of it.
In the open source community there is an inner circle of people with large reputations. Most of them have substantial time commitments already. But most of them, by virtue of their widespread contact with the OS community have had an opportunity to meet and interact with a large number of other people. They may not have the time or interest to do a project for me, even if I can pay. However, they probably know people who would do a good job.
Actually, I expect that the employers who know what Affero is and need the kind of people who have built good reputations with it will go to Affero looking for employees. Rather than putting it on your resume, they'll find your resume through it.
Considering that this is a security vulnerability that they are talking about, Microsoft needs to look at what they committed to their customers in that timeline and better get a fix out ASAP!
Didn't you read the EULA? It specifically said, "This product is supplied without any warrantee for any use whatsoever. Even as a high tech coaster in an oversized box. If the media is damaged, we will replace it with undamaged media, which we also don't guarantee has any usable software on it, within 90 days of the purchase date. Do not use in the presence of electric current. If cough persists, discontinue use."
Yes. But they are not well understood outside the Free Software and Open Source community. I have been dealing with the misperception that anything that is compiled with gcc must be open sourced for over a decade now. I don't think that clear explanations are a waste of time yet.
In fact, unless there is some bypass mechanism, it is likely to degrade slightly. Unless the compression is streaming, there will be a need to buffer blocks of data, which will cause delays. And if the compression is streaming, it is likely to increase the size of compressed files slightly.
This can be mitigated by recognizing highly random data sources such as compressed or encrypted files. Of course, this is being sold to a broad market. It will be optimized for the average user's behavior. I wonder if it will even recognize gzip'ed, bzip'ed or PGP/GPG encrypted data and skip the compression. I wouldn't bet heavily on all three.
The third and fourth nearly had me choking on my coffee. But serious, the final one is suitable for any audience. It conveys the point succinctly and memorably. A slight variation on it that uses both the words "free" and "open" and conveys a subtly different message would be:
Distribute Freely And Openly
Tell everyone who gets a copy that they are encouraged to share it, and they don't have to do it secretly. There's no conspiracy. And there's no one looking over their shoulders to catch them.
For all the CDs we hand out at installfests, it would be nice to have some stickers that proclaim the contents to be free software that can be copied and redistributed. It might grab some people's attention. Does anyone have suggests for a pithy slogan?
You aren't the only person thinking along these lines. It seems that the ideas that are found in /. moderation are a recurring theme. Emacs Gnus had an interface to something called GroupLens some time ago, but it is dead now according to the manual.
How on earth do you go back to school / college / university if you don't have any money?
Not having income and not having money are not the same thing at all. It is also possible to get loans to go back to school. I certainly considered doing it myself.
Boardcast power is an interesting idea. I wonder how this solves the issue of power falling off with the square of the distance. Also, what is broadcast can be received, often unintentionally as interference. I can't say that I want to receive broadcast power on my radio, TV or fillings.
I don't know why this is getting any attention here. I read about it on Slashdot hours ago.
--
"It's a joke, I say, boy, a joke. I keep pitchin' 'em and you keep missin' 'em."
Let's say: A nation attacks another nation, and leaves some valuable historical relics unguarded. What does psychohistory predict will happen? A number of people (note: not all) will loot the unguarded relics with the intend to get rich.
I agree with you completely on this point. There are two issues that you should consider though. First, could you have predicted six months ago whether any given historical relics would be left unguarded? Second, can you predict whose hands they will end up in when they are found?
The first point illustrates that we don't (and can't) have all of the information needed to make many important predictions in advance. The second point illustrates that some important consequences of even the things that we can predict are going to be unpredictable.
The looting of Iraqi artifacts has already resulted in international tensions. If they are found quickly, they will almost certainly be returned to Iraq, as they should be. But what will happen if their location isn't discovered for 50 years? Where will they turn up? I can't predict that. I can't predict what other factors will all coalesce at the same time to cause people or countries to take particular sides in the argument over whether they should be returned or to whom.
This issue parallels the issue of works taken during World War II. Many were forcibly stolen. But right now, there's a discussion going on about the terms under which a collection, currently in Russia, will be returned to Germany. From some of the other sources I've seen and heard, I have gotten the impression that the Russian officer acted partly to preserve valuable works of art from damage or destruction in a war zone.
Had a different Russian officer found those paintings, they would have ended up somewhere else. Even imagining that he had acted under similar motives, they could be in a different post-Soviet country with a different government negotiating the terms for their return.
It simply isn't possible to nail down all of the variables in advance, or even as events occur. Either economics or chaos theory will demonstrate that pretty clearly. The problem is that we can forecast general trends into the near future. The fewer variables we introduce and the shorter the time frame, the more accurate we can be. Marital conversations are quite predictable in many cases. The reasons are trivially obvious. Some marriages have unresolved issues that keep coming up. But even a good marriage without baggage involves two people dealing with day-to-day life, which involves tackling the same questions repeatedly:
"So, should we go to the beach for our vacation this year?"
"Yes, and don't forget to schedule enough time at Thanksgiving to visit both of our families."
The list goes on and on.
It's been ages since I read that book. I have it sitting on the shelf at home. I know a bunch of others, some of which I came up with independently. My classmates came up with the "shadows" solution and the "string" solution. There is also the "sell it and use the money to pay the fee to get a copy of the county records on the building which will contain the information" solution. I won't claim that the number of solutions is infinite, because at some point additional solutions start either involving trivial inclusion of the required barometer or are trivial variations on other solutions. The reason I like this problem is that it can be used as an exercise in brainstorming.
How would you measure the height of a building using a barometer? I have never been asked this one in an interview. It was used in a discussion in my high school physics class.
There are a couple of things to note. The question specifies that you must use a barometer. It does not say how it is to be used, or prohibit the use of other tools.
I will wish good karma on anyone who can come up with an answer that I haven't heard since I since encountered this question.
I learned about state diagrams in college years ago. The examples that we used at the time were all the sorts of things that could be done as stand-alone projects. They typically involved parsing strings that had to match a description given by a state diagram. If you are building a lexical scanner by hand or a regular expression library, it's good stuff to know. However, I wondered how often I'd see it in the real world.
Well folks, this can be real world stuff if you apply it. It's all about retaining a state that summarizes inputs that you have seen so far. This is about communication between autonomous devices (or with a user). If nothing else, state information is useful in retaining position within a set of search results when a user is paging through them. It can be used in the session layer of a communication protocol to track handshaking. If you have to asynchronously do two things concurrently within your program, unless each of them involves completely separate transactions that are completely atomic, one or both can be modelled as state machines.
If you write GUI code where you have buttons being toggled, check boxes checked or fields filled, you have a state machine, whether you coded it or not.
If you are writing embedded systems, you don't need me to tell you that you are maintaining real time state information about the devices you are talking to.
I have to agree on this. Diplomacy is always called for when dealing with clients. I've been on both sides of the fence on this one. I've been the consultant offering the advice and I've been the employee receiving it. The responsibility for the decision rests with the client unless it has been explicitly delegated to the consultant.
However, the whole point of bringing in a consultant is to fill a need for specific expertise. In some cases, the need is for expert advice. In that case, the answer is unambiguous. You owe your client the best information and advice you can provide. Your client may disregard part or all of it, but that's a separate issue. In other cases, which fall more on the contract programmer side of the line, you are still there because you have the skills to do a job. If it didn't require some of your skills, you wouldn't be there. Summarize your advice to a level appropriate for the person you report to, but provide it.
Yes, they will. And when you buy something because it does support Linux, let them know you appreciate the work. Manufactures write drivers for Windows. If they believe it will result in enough sales, they'll write Linux drivers too. So when they got the sale because they support Linux, tell them.
I've e-mailed the support people at manufactures who do support Linux. I just got a new machine. It has an Intel motherboard. Intel wrote the driver for the onboard NIC. It works like a charm. If I hadn't had a working net connection on my old machine, they even supplied the Linux driver on the CD that came with it. I wrote a nice note to the e-mail address they gave for support. I told them which motherboard I was using and which distro.
The previous release of XFree86 has the older nv driver which doesn't support my newer nVidia card. Allegedly, the latest version does, but I've been a bit too busy to load it up. However, nVidia has a driver on their web site. I had one problem with it. The sample XF86Config-4 file they provided had a BusID line in it. That isn't really necessary in a single-headed system. Commenting it out made everything work. I sent them a suggestion that they comment it out in the sample and include a quote from the man page explaining what it is used for. I got a response a few hours later saying they would. Thanks guys, great job.
On my old machine, I was using a Linksys NIC. They explicitly said they didn't provide support for Linux in the sense of customer service, but they included an updated version of the tulip driver on a disk in the box. And their web site has information on configuring for it.
I sent a note to NVIDIA last night to thank them for the previous version of their drivers. One of the problems that is cited in article after article is that judging the size of the open source market is very difficult because the software is freely redistributed. Even counting downloads is just an estimation technique, because the files may get mirrored or cut on a CD and passed around.
Minimum movie audience requirements:
* 32oz drink
* Large popcorn
* $3 box of candy
Yup. And as much as many of the HTML/Web "developers" of the dotcom boom were not programmers by any stretch of the imagination, they aren't without skills. I think this shakeout is going to push useful tech skills out into non-tech jobs. That's not necessarily a bad thing.
I have to second your recommendation of Refactoring. I feel the same way about it that I do about Design Patterns. Nearly everything in it is obvious
I liked your question and I thought I would take a stab at it because I think that there are competing forces at work. Ignoring some of them to answer the question may overlook important facets of the answer.
I doubt that anyone could dispute that the overwhelming majority of computing is done with commercially available software. A huge driving force in software development is viability as a commercial product.
But the widespread availability of Internet access has also made participating in open source projects a real possibility for people who never would have had the opportunity a decade ago. It has also made it impossible for a single company to completely control the direction in which the technology develops. Simply put, Microsoft was not a pioneer on the web and neither Intel nor IBM decides the future direction of PC hardware.
Big corporate interests have a huge influence on technology. Their budgets underwrite the products that are being developed and some of the research being done. Theirs is not the only voice. If it were, I would be very alarmed. As the situation stands, I feel comfortable with them as neighbors, even when I have to chase their dog off my lawn a couple times a week.
The nice thing about Affero is that it is flexible. Slashdot's Karma/Moderation/Meta-Moderation system captures some excellent ideas. All of them can be expressed in terms of Affero and shouldn't be overlooked.
Another way of looking at it is simply the usual networking transaction that take place in the real world. Imagine that you are looking for a reliable contractor to renovate your house. There are a number of three-way transactions taking place between you, a friend you trust, and a contractor he trusts well enough to recommend. The whole point of reputation and networking is to allow a certain amount of transitivity in trust relationships.
A trusts B's judgement. B trusts the quality of C's work. B recommends C to A. If the final transaction works out well, then A's trust in B's judgement is reinforced and A comes to trust C's work directly. C gets more business out of it.
In the open source community there is an inner circle of people with large reputations. Most of them have substantial time commitments already. But most of them, by virtue of their widespread contact with the OS community have had an opportunity to meet and interact with a large number of other people. They may not have the time or interest to do a project for me, even if I can pay. However, they probably know people who would do a good job.
Actually, I expect that the employers who know what Affero is and need the kind of people who have built good reputations with it will go to Affero looking for employees. Rather than putting it on your resume, they'll find your resume through it.
Didn't you read the EULA? It specifically said, "This product is supplied without any warrantee for any use whatsoever. Even as a high tech coaster in an oversized box. If the media is damaged, we will replace it with undamaged media, which we also don't guarantee has any usable software on it, within 90 days of the purchase date. Do not use in the presence of electric current. If cough persists, discontinue use."
Yes. But they are not well understood outside the Free Software and Open Source community. I have been dealing with the misperception that anything that is compiled with gcc must be open sourced for over a decade now. I don't think that clear explanations are a waste of time yet.
In fact, unless there is some bypass mechanism, it is likely to degrade slightly. Unless the compression is streaming, there will be a need to buffer blocks of data, which will cause delays. And if the compression is streaming, it is likely to increase the size of compressed files slightly.
This can be mitigated by recognizing highly random data sources such as compressed or encrypted files. Of course, this is being sold to a broad market. It will be optimized for the average user's behavior. I wonder if it will even recognize gzip'ed, bzip'ed or PGP/GPG encrypted data and skip the compression. I wouldn't bet heavily on all three.
The third and fourth nearly had me choking on my coffee. But serious, the final one is suitable for any audience. It conveys the point succinctly and memorably. A slight variation on it that uses both the words "free" and "open" and conveys a subtly different message would be:
Distribute Freely And Openly
Tell everyone who gets a copy that they are encouraged to share it, and they don't have to do it secretly. There's no conspiracy. And there's no one looking over their shoulders to catch them.
For all the CDs we hand out at installfests, it would be nice to have some stickers that proclaim the contents to be free software that can be copied and redistributed. It might grab some people's attention. Does anyone have suggests for a pithy slogan?