It’s time to evolve Continuous Integration beyond technical problem solving into a practice based on serving those we build the tools for. Continuous Integration is ready to undergo the transformation needed for broader adoption, that it may reach its full potential.
Since Drupal powers a large number of federal websites, it was a no-brainer for CivicActions to start thinking of how to port the U.S web design standards into Drupal themes.
We’re pleased to announce the launch of CivicActions Labs, an initiative to provide our team with sanctioned time outside of project work to innovate and design products that will streamline our workflow and improve our practices.
Docker has quickly become the favorite virtualization tool for many people, and at CivicActions we created a basic docker framework to facilitate our development processes.
A client using Civicrm recently approached us with a problem: bounced emails, sent through the Sendgrid email service were no longer reporting as bounced. All emails, regardless of status, were reporting as being successful. Our custom module (D6 integration) was attempting to extract data from the post, thusly: $_POST['job_id'] Unfortunately, [...]
I think all of us at CivicActions were disgusted by Go Daddy CEO Bob Parsons' vacation video featuring him murdering an elephant in Zimbabwe (and the subsequent butchering of that elephant by local villagers wearing Go Daddy hats overdubbed with the song Hells Bells). Bob Parsons has exhibited some pretty [...]
CiviCRM is a powerful, free and open source (AGPL-licensed) web-based contact relationship management (CRM) system that focuses on the needs of non-profits. A growing number of CivicActions' clients employ CiviCRM to support membership and contribution management, events, group mailings and report generation. With every release, CiviCRM is adding features and [...]
My work with CivicActions recently provided the opportunity to create a minor, but much needed improvement to CiviCRM which has just been made available to everyone in the recent CiviCRM 3.2.3 release. CiviCRM records have been available to Drupal's Views module for some time, but the use of Custom Fields [...]
We have a client that wanted to be able to process donations when the Credit Card's CVV numbers were not available. I had thought this field was mandatory, and indeed, CiviCRM's AuthorizeNet payment processor package requires it. But after talking with AuthorizeNet (the company) we discovered that the field is [...]
What're you crazy!? Haven't you ever heard of the CCK module? Yes, it's true CCK coupled with views will allow one to create, manipulate and display custom content. Combined with hook_nodeapi, the cck/views combo is can be extremely powerful and flexible. 99% of the time these two modules are sufficient [...]
Update: We've been using (and recommend) git for version control since around 2011. We leave this post available because it seems popular. For some time now, I've wanted to have an svn set up on my shared web host similar to what we have here at civicactions. Having to make [...]
Last week I posted some initial resources related to my DrupalCon San Francisco session Developing Apps for iPhone/iPad/Android using drupal as Base System. Here is what you need to connect your Drupal site to Titanium App: Titanium Developer iPhone SDK Drupal basic installation Services Module Modified Version of json_server module [...]
Recently I needed to add custom breadcrumbs to views 2 generated pages. Now we were using excellent custom_breadcrumbs 1.x to add custom breadcrumbs on site. At that time I discovered that 1.x version of custom_breadcrumbs do not support views generated pages and 2.x version of module (which supports views) is [...]
A thread began a few days ago on the Drupal Consultants list regarding Client Questionnaires. Not long ago, Ian and I went through our own Client Questionnaire with the intention of supporting a client with a new project. In the end we simplified our original laundry list of questions to this much shorter [...]
There are a number of different authentication methods available for integrating with Google Apps. These include OpenID, OAuth and SAML amongst others. At a first glance, it's not always entirely clear on the differences between them and when you may wish to use one over another. Here's a brief overview [...]
I was recently asked to take some civicrm demographic data from various groups and graph the data so that a visual comparison could be made between groups. In the course of looking for some graphing/charting technique that would integrate well with drupal & civicrm I discovered the google chart api [...]
By default, all email sent from your site uses the site email address configured at admin/settings/site-information as the "from" address. On most sites this is set to something generic, like "[email protected]" or "[email protected]". However in a lot of mail clients, when the email reaches your inbox, it appears as being [...]
cache_get() returns $cache objects even if the cached item is stale (expired). The cached data will not be rebuilt every hour in the following example: /** * Builds complicated data for the monkey grip. */ function custom_monkey_grip_data() else return $data; } ?> Instead, it's cached data will persist in the [...]
Recently, for the first time with Drupal 6, I needed to create a form where a variable number of fields could be added to it by simply clicking a 'Add more' button. I wanted to design a node form where users could create a custom compilation album of their favourite [...]
I recently suggested that the way we approach new development is the most important factor in determining the long term value of our work. But just how can developers using Drupal make the most of open source by ensuring that participating and contributing is an essential part of our daily [...]
When developing in Drupal, should we hack something together that's specific to a site? Or should we instead take the time to do things "right" by improving existing modules or writing our own new modules to contribute to the community? When is one of these options better than the other? [...]
In a recent project I encountered a very long legend in a fieldset from a node add/edit form. Instead of wrapping, it forced its way into the right-hand sidebar and was generally causing a mess of the layout. In looking into this I discovered that legends don't wrap by default, [...]
With applications moving to the web, the desktop web browser is becoming more and more the center of users' attention. Consider for a moment what percentage of time you spend in Firefox or other web browsers compared to other programs or applications that run in your desktop – or use [...]
This article describes briefly what Virtual Machines are, why they are useful, and compares some VM software for Mac OS X: As web developers, it is often our responsibility to ensure that the websites we build are accessible by users of any common web browser and operating system. Since some [...]