A cry from a voice in the wilderness ...

My name is Steve (say "Hi Steve") and I'm a recovering manager. There I said it, and everyone knows the first step to recovery is recognizing you have a problem.

In any case (and for better or worse), I've been invited to post for the next three months, so I'd like to give you a little background. Bob Walsh, in his introduction a few weeks ago, stated that it was odd writing about yourself, but in my case, I'm more concerned that it's the most boring topic I could talk about. Here goes!

Signs of Plague

Have you noticed more and more online people are feeling burned out and unproductive? I am. So are Gavin Bowman and Keith Casey. So is Ryan Carson. So are a lot of people.

One case is one thing. Two are a coincidence. Four? Four hundred thousand? This is no coincidence.

I see two possibilities: brain sucking aliens are draining our minds through the Internet – the ultimate killer app. Or, something else is going on. I’m hoping its something else – better odds.

Just Say No...To Your Customers?

"Can you add a Whizzy-Woo in the next release? It should be easy since you've already got a Doo-Dad-Adapter."

Ever get one of these requests from a customer? If you're trying to build a clean, usable, and effective application, the answer should always be NO initially.

But isn't the customer always right? Not about features.

Ruby on Rails makes nice with PearDB

Another exciting day in the life of a PHP -- > ROR programmer..

Last week I wrote about how Ruby could access a PHP session and how php site structure could fit inside a Rails structure. This week, I share my findings on how to get ActiveRecord to work with our existing PearDB sequence tables. These are my random, scattered meanderings on a solution..

If you haven't used Pear's DB class before, it creates a table with the [tablename]_seq for each table and stores a single row with a single column "id" with the value of the last ID used. Example of use. This was designed so that your code could easily port to other databases that didn’t have autoincrement like MySQL. Whether this is a good practice is not up for debate, I have what I have :)

Burnout, taking a day off, and the 4 day week

While I was away, Keith posted here and on his personal blog about the dangers of burnout, and the benefits of recharging. I was paying close attention; it had been a while since I’d felt like I was in any position to think about my productivity and effectiveness, but I knew it was overdue.

I’m not really counting this last year as a normal year, I’m just happy to have made it through relatively unscathed. In cold professional stats, I’ve made more contacts, improved my software, and been more involved with the online ISV community. I feel much more comfortable with the situation I’m in right now than I was with my situation 16 months ago. Even though that might sound like a successful year, it felt quite different behind the scenes.

Fire your boss, fire your clients!

Keith Casey has asked me join in here, but he may live to regret his decision. That's because I going to suggest something fairly radical: It's time to fire your boss, or your clients. Instead of living in a corporate cube a self-respecting rat would'nt be caught in, or spending your life wandering from contract programming project to project, I'm going to suggest that you - yes you! - can start a top notch, world-class software company.

NDAs: Fear and Shame

The two fundamental reasons NDAs exist are fear and shame, and that's only halfway a bad thing.

You want a little healthy fear in your life, it keeps you from trying to pet those cute little bear cubs. In business, it keeps you paying attention to things like what the competition is up to, to if your burn rate is sustainable, and how important those last few bugs are.

Most NDAs exist because of two different and worthwhile fears: early competition and secret sauce. If you and two buddies have read Getting Real and struck out on your own to start a web-based business, you'd like to delay the day that knockoffs start appearing. Alternatively, if you're Google, you have hordes of resourceful competitors and abusers who'd love to mine the offhand comments of your engineers.

But the nearly-as-common motivator behind NDAs is shame. You could call it fear of being found incompetent, but the word for that is shame. A shame-powered NDA will invariably be described as an important security measure, but the business is covering up that it runs everything in a slipshod, last-minute, "this is good for now and we need it" manner. Most organizations just barely work and spend their time lurching between crises, which is mildly disconcerting in an interdependent society but handy for breaking the spirit of idealistic young college graduates.

Quick and dirty prototyping

Quietly, under the cover of darkness and the Business of Software forums, I've been spreading the corrupting CodeSnipers influence to pull more people into the inner circle. I'm honored to have our latest victim aboard. The author of Agile Project Planning... Dave Churchville. - Editor.

"Just tell me what you want and I'll build it!"

What programmer hasn't uttered those fateful words? The problem is that even though users often know what problem they have, they are rarely the best people to tell you how to solve it.

Enter the prototype. Developers either hate them or love them, depending on their experience. If you've ever built a sophisticated prototype that faithfully re-created the entire application, only to have it forced into production, you probably hate prototypes. Or worse, maybe no one even bothered to look at it!

notes from startup school

Startup school was in session at Stanford University a little over a week ago, on Saturday, April 29th. I commuted six hours to check out the event. If you're at all interested in starting your own company or participating in a startup, you will really benefit from this sort of venue.

Ruby on Rails makes nice with PHP

Not all projects can jump ship from a home grown PHP site to Rails, especially projects where there are exactly 1.3 programmers for the project. I was surprised there wasn't much information on integrating php and rails site (spare me the flame wars). All new development will be done in Rails and old PHP will be written in Rails as time permits. I was exploring some of the ways that this could be possible and what possible problems might arise.

I will need to read certain sessions variables from PHP into Rails, I will not need to write to the session. I found a ruby script PHP Serialize which takes a php serialized string and converts it to a Ruby datatype. If your sessions are stored as files, they are in /tmp/sess_[session id] where session id stored in $PHPSESSID they contain a special serialized string. Ruby can get the session id from the cookie and read the file, and PHP Serialize will convert it into an object. If your sessions are stored in a database, then of course you'll be able to create a Rails model to access it. If you need to write to a php session, then I think it would be better this way. I didn't try using sessions stored in a database, because I use files. I’m not sure how you would do it stored in memory. In any case, reading from the session file I believe is a temporary hack at best.