What’s your new year’s resolution for 2012?
RSVP to our 2012 Happy Hour on eventbrite.
RSVP to our 2012 Happy Hour on eventbrite.
“As we express our gratitude, we must never forget that the highest appreciation is not to utter words, but to live by them.”
- John F. Kennedy
On this Veterans Day, we honor those who have so bravely served this country! As a veteran owned business, we salute our toops and take a moment to remember our fallen soldiers. Freedom is not free…
A couple of months ago, while working on the new BIO.org project, the BIO team tasked us to quickly develop an ideation tool for the Biotechnology Industry members to discuss policy and coaching ideas. Our team had only 10 days to turn around the project.
We knew right away that we’ll be using a customized Open Atrium, a Drupal based intranet, along with the ideation feature Development Seed and Phase2 released as part of the Department of Education Idea Engine site.
Our design team led by our creative director took the layout of the out of the box Open Atrium base theme and designed a beautiful interface that was consistent with the look and feel of the new BIO.org.
Continue reading Using Open Atrium as an Ideation Engine for BIO »
As you may already know, Troy Davis, an inmate in the Georgia penitentiary was executed Wednesday evening after Supreme Court rejected the stay of execution.
We wanted to get a snapshot of which states have execution laws and how many people they’ve executed in the last few years. In the process, we put together a map to visualize the data.
We designed the map using TileMill, Google Charts to show the charts and Google Refine to clean up the raw data.
Amnesty USA has a list of scheduled executions in the U.S.

Biotechnology Re-imagined: The New BIO.org
The Biotechnology Industry Organization just launched it’s new website, BIO.org
The newly re-imagined website is the main vehicle for BIO’s long term communication strategy to educate the public about Biotechnology.
BLEN Corp was chosen to lead the redesign effort in December of 2010 and we have been working very closely with the BIO team to build a beautiful site with a well thought information architecture that moved away from a hierarchical to a concentric structure and versatile platform. The new architecture will allow BIO to cross-pollinate content across the site by increasing usability and decreasing redundancy.
We went through several iterations of wireframes and mockups with A/B testing to find the optimal design. For the platform, we naturally chose Drupal instead of the Ektron instance they already had. We used modules from Phase2′s OpenPublish distro and wrote over three-thousand lines of code to customize it for the client. In addition, BIO’s old site had over eight thousand pieces of text, audio and video content that needed to be migrated to the new site. We wrote several scripts, which we will open source in the coming days, to clean the content and migrate to a Drupal content type.
In the coming months, we will be developing several interactive mapping and charting visualizations to give the already content-rich site an edge.
Check out the old site

BIO.org Before
We recently had a project that required us to modify the advanced search form in Drupal. This is the form found on the /search page. The search page is driven by both the node and search modules. The Search module is under “Core -options” so it must be enabled manually. By default, the advanced search only gives a couple of options, namely the ability to limit results by content type and by words/phrases contained in the node. In our case, we were using OpenPublish, the Drupal distribution for publishing. OpenPublish actually allows filtering by one more field (category). We wanted the ability to filter by author and date. These filters are especially essential if a site has a lot of content, which we can safely assume for a publishing site.
The less-than-obvious aspect of this change is the fact that the necessary code change will all be made in the node module and not in the search module. The reason for this is that the advanced search form is a node search feature. As with any custom or contributed module, the node module utilizes hook_search (a hook provided by the search module) to render the advanced search form. There is an interesting discussion about this at http://drupal.org/node/233476. One idea being discussed is putting all search-related code in the search module in Drupal 8. This might not actually happen since it makes more sense to utilize hook_search to extend search capabilities. Another idea that is being considered for Drupal 8 is to create a module called search_nodes that will handle the search requirements for the node module.
We modified the node module to have it render the form per our specs. The procedures are described below. There is also a patch at the issue thread linked above that provides a slightly different date field. A direct link to the patch may be found at the end of this text. We must note here that modifying a core module is not an ideal approach. We have done it in this case because the changes were minor and fitting. An ideal method would be to create a custom module that extends the search module using hook_search().
To add the form elements for the date and author fields, add the following lines in node_form_alter (which should be found near line 1900 of node.module):
// the author field
$form['advanced']['keywords']['author'] = array(
'#type' => 'textfield',
'#title' => t('Author'),
'#size' => 30,
'#maxlength' => 255,
);
// holds the date field and the before/after checkbox $form['advanced']['created'] = array( '#prefix' => '<div class=”criterion”>', '#suffix' => '</div>', );
// the radio button for before/after flag
$form['advanced']['created']['created-comparator'] = array(
'#type' => 'radios',
'#default_value' => variable_get('created-comparator', 0),
'#options' => array('<' => 'Before', '>' => 'After'),
);
$form['advanced']['created']['created-date'] = array( '#type' => 'date', );
These two sets of fields that we have rendered need to be concatenated to the $keys variable, which is done in node_search_validate. Add the following lines:
// get authors
if (isset($form_state['values']['author']) && $form_state['values']['author'] != '' && strtolower($form_state[‘values’][‘author’]) != ‘author’) {
$keys = search_query_insert($keys, 'author', $form_state['values']['author']);
}
// get the date and its comparator all in one shot
if (isset($form_state['values']['created-comparator']) && $form_state['values']['created-comparator'] != '') {
$keys = search_query_insert($keys, 'created-comparator', $form_state['values']['created-comparator']);
if (isset($form_state['values']['created-date'])) {
$day = $form_state['values']['created-date']['day'];
$month = $form_state['values']['created-date']['month'];
$year = $form_state['values']['created-date']['year'];
$mdate = $month . '/' . $day . '/' . $year;
$mdate = strtotime($mdate);
$keys = search_query_insert($keys, 'created-date', $mdate);
}
}
Now that the fields have been tagged onto the $keys string, they need to be extracted and interpreted as SQL strings in node_search, which can be found around line 1200 in node.module.
Let’s add the following lines under case ‘search’:
// extract and interpret author field
if ($author = search_query_extract($keys, 'author')) {
$join1 .= ' INNER JOIN {users} u ON u.uid = n.uid';
$conditions1 .= “ AND u.name = '$s'”;
$arguments1[] = $author;
$keys = search_query_insert($keys, 'author');
}
// extract and interpret date field
if (($created_comparison = search_query_extract($keys, 'created-comparator')) && ($created_date = search_query_extract($keys, 'created-date'))) {
if ($created_comparison == "=") {
$created = "n.created BETWEEN %d AND %d";
$arguments1[] = strtotime($created_date);
$arguments1[] = strtotime($created_date) + 24*60*60;
} else {
// No quotes on the %s because it's just for the insertion of the comparator
$created = "n.created %s %d";
$arguments1[] = $created_comparison;
$arguments1[] = $created_date;
}
$conditions1 .= ' AND (' . $created . ')';
$keys = search_query_insert($keys, 'created-comparator');
$keys = search_query_insert($keys, 'created-date');
}
That should do the trick!
Sources:
- Add search by node creation date and the author (http://drupal.org/node/233476)
- A patch: http://drupal.org/files/issues/search_author_date_0_0.patch
- Search Content by Author (http://drupal.org/node/155254)

The Arlington Community Federal Credit Union (ACFCU) just launched a brand new website (www.arlingtoncu.org)! BLEN was selected among other esteemed organizations to design and develop a new website for ACFCU. For the past 15 weeks we’ve been working closely with ACFCU’s marketing team to reach their online goals through a highly professional and strategic website
The goals of the new website were to accomplish a couple of things; aesthetically the bank’s identity was not reflected on the old website, this had to be addresses immediately. The new website would be true to the brand, the aesthetics would create a new sense of credibility and help maintain consistency across all marketing efforts at ACFCU. The user experience also needed a boost. The goal was to develop a UI that would allow user to easily navigate the site while searching for banking tools and information. The new UI design would also deliver a pleasant online experience for the user. With more than 15K members, the navigation and usability were a top priority to our client. As part of the user experience, we integrated social media tools on the new website, affording members multiple avenues of communication with their bank.
Our team did just that! We designed a professional strategic website that looks and feels easy and tangible allowing members to feel secure and in-charge of their online banking experience. In collaboration with ACFCU we were able to deliver a site that accomplished all the goals of a strategic website and the goals of its users.
We had a great team leading this project forward, Ephrem our Creative Director lead the UI design effort from beginning to end. Nolawi, our lead UI Developer developed the new user experience and streamlined the navigation and structure. Mike our lead Web Developer worked his coding magic and developed a site that looks and performs the way a convenient yet secure banking site should. “We selected BLEN not only for their outstanding technical expertise, but also for their vendor-client relations skills. The BLEN team really understood our needs, communicated proactively, and made additional recommendations that improved the final product” says Karen Rosales, Vice President of Marketing and Community Relations.
The site was built on WordPress a comprehensive content management system, with custom PHP, JavaScript and CSS code base. The website offers customer relationship management functionality (alert box) to insure users stay informed about major bank activities. The website provides a branch locations map/ATM locator search application. Other features include; custom online banking login, financial calculators and website search capabilities.
Last night, our team attended the monthly DC Drupal meetup at Stetson’s hosted by Phase 2 Technology. As always we were accompanied by awesome presentations and quality attendees. Following the folks at Development Seed, who presented their latest product TileMill, our very own Mike Endale presented our latest Drupal project data.ed.gov.
After the presentation, while talking to attendees, some of the discussions revolved around how TileMill can be used in Drupal, the use of the table wizard module and possible content distribution systems.
In other Drupal news, Phase 2 Technology also announced that their currently working on putting together DC’s first Drupal camp, which will to be held this summer! To learn more about this check out: CapitalCamp
The Department of Education (ED) announced today the launch of Data.ED.gov. As part of the ‘Open Government’ Directive, which urges transparency in all federal agencies, Data.ED.gov uses grant data sets to paint a clearer picture of what our education system looks like in America.
The team at BLEN Corp was proud to lead the design and development for ED. We developed a platform that enables the public to visualize ED’s grant data sets. One data set in particular, measures the broadband availability for U.S. schools and colleges. This data is presented on an interactive map, showing Americans where technology is accessible to our students and where we currently are lacking. The platform enables users to search, filter, map and analyze data sets, painting a more thorough picture of the department’s efforts.
Data.ED.gov will play an integral role for teachers, students, parents, citizens and advocates alike in connecting the dots and make the distinctions about where our tax dollars are being spent and where we can get involved in strengthen our education system.
Now for the more technical folks who want to know how?
We built the platform on Drupal with a custom data model behind it. Using openly available modules like Views, OpenLayers, and TableWizard, we were able to bring the data into a fast, clean, and unified interface. To take the data visualization even a step further we teamed up with the good folks at Development Seed to create beautiful custom maps. Dev Seed created the beautiful tiles using their latest opensource tool, TileMill.
Check out Data.ED.gov and tell us what you think. We’d love to hear your feedback!
We are expanding our team and looking to hire a very talented UI Developer to work on one of our client’s project in Chevy Chase, Maryland.
Senior UI Developer w/Design Experience
Minimum of 5 years experience, closer to 10 years highly desirable
Photoshop and Adobe Illustrator experience/expertise for design work
JavaScript
HTML (HTML5 a plus)
CSS (CSS3 a plus) – note: CSS skills must be very strong
JQuery Framework – good understanding is a plus
A good sense of balance between pure development and understanding business needs
Section 508 compliance testing a plus
If you are that person, shoot us an email.
Resumes are cool, but we’re looking for people that can impress us. Send us a link to your portfolio, GitHub repo or a cool script you wrote late last night; just find a way to impress us. Competitive salary (W2 or 1099) and all that other good stuff
Shoot an email to mike@blencorp.com