Google's Silicon Supply

In very rough numbers:

Google employs about 65 million million transistors.

That's about ten thousands transistors for each man, woman, and child on this planet.

In the time it takes you to read this one sentence, Google will have completed about 8 million billion 32 bit operations in those transistors.

That's enough to calculate pi to the 200 thousandth digit for each person on this planet.

USB Isolator for $10

Analog Devices makes two complementary chips that together provide one full speed isolated USB port with 0.5W of power.

Power - ADuM5000
Data - ADuM4160

CAN Goes the Distance in the 2010 Olympic Rings

John Dammeyer of Automation Artisans posted several messages to a CAN (Controller Area Network) mailing list (CANLIST) which go into great detail about the design of the rings and how CAN was used to automate them.


Hi Everyone,

After a very exhausting 3 months with a few almost all-nighters here is
the result which I can now talk about.

Sparkfun Freeday

The Sparkfun Freeday was a sale on January 7th, 2010, where Sparkfun, and electronics component, kit, development tools, and suppliers online store, allowed people to receive up to $100 each of free product in their order placed after 9AM MST (11AM EST).

As they announced this months ago, and it was widely reported in a variety of places, it was not expected to last long, despite Sparkfun's optimism in calling it a Free Day.

Despite recent upgrades in December, the servers started chugging under an increased load on the 6th as people shopped and added parts to their shopping cart, assuming that the site would be too busy to both shop and check out the following day.

ADSL Noise Margin and Attenuation Numbers

What do the ADSL Noise Margin and Attenuation Numbers mean? From :

Noise Margin (AKA Signal to Noise Margin or Signal to Noise Ratio)
Relative strength of the DSL signal to Noise ratio. The higher the number the better for this measurement. In some instances interleaving can help raise the noise margin to an acceptable level.

6dB or below is bad and will experience no synch or intermittent synch problems
7dB-10dB is fair but does not leave much room for variances in conditions
11dB-20dB is good with little or no synch problems* (but see note below)

Instructables moving to a closed for-pay model

Another CDDB for us, Eric Wilhelm announced last month that Instructables is moving to a closed pay-only community model:

Free Instructables users will not longer be able to:

1) View entire instructables at once
2) Print out instructables in PDF
3) View "secondary" images in instructable steps

This means that if an instructable has more than one image in a given step, you will only be able to see the first image, and thumbnails of the other images. If the author left important detail in the images, that information is lost.

Local tech group live broadcast tonight (Tuesday, Jun 6, 2009)

I am doing a smoke test of my little wireless video broadcast setup tonight at the local tech group's meeting. If you have a bit of time, I'd appreciate it if you'd watch for a bit and let me know what problems you experienced, or whether you found any value in this sort of thing.

Tonight we will likely have two FIRST robots, a live demonstration of lost foam metal casting (cheap - 5 gallon bucket furnace, etc), and a few other shorter presentations.

It starts at 7pm EDT, and should be available here:

Dear SEO Scammer,

I get a lot of "link exchange" requests. I doubt this will prevent them, but it gives me a convenient place to put a recent response I gave to one which I can use as a template later to saver time. Generally I find out a little about both the SEO company, and the company that purchased the SEO services. I then email both the SEO scammer and the company who purchased their services.

In other words, if you are going to request a link exchange, please note that I generally contact your customer directly and tell them how lousy link exchanges really are, and that they are wasting their money on you.

One safe way to decrement an unsigned in a for loop

don.neufeld points out that there's only one safe way to use a for loop to decrement an unsigned int to 0:

for( i = n; i-- > 0; )
// Use i as normal here

"There's a trick here, for the last loop iteration you will have i = 1 at the top of the loop, i-- > 0 passes because 1 > 0, then i = 0 in the loop body. On the next iteration i-- > 0 fails because i == 0, so it doesn't matter that the postfix decrement rolled over the counter."

Simple C Equation Parser

I needed to be able to evaluate user entered equations, with custom variables, for instance lightvalue*10/(factor*1024) where the two variables are filled in by values in the software when the equation is evaluated.

Eventually this requirement was dropped, but not until after I had built a simple proof of concept program, which I'm putting here so I don't lose it again. The code below and the compiled executable (windows) can be downloaded as well, (5.5KB)

Compiles under tcc, should be straight ANSI C and is portable, but let me know if you have issues.