Paul M. Jones

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

Health Care Nationalized By Proxy

Simply, you have nationalized healthcare by proxy. Insurance companies are now heavily regulated government contractors. Way to get big business out of Washington! They will clear a small, government-approved profit on top of their government-approved fees. Then, when healthcare costs rise -- and they will -- Democrats will insist, yet again, that the profit motive is to blame and out from this Obamacare Trojan horse will pour another army of liberals demanding a more honest version of single-payer.

via The reality of Obamacare - latimes.com.


First Full Day in San Miguel

I'm on vacation in San Miguel de Allende from 19 Mar to 19 Apr. What with the conference trip to Canada a couple of weeks ago, this looks a lot like "NAFTA Tour 2010". ;-)

My good friend Ben Carter is watching the house and my girls while I'm away. I see he's gotten a Facebook post out of it already. Have an extra glass for me, pal.

I arrived yesterday; the flight was uneventful, but I've been fighting off either a cold or spring allergies, and the sniffles/stuffiness/redeye became unbearable the moment the hatch opened at MEX. The poor folks in the cab with me from MEX to SMA had to deal with my nose-blowing and eye-wiping for four hours. (Sorry, folks.) But today things are much better.

Last night I went out for dinner with Frank Gardner, his lovely wife Julissa, and their adorable daughter Erin. Frank's an artist of no small renown; you can see some of his work here. I capped off the evening with some Nyquil-D.

This morning was breakfast by the Jardin, a whole day of sleep, and a big comida at La Terrazza. I just now got back from the Mega (think "Wal-Mart") with all my breakfast fixings, so I can eat first thing every morning instead of having to shower and dress and walk to a restaurant each day. (This is part of my OCD; that, and it's cheaper. ;-)

I'm staying at my friend Anthony Gentile's place until he returns. When he does, I'm going to find a place of my own for the remaining three weeks.

I have no special plans; I just want to "be" here, not "do stuff" here. Even so, I'm no good if I don't have work of some sort, so I expect I'll be doing some Solar stuff (like documentation) off and on.

And now, up to the open-air terrace to finish the day with some Jameson's Irish Whiskey, and maybe a read a bit, then sleep.


Solar 1.0.1 Stable Released

I just released version 1.0.1 (stable) of the Solar Framework for PHP 5. You can get it from the usual places. The change notes are here.

The most significant change is a bugfix to eager fetches in the model system. When eager conditions are present, and no join type is specified, eager fetches will use an 'inner' join by default. This means that the eager conditions now have the proper effect when using count_pages.

(Cross-posted from the Solar blog.)


ConFoo 2010 Wrapup

Many thanks to the organizers and hosts of ConFoo 2010 in Montréal! It was great meeting everybody there. I always say my favorite part is talking to the attendees; that’s where most of the interesting stuff is.

I gave two talks this time around. The first was the venerable “How To Organize you PHP Project”, which I still love to give, and which I think is really valuable both to new and to experienced developers. The slides are at http://www.slideshare.net/pmjones88/organizing-your-php-projects-2010-confoo; if you attended, please rate it at http://joind.in/1289.

I was really happy about the “Organizing” talk this time around; I was able to add comments on the new PHP 5.3 namespaces, and show how The One Lesson works in practice with existing projects. Attendance was high; great audience, lots of good questions throughout, and a few people were even figuring out in advance where we were going before we got there (it’s always nice when an audience question is addressed in a later slide). There was one guy who saw this presentation the first time I gave it years ago, and he noted that it was much more polished this time around; it’s good to know that there has been visible improvement in the talk.

The second presentation was on “The Solar Framework for PHP5”. The slides are at http://www.slideshare.net/pmjones88/the-solar-framework-for-php-5-2010-confoo, and if you attended, please rate it at http://joind.in/1350.

I was happy about the “Solar” talk, too, but it ran a bit long. When I practiced it, I went for almost 90 minutes, but we’re only allotted an hour, so I had to flip past some good stuff toward the end. Even so, I still went five minutes over time. Attendance was reasonable; Nate and Joël from Lithium showed up, as did Fabien from Symfony. More good questions from the audience, and some discussion of language features available in Python and Ruby that have to be emulated in PHP (I’m looking at you, named keyword arguments).

Thanks to everyone who came to my talks; I hope you found them useful, informative, and entertaining.


Super Cache

I just added wp-super-cache to this WordPress blog. With any luck that will keep future Slashdot traffic from reducing the site responsiveness too dramatically.


Solar 1.0.0 Stable Released

Yesterday, I announced the release of the 1.0.0 stable version of the Solar Framework for PHP on our mailing list. (I tagged the release four days ago on Monday, but wanted to time the announcement to go along with my Solar presentation at ConFoo.)

You can see the change notes here. The highlights are:

  • Added automatic cross-site request forgery (CSRF) protections in various layers of the system.
  • Added support for named actions (aka "named routes") in the front-controller rewrite logic; this is the "bi-directional" routing that some have asked for.
  • Optimized queries for Model::countPages() and the native-by select strategy, so that unnecessary joins against related models are not used when counting the number of pages for the native model results.

The next major steps are to revise and extend the narrative documentation, and of course fix bugs and add features as needed.

Slashdot appears to have gotten to the mailing list announcement before I blogged the release. (The commenters there show the usual range of insight, depth, wisdom, and experience. ;-) The Solar site itself, deployed on a 512M SliceHost VPS instance, appears to be handling the load. However, my Wordpress blog on a separate 512M instance is getting ... a bit ... ... slow. Guess it's time to add wp-super-cache.

This stable release is the culmination of about five years of development effort, with important contributions from several others in the PHP community. My many thanks to everyone who helped make this release, and all the previous releases, better than I could have made it on my own.

(Cross-posted from the Solar blog.)


Climategate Stunner: NASA Heads Knew NASA Data Was Poor, Then Used Data from CRU

Following Climategate, when it became known that raw temperature data for CRU’s “HADCRU3" climate dataset had been destroyed, Phil Jones, CRU’s former director, said the data loss was not important -- because there were other independent climate datasets available.

But the emails reveal that at least three of the four datasets were not independent, that NASA GISS was not considered to be accurate, and that these quality issues were known to both top climate scientists and to the mainstream press.

via Pajamas Media » Climategate Stunner: NASA Heads Knew NASA Data Was Poor, Then Used Data from CRU.


The Indiana Health Care Plan: HSAs

In Indiana's HSA, the state deposits $2,750 per year into an account controlled by the employee, out of which he pays all his health bills. Indiana covers the premium for the plan. The intent is that participants will become more cost-conscious and careful about overpayment or overutilization.

Unused funds in the account--to date some $30 million or about $2,000 per employee and growing fast--are the worker's permanent property. For the very small number of employees (about 6% last year) who use their entire account balance, the state shares further health costs up to an out-of-pocket maximum of $8,000, after which the employee is completely protected.

...

Most important, we are seeing significant changes in behavior, and consequently lower total costs. In 2009, for example, state workers with the HSA visited emergency rooms and physicians 67% less frequently than co-workers with traditional health care. They were much more likely to use generic drugs than those enrolled in the conventional plan, resulting in an average lower cost per prescription of $18. They were admitted to hospitals less than half as frequently as their colleagues. Differences in health status between the groups account for part of this disparity, but consumer decision-making is, we've found, also a major factor.

...

It turns out that, when someone is spending his own money alone for routine expenses, he is far more likely to ask the questions he would ask if purchasing any other good or service: "Is there a generic version of that drug?" "Didn't I take that same test just recently?" "Where can I get the colonoscopy at the best price?"

...

Americans can make sound, thrifty decisions about their own health. If national policy trusted and encouraged them to do so, our skyrocketing health-care costs would decelerate.

via Mitch Daniels: Hoosiers and Health Savings Accounts - WSJ.com.



Solar 1.0.0beta5 Released

This past Friday, I released verion 1.0.0beta5 of the Solar Framework for PHP. You can read the change notes here.

Overall, most of the work was related to the form helpers and making them even more flexible than they were previously. We've also added a new manual chapter on working with models and forms.

It is super-easy to build forms out of model records in Solar. In the controller, once you have a record object, call its newForm() method to get a Solar_Form object. In the view, pass that form object to the form view helper and add a submit-process button:

echo $this->form()
          ->auto($this->form_object)
          ->addProcess('save')
          ->fetch();

Those four lines of code will build a complete form for you based on the model record, including top-level feedback and individual element invaldation messages.

The form helper is smart enough to recognize the column types and validation filters on the model record, and will use the appropriate input types accordingly. For example, booleans get checkboxes, date fields get a series of month/day/year options, and columns using validateInList or validateInKeys become selects.

You can also further customize the form presentation using the fieldset and grouping methods on the form helper. Alternatively, you can the individual form element helpers to build forms by hand.

These features have been present in Solar for years.

Finally, and I'm not making promises, but I think this is the last or next-to-last beta release. I have some tickets about query optimization from the models that I want to complete. Once those are done, I expect to make Solar's first official stable release.

(Cross-posted from the Solar blog at http://solarphp.com/blog/read/63-solar-100beta5-released.)