Icon_search

2008

Kelly2

How to create SEO friendly title tags in a custom Blogger template

Posted on 12/23/08 by Kelly C.
54 Comments

I have found several posts on the Internet about how to create title tags for a blog hosted by blogger, but I wanted to find one specific to custom templates. I had a hard time so I thought I'd post the "how to" here.

Keyword specific title tags are important for search engine rankings. The same is true for keyword specific h1 tags. Having them match reinforces the strength of those terms.

For example:

This is good for SEO--

How to Buy Land for Sale - LandTalk Blog

This, not so much--

Re: Re: The Homes at Chimney Ridge - Clemson, South Carolina. Apartment Living is for Freshmen.

How to have the blogger post title appear as a title tag in a custom blogger template:

  • Log into your Blogger account
  • Click Template or Layout
  • Make sure you are in Edit HTML tab
  • You should see the code for your blog in the window
  • OK, you need to find the code that calls the Title of your blog
  • It should look like:
  • Replace this entirely with the following:

  • This will have the title of your blog on your homepage, but on post pages it will display the post title then a little dash (-) then your blog name. So go to the settings tab to create the combination of keywords/blog title as your title on the homepage of your blog.
  • You can delete the little dash and YOUR BLOG NAME if you only want the post title to be displayed.
  • Save your template and upload

So, in a nutshell, log into blogger, view your HTML, replace everything in the title tag with the code I suggested then upload.

Thanks to David Coveney for creating those instructions. He is an online marketing executive at Persona Creative, a Web Design Agency.

Tagged:  blogger hacks, blogger title tags, seo title tags, SEO, search engine optimization

Back to top

Colin

Updating NERD Tree Key Mappings

Posted on 12/22/08 by Colin
25 Comments

As I get more into using Vim and learning all of the keyboard-based commands, I occasionally run across something that doesn't act quite the way I think it should. Case in point: when using the FANTASTIC NERD Tree plugin for Vim (it's a project browser much like Textmate's Project Drawer), I found a (small) bottleneck in my workflow. I like using the H, M, and L commands to quickly navigate to the top ("High"), middle, and bottom ("Low") parts of the screen (gg and G to move to the top and bottom of the buffer are also great).

But NERD Tree overrides H for toggling hidden files on and off (in the NERD Tree browser only; regular files are untouched). I couldn't have this, since my file browser often has lots of folders open (I know it's not ideal, just a hard habit to break). So I plunged into the NERD Tree plugin's source (~/.vim/plugin/NERD_tree.vim) and found the line I needed (around the 120's in my version):

call s:initVariable("g:NERDTreeMapToggleHidden", "H")
needed to change to:
call s:initVariable("g:NERDTreeMapToggleHidden", "I")

I chose I since the NERD Tree browser in not modifiable anyway (the usual use for I is to enter Insert Mode at the start of the line), but that's obviously not necessary. Now I'm navigating to my heart's content (well, to the top of the screen, at any rate).

Tagged:  vim, nerd tree, key mappings, plugin, textmate

Back to top

Colin

Branching My Face Off... with SVN

Posted on 12/18/08 by Colin
14 Comments

To answer the obvious question up-front: yes, I'm very aware that Git is hott: proof . In fact, I'm using it to manage my pet soon-to-be-open-source project that I'll announce soon. But we're using Subversion at work, and honestly, I'm a little afraid of trying to migrate a whole company to a new version control system when the current system works fine for most cases and those less technically inclined among us would have a bit of a learning curve.

To make a long story shorter, I am working on a project to add features and integrate new design elements into an existing site, and there are occasional updates that need to get pushed up to the live system. Because of our rotating support schedule, I don't want to commit my changes to the project's trunk: that would chance another developer making a maintenance update and deploying the site (via a Capistrano task). But I obviously need to commit them, so I need a new branch for the project (this is the most common use case that I'm aware of for branches). I'd been under the impression that SVN's branching and merging capabilities were really difficult to use and understand, so I've been putting off learning to do this (and a few times committed the cardinal sin of NOT CHECKING IN).

It wasn't as bad as I thought, even though I was starting off in kind of a weird position: my working copy (of the trunk) had local changes, from where I'd started on the time-consuming updates before realizing I really needed a branch. Here are the steps I took (of course, as with most problems, there are many ways...):

  1. Create a branch at the repository, where http://svnrepo.com/path/to/repo is the URL to the repository root:
    svn copy http://svnrepo.com/path/to/repo/trunk http://svnrepo.com/path/to/repo/branches/crazy-new-branch -m "creating crazy new branch"
  2. Change the working copy's SVN metadata to refer to the new branch rather than the trunk:
    svn switch http://svnrepo.com/path/to/repo/branches/crazy-new-branch

At this point, I was ready to roll and could svn ci and do other operations as normal, without fear of changes to the trunk.

The next (and final) test was merging those changes back into the trunk, which also ended up working great (I'm not sure to what extent strange problems can arise, but my merges have gone flawlessly so far):

  1. Get the revision number where the branch was created (write it down if you are forgetful like me!):
    svn log --stop-on-copy http://svnrepo.com/path/to/repo/branches/crazy-new-branch
    Let's say it was revision number 264.
  2. Check out the trunk (in a different location than your working copy of the branch):
    svn co http://svnrepo.com/path/to/repo/trunk projectname_trunk
  3. Get into your new working copy of the trunk (the pathname will vary according to where you are in your directory structure, of course):
    cd projectname_trunk
  4. Get the trunk's current revision number:
    svn info .
    Let's say it was revision number 286.
  5. Merge the branch into your working copy of the trunk:
    svn merge -r 264:HEAD http://svnrepo.com/path/to/repo/branches/crazy-new-branch
  6. Fix conflicts as required and push your working copy (of the trunk) back to the repository's trunk:
    svn ci -m "merging crazy new branch changes back into trunk (264:286)
  7. Rejoice that things work OK and you don't have to migrate your whole company to a new version control system!

Tagged:  svn, git, branches, branching, branch, merge

Back to top

Stephanie

Plexus goes a courtin' for Nuçi's Space

Posted on 12/18/08 by Stephanie
43 Comments

On Monday, October 27, 2008 I had the honor of supporting Nuçi's Space in their bid to obtain exemption from the Athens Clarke County Ad Valorem Tax. We were in the courtroom for approximately 8 hours and at this point have not received a decision from the judge. I will append the descision to this blog post once we get it.

For those of you who don't know what Nuçi's Space is....it is a local non-profit whose mission it is to prevent suicide by providing obstacle-free mental health treatment for musicians suffering from depression and other such disorders, as well as to assist in the emotional, physical and professional well-being of musicians through its caring and healthy gathering space.

Just a little bit of history...Nuçi's Space first applied for property tax exemption in 2005 but was denied by the Tax Assessor's office. However, in 2006 the Georgia general election ballot included a referendum that seemed to solidify the contention that Nuçi's's Space should qualify for property tax exemption. The referendum read:

"This section of this Act expands the ad valorem tax exemption for property of charitable institutions so that the exemption will apply to real estate or buildings which are owned by a charitable institution that is exempt from taxation under Section 501(c)(3) of the federal Internal Revenue Code and used by such charitable institution for the purpose of securing income so long as such income is used exclusively for the operation of that charitable institution. "

This referendum passed with 70% support of Georgia voters and law took effect in January of 2007. Due to its passage, Nuçi's Space reapplied for the exemption in March 2007. Once again the Tax Assessor's Office denied the application. Confident in their position, Nuçi's Space approached Jim Warnes of Timmons, Warnes & Anderson to represent them in an appeal to the Board of Equalization. In late 2007 the Board of Equalization overturned the Tax Assessors decision and granted the exemption to Nuçi's Space. Shortly thereafter the Tax Assessors office made the decision to appeal to the Superior Court.

One more tidbit to consider, the assistant county attorney who is heading up the case on behalf of the Tax Assessors office, Amy Gellins, main argument against Nuçi's Space is that Nuçi's Space occassionally rents out the performance area of the building to private parties for a fee. She knows this because she attended such a party. The people who tend to have parties at Nuçi's Space are usually supporters and think bringing people into the space who would otherwise would not encounter Nuci's Space and their mission, would garner more support for the organization. The money that is raised by renting the space is also dedicated to providing the mental health services to Nuçi's Space clients. Since she attended a private event at Nuci's Space that was rented for a fee, she contends that the organization's building should not be tax exempt because it is used to make money through causes that are not charitable in nature.

The three prong test that must be passed by an entity seeking exemption is:

"First, the owner must be an institution devoted entirely to charitable pursuits; second, the charitable pursuits of the owner must be for the benefit of the public; and third, the use of the property must be exclusively devoted to those charitable pursuits."

Gellins's contention is that the use of the property is not EXCLUSIVELY devoted to the charitable pursuits because the parties and attendees of such parties having nothing to do with Nuçi's space so the space isn't being devoted exclusively to the charitable pursuits. Our contention is private persons rent Nuçi's space, they pay a fee, and that money is used to support the charitable pursuits so the party itself is a fund raiser whose funds are devoted to the charitable pursuit.

If you are an attorney and you look at this case in a vacuum which I suppose is how attorney's are trained to think, you tend to miss the big picture of one of the premises of property tax exemption and that is to afford non-profits better use of their funds to benefit the public as a whole. You might wonder what kind of money we are talking about. The amount of the property tax bill this year is about $6500.00. This amount of money will enable Nuçi's Space to help 10% more patients during the year. There isn't a calculator that has enough digits to calculate what an infinitesimal amount this is compared to the ACC Annual budget. Nuçi's Space fills an enormous space left by uninsured individuals in the county. The cost of a counseling session with a licensed therapist is well over $125 and a session with a licensed psychiatrist is well over $200.00. The therapists and psychiatrists are discounting their rates for Nuçi's Space and Nuçi's Space pays over 80% of the remaining fees for each client. If these people weren't able to seek help at Nuçi's Space at minimal cost ($10-$20 per session) they would end up in emergency rooms and mental health facilities all at an undiscounted cost to the tax payer!

Judge Lawton Stephens heard the case, and no matter what his decision, it will be made with respect to the law. He asked very poignant questions, was attentive and caring about the subject, and I know he is a fair judge. If he finds in favor of ACC, Nuçi's Space will have an option to appeal to a higher court in the state. Thus far Jim Warnes has not billed Nuçi's Space for any of the legal fees. We are not sure if he will be able to take this case any further and we hope it won't be necessary. For Nuçi's Space $6500 is a big chunk of money. For ACC this is a crusade. Tax exemptions have been granted to at least half a dozen other non-profits who use their space for events and purposes not related to their charitable work, even though those organizations put every penny raised through those events back into their charitable work. ACC saw fit to approve their applications for exemptions, though no one could explain how Nuçi's Space's operations differ from the other non-profits, and George Hanson, the Chief Appraiser in ACC, on the stand under oath admitted as much. Unfortunately the equality argument was not made in the original appeal so this argument couldn't be considered by Judge Stephens.

Hopefully if Nuçi's Space wins this appeal, ACC will drop the matter and move on to spending tax payer dollars in more beneficial ways.

UPDATE
The week of December 8th, Judge Stephens handed down his decision that Nuci's Space should be exempt from property tax and upheld the decision of the Board of Equalization. We ask that everyone in the community support us in requesting ACC not appeal this latest decision and let Nuci's Space continue their good work.

Tagged:  property tax exemption, property tax, athens clarke county, judge stephens, lawton stephens, nuci space, nucis space, acc

Back to top

Charlie

Form Validation vs. Correction in Rails

Posted on 12/17/08 by Charlie
19 Comments

Developers have a great deal of control over a web user's experience, and when it comes to validating input forms, opportunities to make things smoother for the user are something every good developer should think about.

For example, I am working on a project right now where users can enter the URL of a link into the database-driven content. In order for the link to work correctly on the front end, it has to have the "http://" prefix on it. And as we all know, it would be folly to assume that every user who submits a link will append the correct prefix.

The easiest solution, and the one I see most often, is to validate the format of the URL and return an error if the user left out the http:// at the beginning of the URL, prompting them to correct their own formatting before they can submit the form. That would look something like this (in the model):


In my opinion, a better option is to validate and correct the user's input if it lacks the proper formatting, using a simple Ruby method (again, in the model):


Then you add a before_save helper which fires off the method before the model is saved:


This way, the user can format the link correctly or incorrectly and it won't matter. The form will still submit, and the link will be properly formatted behind the scenes. The solution is much better from the user's perspective, because it doesn't require a second round of corrections or annoying error messages.

Lastly, a little refactoring. You don't actually even need the before_save helper if you do it this way:


So, a little extra thought at the developer level makes for a much smoother experience at the user level, and the database gets nicely formatted data every time.

Tagged:  ruby, rails, ruby on rails, validation, correction, forms, user experience

Back to top