Saturday, September 15, 2007

Code for Change recruiting for the fall semester

Code for Change is looking for a fall intern in the Denver, CO area. The ideal candidate is a computer science student with strong programming skills and experience with web applications (PHP and MySQL specifically).

While we got a lot done this summer, there's still more work to do on CiviCRM. As a Code for Change intern, you'll give progressive organizations an even better open source option for one of the most important pieces of software they use to help create social change.

The internship is part time (20 hours / week), runs until the end of the fall semester, and pays a $1,500 living stipend. If you or anyone you know is interested, apply here!

Wednesday, August 22, 2007

Code for Change is over (for now)

As of last Friday (August 17), the first Code for Change summer has officially come to a close. We set out to turn CiviCRM into a better system for helping organizers spend more time organizing and less time shuffling things around on their computers. CiviCRM is a constituent relationship management system, but that's just a nerdy way of saying that it's a program to save you from spreadsheets-pasted-into-Outlook hell when it comes to keeping track of and in touch with all of your contacts. I'm pretty excited about what we got done.

Code for Change is my brainchild, so I'm a little biased. However, other people seem to think it's cool too. The basic idea behind Code for Change is that by putting a little effort into an existing open source project, we get a lot more out of it than if we wrote something ourselves from scratch or paid someone else to modify an off-the-shelf system. We hired some computer science interns--current students and recent grads, downloaded the source code to CiviCRM, and set about turning it into a system that everyone can use (from large, complex organizations all they way down to my mom who sends out a regular newsletter to her home-based business contacts). In the true spirit of openness, all our work is open source and is planned to be released with the CiviCRM 2.0 release later this year.

From June 4 to August 17, we hacked away at it. We had a lot of help from others in the CiviCRM developer and user community, and their contributions were invaluable. Here's what we all accomplished:


  • We made CiviCRM a standalone system. This means you no longer need Drupal or Joomla to use it. (Those are web content management systems, and not everyone who wants to use CiviCRM uses those.) For people who just need a CRM, this makes it much easier to get CiviCRM up and running and doesn't put a lot of unnecessary CMS functionality between you and your contacts.

  • We added OpenID logins. OpenID is a pretty cool new technology that allows you to use one login for all systems that use it. No more having to remember umpteen different passwords for every system you have to login to.

  • We added support for complex groups and organizational structures. The organization I work for, U.S. PIRG, is a national network of state-based organizations. This means we need a system that can keep all its data separate for each state, but still allow those of us who work centrally for all the organizations (I'm an online organizer, for example) to aggregate that data when necessary. Other organizations (such as political parties) have similar geographic and departmental structures that they need a CRM system to model. CiviCRM is now pretty powerful in this regard. You can put groups inside other groups (inside other groups, inside...) and you can affiliate groups with organizations and sub-organizations.



I'll be working over the next few weeks to actually roll out CiviCRM as the new system that U.S. PIRG uses for its online organizing, so we'll be eating our own dog food. If you want to give it a try now (instead of waiting for the official 2.0 release), you can download a preview release of CiviCRM Standalone here.

And we're not done there. We're looking to hire an intern for the current fall semester and another in the spring to continue working on CiviCRM. If you or anyone you know is interested in applying, let me know.

Cross-posted at Future Majority

Thursday, August 2, 2007

Code for Change at YearlyKos

I'm in Chicago at YearlyKos, currently in a panel on building a grassroots funding culture for progressive infrastructure. In other words, small donations to fund all kinds of progressive work, not just political candidates and parties. That's an interesting idea for funding Code for Change... I'll have to think about that some more.

I'm excited about talking to people about Code for Change and the work we're doing here at YearlyKos. I've already had one person stop me to ask what Code for Change was all about when he overheard that we were working on CiviCRM. So there's definitely enthusiasm out there for open source software that helps build the progressive movement.

One thing that I haven't heard much about from the panelists is the idea of not just raising more money for progressives, but also encouraging progressives to be smarter about what they spend that money on. One of the goals of Code for Change is to show the progressive movement that open source software is a better "third way" for getting the software that we need to help us build progressive infrastructure. It's the flexibility of writing your own code combined with the ability to get up and running quickly by not re-inventing the wheel that you get when buying an off-the-shelf solution. Not only that, but you don't have to spend anywhere near as much money on it, nor is it totally on your shoulders to keep the code maintained and build new features.

I believe progressive organizations, bloggers, candidates, and individual activists should aggressively adopt open source software solutions, and they should find ways to not just be a consumer in that community (which there's nothing wrong with, per se) but to also contribute back to the community. It's been our experience in Code for Change that when we engage those communities and start working with them to add features that a particular organization needs (in this case, U.S. PIRG), those contributions are enthusiastically embraced and become official features of that software.

This is the software equivalent of a broad, small donor base that amounts in a huge funding source. It's just a smarter way to get software developed for our movement, and we need to get that word out. I'll be working on doing just that here at YearlyKos.

Tuesday, July 31, 2007

Poor, neglected blog

Wow, it's been awhile since we posted to the blog! We've been coding like crazy lately, but that's no excuse. So here's an update on where we're at:

We just released CiviCRM Standalone v0.5, which is a very cool release. Not only does it continue to improve on the cool features we created for previous releases (such as the ability to use it as a standalone system, the OpenID login system, and the nestable groups), but it also adds a much easier installation system. We think you can get this release up and running in 15 minutes or less on a Windows, Mac OS X, or Ubuntu Linux computer. So give it a try!

I'll be traveling to YearlyKos this week, and I hope to meet up with folks who are interested in Code for Change, open source, and non-profit technology in general. If you'll be there too, let me know!

Today the CiviCRM folks merged our changes into their trunk. What this means is that the cool features that we've been putting into our CiviCRM Standalone releases which eventually find their way into the bonafide, official, 100% all natural CiviCRM 2.0 release. The plan is to have that out by the end of 2007. That's very exciting news, and was one of the major goals of the Code for Change project.

We're not done yet, though. So stay tuned for more updates on new features and more releases.

Sunday, July 15, 2007

More on CiviFeatures: CiviMember

Much of this information can be found in further detail at http://wiki.civicrm.org/confluence/display/CRMDOC.


Membership Summary


When you first open up the CiviMember page, you will see a membership summary, which allows you to:

View all members of the organization. For each, gives type of membership, start and end dates, the source of their membership (e.g. payment, donation, check), and status: whether the membership is current or expired. For each member, there are links for View, Edit, and Delete.

At the top, shows aggregate data about memberships by type.


There are two options under the CiviMember menu, as well: Find Members and Import Members.

Find Members

There is a robust search function for members, allowing search by all fields: membership status, membership type, start and end date, source, member name, email address. You can search by OR criteria as well, to get contacts who are either of one membership type or another, for example.


Find Members leads to the following features, among others:

Export Members:

You can choose members as search results from the Find Members feature, and export them to CSV files, viewable in spreadsheet applications such as Excel.

Email Members:
You can select a group of members as search results to send an email to.


As for Import Members:

Import Members

Import member data stored in CSV format.
Field mappings: the order in which the comma-separated values in a file are stored in data fields is known as a field mapping. These can be saved for a given source file.

The Import Members feature also has built-in error correction. For instance, an email address field will correct invalid email addresses.

Saturday, July 14, 2007

Nestable Groups in CiviCRM

One of the perpetual problems U.S. PIRG runs into with off-the-shelf software is that most of it assumes one of two usage scenarios:
  1. A single organization with no need to isolate any sets of data from any others beyond a simple user-by-user permissioning system (if your lucky). This is the most common.
  2. Multiple organizations with the need to access the software from many different locations, but with complete isolation between the organizations' data in the system and no easy way to combine it. This is less common.
Unfortunately neither of these scenarios fits U.S. PIRG (and lots of other organizations). We have a national lobbying office in D.C., many state-level organizations across the country, and a few centralized departments that work with most or all of them. So we really need a hybrid of the two options above. People in the state groups shouldn't have to wade through other groups' data to get to theirs (not to mention that an errant "delete all" command or security breach in one of those offices shouldn't affect other groups' data). But at the same time, the central departments need to be able to routinely work with aggregate data across all the groups.

Here's an example: Let's say we have a group here in Colorado called CoPIRG (we do). They have a list of online activists, a list of media contacts, a list of current staff, a list of alumni, a list of student activists, a list of donors, a list of issue experts, and so on. They want to keep all that under the CoPIRG umbrella without it getting all mixed up with other groups' data (potentially even other groups in Colorado; this would be very confusing).

Now let's say we have a centralized online organizing department (we do, and I work in it). What if we want to send an action alert to everyone on every online activist list across the country? We need to be able to quickly combine the CoPIRG online activist list with the Florida PIRG online activist, the CalPIRG list, the Maryland PIRG list, etc.

Most software makes this kind of flexibility awkward at best, downright impossible all too often.

Which brings me, at long last, to the subject of my post. We are working to support this kind of functionality more readily in CiviCRM by making groups nestable. I'm using the word "groups" here to refer to CiviCRM's feature for combining contacts into logical groupings. Making them "nestable" means you'll be able to put groups inside groups inside groups inside groups...

Here's how this would play out in the example above:

CoPIRG would be a CiviCRM group. So would CalPIRG, Florida PIRG, etc. Each of these groups would have a nested sub-group called "CoPIRG Online Activists," "CalPIRG Online Activists," you get the idea. We would also have a top-level group called "National Online Activists." Each of the "XXPIRG Online Activists" groups would also be sub-groups of this. (We're supporting multi-parent relationships between the groups.)

CoPIRG staff would have read/write permission for their whole group (and thus any sub-groups of it as well). The staff in my department would have read/write permission for the entire National Online Activists group. This keeps our data isolated when it needs to be, but combined when necessary too.

We would then repeat this setup for the local and national media lists, alumni lists, donor lists, etc.

Obviously this is nowhere near the only usage scenario nestable groups will enable CiviCRM to support. The new flexibility, especially when combined with the new permissioning system being planned for the 2.0 release (also when nestable groups will make their debut), will make CiviCRM a much more flexible system overall.

We already have the basic functionality working. The main thing left to do is implement an intuitive widget to create and edit group nesting relationships. We're hoping to get this out the door in the next few days as CiviCRM Standalone v0.4. Stay tuned!

Friday, July 6, 2007

CiviContribute

CiviContribute enables you to collect and track and create reports on contributions from members. With customizable collection pages and many Payment Processors to choose from it's easy and secure. Offline contributions can be imported using the import feature of CiviContribute. Searching the data is easy with the search tool and there are a wide number of criteria to choose from for searching including Contributor, dates and contribution form used. You can create contribution pages by copying previous contribution pages or one of the example pages, as well as creating pages with a 6 step wizard.
Collect, track, report -- CiviContribute takes care of your constituent contributions.

Thursday, July 5, 2007

CiviEvents: Why It Rules

Here's a sketch of the features of CiviEvents. It's a bit thick and dry now, but expect a more polished version in the near future, along with many of the other optional features of CiviCRM. More documentation is available at http://wiki.civicrm.org/confluence/display/CRMDOC/CiviEvent.

Matthew and I will be compiling these into a presentation, which we will also post here. Comments about the cooler aspects in this list are welcome. We're looking for all the input we can get.


Event Summary Page

The Event Summary Page lists all of the events you have created. You can edit events by clicking the "Configure" button next to the name of each.

Sorting features allow you to view event participants in alphabetical order of participant name or event, order of the fee level, dates at which they take place, event status, and the role of the participant. A console for viewing, editing, or deleting event registration for a given contact also exists, beside each contact's entry in the summary.

- A Find Participants feature allows you to search for participants by event name, date, etc.

- There is a wizard for creating a new event, as well. You can select an existing event type or configure/add new event types in Administer CiviCRM. (Cool potential feature that doesn't exist now: add different fields to event types.)

Import Participants

Import participant data stored in CSV format Field mappings can be saved for a given source—very useful Automatic detection of invalid fields

Total Rows - Total rows (contact records) in import file. Rows with Errors - Rows with invalid data in one or more fields (for example, invalid email address formatting). These rows will be skipped (not imported). You can also Download Errors. Valid Rows - Total rows to be imported.

The information shown previews the results of importing your data. Review the totals to ensure that they represent your expected results.

If errors are detected you will see the message:

CiviCRM has detected invalid data or formatting errors in # records. If you continue, these records will be skipped. OR, you can download a file with just these problem records - Download Errors. Then correct the errors in the original file you are importing, cancel this import and begin again at step 1.

Event Creation

Address/Email configuration for Event Location

Event Fees—Configure paid vs. unpaid, contribution type, options for amounts, and default amounts

CiviEvent Registration:

Modes for both paid and unpaid registration
Extensive configuration for event registration, including registration link text (e.g. "Register Now!")

Registration start and end dates
Introductory and footer text
Customizable Confirmation and Thank-You Screens
Customizable Confirmation Emails
You can test-drive registration for events.

Wednesday, July 4, 2007

CiviCRM Standalone v0.3.1 released

I forgot to mention on here, we released CiviCRM Standalone v0.3.1 yesterday. You can grab a copy of it here.

This release incorporates lots of bugfixes for the OpenID login system, and it's probably the first release that's generally usable without having to tweak things in the database first. It even has a "new install" page that helps you setup your first user right after you install it.

The other exciting news is that we have this version up and running on our demo server. You'll need an OpenID (these folks can help you out there), and then you can login to the demo server here. Obviously you probably don't want to put confidential data in there since it's a public server.

Let us know what you think!

Monday, July 2, 2007

CiviCRM Standalone v0.3 delayed slightly

Our new CiviCRM Standalone release, version 0.3, is almost ready. We had hoped to get it out the door this weekend, but there are still a couple of show-stopper bugs in there we wanted to squash first.

It may still get released tonight, so stay tuned. It's a pretty cool release and probably the first one that will be easy to get up and running (you had to do some database sit-ups for the others).

If it doesn't get released tonight, look for it tomorrow (7/3/07).

Sunday, July 1, 2007

Some of My Favorite Places

Working for code for change and PIRG has kept my mind coming back to the Environment. Living in the state of Colorado it's not hard to think about it. With the mountains so close and looming over Denver all the time, and calling me to come and play. But I've noted a disturbing trend over the couple of decades I've been here. Time and time again I've found that there is a house or a fence or some other obstruction or sign that says one of my favorite hiking spots is off limits now. And from what I can tell whomever "bought" that piece of land now basically controls access to that huge chunk of State or Federal Park that now lies out of my reach.
One in particular was near Moffat Tunnel. We used to hike there two or three times a year. Then one time we were greeted by a 12 foot high horse fence at the trail-head. We had heard that access was supposed to be granted, and the owner saw us and welcomed us to cross, but didn't open the gate, we had to climb over.
Another spot is on famous Mount Evans. There is a house and a road somehow inside of what used to be park land. Barbed wire and warning signs are also to be found. It's a sad thing. And I know with time that there will be more and more of this happening. I don't go to those old spots anymore. So I guess who ever they are has won. I guess I let them.

Thursday, June 28, 2007

Keeping Up With PHP and MySQL Changes

PHP and MySQL are open source software. Open source software changes frequently, rather than once every year or two like commercial software does. It changes when the developers feel that it's ready. It also changes quickly in trspose to problems. When a serious problem is found, such as a security hole, a new version that fixes the problem can be released in days. You don't receive glossy brochures or see splashy magazine ads for a year before a new version is released. Thus, if we don't make the effort to stay informed, we could miss the release of a new version or be unaware of a serious problem with our current version.

Importing Membership Data into CiviCRM

Managing Constituent Relationships are all about data. Who, what, when, where and we know why. Getting your membership data into CiviCRM is fast and easy. CiviCRM can take your Comma Separated Value (CSV) data and import directly into the CiviCRM database. Just map your fields to the CiviCRM fields and import. You can even save the field mapping for later imports that have the same format saving time and possible errors. This can be especially handy if there are multiple organizers bringing in membership data.
There is duplicate handling for records built in, with 4 choices of how you can handle duplicated records (skip, update, fill and no duplicate checking). There are also multiple date formats to choose from. After mapping the fields you get a preview of the data. And when you are done importing there is a summary of what actions have been taken. More good reasons for making CiviCRM your Constituent Relationship Management System.

Wednesday, June 27, 2007

PHP vs. Perl

We've now reached one of the more challenging steps in our project. CiviCRM is written in PHP and WebGUI is written in Perl. Yet we have to integrate the two.

Our three options are:

  1. Use WebGUI's built-in HTTP proxy asset to display CiviCRM's public pages (like contribution forms, event registration forms, etc.) inside WebGUI templates.
    1. The downside here is that this often messes up forms, which are pretty critical to basically everything we'll be displaying from CiviCRM.
  2. Use WebGUI's built-in web services client asset to get enough data from CiviCRM's SOAP interface to build the public pages inside WebGUI templates.
    1. Frankly, I'll be surprised if this works. But who knows...
  3. Write a new WebGUI asset that calls the CiviCRM web services (in REST fashion, of course) and gets the data it needs to build and display the public pages inside WebGUI templates.
Obviously we'd love for #1 to work. If it doesn't we'll drop down to trying #2. If that doesn't work, we'll sigh and get to work on #3. #3 will take a little longer, and probably push something else off the list of things we can get done this summer.

We'll see which one ends up working. :)

Tuesday, June 26, 2007

Why we use CiviCRM

Unified view of every constituent. Store information about individuals, organizations and households and your interactions with them.
Strong free and open source community. A rapidly growing open source community of developers, consulting firms, consultants and others support, extend and maintain the software.
Designed for the social sector. CiviCRM was designed from the ground up for non-governmental organizations that engage in advocacy, community and political organizing, and non-profit work.
Seamless integration with web sites. CiviCRM integrates directly into popular open source CMS packages, including Drupal and Mambo. Registration and visitor interactions are logged directly into the system, including end-user maintenance of their own addresses and custom fields.
Internationalized & Localized. CiviCRM was built from the ground up as a product intended to be used globally. It can store data in many localized formats and supports most languages.
Open source & open standards. Licensed under the free softaware license for web services applications, the AGPL, users can make any modification to the software, can benefit from modifications made by others and can effectively interoperate with other applications.
Affordable and cost effective. CiviCRM is available without a license fee and is supported by a community of nonprofit-focused consultants.

API's -- Application Programming Interfaces

I always liked the sound of the words. Even before I knew what they meant. It's been a lot of years and the meaning has changed for me quite a few times over the last decade. Wikipedia describes and API as a source code interface that a computer system or program library provides to support requests for services to be made of it by a computer program. But that isn't what it means to me. It means access. Access to all the code written by the knowledgeable people who wrote the application. So without having to know everything about what was happening inside of the black box, I was given some handles so that I could manipulate the box to do work for me.
Especially when I was first starting as a coder that was very important to me. I knew enough to be dangerous. I more than once watched as a printer in our computer science lab tried to dance off it's stand due to some misbehaving code I had created. In some ways the API's gave me the ability to be even more dangerous, but for the most part they left the complexities of the low level code to the experts, while still giving me a way to realize my vision of what I wanted my code to accomplish.
I spent today looking through CiviCRM's API's looking for the structures that would allow me to unleash it's power without breaking too many things, or torturing too many brain cells. I can feel the sense of possibilities coming on. But it will take some time to see. If we have access to what we need.

Sunday, June 24, 2007

Woo hoo!

CiviCRM Standalone v0.2 is out! This version not only improves the stability of the new standalone option in CiviCRM (meaning it doesn't require a particular content management system, or any at all), but it also introduces the new OpenID login system.

This release represents some hard work on the part of the Code for Change team, and we're very excited to bestow it upon the world.

You can download it here.

Saturday, June 23, 2007

Make it easy

Every week in Code for Change we have a "Release Friday." We all gather in the 2nd floor conference room of the office building where U.S. PIRG's Denver offices are located and we code until we have a release ready of what we're working on. We start out the day by making a list of which tickets (bug reports) we need to close in order to have something release-worthy.

One of the agenda items we had up on the board this past Friday (yesterday) was "Make it easy." This was a brainstorming session where we all came up with ideas to make it easier to install and play around with CiviCRM. There is quite a bit of interest out there in an open source CRM tool, especially now that we've removed the requirement to run it inside of Drupal or Joomla. But asking people to setup Apache, PHP, and MySQL as the first three steps is a bit intimidating.

Here are some of the ideas we came up with to make it easier:


  1. Setup a live public demo site. This would be the easiest way to try out CiviCRM, but perhaps the least useful, since you wouldn't want to put any real data in there.

  2. Create a one-step installer for Apache, PHP, MySQL, and CiviCRM that gets everything up and running in one step so that you (and anyone else on your network) can start using CiviCRM right away. There are already one-step installers for the WAMP stack (Windows, Apache, MySQL, and PHP) that we could start with and add in CiviCRM. This installer would be a Windows release first, since that's what most folks are running on. We'd also like to do a Mac OS X version at some point too.

  3. Create a "virtual appliance" of Linux running CiviCRM that you can launch in VMWare Player and then access with your web browser.

  4. Write step-by-step instructions for getting CiviCRM up and running on a Linux server for those who want to do it themselves.

So, dear readers, we'd love to know which of these options seems most exciting to you. Or, if we left one out, please let us know! We'll be working on 1 or 2 these in the coming weeks, so stay tuned.

Friday, June 22, 2007

Release today, the 2nd time!

Today, we give out our second release. Finally I can reach my weekly goal this week. I did better than last week. I found a QQ group named "Open ID". In this group, they are all interested in Openid, open source. We can talking about every one's current difficulties and ask for help. But now we seemly have similar problem. Everybody expect to get experts help, but we know, open source is a good way to learn and exchange our knowledge.

You can download the release here:
http://www.codeforchange.net/downloads

Thursday, June 21, 2007

My posts are deleted

My last tow posts are deleted, because we need each post original work.
I have some problems to use linux.

How can I install Skype in linux? Because my Windows XP is Chinese edition, and I have translate software in there,It's easy for me to contact persons in my list. I switch Linux to Windows all the time. I should hanging on IRC more time. In QQ group, even though you are not here, when you log in there next time, you can see the chatting record by your other group member. You can know what happend on that time. So I hope I can get a copy of chatting record. If I can use Skype in Linux, I don't need go back to Windows to contact my lists.

How can I watch video or listening on line? I download some helpful online lessons, but I can't watch it under Linux. Can I watch on line program under Linux? Some of my video format ".avi".

I really need some help to use Linux better. I know linux has more function than I used.

Wednesday, June 20, 2007

Linux

I've been a big fan up Linux for a long time. Starting back in 1997 when my dad and I set up a Debian box on an old machine we had. We were both taking the same UNIX class and really needed an environment that was similar to UNIX to work in.We just used the command line and it was fine for out purposes and the experience of setting it up and learning the OS was valuable. I spent a year as a UNIX operator for a large corp not long after finishing that class.
Fast forward to today, the world of computing has changed a lot. From 486's to Pentium something-or-other (6, 7? Who can tell anymore!). And I'm loading Linux again, at least some things don't change. Well Linux has grown up quite a bit in those years too. Ubuntu Linux (based on the Debian kernel) is a full featured Graphical Interface OS. And there is plenty of software that loads right with it, including the Open Office Suite, and a lot of software that can be loaded right from inside the OS using the package managers.
Gone are the days of running configuration files and make/installs. Well, there is still a lot of software that comes that way, and dependencies are still an issue. So Linux has a ways to go still, but it is a work in process after all.
Matt

Monday, June 18, 2007

work in US, the first week

I feel so sad when I left from office on friday. I didn't reach my weekly goal. But when I was waiting for the light rail, I can't help smiling, because I did it. Finally, I know what I don't know, before working I don't know what I don't know. I know how the real work in US like.

During this week I am silly. I don't know what are; : " * #... in English. My reflection is slow. I share all these feeling with my Chinese friends. They told me when they begin work here, they met the same situation. "You should ask when you are confusing. Your group member will help you. They are nice."

This is a totally new work to me. It is a big challenge. But I like it, I can do better and better. I'm appreciate other group member's patience and friendly. Thank you!

Code for Change Week 3

We started Week 3 of our program today. This week we'll be focusing on integrating OpenID authentication into CiviCRM and WebGUI so that one login can be used for both systems (and many others, since OpenID is a universal login system).

Last week we released a version of CiviCRM that can be used by itself (i.e. without Drupal or Joomla). The big missing piece now is an authentication system, because normally CiviCRM relies on Drupal's or Joomla's login system. We'll be filling that gap this week and releasing it on Friday.

Once all this is in place, we'll start working on adding some pretty cool features to CiviCRM. One of the first things we'll be doing is going through its action tracking and list segmentation features and seeing what needs to be added to allow it to be used by U.S. PIRG for all our online organizing work. This will make CiviCRM an even more powerful system for all groups that use it (or will start using it in the future).

Thursday, June 14, 2007

What is OpenID?OpenID 是什么?

OpenID is an open, decentralized, free framework for user-centric digital identity.
OpenID starts with the concept that anyone can identify themselves on the Internet the same way websites do-with a URI (also called a URL or web address). Since URIs are at the very core of Web architecture, they provide a solid foundation for user-centric identity.
The first piece of the OpenID framework is authentication -- how you prove ownership of a URI. Today, websites require usernames and passwords to login, which means that many people use the same password everywhere. With OpenID Authentication , your username is your URI, and your password (or other credentials) stays safely stored on your OpenID Provider (which you can run yourself, or use a third-party identity provider).
To login to an OpenID-enabled website (even one you've never been to before), just type your OpenID URI. The website will then redirect you to your OpenID Provider to login using whatever credentials it requires. Once authenticated, your OpenID provider will send you back to the website with the necessary credentials to log you in. By using Strong Authentication where needed, the OpenID Framework can be used for all types of transactions, both extending the use of pure single-sign-on as well as the sensitivity of data shared.
Beyond Authentication, the OpenID framework provides the means for users to share other components of their digital identity. By utilizing the emerging OpenID Attribute Exchange specification, users are able to clearly control what pieces of information can be shared by their Identity Provider, such as their name, address, or phone number.

OpenID 是一个以用户为中心的数字身份识别框架,它具有开放、分散、自由等特性。
OpenID 的创建基于这样一个概念:我们可以通过 URI (又叫 URL 或网站地址)来认证一个网站的唯一身份,同理,我们也可以通过这种方式来作为用户的身份认证。由于URI 是整个网络世界的核心,它为基于URI的用户身份认证提供了广泛的、坚实的基础。
OpenID 系统的第一部分是身份验证,即如何通过 URI 来认证用户身份。目前的网站都是依靠用户名和密码来登录认证,这就意味着大家在每个网站都需要注册用户名和密码,即便你使用的是同样的密码。如果使用 OpenID ,你的网站地址(URI)就是你的用户名,而你的密码安全的存储在一个 OpenID 服务网站上(你可以自己建立一个 OpenID 服务网站,也可以选择一个可信任的 OpenID 服务网站来完成注册)。
登录一个支持 OpenID 的网站非常简单(即便你是第一次访问这个网站也是一样)。只需要输入你注册好的 OpenID 用户名,然后你登录的网站会跳转到你的 OpenID 服务网站,在你的 OpenID 服务网站输入密码(或者其它需要填写的信息)验证通过后,你会回到登录的网站并且已经成功登录。 OpenID 系统可以应用于所有需要身份验证的地方,既可以应用于单点登录系统,也可以用于共享敏感数据时的身份认证。
除了一处注册,到处通行以外,OpenID 给所有支持 OpenID 的网站带来了价值--共享用户资源。用户可以清楚的控制哪些信息可以被共享,例如姓名、地址、电话号码等。

OpenID and me

The first thing I thought when Wes suggested OpenID to to authenticate the users was "this guy is geekier than me, how did he ever find this?". OpenID basically allows someone to create their own little signature in the web that can be used for authenticating their entry into different websites.
To create my OpenID I went to MyOpenID.com and entered a username and my password I wanted to use. Now I have an OpenID of http://mflynn.MyOpenID.com which works very nicely to get me into a number of sites.
When I go to sign into a site I just use mflynn.myopenid.com as my OpenID and I am taken to the MyOpenID site where I give my password, not at the site I want to enter. Then I get redirected back to the site I'm interested in using as an authenticated user. Pretty nifty if I do say so. Now all I have to do is figure out how to implement this on our end...
Should be fun!

Matt

Greetings

My name is Daniel. I graduated from Oberlin College this May with a degree in computer science. Over the last year, I found the problem of what to do next staring me in the face. I didn't want to be a code monkey, but I was gaining an appreciation for the applied aspects of computer science—i.e., programming. It's a passion I've had since I started playing with HyperCard in fifth grade, and nothing would please me more than to expand the reputation of computing from a powerful business tool to a political organizing tool. Denver, CO, is a radically new place for me, being used to Washington, DC, and Oberlin, OH, and one whose natural beauty I find inspiring. Being surrounded by bright, idealistic people like Wes, Matthew, and Ann, I feel confident that I will make many good friends here and contribute to something really meaningful and cool.

Tuesday, June 12, 2007

Do you know civiCRM?

CiviCRM is the first open source and freely downloadable constituent relationship management solution. CiviCRM is web-based, open source, internationalized, and designed specifically to meet the needs of advocacy, non-profit and non-governmental groups.

CiviCRM is a powerful contact, fundraising and eCRM system that allows you to record and manage information about your various constituents including volunteers, activists, donors, employees, clients, vendors, etc. Track and execute donations, transactions, conversations, events or any type of correspondence with each constituent and store it all in one, easily accessible and manageable source.

CiviCRM 是一套开源码的 constituent relationship management(民众/选民关系软件),主要是提供给非营利/非政府组织使用,用来管理组织与民众、志愿者、支持者的资料与其互动。最近 CiviCRM 推出了1.5版,有适合 Drupal 和 Joomla 的版本可供下载。(新闻来源:Announcing CiviCRM 1.5)

Friday, June 8, 2007

Hello, World!

My name is Wes Morgan. I'm the creator and director of Code for Change. In my other life, I'm an online organizer for U.S. PIRG (and all the state-level organizations that are a part of our network). Originally from Oklahoma City, OK, I have lived in Denver, CO since graduating from Calvin College in 2003.

I got my degree in computer science, and I knew I wanted to change the world. Not the graduation speech kind of changing the world, but the actual, get-your-hands-dirty and move some mountains kind. I assumed I would have to find a job that had nothing to do with my major. Working for IBM or Microsoft was not going to cut it.

I landed a great job with U.S. PIRG that combines my skills with my passion, and I wanted to find a way to get more people like me plugged into the social change movement. Software is becoming a necessity for any organization doing grassroots organizing in the 21st century. And like so many other necessities, it's expensive, time-consuming, and difficult to obtain. However, unlike a lot of other things, there is a whole world of people out there who write software in their spare time because they enjoy it and release the fruits of the labor to the world for little or no cost and with no restrictions on modifying it and sharing it with others under the same terms.

The open source software community is, in many ways, the kind of grassroots, democratic community that organizations like U.S. PIRG are working to create around all the issues they work on (environmental, social justice, good government, consumer rights, etc.). Plugging into the open source movement seemed like the perfect fit for progressive organizations' software needs, and Code for Change is my attempt to make it happen.

When I came up with the idea for Code for Change, I had three goals in mind:
  1. Recruit some outstanding student and recent-graduate programmers and get them plugged into the open source software movement, especially the corner of it working on advocacy-focused software
  2. Get some great work done on software that non-profit advocacy groups all over the world will benefit from
  3. Start laying the groundwork for a whole community of people who work on this software because they have programming skills and want to contribute them to progressive causes
Well, we've just finished week 1 of the very first Code for Change summer, and I'm very excited and optimistic. We've definitely pulled off #1. Ann, Matt, and Daniel are very smart and ready to do some hard work this summer. We're starting on #2 next week, and I think everyone will be impressed by what we get done. #3 is definitely the "plant sequoias" aspect of the program, but I think we'll make some great progress on that too this summer.

I originally came up with the idea for Code for Change about 2 years ago, and it's pretty cool to actually be doing it now. By the end of August, I think we'll have created something pretty unique. Not only the software, but also (and maybe especially) the outlet for other people like me, Ann, Matt, and Daniel to get involved in progressive social change.

Watch this space, as things should only get more interesting from here.

Hello!

Matthew Flynn here. I am a senior at Metropolitan State College of Denver as a Computer Science Major. Four wonderful children provide me satisfaction and many challenges in my life. Guitars, music and lots of computer stuff fills my days. I've lived in beautiful Colorado since 1980 and enjoy hiking and occasional skiing trips.
Programming has been a part-time occupation for the last ten years. I have programmed in more than 17 programming languages. Java is my favorite because of the extensive documentation. Some of the more interesting ones I've worked with are List and Prolog. I enjoy the challenge and complexity of problem solving so programming is a satisfying occupation for me.
I live right next to Cherry Creek so I get to see first hand some of the effects we have on our environment and what we do to lessen our impact on it. Runoff from the expanse of houses here in Aurora and Centennial is handled by the streams leading into Cherry creek one of which is behind my apartment. The holding ponds for the runoff support many forms of wildlife and make for an interesting assortment of sights and sounds when walking along the paths that have been built as part of the projects to control the runoff. A nice balance of man's needs and nature's.

Thursday, June 7, 2007

Do you care about our natural environment?

After Shelly gave us the introduction, it reminded me another reason that why I interested in "Code for Change Summer Intern". I'm a environmental protection person:) This intern is a combine=my major(F1 student only can take the position that directly relate to my major in US)+my interesting.

As you know, China has huge population, and developing very fast recently. Solving pollution problem is very important to us, especially in Beijing, because 2008 Beijing Olympic Games is coming soon. Because there are a lot of countries' developing experiences- develop first then solve the environment problem, we try to develop at the same time solving the problem. Such as we use e-cards instead of paper cards; develop our public transportation system, in Beijing, we have more than 300 bus lines, light rail and subway; use and search in clean sources instead gas;begin no-paper office culture; save water and energy; we don't use "once" chopsticks and plates in school; classify trash and recycle plastic, batteries and paper, you can use newspaper change to reproduced-paper, etc. Nowadays, Beijing's air is much better than 20 years ago, but this improvement is to slow, one reason is there are too many people to this city.

You are so lucky to live in Denver. Here is not crowded; you don't short for water; you have more sunny days. So let this keep forever:) China solve our environment problem not only for China but also for the world, because we all are villagers in our earth village.

All above are my own opinions, at least represent some people:)

Tuesday, June 5, 2007

Hi, everybody:)

I'm Ann:) I come from Beijing China. Now I'm a UCD graduate student, major in Computer Science. My BS degree is Industrial Engineering. I like IE more than CS:) IE introduces a lot of conceptions but I don't know how to practice. I'm intreseted in MIS and database. I thought I need enhance my coding skill, so choose CS and USA. But now I'm so disappointed:), we learning a lot "classic" computer science classes. When I finish ten class, I can graduate. I can get good score, but I also don't know how to work. I talked to my advisor, he told me "we can't teach you any specific software like orcle or mysql in any class":(

So I need intern. Code for Change give me a chance. This is a big challenge for me. I need learn more, need work in English. I know is hard to me but everything should be has a beginning, I can't "escape" all the time, I have to face these challenges. The same reason that I decide come to US, this new country, new language,no family and friends here. Because I know I can resolve each problem, succeed in every challenge, then when I look back, I can feel proud of myself. All of these tension, pressure, upset, helpless are treasures of my life experience.

I come here 9 months, everything goes well. I'm so glad to meet you here. First time to by plane, first time to leave my family, first time to work in US. How exciting! Don't think I'm a quiet girl. I'm talkive, I'd like share my opions with other people. Just because English is not my native language, my words are limited:( I try my best:)

See you tomorrow!:)