Bringing Web 2.0 into the Enterprise

Posted by Timothy Fisher Fri, 28 Mar 2008 04:59:00 GMT

Today, social networking, and user-generated content web sites are among the most popular sites on the Internet getting millions of hits every day. Sites like MySpace, Facebook, Flickr, and Google Apps allow users to share user-generated content and collaborate with each other like never before. Smart organizations, enterprises, and product vendors are now realizing the potential for Web 2.0 technologies inside the enterprise.

There are some fantastic web applications on the Internet that would provide tremendous value inside of an organization. I’ve spent the last several years working for large professional services organizations. These large service organizations have perhaps the most to gain from harnessing the concepts of Web 2.0 internally. Consider for example an internal Intranet version of an application like LinkedIn, allowing employees to keep current resume and profile information online that can be easily updated by each employee. This would provide a huge value to professional service organizations whom are always looking to staff the next project or fill a clients staffing requirements.

For the developers of a large organization, think how useful an internal Code Snippets site would be. Public snippets sites such as DZone Snippets, allow contributors to share small snippets of code that solve commonly occurring problems. The value of such a repository is even greater inside of an organization where different teams often encounter similar problems. Essentially, a snippets site provides another outlet for code reuse.

In a development group, every project should be maintaining a wiki site. A wiki can be updated by every member of the team to include links to the latest documentation, schedules, and technical data related to the project.

Social bookmarking sites such as del.icio.us also provide examples of a technology that could be very useful internally. If you are in a large development organization, every developer will usually have his or her favorites sites for researching and looking up technical information. A social bookmarking site would allow your organization to harness collectively those favorites and categorize them with a content tagging system. Content tagging has become the preferred way or organizing large amounts of information in the Web 2.0 world.

Even some of the fringe social sharing sites such as Shelfari and LibraryThing implement concepts that would fit well inside an organization. These sites allow users to share information about their personal library of books. Users can contribute book reviews, book ratings, and comments about the books. Software developers are some of the largest purchasers and readers of technical books. Some organizations will even reimburse employees for technical book purchases. A social site allowing employees to share reviews and comments about technical books could be a very useful addition to an Intranet. These types of value-added applications that allow employees to actively contribute content to Intranets will encourage employees to view your Intranet and participate in sharing knowledge and information. This is much better than the centralized content controlled sites that most Intranets are today.

One of IBM’s newest products targeted at the enterprise is Lotus Connections. This is a product that aims to bring Web 2.0 and social networking into the enterprise. The product includes blogging, social bookmarking, wikis, communities, user profiles, and social networking features. IBM is not alone in thinking about the value that these products have. Smaller vendors in this space include HiveLive, SocialText, and Thought Farmer.

There are new and different types of Web 2.0 and social networking sites coming online nearly everyday. Every time I come across a new site, I always imagine how much that site could contribute to the collaboration and knowledge sharing environment and ultimately to the productivity of teams inside of a company. I believe that we are on the brink of seeing more and more Web 2.0 technologies entering the Enterprise. These applications can allow an enterprise to capture more of the ad-hoc and tacit knowledge that typically is not well managed in a large organization. If you are in a position of influence, you should start thinking now about how these technologies can make your own organization more productive. If you are interested in learning more about Web 2.0 in the enterprise, an excellent blog to follow is the Enterprise 2.0 blog from Dion Hinchliffe.

Tags , ,  | no comments

Online Rails Development with Heroku

Posted by Timothy Fisher Mon, 17 Mar 2008 01:11:00 GMT

Heroku is a web application that provides a complete environment for writing Ruby on Rails powered web applications. With Heroku you get both a development environment and a hosting platform. Each application that you create with Heroku is also assigned a unique URL that you can use to access it.

Heroku has plenty of gems and Rails plugins pre-installed and available to any Rails application. However, if you want to use a gem or plugin that is not already installed, you can do that also. It is simple to install any gem or plugin into your Heroku Rails application. You can also upload a complete Rails application that you developed locally, into the Heroku environment. The opposite is also possible. You can export an application that you developed inside of Heroku and download its source to your local computer. As you write migrations, they are automatically detected and run without any manual intervention. You also get a built-in console for running any rake tasks that your application has. A built-in Rails console is also provided in a browser window.

Heroku also recently added an API that allows you to develop your Rails application locally on your computer and deploy to Heroku remotely through the Heroku API. The source code version control system that Heroku uses to store your source code is also exposed. The version control system used is GIT. If you have GIT installed locally you can directly access your application’s source code and make commits against it. When you want to deploy back to the Heroku servers, you do that through the Heroku API.

Heroku is probably not the host you’d select for deploying a production Rails application, but it can be a satisfactory development environment, and an excellent platform for learning. In a training environment, students would be able to develop a complete Rails application using only the Heroku web application without having to install any software on their computers. It is also easy to collaborate on an application using Heroku. Once you create an application, it is easy to add other users as collaboratorsruby who also have access to the application’s source code. Overall, I think this is a great tool that can help more people get exposure to the Rails platform.

Tags ,  | no comments

Three Great Books for Learning and Mastering Ruby on Rails

Posted by Timothy Fisher Sun, 09 Mar 2008 03:54:00 GMT

I tend to read a lot of technical books. My current passion is with the Ruby programming language and the Rails web application framework which is built on top of the Ruby language. I’m also a published technical author myself. The book that I am currently writing is the Ruby on Rails Bible which will be published by Wiley this spring. However, since that is a few months away still, I thought I’d share some reviews of some current Rails books that I find to be excellent learning and reference resources. The three books that are reviewed here are:

Two of the books RailsSpaces, and The Rails Way, are in the Professional Ruby series. Obie Fernandez, author of The Rails Way is the lead editor for that series.

Rails Space

This is a book that walks through the complete implementation of a social networking web application developed with the Rails framework. A hosted version of the application developed throughout this book is available online at www.railsspace.com. The authors of this book are Michael Hartl and Aurelius Prochazka.

This book is essentially an extended tutorial that is developed throughout the book. Some of the topics touched on while developing the Rails Space application are user authentication, image uploading, geo data, email integration, Ajax, and Restful development. As the application is written, tests are also written as each component of the application is finished. This provides excellent practical material on writing tests for your own Rails applications. You’ll find many of the techniques that the authors show you for creating tests and testing various pieces of the code to be very useful in your own projects.

Overall, I found this to be probably the best book available of its type, that is a book which serves as a tutorial focusing on the development of a large sample application. I highly recommend this book to any developer getting started with Rails. Even experienced Rails developers will enjoy this book.

The Rails Way

This book provides probably the most complete coverage of the Rails framework of any book currently out. This book is also the first book that I am aware to provide coverage of Rails 2.0. The author of this book is Obie Fernandez whom is one of the most respected Rails developers in the industry. Obie recently started his own Rails consulting firm, Hash Rocket.

The book provides excellent in-depth coverage of a wide range of technologies related to Rails development including Rails core technologies like Controllers, ActiveRecord, ActionView, the Rails routing system, Helpers, REST, Ajax, Session Management, Authentication, ActionMailer, ActiveResource, Rails Plugins and Testing. Technologies that are complementary to Rails are also covered in-depth including: testing with RSpec, Capistrano, background processing, plugins, and production configurations. The chapter on production configurations provides an excellent overview of what is necessary to get a Rails application running in a production environment. It includes example configurations for Mongrel and Nginx for serving your application and Monit for monitoring your application.

Unlike some other Rails books, this book assumes a knowledge of Ruby and does not waste pages with a long Ruby introduction. In my opinion, that is a good thing. If you are interested in learning Ruby, this book is not the best choice for you.

The book’s afterword is titled What is the Rails Way (To You)? Be sure not to skip that if you read the book. This chapter provides a collection of thoughts from a bunch of Ruby and Rails developers, quite a few of whom you will have probably heard of if you keep up with the Rails community. I found it to be a very interesting and insightful chapter.

The Rails Way is also a nominee as Best Technical Book in the Jolt Awards competition. Overall, if I could buy only one book about Rails, this would be the book.

Practical Rails Projects

This book takes the reader through several practical examples of web applications that showcase the features of Rails. The book provides a very practical way of extending your Rails development knowledge once you’ve mastered the basics of Rails development. The author of this book is Eldon Alameda. The applications that you will build over the course of the book are:

  • To-Do list manager
  • Exercise/Fitness tracking application
  • Blog
  • Gaming community site

Like the other books I’ve included in this review, no pages are wasted on a Ruby introduction chapter. Instead this book assumes a knowledge of Ruby and jumps right into building each of the sample projects. Throughout the course of implementing these applications, you’ll use several popular Rails plugins as well as some features from popular JavaScript frameworks, YUI, and ExtJS. These JavaScript frameworks are excellent compliments to the Rails framework. The book is best read from start to finish, as in some cases each of the projects builds on functionality or features developed for an earlier project.

This book does include unit testing as well, though it does not emphasize it as much as the Rails Space book does. Some of the technologies that you’ll see in this book are: developing web services, Restful development, graphing, caching, and file upload. Some of the plugins that you’ll use throughout the course of the book include: acts_as_authenticated, calendar_helper, restful_authentication, css_graphs, ziya graphs, will_paginate, and attachment_fu.

Overall, I found this to be another excellent book that can be read from cover to cover. Both new and experienced developers will learn something from this book.

Tags , ,  | 1 comment