Focused Problem Solving
Be the 1st to comment!

My favorite web development company, 37 Signals, recently added a post by one of their team members, Jason. He discussed some of the decisions and process that went into a recent functionality addition to their product Highrise. They set out to provide import functionality that their customers were asking for, but in their pursuit of a solution they got off track due to thinking too large.

Sometimes development and design teams can think too small, and not see the forest through the trees, but at other times, and I see this a lot in the IT industry, development teams think way too big. They see a problem and instead of focusing on the important issue, they attempt to provide functionality just in case they might need it some time down the road. But just in case development is very costly, and from my experience, most times that “case” never actually occurs.

The point of Jason’s post is that in this instance, not only did they waste time, but they also didn’t even provide the needed functionality, because they lost focus on the particular problem that really needed the must urgent solution.

In Jason’s words:

…don’t lump a bunch of related small problems together—it just makes one big problem. One big problem requires one big solution, and big solutions take a long time (and often don’t go right). You’re better off chopping big lumps of problems into smaller chunks until you’re able to knock them off one at a time.

Read the entire post, “Design Decisions: Highrise import“.

Web Developer Toolbar Tips
Be the 1st to comment!

I’ve been using the Web Developer Toolbar for quite some time. It’s a Firefox plugin providing the web developer with some very useful tools. Blogger Christian Watson from Smiley Cat recently wrote an article called, 10 Things You May Not Know About the Web Developer Toolbar. Christian was right, I wasn’t aware of many of the features he outlines, like viewing color information, small screen rendering, populating form fields, marking all links unvisited, and a speed report. Read all ten at his site, Smiley Cat – web design blog.

An improved view for your browser’s web page source
Be the 1st to comment!

I recently found this nice and simple Firefox plugin called View Source Chart, created by Jennifer Madden. It is used via the right-click menu, and displays a nicely formatted, color coded, and indented view of the source of the web page. Elements are also individually boxed in various containers, like for paragraphs, making it easy to find your way around the source code. You can also collapse these containers with a simple mouse click.

View Source Chart screenshot

Ruby on Rails – Terms and Concepts
10 Comments

Learning a new language and a new framework can sometimes be overwhelming simply because of not knowing where to start, and due to the large number of new terms and concepts. I hope to help ease the learning curve by presenting here a brief overview of the most common terms and concepts you will see as you begin your Rails learning adventure. I will then follow with another post called, How To Learn Rails, which will present the reader with some step-by-step suggestions for getting started.

Update: I do hope to get around to writing some helpful tutorials on Ruby on Rails, but have been overloaded with projects recently and haven’t gotten to it yet.

This is not a complete list of every term and concept, but I believe it is the right size list with the most important initial definitions.

Overview of Ruby on Rails
Ruby on Rails consists of two components. The core component is Ruby which is an object-oriented interpreted scripting language. It was created by Yukihiro Matsumoto and released in 1995. Rails is a web development framework built with the Ruby language. The framework was created by David Heinemeier Hansson, while working for 37signals on their product Basecamp, and released in July 2004.

In order to become a proficient Rails developer, you will need to learn both the Ruby language and the Rails framework, but it is such a well integrated framework that initially, you will be unaware of where one ends and the other begins.

Rails Terminology
By becoming familiar with the list below before proceeding on with further study, you’ll be more comfortable as these terms present themselves to you.

Model/View/Controller pattern
Usually referred to as MVC, this is a pattern that goes back beyond web applications, but today is most commonly used in reference to a web application. The idea behind this pattern is to have a separation in the application between three distinct functionalities: the Model, the View, and the Controller. The Model represents information that you are using in your application. In an Object Oriented language this is commonly represented by classes. The View is the user interface that is used to interact with that data. This could be an interface written in HTML, Flash, or any other technology used for the interface. The Controller responds to user interactions and in turn, performs various operations on the Model, including causing it to persist (such as in a database), be redisplayed in a different format, or any of a number of other functionalities.

All modern web development frameworks are based on MVC and Rails is no exception.

full-stack framework
A framework means the foundational functionality or the “frame” for a web development platform. This frame is usually built on top of an existing language, such as Java, PHP, C#, and in our case Ruby. This frame provides the developer with the basic functionality needed to produce a web application. Rails is a framework for Ruby, thus the name Ruby on Rails.

The full-stack term is used by the Rails promoters and community to describe their belief that the Rails framework is complete and provides the normal functionality you will need while developing the majority of web applications. Many frameworks will not provide all the functionality needed, but only the core functionality. In many frameworks, you may spend a large amount of time getting, learning, and configuring third party libraries and solutions to fulfill very important elements of common web applications. But Rails’ goal is to provide functionality for the developer to eliminate the redundant development of the same web framework tasks over and over. This includes creating the user interface, dealing with business logic, persisting data into the database, and everything in between. All of it, already working together, without the need for the developer to figure out how to configure these elements.

Read More »