This sort of crap is pretty common with video drivers. The only way to find out what tasks a particular CPU/motherboard/video card/driver combination produces is to run tests.
There's a 100mbit link between the two machines, if that matters...
Speaking of bandwidth, I'm pretty sure that x11perf caches its images as much as possible on the X server, so it is fairly independent of client-server bandwidth. I've seen it give very impressive results over a 9600 bps serial link.
This implies to me that there is a limitation on the number of requests per second that the X-server (irrespective of driver) can do, and that perhaps should be addressed. Either that, or a G400 really is the same speed as radeon 8500...
I'm assuming you are running in 24-/32-bit color mode, which is three bytes per pixel. So every second the X server is pushing 500*500*3*1400 bytes = 1.05 gigabytes of data. That's enough throughput to repaint a 3200x1200 screen 90 times per second. That seems pretty darn good to me. Maybe it can be improved, but there are probably other improvements that are higher priority.
The difference is professionalism. The core team here is an organisation which Keith was a part of. It isn't professional to try to fork, solicit people to join and go behind your team's back, whilst still being a member of the team.
I call bullshit. Utter total horseshit. Professionals *almost never* go straight to the big audience with their ideas. You go privately and discretely to various interested parties and see what they think. If they think the idea stinks, then you let it die quietly and no one is the worse for wear. If they come up with angles you missed or things that aren't optimal, you revise your ideas and go back for round two. Lather, rinse, repeat. The idea either dies, or becomes suitable for mass consumption. In addition, the process polishes the idea, and forces you to get all your ducks in a row so you can answer objections with facts.
If Keith found his dissatisfactions with the core team irreconcilable, that's fine - it happens. He should resign from the team, and then fork and ask others if they'd like to join.
Again, I call bullshit. It's way too easy to delude yourself into believing that your Wonderful New Idea is The Greatest Thing Since Sliced Bread and will Definitely Bring World Peace. It's an occupational hazard for engineers. The solution is to discretely bounce the Wonderful New Idea off other people, who should ideally be jaded, bitter, and hard-nosed. (When I was doing this once, a colleague responded "Are you smoking crack? Or do you take it rectally?" That's the kind of person you want.)
If you don't take this approach, you run a terrible risk of proposing an awful idea to a large audience. The more audacious the idea, the more credibility you lose. Hell, even really good ideas are often hard to swallow if somebody just does a brain dump of their first draft.
Either you're a member of the team or you want to strike out on your own.
Again, bullshit. It is often impossible to know whether you want to strike out on your own without quietly discussing it with other people.
You are essentially arguing that it is unprofessional to explore the job market without first quitting your job. Dumb, dumb, dumb.
As far as I can tell, XFree86 Core are hugely insecure and neurotic. People with self confidence and competence would have simply made Keith a counteroffer. Happens all the time in the real world, which apparently is not where XFree86 lives. E.g., Senior Engineer at Small Turbine Corp. interviews at Pratt and Whitney. What STC execs should do when they find out is to shit themselves, clean up, and make a counter-offer. What they should not do (but alas sometimes do anyway) is fire Senior Engineer on the spot.
The fact that XFree86 Core went apeshit demonstrates (1) they know what Keith was saying is true, and (2) they have a pretty fucking big chip of their collective shoulder. The fact that they went into a frenzy of mailing-list creation, Bugzilla installation, and project reorganization proves #1 beyond any doubt. Other evidence covered extensively elsewhere strongly supports #2.
I've said it before and I'll say it again... I've never once seen an X program that couldn't copy with a left click and drag, then subsequently paste with a middle click.
Here's how it usually goes:
1. Find URL and highlight it.
2. Find a handy browser. Realize it has a URL already. Highlight the URL and whack delete.
3. Damn.
4. Find the original app with the URL (hope the window wasn't closed!).
5. Fucking highlight it again.
6. Switch back to the fucking web browser.
7. Finally paste in the fucking URL.
The use of profanity in this algorithm is mandatory.
I've been working in the Windows world for years now, and client-server display systems are utterly irrelvent to the majority of real-world computer users.
This assertion is falsified by the wild popularity of VNC, Windows Terminal Server, and similar packages for the Windows platform. The simple fact is that remote, network-transparent access is invaluable for IT maintenance. Any organization with more than a dozen users needs remote network access to the GUI.
Incidentally, a colleague of mine has done work on VNC for Windows, and it is appallingly difficult. You either have to scrape the framebuffer continuously (kiss performance goodbye), or you have to hook GDI calls to figure out what regions of the screen were updated.
Especially since XFree86 comes with a nifty benchmarking tool called x11perf. If I run "x11perf -eschertilerect500", which draws a 500x500 black and white tiled image, I get 1400 updates per second. That pixel rate corresponds to 182 FPS updating a full 1600x1200 screen. Not too shabby. "x11perf -rgbftext" does something similar but draws 12 pixel text, and gets 36,000 updates per second. I'm running a Radeon 8500 and an Athlon XP 1800+; slower hardware is proportionally slower in my experience. So the raw graphics performance of XFree86 ain't too shabby.
What about packing and unpacking the X11 "wire" protocol? Modern CPUs (i.e., any CPU that lives and dies by its L1/L2 caches) are limited by I/O bandwidth. As long as the un/packing isn't totally insane, that CPU will spend most of its time waiting for data. Sure, you can shave off some percentage points by going to an optimal binary encoding but Moore's law means you're just polishing the brass on the Titanic. Um, maybe that's not the best metaphor...
The real problem is the incredibly bloated and slow GUI apps and window managers, and possibly the modern GUI toolkits.... The Mozilla family of apps has something pathologically wrong with it - nothing should be that slow.
Moz *is* a pig, but on this machine even it can scroll the/. comment page for this story with no perceptible lag.
IMHO the real killers are:
Slow anti-aliased fonts. I nearly wiped Red Hat 8.0 off my hard drive before I found the option for turning off AA fonts. (At 1600x1200 they're more of a liability.)
Some video card drivers are slow.
Some apps do things that suck under X, like loading common images to the server *every time they're displayed*.
Window managers do dumb things, like excessively redrawing apps when you switch virtual terminals.
Poorly-implemented eye candy. It's pretty easy to kill performance if you go sticking shading and bitmaps on all your widgets.
That's a cool approach to learning. School is a totally boring experience for too many kids, especially in the technical subjects which ought to be the most fascinating. (The cynical part of me snickers at the coach/teachers who will have to deal with students who've had their minds expanded by HBL.)
I see familiar names on the contacts page. Dr. Rockley did some consulting work at my employer, and I was impressed with him. (Alas, I was mostly working on other projects and didn't really get to know him.) The one class I took from Dr. Mayfield was by and far the nicest CS class I took at OSU, and he has a great reputation among my CS colleagues. If they're representative of the people on the HBL team, I see great things ahead.
If you're looking for collaborators, you ought to get in touch with the Oklahoma School of Science and Mathematics. They're on the forefront of education in Oklahoma, and can help you get connections to the state education appartus. I think they have an outreach program for middle schoolers too. Try contacting Mason Henderson (mhender@ossm.edu), who teaches mathematics there and is one of the nicest people I've ever known.
Sugar is basically the worst thing you can eat in terms of health. Consuming refined sugar causes immense insulin surges,...
No. Simple starches are the worst--things like instant white rice and baked potatos. "Diet" rice cakes are glycemic hell. When you eat a lot of sugar your stomach is smart enough to release it into the intestine slowly. Simple starches reach the intestine quickly, and are rapidly converted into sugars by digestive enzymes.
Have a look at some glycemic index tables. The simple starches generally make your blood sugar and insulin rise faster and farther than pure glucose syrup! When the FDA Food Guide Pyramid says to eat all those servings of bread and grain products, they don't mean white bread made from finely-milled flour.
I just hope that Splenda (sucralose) turns out to be harmless:/
Sucralose is chlorinated. If I'm going to abuse my liver, it had better be more fun than a mere sweetener. And the first person who points out the glycemic index of alcohol gets slapped.;-)
Moore's law hasn't applied to RF and microwave circuits; the production volumes haven't been there.
Yes, it has. It is *the* driving force behind improvements in transistors (lower power, lower voltage, faster, denser). Modern cellphones and wireless network cards would not be possible without the vast amounts of R&D done for the computer industry. (Power transistors have benefitted too.)
"10 GHz transistors clocked at 3 GHz?" That's not fast.
It performs computations faster than a microwave oven oscillates.
Show me your 40 GHz processor! (there aren't any!)
5 years ago there weren't any 500 MHz processors. In another 5 years we can reasonably expect 20 GHz to be the standard mass-production speed.
"Talking across circuit boards at 500 MHz?" That's not fast. I've done 40 GHz circuits.
With 128 parallel phase-matched signals, all the wires going into a single die with tons of other circuitry besides, and an error rate requirement of 10^-18/year? A motherboard designer would weep with joy to work on a board with a few signals. Let them use pads and trimmers and they'd be in heaven.
No processor is even close to being able to handle a Ka band signal. I don't mean just digitize it. I mean process it. Half order of magnitude? Not in 2003, that's for sure.
I didn't say the CPUs could directly process the signals. I said the semiconductor processes are nearly close enough to directly handle the signals without an off-die front end.
What do you mean by "LNAs currently aren't great?" Poor return loss? Bad noise figure? No gain? All of those == "not an LNA."
The cheap receivers can only "reach" a few hundred meters (well, using cheap omnidirectional antennas). So the transmitters burn a fair amount of power. We'll need to do better if we want to blanket a city with a mesh of radios.
What's an "agile phase synthesizer?" I have no idea what that is.
(Oops, should have been "phase-agile".) A signal generator that can change its phase very rapidly. Anybody can make a big PLL that settles out in microseconds. Making a tiny synthesizer that settles in a few nanoseconds is hard. Making it out of poorly-calibrated drift-prone materials is even harder.
As far as the Vivato antenna goes, it's not a "phased array" as much as a "switched beam array."
What do you expect? It's a first-generation technology demonstrator, built by a small company in a horrid telecom market. If they can throw that together today, in a few years someone with a hundred million dollars to spend will be able to do the whole nine yards.
Think they won't spend it? Think again. Wireless networking is one of the few remaining growth markets for semiconductors. Look at all the money that's been pissed away chasing Bluetooth, and it's not even a very good standard. In a few years they'll be ready to try again in the 5-10 GHz band, and hopefully they'll do it with a small team of engineers instead of the giant Bluetooth committees.
Each element (individual antenna piece) in a receive-only ESPA requires its own amplifier and phase shifter or time delay circuit. A good LNA die can be had for maybe $25. A good phase shifter die could be $200. Now those have to be packaged. A special-purpose LTCC package for those dice could run $200. There's $425 and you've not even put them together yet. Or integrated them on the beamformer. Or installed the antenna element! Or included a radome. Or power supply. Or control circuits.
Moore's law makes the price drop at an exponential rate. Having a mass market lops another 90% off the per-unit cost. Compare a circa-1988 MIL-SPEC GPS receiver to a modern GPS-on-a-chip. The former is a massive, expensive box of circuit boards. The latter is a single semiconductor die, a couple of passives, a ~10 MHz crystal, a voltage regulator, and a circuit board with integrated antenna; in a couple of years kids will be carrying them around in their cellphones.
The handwriting is already on the wall in the personal computer market. 10 GHz transistors being clocked at 3 GHz, talking across the circuit boards at 500 MHz, with everything running off phase- and frequency-controlled synthesized clocks. The crystal industry is really suffering: everybody is just buying 10 MHz fundamental crystals and synthesizing all the fancy clocks.
They don't make DSP systems fast enough! Show me a DSP that can eat a Ka-band (20-40 GHz) signal.
Standard CPU semiconductors are within half an order of magnitude of being fast enough, and superconductive logic is fast enough to directly digitize the waveforms. Not that you'd want to do this, but hey, it's vaguely conceivable...
Want to mix it down? Fine: One mixer per element, plus LNAs= $$$$$$$!
A solved problem. Its a couple of bucks worth of semiconductor in every wireless Ethernet chip. (The LNAs currently aren't great, but that's just a matter of progress and having a compelling need.) The hardest part of that circuit will be the agile phase synthesizer. It's not that hard because the phase synthesizer doesn't need to be accurate: the array knows what size and shape its elements are, and they can self-calibrate against each other. (Which is easier than it sounds. Ultra320 SCSI already does an independent impedance/phase calibration of each differential wire pair. If I remember right, gigabit Ethernet does something similar.)
Incidentally, Vivato has already demoed a phased-array wireless Ethernet base station. (I think they even take advantage of multipath.) Getting it to the mass market at a low price is purely a matter of time.
The vision argument is even more absurd -- no one who can read can't tell the difference between four and eight spaces.
The millions of people with cataracts, dyslexia, macular degeneration, retinal detachments, and plain poor acuity would probably disagree. Not to mention with extremely poor vision who use speech synthesizers (which have to programmatically guess semantic indention from spaces, yet never upset the spaces and cause erroneous version control deltas) and Braille terminals (upon which four spaces are a waste of precious real estate).
I also disagree with the position that semantic encoding of programs is stupid. It should not be our goal to edit using a virtual 80-column card. Editors should be getting more sophisticated, not less. Block scoping should be marked-up, making it trivially adaptable to different output devices, and making code-folding trivial. Documentation should be editable inline as HTML, complete with diagrams.
ASCII is semantic markup. It has characters for start-of-header, start-of-text, end-of-text, file-separator, field-separator, record-separator, unit-separator, etc. (Boy did the SGML people reinvent that particular wheel badly. "I know, let's use ASCII! And let's ignore FS and use < and >. Two characters for the price of one! Oh, but then we need an ESC character. I know, we'll use &! If I ever get a time machine I'm gonna go back to the invention of SGML and give those folks a good slapping.)
If you use spaces for indention on a large project, you're stuck with that indention forever. Have a programmer with poor vision who needs bigger indention? Fire them. Need to work on a small screen with limited space? Welcome to line wrap hell. Stupid enough to try to change the indention? Watch your multi-line strings explode, and massive deltas thrash your version control system. Whereas if you use tabs and a non-brain-dead editor, it Just Works(TM).
P.S. I'm currently working on a couple of Webware apps and I'm indenting with tabs. MuhuhuHAHAHAHAHA! Tabs forever!;-)
P.P.S. There is one thing we can agree on: people who mix tabs and spaces should be killed. Slowly. As an example to the other heathens.
I'd challenge anybody to come up with a problem that could be solved within a few hours in Perl or Python that couldn't be solved within 2 or 3 times that length of time (longer, but not "weeks") by a competent C or Java programmer.
Example: Monitor both POP3 and IMAP servers, and fetch any messages that arrive. For each message do the following: Store a copy of it in the SQL DB. Make sure there is an attachment containing a custom data format. Extract every RFC2822 address from the message body. Parse the attachment, check it for validity, and convert it to an array of numbers. Calculate the complex fast Fourier transform of the numbers. Save a copy of the results to the SQL DB. Construct a multipart MIME message containing a description of the results, and the results as an attachment . Using SMTP, send a copy of the results to each address that was found previously. Periodically collect bounce messages from POP3 or IMAP servers and note the results in the DB. There must be a web-based front end that monitors throughput, and provides summary graphs of activity in the past N hours. The system must be able to make reasonably-efficient simultaneous use of all processors on a 32-way NUMA machine.
'Twould be a hideous task in C, nearly as bad in C++, annoyingly hard in Java, and fairly trivial in Python. (Dunno about Perl--I hate Perl.) I am assuming that common libraries can be used for the heavy lifting, that the system must work reliably for years in the face upgrades and hostile input, that the system must be maintainable when all the original designers and implementors are gone, and that the original designers and implementors are of merely ordinary skill in the chosen language.
The Big Keys Keyboard. It has 1 inch square keys. It is advertised as helpful for "Cerebral Palsy, Motor Neurone Disease (MND), Multiple Sclerosis (MS), Parkinson's Disease, Upper Limb Disorder (ULD), Autism, Downs Syndrome, Learning Disorders, Severe Learning Difficulty (SLD), Arthritis, Stroke, Impairment of Motor Skills, Poor Sight or Partial Sight / Visual Impairment, and Rheumatism". Price is $157.
...and I've found it vastly superior,... functionally... to both Perl and PHP.
Duh. Perl isn't very good for functional programming. And PHP? Ha! It's barely a procedural language. Have you tried Scheme+? It's fully functional, and uses brackets instead of parentheses so it's vastly easier to read.
One knit, though.
<sigh> A veiled reference to the long-running dispute between the Perl lib_sock camp, and the proponents of PySock. Get over it. Modern implementations are comparable in performance, and the API problems in PySock were fixed long ago.
Why on earth make whitespace vital to the compiler?
One of the greatest insights in modern physics is that the vacuum is an active player. Defining the language with space as well as substance provides an independent structure by which to understand your programs. I saw at the last COMDEX that Rational is working on a tool that lets you graphically design and refactor Python code using Feynman diagrams.
For business reasons I have to edit my programs in Windows but run them on Linux.
Hello? Wine! Duh!
Editing out all those ^M's is a big pain.
This is why experienced Python programmers store their programs as XML. It's disgusting to see someone waste time on platform incompatibilities in this day and age. Remember: write once, run everywhere.
Running everywhere is good exercise, anyway. Not only can you proactively reengineer core business centers, you can get that ripped look so popular in today's nudist conference rooms.
Its not foolproof but its a pretty good bet that if you're getting more than one OS string from the browser ID within say 10 seconds from each other from the same IP there's more than one computer there.
Might as well have a Composting Tax and Gardening Tax for producing your own fertilizer and food.
Indeed. Most jurisdictions already have taxes like that, called "use taxes" or "consumption taxes". Kinda makes me want to buy a couple of miles of wire, make my own paperclips, and file a tax form for each one. Come to think of it, I could use the paperclips on the tax forms, and then file other forms claiming them as a loss. Hey, if the government wants a bunch of convoluted tax laws, I saw bring 'em on...
Taxing wind and hydro generation will be legally interesting. To keep the generator from running away, they often divert unused power to a so-called dump load. When you draw power for useful loads, the regulator reduces the amount sent to the dump load. If the regulation is written as a tax on production, you'll pay for however much wind happens to blow on a particular day.
I used to use MAILER-DAEMON@whatever-company.com at sites that make you sign up to get access.
Re:So it wont work for CDMA
on
Reflections
·
· Score: 1
The article talks of the necessity of there being multiple *transmitter* antennae as well,...
A phased array antenna is a bunch of antennas with individually-controllable phase.
Re:So it wont work for CDMA
on
Reflections
·
· Score: 1
Any ideas if CDMA can have an improvement?
CDMA already uses multipath transmission to improve the signal-to-noise ratio. (Or to improve battery lifetime, depending on your point of view.) Do a web search for "rake receiver".
I can't be bothered to decipher these fluff articles, but it looks like these guys have merely added a phased-array antenna to the conventional CDMA approach. It is neat, but once you have the concept of making multipath work for you, it isn't much of a leap.
This sort of crap is pretty common with video drivers. The only way to find out what tasks a particular CPU/motherboard/video card/driver combination produces is to run tests.
That's Mozilla-specific and doesn't conform to the X conventions (such that there are any).
If you don't take this approach, you run a terrible risk of proposing an awful idea to a large audience. The more audacious the idea, the more credibility you lose. Hell, even really good ideas are often hard to swallow if somebody just does a brain dump of their first draft.
Again, bullshit. It is often impossible to know whether you want to strike out on your own without quietly discussing it with other people.You are essentially arguing that it is unprofessional to explore the job market without first quitting your job. Dumb, dumb, dumb.
As far as I can tell, XFree86 Core are hugely insecure and neurotic. People with self confidence and competence would have simply made Keith a counteroffer. Happens all the time in the real world, which apparently is not where XFree86 lives. E.g., Senior Engineer at Small Turbine Corp. interviews at Pratt and Whitney. What STC execs should do when they find out is to shit themselves, clean up, and make a counter-offer. What they should not do (but alas sometimes do anyway) is fire Senior Engineer on the spot.
The fact that XFree86 Core went apeshit demonstrates (1) they know what Keith was saying is true, and (2) they have a pretty fucking big chip of their collective shoulder. The fact that they went into a frenzy of mailing-list creation, Bugzilla installation, and project reorganization proves #1 beyond any doubt. Other evidence covered extensively elsewhere strongly supports #2.
1. Find URL and highlight it.
2. Find a handy browser. Realize it has a URL already. Highlight the URL and whack delete.
3. Damn.
4. Find the original app with the URL (hope the window wasn't closed!).
5. Fucking highlight it again.
6. Switch back to the fucking web browser.
7. Finally paste in the fucking URL.
The use of profanity in this algorithm is mandatory.
Incidentally, a colleague of mine has done work on VNC for Windows, and it is appallingly difficult. You either have to scrape the framebuffer continuously (kiss performance goodbye), or you have to hook GDI calls to figure out what regions of the screen were updated.
What about packing and unpacking the X11 "wire" protocol? Modern CPUs (i.e., any CPU that lives and dies by its L1/L2 caches) are limited by I/O bandwidth. As long as the un/packing isn't totally insane, that CPU will spend most of its time waiting for data. Sure, you can shave off some percentage points by going to an optimal binary encoding but Moore's law means you're just polishing the brass on the Titanic. Um, maybe that's not the best metaphor...
Moz *is* a pig, but on this machine even it can scroll theIMHO the real killers are:
Hands down the most powerful shell there is.
I see familiar names on the contacts page. Dr. Rockley did some consulting work at my employer, and I was impressed with him. (Alas, I was mostly working on other projects and didn't really get to know him.) The one class I took from Dr. Mayfield was by and far the nicest CS class I took at OSU, and he has a great reputation among my CS colleagues. If they're representative of the people on the HBL team, I see great things ahead.
If you're looking for collaborators, you ought to get in touch with the Oklahoma School of Science and Mathematics. They're on the forefront of education in Oklahoma, and can help you get connections to the state education appartus. I think they have an outreach program for middle schoolers too. Try contacting Mason Henderson (mhender@ossm.edu), who teaches mathematics there and is one of the nicest people I've ever known.
Best wishes for your success!
Have a look at some glycemic index tables. The simple starches generally make your blood sugar and insulin rise faster and farther than pure glucose syrup! When the FDA Food Guide Pyramid says to eat all those servings of bread and grain products, they don't mean white bread made from finely-milled flour.
Sucralose is chlorinated. If I'm going to abuse my liver, it had better be more fun than a mere sweetener. And the first person who points out the glycemic index of alcohol gets slapped.Think they won't spend it? Think again. Wireless networking is one of the few remaining growth markets for semiconductors. Look at all the money that's been pissed away chasing Bluetooth, and it's not even a very good standard. In a few years they'll be ready to try again in the 5-10 GHz band, and hopefully they'll do it with a small team of engineers instead of the giant Bluetooth committees.
The handwriting is already on the wall in the personal computer market. 10 GHz transistors being clocked at 3 GHz, talking across the circuit boards at 500 MHz, with everything running off phase- and frequency-controlled synthesized clocks. The crystal industry is really suffering: everybody is just buying 10 MHz fundamental crystals and synthesizing all the fancy clocks.
Standard CPU semiconductors are within half an order of magnitude of being fast enough, and superconductive logic is fast enough to directly digitize the waveforms. Not that you'd want to do this, but hey, it's vaguely conceivable... A solved problem. Its a couple of bucks worth of semiconductor in every wireless Ethernet chip. (The LNAs currently aren't great, but that's just a matter of progress and having a compelling need.) The hardest part of that circuit will be the agile phase synthesizer. It's not that hard because the phase synthesizer doesn't need to be accurate: the array knows what size and shape its elements are, and they can self-calibrate against each other. (Which is easier than it sounds. Ultra320 SCSI already does an independent impedance/phase calibration of each differential wire pair. If I remember right, gigabit Ethernet does something similar.)Incidentally, Vivato has already demoed a phased-array wireless Ethernet base station. (I think they even take advantage of multipath.) Getting it to the mass market at a low price is purely a matter of time.
I also disagree with the position that semantic encoding of programs is stupid. It should not be our goal to edit using a virtual 80-column card. Editors should be getting more sophisticated, not less. Block scoping should be marked-up, making it trivially adaptable to different output devices, and making code-folding trivial. Documentation should be editable inline as HTML, complete with diagrams.
If you use spaces for indention on a large project, you're stuck with that indention forever. Have a programmer with poor vision who needs bigger indention? Fire them. Need to work on a small screen with limited space? Welcome to line wrap hell. Stupid enough to try to change the indention? Watch your multi-line strings explode, and massive deltas thrash your version control system. Whereas if you use tabs and a non-brain-dead editor, it Just Works(TM).
P.S. I'm currently working on a couple of Webware apps and I'm indenting with tabs. MuhuhuHAHAHAHAHA! Tabs forever! ;-)
P.P.S. There is one thing we can agree on: people who mix tabs and spaces should be killed. Slowly. As an example to the other heathens.
'Twould be a hideous task in C, nearly as bad in C++, annoyingly hard in Java, and fairly trivial in Python. (Dunno about Perl--I hate Perl.) I am assuming that common libraries can be used for the heavy lifting, that the system must work reliably for years in the face upgrades and hostile input, that the system must be maintainable when all the original designers and implementors are gone, and that the original designers and implementors are of merely ordinary skill in the chosen language.
They also sell a programmable foot switch with a keyboard interface for $120.
Running everywhere is good exercise, anyway. Not only can you proactively reengineer core business centers, you can get that ripped look so popular in today's nudist conference rooms.
Micro changes in air density? Wonder if it can detect aliens...
Taxing wind and hydro generation will be legally interesting. To keep the generator from running away, they often divert unused power to a so-called dump load. When you draw power for useful loads, the regulator reduces the amount sent to the dump load. If the regulation is written as a tax on production, you'll pay for however much wind happens to blow on a particular day.
And people accuse me of being tacky! I don't get it!
I used to use MAILER-DAEMON@whatever-company.com at sites that make you sign up to get access.
I can't be bothered to decipher these fluff articles, but it looks like these guys have merely added a phased-array antenna to the conventional CDMA approach. It is neat, but once you have the concept of making multipath work for you, it isn't much of a leap.