Author Archives: Lou Franco

2012 Personal Goals

I was inspired by Heidi Grant Halvorson in the Harvard Business Review blog today to work on my 2012 goals:

Get specific. When you set yourself a goal, try to be as specific as possible. “Lose 5 pounds” is a better goal than “lose some weight,” because it gives you a clear idea of what success looks like. Knowing exactly what you want to achieve keeps you motivated until you get there. Also, think about the specific actions that need to be taken to reach your goal. Just promising you’ll “eat less” or “sleep more” is too vague — be clear and precise. “I’ll be in bed by 10pm on weeknights” leaves no room for doubt about what you need to do, and whether or not you’ve actually done it.

This is similar to the SMART philosophy of goal making (good goals are Specific, Measurable, Attainable, Realistic, and Timely), which I try to follow.

Another influence on goal setting for me is Covey’s Seven Habits. The last one, Sharpen the Saw, suggests we work to increase our Mental, Physical, Emotional/Social, and Spiritual/Renewal capacity.

To that end, I developed these personal goals for 2012:

Mental

  • Publish 75 blog posts
  • Work 3 hours per week on personal coding projects
  • Publish 3 apps

Physical: work out 5 days/week, and

  • Be able to do 10 dead hang pull-ups
  • Be able to do 10 ring dips
  • Be able to bench press 155 pounds
  • Rx 30 workouts at CrossFit
  • Eat paleo food on 275 days

Social/Emotional

  • Do 100 hours of community service
  • Eat meals with 25 different groups of people

Spiritual/Renewal

  • On last weekend of each month, spend at least two hours alone somewhere outside and unpopulated. Look over goals and plan the next month.

Gift a story for Christmas

I have a friend that is very hard to shop for. One day, for his birthday, I tried to make a list of everything he likes. After an hour, I had this:

He likes to tell stories

He’s one of the more prolific and interesting story tellers I know. So, from then on, it was a lot easier to think of ideas — I just tried to find a way for us to spend a few hours doing something weird. Fencing lesson, new restaurant (with food he hasn’t tried), kayak to an eagle’s nest — every one of these things has made it into his story repertoire (enhanced for the listener’s pleasure, of course).

Probably, there’s a story-teller in your life to help with a new experience. Really, though, couldn’t we all use that?

SOPA Solution: Block Congress

A few weeks ago, I tweeted:

 

Today, I was wondering how easy that would be, and spent about 10 seconds in google to find that Congressional staffer IPs have been outed by Wikipedia for editing their boss’s pages:

Wikinews contributors have discovered that members of the United States Congress or members of their staff have recently been making questionable edits to Wikipedia.

[…] In one instance, Wikinews found that someone with one of the IP addresses, 143.231.249.141, began to edit the Wikipedia article for Steve Austria, the Republican representative for Ohio’s 7th congressional district.

[…] Another individual, with the IP address 75.187.63.132, also removed the allegations of plagiarism from Austria’s article in February. The individual removed what they called “Politically Motivated BS” from the article of Deborah Pryce.

To confirm, I put the first IP in an IP Locator tool and got this:

From here you can figure out an IP range to target, and then it’s trivial to serve them different content (perhaps giving them a taste of what SOPA IP blocking would be like). I leave that as an exercise to the reader.

To be effective it needs to be done by sites that Congressional staffers actually depend on or on enough smaller sites to get media attention.

What is the Jobs to Be Done Framework

I recently have become interested in the Jobs-to-be-done framework outlined in The Innovator’s Solution by Clayton Christensen. To start to apply it at Atalasoft, I wrote this blog about how an SDK’s job might be understood and described the framework this way:

Briefly, you look at a product as the job it was hired to do, rather than its category, features, benefits, who bought it, etc. Christensen makes the argument that jobs are enduring over time (as products and customer segments change).

and concluded:

Applying this insight gives SDK makers a way to target features, not at just the job the SDK does for their developer customer, and not just at what their application does, but also at the job that the end-user is trying to do.

Today, I was sent a quora link where the JTBD framework is being discussed. I’m looking for JTBD tactics, so I loved this part from Chris Spiek:

If we were doing jobs research around the Starbucks offering, it would start with something like: “tell me about the moment when you first considered going to Starbucks. Where were you? What were you doing? Who were you with? What time of day was it?” The interview would move through the decision making process (what else did they consider?), the consuming process (being at Starbucks), and the end with “looking back” and understanding their concept of value (what it did for them) upon reflection.

By conducting a number of these interviews, you can begin to see “jobs” emerge.

To see an example of jobs being discovered and filled with Social Media sites, read Whitney Johnson’s What Job Does Social Media Do?

If you hire social media, especially to promote your business, you will likely have your own reasons, but ask yourself the question, “What problem am I trying to solve?” This will likely get you to the functional element. To peer into your emotional and social why, also ask “what progress am I trying to make?”

These are all great starting points to getting to know JTBD — I will be posting much more on this to help myself learn more about it.

Sunday is Pushday

I believe that making a commitment public helps you stick to it. So, because I want to make more of my private code public on github, I am treating each Sunday as “Pushday”.

On every Sunday, I am going to push something, no matter how small, into github. If I have nothing useful, I will write something new. My only restriction, is that the push must be useful (a bug fix, new feature, a minimal project).

Today, I am taking one of the JavaScript files from my pet project ASCIIMatic, and making it available under BSD. ASCIIMatic takes simple descriptions of diagrams, translates them into dot, runs it through the dot interpreter to get a set of drawing instructions, and then draws the result in ASCII art. The vision is to make it easy to include UML diagrams in your source code comments, but it has a long way to go to do UML. Right now, it can do a some simple box and arrow diagramming.

Today, I pushed ascii-drawing.js, which implements a simple ASCII drawing surface with draw line, rect, and text commands.

It is available under the asciimatic-scripts project on github.

Planning out a Blog

As I mentioned last week, I am participating in National Personal Project Month (NaPerProMo) along with Plan B Nation and others.

My plan is to write every day, but publish on a once or twice a week schedule. This will help me build up a backlog of posts, so I have something to post even if I don’t have time to write. I also post about once per week on my work blog at Atalasoft, and I’ll probably use those posts as jumping off points.

To help me get started, I spent the last two weeks planning out what I want this blog to be about. In the past, I have had a hard time coming up with anything to write about. I had focused on programming (specifically iPhone programming), but I do most of my writing about that in StackOverflow answers, and my posts were just elaborations on common questions.

I came up with this plan:

  1. Pick five categories that I can write about.
  2. Brainstorm 10-20 topics in each category. If I can’t think of that many, throw out or alter the category.
  3. For categories that don’t pan out, try to find a spin on the topics I generated for it, so that they fit in one of the better categories.
  4. Pick a week’s worth of topics and put them in a queue.
  5. Each day write the next one, and put another in the bottom of the queue.

The topics that I ended up with are:

  • Software Business: This is obvious, since this is what I spend the bulk of every day thinking about
  • Programming: I have been programming for a long time, I have some personal projects that I want to open-source, and it also naturally fits into what I know and think about. I intend to get away from the more technical posts that I typically write, and focus on high-level ideas and follow my projects’ progress.
  • Programmer’s Job Market: Ever since I became a member of my local Regional Employment Board, I’ve been thinking more about the labor market and how it’s changing for programmers.
  • Reviews (books, apps, etc): I read a lot about marketing, business, and other non-fiction topics. I don’t read nearly enough for book reviews to be a category, so I expanded it to apps and other things that I use.
  • Riffs: Tweets, Hacker News, other blogs, my own past blogs — these are all fertile ground for topic ideas. It gives me an opportunity to link to others, and make this blog part of a larger conversation.

Some categories didn’t work out. For example, I am a CrossFitter, and recently joined my gym’s Paleo club. I feel like I have interesting things to say about that, but they are neither my expertise, nor are they similar to other topics I will blog about. I will still be able to fit it in somewhat, because one of my programming projects is related to this.

I recently switched over to Trello for managing personal information, here’s what my plan looks like in it:

The first column is the queue of upcoming posts, and the next five are the five categories I identified with a list of topics. I color-coded each category, so that the queue would show that I was mixing between the categories. The final column is a list of finished posts.

I am obscuring the topics because I don’t want to commit to these just yet, and since I generated more than 50 ideas, I know that some of them will never be done. I saved a full snapshot to possibly discuss later.

I also decided to turn on comments as an experiment. I’ve been using Disqus elsewhere on this site, and the latest RapidWeaver supports it for blogs, so I turned it on for now.

Making an SDK Better at its Job

Clay Christensen’s The Innovator’s Solution [amazon affiliate link] describes a way think about products, called the jobs-to-be-done framework. Briefly, you look at a product as the job it was hired to do, rather than its category, features, benefits, who bought it, etc. Christensen makes the argument that jobs are enduring over time (as products and customer segments change).

His example is a chain restaurant looking to increase milkshake sales.  After using traditional methods and failing, they set out to discover the job that milkshakes are hired for. Here’s Christensen’s account:

The key thing here is that they found a customer segment (morning commuters) that would never have been defined beforehand. Also, the metrics that commuters considered important (long-lasting, quick purchase, fits in cup holder, etc) were nothing like what they would have asked (level of chocolate, healthiness). Jobs-to-be-done points the way to the right innovations for a product to be a better employee at the job it was hired for.

Of course, I want to apply this to Atalasoft and our .NET Imaging SDKs, but SDKs are a weird case. They have to do the job that our customers’ customers want to do (we make tools for toolmakers). If I look at only our customers, I will see jobs that don’t get to the root of the problem.

In this table, the first column is something DotImage does, the second is something that the application using DotImage might use that for, and the final column is the job being done by the user of the  application.

SDK JobApplication JobUser Job
Turn a Code 39 Barcode into textTake a 1000 page TIFF and split it into many documents based on barcodesScan a pile of paper as one document, but have the software know how to split and import it automatically
OCR a TIFF and produce a PDF with textScan a document and build a search index of the text in it.Find all documents related to a specific customer to comply with an e-Discovery document request.
Scan a document from a website and view itImport a scanned document into a repositoryProvide ID and other documents when signing up for a bank account
Annotate a documentProvide a document collaboration workflowAsk a question about a specific line item in an invoice.

As you get more to the right side of the table, you start to see enduring jobs – 100 years from now, you’ll have to show ID when you open a bank account, and invoice discrepancies will need to be resolved, and the same was true 100 years ago.

Applying this insight gives SDK makers a way to target features, not at just the job the SDK does for their developer customer, and not just at what their application does, but also at the job that the end-user is trying to do.

December is Plan B Nation NaPerProMo

A few years ago, to get myself ready for Rich Hickey’s Northampton Clojure talk, I decided to do an intense 20 Days of Clojure series, where I learned one new thing and blogged about it each day in March 2008, leading up to the talk. It was a great experience and probably the most popular content on my site.

Today, Amy Gutman, on her new Plan B Nation blog, is suggesting working every day in December on moving a personal project forward, or NaPerProMo (National Personal Project Month — a take on National Novel Writing Month).

I’m in.

My personal project will be to write 31 entries in this blog, although, like Amy, I will probably only publish a couple per week and save up the others.

In a comment on her blog, I offered participants a free copy of Habits, my iPhone app for forming habits, to all participants (until I run out of promo codes). If you want a copy, make some kind of public commitment to NaPerProMo (tweet, blog, comment on Amy’s site), and then let me know about it by using my contact page.

Extending the Social Media Metaphor in Twilight: Breaking Dawn

Last year I wrote a post about the social media metaphor in Twilight: Eclipse:

I think a lot could be said about how the wolf pack telepathy is like Facebook (Jacob talks about the drama of a love triangle being broadcast around the wolf pack). And perhaps Alice has some kind of super-twitter that people can’t help using to blurt out their plans to her.

But I think the most interesting Social Media aspect to Twilight is Bella. Bella’s thoughts cannot be read, and in the Twilight world, privacy is a super-power.

Spoiler Alert: I have to give away some details of the movie (and the next one) in this review.

In Breaking Dawn, we got two more parts of this extended metaphor. Like Google+, the wolf pack upgraded its platform to have Circles (which they call “packs”), and split into two. Jacob, Seth, and Leah no longer receive the telepathic updates from Sam’s pack.

But, what I woke up this morning thinking about was, “What the hell is imprinting?”. I think it’s easy to think of it as falling in love or marriage, and then that leads to the critique that Jacob fell in love with a baby. This movie makes it pretty clear that that isn’t what imprinting is – so, what is the equivalent?

When I started to take it apart, the most important thing about imprinting in this movie is the transfer of reputation that is respected by others. (MAJOR SPOILER) The only real consequence of Jacob’s imprinting on Renesmee is that Sam’s pack won’t kill her (“It’s their most important law”). It’s that transfer of the importance of Jacob’s relationship status that I was wondering how to relate to social media. It feels like relationship status broadcasting, but it still doesn’t have the transfer of reputation that imprinting seems to have.

The only thing I could come up with was when Kanye West joined Twitter and decided to follow just one person:

The music star has joined the social networking site – as @kanyewest – but is following only one person – Steven Holmes.

Mr. Holmes saw his Twitter followers increase from 60 to 1,200 in just a few hours after the American hip hop star began following his updates.

Mystery surrounds why the singer has chosen to follow Mr. Holmes.

Kanye has since unfollowed him (I don’t think that’s allowed with imprinting), but Steven Holmes still has 4,000+ followers (the pack’s respect), and Kanye’s choice appears to be as random and mysterious as Jacob’s.

You Need More than a Resume

Job seekers need strategies for standing out and need to start thinking about this well before they need a job—maybe be thinking about it all of the time.

My advice is the same as it has been in the past:

  1. Hone your craft. Be the most qualified person for the job you want.
  2. Research the company you plan to apply for, and tailor your application.
  3. Put together a portfolio. This will become the norm—right now, it’s a way to stand out.
  4. Build up your professional network. You’re more likely to get a job through an introduction rather than adding your resumé to their pile.

Start now. Doing these things while you are looking for a job is too late.