Gregg

301 Redirects for SEO

Jan
15
2010
by Gregg

In the latest installment of Ask a Sage, we explore the question, "Can you redirect a redirect?"

In addition, we take time to give our take on 301 vs. 302 redirects for SEO and best practices for managing moved content on a website. Video after the jump...

Tania

Holly-Daze at Delphic Sage

Dec
24
2009
by Tania

Happy Holidays from Delphic Sage!

The Delphic Sage Elves have been busy this holiday season...for the past few weeks we have been collecting gifts for the Greater Phila Cares Adopt-A-Family program.

There is a load of great video content out there for Umbraco developers on umbraco.tv, but I have found that good user tutorials are somewhat lacking. So, for the sake of our clients that are umbraco users (and for the sake of umbraco users everywhere) I decided to slap together a quick rundown of how umbraco can be used to manange and maintain a web site. There is much more to Umbraco, what is depicted is really just a first taste.

A Little Background

Umbraco is full featured, open source content manangement system that has been gaining much traction recently. One of the reasons for this is that Microsoft has recently added it to it's Web Platform Installer that ships with IIS 7. Another reason is that it is a great, highly scalable CMS! The website that I use to demo the funtionality is the Creative Website Starter created by Sam Grady and Warren Buckley.

NOTE: These videos are best watched using the HD option and in full screen mode.

Part 1 of 3 - Managing Content

Parts 2 and 3 appear after the jump.

Have you ever seen ?? in c# code? The first time you saw it, was your initial reaction "??"? The ??-operator was added in c# 2.0 and as the documentation says, "The ?? operator returns the left-hand operand if it is not null, or else it returns the right operand." If you're like me, you don't like there to be too much syntax (and especially characters) in your language that is esoteric in its meaning (personally, I still prefer java's "implement" and "extends" keywords over the c++/c# syntax of ":" for inheritence and implementation of interfaces).

Though I must include the disclaimer, there are degrees of how much I'm of the opinion. Maybe it's just years of familiarity, but having some type of character, such as a semi-colon, terminating a line does not seem impractical. And the lambda expression syntax introduced in c# 3.x does provide a lightweight syntax for creating simple anonymous delegates that is really convenient.

The ??-operator, however, does not really yield any new functionality and it can be mimiced relatively easily with a method/function. In T-SQL/Sql Server, there is one already called ISNULL. The usage of such an implementation would not be too much. Admittedly, this entire (belated) complaint is a small quibble on my part, like preferring people to use the Nullable struct instead of int?, but still.

 

At Delphic Sage, we love using Basecamp as our central communications hub between our staff and our clients. It's simple and easy to use, and has a permissions model that makes it well suited as a client portal. However, Basecamp lacks the granularity to be used for actual project/task management which is why we use a different system internally. One of the pain points for our project management team is that they often have to take messages or to-do items from clients out of Basecamp and copy them to our internal solution manually. After reading a bit about the Basecamp REST API, we devised a fairly clever way to make this happen more easily without subjecting/exposing our clients to the minutia of our internal task system.

Some Requirements

1. It needs to be quick and easy to selectively create a new intranet task based on a client entered To-Do item or message in Basecamp.
2. It needs to be easy to jump back and forth between the Internal Task and the Basecamp To-Do
3. The Client should not be exposed to the internal workflow / comments

The Solution

1. We used the BaseCamp API to allow project managers to simply create a new task based on the basecamp URL of an existing To-Do Item. Once the task was created, we prepended the To-Do in back camp with the intranet Task #.
2. We used a GreaseMonkey Script with JQuery to Link all task #s on BaseCamp To-Dos to the corresponding Intranet Task.
3. Since our clients will not have the Greasmonkey script, they will only see that there is a task number, indicating that the Basecamp To-Do has been escalated to an internal Task.

Read on for the step by step analysis...

Results Per Page 
Page: 5 6 7 8 9 10 11 12 13 14 15