Posted by admin on November 23, 2009 under 2-User Tips, 3-Tech Tips |
This is not meant to be a ground-up overview or tutorial on search engine optimization. Rather, it focuses on fundamental strategies for SEO for a typical small-business site. I assume you understand the core terminlogy for SEO. If you don’t, you should first search out some tutorials on SEO.
Once you are ready to apply some SEO tags and structure to your site, I hope these tips will be helpful.
Search engines typically index pages in the following order:
- Page Title meta tag
- Page Description meta tag
- Page Keywords meta tag
- Page content
To take advantage of the meta tags follow these simple tips:
- Use a unique, accurate title and description for each page. Don’t use the same title or description for all your pages.
- Don’t overload your tags with a lot of extra words that don’t appear in your content.
- Google also compares the content of the page with the words in your tags. It looks for the same words and ranks the keywords higher if it finds more occurrences of the same words in the page content. For example if you have “landscape architect” in your title and as a keyword, use this phrase several times in your page content also. But don’t overload the page with the keywords, which Google considers “Keyword Stuffing” Google favors a keyword density of 1-3%. Here is one tool that analyzes keywords on a page. http://www.seochat.com/seo-tools/keyword-density/
- Use descriptive “Alt” tags on images.
The rest of the story:
Having accurate keywords that users will actually search for is only the first part of successful SEO. It helps the search engines accurately index your page. But your page ranking is dependent on how many time users actually select your page on a search, as well as how many external sites link to your page. Here are tips for improving your search rank.
- Get your link on relevant sites. For example, get your link on news pages or blogs relevant to your industry. Write an article (that includes a link to your site) that appears in an online industry newsletter. Find online directories of services you provide and make sure your site is listed.
- Use a white hat service that can improve your ranking. Be careful, because if Google suspects you are artificially improving your ranking, it will actually lower or even blacklist your site. You can’t improve your ranking by selecting your own site over and over from your own computer - Google limits the counts it gets from one IP address.
We provide a service to enhance your page rank by optimizing your the key words on your site and legitimately increasing the number of search hits your site receives. If you would like more information, please contact us here.
Posted by admin on August 6, 2009 under 4-Code snippets |
There are a number of examples on the web of how to retrieve a row ID after a SQL insert. But what if the insert is part of a declarative SQL statement defined for a SQLDataSource? How do you expose the identity? it turns out it is fairly simple. If you retrieve the scope_identity as part of the Insert statement, you can retrieve it in the item_inserted event. However, I found that you need to create the item_inserted event manually with different parameters than those generated automatically by Visual Studio.
Let’s say you are saving a payment record. Your detailsview is called dtlPayment. In the SQL Insert statement, you will have something like this:
<asp:SqlDataSource …
InsertCommand = “INSERT INTO [tblPayments] ([BillingName], [BillingAmount]) VALUES (@BillingName, @BillingAmount); Select @Payment_rowid=SCOPE_IDENTITY();”
OnInserted=”dtlPayment_ItemInserted”
…
</asp:SqlDataSource>
In the Insert parameters section, define the parameter as an output parameter
<asp:parameter direction=”Output” name=”Payment_rowid” type=”Int32″ />
Now set up the following event:
Protected Sub dtlPayment_ItemInserted(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.SqlDataSourceStatusEventArgs)
Dim thisRowID As Integer
thisRowID = e.Command.Parameters(”@Payment_rowid”).Value
End Sub
Posted by admin on July 16, 2009 under 1-Thoughts and Jots, 3-Tech Tips |
As an independent consultant, I don’t have real office space outside of a desk (and dining room table) in my home. I spend a couple days a week at clients, but on other days I’m on my own. Working at home is OK, but there are lots of distractions like food, tv, and noise when the kids are around. I’ve always enjoyed working at places like Starbucks and Panera, but after several years, that’s gotten old. They are also usually too noisy to take calls. Plus, not having an office makes it difficult to meet with subcontractors and clients.
So I started looking around for potential office space and discovered Regus. This is an international company that provides temporary and permanent office and desk space in a surprisingly large number of locations. I signed up for a monthly plan that lets me “rent” an office 10 days a month at any of the suburban locations around Boston. There is an office near my home in Framingham, and many others around the Boston area.
With a day or two notice, I can reserve an office. What I get is a nice clean office with a phone (free US calls), and wired and wireless Internet connections. Each location has a kitchen with free coffee, and a refrigerator and microwave. There are also conference rooms available for an additional charge, and a business center with printers, copiers, etc. for an additional charge.
Another great feature is that each location has a “business lounge” - a small area with a few chairs and tables. I can stop into any location at any time and use the business lounge for an hour or two to catch up on calls and emails.
Since signing up, I’ve found Regus to be very efficiently run, with friendly, competent staff at the office locations. There are different plans available, so if you are a road warrior looking for a better place to work - take a look at what they have to offer! Their website is regus.com. This is a totally unsolicited review.
Posted by admin on June 19, 2009 under 4-Code snippets |
Let’s say you have an asp.net gridview and you want to group or span several columns under the same heading. For example, you are displaying quarterly sales data:
| Customer |
Rep |
Q1 Sales |
Q2 Sales |
Q3 Sales |
Q4 Sales |
| Acme Tools |
John Smith |
4500 |
4400 |
4600 |
4100 |
| Mega Motors |
Anne Tyler |
9790 |
9670 |
9540 |
8900 |
But what you really want to show is:
| |
Sales |
| Customer |
Rep |
Q1 |
Q2 |
Q3 |
Q4 |
| Acme Tools |
John Smith |
4500 |
4400 |
4600 |
4100 |
| Mega Motors |
Anne Tyler |
9790 |
9670 |
9540 |
8900 |
If your Gridview is called grdSales, there is an easy way to do this in the code behind. Create an event for row_created, then put this in:
Protected Sub grdSales_RowCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles grdSales.RowCreated
If e.Row.RowType = DataControlRowType.Header Then
Dim oGridView As GridView = DirectCast(sender, GridView)
Dim oGridViewRow As New GridViewRow(0, 0, DataControlRowType.Header, DataControlRowState.Insert)
Dim oTableCell As New TableCell()
oTableCell.Text = “”
oTableCell.ColumnSpan = 2
oTableCell.BackColor = Drawing.Color.White
oGridViewRow.Cells.Add(oTableCell)
oTableCell = New TableCell()
oTableCell.Text = “Sales”
oTableCell.HorizontalAlign = HorizontalAlign.Center
oTableCell.ColumnSpan = 4
oGridViewRow.Cells.Add(oTableCell)
oGridView.Controls(0).Controls.AddAt(0, oGridViewRow)�
End If
End Sub
If you found my post helpful and it saved you time or money, please contribute by making a small donation. Even a dollar or two adds up!