Paul M. Jones

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

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.)


Global Warming Fraud: The Big Picture

...the IPCC's fundamental conclusions, relating to the allegedly unprecedented warming of the past half-century, are based on bad surface temperature data and are contradicted by more-reliable satellite data and by our knowledge of the earth's climate history. We know for a fact, in short, that the computer models that are the only basis for the AGW theory are wrong: ...

via Power Line - Global Warming Fraud: The Big Picture.


To Badly Go

...to visit DC expecting to find people engaged in serious discussions of economics is like visiting a Star Trek convention expecting to find people engaged in serious discussions of astrophysics.

via To Badly Go.