Paul M. Jones

Don't listen to the crowd, they say "jump."


Where conservatives have it wrong

YOU’RE A sensible, principled conservative. You want America to be a land of boundless opportunity and freedom, where people are treated as individuals and judged on their merits. You reject the divisive identity politics of the left - what matters most about any of us, you would insist, is not race or class or ethnic origins: it is personal character and achievement. There are few things about contemporary politics you deplore more than the demonizing or scapegoating of entire groups (“white males," “the rich," “the Christian right," “gun owners"), as though every member of the group is interchangeable and indistinguishable, wholly defined by a single disparaging label.

But let someone mention “illegal immigrants," and your principles fly out the window.

via Where conservatives have it wrong - The Boston Globe.

I have noted in conversation elsewhere, and I will say it here: it is immigration law that is wrong, not the illegal immigrants.


What should we do instead of the Obama health reform bill?

...

4. Make an all-out attempt to limit deaths by hospital infection and the simple failure of doctors to wash their hands and perform other medically obvious procedures.

5. Make an all-out attempt, working with state and local governments (recall, since the Feds are picking up the Medicaid tab they have temporary leverage here), to ease the spread of low-cost, walk-in health care clinics, run on a WalMart sort of basis. Stepping into the realm of the less feasible, weaken medical licensing and greatly expand the roles of nurses, paramedics, and pharmacists.

6. Make an all-out attempt, comparable to the moon landing effort if need be, to introduce price transparency for medical services. This can be done.

7. Preserve current HSAs. The Obama plan will tank them, yet HSAs, while sometimes overrated, do boost pending discipline. They also keep open some path of getting to the Singapore system in the future.

8. Invest more in pandemic preparation. By now it should be obvious how critical this is. It's fine to say "Obama is already working on this issue" but the fiscal constraint apparently binds and at the margin this should get more attention than jerry rigging all the subsidies and mandates and the like.

9. Establish the principle that future extensions of coverage, as done through government, will be for catastrophic care only.

10. Enforce current laws against fraudulent rescission. If these cases are so clear cut and so obviously in the wrong, let's act on it. We can strengthen the legal penalties if need be.

11. Realize that you cannot tack "universal coverage" (which by the way it isn't) onto the current sprawling mess of a system, so look for all other means of saving lives in other, more cost-effective ways. If you wish, as a kind of default position, opt for universal coverage if the elderly agree to give up Medicare, moving us to a version of the Swiss system and a truly unified method of coverage. But don't bet on that ever happening.

(As an aside, I *hate* the term "health care." It's not health care. It's *medical* care.) Via Marginal Revolution: What should we do instead of the Obama health reform bill?.


Trying Terrorists

When appellate courts decide questions of law, they set precedents for future cases. If they make allowances for the exigencies of the war on terror in order to uphold convictions of [Khalid Sheikh Mohammed] and his associates, it could end up diminishing the rights of ordinary criminal defendants. That’s why the smart civil-libertarian position is to oppose trying terrorists as civilians.

Maybe reducing rights is part of the point. Via Instapundit » Blog Archive » JAMES TARANTO: “You have to wonder if the Obama administration and its supporters bothered to think….



Experimental Economics in EVE

This is via my brother, Ben Jones, who is a molecular biologist by training and a PHP programmer in practice.

When large external events like these happen they of course impact relative prices within EVE but the robustness of the market quickly allows prices to reflect these changes or shocks to the market. This might be a good lesson regarding our real life economies, showing that if we allow markets to adjust without intervention from governments they correct much quicker than when we try to steer prices to the "correct" level - given that the rules of the market are clear and that information flows relatively freely between agents on the market.

from http://www.eveonline.com/devblog.asp?a=blog&bid=707

A brilliant example of free markets in action. (Incidentally, from a conversation with someone else entirely, you need to realize that "markets" does not mean "businesses" or "companies". It means "the interactions that arise between buyers and sellers" -- business is one part of it, consumers are another.)


The Future of Zend Framework is Solar

I have said it before and I'll say it again now: If you want to see the future of Zend Framework, look at the Solar Framework for PHP 5.

FYI: This is a cheerleading post. Some will be annoyed by it or find it "unfair". Others may find it informative and enlightening. I make no apology for advocating what I think are the good things about Solar, especially when other projects appear to be mimicking those things.

I noticed that Matthew posted the ZF 2.0 roadmap yesterday:

http://framework.zend.com/wiki/display/ZFDEV2/Zend+Framework+2.0+Roadmap

Solar is already doing most of what is described as the future for Zend. Let's go over this, shall we?

Unified constructor. All constructors will (optionally) accept an array of options or Zend_Config object as the first argument. This allows for more flexibility to add new arguments to the constructor, have variable numbers of arguments, and allow "named" arguments. Additionally, it's a good technique for allowing Dependency Injection.

Solar has had a framework-wide unified constructor for years now. As far as I know, Solar is the first PHP framework to demonstrate this design pattern and give it a name. You can have a unified constructor right now with Solar.

In addition, we already have a unified dependency injection and service locator implementation, via the unified configuration mechanism and a lazy-loading registry. You can have DI/SL right now with Solar.

Options. In ZF 1.X, the various components which accept options accept a variety of formats: some expect underscore_separated keys, others expect camelCasedKeys, others expect UPPERCASEDKEYS, and some expect lowercasedkeys. This leads to confusion for many, and also leads to difficulties debugging. Our goal in ZF 2.0 is to standardize option keys to correct this situation.

Currently, we are leaning towards all_lowercase_underscore_keys.

Solar has already standardized on its config keys as lowercase-underscore. You can have standard config keys right now with Solar.

Exceptions. Each component will have an Exception marker interface, with exceptions defined for discrete exception types thrown by the component. The concrete exceptions will either extend the global Exception class or an SPL Exception, and also implement the component Exception interface.

Solar provides a unified exception mechanism already. This is not quite the same thing as described in the ZF2.0 document, but if the idea is to have a unified way of throwing and recognizing exceptions, Solar is already doing it.

Design By Contract.

OK, we don't really do this. Solar tends to use adapters, plugins, class stacks, and duck typing, not interfaces.

Elimination of most singletons.

Solar doesn't use singletons. We use the registry and, occasionally, unified static-method-collection classes. You want two or more database connections? Mark them for lazy-load in the registry, and set your config file to use the appropriate service locator keys for whatever objects may need them. You can have this right now with Solar.

Creation of components for general-purpose, cross-functional actions. A number of components duplicate code, and we want to push the duplication areas into discrete components that the original components may then consume. Some of these include:

  • Plugins/Helpers/Strategies (seen currently in Zend_Controller_Front, Zend_Controller_Action_Helper, Zend_View (helpers and filters), Zend_Form (validators, filters, and decorators), etc.). Plugin discovery and loading could benefit from a common API.
  • Decorators (seen currently in Zend_Form; other areas could benefit from the pattern)
  • Factories (seen currently in Zend_Db, Zend_Navigation_Page, Zend_Auth, Zend_Translate, Zend_Cache, etc.)
  • Caching (seen currently in Zend_Translate, Zend_Locale, Zend_Queue, Zend_Paginator, Zend_Feed_Reader, Zend_Db_Table, etc.)

Solar already has a standardized factory mechanism and a standardized adapter approach. With the lazy-loading registry and DI/SL mechanism we can inject a cache object into any other object that's ready to receive it. You can have these right now with Solar.

(In fairness, we don't use decorators much, and the plugin systems are more a standard approach using class stacks than an encapsulated system.)

Usage of new language features within plugin architectures.

Solar isn't on 5.3 yet, but then, neither is Zend Framework.

Autoload-only. We will move to using autoloading throughout the framework. This solves a number of performance issues, as well as simplifies coding dependencies (particularly exceptions).

Solar is already autoload-only. You can be autoload-only too right now with Solar.

Namespaces. PHP namespaces benefit frameworks and libraries more than any other code bases, and ZF can benefit from it greatly, particularly with components such as Zend_Search_Lucene and Zend_Controller.

Solar already has first-class support for PHP 4/5 style namespaces (i.e., pseudo-namespaces) and supports mixing of multiple "vendor" prefixes in projects (and supports cross-vendor fallbacks across library hierarchies). Solar expects that you will be working within your own pseudo-namespace already, and so is poised to use 5.3 namespaces proper with little effort. You can have namespace-like support right now with Solar.

goto

As with "new language features" above, Solar isn't on 5.3 yet, but then, neither is Zend Framework.

MVC Implementation: Our current MVC implementation is increasingly adding overhead to the dispatch cycle, slowing down the request cycle. While you can squeeze additional performance out of it via stripping require_once calls and using autoloading, the fastest requests are still far short of other, slimmer frameworks ...

Solar's dynamic dispatch cycle is much faster than the one in Zend Framework, and has been for years; see these benchmarking posts:

You can have a much faster dispatch cycle right now by using Solar.

Models and Master-Slave

One more thing that Zend Framework doesn't have, that Solar does, is an integrated model system. Zend Framework recently dropped the idea of having their own, and expect to depend on an external system for reasonable model/record/collection support. Solar has an integrated model system right now with support for single table inheritance, various relationships, unified saving of object graphs, automatic data filtering, automatic form generation, calculated columns, collection methods, automatic data caching and clearing, and much more.

Yet another thing: we also provide support out-of-the-box for master-slave MySQL replication, with no changes needed to the codebase. Change your config file from the single-server connection to the master-slave connection, and you are done. (Well, you might have to wrap some parts in transactions, but after that, it will work on both single-server and master-slave setups.)

You can have robust models and master-slave support right now with Solar.

Modesty

There is one significant thing that Zend has that Solar doesn't: narrative documentation. Our API docs are second to none, but the tutorials are lacking. We've been spending our time making the framework great, not writing about the framework. You can help with that if you like by adding to the wiki.

Conclusion

The point of all this is not to belittle Zend, Zend Framework, its developers, or its contributors. The point is to ask Zend Framework adopters: why wait for ZF 2.0 when you can have all those features and more, right now, by using Solar?

(Let the ZF apologists begin their comments right now. ;-)


Camille Paglia Against The Health Care Bill?

I can't say she's all right, but she does get a hell of a lot right.

As for the actual content of the House healthcare bill, horrors! Where to begin? That there are serious deficiencies and injustices in the U.S. healthcare system has been obvious for decades. To bring the poor and vulnerable into the fold has been a high ideal and an urgent goal for most Democrats. But this rigid, intrusive and grotesquely expensive bill is a nightmare. Holy Hygeia, why can't my fellow Democrats see that the creation of another huge, inefficient federal bureaucracy would slow and disrupt the delivery of basic healthcare and subject us all to a labyrinthine mass of incompetent, unaccountable petty dictators? Massively expanding the number of healthcare consumers without making due provision for the production of more healthcare providers means that we're hurtling toward a staggering logjam of de facto rationing. ...

A second issue souring me on this bill is its failure to include the most common-sense clause to increase competition and drive down prices: portability of health insurance across state lines. What covert business interests is the Democratic leadership protecting by stopping consumers from shopping for policies nationwide? Finally, no healthcare bill is worth the paper it's printed on when the authors ostentatiously exempt themselves from its rules. The solipsistic members of Congress want us peons to be ground up in the communal machine, while they themselves gambol on in the flowering meadow of their own lavish federal health plan. Hypocrites!

...

International models of socialized medicine have been developed for nations and populations that are usually vastly smaller than our own. There are positives and negatives in their system as in ours. So what's the point of this trade? The plight of the uninsured (whose number is far less than claimed) should be directly addressed without co-opting and destroying the entire U.S. medical infrastructure. Limited, targeted reforms can ban gouging and unfair practices and can streamline communications now wastefully encumbered by red tape. But insurance companies and the pharmaceutical industry are not the sole cause of mounting healthcare costs, and constantly demonizing them is a demagogic evasion.

All emphasis mine, via Salon.com | Pelosi's victory for women.


20 Years Ago Today

The Berlin Wall came down. Via 20 Years Ago Tomorrow - The Austrian Economists.

Here's another piece:

Today, Berlin celebrates the 20th anniversary of the fall of The Wall. Sadly, much of Europe is already beginning to forget the atrocities wrought by communism. We libertarians regularly make the point that while Nazism is still regularly and justifiably vilified, communism periodically enjoys rebirths of chic. The point can’t be made enough. Not to diminish the horrors of Nazism, but to confront the cultural whitewashing of the horrors of Stalin, Mao, Pol Pot, Il, and the others.

via http://www.theagitator.com/2009/11/09/fall-of-the-wall/.