Mac Use Christmas Wish List

Dear Santa,

I’ve been a Mac user for about 2.5 years now and have been very pleased with my decision to quit using Windows. My productivity is up, my blood pressure is down and using a computer is fun again.

I know you probably use a Mac too since you have so much to do and manage. Fiddling with network settings and editing registries won’t get the toys delivered on time.

This Christmas instead of another sweater I’d like some of the small tweaks for my Mac listed below:

1) MS Windows style tiling of app windows

2) Move and resize my app windows to the laptop before I disconnect from the large monitor

3) Resize windows from any part of the window instead of just the bottom right corner. Add keyboard command resizing for extra bonus points

4) Make help docs not ALWAYS ON TOP and in general more useful

5) Don’t allow app windows suddenly take focus just because the app has finally decided to return focus. Bounce the dock icon instead.

6) Global update of ALL apps at once instead of each app doing its own thing. I would still like to update an app individually but there should be way to talk to a global update manager

More Excellent Dining Coming to North Park

I just got the tip off from my friend David Cohen that his new iteration of Hawthorne’s at the North Park Theater is opening on Tuesday October 6th. I’m super pleased to hear this because what used to be there wasn’t well suited to the neighborhood.

Here’s his description:

West Coast Tavern will feature shareable plates, hand crafted cocktails and an extensive bourbon selection.  Live jazz, acoustic acts, and lounge DJs throughout the week will compliment the unique dining experience in the 1920’s venue.  Hours of operation will be from 12pm – 2am daily with food service until midnight.

2895 University Avenue, San Diego, CA 92104
www.WestCoastTavern.com
619.295.1688

MIA + WTF = Braindump

I have not blogged in a very long time. No worries because I have zero readers.

Well as it turns out, I do in fact have readers and many are prospective clients practicing due diligence by researching me.

Congratulations on passing step 1 of my client vetting process. Please know that I routinely check my logs to see if prospective new clients have invested the time to learn about me. One of the joys of being self-employed is that I can turn down work if I think the project is not right or if the client exhibits warning signals.

In an attempt to preserve my sanity and financial solvency I’ve developed an informal and growing list of client validation “steps” including but not limited to the following:

Step 2: Show up on time for meetings. I’m guessing that you want your work done on time. So do my other clients. Unless you have a “Dr” or “DVM” attached to your name you should respect the value of my time and your own by not being late. If you are late to our initial meeting I’ll be highly disinclined to work with you.

Step 3: Reply to communications in a timely fashion. Waiting several days to reply then expecting me to jump as soon as I hear from you does not bode well for the future.

Step 4: Demonstrate some degree of ability to communicate in a clear, concise and specific manner.

Step 5: Listen attentively, read thoroughly and ask questions if you are unclear. You will be paying me for my time and expertise so why not make the most of that investment by actually reading your emails.

To be sure, I’m always willing to make exceptions for each of the above deficiencies but most are simply signs of laziness or a lack of engagement and if I wanted to work with people like that I’d go back to working for the man.

Addicted to Audible

In the past 4 months I’ve listened to at least 8 books. I’ve loved them all. I get them from audible.com which used to suck but has gotten much better.

The thing about consuming novels this way is that I wouldn’t be enjoying these great stories because I rarely read for pleasure any more. I typically walk my dogs twice a day for at least 90 minutes in total and I wear my headphones while I do house work so I get about 2 hours a day of listening. This means I get through the average book in less than two weeks.

Some books are so good I get out on foot for an exercise walk or extend the dogs walks just to listen more. I’ve suggested and gifted books to a few friends with long commutes who have also become avid listeners. 

Check it out and I’m sure you’ll agree it’s easy and enjoyable. Here are a few picks (in no particular order) to get you started:

The Story of Edgar Sawtelle
Water for Elephants
The Art of Racing in the Rain
Pillars of the Earth
World Without End
The Nine
What is the What
Atlas Shrugged
Three Cups of Tea
 

Narrowing the Focus

Last night I started a lengthy post weighing the pros and cons of adding Drupal to my mix of tools. In the course of doing that I watched “Why I Hate Drupal” and decided that I do not, in fact want to add Drupal to my mix of tools. One of my main reasons for including Drupal was that Django doesn’t run well on cheap shared hosting but it does and Webfaction is not only cheap but also offers great support to the mix. I’m not a Drupal hater. I just don’t have time for the very steep initial learning curve.

I do think that the Django community could learn a lot from the Drupal community. There’s a huge following, several conferences per year and a vast array of video and audio content out there.

I’m focusing my business on Python based content management systems and Django based custom development. Though I’ve been unsuccessful at installing Pinax in two attempts I’m sure I’ll get it working this week so I can start learning how to use it. I can see it gaining momentum and becoming a huge project. Hopefully someone can step up and become the Lullabot of the Pinax world.

I’m also hoping that all the knowledge I gained working with Ellington won’t go to waste. Ellington is a great product and despite the cost you really get what you pay for. There’s so much good stuff included that you you’ll save an huge amount of money in development by at least starting with the hosted solution.

Time to work!

A Short Post Before a 10 Year Anniversary Trip

Wow, it’s been more than two months since I posted. I have a LOT to say but I’m preparing for a week in Vancouver BC to celebrate our 10th anniversary. We finished our honeymoon up in Vancouver so it’ll be a nice romantic trip.

We can both use the time off. Susan’s hustling to meet the billable hours minimum and I’m hustling to make my first year as an independent contractor reasonably successful. I can confidently say there has been a steep learning curve we’ve both had to negotiate in our careers. At least my core job skills haven’t changed.

Happy Memorial Day to all.

 

Cell Type Casting?

Every so often I need to add a string to an integer. In programming that’s easy. int(2) + 17 = 19. Someday soon it seems we may be able to do the same thing with biological cells according to this NY Times article.

Boomers rejoice!

Too Funny To Be Made Up

One of the things I LOVE about the web is that anybody with even a half-baked idea can try out their idea for a fairly low cost. I’m not saying the idea below is half-baked. It’s just a very good example of someone coming up with an idea and hopefully turning it into a pot of gold.

Actual Guru.com project posting:

Title: Online Dance School
Project ID: 491681

Category: Programming / Software / Database Development 
Description:
So what I’m looking to do is create an online pole dancing school where once set up, I can manage easily on my own.  

It would need to be set up so that one would need to be a member to view the videos.  I was thinking of keeping membership simple & making it a monthly membership or a  yearly membership @ a discount  and both with auto-renew.  Obviously the whole point of starting this school is to be able to reach a global client base as opposed to just local, so I need to be able to accept all currencies for membership payment. 
I already accept credit cards on my website via paypal and would like to continue using their services if possible. 
I also want to add a free sample to the opening page of the online school to help spark the interest in learning more & buying the membership.

The videos would need to be set up so that they couldn’t be saved to the users hard drive and then put out for free on you tube.  

It would be important to me that the videos be super clear & expandable and have the capability to be viewed at regular speed as well as slow motion.

It’s stuff like this that really makes me smile.

 

Getting My Drupal On

So I’ve been doing a TON of coding lately. Almost all of it’s been Django. The more I use Django the more I LOVE it. Every few days I have to switch back to PHP and my appreciation of Django increases exponentially. 

So why am I dipping my wick in Drupal? Because Django comes with substantial overhead (kinda like the difference between a pitbull puppy and an alligator, both chomp but one’s chomping at your side 24/7 and the other chomps once or twice a day).

Clients with small budgets or pre-existing code hosted on inexpensive shared hosting may not be able to accommodate Django. That’s a pity because developing in Django is, as Andy McKay would say, “a doddle.” Especially when compared to procedural PHP or Plone. It’s not always possible to convince a client that they can save money on development if they spend more on hosting especially if you may need to move their existing code. So Drupal fits the bill nicely with a “loosely coupled” philosophy similar to Django and a lighter perceived hit on the client. 

I’m also dig the Lullabot logo and find the entire Drupal community entirely agreeable so I’m thoroughly looking forward to learning Drupal and adding it to my toolkit. 

Time for a pee pee smacking!

I’ve worked on a LOT of crap code in my day and honestly I’ve probably learned as much from the crap as from the best practices and coding style guides. 
HOWEVER… 
Finding these two functions in the same file of the open source application osDate really has me wondering WTF?
function getOnlineStats($userid) {
global $osDB;
$onl = $osDB->getOne(’SELECT count(*) FROM ! WHERE userid = ?’, array(ONLINE_USERS_TABLE, $userid));
if ($onl > 0) {return true;}
return false;
}
function checkOnlineStats( $userid ) {
global $osDB;

if ( $osDB->getOne( ‘SELECT count(*) as num FROM ! WHERE userid = ?’, array( ONLINE_USERS_TABLE, $userid ) ) ) {
return ‘online’;
}
else {
return ‘offline’;
}
}

Oh, and apologies that the code formatting plugin I spent so much time installing some time ago isn’t working now.