Showing posts with label Ruby on Rails applications. Show all posts
Showing posts with label Ruby on Rails applications. Show all posts

Monday, March 21, 2011

Less is more for Ruby on Rails, inventor says

The goal is to keep Ruby on Rails fast, lightweight and easy to use, characteristics that have helped it become a trendy alternative to Sun Microsystems Inc.'s Java and Microsoft Corp.'s .Net, and led to a raft of companies offering Rails development services for businesses.
"We're going to pull out a fair number of elements, features that aren't a good fit for what people want to do most of the time, and make them plug-ins instead," Heinemeier Hansson said in an interview. "If your application absolutely depends on them you won't be stranded, you'll be able to get the plug-ins easily."
Among the elements to go will be Action Web Service, for creating Web service APIs using SOAP (Simple Object Access Protocol), Hansson said. It's a way of steering developers towards using REST (Representational State Transfer), his preferred method for linking applications in Rails.
"We don't want to turn into Java -- this pack rat that just holds onto any possession. We're not afraid to take out stuff that's not relevant or that we plain don't like," he said.
There will be some additions -- the Rails team has some "pent up stuff" in the repository that it's keen to push out, he said. But the focus of Rails 2.0 is to "consolidate and sharpen" what's already there.
Keeping the framework light and simple comes at a price, however, and many companies are jumping in to offer Ruby on Rails packages that bundle tools and plug-ins to make the framework more suitable for demanding business needs. Many of those products will be on show at RailsConf 2007 in Berlin in two weeks.
Borland Software Corp.'s CodeGear division is expected to release its Ruby on Rails Java IDE at the show, Heinemeier Hansson said. The product is based on the Eclipse platform and has been in beta since May. Sun Microsystems Inc. will likely give an update on JRuby, an implementation of Ruby for Java environments.
The vendor support helps quell jitters among corporate users that Ruby on Rails is not backed by a large company. If the prominent support of Oracle Corp. and IBM Corp. helped get Linux in the door at big enterprises, the support from Sun and IBM for Rails could do the same.
Java and .Net have become "bloatware" as vendors add features for every possible business need, causing companies to look at alternatives, according to Cyndi Mitchell, managing director for ThoughtWorks Studios, which offers software and services for Rails development.
The rise of Rails is as much a matter of timing as anything, she said. "This bloatware stuff has just ground to a halt and the alpha geeks are veering away from anything they don't need to get their work done. At the same time the IT business cycle is picking up and people are willing to invest again in new things," she said.
Her clients are telecom, media and finance companies looking for a fast turnaround for new applications. Most are deploying in native Ruby environments, but it helps that Sun is supporting JRuby, she said, which lets companies deploy Rails applications on existing Java servers.
Jonathan Siegel, founder of Rails consulting company ELC Technologies, said applications that would take eight to 10 months to develop in .Net can be up and running in four to six months using Ruby on Rails.
Still, at three years old Rails is a young platform and has limitations. One high-profile user, the Twitter social networking site, caused a stink earlier this year by complaining that Rails didn't scale well across multiple databases, and that the underlying Ruby language is slow. The open-source community responded by developing a plug-in to address the scaling issue.
Some also say that both Ruby and Ruby on Rails need a stronger hand to steer them, to prevent multiple implementations leading to compatibility issues. "The major risk for the future and longevity of Ruby, and by association Rails, is whether or not the platform gets splintered," Mitchell said.
Siegel said: "I believe Ruby on Rails will overcome a key milestone when the deployment teams at larger organizations feel at home with the deployment side of a Rails application. In my view that's having a deployment procedure that's as easy to maintain and monitor as for a .Net or a J2EE application."
Heinemeier Hansson is nonchalant about the demands. He developed Rails for his own use and not to make money, he says, and if enterprises want to use his framework it is they who should adjust, not he.
"We're not trying to bend Ruby on Rails to fit the enterprise, we're encouraging enterprises to bend to Ruby on Rails," he said. "Come if you like it, stay away if you don't."

10 Reasons why – Ruby on Rails

Your development team has been frustrating you, projects start and four weeks later the development team is still developing the framework, your budget is running out. You want productivity but just don’t know how to get it. Is there an answer? One of your developers keeps mentioning this great framework called ‘Ruby on Rails’. Is this the answer? This article discusses the positives and the negatives in moving to this new technology. 

1. Ruby on Rails provides a consistent approach to building web applications with an out of the box architecture. Traditionally starting a new web application is a fairly heavy weight process, you typically need to survey and choose your various software components to solve the common architectural problems of persistence, logging, build scripts, application configuration, web tier components and workflow. With the Rails framework these decisions are already made for you, so you can get on to understanding the business problem and quickly build a working system. You become productive in minutes not weeks or months. 

2. In a Rails application, a pragmatic philosophy of convention over configuration is taken, this is apparent in all layers of the architecture with the highest productivity gains noticeable in the relationship between the model and the database. Once the developer understands the rules and constraints, Rails magically connects your view to your controller and model, and your model to the database. You don’t need generators or specialised tools to manage this, it all just works. 

3. Unlike other productive web scripting languages, Ruby is a fully featured object-oriented language. Ruby also adds additional power with mix-ins modules which contain independent code to inject into your classes, blocks and closures simplifying client code behaviour. Its dynamic nature gives it power beyond static languages such as .NET and java, and the benefits are apparent by how the Rails framework has been put together itself.

4. Unlike other web templating technologies, the templating technology built into Rails can be used to generate web pages, emails, xml documents or any text document that requires dynamic content.

5. Rails includes a well thought out object relationship mapping tool, ActiveRecord, which provides your answer to database persistence. Your model is seamlessly persisted to the database. Transactions, inheritance models, validation, and caching have all been thought out and are production ready. With Rails you become a lot closer to the structure of the database than traditional object-oriented development methodologies. This is a good thing as over time as the database will no doubt end up being your project’s most valuable asset.

6. Rails includes support for a variety of web technologies. Every web application needs email integration at some point and Rails provides an out of the box smart solution, and as with other Rails technologies it gives you the complete package down to configuration in development, test and production environments. Ruby on Rails also supports web services, the integration with Rails due to the dynamic nature of Ruby is simply, clean and seamless. If you are moving into the Web 2.0 space, Rails provides a rich abstracted interface to implementing AJAX operations.

7. Generally software projects do not mature if at all to the point of having a solid foundation to perform database migrations and rollbacks between environments and across development systems. However with the Rails framework you will be delighted with the implementation of database migrations for applying and rolling back database changes. You enter your update and rollback scripts in Ruby, Rails understands the current version and can move forwards or backwards to any database version. 

8. For development productivity, the shorter the gap between the change and test cycle the better. In Rails, changes are reflexed immediately within the runtime environment so developers can quickly iterate between fix and test cycles without any expensive redeploys. Ruby code is also easily testable. Methods and objects can be replaced at runtime so software components can easily be tested without resorting to external tools or generators.

9. Getting started with Rails is easy as generators will propel you along. An experienced Rails developer will also become aware of numerous idioms available within the Rails framework that shared the amount of code a developer need write. Overall less code to write means lower complexity, higher productivity and less bugs.
10. Ruby has been around for a long time, the Rails framework which has deservedly propelled Ruby into the spotlight has hit version 2.3 and is not only production ready but now well supported in the community and a stack of resource available on the web. Ruby and the Rails framework is open source and well supported by a clever team of contributors.

*So what are some of the cons?*
1. If you take time to follow the Ruby examples and tutorials it may give you a false sense of productivity. They typically follow the formula of creating a database model, configuring a connection to the database and joining it up to the model controller and view by use of the generators. This is all very simple involving a dozen or so lines of code. In the real world however you will be working at higher level of complexity and will need to understand multiple facets of Ruby and the Rails framework to be productive in churning out business functionality. You will need to invest in getting up to speed with the language and framework. As Ruby is a dynamic language, more automated testing is required. Your developers will need to become more disciplined and rigorous in creating unit tests as part of their development process. 

2. If the type of development you are doing is glueing together existing systems or building back end systems, be aware that Rails is optimized for building web applications, your host system or enterprise database may not have the integration module you require for Ruby UPDATE (2010) – however JRuby is now maturing and can plug the gap by leveraging legacy java libraries and provide a lower cost to more enjoyable path to legacy integration. DSL’s can be engineered to remove the laborious code java developers are use to writing.
After considering the pros and cons, my advice would be that if your business or application has tight timelines, you want a more powerful web application for your buck with alone with inbuilt tools which remove the pain and setup cost of an IT project to seriously suggest considering investment into the Ruby on Rails framework.

Sunday, March 20, 2011

Ruby on Rails - CMS (POPULAR)


When you look at the open source content management systems out there today, you'll find a ton written in PHP, some written in Perl and Java, and a small collection written in Python.
There is also another small OS CMS market — those written in Ruby on Rails (RoR).

Mephisto

Mephisto is currently on version 0.8.2 and is described as a "blog engine with some simple CMS-ish concepts (sections, pages), a very flexible templating system, and an aggressive caching scheme."
The project appears to be working toward a .9 release with RoR 2.3 support, and is released under a custom license.
Features include:
  • CMS concepts such as sections and pages that you can apply within your blog
  • A custom templating system
  • ATOM feeds
  • Support for multiple markup languages
  • Independent layout and customization for each section

Radiant CMS

Radiant CMS is currently on version is 0.7.1 and is described as a "no-fluff, open source content management system designed for small teams." This is one of the more active Ruby on Rails open source CMS projects, and is released under the MIT license.
Features include:
  • Flexible site structure, arrange your pages according to any hierarchy
  • A macro language for building templates
  • Custom text filters for markup languages
  • Intelligent page caching
  • Layouts that can be applied to page sub-components
  • Snippets of text that can be used in multiple places throughout your content

Seymore

Seymore is currently on Revision 35 and is described as "a very easy to use content management system that handles multiple revisions and revision publishing."
Features include:
  • Contextual content management
  • Page revision tracking
  • Workflow
  • Rollbacks
  • Drag and drop page re-ordering
The current project leader, Thomas Mango, says that he has no problems fixing bugs or working on new features, but that he hasn't added new features to Seymore as the system does exactly what his clients need. This project is released under a custom license.

Typo

Typo is currently on version 5.3 for Ruby on Rails 2.2 and is described as "the oldest and most powerful Ruby on Rails blogware, providing custom templates, powerful drag and drop plugins API, advanced SEO capabilities, XMLRPC API and many more."
This appears to be one of the more active RoR open source CMS projects. Its features include:
  • Customizable SEO interface
  • Individual user dashboards
  • Two types of content, articles and pages
  • Category support
  • Tag manager
  • Customizable themes
Typo is released under the MIT License.

Ruby Rocks?

All in all, most of the Ruby on Rails open source CMS offerings are still in an immature stage, built to scratch the itch of one or a few developers. Still, these are all in use on production sites.
Perhaps the biggest barrier for people interested in trying these content management solutions is getting used to working with Ruby on Rails. Installation for each is documented in at least a basic fashion. The communities around these tools are small, so finding help may not be as easy as with other open source CMSs. But for those interested in this specific technology, these options may be exactly what you're looking for.

Ruby on Rails Real World Applications (Examples)



Basecamp
Basecamp:
The original Rails app.
Twitter
Twitter:
Stay connected.

Yellow
Pages
: Find it locally.
Github
Github:
Git repo hosting.

Sortfolio:
Find a web designer.

Hulu:
Stream TV & Movies.

Geni:
Find your ancestors.

Backpack:
Personal organization.

43things:
Your goals in life.

Justin
TV
: Live video.

iLike:
Find more music.

Streeteasy:
Find a place in NYC.

Bumper
Sticker
: Facebook app.

Inkling
Markets
: Trade the future.

Revolution
Health
: Get healthy.

New
York Jets
: Play ball!

VitalSource:
Shopping for books.

Blinksale:
Easy online invoicing.

Blurb:
Print your own book.

Tobi:
1-1 shopping.

Lumosity:
Train your brain.

Lacoctelera:
Spanish blogs.

Urban
Baby
: Hey junior!

Metrotwin:
London meets NY.

43places:
Go somewhere.

Iconbuffet:
Shop royalty-free icons.

Get
Satisfaction
: Customer service.

Penny
Arcade
: Comics for gamers.

Blingee:
Fun photos.

Bleacher
Report
: Keep score.


Campfire:
Group chat.

Zendesk:
Customer support

Odeo:
Find. Play. Enjoy.

Pragmatic
Bookshelf
: Learn more.

Soundcloud:
Move music.

Xing
Marketplace
: Reach pros.


Qype:
Guide to the UK.

Moviepilot:
German movie DB.

pkw.de:
Find a car.

AboutUs:
Website guides.

Rate
My Area
: Best local stuff.

Emptees:
T-shirt art.

Jango:
Free internet radio.

Urban
Dictionary
: Define your slag.

Kongregate:
Play free games.

Shopify:
E-commerce made easy.
Lighthouse
Lighthouse:
Simple bug tracking.
Groupon
Groupon:
Daily deals.

Ravelry:
Knitting community.

Scribd:
Books, presentations, more.

Chow:
Food, drink, fun.

A
List Apart
: 'zine for web devs.

Mingle2:
Get a date.

Cookpad:
Japanese dishes.

Spock:
Search for people.

A
Better Tomorrow
: T to the shirt.

Oracle
Mix
: Shape the DB.

Highrise:
Prepare for business.

Tadalist:
Share simple todo lists.

43people:
Meet someone.

Insider
Pages
: Find local businesses.

Seeking
Alpha
: Stock market site.

iseekgolf:
AU's #1 golf site.

Freckle:
Time tracking.

SUSE
Studio
: Build your distro.

Smart.fm:
Language learning.

DaWanda:
Designer goods.

Writeboard:
Write, revise, compare.