Sunday, January 31, 2010

Book Review: Web Design for Developers

A Programmer's Guide to Design Tools and Techniques
Author: Brian P. Hogan
Format: Paperback, 300 pages
Publisher: Pragmatic Bookshelf; 1st edition (December 15, 2009)
ISBN-10: 1934356131
ISBN-13: 978-1934356135

While there can be some overlap between web designers and web developers, they tend to define their own specific worlds. However, what if a programmer would also like to be better at design? Where does he or she go? Turns out Brian Hogan and the folks at Pragmatic thought in that direction as well and came up with Web Design for Developers. I guess the title gives it away. But is this book just for programmers who want to learn design?

On the surface, the answer to that question seems to be "yes". You've created a killer web app but the appearance of said-killer app looks lousy...or at least doesn't look as good as you'd like it to be. Of course, you probably know someone who could help out with the design, but it might be nice to be able to do the job yourself. How to begin? The blurb on the back cover mentions magic words such as PhotoShop and CSS so I'm guessing that's where you'd start. I still can't imagine that a book like this is only for programmers, though. Let's dig a little deeper.

Well I'll be darned (or something). As I began looking through the book, the target audience seems to be folks who are cracker jack web developers but who really don't have much of a clue about how to actually design a web site. I point you to Chapter 9: Building the Home Page with HTML as proof of this. For people who've mastered the arcane intricacies of ASP, PHP, Python, and Ruby on Rails, I wouldn't think a simple markup language would be much of a chore, and for some programmers I know, it's not. Actually, for most programmers I know, it's not. On the other hand, while HTML might not be much of a basic challenge to a developer, creating a web site and making it look good could be an uphill climb, as it requires something of an artistic way of viewing the web.

That explains the earlier chapters in this book, which includes basics on style, color, fonts, and graphics. To my relief, Hogan did mention both GIMP and PhotoShop, so his book isn't a slave to proprietary software. That's good, because designing for the web can be done very expertly utilizing the world of open source tools. This also gets at what I was alluding to a few paragraphs ago. Do you have to be a programmer to benefit from this book? No.

What do at least some web developers and any one else who wants to design web sites but have little or not experience with the job have in common? The question provides the answer. There's nothing in the book's presentation of the topics involved that can only be understood by programmers. If a developer can read and understand font and typographic basics, so can the non-developer. The would-be web designer picking up this book will likely get the same information and skills practice as the programmer thumbing through the pages.

I particularly liked the section called Adding Graphics, which contained a number of chapters instructing the reader how to put together a mock-up site, focusing on structure and content. If you don't have experience making an image in your imagination turn into a real web site design, these chapters will help you operationalize your images and your dreams...and this comes before even one word about HTML and CSS.

Another nice feature in the book that I rarely (but not never) see is how to design for web browsers. The author slams Microsoft's Internet Explorer, and rightly so, but also addresses what you have to do to design for IE's tendency to work outside of accepted standards, particularly IE6 (which should just plain be abandoned). From designing for people who are visually impaired to designing for mobile devices, Hogan hits all the areas someone building for the web in 2010 needs to understand.

The mock-up site designed early in the book has a life throughout its pages and acts as an anchor for developing and refining all of the different tools and techniques practiced by the reader. Some content, such as testing and performance optimization (Chapter 20) might be more familiar to programmers than other folks, but, if you've gotten this far in the book, you'll probably be ready to tackle such tasks anyway.

I can't say the book is revolutionary or that I haven't seen its content in other books, but taken all by itself, Web Design for Developers is a good primer for anyone who would like to learn web design from a global perspective. From graphics, to color, to fonts, to HTML/CSS, and onward, Brian Hogan has written a solid little book that should get you off the ground and into web design, whether you're a programmer or not.


Wednesday, January 27, 2010

Sourceforge Denies Site Access to Comply with US Law

Is open source all that open anymore? That's probably an unfair question. By definition, open source products are available to everyone without least from the open source community's point of view. But what about the U.S. Government's?

I was inspired to write this little missive by reading the Dana Blankenhorn and Paula Rooney blog at This morning, I took a look at their article Obama enforces trade embargo against open source. This means, among other things, that people from certain countries visiting Sourceforge will not gain immediate access to the open source projects contained therein, but rather, will receive a "nastygram" in the form of a 403 forbidden message.

Why would President Obama, the "transparent" President, do this? I thought he was reaching out to all the communities of the world, including nuclear weapon building Iran. Turns out there are certain countries the U.S. just doesn't do business with. They include Cuba, North Korea, the Sudan, Syria and yes, Iran.

You can have a look at the Bureau of Industry and Security U.S. Department of Commerce Entity List and Denied Persons List to discover the details, or just visit Sourceforge's explanation regarding how it is complying with U.S. law by denying access to their site from these countries. In other words, we don't do business with terrorists or other like "entities".

Is Sourceforge happy to comply with the Obama administration and federal restrictions? Heck, no. This flies in the face of everything open source is supposed to stand for. Reader comments at Sourceforge pretty much reflect this attitude. For instance, someone named pyalot commented:
Sourceforge, you suck! You suck so badly, I’ll hereby guarantee you that I’ll not only recommend *anybody* stay the heck away from you scumbags, I’ll actively let everybody know that you’re the scum of the earth. Shame on you! Shame!
Another, more measured response, from dutchuncle states:
SF is between a rock and a hard place on this. Law on many subjects tries to spread the responsibility around to involve more people in enforcement, whether they wanted to be or not. For example, think about how many people in business wind up collecting government taxes. Even though SF is “just” a file cabinet, not a creator, they become the first point of contact in any trail of export-controlled information, and so would be the first ones in line to get in trouble. SF is trying to make the best of bad choices, and I agree with their choice while being unhappy that they had to make it.
Bottom line is that Sourceforge must comply or break the law, but as some of the commenters at Sourceforge have noted, maybe it's a law worth breaking in order to uphold an ideal.

That said, we don't live in ideal world and no body of laws, no matter how just the intent of the lawmakers, is completely perfect or fair. Another thing to consider is whether preventing people from these countries from accessing Sourceforge is punishing the governments who are "evil" or the citizens who likely are not (at least some of them)? A person may live in Iran, North Korea, or Syria, but that doesn't make them automatically bad. Plenty of people around the world don't think much of America, but that doesn't mean every citizen of our country supports our nation's policies. Your country of origin does not automatically dictate your intention or behavior.

Who is the Federal Government punishing in compelling Sourceforge to comply with the law; totalitarian regimes who are working to promote violence and oppression in their nations and around the world, or innocent men and women who, like those of us in freer nations, just want to enjoy the work and benefits of the open source world?


Tuesday, January 19, 2010

10 Ways to Embrace Change: Why this Doesn't Work with (Married) Men

A slightly humorous but mostly serious interpretation of why change isn't always good...and why it sometimes continues to hurt when the change is "over".

I know, I know. Change is inevitable. At least that's what I keep hearing. Our current President was elected on the platform of Change, although Washington seems to still be up to its same old tricks. I saw a tweet by @GuyKawasaki where he passed on a link to an article called 10 Ways to Embrace Change. My spider sense immediately started tingling. My first thought was to re-spin the title "10 ways for someone to force change down your throat and make you feel guilty about it if you complain". Not all change is bad, but not all change is good, either.

As I was reading the list, I started applying the advice to my own life. The catalyst for the article was the author's prior job loss and how she managed it. I know plenty about job loss and unemployment, having worked in the world of temporary contractors for a number of years and I can tell you, losing your job can be completely disheartening, particularly if you've got a family to support. Also, as much as I hate to say it, there's just something about the male viewpoint of the world that totally interprets unemployment as utter failure.

Nevertheless, I continued to press on through the list of "10 ways", finding myself "rewriting" each of them as I was reading. Hence this blog article was born. The idea here is for me to quote the original piece of advice and then to post my take on it. Some of it is tongue-in-cheek with an underlying layer of searing pain. Deal with it as you will.

First off, here's the link again to the original 10 Ways to Embrace Change article written by Katherine Russell Rich. Read it completely, and then come back here.

1. Don't just do something; sit there.

Katherine: If you're facing a massive rescaling of your life, your first impulse will be to go into a whirring spin of activity, which is exactly what I did right after I was fired. I later discovered there's a lot of value to sitting quietly instead. In the realm of language learning, there's a stage called the silent period: Adults may try to avoid going through it, but if you take a kid and plop her down in Paris for a spell, she'll naturally clam up for a few months. When she opens her mouth, her French will have flowered. Making sense of a major change is a lot like that. You need to allow yourself a fallow period before you can blossom.

Me: When I've suddenly lost employment for any reason, while I didn't become a chatterbox, the urge to immediately launch into frantic job-search action is overwhelming. It's the only way to deal with the crushing weight of shock and depression that just hit you (me) like a ton of concrete and rebar. Also, if you're "married with children", you are expected to "DO SOMETHING" right away. No job, no income, no medical insurance, no adding to the 401K for impending "retirement", no self esteem, no rest. Spending time observing "the situation" only seems to increase self-loathing, depression, and the sense from your spouse that you're being lazy.

2. Mother yourself a little.

Katherine: When familiar routines suddenly dissolve, it can seem as if all your supports are gone. For a while after I lost my job, I had the sense that I was in free fall. It's crucial, while absorbing the shock of the new, to make yourself feel well taken care of. Prepare nutritious meals for the week ahead. If you can spare the cash, have someone come in and clean the house. Yes, you need to take some time for yourself, but don't let the pizza boxes pile up.

Me: First off, there is not "if you can spare the cash". You can't if you don't know when your next real paycheck is coming in (unemployment doesn't's just there to keep you from having to eat cat food for awhile). My wife is the keeper of the family budget and she's done a really good job at keeping us out of debt, which has saved our collective ass when I've been out of work. Don't plan on asking your spouse if you can prepare special meals or hire in a housecleaning service. It's not happening. I know all the books on this say to do things like exercise, do yoga, relaxation techniques, and I've done at least some of that, but as Katherine says, Mother yourself a little. Once the "little mothering" is done, you still have a lot of work to do.

3. Ignore your inner reptile.

Katherine: There's a part of the human mind that is often referred to as the "lizard brain," because it existed in even the earliest land animals. The lizard brain is concerned with survival; it likes the tried and true, so it's likely to pipe up right now, flooding you with adrenaline warnings of "Danger!" as you veer off course. This was a handy function to have when deviating from the familiar path to the watering hole may have led to an encounter with a saber-toothed tiger. But in the modern world it's like a misfiring car alarm: pointless and annoying.

Me: My "lizard brain" is more like the Robot in Lost in Space screaming, "Danger, Will Robinson! Danger!" Ignoring a survival instinct is about as easy as ignoring being on fire. The other part of it isn't just the "I must survive" alarm but, "I've got to make sure the family survives" alarm. Again, fortunately, I don't have car payments, house payments, boat payments, and we try to keep the credit card debt down to as close to zero as possible, so it's not like unemployment means instant homelessness for us. That said, everything still feels totally and completely up in the air with no bottom in sight when you get your job knocked out from under you. The lizard brain is only satisfied when you start establishing a new routine and will never completely leave you alone until you (at least me) have a "real job".

4. Silence your inner know-it-all, too.

Katherine: When I interviewed the eminent linguist Alton Becker, I asked what makes someone good at languages. It helps not to be too smart, he said, explaining, "Smart people don't like having their minds changed, and to learn a language, you have to change your mind." If you're so smart that you can't rethink your positions, all your IQ points won't do you much good when your life is turned upside down. Becker's advice applies across the board.

Me: I never feel "too smart" when I'm unemployed. Quite the opposite. I feel really, really dumb. After all, if I was so smart, I'd have a job, wouldn't I? If I was so smart, I'd have a good job, with a high income and lots of cool benefits, wouldn't I? I've always said that one of the main reasons God created marriage was to keep men humble. In unemployment situations, I can end up feeling extremely "humble", even when my wife tries to tell me I'm "smart".

5. Seek out new perspectives.

Katherine: Zen practitioners cultivate the "don't know" mind; they work to assume they don't know anything and in that way see the world fresh. This is a great way to approach change - as an opportunity to start anew, to consider all possibilities. Ask naive, wide-eyed questions of anyone who is doing anything you might be interested in trying. Listen seriously to arguments you might once have dismissed.

Me: I suppose this works if you've got enough cash squirrelled away to live on for six-months or a year and feeling relatively secure, but when you are feeling really insecure due to lack of income, and are desperate for a security fix, rethinking your philosophy on life really takes a back seat to the job hunt. I read about some sort of hierarchical scale one time that said starving people do not engage in philosophy. Philosophers are those people who are well-fed and have the time, energy, security, and luxury to "ponder deep thoughts". Sudden unemployment and the job search is a drive, like hunger, sleep, or sex. It isn't just a splinter in the mind, it's a railroad spike. I've tried to explore new options when unemployed, learn new technologies and skill sets, but the job search ends up taking over again. I've never been attracted to the "Zen thing", especially in a crisis. Just seems too "abstract". I end up learning more new skill sets when I'm in a job that requires I ramp up to them. Give me a challenge attached to a paycheck and I'm all over it, but that's the survival instinct again.

6. Try something new and slightly scary.

Katherine: Why? Because now is the time to explore what it is that you really like. Catch yourself off-guard and see what happens. At a time when I was feeling most stuck, I spontaneously volunteered to get up onstage at an open-mic storytelling evening in New York City. The experience was elating and terrifying and showed me that I wanted to lead a more creative life.

Me: Huh? If losing your job isn't scary enough for you, then try base jumping. If watching your wife twist herself into the ground with anxiety and tension at the thought of the loss of family income and security isn't disheartening enough, then you're the Tin Woodsman. Women are all about security. Take that away from them and they go nuts. If you're the husband/father and you take security away from them (it doesn't matter if you were fired or laid've taken away the security...rational thought goes out the window...her lizard brain fully engages and then it engages you), you damn well better let "scary" motivate you to get another job fast!

7. Be skeptical of common wisdom.

Katherine: It's dangerous to live in the aggregate, especially when you're trying to figure out your next move. One year, everyone knows you need an M.B.A. to succeed at anything. The next, they're saying that there are no jobs out there anyway, so don't even try. In my case, everyone but I knew that you can't learn a language at age 43. But since no one alerted me to that fact, that's what I set my sights on.

Me: OK, I can do this one. I'm not a big fan of "common wisdom" anyway and find that a lot of people (me included sometimes) don't know what the heck they're talking about. The one "wise person" you end up having to deal with though is your spouse. In my case, she had all kinds of ideas of what I should try to get a job. Some of them were actually pretty good if generic, but some weren't when she tried to address the technical specifics of my job/career. OK, to be completely honest, sometimes she suggested things that just scared the socks off of me and I pretended she didn't know what she was talking about. The reptile in me either wants to go out and make a fast "kill" or slither into a dark hole and hide. Oh, and at 55, I'm learning Biblical Hebrew, but it has nothing to do with being in a crisis. I can only afford the luxury of this activity now that my family's survival needs are taken care of.

8. Learn to live with uncertainty.

Katherine: When I began learning Hindi, my teacher encouraged me to get out and practice with native speakers in New York. I wound up asking a waiter for love (pyar) when I'd meant to request a cup (pyala). But in that way I inched into a new language. That anxious feeling does not signal that you're doing something wrong, only that you're trying something new.

Me: Actually, I wonder if asking for love (but not from a waiter, necessarily) is such a gaffe. You won't get it of course, because the insecure people around you who normally would give you "love" don't feel safe. On the other hand, that sort of reassurance would certainly be nice to have, when you feel like you're one of the apes hiding in a cave at the beginning of the film 2001: A Space Odyssey, listening to the cry of the predators in the night and knowing they're coming for you. All of life is uncertain, whether you're gainfully employed or not. We create the illusion of security so we don't panic at just about any sort of change and we refuse to acknowledge the hurricane on the horizon. I know. I sound cynical. I once heard Harlan Ellison say that "There's no security this side of the grave." As a person of faith, I am supposed to place my ultimate security in God, but being human, when stressed, my faith sometimes fails. I'm not proud to admit that, but it happens. So far, God has been merciful and when the going got tough, He provided.

9. Say "really?" a lot.

Katherine: When you start to turn this sudden shift in your life to your advantage, you might shake up a lot of people, especially the ones who aren't happy with how they're living. To them, your efforts to move forward may feel like a glaring searchlight that needs to be switched off and fast. To their descriptions of the terrible fates that will surely befall you if you dive headlong into a new life, respond with "Really?" Alternatively, "Oh, yeah?" works, too.

Me: Really? To quote the Lost in Space Robot again, "That does not compute." I really didn't notice this effect when "between jobs", but maybe that's because I wasn't learning Hindi, Zen, or "getting up onstage at an open-mic storytelling evening in New York City". I'm on the Internet searching for jobs, on the phone searching for jobs, posting my resume everywhere I can, bugging, begging, and pleading to get some sort of income going, and nurturing those part-time projects that always seem to come my way at the right time to help fill the gap. Being a guy, I may just have blocked out this sort of response in my environment. Desperation can give me a heck of a case of "tunnel-vision".

10. Shed your old skin.

Katherine: Discard physical clutter, tired ideas, old routines. Seeing things through another's eyes can help. I had that chance when the Hindi school I enrolled in asked me to list my daily requirements. I could honestly have said, "For the past 62 days, I've eaten pineapple sandwiches for breakfast: toast, butter, canned pineapple (sliced, not crushed). Bedtime: white-noise machine (surf, not rain), four pillows (two hard, two soft)." Instead I wrote, "None." It's only when you have cast off what has been weighing you down that you can finally move on.

Me: OK, that sounds a little too much like the "Zen thing" again. Usually, when people feel insecure, they'll do anything to try and crawl back inside their "old familiar skin" and if possible, slam the door shut behind them. You can only job hunt so many hours in the day. You can only endure the pained silence from your spouse so many hours in the day. Eventually, you need to retreat into something that takes the pain away for a little while. That may be a book, music, a movie, surfing the web, and so on. Sometimes it's booze or drugs, but that's not only maladaptive, but costs money you can't afford. Familiarity in a crisis isn't evil, it's necessary. My favorite line from the film Oh, God! is "Sometimes when you don't feel normal, doing a normal thing makes you feel normal. Here...start shaving." In the film, the main character, a guy working at a grocery store, encounters God, played by George Burns and the guy is more or less asked to be a "latter-day prophet". I actually remember the quote as "When you're feeling crazy, do something normal." The grocery guy (played by John Denver) must have shaved a dozen times a day to try and stave off feeling crazy. When I feel crazy, I really need to feel "normal". Getting rid of my "old skin" would make me feel way too vulnerable in a crisis situation. Change is forced upon you in a crisis but much more plan-fully accomplished when you're secure.

I don't disdain Katherine Russell Rich's advice because I'm sure it worked...for her. She doesn't mention spouse or kiddies in her advice, so I can only believe that when this job loss occurred, she was unattached. When you're attached and frankly, when you're a guy, the rules are different. Over 45 years of feminism aside, women still expect men to fulfill certain roles in their lives. One of those roles is to get a job, work, and bring home money. Not because women are greedy, but because women need security. Men need security too, but for women and especially women with children, it's the single driving force in life.

I know I've made my wife sound terrible. She isn't. They say behind every successful man is a woman and I believe that. Men, while goal oriented, tend to achieve goals and then coast for awhile. Women see a wider range of needs and out of that, impress those needs on their husbands, even when we guys don't understand what our wives are seeing or feeling at all. However, when a guy loses his job, several basic personality and maybe even built-in genetic factors come into play:

1. The guy feels like a failure, even if losing the job was not his fault (and heaven help him if it was).

2. His wife feels like her husband is a failure because he failed to provide continual security (even if it's an illusion) for the family, and security for the family is, for most women, the single most important thing in life.

3. If the wife feels her husband isn't doing enough to re-establish security fast enough, she will move heaven and earth to make sure he starts generating that effort...mothering and trying new philosophies just don't cut it.

This sort of crisis can either strengthen a marriage or destroy it. Even if everyone is doing everything right, the stress experienced by each person in trying to deal with the crisis can just rip the fabric of the relationship to shreds.

Even if they manage to stay together and stability eventually returns, closeness and intimacy can be damaged, at least in the short run and maybe permanently. Once you've (the guy) even temporarily interrupted security in the family's life, and somehow managed to restore it, it's possible she'll never quite trust you again. Intimacy doesn't exist without trust, so that's down the tubes, too. The husband too may lose trust in his wife if she's had to do things that hurt him during the crisis to get him (at least from her point of view) to re-establish security. Once hurt, the man too may believe he can never count on his wife to "understand" and will fear another lay off for the rest of his life. He'll never be able to "relax" around her, especially if there's even a hint that the economy is bad and layoffs are looming.

Under ideal circumstances, the relationship will become stronger out of the crisis. If the couple can talk to each other and suppress their lizard brains while doing it, there's hope. The lizard brain in both the man and the woman is very self directing in a crisis though, and two crocodile's fighting to survive, especially when there's even the perception of competing priorities, can be a very ugly thing.

I'm not resistant to change. I'm resistant to "unanticipated crisis change". I love learning new things and periodically get the urge to go back to school and take another degree. That only works, at least comfortably, when you feel secure though. It feels like hell when it's forced on you.

Afterword: In 1999, I lost my job and my first career. Everything, and I mean everything, went into a tailspin. I ended up getting a temporary job with the Postal Service that kept the family in Cheerios and Ramen while I went back to school and took another degree. It took years and years and years for us to recover and much of the time, it was extremely painful, especially in the beginning. I don't know that we ever really least not completely. The whole thing has been complicated by life stage changes, with our children growing up and transitioning into adulthood (like the bumpy, fiery re-entry of a space capsule into Earth's atmosphere). I've got a "real job" again with an income and benefits, but life still isn't "secure", especially in the current economy. I feel like I could become unemployed again at any time and the whole nightmare would just begin again. That probably isn't true, but that's how I feel. I rely on God, but I also have the scars. I don't think they ever really heal.