SBC is client/server since they are rolling out fiber to the neighborhood and VDSL to the home. This allows only one or two channels at a time to be transmitted. Verizon is multicast; their fiber directly to the home allows significantly more bandwidth; they will transmit all channels at once and have an STB decode them.
p2p IPTV should actually be helped by Verizon's FTTH solution, since the pricing isn't completely off base and you get quite an upload speed (5MB/s upload for $200/mo). Too bad I'm in one of Verizon's backwater communities... I might see fiber in 2010.
No. If they take the 4 or 5 most significant bits across a song and perform (for example) an MD5 hash of them, then any encoding mechanism (MP3, OGG, etc.) would still result in the same hash. Same goes for video.
The stupid part is that even trivial encoding changes (zip) much less encryption (DES, AES, PKC) render this useless. The way around that is actually doing application layer filtering on data, and I with them luck with that. Besides encryption still getting around this in many cases, the CPU time required to do near-real-time layer 7 processing of ALL of the packets going through an ISP is obscene. (remember this type of filtering requires persistence of those packets for a period of time in order to reconstruct the resulting media, because the few bytes in a single IP frame probably isn't enough to know if it's media). Such investment would drive every ISP except Microsoft bankrupt.
What the MPAA is really pursuing right now is watermarking (mentioned later in the article). They have proposed altering each image that goes to different movie theaters or DVDs (especially previews that go to the MP Academy), etc. By watermarking the image against a master (of 'neutral' color, it is possible to determine which copy it came from even if it has been re-encoded.
The alteration is of certain items in the image. It is not on the magnitude of a least-significant bit (which different encoding schemes would then garble). What these watermarking systems do is change it by a number of bits, and do so in a recognizable fashion. In a scene, this might change brightness of the clouds, or the brown of the ground, etc. The net is that a distinct watermark can be created on the image. By altering different items in different films (and at different times), the net result is indistinguishable to the watcher; yet when the 'master' is known to the MPAA, the patterns can be distinguished to determine the source of a pirated copy of a movie or song (regardless of how it might have been re-encoded - unless it's at REALLY low quality)
I think you have a valid concern as this type of research evolves and it becomes more complex. However, with this system, you're a bit ahead of the curve on the concern front.
This is a form of genetic algorithm (for selection) running on these virtual organisms. It's controlled for a number of reasons:
(1) The only language in which they can operate is what you might call a virtual machine language running on those systems (the Avida system) [it IS a custom language, even if you don't like the VM monikor]
(2) They can evolve, but their success is being tested against a known "fitness equation" (e.g. can it add two numbers). The "playing dead" was a result of him attempting to throw a pre-determined test at the organisms and constraining those that did too well. If they are out-right bad (trying to break out rather than add), they will not survive.
So in order to 'escape', they would have to:
(A) Develop both the known fitness function (addition) as well as the ability to hack out of the Avida (which requires a bug in Avida, something I wouldn't discount outright)
AND (B) hack Avida in such a way that either Avida continues to run in the background, giving the organism CPU cycles or completely evolve all of the code required to copy itself outside of the Avida system (and I would condider the chance of the developed bytes being both legal Avida instructions and legal processor/OS instructions very small)
Given that all we know about evolution shows that complex features evolved from simple features (something the Avida system itself helps to show) the chance of jumping from nothing to a full-fledged stand-alone program is very, very unlikely.
...the *AA will be attempting to tax every bit - regardless of content - in the argument that each one could be a transmission of media that is depriving thier coffers of some money.
I'd be a lot more trusting of their results if they had worked it out on a processor with 100% certainty.
Think of the potential heartburn for the CEOs and CFOs who might have to sign off the financial statements (ala Sarbanes-Oxley) after the calculations were done using one of these processors...:*)
Probably and even bigger boon for encryption and key-generation.
I vote key-generation and not encryption. Otherwise, how would you decrypt it? (given that the key generation and decryption are non-deterministic with one of these...)
In year 3, if you stop buying music, with iTunes, you've received 360 songs that are most likely top-20 overplayed fluff or songs for which you listened for 30 seconds and magically determined you liked the whole 4 minutes. With Napster, you could have listened to 120 / 5 * 30 * 24 = 17280 songs (listening 2 hours/day). The averaging sampling cost is therefore 2 cents per song. Even at a dismal 1% hit rate, you discover 172 new songs.
Long term value of Napster: Whatever discovering that new music was worth (minus the additional cost of actually buying the CDs:) )
This is not to say I will actually subscribe to Napster. I won't. I'm still miffed at Roxio for forcing a Microsoft tax (Required Windows 2K or better) to switch to Napster. They also misbilled me and it was pulling teeth to get my money back (had to cancel the CC and use the CC company to fight for me)
The point, however, is that value is a matter of persepective and doing a value analysis simply based on cost misses the point that value = benefit - cost - risk. So I could actually argue Napster is lower risk and higher benefit (from being able to sample) than iTunes; while iTunes has some better and longer benefits at similar cost (which shows it too has positive value).
It isn't the total amount of memory that the algorithm uses that matters, it's locality of reference
I see where you're coming from, as there are reasons why locality helps (cache lines fetched in their entirety, bursts of memory from DRAM to caches, charging of different areas on a DRAM) but I disagree that there are not tradeoffs that can COMPETELY trade memory access for CPU time, regardless of the value of locality. In addition, locality becomes vitally important on Cell, where the additional processors primarily address their 256K of local memory. It will also become more and more important elsewhere as the penalty of going to main memory increases (and you can't achieve a 100% hit rate in an L1 cache).
Let me expand my original example to show you two (potentially extreme and thus stupid, but none-the-less illustrative) implementations:
Let's assume we want every assignment a = b _ c_ d _ e where each _ is either +, -, * or/. I will ignore everything else, even though this is not exhaustive (since without parenthesis, it is subject to a language's order of operations). [Note this is actually a 'real' example, in the sense that I was part of a project where were exhaustively testing a compiler for these simple assignments.]
One algorithm might calculate all possibilities of x _ y (there are 4) and then substitute b for x, c for y and d for x and e for y for each of the permutations (4 x 4 = 16 total permutations). The storage of each of the "sub equations" is done in memory, and while this fits in an L1 cache for this trivial example, with more operators and variables, it doesn't (especially if you go to 8 variables and are therefore caching permutations of w _ x _ y _ z)
Another algorithm will treat this like counting. let + = 00, - = 01, * = 10 and / = 11. Start at 000000 and increment up to 111111, at each number using the first pair of numbers for the sign between b and c, the second pair for c _ d, the third pair for d _ e.
If you expand these examples to a much larger example (do 8 variables instead of 4; N symbols + parenthesis instead of 4), you will quickly realize that storing all of the permutations by doing the precalculation (in the first example) not only blows out the memory, but also (just due to size and the need to merge the permutations) destroys any ability to do the calculation locally in memory. However, the second example, at the expense of recalculating the same thing (specifically, the patterns x + y, x - y, etc.) COMPLETELY eliminates any duplicate reference to memory (since there is one access to 'store the answer' and what this does use - the counter and the code - would all fit in an L1 cache), but this is done at the expense of run time (it will take MUCH longer to run... in the real example I cite above, it took about 100X the runtime, but about 1% of the memory, since we wrote the final results directly to disk in both cases). Yes, I realize there are middle cases that are probabily 'more ideal', but that requires one think about the target architecture, programming language, and lots of details not valuable here.
This - as pointed out in my first post - is certainly a trivial example. However, there are many other places where this type of tradeoff is valid. Geometric applications and work on graphs [graph theory] (which is where I spend my programming time now) can make a lot of effort to cache values to avoid lots of calls to sin, cos, and tan (geometry) or paths through the graph (graph theory). However, with a surfeit of computing power, should that be done, or should the memory footprint be minimized (to hopefully get better locality of reference)? Those tradeoffs are actively being made with what I am working on. After all, what's the value of code profiling tools if you don't use them:)
Check out the software
and The paper. These were the basis for the Discover article the other respondent to you mentioned (in case you haven't been able to find it)
I'm amazed at how similar your buying pattern is (well, was) to mine. I don't actually download the MP3s anymore, though I was a long-time member of Pressplay before it became Napster (their transition required a Microsoft tax [Win2K or newer] which I refused to pay). I bought a ton of music during that period of time, and still have the 400 or so 3x5 cards where I wrote all of the songs I had listened to. At the peak of this, I was buying close to your consumption of 1 album a week.
Today, I buy almost nothing. Three albums in 2004, I think. I happily listen to my iPod, but am currently in "upset at the industry and protesting with my dollars" mode.
I do have one note, however, regarding your post: "The difference between me and the "ideal" consumer (from an industry standpoint) is that I'm in total control". While some executives are afraid of those in control, that shouldn't be a problem for someone in marketing (speaking from someone who does it:) ). While it may terrify the strategic marketing team (whose job it is to create and sustain market control points), it is possible to completely cede control yet still be able to survive in the market. Look at gasoline and Mobil's speedpass. Blatently zero-value add product that is differentiated on convenience. What could be done with a system that could suggest songs along the lines of how Amazon.com suggests books [though their system is awful, IMHO, others like it].
The key to surviving without control points is doing what the insurance industry does well: predicting behavior. If they can predict the chance of something, they can insure it. So the real root-cause problem for the market intelligence (or perhaps more appropriately the consumer behavior) team in a record company (as opposed to the artificial problem an executive creates) isn't that you are exploring outside the "top 20", but that they have not expended any effort AT ALL to understand the non-Wal-Mart, non-top 20 behavior. Thus, this ignorance breeds fear, and they are absolutely terrified of how to deal with such a world.
However, if you drop the fear, think of what they could do: Partnerships with cell or on-line providers to let me single-time sample music by streaming it to a cell phone or one-shots on my iPod and let me push a button to say I like it. Avoid ever sending me the same song twice to do that song management for me (that I did on 3x5 cards). Mix "suggestions" with random titles (hijacking methods from LaunchCast) to help focus the music, if I want that. Log those I like, then when I strike more than one on an album, email me that album name and offer it at a $1 discount through Amazon.com (or please queue them up to send only 1 email a week... really, honest, I don't want this to be spammish). If I get single songs that don't get onto an album, let me know that too periodically, and given me 10c off at iTunes. There is SO much the music industry could learn from the grocery industry as far as using IT and cross promotion. Someone should steal Wegmans' CIO - they could make a mint with the ideas he could churn out to leverage the value of IT.
(1) fetching and prefetching (multiple P4 stages) because the extra processors on Cell can directly address their local 256KB of memory.
(2) decoding x86 instructions into microops - since the extra processors are running code directly rather than running kludgy x86 code on a non-x86 microcore
(3) branch prediction (since the load penalty is a lot lower due to local 256KB of memory and shallower pipeline, these stages are unnecessary)
(4) scheduling the microops isn't necessary as Cell will require that to be done in software during compilation (ala VLIW)
(5) retirement (since Cell isn't doing out-of-order execution, no reordering and retranslation from the microop to the x86 world is necessary)
So given that potentially half of the 20 P4 stages (later P4s have 31) are unnecessary, that saves a lot of logic and allows the same clock speed with less stages. There has (apparently) been a lot of architecture work here to think through what adds the extra hardware and how to avoid that... the result is the ability to use higher clock speeds without having the same types of penalties the IA-32 processors encounter.
Changing just the CPU without making substantial (and expensive) changes to the rest of the system will not magically give you more performance.
Substantial changes, maybe. Expensive? Perhaps not. This all depends on the base assumptions from which you operate. One of the fundamental assumptions in today's existing systems is that any and all work should be done to maximize the utilization of the CPU. However, when considering how to design other types of systems, such may not be true (it may make sense to minimize the memory footprint, for example).
If you've ever done some detailed algorithm work, you will quickly realize that there are many algorithms where you can make tradeoffs between memory and CPU time. The 'simplist' of these are the algorithms that are breadth first vs. depth first, which can trade off exponential in memory vs. exponential in time. [For a 'trivial' example, try forming the list of all operational assignments containing 6 variables and which use %, +, -, *,/, ^, &, ~, and ()... less than 50 lines of perl and you'll quickly blow through the 32-bit memory limit if written depth first, or take overnight to run breadth first]
The significant question which has been brought up - and which remains unanswered - is what software development tools will be made available. Once this is better answered, we will all be in a better position to determine what fundamental assumptions have been changed, and therefore how we can follow the new assumptions through to conclusions about the net performance of the processor and machine in which it is contained.
Interesting, but I think that's an unfair bashing of the computer scientists. Let me state that my background is both computer architecture (the hardware side) and business.
It's interesting to note that while many things are stated by computer scientsts as evil, they are also practical. There are reasons why these languages are 'efficient' in a business sense: Linux is a widely used and widely known free *nix kernel. C++ leverages the existing C knowledge base; Perl is wonderful when you're trying to analyze ad-hoc log files. Personally, I haven't learned Python or Ruby, because the amount of time I spend hacking perl (maybe 10-15 hours a year) isn't enough to ever justify learning a programming language to replace it. [note I'm not a programmer; thus don't rely on programming knowledge to hold a job; thus my self-education time is better spent elsewhere; otherwise this might be a useful broadening of my horizons]
What you have to realize is that something won't be (rapidly) adopted unless it is significantly better than a previous product (or has a near-zero learning curve). For example, one of the members of the IEEE that sits on some of the Ethernet standards committees mentioned to me that one of the reasons Ethernet jumps by magnitudes of 10X is to ensure the next generation provides significant benefit over the previous one (of course, there are other reasons, too).
The point is, you can find a significant number of languages in use, but few that have been displaced. Those that were widely adopted (Fortran, Cobol, C, Perl, Java) all have specialties (scientific, business, fast/portable, efficient scripting, the web) that significantly differentiate them from previous languages. The dynamics of Python and Ruby is actually an interesting case study of where Perl is being very slowly knocked out of some of its domains by a similar, less "ugly" language (or such is my perception [both Perl being knocked out and the others being less 'ugly']). However, that transition is, I would argue, a bit glacial.
Also, to say that computer science (and studying algorithms) has very little effect is not all that accurate. Developments in rendering 2D and 3D systems, graph theory, and countless other areas are the result of those individuals. Even my understanding of how to organize code to ensure my OO code is a directed acyclic graph is a result of those "CS" folks and having that knowledge filter down. It doesn't necessarily affect the languages, but it changes how we use them. More recently, we have seen discussion of aspects, though (personally) I still haven't figured those out [I actually think it's because I work in problem domains where aspects are not efficient].
In addition, continually pointing out the weaknesses of the existing systems helps those that will design the next set of systems avoid the same mistakes. Even though that advocate may appear to be in an 'ivory tower' and ignoring what is going on in the 'real world', if a few architects listen and learn (and apply to the next generation of systems), then the computer scientist has served a purpose.
One other note. In respect to: "It seems to me that computer scientists need to get out and ask people who work in IT what they actually expect from their kernels, languages, and development systems.", try it sometime. Many times, people have NO IDEA what they are looking for. That's the whole basis of prototyping - to get something in front of the person and get feedback. Many other times, you will get completely contradictory answers. Detailed-oriented people will want a revision control system, code tags, and everything javadoc'ed. Others will be hacking out code that hopefully self-documents, but only has a comment to identify the license and copyright of the code. The challenge when dealing with people is that you have wildly different learning mechanisms, personality types (e.g. Myers-Briggs), brain operation (e.g. Hermann), and Communication Styles (e.g. DiSC). These differences lead to d
Is it a matter of different technology? Recording is recording.
Recording with a VCR is offsetting in time something which you have otherwise legally acquired (the cable company or TV station is a licensed distribtor of the content). Directly from Sony/Betamax: "Any individual may reproduce a copyrighted work for a 'fair use'; the copyright owner does not possess the exclusive right to such a use"... and later "there is no likelihood that time-shifting would cause nonminimal harm to the potential market for, or the value of, respondents' copyrighted works"
Downloading from a P2P network is a copy from another person who is NOT legally distributing the work. It is not fair use, because it involves sharing a full copyrighted work between individuals (some P2P architectures not withstanding) and also may cause nonminimal hard to the potential market for a work (because of the 'free' acquisition, you wouldn't buy a DVD or watch TV and 'pay' via watching advertisements or paying the cable company.)
So therefore, the only way to instill fear in the mind of "internet shoplifters" is to up the possible penalty.
But does "instilling fear" wash with: "Excessive bail shall not be required, nor excessive fines imposed, nor cruel and unusual punishments inflicted."... the 8th amendment to the Constitution?
In order to avoid calculation (I'm trying hard to avoid doing the math), this is answered best by looking at a few corner cases.
First, let's assume the mass at 0,0 can be passed through without slowing us down. In that case, if we start at 0,-10 rather than 1,-10, we have no lateral (delta x) movement at all, the velocity at 0,-10 is equal to the velocity at 0,10 (becuase the moving object would accelerate from 0,-10 to 0,0 and decelerate from 0,0 to 0,10 by the exact same amount). This is exactly the case that you are referring to in your post.
Second, let's look at an object that is stationary at 4,0. Gravity would pull that object toward 0,0, even if both objects were initially motionless. Remember, position = x0 + v0 * t + (a * t^2) / 2... This is a situation where we are converting potential energy (distance from a large mass - meaning using gravity) to kinetic energy (motion). This change from potential to kinetic is how we avoid violating conservation of energy. The moving mass also (slightly) pulls the larger mass at 0,0 closer, so they might strike at 0.01,0... this is how conservation of momentum is maintained (because momentum is mass * velocity and velocity is a directional vector, while speed is an absolute value of the length of the vector... thus, with the vectors in perfectly opposite directions, the net momentum is always 0 [with both at rest at the beginning of the exercise]).
So provided that the velocity is high enough that the velocity in Y is >> than the acquired velocity in X from the second case, we are OK. In fact, the velocity in Y at the closest point of approach should be at least the escape velocity of the mass. In that case, the velocity is high enough that the entry angle and the exit angle of the moving object should vary by less than PI/2 radians (you will note this is true in the case of the path of Cassini linked to from my other post). In this case, the direction of the object was changed, but it still has enough velocity to escape the gravity from the mass at 0,0. The net velocity is also faster than when it went past the large object, because it converted potential energy into kinetic energy.
However, if the velocity in Y is too slow, then one of two things will happen. If velocity is too low, the object will do some small arc around the mass until it actually strikes it (this now assumes the mass has some volume). If the velocity is slightly faster, such that it is not low enough to strike the object, but not fast enough to escape from the object, then the moving object has functionally undergone what would be called orbital insertion. The velocity threshold here (between striking and not striking the mass) is called the orbital velocity. Thus, the moving object would permanently be a satellite of the mass at 0,0 (though the orbit may be irregular for some time). For some more on thse velocity thresholds, visit How satellites work
Not required.
- Assume you are at the point 1,-10 and moving at 1 unit of distance per unit of time toward 1,+infinity (directly 'up' in cartesian coordinates)
- Assume a large point mass is located at 0,0
Skipping a lot of mathematics to show how much the object is accelerated, you can observe that when the moving object passes from 1,-10 toward 1,0; it will be slightly pulled toward the mass (to perhaps 0.99,0). As it continues along, the net force by the object at 0,0 pulls the moving object roughly toward -infinity,0.
However, since this is space, and a vacuum, there is nothing to slow the velocity the object already has (yet the large mass IS accelerating the moving object).
Therefore, the object now has a velocity equal to 1 unit of distance toward 0,+infinity PLUS some (smaller) velocity toward -infinity,0. NO change in either mass is required.
This must mean that the galaxy is actually speeding up?
No
Or does it just mean the stars mass is greater than it was before..?
Yes, but only very slightly... since it's traveling at about 1/500th the speed of light, it did gain some mass, but very, very little relative to its original mass
If its neither of these, why has the star suddenly broken away from the galaxy
It all has to do with the angle and distance at which the star approached the black hole.
If it passes by a long distance away or at a slow speed (I don't know the equation to show you the threshold of speed/distance/mass), the chance is that it will enter some form of orbit, if irregular.
If it is nearly tangent to the object (but doesn't strike it), and it is already moving at a high enough velocity, then it will use the black hole as a slingshot and will gain velocity. You can check out the Cassini satellite's mission trajectory to see how it used Venus and Earth to gain velocity (relative to the sun)
I find the # of power supply problems fascinating... since I've NEVER experienced that (knock on wood). I wonder what the differences in usage are that drive that as an issue (vs. my experience which is physical failure or HDD problems)
System received/purchased & failure:
1984-ish: No failures to date
1992: HDD [controller board?] failure in 1995, replaced, retired in 1999
1994: Monitor on/off switch wore out (physical failure) & repaired, 2001; still in service
1996: No failures to retirement, 2001
1998: Laptop: multiple screw failure: Bottom fell out (literally), 2001
2000: Added internal HDD died after 6 months [2003], replaced & still in service
2001: No failures to retirement, 2005
2004: HDD [media failure] 1 week into use (in service with replaced HDD)
2005: Thankfully still OK:)
"otherwise"? How about getting an MBA so you can actually communicate with management in their language? This allows you to work with them to drive the projects which are "right" for the business but don't necessarily fit into the small window of the world provided by an accountant!
On that theme, I'd declare that "getting an MBA in an attempt to get into management" an equally dumb decision. You should never consider an MBA an immediate path to management nor should you consider the skills acquired there only applicable to a manager.
I'd personally like to see a reflection on more open source projects than just 1 or 2
Ditto. And correllate to some other factors as well. A Linux has a huge potential installed base, because it is a general-use application. But what about something like PCGen, which is very focused, yet still has a pretty large development group (from what I can tell). Then projects with only a few maintainers. There is also the dynamic of rewriting an existing application to a new language that may alter results (like jarsync).
Do turnover rates vary between these types of projects? What about potential for actually releasing code? (since so many projects on SourceForge don't have any code at all) What about forking? What about documentation? What about the ability to transition to a new lead maintainer? There is an entire dymanic of management systems here which is different from anything for which we have a lot of data.
I truly hope this inspires someone to do some in-depth research on this. I should write some of my former business professors and see what they think:)
Given that his e-mail address ends in ".de", I'd say Apple is pretty much up the famous creek without the even more famous paddle. It's a little hard to enforce US law over there, although I can't say we don't try occasionally (which is, IMHO, dumb).
Re:Be careful of how interoperable you think SIP i
on
Businesses Discover Skype
·
· Score: 2, Insightful
A clarification because my first post is poorly articulated: SIP will always interoperate at the base level of function between two different companies' systems, it's advanced features like call waiting or conferencing or other "fun" things that don't necessarily work if you have a Cisco switch and a Siemens phone. To this end, the comment about Cisco being an offender has to do with the number of additional features they have (not bad for features, just must difficult for ensuring they may someday be available and interoperate with others' equipment)
Be careful of how interoperable you think SIP is
on
Businesses Discover Skype
·
· Score: 3, Insightful
and they use the open SIP format
And every single large vendor I've seen short Avaya is performing an embrace-and-extend on SIP in order to properly match the features you can have today in your traditional PBX. Cisco is one of the worst offenders here. To their credit, this is very much like the early days of HTML, where some people were extending it for their own purposes (and no, I never forgave Netscape for the blink tag)... but the world settled out to HTML 2.0 reasonably quick. The vendors are providing the features their customers are demanding, it's just that they have no standard to work with for those additional features.
Vendor lock-in has been the rule of the day in telecommunications for some time. The question a business needs to ask is whether they can live with the lock-in for a few years, regardless of whether it's using SIP... the standard will have to change in order to play well between vendors. If you're really interested in ensuring that SIP devices work together, make sure to ask your vendor if they participate in SIPit testing, and their results. This has recently included the base SIP as well as some of the drafts for additional features that may be added... so it helps to ensure the vendor is trying to play by the standards as they develop.
p2p IPTV should actually be helped by Verizon's FTTH solution, since the pricing isn't completely off base and you get quite an upload speed (5MB/s upload for $200/mo). Too bad I'm in one of Verizon's backwater communities... I might see fiber in 2010.
The stupid part is that even trivial encoding changes (zip) much less encryption (DES, AES, PKC) render this useless. The way around that is actually doing application layer filtering on data, and I with them luck with that. Besides encryption still getting around this in many cases, the CPU time required to do near-real-time layer 7 processing of ALL of the packets going through an ISP is obscene. (remember this type of filtering requires persistence of those packets for a period of time in order to reconstruct the resulting media, because the few bytes in a single IP frame probably isn't enough to know if it's media). Such investment would drive every ISP except Microsoft bankrupt.
What the MPAA is really pursuing right now is watermarking (mentioned later in the article). They have proposed altering each image that goes to different movie theaters or DVDs (especially previews that go to the MP Academy), etc. By watermarking the image against a master (of 'neutral' color, it is possible to determine which copy it came from even if it has been re-encoded.
The alteration is of certain items in the image. It is not on the magnitude of a least-significant bit (which different encoding schemes would then garble). What these watermarking systems do is change it by a number of bits, and do so in a recognizable fashion. In a scene, this might change brightness of the clouds, or the brown of the ground, etc. The net is that a distinct watermark can be created on the image. By altering different items in different films (and at different times), the net result is indistinguishable to the watcher; yet when the 'master' is known to the MPAA, the patterns can be distinguished to determine the source of a pirated copy of a movie or song (regardless of how it might have been re-encoded - unless it's at REALLY low quality)
This is a form of genetic algorithm (for selection) running on these virtual organisms. It's controlled for a number of reasons:
(1) The only language in which they can operate is what you might call a virtual machine language running on those systems (the Avida system) [it IS a custom language, even if you don't like the VM monikor]
(2) They can evolve, but their success is being tested against a known "fitness equation" (e.g. can it add two numbers). The "playing dead" was a result of him attempting to throw a pre-determined test at the organisms and constraining those that did too well. If they are out-right bad (trying to break out rather than add), they will not survive.
So in order to 'escape', they would have to:
(A) Develop both the known fitness function (addition) as well as the ability to hack out of the Avida (which requires a bug in Avida, something I wouldn't discount outright)
AND (B) hack Avida in such a way that either Avida continues to run in the background, giving the organism CPU cycles or completely evolve all of the code required to copy itself outside of the Avida system (and I would condider the chance of the developed bytes being both legal Avida instructions and legal processor/OS instructions very small)
Given that all we know about evolution shows that complex features evolved from simple features (something the Avida system itself helps to show) the chance of jumping from nothing to a full-fledged stand-alone program is very, very unlikely.
...the *AA will be attempting to tax every bit - regardless of content - in the argument that each one could be a transmission of media that is depriving thier coffers of some money.
Think of the potential heartburn for the CEOs and CFOs who might have to sign off the financial statements (ala Sarbanes-Oxley) after the calculations were done using one of these processors... :*)
I vote key-generation and not encryption. Otherwise, how would you decrypt it? (given that the key generation and decryption are non-deterministic with one of these...)
Let's do that.
In year 3, if you stop buying music, with iTunes, you've received 360 songs that are most likely top-20 overplayed fluff or songs for which you listened for 30 seconds and magically determined you liked the whole 4 minutes. With Napster, you could have listened to 120 / 5 * 30 * 24 = 17280 songs (listening 2 hours/day). The averaging sampling cost is therefore 2 cents per song. Even at a dismal 1% hit rate, you discover 172 new songs.
Long term value of Napster: Whatever discovering that new music was worth (minus the additional cost of actually buying the CDs :) )
This is not to say I will actually subscribe to Napster. I won't. I'm still miffed at Roxio for forcing a Microsoft tax (Required Windows 2K or better) to switch to Napster. They also misbilled me and it was pulling teeth to get my money back (had to cancel the CC and use the CC company to fight for me)
The point, however, is that value is a matter of persepective and doing a value analysis simply based on cost misses the point that value = benefit - cost - risk. So I could actually argue Napster is lower risk and higher benefit (from being able to sample) than iTunes; while iTunes has some better and longer benefits at similar cost (which shows it too has positive value).
No, but I'd be the first on my block to buy an Elm tree resistant to dutch elm disease or an American Chestnut tree resistant to blight.
I see where you're coming from, as there are reasons why locality helps (cache lines fetched in their entirety, bursts of memory from DRAM to caches, charging of different areas on a DRAM) but I disagree that there are not tradeoffs that can COMPETELY trade memory access for CPU time, regardless of the value of locality. In addition, locality becomes vitally important on Cell, where the additional processors primarily address their 256K of local memory. It will also become more and more important elsewhere as the penalty of going to main memory increases (and you can't achieve a 100% hit rate in an L1 cache).
Let me expand my original example to show you two (potentially extreme and thus stupid, but none-the-less illustrative) implementations: /. I will ignore everything else, even though this is not exhaustive (since without parenthesis, it is subject to a language's order of operations). [Note this is actually a 'real' example, in the sense that I was part of a project where were exhaustively testing a compiler for these simple assignments.]
Let's assume we want every assignment a = b _ c_ d _ e where each _ is either +, -, * or
One algorithm might calculate all possibilities of x _ y (there are 4) and then substitute b for x, c for y and d for x and e for y for each of the permutations (4 x 4 = 16 total permutations). The storage of each of the "sub equations" is done in memory, and while this fits in an L1 cache for this trivial example, with more operators and variables, it doesn't (especially if you go to 8 variables and are therefore caching permutations of w _ x _ y _ z)
Another algorithm will treat this like counting. let + = 00, - = 01, * = 10 and / = 11. Start at 000000 and increment up to 111111, at each number using the first pair of numbers for the sign between b and c, the second pair for c _ d, the third pair for d _ e.
If you expand these examples to a much larger example (do 8 variables instead of 4; N symbols + parenthesis instead of 4), you will quickly realize that storing all of the permutations by doing the precalculation (in the first example) not only blows out the memory, but also (just due to size and the need to merge the permutations) destroys any ability to do the calculation locally in memory. However, the second example, at the expense of recalculating the same thing (specifically, the patterns x + y, x - y, etc.) COMPLETELY eliminates any duplicate reference to memory (since there is one access to 'store the answer' and what this does use - the counter and the code - would all fit in an L1 cache), but this is done at the expense of run time (it will take MUCH longer to run... in the real example I cite above, it took about 100X the runtime, but about 1% of the memory, since we wrote the final results directly to disk in both cases). Yes, I realize there are middle cases that are probabily 'more ideal', but that requires one think about the target architecture, programming language, and lots of details not valuable here.
This - as pointed out in my first post - is certainly a trivial example. However, there are many other places where this type of tradeoff is valid. Geometric applications and work on graphs [graph theory] (which is where I spend my programming time now) can make a lot of effort to cache values to avoid lots of calls to sin, cos, and tan (geometry) or paths through the graph (graph theory). However, with a surfeit of computing power, should that be done, or should the memory footprint be minimized (to hopefully get better locality of reference)? Those tradeoffs are actively being made with what I am working on. After all, what's the value of code profiling tools if you don't use them :)
Check out the software and The paper. These were the basis for the Discover article the other respondent to you mentioned (in case you haven't been able to find it)
Today, I buy almost nothing. Three albums in 2004, I think. I happily listen to my iPod, but am currently in "upset at the industry and protesting with my dollars" mode.
I do have one note, however, regarding your post: "The difference between me and the "ideal" consumer (from an industry standpoint) is that I'm in total control". While some executives are afraid of those in control, that shouldn't be a problem for someone in marketing (speaking from someone who does it :) ). While it may terrify the strategic marketing team (whose job it is to create and sustain market control points), it is possible to completely cede control yet still be able to survive in the market. Look at gasoline and Mobil's speedpass. Blatently zero-value add product that is differentiated on convenience. What could be done with a system that could suggest songs along the lines of how Amazon.com suggests books [though their system is awful, IMHO, others like it].
The key to surviving without control points is doing what the insurance industry does well: predicting behavior. If they can predict the chance of something, they can insure it. So the real root-cause problem for the market intelligence (or perhaps more appropriately the consumer behavior) team in a record company (as opposed to the artificial problem an executive creates) isn't that you are exploring outside the "top 20", but that they have not expended any effort AT ALL to understand the non-Wal-Mart, non-top 20 behavior. Thus, this ignorance breeds fear, and they are absolutely terrified of how to deal with such a world.
However, if you drop the fear, think of what they could do: Partnerships with cell or on-line providers to let me single-time sample music by streaming it to a cell phone or one-shots on my iPod and let me push a button to say I like it. Avoid ever sending me the same song twice to do that song management for me (that I did on 3x5 cards). Mix "suggestions" with random titles (hijacking methods from LaunchCast) to help focus the music, if I want that. Log those I like, then when I strike more than one on an album, email me that album name and offer it at a $1 discount through Amazon.com (or please queue them up to send only 1 email a week... really, honest, I don't want this to be spammish). If I get single songs that don't get onto an album, let me know that too periodically, and given me 10c off at iTunes. There is SO much the music industry could learn from the grocery industry as far as using IT and cross promotion. Someone should steal Wegmans' CIO - they could make a mint with the ideas he could churn out to leverage the value of IT.
(1) fetching and prefetching (multiple P4 stages) because the extra processors on Cell can directly address their local 256KB of memory.
(2) decoding x86 instructions into microops - since the extra processors are running code directly rather than running kludgy x86 code on a non-x86 microcore
(3) branch prediction (since the load penalty is a lot lower due to local 256KB of memory and shallower pipeline, these stages are unnecessary)
(4) scheduling the microops isn't necessary as Cell will require that to be done in software during compilation (ala VLIW)
(5) retirement (since Cell isn't doing out-of-order execution, no reordering and retranslation from the microop to the x86 world is necessary)
So given that potentially half of the 20 P4 stages (later P4s have 31) are unnecessary, that saves a lot of logic and allows the same clock speed with less stages. There has (apparently) been a lot of architecture work here to think through what adds the extra hardware and how to avoid that... the result is the ability to use higher clock speeds without having the same types of penalties the IA-32 processors encounter.
Substantial changes, maybe. Expensive? Perhaps not. This all depends on the base assumptions from which you operate. One of the fundamental assumptions in today's existing systems is that any and all work should be done to maximize the utilization of the CPU. However, when considering how to design other types of systems, such may not be true (it may make sense to minimize the memory footprint, for example).
If you've ever done some detailed algorithm work, you will quickly realize that there are many algorithms where you can make tradeoffs between memory and CPU time. The 'simplist' of these are the algorithms that are breadth first vs. depth first, which can trade off exponential in memory vs. exponential in time. [For a 'trivial' example, try forming the list of all operational assignments containing 6 variables and which use %, +, -, *, /, ^, &, ~, and ()... less than 50 lines of perl and you'll quickly blow through the 32-bit memory limit if written depth first, or take overnight to run breadth first]
The significant question which has been brought up - and which remains unanswered - is what software development tools will be made available. Once this is better answered, we will all be in a better position to determine what fundamental assumptions have been changed, and therefore how we can follow the new assumptions through to conclusions about the net performance of the processor and machine in which it is contained.
It's interesting to note that while many things are stated by computer scientsts as evil, they are also practical. There are reasons why these languages are 'efficient' in a business sense: Linux is a widely used and widely known free *nix kernel. C++ leverages the existing C knowledge base; Perl is wonderful when you're trying to analyze ad-hoc log files. Personally, I haven't learned Python or Ruby, because the amount of time I spend hacking perl (maybe 10-15 hours a year) isn't enough to ever justify learning a programming language to replace it. [note I'm not a programmer; thus don't rely on programming knowledge to hold a job; thus my self-education time is better spent elsewhere; otherwise this might be a useful broadening of my horizons]
What you have to realize is that something won't be (rapidly) adopted unless it is significantly better than a previous product (or has a near-zero learning curve). For example, one of the members of the IEEE that sits on some of the Ethernet standards committees mentioned to me that one of the reasons Ethernet jumps by magnitudes of 10X is to ensure the next generation provides significant benefit over the previous one (of course, there are other reasons, too).
The point is, you can find a significant number of languages in use, but few that have been displaced. Those that were widely adopted (Fortran, Cobol, C, Perl, Java) all have specialties (scientific, business, fast/portable, efficient scripting, the web) that significantly differentiate them from previous languages. The dynamics of Python and Ruby is actually an interesting case study of where Perl is being very slowly knocked out of some of its domains by a similar, less "ugly" language (or such is my perception [both Perl being knocked out and the others being less 'ugly']). However, that transition is, I would argue, a bit glacial.
Also, to say that computer science (and studying algorithms) has very little effect is not all that accurate. Developments in rendering 2D and 3D systems, graph theory, and countless other areas are the result of those individuals. Even my understanding of how to organize code to ensure my OO code is a directed acyclic graph is a result of those "CS" folks and having that knowledge filter down. It doesn't necessarily affect the languages, but it changes how we use them. More recently, we have seen discussion of aspects, though (personally) I still haven't figured those out [I actually think it's because I work in problem domains where aspects are not efficient].
In addition, continually pointing out the weaknesses of the existing systems helps those that will design the next set of systems avoid the same mistakes. Even though that advocate may appear to be in an 'ivory tower' and ignoring what is going on in the 'real world', if a few architects listen and learn (and apply to the next generation of systems), then the computer scientist has served a purpose.
One other note. In respect to: "It seems to me that computer scientists need to get out and ask people who work in IT what they actually expect from their kernels, languages, and development systems.", try it sometime. Many times, people have NO IDEA what they are looking for. That's the whole basis of prototyping - to get something in front of the person and get feedback. Many other times, you will get completely contradictory answers. Detailed-oriented people will want a revision control system, code tags, and everything javadoc'ed. Others will be hacking out code that hopefully self-documents, but only has a comment to identify the license and copyright of the code. The challenge when dealing with people is that you have wildly different learning mechanisms, personality types (e.g. Myers-Briggs), brain operation (e.g. Hermann), and Communication Styles (e.g. DiSC). These differences lead to d
Recording with a VCR is offsetting in time something which you have otherwise legally acquired (the cable company or TV station is a licensed distribtor of the content). Directly from Sony/Betamax: "Any individual may reproduce a copyrighted work for a 'fair use'; the copyright owner does not possess the exclusive right to such a use"... and later "there is no likelihood that time-shifting would cause nonminimal harm to the potential market for, or the value of, respondents' copyrighted works"
Downloading from a P2P network is a copy from another person who is NOT legally distributing the work. It is not fair use, because it involves sharing a full copyrighted work between individuals (some P2P architectures not withstanding) and also may cause nonminimal hard to the potential market for a work (because of the 'free' acquisition, you wouldn't buy a DVD or watch TV and 'pay' via watching advertisements or paying the cable company.)
But does "instilling fear" wash with: "Excessive bail shall not be required, nor excessive fines imposed, nor cruel and unusual punishments inflicted."... the 8th amendment to the Constitution?
First, let's assume the mass at 0,0 can be passed through without slowing us down. In that case, if we start at 0,-10 rather than 1,-10, we have no lateral (delta x) movement at all, the velocity at 0,-10 is equal to the velocity at 0,10 (becuase the moving object would accelerate from 0,-10 to 0,0 and decelerate from 0,0 to 0,10 by the exact same amount). This is exactly the case that you are referring to in your post.
Second, let's look at an object that is stationary at 4,0. Gravity would pull that object toward 0,0, even if both objects were initially motionless. Remember, position = x0 + v0 * t + (a * t^2) / 2 ... This is a situation where we are converting potential energy (distance from a large mass - meaning using gravity) to kinetic energy (motion). This change from potential to kinetic is how we avoid violating conservation of energy. The moving mass also (slightly) pulls the larger mass at 0,0 closer, so they might strike at 0.01,0 ... this is how conservation of momentum is maintained (because momentum is mass * velocity and velocity is a directional vector, while speed is an absolute value of the length of the vector... thus, with the vectors in perfectly opposite directions, the net momentum is always 0 [with both at rest at the beginning of the exercise]).
So provided that the velocity is high enough that the velocity in Y is >> than the acquired velocity in X from the second case, we are OK. In fact, the velocity in Y at the closest point of approach should be at least the escape velocity of the mass. In that case, the velocity is high enough that the entry angle and the exit angle of the moving object should vary by less than PI/2 radians (you will note this is true in the case of the path of Cassini linked to from my other post). In this case, the direction of the object was changed, but it still has enough velocity to escape the gravity from the mass at 0,0. The net velocity is also faster than when it went past the large object, because it converted potential energy into kinetic energy.
However, if the velocity in Y is too slow, then one of two things will happen. If velocity is too low, the object will do some small arc around the mass until it actually strikes it (this now assumes the mass has some volume). If the velocity is slightly faster, such that it is not low enough to strike the object, but not fast enough to escape from the object, then the moving object has functionally undergone what would be called orbital insertion. The velocity threshold here (between striking and not striking the mass) is called the orbital velocity. Thus, the moving object would permanently be a satellite of the mass at 0,0 (though the orbit may be irregular for some time). For some more on thse velocity thresholds, visit How satellites work
Not required.
- Assume you are at the point 1,-10 and moving at 1 unit of distance per unit of time toward 1,+infinity (directly 'up' in cartesian coordinates)
- Assume a large point mass is located at 0,0
Skipping a lot of mathematics to show how much the object is accelerated, you can observe that when the moving object passes from 1,-10 toward 1,0; it will be slightly pulled toward the mass (to perhaps 0.99,0). As it continues along, the net force by the object at 0,0 pulls the moving object roughly toward -infinity,0.
However, since this is space, and a vacuum, there is nothing to slow the velocity the object already has (yet the large mass IS accelerating the moving object).
Therefore, the object now has a velocity equal to 1 unit of distance toward 0,+infinity PLUS some (smaller) velocity toward -infinity,0. NO change in either mass is required.
No
Or does it just mean the stars mass is greater than it was before..?
Yes, but only very slightly... since it's traveling at about 1/500th the speed of light, it did gain some mass, but very, very little relative to its original mass
If its neither of these, why has the star suddenly broken away from the galaxy
It all has to do with the angle and distance at which the star approached the black hole.
If it passes by a long distance away or at a slow speed (I don't know the equation to show you the threshold of speed/distance/mass), the chance is that it will enter some form of orbit, if irregular.
If it is nearly tangent to the object (but doesn't strike it), and it is already moving at a high enough velocity, then it will use the black hole as a slingshot and will gain velocity. You can check out the Cassini satellite's mission trajectory to see how it used Venus and Earth to gain velocity (relative to the sun)
System received/purchased & failure: :)
1984-ish: No failures to date
1992: HDD [controller board?] failure in 1995, replaced, retired in 1999
1994: Monitor on/off switch wore out (physical failure) & repaired, 2001; still in service
1996: No failures to retirement, 2001
1998: Laptop: multiple screw failure: Bottom fell out (literally), 2001
2000: Added internal HDD died after 6 months [2003], replaced & still in service
2001: No failures to retirement, 2005
2004: HDD [media failure] 1 week into use (in service with replaced HDD)
2005: Thankfully still OK
"otherwise"? How about getting an MBA so you can actually communicate with management in their language? This allows you to work with them to drive the projects which are "right" for the business but don't necessarily fit into the small window of the world provided by an accountant!
On that theme, I'd declare that "getting an MBA in an attempt to get into management" an equally dumb decision. You should never consider an MBA an immediate path to management nor should you consider the skills acquired there only applicable to a manager.
Ditto. And correllate to some other factors as well. A Linux has a huge potential installed base, because it is a general-use application. But what about something like PCGen, which is very focused, yet still has a pretty large development group (from what I can tell). Then projects with only a few maintainers. There is also the dynamic of rewriting an existing application to a new language that may alter results (like jarsync).
Do turnover rates vary between these types of projects? What about potential for actually releasing code? (since so many projects on SourceForge don't have any code at all) What about forking? What about documentation? What about the ability to transition to a new lead maintainer? There is an entire dymanic of management systems here which is different from anything for which we have a lot of data.
I truly hope this inspires someone to do some in-depth research on this. I should write some of my former business professors and see what they think :)
Given that his e-mail address ends in ".de", I'd say Apple is pretty much up the famous creek without the even more famous paddle. It's a little hard to enforce US law over there, although I can't say we don't try occasionally (which is, IMHO, dumb).
A clarification because my first post is poorly articulated: SIP will always interoperate at the base level of function between two different companies' systems, it's advanced features like call waiting or conferencing or other "fun" things that don't necessarily work if you have a Cisco switch and a Siemens phone. To this end, the comment about Cisco being an offender has to do with the number of additional features they have (not bad for features, just must difficult for ensuring they may someday be available and interoperate with others' equipment)
And every single large vendor I've seen short Avaya is performing an embrace-and-extend on SIP in order to properly match the features you can have today in your traditional PBX. Cisco is one of the worst offenders here. To their credit, this is very much like the early days of HTML, where some people were extending it for their own purposes (and no, I never forgave Netscape for the blink tag)... but the world settled out to HTML 2.0 reasonably quick. The vendors are providing the features their customers are demanding, it's just that they have no standard to work with for those additional features.
Vendor lock-in has been the rule of the day in telecommunications for some time. The question a business needs to ask is whether they can live with the lock-in for a few years, regardless of whether it's using SIP... the standard will have to change in order to play well between vendors. If you're really interested in ensuring that SIP devices work together, make sure to ask your vendor if they participate in SIPit testing, and their results. This has recently included the base SIP as well as some of the drafts for additional features that may be added... so it helps to ensure the vendor is trying to play by the standards as they develop.