scandalz.net
 
 
 
BETA (Google AJAX Search)

Web Development Solutions

I haven't kept this as up to date as I'd like but the stuff that is here is good to know. I'm going to modify it so other people can add sections to it and it can be a living document, but until then this is all you get.

The Eternal Lorem Ipsum

at 12:51 PM, 05/19/2012

If you've studied design at all, you've probably encountered Lorem Ipsum placeholder text at some point. Anywhere there is text, but the meaning of that text isn't particularly important, you might see Lorem Ipsum.

Tintin-lipsum

Most people recognize it as Latin. And it is. But it is arbitrarily rearranged and not quite coherent Latin, extracted from a book Cicero wrote in 45 BC. Here's the complete quote, with the bits and pieces that make up Lorem Ipsum highlighted.

Nemo enim ipsam voluptatem, quia voluptas sit, aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos, qui ratione voluptatem sequi nesciunt, neque porro quisquam est, qui dolorem ipsum, quia dolor sit amet, consectetur, adipisci[ng] velit, sed quia non numquam [do] eius modi tempora inci[di]dunt, ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit, qui in ea voluptate velit esse, quam nihil molestiae consequatur, vel illum, qui dolorem eum fugiat, quo voluptas nulla pariatur?

At vero eos et accusamus et iusto odio dignissimos ducimus, qui blanditiis praesentium voluptatum deleniti atque corrupti, quos dolores et quas molestias excepturi sint, obcaecati cupiditate non provident, similique sunt in culpa, qui officia deserunt mollitia animi, id est laborum et dolorum fuga.

But what does it all mean? Here's an English translation with the same parts highlighted.

Nor again is there anyone who loves or pursues or desires to obtain pain of itself, because it is pain, but occasionally circumstances occur in which toil and pain can procure him some great pleasure. To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain some advantage from it? But who has any right to find fault with a man who chooses to enjoy a pleasure that has no annoying consequences, or one who avoids a pain that produces no resultant pleasure?

On the other hand, we denounce with righteous indignation and dislike men who are so beguiled and demoralized by the charms of pleasure of the moment, so blinded by desire, that they cannot foresee the pain and trouble that are bound to ensue; and equal blame belongs to those who fail in their duty through weakness of will, which is the same as saying through shrinking from toil and pain.

Of course the whole point of Lorem Ipsum is that the words aren't supposed to mean anything, so attempting to divine its meaning is somewhat … unsatisfying, perhaps by design. Lorem Ipsum is a specific form of what is generally referred to somewhat cheekily as "Greeking":

Greeking is a style of displaying or rendering text or symbols, not always from the Greek alphabet. Greeking obscures portions of a work for the purpose of either emphasizing form over details or displaying placeholders for unavailable content. The name is a reference to the phrase "Greek to me", meaning something that one cannot understand, so that it might as well be in a foreign language.

So when you need filler or placeholder text, you naturally reach for Lorem Ipsum as the standard. The theory is that, since it's unintelligible, nobody will attempt to read it, but instead focus on other aspects of the design. If you put readable text in the design, people might think the text is important to the design, that the text represents the sort of content you expect to see, or that the text somehow itself needs to be copyedited and updated and critiqued.

(Regular readers of this blog may remember that I am fond of using Alice in Wonderland in this manner, when I need a bit of text to demonstrate something in a post.)

Lorem-ipsum

However, not everyone agrees that relying on a standard boilerplate greeked placeholder text is appropriate, even going so far as to call for the death of Lorem Ipsum. I think it depends what you're trying to accomplish. I once noted that it's better to use real content to avoid Blank Page Syndrome, for example.

There are quite a few websites that helpfully offer up the classic Lorem Ipsum text in various eminently copy-and-pastable forms.

Classic Lorem Ipsum

Beyond that, if you just want a bunch of, uh, interesting text to fill an area, there a lot – and I mean a lot – of websites to choose from. So many in fact that I was a little overwhelmed trying to index them all. I've tried to broadly categorize the ones I did find, below. If you know of more, feel free to leave a comment and I'll update the list.

Novelty

Clever English Tricks

Literature

Professions

Social Networks

TV, Movies and Media

Possibly NSFW

Regional

This is a lot to go through. If I had to pick a favorite, I'd say Fillerati because it's all dignified and stuff. But I think truer to the spirit of Lorem Ipsum are definitely the homophonic transformations, which consistently blow my mind every time I attempt to read them. Isn't that the implied goal of any properly greeked text? You were one deliciously perverse professor of romance languages, Howard L. Chace.

In today's Pinteresting world, images are arguably more important than text. But what is the Lorem Ipsum of images? Is there even one? I guess you could just slap some Lorem Ipsum text in an image, but where is the fun in that? Anyway, there are also plenty of websites offering up placeholder images of various types to go along with your Lorum Ipsum placeholder text.

Images

I'm not sure the world needs any more Lorem Ipsum-alikes than we already have at this point. Like the market for ironic t-shirts, the Internet has ensured that our placeholder greeked text needs have not merely been met but vastly exceeded for the forseeable future. But after discovering all the creative things people have done with Lorem Ipsum, and text placeholders in general, it's sure tempting to dream yet another one up, isn't it?

[advertisement] Hiring developers? Post your open positions with Stack Overflow Careers and reach over 20MM awesome devs already on Stack Overflow. Create your satisfaction-guaranteed job listing today!

Please Don't Learn to Code

at 02:38 AM, 05/15/2012

The whole "everyone should learn programming" meme has gotten so out of control that the mayor of New York City actually vowed to learn to code in 2012.

Bloomberg-vows-to-code

A noble gesture to garner the NYC tech community vote, for sure, but if the mayor of New York City actually needs to sling JavaScript code to do his job, something is deeply, horribly, terribly wrong with politics in the state of New York. Even if Mr. Bloomberg did "learn to code", with apologies to Adam Vandenberg, I expect we'd end up with this:

10 PRINT "I AM MAYOR"
20 GOTO 10

Fortunately, the odds of this technological flight of fancy happening – even in jest – are zero, and for good reason: the mayor of New York City will hopefully spend his time doing the job taxpayers paid him to do instead. According to the Office of the Mayor home page, that means working on absenteeism programs for schools, public transit improvements, the 2013 city budget, and … do I really need to go on?

To those who argue programming is an essential skill we should be teaching our children, right up there with reading, writing, and arithmetic: can you explain to me how Michael Bloomberg would be better at his day to day job of leading the largest city in the USA if he woke up one morning as a crack Java coder? It is obvious to me how being a skilled reader, a skilled writer, and at least high school level math are fundamental to performing the job of a politician. Or at any job, for that matter. But understanding variables and functions, pointers and recursion? I can't see it.

Look, I love programming. I also believe programming is important … in the right context, for some people. But so are a lot of skills. I would no more urge everyone to learn programming than I would urge everyone to learn plumbing. That'd be ridiculous, right?

Advice-for-plumbers

The "everyone should learn to code" movement isn't just wrong because it falsely equates coding with essential life skills like reading, writing, and math. I wish. It is wrong in so many other ways.

  • It assumes that more code in the world is an inherently desirable thing. In my thirty year career as a programmer, I have found this … not to be the case. Should you learn to write code? No, I can't get behind that. You should be learning to write as little code as possible. Ideally none.

  • It assumes that coding is the goal. Software developers tend to be software addicts who think their job is to write code. But it's not. Their job is to solve problems. Don't celebrate the creation of code, celebrate the creation of solutions. We have way too many coders addicted to doing just one more line of code already.

  • It puts the method before the problem. Before you go rushing out to learn to code, figure out what your problem actually is. Do you even have a problem? Can you explain it to others in a way they can understand? Have you researched the problem, and its possible solutions, deeply? Does coding solve that problem? Are you sure?

  • It assumes that adding naive, novice, not-even-sure-they-like-this-whole-programming-thing coders to the workforce is a net positive for the world. I guess that's true if you consider that one bad programmer can easily create two new jobs a year. And for that matter, most people who already call themselves programmers can't even code, so please pardon my skepticism of the sentiment that "everyone can learn to code".

  • It implies that there's a thin, easily permeable membrane between learning to program and getting paid to program professionally. Just look at these new programmers who got offered jobs at an average salary of $79k/year after attending a mere two and a half month bootcamp! Maybe you too can teach yourself Perl in 24 hours! While I love that programming is an egalitarian field where degrees and certifications are irrelevant in the face of experience, you still gotta put in your ten thousand hours like the rest of us.

I suppose I can support learning a tiny bit about programming just so you can recognize what code is, and when code might be an appropriate way to approach a problem you have. But I can also recognize plumbing problems when I see them without any particular training in the area. The general populace (and its political leadership) could probably benefit most of all from a basic understanding of how computers, and the Internet, work. Being able to get around on the Internet is becoming a basic life skill, and we should be worried about fixing that first and most of all, before we start jumping all the way into code.

Please don't advocate learning to code just for the sake of learning how to code. Or worse, because of the fat paychecks. Instead, I humbly suggest that we spend our time learning how to …

  • Research voraciously, and understand how the things around us work at a basic level.
  • Communicate effectively with other human beings.

These are skills that extend far beyond mere coding and will help you in every aspect of your life.

[advertisement] How are you showing off your awesome? Create a Stack Overflow Careers profile and show off all of your hard work from Stack Overflow, Github, and virtually every other coding site. Who knows, you might even get recruited for a great new position!

Fair warning: this is a blog post about automated cat feeders. Sort of. But bear with me, because I'm also trying to make a point about software. If you have a sudden urge to click the back button on your browser now, I don't blame you. I don't often talk about cats, but when I do, I make it count.

We've used automated cat feeders since 2007 with great success. (My apologies for the picture quality, but it was 2007, and camera phones were awful.)

Old-petmate-feeders

Feeding your pets using robots might sound impersonal and uncaring. Perhaps it is. But I can't emphasize enough how much of a daily lifestyle improvement it really is to have your pets stop associating you with ritualized, timed feedings. As my wife so aptly explained:

I do not miss the days when the cats would come and sit on our heads at 5 AM, wanting their breakfast.

Me neither. I haven't stopped loving our fuzzy buddies, but this was also before we had onetwothree children. We don't have a lot of time for random cat hijinks these days. Anyway, once we set up the automated feeders in 2007, it was a huge relief to outsource pet food obsessions to machines. They reliably delivered a timed feeding at 8am and 8pm like clockwork for the last five years. No issues whatsoever, other than changing the three D batteries about once a year, filling the hopper with kibble about once a month, and an occasional cleaning.

Although they worked, there were still many details of the automated feeders' design that were downright terrible. I put up with these problems because I was so happy to have automatic feeders that worked at all. So when I noticed that the 2012 version of these feeders appeared to be considerably updated, I went ahead and upgraded immediately on faith alone. After all, it had been nearly five years! Surely the company had improved their product a bit since then … right? Well, a man can dream, can't he?

New-petmate-feeders

When I ordered the new feeders, I assumed they would be a little better than what I had before.

Petmate-lebistro-old-and-new

The two feeders don't look so radically different, do they? But pay attention to the details.

  • The food bowl is removable. It drove me crazy that the food bowl in the old version was permanently attached, and tough to clean as a result.
  • The food bowl has rounded interior edges. As if cleaning the non-removable bowl of our old version wasn't annoying enough, it also had sharp interior edges, which tended to accrete a bunch of powdered food gunk in there over time. Very difficult to clean properly.
  • The programming buttons are large and easy to press. In the old version, the buttons were small watch-style soft rubber buttons that protruded from the surface. The tactile feedback was terrible, and they were easy to mis-press because of their size and mushiness.
  • The programming buttons are directly accessible on the face of the device. For no discernable reason whatsoever, the programming buttons in the old version were under a little plastic clear protective "sneeze guard" flap, which you had to pinch up and unlock with your thumb before you could do any programming at all. I guess the theory was that a pet could somehow accidentally brush against the buttons and do … something … but that seems incredibly unlikely. But most of all, unnecessary.
  • The programming is easier. We never changed the actual feed schedule, but just changing the time for daylight savings was so incredibly awkward and contorted we had to summarize the steps from the manual on a separate piece of paper as a "cheat sheet". The new version, in contrast, makes changing the time almost as simple as it should be. Almost.
  • There is an outflow cover flap. By far the number one physical flaw of the old feeder: the feed slot invites curious paws, and makes it all too easy to fish out kibble on demand. You can see in my original photo that we had to mod the feed slot to tape (and eventually bolt) a wire soap dish cover over it so the cats wouldn't be able to manual feed. The new feeder has a perfectly aligned outflow flap that I couldn't even dislodge with my finger. And it works; even our curious-est cat wasn't able to get past it.
  • The top cover rotates to lock. On the old feeder, the top cover to the clear kibble storage was a simple friction fit; dislodging it wasn't difficult, and the cats did manage to do this early on with some experimentation. On the new feeder, the cover is slotted, and rotates to lock against the kibble storage securely. This is the same way the kibble feeder body locks on the base (on both old and new feeders), so it's logical to use this same "rotate to lock into or out of position" design in both places.
  • The feed hopper is funnel shaped. The old feed hopper was a simple cylinder, and holds less in the same space as a result. When I transferred the feed over from the old full models (we had literally just filled them the day before) to the updated ones, I was able to add about 15-20 percent more kibble despite the device being roughly the same size in terms of floor space.
  • The base is flared. Stability is critical; depending how adventurous your cats are, they may physically attack the feeders and try to push them over, or hit them hard enough to trigger a trickle of food dispensing. A flared base isn't the final solution, but it's a big step in the right direction. It's a heck of a lot tougher to knock over a feeder with a bigger "foot" on the ground.
  • It's off-white. The old feeder, like the Ford Model T, was available in any color customers wanted, so long as it was black. Which meant it did a great job of not blending in with almost any decor, and also showed off its dust collection like a champ. Thank goodness the new model comes in "linen".

These are, to be sure, a bunch of dumb, nitpicky details. Did the old version feed our cats reliably? Yes, it did. But it was also a pain to clean and maintain, a sort of pain that I endured weekly, for reasons that made no sense to me other than arbitrarily poor design choices. But when I bought the new version of the automated feeder, I was shocked to discover that nearly every single problem I had with the previous generation was addressed. I felt as if the Petmate Corporation™ was actually listening to all the feedback from the people who used their product, and actively refined the product to address our complaints and suggestions.

My point, and I do have one, is that details matter. Details matter, in fact, a hell of a lot. Whether in automatic cat feeders, or software. As my friend Wil Shipley once said:

This is all your app is: a collection of tiny details.

This is still one of my favorite quotes about software. It's something we internalized heavily when building Stack Overflow. Getting the details right is the difference between something that delights, and something customers tolerate.

Your software, your product, is nothing more than a collection of tiny details. If you don't obsess over all those details, if you think it's OK to concentrate on the "important" parts and continue to ignore the other umpteen dozen tiny little ways your product annoys the people who use it on a daily basis – you're not creating great software. Someone else is. I hope for your sake they aren't your competitor.

The details are hard. Everyone screws up the details at first, just like Petmate did with the first version of this automatic feeder. And it's OK to screw up the details initially, provided …

  • you're getting the primary function more or less right.
  • you're listening to feedback from the people who use your product, and actively refining the details of your product based on their feedback every day.

We were maniacal about listening to feedback from avid Stack Overflow users from the earliest days of Stack Overflow in August 2008. Did you know that we didn't even have comments in the first version of Stack Overflow? But it was obvious, based on user feedback and observed usage, that we desperately needed them. There are now, at the time I am writing this, 1,569 completed feature requests; that's more than one per day on average.

Imagine that. Someone who cares about the details just as much as you do.

[advertisement] Stack Overflow Careers matches the best developers (you!) with the best employers. You can search our job listings or create a profile and even let employers find you.

Buying Happiness

at 15:00 PM, 05/03/2012

Despite popular assertions to the contrary, science tells us that money can buy happiness. To a point.

Recent research has begun to distinguish two aspects of subjective well-being. Emotional well-being refers to the emotional quality of an individual's everyday experience — the frequency and intensity of experiences of joy, stress, sadness, anger, and affection that make one's life pleasant or unpleasant. Life evaluation refers to the thoughts that people have about their life when they think about it. We raise the question of whether money buys happiness, separately for these two aspects of well-being. We report an analysis of more than 450,000 responses to the Gallup-Healthways Well-Being Index, a daily survey of 1,000 US residents conducted by the Gallup Organization. […] When plotted against log income, life evaluation rises steadily. Emotional well-being also rises with log income, but there is no further progress beyond an annual income of ~$75,000.

For reference, the federal poverty level for a family of four is currently $23,050. Once you reach a little over 3 times the poverty level in income, you've achieved peak happiness, as least far as money alone can reasonably get you.

This is something I've seen echoed in a number of studies. Once you have "enough" money to satisfy the basic items at the foot of the Maslow's Hierarchy of Needs pyramid – that is, you no longer have to worry about food, shelter, security, and perhaps having a bit of extra discretionary money for the unknown – stacking even more money up doesn't do much, if anything, to help you scale the top of the pyramid.

Maslows-hierarchy-of-needs

But even if you're fortunate enough to have a good income, how you spend your money has a strong influence on how happy – or unhappy – it will make you. And, again, there's science behind this. The relevant research is summarized in If money doesn't make you happy, then you probably aren't spending it right (pdf).

Most people don't know the basic scientific facts about happiness — about what brings it and what sustains it — and so they don't know how to use their money to acquire it. It is not surprising when wealthy people who know nothing about wine end up with cellars that aren't that much better stocked than their neighbors', and it should not be surprising when wealthy people who know nothing about happiness end up with lives that aren't that much happier than anyone else's. Money is an opportunity for happiness, but it is an opportunity that people routinely squander because the things they think will make them happy often don't.

You may also recognize some of the authors on this paper, in particular Dan Gilbert, who also wrote the excellent book Stumbling on Happiness that touched on many of the same themes.

What is, then, the science of happiness? I'll summarize the basic eight points as best I can, but read the actual paper (pdf) to obtain the citations and details on the underlying studies underpinning each of these principles.

1. Buy experiences instead of things

Things get old. Things become ordinary. Things stay the same. Things wear out. Things are difficult to share. But experiences are totally unique; they shine like diamonds in your memory, often more brightly every year, and they can be shared forever. Whenever possible, spend money on experiences such as taking your family to Disney World, rather than things like a new television.

2. Help others instead of yourself

Human beings are intensely social animals. Anything we can do with money to create deeper connections with other human beings tends to tighten our social connections and reinforce positive feelings about ourselves and others. Imagine ways you can spend some part of your money to help others – even in a very small way – and integrate that into your regular spending habits.

3. Buy many small pleasures instead of few big ones

Because we adapt so readily to change, the most effective use of your money is to bring frequent change, not just "big bang" changes that you will quickly grow acclimated to. Break up large purchases, when possible, into smaller ones over time so that you can savor the entire experience. When it comes to happiness, frequency is more important than intensity. Embrace the idea that lots of small, pleasurable purchases are actually more effective than a single giant one.

4. Buy less insurance

Humans adapt readily to both positive and negative change. Extended warranties and insurance prey on your impulse for loss aversion, but because we are so adaptable, people experience far less regret than they anticipate when their purchases don't work out. Furthermore, having the easy "out" of insurance or a generous return policy can paradoxically lead to even more angst and unhappiness because people deprived themselves of the emotional benefit of full commitment. Thus, avoid buying insurance, and don't seek out generous return policies.

5. Pay now and consume later

Immediate gratification can lead you to make purchases you can't afford, or may not even truly want. Impulse buying also deprives you of the distance necessary to make reasoned decisions. It eliminates any sense of anticipation, which is a strong source of happiness. For maximum happiness, savor (maybe even prolong!) the uncertainty of deciding whether to buy, what to buy, and the time waiting for the object of your desire to arrive.

6. Think about what you're not thinking about

We tend to gloss over details when considering future purchases, but research shows that our happiness (or unhappiness) largely lies in exactly those tiny details we aren't thinking about. Before making a major purchase, consider the mechanics and logistics of owning this thing, and where your actual time will be spent once you own it. Try to imagine a typical day in your life, in some detail, hour by hour: how will it be affected by this purchase?

7. Beware of comparison shopping

Comparison shopping focuses us on attributes of products that arbitrarily distinguish one product from another, but have nothing to do with how much we'll enjoy the purchase. They emphasize characteristics we care about while shopping, but not necessarily what we'll care about when actually using or consuming what we just bought. In other words, getting a great deal on cheap chocolate for $2 may not matter if it's not pleasurable to eat. Don't get tricked into comparing for the sake of comparison; try to weight only those criteria that actually matter to your enjoyment or the experience.

8. Follow the herd instead of your head

Don't overestimate your ability to independently predict how much you'll enjoy something. We are, scientifically speaking, very bad at this. But if something reliably makes others happy, it's likely to make you happy, too. Weight other people's opinions and user reviews heavily in your purchasing decisions.

Happiness is a lot harder to come by than money. So when you do spend money, keep these eight lessons in mind to maximize whatever happiness it can buy for you. And remember: it's science!

[advertisement] Hiring developers? Post your open positions with Stack Overflow Careers and reach over 20MM awesome devs already on Stack Overflow. Create your satisfaction-guaranteed job listing today!

Trust Me, I'm Lying

at 18:48 PM, 05/01/2012

We reflexively instruct our children to always tell the truth. It's even encoded into Boy Scout Law. It's what adults do, isn't it? But do we? Isn't telling the truth too much and too often a bad life strategy – perhaps even dangerous? Is telling children to always tell the truth even itself the whole truth?

Trust-me-im-lying

One of the most thought provoking articles on the topic, and one I keep returning to, year after year, is I Think You're Fat. It's about the Radical Honesty movement, which proposes that adults follow their own advice and always tell the truth. No matter what.

The [Radical Honesty] movement was founded by a sixty-six-year-old Virginia-based psychotherapist named Brad Blanton. He says everybody would be happier if we just stopped lying. Tell the truth, all the time. This would be radical enough – a world without fibs – but Blanton goes further. He says we should toss out the filters between our brains and our mouths. If you think it, say it. Confess to your boss your secret plans to start your own company. If you're having fantasies about your wife's sister, Blanton says to tell your wife and tell her sister. It's the only path to authentic relationships. It's the only way to smash through modernity's soul-deadening alienation. Oversharing? No such thing.

Yes. I know. One of the most idiotic ideas ever, right up there with Vanilla Coke and giving Phil Spector a gun permit. Deceit makes our world go round. Without lies, marriages would crumble, workers would be fired, egos would be shattered, governments would collapse.

And yet … maybe there's something to it. Especially for me. I have a lying problem. Mine aren't big lies. They aren't lies like "I cannot recall that crucial meeting from two months ago, Senator." Mine are little lies. White lies. Half-truths. The kind we all tell. But I tell dozens of them every day. "Yes, let's definitely get together soon." "I'd love to, but I have a touch of the stomach flu." "No, we can't buy a toy today – the toy store is closed." It's bad. Maybe a couple of weeks of truth-immersion therapy would do me good.

The author, A.J. Jacobs, is a great writer who has made something of a cottage industry of treating himself like a guinea pig, such as attempting to become the smartest man in the world, spend a year living exactly like the Bible tells us to, and to become the fittest person on Earth. Based on the strength of this article, I bought two of his books; experiments like Radical Honesty are right up his alley.

Radical honesty itself isn't exactly a new concept. It's been parodied in any number of screwball Hollywood comedies such as Liar, Liar (1997) and The Invention of Lying (2009). But there's a big difference between milking this concept for laughs and exploring it as an actual lifestyle among real human beings. Among the ideas raised in the article, which you should go read now, are:

  • Telling someone that something they created is terrible: is that cruelty, because they have no talent, or is it compassion, so they can know they need to improve it?
  • Does a thought in your head that you never express to anyone represent your truth? Should you share it? This is particularly tricky for men, who think about sex twice as much as women.
  • How much mental energy do you expend listening to a conversation trying to determine how much of what the other person is saying is untrue? Wouldn't it be less fatiguing if everything they said was, by definition, the truth? And when you're talking, always telling the truth means you never have to decide just how much truth to tell, how to hedge, massage, and spin the truth to make it palatable.
  • In a hypothetical future when every action we take is public and broadcast to the world, is that exposing the real truth of our lives? Should we become more honest today to ready ourselves for this inevitable future?
  • Always telling the truth can be thrilling, a form of risk taking, as you intentionally violate taboos around politeness that exist solely for the sake of avoiding conflict.
  • Total honesty can lead to new breakthroughs in communication, where politeness prevented you from ever reaching the root, underlying causes of discontent or unhappiness.
  • Honesty is more efficient. Rather than spending a lot of time sending messages back and forth artfully dancing around the truth, go directly there.
  • If people see you are willing to be honest with them, they tend to return the favor, leading to a more useful relationship.

What we often don't acknowledge is that the truth is kind of scary. That's why we have a hard time being honest with ourselves, much less those around us. Reading through all these ambiguous situations that A.J. put himself through, you start to wonder if you understand what truth is, or what it means to decide that something is "true". After summarizing the article in bullet form, I'm surprised there are so many points in favor of honesty, maybe even radical honesty.

But uncompromisingly committing to the whole truth, and nothing but the truth, has a darker side.

My wife tells me a story about switching operating systems on her computer. In the middle, I have to go help our son with something, then forget to come back.

"Do you want to hear the end of the story or not?" she asks.

"Well...is there a payoff?"

"F**k you."

It would have been a lot easier to have kept my mouth closed and listened to her. It reminds me of an issue I raised with Blanton: Why make waves? "Ninety percent of the time I love my wife," I told him. "And 10 percent of the time I hate her. Why should I hurt her feelings that 10 percent of the time? Why not just wait until that phase passes and I return to the true feeling, which is that I love her?"

Blanton's response: "Because you're a manipulative, lying son of a bitch."

Rather than embrace the truth, as Radical Honesty would have us do, Adrian Tan advises us to be wary of the truth.

Most of you will end up in activities which involve communication. To those of you I have a second message: be wary of the truth. I’m not asking you to speak it, or write it, for there are times when it is dangerous or impossible to do those things. The truth has a great capacity to offend and injure, and you will find that the closer you are to someone, the more care you must take to disguise or even conceal the truth. Often, there is great virtue in being evasive, or equivocating. There is also great skill. Any child can blurt out the truth, without thought to the consequences. It takes great maturity to appreciate the value of silence.

I think he's right. But Radical Honesty isn't altogether wrong, either. Let me be clear: Radical Honesty, as a lifestyle, is ridiculous and insane. Advocating telling the truth 100% of the time, no matter what, is harmful extremism. But it's also wonderfully seductive as a concept, because it illustrates how needlessly afraid most of us are of truth – even truths that could potentially help us. Radical Honesty teaches us to be more brave. That is, when it's not destroying our lives and the lives of everyone around us.

Ask yourself: what is the purpose of this truth? What effect will sharing this truth have on the other person, on yourself, on the world? What change will come about, positive or negative, from choosing to voice a particular truth at a particular time?

I believe that the true lesson of Radical Honesty is that truth, real truth, is honesty with a purpose. Ideally a noble purpose, but any purpose at all other than "because I could" will suffice. By all means, be brave; embrace the truth. But if your honesty has no purpose, if you can't imagine any positive outcome from this honesty, I suggest you're better off keeping it to yourself.

Or even lying.

[advertisement] What's your next career move? Stack Overflow Careers has the best job listings from great companies, whether you're looking for opportunities at a startup or Fortune 500. You can search our job listings or create a profile and let employers find you.

Geekatoo, the Geek Bat-Signal

at 00:15 AM, 04/27/2012

To understand this story, you need to understand that grandchildren are like crack cocaine to grandparents. I'm convinced that if our parents could somehow snort our children up their noses to get a bigger fix, they would. And when your parents live out of state, like ours do, access to the Internet isn't just important. No. It is life threatening.

Like Gator in Jungle Fever, grandparents just gotta get their fix of the grandkids every month. And if they don't, if their Internet is broken for any reason, you're going to get an earful via telegraph and facsimile and registered letter until you fix it.

one rule: never get high on your own supply.

Either way, they're gonna get high. On your kids.

My mom is no exception. So when her computer suddenly stopped working, and she couldn't get updates on her three grandkids, I got frantic calls. Which is odd, because everything had been working fine for a few years now. Once Henry was born in 2009, I set her up with a netbook that had Skype and Firefox set to auto update and she'd been able to video chat with us regularly, no problem at all, since then. So what happened?

My first thought was to hell with it, I'll just buy her a new iPad online via the Apple Store. I'm a big fan of the retina display, and surely the touchy-feely iPad would be more resistant to whatever problem she was having than a netbook, what with its archaic "operating system" and "updates" and "keyboard" and "mouse".

With some urging from my wife (I married well), cooler heads prevailed. What if her problem had nothing to do with the computer, but her Internet connection in some way? Then I'd just be trading one set of problems for another with the iPad. I have no idea how things are set up over there, thousands of miles away. I needed help. Help from a fellow geek who lives nearby and is willing to drive out and assist my poor mom.

My mom doesn't live near where I grew up any more, so I have no friend network there. All I could think of was Geek Squad. I've seen the trucks in our neighborhood, and they've been around a while, so I checked out their website. Maybe they'd work?

Geek-squad-service

When I can buy my mom a new iPad for $399, the idea of paying $299 just to have someone come out and fix her old stuff starts to feel like a really bad idea. But I suppose it's a preview of our disposable computer future, because it's increasingly cheaper to buy a new one than it is to bother fixing the old one. This is the stuff that my friend and iFixit founder Kyle Wiens' nightmares are made of. I'm sorry, Kyle. But it's coming.

I posted my discontent on Twitter, as I am wont to do, and received an interesting recommendation for a site I'd never heard of – Geekatoo.

Geekatoo-logo

I was intrigued, first because the site didn't appear to suck which is more than I can say for about half the links I click on, and second because it appealed to my geek instincts. I could post a plea for help for my mom, and a fellow geek, one of my kind who happened to be local, would be willing to head out and assist. I could send out the geek bat-signal! But I was still skeptical. My mom lives in Charlotte, North Carolina which, while not exactly the sticks, isn't necessarily a big tech hub city, either. I figured I had nothing to lose at this point, so I posted the request titled "Mom Needs Tech Support" with the info I had.

Much to my surprise, I got two great bids within 24 hours, geeks with good credentials, and I picked the first one. The estimate was two hours for $45, and he was on-site helping my mom within 2 days from the time I posted.

Geekatoo-case

It turns out that my wife's intuition was correct: the cable internet installer had inexplicably decided to connect my mother's computer to a neighbor's wireless, instead of setting up a WiFi access point for her. So when that neighbor moved away, calamity ensued.

And the results? Well, I think they speak for themselves.

Thank you Jeff you are the best son ever!!!!!!!!!

My mom, as usual, exaggerates about her only son. I am far, far from the best son ever. But any website that can make me look like a hero to my mom, and keep my fellow Super User geeks gainfully employed doing superhero work on my behalf gets a huge thumbs up from me.

Needless to say, strongly recommended. If you need reliable local tech support that won't break the bank, and you want to support both your family and your local geek community at the same time, check out Geekatoo.

[advertisement] How are you showing off your awesome? Create a Stack Overflow Careers profile and show off all of your hard work from Stack Overflow, Github, and virtually every other coding site. Who knows, you might even get recruited for a great new position!

Will Apps Kill Websites?

at 15:52 PM, 04/23/2012

I've been an eBay user since 1999, and I still frequent eBay as both buyer and seller. In that time, eBay has transformed from a place where geeks sell broken laser pointers to each other, into a global marketplace where businesses sell anything and everything to customers. If you're looking for strange or obscure items, things almost nobody sells new any more, or grey market items for cheap, eBay is still not a bad place to look.

At least for me, eBay still basically works, after all these years. But one thing hasn't changed: the eBay website has always been difficult to use and navigate. They've updated the website recently to remove some of the more egregious cruft, but it's still way too complicated. I guess I had kind of accepted old, complex websites as the status quo, because I didn't realize how bad it had gotten until I compared the experience on the eBay website with the experience of the eBay apps for mobile and tablet.

eBay Website

Ebay-web

eBay Mobile App

Ebay-iphone-app

eBay Tablet App

Ebay-ipad-app

Unless you're some kind of super advanced eBay user, you should probably avoid the website. The tablet and mobile eBay apps are just plain simpler, easier, and faster to use than the eBay website itself. I know this intuitively from using eBay on my devices and computers, but there's also usability studies with data to prove it, too. To be fair, eBay is struggling under the massive accumulated design debt of a website originally conceived in the late 90s, whereas their mobile and tablet app experiences are recent inventions. It's not so much that the eBay apps are great, but that the eBay website is so very, very bad.

The implied lesson here is to embrace constraints. Having a limited, fixed palette of UI controls and screen space is a strength. A strength we used to have in early Mac and Windows apps, but seem to have lost somewhere along the way as applications got more powerful and complicated. And it's endemic on the web as well, where the eBay website has been slowly accreting more and more functionality since 1999. The nearly unlimited freedom that you get in a modern web browser to build whatever UI you can dream up, and assume as large or as small a page as you like, often ends up being harmful to users. It certainly is in the case of eBay.

If you're starting from scratch, you should always design the UI first, but now that we have such great mobile and tablet device options, consider designing your site for the devices that have the strictest constraints first, too. This is the thinking that led to mobile first design strategy. It helps you stay focused on a simple and uncluttered UI that you can scale up to bigger and beefier devices. Maybe eBay is just going in the wrong direction here; design simple things that scale up; not complicated things you need to scale down.

Above all else, simplify! But why stop there? If building the mobile and tablet apps first for a web property produces a better user experience – why do we need the website, again? Do great tablet and phone applications make websites obsolete?

Why are apps better than websites?

  1. They can be faster.
    No browser overhead of CSS and HTML and JavaScript hacks, just pure native UI elements retrieving precisely the data they need to display what the user requests.

  2. They use simple, native UI controls.
    Rather than imagineering whatever UI designers and programmers can dream up, why not pick from a well understood palette of built-in UI controls on that tablet or phone, all built for optimal utility and affordance on that particular device?

  3. They make better use of screen space.
    Because designers have to fit just the important things on 4 inch diagonal mobile screens, or 10 inch diagonal tablet screens, they're less likely to fill the display up with a bunch of irrelevant noise or design flourishes (or, uh, advertisements). Just the important stuff, thanks!

  4. They work better on the go and even offline.
    In a mobile world, you can't assume that the user has a super fast, totally reliable Internet connection. So you learn to design apps that download just the data they need at the time they need to display it, and have sane strategies for loading partial content and images as they arrive. That's assuming they arrive at all. You probably also build in some sort of offline mode, too, when you're on the go and you don't have connectivity.

Why are websites better than apps?

  1. They work on any device with a browser.
    Websites are as close to universal as we may ever get in the world of software. Provided you have a HTML5 compliant browser, you can run an entire universe of "apps" on your device from day zero, just by visiting a link, exactly the same way everyone has on the Internet since 1995. You don't have to hope and pray a development community emerges and is willing to build whatever app your users need.

  2. They don't have to be installed.
    Applications, unlike websites, can't be visited. They aren't indexed by Google. Nor do applications magically appear on your device; they must be explicitly installed. Even if installation is a one-click affair, your users will have to discover the app before they can even begin to install it. And once installed, they'll have to manage all those applications like so many Pokemon.

  3. They don't have to be updated.
    Websites are always on the infinite version. But once you have an application installed on your device, how do you update it to add features or fix bugs? How do users even know if your app is out of date or needs updating? And why should they need to care in the first place?

  4. They offer a common experience.
    If your app and the website behave radically differently, you're forcing users to learn two different interfaces. How many different devices and apps do you plan to build, and how consistent will they be? You now have a community divided among many different experiences, fragmenting your user base. But with a website that has a decent mobile experience baked in, you can deliver a consistent, and hopefully consistently great, experience across all devices to all your users.

I don't think there's a clear winner, only pros and cons. But apps will always need websites, if for nothing else other than a source of data, as a mothership to phone home to, and a place to host the application downloads for various devices.

And if you're obliged to build a website, why not build it out so it offers a reasonable experience on a mobile or tablet web browser, too? I have nothing against a premium experience optimized to a particular device, but shouldn't all your users have a premium experience? eBay's problem here isn't mobile or tablets per se, but that they've let their core web experience atrophy so badly. I understand that there's a lot of inertia around legacy eBay tools and long time users, so it's easy for me to propose radical changes to the website here on the outside. Maybe the only way eBay can redesign at all is on new platforms.

Will mobile and tablet apps kill websites? A few, certainly. But only the websites stupid enough to let them.

[advertisement] What's your next career move? Stack Overflow Careers has the best job listings from great companies, whether you're looking for opportunities at a startup or Fortune 500. You can search our job listings or create a profile and let employers find you.

Make Your Email Hacker Proof

at 16:59 PM, 04/17/2012

It's only a matter of time until your email gets hacked. Don't believe me? Just read this harrowing cautionary tale.

When [my wife] came back to her desk, half an hour later, she couldn’t log into Gmail at all. By that time, I was up and looking at e‑mail, and we both quickly saw what the real problem was. In my inbox I found a message purporting to be from her, followed by a quickly proliferating stream of concerned responses from friends and acquaintances, all about the fact that she had been “mugged in Madrid.” The account had seemed sluggish earlier that morning because my wife had tried to use it at just the moment a hacker was taking it over and changing its settings—including the password, so that she couldn’t log in again.

The greatest practical fear for my wife and me was that, even if she eventually managed to retrieve her records, so much of our personal and financial data would be in someone else’s presumably hostile hands that we would spend our remaining years looking over our shoulders, wondering how and when something would be put to damaging use. At some point over the past six years, our [email] correspondence would certainly have included every number or code that was important to us – credit card numbers, bank-account information, medical info, and any other sensitive data you can imagine.

Now get everyone you know to read it, too. Please. It's for their own good.

Your email is the skeleton key to your online identity. When you lose control of your email to a hacker – not if, but when you lose control of your email to a hacker – the situation is dire. Email is a one stop shop for online identity theft. You should start thinking of security for your email as roughly equivalent to the sort of security you'd want on your bank account. It's exceedingly close to that in practice.

The good news, at least if you use GMail, is that you can make your email virtually hacker-proof today, provided you own a cell phone. The fancy geek technical term for this is two factor authentication, but that doesn't matter right now. What matters is that until you turn this on, your email is vulnerable. So let's get started. Not tomorrow. Not next week. Right. Freaking. Now.

Go to your Google Account Settings

Google-account-settings

Make sure you're logged in. Expand the little drop-down user info panel at the top right of most Google pages. From here, click "Account" to view your account settings.

Google-enable-two-factor-auth

On the account settings page, click "edit" next to 2-step verification and turn it on.

Have Your Cell Phone Ready

GMail will walk you through the next few steps. You just need a telephone that can receive SMS text messages. Enter the numeric code sent through the text message to proceed.

Google-text-email-verification

Now Log In With Your Password and a PIN

Now your password alone is no longer enough to access your email.

Google-two-factor-login

Once this is enabled, accessing your email always requires the password, and a code delivered via your cell phone. (You can check the "remember me for 30 days on this device" checkbox so you don't have to do this every time.) With this in place, even if they discover your super sekrit email password, would-be hackers can't do anything useful with it! To access your email, they'd need to somehow gain control of your cell phone, too. I can't see that happening unless you're in some sort of hostage situation, and at that point I think email security is the least of your problems.

What If I Lose My Cell Phone?

Your cell phone isn't the only way to get the secondary PIN you need to access your email. On the account page there are multiple ways to generate verification codes, including adding a secondary backup phone number, and downloading mobile applications that can generate verification codes without a text message (but that requires a smart phone, naturally).

Google-backup-email-codes

This also includes the never-fails-always-works option: printing out the single-use backup verification codes on a piece of paper. Go do this now. Right now! And keep those backup codes with you at all times. Put them in your wallet, purse, man-purse, or whatever it is that travels with you most often when you get out of bed.

Backup-verification-codes

What About Apps That Access Email?

Applications or websites that access your email, and thus necessarily store your email address and password, are also affected. They have no idea that they now need to enter a PIN, too, so they'll all be broken. You'll need to generate app-specific passwords for your email. To do that, visit the accounts page.

Google-enabling-apps

Click on authorizing applications & sites, then enter a name for the application and click the Generate Password button.

Google-generated-app-password

Let me be clear about this, because it can be confusing: enter that specially generated password in the application, not your master email password.

This effectively creates a list of passwords specific to each application. So you can see the date each one was last used, and revoke each app's permission to touch your email individually as necessary without ever revealing your primary email password to any application, ever. See, I told you, there is a method to the apparent madness.

But I Don't Use Gmail

Either nag your email provider to provide two-factor authentication, or switch over. Email security is critically important these days, and switching is easy(ish). GMail has had fully secure connections for quite a while now, and once you add two-factor authentication to the mix, that's about as much online email safety as you can reasonably hope to achieve short of going back to snail mail.

Hey, This Sounds Like a Pain!

I know what you're thinking. Yes, this is a pain in the ass. I'll fully acknowledge that. But you know what's an even bigger pain in the ass? Having your entire online identity stolen and trashed by a hacker who happens to obtain your email password one day. Remember that article I exhorted you to read at the beginning? Oh, you didn't read it? Go freaking read it now!

Permit me to channel Jamie Zawinski one last time: "OMG, entering these email codes on every device I access email would be a lot of work! That sounds like a hassle!" Shut up. I know things. You will listen to me. Do it anyway.

I've been living with this scheme for a few months now, and I've convinced my wife to as well. I won't lie to you; it hasn't all been wine and roses for us either. But it is inconvenient in the same way that bank vaults and door locks are. The upside is that once you enable this, your email becomes extremely secure, to the point that you can (and I regularly do) email yourself highly sensitive data like passwords and logins to other sites you visit so you can easily retrieve them later.

If you choose not to do this, well, at least you've educated yourself about the risks. And I hope you're extremely careful with your email password and change it regularly to something complex. You're making life all too easy for the hackers who make a fabulous living from stealing and permanently defacing online identities just like yours.

[advertisement] Hiring developers? Post your open positions with Stack Overflow Careers and reach over 20MM awesome devs already on Stack Overflow. Create your satisfaction-guaranteed job listing today!

Learn to Read the Source, Luke

at 13:09 PM, 04/16/2012

In the calculus of communication, writing coherent paragraphs that your fellow human beings can comprehend and understand is far more difficult than tapping out a few lines of software code that the interpreter or compiler won't barf on.

That's why, when it comes to code, all the documentation probably sucks. And because writing for people is way harder than writing for machines, the documentation will continue to suck for the forseeable future. There's very little you can do about it.

Except for one thing.

Read-the-source-luke

You can learn to read the source, Luke.

The transformative power of "source always included" in JavaScript is a major reason why I coined – and continue to believe in – Atwood's Law. Even if "view source" isn't built in (but it totally should be), you should demand access to the underlying source code for your stack. No matter what the documentation says, the source code is the ultimate truth, the best and most definitive and up-to-date documentation you're likely to find. This will be true forever, so the sooner you come to terms with this, the better off you'll be as a software developer.

I had a whole entry I was going to write about this, and then I discovered Brandon Bloom's brilliant post on the topic at Hacker News. Read closely, because he explains the virtue of reading source, and in what context you need to read the source, far better than I could:

I started working with Microsoft platforms professionally at age 15 or so. I worked for Microsoft as a software developer doing integration work on Visual Studio. More than ten years after I first wrote a line of Visual Basic, I wish I could never link against a closed library ever again.

Using software is different than building software. When you're using most software for its primary function, it's a well worn path. Others have encountered the problems and enough people have spoken up to prompt the core contributors to correct the issue. But when you're building software, you're doing something new. And there are so many ways to do it, you'll encounter unused bits, rusty corners, and unfinished experimental code paths. You'll encounter edge cases that have been known to be broken, but were worked around.

Sometimes, the documentation isn't complete. Sometimes, it's wrong. The source code never lies. For an experienced developer, reading the source can often be faster… especially if you're already familiar with the package's architecture. I'm in a medium-sized co-working space with several startups. A lot of the other CTOs and engineers come to our team for guidance and advice on occasion. When people report a problem with their stack, the first question I ask them is: "Well, did you read the source code?"

I encourage developers to git clone anything and everything they depend on. Initially, they are all afraid. "That project is too big, I'll never find it!" or "I'm not smart enough to understand it" or "That code is so ugly! I can't stand to look at it". But you don't have to search the whole thing, you just need to follow the trail. And if you can't understand the platform below you, how can you understand your own software? And most of the time, what inexperienced developers consider beautiful is superficial, and what they consider ugly, is battle-hardened production-ready code from master hackers. Now, a year or two later, I've had a couple of developers come up to me and thank me for forcing them to sink or swim in other people's code bases. They are better at their craft and they wonder how they ever got anything done without the source code in the past.

When you run a business, if your software has a bug, your customers don't care if it is your fault or Linus' or some random Rails developer's. They care that your software is bugged. Everyone's software becomes my software because all of their bugs are my bugs. When something goes wrong, you need to seek out what is broken, and you need to fix it. You fix it at the right spot in the stack to minimize risks, maintenance costs, and turnaround time. Sometimes, a quick workaround is best. Other times, you'll need to recompile your compiler. Often, you can ask someone else to fix it upstream, but just as often, you'll need to fix it yourself.

  • Closed-software shops have two choices: beg for generosity, or work around it.
  • Open source shops with weaker developers tend to act the same as closed-software shops.
  • Older shops tend to slowly build the muscles required to maintain their own forks and patches and whatnot.

True hackers have come to terms with a simple fact: If it runs on my machine, it's my software. I'm responsible for it. I must understand it. Building from source is the rule and not an exception. I must control my environment and I must control my dependencies.

Nobody reads other people's code for fun. Hell, I don't even like reading my own code. The idea that you'd settle down in a deep leather chair with your smoking jacket and a snifter of brandy for a fine evening of reading through someone else's code is absurd.

But we need access to the source code. We must read other people's code because we have to understand it to get things done. So don't be afraid to read the source, Luke – and follow it wherever it takes you, no matter how scary looking that code is.

[advertisement] Stack Overflow Careers matches the best developers (you!) with the best employers. You can search our job listings or create a profile and even let employers find you.

Books: Bits vs. Atoms

at 14:13 PM, 04/10/2012

I adore words, but let's face it: books suck.

More specifically, so many beautiful ideas have been helplessly trapped in physical made-of-atoms books for the last few centuries. How do books suck? Let me count the ways:

  • They are heavy.
  • They take up too much space.
  • They have to be printed.
  • They have to be carried in inventory.
  • They have to be shipped in trucks and planes.
  • They aren't always available at a library.
  • They may have to be purchased at a bookstore.
  • They are difficult to find.
  • They are difficult to search within.
  • They can go out of print entirely.
  • They are too expensive.
  • They are not interactive.
  • They cannot be updated for errors and addendums.
  • They are often copyrighted.

What's the point of a bookshelf full of books other than as an antiquated trophy case of written ideas trapped in awkward, temporary physical relics?

Brian-dettmer-book

Books should not be celebrated. Words, ideas, and concepts should be celebrated. Books were necessary to store these things, simply because we didn't have any other viable form to contain them. But now we do.

Words Belong on the Internet

At the risk of stating the obvious, if your goal is to get a written idea in front of as many human beings as efficiently as possible, you shouldn't be publishing dead tree books at all. You should be editing a wiki, writing a blog, or creating a website. That's why the Encyclopedia Britannica officially went out of print in 2012, after a 244 year print run. In the straight-up match between paper and Web, the Encyclopedia Britannica lost. Big time.

The EB couldn’t cover enough: 65,000 topics compared to the almost 4M in the English version of Wikipedia.

Topics had to be consistently shrunk or discarded to make room for new information. E.g., the 1911 entry on Oliver Goldsmith was written by no less than Thomas Macaulay, but with each edition, it got shorter and shorter. EB was thus in the business of throwing out knowledge as much as it was in the business of adding knowledge.

Topics were confined to rectangles of text. This is of course often a helpful way of dividing up the world, but it is also essentially false. The “see also’s” and the attempts at synthetic indexes and outlines (Propædi) helped, but they were still highly limited, and cumbersome to use.

This is why the book scanning efforts of Google Books and The Internet Archive are so important – to unlock the knowledge trapped in all those books and place it online so the entire world can benefit.

In the never-ending human quest for communication, bits have won decisively over atoms. But bits haven't completely replaced atoms for publishing quite yet; that will take a few more decades.

An Argument for the eBook

While the Internet is perfectly adequate for basic printed text juxtaposed with images and tables, it is a far cry from the beautiful, complex layout and typography of modern books. Sometimes the medium is part of the message. That's what led computer scientists to create PostScript and TeX, systems of representing the printed page in code as pure mathematics that can scale infinitely, or at least to the best possible resolution of the particular device you're viewing it on. Packaging written content into a special file format preserves these beautiful layouts so you can read the text as originally designed by the author.

It's also fair to argue that writers should be fairly compensated for their work. Clearly nobody is going to pay 5 cents per web page. But there's a long established commercial model of packaging a set of writing together into a coherent format, or "book", and selling that.

You can't always rely on the Internet being available. What if you have no Internet connectivity, or intermittent connectivity? You could periodically harvest a bunch of related web pages every month and package the current versions into a file. And that file can be stored and cached locally on laptops, phones, and servers all over the world. Local files have built in, persistent offline availability.

No, the Internet will not kill the book. But it will change their form permanently; books are no longer pages printed with atoms, they're files printed with bits: eBooks.

The Trouble with Bits

The road from atoms to bits is not an easy one, and we're only at the beginning of this journey. eBooks are vastly more flexible than printed books, but they come with their own set of tradeoffs:

  • They always require a reading device.
  • They cannot be loaned to friends.
  • They cannot be resold to others.
  • They cannot be donated to libraries.
  • They may be encumbered with copy protection.
  • They may be in a format your reader cannot understand.
  • They may refuse to load for any reason the publisher deems necessary.
  • They may have incomplete or broken or obsolete layout.
  • They may have low-resolution bitmapped images that are inferior to print.
  • They may be a substantially worse reading experience than print except on very high resolution reading devices.

Book-error

The copy protection issue alone is deeply troubling; with eBooks, book publishers now have an unprecedented level of control over when, where, and how you can read their books. In the world of atoms, once the book is shipped out, the publisher cedes all control to the reader. Once you've bought that physical book, you can do with it whatever you will: read it, burn it, photocopy it (for personal use), share it, resell it, loan it, donate it, even throw it at passers-by as a makeshift weapon. But in the world of bits, the publisher has an iron grip over their eBook, which isn't so much sold to you as "licensed" for your use, maybe even only for specific devices like an Amazon Kindle or an Apple iPad. And they can silently remove the book from your device at their whim.

In the brave new world of eBooks, book publishers are waking up drunk with newfound power. And honestly I can't say I blame them. After centuries of publishers having virtually no control at all over the books they publish, they've now been granted near total control.

How Much Do eBooks Cost?

Consider one of my favorite books, the classic Don't Make Me Think. How much does it cost to buy, as an eBook or otherwise?

Amazon print new$22.88
Amazon print used$13.98
Amazon eBook$14.16
Publisher eBook$25.60
Apple eBook$33.16

Except for Amazon, all the eBooks are more expensive than the print version. This … makes no sense. How can the bits in the digital version, which require no printing, no shipping, no physical storage whatsoever, be more expensive than the atoms?

What Do eBooks Look Like?

What you actually end up reading when you buy the eBook can vary wildly. Here are pages 80 and 81 of my print copy of Don't Make Me Think. I attempted to take a photograph of the book, then realized it's incredibly difficult to take a decent picture of two pages of a book for a photography noob like myself, so I manually scanned the pages in instead.

Dont-make-me-think-page-80-81-scanned-small

If you buy the eBook from the publisher, you get a PDF which appears to be based on the exact same data used to print the book. Pages 80 and 81 are nearly identical to print, with page numbers, footnotes, layout and typography completely intact. (There are some unrelated minor differences on page 81 because the print version is from the second edition.)

Dont-make-me-think-pages-80-81-small

But when you buy the eBook from Amazon, you get a proprietary eBook format which contains very little of the original formatting. Pages 80 and 81 are quite different. The footnotes are gone. The title font and font colors are lost. The layout and spacing is completely off, and to my eye the page frankly looks a little broken.

Dont-make-me-think-page-80-81-kindle-small

When you buy the book from Apple, you get yet another proprietary eBook format. For comparison, here's page 3 of Don't Make Me Think from the publisher's PDF, which as we've previously established is very nearly the same as print.

Dont-make-me-think-page-3-small

I downloaded the sample chapter of Don't Make Me Think from Apple's iBooks, and it appears to be an even worse representation than Amazon's. I have all the same criticisms of Amazon's eBook format here – page 3 has broken layout, no footnotes, missing title fonts and colors, plus now it takes four, yes, four pages to read that very same single print page.

Dont-make-me-think-page-3-ibooks-all

So eBooks Suck, Too?

With Don't Make Me Think, I intentionally chose a book that highlights the remaining gap between atoms and bits in books. I've read dozens of other eBooks on Kindle and iPad, and generally the experience is good. For books that are entirely text, with very little layout, the various eBook formats do a great job. This may very well be a majority of books in the world. All eBook formats handle text and basic fonts perfectly fine. But then, so does the Internet. If an eBook can't outperform the Internet at layout, it loses one of the strongest arguments in its favor.

Still, there's no way Amazon's or Apple's current eBook versions of Don't Make Me Think are suitable replacements for the print version. Worse, you won't even know what you'll be missing unless you download a sample and compare it with the print version, as I have. That's disappointing, because part of the joy a book brings to the words inside is by expertly packaging those words into a whole experience. If an eBook can't capture the nuance of the layout at least as well as a hoary old PDF does, again, why bother?

We, as readers, are easily giving up as much as we're getting in the transition from books made of atoms to eBooks made of bits. To make it worthwhile, I believe publishers need to do two things:

  1. eBooks should be inexpensive. Because I can't loan them (with rare exceptions), because I can't resell them, because I can't buy a cheaper used copy, because I'm only licensed to read them at all on "supported" readers under whatever terms the publishers will allow me to, an eBook simply has less utility and value to me. Right now, eBooks are far less flexible than physical books and therefore a worse value. Yet they are far cheaper to produce and sell for everyone involved. The pricing absolutely has to reflect this. If I can get a used copy of a book for less than the eBook, no sale. If I can get a new copy of a book for less than the eBook, no sale and screw you.

  2. eBooks should be a near-perfect replica of the print book. With the advent of the iPad 3, it is finally possible for eBook readers to provide nearly the same visual fidelity as the print book. I don't want to spend money on an eBook with broken, inferior formatting and typography and layout compared to the print edition. Give me an eBook that I can potentially hand down to my children with the same confidence I could give them a print book, 30 years from now, and know that I am not totally compromising the experience.

Because I love words, I want to love eBooks. I want to buy lots and lots of eBooks. But unless the publishers are willing to treat eBooks with the same respect and care that they give to their printed books – and most importantly of all, adjust their pricing to reflect the brave new economy of bits, and not an antiquated economy of atoms – they're destined to eventually suffer the same fate as the Encyclopedia Britannica.

[advertisement] How are you showing off your awesome? Create a Stack Overflow Careers profile and show off all of your hard work from Stack Overflow, Github, and virtually every other coding site. Who knows, you might even get recruited for a great new position!

Columbus IT Martini heading to Cincinnati

by Jonathan Danylko at 22:00 PM, 07/27/2009

The Columbus IT Martini is heading out. Sign up to head from Columbus to Cincinnati with us.

City Bus

The IT Martini is an IT Community formed by John Bishop and Aladin Gohar in Columbus, Ohio. I've gone to a couple of IT Martinis and they definitely provide the IT community with an exciting network experience every time I go.

This time around, John and Aladin set up a round-trip bus to take everyone from Columbus to Cincinnati. We will be arriving in Cincinnati at the Havana Martini Club and watching what IT Professionals have contributed to the world.

If you are in the Columbus area and interested in going on Thursday, July 30, 2009, there is a special code you can enter when signing up. I'm sure you'll agree that it was worth signing up. ;-)

If you are in Columbus and want to go, enter in the code: DANYLKO1 when asked for a promo code.

However, if you are a Cincinnati local, you don't have to go far. There is a special code for local Cincy people as well. Enter in the code: CINCY-DANYLKO1 when asked for a promo code.

Register for the IT Martini as either a Cincinnati or Columbus individual.

As I said before, you won't be disappointed. If you are interested in finding out more about the event, head over to the IT Martini web site and add it to you calendar.

Hope to see you there.

IE6: The Roadkill of Corporations

by Jonathan Danylko at 23:00 PM, 07/23/2009

Most corporations are still using IE6. Why? It's old technology! Move forward!

Man screaming at computer

If you've been developing web sites for a while and keep up with the web, you may have noticed a recent upheaval with the IT industry regarding updating browsers...specifically Internet Explorer 6 (IE6).

Heck, I thought Microsoft had this taken care of with their updating process through Windows.

Yes, I can hear everyone screaming at their workplace that it's the "man" holding them down from updating their browser. Certain companies control what a user can and can't install on their computers which is understandable. But, because of that, we now have a ton of web developers supporting every frickin' IE browser out there.

A note to corporations...PLEASE kick IE6 to the side of the road of the information superhighway! It's roadkill. Please upgrade your users!

What?!?!?

You're saying you don't want to? Is your IT guy Milton from Office Space? He doesn't want to update the entire company's browser?

Milton from Office Space

Oh boy...Ok, let me let you in on a little secret: The Internet is evolving! You need to update your browser to keep up with the Internet technologies for your company to survive.

Not only that, but Internet companies are not going to support IE6 any longer. Don't believe me? Even Google is asking users to drop IE6. We'll see what happens when YouTube's "plug is pulled" for IE6 users.

Here's comes the hard part to understand...these new browsers (even the old ones) are FREE. Why wouldn't companies upgrade to at least IE7? Am I missing something here? PICK ONE! Firefox, Opera, Safari, Chrome, and yes, even IE.

Need more proof? Well, it's getting pretty bad when people are building sites to convert IE6 users to a newer browser. It doesn't matter what browser...just upgrade!

The resistance from companies to remove IE6 is really beginning to scare me. Are we at a point where if IE6 was removed from all computers in corporations and replaced with IE7/IE8 that the economy would dip even lower because all web sites and applications using the IE6 engine would just up and die? Do we really have that many corporations still running IE6?

Right now, if you're still with me, you probably are looking for a reason to upgrade. I'm sorry, but I think I've given you just about every reason to upgrade to a decent browser that I can think of.

If someone is still clinging to IE6, it must be a religion or cult thing.

UPDATE: If you absolutely HAVE to use IE6, here is the Definitive Guide To Taming the IE6 Beast.

Does anyone have an opinion as to why companies are still clinging to IE6?

Twitter: The Bird is the Word

by Jonathan Danylko at 23:00 PM, 05/06/2009

Twitter is tweeting...sorry...talking to a lot of companies!

Is everyone starting to talk like Elmer Fudd or what? Sheesh! :-)

Just a quick post about everything going on with Twitter. It doesn't surprise me that Twitter is talking to a number of different companies. Twitter's growth rate is downright scary.

And the big boys are taking notice.

The companies interested in purchasing Twitter see a lot of potential in such a tiny function. Twitter provides a ton of features that any company would love to acquire, such as:

What company wouldn't want these features? Lately, it seems that the bird is the word....

Sorry, I couldn't resist. :-)

Along with the possible acquisition of Twitter, everyone wants to keep up with the Jones with the latest trends. Here are some sites that utilize Twitter to track trends on the Internet. You could even use them to track the Twitter acquisition?

Also, Tweet me if you get the chance. ;-)

HOWTO: Connect a FreeNAS to a TiVo

by Jonathan Danylko at 02:00 AM, 04/21/2009

Bob Bakh discusses how to connect a FreeNAS (Networked Attached Storage) to a TiVo.

Recently, I had someone send me a question from a previous post about how to hook up a FreeNAS to a TiVo. Bob Bakh was generous enough to provide a description of how he hooked everything together.

Take it away, Bob!


I configured a box to run FreeNAS on my network to manage storing Media, and backing up vital information in my home.

It was a great tool, however I wanted more, mainly the ability to simply play media stored on the FreeNAS box on my home TV without the use of a general purpose computer. One way was to use my AppleTV, hack it and use an AFP mount, or an NFS mount directly to the AppleTV, this worked well, but was a pain, and a hacked AppleTV is not a happy AppleTV. So I gave up on that plan.

I looked at my TiVo and realized I had the makings of a decent setup there, so I started to Google around for some solutions. I stumbled across a simple one in my world, which was to TiVo Desktop with the GoBack feature enabled. I used the free TiVo desktop from TiVo. And the GoBack function allowed by a hack from Visual Hub, however that hack is no longer available. A PC version is available.

You will need to buy the TiVo desktop plus to accomplish this, but it does take some manual setting of what video files you want to transfer.

Okay, so this worked, and my computer showed up in the TiVo now playing menu and allowed me to see videos that were in a mounted directory from the FreeNAS. I would select the video and it would transfer to the TiVo, and life was good, it was a bit slow, but it worked.

Now my issue with FreeNAS and other software based NAS systems was that I had to manage the hardware, and it got to be a little warm in my home office where I stored the system, so I made a few changes.

I now run a QNAP TS-509 , a 5 disk raid 5 self contained NAS system. It runs on a micro Linux kernel, has redundant network connections, and runs really cool, so my office is no longer 10 degrees hotter than the rest of my house, and it’s a whole lot quieter.

I originally had it configured the same way as the FreeNAS system, and it worked fine, but I was on the hunt for a better solution. The QNAP has a little thing called ipkg, which allows me to install UNIX utilities written and packaged for its kernel.

I installed the following

  • binutils - 2.17-2 - The GNU assembler and linker and related tools
  • bzip2 - 1.0.5-1 - Very high-quality data compression program
  • confuse - 2.6-2 - a configuration file parser library
  • ffmpeg - 0.svn20080409-2 - FFmpeg is an audio/video conversion tool.
  • flip - 20050821-1 - Utility program to convert text files between UNIX or Mac newlines and DOS linefeed + newlines.
  • grep - 2.5.3-1 - Global regular expression parser
  • libc-dev - 2.6.1-3 - libc development files.
  • libdb - 4.2.52-3 - Berkeley DB Libraries
  • libnsl - 2.6.1-4 - Network Services Library
  • libstdc++ - 6.0.9-6 - Standard C++ library, needed for dynamically linked C++ programs
  • ncurses - 5.7-1 - NCurses libraries
  • ncursesw - 5.7-1 - NCurses libraries with wide char support.
  • openssl - 0.9.8i-1 - Openssl provides the ssl implementation in libraries libcrypto and libssl, and is needed by many other applications and librari
  • pcre - 7.8-1 - Perl-compatible regular expression library
  • python - 2.5-1 - This is a package that sets up the default python.
  • python24 - 2.4.5-1 - Python is an interpreted, interactive, object-oriented programming language.
  • python25 - 2.5.2-2 - Python is an interpreted, interactive, object-oriented programming language.
  • python26 - 2.6-1 - Python is an interpreted, interactive, object-oriented programming language.
  • python30 - 3.0-1 - Python is an interpreted, interactive, object-oriented programming language.
  • readline - 5.2-2 - The GNU Readline library provides a set of functions for use by applications that allow users to edit command lines as they are
  • ruby - 1.8.7-1 - An interpreted scripting language for quick and easy object-oriented programming.
  • sqlite - 3.6.4-1 - SQLite is a small C library that implements a self-contained, embeddable, zero-configuration SQL database engine.
  • zlib - 1.2.3-3 - zlib is a library implementing the 'deflate' compression system

Then I visited pyTiVo. This is the home of pyTivo, a python script that emulates a TiVo server on your network.

This allowed me to configure a directory on the system as my TiVo directory, and now I serve up videos straight from my QNAP to my TiVo, much more efficient, and no more gateway box.

There is also a nice windows version, Mac version, and Linux version available of pyTivo.

I used the pyTiVo installation instructions. What this gave me is a great way to manage my videos, and with a workflow based on handbrake and visual hub, I’m able to convert my children’s DVD collection to MPEG-2 and have them view it on the TiVo, and able to keep months of their TV shows stored offline for their viewing.

It has been a great solution.

I think you may be able to install pyTivo directly on the FreeNAS system, but I never tried it.

I hope this answers some questions for you, and I can help if there are any others.

Bob Bakh
thebakhs.com

Exceptional Work, Bob! Thanks for a fantastic post!

Yes, it is the biggest piece of crap!

by Jonathan Danylko at 23:00 PM, 03/22/2009

Wow! I wrote that. But so much HAS changed since March 2007.

I recently received a comment post from a reader about how awful a past post was. I read the post over and started thinking about my question, "When to use AJAX programming?"

After thinking about the question and reading it over yet again, I realized something about the reader's opinion:

He was right!

In that post, I mentioned when would be an ideal time to use AJAX: Only use AJAX in Intranet applications.

What a load of malarky! Who wrote that!

Oh.

Well, some of my points are flawed and some are right on. However, I've learned a lot since that time and found better techniques on how to write AJAX applications.

I do stand corrected. The usability aspect of AJAX would not only enhance the application, but could off-load entire web pages of HTML from the server and transition it to a simple data transfer of JSON and/or XML back to the client without an entire page refresh.

What's your take on AJAX?

So much has changed since AJAX was introduced, but how many people are currently using AJAX in their applications? I know this is just one question, but there are many more that people should be asking.

  • Are developers worried about security regarding AJAX and what safeguards should you add to secure your AJAX application?
  • Should there be a limit as to how much AJAX is added to an application? What are the guidelines for too much or too little?
  • Does it skew the web analytics of your web site?

I leave these questions to my audience.

What do you think about these questions and the advantages/disadvantages in my past post? Post your comments below.


Create a Firefox that matches your personality

by Jonathan Danylko at 22:00 PM, 02/02/2009

Lately, Firefox has been climbing in the browser ranks...and for good reason.

With the continuing growth of Firefox spreading throughout the web, Firefox's architecture to allow add-ons, themes, and plug-ins provides users with an absolute easy way to assist you in your travels on the information super-highway.

The Mozilla Foundation created a section on their site called Fashion your Firefox. They've organized some of their web-worthy extensions into categories for people who want to accessorize their Firefox browser.

The categories include:

  • Finder and Seeker
  • Social Butterfly
  • Shutterbug
  • Digital Pack Rat
  • Rock Star
  • Decorator
  • Shopaholic
  • News Junkie
  • Executive Assistant

Select the Extensions that you think will assist you and you're on your way.

It's amazing to see how far Mozilla has gone with their extension architecture. Firefox extensions even provide a way to replace applications with Super Extensions.

Are their other extensions that you think are better than this list? Post something below to start a discussion.

5 ways to turn your layoff into an opportunity

by Jonathan Danylko at 23:00 PM, 01/25/2009

Ahhh...a new year, new promise, new goals...new layoffs? What!!?!??!

Job Loss

In my opinion, the economy is never stable. It can always take a millionaire and make him a beggar in less than a day. This past year has proved it.

There are a lot of people who are losing their jobs because of the economy. Let's check out the list, shall we?

How do you survive this sort of thing? There are a number of things you can do in this time of crisis.

  1. Create your own business

    What better time than now to start your own business. Nothing like trial by fire.

    If you have a hobby on the side, now may be a great time to think about dedicating your time to starting up a business based on that hobby. Talk to your friends and see if they would be willing to work with you as well. Who knows...You may find a fellow business partner who shared your same hobby or dream.

  2. Start writing

    There are a lot of great opportunities out there since the web spawned blogging and journalism. Determine what your expertise is and either start blogging on a regular schedule or write an eBook and sell it through ClickBank or other digital product site.

  3. Learn a new skillset

    Of course, you can always learn a new skillset if your existing skillset becomes either old or obsolete. Recently, Computerworld just came out with a report on the 9 hottest skills for 2009. Check out the list and see if you can apply or enhance your existing skills based on the list. Oh...and make sure you live in a city that has growth potential.

  4. Join LinkedIn.com

    The old adage "It's not what you know, it's who you know" holds true on LinkedIn. Make sure you register and start requesting recommendations/endorsements from your fellow co-workers. Then start focusing on the jobs portion of the site and start apply for jobs that fit you. Who knows, you may find that ideal, dream job through one of your friends.

  5. Create a small widget and sell it

    Nowadays, someone can create the smallest application and make a million dollars at it. Find a small widget that is cute, ridiculous, funny, or just plain gross and market it through the right channels. You might find out that a little idea can go a long way.

This list provides only five ways to tackle this economy, but there are definitely more.

Did I miss any? Post a comment below to further the discussion.

Hot Deal:32GB USB Drive for $60

by Jonathan Danylko at 23:00 PM, 10/28/2008

Too good to pass up.

32GB USB Kingston Drive

This was just too good of a deal to pass up. A 32GB USB Flash drive for $60.

YOU COULD EVEN INSTALL AN OPERATING SYSTEM ON THIS PUPPY!

If you still need convincing whether this is a great deal or not, consider this:

  • All 5 reviewers gave this product a 5/5 review
  • Kingston is a great name for memory/flash drives
  • Consider the competition underneath the product description. The cheapest price from a competitor was $96.

Another reason I bought one was my 8GB SD card is on its last leg.

And yes, I bought one.

Busy week for Google

by Jonathan Danylko at 02:00 AM, 09/26/2008

T-Mobile releases the G1, Google exposes two existing services, helps the world, and takes part in the Election 2008.

Wow, what a week for Google!

T-Mobile G1/GPhone

Of course, the G1 was released this week. I was waiting for the dust to settle down to find out if this was an iPhone killer or not. From what I've seen on CrunchGear with their roundup, it's pretty close, but not quite an iPhone. There are some features missing that may sway a consumer one way or another.

I'm still wrestling with paying $179 for the phone with a $25/$35 a month bill.

Google Contact Manager

The Contact Manager has been screaming to be built and released to the public since GMail was created. As you would expect, this manages your contacts throughout every Google service that deals with users.

It has a nice clean interface, allows you to set up groups, and add pictures to your contacts as well.

Google Moderator (apps engine)

Ok, it really isn't an existing service to the public, but according to Matt Cutts, Google Moderator existed internally at Google and was used for teams asking questions.

Google Moderator lets anyone ask a question and letting the users vote the questions either up or down as to which are the most important they want answered.

This moderator would also be an excellent way for companies to conduct feature matrixes for future products (i.e. Submit a feature for this future product.)

Google 10 to the 100

10 to the 100 is a call for ideas that help as many people as possible on this planet. Your one idea may even be worth $1 million dollars. Maybe even more.

Google has committed $10 million to implement your ideas and projects submitted through Google.

If you wanted to make a difference in the world, this would be the place to start.

Google InQuotes

Ok, let's cut through the poltical horse hockey! Since the Election 2008 is upon us, the media is feeding us so much information on candidates, we don't know what is right or wrong.

So, Google has created Google InQuotes. This takes all of the people running for office and collects all of their quotes regarding political issues. So if you want to see what Obama said about Iraq as opposed to what McCain said, check out this site.

It may sway your vote.

Problem Solved! Acer Aspire Shutting Down

by Jonathan Danylko at 03:00 AM, 09/18/2008

Ah-HA! An excellent post from a Linux community.

Acer Aspire One NetbookMy parents came back into town because of a recent death in the family and brought, of course, both laptops. For a recap of what happened before, check my past laptop experience with my parents.

The laptop my father was using was the Acer Aspire 5315. He didn't want all of the software on the computer. I found the OS disk, backed up his data, reformatted his hard drive, and voila! He had a clean machine.

The one piece of software I didn't install was the most critical piece of software he needed: The Acer ePower Management Utility.

Here's what the problem was: The Acer required the ePower Management Utility to control the fan. When the machine was used for an extended period of time, it would overheat. When the laptop overheated, the laptop would shut down to save the computer from melting down or damaging the processor. With the ePower Management Utility installed, the software would identify that the laptop was overheating and activate the fan.

Since then, we (*I*) have been benchmarking it by leaving it on, putting it into suspend/hibernate mode and everything seems to be working fine.

Now, it seems my parents are grateful because they each have a laptop.

How did I figure this out? Research. :-)

There was a whole post on this at the Ubuntu forums. It seems some other techno-geeks like me reformatted the hard drive and wanted to install Linux on the machine.

For those who own other Acer machine models, I imagine this would pertain to you as well if your laptop continues to shut down after 10-13 minutes of heating up.

Hope this helps anyone who had similar problems.

Acer Aspire One Purchased

by Jonathan Danylko at 23:00 PM, 09/07/2008

The new Acer Aspire One is definitely small enough for the road, but is it good enough for my parents?

Acer Aspire One NetbookI recently had a visit from my parents. They were having problems with their laptop because it kept shutting down right in the middle of doing something important: email.

After they were here for a couple of days, I noticed first hand when the Acer laptop would shut down. I couldn't explain why it was happening. Possibly the battery pack or the power cord.

Eventually, I couldn't take anymore and started looking for a replacement for my parents while they were here. Because they sure weren't getting mine. :-)

I was starting to look over the Sunday ads and noticed that Best Buy had the Acer for $349. This was not the one that had a Solid-State Drive (SSD). This one actually had a 120GB hard drive inside. This was fantastic that at least one model had an internal hard drive.

MicroCenter also had the same Acer Aspire One on sale for the same price, but we went with Best Buy because of location, location, location.

We purchased it from Best Buy and got it home. Heck, I was more excited about it than my parents.

After cracking it open, I started installing (and removing) all the software from the hard drive. It came installed with Windows XP Home, which was what my mother and father were already used to and my mother kept asking me, "Can I use it now? How about now? Can I use it?" Ahhh...parents.

There were two drawbacks with this Acer: One, Bluetooth was not included, and two, I needed to install something from CD. Since the NetBook was so tiny, Acer couldn't install a CD/DVD drive would work with the NetBook.

The solution? First problem was easy: since the Acer Aspire One had three USB ports, I gave my parents a USB Bluetooth adapter just in case they had a need for it. 

The second problem? I copied to CD to my server and added it from the wireless network. If I had a USB CD/DVD Drive, you could easily hook that up as well.

Overall, I liked it. I think they will be happy with it as well.

However, my father doesn't like the size of the screen, so it becomes the property of my mother. :-\

If you want some additional information and reviews on the Acer Aspire One, check out the following links:

You will be missed, Randy Pausch

by Jonathan Danylko at 02:00 AM, 07/29/2008

Randy Pausch passed away recently (Oct. 23, 1960 - July 25, 2008)

For those who haven't heard of this fantastic speaker, Randy Pausch was a Carnegie Mellon Professor and was diagnosed with pancreatic cancer. His doctor said that he was expected to live around 3-6 months.

When he gave his "Last Lecture" on September 18, 2007, he focused on Achieving your Childhood Dreams instead of talking about his cancer.

His lecture is nothing short of monumental and is something everyone should watch and absorb. If you take his perspective on life, I guarantee you will be successful.

Google posted a YouTube video in memory of this extremely charismatic and enthusiastic man. The video is 1hr 16min and 27 seconds...

...but it is completely worth it.

Moving Forward

by Jonathan Danylko at 23:00 PM, 07/27/2008

Time to get back into the saddle...

After a short time to get things back in order and getting some organization in my life, I'm starting to dig back into the site.

I'll be posting some new articles later in the week (Ahhh...I've missed the postings...)

Taking a Hiatus

by Jonathan Danylko at 23:00 PM, 04/16/2008

Things are getting a little too busy lately.

Since I've been working at my full-time job (with overtime), working on two products, four websites, and continuing to work with my existing 15 clients, I've been trying to make time for DCS Media.

Unfortunately, there is only so much time in a day.

I will be taking a short hiatus from blogging. This includes Fireday as well.

Rest assured, I will be back soon...

Outlook Alternatives: Moving from Outlook to Thunderbird

by Jonathan Danylko at 04:00 AM, 03/12/2008

MS Outlook has been around for a long time, but maybe it's time for a little change.

Outlook Picture

Outlook is one of the best known PIM's around because it comes with and integrates nicely into MS Office. However, since Google has taken MS Office online with their Google Docs, maybe it's time to move from Outlook to Thunderbird.

But isn't Thunderbird an email client? Yes, but so is Outlook. As well as email, Outlook also includes a contact list, a to-do list, and a calendar for your appointments.

Thunderbird doesn't have these innate abilities that Outlook does. But you forget, Thunderbird has the same extension architecture as Firefox. If you search, you'll find some handy extensions that push Thunderbird past Outlook's functionality.

Here are some additional reasons why I'm moving from Outlook to Thunderbird:

  1. Outlook is not portable - Besides Pocket PC devices, Outlook is not as portable as Thunderbird. I've never seen Outlook on a USB Flash Drive yet.
  2. Outlook is a little top-heavy - Outlook contains hard-wired connections to the Windows APIs. I don't think (to my knowledge) that you can take the assemblys (or DLLs for the old-schoolers) with you without breaking a EULA.
  3. Outlook is strictly Windows-based - If you moved to another PC that was Linux-based, you are out of luck.
  4. Thunderbird is FREE - I know Outlook Express exists, but the difference between Outlook and Outlook Express is like night and day and to get the professional version of Outlook, I need to purchase MS Office.

Let's get started on moving over to Thunderbird from Outlook!

Assess your existing Outlook PST file

Since we are so close to Spring, it may be a good idea to look over your PST file and do a little "Spring Cleaning."

First, check to see if your Outlook PST is in need of repair. If so, the How-To Geek shows you how to fix your broken Outlook PST file.

If your Outlook PST file is huge (I've seen them at 2-3gb), see where you can trim it down a little.

  • Clean out your Trash - Next to your Inbox, this is the biggest storage hog you have. Clean it up!
  • Move your important "Sent" messages somewhere - In your business, you may need them. Delete ones that are completely irrelevant ("Hi, Mom, How are you?").
  • Archive your messages - Since it is the start of the year (or close to it), archive your 2007 software subscriptions and newsletters to another folder so it's not taking up any space in your Inbox.

There. Now that you've trimmed the fat, let's move on to the next step.

Installing Thunderbird (with some add-ons)

If you don't have Thunderbird, download and install it.

There are two additional downloads you need to make your transition to Thunderbird successful: Sunbird and Lightning.

Sunbird is a standalone calendar application similar to Thunderbird and Firefox, but is geared specifically towards managing your schedule. There is a nice Provider for Google Calendar extension that synchronizes your schedule with Google Calendar, so you can look at your schedule on the road.

Lightning is a Thunderbird extension that welds Sunbird's calendar into Thunderbird allowing your calendar and email to exist in one application.

After installing Sunbird and Lightning, the only thing left is to import your PST into Thunderbird.

Import your PST file into Thunderbird

As I mentioned above, Thunderbird's extension architecture is based on Firefox's architecture. This is awesome for extension authors because you can actually turn Firefox and/or Thunderbird into a completely different application.

Kevin Purdy over at LifeHacker.com found a great Thunderbird extension that imports an Outlook PST into Thunderbird. According to the site, this extension works in Windows and Linux. More reason to make yourself platform-independant. The extension is 1mb in size.

As soon as you install this extension, you are able to import your PST into Thunderbird using the Tools/Import... pulldown menu.

For my audience, are there any other extensions that make Thunderbird "Outlook-like?"

Happy Birthday, DCS Media and a re-introduction

by Jonathan Danylko at 02:00 AM, 01/02/2008

DCS Media has turned 2 today.

Happy Birthday, DCS Media! We just turned 2!

I want to thank everyone for a fantastic 2007 and I definitely look forward to an even more prosperous 2008.

I remember when I first started DCS Media back in 2006 that I couldn't sleep the night before launch. I was so excited to kick off this site.

To this day, I still have that same feeling with DCS Media as I did before. It was a passion of mine to always learn about the latest and newest technology and to provide quality reviews of software and services to small businesses and startups through the eyes of a professional computer technician/architect/programmer/technologist.

Re-Introduction

The primary goal of DCS Media in 2006 was to provide a site to my clients for viewing new technology available to help them with their startup or small business goals. This worked in conjunction with my love of technology and programming.

So a morphing began.

A combining of the two would be ideal for the startup/small business owner to know what type of technologies and ideas would be required for their business to succeed.

There is a term for a company like mine.

That term is called a Micro-ISV.

A Micro-ISV is a 1 or 2 person company that provides software and/or services to larger companies and it seems this term is becoming more and more well-known in the technology industry.

As DCS Media has grown over the past two years, I seem to be moving more towards a Micro-ISV profile. The site may change a little over the next year, but the categories will stay the same.

The primary categories that DCS Media focuses on are:

  • General News (WebWorthy)
  • Web 2.0 technologies
  • Small Business news
  • General Technology
  • Designer and Developer techniques

With the addition of tags over this last year to work in harmony with the categories, the site has been going strong ever since.

Upcoming features

For the startups and small businesses reading this, go for it! Make 2008 your year to shine. We hope that DCS Media will be a part of that.

For the existing (veteran) Micro-ISV's out there, I will be trying to make DCS Media more of a destination instead of a conduit by providing some new features on the site that will help you complete your projects on time, provide you with a better understanding of your clients, and provide the tools and technology to help you in making your business more profitable and maintainable.

In the next week, I'll be introducing new sections on DCS Media:

  • Five-Fix Award - A Firefox award that is given to the authors of Firefox extensions that receive a 5 out of 5 rating from the Fireday reviews.
  • Fireday Listings - Complete listing of all Fireday reviews in hReview format.
  • Online Tools for the Micro-ISV - An ongoing compilation of online tools for Micro-ISVs.
  • ...and more throughout the year.

As you can see, 2008 is going to be quite a year for DCS Media and I want to make sure my audience is part of that success by further expanding the site with new toolsets and techniques to further your business success.

Happy New Year everyone, and here's to a great 2008!

Merry Christmas to all!

by Jonathan Danylko at 07:00 AM, 12/24/2007

A different rendition of "Twas the night before Christmas."

Twas the night before Christmas
and all through the house
not a device was active
except my DVR and my mouse

All servers were off,
the gaming consoles were humming
downloading their updates
to keep the gamers running.

As I went upstairs
for a good nights sleep
I realized I forgot something
so I can't make a peep.

I looked in at my wife
and checked on my son
Both were sleeping soundly
and it was only 11:31.

I crept to my home office
One more thing had to be done.
I turned on my Dell
and looked for the mail icon.

I had to send one last email
to a dear client of mine
they had to know the project
wasn't going to be behind.

After the email was sent
and the application shut down
I thought, "Let's check on Santa using Norad
and see if he's downtown?"

As I looked for Santa on the map
I noticed he was near
he was inside the U.S., no..closer,
he was almost here.

Just at that moment,
I heard a thump on the roof.
I need to see if it was a burglar
I needed some proof.

I looked out the window
I thought I'd seen it all
There was a big red sleigh
with eight reindeer standing tall.

A glance from my eye,
I noticed something red
slipped down the chimney.
Down the stairs, I fled.

I slowly made my way to the living room
trying not to make a noise
and then I found Santa
unloading his sack of toys.

I crouched down to watch
as Santa placed all of the gifts around the tree
He grabbed a couple of cookies and milk
and marched towards the chimney.

At first, I thought he would leave
without even saying a word
but he stopped dead in his tracks
which I thought was a little absurd.

He slowly turned around
and looked directly at me
With a smile hidden in his beard
he said "Hmm...let me see"

He reached into his pocket
and pulled out something small
it looked like a memory stick
but it could be nothing at all.

He threw the object to me
and said with a wink
"You need to slow down.
Know when to play and when to think."

He touched his nose
and went to the roof in a blink
He rode away to the next house
before I could even think.

I opened my hand
and what to my surprise
was a 64GB USB Drive
Portable data...Super-sized!

I heard him exclaim
as he rode out of sight
"Merry Christmas to all,
and to all, a good night!"

How AJAX is like pepper

by Jonathan Danylko at 02:00 AM, 12/04/2007

Don't go completely crazy with AJAX. Use good judgment on how and when to use it.

Since my last post of when to use AJAX,  a lot has changed in the ways of AJAX programming. New tools, ideas, and techniques are constantly being developed to support this latest and greatest craze.

Some developers just want use the latest buzzwords and technologies in their applications just to prove that they can build such a beast. Sort of like an "I climbed Mt. Everest" battle cry.

However, most applications shouldn't be built completely with AJAX from the ground up. Of course, AJAX and DHTML are two completely different animals. But that's another post altogether.

Just a Pinch

AJAX should be used sparingly like pepper on food. Just "sprinkle" it on some applications, don't dump an entire load of AJAX into your application. The more you add to it, the more complex it will become to maintain. Keep it simple and use it with good judgment.

My advice of where to put AJAX or how to learn AJAX?

Write your application with your favorite server model (ASP.NET, PHP, ColdFusion, etc.). Make sure it's functional before you even think of adding AJAX or you'll muddy the waters even more.

Then look your application over. Where would AJAX benefit your users? Here are a couple of suggestions:

  • Do you have an OnChange event on a dropdown list that completely refreshes the page? Instead of refreshing the page, make an AJAX call, return JSON, and fill in the proper fields.
  • Speaking of onChange JavaScript events, do you have cascading dropdowns? This is a perfect case of when to use AJAX. Selecting one item from dropdown A affects the list in dropdown B. Streamlining this process provides a better experience for the user (and they don't forget where they last left off).
  • Have a huge table/grid? Consider using AJAX or one of the many AJAX Frameworks out there. Instead of writing your own, may I recommend the Dojo JavaScript Framework. They just included the newly TurboGrid which is just plain awesome!
  • Waiting for a large page to load? Load the main page and then load the subcomponents through AJAX.

As you keep building web applications, you'll start to see places where AJAX does make sense.

How do you integrate AJAX into your application?

Paid Posts and Reviews

by Jonathan Danylko at 03:30 AM, 12/03/2007

I know I'm a little bit late on the Google paid links shakeup party, but I'm stating a case regarding my site with paid reviews or services.

Everyone is up in arms about the pay-per-post or paid links available and Google demoting sites because of paid links (Thanks for the update, Shoemoney). Personally, I'm in total agreement about what SEO experts are saying regarding the PageRank philosophy. Ignore PageRank and continue building your site with great content.

It boils down to your site having great content and your passion for that content. Period. If you don't have great content, then yes, you won't have much of a PageRank.

Now, my stand on paid posts.

Since my audience is geared towards the technology and small business crowd (a.k.a. a Micro-ISV), I always try to create quality posts that pertain to small business web devigners. So if I receive a request from a paid posting service (i.e. Pay-Per-Post, ReviewMe, etc.) and that opportunity is relevant to my audience and they could benefit from it, I will review it.

If there is an opportunity to review a site about curtains or mechanical equipment, chances are it won't be reviewed on this site. If there are more technology or small business campaigns, then yes, I may accept the review and a posting of a review will appear so long as it benefits my audience.

I'm trying to understand why Google would penalize a site for posting relevant review geared towards my site and audience. Because I'm being compensated for reviewing a site or service to benefit my audience? Or it's not "organic?" Hmmm...

The bottom line of paid links, in my opinion, are judgement calls to the authors of the site on where they'd appear. There is nothing wrong with getting a little compensation for doing a paid post so long as it meets this criteria:

  1. The post should contain content that your audience will love and benefit from.
  2. The review should be related to the primary subject of your site.
  3. It has to be a well-written quality post that definitely portrays your site is meant to give a solid review of a service or site.

What is your viewpoint on paid posts or reviews?

Happy Thanksgiving to all!

by Jonathan Danylko at 23:00 PM, 11/21/2007

Give thanks for what you have in your life. :-)

Happy Thanksgiving to one and all!

Sesame Street Thanksgiving

Black Friday Ads

by Jonathan Danylko at 22:00 PM, 11/18/2007

Prepare for the Friday shopping mad rush.

Ah yes, Black Friday. After everyone stuffs themselves on Thursday and rests, Friday comes along and everyone goes shopping...at 5:00a in the morning. :-)

The most popular Black Friday sites are listed below:

Personally, I'm waiting for CyberMonday (the first shopping day after Black Friday).

Dojo 1.0 is released!

by Jonathan Danylko at 00:00 AM, 11/05/2007

It's been over 3 years and today the final product is released along with the famous grid widget.

This is one of those days that is quite memorable for Dojo users: Dojo 1.0 is available today.

One of the greatest widgets included in the release is the grid widget. For those who haven't seen it before, TurboGrid examples can be seen on the TurboAJAX group's website.

In addition to the release of Dojo 1.0, Shane O’Sullivan has released three widgets designed for image-related sites built in Dojo 1.0.

The image widgets include Thumbnail Picker, Slideshow, and Gallery. For more details, check out his site for demos as well.

These three widgets show what can be accomplished with Dojo's JavaScript framework.

It only gets better from here.

TurboGrid will now be part of Dojo!

by Jonathan Danylko at 21:30 PM, 09/16/2007

The TurboAJAX Group is taking the TurboGrid (written entirely in Dojo) and incorporating it into Dojo JavaScript Framework 1.0 release.

This is absolutely great news for Dojo users.

Everyone has been asking "Where's the grid widget?" since Dojo 0.9 was first released (I was one of them). That question has been answered through a press release declaring that the TurboGrid will be released in the 1.0 version of Dojo.

One question I had answered was is it going to be the professional version or the free version? And then I came across this blog post where the press release was posted as well.

According to the blog post, they are including the buffed up version (I'll call it the professional version).

Since it's not the TurboGrid Classic, there are tons of features included. You have GOT to see this grid in action.

All with Dojo!

Oh yeah, I'm excited for a Monday morning.

Top 10 Future Web Trends

by Jonathan Danylko at 22:00 PM, 09/11/2007

Read/Write Web has a writeup on what the top 10 trends will be in the coming years. What do you think will happen in 10 years?

Everyone is looking for the next big thing when it comes to making some serious dough.

Richard MacCanus at Read/Write Web talks about the Top 10 Future Web Trends that will be occurring in the next 10 years or so.

Personally, I've been focusing on 3-4 already.

Do you think there are other trends or technologies that Mr. MacCanus didn't cover? Post it below in the Chatterbox.

AJAX Security Techniques

by Jonathan Danylko at 04:00 AM, 06/19/2007

One of the primary concerns that AJAX faces are security issues.

When you start building your web application from the ground up, it's best to think about security immediately.

Aleksey Shevchenko, over at Developer.com, submitted an article called AJAX Security, which talks about the different types of AJAX attacks and provides tips on how to programatically prepare yourself for such attacks.

Why Web 3.0 will be a programmer's dream come true

by Jonathan Danylko at 00:00 AM, 06/14/2007

Programmer's rejoice! Take existing web services and build your own online software.

Ok, Ok, Ok. Who still thinks Web 2.0 doesn't exist?

If you are still one of those skeptics who think there still isn't a Web 2.0, you're right.

Kind of.

Sort of.

Some sites aren't even considered Web 2.0 because of their site architecture.

For example, mention web services to someone and see if you get a blank stare. Being a programmer, I'm starting to realize that web services are becoming the hinge pins of Web 2.0 and for the coming of Web 3.0.

Let me explain.

When the Internet first became popular, everyone started building their piece of the information superhighway. After the web sites were built (Web 1.0), web services were introduced and added to the mix.

If your site included a collaborative effort, web services, and, optionally, all of the visual bells and whistles, then you had a verifiable Web 2.0 site (Reflective buttons and rounded corners need not apply).

Web 2.0 is currently where most sites build off of old media sources with a new and modern look and feel with social efforts. Developers took old sites and made their news publicly available through RSS feeds and programmable open APIs. Granted, there are some sites that haven't even moved forward with a 2.0-based mentality.

If you don't have the back end infrastructure or any web services available to the public, you may have a difficult time convincing people that your site has a Web 3.0 "personality" (Yes, yes, which isn't here yet, I hear ya).

in my opinion, Web 3.0 will be defined as a web site that builds on top of existing Web 2.0 web services if certain web sites provide that particular functionality. For example, if Site A uses web services from Site B and Site B goes down, Site A better have a backup plan for providing content or services to their audience or customers.

The reason everyone keeps calling it Web 2.0-this and Web 3.0-that is because of the versioning aspect of it. You're building off of what already exists. You're leveraging the Internet and it's vast resources at your disposal.

Web 2.0 is not about the big red candy-like buttons, the rounded corners, or the reflective images in your title (although sometimes it does help). It's a combination of two things: a technological progression of how the Internet is growing up and becoming a "program" itself and for the general community consensus to provide a name for the versioning that is occurring every single day.

Ok, one final question: Does Web 3.0 exist yet?

Yes! Mashups are already examples of that.

Web 2.0 and you

by Jonathan Danylko at 10:00 AM, 05/29/2007

Still a little fuzzy on what Web 2.0 is? Frank Bell from Entrepreneur magazine describes the concepts of a Web 2.0 application or service.

Web 2.0 is still a hazy issue, but Frank Bell from Entrepreneur has provided a great description of what Web 2.0 includes.

Web 2.0 and You provides the main concepts and characteristics that make up a Web 2.0 application or service.

For those who still think there isn't a Web 2.0, wake up and smell the Red Bull!

Who's your AJAX Daddy?

by Jonathan Danylko at 22:00 PM, 05/28/2007

An excellent gallery of AJAX-enabled techniques.

Over the weekend, I came across a site that hosts a lot of AJAX techniques that are quite useful, I particularly like the charting feature.

The site is called AJAXDaddy and showcases some really outstanding techniques such as various table utilities (TableKit, Sortable Table, etc.), a 35mm Photo View (very nice widget), a Javascript carousel, a Fisheye interface, and many others.

Very cool site!

10 business reasons to use AJAX

by Jonathan Danylko at 04:30 AM, 05/18/2007

Have a manager wanting to know why you would want to use the latest technology and says it's too new? Forward this to them.

I've been using AJAX since I saw the first post from Jesse James Garrett and I've never looked back. It's a technology that is definitely here to stay.

Being a programmer is great, but trying to convince upper management as to why AJAX should be used on the next project is a bigger undertaking than writing an application.

If you are still looking for that reason to implement AJAX into your project, Agile AJAX provides 10 business reasons to use AJAX in your application.

Google Notebook gets a facelift

by Jonathan Danylko at 22:00 PM, 03/28/2007

I use the Google Notebook on a daily basis and this is definitely a welcome addition.

Every day, I look through my RSS feeds, check my email, and start jotting down my ideas for future posts and thoughts into the Google Notebook.

This morning, Google Notebook put on a new face. I opened my set number of tabs and was frantically looking for the "Google Notebook" title. Ahh...Found it. Google now sets the title to your current notebook you were previously working on. Nice.

Two things were bothering me that they fixed:

  • The caret wouldn't disappear when typing. Big thanks to the Google Notebook team for fixing that one.
  • The content of your notebook is now inside a frame where the toolbar is visible all the time as opposed to just at the topic of a journal entry. It was tough when you had a long entry and wanted to create a link. Another big thank you to the Google Notebook team.

While I typed in a couple entries into a notebook, I was starting to get that feeling again. You know...the feeling when a programmer just knows when a program is stable and the coding works just as it should.

I don't hear a lot of press about the Google Notebook and I think it's one of the most important tools in a blogger/programmer/entrepreneur's arsenal.

 

Solutions To Common Web Development Problems

2008 scandalz.net
I really hate this damned machine I wish that they would sell it. It never does quite what I want But only what I tell it.
CountryUS
IP Address38.107.179.236
User AgentCCBot/1.0 (+http://www.commoncrawl.org/bot.html)