Parallel port - Eats his parallel port, and needs lots of wires to be run.
AVR - More complex to design, but easier overall.
I don't see why you reccommended an oscilliscope - For most uC development one isn't needed. (Can be nice to have though!)
Parallel-port AVR programs are simple and easy to build. Atmel did a good job as far as AVR programmability. You can program most AVRs in C with good results, either using GCC, or one of a few other compilers. (As much as I like GCC for most development, Codevision is an EXCELLENT IDE/compiler that is well-maintained. Cornell uses Codevision + AVRs for their microcontroller class, and Prof. Land has had 1-day turnarounds from bug report to bug fix from the author of Codevision.)
For those who are lazy and have some extra cash, the STK500 devel board is $89-109 or so depending on where you look and is wonderful for prototyping circtuits. (Has built-in switches and LEDs, TTL-to-RS232 converter for AVRs with a UART, and a serial port based programmer.)
Some AVRs have built-in internal RC oscillators - Not as stable of a frequency reference, but for many applications (such as this one), it doesn't matter, and it's much easier to use.
Most AVRs have only one or two PWM outputs, and VERY few if any have three, which isn't as serious of a limitation as it may seem - Since the PWM rate only has to exceed 100 Hz or so, he can easily do 8-bit PWM with a software loop. (Essentially, having 8 or 16 software-driven PWM channels.) 8-bit PWM would probably be overkill for this application, even 4-bit might be more than sufficient.
AVRs are also excellent for driving parallel LCD displays, although the software is much more difficult. (It's easy with Codevision, except that only the commercial versions of CV can use the LCD library.)
With a 16 line decoder alone (No extra hardware), you can only have one of those 16 lines selected at a time. Not good for brightness control - Useful if you want to choose between 16 different LEDs, each of a different color.
Look at their coverage map... Sprint PCS coverage isn't nationwide, it's "Little itty bitty spots scattered across the nation".
Did you know that Sprint PCS doesn't even have coverage for their headquarters building?
Sprint also can't even cover more than 50% of the landmass of the most densely populated state in the USA (New Jersey). Verizon America's Choice, on the other hand, covers every single inch of NJ. Yes, VZW is much more expensive than any other wireless provider and has a more limited selection of phones. You get what you pay for. (In terms of service coverage and quality. Verizon's limited handset selection is due to their EXTREMELY high quality standards.)
Let's not forget that neither Vision nor Express Network are 3G. They are 2.5G interim. 1xEV-DO is true 3G, as is UMTS. (Although so far, EV-DO and EV-DV have had FAR more commercial success than UMTS. Only UMTS rollout so far has been DoCoMo, which was a flop. Meanwhile, KDDI rolled out EV-DO or DV with great success, and Korea also has one of the two.)
I was talking about a high-quality but not super-top-of-the-line PC, like a lower end Dell, or in the case of homebuilt, using an Athlon XP 2000-2200+ rather than a 3000+ and a GeForce4 Ti4200 or 4400 rather than a 4600 or an FX (Although these days 4600s aren't too expensive.), and only getting 512M or RAM in 256M sticks rather than 1 gig in 512M sticks. No quality difference, but a big price difference.
Although if there's any part of a system I would not skimp on, it's the video card. I reccommend budgeting at least $200 for the video card alone if you want good performance - The video card is the bottleneck in most games these days, and is the one place you shouldn't skimp. I have a Ti4600 and only a 1.1 GHz Athlon - My video card is still the limiting factor most of the time. The only reason I want to upgrade now to a 2000-2200+ myself is because I've been doing a lot of video encoding, which is one of the few apps where a fast CPU is REALLY useful. (22 minutes of 1080i HDTV video takes approx. 7-8 hours to do a two-pass decoding/deinterlace/resize/encode to DivX run.)
A few months ago there was an Ask Slashdot covering alternatives to diamonds, asked by someone knowledgeable about the problems that diamonds have. (De Beers monopoly, slavery, etc.)
There were a lot of interesting suggestions. Jewelry-wise, if you want functionality, a diamond is the way to go (If you don't like DeBeers, go synthetic.) Hardest substance on earth, could come in handy... I can't think of much that's as durable and lasting as a diamond and small enough to be jewelry.
Others suggested going simple with the jewelry. Maybe just get her a cheap silver band, but at the same time hand her the keys to a nice new car... (Does she like convertibles? If yes, does she have one? If no, there's your gift idea.)
Note that the "2000+" etc. speed ratings are designed to compare the CPU to a P4.
So an Athlon XP 2500+ will have approximately the same performance regardless of the core. Despite the newer core, the 2500+ Barton (clocked at 1.83) is cheaper than the 2600+ non-Barton.
Different cores or not, the 2500+ gives approximately 25% more performance than the 2000+ at twice the price. The 3000+ gives approximately 50% more performance at over 4-5 times the price.
I can choose a "top of the line" system, or a system that has 75-80% of the performance for half the price.
As a result, it's cheaper to buy a "lower end" system at a lower price and just replace it with a "lower end" system a year later. I'll get two systems, one of which is better than today's "top of the line", for the same price as one "top of the line" machine today.
Make sure you get something upgradable, of course.
Just look at CPU prices: Athlon XP 2500+ CPUs run around 2x the price of a 2000+. 3000+ CPUs are double that again. That's 4x the price for 1.5x the performance. Same for RAM, and to some degree hard drives. (With hard drives, you often get more "bang for the buck" by getting something close to top of the line. 120 gigs or so is currently the sweet spot as far as price per gig, and that's close to top of the line these days. But as soon as you jump to 160 or 200 gigs the price skyrockets. If you go down in size, you're spending not much less and getting significantly les.)
Apps that operate on large datasets and are memory-intensive will probably see significant improvements. (Scientific computing, maybe video encoding/decoding)
Game engines are typically designed so that the core of the engine is relatively small. Back in the days of the older P2 and P3, Celerons were considered the kings of gaming because of the fact that while their cache size was only half that of their big Pentium brother, the Celerons had full-speed cache while the P2 or P3 only had half-speed cache. It happened that the main rendering pipeline of most games at that time fit comfortably within the 128k cache of the Celeron - As a result, Celerons were actually significantly FASTER for gaming than their big brothers.
So for games you might not see much improvement, although these days things might be different.
Even with half the stated bus throughput, the Athlon seems to do a good job keeping up with the P4, and at a lower price.
Even at a lower clock rate, the Athlon can beat a P4. The Athlon XP 3000+ has essentially the same performance as a P4 for almost all applications, even ones where you'd expect the P4 to excel at (Video encoding) for example.
It helps that throughput isn't everything - Latency is also important, and the P4 was designed around an extremely high-latency memory subsystem (RDRAM), while the Athlon was designed around a much lower-latency memory subsystem. All the throughput in the world isn't going to help you unless the turnaround between a data request and that data coming from memory is fast. The only exception is if you rearchitecture the whole system (and this includes changing the ISA, which means it can't practically be done for x86) around a high-throughput high-latency memory subsystem. (PS2 is the most valid example - That system is designed around throughput everywhere, and it's designed so that memory latency is a nonissue.)
And don't forget x86-64... That architecture is making me drool. (Forget the 64-bit registers - What's important in the short term is that AMD doubled the number of GPRs and vector registers.)
I wouldn't consider servers to be "most of us" - Servers are a minority of users, the 64-bit improvements will be of little benefit to the majority of users, most of whom are likely to have one gig or less of memory for the next year or so, and probably no need for more than 4 gigs for the next 2-4 years. It's only the big servers that have the need for it now/short-term.
But the other architectural improvements are going to make x86-64 a must-have for people LONG before the 4GB barrier being shattered will matter to the majority of computer users. Those extra registers will mean an instant performance improvement for everyone as soon as apps are recompiled to take advantage of them. They'll boost throughput quite a bit for video encoding/playback, same for 3D gaming.
Or just wait until that university address of his gets dictionaried.
No matter what other measures I might have tried, at this point I'd be screwed, as spammers have started performing dictionary attacks against Cornell's netid namespace.
Doesn't matter what you do - Sooner or later a dictionary attack is gonna get you.
Note: Not all hamfests are created equal. Some suck, some totally rock. The Hamvention is the hamfest to end all hamfests, held in Dayton, OH in the spring. You should be able to find 3-4 hamfests each year in your local area. (Most clubs that organize them do one once a year, although a club in the Elmira, NY area does two a year.) There's one coming up in Clinton, NJ at North Hunterdon High School this Saturday.
Note: Hamfests start early and are usually dead by 1-2 PM. Get there when they open for the good stuff.
As to online surplus: All Electronics, BG Micro, and Electronic Goldmine are all good. www.eio.com is great for LCDs.
Brick-and-mortar: Few people know this, but Edmund Scientific (of overpriced gadget catalog fame) has (or at least used to have) a brick-and-mortar store at their HQ in Barrington, NJ. In the back there was a large room almost as big as the main store that had bins and bins of surplus at great prices.
I don't know if the surplus room still exists - I haven't been down to Barrington in many years. It may well have been killed when Edmund reorganized into the Scientifics division and Edmund Industrial Optics. (They DO have an online presence in surplus optics at www.anchoroptical.com)
The 64 bit registers won't be very useful to most of us for a long time. I'm an engineer and I don't think I've ever overflowed a 32 bit integer, ever.
Most of us won't need the address space of x86-64 for 2-3 more years at the very least.
But doubling the number of GPRs and more importantly, doubling the number of vector regs... WOW.
Doubling the number of vector registers will increase throughput significantly for apps that use the vector regs and are recoded to use the extra registers. The nice thing about this is that for those applications that have already been coded to use vector registers, the hard work has already been done. Making use of the extra registers will be easy compared to the initial task of vectorizing your code in the first place. It will be a VERY short time before applications (at least open-source ones) that have SSE/3DNow!/MMX support will take advantage of the extra registers. When I say VERY short, I'm estimating 2-3 weeks or less after x86-64's general availability before we start seeing the patches flying.
As someone who does a lot of video encoding - This new architecture is making me drool. I was thinking of upgrading my box, but I think I'm going to wait until x86-64 is released.
I'm still reading the article, but too bad the vector registers are still only 128 bits.
Doubling the vector registers would nearly double performance for applications designed to make use of SIMD instructions (MMX, SSE, 3DNow!, etc.) New instructions would be needed to support the new wider VRs, but that hasn't stopped AMD or Intel in the past as far as adding SIMD capabilities and it shouldn't stop.
I think you have no idea what you're talking about...
For one, I'd like you to point me to this "next generation" standard you're talking about. The current next-gen standards for cellular technologies are CDMA2000 and UMTS (which uses a modulation scheme called W-CDMA)
These are all channel-based, although they do allow for multiple users on the same channel. (Maybe this is what you're referring to? But the carriers are still at 1.9 GHz (CDMA2000 PCS) and 2.1 GHz (UMTS)), with a symbol rate of well over 1 MHz. (3.84 MHz in the case of UMTS, somewhere just above 1 MHz for CDMA2000 1x).
So yes, the next generation cellular technologies still use "channels" - But they allow multiple users to share each channel. (Note: This number is not infinite, there is a finite limit on the number of individual signals present.)
The channel spacing for such systems is also quite close - UMTS channels are 3.84 MHz wide with a 5 MHz spacing. That spacing is already at the limits of what modern power amplifier technology can achieve at the transmit side. (Nonlinearities in amplifiers will cause channel power to "spill over" into adjacent channels, and even with modern techniques for correcting nonlinearities, there's still a limit on just how sharp that dropoff can be.)
Modern cellular technologies are already very close to the limits of information theory as it is. CDMA2000 doesn't even really improve spectum efficiency that much over cdmaOne, it just improves the management of available bandwidth. (Mainly the support of packet-based data rather than circuit-switched.)
Right now, a general-purpose PC can only demodulate ATSC (Digital TV) signals in 40x realtime. (That's 40x slower, not 40x faster). That's with $1000 worth of ADC and digital I/O boards for sampling, and I believe they didn't even have software-defined downconversion. (ADCs with higher sampling rates are more expensive - The Analog Devices AD9430 which can "only" take samples at 170 MHz is $90 or so for the chip itself. Analog doesn't even have any DDC (digital downconverter) chips that can handle that sample rate yet, and their slower ones are $30-60+)
The author of this article has clearly forgotten his information theory courses. Yes, while analog broadcast signals are definately nonoptimal, there is a clear limit on how much "information" you can fit into a given amount of bandwidth. Digital television significantly improves this (Note that as part of the transition to all-digital TV, the FCC will be consolidating the current TV broadcast band and freeing up a decent amount of spectrum.), to the point where ATSC is pretty much at the limits of what information theory allows for broadcasting a given amount of information in a given bandwidth while maintaining an acceptable error rate. There are plenty of methods for increasing the noise immunity of signals drastically (ATSC signals only need 15 dB or so of SNR for reception, while a "Grade A" NTSC picture requires 40+ dB SNR at the receiver.), but no signal can be made completely immune to noise.
While I'll agree that we can make much more efficient use of our spectrum by getting rid of less efficient modulation schemes (NTSC), I disagree that getting rid of those modulation schemes will allow us to leave the spectrum unregulated.
Just look at modern cell phones - Current digital cellular technologies (especially CDMA) are close to being theoretically "perfect" with respect to bandwidth efficiency. Despite that, regulation is definately still needed and always will be.
The article is crock... This guy may be an expert in his field, but he's not an RF engineer.
Note: As to directional antennas - Yes, with DSP you can make an essentially "software defined" antenna, also known as a "smart phased array", with which you could decode two signals present coming from different directions. Still, in that case there are limits on the directionality of such systems which are physical and not technical. The longer the wavelength (the lower the frequency) of a signal, the larger an antenna must be to get good directionality. This is why those tiny 2-foot DSS dishes get 20 db+ of gain while those monster VHF yagis on people's rooftops only get 10 dB for the largest. (Note: decibels are logarithmic, so 20 dB is 10 times the gain. For such a VHF antenna to achieve the same gain as that dish, it would have to be ten times as large.)
And we already have a rudimentary "software defined" directional selectivity scheme that has existed for years. It's called an antenna rotator. In theory, digital channels in NYC and Philadelphia could exist on the same channel now, and people at the halfway point could receive both signals, just by putting up a directional antenna and a rotator. But as I said before, directional antennas are large.
The processor in your Palm Pilot is completely different than the DSPs found in many digital radios, etc. The Palm Pilot is a general-purpose CPU, which means it requires much more hardware to do what a dedicated DSP designed around signal processing does. (DSPs are often HEAVILY pipelined to maximize throughput because decisions rarely have to be made so branch mispredictions are a non-issue. If you thought the P4 had a deep pipeline, check out some DSPs...) Also, many "software" radios aren't really software - More appropriately a lot of them are "reconfigurable hardware" - Essentially using FPGAs to implement custom dedicated logic. (Once the domain of ASICs, but for small runs FPGAs are much cheaper, and for anything where you might expect to change the logic around later FPGAs are a must.) An FPGA can do things that a 2.4 GHz P4 could barely dream about, while costing not much more than the CPU in your Palm Pilot, simply because it's dedicated to the task.
Note that the GNU Radio project recently achieved ATSC (US digital TV) demodulation.
Using $1000+ worth of hardware
40x slower than realtime.
Compare that to the MyHD HDTV tuner card, which can do realtime demodulation, MPEG decoding, and display scaling for $300. Why? Because it's designed for the task. It's somewhat reconfigurable, but you can't take a Palm Pilot and turn it into a software-defined radio.
For summer jobs for current students: Try getting a job somewhere at your school. Or try doing something Completely Different and get a job in another field, such as possibly banking. (Even if it might be a junk job like "bank teller", that combined with a CS degree might help you get an IT job in the finance industry upon graduation.)
For those that are out: If you have a decent math or science background, many high schools are DESPERATE for math and science teachers. I know of at least a few friends who were told, "No teaching certificate required as long as you start taking the necessary classes for certification immediately." At this point they will hire people who are SEVERELY underqualified for the job - This happened at my high school. One of our former (and best) physics teachers who had a Ph. D. in statistics left (Statistics is still a hot field apparently, he was making big money consulting for pharmaceutical companies) - His replacement apparently barely knows anything about the subject matter she's teaching.
Still, Perl is a very worthwhile language to learn. Just make sure that you're ready to learn another one when the need arises.
I'm very valuable to my lab group not because I know Perl, but because I can quickly write test automation scripts. It just happens that Perl is an excellent language for this...
Make sure you know C. Even if you program almost everything in Perl, sometimes you just have to use SWIG to write a Perl module in C so that your Perl program will actually run fast. (Best of both worlds - Speed-critical core code in C, user interface and I/O processing in Perl... Did this a few summers ago with great success. I would've been screwed had I try to do the project in C or Perl alone, but the two combined was a match made in heaven.)
Oh yeah, if you program in Perl, LEARN HOW TO USE SWIG. Someday you'll have to write a program that runs absurdly slowly in Perl, but spends 90% of its time in five lines of code. That's your signal to rewrite those 5 lines in C. (In my case, it was fitting polynomials to describe a 2D data set.)
Not always the best solution in the winter (esp. if you need performance beyond that of a laptop), but my laptop with a WLAN card was probably one of the few reasons I managed to survive my senior year without totally burning out. (I came close...)
Near the end of the semester, while most people were stuck inside tooling on some gorgeous days, I would take a folding outdoor chair from K-Mart (Don't skimp - I bought one with a footrest, armrests, and headrests. It folds up into a nice long bag with a shoulder strap.) and set it up on the front walkway and plop down in it with my laptop.
There was no better way to work than outdoors.:)
I'm still looking into solutions for my current bedroom, which is also my computer room. Because the rest of the house is usually freezing cold, I usually have a small heater in the bedroom. (Used to be unnecessary until I switched from CRT to LCD). If I open the door, the room freezes. If I close it, it gets kind of dank after a few hours. I need to figure out a way to keep the air fresh without giving up too much heat.
Go to http://www.candlepowerforums.com/ - It's the closest thing you can get to a "Luxeon Star User Group":) - There are a lot of flashlight modders there that use LOTS of Luxeons in their projects. People have started using Luxeons elsewhere, too. (One guy on the forums builds Luxeon-based replacement dome light modules using 1W white LS units + a DC/DC converter circuit he designed himself.)
Very little in the terms of line-powered lights, but people are starting to experiment (very carefully...) in that area.
I guess the poster has two options:
Parallel port - Eats his parallel port, and needs lots of wires to be run.
AVR - More complex to design, but easier overall.
I don't see why you reccommended an oscilliscope - For most uC development one isn't needed. (Can be nice to have though!)
Parallel-port AVR programs are simple and easy to build. Atmel did a good job as far as AVR programmability. You can program most AVRs in C with good results, either using GCC, or one of a few other compilers. (As much as I like GCC for most development, Codevision is an EXCELLENT IDE/compiler that is well-maintained. Cornell uses Codevision + AVRs for their microcontroller class, and Prof. Land has had 1-day turnarounds from bug report to bug fix from the author of Codevision.)
For those who are lazy and have some extra cash, the STK500 devel board is $89-109 or so depending on where you look and is wonderful for prototyping circtuits. (Has built-in switches and LEDs, TTL-to-RS232 converter for AVRs with a UART, and a serial port based programmer.)
Some AVRs have built-in internal RC oscillators - Not as stable of a frequency reference, but for many applications (such as this one), it doesn't matter, and it's much easier to use.
Most AVRs have only one or two PWM outputs, and VERY few if any have three, which isn't as serious of a limitation as it may seem - Since the PWM rate only has to exceed 100 Hz or so, he can easily do 8-bit PWM with a software loop. (Essentially, having 8 or 16 software-driven PWM channels.) 8-bit PWM would probably be overkill for this application, even 4-bit might be more than sufficient.
AVRs are also excellent for driving parallel LCD displays, although the software is much more difficult. (It's easy with Codevision, except that only the commercial versions of CV can use the LCD library.)
With a 16 line decoder alone (No extra hardware), you can only have one of those 16 lines selected at a time. Not good for brightness control - Useful if you want to choose between 16 different LEDs, each of a different color.
Look at their coverage map... Sprint PCS coverage isn't nationwide, it's "Little itty bitty spots scattered across the nation".
Did you know that Sprint PCS doesn't even have coverage for their headquarters building?
Sprint also can't even cover more than 50% of the landmass of the most densely populated state in the USA (New Jersey). Verizon America's Choice, on the other hand, covers every single inch of NJ. Yes, VZW is much more expensive than any other wireless provider and has a more limited selection of phones. You get what you pay for. (In terms of service coverage and quality. Verizon's limited handset selection is due to their EXTREMELY high quality standards.)
Let's not forget that neither Vision nor Express Network are 3G. They are 2.5G interim. 1xEV-DO is true 3G, as is UMTS. (Although so far, EV-DO and EV-DV have had FAR more commercial success than UMTS. Only UMTS rollout so far has been DoCoMo, which was a flop. Meanwhile, KDDI rolled out EV-DO or DV with great success, and Korea also has one of the two.)
eMachines/Wal-Mart PCs are low-quality.
I was talking about a high-quality but not super-top-of-the-line PC, like a lower end Dell, or in the case of homebuilt, using an Athlon XP 2000-2200+ rather than a 3000+ and a GeForce4 Ti4200 or 4400 rather than a 4600 or an FX (Although these days 4600s aren't too expensive.), and only getting 512M or RAM in 256M sticks rather than 1 gig in 512M sticks. No quality difference, but a big price difference.
Although if there's any part of a system I would not skimp on, it's the video card. I reccommend budgeting at least $200 for the video card alone if you want good performance - The video card is the bottleneck in most games these days, and is the one place you shouldn't skimp. I have a Ti4600 and only a 1.1 GHz Athlon - My video card is still the limiting factor most of the time. The only reason I want to upgrade now to a 2000-2200+ myself is because I've been doing a lot of video encoding, which is one of the few apps where a fast CPU is REALLY useful. (22 minutes of 1080i HDTV video takes approx. 7-8 hours to do a two-pass decoding/deinterlace/resize/encode to DivX run.)
With the exception of the 3000+, all of the speedgrades listed in the original page are ones that the non-Barton cores were only available in.
The only 2500+ that exists is a new Barton core. (i.e. that page is probably out of date. NewEgg seems perfectly willing to sell me a 2500+ Barton.)
Don't forget synthetics.
A few months ago there was an Ask Slashdot covering alternatives to diamonds, asked by someone knowledgeable about the problems that diamonds have. (De Beers monopoly, slavery, etc.)
There were a lot of interesting suggestions. Jewelry-wise, if you want functionality, a diamond is the way to go (If you don't like DeBeers, go synthetic.) Hardest substance on earth, could come in handy... I can't think of much that's as durable and lasting as a diamond and small enough to be jewelry.
Others suggested going simple with the jewelry. Maybe just get her a cheap silver band, but at the same time hand her the keys to a nice new car... (Does she like convertibles? If yes, does she have one? If no, there's your gift idea.)
Note that the "2000+" etc. speed ratings are designed to compare the CPU to a P4.
So an Athlon XP 2500+ will have approximately the same performance regardless of the core. Despite the newer core, the 2500+ Barton (clocked at 1.83) is cheaper than the 2600+ non-Barton.
Different cores or not, the 2500+ gives approximately 25% more performance than the 2000+ at twice the price. The 3000+ gives approximately 50% more performance at over 4-5 times the price.
I can choose a "top of the line" system, or a system that has 75-80% of the performance for half the price.
As a result, it's cheaper to buy a "lower end" system at a lower price and just replace it with a "lower end" system a year later. I'll get two systems, one of which is better than today's "top of the line", for the same price as one "top of the line" machine today.
Make sure you get something upgradable, of course.
Just look at CPU prices: Athlon XP 2500+ CPUs run around 2x the price of a 2000+. 3000+ CPUs are double that again. That's 4x the price for 1.5x the performance. Same for RAM, and to some degree hard drives. (With hard drives, you often get more "bang for the buck" by getting something close to top of the line. 120 gigs or so is currently the sweet spot as far as price per gig, and that's close to top of the line these days. But as soon as you jump to 160 or 200 gigs the price skyrockets. If you go down in size, you're spending not much less and getting significantly les.)
What sort of applications do you run.
Apps that operate on large datasets and are memory-intensive will probably see significant improvements. (Scientific computing, maybe video encoding/decoding)
Game engines are typically designed so that the core of the engine is relatively small. Back in the days of the older P2 and P3, Celerons were considered the kings of gaming because of the fact that while their cache size was only half that of their big Pentium brother, the Celerons had full-speed cache while the P2 or P3 only had half-speed cache. It happened that the main rendering pipeline of most games at that time fit comfortably within the 128k cache of the Celeron - As a result, Celerons were actually significantly FASTER for gaming than their big brothers.
So for games you might not see much improvement, although these days things might be different.
I think it can take quite a bit more.
Even with half the stated bus throughput, the Athlon seems to do a good job keeping up with the P4, and at a lower price.
Even at a lower clock rate, the Athlon can beat a P4. The Athlon XP 3000+ has essentially the same performance as a P4 for almost all applications, even ones where you'd expect the P4 to excel at (Video encoding) for example.
It helps that throughput isn't everything - Latency is also important, and the P4 was designed around an extremely high-latency memory subsystem (RDRAM), while the Athlon was designed around a much lower-latency memory subsystem. All the throughput in the world isn't going to help you unless the turnaround between a data request and that data coming from memory is fast. The only exception is if you rearchitecture the whole system (and this includes changing the ISA, which means it can't practically be done for x86) around a high-throughput high-latency memory subsystem. (PS2 is the most valid example - That system is designed around throughput everywhere, and it's designed so that memory latency is a nonissue.)
And don't forget x86-64... That architecture is making me drool. (Forget the 64-bit registers - What's important in the short term is that AMD doubled the number of GPRs and vector registers.)
x86-64 >>>> IA-64
HyperTransport - Don't Athlons already have this? (i.e. it's nothing new)
I wouldn't consider servers to be "most of us" - Servers are a minority of users, the 64-bit improvements will be of little benefit to the majority of users, most of whom are likely to have one gig or less of memory for the next year or so, and probably no need for more than 4 gigs for the next 2-4 years. It's only the big servers that have the need for it now/short-term.
But the other architectural improvements are going to make x86-64 a must-have for people LONG before the 4GB barrier being shattered will matter to the majority of computer users. Those extra registers will mean an instant performance improvement for everyone as soon as apps are recompiled to take advantage of them. They'll boost throughput quite a bit for video encoding/playback, same for 3D gaming.
"We even have people who are afraid to click on the unconfirm links for fear of being added to another list."
#1 rule of dealing with spam:
NEVER do anything that could confirm that your address is real and read by a human.
Or just wait until that university address of his gets dictionaried.
No matter what other measures I might have tried, at this point I'd be screwed, as spammers have started performing dictionary attacks against Cornell's netid namespace.
Doesn't matter what you do - Sooner or later a dictionary attack is gonna get you.
Hamfests rock.
Note: Not all hamfests are created equal. Some suck, some totally rock. The Hamvention is the hamfest to end all hamfests, held in Dayton, OH in the spring. You should be able to find 3-4 hamfests each year in your local area. (Most clubs that organize them do one once a year, although a club in the Elmira, NY area does two a year.) There's one coming up in Clinton, NJ at North Hunterdon High School this Saturday.
Note: Hamfests start early and are usually dead by 1-2 PM. Get there when they open for the good stuff.
As to online surplus: All Electronics, BG Micro, and Electronic Goldmine are all good. www.eio.com is great for LCDs.
Brick-and-mortar: Few people know this, but Edmund Scientific (of overpriced gadget catalog fame) has (or at least used to have) a brick-and-mortar store at their HQ in Barrington, NJ. In the back there was a large room almost as big as the main store that had bins and bins of surplus at great prices.
I don't know if the surplus room still exists - I haven't been down to Barrington in many years. It may well have been killed when Edmund reorganized into the Scientifics division and Edmund Industrial Optics. (They DO have an online presence in surplus optics at www.anchoroptical.com)
But I read the remainder of the article.
The 64 bit registers won't be very useful to most of us for a long time. I'm an engineer and I don't think I've ever overflowed a 32 bit integer, ever.
Most of us won't need the address space of x86-64 for 2-3 more years at the very least.
But doubling the number of GPRs and more importantly, doubling the number of vector regs... WOW.
Doubling the number of vector registers will increase throughput significantly for apps that use the vector regs and are recoded to use the extra registers. The nice thing about this is that for those applications that have already been coded to use vector registers, the hard work has already been done. Making use of the extra registers will be easy compared to the initial task of vectorizing your code in the first place. It will be a VERY short time before applications (at least open-source ones) that have SSE/3DNow!/MMX support will take advantage of the extra registers. When I say VERY short, I'm estimating 2-3 weeks or less after x86-64's general availability before we start seeing the patches flying.
As someone who does a lot of video encoding - This new architecture is making me drool. I was thinking of upgrading my box, but I think I'm going to wait until x86-64 is released.
I'm still reading the article, but too bad the vector registers are still only 128 bits.
Doubling the vector registers would nearly double performance for applications designed to make use of SIMD instructions (MMX, SSE, 3DNow!, etc.) New instructions would be needed to support the new wider VRs, but that hasn't stopped AMD or Intel in the past as far as adding SIMD capabilities and it shouldn't stop.
It already is - Look at your average HDTV receiver. :)
I think you have no idea what you're talking about...
For one, I'd like you to point me to this "next generation" standard you're talking about. The current next-gen standards for cellular technologies are CDMA2000 and UMTS (which uses a modulation scheme called W-CDMA)
These are all channel-based, although they do allow for multiple users on the same channel. (Maybe this is what you're referring to? But the carriers are still at 1.9 GHz (CDMA2000 PCS) and 2.1 GHz (UMTS)), with a symbol rate of well over 1 MHz. (3.84 MHz in the case of UMTS, somewhere just above 1 MHz for CDMA2000 1x).
So yes, the next generation cellular technologies still use "channels" - But they allow multiple users to share each channel. (Note: This number is not infinite, there is a finite limit on the number of individual signals present.)
The channel spacing for such systems is also quite close - UMTS channels are 3.84 MHz wide with a 5 MHz spacing. That spacing is already at the limits of what modern power amplifier technology can achieve at the transmit side. (Nonlinearities in amplifiers will cause channel power to "spill over" into adjacent channels, and even with modern techniques for correcting nonlinearities, there's still a limit on just how sharp that dropoff can be.)
Modern cellular technologies are already very close to the limits of information theory as it is. CDMA2000 doesn't even really improve spectum efficiency that much over cdmaOne, it just improves the management of available bandwidth. (Mainly the support of packet-based data rather than circuit-switched.)
Right now, a general-purpose PC can only demodulate ATSC (Digital TV) signals in 40x realtime. (That's 40x slower, not 40x faster). That's with $1000 worth of ADC and digital I/O boards for sampling, and I believe they didn't even have software-defined downconversion. (ADCs with higher sampling rates are more expensive - The Analog Devices AD9430 which can "only" take samples at 170 MHz is $90 or so for the chip itself. Analog doesn't even have any DDC (digital downconverter) chips that can handle that sample rate yet, and their slower ones are $30-60+)
The author of this article has clearly forgotten his information theory courses. Yes, while analog broadcast signals are definately nonoptimal, there is a clear limit on how much "information" you can fit into a given amount of bandwidth. Digital television significantly improves this (Note that as part of the transition to all-digital TV, the FCC will be consolidating the current TV broadcast band and freeing up a decent amount of spectrum.), to the point where ATSC is pretty much at the limits of what information theory allows for broadcasting a given amount of information in a given bandwidth while maintaining an acceptable error rate. There are plenty of methods for increasing the noise immunity of signals drastically (ATSC signals only need 15 dB or so of SNR for reception, while a "Grade A" NTSC picture requires 40+ dB SNR at the receiver.), but no signal can be made completely immune to noise.
While I'll agree that we can make much more efficient use of our spectrum by getting rid of less efficient modulation schemes (NTSC), I disagree that getting rid of those modulation schemes will allow us to leave the spectrum unregulated.
Just look at modern cell phones - Current digital cellular technologies (especially CDMA) are close to being theoretically "perfect" with respect to bandwidth efficiency. Despite that, regulation is definately still needed and always will be.
The article is crock... This guy may be an expert in his field, but he's not an RF engineer.
Note: As to directional antennas - Yes, with DSP you can make an essentially "software defined" antenna, also known as a "smart phased array", with which you could decode two signals present coming from different directions. Still, in that case there are limits on the directionality of such systems which are physical and not technical. The longer the wavelength (the lower the frequency) of a signal, the larger an antenna must be to get good directionality. This is why those tiny 2-foot DSS dishes get 20 db+ of gain while those monster VHF yagis on people's rooftops only get 10 dB for the largest. (Note: decibels are logarithmic, so 20 dB is 10 times the gain. For such a VHF antenna to achieve the same gain as that dish, it would have to be ten times as large.)
And we already have a rudimentary "software defined" directional selectivity scheme that has existed for years. It's called an antenna rotator. In theory, digital channels in NYC and Philadelphia could exist on the same channel now, and people at the halfway point could receive both signals, just by putting up a directional antenna and a rotator. But as I said before, directional antennas are large.
Andy Dodd
N2YPH
The processor in your Palm Pilot is completely different than the DSPs found in many digital radios, etc. The Palm Pilot is a general-purpose CPU, which means it requires much more hardware to do what a dedicated DSP designed around signal processing does. (DSPs are often HEAVILY pipelined to maximize throughput because decisions rarely have to be made so branch mispredictions are a non-issue. If you thought the P4 had a deep pipeline, check out some DSPs...) Also, many "software" radios aren't really software - More appropriately a lot of them are "reconfigurable hardware" - Essentially using FPGAs to implement custom dedicated logic. (Once the domain of ASICs, but for small runs FPGAs are much cheaper, and for anything where you might expect to change the logic around later FPGAs are a must.) An FPGA can do things that a 2.4 GHz P4 could barely dream about, while costing not much more than the CPU in your Palm Pilot, simply because it's dedicated to the task.
Note that the GNU Radio project recently achieved ATSC (US digital TV) demodulation.
Using $1000+ worth of hardware
40x slower than realtime.
Compare that to the MyHD HDTV tuner card, which can do realtime demodulation, MPEG decoding, and display scaling for $300. Why? Because it's designed for the task. It's somewhat reconfigurable, but you can't take a Palm Pilot and turn it into a software-defined radio.
For summer jobs for current students: Try getting a job somewhere at your school. Or try doing something Completely Different and get a job in another field, such as possibly banking. (Even if it might be a junk job like "bank teller", that combined with a CS degree might help you get an IT job in the finance industry upon graduation.)
For those that are out: If you have a decent math or science background, many high schools are DESPERATE for math and science teachers. I know of at least a few friends who were told, "No teaching certificate required as long as you start taking the necessary classes for certification immediately." At this point they will hire people who are SEVERELY underqualified for the job - This happened at my high school. One of our former (and best) physics teachers who had a Ph. D. in statistics left (Statistics is still a hot field apparently, he was making big money consulting for pharmaceutical companies) - His replacement apparently barely knows anything about the subject matter she's teaching.
Still, Perl is a very worthwhile language to learn. Just make sure that you're ready to learn another one when the need arises.
I'm very valuable to my lab group not because I know Perl, but because I can quickly write test automation scripts. It just happens that Perl is an excellent language for this...
Make sure you know C. Even if you program almost everything in Perl, sometimes you just have to use SWIG to write a Perl module in C so that your Perl program will actually run fast. (Best of both worlds - Speed-critical core code in C, user interface and I/O processing in Perl... Did this a few summers ago with great success. I would've been screwed had I try to do the project in C or Perl alone, but the two combined was a match made in heaven.)
Oh yeah, if you program in Perl, LEARN HOW TO USE SWIG. Someday you'll have to write a program that runs absurdly slowly in Perl, but spends 90% of its time in five lines of code. That's your signal to rewrite those 5 lines in C. (In my case, it was fitting polynomials to describe a 2D data set.)
Not always the best solution in the winter (esp. if you need performance beyond that of a laptop), but my laptop with a WLAN card was probably one of the few reasons I managed to survive my senior year without totally burning out. (I came close...)
:)
Near the end of the semester, while most people were stuck inside tooling on some gorgeous days, I would take a folding outdoor chair from K-Mart (Don't skimp - I bought one with a footrest, armrests, and headrests. It folds up into a nice long bag with a shoulder strap.) and set it up on the front walkway and plop down in it with my laptop.
There was no better way to work than outdoors.
I'm still looking into solutions for my current bedroom, which is also my computer room. Because the rest of the house is usually freezing cold, I usually have a small heater in the bedroom. (Used to be unnecessary until I switched from CRT to LCD). If I open the door, the room freezes. If I close it, it gets kind of dank after a few hours. I need to figure out a way to keep the air fresh without giving up too much heat.
Go to http://www.candlepowerforums.com/ - It's the closest thing you can get to a "Luxeon Star User Group" :) - There are a lot of flashlight modders there that use LOTS of Luxeons in their projects. People have started using Luxeons elsewhere, too. (One guy on the forums builds Luxeon-based replacement dome light modules using 1W white LS units + a DC/DC converter circuit he designed himself.)
Very little in the terms of line-powered lights, but people are starting to experiment (very carefully...) in that area.