Just Released!

Posted on November 3, 2011 22:47 by rcormier@communicatesolutions.com

Hi Everyone, news

Just a quick update to let you know of a couple of the websites that I've been working on.  Check out RefuseDisposalServices.com, a brand new website for a rubbish disposal services company in MetroWest MA.  AlltypeSigns.com, an e-commerce website for a signs and banners company, is a re-design of an existing site.  Let me know what you think of the sites!

Currently rated 1.5 by 71 people

  • Currently 1.450702/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

I've helped a lot of people improve their websites.  There are different kinds of work that people ask for, like changing the layout of a site, updating the content, or custom programming.  By far the most important aspect of the site is its keywords!

The presence and choice of keywords is the single most important factor in the success of a website.

Take a second to re-read that last sentence.  Most people (and designers for that matter) don't give enough consideration to keywords when building a website.  Keywords determine how Google sees your website.  Google is the king of search engines... just take a look at their stock price :D

Here's the basics of how it works.  When you make a webpage, Google reads the webpage and saves all of the important phrases (i.e. keywords) on the page.  Google does this for almost every page on the internet.  When someone enters a search term into google.com, Google tries to match the search term with the keywords it saved from each and every webpage.  Webpages that have keywords that best match the search term will be displayed at the top of the Google results page.  Pages at the top of the results get way more visitors.  For a business website, the first step to making money is getting visitors.
the importance of keywords

Four Simple Do's and Don'ts of Choosing Keywords:

  1. Do choose keyword phrases.  A phrase has multiple words.  It is much easier to rank for "used cars in Worcester" than "cars".  This has the added advantage of making your website very specific to a small audience.  This is a good thing.
  2. Don't make every other word a keyword.  Focus on 1-2 keywords phrases per page.  Too many keywords on a page will water down the page (Google won't know which words are most important on the page)
  3. Do use the Google Keyword Tool to get ideas for keywords and see which keywords Google found for your site.
  4. Don't assume your keywords will generate traffic or conversions.  Test your keywords if you can.  It's likely that half your keywords will be worthless. A pay per click campaign is good for this.

So having good keywords is essential to a website's success.  If you're not sure if a keyword phrase is a good one to target, type it into Google and see if the results are similar to your site.  It is easier to work with Google than to try to change Google :) 

Currently rated 1.5 by 82 people

  • Currently 1.475609/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

I've been on a bit of a health kick lately.  I was fascinated by a recent NY Times article about the effect of technology on the health of the human mind.  The article is about how our addiction to technology may hinder the mental recharge that exercise provides.  While the article focuses on exercise, there's a broader message that getting away from your phone/ipod/television once in a while helps the brain process experiences and turn them into long-term memories.zen

The NY Times also issued a challenge: give up your technology for a period of time and tell your story.  Some recurring themes from the posted stories:
  • When people are bored, they aimlessly check email/Facebook
  • Technology inhibits meaningful conversation
  • Taking some time away from technology leads to less stress, less distractions, and calmer feelings

Almost everyone said they're not going to totally give up their devices, but they would consciously try to reduce their exposure in some way.

Do you agree with that being constantly connected is changing not only your lifestyle, but your ability learn?  Do you not even try to remember stuff since you can just Google it?  Do you think your creativity/imagination has suffered with all these digital devices in your life?

I know I feel "the internal pressure to stay in contact"; they don't call it a CrackBerry for nothing.  It does make sense that the constant distractions do tax the brain.  That said I certainly won't be turning into a Luddite any time soon.  However it does emphasize the importance of unplugging every now and then.

Currently rated 5.0 by 1 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

There are a dozens of good reasons to start a website.  You've probably thought of some of the typical reasons: establishing your brand, always open for business, gain credibility, improved communication, automated customer service, etc.  These are all good reasons but there are other important reasons which don't get enough pub.  Here are 5 smarter reasons to start a website.

light bulb

5) It Doesn't Cost As Much As You Think

A typical website needs two things: hosting (space on a server where your site will live) and a domain name (the site's address).   You can get both of these for less than $100 per year.  I've had good experience with FatCow and Yahoo Small Business.  They have tools which make building a website quick and easy.  If you can use Microsoft Word, then you can build a website.  Don't spend a lot of money on a fancy-pants designer at first.  Use other free tools like Google Analytics and Google Webmaster Tools.  Get a Google Adwords coupon code and drive some traffic to your site.

4) Showcase Your Work

I love the part in Office Space where Bob Slydell asks Tom Smykowski, "What would you say ya do here?" and Tom goes off about how he takes the specs from the customers to the engineers and has people skills.  Old Smykowski's problem is that no one knows what he does and therefore no one values his work.  Don't let this happen to you!  You do good work so you should show it off.  Prospects want to see that you have a track record of success.

This tip applies to you all working the 9-5 as well.  Start a blog or a forum and engage people within the company.   Openly discuss your challenges and ideas.  It may take a little effort but soon your boss will be asking everyone to participate and you can take credit for the whole thing :)  Don't violate any company/confidentiality policies though.

3) Be Contact Friendly

Ok, this one is kind of obvious but it still surprises me how many businesses don't have a website.  A business not having a website is like a person not having a cell phone.  Don't be that guy!

2) Content is King

Whether you own a trendy salon downtown or you write tax software in your spare time, the key to gaining clients is to extend your sphere of influence.  You have to participate in your community and the most effective way to do that is to write interesting, relative content.  Start a blog, forum, or wiki.  If what you have to say is valuable/engaging/entertaining, the audience will come and you'll become an expert in their minds.

1) Test Out an Idea Quickly

Ever have a bolt of genius hit in the shower in the morning?  Many people have good ideas but either 1) never follow up on them, or 2) spend a bunch of time/money on the idea without any certainty it will be successful.  A better alternative is to set up a quick website and see what kind of interest you generate.  Are people willing to leave their email address in exchange for more information?  If not, that may be a sign that your idea isn't as brilliant as you thought.  On the other hand, if you get a ton of hits and good feedback; then you can confidently invest further resources.  Don't worry about making the site perfect, just get it in front of some eyeballs and measure the interest.

Currently rated 3.0 by 1 people

  • Currently 3/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

It's a problem I see way too frequently.  Web designers don't build websites that are portable.  This becomes a problem when one tries to do real-world exercises like changing the directory structure or creating a test site.  Proper planning is the key to avoiding this problem, along with following some DOs and DON'Ts.

What's the big deal?

A web page has essentially two components: data and linked resources.  The data is usually the plain words/text on the page.  Linked resources are usually everything else: images, scripts, style sheets, anchor tags and iframes to name a few.

linkThe crux of the problem is all about the path that the web designer uses to link to these resources.  An inexperienced designer won't spend any time planning how to lay out the directory structure of the website and will use hard-coded paths to the resource.  Let's look at an image for example.  When one wants to place an image in a web page, one uses the HTML 'img' tag with the 'src' attribute to define the location of the actual image file on the server.  An inexperienced designer will create the image like:

<img src='http://www.acme.com/images/pic1.jpg'>

This will work ok but it is very fragile.  If you wanted to change the domain name from acme.com to products.acme.com, you would have to go in and change the path in all the image tags on the site (along with all the linked resources that utilize the fully qualified domain name).  If you wanted to encrypt your content by using https, you would have to do the same thing.  If you want to move all your content to a sub-folder on the server (like if you were creating a test website), it is the same exercise.  You get the idea.  Basically, any time you want to move the site, everything breaks.

Use Relative Paths

A much better idea is to use relative paths for your linked resources.  If you page is named product.html and its located in the document root, an experienced designer will create the image like:

<img src='images/pic1.jpg'>

Here, the designer is defining the path to the image relative to the html document's location on the server.  This makes movement much simpler because nothing breaks as long as the relative relationship doesn't change.  In the real world, the relative relationship rarely changes, especially if any sort of planning is done.  It is much more likely everything will move all together.

DOs and DON'Ts

  • DO use relative paths for linked resources
  • DON'T hard code the fully qualified domain name
  • DON'T hard code the path from the document root

 

Properly plan the site out, use relative paths, and have a little patience.  You will deliver a better product for no extra work.

Currently rated 1.4 by 18 people

  • Currently 1.444444/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Communicate Solutions' Data Center

stack of discsHere at Communicate Solutions, we have a distributed "data center".  I use quotes because it's not like a traditional data center where all our servers are housed in a single climate controlled, key-card secured room in South Carolina. Our machines are actually VPS's, located in different parts of the country and hosted by different vendors.  This works well since we don't have to invest in any specific hardware, get to pick and choose the vendor for the application, and get the traditional advantages of the data center (backup power, redundant data, climate control, etc).  The only hard part is backing up the data from all these machines.  We used to do backups via FTP and boy was that a nightmare.  Custom scripts, password management, security issues, and flaky network connections meant headaches and less than ideal results.  What's a geek to do?

Cue Bacula

Bacula is the Open Source, Enterprise ready, Network Backup Tool for Linux, Unix, Mac and Windows.  It is what we implemented and it has been rock solid.   It's got centralized administration, backup, recovery, data verification, volume management, and messaging to name a few features.  The real advantage is the centralized administration of backing up diverse clients.  From one command prompt, I can backup my Windows and Linux machines.  The data gets encrypted over the wire and stored with compression, which keeps backup small.  Volume management means that I can define a retention policy and old backups are cycled out as new backups are taken.

The Catch

If there's any catch with Bacula, it's that the there needs to be a Linux box where the central console runs.  If you don't run Linux anywhere, sorry, you're pretty much S.O.L.  Other than that, there's a bit of a learning curve with the volume management stuff if you're not familiar with the concepts.  The documentation is exquisite though.

So if you're wondering how you're going to backup your data without losing your mind or spending an arm and a leg, definitely take a look at Bacula.  Because of it I can now sleep peacefully :)

P.S.

As Joel says, make sure you're backups are being tested with restores.  Otherwise its all for not!

 

Currently rated 1.4 by 31 people

  • Currently 1.387098/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Chrome has V8 engine Chrome logo

A couple months ago I wrote about how Google may be pushing its new Chrome browser by making changes to google.com.  Having done a lot of work in JavaScript recently, it got me wondering how Chrome intended to actually speed things up.  It turns out the key is their new JavaScript engine, V8.

V8 is the code name of the JavaScript virtual machine shipped with Chrome.  It is named V8 because it is supposed to be powerful like and 8 cylinder car engine.  I did some googling and found a video where the V8 tech lead, Lars Bak, explains how it is fast.

 

Why is V8 fast?

There are primarily three techniques V8 to improve the speed of execution of JavaScript in Chrome:
1. Hidden Objects
If two objects of the same type are created, a third, hidden object is created which links the two child objects.  The key reason for doing this is that it helps generate efficient machine code.

2. Dynamically generated machine code
When V8 parses your JavaScript, it doesn't generate an intermediate byte code as most engines do.  Instead, it generates native machine code (assembly).  This is much faster since there is no interpretation step.

3. Precise garbage collection
Lars says that memory is reclaimed incrementally so there are minimal pauses or hiccups in the browser when using a complex JavaScript application.

 

When is it not fast? 

As Lars explains in a MSDN Expert to Expert video, V8 is optimized for the most common JavaScript programming patterns and operations.  If your JavaScript program uses infrequent operations, V8 could experience very slow performance.  An example of an operation which could slow things down is deleting/re-adding object properties.  V8 is standards compliant, so it will work but it might not be fast.  "If you write that kind of code, we want to penalize you", mentions Lars with a chuckle.  He also goes on to say that this is how it works in the initial version and it could be changed in future version.

 

The Verdict

V8 and Chrome definitely sound cool.  Lars doesn't strike me as an architecture astronaut so the future looks bright.  However, the technology is so new that I wouldn't yet recommend it for most users.  Honestly I haven't tried it out yet myself.  I'm pretty happy with Firefox and especially all the extensions that are available for Firefox.  I am planning to run my web app's test cases in Chrome in the near future... I'll be sure to post the results.

 

Bonus JS Architecture Talk

Can't get enough?  Check out this talk given by Ryan Dahl at the 2009 European JavaScript Conference.  Ryan describes NodeJS, a server-side JavaScript platform built on V8 which features purely asynchronous I/O and event loop concurrency.  The main program never waits on I/O... giggity.

Currently rated 1.4 by 66 people

  • Currently 1.424242/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5