I'm not 100% clear on how dynamic virtualisation is done with VMWare/Bochs and others but could someone working on Bochs trap the GetCPUID instruction and have it return an "Intel" code on an actual AMD CPU. If this worked, it would certainly be proof that this is marketting driven rubbish (even though I doubt most of us here would believe a celeron isn't capable of 10 way audio mixing).
Would this be possible to do without having to code up other P4-specific instructions?
It would make for an 'easy' proof if thats the case.
And everyone wants to be a "worker" as opposed to "boss" (at least in some countries).
I don't think that is necessarily true here. There seems to be a general trend in IT jobs to get by doing the least possible. On top of the normal 'anti-management' sentiment, Australia is renowned for its strong 'tall-poppy syndrome' (cutting down people who stand above the crowd). This doesn't stop people wanting to move into middle-management, it just means that when they get there they do as little as everyone else at their level.
Be original, come up with some novel software idea (that creates a niche of it own rather than enter the fray of existing IT dev. areas), borrow money, cash-in on the cheap foreign labour, be rich.
I've tried two such ventures - Penetration testing and more recently online automated backup software. Both required way too much educating of the market which ultimately made them non-viable.
(who, as legend has it - goes diving/surfing/drinking beer with his co-workers after 5)
Honestly, the IT industry in this country is a mess. There was a deluge of new Uni students a few years back and now it seems everyone has an IT/CompSci degree but 70% of these graduates are quite frankly rubbish.
The 'bad' graduates started degrees during the last bubble only because "it was where the money was" now have jobs in established companies. These 'bad' are more often than not propped up by the 'good' due to poor human resources. (In this country we have a history of disregarding 'boffins' so often technical staff end up progressing to management without any formal training - this is slowly changing but is still an entrenched culture.) Anyway, all the big multinational outsourcing companies (CSC, EDS,...) are full of dead-weight and renowned for running over budget which is probably a larger contributor to lower wages than "Cheap International Labor."
Given the number of graduates available, theres no reason to pay $60k for a good programmer when you can hire two Uni graduates that are top of their class for $30. While we have this surplus, I don't see the market getting much better.
A year 10 drop-out here can go on and become an electrician to earn $70k in 3 years. Thats by the time a Computer Science student is in first year University and owes money.
I've loved computers since a kid and have been programming since I was a child but I am now contemplating a major career move purely on financial grounds.
The 'ignition' problem exists in regular cars as well. My guess is that they would use a small amount of stored hydrogen to kick start the process. The 'waste' from the engine is coincidentally super-heated water which could then be used to keep the cycle running.
Given the laws of energy conservation, wouldn't it be safe to assume that the net heat produced remains essentially the same?
If we pumped all the power into making surplus supplies of fuels like hydrogen, we might take some net heat away from the environment but we're only going to burn them anyway and release the heat back.
Here is a simple python program that implements the 'guts' of this paper. It's not rocket science...
A 'real' implementation would involve some additional P2P networking code, block management, and the matrix operations would be over a GF(2^n) rather than the linear matrix I've used...
I really wish Dvorak would stop writing. He's lowering the global IQ.:)
Depending on the period in history, my choices would have to vary.
Before computers were all the rage (child of the 70's) I used to want to be an architect/civil engineer as it involved design and factoring in a compromise between a bunch of disparate systems (electricity, structural integrity, water, waste water, heating, sun/wind exposure, fire resistance, etc).
If I had to jump in the wayback machine, I'd probably take up alchemy or something that involved creating/designing new materials. Anyway, no matter the era there's bound to be jobs that would fulfil geek factor.
Remember though that if lived way back there, very few of us would have the opportunity to learn to read let alone to pursue a career.
However, it is hard for me to see how this could possibly work. Peers could only generate "new blocks" if they have the complete file (or enough blocks to reconstruct it). A partial file would be useless, so only seeds would be able to do this.
The way it basically works is as follows:
Say you have a 3 byte file containing values 10, 20,30. This system will select sets of 3 random values and calculate one of the following (note that in reality there would be a LOT more potential blocks):
It will not send the values, instead it will send the coefficients/answers such as (0,1,0,20), (1,1,1,60), and (0,0,1,30).
Now its fairly obvious from (0,1,0,20) that the second value in the file must be 20. Likewise (0,0,1,30) implies the third value in the file is 30. The first value can be derived by adding/subtracting other equations as follows:
(1,1,1,60)-
(0,1,0,20)-
(0,0,1,30)=
(1,0,0,10)
So the way a node constructs other 'blocks' without getting the whole file is just to randomly add/subtract the blocks the node has and retransmit those merged blocks.
In actuality, blocks are much larger than 3 bytes and the coefficients and results are 1 bit long so the overhead for using this method over sending blocks verbatim is n bits where n is the size of the block used.
They then have to undo the linear equations which is an O(nblocks^2) operation.... If you have a 4GB file (say) broken up into 4,000 1MB blocks, you'll need to do 16,000,000 x 1 MB operations, ie 16,000,000,000,000 bytes of operations which takes a while even at L1 cache speed! If you haven't got 4GB of ram, thats going to cause an awful lot of disk IO
Yeah. I actually implemented the basics of it earlier this week (just the linear encoding over a field mod 2).
Forget about the matrix multiply of an n x n matrix by an n-vector, the most significant cost by far in my implementation was the matrix inversion.
Don't suppose you know of any fast algorithms for inverting a matrix of elements in GF(2^n)??
I understand your idea - and its a valid one - but you don't seem to understand the fundamental idea of this protocol though.
What you are suggesting is source-coding - the seeder generates the parity data. This protocol uses *network-coding* where each node on the network is able to generate new blocks by combining blocks that it has received so far.
This is where the true power of the system is. You could conceivable receive a file and receive NONE of the blocks that the original seeder propagated since each peer in the network is continually generating new blocks by combining its current set of received blocks.
I don't know if its BS. I actually read this paper last week as network coding is an area related to my field of study and it seems pretty legitimate.
The paper actually claims much larger increases compared to uncoded transfers in cases such as networks made predominately of slow nodes with infrequent well-connected nodes.
The technique is actually pretty neat. They form a set of linear equations of the form:
ax_5 + bx_4 + cx_3 + dx_2 + ex_1 = g
where a,b,c,d,e,f are chosen randomly and x_n represents the data to transmit. They then send the coefficients and result a,b,c,d,e,f,g to other nodes.
With a block size of n, you typically need n sets of such coefficients (assuming they're linearly independent) to recover the original data.
This basically makes the rarest block problems of bittorrent irrelevant assuming the server has seeded a little more than n data blocks.
Not at all. You've put me in entirely the wrong box. I will happily post answers where I can regardless of the posters level of proficiency. I just wish sometimes the questions were of higher callibre. I would rather post answers to difficult questions (eg. 'My kernel Oops-ed and crashed in FuncName+0x30/0x130, what does that mean?') than answer hundreds of 'how do I install apache and php?' questions.
IMHO, there should be a 'distro/proficiency gradient' of sorts.
New users should find it easier to install and get support for RedHat/Mandrake/Suse, move from their on to Debian/Slackware when they know a bit more about how the system works, move to Gentoo when they know what a compiler is, have used automake, understand basic dependencies, etc. Maybe move to LFS if they're feeling brave after that.
Its not fair to burden a technical mailing list with 'How do I X?' questions. Imagine if people thought it acceptable to ask Linus/Andrew "how do I install openssh?" on the lkml? It would make the list useless and they would have to start another list without the naive posts (akin to spam) getting in the way of productivity - what a waste of time/energy! Luckily, that doesn't happen with the lkml but it does happen with distro's.
I don't think people should be discouraged from using gentoo, I just think Gentoo is the wrong sort of distro to encourage people that are scared of a command line too.
I for one like being able to go to forums.gentoo.org and find reasonably intelligent posts from people capable of following an execution path through a set of scripts.
As soon as a distro becomes mainstream like Redhat did so long ago, all of the would-be nerds jump on board and the community gets swamped trying to hold the weight of their incompetencies as they ask a million questions that could be answered with 'RTFM' or about 5 minutes investigation.
The only way to save gentoo from the same fate as RH/Suse is to stop making it easier to use!
If gentoo goes this path, I might have to start using BSD on my desktop.
I can't stress enough how much fun can be had with microcontrollers!
Microcontrollers are an excellent bridge between code and hardware - you can code in C but your I/O is actually CMOS digital I/O which can then be plugged up to whatever digital devices or auxiliary chips you want.
The best subject of my undergraduate degree involved writing a pre-emptive task scheduler simultaneously running LCD interfacing code, kermit file transfer protocol, an LED chaser program selecting patterns based on input pins, and a USB client chip.
After that subject, a friend and I fuel injected a moke using an ATMEL microcontroller as the ECU - loads of fun.
I recommend the Maxim range of microcontrollers for simplicity - they have an inbuilt eeprom for code, run most instructions in 1 clock cycle, and can be directly programmed by sending HEX files over a PC serial port through their own in-built boot ROM (complete with menus and debugging support).
Remember when macrovision changed the hsync/vsync patterns of the video signals to stop VCR's copying tapes?
Remember Apple IIe games that wrote bad sectors or extra sectors and other such nasties to try and stop people copying 5-1/4 inch floppies?
Remember SecureROM and others making CD copy protection by intentionally leaving broken sectors on CDs - making them unburnable in nearly all of the burners at that time?
Remember that DVD's were once uncopyable?
Remember when Pay TV signals were encrypted by obfuscating their signal with some analogue hardware?
Remember when they started using proprietary digital encryption for Pay TV (Irdeto)?
Every time someone offers up content in some protected form, someone is going to break it. Period. Even if they can't break it, someone will use a legitimate DVD player and screen/sound grab their favorite movies using a capture card.
The only difference I see now is that the companies implementing these measures are monopolies whereas they used to smaller players in their respective markets. This might mean that they can push some legislation through to discourage copying but nothing will ever stop it IMHO.
I run MythTV on a PC with two cheap tuner cards in it - one analogue, one digital (DVB-T). The analogue one uses the standard tuner/bt878 chipset combo. I'm not sure about the DVB one.
The PCI bus seems to have major effects on reception for the analogue card. Any activity on the bus causes noise in the image. I had much success in improving the quality of the picture by changing PCI latency and clockspeed settings in my BIOS.
Also, disk activity (it seems seeking predominately) causes major reception artifacts.
In the end, I gave up on analogue transmissions and just use the DVB card since, in Australia, all free to air stations also broadcast in digital.
You might be right about the electricity. I'm not sure if sharks detect the voltage or the electromagnetic field. EMF is going to leak out of any mechanical shark that uses batteries. Electricity is only going to leak out if something is wrong.:)
Modern theory is that if you're blind since birth, the visual part of your brain simply doesn't develop (with no stimulus, nerves die off). Therefore, this might give hope to those who had an accident and lost their vision but for it to help someone blind at birth, I guess they would have to get the surgery done just after they were born (and their blindness had better be caused by their eyes and not something else beyond the optic nerve).
AFAIK sharks (like sting rays) are extremely sensitive to electric fields. They are so sensitive in fact that there were some shark repellant devices a few years back that basically just periodically zapped the water at a voltage level that wasn't noticed by people but scared off sharks.
How then, can this mechanical device with electronic cameras in it fool a shark into acting naturally when its giving off a strange electric field signature?
There still seems to be a trend to XML-ize everything that I just don't understand.
If I was to build a cheap DSL modem, switch, IP camera or wireless gateway, I would probably be working with an 8/16 bit processor and limited memory to save money. In such a case, I would want to minimize my code and memory footprint and my CPU requirements.
Now lets look at XML. It is a bloated, complex, textual way of representing information. It requires some sort of a parser to read requests and storage of strings rather than individual bytes for response codes.
This sort of 'advancement' might be good for hardware developers peddling their latest wares with more RAM, flash and CPU grunt than their last release but from a technical and consumer point, I don't see there being huge advantages.
WEP is a LOT more secure than people imagine these days. Most AP's and clients refuse to use weak IV's making the statistical attack used by Airsnort and other apps effectively useless.
Theres a very small minority of people still using weak 64-bit ASCII key generator algorithms that were found to be only 21-bits of effective keyspace. These can be cracked offline in about 15 seconds with a single encrypted frame but other than that, offline cracking of WEP is still a hard thing to do (from a practical point of view).
Are people forgetting that Internet Connection Firewall on WinXP will happily ignore traffic to all those 'bad' ports that worms use? (RPC, SMB, etc..)
Seems fairly straight-forward to me. Turn it on before you connect to the Internet...
Why did this make it to slashdot and furthermore, why hasn't anyone else suggested this?
RTFM! Sorry to be a troll but in this case you really showed that you had no initiative to check available resources first. Here is a starting point and yes, RAID-1 would be a good start since I doubt you are going to want to spend the money on a large RAID-5 array.
Would this be possible to do without having to code up other P4-specific instructions?
It would make for an 'easy' proof if thats the case.
I don't think that is necessarily true here. There seems to be a general trend in IT jobs to get by doing the least possible. On top of the normal 'anti-management' sentiment, Australia is renowned for its strong 'tall-poppy syndrome' (cutting down people who stand above the crowd). This doesn't stop people wanting to move into middle-management, it just means that when they get there they do as little as everyone else at their level.
Be original, come up with some novel software idea (that creates a niche of it own rather than enter the fray of existing IT dev. areas), borrow money, cash-in on the cheap foreign labour, be rich.
I've tried two such ventures - Penetration testing and more recently online automated backup software. Both required way too much educating of the market which ultimately made them non-viable.
(who, as legend has it - goes diving/surfing/drinking beer with his co-workers after 5)
Legend sounds pretty accurate. :)
The 'bad' graduates started degrees during the last bubble only because "it was where the money was" now have jobs in established companies. These 'bad' are more often than not propped up by the 'good' due to poor human resources. (In this country we have a history of disregarding 'boffins' so often technical staff end up progressing to management without any formal training - this is slowly changing but is still an entrenched culture.) Anyway, all the big multinational outsourcing companies (CSC, EDS, ...) are full of dead-weight and renowned for running over budget which is probably a larger contributor to lower wages than "Cheap International Labor."
Given the number of graduates available, theres no reason to pay $60k for a good programmer when you can hire two Uni graduates that are top of their class for $30. While we have this surplus, I don't see the market getting much better.
A year 10 drop-out here can go on and become an electrician to earn $70k in 3 years. Thats by the time a Computer Science student is in first year University and owes money.
I've loved computers since a kid and have been programming since I was a child but I am now contemplating a major career move purely on financial grounds.
Even better - I want to see a working (or disproven) tempest device! Theres a bit of a challenging myth!
The 'ignition' problem exists in regular cars as well. My guess is that they would use a small amount of stored hydrogen to kick start the process. The 'waste' from the engine is coincidentally super-heated water which could then be used to keep the cycle running.
If we pumped all the power into making surplus supplies of fuels like hydrogen, we might take some net heat away from the environment but we're only going to burn them anyway and release the heat back.
It's a closed system. Its a great idea!
A 'real' implementation would involve some additional P2P networking code, block management, and the matrix operations would be over a GF(2^n) rather than the linear matrix I've used...
I really wish Dvorak would stop writing. He's lowering the global IQ. :)
Depending on the period in history, my choices would have to vary.
Before computers were all the rage (child of the 70's) I used to want to be an architect/civil engineer as it involved design and factoring in a compromise between a bunch of disparate systems (electricity, structural integrity, water, waste water, heating, sun/wind exposure, fire resistance, etc).
If I had to jump in the wayback machine, I'd probably take up alchemy or something that involved creating/designing new materials. Anyway, no matter the era there's bound to be jobs that would fulfil geek factor.
Remember though that if lived way back there, very few of us would have the opportunity to learn to read let alone to pursue a career.
The way it basically works is as follows:
Say you have a 3 byte file containing values 10, 20,30.
This system will select sets of 3 random values and calculate one of the following (note that in reality there would be a LOT more potential blocks):
10x0 + 20x0 + 30x0 = 0
10x1 + 20x0 + 30x0 = 10
10x0 + 20x1 + 30x0 = 20
10x1 + 20x1 + 30x0 = 30
10x0 + 20x0 + 30x1 = 30
10x1 + 20x0 + 30x1 = 40
10x0 + 20x1 + 30x1 = 50
10x1 + 20x1 + 30x1 = 60
It will not send the values, instead it will send the coefficients/answers such as (0,1,0,20), (1,1,1,60), and (0,0,1,30).
Now its fairly obvious from (0,1,0,20) that the second value in the file must be 20. Likewise (0,0,1,30) implies the third value in the file is 30. The first value can be derived by adding/subtracting other equations as follows:
(1,1,1,60)-
(0,1,0,20)-
(0,0,1,30)=
(1,0,0,10)
So the way a node constructs other 'blocks' without getting the whole file is just to randomly add/subtract the blocks the node has and retransmit those merged blocks.
In actuality, blocks are much larger than 3 bytes and the coefficients and results are 1 bit long so the overhead for using this method over sending blocks verbatim is n bits where n is the size of the block used.
Yeah. I actually implemented the basics of it earlier this week (just the linear encoding over a field mod 2).
Forget about the matrix multiply of an n x n matrix by an n-vector, the most significant cost by far in my implementation was the matrix inversion.
Don't suppose you know of any fast algorithms for inverting a matrix of elements in GF(2^n)??
What you are suggesting is source-coding - the seeder generates the parity data. This protocol uses *network-coding* where each node on the network is able to generate new blocks by combining blocks that it has received so far.
This is where the true power of the system is. You could conceivable receive a file and receive NONE of the blocks that the original seeder propagated since each peer in the network is continually generating new blocks by combining its current set of received blocks.
No it wouldn't. It wouldn't be impossible but its a fundamentally different way of sending data.
They don't send the data blocks, they send a set of n equations with n unknowns - like you used to solve in high-school.
The idea is that any n equations will do, you don't need any particular equation specifically to work out the unknown values.
I don't know if its BS. I actually read this paper last week as network coding is an area related to my field of study and it seems pretty legitimate. The paper actually claims much larger increases compared to uncoded transfers in cases such as networks made predominately of slow nodes with infrequent well-connected nodes.
The technique is actually pretty neat. They form a set of linear equations of the form:
ax_5 + bx_4 + cx_3 + dx_2 + ex_1 = g
where a,b,c,d,e,f are chosen randomly and x_n represents the data to transmit. They then send the coefficients and result a,b,c,d,e,f,g to other nodes.
With a block size of n, you typically need n sets of such coefficients (assuming they're linearly independent) to recover the original data.
This basically makes the rarest block problems of bittorrent irrelevant assuming the server has seeded a little more than n data blocks.
IMHO, there should be a 'distro/proficiency gradient' of sorts.
New users should find it easier to install and get support for RedHat/Mandrake/Suse, move from their on to Debian/Slackware when they know a bit more about how the system works, move to Gentoo when they know what a compiler is, have used automake, understand basic dependencies, etc. Maybe move to LFS if they're feeling brave after that.
Its not fair to burden a technical mailing list with 'How do I X?' questions. Imagine if people thought it acceptable to ask Linus/Andrew "how do I install openssh?" on the lkml? It would make the list useless and they would have to start another list without the naive posts (akin to spam) getting in the way of productivity - what a waste of time/energy! Luckily, that doesn't happen with the lkml but it does happen with distro's.
I don't think people should be discouraged from using gentoo, I just think Gentoo is the wrong sort of distro to encourage people that are scared of a command line too.
As soon as a distro becomes mainstream like Redhat did so long ago, all of the would-be nerds jump on board and the community gets swamped trying to hold the weight of their incompetencies as they ask a million questions that could be answered with 'RTFM' or about 5 minutes investigation.
The only way to save gentoo from the same fate as RH/Suse is to stop making it easier to use!
If gentoo goes this path, I might have to start using BSD on my desktop.
Microcontrollers are an excellent bridge between code and hardware - you can code in C but your I/O is actually CMOS digital I/O which can then be plugged up to whatever digital devices or auxiliary chips you want.
The best subject of my undergraduate degree involved writing a pre-emptive task scheduler simultaneously running LCD interfacing code, kermit file transfer protocol, an LED chaser program selecting patterns based on input pins, and a USB client chip.
After that subject, a friend and I fuel injected a moke using an ATMEL microcontroller as the ECU - loads of fun.
I recommend the Maxim range of microcontrollers for simplicity - they have an inbuilt eeprom for code, run most instructions in 1 clock cycle, and can be directly programmed by sending HEX files over a PC serial port through their own in-built boot ROM (complete with menus and debugging support).
Remember Apple IIe games that wrote bad sectors or extra sectors and other such nasties to try and stop people copying 5-1/4 inch floppies?
Remember SecureROM and others making CD copy protection by intentionally leaving broken sectors on CDs - making them unburnable in nearly all of the burners at that time?
Remember that DVD's were once uncopyable?
Remember when Pay TV signals were encrypted by obfuscating their signal with some analogue hardware?
Remember when they started using proprietary digital encryption for Pay TV (Irdeto)?
Every time someone offers up content in some protected form, someone is going to break it. Period. Even if they can't break it, someone will use a legitimate DVD player and screen/sound grab their favorite movies using a capture card.
The only difference I see now is that the companies implementing these measures are monopolies whereas they used to smaller players in their respective markets. This might mean that they can push some legislation through to discourage copying but nothing will ever stop it IMHO.
The PCI bus seems to have major effects on reception for the analogue card. Any activity on the bus causes noise in the image. I had much success in improving the quality of the picture by changing PCI latency and clockspeed settings in my BIOS.
Also, disk activity (it seems seeking predominately) causes major reception artifacts.
In the end, I gave up on analogue transmissions and just use the DVB card since, in Australia, all free to air stations also broadcast in digital.
You might be right about the electricity. I'm not sure if sharks detect the voltage or the electromagnetic field. EMF is going to leak out of any mechanical shark that uses batteries. Electricity is only going to leak out if something is wrong. :)
Modern theory is that if you're blind since birth, the visual part of your brain simply doesn't develop (with no stimulus, nerves die off). Therefore, this might give hope to those who had an accident and lost their vision but for it to help someone blind at birth, I guess they would have to get the surgery done just after they were born (and their blindness had better be caused by their eyes and not something else beyond the optic nerve).
AFAIK sharks (like sting rays) are extremely sensitive to electric fields. They are so sensitive in fact that there were some shark repellant devices a few years back that basically just periodically zapped the water at a voltage level that wasn't noticed by people but scared off sharks. How then, can this mechanical device with electronic cameras in it fool a shark into acting naturally when its giving off a strange electric field signature?
If I was to build a cheap DSL modem, switch, IP camera or wireless gateway, I would probably be working with an 8/16 bit processor and limited memory to save money. In such a case, I would want to minimize my code and memory footprint and my CPU requirements.
Now lets look at XML. It is a bloated, complex, textual way of representing information. It requires some sort of a parser to read requests and storage of strings rather than individual bytes for response codes.
This sort of 'advancement' might be good for hardware developers peddling their latest wares with more RAM, flash and CPU grunt than their last release but from a technical and consumer point, I don't see there being huge advantages.
WEP is a LOT more secure than people imagine these days. Most AP's and clients refuse to use weak IV's making the statistical attack used by Airsnort and other apps effectively useless.
Theres a very small minority of people still using weak 64-bit ASCII key generator algorithms that were found to be only 21-bits of effective keyspace. These can be cracked offline in about 15 seconds with a single encrypted frame but other than that, offline cracking of WEP is still a hard thing to do (from a practical point of view).
Seems fairly straight-forward to me. Turn it on before you connect to the Internet...
Why did this make it to slashdot and furthermore, why hasn't anyone else suggested this?
RTFM! Sorry to be a troll but in this case you really showed that you had no initiative to check available resources first. Here is a starting point and yes, RAID-1 would be a good start since I doubt you are going to want to spend the money on a large RAID-5 array.