techcafeteria

Techcafeteria Blog

Rails Wrap-up

So, I came to this Rails conference looking for a few things. It’s not over, but I think I’ve got a good sense what I’ll walk away with tomorrow.

I started to learn a bit about Rails while considering joining a software start-up (in the non-profit space). I spent a month hammering away with a few O’Reilly books and a sample project, then got pulled away by real world concerns like starting up my new career fast so my family won’t starve. I got far enough to get the concepts and philosophy, master the innovative database management (activerecord), and start an app that I plan to finish and publish as part of Techcafeteria someday. Along the way, I loved the rapid development features and recognized Rails as a bit of a conceptual leap in programming/scripting, that values efficiency of following conventions over coding. Being oriented toward finding the fastest paths to the best results, I was also intrigued by how Rails builds Ajax functionality into the code (I just never bothered to get beyond the basics of Javascript, preferring server-side programming, I bias I now regret…) But I also grew concerned about the platforms speed and scalability, concerns that my friends at Social Source Commons (SSC) would second, I suspect.

So, the four areas that the conference could have helped me with, and how it did:

  1. Learning more of the scripting language. Not so much—maybe a referral to the book I’m missing that will glide me right over that hump.

  2. Ajax intro – pretty good. I attended a few sessions on Prototype and Scriptaculous that gave me a far better handle on how they work .

  3. Ruby Scaling—an awesome session on the proxy cache and other options out there to speed up Rails, with pointers to what bottlenecks it. This was likely the most valuable thing, and I’ll be contacting Gunner to offer to take a look at the SSC platform and see if we can apply some of what I learned.

  4. Where it’s going, as I reported on yesterday. Among web scripting languages, PHP and ASP/.NET are the kings today. My prediction is that Ruby on Rails will eclipse them, and gain broad adoption among web 2.0 developers and corporations looking for in-house app development tools. The main limitation – performance – is being addressed and will be fixed, no question.

The benefit of having a functional application roughly 60 seconds after you think of a name for it is phenomenal, and the developers are completely geared toward continuing to make it the out of the box solution for speedy delivery of standards-based, current tech web applications.

Share/Save/Bookmark

Instant Open API with Rails 2.0

Day 2 at the Ruby on Rails conference – after the Keynote.

My main focus is on technology trends that allow us all to make better use of the vast amounts of information that we store in myriad locations and formats across diverse systems. The new standards for database manipulation (SQL); data interchange (XML) and data delivery (RSS) are huge developments in an industry that has traditionally offered hundreds different ways of managing, exporting and delivering data, none of which worked particularly well—if at all—with anybody else’s method. The technology industry has tried to address this with one size fits all options—Oracle, SAP, etc., offering Enterprise Resource Platforms that should be all things to all people. But these are expensive options that require a stable of high-paid programmers on hand to develop. I strongly advocate that we don’t need to have all of our software on one platform, but that all data management systems have to support standardized methods of exchanging information. I boil it all down to this:

It’s your data. Data systems should not restrict you from doing what you want to do with your data, and they should offer powerful and easy methods of accessing the data. You can google the world for free. You shouldn’t have to pay to access your own donor information in meaningful ways.

How can the software developers do this? By including open Application Programming Interfaces (APIs) that support web standards.

So what does this have to do with Ruby on Rails? At the Keynote this morning, David Heinemeier Hannson showed us the improvements coming up in Ruby for Rails 2.0. And he started with a real world example: an address book. Bear with me.

  1. He created the project (one line entered at a command prompt).

  2. He created the database (another line)

  3. He used Rails’ scaffolding feature to create some preliminary HTML and code for working with his address book (one more line).

  4. He added a couple of people to the address book.

At this point, with a line or so of code, he was able to produce HTML, XML, RSS and CSV outputs of his data. The new scaffolding in 2.0 automatically builds the API. I could get a lot more geeky about the myriad ways that Ruby on Rails basically insures that your application will be, out of the box, open, but I think that says it well.

Think of what this means to the average small business or non-profit:

  • You need a database to track, say, web site members, and you want to further integrate that with your CRM system. With rails, you can, very quickly, create a database; generate (via scaffolding) the input forms; easily export all data to CSV or XML, either of which can be imported into a decent CRM.

  • You want to offer newsfeeds on your web site. Create the simple database in Rails. Generate the basic input forms. Give access to the forms to the news editors. Export the news to RSS files on your web server.

This is powerful stuff, and, as I said, an instant API, meaning that it can meet all sorts of data management needs, and even act as an intermediary between incompatible systems. I still have some reservations about Rails as a full-fledged application-development environment, mostly because it’s performance is slow, and, while the keynote mentioned some things that will address speed in 2.0, notably a smart method of combing and compressing CSS and Javascript code, I didn’t hear anything that dramatically addresses that problem. But, as a platform, it’s great to see how it makes actively including data management standards a native output of any project, as opposed to something that the developer must decide whether or not to do. And, as a tool, it might have a real home as a mediator in our data integration disputes.

Share/Save/Bookmark

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…

Share/Save/Bookmark

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.

Share/Save/Bookmark

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”.

Share/Save/Bookmark

Social Source Commotion

I was happy to be invited to participate on the advisory board for Social Source Commons, a project of Aspiration Tech’s that collects, catalogs and distributes feeds of software tools useful in the non-profit community. The social designation is no accident – anyone can sign up and contribute. The newly formed advisory committee met today, with five of us on the call – two from Aspiration (Tim, who runs SSC, and Gunner) and three community advisors – one working with an org that does poverty outreach and two community consultants: Dan, Zac and I. Our sixth member, Sharon, who works with a non-profit that provides tech solutions for the disabled, couldn’t make it.

The conversation really focused on two very different questions, and what was interesting was seeing where they might connect.

As it stands, SSC is a user-developed online database of software applications. A new feature allows users to make “community toolboxes”, so that you can design a list of, say, your favorite fund-raising apps; all the text editors for the Mac; or hosted software with the best Ajaxy interfaces. But the feature isn’t fully implemented. It’s easy to make the lists, but a bit of a challenge to find the lists that others have made. So my critique is that what is missing was context. I don’t want to just list my favorite Mac text editors – I want to discuss the pros and cons. If you program in Ruby, you might prefer Textmate to BBEdit – there’s no place in the database for that kind of nuanced information. SSC provides the tools, but not the context, except in a limited fashion with the partially-deployed Community Toolboxes.

Dan had a completely different question. Given that the tiny non-profits and the communities they work with tend to be lacking in technical expertise, how can they use a very Web 2.0 interface to help themselves out? Is SSC designed to help those in the most need of software and advice, or those who are already well-resourced and conversant? (And I’m paraphrasing intensely here – Dan should comment if I’ve really missed his point!)

I think the answer to that either/or question is mostly yes. SSC is an interface for the geeks. Even if the user interface were customized for non-technical users, they would likely still be overwhelmed by the software data itself. This is a tool for the people who are tech-savvy and work in those communities to use in their research. So, getting back to the context question—which is huge, because it’s just not enough to have the data without the wisdom of the community—who can provide that?

And here’s what excites me about where Social Source Commons might be going. We can. NPTech bloggers. Non-Profits doing digital divide work. Community activists. If SSC develops middleware – widgets and APIs that allow us to interact more meaningfully with those feeds and toolboxes – the blogging community can provide the context. SSC moves into a more del.icio.us role, as a data intermediary.

Say you’re doing a project that involves using media players in low income communities to support education and communication, and you’ve built a good list of podcasting tools and mobile rss readers art SSC. You’ll be able to link to it from your website or blog, and write the how-to’s with detailed application data provided by SSC. This is useful.

These tools are under development – I’ll be beta-testing them at techcafeteria. Stay tuned.

Share/Save/Bookmark

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©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.

Share/Save/Bookmark

Buying Software is like Buying a House (Part 1)

Well, let me qualify that. Buying a data management system is like buying a house. And it isnt, really, but there are some important parallels that highlight the things that go into a proper needs assessment. A data management system is any application that stores business information, usually in a database format. Common examples of data management systems include HRIS Systems, Accounting packages, Donor databases, etc. While Office applications like Word and Excel can be thought of in this manner, they’re actually tools that work with data and don’t really manage it at all – they leave that to you.

In the early 21st century, effectively managing your business, non-profit or otherwise, depends on your ability to manage and make use of your business information. Quantifying results, understanding outcomes, maximizing people and systems and streamlining processes are the essential strategies. Wal-Mart makes the billions because they know that people stock up on Pop-tarts before a hurricane hits, and they know that because they can analyze their data. EBay, Amazon, and, of course, Google are all highly profitable data warehouses. Non-profits and social service organizations are no different. Grant funding depends more and more on quantifiable outcome reporting. Maximizing donors is about understanding who our donors are and maximizing those relationships. A data strategy is an essential business tool.

When you buy a house, you are moving into a neighborhood. And when you deploy a data management system, you are setting it up in a neighborhood where, most likely, others reside. So you want to know something about those other systems before you put down the money, and make sure that you’re setting up a harmonious arrangement. Subscribe to standards (SQL, XML); evaluate the user interface; verify that they offer webinars and ongoing training at a price that you can afford. You want to buy a nice house, not a fixer-upper.

A House is an investment. While you can often start using it immediately, you’re setting up something that will grow in value. Spec out a system that will mange your business in two years or six, not just the data that you have today. Anticipate growth, both in the size of your business and the amount of strategic information that you will be gathering.

You need big enough rooms with ample doors and windows. Because you’ll be going in and out of this house, and others will be coming in. Consider data integration needs before assessing systems and ask the vendors how that integration will be done. If their license states that your warranty is void if you have a need to manipulate that data in any way – such as mass-updating records, or automating integration from other systems, run, don’t walk, to another vendor. They have no business restricting the things that you can do with your information.

Information, like people, is a living thing in your organization. You don’t want to lock it in a box and throw it in the basement. And you do want to buy the house – storing your data in Excel shacks and Access lean-to’s is not a sustainable approach. You want to nurture your information in a healthy environment with parks and schools and shopping malls, where it can interact with it’s neighbors. When you buy a house, you have standards – for the structure, for the community, for the environment. You should have similar standards for your data management systems.

Share/Save/Bookmark

Why I won an Anonymous Blogger award at NTC

I’m just back from NTEN’s wonderful annual conference, which was in DC this year. This is my third year attending, and my first in my brand new career as a technology consultant. You can check out that gig at my new domain, Techcafeteria.com. Right off the bat, at the Member’s reception, I was the proud recipient of an “NTENNIE”, which is awarded to those of us who are big NTEN supporters. It’s a pretty congenial and humorous honor – recipients receive a headset of antennae to wear, and my seven-year old boy was thrilled to appropriate that on my return.

I was somewhat surprized by the category I won in – “people most likely to be blogging anonymously”. I asked Holly which anonymous blog they suspected I was the author of, and she didn’t have one – they just thought that it roundly described me. So, what I take away from that is that people recognize that I have a lot of opinions and I’m not shy about jotting them down on public forums. But, clearly, my lack of attention to this blog has made it completely invisible.

Now, my last day, after six and a half years, as the lead technologist at SF Goodwill was Friday, March 30th. And the conference ran April 4th through 6th. The timing was great – I made a lot of good connections, and walked away with some serious referrals and opportunities to ply my new trade. It was really different attending the sessions, though, not as a representative of a large non-profit, but as an independent consultant, more interested in selling my services than buying others. I think I have a lot of chops that I can offer quality consulting with, and I’ve been picturing the work and looking forward to that. But the actual consulting is only half the job. The other half is business development, and that’s a bit of a stretch for me. At the conference, I conferred with a lot of other IT consultants and really started to work through what this career change means. It’s clear that I have to do what I pretty much did at the conference, and become a salesman. When all is said and done, it’s about paying off the mortgage and feeding the kid. But it’s also clear to me that the best way to sell my services is to be an active member and healthy contributor to the non-profit tech community, something which I’ve been unable to do successfully while working those 80 hour weeks at Goodwill. So I can’t afford to be an anonymous blogger. Heppy lend is going to pick up steam, and it will be republished at Techcafeteria, which I plan to build into a large resource and home for advocacy of sound technology practices at non-profits. The big issues, today?

  • Data standards, data management, data planning. This was my theme at NTC, where I led a session on “Managing Technology 2.0” and participated in the live version of the Open API Debate.

  • Breaking the myth that technology funding is overhead that drains mission-effectiveness. This is a battle-cry that needs to be brought to the technology-averse funders and CEOs who don’t understand that not investing in a technology strategy is equivalent to organizational suicide.

  • Deployment planning and strategies. Orgs need to have a sustainable approach to technology purchasing, development and implementation that factors in how they will keep it running, not just how much it will cost to get it installed. My second bullet is meaningless if there aren’t effective strategies for using the technology that’s deployed.

Overall, I’ve just stepped out of a 21 year career as a technology startegist and implementer, and I’ve learned a lot of lessons along the way (I’d say “hard lessons”, but, the truth is, I’ve managed to avoid a lot of fiascos in my career!). There’s a lot more to technology deployment than just buying the server and training the staff. If technology isn’t tightly aligned to organizational strategy, objectives, and business processes, it’s a sinkhole – you might as well stick with the typewriters. So look for this to be the meat of this blog and the message of Techcafeteria.com for the near future.

Share/Save/Bookmark

Google’s Writely Beta

Google has opened up the beta of their online Wordprocessing application, Writely. Done in Ajax and, as usual, containing some clever features. I’m most intrigued by how cleanly it converts Word documents to HTML, something that Word itself is abominable at. But it also seems like a very nice interface for remote blog posting (yes, this wa a test!) and a decent tool for collaboration. Funny how it arrives just shy of Windows Live.
http://www.writely.com

Share/Save/Bookmark