kenan fb banner

Kenan Doyle Branam services Saturday

 

Services for Kenan are this Saturday, the 28th of April, 2012.

A message that was sent out to the Houston Netsquared Meetup Group tonight in memory of our  friend and colleague Kenan Doyle Branam. He was a debater, optimist, producer, geek, well read, researched, and all around renaissance man. We will miss you Kenan. Even if you challenged us constantly with debates and thoughts Kenan, I wouldn’t have wanted it any other way. A tip of the hat to you. You will be missed.

April 26, 2012

All,

Sad news….

If you have attended Net2Houston over the last six years, then you know Kenan. His meetup profile says Kenan attended 28 meetings with us, although I think it may have been even morehttp://www.meetup.com/houston-netsquared/members/3125708/

Kenan Doyle Branam was a Netsquared regular who always asked challenging questions from the heart. An optimist, he always found the positive, which was impressive given his posts frequently talked about his growth from being a skeptic to an optimist over time. What a beautiful transition.

I’m sad to say that Kenan passed away unexpectedly last week and his services are this weekend. The official notice is below. If you can attend i know Kenan would be honored as would his family. The official version follows. And I know the family would appreciate help with the costs of the funeral. Please consider the part at the bottom about the fund at Amegy in lieu of flowers, but your presence on Saturday would be a huge tribute as well.

Thanks,

Ed

—————

The Houston Advertising, Media and Production Community lost one of its own in the sudden passing of Kenan Doyle Branam on Saturday April 14, 2012.  Services will be this Saturday April 28th 2012 here in Houston.

Beginning his long career in media, Kenan worked as a cameraman in the local broadcast television station in Tyler. In addition to this his media experiences later included advertising agency client service, corporate communications, point of sale training, and even documentary and music video work. 

Kenan was President of Paradigm Communications, Inc. for 25 years, and most recently worked as a Media Consultant supporting people to show up, be heard, look and feel good about their web presence.  Throughout his long career he was a careful watcher and analyzer of media. He was, in his own words “a philosopher, then an artist, then a media evangelist”

A great number of local organizations were fortunate to have Kenan initiate lively and thought provoking conversations while bringing his gifts of philosophy, kindness, laughter and an artistic sensibility to their gatherings.

A Life Celebration for Kenan will be held

Saturday, April 28, 2012 at 3:00 PMTotal Video at Houston Studios
707 Walnut, Houston TX 77002.

In lieu of flowers, donations in Kenan’s memory can be made (and would really help his family at this time) at any

Amegy Bank for the Memorial Fund for Kenan Doyle Branam.

Kenan Branan

“60-something years to transform to a more optimistic state of mind”

Kenan Branan
Kenan Branan

I was drilled for surviving nuclear apocalypse as a “duck-and-cover” teenager, believing that the world might end before I reached adulthood. But I suspect my personal perspective was the biggest factor: I didn’t like the world the way it was and wanted to “figure out” how I could make it better. I was hurting and scared. Survival instinct pure and simple!

It’s taken me 60-something years to transform to a more optimistic state of mind, actually a passionate state of mind. Maybe through the wisdom of my varied experiences and learning, I have not only figured out what a better world can be, but more significantly, through the media of the Web, I have discovered “signs” of a large community of likeminded people. For the first time in my life, I can justify hope and faith in the future of humanity.

- Kenan Doyle Branam (source)

and

“In retrospect, I have always had the temperment of an artist, looking at the world with curiosity and sensitivity—sometimes, so much that the beauty of nature overwhelms me.

Like Pecos Bill, I was raised by a pack of dogs. I thought I was one… until they started to chase, kill, and eat squirrels. I guess I will always be a pacifist. I still love running in the woods.”

- Kenan Doyle Branam

5075141841_4b1b14ef14_b

friday the 13th & a lucky black cat (good or bad?)

a black cat crossing your path

From wikipedia on black cats crossing your path:

The folklore surrounding black cats varies from culture to culture. In Great Britain and in Ireland, black cats are a symbol of good luck. The Scottish believe that a strange black cat’s arrival to the home signifies prosperity. In Celtic mythology, a fairy known as the Cat Sìth takes the form of a black cat. Black cats are also considered good luck in Japan.[3] Furthermore, it is believed that a lady who owns a black cat will have many suitors.[4] However in Western history, black cats have often been looked upon as a symbol of evil omens, specifically being suspected of being the familiars of witches, and so most of western and southern Europe considers the black cat as a symbol of bad luck, especially if one crosses paths with a person, which is believed to be an omen of misfortune and death. In Germany, some believe that black cats crossing a person’s path from right to left, is a bad omen. But from left to right, the cat is granting favorable times.[5]

Stussy Strip for Likes Model Advertisement

Stüssy with “Strip for Likes” – does sex sell at least “likes”?

Stussy Strip for Likes Model Advertisement
Stussy Strips Model for Likes on Facebook

Via this tweet by Florian Schleicher aka @_whoelse on twitter, I learned about the “Stüssy-Amsterdam strip for likes” campaign. Called the “Model Strips for Likes” by AdRants, it just goes to show that the point of advertising is frequently not advertising at all, but to cause a stir to sell more product. To garner attention for your brand to sell more.

If you are Coca-Cola then when you advertise it is probably advertising to keep your name out there. As Ries and Ries would say, an established brand defends their market position with advertising but builds it with PR. If you are a brand on a budget then it really isn’t advertising; it’s PR. It’s not social media; it’s PR. A stunt using social media as a vehicle, a tactic, as part of a larger PR strategy.

And OK, maybe this article won’t will improve your sex life (as published in PR Strategist). And yet it got read and maybe somebody got laid and the content really does help your business. #guilty

The bad news is it takes 10 years to build a brand and you better have some great PR to get there. And then you better have a budget to defend that position with advertising or an even more amazing PR team to keep your name out there. I know from firsthand experience. In Houston the brand Schipul is quite well known after 14 years. We are “THE Web Marketing Company” and yes I stole that from Chomsky. But when I say our name in San Francisco, while the techies and creatives (sometimes) know the “Schipul Brand“, the businesses and normal people do not. On the West Coast and in Silicon Valley they call us Tendencii for the software we wrote that powers so many non-profits.

Cool. I’m fine with that. I embrace the (brand) position in the mind of the consumer. Call us whatever you wish. Let us focus in and pound on that brand message until our own brand manager is sick of hearing it. Then, and only then, is it remotely possible that the audience vaguely heard it.

Feel free to disagree with the values espoused by Stüssy, that a facebook-like is like losing a hand at strip-poker (sidenote: if I was one of the people in the photos on wikipedia for strip poker, I’d tell every one of my GrandKids just to show how “cool” I was back in the day. Every. Single. Family. Reunion. “Hey, did you know I’m in on Wikipedia under Strip Poker?” Actually, that sounds kind of creepy. Never mind. But I bet the people in the photos do. #heh).

But you can’t say the sensationalism doesn’t work. Here I am blogging about some random fashion brand I never heard of that makes puffy clothes. Really? I can’t even type that kind of “U” – I had to copy and paste it so it had the funny marks “ü“ above it.

And as consumers clearly we can’t say we are offended about “sex sells” when one of the most watched shows every year is the Victoria Secret fashion show. Turn up the volume and the dialog is very pro-women and supportive (I can say that because my wife said it so I’m just repeating what she said. Cool Rach? The “a-the woman-said-it-first-defense” for those keeping score.)

As far as getting a model to strip, well, it doesn’t take much to get Google to give you every fanciful photoshopped whatever whatever. There has to be some further “esprit de corps” among the Stussy fans to achieve this “goal” – no matter how pointless it is. As Stussy’s model levels-down her clothing the fans level-up (as in WOW? When the fans are one google search away from Kate Moss? Can they not afford $300 for a collectible (?!?) copy of Madonna’s book on Amazon? Or at least use the google?)

I really don’t know. But clearly there is more to the situation than the fountain pen where the pin-up bikini disappears when you turn it upside down. It is the participatory, I click and things change, aspect that seems to be at work here. Fan this page until she’s too sexy for her shirt. (zOMG, they updated the “too sexy” video too. Who knew?)

No, I really don’t get it. And no, I am not going to “like” Stüssy‘s page in the vain hope that another skinny model will reveal herself. Absolutely no shortage of that.

Regarding Victoria Secret and The Limited Brands, Russell James does a great job of engaging photographers and models through facebook with his behind the scenes and insights into photography on his Facebook page and on twitter as NomadRJ. And as a photographer I don’t find those offensive.

GoDaddy is the classic example of sex-to-sell controversy. And they do it year after year. At this point my bet is they just call the SuperBowl Ad Committee and say “Do we really have to submit 5 ridiculously over-the-top advertisements for you to reject publicly or can we just issue the press release and give you the real ad?” I do wish we saw more of Danica Patrick in the winners circle than dancing with the Pussycat Dolls though.

Then there was the Danish (fake) Mother looking for her one night stand. To sell tourism. Ya, bet that went over GREAT in the homeland. And now we have Stüssy with “Strip for Likes” Is this progress? I think not.

The funny part is as I type this Stussy only has about 3k followers. You’d think for the flak they will take for this that they might be up farther. On the other hand, the clothing looks kind of stuffy and I’m from Texas and have no need for it. #meh

In conclusion, my position remains, as a society we need more breasts, and a lot less violence, especially against women. But I am not about to suggest that my clients mount a strip-for-likes campaign. I don’t think it will work, and it’s stupid. So there is that.

(Via Florian Schleicher aka @_whoelse on the Twitter (me too!)

Tendenci in Silicon Valley

convert legacy django mysql dbs from myisam to innodb

The Problem and the Virtue of Transactions

Disclaimer: a long time programmer, old guy, learning new tricks. If I made a mistake please let me know in the comments and I’ll credit and update the post. Thanks!

Short version: For Django – MYISAM BAD. INNODB GOOD. Fight it if you wish, but for me, this was the bug and the fix. (Oh, and everything below relates to a Mac OS X 10.7.3 so translate to your OS.)

Django supports transactions. This is a good thing. And recommended. In my case I had a bug where something in admin delete worked on my local machine but did NOT work in staging. Tres embarrassant!

Specifically (for the now open source Tendenci software) I was struggling with building a Tendenci Django plugin with related objects (categories, etc) and attached images (files). Basic CRUD stuff. CRUD worked on my django dev environment locally, but only CRU worked and D failed in staging. Specifically Django failed on delete with a relationship error. Can’t delete three things at once. Why? Hmmmm. Stumped.

Thanks to debugging by JMO, he found the difference is our staging and production database servers have tables that are set to INNODB as the storage engine and my local mySQL defaulted database tables to MYISAM (MySQL 5.1). Thus trying to delete an object through the Django admin failed in staging because it could not delete three things at once in INNODB which strictly enforces relationship rules. OK, that seems fair. MYISAM is more willy-nilly-do-whatever. Which means you have scraps of relational data left in your tables. Yuck. Long-term-data-mining-hell.

Bottom line – transactions in Django are not supported at a database level with Django middleware with MYISAM and thus I couldn’t wrap a (multi-)delete into one call in admin.py. Sure we could programmatically delete the objects in sequence as a quick bug fix, Yet I’d rather let Django handle the heavy lifting (and shorter code). And long term there is a strong need for transactions. Especially in the age of RESTFUL APIs (I miss you soap! NOT!) In current web development with API calls dependencies can easily be on 30 routers and 20 servers just so you can post a pic of your chicks to Instagram Flickr. Thus you have to be able to roll back transactions. That is part of what a framework does. And transaction rollbacks clearly should NOT be the application layer’s job IMHO. MVC and all even if C is in V in Django. Another debate…. So transactions it is.

How to upgrade the dev mysql database environment from MYISAM to INNODB?

The fix that worked for me came from this post on converting a mysql database to INNODB for Drupal as well as several others credited below. While this post is on Django, Drupal still supports both MYISAM and INNODB, the default in Drupal 7 is now INNODB. So don’t fight the man. I’m moving to INNODB for Django too.

What steps are required for Django on MYISAM on a Mac OSX to get transactions working in Django? Combining a few of the posts (all linked below) and the django transactions help file you wind up with the following:

First convert your database. To do this create a temp directory and change (cd temp) into it using terminal. Run the commands from this post. I repeated them below slightly changed and I am skipping the prompt indicator to make it easier to copy.

First check if this is even a problem by getting a list of databases that have tables that use MYISAM

mysql -u USERNAME -p
#it will prompt for your password here
SELECT table_schema, table_name FROM INFORMATION_SCHEMA.TABLES WHERE engine = 'myisam';

You will get some results from “information_schema” and “mysql” and I’d recommend not changing those. Just look for your dev databases.

Second create the SQL file to change the offending databases that are your Django mysql databases.

cd temp
mysql -u USERNAME -p -e "SHOW TABLES IN YOURDATABASENAME;" | tail -n +2 | xargs -I '{}' echo "ALTER TABLE {} ENGINE=INNODB;" > alter_table.sql

It will prompt you for your password and replace the USERNAME and the YOURDATABASENAME with your own. Side note, don’t put a dash in your database name or it won’t work. I want those 30 minutes of my life back. Moving on….

I’m a curious guy so I wanted to see the contents of the sql file. (Replace “Sublime Text 2″ with the text editor of your choice. I just use Sublime because Glen told me to).

open -a "Sublime Text 2" alter_table.sql

Ooooh. Aaaaah. Looks fine. OK, close that. From there I prefer to do the update one database at a time to be sure so this:

mysql -u USERNAME -p YOURDATABASENAME < alter_table.sql

Then to confirm run the myisam table query again (which we hope does NOT show our now converted DB.)

SELECT table_schema, table_name FROM INFORMATION_SCHEMA.TABLES WHERE engine = 'myisam';

All good? Cool.

For all I know INNODB might break another database so I am only focusing on your Django mysql databases. Now in your settings.py file in your Django project be sure you have the following line as part of your DATABASES setting.

'OPTIONS': {"init_command": "SET storage_engine=INNODB",}

The whole settings.py mysql connection setup now looks like this because I hate when people leave off the context of where to put code or the details (I’m looking at you StackOverFlow.) /rant/Actually the only thing I hate more are code examples that use sqllite because they are close to useless. /rant/

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'YOURDATABASENAME',
        'USER': 'USERNAME',
        'PASSWORD': 'BLAH',
        'HOST': 'BLAH',
        'PORT': 'BLAH',
        'OPTIONS': {"init_command": "SET storage_engine=INNODB",}
    }
}

Now when you run from your project directory the usual “python manage.py syncdb“ command it doesn’t use the database defaults regardless. Anything new should be automatically created INNODB.

The following posts are the entire basis of the content above. I just combined it all in one place specific to Django and MySQL on Mac OS X. Comments and corrections are welcome.

  1. https://docs.djangoproject.com/en/dev/topics/db/transactions/
  2. http://djangosaur.tumblr.com/post/357759467/django-transaction-mysql-engine-innodb
  3. http://www.electrictoolbox.com/find-innodb-tables-mysql/
  4. http://www.mikebernat.com/blog/MySQL_-_InnoDB_vs_MyISAM
  5. http://highervisibilitywebsites.com/convert-your-mysql-database-myisam-innodb-and-get-ready-drupal-7-same-time
  6. http://stackoverflow.com/questions/9947671/performance-difference-between-innodb-and-myisam-in-mysql
  7. http://tag1consulting.com/MySQL_Engines_MyISAM_vs_InnoDB