Tag Archives: open source

The Rails Thing

It’s Thursday morning, and I’m in Portland, Oregon at the 2007 O’Reilly Railsconf, all about the web programming language/environment/framework called Ruby on Rails. I was introduced to Ruby on Rails by a friend/associate who I hope to be doing some work with soon – we’re part of a group looking for funding to develop some applications. I program in a few languages, mostly PHP, but agreed to learn Ruby on Rails after being introduced to it.

Ruby on Rails, it turns out, is a controversial language, in a way that is very reminiscent of the Apple vs. everything else debate. Rails enthusiasts are very attached to the platform, and adherents of Java, C, and even PHP, tend to be very skeptical, with complaints that the structure is too rigid and that the language only goes so far. They might be right – I’m not fluent enough yet to know. But there are a few definite things that have me interested in Rails.

  1. Rails abstrats the database creation and management process in a really fascinating way. Using the MVC framework — model, views, controller — you basically develop your database using plain english to describe the relationships between tables. This really works for me. To create the database, you write some very simple code that adheres to certain naming conventions, and then you can manage the database almost exclusively from the code.
  2. Once the database is created, Rails uses a method called scaffolding to automatically create forms for database manipulation. With one line of code in your controller, you can very simply grab data from multiple tables using a simple syntax. Rails makes it all very, very easy.
  3. I’m looking for a holy grail, of sorts, something that falls halfway between a programming language and a content management system (CMS), and this comes close. What can we use to rapidly develop interactive, web-based applications that doesn’t lock us into the type of assumptions that Drupal and (the current version of) Joomla do, but don’t require building the whole thing from scratch? Ruby on Rails is still a pretty complex thing for most techs at non-profits to budget the time to learn, but it’s intriguing, as is the move in the next release of Joomla to have it sit atop a Ruby on Rails-like framework (that, unfortunately, lacks the database routines).

I’m also looking at Javascript/ajax libraries – I’m in one right now on Prototype and scriptaculous, but the presenter is the developer of scriptalicious and his presentation style is somewhat coma-inducing…

OpenID Enabled

Just to put this all together, I’ve written a F.A.Q. and a How-To on OpenID and added them to the OpenID offerings here at Techcafeteria which are, in a nutshell:

  1. The OpenID-enabled Blog;
  2. The OpenID server, which I’m committed to maintaining. Techcafeteria won’t be going away anytime soon!;
  3. A new OpenID F.A.Q., which links to other OpenID resources;
  4. and a new OpenID illustrated How-to, which uses the Techcafeteria server as an example but overviews how they all work.

Why am I harping on about this? I really do think that OpenID offers a solution to a very pesky problem. I have an encrypted file with all of the logins and passwords that I keep on a regular basis for web sites and services that I use. There are over 200 of them. I might be an extreme case, but I’m far from alone. And, from my years as a technology manager, I know that most people solve this problem by using the same password at multiple sites. So if those sites include your online banking, that’s a serious risk.

But, beyond the convenience and security, I look at it this way. My goal for Techcafeteria is to grow it into a real diverse offering of web-based services, in fitting with the name. Some of these, like the blog, will be based on third-party platforms, others will be things that I develop (I’m experienced with PHP/MySQL and I’m learning Ruby on Rails – I’m even attending O’Reilly’s big conference on it in Portland this week). My goal is single sign-on, via OpenId, for everything that Techcafeteria ever offers.

It’s not a big deal doing this on my web site. It would have been a huge deal if I could have accomplished it at the large non-profit or decent sized law fIrm that I served as an IT Director for. At both of those jobs, we had a variety of systems, all tied into Novell and/or MS networks, but we still had nothing but password soup to offer our users, because the apps weren’t standardized enough to allow for true single sign-on.

At Joomla Day on Saturday, I sat in on a session where one of the core developers (Sam) demonstrated a way to share authentication between Joomla and MediaWiki. Very cool, but somewhat easy because MediaWiki stores the password unencrypted. Assuming that most sites use standardized encryption protocols (MD5 being the big dog, that’s not an insurmountable challenge. But I couldn’t help thinking how much easier this will be via OpenID. It’s not just about this stuff being possible – it’s also about allowing Sysadmins who are not also programmers to implement it.

So, end of OpenID rants, for now. I’ll be doing some live blogging from the Rails conference, and I’ll try and include some context as to why I think Ruby on Rails is an important programming environment.

A Day of Joomla (live)

I’m posting this live from the first Joomla Day West conference being held at Google headquarters in Mountainview (so, yes, wireless is reliable!)

This is an interesting event – an “un-conference” as Ryan calls it, which falls somewhere in the territory of a traditional conference, a town hall meeting, and, maybe, the Phil Donahue show, as emceed by the always entertaining Gunner (of Aspiration fame).

It’s about halfway through the day, and continuing through tomorrow, but I won’t be able to come back, because that would incur the justified scorn of my son’s mother, who expects me to not be a computer geek on her day. There are 100 or so people here from many corners of the earth (well, the Americas and Europe are healthfully represented) and associations to Joomla that range from a tiny non-profit thinking about using it to the core development team. Joomla, for those who don’t know, is a popular open Source Content Management System (CMS) with a huge developer community, making it very powerful and popular. It has it’s roots in a CMS called Mambo.

The big topics are:

  • The upcoming Joomla 1.5 release, which is a dramatic rewrite of the application that will make developers (like me) very happy. They have exposed a programming framework that could develop into an environment all it’s own, and they’ve made changes to the templating that allow for powerful customizations.
  • The move to more strictly enforce GPL compliance. The GNU General Public License is designed to offer users of GPL applications much freedom,with restrictions on how the code can be redistributed that insure that the community will share in all enhancements. The Mambo/Joomla developer community apparently includes many add-ons that aren’t compliant with this, and the Joomla team hopes to (appropriately) bring them back to compliance.

This is a seriously fun event with group activities intersperced with break out sessions, and a kind of “this is being made up as it goes along” agenda. Next up: speed geeking! which Gunner describes as “like speed dating, but completely different”.

Free as in "Hurricanes"

As NPTech community members have heard, a brilliant metaphor was coined the other day by Karen Schneider in her excellent article titled IT and Sympathy:

“Free as in kittens” (as opposed to the popular “free as in beer”).

It’s not a hard sell to tell the average executive that open source, or donated Salesforce.com licenses, or volunteer labor isn’t exactly free of cost. But “as in kittens” really says it well, implying the commitment and caring that need to be applied to critical IT investments, regardless of the license terms.

I think Salesforce.com‘s offer of 10 free licenses to any 501(c)3 is a great example of this. Salesforce rises to meme status in the NPTech world these days, with their corporate philosophy that 1% of their people. product and profit should be donated to non-profits. I could write another blog entry on all of that – but I’ll boil it down to this: one part “Great ethic to model” and nine parts: “Only 1%?!?“. But anyone who thinks for a second that taking Salesforce up on their offer has no budget impact, well, right away you’ve cost your organization every minute that you’ve invested in a project that’s doomed from the start. CRM doesn’t deploy itself – a successful CRM strategy generally involves dramatically altering your corporate culture. Is it worthwhile? For people-based organizations, like non-profits, that’s a general yes. But is it free? No way.

Any major technology project has potential for gigantic leaps in productivity and success or flat out disaster. A key skill for any of us who manage tech is fiasco avoidance. Fiasco avoidance has far more to do with company culture, planning and politics than it does with the actual technology. Salesforce offers a powerful, flexible system that can do incredible things for you. But Convio/Kintera, Raiser’s Edge, or ETapestry might do exactly what you need and are ready to take advantage of out of the box. Software evaluation for strategic projects requires an organizational readiness assessment right along with the product evaluations. Lots of things in life are free, but the “as in” modifiers tell the story.

Seven Questions For Peter Campbell On Open APIs

This interview was conducted by Holly Ross and first published on the NTEN Blog in July of 2006.

What’s an Application Programming Interface (API)?

APIs are the code in any application that allows for the customization and migration of information in and out of the program’s data store.The API allows your application to interface with other systems in the same manner that a door or data line allows your home to interact with the world around it. APIs were originally developed in the telecom industry, as the need to have computer applications that integrated with telephone systems arose.The concept quickly expanded as a method for companies to merge information in their major systems, such as Finance, Human Resources Constituent Relationship Management (CRM).Common examples of APIs include: importing and exporting data in and out of donor databases; and merging data from multiple sources via the Web, such as gas prices overlapped with Google Maps.Sites that use Google or Yahoo!’s API to merge data are commonly called “web mashups.”

Why would a nonprofit use an Open API?

If you want to do a mailing and your constituents’ addresses lie in multiple systems (donor database, Outlook, Excel, Access), then an API could be used to quickly merge them into one address list.As grant reporting requirements become more stringent, funders want to know what percentage of labor goes into direct service versus overhead, what portion of supply expense is put directly to mission-related use, and what percentage of volunteer time was put to field versus office work.Generating this report requires integrating data from multiple data sources.An API can help automate that task.

What is an Open API, as opposed to a closed one?

An Open API is one that does not restrict you.It gives you full access to your data and the application interface to support your customized needs. A closed API restricts your ability to work with your data.The difference between open and closed APIs is one of degrees, not either/or.The less an application allows you to do with your data, the more closed it is.

Are Open APIs features of Open Source Applications?

Not necessarily.Open Source software comes with code and a license to modify it.An API is an intermediary set of rules that allows you to do customization and integration, even if the source code is encrypted, as with most commercial applications.

Why are Open APIs controversial within the software industry?

Customers often want software that will not lock them out as organizational needs grow and change.Software selection has to be tied to strategic planning, and products need to be adaptable to unforeseen needs.This doesn’t rule out purchasing Microsoft or other (relatively) closed systems, as there can be strategic and economic advantages in standardizing on a vendor.But you need to do so in full awareness of how that software platform will limit your integration and reporting.There are commercial products, such as Salesforce.com, that have wide open APIs, because Salesforce operates on the philosophy that they should not restrict their customers from using their own data as they choose.

How does a nonprofit use APIs if it doesn’t have technical staff with API skills?

There are many programming resources in the nonprofit technology community who will develop low-cost or free applications that work with the API (again, see Salesforce as an example – the AppExchange is a rich collection of free, low-cost add-ons, with many targeted at our community).Look at the work being done with CivicSpace/CivicCRM to support APIs and integration.Even if the actual use of the API is not an in-house function, the existence of an API for a product or web service is still critical.

Should nonprofits advocate for the availability Open APIs among software firms that serve the nonprofit sector?

As funders and constituents demand more accountability from nonprofits, and as nonprofits want to better operate our businesses, it’s more important than ever to have commercial applications that are open to integration with APIs.In the nonprofit community, standardizing on one platform and developing it (the Enterprise Resource Planning (ERP) approach) is often far too ambitious – we lack the funding and resources to make that huge an IT investment.So key to our ability to operate in the information age is our ability to integrate data between our various applications.It’s important that nonprofit leaders encourage software firms that serve the nonprofit sector to make Open APIs available.

Peter Campbell is the Director of Information Technology at Goodwill Industries of San Francisco.