July 07, 2017

Alexa: The End of a Great Relationship

“Alexa, you’re disappointing me,” I said.

“I’m not sure about that,” replied Alexa, my Amazon Echo.

I once described the device gushingly as a “wonderful listener”. I had great plans to make her the hub of the DIY home security system I’m designing. She used to play whatever music I asked for. She answered questions pretty well.

But the affair is over. Alexa doesn’t play nice with others anymore.

The Home Security Fail

Echo supports a website called IFTTT, which allows even non-nerds to program connections between devices and services. IFTTT is also supported by my home security camera, Arlo. Great, I thought, I can make them work together. There are already IFTTT scripts you can use so that you can tell Alexa to arm or disarm your security system. There are scripts to send email or texts when Arlo sees motion. But I couldn’t find a script to have Alexa tell me when the camera detects motion. “Aha,” I thought, “a product opportunity. I’ll write one.” (I’m retired; I would’ve just made it available free.)

Then I found out why there are no such scripts: Amazon does not support an IFTTT interface which lets you tell Echo to do things, only an interface so Alexa can tell other things what to do. In my experience a willingness to give suggestions but never take any on the part of one party does not lead to a good relationship. This is actually Amazon being selfish. Amazon-provided services, like the one they hope to make replace what’s left of the home telephone, can make Alexa speak up. But Amazon has apparently decided to keep this interface to themselves. They have a right to do that, but they make Alexa a lot less desirable as part of any system if she can’t be made to tell her owners what’s going on.

The Music Spat

“Alexa,” I said on Independence Day, “play ‘Courtesy of the Red, White, and Blue’.” Every 4th since 9/11 Mary and I play this Toby Keith song loudly.

“Here is a sample from ‘Courtesy of the Red, White, and Blue,” said Alexa and proceeded to play a 20 second snippet. Then she asked me if I wanted to sign up for an Amazon Music account.

I remembered that lately she has been picky about just playing music without specifying what service to get the music from. “Alexa, play ‘Courtesy of the Red, White, and Blue’ from my iHeart Radio account.”

“Do you want me to set up a ‘Courtesy of the Red, White, and Blue’ radio station on iHeart Radio?” she asked.

“When I said “no”, she just shut down and played nothing. So I tried again and said “yes”. She started to play music but not the song I asked for. She didn’t respond to some of my profanity.

I told her to play from Pandora. She said my Pandora account wasn’t linked (it used to be). I linked it. “Do you want me to set up a ‘Courtesy of the Red, White, and Blue’ radio station on Pandora?” Still can’t get her to play our song.

This all used to work so I did some research. Turns out that Echo now supports two types of music service linking: music library and radio stations. You can only get specific songs and artists from music libraries. Music libraries supported are only Amazon Music and Spotify paid service. iHeart and Pandora are “station suppliers” when accessed through Echo; they play songs like the ones you requested (in their opinion) but not what you requested.

Sorry, my dear Alexa, that doesn’t work for me. I made a Bluetooth connection between Echo and my droid phone (not as easy as it should be). Played ‘Courtesy of the Red, White, and Blue’ from my Google Music account, and made Alexa a Bluetooth speaker. Finally we heard our song. To be fair, this is very similar to Chromecasting (Google) my Amazon prime video to my TV.  Google doesn’t want to play nice with Amazon any more than vice versa. But it was Alexa I was infatuated with.

Alexa, you’re disappointing me.

See also:

Arlo: DIY Home Security

Alexa – Cover Your Ears

July 03, 2017

Freedom and Responsibility

Once the American Revolution was won, the colonies had the freedom they’d fought for. They also had the responsibility that came with freedom. When things went bad, there were no bossy Brits around to blame. And things did go bad. The Articles of Confederation adopted by the Continental Congress and eventual the colonies were inadequate during the war and a failure after. The current constitution, adopted in 1789, saved the day – but not without a great civil war.

A lesson for Independence Day is that freedom comes with responsibility.

We’re debating whether various drugs should be legalized. I think the answer, as it has been for alcohol, should be “yes”. With the freedom to use drugs comes responsibility (that’s why children, who aren’t responsible, don’t get freedom).  Drug use can’t be a mitigating factor for a crime even if the immediate decision to commit the crime was clouded by drugs. The decision to use drugs (or alcohol) led to the crime. Society has a responsibility to publicize the dangers of drug (or alcohol) use and to provide some help to those who are dependent. But, if society has an unlimited responsibility to those who choose to use, then society must take that choice away. That puts us back where we started with drug use banned. We can’t have freedom to use drugs without personal responsibility for their effects on us and how we deal with others.

We’re debating whether banks should be free from Dodd-Frank constraints. Yes, IMHO but only if they also have the freedom to fail. If there is any possibility of bailouts, then no freedom for banks. Bernie Sanders is right on this: too big to fail is too big to exist.

What about loans that provide the freedom to go to college? Sure. But the recipients have the responsibility to spend the money wisely and to pay it back whether they spent it wisely or not.

Shouldn’t we be free not to have our children vaccinated? No! Because you can’t take responsibility for the consequences either to your own children or to society as a whole, whose herd immunity is diminished by your choice. No freedom without responsibility.

What about freedom not to work at an “unfulfilling” job? Goes with the freedom not to eat assuming there’s some job available, you’re able to work, and there’s a daycare solution.

What about environmental regulation which restricts business? Businesses (I’m a businessman) should be careful what they wish for in this case. If there are no regulations, then you are responsible for harm that you do. Regulation can be a needed protection both against competitors who cut corners and unlimited liability. This is a tradeoff against freedom, one that I think we often need to make.

The glories of freedom should be celebrated on Independence Day. Celebrate responsibly!

June 28, 2017

Planting Cut Flowers

My friend Nancy quoted me a bit of extreme wisdom: “Making policy without studying history is like planting cut flowers.”

Bingo. Much of what passes for policy today is an attempt to get the bouquet and beauty of flowers without any messy work with seeds, roots, and dirt.

Healthcare won’t improve with the top dressing of more and more government subsidy. In fact life expectancy in the US has gone down for the first time since the peak of the AIDS epidemic despite the introduction of Obamacare. The roots of escalating health costs are obesity, opioids, and the fact that we can prolong life greatly if expense is not a consideration.

Businesses look for government grants to bypass the cumbersome business of attracting private investors or leveraging income from early sales.

We want a higher minimum wage without the training or skills which makes workers worth more.

We want everybody to be able to go to college without addressing the root problem that our K-12 system is graduating people who aren’t ready to flower in a post-secondary environment.

For politicians there’s an obvious advantage in planting cut flowers so long as they don’t whither before the next election. It takes a long time to make visible progress from the roots up. It behooves us all to study history.

June 23, 2017

Arlo: DIY Home Security

We already have a traditional home security system; but I’m a nerd so can’t resist the new gadgets. The sandbox for my experiment is Mary’s currently unprotected vegetable garden. Despite a fence, it is subject to immediate attack by critters unknown whenever a leaf pokes above the dirt. Nothing can survive there except weeds (critters don’t eat weeds), grapes, and raspberries. Obviously we need a crittercam to identify the culprit.

I bought Arlo (see picture below) because it’s double wireless: runs on lithium batteries and uses WiFi to talk to its base station. Software nerds try to avoid wires. The camera includes a motion detector so it only records video when it thinks something is going on. Video clips go immediately go the cloud where they’re stored free for seven days with more time available at a premium; the critter won’t be able to destroy anything to cover its video tracess. Arlo supports IFTTT (If This Then That), which lets me program connections with other devices. It comes from Netgear as does my router making me think (correctly) that setup would be easy, Arlo got pretty good reviews on Amazon. I did not do a thorough search of competitive devices – too many of them.

The starter kit comes with one camera and a base station, which can support up to 5 cameras on the free plan. The base station is physically connected to your router with an included Ethernet cable; does mean you must have a port available on your router. You put batteries in the camera and turn it on. You pair it with the base station by holding it close and pushing the pair button on both devices. Easier than Bluetooth. However, this tells us that the camera is communicating directly with the base station by WiFi and is not actually part of the WiFi network managed by your router.  You won’t like this limitation if you have used multiple routers to extend the area of your home WiFi network; the cameras will still all have to be in direct range of the base station and you may need multiple base stations.

You use the Arlo smartphone app (iOS or Android) to set up the camera and then the app is the best way to monitor what’s going on. First I put Arlo on a table in the living room. Every time I walked by, my phone promptly buzzed. The app let me view the latest recording (me shambling by), earlier recordings, or a “live” view – whatever the camera sees now regardless of whether motion has been detected. There is also a browser-based version of the app for use on your computer. If you want it to, Arlo will send you an email when he detects motion. Most intriguing, Arlo triggers IFTTT events; this means IFTTT scripts could be written to do almost anything when motion is detected including setting off an alarm (or perhaps a sprinkler in the garden). Will blog about that when I do it.

Once Arlo passed the living room test, it was time to install him as crittercam. The base is a metal hemisphere which attaches with one screw (even I can do that). There is a magnetic indent in the back of Arlo which gloms onto the hemisphere so you can angle the camera in a good range of directions. We angled him towards a collection of lettuce we’d put out as critter bait.

Arlo (2)

I may have angled Arlo too high. He reported a couple of intrusions but there was never anything to see. I do expect some false alarms; things move outside. Then I went out to take Arlo’s picture for this post. I thought he’d take a video of me taking a picture of him. But he didn’t notice me until I was latching the gate on the way out. I could need an Arlo Pro with advertised better sensitivity, a wider angle lens, and sound; nerds are suckers for upgrades.

Arlome

Haven’t caught the critter yet but it won’t be long.

June 20, 2017

Teach a Person to Fish and…

We all know the Chinese proverb:

“You give a poor man a fish and you feed him for a day. You teach him to fish and you give him an occupation that will feed him for a lifetime.”

Elon Musk, founder of Tesla and SpaceX, thinks that robots will do all the fishing we need so we’ll have to provide free fish daily:

“There will be fewer and fewer jobs that a robot cannot do better. I want to be clear. These are not things I wish will happen; these are things I think probably will happen. And if my assessment is correct and they probably will happen, than[sic] we have to think about what are we going to do about it? I think some kind of universal basic income is going to be necessary…”

Former Labor Secretary Robert Reich agrees:

“…we will get to a point, all our societies, where technology is displacing so many jobs, not just menial jobs but also professional jobs, that we’re going to have to take seriously the notion of a universal basic income.”

I think this is elitist nonsense. “You are useless,” is what Musk and Reich are saying to many people around the world; “but don’t worry; we’ll feed you like the animals in the zoo (so long as you vote the right people into office).” It’s hard to think of any worse solution to the non-existent problem of not enough jobs than a universal dole.

Bernie Sanders, whom Reich supported in the primaries, does believe in jobs. His plan for free college, at its best, would be a form of teaching people to fish. However a degree in political correctness with minors in sloppy thinking and grievance politics doesn’t teach you how to bait a hook… or how to weld or wire circuits or plumb. Of course there are college whose students are taught to fish. Champlain in Burlington, VT (of which Mary is a Board member) teaches not only accounting but also digital forensics. Not surprisingly, almost all its graduates get jobs.

Donald Trump, whom Reich calls a fascist, also believes in jobs; that belief got him elected. IMHO the reason so many people voted for Sanders and Trump is these voters don’t like being told by elites that they are useless. I think Trump is wrong to blame unemployment principally on foreign competition (including illegal immigrants); I think he is absolutely right to support apprenticeship programs as a way to teach fishing and welding and circuits and plumbing.

Apprenticeship is also the best way to learn computer programming, as I know from experience. Two more advantages of apprenticeship as opposed to classroom learning: your teacher is a useful role model because she is practicing what’s she’s teaching and you learn that you can learn a skill. The specific skill may become obsolete; it will certainly change. But, once you know you learned how to catch trout, you will be confident that you can learn to catch tuna.

We know there is no current shortage of skilled jobs, for many of which a college degree is useless. There is no unemployment among commercial truck drivers, welders, plumbers, electricians, dispatchers, etc. etc. Anyone with these skills can find work (although sometimes relocation is necessary).

But what about unskilled jobs? Well, they certainly haven’t disappeared yet; look at the help-wanted ads. Retailers are finding they need to pay more to get workers; always a good sign. One reason why entry-level wages haven’t gone up faster, unfortunately, is that welfare benefits in many states including Vermont go down more quickly than take home pay goes up at salaries near the minimum wage.

Farmers around the country are complaining that Trump has scared away the undocumented workers who used to work at minimum wage (if that) so there’s no way to harvest the crops or milk the cows. I admire the migrant workers and their work ethic. Farm work is hard; legal residents can earn as much or more at McDonalds, which doesn’t hire undocumented workers. Farmers will need to pay more to get people who do have an alternative to take hard farm jobs. That’s a good thing even though food prices will go up some. People won’t stop eating. But there are jobs!

Will these jobs exist tomorrow or will they all be automated away as Musk and Reich seem to think? My friend Andy Kessler writes:

“This is a false premise. All through history, automation has created more jobs than it destroyed. Washboards and wringers were replaced by increasingly inexpensive washing machines, while more women entered the workforce. Automated manufacturing and one-click buying has upended retail, yet throughout the U.S. millions of jobs go unfilled…

“The economics, which they apparently stopped teaching at Harvard, are straightforward: Lowering the cost of goods and services through automation allows capital—financial and human—to attack even harder problems. Wake me up when we run out of problems.”

Milking a cow is done with a machine. Clerks at McDonalds enter orders on computers. Automation makes each human’s contribution worth more, not less. All the jobs will change; some will disappear. New unimagined and better jobs will materialize. I’ve made a living for most of my life from computer programming. The job didn’t exist when I was born.

No one is “useless”. Our affluence lets us help those who need help; we should do that generously. The best help will often be teaching a person to fish.

See also: No Job is Bad

June 15, 2017

Fathers Are Coconut Shells

That’s our role with respect to our daughters; I have two. Father’s Day reminds me of this, but it’s been known since antiquity.

We’re supposed to be very tough, protect the vulnerable young ladies from any and all threats. Locking a girl up in a tower may be a bit extreme; but, if you remember, Rapunzel ended up living happily ever after.

We’re supposed to be very tough (I may have said this already); but we’re also supposed to lose. It wouldn’t be good for the coconut species if the fruit could easily be eaten by rodents; it also wouldn’t be good for the species if the shell were made of plastic. Eventually it has to rot away. It’s our job to lose, but not until the right suitor comes along.

If a young man blanches at the prospect of cleaning the Augean Stable, good riddance to bad rubbish. Do you think he’ll take out thrash? If he won’t fight the Nubian Lion, how’s he gonna deal with the IRS. If he can’t kill a Hydra, think of the crabgrass problem they’ll have. Don’t think he gets welcomed with open arms after he finishes his Herculean labors, either. By definition no one is good enough for a daughter.

His last task is to convince his beloved she wants to be with him even more than she wants to obey her father and then to bravely abscond with her. At that point we do our job and lose. The coconut shell shreds. Hopefully they live happily ever after.

We may even get to play with the grandchildren when our sons-in-law forgive us. They do get very understanding as soon as they have daughters of their own.

BTW, mothers have their own methods for dealing with unworthy daughter-in-law candidates. But they (the mothers) play rough.

Happy Father’s Day.

June 13, 2017

The World is Getting Fat

More than 10% of us are obese. That’s not “us” Americans; that’s “us” citizens of the world. According to a study funded by the Gates Foundation and published in The New England Journal of Medicine, the number of obese people has doubled or worse in 75 countries in the last 25 years. It hasn’t gone down in any of the 195 countries studied. Although a greater percentage of adults than children are obese, the obesity rate among children has been going up faster than among adults in many countries. In this study, obesity is defined as a body-mass index (BMI) over 30; people with a BMI between 25 and 29 are classified as “overweight”.

From the study:

“In our systematic evaluation of the health effects of high BMI, we found that excess body weight accounted for about 4 million deaths and 120 million disability-adjusted life-years worldwide in 2015. Nearly 70% of the deaths that were related to high BMI were due to cardiovascular disease, and more than 60% of those deaths occurred among obese persons…

“… Across levels of development, the prevalence of obesity has increased over recent decades, which indicates that the problem is not simply a function of income or wealth. Changes in the food environment and food systems are probably major drivers. Increased availability, accessibility, and affordability of energy-dense foods, along with intense marketing of such foods, could explain excess energy intake and weight gain among different populations. The reduced opportunities for physical activity that have followed urbanization and other changes in the built environment have also been considered as potential drivers; however, these changes generally preceded the global increase in obesity and are less likely to be major contributors.”

Malthus has apparently been turned on his ear by abundance (and foreign aid):

“Many of the countries with the highest increases in the prevalence of obesity are those that have a low or middle SDI [roughly prosperity level - TE] and simultaneously have high rates of other forms of malnutrition. These countries generally have limited financial resources for nutrition programs and mostly rely on external donors whose programs often preferentially target undernutrition; consequently, food security frequently takes precedence over obesity in these countries.”

The word starvation doesn’t appear in the study and malnutrition only once, so I don’t know if death rates from lack of food have gone down as much as death rates from too much food have gone up. In the developed world, death rates from BMI-related causes have not gone up as much as average BMI has; the study speculates that more treatment for these diseases is available in the wealthy world. Probably one cause of rising health care costs.

In a generation, the world’s problem with food has shifted, in many places, from too little to too much. This change is largely due to technology and the increase in productivity both of people and of farm land. We live in a time of abundance, something I’ll write about more. Ironically abundance, like scarcity, can be a problem.

June 09, 2017

Swampy Puddle Drained

Good news from DC.

Tuesday Attorney General Sessions sent an order ending the practice of using settlement money from corporate wrongdoers for political slush funds. His statement accompanying the order says:

“When the federal government settles a case against a corporate wrongdoer, any settlement funds should go first to the victims and then to the American people— not to bankroll third-party special interest groups or the political friends of whoever is in power. Unfortunately, in recent years the Department of Justice has sometimes required or encouraged defendants to make these payments to third parties as a condition of settlement.  With this directive, we are ending this practice and ensuring that settlement funds are only used to compensate victims, redress harm, and punish and deter unlawful conduct.”

According to a UPI story, the Justice Department previously forced Bank America and Citicorp to make payments to groups which Congress had deliberately defunded including National Council of La Raza, the National Urban League, the National Community Reinvestment Coalition, and NeigborWorks America. You may or may not agree with these groups. You may or may not choose to contribute to them yourself. You may even lobby your Congresspeople to have money appropriated to these groups. None of that justifies Justice (or any other department) having the ability to appropriate what would have been funds paid to victims or the government; appropriations need to be made by Congress even if Congress doesn’t always do what you want.

Note that none of this is an argument for reducing the penalties that corporations pay for breaking the law; the question is just who decides where the money goes. There shouldn’t be any question. If there are identified victims, they should be compensated. If there is a fine, the money goes to the Treasury and should be spent per Congressional appropriation.

Allowing a corporation to pay part of its penalty with contributions reduces the punishment and makes the deterrence less effective. Fines aren’t tax deductible; contributions can be. Moreover, a contribution can be used for positive PR.

From a good government PoV, the party which appoints the federal attorneys should not be able to use settlements to reward its supporters. Do you want Trump appointees deciding which interest groups should be funded? Neither do I. I didn’t like Obama appointees making these decisions either. This may not be illegal but its corrupt.

One more example of such a settlement is Volkswagen and its cheating diesels. I have one; I was very proud of my 40+ MPG until I found out this was at the cost of heightened nitrous oxide emissions. Nitrous oxide is not only a more potent greenhouse gas than carbon dioxide; it also has a direct negative effect on human health. Part of what VW is paying is $2.7B to fund “environmental remediation” projects and $2B for charging infrastructure for electric vehicles. Victims (including me) also get their cars fixed and some other money.

Superficially this sounds good; VW harmed the environment; they should pay to fix it. But no one knows how these mitigation funds will be spent. Part goes to a trust fund administered by the states. The Vermont Agency of Natural Resources is asking for public input on how it should spend our share. In other words, the federal attorneys who settled this case with VW (subject to court approval) get to create slush funds in each of the states which will be spent without appropriation by the state legislatures.

If Sessions’ order had been in effect when this settlement was reached, the $4.7B would have gone into the US Treasury. If Congress felt that it was best spent on some sport of environmental projects, they could have appropriated it for that purpose. If they felt it was better used for healthcare or defense or addiction-prevention, they could have so appropriated it. It could even be a drop in the tax relief bucket.

Sessions order is a welcome small step back to good (and constitutionally correct) government.

June 06, 2017

Minimizing Civilian Casualties

The question is which civilians when and where.

“US military reports 484 civilian deaths by US-led coalition attacks, but outside monitors put the number much higher,” says an Aljazeera story about the battle for Mosul since mid-2014 when ISIS took control there. Life and death are surely hell for the people caught between ISIS and very slowly advancing Iraqi forces who have “coalition” (mainly US) air support. But life and death were hell for many of them since ISIS took over the city. We don’t know how many people were killed for the sin of being Shiite or not properly following ISIS orders in Mosul alone. We know how many victims of ISIS-inspired terrorism there have been in the West. We have no idea how many people have been murdered, tortured, or sold into slavery by ISIS-affiliates in the Middle East and Africa – but we know the numbers are huge.

Aljazeera goes on to quote its reporter Osama bin Javaid:

“Saving people is proving to be easier said than done. Aid workers and rights groups have been repeating their concerns that in the process to push ISIL out, Iraqi forces must make sure that civilians are not caught in the crossfire.”

Javaid doesn’t explain how the Iraqi forces are supposed to “make sure” that civilians whom ISIS is hiding among and behind are “not caught in the crossfire”. The New York Times explains the problem:

“Some of the soldiers here, as well as one resident who had managed to flee, spoke of the Islamic State fighters’ trying to round up anyone still living in the area and forcing them to retreat with them toward the Old City.

“It’s a chilling thought, horrifyingly consistent with how the Islamic State has fought this battle for months. The militants’ last stand may well take place behind a wall of civilians.”

The only way to prevent these civilian deaths would be to stop fighting ISIS – which would lead to many more civilian deaths. Perhaps some civilians in Mosul would be spared if the ISIS fighters were allowed to escape Mosul and continue killing somewhere else. But this is not an acceptable solution.

Meanwhile the battle for Raqqa, the self-proclaimed capital of the ISIS caliphate, has just begun. Crushing the head of the ISIS snake in Raqqa won’t end terrorism, of course. However, decapitating the command structure will help prevent ISIS from organizing the kind of huge attack on the West it is longing to commit (and no doubt planning). The US finally decided to ignore Turkish objections and armed Kurdish forces, who are willing to fight for Raqqa. We are also supplying air support and advisors. A swift victory in Raqqa is important in order to capture and kill as much of the ISIS leadership as possible. There will be more civilian casualties. That is terrible. But not as terrible as allowing ISIS to regroup and continue its murderous ways.

Al Jazeera quotes UN human rights chief Zeid Ra'ad al-Hussein:

“[the] rising toll of civilian deaths and injuries already caused by air strikes in Deir Az Zor and Raqqa suggests that insufficient precautions may have been taken in the attacks…just because ISIL holds an area does not mean less care can be taken. Civilians should always be protected, whether they are in areas controlled by ISIL or by any other party.”

The story does not contain any suggestion from al-Hussein on how citizens who are being used as shields should be protected. The NY Times story describes ISIS snipers shooting fleeing civilians. These lives could be saved if ISIS would let people get out of the way of the battle instead of shooting them.

We don’t have to – and can’t – wait for another 9/11. As painful as it is, we must recognize that civilian casualties in Mosul and Raqqa are the terrible price the world pays – because of ISIS – in order to prevent even more civilian casualties in more places later. This is a terrible choice to make. We must face it.

May 31, 2017

Merkel and Trump are Both Right

Europeans should take their fate into their own hands.

European self-reliance is good for us (the US), good for them, and bad for Putin despite the nattering talking heads opining on how he is enjoying what appears to be a NATO spat. The first result of this need for self-reliance is that Germany will begin to up its contribution to NATO to the required 2%. Merkel had been pushing for that. According to The Economist, her opponent in the upcoming election Martin Schulz is against an increase in German defense expenditure. Trump has helped Merkel’s argument that Germany can’t free-ride on American expenditures. If German and other continental European contributions go up, NATO will be stronger, as it needs to be to confront an increasing Russian threat.

Merkel said: “The times in which we could totally rely on others are to some extent over, as I have experienced in the past two days.” Rebuilding Europe including our former adversaries after WWII was a brilliant stroke of US policy. An alliance with Europe is still crucial, but treating these countries as continuing dependents is no longer useful nor needed. The second benefit to Europe paying their fair share to NATO is that they will feel and act like equal partners.

The USSR used to draw a parallel between its construct of satellite countries and US-financed NATO. The comparison was always far-fetched but it is ironic that NATO remained US-financed as the satellites became independent nations. An alliance of equals will be a strong hedge against resurgent Russian colonialism. Trump and Merkel are helping make that alliance more equal.

Blog powered by TypePad
Member since 01/2005