Categories
Parenting

Hold On to Your Kids

Book Cover
Click through to buy the book from Amazon.

I just finished reading Hold On to Your Kids by Neufeld and Mate, one of my many xmas gifts. I discovered this book through Freedomain Radio episode where Stefan Molynuex interviewed Dr. Gabor Mate. Serendipitously, I noticed an hour-long interview with Dr. Mate on Democacy Now. These other resources may help you decide if the book will be worthwhile for you.

The main premise of this book is that in North America, we and our kids are suffering from a lack of attachment between each other. We push our kids away from us to attach with their peers. Unfortunately, other kids are not healthy resources for kids to reach maturity. The authors compare parent attachment to peer attachment. They show how when kids attach to each other, they are in a constant state of insecurity which makes it hard for them to learn and grow.

The book spends a great deal of time up front in making the case for attachment. It demonstrates how lack of attachment leads to problems for parents and children we seem to be hearing more about. Many of the ideas in this book jive with what I’ve learned over the years about psychology, so it read as a bit too verbose to me. For anyone new to these ideas, the book probably covers the ground well.

The techniques offered to foster attachment with your kids are general and seem fairly simple. I appreciated how the authors stated clearly that you should never rely on a book, even this one, as a cookbook. They offer principles and leave it to the parent to apply the principles appropriately.

Generally, the advice of the book is for parents to “collect” their children after any absence, including being at school or even being asleep. They suggest four steps. First, get into the child’s space. That just mean being physically close, although I can hardly resist wrapping my arms around my kids if I sit next to them. Second, offer something for the child to hold on to.This can be something such as a kind observation. Demonstrate your awareness of the child and he can hold onto that knowledge. Third, invite dependence. Said another way, this means offering help. Fourth, act as a compass point. That is, be an anchor your child can use to understand where they are and where they should be.

For example, suppose your child is camped out on the couch, hypnotized by the TV. You may  sit down next to him and put your arm around him. You then say something like, “you’re really into this show about Egypt. Perhaps we can visit the ancient history museum this weekend. Anyway, mom said dinner would be ready soon. We’ll have to turn off the TV.” Compare this to yelling from the kitchen the moment dinner is on the table.

I have been trying to keep the ideas of the book in mind as I interact with my sons the past two weeks. It’s been easier during this time without work as a distraction. I am always striving to be a better father, so I hope to keep up the momentum. I recommend this book to any parent, even if you feel your relationship with your child is perfect. The principles in this book apply to anyone who cares for children, such as teachers. The path to a more peaceful world requires more kindness and understanding of children. This book helps point the way to a better world.

Categories
Personal

XMAS Card 2010

Today I present the Atkinson family’s 2010 Christmas card!

Handwritten cards? So last century. Photo cards ordered and sent from Shutterfly? So last decade. E-cards? Not good enough. This year I decided to create a big project for myself and it turned out pretty weird. Good and weird and funny (I hope).

I created the video above with

Hurrah! The days are getting longer! The sun will be brighter! May your life be filled with peace and joy!

Categories
Programming

Dev to Staging to Production

How do you keep your development work from interfering with testing new features and providing a stable application to your users? Create a dev to staging to production chain.

You’ve worked for months on a Web application, you launch and all is fine. Now you need to add a new feature that will take you at least a few hours to get right. Do you subject your users to the errors that will intermittently appear if you code directly on the site? No, of course not. You make a completely separate installation that only you’re looking at. When the feature seems solid, push the changes to the production version. You are using a source code repository, aren’t you? So, just perform a svn update on the live site and you’re all good.

Diagram showing flow of code changes from dev to staging to production
This diagram shows the relationship between development, staging and production servers.

Following is the method I’ve found works best for smallish teams working on LAMP Web apps where you can’t afford to introduce bugs to the production version. This method has worked for me on teams of 5-10 coders, each working on different features at once. There’s a balance to be struck between not getting in the way of development work and getting updates out promptly. It’s a drag when you can’t release one feature because its code is all mixed in with another, half-finished feature.

The main idea to have one checkout for your production version, one for a staging and testing version, and multiple servers for various developers and/or projects. Changes that are ready to be tested are checked into the repository. When you want to release, you freeze checkins and test the staging server. When you’re convinced it’s all good, you run an update on the live server and allow checkins again. You’ll want at least three different databases, one each for live, staging and development.

For relatively short-term work, developers should usually check in frequently. For long-term projects, checkins should be held back. Yes, this is what branches are for, and that’s the right choice for more senior coders. In practice, branches don’t seem to be something that the junior members can grok. I might have junior developers working on big changes to copy over many weeks. I simply rely on backups to make sure they don’t lose work in case of disaster.

Here’s a set of steps I might take to set up a new development system.

  1. Create a subversion repository.
  2. Create three virtual hosts: www, stage, and dev.
  3. Create three databases.
  4. Checkout the app once each for www and stage. You’d view these sites as www.example.com and stage.example.com.
  5. Make an open directory for the dev subdomain and make a checkout for each developer. You’d view these sites as dev.example.com/coder1/htdocs. Allow all the dev versions to share a database.
  6. Protect the dev server from the public with basic authentication. You don’t want Web robots indexing everything, and you don’t want to expose scripts that would be outside of the apache webroot in production.

This system will allow you to quickly make a new checkout without hassling with making new subdomains and tweaking the apache config.

Categories
Business Personal

Eighteen Intelligence

Leon AtkinsonMy life has been quite busy lately. After nearly two years as VP of Engineering for BTS, I left to start a consultancy. It began with a casual comment to a few friends that if they had 2-3 months worth of work for me, I’d consider cutting loose. Mark Celsor has been dealing with a flood of new business in the past quarter and was eager to have me work with Vine Street Interactive. Meanwhile, Jenny Martin asked me if I knew anyone available for Facebook API work. Fortunately–or unfortunately depending on perspective–both of them wanted my help right away. Saying yes to either of them meant saying goodbye to BTS. Saying yes to both of them meant saying goodbye to daylight….well, nearly so.

Since October, I’ve been working two full time gigs while also making preparations for the launch of my new company, Eighteen Intelligence Corporation. For tax reasons, the paperwork won’t be filed until January. California makes all corporations pay a minimum of $800/year in taxes, so it makes sense to start a company early in the year. I’ve been trying to work about 10-12 hours/day 7 days/week for more than a month. I’ve had to take a day off here and there to prove to my family and myself that I still exist. I see light at the end of the tunnel now, as one of the two projects is going into the bug-checking phase and should launch in a couple of weeks.

I hope the other project wraps up mid-December and leaves me a couple of weeks to enjoy the holidays. I expect to available to you help you with projects in January. How can I help you? Thanks for asking! If you’ve worked with me, you know what I’m capable of. (Horrible, isn’t it?) I’m concentrating on building Internet applications, particularly those integrated with Facebook. I’d enjoy helping you start from a requirements specification and see the project all the way through launch. I can help in a CTO-ish way to set up best practices for your team, or I can be a really fast coder who helps you make an insane deadline.Eighteen Intelligence Logo

You can read more blah-blah-blah marketing stuff at the 18int.com Web site. Please contact me about any opportunities for us to work together. Thanks! And since it is the season, I should also thank a few people who’ve helped me out recently. Thanks to the BTS folks for employing me. Thanks to John Szeder for sending leads and projects my way. Thanks to everyone who’s already asked about my availability. Thanks to Kathy Marshall for accounting advice. Thanks to Jenny and Mark for the projects that enabled me to launch this adventure. And of course, thanks to Vicky and Tre and Henry for putting up with me toiling in the basement office.

Categories
Business

The Fractional CTO

Silly pie chart illustrating the idea of a fractional CTO.
Proproportions shown for illustration purposes only. Actual sizes may vary.

One of my favorite things is solving technology problems. Fortunately, I get paid for that. Unfortunately, I’d rather do more of it. Therefore, I’m putting out a call to anyone interested: if you need a fractional CTO, ask me.

My friends introduce me to other entrepreneurs and describe me as a genius. They usually skip the “evil” prefix. It’s true, I’ve been hacking around in the Web space for a long time now, and I have a few tricks to share. I tend to underestimate what I can do, so I defer to their judgment.  What I do know is how much I enjoy helping someone else figure out a tough technical problem. Lately, I’ve been thinking I’m not getting enough of that. I’ve been asking people one-by-one, and now I’m putting the question out to a wider audience. How can I help you?

One recent example is a social games company that needs help profiling their PHP scripts. That’s something I’ve had to do many times over the years. Actually, it was really important when we were coding apps in PHP3. I’ve also been offering advice to a several startups who are trying to get to an alpha version. And I’ve been helping my friend John Villarreal juice up his media business.

So I’ve landed on this concept of the fractional CTO. If you could use the services of a CTO for a day or two a month, please let me know. I’m happy to help.