A Quick Thought on Language and API References

We spend a lot of time and energy on making software usable and user-friendly, and with good reason.  It only makes sense to make the computer adapt to the user, not vice versa.  So why is it that we don’t give this kind of attention to the tools the we as technologists use every day?  When is the last time you saw a beautiful, easy-to-use language or API reference?  It seems to me that there’s a lot that could be done to make these gargantuan beasts easier to use.  Things like configurable sort order:

  • Alphabetical is a great default, and fantastic if you know the name of what you’re looking for.  I fully support keeping this as the default.
  • But what about optionally sorting by subject, for when you know the thing you’re looking for is in the library, but you don’t know what it’s called?
  • How about sorting by frequency of use?  Don’t show me the arcane shit that nobody but embedded programmers care about at the top of the reference just because it happens to start with ‘a’, show me the common stuff that everybody needs on a daily basis.
  • What about logical order of use?  Show me constructors first, then mutators, then accessors, then utility functions/methods, then destructors, so that the reference document itself mimics the structure of how to actually use an object or library of functions.

Language and API references tend to be huge and difficult to use, and there’s no reason at all why this should be.

My Web Development Toolbox

Yesterday, my friend Carlos posted about the core web design tools that he uses on a regular basis. I thought I’d chime in and mention some of mine, particularly as Carlos is a Mac user and some of his tools aren’t available for Windows, which is where I get most of my work done.



For Launchbar-like keystroke launching functionality on Windows, Launchy is a great choice — and free!



Like Carlos’s pick, TextPad supports syntax coloring for a number of languages. It’s also extensible — you can define new document classes and color them yourself, or download user-defined document syntax definitions created by the TextPad community.

Microsoft Visual Studio 2008


Yes, even though PHP is my language of choice, I sometimes find myself turning to the Evil Empire’s software development tools to work on it. MSVS has exactly one thing going for it: the slickest implementation I’ve seen of simulated in-place editing of files on a web server. This is such an important feature and so few programs seem to support it. Linux can easily and freely be extended to treat an FTP site as part of the local filesystem, but until Windows offers the same ease-of-use in this regard, it falls to the application vendors to offer this feature. Kudos to Microsoft on getting this one right — in their programming tools if not their operating system!



Because not everyone is onboard with simulated in-place editing, I often find myself needing to perform the edit-and-upload cycle manually. FileZilla does a fantastic job of giving me the FTP functionality I need with the ease-of-use I desire.

Google Chrome’s Inspector and FireFox’s Firebug


Not much I can say here that Carlos didn’t already mention, except that Chrome is my browser of choice rather than Safari. It’s still based on Webkit, though.



Lately I find myself doing a fair bit of graphic design work. That means I spend a good chunk of time working with The GNU Image Manipulation Program, the free open-source alternative to PhotoShop. All my screenshots for this post were made with Windows’ built-in screenshot functionality pasted into The GIMP.

CSSDrive’s Color Palette Generator


I must admit, the visual aspect of web design is not my forte, I’m more of a tech guy. That means that anything I can lean on to help me make things look spiffy is extremely useful. One example is this nifty Color Palette Generator, which allows you to upload an image and derive a color palette from it. Use this with a logo to generate a similar palette, or a nature photo to come up with something that’s naturally aesthetically pleasing. Very handy!

Those are the tools that work for me — what about you?

(Many thanks to Carlos for inspiring this post to my oft-neglected Technology category!)

Jobs Are Overrated

Next up in my survey of things that are overrated is traditional employment: jobs are overrated!

There isn’t much I’m going to say here that hasn’t already been said more eloquently by a host of bloggers across the web.  But I would be remiss if I didn’t include this topic in this series of posts, as I do believe that the popular addiction to traditional employment is harmful to many (but not all) of the people who are affected by it.

So, just what have I got against jobs?  Plenty of things!

  • Little control over your time. Most jobs require you to be there at a fixed time and remain there for a fixed time — whether it’s a typical 9-5 or a variable schedule set by a manager.  The standard 40 hour workweek takes up a big chunk of your time and, combined with a need for a healthy amount of sleep, leaves you with less than a third of your weekday to yourself — especially after considering the “overhead” involved in getting ready for work, traveling to and from work, and taking your mandatory lunch break (which, let’s face it, typically doesn’t really give you the time or freedom to make good use of it as personal time).  At my last job, my “eight hour” workday often cost me twelve hours — 7 AM to 7 PM.  Leisure activities, relaxation, education, and personal growth must be squeezed in around this massive drain on your time.  At the typical job, you must do your work when you are told.
  • Little autonomy. Jobs generally require you to work in a location determined by your employer, whether it is conducive to your productivity or not.  They also tend to entail working on tasks decided by someone else in a manner that suits their whims, regardless of whether those are the best tasks or the optimal methods.  As I write this, a Metallica lyric from Eye of the Beholder comes to mind: “You can do it your own way, if it’s done just how I say.”  (I’ve embedded a link to the song at the bottom of this post.) In the workplace, your job even has the authority to make you attend unproductive meetings and perform busywork which do not in any way contribute to getting your work done — and it’s your responsibility to make up this time!  At the typical job, you must do what you are told, how you are told, where you are told.
  • Little influence. By necessity, not everyone can be in charge, and the larger the company, the less say the typical employee has.  Which means that unless you are in a position of power, odds are you will have little to no ability to change the company’s course if you can see a better way to do things, have a new idea that might benefit the company, or know that the choices being made by those in charge are illegal, unethical, or just plain stupid.  Many companies are loathe to change, and even those that are open to change usually improve at a snail’s pace, a phenomenon I refer to as “moving at the speed of business”.  At the typical job, you have very little influence on those who tell you and others what to do.
  • Little security. Have you ever heard the saying “Don’t put all your eggs in one basket?”  It’s generally considered a bad idea to gamble all your savings on the performance of a single stock — why would it be a good idea to gamble the continued existence of your income on the performance of a single company, or sometimes even the whims of a single manager?  If your company goes under, downsizes, or gets acquired, or if someone in authority simply decides they don’t like you, you could lose your entire income overnight.  This can happen to anyone, any time, as our recent banking crisis and continuing recession have proven.  At the typical job, you have no reason to believe your job will still be there tomorrow.
  • Little compensation for achievements. If you saved or earned your company an extra ten thousand dollars tomorrow, how much of it would you see?  If you’re lucky, you might get a thank you.  Maybe a small gift card, if your company is particularly generous.  Likewise, if you learned a new skill tomorrow that made you a more valuable employee, many companies would not recognize and compensate that — your increased skills would merely result in an increase in the company’s bottom line, with no guarantee that you would receive any benefit from it whatsoever.  At a typical job, an increase in your value to the company does not guarantee an increase in your compensation.
  • Emotional factors. Allow me to let Dale Carnegie discuss this point for me:

    “Psychiatrists declare that most of our fatigue derives from our mental and emotional attitudes… What kinds of emotional factors tire the sedentary (or sitting) worker? Joy? Contentment? No! Never! Boredom, resentment, a feeling of not being appreciated, a feeling of futility, hurry, anxiety, worry–those are the emotional factors that exhaust the sitting worker, make him susceptible to colds, reduce his output, and send him home with a nervous headache. Yes, we get tired because our emotions produce nervous tensions in the body.” -Dale Carnegie from How to Stop Worrying and Start Living

    ‘Nuff said.

On the whole, employees in many companies are treated like children.  They are required to get up at a time determined by someone else’s whims, go where they are told to go, sit where they are told to sit, do what they are told to do the way they are told to do it, risk, receive less in compensation than the value they create for the employer (by necessity — if they didn’t, the employer wouldn’t make any money), run the risk of their income being cut off at any time for any reason or no reason at all.  If they disobey the authority figures, a system is in place to discipline them and bring them back in line.  A routine of this nature was not fulfilling, beneficial, enjoyable, or conducive to personal growth and well-being in elementary school, nor is it any of these things in adult life.  This is a system designed to force individuals to sacrifice their well-being for the good of the company without regard for their individuality, liberty, or humanity.

Isn’t it ironic so many of us in the so-called “free world” willingly choose to live as slaves?

This is the reason why I seek self-employment, and why I would suggest that anyone who is dissatisfied with traditional employment do the same.  Freelancers set their own hours (which, admittedly, may be long, but that is a personal choice and not an arbitrary requirement imposed by others), their work, their clients, their methods, their workplace (where applicable), and their compensation and benefits (limited only by the amount of business they are able to do).  The freelancer has the power to make decisions and to quickly change things that aren’t working, and with multiple clients comes a security from sudden and immediate lack of income — if you lose a client, only a fraction of your income is lost instead of all of it.  If you have a profitable idea or increase your value as a worker, you personally reap the benefit of that in your income.  You can focus on types of work that are less fatiguing to you, and if you find yourself feeling stressed anyway, you can take a break.  Self-employment has a great many benefits over regular employment, and while it’s not a panacea and there are indeed people who are perfectly happy with their jobs, I think the world would be a happier place if more of those who are dissatisfied with traditional employment investigated self-employment as an alternative.

(Note: This song has a long intro which starts very quiet — it may take several seconds after you press play before you actually hear anything.)

Degrees Are Overrated.

We live in a world where degrees are overvalued and misinterpreted, and from an efficiency standpoint, I understand why this is.  It’s very difficult to thoroughly evaluate the depth and breadth of a person’s knowledge, so degrees serve as a shortcut of sorts.  They supposedly offer proof (or at least evidence) that the possessor has learned a certain set of information and skills, both specific to a field and of general use.  In truth, though, they are often more a measure of tenacity than of learning.  If you can follow directions and buckle down and do what you’re told, you can get a degree, and that degree will be indistinguishable from one earned by somebody who learned and explored and bettered themselves.  And although the degree is a poor measure of a person’s retention of knowledge and abilities, it’s the system that’s in place and until something better comes along, it’s what people will continue to use.  And I can’t blame them — who has the time to do a comprehensive analysis of every job candidate’s true level of education, and how many job seekers would tolerate it?  No, we can’t get rid of degrees, however inadequate they may be.

As an aside: my father works in IT for a government contractor.  Co-workers are often impressed by the depth of his knowledge, and from time time to time will ask where he got his degree.  They are often surprised to learn that he has none.  This reaction is ludicrous.  It’s as if the population has been brainwashed into believing that attending a major university is the only way to learn anything.  Perhaps this is the reason so few people read anymore — maybe they believe they cannot possibly learn anything from it because there isn’t a professor or tuition involved.

What a horrible way to live your life.

There is a solution, however to this whole “degree” mess, for some people if not for everyone.  That solution is self-certification.

I encountered the idea of self-certification at a talk given by Cem Kaner, a prominent figure in the world of software quality assurance.  Mr. Kaner was asked whether he believed it was worthwhile to pursue the numerous “testing certifications” available to QA professionals.  He recommended instead a path of self-certification, which he explained consists of writing articles, giving talks, and generally making a name for oneself in one’s chosen field.  Effectively, if your reputation precedes you, your lack of a degree is irrelevant.

This, I imagine, plays better with a self-employed lifestyle than with traditional employment, although I can’t imagine that being a recognized authority in your field could fail to help you get a traditional job.  But self-certification requires some attributes that formal education either does not or helps to provide.  To become self-certified, one must be internally motivated — there are no due dates or deadlines, no assignments to complete, no tests to study for, except those that one chooses to seek out.  It requires a much more pro-active approach than going to school, where your primary task is to do what you’re told.  Self-certification requires you to seek out ways to contribute, opportunities to create and share within your field, chances to get your name out there by helping others in a public forum.

Self-certification is a very different type of process (and in some ways a more valuable one) than seeking a degree.  The very act of seeking to make a name for yourself in this way is a double win — your skills improve, allowing you to provide even greater value, while you simultaneously approach your goal of having a way to demonstrate the value that you already have.  By pairing the strategies of self-education and self-certification, you can avoid the inadequacies of both traditional education and the degree system that goes with it.

Formal Education Is Overrated.

(Note: This is a repost of an article which appeared on my LiveJournal on January 24, 2009.  I am transferring it over because it is the first in a series, which will be continued soon.)

I’ve never been a fan of formal education.

Maybe it works for some people, but it never worked all that well for me. I’m just a self-directed kind of guy, and working on someone else’s tasks to someone else’s standards on someone else’s schedule is nothing but irritating to me, and it hampers my education. The bottom line is that I love learning, but I can’t stand being taught.

My biggest problem with formal education is pacing. Most classes run at a fixed pace for a fixed period of time. That just isn’t how I learn best. Sometimes I make a cognitive leap in a subject and want to keep learning non-stop for hours or days on end. Other times I’m just not feeling it and the best thing I can do is set the subject aside for a while (hours, days, weeks, months, or even years) and let the concepts I’ve already absorbed gel before proceeding. Maybe I’m unusual in this regard, but I think it more likely that teaching at a constant pace is a sub-optimal system for many students. Even students who learn well at a constant pace will probably prefer a pace quicker or slower than what the instructor has chosen.

There is, however, a reasonable argument to support this system. It’s easier to teach if everyone’s learning the same thing at the same time at the same pace. It’s also easier to tell if someone’s falling behind, in the instance where there’s a deadline involved. Reluctant students may be more likely to complete a class if there are numerous fixed checkpoints along the way. Thus, our traditional educational system works in favor of the instructor and the least common denominator. The focus is on the numbers, working to herd students through the system in the largest numbers possible with the least inconvenience and cost.

This means that the students with the most potential must either fend for themselves or slip through the cracks. It’s sad, but it’s true, and it’s far worse in high school than it is in college. I was very disappointed in the “education” I received from my high school, which was very proud of its status as a “California Distinguished School”. My brief stay in Portland taught me, through meeting high school students and speaking to their parents, that Oregon schools are even worse. I advised one student there that if she wanted an education, she would have to take responsibility for it herself. High schools aren’t interested in educating kids, they’re only interested in processing them through the system with a minimum of fuss and hassle.

“I have never let my schooling interfere with my education.”

-Mark Twain

And really, that’s the key. If you want an education, you must take responsibility for it yourself. I can’t tell you how much harm I’ve done to my education in my younger years by misguidedly allowing my schooling to interfere with it. I permitted the school to persuade me that they were taking responsibility for my education, and sat back in expectation of its delivery. I was appalled by the paper-shuffling busy-work that I got instead, but continued waiting for the fulfillment of the promise, encouraged by the words of the adults in my life. In elementary school, “you’ll like middle school better”. In middle school, “you’ll like high school better”. And in high school, “you’ll like college better”. And finally I left high school early to go to Middle College, because every level of schooling before had utterly failed me. I had become more and more unhappy as the promises that things would be better next year proved to be not only empty, but bitterly ironic as things got WORSE every year. It wasn’t until I rejected traditional schooling and sought out an alternative program that I found a way to even make the situation TOLERABLE enough to graduate (and even then, not on time).

My bad… though I don’t know what I could have done differently with the limitations (both real and imagined) and lack of information I had to work with at the time.

But there is a solution to these problems, at least for those who are no longer beholden to the educational system. There’s a viable alternative to a college education — a college-level self-education. You may not wish to get the knowledge you seek from schooling, but you have to get it from somewhere, and believe me, it’s out there! I’m working out the details of how to go about this right now. It seems to me that the first step is to work out a curriculum — you have to know what you want to learn (perhaps not everything, but at least a starting point) before you can begin to assimilate knowledge. This is the step that I’m working on now, and is what prompted me to inquire about what should be included in a well-rounded education. I’m presently in the position of being able to design one for myself, and want to put some thought into it rather than just accept the structure that was thrust upon me by a system that thoroughly alienated me.

After deciding the general categories of my education, I’ll be narrowing each down to an initial focus, investigating and choosing educational resources, and beginning to read — I do expect that most of the knowledge I’m looking for will be found in books, despite my personal preference for the Internet as a source of information.

There’s still a hiccup in this plan, which I will investigate in another post — independent scholars face an additional challenge in having their studies recognized by those (such as employers) who use such things as a basis for decision-making. There are, of course, exceptions and ways around this, but as I said, that’s for another post.


At the beginning of June Chris Guillebeau posted an article on his blog about community building.  It couldn’t have come at a better time for me, as community is one of the things that’s been on my mind with regard to how I want to keep myself busy.  As I noted in my last post, self-unemployment has not been conducive to a sense of community in my life.  As a reminder, I defined community as having other people to interact with who are on the same or a similar path, people who want what I want and who can help me when I need it and accept my help when they need it.  In his post, Chris Guillebeau defines a community as  “a group of people united through a common struggle with the same stories”.  His definition is more concise than mine, but I think we’re getting at the same idea.

Community is one of the few positive aspects of traditional employment.  A traditional workplace gathers people together and provides them with a common struggle, resulting in the same stories.  The common struggle may be against the competition, the management, or even the customer, but it is present regardless, and often results in a camaraderie in the rank and file.  That’s something I’ve taken for granted in the past, and something which is not native to self-employment.  When community is not provided, it must be sought out or built instead.

I think it’s important to have a community for any major goal you are trying to achieve.  As I noted when I began this incarnation of the blog, I think it’s true that most of the problems people have in their lives are in the areas of health, wealth, and relationships.  So it stands to reason that it would be helpful to be a member of a community in each of these three areas.  Interacting with people who have similar ideas and goals as you do in these key areas can only help you stay on track with your goals, continue learning, and provide opportunities for growth (sometimes unexpected ones!).

I am currently following several blogs connected with these topics, and while these are fascinating and help me to feel less isolated as I read about people with similar struggles and stories, I think the facility of the Internet to connect people has its limits.  Although I owe many of my in-person friends to connections made online, I think that if you don’t take these relationships into the real world, they will necessarily be stunted.  Internet communities are valuable, but cannot take the place of face-to-face interaction.  (Some of you may be surprised to hear this opinion from me of all people.  To be honest, I’m a little surprised to hear it from myself.)

With that in mind, I want to find both online and offline communities with similar outlooks on health, wealth, and relationships.

In terms of health, I want to connect with people who are interested in losing weight and building muscle without expensive gym memberships or equipment.  Cardio, weight-lifting, and calisthenics are topics of interest, as well as healthful, inexpensive food with plenty of fresh fruits and vegetables (i.e. fiber).

I read a bit about personal finance, and a lot of people are talking about getting out of debt, managing money, investing, and so forth.  But I am more interested in the other side of the wealth equation, and would like to interact with people who discuss income generation — entrepreneurs, freelancers, and others with alternative approaches to employment and ideas about how to succeed on these paths.

Relationships are a little different, and I’ve already identified communities relevant to my interests and learned a lot from them, though I haven’t participated as much as I would like.  I’ll go into this in a little more depth in another post, as it deserves a more in-depth treatment.

But people skills have never been my forte, and I’m not quite sure how best to go about finding groups of people who are already on these paths.  Being who I am, Internet resources are first to spring to mind:

  • Craigslist
  • Meetin.org
  • Meetup.com
  • Blog searches

These resources can help to find groups of people who are talking about these things both on the ‘net and off, but how would I go about locating such people if I didn’t have the Internet at my disposal?  What groups are you a member of and how did you find them?  Are you looking for a greater sense of community?  As always, comments are welcome.

What Keeps You Busy?

My friend Alice wrote a post some time ago about the question “what do you do?” and how it usually really means “what do you do for money?”.  But I don’t see the question in that light — really what I’m interested in is “what do you do with the bulk of your time?”.  For most people, that is full-time traditional employment, but I find it more interesting when it isn’t.  As a result, I try to avoid the question “what do you do?” these days in favor of “what keeps you busy?”.  A subtle difference, perhaps, but a meaningful one.  If something other than pursuing income keeps you busy, good for you!  I’d like to hear about it.

I have been kept busy by four different employment statuses in my adult life, and each has its pros and its cons.  Each has a different feel to it.  Sometimes the specific activities which keep me busy are different from one status to the next, and sometimes they’re the same but take on different meanings, but these statuses definitely all have distinctly different flavors.  I’ve been employed, unemployed, self-employed, and most recently, self-unemployed.

To discuss the pros and cons of the these statuses, first I need to explore what I want out of the activities that keep me busy.

What I Want From What Keeps Me Busy

  • Self-Determination. I want to be the master of my time, choosing what I do, when I do it, and how long I do it for.
  • Activities I Care About. I want my activities to make a difference in a way that has significance for me.
  • Project Ownership. I want to have a significant stake in and responsibility for the outcome of what I do.
  • Community. I want to have other people to interact with who are on the same or a similar path, people who want what I want and who can help me when I need it and accept my help when they need it.
  • Adequate Compensation. I want to be able to maintain a comfortable lifestyle indefinitely.

Now that I have some criteria to work with, I can start evaluating the employment statuses.  This is all highly subjective, of course, based on my own life experiences — I’m sure others have different opinions stemming from different experiences.


Employment has been a mixed bag for me.

Self-Determination: Very little.  Projects and schedules are determined by the employer, often without regard for your skills, interests, wishes, or well-being.  Rigid 5×8 workweeks with more than 40 hours’ worth of work to be done per week.  No telecommuting, despite working almost exclusively in the software industry.  -1

Activities I Care About: Not yet.  Business change management software, real estate database software, adult internet dating and porn sites — unfulfilling, all.  Perhaps I just haven’t worked for the right company yet.  +0

Project Ownership: Varies from company to company.  I’ve found that it’s easier to come by in a small company than in a large, which contributes to my preference for working for small companies.  +0

Community: This is where traditional employment shines.  Everyone who’s hired is brought on to be part of the team, and everywhere I’ve worked, there have been good people, even in amongst the bad.  There are always people to talk to, work with, and learn from, and that has been a significant factor in employee retention at more than one place I’ve worked.  +1

Adequate Compensation: Although I have been underpaid for my skills for most of my career, I have almost always made enough to maintain a comfortable lifestyle, and usually enough to squirrel away a significant percentage as savings as well.  +1

How I Kept Myself Busy: Doing what I was told, when I was told, for as long as I was told.  Trying to make positive change in an organization which was invariably too rigid and inflexible to accept it.  Waiting out the clock because I was obligated to be there for a fixed amount of time every day no matter what.

Total Score: 1


Unemployment was an unmitigated disaster for me.  I think I was already beginning to suffer from depression before I became unemployed in 2001, and being unemployed contributed tremendously.

Self-determination: Up the wazoo.  TOO MUCH self-determination, in fact.  Able to do anything I wanted any time I wanted, I did nothing all the time.  Directionlessness.  -1

Activities I Care About: I wasn’t doing things I cared about so much as doing things to try to fill the time.  -1

Project Ownership: I didn’t recognize that I had a project, so although I certainly had a stake in and responsibility for the outcome, that outcome was inactivity and depression.  Directionlessness meant that there wasn’t anything for me to feel like I had a stake in or responsibility for.  -1

Community: I was pretty isolated during this time, too.  -1

Adequate Compensation: Take it from me, the pay SUCKS.  -1

How I Kept Myself Busy: Staring at a flashing light box (either computer or TV) all day long as an escape.  Sleeping a lot.  Being miserable.

Total score: -5


Self-employment felt little better than unemployment when I experienced it before, but I do believe that I was doing it wrong.  The directionlessness of unemployment and depression carried over into my freelance web design days, and I found myself unhappily doing the least I could to get by — or not even that.

Self-determination: Moderate.  You can pick and choose your clients, right?  Well, I had only one client, and worked for them doing whatever they wanted.  I was freer than at any regular job, but still bound by the client’s wishes (and hadn’t found any other clients to provide me with choices), so this worked out kind of neutral.  +0

Activities I Care About: I was building things on the web, and that was good.  I was able to expand my mind and improve my skills, which is important to me.  But ultimately the business of selling shoes on the web is not one that I am passionate about, so the projects themselves weren’t inspiring.  Another neutral, I think.  +0

Project Ownership: I had a LOT of latitude in what I could do, subject to approval by the business owner and his management staff.  I had a great deal of influence over their web site and their internet marketing activities, and took the web site from doing $500/month in business to about six figures a month in my time there.  It’s just a pity that the increasing business had no effect on my bottom line.  Still, I’ll call this a positive.  +1

Community: Very small, since it was a small business I was working for, and none of them were particularly high tech.  I was mostly on my own as the internet guy.  Again, though, I think I was doing it wrong.  More clients, more networking, etc., could have helped with this.  Another neutral.  +0

Adequate Compensation: It would have been, had I worked the hours I’d planned to, or negotiated better.  Yet another neutral.  +0

How I Kept Myself Busy: Mostly the same as during unemployment, but with an additional 5-20 hours a week of web design.

Total score: +1


Self-unemployment has been FANTASTIC for my mental health and my mood.  I’m so glad I quit my job in January.  It’s been like a mini-retirement (allusion to The 4-Hour Workweek intended).

Self-determination: Extreme.  I can do whatever I want, whenever I want, and I am usually taking full advantage of that to work on my projects.  +1

Activities I Care About: Speaking of my projects, I have time to read, write, code, do web design, blog, study game design, play video games for fun and research (instead of escape), etc.  Things I haven’t had time and/or energy for in year.  +1

Project Ownership: Yes.  No one else is working on my projects, so the stake and responsibility are all mine.  +1

Community: This has come to my attention as something that is currently lacking in my life.  I don’t have enough community, and need to reach out and make some connections with people and groups whose goals and interests are in line with mine.  0 for now, but I believe I can improve this to +1 soon.

Adequate Compensation: This is the one true drawback to self-unemployment.  I’m burning through my savings — and really, if I were receiving adequate compensation, it would be self-employment (doing it right), not self-unemployment.  -1

How I Kept Myself Busy: Like I said in the Activities I Care About section, reading, writing, coding,  web designing, blogging, studying game design, and playing video games.  I’m very happy with how I am keeping myself busy lately, though it defies labeling.

Total score: +2


Self-unemployment is the most fulfilling lifestyle I’ve experienced so far, and I am loathe to leave it behind, but my dwindling savings tell me I must start thinking about it.  I would like to transition into self-employment in a manner that results in a score of +5.  Pretty much doing what I’m doing now but with more project-related social interaction and selling it to people (or otherwise being compensated, e.g. through advertising).  Failing that, I think a job at a small company (perhaps an independent game company, blog network, or web design firm) would be a good fit.  Part-time or temporary work would be good if the money was good enough to keep me in food and clothing.  But really, I’d just like to keep on doing what I’m doing.

What about you?  What keeps you busy?  And what do you want from the activities that keep you busy?

Restaurant Review: Lee’s Sandwiches

Lee’s Sandwiches is a Vietnamese sandwich restaurant locatef on the El Camino Real in Sunnyvale just east of Mary Avenue.  I decided to drop in for lunch today to check it out, as I’ve often been curious about it.  I was in the mood for a deli-style ham and cheese sandwich, so I went in to see what they’ve got.

The restaurant has a few small round tables as well as a bar-like counter along the window overlooking the parking lot and the street.  It has a tile floor, and although it’s small and fairly utilitarian, it has a comfortable feel to it.  They have a large, colorful menu on the wall behind the counter, with each sandwich illustrated on a large square panel.  They have a number of Vietnamese sandwiches as well as a good selection of what their web site refers to as “Euro Sandwiches”.  Chips are located on shelves under the counter, the top of which is covered with various food items on styrofoam trays, mostly the sort of meat-and-rice or meat-and-noodles dishes you’d expect to find at a roach coach.  To the left is a drink refrigerator which mostly contains Asian beverages (both packaged and fresh) which I found unidentifiable.  Fortunately they have a small selection of American drinks for ignorant Americans like me, such as Arizona iced tea, Snapple, and Vitamin Water.

I ordered a ham and cheese sandwich on a baguette (#21) and picked up an Arizona iced tea and a bag of “Dirty” potato chips to go with it.  I paid and then found a seat at a small round table with two wooden chairs, and set up my laptop to do some reading and chatting while I waited for my sandwich.  A few minutes later it arrived in a cardboard tray with a hot pepper and a couple of pickle wedges.  The pickles looked very seedy, so I skipped them in deference to my dietary restrictions.  The sandwich was a pretty basic ham and cheddar with lettuce and tomato on it (I lucked out on one half and got a slice of tomato with no seeds, so I was able to eat it, but the other slice was very seedy, so I removed it).  There were two packets of mustard with it, but I didn’t feel it needed any.  The sandwich was surprisingly moist and flavorful without it.

I enjoyed my meal, but found that when it was gone, I was still hungry.  So I returned to the counter and selected a tray of chow mein and a bottle of Snapple.  The chow mein noodles were thin and there were a lot of bean sprouts and green onions in it, so that it was only about half noodles.  It was well-prepared and tasted good, but it wasn’t to my taste (I prefer thicker noodles and fewer vegetables).

Overall, Lee’s is a decent place to get a sandwich, especially if (like me) you like to have a few different places to go so that you don’t always have sandwiches made the same way.  I get tired of always having Togo’s or always having Subway, so it’s nice that Lee’s is nearby so that I have another choice of sandwich style.  I give it four stars out of five.  Check it out if you’re in the area and looking for a sandwich, but don’t feel like going to the Subway across the street.

The Crucible: Developing Expertise

Gladwell’s 10,000 Hours

I recently read a blog post on The Writer’s Coin which discussed some concepts from Malcolm Gladwell’s book Outliers. I haven’t read the book (yet) myself, but it sounds fascinating, and the post got me thinking about expertise.

Gladwell claims that to be a world-class expert in any given subject requires 10,000 hours of practice.


That’s a lot of time.

Let’s say you work full time on a skill you want to be a world-class expert on. 40 hours a week, 50 weeks a year (with two weeks of vacation) comes out to 2000 hours a year. So you would need to work full-time for five years. And we’re talking undivided attention here — time spent taking a break or working while distracted doesn’t count. 10,000 hours of real dedication, moving forward, challenging yourself, working at your edge and pushing beyond it constantly.

I say again: DAMN!

Even with enough free time, how do you find the motivation to do something like that?

Expertise and Me

Not everyone wants to be a world-class expert, and perhaps those who do usually have the dedication to work single-mindedly on their craft like this. I enjoy being good at things, but I’m less fond of the hard work required to get there. I guess that means I’m unlikely to ever be a world-class expert at anything, unless I discover something that I enjoy so much that it doesn’t feel like work to do it full-time.

I love the feeling of being the expert (a situation I have encountered a couple of times in my professional career), but the idea that true expertise requires that much time and effort is daunting at best. And yet the end result is so alluring that it might be worth it. Then it becomes a question of figuring out what to become an expert on, and that’s where things get really tricky. There are just so many choices!

I’ve been thinking lately about returning to the workforce (though likely in a limited capacity). For the first time in my career, I am thinking hard about what I want from an employer in terms of working conditions, company culture, and values. Expertise is one of the thoughts that keeps crossing my mind as I explore these ideas. “The expert” is my favorite role I’ve ever held in the workplace. Working in software quality assurance, I was often required to become an expert on how the product was supposed to work (and how it actually did work). This put me in a position to serve as a resource for other departments (technical writers, customer service folks, trainers, and even sometimes programmers). Being valued for my knowledge is extremely rewarding to me, whereas being valued for doing real work is almost annoying. I guess I like to be appreciated for my strengths rather than my weaknesses. 😉

I’m keeping this in mind as I think about employment — I will be much happier with a job if it offers me the opportunity to be the expert.

Cultivating Expertise in the Workplace

Now that I’ve worked a few different places, I have some perspective on what factors allow for the development of expertise. This is slanted toward a job in software QA, but I’m sure many of these factors are of general applicability.

  • Small team size. The fewer ways the work is divided, the more each person has to know. Large teams dilute expertise. For large and complex projects, it can be valuable to have each person develop expertise on one or more areas of the project, however.
  • Broad project scope. If an individual’s assignments are in too narrow an area of the product, it can be difficult for them to develop a good understanding of the big picture. Knowledge should be deep enough to qualify as expertise, but also broad enough to be useful often.
  • Quick turn-around. Repetition helps a lot with retaining what you’ve learned. If you learn something once and never need it again, odds are the details will fade. On the other hand, if you use that information again every day of the week, it will soon become second nature.
  • Good availability of information. Having an oracle of your own to turn to is invaluable in developing expertise, whether that oracle be another expert, printed documentation, a well-maintained wiki, or even just the application source code.
  • Customer input. Three things are certain in life: death, taxes, and the fact that the customer WILL abuse your product in ways that no one ever could have anticipated. The customer is both your best friend and your worst enemy in terms of uncovering information about your product. They will help you discover new things, but you may well wish they hadn’t!
  • Long-term attachment to one product/project. Switching from one project to another means that you’re no longer using and reinforcing the knowledge that’s unique to the first one, and you’re starting from scratch learning something new. That’s not an efficient way to leverage (or even maintain) your expertise. Working on one project for a long period of time allows you to maintain, develop, and deepen your expertise and put it to good use on a regular basis.

These elements will help you get closer to that ideal of 10,000 hours.

The blog post I mentioned above included this quote about the Beatles from Outliers:

All told, they performed for 270 nights in just over a year and a half. By the time they had their first burst of success in 1964, in fact, they had performed live an estimated twelve hundred times. Do you know how extraordinary that is? Most bands today don’t perform twelve hundred times in their entire careers. The Hamburg crucible is one of the things that set the Beatles apart.

Do your best to find or create a crucible for yourself, and expertise will follow.

Six Elements of a Good CRPG

Since I plan to create a computer role-playing game, I’ve been doing a little thinking lately about what makes them good. Although I don’t expect my first game to be a Final Fantasy killer, I do want to make the best game I can, and the first step is to define what that means and how to do it.

Here are six elements I think make for a good computer role playing game, in order of importance:

  • Characters. Rich, believable characters with realistic desires and goals and well-written dialogue help draw the player in and give them a reason to care what happens. If you want to make the player feel something with your game, characters are the way to do it.
  • Plot. The events of the game should be significant, even epic, so that the player feels like their actions matter. There should be high stakes, rich rewards, and dire consequences. There should also be a few plot twists to keep the story from being too predictable, but don’t go overboard — a plot that’s too convoluted is worse than one that’s too straight-forward.
  • Combat. A good CRPG features a fun, interactive combat system with the occasional surprise. These days just selecting commands from a menu isn’t enough, there should be some other element of player interaction. Random encounters should be common enough to build the party’s power, but not too common — it’s no fun fighting random battle after random battle when all you want to do is get to the good stuff (the boss fight, plot advancement, treasure at the end of the dungeon, etc.)
  • Graphics. The graphics should be colorful and distinctive, in a style suitable to the flavor of the game. Personally, I don’t care for the manga-style art used in many CRPGs, but that’s a matter of taste. For a high-fantasy game, the graphics should be clear and bright, while a dark post-apocalyptic RPG would probably be better served by a grittier style.
  • Music. Like the art style, the music needs to be well-suited to the tone of the game, the nature of the storyline, and the current environment the characters are in. Exploring a dank, monster-infested dungeon may call for creepy music, while an unexpected death scene might need a somber dirge, and a grand palace should have something suitably dramatic. One important element is that the music not be too repetitive, as it will be playing over and over again anyway and can get boring or annoying quickly if you’re not careful.
  • Sound Effects. Sound effects are not often done well, perhaps because there are so many other elements that are more important, but they’re worth paying attention to. An inappropriate sound effect or one which is re-used for many different things can be jarring, so it’s a good idea to make them different and as recognizable as possible.

These are the things that came to mind when I sat down to think about what to focus on in working on my game. By no means do I consider this list complete, or even necessarily correct. Think I missed something? Disagree with what’s on the list, or what order it’s in? Leave a comment and let me know!