carlosespitia http://carlosespitia.posterous.com tech blog @ posterous posterous.com Tue, 01 Nov 2011 06:49:08 -0700 What to Expect When You Finally Do Become a Freelancer http://carlosespitia.posterous.com/what-to-expect-when-you-finally-do-become-a-f http://carlosespitia.posterous.com/what-to-expect-when-you-finally-do-become-a-f

What to Expect When You Become A Freelancer Before you become a full-time freelancer, you tend to have a romanticized view of freelancing.

You imagine waking up at any time of the day, working blissfully in your pajamas, pumping iron at the gym in the middle of the day, and spending many happy hours with your family.

Sorry to burst your bubble, but freelancing isn’t exactly like that. Freelancing will change your life drastically, for better or worse. If you’re not prepared for these changes, you may find yourself regretting your decision to freelance.

Let me look into my crystal ball and show you what changes will happen in all the areas of your life.

Physical Changes

The problem with freelancing is, if you’re doing it right, it’s so much fun! Yup, you’ll probably get work you actually enjoy doing… and never want to get up from the computer.

Or you’ll have so much work, you’re forced to stay in front of the computer for hours on end. After all, the more work you do, the more money you make, right?

All this working leads to a phenomenon my mentor lovingly coined as “computer butt.” Your weight may remain the same (lucky you!), but your shape won’t. You’ll notice a spread towards the middle of your body. Then you’ll wonder, “Where has my waist gone?” And all your jeans will get too tight.

The bad news for freelancers is, sitting for hours is bad for our health. It can even undo the benefits of all the working out we do. According to this study, sitting for hours a day puts you at greater risk of obesity, diabetes, heart disease, and cancers.

Granted, you probably also sat a lot when you had a traditional job. But I’ll bet you used every excuse to walk away from your desk and went home as soon as you could in the afternoons.

Also, as a freelancer, your schedule is so flexible, you may choose to play in the daytime and work at night–which means not getting enough sleep. You’ll also be tempted to eat your meals in front of the computer. Or totally forget to eat lunch and then grab a chocolate bar mid-afternoon when your stomach starts to complain (believe me, I know).

The bottom line is, when you become a freelancer, you’ll have more time to take care of yourself BUT the temptation will be great to neglect your health instead. Expect this and plan for it.

Mental Changes

I’m convinced successful freelancers are some of the smartest people around. For one thing, you need the proper mindset to succeed in freelancing. If you’re full of self-doubt, negative self-talk and pessimism, then you won’t make it. No matter how talented or skilled you are.

Furthermore, freelancers are forced to keep learning and growing. You’ve got to keep up or get left behind. When you become a freelancer, you’ll most likely read more books than you ever have since finishing school. You’ll also attend seminars, take home-study courses, and read materials in all sorts of different markets and industries.

You’ll also learn to be more disciplined mentally. You’ll be able to tune out distractions, focus mentally for longer periods of time, and be more organized. It’s tough, but freelancing gives you on-the-job training in all these areas.

Social Changes

Unless you’re freelancing from your client’s office, you’ll find yourself suddenly alone, most of the time. You’ll be working all by your lonesome self most days. Even if you work in a coffee shop, you won’t want to chat with others; chatting means no work gets done!

You’ll also find that the line between work and the-rest-of-your-life has gotten blurred. There is no office to leave behind at end of the day. If you have a home office door you can close, preferably lock, you’re one of the lucky few. For most of us mortal freelancers, work is always within arm’s reach. It doesn’t help that we can now check email from our smart phones.

Yes, it’s going to be pretty darn hard to get your mind and body away from work, much to the annoyance of your family and friends. The thing is, you’ll WANT to work, which complicates things even more.

Financial Changes

The financial changes are probably the ones you’ll expect. You already know you’re not getting a pay check every two weeks, right? Nope, money will come at all times of the month. Some months you’ll have more, some months less. This can be very stressful.

But if you already expect these financial changes, then you’re ahead of the game. That means you know you’ve got to be prepared for freelancing by having a healthy emergency fund.

All these financial fluctuations mean you’re going to become a better financial manager. You’ll become more disciplined about your budget. You’ll be a better planner, taking into account what you need not just to cover the bills, but also emergencies, insurance payments, vacations, sick days, and retirement.

Career Changes

When you become a freelancer, one of the first things that will strike you is the enormous weight of being entirely responsible for your success. You’ll have no more bosses, HR managers and co-workers to rely on or blame. It’s all on you!

You’ll find yourself juggling multiple roles: chief executive, financial manager, operations chief, marketer, salesperson, and human relations manager. And you thought you were in business as a ____ (fill in the blank). Wrong! You are now a business owner, and unless you’re planning to grow into an agency, you’re in charge of EVERYTHING.

Sound scary? It is. But when you overcome the initial shock and step up to the challenge, you’ll be a more confident person. You’ll look back and realize you’ve come a long way. And finally, you’ll understand that you really do create your own opportunities.

Parting Words

If you’re an aspiring freelancer, I hope this post didn’t scare you away from freelancing. My goal is to let you know what to expect so you can use the changes to your advantage. Brace and prepare yourself for them. They’ll be difficult to deal with at first. Some changes will be challenging for years. But in the end, I hope you’ll realize freelancing can make you a better person all around.

Your Turn

Which of these changes will be most difficult for you? How do you plan to cope?

If you’re an experienced freelancer, what other changes did you go through?

Image by Outdated Productions

Related posts:

  1. You Know You’re a Freelancer When…
  2. What it Really Costs to Be a Freelancer
  3. 7 Ways to Bump Up Your Productivity and Start Earning More as a Freelancer


Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1094409/cre.jpg http://posterous.com/users/4wzwy0GVsOwF Carlos Espitia carlosespitia Carlos Espitia
Tue, 25 Oct 2011 07:28:48 -0700 The Easy Way to Start Freelancing: Keep Things Simple http://carlosespitia.posterous.com/the-easy-way-to-start-freelancing-keep-things http://carlosespitia.posterous.com/the-easy-way-to-start-freelancing-keep-things

If you have been trying to launch a freelance career in any genre, you have probably felt the sting of an oversaturated market more than once. There are so many people out there vying for jobs, many of them lacking skill but snatched up because of their ridiculously low price. While the buyers who try this route often have to learn the hard way that this is the wrong road, it doesn’t help you in the meantime.

But being heard over the noise and standing out doesn’t have to mean you shout louder than the rest; that just adds to the clutter. Instead, you should take a minimalist approach, stripping the layers of bulk away and following a more simple blueprint toward success. I guarantee that if you make it a little easier, you will be better off.

You may be wondering how you can apply minimalist ideals to a freelance career. It is all about getting back to basics and ignoring the call of more complicated promotion and activity. This will reduce your legwork and let you focus on your real career.

Don’t Branch Out on Services

Every freelancer seems to be trying to provide a multifaceted service list straight out of the gate. They claim to be able to write everything from ghost-written novels to press releases, and they hatch together a sales ad that gives the price to each one like a shopping list.

But going this route will actually hurt more than help. If you focus on a single service for a time, you will be able to establish yourself as an expert while gaining important experience. Not to mention, you will be more able to take referrals, which is the easiest way of scoring work.

Start with a niche, then work your way up to offering more. You will also sometimes find clients who want other types of work done, which you can take when you are ready and start asserting yourself as an expert in that category as well.

Don’t Splurge on the Site

What is with the sudden increase in overcomplicated and flashy freelance sites? This seems to be a trend, but it actually detracts from rather than adds to your appeal. That is because most clients are looking for a quick peek into your abilities, not a full rundown of everything you have ever done, set with special effects and a light show. They have too many people to interview to be interested in all of that.

You need a simple, clean and efficient site that shows off what you can do. It should be fast loading, be easy to navigate and feature the best work you have done. It should also be updated on a regular basis, which won’t be easy if you have a difficult-to-use website unless you moonlight as a graphic designer.

I usually suggest to people that they create a simple and stylish blog or else a bare bones website with a couple of pages. I have even seen some amazing freelancer sites that were a single page, with a cool layout that gave everything in different, bordered sections and scroll menus.

Focus Your Web


One of the biggest mistakes of any kind of marketing is casting too wide of a web. When you do this, you will be able to bring in many different types of people as your audience, but without a target the results will be mixed and weak. You will have more eyes on you, but fewer quality customers to select from because only a slim number will be interested in what you have to offer. That means less work, not more.

Instead, you should be specific in how you approach your marketing. Use language intended to draw people with a specific niche, making it clear what you are offering. That will provide a platform to attract your target audience, a much smaller catch of potential clients that will improve your chances of getting quality work.

Plus, it will help to push the reputation you have for your area of expertise.

Keep Things Simple

As you can see, freelancing isn’t rocket science. If you keep things simple, you will be able to present yourself efficiently while focusing on your actual work. This will work much better than if you were running around, overextending yourself and shouting at the top of your lungs to be heard above all the others. This will be a lot less stressful, too, which will keep you on top of your game better than if you were hassled and strained.

So apply minimalism to your freelancing approach and see for yourself what the simpler way can do for you.

Your Turn

How do you keep things simple in your freelancing business?

Top image by Marcus Vegas. Center image by Randy Son Of Robert. Bottom image by Nina Matthews Photography.

Related posts:

  1. How to Start Your Freelancing Journey with No Experience
  2. 7 Simple Ways to Painlessly Increase Your Freelancing Rates
  3. A Freelance Translator’s Start-up Guide


Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1094409/cre.jpg http://posterous.com/users/4wzwy0GVsOwF Carlos Espitia carlosespitia Carlos Espitia
Sun, 04 Sep 2011 18:53:00 -0700 HTML5 And The Document Outlining Algorithm http://carlosespitia.posterous.com/html5-and-the-document-outlining-algorithm http://carlosespitia.posterous.com/html5-and-the-document-outlining-algorithm
Media_httpcodingsmash_zdrsx

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1094409/cre.jpg http://posterous.com/users/4wzwy0GVsOwF Carlos Espitia carlosespitia Carlos Espitia
Sun, 04 Sep 2011 18:46:00 -0700 A fall spring-clean http://carlosespitia.posterous.com/a-fall-spring-clean http://carlosespitia.posterous.com/a-fall-spring-clean

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1094409/cre.jpg http://posterous.com/users/4wzwy0GVsOwF Carlos Espitia carlosespitia Carlos Espitia
Fri, 26 Aug 2011 10:25:20 -0700 Entendiendo el sacrosanto algoritmo http://carlosespitia.posterous.com/entendiendo-el-sacrosanto-algoritmo http://carlosespitia.posterous.com/entendiendo-el-sacrosanto-algoritmo

Pocas empresas han hecho tanto por la difusión de la palabra “algoritmo” como Google. Sin embargo, cuando hace una semana un estudio etnográfico de la Illinois University reveló que los tan afamados “nativos digitales” eran muy malos a la hora de utilizar y sacar partido a los buscadores en la red, no me supuso ninguna sorpresa. Llevo muchos años dando clase a distintos niveles de directivos que van desde postgraduados hasta personas con experiencia directiva muy significativa, y me sigue llamando mucho la atención el profundísimo desconocimiento que existe acerca del funcionamiento de algo tan relevante hoy en día como un buscador. Comentarios superficiales suelen unirse a mitos de diversos tipos y a desinformaciones variadas procedentes de diversas fuentes (medios de comunicación, charlas de bar, supuestos SEOs que ofrecen “fórmulas magistrales”, etc.) o falsas atribuciones con motivación más o menos histórica, en un cóctel de lo menos recomendable para quien intenta entender las reglas de un entorno que ya dista mucho de ser nuevo. Puedo dar fe de que el nivel de confusión y malas interpretaciones en este sentido es, a todos los niveles, elevadísimo.

A día de hoy, un buen posicionamiento en buscadores puede ser absolutamente fundamental para una compañía. En algunas industrias, puede significar el ser o no ser. Y sin embargo, no nos paramos a pensar qué es lo que realmente hace un buscador, cómo construye su base de datos ni cómo ordena los resultados de cada una de las consultas que los usuarios le plantean. Generalmente, empiezo una de mis sesiones intentando provocar el razonamiento de cómo puede desarrollarse de manera lógica una tarea así, para posteriormente centrarme en Google y tratar de señalar qué es lo que Larry y Sergey plantearon de manera diferente, de cuál fue esa supuesta “revelación” que les animó a plantar su respectivos doctorados para dedicarse a fundar la compañía: un algoritmo social (basado en las actuaciones de terceros que, al vincular desde sus páginas, determinaban una métrica, el PageRank, que era la base de la ordenación por relevancia) que alejaba el control de las manos de los responsables de las páginas. Un capítulo entero de mi libro está destinado a intentar transmitir el origen y el significado de este tipo de cuestiones, además de plantear temas de ámbito algo más estratégicos acerca de la evolución de Google como compañía.

Google publica hoy un vídeo, Another look under the hood of search en el que comenta cómo funciona el proceso por el cual modifican el algoritmo de búsqueda, un proceso que se desarrolla de manera contínua y que da lugar a más de quinientos cambios al año.

 

 

Una evolución constante que sigue manteniendo – y potenciando – los aspectos sociales (que la relevancia de una página esté fundamentalmente determinada por la reacción y valoración del entorno externo ante la misma), y que debe balancear un cierto nivel de transparencia con la posibilidad de que una visibilidad excesiva facilite excesivamente su manipulación. Los grandes cambios anunciados en el algoritmo, como Panda (sobre el que escribiré en los próximos días en cuanto termine de recopilar información de terceros, porque considero la mía no suficientemente relevante) o los anuncios de cambios planteados ocasionalmente por Matt Cutts, son solo una parte de la realidad de un proceso que evoluciona y busca constantemente la mejora continua.

Un algoritmo que, a día de hoy, es la norma fundamental que cualquier directivo o empresa tiene que entender para plantear su papel en la llamada “economía de la atención”, y cuya comprensión, sin embargo, está notablemente por debajo de lo que cabría esperar para una tecnología con más de once años de antigüedad, ya no entre el llamado “gran público”, sino entre los directivos de empresas que supuestamente desarrollan su actividad en el entorno que este algoritmo, en gran medida, determina.


Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1094409/cre.jpg http://posterous.com/users/4wzwy0GVsOwF Carlos Espitia carlosespitia Carlos Espitia
Fri, 26 Aug 2011 10:22:21 -0700 10 Steps to the Perfect Client Meeting http://carlosespitia.posterous.com/10-steps-to-the-perfect-client-meeting http://carlosespitia.posterous.com/10-steps-to-the-perfect-client-meeting

You’ve scheduled your very first client meeting and now you’re nervous. Will the meeting go well?

Of course, there’s no way to know for sure if your meeting will succeed, but there are some steps you can take to stack the odds in your favor.

In this post, I share ten (fairly) easy steps to help you prepare for the perfect client (or prospective client) meeting.

10 Meeting Planning Steps

If you’ve scheduled a meeting with a client or prospective client, use the following steps to help the meeting go more smoothly.

  1. Study the client. A big part of meeting success is doing your homework. Learn all you can about your client or prospect. Read their website. Type their name into the search engines. If you have any questions or concerns, call or email your client contact person.
  2. Plan the meeting agenda. It sounds simple, but you’d surprised how many freelancers go to a meeting expecting to answer questions without any preparation. Even if the client departs from the agenda, your planned agenda will give you something to fall back on.
  3. Choose the right venue. Where you meet is important. As a freelancer, you may work from home and likely don’t have a meeting room there. If your client is also small, you may need to pick a public location.
    Look for a site that is quiet, conveniently located for both of you, and (of course) has an Internet connection available.
  4. Bring the right tools. If you need a tablet or laptop, be sure that you bring one. If you will be using presentation software (such as PowerPoint), make sure that it is loaded on your machine. Don’t forget meeting staples like a notebook and pencils.
  5. Bring the right samples. It’s likely that your client will want to see an example of what you’ve done before. If you can, put together a brochure or some printed samples for the client to take with them. Don’t forget to include your business card.
  6. Bring extra. It’s not unusual for a client contact to bring extra people to a business meeting. Be prepared by bringing extra business cards and samples.
  7. Listen. You may have done an excellent job of studying the client and bringing the right materials, but once you are at the meeting be sure to give your client a chance to speak. Listen carefully to what he or she has to say and try to determine how your business fits in with their goals.
  8. Ask questions. Some freelancers are afraid to ask questions, fearing that it will make them appear to be less of an expert. However, if you ask intelligent questions the exact opposite is true. Plus, questions show the client that you are truly interested in them.
  9. Ask for the business. As the meeting draws to a close don’t forget to tell the a prospect specifically that you want their business. It seems corny, but asking for the business really works. You may get the business right then, but even if you don’t, at least the prospect knows that you’re serious.
  10. Follow up. After the meeting is over, don’t just let the client or prospective client drop off your radar. Drop them a note to tell them how much you appreciated meeting with them. If you didn’t get the business at the meeting, call in a few days to see if they’ve made a decision.

What should you do if you struggle with some of these steps?

Practice the Awkward Parts

Do some of these steps seem contrary to your style?

Maybe you normally have trouble asking a question or asking for the client’s project.

One tactic that can help is practice. Alone, or with a friend playing the part of a customer, practice the parts that you wouldn’t naturally do.

For example, if you’ll be giving a presentation to a client, give it to your friend first. Have your friend think of a few objections that might come up so you can practice answering those. Practice asking for the business until it becomes second nature to you.

Planning and practice can help you get the gig.

Your Turn

How do you ensure that your client or prospective client meetings go well? Do you have any tips to add to the steps above?

Share your answers in the comments.

Related posts:

  1. 5 Steps for Overcoming Client Anxiety
  2. How to Land More Projects with Smarter Follow-Up Steps
  3. 8 Essential Steps to Starting Your Freelancing Biz


Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1094409/cre.jpg http://posterous.com/users/4wzwy0GVsOwF Carlos Espitia carlosespitia Carlos Espitia
Fri, 26 Aug 2011 09:20:54 -0700 Taking A Customer From Like To Love: The UX Of Long-Term Relationships http://carlosespitia.posterous.com/taking-a-customer-from-like-to-love-the-ux-of http://carlosespitia.posterous.com/taking-a-customer-from-like-to-love-the-ux-of
Advertisement in Taking A Customer From Like To Love: The UX Of Long-Term Relationships
 in Taking A Customer From Like To Love: The UX Of Long-Term Relationships  in Taking A Customer From Like To Love: The UX Of Long-Term Relationships  in Taking A Customer From Like To Love: The UX Of Long-Term Relationships

What do you mean “improve”? I charged him correctly, didn’t I?.

My manager looked at me, disappointed:

Yes, Des, you charged him correctly. But a vending machine can do that, too. They show up on time; they’re more accurate; I don’t pay them by the hour; and they’re never hungover. Your job is to do something that a vending machine can’t do. Your job is to make our customers happy; give them a good experience; bring them back here again. Get it?

I started to wonder. This was a gas station; how could I deliver a “good experience”? Surely, customers just want to get in and get out. Nonetheless, if I wanted to keep the job, I’d have to try. I started chatting to customers and casually asking questions. Did they find everything they needed. Could we order in a particular newspaper for them? Do they have our phone number in case they need to check whether we carry something? Why did they stop buying from the bakery? Customers regard gasoline as a cost that they have no say about. They enter the store annoyed at having to spend fifty bucks. My job was to change that. I got it.

MBAs call this “customer experience,” although when it’s spelled out so plainly, it sounds more like common sense. And like most common sense, it’s rarely that common — especially in the world of subscription software, where we need customers to stick around.

User experience designers are great at making software friendly and usable for new customers. We design clean, clear sign-up forms, smooth on-boarding experiences, and even helpful blank slates once users are inside the app. Once customers have used the software for some time and have integrated it in their workflow, their relationship with the software becomes more complex. UX designers have no stencils for designing “how the customer feels about the software after six months.” This matters because the software-as-a-service (SaaS) model depends on loyalty, on the idea that customers won’t flinch when they see your monthly charge.

Competing On Service

Initially, all markets compete on price. However, competing on price simply isn’t relevant with Web apps, because they are all in the same $0 to $99 per month bracket. Think about it: what sane person would switch project management tools just to shave ten bucks off their monthly costs?

We have reached the point where the service part of SaaS is most relevant, the point where the experience your customers have with your company will determine whether they stick or switch. Say you’ve been paying $50 a month for your time-tracker for the last three years. Have you enjoyed the service? Have you ever been personally thanked for your loyalty? Do you feel that the provider values your $1,800?

Customers Who Don’t Feel Valued Leave

The Rockefeller Corporation studied why customers leave one company for a competitor and found the following:

Customers Leave in Taking A Customer From Like To Love: The UX Of Long-Term Relationships

Look at what’s not here. No mention of price or quality. How you make customers feel is what drives their loyalty, and it’s here where website owners are in trouble. Website owners are disconnected from their customers, save for a conference party or survey each year. If you asked them to introduce you to 10 of their customers, most would struggle, grimace and then get a developer to break out the SQL. Imagine trying to run a bar, convenience store, hair salon — heck, any service — with that level of apathy towards the folks who pay your wages. It shouldn’t be surprising that your customers are willing to jump ship the second a competitor launches a sexy iPhone app. If you’ve never cared about your customers, why would they care about you?

Warren Buffett talks about building a moat around your business to make it untouchable. The strongest moat you can build is one based on strong relationships. Low prices can always be beaten. Stunning design ages quickly and can easily be copied. Impeccable uptime can be matched, and your features copied. However, a good customer relationship is unique, and loyal customers are hard to steal.

Some Things You Can’t Wireframe

Wireframes and mock-ups are excellent for figuring out and discussing screen layout. You can follow all the rules of wireframing to create a compelling user experience, but you can’t wireframe how a customer feels after 15 months of using your software. To deliver a compelling experience, you need to also consider “touchpoints” and “timepoints.”

Touchpoints Make It Holistic

Experience Matrix in Taking A Customer From Like To Love: The UX Of Long-Term Relationships

Touchpoint diagrams help you see the various ways in which customers come into contact with your software. The diagram above from a holiday home website shows that the mobile experience is bad for non-iPhone customers, and that email and phone support should be improved. An amazing website is of no use if your call-center staff is rude or your developer is a jerk to customers on Twitter. Great experiences are about getting everything right; it goes well beyond fancy sign-up forms, cute mails and game-ified tutorials. Sure, all those things help, but the customer experience has to be comprehensive. Quality is fractal. Your customers will judge your company based on all of the experiences they have with it, not just those dripping with CSS3 effects. Using a touchpoint matrix such as the one above will help ensure that you’re considering all of the experiences your customers will have.

Timepoints Make It Long Term

Funnel in Taking A Customer From Like To Love: The UX Of Long-Term Relationships

Anyone who has relied on metrics for customer acquisition will be familiar with some variant of the funnel above. We start with a lot of visitors, and convert a small few of them into customers. While this scenario is rather contrived and rosy, it does provide a way to measure different parts of your Web app. It does not, however, look at what happens next. If you ignore your paying customers, and they hear from you only through their invoices, then you can expect the relationship to deteriorate over time. Here’s how that goes:

Likelove Chart1 in Taking A Customer From Like To Love: The UX Of Long-Term Relationships

We need it to go more like this:

Likelove Chart2 in Taking A Customer From Like To Love: The UX Of Long-Term Relationships

Improving Your Customer Experience

Achieving this requires that you put a plan in place and put someone in charge of customer communication. There is no universal method that works for all software; it’s an iterative process. Your customers need just enough personal communication to feel valued, while not feeling like they’re being nagged constantly. As a start, I’ve prepared the simple questions below; someone on your team should be able to answer yes to all of them.

Test Your Relationships

  • Do you greet new members, introduce yourself and let them know that they can contact you at any time?
  • Do you check in with them after they’re settled in to see how they’re doing and to see whether they’re making the most of your app?
  • Do you talk to your users about new features before and after implementing them?
  • Do you send them the right types of messages at the right time?
  • Do you check in with your customers after their first year to thank them for their loyalty?
  • Can you easily tell the difference between your most loyal customers and yesterday’s sign-ups?
  • Can you tailor your communications to different types of users?
  • Can you name 20 of your customers and tell me something about them?

There is no shortage of questions you could add to this, but I find this initial set is enough to distinguish those who genuinely care about their customers.

Cut The Excuses

There are plenty of reasons why one might believe that this change is too hard to make. App owners will argue that their time is better spent adding features and fixing bugs. This is only partially true. Your customers are with you now without those planned features and with those bugs. I’m not arguing that you should ignore these tasks, just that those tasks are not the only important ones. Recall why customers leave: it’s not likely just because your competitor has launched an iPhone app. That’s one straw, but the camel’s back is already overloaded.

What If I Don’t Have Time?

Do you not have time to invest in keeping customers happy? The rule of retention is that you must be willing to spend as much to keep a customer as you did to acquire them. Leaky buckets don’t fill up quickly. Software such as Intercom makes this degree of customer insight and communication far more manageable. (Disclaimer: I believe in this so strongly that I now work full time on Intercom.)

Ic-smashing in Taking A Customer From Like To Love: The UX Of Long-Term Relationships
Intercom is the first of a new wave of tools aimed at enabling Web app and website owners to get to know their customers.

Too Much Feedback?

No one can afford to ignore their customers. This doesn’t mean that you must do everything they say; it means you should listen and respond. Too much feedback is a good problem to have. Rather your customers tell you what’s on their mind than silently disengage, forgetting about you until their credit-card bill arrives. By that point, you’re already history.

Delivering Customer Experiences

For one year straight, I spent one day every week speaking with customers of one of our apps. Before I started this, they were simply rows in a database. By the time I was finished, I had had a conversation with over a thousand people. I heard about what we got right, what needed improvement, and why we were losing customers. Very useful stuff.

Users were delighted to hear from us, because it reminded them that we’re more than a set of pages and a monthly debit. We started a customer blog and featured a few customers each week. We also added their logos to our home page. To customers, this is the business equivalent of being taken home to meet the parents. It shows a real personal commitment. These actions persuaded our customers to give honest regular feedback and to let us know when we disappointed them. We’d rather they say it to us than run into the open arms of a competitor.

Wufoo sent all of its customers Christmas cards in its first year. That was a huge hit. It was hardly surprising that by the following year they had too many customers to do it again. As a start-up, you have to play to your strengths. A small customer base offers you a big opportunity to deliver amazing service. Scaling that experience can be tricky. There is software that will help, but, again, solving this is no small challenge.

Start It Today

As a simple next step, why not take your first 10 and most recent 10 users, drop them an email, and ask if they’ll take a phone call. Let them know you’re there and that you’d love to hear their thoughts. You’ll be amazed at what you learn, and I doubt you’ll stop at 20.

Additional Resources

  • Intercom
    A product aimed at solving the problems of talking to customers en masse.
  • What Happens With Feedback,” Contrast
    A post explaining how to ask for and act on feedback.
  • Customer Experience, Wikipedia
    A good overview of the field, including case studies of companies that invest in experience.

(al)


© Des Traynor for Smashing Magazine, 2011.


Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1094409/cre.jpg http://posterous.com/users/4wzwy0GVsOwF Carlos Espitia carlosespitia Carlos Espitia
Wed, 24 Aug 2011 07:34:11 -0700 The Semantic Grid System: Page Layout For Tomorrow http://carlosespitia.posterous.com/the-semantic-grid-system-page-layout-for-tomo http://carlosespitia.posterous.com/the-semantic-grid-system-page-layout-for-tomo
Advertisement in The Semantic Grid System: Page Layout For Tomorrow
 in The Semantic Grid System: Page Layout For Tomorrow  in The Semantic Grid System: Page Layout For Tomorrow  in The Semantic Grid System: Page Layout For Tomorrow

CSS grid frameworks can make your life easier, but they’re not without their faults. Fortunately for us, modern techniques offer a new approach to constructing page layouts. But before getting to the solution, we must first understand the three seemingly insurmountable flaws currently affecting CSS grids.

Problems

Problem #1: They’re Not Semantic

The biggest complaint I’ve heard from purists since I created The 1KB CSS Grid two years ago is that CSS grid systems don’t allow for a proper separation of mark-up and presentation. Grid systems require that Web designers add .grid_x CSS classes to HTML elements, mixing presentational information with otherwise semantic mark-up.

Floated elements must also be cleared, often requiring unnecessary elements to be added to the page. This is illustrated by the “clearing” div that ships with 960.gs:

<div class="grid_3">         220 </div> <div class="grid_9">         700 </div> <div class="clear"></div>

Problem #2: They’re Not Fluid

While CSS grids work well for fixed-width layouts, dealing with fluid percentages is trickier. While most grid systems do provide a fluid option, they break down when nested columns are introduced. In the 1KB CSS Grid example below, .grid_6 would normally be set to a width of 50%, while .grid_3 would typically be set to 25%.

But when .grid_3 appears inside of a .grid_6 cell, the percentages must be recalculated. While a typical grid system needs just 12 CSS rules to specify the widths of all 12 columns, a fluid grid would need 144 rules to allow for just one level of nesting: possible, but not very convenient.

<div class="column grid_6">         <div class="row">                 <div class="column grid_3"> </div>                 <div class="column grid_3"> </div>         </div> </div>

Problem #3: They’re Not Responsive

Responsive Web design is the buzzword of the year. While new tools such as 1140 CSS Grid and Adapt.js are springing up that enable you to alter a page’s layout based on screen size or device type, an optimal solution has yet to arrive.

Blame It On The Tools

All three of these problems directly result from the limitations of our existing tools. CSS leaves us with the ultimatum of either compromising our principles by adding presentational classes to mark-up, or sticking to our guns and forgoing a grid system altogether. But, hey, we can’t do anything about it, right?

Well, not so fast. While we wait for browsers to add native CSS support for this flawed grid layout module, a futuristic version of CSS is available today that’s already supported by every CSS-enabled browser: LESS CSS.

Less-css in The Semantic Grid System: Page Layout For Tomorrow
LESS brings powerful new features to CSS.

LESS What?

You’ve probably heard of LESS but perhaps have never given it a try. Unlike other tools such as SASS and CleverCSS, which try to reinvent the CSS syntax, LESS is a superset of CSS rather than a recreation of it. LESS adds to CSS by giving you the ability to use variables, perform operations and develop reusable mixins. Below are a few examples of what it can do.

Variables

Specify a value once, and then reuse it throughout the style sheet by defining variables.

// LESS @color: #4D926F; #header { color: @color; }

The above example would compile as follows:

/* Compiled CSS */ #header { color: #4D926F; }

Operations

Multiply, divide, add and subtract values and colors using operations.

// LESS @border-width: 1px; #header {         border-left: @border-width * 3; }

In this example, 1px is multiplied by 3 to yield the following:

/* Compiled CSS */ #header {         border-left: 3px; }

Mixins

Most powerful of all, mixins enable entire snippets of CSS to be reused. Simply include the class name of a mixin within another class. What’s more, LESS allows parameters to be passed into the mixin.

// LESS .rounded(@radius) { -webkit-border-radius: @radius; -moz-border-radius: @radius; border-radius: @radius; } #header { .rounded(5px); }

Verbose, browser-specific CSS3 properties demonstrate the benefit that mixins bring:

/* Compiled CSS */ #header { -webkit-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px; }

Downsides to LESS

Having been skeptical of LESS at first, I’m now a strong advocate. LESS style sheets are concise and readable, and they encourage code to be reused. However, there are some potential downsides to be aware of:

  1. It has to be compiled. This is one extra step that you don’t have to worry about with vanilla CSS.
  2. Depending on how LESS documents are structured, the compiled CSS file might be slightly larger than the equivalent hand-crafted CSS file.

A Note on Compiling LESS

There are three approaches to compiling LESS style sheets into CSS:

  • Let the browser do the compiling.
    As its name suggests, LESS.js is written in JavaScript and can compile LESS into CSS directly in the user’s browser. While this method is convenient for development, using one of the next two methods before going into production would be best (because compiling in the browser can take a few hundred milliseconds).
  • Use a server-side compiler.
    LESS.js can also compile server-side with Node.js, and it has been ported to several other sever-side languages.
  • Use a desktop app.
    LESS.app is a Mac app that compiles local files as they’re saved on your computer.

Introducing The Semantic Grid System

The innovations that LESS brings to CSS are the foundation for a powerful new approach to constructing page layouts. That approach is the The Semantic Grid System. This new breed of CSS grid shines where the others fall short:

  1. It’s semantic;
  2. It can be either fixed or fluid;
  3. It’s responsive;
  4. It allows the number of columns, column widths and gutter widths to be modified instantly, directly in the style sheet.

Semantic-grid in The Semantic Grid System: Page Layout For Tomorrow
The Semantic Grid System uses LESS CSS to offer a new approach to page layout.

Configuring the Grid

Sounds too good to be true? Here’s how it works.

First, import the semantic grid into your working LESS style sheet.

@import 'grid.less';

Next, define variables for the number of columns, and set the desired widths for the column and gutter. The values entered here will result in a 960-pixel grid system.

@columns: 12; @column-width: 60; @gutter-width: 20;

The grid is now configured and ready to be used for page layout.

Using the Grid

Now that the grid has been configured, consider two elements on an HTML page that you would like to lay out side by side.

<body>         <article>Main</article>         <section>Sidebar</section> </body>

The side-by-side layout can be achieved by passing the desired number of grid units to the .column() mixin (which is defined in the grid.less file).

// LESS @import 'grid.less'; @columns: 12; @column-width: 60; @gutter-width: 20; article {         .column(9); } sidebar {         .column(3); }

The above LESS would be compiled to CSS as the following:

/* Compiled CSS */ article {         display: inline;         float: left;         margin: 0px 10px;         width: 700px; } sidebar {         display: inline;         float: left;         margin: 0px 10px;         width: 220px; }

This page demonstrates the result. What makes this approach so different is that it does away with ugly .grid_x classes in the mark-up. Instead, column widths are set directly in the style sheet, enabling a clean separation between declarative mark-up and presentational style sheets. (It’s called the semantic grid for a reason, after all.)

So, What’s Behind the Curtain?

For the curious among you, below are the mixins at the center of it all. Fortunately, these functions are hidden away in the grid.less file and need not ever be edited.

// Utility variable — you will never need to modify this @_gridsystem-width: (@column-width*@columns) + (@gutter-width*@columns) * 1px; // Set @total-width to 100% for a fluid layout @total-width: @_gridsystem-width; // The mixins .row(@columns:@columns) { display: inline-block; overflow: hidden; width: @total-width*((@gutter-width + @_gridsystem-width)/@_gridsystem-width); margin: 0 @total-width*(((@gutter-width*.5)/@_gridsystem-width)*-1); } .column(@x,@columns:@columns) { display: inline; float: left; width: @total-width*((((@gutter-width+@column-width)*@x)-@gutter-width) / @_gridsystem-width); margin: 0 @total-width*((@gutter-width*.5)/@_gridsystem-width); }

Fluid Layouts

The example above demonstrates a fixed pixel-based layout. But fluid percentage-based layouts are just as easy. To switch from pixels to percentages, simply add one variable:

// LESS @total-width: 100%;

With no other changes, the compiled CSS then becomes this:

/* Compiled CSS */ article {         display: inline;         float: left;         margin: 0px 1.04167%;         width: 72.9167%; } sidebar {         display: inline;         float: left;         margin: 0px 1.04167%;         width: 22.9167%; }

This example shows how the percentages are dynamically calculated using LESS operations, which also applies to nested columns.

Responsive Layouts

No modern grid system would be complete unless we had the ability to adapt the layout of the page to the size of the user’s screen or device. With Semantic.gs, manipulating the grid using media queries couldn’t be any easier:

article { .column(9); } sidebar { .column(3); } @media screen and (max-width: 720px) {         article { .column(12); }         sidebar { .column(12); } }

Try It For Yourself

The Semantic Grid System delivers the best of both worlds: the power and convenience of a CSS grid and the ideal separation of mark-up and presentation. Download the grid for yourself, fork it on GitHub, and let us know what you think!

Semanticgs in The Semantic Grid System: Page Layout For Tomorrow
Download the grid from Semantic.gs.

Further Reading

(al)


© Tyler Tate for Smashing Magazine, 2011.


Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1094409/cre.jpg http://posterous.com/users/4wzwy0GVsOwF Carlos Espitia carlosespitia Carlos Espitia
Wed, 24 Aug 2011 07:10:36 -0700 Freebie: Responsive jQuery Slider Plugin Flexslider http://carlosespitia.posterous.com/freebie-responsive-jquery-slider-plugin-flexs http://carlosespitia.posterous.com/freebie-responsive-jquery-slider-plugin-flexs
Advertisement in Freebie: Responsive jQuery Slider Plugin Flexslider
 in Freebie: Responsive jQuery Slider Plugin Flexslider  in Freebie: Responsive jQuery Slider Plugin Flexslider  in Freebie: Responsive jQuery Slider Plugin Flexslider

When it comes to responsive design, it’s not just about fluid images or adaptive layouts. It’s also about the responsive methodology behind the entire design process. In responsive design, we are creating responsive experiences, meaning that all design components need to be able to adapt to the environment in which they are displayed and have to interact with. This is why we create tables, navigation menus, videos and other design elements responsive as well (see Responsive Web Design Techniques and Design Strategies for more details). It just makes sense to consider each and every design component — including the image slider.

In this post, we are glad to release a responsive jQuery slider plugin Flexslider which has been created, developed and maintained by Tyler Smith and exclusively released for Smashing Magazine and its readers. As usual, the plugin is absolutely free to use in private and commerical projects. The plugin includes fade and slide animations, customizable options as well as all the navigation options you would expect in such a plugin — touch gestures inclusive! It uses simple, semantic markup to create the slider and is lightweight, weighing only 4kb (minified). The plugin has been tested in Safari 4+, Chrome 4+, Firefox 3.6+, Opera 10+, and IE7+. iOS and Android devices are supported as well. In three simple steps, you can have a fully responsive slider for your responsive design.

Flexslider-new in Freebie: Responsive jQuery Slider Plugin Flexslider

Download the Plugin for Free!

The plugin is released under the MIT license. You can use it for all your projects for free and without any restrictions. Please link to this article if you want to spread the word. You may modify the plugin as you wish.

Flexslider1 in Freebie: Responsive jQuery Slider Plugin Flexslider

Features

  • Simple, semantic markup.
  • Supported in Safari 4+, Chrome 4+, Firefox 3.6+, Opera 10+, and IE7+.
  • iOS and Android devices are supported as well.
  • Slide and Fade animations.
  • Highly customizable slider options.
  • Directional, keyboard, and touch swipe navigation.
  • Lightweight (4 Kb minified).
  • You can use all HTML elements in the slides.
  • Free to use under the MIT license.

Flexslider5 in Freebie: Responsive jQuery Slider Plugin Flexslider
You can find the installation guide and documentation on the developer’s release site.

Behind the Design

As always, here are some insights from the designer:

“My motivation behind creating this plugin was the difficulty I had building my first responsive slider. There were no resources to pull from and I spent hours banging my head against the wall working through the logic. My goal was to make it easier for others doing the same thing. I wanted to build a plugin that served the newest of beginners, while providing seasoned developers a tool they could use with confidence.

FlexSlider serves beginners by being virtually plug and play, needing only the FlexSlider files and some images to get started. To seasoned developers, FlexSlider should be seen as a tool that gets them rolling quickly. It doesn’t add unnecessary markup and gives complete freedom to use any HTML element within each slide.

The most exciting thing about FlexSlider at this point, in my mind, is the slide animation. It was a challenge to construct, but the resulting responsive behavior is very cool. When you mix the slide animation with touch gestures, it creates a great experience across iOS and Android devices.

Problems I encountered when building the plugin was ensuring that the plugin would work across all different types of responsive builds, browsers, and devices. To accomplish that, I made sure the plugin did exactly what it needed too, and nothing more. For example, many sliders use fixed dimensions and absolute positioning to create animation effects, but this is not possible with fully fluid responsive design. Avoiding this practice, I limited my use of the $(window).resize() function and let the slider dimensions remain organic to the content within. The downside to this is that the fade animations can’t overlap, which is indeed a nice effect.

The most important lessons I’ve learned are that overusing (window).resize() function to control element sizing will make you cringe, which is why you won’t find much at all in FlexSlider. Keep your responsive design as light as you can. Remember the audiences you are extending to reach are on far less capable devices, especially with JavaScript.

If you are having a problem installing FlexSlider, post a comment in the Community section and I will respond. Follow @mbmufffin for FlexSlider updates!”

Thank you, Tyler. We sincerely appreciate your work and your good intentions.


© Smashing Editorial for Smashing Magazine, 2011.


Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1094409/cre.jpg http://posterous.com/users/4wzwy0GVsOwF Carlos Espitia carlosespitia Carlos Espitia
Sun, 14 Aug 2011 20:29:20 -0700 8 Tips for Small Business Homepage Design http://carlosespitia.posterous.com/8-tips-for-small-business-homepage-design http://carlosespitia.posterous.com/8-tips-for-small-business-homepage-design


This post originally appeared on the American Express OPEN Forum, where Mashable regularly contributes articles about leveraging social media and technology in small business.

I hate to dash one of your childhood maxims, but people do judge books by their covers. And in web terms, your book cover is your website’s homepage. For small businesses especially, your homepage is your storefront, your calling card, your pick-up line.

Here are eight tips to de-cheese your small business homepage. Please share links to your innovative homepages in the comments below.


1. Keep It Simple


Many established and large-scale businesses can afford to clutter their homepages. They’ve conditioned repeat users, who are able to sift through the ads, widgets and thumbnails to access the information they need. Websites like Amazon and The New York Times have instantly recognizable and easily navigable formats, and frankly, they can afford to hire designers who’ve studied user/site interaction as if it were astrophysics.

Therefore, as a small business owner, keep your homepage simple, like Sheepshead Design. The page should communicate your product or service either with a stand-out image or a simple slogan. More than anything, your homepage should elicit a positive reaction from your visitors, not confuse them with flash and clutter. Think of your homepage in terms of cities: It should be an Oahu, not a Las Vegas.


2. Be Scroll-Conservative


I don’t know about you, but I panic when the scroll bar on my browser shrinks faster than the speed of light -- it means a page is struggling to load its endless stream of information or images. You don’t want that to be the first impression of your site. (Note Olive & Myrtle's healthy-sized scrollbar above.)

Instead, link to separate category or channel pages that will include subsequent information. Although your homepage can create opportunities for product promotion or special offers, it should read less like a 20-page Applebee’s menu and more like a classy prix-fixe place card.


3. Display the Right Links


Although it’s advisable to keep your homepage simple, you’ll still need to include the links to relevant information. A good rule of thumb is: about, product, news. In other words, people need to know what your business is all about, how they can participate and what's current (see Narien Teas' site.)

Jesse Thomas, founder and CEO of design agency Jess3, suggests keeping your mobile site in mind as well. "The mobile site is going to have its own special subset list of priorities for the homepage -- less on the product stuff and more on the resource information," he says. "The mobile site needs to be minimal because ... most people who use their mobile phones are using them for utility, not for prolonged browsing."


4. Keep Featured Products Above the Fold


Okay, we learned this one from Etsy, where vendors can choose which eye-catching products to include on their Etsy storefront banner. Your homepage should reflect the same shameless self-promotion, like John Murphy Photographs.

Display products you’re proud of or photographs that pop off the screen. It’s Curb Appeal 101 -- you don’t see a bakery put out last week’s boring, plain cookies. So, display your own freshest basked good for an alluring homepage-drool effect.


5. Make It Current


Some businesses wish to promote their social media outlets in ways other than widgets. If you and your business are active on Twitter or Facebook, like Brooklyn Brew Shop for example, many website hosts offer a live feed of your recent posts, or you can make your own widget on Twitter and embed the HTML on your site. That feed will update on your homepage every time you tweet or share.

However, if you plan to take advantage of these widgets, you must stay active on Twitter. There’s nothing worse than users seeing that the last time you tweeted was two weeks ago. Customers won’t stick around if you’re not taking the time for them.


6. Create a Homepage that Reflects Your Physical Theme


The most successful marketing reflects brand consistency. Select a design, template, color scheme, logo, etc. very carefully. You not only want these elements to reflect your product or service, you also need them to remain consistent across all platforms.

Especially if you have a physical storefront or a public presence, make sure that distribution materials -- like business cards or flyers -- reflect your customer’s virtual experience. Bonus points if your shop’s interior (or in Nom Nom Truck’s case, exterior) mimics the website.


7. Attach a Featured Image to Your Homepage


I have attempted multiple times to share a website on Facebook (and now Google+) only to find that a thumbnail image would not attach alongside it. When people link to your site, especially to your homepage, make sure its name pairs with a compelling image -- the click-through rates will be much better. The image should be easily discernable in a small size, so it may not do, for example, to feature an intricate product or an image containing lengthy copy. Put An Egg On It ezine provides a perfect example.

It may be difficult for a business to conceive of an image if it offers an abstract service. Therefore, make sure a logo or an avatar pops up alongside your link. Most site hosts offer this option automatically, otherwise you may have to reconfigure some code or settings to ensure your links are properly ornamented.


8. Be Quirky!


Small businesses today are reinventing the design wheel by having fun with their customers. This could entail anything from Lolcats to an interactive Flash plug-in homepage.

Salt Films' website (seen above) uses a giant hand to select “salt shaker” links. The artist behind French beat-box website Incredibox encourages users to interact with kooky avatars. Design of Today is a design firm whose homepage advertises its potential with colorful animated links.

More About: Small Business Resources, web design

For more Business & Marketing coverage:


Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1094409/cre.jpg http://posterous.com/users/4wzwy0GVsOwF Carlos Espitia carlosespitia Carlos Espitia
Fri, 22 Jul 2011 10:51:15 -0700 Article: SPEED SHOW: YOUR BROWSER IS MY KINGDOM – The Aftermath http://carlosespitia.posterous.com/article-speed-show-your-browser-is-my-kingdom http://carlosespitia.posterous.com/article-speed-show-your-browser-is-my-kingdom SPEED SHOW: YOUR BROWSER IS MY KINGDOM – The Aftermath
http://www.todayandtomorrow.net/2011/07/22/speed-show-your-browser-is-my-kingdom-the-aftermath/

(Sent from Flipboard)

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1094409/cre.jpg http://posterous.com/users/4wzwy0GVsOwF Carlos Espitia carlosespitia Carlos Espitia
Fri, 22 Jul 2011 05:48:18 -0700 Small Business Podcasting: 7 Tips to Grow Your Listener Base http://carlosespitia.posterous.com/small-business-podcasting-7-tips-to-grow-your http://carlosespitia.posterous.com/small-business-podcasting-7-tips-to-grow-your


Mignon Fogarty is the founder and managing director of the Quick and Dirty Tips podcasting network and the author of the New York Times bestseller Grammar Girl’s Quick and Dirty Tips for Better Writing. She’s been podcasting for more than five years, and distributes her content through her own website, iTunes, Stitcher SmartRadio and elsewhere.

Sure, Adam Carolla can start a podcast and break the world record for podcast downloads by its second year. But you, sir, are no Adam Carolla. Celebrities aren’t clamoring to visit your garage for an interview, and you didn’t have your own radio show for 10 years. Should you even bother podcasting?

Yes, you should — because it’s an easy, inexpensive way to reach your customers and build a platform, and you can do it. You just have to do it differently from the Adam Carollas, ESPNs and NPRs of the world. Here are seven tips from my own podcast experience:


1. Evergreen Content


The secret sauce for independent podcasters is evergreen content. Like a pine tree, an evergreen piece means the post will still be relevant (or “green”) two years from now. This type of content can include tips, resources, how tos, tricks of the trade and even personal stories. As one of my marketing colleagues said, “That educational stuff is like crack for podcast listeners.”

A few months ago, I personally did an analysis of the top 200 podcasts on iTunes and found that more than 65% of the shows were produced by people or companies with megawatt name recognition. Of the shows that weren’t as preordained for success, more than 80% delivered some kind of evergreen content: language lessons, sex tips, non-time sensitive stories, etc. Evergreen content is the most effective means of gaining traffic for independent podcasts.


2. Plant a Tree, Not Pansies


At the independent podcast network I founded, older shows comprise more than 70% of our new downloads. With evergreen content, you’re planting a tree that will produce fruit every year.


3. Water Regularly


Don’t bother starting a podcast if you can’t commit to a regular production schedule. But again, you are not Adam Carolla — weekly content is good enough, although couple of our shows get away with a bimonthly schedule. Listeners just need to know when to expect new material.


4. Grow Your Platform


Adam Carolla used his existing radio audience to launch a podcast. You, on the other hand, will use your podcast to build a platform. Your platform participants are interested in your work, whether it’s books, speaking gigs, webinars or plush toys. At my site, which is backed by Macmillan publishers, podcasters who gain traction are more likely to get book deals.


5. Don’t Be Afraid to Prune, Repot or Trash Your Podcast


A podcast takes time to grow, and it should be part of a bigger marketing strategy that includes blogging, tweeting, social media pages and perhaps video. But if your podcast isn’t generating traffic, comments, emails or sales, don’t be afraid to trash it and plant something new. I produced a science podcast before developing Grammar Girl, and Cali Lewis of Geek Beat hosted a religion podcast before finding her tech groove.


6. Follow the Light


In terms of distribution, you’re probably more like Adam Carolla than you think. You should distribute your podcast via your website (the number of people who listen directly from websites is growing, according to Edison Research). Furthermore, invest a smidgen of effort by directing listeners to iTunes; the Zune Marketplace; the BlackBerry and Nokia podcast portals; set-top boxes like Roku and Boxee; your own iPhone, iPad, and Android apps; and other smartphone podcast distributors.


7. The Fruit


Some businesses may consider podcasts a justifiable marketing expense, but don’t forget that podcasts can also generate revenue.

You probably won’t be able to employ salespeople like the big guys, but you can work with the major podcasting ad brokers (RawVoice, Podtrac and Wizzard) to find advertisers, sell premium content and develop smartphone apps.

If you’re avoiding brokered ads, don’t yet have your own product to sell, or just want more options, you can also consider affiliate advertising. It’s tough, but if you can find the perfect product — one for which you can give an honest, personal recommendation – an affiliate program can be a great option.

The recession hasn’t bypassed podcasting, but I’ve noticed a promising new trend. While we used to be dependent on a couple of large advertisers, today, more and more small companies are providing advertising services. It can be challenging to manage multiple advertisers, but your business may be healthier in the long run.

Good businesses don’t need to break world records to consider their podcasting efforts a success. If your business goal is to connect with your customer base while generating some extra revenue, you should consider podcasting.


Images courtesy of Flickr, tartanpodcast, Johan Larsson.

More About: broadcast, business, MARKETING, Mobile 2.0, podcast, podcasting, programming, web

For more Business & Marketing coverage:


Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1094409/cre.jpg http://posterous.com/users/4wzwy0GVsOwF Carlos Espitia carlosespitia Carlos Espitia
Mon, 18 Jul 2011 21:08:12 -0700 How to Build a Shortlink App with Ruby and Redis http://carlosespitia.posterous.com/how-to-build-a-shortlink-app-with-ruby-and-re http://carlosespitia.posterous.com/how-to-build-a-shortlink-app-with-ruby-and-re

Advertise here

In this tutorial, we’ll be building a quick shortlink web app with Ruby, the Sinatra web framework, and the Redis database. By the conclusion of this tutorial, you’ll end up with a dead simple, high performance shortlink webapp that’s super easy to scale.


Step 1. Getting Started

To follow along with this tutorial, you’ll need Ruby installed on your system (I’m using 1.9.2), as well as the sinatra and redis gems, and Redis.

If you don’t already have Ruby installed on your system, then you should be able to install it relatively easily. OS X, Debian or CentOS users may need to compile a newer version of Ruby. It’s a pretty straightforward process.

Refer here to learn about how to install Ruby, via RVM.

Now you’ll need to install the required Ruby Gems. Gems are a convenient way of installing virtually any Ruby library available. Simply type the following in your terminal window to install the required gems:

gem install sinatra redis

We’ll also need to install and compile Redis. Don’t worry, it’s really small and only takes roughly 15 seconds to compile on my machine.

wget http://redis.googlecode.com/files/redis-2.0.4.tar.gz         tar zfx redis-2.0.4.tar.gz         cd redis-2.0.4         make         sudo make install         cd ..

You can run the Redis server by typing redis-server into your terminal, and if you feel like playing around with Redis, give redis-cli a go.


Step 2. Building the App

One of the great things about Sinatra is how quick and easy it makes whipping up simple little apps – it’s almost silly!

The code for the shortlink app itself won’t be very long, so it should be really easy to understand. Don’t worry if you don’t understand it at first, I’ll explain how it all works shortly.

Make a folder for your webapp – I’ve called mine redis-ruby-shortlink – and put the following files in it.

shortlink_app.rb

require 'sinatra'         require 'redis'         redis = Redis.new         helpers do          include Rack::Utils          alias_method :h, :escape_html          def random_string(length)          rand(36**length).to_s(36)          end         end         get '/' do          erb :index         end         post '/' do          if params[:url] and not params[:url].empty?          @shortcode = random_string 5          redis.setnx "links:#{@shortcode}", params[:url]          end          erb :index         end         get '/:shortcode' do          @url = redis.get "links:#{params[:shortcode]}"          redirect @url || '/'         end

That’s it. Pretty simple, eh?

In that little Sinatra app above, I’ve done a few key things. In the first two lines, I’m bringing in the libraries we need – sinatra and redis. On line 4, I establish a connection to the Redis server, listening on localhost. The lines after this is where it all starts to get interesting!

In Sinatra, you can specify helpers that are executed every time one of your routes (those get and post parts) is run. We can put anything that we might need often in the helpers block. In my helpers block, I’ve aliased h to Rack’s escape_html, and defined a method to generate a random alphanumeric string of a certain length.

Next up are the routes. The first route is rather simple. Whenever a client makes a GET request to /, it just renders the index.erb page (I’ve included the source to this further down.)

The next route is where the good stuff happens. First, we make sure that the user has actually typed a URL into the URL box. If so, we generate a random shortcode five characters long by calling the random_string method we defined before. Then, we tell Redis to setnx (Set if n exists), a key representing our shortcode to its URL. Redis is a really fast and simple key/value database, or a NoSQL database. These databases are designed for really heavy key/value lookup operations, and as they drop most of the complexity of SQL, they can do it much faster. The ‘links:’ part of the key isn’t strictly required, but it’s good practice to split your Redis keys into namespaces so if you decide later on to store more information in the same database, you don’t have to worry about clashes. After all that, we render the same index.erb page as before. Notice how if the user doesn’t enter anything, this route does the same thing as the previous route.

The final route is run when a client visits a shortlink. This route introduces what’s called a URL parameter. For example, when a client visits ‘/foobar’, the :shortcode part of the route matches ‘foobar’. We can access URL parameters the same way as any other parameter – the params hash. We look up the shortcode in the Redis database. If there’s no such key as what we are trying to access, Redis will return nil. The next line redirects to either the URL we grabbed out of Redis (if it exists), or redirects to the homepage if not.

views/index.erb

index.erb is mostly boring markup, although it does have a few lines I’d like to point out. erb stands for embedded Ruby, and allows us to mix Ruby and HTML, like you would with PHP.

<!DOCTYPE html>         <html>         <head>                 <title>Shortlink App</title>                 <style>                 body {                         font-family:"Gill Sans", "Gill Sans MT", Sans-Serif;                 }                 .container {                         width:400px;                         margin:120px auto 0px auto;                 }                 h1 {                         width:400px;                         margin-bottom:12px;                         text-align:center;                         color:#ff4b33;                         font-size:40px;                         padding-bottom:8px;                         border-bottom:2px solid #ff4b33;                 }                 form {                         display:block;                         width:400px;                 }                 input {                         display:block;                         float:left;                         padding:8px;                         font-size:16px;                 }                 #url {                         width:280px;                         margin-right:12px;                 }                 #submit {                         width:88px;                         border:none;                         background:#ff4b33;                         padding:10px;                 }                 #submit:hover {                         background:#ff7866;                 }                 .clear {                         height:1px;                         width:400px;                         clear:both;                 }                 .result {                         clear:both;                         width:400px;                         margin-top:12px;                         border-top:2px solid #ff4b33;                         padding-top:12px;                         text-align:center;                 }                 .result a {                         font-size:24px;                         display:block;                         margin-top:8px;                         color:#ff2d11;                         background:#ffd2cc;                         padding:8px;                 }                 </style>         </head>         <body>                 <div class="container">                         <h1>shortlink app</h1>                         <form method="post">                                 <input type="text" value="<%= h(params[:url]) %>" name="url" id="url" />                                 <input type="submit" value="shorten" id="submit" />                         </form>                         <div class="clear"></div>                         <% if @shortcode %>                         <div class="result">                                 Your shortened URL is:                                 http://my-shortlink-app.com/                         </div>                         <% end %>                 </div>         </body>

One difference between erb and PHP that you may have already noticed (apart from the different languages) is that, where PHP uses <? and <?=, erb uses <% and <?=. The only interesting things about index.erb is the if block that only renders the part of the page that shows the shortlink if the @shortcode variable is defined. This lets us use the same view for everything. Another point of note is that we’ve made sure to HTML escape params[:url], so that we don’t fall victim to an XSS attack. Other than those points, it’s essentially a stock standard webpage.


Step 3. Scaling Up

One thing I briefly mentioned in this tutorial’s introduction is how easily we can scale, thanks to Redis. Whereas scaling out to multiple SQL databases is a complicated affair, scaling Redis is actually quite trivial. This is a direct result of Redis’ simplicity. If you need to scale to multiple Redises, add the following to your Redis configuration:

slaveof master-redis-server.my-shortlink-app.com 6379

Once you have multiple slaves set up, it’s a tiny little tweak to the Sinatra app above to make each Sinatra instance connect to a random Redis server (if you’re at the stage where you need to scale Redis, I’m going to assume that you’ve already had to deploy multiple Sinatra instances. ;)


Conclusion

I hope this tutorial proved to be useful to you, whether you want to run your own shortlink service, or you’re simply interesting in the latest cutting-edge technologies that are available to us web developers. I’ve covered some pretty neat software in this tutorial that’s been incredibly useful to not just me, but thousands of other developers out there. Enjoy your tinkering!


Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1094409/cre.jpg http://posterous.com/users/4wzwy0GVsOwF Carlos Espitia carlosespitia Carlos Espitia
Mon, 18 Jul 2011 05:50:13 -0700 8 Crucial Elements of Startup Success http://carlosespitia.posterous.com/8-crucial-elements-of-startup-success http://carlosespitia.posterous.com/8-crucial-elements-of-startup-success


Bill Clark is the CEO of Microventures, a securities broker/dealer that uses crowdfunding to allow investors to invest between $1,000 and $10,000 in startups online. You can follow him on Twitter @austinbillc.

Most people understand that a high percentage of startups never make it. So what if you could give yourself a leg up on the competition? Below is a list of tips that may help your startup get to the next level. These ideas are not revolutionary, and many successful startups already have these qualities. Why not ensure yours does too?


1. Hire Great Coders


If you don’t have the skills to code, make sure you find someone with a solid programming background who can implement your idea. You want to make sure that person has built successful websites with features similar to your own vision. That way, you know they have the right skills for your startup. An inefficient coder will take a long time to launch the site, wasting time by making minor changes and fixing bugs. You will lose valuable time and potentially miss the opportunity to capitalize on first-to-market advantages.


2. Launch Your Product Site Quickly


Sometimes you’ll encounter a last-minute opportunity to add features to your product. However, this can delay the launch. You might consider it worth the wait, especially if the added features will further engage customers. However, make sure to launch as soon as possible with the critical functionality. You can always make later changes to improve your site and product. Furthermore, you’ll be able to start gathering valuable feedback from your customers. If you’re insecure about a hasty launch, let customers know they’re viewing the beta version of the site, and they can expect improvements soon.


3. Identify Your Users


If you’re developing a product, make sure you truly understand the needs of your end users. You might assume that potential customers are seeking your particular solution, only to discover after launch that your product might be too expensive or doesn’t precisely repair the problem. Make sure that you take some time to understand exactly what your users need, and what they are willing to pay for.


4. Don’t Target a Small Niche


Solving a problem for a targeted niche is not a bad idea — the smaller the niche, the less competition you may face. The downside is that you might not gain enough users to render a profit. Make sure to perform market research to understand the scale of consumers interested in your product. Also, plan to expand the niche once you service its need. When you evolve your original idea into adjacent markets, you will increase the probability of exponential growth.


5. Raise Enough Money the First Time


As most startups know, determining how much money to raise is difficult. Raising enough money in your seed round will carry your business through inevitable growing pains and redesigns, but it’s important to retain enough money to develop the final product your users will love. You don’t want to spend all your time convincing investors to sign that next check that will keep the company afloat. Investors would rather you spend it further developing the business and getting them a timely return on investment. You want to raise enough money initially so that you can hit a major milestone and have something to show investors.


6. Don’t Waste Money


As obvious as this one sounds, startups waste money every day. They often overspend on things that can wait until later, or on a tool that doesn’t get them the expected results. By outsourcing a variety of activities, however, startups are now becoming less expensive to launch.

One area in which startups waste money is hiring too many employees too fast. You need to make sure you can fill up the entire day of each (indispensable) employee. Early on, only hire people who add required functionality that cannot be fulfilled by current staff. You should also determine whether a person can be hired as a short-term, temporary resource (i.e. outsourcing), or whether hiring a full-time employee is the right, long-term solution. Employee salaries contribute to high overhead expenses, and should be carefully controlled at the beginning of a successful startup.


7. Have Multiple Co-Founders


A startup can be very time-consuming. Although you envisioned its concept, you may lack the required skills to launch your idea into reality. Therefore, divide the work among trusted partners with necessary skills sets, and be able to bounce ideas off each other freely.

Dave McClure states that the ideal startup has a hacker, a hustler and a designer. The hacker can code, the hustler brings in the business, and the designer architects the concept to make it appealing to a consumer or investor. You may have one or all of these skills, but often not enough time in the day to wear all of the hats. If you can’t convince a co-founder to come on board and fill a role, it may be a red flag that your idea needs tweaking.


8. All Or Nothing


We’ve all heard the saying “don’t quit your day job, kid,” but in the world of startups, any time spent focused on outside tasks is an opportunity for competitors to beat you to market. You need to focus all your time on your startup if you want it to succeed. And this may mean quitting your day job.

If you’re building a product, targeting customers, and trying to attract investors all in your spare time, you don’t have your priorities lined up. If you dedicate all your time to your startup, you will have more drive to successfully get it to market, because now your livelihood depends on it.


This list doesn’t guarantee that you will succeed, but it will give you some benchmarks to compare yourself against. Can you think of any additional characteristics that successful startups have going for them? If so, leave them in the comments.

Image courtesy of iStockphoto, RichVintage

More About: business, finance, launch, MARKETING, startup, tips, web

For more Startups coverage:



Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1094409/cre.jpg http://posterous.com/users/4wzwy0GVsOwF Carlos Espitia carlosespitia Carlos Espitia
Mon, 18 Jul 2011 05:45:04 -0700 How to Change Your Freelancing Perceptions and Prosper http://carlosespitia.posterous.com/how-to-change-your-freelancing-perceptions-an http://carlosespitia.posterous.com/how-to-change-your-freelancing-perceptions-an

People who are successful in freelancing will tell you that starting their own business was the best choice they ever made. Those who are thinking of going freelance, or are “happy” in a full-time job, tell a different story. While your perceptions of things in life doesn’t determine the success or failure of what you’re doing 100% of the time, having a positive perception does make the task much easier. You’re never going to be successful if you hold yourself back with negative thoughts.

I’ve heard tons and tons of reasons of why people are afraid to go freelance, or why they prefer to stay in their full-time job (that have nothing to do with liking the actual job). Here are the common reasons, excuses and outside perceptions about freelancing. Here I also explain how you can change them to prosper.

My Job Is More Secure

One of the reasons I hear the most about people who want to go freelancing, but won’t leave their jobs is because those people think their jobs are most secure. While it’s true that the task of finding work is up to your boss, and you’ll get paid no matter what, how long do you think you’ll continue to get paid when there’s no work coming in? How do you know your bosses are competent at finding that work?

After being both an employee and a business owner, I can confidently say that owning your own business is more secure. Not only do I get paid more when I work more, but since it falls in my hands to find the work, I have an advance warning if something goes wrong. An employee can walk into his job one morning thinking things are fine, only to be laid off because there’s been no work.

Especially in these times when it seems people are getting laid off left and right, holding the reins of your own business has seemed to be more secure. As a matter of fact, I hear more economy grievances from people who are full-time employees than from those who work for themselves.

I Have Bills and a Family to Take Care Of

There seems to be the perception that if you’re not young and single, than it’s too late to work for yourself. When I started freelancing, I quit my job at the last minute due to an illness. It was my responsibility to pay half of the mortgage and half of all of the bills and expenses. I needed to make well over $2,000 a month and I had zero clients. But I made it work and wasn’t late on one single bill. It can be done.

Everyone is afraid of change, especially something as large as going from a job to your own business. Just remember that you’re not the only one who’s done this, and certainly not the only one with a family and bills. If you’re nervous about jumping in, I suggest talking to others who’ve already walked down the path and can give you a confidence boost.

It’s Hard to Find Work in This Economy

This is another excuse I hear from those who are afraid to jump into the freelance pool. They listen to the news talk about a down world economy, jobs lost, and so on, and assume that it’s impossible to find work in this economy. Did you know that more businesses are created during a down economy? I can promise you that there will never be a shortage of freelance work, as long as you don’t stick to only looking for work locally. Every job board I follow has a ton of new listings every day, and I myself have had to turn down work because my scheduled is filled up.

The biggest issue to finding work as a freelancer is to know where to look. Unfortunately, finding work is different from person to person, industry to industry, so what works for one doesn’t work for the other. This is why you’ll never really find a definitive how-to book on the subject. When first starting out, it’s best to go with the nuke approach and to try to hit every single job board, local function and social network you can find. Once you start figuring out where most of your work comes from, you can then hone your efforts down.

I Need Health Insurance

A lot of people are afraid to start their own business because they have the misconception that health insurance is impossible to find or way too expensive to get on your own. This is very untrue. A lot of people make the mistake of going directly to the insurance company to get a quote and, startled by that number, forgo owning their own business for forever.

I can only speak of what I’ve experienced in this, but let me quickly tell you my story. When I went freelance and lost my employer coverage, I went directly to Blue Cross Blue Shield (one of the #1 health insurance companies in the U.S) and asked for a quote. I didn’t even get to the part where they asked me what all of my health issues were when they quoted me a price of $500 a month, for one person HSA coverage with no issues!

I decided to go without health insurance for a year. In all reality, paying for medical bills isn’t that expensive at all, it’s the catastrophes that you really need the insurance for. Anyway, I don’t remember how I heard about this company, but I somehow found myself at Farm Bureau where they offered the exact same BCBS insurance through a company in my state called TRH. The exact same plan, from the exact same company, that was $500 straight through the company…was $50 a month from Farm Bureau. This was also the exact same insurance I had through my employer, who charged me $60 a month for it.

Yes, insurance can be found cheaply, even cheaper than what you were paying from your own employer…just never go directly though the insurance company itself!

So, What Are You Waiting For?

These are just a few of the common issues I hear from people afraid to go freelance. What are yours?

Image by David Reber’s Hammer Photography

Related posts:

  1. Open Thread: How Is Today’s Economy for Freelancing?
  2. The Fear of Freelancing: Why You Could Be Hurting Yourself
  3. 10 Tips for Saving Money as a Freelancer


Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1094409/cre.jpg http://posterous.com/users/4wzwy0GVsOwF Carlos Espitia carlosespitia Carlos Espitia
Sun, 17 Jul 2011 08:32:24 -0700 Why You Need to Get Out from Behind Your Computer Today http://carlosespitia.posterous.com/why-you-need-to-get-out-from-behind-your-comp http://carlosespitia.posterous.com/why-you-need-to-get-out-from-behind-your-comp Why You Need to Get Out from Behind Your Computer Today
FREELANCEFOLDER | 17 DE JULIO DE 2011
http://pulse.me/s/IXlk


One of the best things about freelancing is that you can work from home. There’s no real need to leave… Read more

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1094409/cre.jpg http://posterous.com/users/4wzwy0GVsOwF Carlos Espitia carlosespitia Carlos Espitia
Thu, 14 Jul 2011 05:51:12 -0700 Learning To Use The :before And :after Pseudo-Elements In CSS http://carlosespitia.posterous.com/learning-to-use-the-before-and-after-pseudo-e http://carlosespitia.posterous.com/learning-to-use-the-before-and-after-pseudo-e
Advertisement in Learning To Use The :before And :after Pseudo-Elements In CSS
 in Learning To Use The :before And :after Pseudo-Elements In CSS  in Learning To Use The :before And :after Pseudo-Elements In CSS  in Learning To Use The :before And :after Pseudo-Elements In CSS

If you’ve been keeping tabs on various Web design blogs, you’ve probably noticed that the :before and :after pseudo-elements have been getting quite a bit of attention in the front-end development scene — and for good reason. In particular, the experiments of one blogger — namely, London-based developer Nicolas Gallagher — have given pseudo-elements quite a bit of exposure of late.

Pseudo-element-icons in Learning To Use The :before And :after Pseudo-Elements In CSS
Nicolas Gallagher used pseudo-elements to create 84 GUI icons created from semantic HTML.

To complement this exposure (and take advantage of a growing trend), I’ve put together what I hope is a fairly comprehensive run-down of pseudo-elements. This article is aimed primarily at those of you who have seen some of the cool things done with pseudo-elements but want to know what this CSS technique is all about before trying it yourself.

Although the CSS specification contains other pseudo-elements, I’ll focus on :before and :after. So, for brevity, I’ll say “pseudo-elements” to refer generally to these particular two.

What Does A Pseudo-Element Do?

A pseudo-element does exactly what the word implies. It creates a phoney element and inserts it before or after the content of the element that you’ve targeted.

The word “pseudo” is a transliteration of a Greek word that basically means “lying, deceitful, false.” So, calling them pseudo-elements is appropriate, because they don’t actually change anything in the document. Rather, they insert ghost-like elements that are visible to the user and that are style-able in the CSS.

Basic Syntax

The :before and :after pseudo-elements are very easy to code (as are most CSS properties that don’t require a ton of vendor prefixes). Here is a simple example:

#example:before { content: "#"; } #example:after { content: "."; }

There are two things to note about this example. First, we’re targeting the same element using #example:before and #example:after. Strictly speaking, they are the pseudo-elements in the code.

Secondly, without the content property, which is part of the generated content module in the specification, pseudo-elements are useless. So, while the pseudo-element selector itself is needed to target the element, you won’t be able to insert anything without adding the content property.

In this example, the element with the id example will have a hash symbol placed “before” its content, and a period (or full stop) placed “after” its content.

Some Notes On The Syntax

You could leave the content property empty and just treat the pseudo-element like a content-less box, like this:

#example:before { content: ""; display: block; width: 100px; height: 100px; float: left; }

However, you can’t remove the content property altogether. If you did, the pseudo-element wouldn’t work. At the very least, the content property needs empty quotes as its value.

You may have noticed that you can also code pseudo-elements using the double-colon syntax (::before and ::after), which I’ve discussed before. The short explanation is that there is no difference between the two syntaxes; it’s just a way to differentiate pseudo-elements (double colon) from pseudo-classes (single colon) in CSS3.

One final point regarding the syntax. Technically, you could implement a pseudo-element universally, without targeting any element, like this:

:before { content: "#"; }

While the above is valid, it’s pretty useless. The code will insert a hash symbol before the content in each element in the DOM. Even if you removed the <body> tag and all of its content, you’d still see two hash symbols on the page: one in the <html> element, and one in the <body> tag, which the browser automatically constructs.

Characteristics Of Inserted Content

As mentioned, the content that is inserted is not visible in the page’s source. It’s visible only in the CSS.

Also, the inserted element is by default an inline element (or, in HTML5 terms, in the category of text-level semantics). So, to give the inserted element a height, padding, margins and so forth, you’ll usually have to define it explicitly as a block-level element.

This leads well into a brief description of how to style pseudo-elements. Look at this graphic from my text editor:

Styles-pseudo-elements in Learning To Use The :before And :after Pseudo-Elements In CSS

In this example, I’ve highlighted the styles that will be applied to the elements inserted before and after the targeted element’s content. Pseudo-elements are somewhat unique in this way, because you insert the content and the styles in the same declaration block.

Also note that typical CSS inheritance rules apply to the inserted elements. If you had, for example, a font stack of Helvetica, Arial, sans-serif applied to the <body> element of the document, then the pseudo-element would inherit that font stack the same as any other element would.

Likewise, pseudo-elements don’t inherit styles that aren’t naturally inherited from parent elements (such as padding and margins).

Before Or After What?

Your hunch on seeing the :before and :after pseudo-elements might be that the inserted content will be injected before and after the targeted element. But, as alluded to above, that’s not the case.

The content that’s injected will be child content in relation to the targeted element, but it will be placed “before” or “after” any other content in that element.

To demonstrate this, look at the following code. First, the HTML:

<p class="box">Other content.</p>

And here’s the CSS that inserts a pseudo-element:

p.box { width: 300px; border: solid 1px white; padding: 20px; } p.box:before { content: "#"; border: solid 1px white; padding: 2px; margin: 0 10px 0 0; }

In the HTML, all you would see is a paragraph with a class of box, with the words “Other content” inside it (the same as what you would see if you viewed the source on the live page). In the CSS, the paragraph is given a set width, along with some padding and a visible border.

Then we have the pseudo-element. In this case, it’s a hash symbol inserted “before” the paragraph’s content. The subsequent CSS gives it a border, along with some padding and margins.

Here’s the result viewed in the browser:

4589454789 in Learning To Use The :before And :after Pseudo-Elements In CSS

The outer box is the paragraph. The border around the hash symbol denotes the boundary of the pseudo-element. So, instead of being inserted “before” the paragraph, the pseudo-element is placed before the “Other content” in the paragraph.

Inserting Non-Text Content

I mentioned briefly that you can leave the content property’s value as an empty string or insert text content. You basically have two additional options of what to include as the value of the content property.

First, you can include a URL that points to an image, just as you would do when including a background image in the CSS:

p:before { content: url(image.jpg); }

Notice that the quotes are missing. If you wrapped the URL reference in quotes, then it would become a literal string and insert the text “url(image.jpg)” as the content, instead of inserting the image itself.

Naturally, you could include a Data URI in place of the image reference, just as you can with a CSS background.

You also have the option to include a function in the form of attr(X). This function, according to the spec, “returns as a string the value of attribute X for the subject of the selector.”

Here’s an example:

a:after { content: attr(href); }

What does the attr() function do? It takes the value of the specified attribute and places it as text content to be inserted as a pseudo-element.

The code above would cause the href value of every <a> element on the page to be placed immediately after each respective <a> element. This could be used in a print style sheet to include full URLs next to all links when a document is printed.

You could also use this function to grab the value of an element’s title attribute, or even microdata values. Of course, not all of these examples would be practical in and of themselves; but depending on the situation, a specific attribute value could be practical as a pseudo-element.

While being able to grab the title or alt text of an image and display it on the page as a pseudo-element would be practical, this isn’t possible. Remember that the pseudo-element must be a child of the element to which it is being applied. Images, which are void (or empty) elements, don’t have child elements, so it wouldn’t work in this case. The same would apply to other void elements, such as <input>.

Dreaded Browser Support

As with any front-end technology that is gaining momentum, one of the first concerns is browser support. In this case, that’s not as much of a problem.

Browser support for :before and :after pseudo-elements stacks up like this:

  • Chrome 2+,
  • Firefox 3.5+ (3.0 had partial support),
  • Safari 1.3+,
  • Opera 9.2+,
  • IE8+ (with some minor bugs),
  • Pretty much all mobile browsers.

The only real problem (no surprise) is IE6 and IE7, which have no support. So, if your audience is in the Web development niche (or another market that has low IE numbers), you can probably go ahead and use pseudo-elements freely.

Pseudo-Elements Aren’t Critical

Fortunately, a lack of pseudo-elements will not cause huge usability issues. For the most part, pseudo-elements are generally decorative (or helper-like) content that will not cause problems in unsupported browsers. So, even if your audience has high IE numbers, you can still use them to some degree.

A Couple Of Reminders

As mentioned, pseudo-element content does not appear in the DOM. These elements are not real elements. As such, they are not accessible to most assistive devices. So, never use pseudo-elements to generate content that is critical to the usability or accessibility of your pages.

Another thing to keep in mind is that developer tools such as Firebug do not show the content generated by pseudo-elements. So, if overused, pseudo-elements could cause maintainability headaches and make debugging a much slower process.

That covers all of the concepts you need in order to create something practical with this technique. In the meantime, for further reading on CSS pseudo-elements, be sure to check out some of the articles that we’ve linked to in this piece.

(kw)


© Louis Lazaris for Smashing Magazine, 2011.


Enviado desde mi iPod

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1094409/cre.jpg http://posterous.com/users/4wzwy0GVsOwF Carlos Espitia carlosespitia Carlos Espitia
Wed, 13 Jul 2011 20:38:34 -0700 Google+ Lampooned On Late Night With Jimmy Fallon [VIDEO] http://carlosespitia.posterous.com/google-lampooned-on-late-night-with-jimmy-fal http://carlosespitia.posterous.com/google-lampooned-on-late-night-with-jimmy-fal


Already using Google+? Follow Mashable News for the latest about the platform’s new features, tips and tricks as well as our top social media and technology updates.

Has Google’s Circle-driven social network Google+ grown so fast that it’s ready for television viewing audiences? Maybe so.

Tuesday night on Late Night with Jimmy Fallon, technophile talk show host Jimmy Fallon and celebrity guest Seth Green, who was promoting Robot Chicken, talked up the latest techie obsession.

“Speaking of nerdy stuff, are you on Google+?,” Fallon asked Green. Green is, indeed, on Google+, though he’s merely “reserved his name.”

Fallon then polled the studio audience, asking if they were familiar with Google+. The crowd responded with tempered enthusiasm and confusion, and Green jokingly chastised them by saying, “Then, you’re clearly not a part of the new technological mafia.”

Google+ remained the topic of conversation for another minute or so, with Green adding that, “The best way to overthrow the Facebook giant is to offer something that’s invitation-only.”

Does the funny back-and-forth between Fallon and Green mean that Google+ is on its way to topic of mainstream conversation?

Image courtesy of Flickr, oaklandEarthGirl

More About: Google Plus, jimmy fallon, late night with jimmy fallon, Seth Green

For more Social Media coverage:



Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1094409/cre.jpg http://posterous.com/users/4wzwy0GVsOwF Carlos Espitia carlosespitia Carlos Espitia
Wed, 06 Jul 2011 19:43:00 -0700 Schema.org http://carlosespitia.posterous.com/schemaorg http://carlosespitia.posterous.com/schemaorg

What is Schema.org?

This site provides a collection of schemas, i.e., html tags, that webmasters can use to markup their pages in ways recognized by major search providers. Search engines including Bing, Google and Yahoo! rely on this markup to improve the display of search results, making it easier for people to find the right web pages.

 

visit site

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1094409/cre.jpg http://posterous.com/users/4wzwy0GVsOwF Carlos Espitia carlosespitia Carlos Espitia
Fri, 01 Jul 2011 15:07:19 -0700 @isigzz http://carlosespitia.posterous.com/isigzz http://carlosespitia.posterous.com/isigzz

Pic1

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1094409/cre.jpg http://posterous.com/users/4wzwy0GVsOwF Carlos Espitia carlosespitia Carlos Espitia