Whenever you make a choice among products with similar functions, that choice spills over into the realm of social status.

Cars are a common example where social rank often goes with brand, and even within brand, by model, and even within model, by variations, upgrades, and badges. All signify some social status. I became acutely aware of this after purchasing a car that did not fit my image. It was uncomfortable for everyone.

Your operating system

You can see the social aspect tied to an operating system by looking at the Apple "I'm a Mac" campaign, and the weak Microsoft "I'm a PC" campaign response. A choice to run Linux or other operating system also carries connotations and shared group identity. In this sense, you are your operating system.

Your collection of choices

Whether conscious or not, decisions and choices about purchases you make, where choices are available, weave together part of your social tapestry. The schools you attend, where you work, your clothes, your car, where you live, and yes, your operating system. You are those things, at least socially.

The question is, in the context of a consumer society, can a choice be made without the attachment of social status?

## Thursday, December 24, 2009

## Saturday, December 5, 2009

### Calculating the square root of 2 longhand

There are many numerical methods to calculate square roots. This is the long hand method I learned in junior high. It produces one (accurate) digit at a time, but the working numbers get larger each iteration. Eventually, it bogs down because it is doing math with integers hundreds, then thousands of digits long.

Still, it is fun for tinkering. If you run this Ruby script as is, it will calculate the square root of 2 to 1,000 digits. To adjust the precision, change the number of iterations on this line:

Here is the entire script...

Still, it is fun for tinkering. If you run this Ruby script as is, it will calculate the square root of 2 to 1,000 digits. To adjust the precision, change the number of iterations on this line:

`while iterations < 1000`

Here is the entire script...

#!/usr/bin/ruby

# calculate a square root of 2 using longhand

def newroot(divisor, doubleroot)

# calculate new root

# formula is doubleroot _ * _ = closest to divisor

# try 9, then 8, then 7 ...

i = 9

while i >= 0

multiple1 = (doubleroot.to_s + i.to_s).to_i

multiple2 = i

product = multiple1 * multiple2

if product <= divisor

# found new root

root = i

# get modulus

modulus = divisor - product

break

end

i = i - 1

end

return root, modulus

end

roots = Array.new

# the nearest root to 2 is 1

root = 1

roots.push(root)

remainder = 2 - root

doubleroot = root * 2

divisor = remainder * 100

iterations = 0

while iterations < 1000

root,remainder = newroot(divisor, doubleroot)

roots.push(root)

# compute new doubleroot

return root, modulus

end

roots = Array.new

# the nearest root to 2 is 1

root = 1

roots.push(root)

remainder = 2 - root

doubleroot = root * 2

divisor = remainder * 100

iterations = 0

while iterations < 1000

root,remainder = newroot(divisor, doubleroot)

roots.push(root)

# compute new doubleroot

doubleroot = roots.to_s.to_i * 2

# compute divisor

divisor = remainder * 100

iterations = iterations + 1

print "iteration " + iterations.to_s + "\n"

end

print "final roots are " + roots.to_s + "\n"

Subscribe to:
Posts (Atom)