Paul M. Jones

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

Healthcare.gov: 47 Different Contractors Built The Site?

I don’t hold it against the contractors that they had prior government experience. I don’t hold it against them that they lobby or contribute to campaigns.

To me, the scandal is that there are 47 different organizations involved in building the site. I cannot imagine that any sane project executive would want it that way. I am just guessing, but it seems more likely to me that this many contractors were imposed on the project executive because there was a requirement to “spread the work out” to keep all these companies in the politicians’ pockets.

In any case, if you are trying to fix something that was assembled by 47 different organizations….good luck with that.

Remember this story any time you think government actors (at any level!) are somehow immune to bad management practices and skewed incentives. They are no smarter, and in aggregate often dumber, than non-government actors. Via Pinpoint the Scandal | askblog.


If you inject a container into your class, you are using Service Locator, not Dependency Injection

A while ago I tweeted

ContainerAware is the new Singleton.

While many people agreed by retweeting and faving. I feel the need to elaborate some more on this statement and safe the explaination for the future.

TL;DR: No class of your application (except for factories) should know about the Dependency Injection Container (DIC).

The ContainerAware interface (actually ContainerAwareInterface, ContainerAware is a basic implementation of it) is part of the Symfony2 API, but a similar concept is known from many other frameworks and many applications rely on it. It defines only the one method setContainer(), which allows to inject the DIC into into an object so that it can directly retrieve services from it.

I wouldn't call it "the new Singleton", I'd call it "Service Location." If you use a dependency injection container inside your class to bring dependencies into the object, you are using Service Locator, not Dependency Injection. Solar used SL, but when we started Aura (a collection of truly decoupled library packages, each with no dependencies) we switched over to DI proper. Real DI has been a huge win.

Via ContainerAware Considered Harmful - Qafoo GmbH - passion for software quality.


Untangling Obamacare's Web Glitches

What the heck could be going on? My friend stated the obvious: “It's clear that they're getting more traffic than they can handle. The question is why they can't handle the traffic they're getting.” Load problems could explain servers hanging in California and New York … but the drop-downs? The standard explanation for this is “high load,” but high server loads don’t cause your security dropboxes to empty out.

“The drop-down thing is mystifying,” he told me. If federal exchanges decided to populate the security question fields by calling up a list of possible questions from another server -- one that didn’t have a lot of capacity -- then that might be causing the sign-up process to stall at that step. For an application that expects a lot of traffic, this is a very bad idea.

“Just cache them on the front ends, for heaven's sake, so you only need to ask once,” he said. “A database call to get questions shouldn't be in the critical serving path. If you're hitting the database just to load the security questions, then just serving individual pages is going to be expensive.”

The various glitches, he pointed out, “could very easily be because deadline pressure caused them to take some shortcuts that impacted their ability to scale.”

Such as?

“The aforementioned let's-hit-the-database-for-security-questions thing.”

Why would they use such a seemingly obvious poor design?

“It can be easier to make a call to another server to get something when you need it than to implement a cache that you prepopulate either from static files or from the database on startup. Making a call to another server is also something you'd naturally think to do if you hadn't had to focus on scalability before. The security question page is probably not the thing you're most concerned about, so you give it to the new hire to do as their starter project. They don't know what they're doing, so they implement it the straightforward way … and since you're under unbelievable deadline pressure to get something working now nobody reviews it in detail.”

Obviously, we don’t know if this theory is correct -- but it does fit the particulars.

Government programmers are subject to the same development pressures as the rest of us. Via Untangling Obamacare's Web Glitches - Bloomberg.


Aura for PHP: Lessons Learned, and Looking Ahead

“Libraries first” is the way to go; it imposes good discipline

Extracting is detailed work, but you get testable units

DependencyInjection is awesome …

… but in-library ServiceLocators can be useful

There are still lots of PHP 5.3 users

If you have server or session vars in your HTTP request object, it’s not an HTTP request object

Some packages are still too broad in scope

From PEAR to Composer

People love ORMs

New packages: Aura.Dispatcher, Aura.Includer, Aura.Sql_Query, and others

PHP 5.3 support in some new packages

via Aura for PHP.


Aura Framework: Stable 1.0.0 System Release

The Aura “system” package, which combines a system skeleton and the Aura libraries into a full-stack framework, was released today at 1.0.0 stable. This makes it formally ready for production use (although it has been in production use informally for the past year or so).

You can now start an Aura project with a single Composer command:

composer create-project aura/system /path/to/your/project

Take a look at the installation instructions for more information.

It feels great to have both stable, decoupled, truly independent package libraries and a system that integrates them into a framework. Many, many thanks to everyone involved who helped get us to this point.

Aura for PHP.


Aura Has New Releases: Input, Sql, and View

On the heels of last week’s slew of releases, we have three followups!

The Aura.Input package got a feature-level bump to 1.1.0, with a new FormFactory. Thanks to Hari KT for championing that one.

Aura.Sql is now at 1.3.0, due to lots of work from MAXakaWIZARD to provide SQLite- and PostgreSQL-specific query objects.

Finally, the Aura.View package got a bugfix and is now at 1.2.1; it handles content-type negotiation better for those times when there is no Accept header.

Take a look at all of the Aura packages here – each of them completely decoupled from the others, ready for you to use with no additional dependencies.

via Aura for PHP.


The Devil's Dictionary for Developers

(With apologies to Ambrose Bierce.)

bloat, bloated
One or more lines of someone else's code that do something I don't need right now. Used as a reason to write my own code.
collaboration
Other people working on my project. "I believe strongly in collaboration; other people should be helping with my projects."
fast
The performance of my favored projects. (When benchmarks show otherwise, this explains why the benchmark is skewed, measures the wrong things, or doesn't matter.)
easy
The work that other people have to do.
good coding style
The code looks and feels just as if I wrote it myself.
hard
The work that I have to do.
practical, pragmatism
Whatever is expedient at the moment, regardless of long-term considerations. "Your use of (good practice X) just isn't practical in this situation." (Note especially the appeal to absolutes instead of tradeoffs between options; as an aside: "What is 'practical' depends on what you want to practice.")
quality
The project overall is designed just as if I did it myself.
reuse
Other people using my code. "I believe strongly in reuse; stop writing your own code and use mine."
slow
The performance of projects other than my favored ones. (When benchmarks show otherwise, this explains why the benchmark is skewed, measures the wrong things, or doesn't matter.)


Warning Words From Women, For Men Who Seek Marriage

1. "Rape Culture" ... This phrase is used as a blanket term by feminism for describing all male sexuality, far in excess of the actual crime of rape. Use of this term indicates that a woman is suspicious and fearful of male sexuality, even if she finds herself attracted to it.

2. "Delicate Male Ego" ... She's thinking she's displaying her strength and independence. What she's actually doing is revealing her contempt for masculinity and her ignorance of its subtleties. Yes, dudes, we have subtleties.

3. "I deserve" ... Feminine entitlement is frequently a problem in a relationship, as women rationalize just what they "deserve", usually without much in the way of supporting data. ... If you encounter a woman who uses "I deserve . . ." you can bet that she's going to deserve a second husband someday.

4. "I don't believe in marriage" ... Declaring that they don't, especially on short acquaintance, is a clear sign of one of two things: either she is so commitment-phobic that she will leave you for the next pair of pecs to ponder her panties, or she is clearly bullshitting because getting married is on her mind so much that she's desperate.

5. "I want to work on my career" ... [I]t just means that a woman who sees herself as a professional first will only see herself as a wife and mother second. That's great, for some women. After all, with fewer men working these days, it's going to require a lot of women filling the taxation gap, so that their brilliant careers can subsidize other women's children in the future.

6. "Why can't guys just ______________ ?" ... This is an expression that clearly predicates ignorant male-bashing. In most cases women do know why guys can't just ______________. They just don't like the answer, and want someone to change it for them. A woman who has so little knowledge and experience with men as to not understand their basic motivations (Sex, food, shelter, entertainment, companionship, in that order) is an unwise choice.

7. "...feminism..." Pretty much any mention of feminism in a positive light, beyond the basics of equity feminism, is a Red Pill Alert for stormy seas ahead. Women who invoke feminism are shit testing you. Women who self-declare as feminists are challenging your masculinity right up front, and no clearer sign of a life of torment and abuse in a relationship with them is available.

8. "Men feel threatened and intimidated by me." ... No matter how loudly she protests the contrary, most men don't feel "intimidated" by her. Most men are merely annoyed by her, and she chooses to see that as "intimidation", because that little rationalization means it's THEIR fault, not hers.

9. "Women can do everything just as well as a man can." ... In about 80% of the cases, that's a correct assumption. Men and women are fairly on par in aggregate when it comes to everything from long division to programming Javascript. But if a woman thinks that the gender differences stop at the physical, then she's not wife material. ... [M]en and women are different. We have different goals, aspirations, measures of success, drives and ambitions. We have different strengths and weaknesses. We have different areas of interest.

10. "I don't need a man." ... Women who proudly declare that "they don't need a man" are trumpeting a competence and independence they mistakenly feel men, in general, admire. And while most of us can't stand a truly helpless woman, a woman who doesn't need a man shouldn't get one. ... When a woman proudly proclaims her independence in these terms, she is revealing her attitude toward men and marriage in general ... It's not an admission of incompetence to admit you need a man in your life, ladies. It's an expression of general desire that men find hopeful.

I expect that certain female readers to take offense to this. I expect the feminine ones, on the other hand, to see it as mostly true, even if they have never seen it in words before. I expect the white knights to complain about how I'm pre-emptively shutting down conversation by drawing a distinction between "female" and "feminine." The Red Pill Room: Wife Test: Red Pill Alerts.


Vote For Gun Control, Get Recalled

Something pretty remarkable happened in Colorado on Tuesday night. John Morse, the Democratic president of the state Senate, was recalled from office. So was Democratic state Sen. Angela Giron.

Taken together, the losses arguably represent the biggest defeat for gun-control advocates since the push for expanded background checks failed in the U.S. Senate earlier this year.

Morse and Giron appeared on ballots Tuesday in the culmination of a recall campaign that largely shaped up as a referendum on the state’s recently passed gun-control laws, for which both Morse and Giron voted. Out of state money poured in on both sides. On one end, the National Rifle Association dished out six figures. On the other, New York City Mayor Michael Bloomberg did too.

It’s not every day that you see an incumbent recalled from office, let alone someone as high-profile as a state Senate president. The message the defeat of Morse and Giron sends to legislators all across the country is unmistakable: If you are thinking about pushing for new gun-control laws, you could face swift consequences.

A civil rights victory. Via The Colorado recalls dealt a serious blow to gun-control advocates. Here’s why..


All Aura Libraries Now Stable!

As of yesterday, the three remaining “Google Beta” libraries were marked as stable and released:

Aura.Filter provides validation and sanitizing for data objects and arrays.

Aura.Input has tools to describe and filter user inputs from an HTML form, including sub-forms/sub-fieldsets, fieldset collections, an interface for injecting custom filter systems, and CSRF protection.

Aura.Intl provides internationalization (I18N) tools, specifically package-oriented per-locale message translation.

This means all the Aura library packages are now stable, and formally ready for production use. Woohoo! /me does the happy dance

Read the rest of the entry for other news regarding Aura. Aura for PHP.

(If you like clean code, fully decoupled libraries, and truly independent packages, then the Aura project is for you. Download a single package and start using it in your project today, with no added dependencies.)