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)