I tripped across this link the other day. It describes my thinking about software design:

Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan

Continue reading »

 

Here’s a topic that comes up a lot. What is a reasonable budget for your web site? $500? $1,000? Six weeks? Eight weeks?

Some of the earliest help I provide for people is determining what this number is.

Continue reading »

 

I’ve gotten a lot of feedback about my joking NDA article posted on April 1st. Clients call and tell me how funny it is. Then they ask for an NDA.

All joking aside, there are a bunch of reasons I think NDAs introduce unnecessary liability. If you want to be really progressive, digest my reasons below and see if you can find an alternate approach to your legal strategy. Note that I do think NDAs are eventually necessary, I just don’t think they need to be your first stop in interacting with another human being.

Continue reading »

 

I help a lot of people. Past a certain threshold, I need tools and systems to support that endeavor. Tracking all the little details for all the projects can get hectic. Yet at the same time, I want to keep what I do free of “policy” and other bureaucratic ideas. It’s a continual effort to simplify. I spend a lot of time thinking about how to build that process and make it lightweight yet flawless. It’s hard work to keep you in the driver’s seat, but that’s what I am all about.
Continue reading »

 

At 4:35PM yesterday, Ben Allfree was killed when he suffered a blow to the head from an oversized Nondisclosure Agreement. According to witnesses, an unidentified entrepreneur struck Ben with an NDA after claiming that he had a “killer” business idea.

“Before Ben could react,” said Rick Schaffer who witnessed the event, “the guy pulled out an NDA and began beating Ben over the head with it. Ben had just been trying to help. He tried to get up, but like an aging champion, I think he had just been hit one time too many.”

“This is sleeper problem in the IT community,” said Sheriff Robert Kitson who arrived on the scene just moments after paramedics failed to resuscitate Ben. “People with no training or qualifications are using them without provocation. [The NDAs] are then left behind in the wake of bad ideas and pose a real hazard. Children are finding them in playgrounds.”

An upcoming Forrester Research study exposes the delusion-inducing power of a web idea and links dementia with the overuse of NDAs. The study concludes that an entrepreneur with no means to capitalize his idea is most susceptible to delusion, often convincing himself that the competitive advantage lies in the secrecy of the idea itself rather than the execution of the idea.

Ben dedicated his life to better living through painless programming. “Ironically,” said medical examiner Benjamin Ellsworth, “I’m sure he died in severe pain. Those NDAs hurt.”

 

One of my clients has an interesting decision ahead of him. I am helping him decide. In one corner, we have an existing code base which represents a significant investment over the past 5 years. In the other corner we have today’s fresh new approaches. The two are more or less incompatible. What would you do? How would you choose?
Continue reading »

 

I have a valuable viewpoint toward custom software. To best describe it, I should talk about measuring custom software quality.

Quality measurements feed into the support framework for many decisions. Getting accurate information early is perhaps the best way to optimize the efficacy of your decisions, and examining the people involved is the best way to find indicators of quality.

Continue reading »

 

Today, proved to be a great chance to prove why great support matters. A
production server ceased functioning after a recent upgrade, and in this case,
time was money.

The server runs the web application platform that many developers choose: IIS
and PHP. For “no reason at all” (that’s how everything really bad starts), IIS
began returning the notorious PHP CGI error: “The specified CGI application
misbehaved by not returning a complete set of HTTP headers.”

It spells doom for production sites because the site stops working.

Having seen this bug before and knowing its cunning, I headed
back once again to search message boards yet again for new clues. Perhaps
someone had miraculously solved this problem since last month when I checked the
same message boards. Documented as PHP

Bug 9852
and Bug 25863,
many users put the following hypotheses:

  • IIS has a multithreading bug and calls PHP too fast on
    modern servers, but Microsoft will release
    a hotfix for it.

  • It has to do with image files

  • Virus scanners cause the problem

  • etc…

The theme here seems to be that anything and nothing causes this
bug, and that’s why it is notorious.

My version of the problem was caused by bad security permissions
on recently replaced log files, but I will say there is definitely something
more to this behavior and it is related only to IIS. Site administrators running
Apache have never reported the problem. Microsoft does
list
an IIS bug that sounds very similar to the symptoms of this bug, but I do
consider it a PHP inquiry because Microsoft is unlikely to give this problem
direct attention.

I have seen applications as simple as this fail:

<?='Hello, world!"?>

After adjusting security permissions, things started working
again as if the last 30 minutes had never happened. Losing 30 minutes of
business can be avoided through redundancy, but this particular client was too
early in the business plan to justify the costs of six sigma uptime. When you
can’t have the infrastructure for total reliability, it’s nice to have total
support.

 

If you’re writing a Facebook application, I think you should have a look at cakePHP.

Continue reading »

 

The Prototype library for JavaScript enables rich
client-side programming at a very detailed level. And with an
extension library
implementing the Observer pattern, event-based programming in JavaScript is
about as good as it can be.

Continue reading »

© 2011 Ben Allfree :: Painless Programming