Heard about DrupalEasy Academy Career Training? Learn more about our 10-week quickstart Drupal Career Starter Program.
Interested in learning more about Drupal, but can't find the training you're looking for? Help us help you by letting us know what workshops interest you. Take this short survey to let us know!
DrupalEasy is the collective expertise of Ryan Price and Michael Anello, who joined forces to provide training and consulting services worldwide. Read all about them and what they can do.
Drupal is a free, super-powerful content management system for sites that require information posting and collection, including blogs, forums, videos, photos, and databases of information. We think it is the best platform available. Here's why...
More and more savvy organizations are going with Drupal for content management, and its no mystery why. It’s free, flexible, and easy to maintain for small or large volume sites. Learn more...
We're super-excited to announce that we've been invited to present a half-day workshop during DrupalCamp Austin. The Camp takes place the weekend of June 21-23, 2013 and we'll be presenting "Getting Stuff into Drupal - Basics of Content Migration" from 1:30pm until 5:30pm on Saturday the 22nd. The workshop will cost $75 and we'll be covering the basics of three of the most common ways of importing content into Drupal: the Feeds, Migrate, and the Drupal-to-Drupal data migration (based on Migrate) modules. Interested? Check out all the details and then register today.
Over the past few years, we've performed various types of migrations into Drupal from all sorts of sources: static web sites, spreadsheets, other content management systems, and older versions of Drupal sites. Using this experience, we've developed an example-based workshop that demonstrates some of our go-to tools for bringing content into Drupal.
The workshop will be short on lecturing, and long on real-world examples. We'll import spreadsheet data using Feeds, a Drupal 6 site into Drupal 7 using Drupal-to-Drupal migration, and a custom migration using the Migrate module.
We're always looking for new and exciting workshops to offer - please take a few minutes and take this short survey to help us determine potential topics for future workshops.
I rencently spent a few quality hours with the Views interface trying to figure out how to add an Organic Groups Group ID contextual filter to a Views display and have the display's title overridden based on the value of the contextual filter. Actually, it's easy to do if you don't mind having the actual Group ID integer in the title. But, like most people, I actually wanted the Group name in the title of my display.
It took me more time that I'd care to admit, as well as some guidance from the most excellent maintainer of the Organic Groups module, Amitai Burstein, but eventually, I discovered a simple solution that didn't involve additional relationships, contextual filters, fields, or trickery. Well - maybe not the "trickery" part. The solution involved what I consider to be a previously undocumented feature (at least to me!) of the Views module.
When I first set up the view, I knew that the incoming values of the contextual filter (Group ID) were going to be integers (they are IDs, and this is Drupal after all). I needed to figure out how to override the title so that the Group ID wasn't used in the title, but rather the Group name was displayed. After all, I didn't want the resulting title to be "12341 Happenings" (where "12341" is the Group ID), rather I wanted the title to be "Miami Happenings" (where "Miami" is the Group name whose Group ID is "12341"). I was hoping that this would happen automatically, but it did not.
I spent several hours toying with various potential solutions - everything from using the display's Format|Grouping functionality to adding an additional relationship and using the "Content: title" field as the contexual filter instead of the Group ID (while the second option basically worked, it could have led to issues if there were multiple groups with the same name or funky characters in group names). Nothing I tried worked as well, or was bullet-proof enough to my liking.
It wasn't until Amitai told me that if I use Group ID as the contextual filter, I can override the title in the contextual filter's settings and Views will automatically substitute the Group ID with the Group title as long as the contextual filter is validated! That is, if I select the "Specify validation criteria" option in the contextual filter's settings and validate it using the (in my case) "OG group" validator, and Views will magically make the substitution. Seriously!
When I was first informed of this, I was both overjoyed (that my issue had been solved) and aghast (at the incredibly non-obviousness of the solution). I've been around Drupal for quite some time, and this was one "feature" that had snuck past me. There isn't a clue in the Views interface about this functionality (in the maintainers' defense I can't think of a good way to add this to the description of the "Override title" setting without adding at least three paragraphs), nor could I find any indication of it using Advanced Help (low-hanging fruit for a patch!) Ultimately, I went to the relevant Views documentation page and didn't see anything about it there as well. It's there now, I just added it a few minutes ago (I love open-source).
Views is a seriously complex module with lots of moving parts, written by volunteers that are much smarter than I am. I'm sure there's more "sneaky" functionality that I'll discover in the future, and I'm looking forward to it.
By the way, check out Amatai's DrupalCon Portland presentation on Organic Groups and Message - I hear it's going to be...interesting.
Bob Kepford (kepford) from The Weekly Drop joins Andrew Riley, Ted Bowman, and Mike Anello to talk about how Bob mines nuggets of Drupal goodness from the weekly Drupal firehose. Other topics discussed include Panopoly, open-source project statistics, the impending Google Reader apocalypse, Open Atrium 2.x, and a bunch of other mostly Drupal-related topics.
Each podcast we ask our guests the same five questions. Here are Bob’s answers:
Want to know what the five questions are? Listen to the podcast!
If you'd like to leave us a voicemail, call 321-396-2340. Please keep in mind that we might play your voicemail during one of our future podcasts. Feel free to call in with suggestions, rants, questions, or foxing lessons for just about anybody. If you'd rather just send us an email, please use our contact page.
At Florida DrupalCamp 2013, I presented a session that demonstrated how to utilize the Feeds, Feeds Tamper, Address field, Geofield, and other modules to create a fully-functional website for searching for Farmers Markets anywhere in the United States. While the session's intent was to inspire people as to what Drupal can do in a very short amount of time, this blog post will focus on the details of the process.
A few years ago, I built a similar presentation using world-wide earthquake data, importing into a Drupal 6 site using Table Wizard and displaying the data using the Mapstraction module. I must have given that presentation about half-a-dozen times over the course of a year or so at various meetups and camps, so I thought now was a good time to bring it up-to-date with modern (relatively-speaking) Drupal tools.
Before we get started, let me point out that the title is a lie. It's actually going to be more than 7,000 records, but I like the way the "5,000" and "45" play off each other. The first time I did this demonstration in front of an audience, it actually took me only 25 minutes, 26 seconds - the rest of the presentation time was taken up with some initial slides and furious betting on how long it would actually take me (the winner got a copy of Mapping with Drupal).
The first step in a project like this is to find some good clean source data. I'm a big fan of the seemingly infinite supply of publically available data found on Data.gov, the United States' public repository of federal government data. After poking around for a bit of time (I'm embarassed to say exactly how much!), I stumbled upon the Farmers Markets Geographic Data - a Microsoft Excel-formatted dataset containing data on over 7,000 Farmers Markets all over the United States. The dataset contains names, descriptions, addresses, websites, and other details - most importantly, it contains the latitude and longitude for each location. While not mandatory, having the latitude and longitude data sure does make the process easier.
Inspecting the data in a spreadsheet, things looked pretty clean. Since I knew I needed to save the file in comma-separted-values (.csv) format, I did some very minor cleanup on it by doing the following:
Additionally, I took note of the following things:
Once I was satisfied that the data was clean and I had a good understanding of it, I saved it as a .csv file and moved onto getting Drupal ready to import it.
As with most of the sites DrupalEasy builds, we started out with our own custom Drush make file that automatically downloads a bunch of standardish modules we use on every site as well as our own custom installation profile that does some initial site configuration (turning off the Overlay, enabling the Administration Menu module, etc...) This enables us to get a basic site up-and-running in just a few mintues.
Next, we need to download and enable the modules that we're going to need:
Depending on whether or not you start with our custom make file, there may be other modules that are dependencies of the ones listed above that will also need to be downloaded and enabled.
If you use Drush, the following command will enable all the necessary modules:
drush en addressfield feeds_ui feeds_tamper_ui geofield geofield_map job_scheduler feeds geophp rules_admin openlayers_ui
Once the site is up-and-running, the first step is to set up something for all of the data to be imported into. In this case, hopefully it is obvious that we need to create a new content type with fields that roughly match the fields in our source file. By creating a node for each Farmers Market, once imported we can leverage all of the tools in the Drupal universe to interact with them as we build out the site.
Create a new content type (admin/structure/types/add) with the following properties (throughout this post, any properties/attributes/settings not specifically mentioned can be left at their default values):
Moving on to the fields (admin/structure/types/manage/farmers-market/fields):
One thing to note is that once the import is complete, we're going to go ahead and enable the Geocoder module so that any Drupal-side address updates to any Farmers Market nodes will be automatically updated with the proper latitude/longitude coordinates. We don't want to enable this functionality prior to import otherwise the module will attempt to geocode each address from the source file during import. This is completely unecessary since the source file already includes latitude/longitude data. Plus, Google Geocoder limits non-paid users to 2,500 requests per day - unless you pay for more.
At this point, we have the source data (the .csv file) and the destination (the "Farmers Market" content type). The next step is to create the mechanism that will actually transfer the data from the source to the destination. We'll use the Feeds module to do this. The Feeds module is designed to take data from a variety of sources (most commonly RSS feeds and .csv files) and map it to Drupal entities (usually nodes, but not always).
Add a new importer (admin/structure/feeds) named "Farmers Markets Importer". The "Edit" page for importers has 4 major sections. Let's look at each one in detail.
This section consists of the general configuration of the importer. For this project, use the following settings:
This section sets the mechanism that actually interacts with the source data. We need to change the Fetcher from "HTTP Fetcher" (commonly used for RSS feeds) to "File upload". Looking at the settings for the "File upload" fetcher, all the default values are fine, so no changes are necessary.
This section sets the process that will be used to parse the source data into a format that the "Processor" (next step) can understand. In our case, we need to change the Parser from "Common Syndication parser" to "CSV parser". Again, the default settings for the "CSV parser" are fine as-is. It is interesting to note that the Feeds module is easily extensible. Custom Fetchers, Parsers, and Processors can be written to handle virtually any type of incoming data.
This final section is were the parsed source data is mapped to the proper place in Drupal. In our case, the default "Node processor" is what we want (since we're mapping the data into our new "Farmers Market" content type). The settings for the Node processor are as follows:
The final (and most tedious) step is to set up the mapping of fields between the source and destination. In other words: data from each source fields needs to know which destination field it will go into. It is important to note here that the source field names must be entered exactly as they appear in the source data file. The mappings for this importer are (Source = Target):
Be sure to double-check that the "FMID" field is set to unique!
As I indicated in the "Farmers Markets Source Data" section above, there are a couple of things we need to do in order to get the dataset to import cleanly: set the default country ("United States") and translate the full state name to the 2-letter abbreviation ("New York" to "NY", for example).
Setting the default country field for every record on import is actually a fairly simple operation to set up - assuming you're aware that the Feeds module exposes a "Before saving an item imported via [importer name]" event for each Feeds importer. This allows us to step in the middle of the import process and set a data value as we wish.
From the main Rules configuration page (admin/configure/workflow/rules), add a new rule named "Add default country for imported markets" that reacts on the "Before saving an item imported via Farmers Markets Importer" event.
Next, add an "Entity has field" condition with the Data selector=node and Field=field_address. This ensures that the country field exists (it is part of field_address) and (more importantly) is available for us to set its value in the next step.
Finally, add an "Set a data value" action with a Data selector=node:field-address:country and a Value=United States. Click to save everything it's done!
The second data issue that we need address during data import is that of the "State" field. We need a mechanism were we can automatically translate full state names into their 2-letter abbreviation. I turned to the Feeds Tamper module for this, as it is relatively straight-forward for a developer to create a custom plugin that can be assigned to any field via the Feeds Tamper interface. The source data is then run through the plugin code to make any necessary changes. Unfortunately, a plugin had to be written for this application - I have contributed it back to the community, but the module author has not acted on it as of April, 2013.
If you're not familiar with applying patches, feel free to download the state_to_abbrev_inc.zip file, uncompress it, and place it in your feeds_tamper/plugins directory.
Once the plugin is installed, it needs to be assiged to the "State" field. This is done by clicking "Tamper" link for our importer from the main "Feed importers" page (admin/structure/feeds). Then, add the "Full U.S. state name to abbrev" plugin to the "
State -> Address: Administrative area" field.
At this point, everything is ready to proceed with the import. Navigate to the main "Import" page (/import) via the Navigation menu and click the "Farmers Markets Importer". Select the file to upload and click to "Import".
I like to test things with a small version of the main source file - one with only a handful of records. This is helpful in making sure everything is being imported correctly without having to wait for all 7,000+ records to be processed. I check things by inspecting a few of the newly created Farmers Market nodes, ensuring fields are populated as expected. If I'm satisfied, then I go ahead and run the import with the full data set.
On my particular local machine, importing all 7,000+ records took about 6 minutes.
One of the features that really makes location-based content useful is proximity searches: being able to allow the user to "show me all the things near a particular location". For this example, we're going to use the built-in proximity functionality of the 7.x-2.x version of the Geofield module. We'll create a view that exposes a proximity filter that incorporates geocoding by allowing the user to enter any valid location data into the "origin" textfield. That is, the user can query for farmers markets within 10 miles of "Sacramento, CA", "06103", or "1600 Pennsylvania Ave, Washington, DC" - any text that the active Geocoder (usually Google Geocoder) can parse.
Once the import is complete, enable the Geocoder module. Then, create a new view named "Proximity search". On the initial views wizard page, "Show Content of type Farmers Market" (sorting doesn't matter yet). Create a page with a Display format" of "Geofield Map". Set the "Items to display" to 100 (just to make sure we never overwhelm the map with points), and disable the pager. On the main views interface:
Once complete, save the view, then navigate to the /proximity-search (or whatever URL you set for the page display of the view) and give it a whirl!
At this point, if you click on a Farmers Market pin, then click through to a particular Farmers Market node, the display of the node is less-than-impressive.
With just a little bit of effort, this can be greatly improved. We'll rearrange the order of fields, tweak the display a little bit, add a map, and incorporate Geocoder functionality for address updates.
To keep things interesting, we're going to use the OpenLayers module for the map display on the individual Farmers Market nodes. First, we'll need to edit the OpenLayers map that we're going to utilize. Go to the main OpenLayers "Maps" page (admin/structure/openlayers/maps), and click to edit the geofield_formatter_map (the description of the map should explain why we're using this one - it is designed to handle the display of Geofield output). There's lots of available settings for each map, we'll only make a few small configuration changes:
Once the map is configured, we can utilize it on the Lat/Long field of our Farmers Market content type. Go to the "Manage Display" page (admin/structure/types/manage/farmers_market/display) and change the format of the "Lat/Long" field to OpenLayers. Click to save and test.
While we're on the "Manage Display" page of the Farmers Market content type, rearrange the fields as follows:
With these changes, things improve quite a bit.
Finally, now that all the data is imported, we can go back and modify the Lat/Long field to automatically be updated by the Geocoder module whenever the node is updated (in case the address changes). From the "Manage Fields" page for our content type (admin/structure/types/manage/farmers_market/fields), click the "Latitude/Longitude" widget for the "Lat/Long" field, change the widget to be "Geocode from another field", then continue to click to edit the field configuration and ensure the "Geocode from field" option is set to "Address". Click to save.
At this point, we have a fully functional site where users can search for farmers markets near them, then click to view the details on ones that interest them. Since the farmers markets are nodes, we can leverage all the great modules available from Drupal.org to futher extend and enhance the site.
With just a few additional modules, a contribued (responsive) theme with just a few extra lines of CSS, and some publically available imagery, it's quite simple to produce a usable site - just like FarmersMarketsNow.com!
Still reading? Congrats - you're in it for the long haul. Wondering how we can leverage the category data from the source file? Here are the steps:
Rerun the import and see the magic! Note that the extra processing for the categories really slows down the import quite a bit. I'm sure that there are other ways of importing the category-type fields to a single vocabulary, let me know in the comments if you know of an easier method.
Image credit: stopwatch
Everyone seems to need more and better Drupal talent. There are too many instances where projects are delayed, or even turned away or lost because we can't find the people with the proficiency to do the work. Even though high demand for Drupal is a relatively good problem, it is still one that begs for a solution. There's a plethora of training programs (including through DrupalEasy) out there for the self-motivated, tech savvy, Drupal-aware. The issue is, even with the mass of training available and promoted through the community, we still can't fill the gap, especially for the community's long term needs. This dilemma exists for the same reason that we face awareness challenges of the Drupal CMS overall; there is no sizable list of behemoth companies with huge marketing budgets or focused, funded, grand scale efforts to raise awareness outside of the community.
One potential solution is looking outside of the community to infuse the extra, needed resources and attract talent. I'm not talking advertising or sponsorships, but more using relevant resources not necessarily focused on Drupal talent development. DrupalEasy's expertise includes a storied past in economic and workforce development, which are two unique elements of the public sector whose motivations align with growth of industries, and development of talent to meet the opportunities those industries provide. In most cases, state, regional and local Workforce Investment Boards (WIBs) and Economic Development organizations (EDOs) are continually looking for areas they can support in their target industries. Information Communications Technologies is a sector on more WIB and EDO target lists than not, because it is green, usually provides high wages, and in most cases brings wealth (wages) from outside the region into the local economy. (Value-added jobs that everyone wants in their backyards.)
Drupal and other Open Source Technologies are areas that most workforce professionals are not aware of, and that have a host of issues that need to be addressed by the professionals tasked with growing jobs and economies. Among them, recognized certifications, virtual work, the high percentage of contractors and the self-employed vs. traditional employment, and the length of time/lack of definitive path to becoming a sought after Drupal professional. But, as someone wise once said, an obstacle can either be a stumbling block or stepping stone. The resources that WIBs and EDOs have that can assist the growth of Drupal and development of Drupal talent are certainly worth a little heavy lifting to create a solid path out of the barriers.
At DrupalEasy, we've already started. Thanks to our forward-thinking local WIB, Brevard Workforce, we already have trained 38 people through the Drupal Career Starter Program thanks to a federal grant with a more lax requirement on certifications. This step in securing WIB funds for open source, un-proven training was monumental. Since then, we've stepped up our awareness building efforts. We have compiled our binder-thick application, and stood in front of the Florida Commission on Independent Education where the vote was unanimous for approval of a provisional license for the Drupal Career Starter Program. We were also asked by the Florida state-wide WIB, Workforce Florida, to present Drupal and the DCSP to their finance committee at the most recent meeting of the board in the state capital, and presented a session on Open Source Technology Training at the National Association or Workforce Boards in Washington DC last month.
Right now, DrupalEasy is awaiting final approval of our application to the local workforce board to become an approved training provider, eligible for all standard funding streams, which should come through in mid-May. We are also working with a local legislator to ease regulations so our license can more easily work state-wide for any workforce boards that want to build Drupal talent in their regions.
At all of the presentations and meetings with workforce and economic development groups I've been involved in, once the decision makers understand what open source and Drupal have the potential to do, they would like to know more and figure out how to make their programs work to help build talent. Every region of the US, as well as countries and regions across the world, have WIB-like organizations focused on providing assistance and training for opportunity-rich careers.
It's amazing what happened to Drupal once government discovered what Drupal has to offer. Imagine what we can do for Drupal talent development once we discover what government has to offer. If you are contemplating how you might help create the talent you need for the future, let me know if you'd like to raise the awareness with WIBs and EDOs and potentially leverage government training funds to build talent in your area. Contact us to learn more.
Lee Hunter (LeeHunter), the new Drupal documentation lead joins Mike Anello to talk about the future of Drupal documentation and his (evil?) genius plan to create tools so that people to want to write better documentation.
Each podcast we ask our guests the same five questions. Here are Lee’s answers:
1. Ubuntu and Windows
2. Kristof Van Tomme (kvantomme)
4. Angie Byron (webchick), Amitai Burstein (Amitaibu)
5. The ability to integrate Drupal with desktop tools.
Want to know what the five questions are? Listen to the podcast!
DrupalCon Portland mentored training Site Building and More - A BuildAModule.com Mentored Training - Monday, May 20th.
If you'd like to leave us a voicemail, call 321-396-2340. Please keep in mind that we might play your voicemail during one of our future podcasts. Feel free to call in with suggestions, rants, questions, or music lessons for Mike. If you'd rather just send us an email, please use our contact page.
Florida DrupalCamp 2013 took place on April 20 and 21, 2013 at the Florida Technical College in Orlando, Florida. Attended by almost 300 people, the camp featured 42 sessions, a fantastic keynote by Ryan Szrama (rszrama), 30+ volunteers, great food by 4Rivers, and four lucky organizations who benefitted from the all-day Coding for a Cause event. This was central Florida's fifth consecutive annual camp, and by all indications was well-received by everybody who attended. As is our custom, this blog post will serve to wrap up all aspects of the camp, including things that we could (should?) have done better.
As with most Drupal events, our camp would not have happened without all the hard work from our all-volunteer staff. While the Florida Drupal Community is spread out over a state that takes 14 hours to drive from Pensacola to Key West, when it comes to organizing a camp, we act as one group with a common goal: to put on the best camp anywhere. With weekly conference calls starting months before the event to our constantly active Open Atrium group, our volunteers take ownership of their tasks and have always delivered.
This year's group of volunteers added a new wrinkle to our camp - a good number of the organizers hadn't participated in previous year's camps. With the guidance and encouragment of the other organizers, this "fresh blood" added welcome energy and ideas to our groups. One of these new members is Tom Nguyen (tom_nguyen), who found, secured, and managed communication with the venue for this year's camp. When our previous host informed us that they were unable to host the 2013 edition of the camp due to building renovations, we spent several long weeks talking about potential venues, but it wasn't until Tom stepped up and visited some potential locations that we gained real momentum.
We could not have been happier with Florida Technical College and their staff's willingness to work with us to make this event a success. While the venue wasn't perfect (the auditorium wasn't large enought to hold everyone), virtually everything else about it was ideal. A large, conveniently-placed student lounge, a virtually unlimited supply of classrooms equipped with projectors and screens, more-than-adequate WiFi (always a big concern), ample free parking, all while being compact enough to encourage networking and discussion. Did I mention that it was free? Amazing, we know. The staff couldn't have treated us nicer, and we look forward to working with them again in the future.
I'm really going to try to be unbiased about this next topic, but it's going to be difficult. I've been to many DrupalCamps up-and-down the East Coast of the United States (and one in Europe) and I really believe that this was the highest quality lineup of sessions that I've ever seen at a camp. Our keynote was given by Ryan Szrama, lead developer of Drupal Commerce and Commerce Guys' VP of Community Development. Our all-day beginner track was presented by OSTraining, in addition we had 35 other sessions on topics ranging from running a Drupal shop to CSS/SASS/Compass to module development to Drupal 8. Don Vandemark (caelon) worked tirelessly to reach out to high-quality speakers around (and outside) the state. In addition, Shaun Heath (heaths1 - another newbie) arranged for a (large) portion of the sessions to be recorded by Utzu Logigan (durasro) of Davram Tech and will be made available online (soon!)
Our largest headache with the camp was the registration system. We messed up big-time in launching the site too quickly without fully testing the registration system configuration. While it worked great for individuals registering themselves, it failed more than it worked with attempting to register more than one person at a time. While we did determine the issue a couple of weeks into ticket sales, we were nervous about making any changes and risking the possibility of making things worse. Therefore, it fell on one of our volunteers to patiently answer emails from people having issues with registration and walking them through the process. In addition to this, Mike Herchel (mherchel) was also in charge of the marketing for the camp, spending countless hours sending emails, reaching out to other tech groups, and getting the word out through all possible means. Mike also stepped in to help with numerous other tasks - every camp needs someone like him who just gets stuff done (no, you can't have him).
As if our attendees weren't getting enough for their registration fee, we had an amazing group of in-kind sponsors that provided books, DVDs, and other merchandise that was used in giveaways during the camp. Our official Florida DrupalCamp giveaway referee, Doug Hercules (dhercjr - another newbie), ran around blowing his whistle and making people participate in silly games all while handing out almost $1,000 worth of merchandise, including over 50 Drupal-related books.
The Drupal 7, COD-based (Conference Organizing Distribution) web site was a hand-me-down from DrupalCamp Atlanta with new content and a new theme. The theme was designed by Mike Herchel (yeah, the same guy) and implemented by himself, Adam Varn (hotsaucedesign), Erik Baldwin (BLadwin), and Jason Taber (companyguy). The site featured some amazing CSS3 animations and a fantastic responsive design that made the online session schedule super-easy to use. Linda Cook (lscook) and Dennis Solis (densolis - another camp organizer newbie) wrote virtually all of the content for the site while Andrew Riley (Andrew M Riley) and John Learned (JCL324) configured the site for our camp. The big takeaway from this year's camp is to build and test the full functionality of the web site early. Really early. And test the pants off it.
When it comes to designing our camp, we take a holistic approach and have a separate design committee that oversees all printed and electronic material to ensure consistency and professionalism. Erik Baldwin led this committee, working with numerous other volunteers including Cielo Johnson (C13L0 - another newbie), Roland Riddell (rols), Sandy Milligan (sandym), Phil Smith (SiliconValet), David Cruz (dimmech), Dorothy Cleary (dbdot), and Dustin Cooper (dustinjcooper). The groups designed badges, printed schedules, signs, t-shirts, and swag bags - all branded with the Florida Drupal Diver.
Roland Riddell also worked with the rest of the design committee to come up with a fantastic t-shirt design that tied all of our branding together. With the first-ever (someone check me on this) giant octopus gracing the front of our t-shirts, and a school of fish (sponsors) on the back, this year's t-shirt design is our best yet (so long, camper!) One of the original Florida Drupal Group members, Joe Moraca (joemoraca) found a suitable vendor and ensured we had the t-shirts on-time (thanks to Mike Herchel, again).
As with most Drupal events around the world, there's no way we could have provided all of this for $25 without the crazy-generous support of our sponsors. Topping them off is Mediacurrent - within 8 minutes of my sending a sponsorship request message to Dave Terry, he had claimed the Platinum sponsorship: an amazing way for us to start our fund-raising drive. Mediacurrent's close relationship with Florida (about 10 of their employees are Florida-based) is one that we value greatly. In addition, we had four Florida-based Gold sponsors: Educational Data Resources, Big Couch Media Group, Digital Frontiers Media, and Purple Rock Scissors. A full list of all sponsors can be found at http://fldrupalcamp.org/sponsors. All told, our sponsors provided over $10,000, and we can't thank them enough.
For the fourth year in a row, the Central Florida Computer Society acted as our fiscal partner. Bringing us in under their 501(c)(3) umbrella, providing accounting support, and providing the most friendly day-of volunteers we could ask for. It's a continuing partnership that we value greatly.
The overall budget for Florida DrupalCamp 2013 was a bit more than $16,000. Income came from sponsors (approximately 70%) and ticket sales. Once again, we managed to keep ticket prices at a minumum, offering an earlybird price ($20) to about half of the registrants, and including food, t-shirt, and a recyclable swag bag in the cost of a registration. Our largest expense was food (~$8,000), followed by session recordings (~$3,000), and t-shirts (~$2,500). The remainder of the expenses were for printing, marketing, and miscelleanous expenses. Overall, it looks like we'll have a small surplus that we'll use as seed money for future Florida Drupal events.
As with other aspects of our local community, we are so lucky to have someone who volunteers to take on a task of this magnitude, then follows it through to the end, year-after-year. Angela Cacciola (PrincessAng417) once again took on the catering task, provided us with numerous options, put up with our ridiculous questions (seriously, why can't we have a milkshake bar?), and made it all look easy. This year's camp was catered by 4Rivers, a local BBQ resturant that was amazing. They provided a breakfast buffet (sorry we ran out of coffee!), a great lunch, snacks in the afternoon, and drinks all day. It was seemless, easy, and we had leftovers. Sweet.
Albert Volkman (Albert Volkman) and Kevin Basarab (kbasarab) organized a full-day code sprint the day after the camp that mainly focused on Twig in Drupal 8 issues. A number of potential new contributors were on-ramped to reviewing issues, creating and reviewing patches, and the core contribution mentoring process.
Once again, the Florida Drupal community was clear in their desire to give back to the community. This year, four non-profit organizations were selected to take part in our Coding for a Cause event, where volunteers get together for a full day of site building for each organization. Over 40 people participated in the event - check out this post for details on each organization's project. Ben Hosmer (bhosmer) led a team of volunteers in making it all happen, including project managers Maggie Ardito (marguerite), Ryan Price (liberatr), Robert Laszlo (laszlocore), and Dawn Borglund (dborglund).
The Florida Drupal Community continues to lead the way in organizing a completely volunteer planned and run event whose mission it is to spread knowledge and confidence in using Drupal. We recently sent out a survey to all attendees, I look foward to sharing the results of that survey in a future blog post, although I'm confident in what the results will show. Compared with our 2012 effort, we definitely improved in several areas:
Overall, it was a weekend that the Florida Drupal Community can be proud of!
Photos by Kevin Basarab, Hewie Poplock, Bryan Buxton, and myself (Michael Anello). Thanks to Doug Hercules for helping out with this post!
Florida DrupalCamp 2013 invited four local non-profit organizations to take part in our annual Coding for a Cause event. Held the day after the camp sessions, over 30 volunteers help with site-building, theming, and content management tasks for the lucky organizations.
This year's event focused on four local 501(c)(3) non-profits that were selected from the application process. Each selected organization was required to agree to:
The four organizations are:
An Orlando-based organization focusing on supporting recreation, education, and volunteer activities for elderly, disabled, and homeless persons. In addition to individual volunteer projects, Helpertunity's goal for 2013 is to advocate for technology access and mobile resources for care facilities (nursing homes, care shelters, and adult day programs) in Florida. Volunteers are creating a web site to allow donors to connect, learn, and build trust with the organziation so that on-going projects can continue and grow. http://www.helpertunity.org
A Florida-based chapter of the national East Coast Greenway organization focused on advocacy, support, and development of the 3,000 mile multi-use greenway route between Maine and Key West. The project involves creating a pilot web site whose goal is to futher engage and expand volunteer activity in trail-building and advocacy. The pilot web site will be focused on building community support for the Florida portion of the trail. http://www.helpertunity.org
A Central Florida-based foundation that provides scholarships to students interested in studying music. They also provide music resources for teachers as well as a matching service putting students, teachers, and music resources together. Volunteers will be rebuilding their existing web site with a new design, updated content, and improved functionality. http://orlandomusicclub.org
Urban Rethink is an Orlando-based creative hub that focuses on co-working and community events as part of the Urban Think Foundation. The project consists of expanding their informational website to include user-generated content and social media-style pages for their co-working members. Specifically, an infrastructure for creating online photo albums will be built, and non-technical volunteers will be migrating photos from the past several years' worth of Urban Rethink events. In addition, the design of the site is being upgraded to be mobile- and tablet-friendly. http://urbanrethink.com/
Stay tuned to the @fldrupalcamp twitter feed for site launch announcements when available.
Michelle Johansen (mjohansen) and Greg Dunlap (heyrocker) join Ryan Price and Mike Anello for a discussion about DrupalCon Portland. As the Content Lead (the volunteer in charge of the track chair volunteers) and the Core Conversations track lead, respectively, Michelle and Greg filled us in on all the happenings planned in and around DrupalCon Portland. We also discuss the newest "Young Global Leader", DrupalCon session recordings on YouTube, and email debugging.
Each podcast we ask our guests the same five questions. Here are Michelle’s answers:
2. Women in the Drupal community.
4. Karen McGrane and Michael Lopp.
5. Prettier backend editing area.
Want to know what the five questions are? Listen to the podcast!
DrupalCon Portland mentored training Site Building and More - A BuildAModule.com Mentored Training - Monday, May 20th.
If you'd like to leave us a voicemail, call 321-396-2340. Please keep in mind that we might play your voicemail during one of our future podcasts. Feel free to call in with suggestions, rants, questions, or pinball tips for Greg. If you'd rather just send us an email, please use our contact page.
We're trying something new this year at Florida DrupalCamp 2013 (Saturday, April 20 - tickets on sale now for just $25) and we're looking for some (financial) help to get it done.
We'd like to be able to record all sessions and post them online for the entire Drupal community. In order to do so effectively, we've decided to hire Davram Tech (contact me if you'd like to be put in touch with them) to take care of it for us. Utzu from Davram Tech has agreed to travel to our camp, record all the sessions, and upload them to a video hosting site of our choice. The interesting thing about it is that it is going to provide a valuable new sponsorship opportunity for our camp. The sponsorship of a session video will allow the sponsor to add branding to the start and finish of the video - as long as it remains online. This type of ongoing branding is surely worth much more than we're charging for it (more on that later).
Of course, hiring an organization to do all the work of recording sessions isn't free. In our case, it works out to about $150 per session. We raised a good deal of money from our amazing sponsors, but not quite enough to have full coverage of all sessions. So, we decided that, at a minimum, we're going to record 20 sessions. These 20 sessions will be sponsored by our existing Platinum, Gold, Silver, and Bronze sponsors. The remaining 16 (or so) session are officially up-for-grabs. We're looking for some additional sponsors to pony up $150 for each session video they'd like to sponsor. Interested? Let me know.
Here's the way it works: we're letting our current sponsors pick the sessions they'd like to sponsor. After that, it's first-come, first-serve. Want to get your organizations name permanently attached to a #fldc13 session video? Let me know.
We are meticulous experts in Drupal and how to leverage the web for business, outreach and data collection. DrupalEasy Consulting focuses on timely solutions that work for our clients and their end users.
Learn more about DrupalEasy Consulting.
DrupalEasy Training gets you up to speed fast. Standard workshops are available throughout the US, and can also be presented as association, user group and corporate/organization customized training events. Check out our upcoming schedule as well as our past workshops.
Learn more about DrupalEasy Training.