Interaction Need Not Require Integration

Posted by Scott Fri, 09 Mar 2007 04:55:00 GMT

Here’s a couple examples of technical interaction in place of integration. A user wanted to pull files from Basecamp, the 37Signals application, into their LeadsOnRails application as read-only background information for a salesperson talking with a client.

37Signals provides an Application Programming Interface (API) for just such interfaces. Yet retrieval of files are not supported by the API. All is not lost though because we simply put a link into their LeadsOnRails screen which, when clicked, searches for and displays the user’s files using good old http urls – the same urls that the Basecamp search button creates. (The user needs to manually log into Basecamp once).

This is a very simple example yet one can easily imagine more complex technical examples such as gMail interactions where the url is not readily apparent and one page can often have dozens of requests. Google supports some integration efforts with APIs. But just because there is not an API does not mean you cannot interact with it, especially when talking web applications.

Side note: We see these type of interactions between people all of the time. Especially in the corporate world of org. charts and hierarchys. There is a formal way and “other” ways to accomplish goals, share information, and make decisions. And with people, it is often the informal way that gets results.

Don’t let the lack of a formal system, agrement or contract keep you from making improvements (both technical and personal) to your interactions and relationships.

no comments

Be Sure to Help Out When a User Forgets The URL to Their Subdomain Login Screen

Posted by Scott Thu, 08 Mar 2007 04:10:00 GMT

It has become common practice for Web 2.0 applications to provide each account with their own subdomain. This approach lets account owners feel that they have their own space, can be part of branding a product at least partly with their name, and helps with authorization scope.

We use subdomain accounts with LeadsOnRails.com, the small business lead management software. We have found that, believe it or not, users often forget their subdomain or forget to enter it. Typical applications might at worse ignore this problem and miss out on some active users, or at best might provide a reminder that the proper login is [somewhere].bestappever.com. But what if the user forgets where their [somewhere] is?

For those occasions, provide your users with a way to be sent to their login screen via entering some unique identifier such as email.

Here’s what worked for me. Create a find form that simply prompts the user for their email address. Call a method to find the account by email and then either redirect to that account’s login URL or reply with a “email not found” message.

Code snippets:

views/sessions/find.rhtml
...
<%= start_form_tag :action => "find_login" %>
...
   <%= text_field_tag :email, params[:email] %>
...
<%= submit_tag 'Take me to my login screen' %>
...
</form>

controllers/sessions_controller.rb
def find_login
  @user = User.find_by_email(params[:email])
  @website = @user.account.website unless @user.nil?
  if @website 
    redirect_to("http://#{@website}.leadsonrails.com/login")
  else
    flash[:error] = "Sorry, we could not find a user 
      with that email address. Please contact us for support." 
    redirect_to :action => "find" 
  end
end

no comments

Do Not Leave Your Typo Title Blank

Posted by Scott Tue, 06 Mar 2007 18:13:00 GMT

For SEO reasons, you want all of your blog pages to have descriptive title tags. When using Typo’s default theme, the title tag for your posts is the name of the post. That’s a good thing. The title tag for the homepage of your Typo blog though is pulled from whatever you put in Blog Settings “Blog Name”.

Some Typo users leave that blank though because they do not want a blog name displayed in the header. Maybe they replace the header with a custom graphic. This is a mistake, because search engines then cannot pick up on your blog’s title.

Instead, you can modify the default theme to retain the title tag, but not show it in the header by changing layouts/default.rhtml (or by creating a new theme).

The change that worked for me is:

change:

      <div id="header">
        <div id="logo">
          <h1 id="sitename"><%= link_to config_value('blog_name'), { :controller => '/' } %></h1>
          <h2 id="subtitle"><%= config_value('blog_subtitle') %></h2>
        </div>
      </div>
to:

      <div id="header">
        <div id="logo">
        </div>
      </div>

no comments

How to Add Digg Buttons to Your Typo Blog

Posted by Scott Mon, 05 Mar 2007 01:02:00 GMT

Here is how I added Digg voting buttons to a Rails powered Typo blog. Digg buttons come in several types. You can build out a full-size Digg button, a compact sized one, or use your own image. I’m adding compact buttons.

See here for details on Digg button html code and all the different options. When you have chosen what options you want to use, here’s the code that worked for me.

app/views/articles/read.rhtml

This is the view in Typo rendered when a single article is shown. Because this view is the view to the article, you do not need to tell Digg the URL. (Digg assumes the current URL when the diggthis script is called).

Here’s code that worked for me. Again, review the details on the Digg site for other options. The key for Typo users is that the digg_title can be set to the name of the article. I inserted this code right after the line with author_link(@article).


<script type="text/javascript">
    digg_skin = 'compact';
    digg_title = <%= "'" + h(@article.title) + "'" %>;
    </script>
<script src="http://digg.com/tools/diggthis.js" type="text/javascript"></script>   

app/views/articles/_article.rhtml

_article.rhtml is a partial used in typo to show an article in the blog’s list of articles. Because each article in the list will have a different URL to send to Digg, you will want to set the digg_url parameter as in this example. In the call to article_url, the false parameter makes sure that the entire path is set in the url. I added this code right before the <%= article.body_html %> line.


<p>
      <script type="text/javascript">
    digg_skin  = 'compact';
    digg_title = <%= "'" + h(article.title) + "'" %>;
    digg_url   = <%= "'" + article_url(article, false) + "'" %>;
    </script>
    <script src="http://digg.com/tools/diggthis.js" type="text/javascript"></script>   
</p>

Try it out

Now, next time you enter a new article, you’ll have Digg buttons where readers can Digg your writing. Try it out.

no comments

Computer World's Top Five Technologies in '07

Posted by Scott Thu, 01 Mar 2007 22:54:00 GMT

Computer World’s The Top Five Technologies You Need to Know About in ‘07 lists a familiar name. According to the writers at Computer World, Ruby on Rails is one of the top five “core technologies that may have the greatest effect on the world of computing over the next 12 months”. Awesome for RubyOnRails developers like us to continue to see buzz like this.

no comments

Rails is Just a Buzzword? Great!

Posted by Scott Thu, 22 Feb 2007 02:16:00 GMT

Buzzwords and buzz-phrases are everywhere and our careers might depend on tracking the right ones.

Here’s some wrong buzzwords that, when put together form a read-made corporate strategy statement: “At the end of the day, a Gen-X, customer-centric, value-added paradigm which aligns our core competencies for synergy is a win-win!” – feel free to use it if you are applying for any newly opened CEO jobs.

In marketing terms, buzzwords are defined as ”A trendy word or phrase that is used more to impress than explain”. Marketing folks by their nature want to put a catchy name to everything so there are plenty of buzzwords in the marketing domain. Business in general has its own buzzword backlash.

While marketing folks want to give a name to everything, IT folks want to give an acronym to everything. Like pithy names, acronyms are ripe for becoming buzzwords. Recent must-utters by the technically talented include SOA, Ajax, XML and SaaS and yes, Rails.

But when someone derides me for being a buzzword chasing, Rails fanboy :), I sit smugly with a secret they seem to have forgotten.

Read more...

no comments

Limited Time Domain Name Offer

Posted by Scott Fri, 16 Feb 2007 02:16:00 GMT

If you are buying domain names in bulk, the savings from this limited time offer from HostMySite.com can quickly add up. Check it out.

Needing to register a few dozen domain names for a new project, I did some searching for the lowest domain name registration price and found this offer to register domain names for only $2.95 each for an unlimited number. Deal ends Feb. 28th and domains renew at $8.95 next year if you keep them at HostMySite.

Read more...

no comments

Left-or-Right

Posted by Scott Mon, 12 Feb 2007 02:14:00 GMT

Left-or-Right is a simple and fun site written in RubyOnRails. You can recommend a topic and can get a link to your site.

Note though that any inbound clicks you gain from it are probably not your target customers (unless you happen to be looking for tech savy, optimistic, retro, Firefox users).

The results from LeftOrRight.com are a good example of self-selective surveys. If you want a certain result just ask certain folks.

The Actionable Point

Have some fun!

no comments

RailsConf 2007: Hackfest

Posted by Scott Tue, 30 Jan 2007 02:52:00 GMT

A big thank-you to Derek Sivers, President of CDBaby for sponsoring a RubyOnRails competition in which the top 20 contributors (from the start of the year) to the open source framework were awarded passes and lodging to RailsConf 2007.

I took on this challenge when it was announced and learned a lot about Rails and about the Ruby on Rails community.

This contest reinforced several best practices that, regardless of language, I hope you are following.

Use Subversion

It is easy to start a project without using a version control system. As a project progresses, it is still easy for a programmer to continue without version control because they do not realize the benefits implemeting such a system would bring. I’ve done this. Our hapless programmer just makes some code changes and then tries out their changes and everything seems fine, they continue on. If not, they go back to their editor and try to “undo” the changes.

All programmers should be using a version control system, regardless of the size of the team or code-base. There is no reason not to.

Read the Subversion manual for everything you ever wanted to know about svn.

Practice Test Driven Development

This is probably the number one reason I love Rails, is because its community walks the talk and does practice TTD. Again, in Rails there is almost no reason not to.

Keep it Simple

Small changes can have big impact. Another place that Rails excels. It can be hard work to keep a solution simple. But the payoff down the road, when others are trying to understand and support it, is great.

Seek Help

The Rails community is awesome. If you have an issue, just ask at one of many places. Google for your question. Or send me a note and, though I’m in no way an expert, I’ll be happy to help.

p.s. By the way, I ended up one of the top 20! See you at RailsConf 2007!

no comments

The Rails Edge Denver - Bruce Williams

Posted by Scott Sun, 19 Nov 2006 02:14:00 GMT

I’m here at The Rails Edge Conference in Denver and will summarize some of the talks. Let me take a moment to put in a personal recommendation for this group of speakers and the Pragmatic Studio conferences. They are a professional group who put on a well run conference. Highly recommended.

Building UI Frameworks – Bruce Williams

Bruce talked about the pain that views impose on developers and how to help yourself in the Rails environment avoid some of the pain. Bruce noted that this is not a Rails problem or an MVC problem, it is just a fact that views are hard to deal with. They mix a developer and designer’s frame of mind in a single place which makes for frustrations and challenges.

Read more...

no comments

Older posts: 1 2 3 4