hello. i am greg bell: a software engineer, designer, web product geek and entrepreneur.

Active Admin 0.3.0: What’s new?

Last night, we released Active Admin 0.3.0. Thanks to all 35 developers who worked hard and put together the 325 commits that make up the release. So what's new?

Internationalization

Active Admin now supports 10 languages:

  • English
  • Danish
  • Spanish
  • French
  • Italian
  • Polish
  • Portuguese
  • Russian
  • Chinese

If your language of choice isn't listed, it's easy to add it. Simply fork the project (create a new feature branch for the new language) and add a language yml file to "lib/active_admin/locales". Send us a pull request and we'll make sure to merge it in.

Customizable CSV

On resource index pages, Active Admin provides a downloadable CSV file. In 0.2.2, the CSV file was populated with all the attributes of your resource. Now in 0.3.0, you can customize the fields creating stellar reports for your customers with very little effort.

For example, to customize the CSV output for a product, you could:

ActiveAdmin.register Product do
  csv do
    column :id
    column :name
    column("Category"){|product| product.category.name }
    column("Purchased Count"){|product| Invoice.purchase_count_for(product) }
  end
end

New Datepicker Styles

Active Admin Datepicker

Our design team (Matt VagueGideon Baldridge) worked hard this version, updating styles and visual CSS bugs across the app. One nice update is the datepickers.

For usability purposes, the new datepickers sport an icon right in the html input. This helps differentiate fields that will have a calendar popup from fields that are for user input.

To use the field, simply add ":as => :datepicker" to any form input in your app.

Blank Slates

In 0.2.2, when a user visited an index page for a resource whose collection was empty, the user would see an empty page. Now, the user gets a nice message with a link to create a new one (assuming the new action is implemented).

Here's an example of the default blank slate for a Post resource:

AA-blank-slate-2

Menu Item Updates

Resource's menu items sport some new features also. You can now show and hide menu items at runtime using the :if option and set the order of menu items using the :priority option.

For all the available options on menu items, take a look at the documentation: Customize the Menu

Collection & Member Actions Render within Layout

It's easier than ever to make completely custom pages in Active Admin. Custom member or collection actions can now render within the standard Active Admin layout. You can implement your own views in the views folder and they will "just work". You can even use the ".arb" file extension and get access to the beautiful Arbre syntax provided from Active Admin.

For complete details on rendering custom actions in Active Admin, check out the documentation:  Custom Controller Actions

Rails 3.1 Support

Active Admin now supports Rails 3.1.0.rc6 and we'll update as soon as 3.1.0 is released to ensure compatibility. There was a lot of work put in to use the new asset pipeline, which makes it far simpler for Active Admin to keep it's assets up to date in your application. I'll probably write a whole post about this topic, so I won't bore you with the details here.

A ton more...

This is by no means an exhaustive list of all the new or fixed stuff in Active Admin. If you want to see all the details, take a look at the changelog or checkout all the commits since 0.2.2.

New Documentation Site

In tandem with the Active Admin 0.3.0 release, we've launched a new documentation section at activeadmin.info. It's still a work in progress, but it has a whole new structure that allows it to grow to meet the documentation needs of the project.

So, what's next?

Although this is a great release for Active Admin, there's lots more to do! First and foremost there's still some important bugs to deal with including a memory issue in development. Along with these stability updates, a whole bunch more documentation is needed. So if you're into that type of thing, we could use your help!

In terms of features, we're currently triaging the issues at which point I'd like to post a roadmap for the next few months. This way, we can have a public picture of where the project is heading (instead of it just being in my head).

The most commented feature request is definitely support for multiple ORMs, not just Active Record. I hope to put together a plan over the next week to start development this feature.

Thanks again to everyone who has contributed to Active Admin. We're well on our way to creating a great little community of passionate Rails developers.

Active Admin: The admin framework for Rails

activeadmin-logo-white

This week we launched Active Admin, an administration framework for Ruby on Rails. It's been in the works for many years, but finally came to fruition as an open source project over the past year and half.

Active Admin started about 3 years ago at my consulting company, Orange Peel Media. We built a set of reusable components called The Citrus Modules. These modules spanned both front and back end, however the biggest productivity gain we found was in abstracting an administration site that didn't suck.

Originally, we assumed a CRUD based representation of the database would suffice for administration. What we quickly learned was that the current tools and approaches were difficult for non-programmers to use.

Typically the requirements for administering a production application far exceed CRUD. Our customers needed things like reporting, internal notes and commenting, filtered list for operations staff to review, dashboards for decision making, show screens for reviewing data, and a thousand other small features specific to the given application. On top of all these requirements, our customers (who are not programmers) needed to be able to use it.

Fast forward 2 years and I found myself at VersaPay where we ran into the exact same issues. We needed tools that developers could quickly build, but be usable by our operations staff. We needed tools that gave us the flexibility to build the administration tools we needed.

So, in our spare time, we designed and built Active Admin. A new framework for building applications using Ruby on Rails.

Although Active Admin is a framework for generating administration interfaces, really its just a new abstraction on top of Rails. It takes the framework one step further and drastically reduces development time for certain types of applications.

I could not be more excited about the response from the community so far and I can't wait to see where we take Active Admin in the future. Thanks to everyone who has helped pull the project together.

Stay tuned because I'll be posting lots more about Active Admin's internals, design and roadmap over the coming weeks.

30 Day Trial: Only Open Source

On Monday, I've decided to embark on a new 30 day trial: I will use only Open Source Software (including operating system) for 30 days.

Wait, wait, wait... Huh?

Alright, let me back up a bit. First, what's a 30 day trial? A 30 day trial is a method of creating new habits. It enforces that you try something out for a full 30 days, then evaluate and decide whether the habit is worth keeping. I've done this many times in my life with the most un-expected success being that I became a vegetarian for 3.5 years.

This process forces you to deeply understand the habit, and make a clear decision as to whether it impacts your life in a positive way or not. I find it to be a great framework for learning and evolving my understanding of potential habits.

Why?

I've been using open source software in my work life for a long time. I program in open source languages. I develop on top of open source frameworks. We deploy to open source environments running open source software and open source tools. I see and understand the benefits of the open source communities which develop and maintain these projects, but what do I do to give back?

Both myself and Orange Peel in turn have decided that we need to do more to get involved in the open source communities which we rely on. While we have many plans on how we're going to do this, I would like to do a full evaluation of using an open source operating system on my primary machine.

The purpose of the trial for me is to dive into a bunch of new software, then evaluate that against my current stack. Who knows, maybe I'll love and embrace Linux or maybe I'll quickly run back to Mac OS in 30 days. Either way, I will complete the 30 days and gain a bunch of knowledge about what works best for me.

What I'll Use

Screen shot 2009-11-06 at 7.31.26 AM

For this trial, I'm going to use the brand-spanking-new Ubuntu 9.10. I currently run a 15" 2.66GHz Intel Core 2 Duo MacBook Pro as my primary machine. I'll continue using this machine, however I will dual boot Ubuntu.

Things I'm Going to Miss

Textmate: I spend most of my day in Textmate. I love textmate and have amassed an army of snippets that make me productive. I plan on starting off using GEdit on linux (mostly for ease of transition) but have also been evaluating if I want to spend the time ramping up on Emacs.

Launchbar: I hate using folder structures and the mouse. I love Launchbar. It has amazing functionality and is so easy to build plugins for. I'm going to try out GNOME Do, and hope it can fit into my workflow. This may be the toughest piece to get used to for me.

Mac OS X: I've been using Mac OS exclusively for the past 6 years. I've come to love the simplicity of the design and colours. However, I'm excited to try something new to either re-kindle my passion for OS X or understand the shortcomings of the operating system.

Here We Go

I plan on writing here a fair bit about my transition as well as ups and downs of using Ubuntu. Here's to hoping things go smoothly!

Ryan Singer on Simple Design

UI that looked sexy in Photoshop almost always looks overdesigned when we try it for real in the browser. Here’s a hypothesis. Simple and useful designs just don’t seem good enough when they are dead pixels. They need to be brought to life before they can be appreciated. Until that happens we overcompensate with garnish.

Ryan Singer, 37 Signals, Signal vs. Noise

Could not agree more!

On File Systems

File on Desktop

For the past 15 years (the age of the web), we've slowly been moving our data from our personal hard drives up onto the cloud. We've seen the proliferation of sites like Flickr and Facebook for sharing specific sets of data such as photos and contact information. We're beginning to see the reality of document generation in the cloud with services such as Google Docs and Bespin. However, these services still can't compete with the raw power and speed of editing files locally. Someday they will be able to compete. Till then, we need to evolve the file system.

The Problem

The file system as we know it hasn't changed much in the past 25 years. The technology may have incrementally evolved and details may have changed, but the core user experience and mental model has stayed stagnant. Here's a screenshot of the original Mac OS desktop from 1984.

Source: History of Mac OS

Look familiar? If you've used a computer in the past 25 years, it should. Although this over-simplification of the past 25 years of filesystem technology is a bit of a gloss-over, the fact still remains that not much has changed in the user experience of the filesystem. We still email files to our co-workers for feedback. We still make PDFs to ensure our clients can open our files. We still make files named "My FIle V1", "My FIle V2", "My FIle V3" to version them.

So what are the core elements that we are missing?

  1. Immediate sharing of anything to anybody (file or folder)
  2. Fine grained user permissions for any non-local users
  3. Document revision tracking
  4. Access to files from any computer connected to the internet
  5. Access to non-traditional file systems through web services

Many Solutions

Today, there are many services which attempt to solve the "sharing" files issue. My favourite of which is Dropbox. Dropbox offers a folder on your local machine which can be shared with registered users through a web-based UI. This allows for seamless sharing of file structures (or files) to friends, family, coworkers or another computer of your own.

Although Dropbox is a great service and solves many of the headaches of sharing files, it doesn't do so at a deep enough level. To share a file, users move it into the "Dropbox" folder then manage the permissions through a web based UI. Its a fabulous service for setting up team folders, but it isn't fast enough for ad-hock file sharing and management.

The Solution (as I see it)

The operating systems must evolve their understanding of a file system. Local files should become a cached version of a cloud based file which holds onto its permissions and content. In this sense, the operating systems defines an API for generating file structures (similar to the Fuse and MacFuse projects) and the file service providers define how the system interacts with the cloud.

For example, you may have a Google Docs account in which all your document files go. You could mount your Docs file structure in a specific location, and your computer would treat it just like local files. Giving you access to the files content and permissions.

Permissions and user rights can continue to follow the excellent UNIX model of User, Group, World with read and write permissions, however usernames must become global (instead of local to the machine). This could be implemented through email addresses as the primary login device for computers.

It will be the job of the operating system to notify the service provider when files have changed. In turn the service provider will deal with the syncing, merging and distribution of the files.

The dream for me is captured in this conceptual mockup of a simple right-click on a file.

Share-Menu

The file has some type of icon associated with it to indicate its been shared, and the list (and management of that list) of people the file is shared with. To make this a reality, a significant amount of technology needs to be built, however starting from the user experience allows for a well defined roadmap.

Moving Forward

This problem of sharing data doesn't have any easy solution. It will require many different players to come together and define a solution that will better computing as a whole, not just for any one provider. However, in the meantime, I love discussing the possibilities. Thoughts? Ideas? Suggestions? What do you want from your files?

Shaq on Twitter Ghostwriters

"If I am going to speak, it will come from me," he said, adding that the technology allows him to bypass the media to speak directly to the fans.

As for the temptation to rely on a team to supply his words, he said: "It’s 140 characters. It’s so few characters. If you need a ghostwriter for that, I feel sorry for you."

- Shaq through: When Stars Twitter, A Ghost May Be Lurking

Where does this leave the budding social marketing industry and twitter? Can a ghostwriter create a sincere voice and message that people care about on such an intimate technology like twitter?

XCode for Cappuccino

280 North, the makers of the very cool Cappuccino javascript framework (port of Objective-C) are working on a new project called Atlas, basically a port of XCode to Cappuccino. The vid below shows them building an RSS reader app in a few minutes. I can't wait to play around with this.

The Credit Crisis Visualized

Amazing video, animation and user experience work went into this video that explains the credit crisis. Here's a brief snippet from the author, a graduate student at the Art Center College of Design in Pasadena. The Crisis of Credit Visualized from Jonathan Jarvis on Vimeo.

The goal of giving form to a complex situation like the credit crisis is to quickly supply the essence of the situation to those unfamiliar and uninitiated. This project was completed as part of my thesis work in the Media Design Program, a graduate studio at the Art Center College of Design in Pasadena, California.

Found through Ryan Townsend

Proving that Ideas are a Dime a Dozen…

Hamster Burial Kits & 998 Other Business Ideas

Palm’s new WebOS based on Web Technologies

This week Palm announced a new mobile device, the Pre, as well as a new operating system named Palm webOS.

The interesting thing about the operating system is that applications written for it are developed using HTML, CSS and Javascript including a new Palm application framework named Mojo.

Adobe AIR has had some success attempting to create a similar platform for the desktop, so it will be interesting to see if this takes for Palm.

Could the future of cross-platform application development be done with HTML, CSS and Javascript?