Texas Employment Statistics

As Rick Perry has joined the Republican Party presidential fray, there will be questions about his prowess at bringing jobs to Texas.  Of course, a governor can only directly “create” jobs by increasing payroll of government employment, but he does have a limited role in creating a more or less positive environment for businesses in the state, an that may have an impact on private employment as well.

The 2008-2011 recession has hit private employment in Texas just has it has in ogther ; however, it is worth noting that federal, state, and local employment figures have continued to rise through this same period.  Rise in state employment figures roughly matches the growth in the state government budget, and of course, the state budget deficit.  Some of these deficits have masked by federal ARRA “stimulus” funds, but that will be the subject of another post.

These stats drawn from the Texas Workforce Commission:

May 2008 – 8,857,500
May 2011 – 8,704,800

2011, though, has seen some job growth – not to pre-recession figures, but growing nonetheless.  These stats may change, though, as often past month figures are re-adjusted:

Jan 2011 – 8,483,200
Feb           – 8,514,400
Mar          – 8,612,000
Apr           – 8,674,200

State Government employment has gone up through the recession, which matches (approximately) the growth in our state budget through this same period:

May 2008 – 364,200
May 2011 – 378,700

May 2011 reflects an interesting decrease, perhaps due to the current budget battles at the state level.  We’ll see if that drop remains:

Jan           – 374,500
Feb           – 385,000
Mar          – 385,300
Apr          – 385,300

Local government employment has also been growing through this period – this is partially state budget-driven, so is worth reflecting:

May 2008 – 1,244,600
May 2011 – 1,303,000



Egads, it’s been a long time since I’ve written a blog post. Yes, let’s blame Twitter for this!! Pithy, short, and easy, tweeting has become the easy way to share thoughts. Of course, not all can be written in just 140 characters, so I need to maintain a blog for deeper, yes, deeper thoughts.

But for now, let me just say one word: Django! Yes, I’ve been doing a lot of Django development over the past year. Enjoying it too. Python is concise, is nice. Not as nice as Smalltalk, of course, but nice enough. And, as a framework, Django delivers a lot of excellent functionality right out of the box. Been very pleased. I’ll have to write up some of my Django apps … when I have time, of cours.e

The 3 P’s of Social Media Marketing


Over the past year or so, I have been helping a small cafe in Houston, a tea house, enter into the world of social media marketing, mostly employing Twitter, and recently making use of Facebook. In fact, we were perhaps the first retail establishment in Houston to enter the brave new world of Twitter, and now boast over 1500 followers, making it the 2nd largest restaurant following in Houston. This cafe’s experience with social media has been quite successful, with results far better than advertising in traditional newspapers or magazines, and will continue to be a major participant in social networking space.

Follower count was never the strategy when we entered the Twitter world. I did have a strategy in mind when I first participated, and it was been refined through customer feedback and a few lessons-learned. I think our experiences can be useful to other retail stores, so just wanted to take some time here to share my insights. They can be organized as the 3 Ps of Social Media Marketing:

Passion Personality Place

Continue reading The 3 P’s of Social Media Marketing

nGram Dictionary

On a recent project, had to deal with searching of tens of thousands of product descriptions, with a need to find substring matches quickly.  The select: statement in Smalltalk works like a SQL table scan – okay for small collections, but becomes seconds+ response time with larger lists.

An effective solution to this is an nGram Dictionary.  Strings of words can be broken up into sets of tri-grams, quad-grams, quint-grams, and so on.

My approach to this is a Dictionary indexed by nGram length, each element containing dictionaries of nGram strings of collections of the string objects to be searched.  Thus, indexing results as such:

3 -> ana -> ('banana')
ban -> ('banana', 'band')
4 -> bana -> ('banana')
band -> ('band')
anan -> ('banana')
5 -> banan -> ('banana')

Continue reading nGram Dictionary

Decorators as Guards

I’m exploring a new pattern – I’m sure it’s been done before, but it’s new to me, and a useful exercise to get to the next stage with an application I’m envisioning.  The pattern is using Seaside Decorators as security guards.

So, last night, finally squeezed in enough time to my decorator guards into action.  Happy to report they’re working fine.  You can review the demo app yourself at agoric.seasidehosting.st/seaside/ibis .  Login as bob@test.com, password bob, or alice@test.com, password alice. Continue reading Decorators as Guards

Health Care – costs vs. price

It’s oft repeated that health care costs continue to rise at a crazy pace.  While most costs of most products and services have been decreasing, in terms of “real”, inflation-adjusted dollars, health care, like education, have been increasing at record paces.  And, unlike the housing/real estate “bubble”, there doesn’t seem to be an end in sight.  What’s going on?

Most commentators talk about health care cost increases.  However, the evidence I see suggests something different.  Yes, we’re seeing health care price increases.  But cost increases? There’s a difference.

Continue reading Health Care – costs vs. price

The Hottest Summer in Houston

1980 remains the hottest summer in Houston: 14 consecutive 100+ degree days, a high of 107, and 32 days altogether at 100 or above.

Yep, I remember that summer well: I was a lifeguard that year – and by the end of the summer, a coach, swim teacher, a pool cleaner, and a front-desk clerk as well.  I ended up with all the jobs at this local community pool, because workers were dropping like flies!  Seriously, by mid-summer every local kid had quit, and I kept picking up additional job duties; by the end of summer, I was working 12-14 hours a day.

Continue reading The Hottest Summer in Houston

Seaside – how to change a page’s title

I know I’ve seen the answer to this before, but had a hard time tracking it down, so thought it worthwhile to post.

To change the web page’s HTML title (or any other head information) for a web component, create a method updateRoot: .  This method will be called when the component is rendered on the page – remember to always super the call too.

component>>updateRoot: anHtmlRoot
    super updateRoot: anHtmlRoot.
    anHtmlRoot title: 'fooTitle'.
    "do anything else you'd like to Root here too"

Updater examples with Scriptalicious & Seaside

The first of a series of coding vignettes in Seaside.

 Context: a web app with a form containing multiple input fields.  Instead of waiting to submit the form, I want the page to update another element every time an input is changed.  In this example, a total field.  Solution was used for a simple MoneyCounter application:

MoneyCounter>>renderContentOn: html html form id: 'f'; with: [

html table: [
    html tableRow:
     [html tableData: [html text: 'pennies'];
         [html textInput
           id: 'pennies';
 	   "on: #pennies of: self;"
           callback: [:value | self pennies: value];
 	   onChange: (html updater
                       id: 'total';
		       triggerFormElement: 'pennies';
 		       callback: [ :r  |  self renderTotalOn: r])
       ] ]


    html tableRow:
      [html tableData: [html text: 'TOTAL'; space];
            tableData: [html span id: 'total' ; with: self total]]]]

MoneyCounter>>renderTotalOn: html

 html render: self total
MoneyCounter>>pennies: value
   pennies := value

	^((pennies asInteger * 0.01) +  etc.   )

Continue reading Updater examples with Scriptalicious & Seaside