Tue, 31 Oct 2006

When an argument falls does it make a noise?

In a comment to a Marginal Revolution posting, Mike Huben says that the "destruction of jobs by minimum wages" (his scare quotes, not mine) is essentially unmeasurable. He adds "I'm leery of believing either of those conservative excuses. I'm much more likely to believe that the rich want to get good servants cheap."

I hope nobody thinks I'm taking advantage of Mike by asserting that he thinks minimum wage laws create no unemployment simply because said unemployment is essentially unmeasurable. And yet, the noise caused by a tree falling in a forest is essentially unmeasurable. Does that mean that trees never fall, or that, when falling, they make no noise? Far from it. We can see that trees have fallen and since we hear a great noise when one does fall, we must assume that trees that fall when we're not watching also make noise.

Thus, we have to assume that minimum wage laws cause unemployment even though the unemployment we observe in a society cannot be tracked back to the existance or passage of a minimum wage law. Or, at least, if we are to be honest people we must make this assumption.

Posted [04:12] [Filed in: economics] [permalink] [Google for the title] [digg this]
qrcode

Sat, 28 Oct 2006

Ride starting Fri Oct 27 16:13:24 2006

20.77 km 68148.54 feet 12.91 mi 5723.00 seconds 95.38 minutes 1.59 hours 8.12 mi/hr

Went up to Norwood today, to look for an old track in the railroad yard. I went to the place I thought it was, and yes, it surely looks like there used to be a track there, more than 100 years ago. Over time, railbeds that used to look pretty sturdy get their rocks and soil moved around by plants and erosion. Plus the ties they used rotted fairly quickly (10 years) and often weren't ballasted. Go look at the aerial photo and judge for yourself. Looking at it in person, there is definitely a hump where it looks like a track curving to the south.

Stupid GPS lost its fix until I turned the corner onto Route 56, so the trip was more like 16 miles than the 13 my GPS receiver recorded.

Posted [01:24] [Filed in: bicycling] [permalink] [Google for the title] [Tags ] [digg this]
qrcode

Thu, 26 Oct 2006

Ride starting Sun Oct 22 11:05:31 2006

19.65 km 64476.42 feet 12.21 mi 9269.00 seconds 154.48 minutes 2.57 hours 4.74 mi/hr

Rode with five others on an ADK ride on the Rutland Trail. Rain was predicted and we weren't disappointed. Started to rain just as soon as we left the Norwood Post Office (the marshalling point). At first it wasn't bad since it was a light rain and below freezing so it just bounced off. It had rained all week prior to the trip, so the trail was nice and wet; about as wet as springtime. Plus some beavers had cut down trees just about where the X is drawn on the track, so we had to skirt them. Hopefully the ATVers will cut them before they get frozen down to the ground; otherwise the snowmobilers will have a disappointing season. By the time we got to Blind Crossing Road, it was raining pretty steadily and the consensus was to head back. Could have gone on the road, but we stuck to the trail (except for the muddy mile). Decided to go on the road rather than have to climb around trees again. Got thoroughly soaked and frozen. Hopped in the tub after I got home, and it took about an hour for my skin to lose its raw red appearance.

Posted [02:10] [Filed in: bicycling] [permalink] [Google for the title] [Tags , , ] [digg this]
qrcode

Sat, 21 Oct 2006

Pinker 1, Lakoff 0

Doc Searls links to George Lakoff's Whose Freedom?, Daniel Pinker's review trashing the book, and George's response. Sorry, Doc, but Pinker definitely won this argument. Just take positive rights (the right to something good) and negative rights (the right not to be subjected to something bad). George totally gets them wrong. Here's what he wrote:

In Whose Freedom?, I discuss the difference between freedom from and freedom to (page 30). Then, throughout the book, I show that both the progressive and conservative versions of freedom use both freedom from and freedom to. For example, progressives focus on freedom from want and fear, as well as from government spying on citizens and interfering with family medical decisions; they also favor freedom of access to opportunity and fulfillment in life (e.g., education and health care). Conservatives are concerned with freedom from government interference in the market (e.g., regulation) and they are concerned with freedom to use their property any way they want. In short, the old Isaiah Berlin claims about the distinction do not hold up.

Clearly George has no conception of the difference. The "freedom from want and fear" are both in fact the freedom to coerce somebody else into supplying resources to satisfy your wants, and coerce somebody else into protecting you. That's backwards. His "freedom of access to" is an attempt to wiggle out of saying "freedom to coerce others into supplying you with" (education and health care).

The "freedom to use their property" is in fact a freedom from interference. Again, he gets this totally backwards, and yet not only expects us to believe him, but he uses these as evidence that he understands the concept after Pinker says he doesn't. That's like (to use a metaphor) saying that you understand math, being challenged on it, and then saying "Oh yeah?? Well two plus two is five; anybody can see that I know math."

Doc calls it good reading. I call it painful reading, because George is making a fool of himself.

Posted [02:40] [Filed in: economics] [permalink] [Google for the title] [digg this]
qrcode

Efficient Allocation Of Resources

People who are not familiar with the operation of free markets object to the statement "the market allows for efficient allocation of resources". They look at their own life, or their friends' lives, and see all sorts of inefficiency. Efficient is relative, though. It should really go: "free markets provide the most efficient allocation of resources". The difficulty is that the problem is ineffably hard.

Ever tried to pack suitcases into a trunk? Now imagine 300,000,000 trunks and several times as many suitcases, where the drivers are moving the trunks around and the suitcases are changing size. The difficulty of the problem is beyond the imagination, much less any solution to it. The best solution is not going to be found in standardizing suitcases or stopping the drivers from moving. The best solution is to allow the drivers to choose the suitcases that best fit their trunks.

Posted [01:50] [Filed in: economics] [permalink] [Google for the title] [digg this]
qrcode

Tue, 17 Oct 2006

Daddy is healing his cut

This sounds totally creepy: Imagine a mother, saying to her child "Come play with me, honey; Daddy is healing his cut."

You can't imagine anybody saying that, can you? That's because western medicine completely ignores the conscious mind. You can find hundreds of stories of doctors talking about the patient as if the patient wasn't there. And yet there is plenty of evidence that the conscious mind can very effectively participate in healing the body. Everybody knows of the placebo effect, I hope. That happens when a doctor (or some other medical authority) gives the patient an innocuous substance and explains the effect that the substance will have on the patient. For some described effects, to an extent, and for a time, the substance will actually have that effect.

There's also been a study which shows that painkillers reduce the healing rate. I speculate that an absence of pain stops the conscious mind from being reminded of the harm. Without the help from the conscious mind, the body has a harder time healing itself. Call it the reverse placebo effect if you want.

Thus, at some point, western medicine is going to "discover" that people can direct healing consciously. Dudes, let me tell you: I've already discovered it, but hey, if you want to take credit, by all means, feel free.

Posted [01:31] [Filed in: life] [permalink] [Google for the title] [digg this]
qrcode

Jim Crow and Anti-Discrimination

Today, somebody asked me what this meant: "Court thus concluded that places of public accommodation had no "right" to select guests as they saw fit, free from governmental regulation." ? I said "It means that a store-keeper has to subject himself to whatever whim politicians wish to impose on him." Then I noticed that Jim Crow laws and Anti-Discrimination laws are opposite sides of the same coin.

They both express the idea that the government can tell you who you must or must not associate with. I disagree with that. Just because you admit some or all people to your place of business doesn't mean that you should be forced to admit all or some people. It's unfortunate the the forces of good would be so willing to use the tool that the forces of evil used. I think it would be better if the forces of good would destroy the tool, lest it fall into the hands of evil.

Racism is evil; it used the tool of government coercion to force people to discriminate. Anti-racism is good; it used the tool of government coercion to force people not to discriminate. I'd prefer to see that tool destroyed, rather than used for good.

Private entities can still discriminate, or not discriminate. What is gone is the ability for good people to force everyone to be good, or for bad people to force everybody to be bad. Everybody agrees that it was bad when bad people were forcing everybody to be bad. Lots of people think that it's okay for good people to force everybody to be good. I think they're missing the fact that the idea of forcing everybody is the true danger. Just because the good people are in control now, that doesn't mean that they'll always be in control.

Sometimes discrimination is good. Suppose a black person wanted to hire only black people in her factory, to help give them a leg up? She couldn't do that; it would be illegal discrimination. Suppose a white person feels bad about slavery and wants to enact his own personal reparations program by paying black people more simply because they were black. (A black person might want go all cynical on me right now with a succinct "Ha!" Maybe they're right to be cynical, but we'll never know if a white person wanted to do that, because it would be illegal discrimination.)

If people can't be forced to discriminate (as Jim Crow laws did), and they can't be forced to not discriminate (as Anti-Discrimination laws do), then there will be some people who discriminate for evil, some people who discriminate for good, and some people who do not tolerate any kind of discrimination. I'd rather deal with that than a world where people accept that it's okay to force people to associate, or to force them to note associate.

Posted [00:23] [Filed in: economics] [permalink] [Google for the title] [digg this]
qrcode

Mon, 16 Oct 2006

Reusing a floppy stepper motor

This is the second in a series of postings about the Makezine controller. The first one was the Jedi Cursor.

Most 5.25" floppy disk drives have a stepper motor in them for positioning the head, plus interesting widgets like optical emitters and detectors. With a little bit of work, they can be removed and put back into service with your Makezine controller. I put together a set of photos showing how I disassembled my floppy disk drive and removed the useful bits.

A stepper motor has magnets, poles, and windings. The windings go around the poles, and you energize the windings in a specific order to make the motor turn in one direction or the other. A motor can have four, five, or six wires coming out of it. You will need to use an ohmmeter to determine the meaning of the wires.

  1. A stepping motor with four wires has only two windings and is bipolar. You have to be able to drive it with positive and negative voltages. In order to make the magnets spin around, you need to energize the windings with positive and positive, then negative and positive, then negative and negative, then positive and negative. You don't have to worry about which pairs of wires go with which winding. Just hook all four up to the digital outputs.
  2. A stepping motor with five wires has four windings and is unipolar. One of the wires is a common connection for all four windings. It will have the same resistance to the other four wires. Connect that wire to ground and the other four to the digital outputs.
  3. A stepping motor with six wires has four windings and is unipolar. One of the wires is a common connection for two of the windings, and the other for the other. It will have an equal resistance measurement to two other wires, and infinite resistance to the other three. Connect both common connections to ground, and the other four to the digital outputs.

Once you have the motor connected, you will need to drive it with the correct sequence. Fortunately you can't hurt the motor by giving it the wrong sequence. It will just flail around helplessly. In the program below, the sequence is set by "order". It lists the digital output numbers in the order of the windings. Keep trying orders until the motor continuously turns in a circle. Note that the software requires the last of five be the same as the first. Uses an extra entry to keep the code clean.

Run the program like this. Servo.py emits the OSC commands in the proper order and schedule. sendOSC hands them off to the Makezine controller.

./servo.py | (trap "" SIGINT;osc/sendOSC/sendOSC -h  192.168.0.200 10000)

#!/usr/bin/python
"""servo.py -- runs the servo around and around"""

import time, sys

# set this to false to see the LEDs light up like the windings are energized.
if True:
    service = "digitalout"
    command = "value"
    order = [ 4,5,6,7,4 ]
else:
    service = "appled"
    command = "state"
    order = [ 0,1,2,3,0 ]

set = "/%(service)s/%%s/%(command)s " % locals()
set0 = set + "0\n"
set1 = set + "1\n" + set + "1\n"
set2 = set + "0\n" + set + "1\n"

pausetime = 0.05

def run():
    for i in range(0,4):
        sys.stdout.write(set1 % (order[i], order[i+1]))
        sys.stdout.flush()
        time.sleep(pausetime)
        sys.stdout.write(set2 % (order[i], order[i+1]))
        sys.stdout.flush()
        time.sleep(pausetime)

try:
    while True:
        run()
except KeyboardInterrupt:
    for i in range(0,4):
        sys.stdout.write(set0 % (order[i]))
        sys.stdout.flush()

Posted [21:48] [Filed in: opensource] [permalink] [Google for the title] [digg this]
qrcode

Ride starting Mon Oct 16 16:44:54 2006

20.32 km 66681.55 feet 12.63 mi 3737.00 seconds 62.28 minutes 1.04 hours 12.17 mi/hr

A beautiful fall ride. A little cool; 57 degrees, but in shorts and t-shirt. Some pretty leaves still on the trees, but it's "past peak" as most people say. Hit a new top speed: 37.1 MPH according to my GPS receiver. Average speed is a little low; stopped in to visit my friend Robin and see his new house, but he wasn't home.

Posted [17:59] [Filed in: bicycling] [permalink] [Google for the title] [Tags ] [digg this]
qrcode

The minimum wage as a magic bullet

Leftists want to treat the minimum wage as a magic bullet. Shoot it off, and it magically reduces poverty. The problem with any magic bullet, though, is that it comes down somewhere. With enough margic bullets, or by affecting enough people with the magic, it will hit somebody. Leftists try to claim that, because you can't ever find the bullet, that the bullet somehow disappears.

For a small enough minimum wage increase, you can't identify anyone whose employment got destroyed because their labor is no longer worth the minimum wage. You can't even pull out the loss of that job from all the other changes in the work force. But like the magic bullet, it has to land somewhere. If you can't identify the person who got hurt, did they not get hurt?

Posted [02:26] [Filed in: economics] [permalink] [Google for the title] [digg this]
qrcode

Sat, 14 Oct 2006

Too Little Unemployment?

Could there be such a thing as too little unemployment? Leftists will say "Not for us, but maybe for businesses. They can only exploit workers when unemployment is high enough to force everybody to take the first job they can get no matter how lousy. From businesses perspective, there can definitely be too little unemployment."

If you accept the idea that there is a natural rate of unemployment, which results from the cultural amount of job-switching, the acceptance of unemployment, and people's expectations, then yes, a rate of unemployment lower than that would be a bad thing. It would mean that the economy is providing sufficient jobs, but that people don't feel that way. It could also mean that people are reluctant to stay unemployed for any period of time. They might be expecting bad times.

It could also be that people don't switch jobs too often, so that people take a new job because they're scarce. People might not switch because of benefits designed to retain employees; for example leave time, or sick days, or liberal sabatticals, or health insurance tied to employment.

Posted [01:30] [Filed in: economics] [permalink] [Google for the title] [digg this]
qrcode

Mon, 09 Oct 2006

Obi-Wan the Cursor

I use four screens, and sometimes lose my cursor. No more! I have Obi-WanQui-Gon to point the way for me. Using the Makezine Controller, a small X program, OSC, and a pair of servo motors, I have a real-life cursor (2.4MB video).

The X program (included below) tracks the cursor, and ten times a second, sends an OSC (Open Sound Control) command using sendOSC to the controller. The commands work together like this:

~/src/servo | osc/sendOSC/sendOSC -h  192.168.0.200 10000

/* compile with this command:
cc servo.c -o servo -L/usr/X11R6/lib -lX11
*/
#include <stdio.h>
#include <X11/Xlib.h>

main(int argc, char *argv[])
{
    Display *dpy = XOpenDisplay(NULL);
    Window thiswindow;
    Window root, child;
    XEvent ev;
    int x, y, oldx, oldy;
    int junk;
    unsigned int state;

    thiswindow = DefaultRootWindow(dpy);
    for(;;) {
        XQueryPointer(dpy, thiswindow, &root, &child, &x,&y, &junk,&junk, &state);
        if (oldx != x || oldy != y) {
            printf("/servo/0/position %d\n/servo/1/position %d\n", x / 3, y * 1024 / 768);
            fflush(stdout);
            oldx = x;
            oldy = y;
        }
        usleep(1000L * 1000L / 10);
    }
}

Digg this!

Posted [22:34] [Filed in: opensource] [permalink] [Google for the title] [digg this]
qrcode

Sun, 08 Oct 2006

Ride starting Sun Oct 8 15:07:05 2006

21.99 km 72150.65 feet 13.66 mi 5870.00 seconds 97.83 minutes 1.63 hours 8.38 mi/hr

Left a geocache on the Rutland today. Just a simple out and back, complicated only because I took the road around the wetest and mudiest portion of the trail.

Posted [18:45] [Filed in: bicycling] [permalink] [Google for the title] [Tags , , ] [digg this]
qrcode

Ride starting Sat Oct 7 15:36:30 2006

35.83 km 117556.59 feet 22.26 mi 9834.00 seconds 163.90 minutes 2.73 hours 8.15 mi/hr

This has become more or less my standard ride. Go out on the Rutland, and either return on 11C / 11, or else return on the Rutland itself. Removed a few fallen branches from the trail.

Posted [00:47] [Filed in: bicycling] [permalink] [Google for the title] [Tags , , ] [digg this]
qrcode

Fri, 06 Oct 2006

Mark IX keyboard

This is the first keyboard produced from measured drawings. I have a little Python program which generates a full-size postscript drawing. I print that to sticky paper and stick it on a sheet of plastic. Then I cut the plastic to the drawing. In this case, I wasn't using exactly the right plastic. It's .040 polyester. Polyester is a little flexible, and .040 is a little thin. It's 1mm thick, and the switches really need 1.2mm to lock in well.

This keyboard is a direct descendant of the Mark VIII keyboard. That one used a flat plastic platform for the keys just as this one does. However, it was cut by hand from cardboard and hot-melt-glued together. This one was cut in a reproducible manner.

I botched this particular keyboard because I cut some of the key holes too large, and the keys fall out. Worse, the thinness of the plastic bears on the hand in certain places and makes it fairly uncomfortable. This design simply will not work.

 (Thumbnail)  (Thumbnail)  (Thumbnail)

Posted [11:34] [Filed in: chordite] [permalink] [Google for the title] [digg this]
qrcode

Tue, 03 Oct 2006

Ride starting Mon Oct 2 16:03:06 2006

19.41 km 63674.55 feet 12.06 mi 4860.00 seconds 81.00 minutes 1.35 hours 8.93 mi/hr

Went up to Norwood today. Rode east on the Rutland Trail. Moved a few branches out of the way. There's a tree that needs sawing up before it can reasonably be moved off the trail.

Posted [00:20] [Filed in: bicycling] [permalink] [Google for the title] [Tags , , ] [digg this]
qrcode